maycur-business
Version:
maycur business react components of web
48 lines (36 loc) • 1.51 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = mountPopper;
var _globals = require("./globals");
var _followCursorHandler = _interopRequireDefault(require("./followCursorHandler"));
var _createPopperInstance = _interopRequireDefault(require("./createPopperInstance"));
var _prefix = _interopRequireDefault(require("../utils/prefix"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
/**
* Appends the popper and creates a popper instance if one does not exist
* Also updates its position if need be and enables event listeners
* @param {Object} data - the element/popper reference data
*/
function mountPopper(data) {
var el = data.el,
popper = data.popper,
_data$settings = data.settings,
appendTo = _data$settings.appendTo,
followCursor = _data$settings.followCursor; // Already on the DOM
if (appendTo.contains(popper)) return;
appendTo.appendChild(popper);
if (!data.popperInstance) {
data.popperInstance = (0, _createPopperInstance["default"])(data);
} else {
data.popperInstance.update();
if (!followCursor || _globals.Browser.touch) {
data.popperInstance.enableEventListeners();
}
} // Since touch is determined dynamically, followCursor is set on mount
if (followCursor && !_globals.Browser.touch) {
el.addEventListener('mousemove', _followCursorHandler["default"]);
data.popperInstance.disableEventListeners();
}
}