UNPKG

@opensig/opendesign

Version:

63 lines (62 loc) 1.76 kB
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 };