You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

plugin.js 1.8 KiB

3 vuotta sitten
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. import { __assign } from "tslib";
  2. var ScrollbarPlugin = /** @class */ (function () {
  3. function ScrollbarPlugin(scrollbar, options) {
  4. var _newTarget = this.constructor;
  5. this.scrollbar = scrollbar;
  6. this.name = _newTarget.pluginName;
  7. this.options = __assign(__assign({}, _newTarget.defaultOptions), options);
  8. }
  9. ScrollbarPlugin.prototype.onInit = function () { };
  10. ScrollbarPlugin.prototype.onDestroy = function () { };
  11. ScrollbarPlugin.prototype.onUpdate = function () { };
  12. ScrollbarPlugin.prototype.onRender = function (_remainMomentum) { };
  13. ScrollbarPlugin.prototype.transformDelta = function (delta, _evt) {
  14. return __assign({}, delta);
  15. };
  16. ScrollbarPlugin.pluginName = '';
  17. ScrollbarPlugin.defaultOptions = {};
  18. return ScrollbarPlugin;
  19. }());
  20. export { ScrollbarPlugin };
  21. export var globalPlugins = {
  22. order: new Set(),
  23. constructors: {},
  24. };
  25. export function addPlugins() {
  26. var Plugins = [];
  27. for (var _i = 0; _i < arguments.length; _i++) {
  28. Plugins[_i] = arguments[_i];
  29. }
  30. Plugins.forEach(function (P) {
  31. var pluginName = P.pluginName;
  32. if (!pluginName) {
  33. throw new TypeError("plugin name is required");
  34. }
  35. globalPlugins.order.add(pluginName);
  36. globalPlugins.constructors[pluginName] = P;
  37. });
  38. }
  39. export function initPlugins(scrollbar, options) {
  40. return Array.from(globalPlugins.order)
  41. .filter(function (pluginName) {
  42. return options[pluginName] !== false;
  43. })
  44. .map(function (pluginName) {
  45. var Plugin = globalPlugins.constructors[pluginName];
  46. var instance = new Plugin(scrollbar, options[pluginName]);
  47. // bind plugin options to `scrollbar.options`
  48. options[pluginName] = instance.options;
  49. return instance;
  50. });
  51. }
  52. //# sourceMappingURL=plugin.js.map