EventProvider.js 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. /* *
  2. *
  3. * (c) 2009-2021 Øystein Moseng
  4. *
  5. * Class that can keep track of events added, and clean them up on destroy.
  6. *
  7. * License: www.highcharts.com/license
  8. *
  9. * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
  10. *
  11. * */
  12. 'use strict';
  13. import H from '../../Core/Globals.js';
  14. import U from '../../Core/Utilities.js';
  15. var addEvent = U.addEvent, extend = U.extend;
  16. /* eslint-disable no-invalid-this, valid-jsdoc */
  17. /**
  18. * @private
  19. * @class
  20. */
  21. var EventProvider = function () {
  22. this.eventRemovers = [];
  23. };
  24. extend(EventProvider.prototype, {
  25. /**
  26. * Add an event to an element and keep track of it for later removal.
  27. * Same args as Highcharts.addEvent.
  28. * @private
  29. * @return {Function}
  30. */
  31. addEvent: function () {
  32. var remover = addEvent.apply(H, arguments);
  33. this.eventRemovers.push(remover);
  34. return remover;
  35. },
  36. /**
  37. * Remove all added events.
  38. * @private
  39. * @return {void}
  40. */
  41. removeAddedEvents: function () {
  42. this.eventRemovers.forEach(function (remover) {
  43. remover();
  44. });
  45. this.eventRemovers = [];
  46. }
  47. });
  48. export default EventProvider;