main.js 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. "use strict";
  2. /* eslint-disable no-param-reassign */
  3. Object.defineProperty(exports, "__esModule", { value: true });
  4. exports.Event = void 0;
  5. const core_1 = require("./core");
  6. const util_1 = require("./util");
  7. var Event;
  8. (function (Event) {
  9. function on(elem, events, selector, data, handler) {
  10. Private.on(elem, events, selector, data, handler);
  11. return elem;
  12. }
  13. Event.on = on;
  14. function once(elem, events, selector, data, handler) {
  15. Private.on(elem, events, selector, data, handler, true);
  16. return elem;
  17. }
  18. Event.once = once;
  19. function off(elem, events, selector, handler) {
  20. Private.off(elem, events, selector, handler);
  21. return elem;
  22. }
  23. Event.off = off;
  24. function trigger(elem, event, args,
  25. /**
  26. * When onlyHandlers is `true`
  27. * - Will not call `.event()` on the element it is triggered on. This means
  28. * `.trigger('submit', [], true)` on a form will not call `.submit()` on
  29. * the form.
  30. * - Events will not bubble up the DOM hierarchy; if they are not handled
  31. * by the target element directly, they do nothing.
  32. */
  33. onlyHandlers) {
  34. core_1.Core.trigger(event, args, elem, onlyHandlers);
  35. return elem;
  36. }
  37. Event.trigger = trigger;
  38. })(Event = exports.Event || (exports.Event = {}));
  39. var Private;
  40. (function (Private) {
  41. function on(elem, types, selector, data, fn, once) {
  42. // Types can be a map of types/handlers
  43. if (typeof types === 'object') {
  44. // ( types-Object, selector, data )
  45. if (typeof selector !== 'string') {
  46. // ( types-Object, data )
  47. data = data || selector;
  48. selector = undefined;
  49. }
  50. Object.keys(types).forEach((type) => on(elem, type, selector, data, types[type], once));
  51. return;
  52. }
  53. if (data == null && fn == null) {
  54. // ( types, fn )
  55. fn = selector;
  56. data = selector = undefined;
  57. }
  58. else if (fn == null) {
  59. if (typeof selector === 'string') {
  60. // ( types, selector, fn )
  61. fn = data;
  62. data = undefined;
  63. }
  64. else {
  65. // ( types, data, fn )
  66. fn = data;
  67. data = selector;
  68. selector = undefined;
  69. }
  70. }
  71. if (fn === false) {
  72. fn = util_1.Util.returnFalse;
  73. }
  74. else if (!fn) {
  75. return;
  76. }
  77. if (once) {
  78. const originHandler = fn;
  79. fn = function (event, ...args) {
  80. // Can use an empty set, since event contains the info
  81. Private.off(elem, event);
  82. return originHandler.call(this, event, ...args);
  83. };
  84. // Use same guid so caller can remove using origFn
  85. util_1.Util.setHandlerId(fn, util_1.Util.ensureHandlerId(originHandler));
  86. }
  87. core_1.Core.on(elem, types, fn, data, selector);
  88. }
  89. Private.on = on;
  90. function off(elem, events, selector, fn) {
  91. const evt = events;
  92. if (evt && evt.preventDefault != null && evt.handleObj != null) {
  93. const obj = evt.handleObj;
  94. off(evt.delegateTarget, obj.namespace ? `${obj.originType}.${obj.namespace}` : obj.originType, obj.selector, obj.handler);
  95. return;
  96. }
  97. if (typeof events === 'object') {
  98. // ( types-object [, selector] )
  99. const types = events;
  100. Object.keys(types).forEach((type) => off(elem, type, selector, types[type]));
  101. return;
  102. }
  103. if (selector === false || typeof selector === 'function') {
  104. // ( types [, fn] )
  105. fn = selector;
  106. selector = undefined;
  107. }
  108. if (fn === false) {
  109. fn = util_1.Util.returnFalse;
  110. }
  111. core_1.Core.off(elem, events, fn, selector);
  112. }
  113. Private.off = off;
  114. })(Private || (Private = {}));
  115. //# sourceMappingURL=main.js.map