UNPKG

wot-design

Version:

Mobile UI components built on vue.js

114 lines (83 loc) 2.85 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports.getType = getType; exports.bus = exports.isEqual = exports.range = exports.padZero = exports.getScrollTargetEvent = exports.isSupportSticky = exports.isServer = void 0; var _vue = _interopRequireDefault(require("vue")); var isServer = _vue.default.prototype.$isServer; /** * judge if the browser is support sticky */ exports.isServer = isServer; var isSupportSticky = function isSupportSticky() { var div = document.createElement('div'); var style = 'display: none; position: -webkit-sticky; position: sticky'; div.style.cssText = style; var body = document.body; body.appendChild(div); var isSupport = /sticky/i.test(window.getComputedStyle(div).position); body.removeChild(div); div = null; return isSupport; }; /** * get the overscroll parentNode * @param {*} element current node * @param {*} rootElement root node */ exports.isSupportSticky = isSupportSticky; var getScrollTargetEvent = function getScrollTargetEvent(element, rootElement) { if (rootElement === void 0) { rootElement = window; } var currentNode = element; while (currentNode && currentNode.tagName !== 'HTML' && currentNode.tagName !== 'BODY' && currentNode !== rootElement && currentNode.nodeType === 1) { var overflowY = document.defaultView.getComputedStyle(currentNode).overflowY; if (overflowY === 'auto' || overflowY === 'scroll') { return currentNode; } currentNode = currentNode.parentNode; } return rootElement; }; exports.getScrollTargetEvent = getScrollTargetEvent; var padZero = function padZero(number, length) { if (length === void 0) { length = 2; } number = number + ''; while (number.length < length) { number = '0' + number; } return number; }; exports.padZero = padZero; var range = function range(value, min, max) { return Math.min(Math.max(value, min), max); }; /** @description 比较数值是否相等 */ exports.range = range; var isEqual = function isEqual(value1, value2) { if (value1 === value2) return true; if (!(value1 instanceof Array)) return false; if (!(value2 instanceof Array)) return false; if (value1.length !== value2.length) return false; for (var i = 0; i !== value1.length; ++i) { if (value1[i] !== value2[i]) return false; } return true; }; exports.isEqual = isEqual; var bus = new _vue.default(); /** * @description 获取目标原始类型 * @param target 任意类型 * @returns {string} type 数据类型 */ exports.bus = bus; function getType(target) { // 得到原生类型 var typeStr = Object.prototype.toString.call(target); // 拿到类型值 var type = typeStr.match(/\[object (\w+)\]/)[1]; // 类型值转小写并返回 return type.toLowerCase(); }