@zohodesk/dot
Version:
In this Library, we Provide Some Basic Components to Build Your Application
68 lines (56 loc) • 2.04 kB
JavaScript
export function stopBubbling(event) {
event.preventDefault();
event.stopPropagation && event.stopPropagation();
event.nativeEvent && event.nativeEvent.stopImmediatePropagation && event.nativeEvent.stopImmediatePropagation();
}
export function getFullName() {
let firstName = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
let lastName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
let fullName = '';
if (firstName !== null && firstName !== '') {
fullName = firstName;
}
if (lastName !== null && lastName !== '') {
fullName = `${fullName}${lastName}`;
}
return fullName;
}
export function shallowDiff() {
let a = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
let b = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
for (let i in a) {
if (!(i in b)) {
return true;
}
}
for (let i in b) {
if (a[i] !== b[i]) {
return true;
}
}
return false;
}
export function formatPhoneUrl(phone) {
if (/^[0-9]{1,10}$/.test(phone)) {
return phone.length == 10 ? `(${phone.slice(0, 3)}) ${phone.slice(3, 6)}-${phone.slice(6, 10)}` : phone;
}
return phone;
}
export const DUMMY_OBJECT = Object.freeze({});
export function getBrowserWithVersion() {
const userAgent = navigator.userAgent;
let tempMatch;
let browserMatch = userAgent.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*([\d\.]+)/i) || [];
if (userAgent.toLowerCase().indexOf('edge') !== -1) {
return userAgent.substring(userAgent.toLowerCase().indexOf('edge'));
}
if (/trident/i.test(browserMatch[1])) {
tempMatch = /\brv[ :]+(\d+(\.\d+)?)/g.exec(userAgent) || [];
return `IE ${tempMatch[1] || ''}`;
}
browserMatch = browserMatch[2] ? [browserMatch[1], browserMatch[2]] : [navigator.appName, navigator.appVersion, '-?'];
if ((tempMatch = userAgent.match(/version\/([\.\d]+)/i)) !== null) {
browserMatch[2] = tempMatch[1];
}
return browserMatch.join(' ');
}