import { isNumber } from 'lodash-es'; import ReactDOM from 'react-dom'; export { default as isChrome } from "./isChrome"; export var matchS3Prefix = function matchS3Prefix(str) { return /^v[0-9]_/.test(str); }; /** * 通过文件名获取文件类型 * @param fileName 文件名称 * @returns 文件类型 */ export var getFileSuffix = function getFileSuffix(fileName) { var splitArr = fileName.split('.'); return splitArr.length < 2 ? '' : splitArr[splitArr.length - 1]; }; /** * 通过类型获取文件名 * @param type 类型 * @returns */ export var getImageSuffixByFileType = function getImageSuffixByFileType(type) { var imageSuffix = ''; switch (type) { case 'jpeg': { imageSuffix = '.jpg'; break; } case 'gif': { imageSuffix = '.gif'; break; } case 'png': { imageSuffix = '.png'; break; } case 'vnd.wap.wbmp': { imageSuffix = '.wbmp'; break; } case 'x-up-wpng': { imageSuffix = '.wpng'; break; } case 'nbmp': { imageSuffix = '.nbmp'; break; } } return imageSuffix; }; // 获取谷歌浏览器版本 export function getChromeVersion() { var arr = navigator.userAgent.split(' '); var chromeVersion = ''; for (var i = 0; i < arr.length; i++) { if (/chrome/i.test(arr[i])) chromeVersion = arr[i]; } if (chromeVersion) { return Number(chromeVersion.split('/')[1].split('.')[0]); } else { return false; } } export var nextTick = function nextTick(func) { if (queueMicrotask) { queueMicrotask(func); return; } Promise.resolve().then(func); }; export var loop = function loop(items, callback) { for (var i = 0; i < items.length; i++) { var element = items[i]; var isBreak = callback(element); if (isBreak) { return; } if (element['children']) { loop(element['children'], callback); } } }; export var addEventListenerWrapper = function addEventListenerWrapper(target, eventType, cb, option) { /* eslint camelcase: 2 */ var callback = ReactDOM.unstable_batchedUpdates ? function run(e) { ReactDOM.unstable_batchedUpdates(cb, e); } : cb; if (target.addEventListener) { target.addEventListener(eventType, callback, option); } return { remove: function remove() { if (target.removeEventListener) { target.removeEventListener(eventType, callback); } } }; }; /** * Get transforms base on the given object. * @param {Object} obj - The target object. * @returns {string} A string contains transform values. */ export function getTransforms(_ref) { var rotate = _ref.rotate, scaleX = _ref.scaleX, scaleY = _ref.scaleY, translateX = _ref.translateX, translateY = _ref.translateY; var values = []; if (isNumber(translateX) && translateX !== 0) { values.push("translateX(".concat(translateX, "px)")); } if (isNumber(translateY) && translateY !== 0) { values.push("translateY(".concat(translateY, "px)")); } // Rotate should come first before scale to match orientation transform if (isNumber(rotate) && rotate !== 0) { values.push("rotate(".concat(rotate, "deg)")); } if (isNumber(scaleX) && scaleX !== 1) { values.push("scaleX(".concat(scaleX, ")")); } if (isNumber(scaleY) && scaleY !== 1) { values.push("scaleY(".concat(scaleY, ")")); } var transform = values.length ? values.join(' ') : 'none'; return { WebkitTransform: transform, msTransform: transform, transform: transform }; }