@opensig/opendesign
Version:
63 lines (62 loc) • 1.76 kB
JavaScript
import { isArray, isFunction, isNull, isUndefined, isEmptyArray, isEmptyObject } from "../_utils/is.mjs";
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 !isNull(value) && !isUndefined(value) && value !== "" && !isEmptyArray(value) && !isEmptyObject(value) ? "success" : "danger";
};
const defaultCheckType = (value, type) => {
return typeof value === type ? "success" : "danger";
};
function groupRules(rules, required) {
const tRules = {};
let hasRequired = false;
if (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 && 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;
}
export {
getFlexValue,
groupRules
};