25'ten fazla konu seçemezsiniz Konular bir harf veya rakamla başlamalı, kısa çizgiler ('-') içerebilir ve en fazla 35 karakter uzunluğunda olabilir.
 
 
 
 

50 satır
1.6 KiB

  1. var eventListenerOptions;
  2. var eventMap = new WeakMap();
  3. function getOptions() {
  4. if (eventListenerOptions !== undefined) {
  5. return eventListenerOptions;
  6. }
  7. var supportPassiveEvent = false;
  8. try {
  9. var noop = function () { };
  10. var options = Object.defineProperty({}, 'passive', {
  11. get: function () {
  12. supportPassiveEvent = true;
  13. },
  14. });
  15. window.addEventListener('testPassive', noop, options);
  16. window.removeEventListener('testPassive', noop, options);
  17. }
  18. catch (e) { }
  19. eventListenerOptions = supportPassiveEvent ? { passive: false } : false;
  20. return eventListenerOptions;
  21. }
  22. export function eventScope(scrollbar) {
  23. var configs = eventMap.get(scrollbar) || [];
  24. eventMap.set(scrollbar, configs);
  25. return function addEvent(elem, events, fn) {
  26. function handler(event) {
  27. // ignore default prevented events
  28. if (event.defaultPrevented) {
  29. return;
  30. }
  31. fn(event);
  32. }
  33. events.split(/\s+/g).forEach(function (eventName) {
  34. configs.push({ elem: elem, eventName: eventName, handler: handler });
  35. elem.addEventListener(eventName, handler, getOptions());
  36. });
  37. };
  38. }
  39. export function clearEventsOn(scrollbar) {
  40. var configs = eventMap.get(scrollbar);
  41. if (!configs) {
  42. return;
  43. }
  44. configs.forEach(function (_a) {
  45. var elem = _a.elem, eventName = _a.eventName, handler = _a.handler;
  46. elem.removeEventListener(eventName, handler, getOptions());
  47. });
  48. eventMap.delete(scrollbar);
  49. }
  50. //# sourceMappingURL=event-hub.js.map