182 lines
7.1 KiB
JavaScript
Raw Normal View History

2024-01-29 09:26:07 +08:00
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.formItemRule = exports.formItemMisc = exports.formItemSize = void 0;
const vue_1 = require("vue");
const lodash_1 = require("lodash");
const context_1 = require("./context");
const _utils_1 = require("../../_utils");
function formItemSize(props) {
const NForm = (0, vue_1.inject)(context_1.formInjectionKey, null);
return {
mergedSize: (0, vue_1.computed)(() => {
if (props.size !== undefined)
return props.size;
if ((NForm === null || NForm === void 0 ? void 0 : NForm.props.size) !== undefined)
return NForm.props.size;
return 'medium';
})
};
}
exports.formItemSize = formItemSize;
// eslint-disable-next-line @typescript-eslint/explicit-function-return-type
function formItemMisc(props) {
const NForm = (0, vue_1.inject)(context_1.formInjectionKey, null);
const mergedLabelPlacementRef = (0, vue_1.computed)(() => {
const { labelPlacement } = props;
if (labelPlacement !== undefined)
return labelPlacement;
if (NForm === null || NForm === void 0 ? void 0 : NForm.props.labelPlacement)
return NForm.props.labelPlacement;
return 'top';
});
const isAutoLabelWidthRef = (0, vue_1.computed)(() => {
return (mergedLabelPlacementRef.value === 'left' &&
(props.labelWidth === 'auto' || (NForm === null || NForm === void 0 ? void 0 : NForm.props.labelWidth) === 'auto'));
});
const mergedLabelWidthRef = (0, vue_1.computed)(() => {
if (mergedLabelPlacementRef.value === 'top')
return;
const { labelWidth } = props;
if (labelWidth !== undefined && labelWidth !== 'auto') {
return (0, _utils_1.formatLength)(labelWidth);
}
if (isAutoLabelWidthRef.value) {
const autoComputedWidth = NForm === null || NForm === void 0 ? void 0 : NForm.maxChildLabelWidthRef.value;
if (autoComputedWidth !== undefined) {
return (0, _utils_1.formatLength)(autoComputedWidth);
}
else {
return undefined;
}
}
if ((NForm === null || NForm === void 0 ? void 0 : NForm.props.labelWidth) !== undefined) {
return (0, _utils_1.formatLength)(NForm.props.labelWidth);
}
return undefined;
});
const mergedLabelAlignRef = (0, vue_1.computed)(() => {
const { labelAlign } = props;
if (labelAlign)
return labelAlign;
if (NForm === null || NForm === void 0 ? void 0 : NForm.props.labelAlign)
return NForm.props.labelAlign;
return undefined;
});
const mergedLabelStyleRef = (0, vue_1.computed)(() => {
var _a;
return [
(_a = props.labelProps) === null || _a === void 0 ? void 0 : _a.style,
props.labelStyle,
{
width: mergedLabelWidthRef.value
}
];
});
const mergedShowRequireMarkRef = (0, vue_1.computed)(() => {
const { showRequireMark } = props;
if (showRequireMark !== undefined)
return showRequireMark;
return NForm === null || NForm === void 0 ? void 0 : NForm.props.showRequireMark;
});
const mergedRequireMarkPlacementRef = (0, vue_1.computed)(() => {
const { requireMarkPlacement } = props;
if (requireMarkPlacement !== undefined)
return requireMarkPlacement;
return (NForm === null || NForm === void 0 ? void 0 : NForm.props.requireMarkPlacement) || 'right';
});
const validationErroredRef = (0, vue_1.ref)(false);
const validationWarnedRef = (0, vue_1.ref)(false);
const mergedValidationStatusRef = (0, vue_1.computed)(() => {
const { validationStatus } = props;
if (validationStatus !== undefined)
return validationStatus;
if (validationErroredRef.value)
return 'error';
if (validationWarnedRef.value)
return 'warning';
return undefined;
});
const mergedShowFeedbackRef = (0, vue_1.computed)(() => {
const { showFeedback } = props;
if (showFeedback !== undefined)
return showFeedback;
if ((NForm === null || NForm === void 0 ? void 0 : NForm.props.showFeedback) !== undefined)
return NForm.props.showFeedback;
return true;
});
const mergedShowLabelRef = (0, vue_1.computed)(() => {
const { showLabel } = props;
if (showLabel !== undefined)
return showLabel;
if ((NForm === null || NForm === void 0 ? void 0 : NForm.props.showLabel) !== undefined)
return NForm.props.showLabel;
return true;
});
return {
validationErrored: validationErroredRef,
validationWarned: validationWarnedRef,
mergedLabelStyle: mergedLabelStyleRef,
mergedLabelPlacement: mergedLabelPlacementRef,
mergedLabelAlign: mergedLabelAlignRef,
mergedShowRequireMark: mergedShowRequireMarkRef,
mergedRequireMarkPlacement: mergedRequireMarkPlacementRef,
mergedValidationStatus: mergedValidationStatusRef,
mergedShowFeedback: mergedShowFeedbackRef,
mergedShowLabel: mergedShowLabelRef,
isAutoLabelWidth: isAutoLabelWidthRef
};
}
exports.formItemMisc = formItemMisc;
// eslint-disable-next-line @typescript-eslint/explicit-function-return-type
function formItemRule(props) {
const NForm = (0, vue_1.inject)(context_1.formInjectionKey, null);
const compatibleRulePathRef = (0, vue_1.computed)(() => {
const { rulePath } = props;
if (rulePath !== undefined)
return rulePath;
const { path } = props;
if (path !== undefined)
return path;
return undefined;
});
const mergedRulesRef = (0, vue_1.computed)(() => {
const rules = [];
const { rule } = props;
if (rule !== undefined) {
if (Array.isArray(rule))
rules.push(...rule);
else
rules.push(rule);
}
if (NForm) {
const { rules: formRules } = NForm.props;
const { value: rulePath } = compatibleRulePathRef;
if (formRules !== undefined && rulePath !== undefined) {
const formRule = (0, lodash_1.get)(formRules, rulePath);
if (formRule !== undefined) {
if (Array.isArray(formRule)) {
rules.push(...formRule);
}
else {
// terminate object must be a form item rule
rules.push(formRule);
}
}
}
}
return rules;
});
const hasRequiredRuleRef = (0, vue_1.computed)(() => {
return mergedRulesRef.value.some((rule) => rule.required);
});
// deprecated
const mergedRequiredRef = (0, vue_1.computed)(() => {
return hasRequiredRuleRef.value || props.required;
});
return {
mergedRules: mergedRulesRef,
mergedRequired: mergedRequiredRef
};
}
exports.formItemRule = formItemRule;