special.js 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.Special = void 0;
  4. const hook_1 = require("./hook");
  5. const util_1 = require("./util");
  6. // Prevent triggered image.load events from bubbling to window.load
  7. var Special;
  8. (function (Special) {
  9. hook_1.EventHook.register('load', {
  10. noBubble: true,
  11. });
  12. })(Special = exports.Special || (exports.Special = {}));
  13. // Support: Chrome <=73+
  14. // Chrome doesn't alert on `event.preventDefault()`
  15. // as the standard mandates.
  16. (function (Special) {
  17. hook_1.EventHook.register('beforeunload', {
  18. postDispatch(elem, event) {
  19. if (event.result !== undefined && event.originalEvent) {
  20. event.originalEvent.returnValue = event.result;
  21. }
  22. },
  23. });
  24. })(Special = exports.Special || (exports.Special = {}));
  25. // For mouseenter/leave call the handler if related is outside the target.
  26. // NB: No relatedTarget if the mouse left/entered the browser window
  27. (function (Special) {
  28. hook_1.EventHook.register('mouseenter', {
  29. delegateType: 'mouseover',
  30. bindType: 'mouseover',
  31. handle(target, event) {
  32. let ret;
  33. const related = event.relatedTarget;
  34. const handleObj = event.handleObj;
  35. if (!related || (related !== target && !util_1.Util.contains(target, related))) {
  36. event.type = handleObj.originType;
  37. ret = handleObj.handler.call(target, event);
  38. event.type = 'mouseover';
  39. }
  40. return ret;
  41. },
  42. });
  43. hook_1.EventHook.register('mouseleave', {
  44. delegateType: 'mouseout',
  45. bindType: 'mouseout',
  46. handle(target, event) {
  47. let ret;
  48. const related = event.relatedTarget;
  49. const handleObj = event.handleObj;
  50. if (!related || (related !== target && !util_1.Util.contains(target, related))) {
  51. event.type = handleObj.originType;
  52. ret = handleObj.handler.call(target, event);
  53. event.type = 'mouseout';
  54. }
  55. return ret;
  56. },
  57. });
  58. })(Special = exports.Special || (exports.Special = {}));
  59. //# sourceMappingURL=special.js.map