mspointer.js 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. /**
  2. * DevExtreme (events/pointer/mspointer.js)
  3. * Version: 19.1.16
  4. * Build date: Tue Oct 18 2022
  5. *
  6. * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED
  7. * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
  8. */
  9. "use strict";
  10. var BaseStrategy = require("./base");
  11. var Observer = require("./observer");
  12. var extend = require("../../core/utils/extend").extend;
  13. var eventMap = {
  14. dxpointerdown: "pointerdown",
  15. dxpointermove: "pointermove",
  16. dxpointerup: "pointerup",
  17. dxpointercancel: "pointercancel",
  18. dxpointerover: "pointerover",
  19. dxpointerout: "pointerout",
  20. dxpointerenter: "pointerenter",
  21. dxpointerleave: "pointerleave"
  22. };
  23. var observer;
  24. var activated = false;
  25. var activateStrategy = function() {
  26. if (activated) {
  27. return
  28. }
  29. observer = new Observer(eventMap, function(a, b) {
  30. return a.pointerId === b.pointerId
  31. }, function(e) {
  32. if (e.isPrimary) {
  33. observer.reset()
  34. }
  35. });
  36. activated = true
  37. };
  38. var MsPointerStrategy = BaseStrategy.inherit({
  39. ctor: function() {
  40. this.callBase.apply(this, arguments);
  41. activateStrategy()
  42. },
  43. _fireEvent: function(args) {
  44. return this.callBase(extend({
  45. pointers: observer.pointers(),
  46. pointerId: args.originalEvent.pointerId
  47. }, args))
  48. }
  49. });
  50. MsPointerStrategy.map = eventMap;
  51. MsPointerStrategy.resetObserver = function() {
  52. observer.reset()
  53. };
  54. module.exports = MsPointerStrategy;