sensorPool.js 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.removeSensor = exports.getSensor = void 0;
  6. var _id = _interopRequireDefault(require("./id"));
  7. var _sensors = require("./sensors");
  8. var _constant = require("./constant");
  9. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
  10. /**
  11. * Created by hustcc on 18/6/9.
  12. * Contract: i@hust.cc
  13. */
  14. /**
  15. * all the sensor objects.
  16. * sensor pool
  17. */
  18. var Sensors = {};
  19. /**
  20. * get one sensor
  21. * @param element
  22. * @returns {*}
  23. */
  24. var getSensor = function getSensor(element) {
  25. var sensorId = element.getAttribute(_constant.SizeSensorId); // 1. if the sensor exists, then use it
  26. if (sensorId && Sensors[sensorId]) {
  27. return Sensors[sensorId];
  28. } // 2. not exist, then create one
  29. var newId = (0, _id["default"])();
  30. element.setAttribute(_constant.SizeSensorId, newId);
  31. var sensor = (0, _sensors.createSensor)(element); // add sensor into pool
  32. Sensors[newId] = sensor;
  33. return sensor;
  34. };
  35. /**
  36. * 移除 sensor
  37. * @param sensor
  38. */
  39. exports.getSensor = getSensor;
  40. var removeSensor = function removeSensor(sensor) {
  41. var sensorId = sensor.element.getAttribute(_constant.SizeSensorId); // remove attribute
  42. sensor.element.removeAttribute(_constant.SizeSensorId); // remove event, dom of the sensor used
  43. sensor.destroy(); // exist, then remove from pool
  44. if (sensorId && Sensors[sensorId]) {
  45. delete Sensors[sensorId];
  46. }
  47. };
  48. exports.removeSensor = removeSensor;