1
This commit is contained in:
46
admin/node_modules/element-plus/es/utils/vue/props/runtime.mjs
generated
vendored
Normal file
46
admin/node_modules/element-plus/es/utils/vue/props/runtime.mjs
generated
vendored
Normal file
@@ -0,0 +1,46 @@
|
||||
import { warn } from 'vue';
|
||||
import { fromPairs } from 'lodash-unified';
|
||||
import { isObject, hasOwn } from '@vue/shared';
|
||||
|
||||
const epPropKey = "__epPropKey";
|
||||
const definePropType = (val) => val;
|
||||
const isEpProp = (val) => isObject(val) && !!val[epPropKey];
|
||||
const buildProp = (prop, key) => {
|
||||
if (!isObject(prop) || isEpProp(prop))
|
||||
return prop;
|
||||
const { values, required, default: defaultValue, type, validator } = prop;
|
||||
const _validator = values || validator ? (val) => {
|
||||
let valid = false;
|
||||
let allowedValues = [];
|
||||
if (values) {
|
||||
allowedValues = Array.from(values);
|
||||
if (hasOwn(prop, "default")) {
|
||||
allowedValues.push(defaultValue);
|
||||
}
|
||||
valid || (valid = allowedValues.includes(val));
|
||||
}
|
||||
if (validator)
|
||||
valid || (valid = validator(val));
|
||||
if (!valid && allowedValues.length > 0) {
|
||||
const allowValuesText = [...new Set(allowedValues)].map((value) => JSON.stringify(value)).join(", ");
|
||||
warn(`Invalid prop: validation failed${key ? ` for prop "${key}"` : ""}. Expected one of [${allowValuesText}], got value ${JSON.stringify(val)}.`);
|
||||
}
|
||||
return valid;
|
||||
} : void 0;
|
||||
const epProp = {
|
||||
type,
|
||||
required: !!required,
|
||||
validator: _validator,
|
||||
[epPropKey]: true
|
||||
};
|
||||
if (hasOwn(prop, "default"))
|
||||
epProp.default = defaultValue;
|
||||
return epProp;
|
||||
};
|
||||
const buildProps = (props) => fromPairs(Object.entries(props).map(([key, option]) => [
|
||||
key,
|
||||
buildProp(option, key)
|
||||
]));
|
||||
|
||||
export { buildProp, buildProps, definePropType, epPropKey, isEpProp };
|
||||
//# sourceMappingURL=runtime.mjs.map
|
||||
Reference in New Issue
Block a user