UNPKG

maycur-business

Version:

maycur business react components of web

65 lines (51 loc) 2.19 kB
"use strict"; 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; }, []); }