UNPKG

yanzhen-design-vue

Version:

39 lines (38 loc) 1.59 kB
"use strict"; 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;