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);
|
|
}
|