113 lines
2.9 KiB
JavaScript
113 lines
2.9 KiB
JavaScript
import { ohSnap } from "./ohsnap";
|
||
|
||
export function trans(langKey, replace = {}) {
|
||
let line = window.FleetCart.langs[langKey];
|
||
|
||
for (let key in replace) {
|
||
line = line.replace(`:${key}`, replace[key]);
|
||
}
|
||
|
||
return line;
|
||
}
|
||
|
||
export function keypressAction(actions) {
|
||
$(document).keypressAction({ actions });
|
||
}
|
||
|
||
export function notify(type, message, { duration = 5000, context = document }) {
|
||
let types = {
|
||
info: "blue",
|
||
success: "green",
|
||
warning: "yellow",
|
||
error: "red",
|
||
};
|
||
|
||
ohSnap(message, {
|
||
"container-id": "notification-toast",
|
||
context,
|
||
color: types[type],
|
||
duration,
|
||
});
|
||
}
|
||
|
||
export function info(message, duration) {
|
||
notify("info", message, { duration });
|
||
}
|
||
|
||
export function success(message, duration) {
|
||
notify("success", message, { duration });
|
||
}
|
||
|
||
export function warning(message, duration) {
|
||
notify("warning", message, { duration });
|
||
}
|
||
|
||
export function error(message, duration) {
|
||
notify("error", message, { duration });
|
||
}
|
||
|
||
export function generateSlug(name) {
|
||
let slug = "";
|
||
|
||
// Change to lower case
|
||
const nameLower = name.toLowerCase();
|
||
|
||
// Letter "e"
|
||
slug = nameLower.replace(/e|é|è|ẽ|ẻ|ẹ|ê|ế|ề|ễ|ể|ệ/gi, "e");
|
||
// Letter "a"
|
||
slug = slug.replace(/a|á|à|ã|ả|ạ|ă|ắ|ằ|ẵ|ẳ|ặ|â|ấ|ầ|ẫ|ẩ|ậ/gi, "a");
|
||
// Letter "o"
|
||
slug = slug.replace(/o|ó|ò|õ|ỏ|ọ|ô|ố|ồ|ỗ|ổ|ộ|ơ|ớ|ờ|ỡ|ở|ợ/gi, "o");
|
||
// Letter "u"
|
||
slug = slug.replace(/u|ú|ù|ũ|ủ|ụ|ư|ứ|ừ|ữ|ử|ự/gi, "u");
|
||
// Letter "c"
|
||
slug = slug.replace(/ć|ĉ|č|ċ|ç/gi, "c");
|
||
// Letter "i"
|
||
slug = slug.replace(/î|ï|í|ī|į|ì/gi, "i");
|
||
// Letter (/, ', ")
|
||
slug = slug.replace(/\/|'|"|′|’|,|\?|\.|;|]|\[|\+|=|\$|%|&|<|>|:/g, " ");
|
||
// Letter "d"
|
||
slug = slug.replace(/đ/gi, "d");
|
||
// Trim the last whitespace
|
||
slug = slug.replace(/\s*$/g, "");
|
||
// Change whitespace to "-"
|
||
slug = slug.replace(/\s+/g, "-");
|
||
|
||
return slug;
|
||
}
|
||
|
||
/**
|
||
* @see https://stackoverflow.com/a/3955096
|
||
*/
|
||
if (!Array.prototype.remove) {
|
||
Array.prototype.remove = function () {
|
||
let what,
|
||
a = arguments,
|
||
L = a.length,
|
||
ax;
|
||
|
||
while (L && this.length) {
|
||
what = a[--L];
|
||
|
||
while ((ax = this.indexOf(what)) !== -1) {
|
||
this.splice(ax, 1);
|
||
}
|
||
}
|
||
|
||
return this;
|
||
};
|
||
}
|
||
|
||
/**
|
||
* @see https://stackoverflow.com/a/4673436
|
||
*/
|
||
if (!String.prototype.format) {
|
||
String.prototype.format = function () {
|
||
return this.replace(/%(\d+)%/g, (match, number) => {
|
||
return typeof arguments[number] !== "undefined"
|
||
? arguments[number]
|
||
: match;
|
||
});
|
||
};
|
||
}
|