yanzhen-design-vue
Version:
39 lines (38 loc) • 1.59 kB
JavaScript
;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const utils = require("@yanzhen-libs/utils");
const utilsVue = require("@yanzhen-libs/utils-vue");
const contacts = require("../constants/contacts.cjs");
function contactsModelValueProp() {
return utilsVue.buildProp({
type: utilsVue.definePropType([String, Number, Array])
});
}
function contactsModelValueProps() {
const props = {};
const emits = {};
for (const key of contacts.contactsModelValueType) {
props[key] = contactsModelValueProp();
emits[`onUpdate:${key}`] = Function;
}
return utilsVue.buildProps({ ...props, ...emits });
}
const contactsModelValueEmits = utilsVue.buildEmits(utilsVue.propsSeparate(contactsModelValueProps()).emits);
function useContactsVModels(prop, emit) {
const updatePropsKey = utilsVue.useDynamicProps({ update: true });
let types = [...contacts.contactsModelValueType].filter(
(key) => updatePropsKey.includes(key)
);
if (prop && !types.includes(prop)) prop = null;
if (!utils.isEmptyValue(prop) && types.includes(prop)) types = [prop];
const props = utilsVue.unref(utilsVue.useProps(types));
if (!utils.isEmptyValue(prop)) return utilsVue.useModel(props, prop, emit);
return Object.keys(props).reduce((prev, key) => {
prev[key] = utilsVue.useModel(props, key, emit);
return prev;
}, {});
}
exports.contactsModelValueEmits = contactsModelValueEmits;
exports.contactsModelValueProp = contactsModelValueProp;
exports.contactsModelValueProps = contactsModelValueProps;
exports.useContactsVModels = useContactsVModels;