@opensig/opendesign
Version:
<p align="center"><img src="../docs/public/opendesign-logo-light.png"/></p> <h1 align="center">opendesign</h1> <p align="center">一个 Vue 3 组件库</p> <p align="center"><b>皮肤可定制,使用 TypeScript</b></p>
63 lines (62 loc) • 1.83 kB
JavaScript
;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const is = require("../_utils/is.js");
function getFlexValue(val) {
if (!val) {
return "";
}
if (["top", "left"].includes(val)) {
return "flex-start";
} else if (["bottom", "right"].includes(val)) {
return "flex-end";
} else if ("center" === val) {
return "center";
}
return "";
}
const defaultCheckRequired = (value) => {
return !is.isNull(value) && !is.isUndefined(value) && value !== "" && !is.isEmptyArray(value) && !is.isEmptyObject(value) ? "success" : "danger";
};
const defaultCheckType = (value, type) => {
return typeof value === type ? "success" : "danger";
};
function groupRules(rules, required) {
const tRules = {};
let hasRequired = false;
if (is.isArray(rules)) {
rules.forEach((item) => {
const triggers = item.triggers ? [].concat(item.triggers) : ["change"];
triggers.forEach((trigger) => {
const tr = tRules[trigger] || [];
if (item.type) {
tr.push((value) => ({
type: defaultCheckType(value, item.type),
message: item.message
}));
} else if (item.required) {
hasRequired = true;
tr.push((value) => ({
type: defaultCheckRequired(value),
message: item.message
}));
} else {
const fFn = item.validator;
if (fFn && is.isFunction(fFn)) {
tr.push(fFn);
}
}
tRules[trigger] = tr;
});
});
}
if (!hasRequired && required) {
tRules.change = tRules.change || [];
tRules.change.push((value) => ({
type: defaultCheckRequired(value),
message: "required!"
}));
}
return tRules;
}
exports.getFlexValue = getFlexValue;
exports.groupRules = groupRules;