export function dataToArray(vars) { if (Array.isArray(vars)) { return vars; } return [vars]; } const transitionEndObject = { transition: 'transitionend', WebkitTransition: 'webkitTransitionEnd', MozTransition: 'transitionend', OTransition: 'oTransitionEnd otransitionend', }; export const transitionStr = Object.keys(transitionEndObject).filter(key => { if (typeof document === 'undefined') { return false; } const html = document.getElementsByTagName('html')[0]; return key in (html ? html.style : {}); })[0]; export const transitionEnd = transitionEndObject[transitionStr]; export function addEventListener(target, eventType, callback, options) { if (target.addEventListener) { target.addEventListener(eventType, callback, options); } else if (target.attachEvent) { target.attachEvent(`on${eventType}`, callback); } } export function removeEventListener(target, eventType, callback, options) { if (target.removeEventListener) { target.removeEventListener(eventType, callback, options); } else if (target.attachEvent) { target.detachEvent(`on${eventType}`, callback); } } export function transformArguments(arg, cb) { let result; if (typeof arg === 'function') { result = arg(cb); } else { result = arg; } if (Array.isArray(result)) { if (result.length === 2) { return result; } return [result[0], result[1]]; } return [result]; } export const isNumeric = value => { return !isNaN(parseFloat(value)) && isFinite(value); // eslint-disable-line };