@cmstops/pro-compo
Version:
[物料平台文档中心](https://arco.design/docs/material/guide)
167 lines (166 loc) • 4.91 kB
JavaScript
;
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
var dayjs = require("dayjs");
var ColorThief = require("colorthief");
var api = require("../imageCrop/script/api.js");
var config = require("../config.js");
function _interopDefaultLegacy(e) {
return e && typeof e === "object" && "default" in e ? e : { "default": e };
}
var dayjs__default = /* @__PURE__ */ _interopDefaultLegacy(dayjs);
var ColorThief__default = /* @__PURE__ */ _interopDefaultLegacy(ColorThief);
const dateYYYYDDMMHHmm = (date) => {
if (!date)
return "--";
return dayjs__default["default"](date).format("YYYY-DD-MM HH:mm");
};
const generateUUID = () => {
let d = new Date().getTime();
const uuid = "xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx".replace(
/[xy]/g,
function(c) {
const r = (d + Math.random() * 16) % 16 | 0;
d = Math.floor(d / 16);
return (c === "x" ? r : r & 3 | 8).toString(16);
}
);
return uuid;
};
const to = (promise, errorExt) => {
return promise.then((data) => [null, data]).catch((err) => {
if (errorExt) {
const parsedError = { ...err, ...errorExt };
return [parsedError, void 0];
}
return [err, void 0];
});
};
function replaceSuffix(str, insert) {
const reg = /\.[^\.]+$/;
const match = str.match(reg);
return match ? str.replace(reg, insert + match) : str + insert;
}
const noCoverText = (item) => {
const text = item.alias || item.title || "\u65E0\u56FE";
return text.substring(0, 2);
};
const timeFormat = (value) => {
if (value === 0)
return "--";
if (!value)
return "--";
if (typeof value === "number" && String(value).length === 10) {
value *= 1e3;
}
const date = new Date(value);
return `${date.getFullYear()}-${date.getMonth() + 1}-${date.getDate()} ${date.getHours() < 10 ? `0${date.getHours()}` : date.getHours()}:${date.getMinutes() < 10 ? `0${date.getMinutes()}` : date.getMinutes()}`;
};
const validateForm = (formRef) => {
return new Promise((resolve, reject) => {
try {
formRef.value.validate((valid) => {
if (valid) {
resolve(false);
} else {
resolve(true);
}
});
} catch (error) {
resolve(false);
}
});
};
function getRealUrl(BASE_API, url) {
return new Promise((resove, reject) => {
try {
const flag = !url.includes("/poplar/v2");
const cape = url.includes("cape/v1/upload");
const extented = !url.includes(BASE_API) && !url.includes(config.DEFAULT_UPLOAD_URL);
if (flag || extented || cape) {
resove(url);
} else {
api.getFileRealUrl(BASE_API, url).then((res) => {
resove(res.message);
});
}
} catch (e) {
reject(e);
}
});
}
function getThemeColor(BASE_API, src) {
return new Promise((resolve, reject) => {
const getUrl = getRealUrl(BASE_API, src);
getUrl.then((url) => {
const colorThief = new ColorThief__default["default"]();
const img = document.createElement("img");
img.crossOrigin = "Anonymous";
img.setAttribute("src", `${url}?t=${+new Date()}`);
img.onload = () => {
let themeColors = [];
const getResult = colorThief.getPalette(img);
if (getResult) {
themeColors = getResult.slice(0, 6);
} else {
themeColors = [[255, 255, 255]];
}
resolve(themeColors);
};
img.onerror = (e) => {
reject(e);
};
}).catch((e) => {
reject(e);
});
});
}
async function copyContent(content) {
try {
if (typeof content === "string") {
const input = document.createElement("input");
input.setAttribute("value", content);
document.body.appendChild(input);
input.select();
document.execCommand("copy");
document.body.removeChild(input);
return true;
}
if (window.__POWERED_BY_WUJIE__) {
await window.parent.navigator.clipboard.write([
new ClipboardItem({
"image/png": content
})
]);
} else {
await navigator.clipboard.write([
new ClipboardItem({
"image/png": content
})
]);
}
return true;
} catch (e) {
return false;
}
}
function mediaTime(v) {
const h = Math.floor(v / 3600);
const m = Math.floor(v % 3600 / 60);
const s = Math.floor(v % 60);
let ret = "";
ret += `${h < 10 ? `0${h}` : h}:`;
ret += `${m < 10 ? `0${m}` : m}:`;
ret += s < 10 ? `0${s}` : s;
return ret;
}
exports.copyContent = copyContent;
exports.dateYYYYDDMMHHmm = dateYYYYDDMMHHmm;
exports.generateUUID = generateUUID;
exports.getRealUrl = getRealUrl;
exports.getThemeColor = getThemeColor;
exports.mediaTime = mediaTime;
exports.noCoverText = noCoverText;
exports.replaceSuffix = replaceSuffix;
exports.timeFormat = timeFormat;
exports.to = to;
exports.validateForm = validateForm;