UNPKG

maycur-business

Version:

maycur business react components of web

58 lines (50 loc) 1.5 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = createTrigger; var _globals = require("./globals"); /** * Creates a trigger * @param {Object} event - the custom event specified in the `trigger` setting * @param {Element} el - tooltipped element * @param {Object} handlers - the handlers for each listener * @param {Boolean} touchHold * @return {Array} - array of listener objects */ function createTrigger(event, el, handlers, touchHold) { var listeners = []; if (event === 'manual') return listeners; // Enter el.addEventListener(event, handlers.handleTrigger); listeners.push({ event: event, handler: handlers.handleTrigger }); // Leave if (event === 'mouseenter') { if (_globals.Browser.SUPPORTS_TOUCH && touchHold) { el.addEventListener('touchstart', handlers.handleTrigger); listeners.push({ event: 'touchstart', handler: handlers.handleTrigger }); el.addEventListener('touchend', handlers.handleMouseleave); listeners.push({ event: 'touchend', handler: handlers.handleMouseleave }); } el.addEventListener('mouseleave', handlers.handleMouseleave); listeners.push({ event: 'mouseleave', handler: handlers.handleMouseleave }); } if (event === 'focus') { el.addEventListener('blur', handlers.handleBlur); listeners.push({ event: 'blur', handler: handlers.handleBlur }); } return listeners; }