@grandlinex/react-components
Version:
121 lines (120 loc) • 3.96 kB
JavaScript
;
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.CMap = exports.LocalStorage = exports.getSaveWindow = exports.copyToClipboard = exports.md5 = exports.getGravatarUrl = void 0;
exports.sleep = sleep;
exports.cnx = cnx;
exports.useCnx = useCnx;
exports.uuid = uuid;
exports.sid = sid;
exports.trimmer = trimmer;
exports.getDocumentMeta = getDocumentMeta;
exports.sGen = sGen;
exports.loop = loop;
const react_1 = require("react");
const MD5_1 = __importDefault(require("./MD5"));
exports.md5 = MD5_1.default;
const LocalStorage_1 = __importDefault(require("./LocalStorage"));
exports.LocalStorage = LocalStorage_1.default;
const Clipboard_1 = __importDefault(require("./Clipboard"));
exports.copyToClipboard = Clipboard_1.default;
const BuildHelper_1 = __importDefault(require("./BuildHelper"));
exports.getSaveWindow = BuildHelper_1.default;
const CoreMap_1 = __importDefault(require("./CoreMap"));
exports.CMap = CoreMap_1.default;
__exportStar(require("./GLang"), exports);
__exportStar(require("./MainContext"), exports);
__exportStar(require("./LocalStorage"), exports);
__exportStar(require("./CookieUtil"), exports);
__exportStar(require("./BrowserUtil"), exports);
__exportStar(require("./JWT"), exports);
async function sleep(ms) {
return new Promise((resolve) => {
setTimeout(resolve, ms);
});
}
function cnx(...classes) {
const del = [];
classes.forEach((sel) => {
if (typeof sel === 'string') {
del.push(sel);
}
if (Array.isArray(sel)) {
const [val, cl, cd] = sel;
if (val) {
del.push(cl);
}
else if (!val && !!cd) {
del.push(cd);
}
}
});
const out = del.join(' ');
if (del.length === 0 || out === '') {
return undefined;
}
return out;
}
function useCnx(...classes) {
return (0, react_1.useMemo)(() => cnx(...classes), [classes]);
}
function sGen(inp) {
return inp.replace(/[xy]/g, (c) => {
// eslint-disable-next-line no-bitwise
const r = (Math.random() * 16) | 0;
// eslint-disable-next-line no-bitwise
const v = c === 'x' ? r : (r & 0x3) | 0x8;
return v.toString(16);
});
}
function uuid() {
return sGen('xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx');
}
function sid() {
return sGen('xxxx-4xxx-yxxx');
}
function trimmer(inp) {
if (inp.length > 20) {
return `${inp.substring(0, 20)}...`;
}
return inp;
}
function getDocumentMeta(key) {
const el = document
.querySelector(`meta[name='${key}']`)
?.getAttribute('content');
if (!el || el === '') {
return null;
}
return el;
}
const getGravatarUrl = (email) => {
const hash = (0, MD5_1.default)(email);
return `https://www.gravatar.com/avatar/${hash}?d=identicon`;
};
exports.getGravatarUrl = getGravatarUrl;
function loop(count, fc, start = 0, step = 1) {
if (step === 0)
throw new Error('Step cannot be 0');
const arr = [];
for (let i = start; i < count; i += step) {
arr.push(fc(i));
}
return arr;
}