UNPKG

vimo-dt

Version:

A Vue2.x UI Project For Mobile & HyBrid

155 lines (129 loc) 3.73 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.transitionEnd = transitionEnd; exports.docReady = docReady; exports.pointerCoord = pointerCoord; exports.isActive = isActive; exports.hasFocus = hasFocus; exports.setElementClass = setElementClass; exports.hasClass = hasClass; exports.addClass = addClass; exports.removeClass = removeClass; exports.clamp = clamp; exports.defaults = defaults; exports.firstUpperCase = firstUpperCase; exports.parsePxUnit = parsePxUnit; var _registerListener = require('./register-listener'); var _registerListener2 = _interopRequireDefault(_registerListener); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function transitionEnd(el, callbackFn) { var unRegs = []; function unregister() { unRegs.forEach(function (unReg) { unReg && unReg(); }); } function onTransitionEnd(ev) { if (el === ev.target) { callbackFn && callbackFn(ev); unregister(); } } if (el) { (0, _registerListener2.default)(el, 'webkitTransitionEnd', onTransitionEnd, {}, unRegs); (0, _registerListener2.default)(el, 'transitionend', onTransitionEnd, {}, unRegs); } return unregister; } function docReady(callback) { var promise = null; if (!callback) { promise = new Promise(function (resolve) { callback = resolve; }); } if (document.readyState === 'complete' || document.readyState === 'interactive') { callback(); } else { document.addEventListener('DOMContentLoaded', completed, false); window.addEventListener('load', completed, false); } function completed() { document.removeEventListener('DOMContentLoaded', completed, false); window.removeEventListener('load', completed, false); callback(); } return promise; } function pointerCoord(ev) { if (ev) { var changedTouches = ev.changedTouches; if (changedTouches && changedTouches.length > 0) { var touch = changedTouches[0]; return { x: touch.clientX, y: touch.clientY }; } var pageX = ev.pageX; if (pageX !== undefined) { return { x: pageX, y: ev.pageY }; } } return { x: 0, y: 0 }; } function isActive(ele) { return !!(ele && document.activeElement === ele); } function hasFocus(ele) { return isActive(ele) && ele.parentElement.querySelector(':focus') === ele; } function setElementClass(ele, className, add) { if (add) { addClass(ele, className); } else { removeClass(ele, className); } } function hasClass(obj, cls) { return obj.className.match(new RegExp('(\\s|^)' + cls + '(\\s|$)')); } function addClass(obj, cls) { if (!hasClass(obj, cls)) { if (obj.className.trim()) { obj.className += ' ' + cls; } else { obj.className = cls; } } } function removeClass(obj, cls) { if (hasClass(obj, cls)) { var reg = new RegExp('(\\s|^)' + cls + '(\\s|$)'); obj.className = obj.className.replace(reg, ' ').trim(); } } function clamp(min, n, max) { return Math.max(min, Math.min(n, max)); } function defaults(dest) { for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { args[_key - 1] = arguments[_key]; } for (var i = arguments.length - 1; i >= 1; i--) { var source = arguments[i]; if (source) { for (var key in source) { if (source.hasOwnProperty(key) && !dest.hasOwnProperty(key)) { dest[key] = source[key]; } } } } return dest; } function firstUpperCase(str) { return str.toString()[0].toUpperCase() + str.toString().slice(1); } function parsePxUnit(val) { return !!val && val.indexOf('px') > 0 ? parseInt(val, 10) : 0; }