maycur-business
Version:
maycur business react components of web
65 lines (51 loc) • 2.19 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = createTooltips;
var _getIndividualSettings = _interopRequireDefault(require("./getIndividualSettings"));
var _createPopperElement = _interopRequireDefault(require("./createPopperElement"));
var _createTrigger = _interopRequireDefault(require("./createTrigger"));
var _getEventListenerHandlers = _interopRequireDefault(require("./getEventListenerHandlers"));
var _evaluateSettings = _interopRequireDefault(require("./evaluateSettings"));
var _removeTitle = _interopRequireDefault(require("../utils/removeTitle"));
var _utils = _interopRequireDefault(require("../../../utils/utils"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
var prefix = _utils["default"].prefixCls;
var idCounter = 1;
/**
* Creates tooltips for all el elements that match the instance's selector
* @param {Element[]} els
* @return {Object[]} Array of ref data objects
*/
function createTooltips(els) {
var _this = this;
return els.reduce(function (a, el) {
var id = idCounter;
var settings = (0, _evaluateSettings["default"])(_this.settings.performance ? _this.settings : (0, _getIndividualSettings["default"])(el, _this.settings));
var html = settings.html,
trigger = settings.trigger,
touchHold = settings.touchHold;
var title = el.getAttribute('title');
if (!title && !html) return a;
el.setAttribute('data-tooltipped', '');
el.setAttribute('aria-describedby', "".concat(prefix, "-tippy-tooltip-").concat(id));
(0, _removeTitle["default"])(el);
var popper = (0, _createPopperElement["default"])(id, title, settings);
var handlers = _getEventListenerHandlers["default"].call(_this, el, popper, settings);
var listeners = [];
trigger.trim().split(' ').forEach(function (event) {
return listeners = listeners.concat((0, _createTrigger["default"])(event, el, handlers, touchHold));
});
a.push({
id: id,
el: el,
popper: popper,
settings: settings,
listeners: listeners,
tippyInstance: _this
});
idCounter++;
return a;
}, []);
}