63 lines
1.4 KiB
JavaScript
63 lines
1.4 KiB
JavaScript
/* eslint no-extend-native: "off" */
|
|
if (!String.prototype.includes) {
|
|
String.prototype.includes = function(search, start) {
|
|
'use strict';
|
|
if (typeof start !== 'number') {
|
|
start = 0;
|
|
}
|
|
|
|
if (start + search.length > this.length) {
|
|
return false;
|
|
}
|
|
return this.indexOf(search, start) !== -1;
|
|
};
|
|
}
|
|
|
|
export function getPrefix() {
|
|
const ua = window.navigator.userAgent;
|
|
let prefix = '';
|
|
if (/MSIE/g.test(ua)) {
|
|
prefix = '-ms-';
|
|
} else if (/Firefox/g.test(ua)) {
|
|
prefix = '-moz-';
|
|
} else if (/(WebKit)/i.test(ua)) {
|
|
prefix = '-webkit-';
|
|
} else if (/Opera/g.test(ua)) {
|
|
prefix = '-o-';
|
|
}
|
|
return prefix;
|
|
}
|
|
|
|
export function flip(o) {
|
|
const flipped = {};
|
|
for (const i in o) {
|
|
if (o.hasOwnProperty(i)) {
|
|
flipped[o[i]] = i;
|
|
}
|
|
}
|
|
return flipped;
|
|
}
|
|
|
|
export function reverseDirection(direction) {
|
|
const mapping = {
|
|
'top': 'bottom',
|
|
'right': 'left',
|
|
'bottom': 'top',
|
|
'left': 'right',
|
|
'right top': 'left bottom',
|
|
'top right': 'bottom left',
|
|
'bottom right': 'top left',
|
|
'right bottom': 'left top',
|
|
'left bottom': 'right top',
|
|
'bottom left': 'top right',
|
|
'top left': 'bottom right',
|
|
'left top': 'right bottom'
|
|
};
|
|
return mapping.hasOwnProperty(direction) ? mapping[direction] : direction;
|
|
}
|
|
|
|
export function isDirection(n) {
|
|
const reg = /^(top|left|right|bottom)$/i;
|
|
return reg.test(n);
|
|
}
|