| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 | 
							- import { basic } from '../mixins/basic';
 
- function mapKeys(source, target, map) {
 
-     Object.keys(map).forEach((key) => {
 
-         if (source[key]) {
 
-             target[map[key]] = source[key];
 
-         }
 
-     });
 
- }
 
- function VantComponent(vantOptions) {
 
-     const options = {};
 
-     mapKeys(vantOptions, options, {
 
-         data: 'data',
 
-         props: 'properties',
 
-         watch: 'observers',
 
-         mixins: 'behaviors',
 
-         methods: 'methods',
 
-         beforeCreate: 'created',
 
-         created: 'attached',
 
-         mounted: 'ready',
 
-         destroyed: 'detached',
 
-         classes: 'externalClasses',
 
-     });
 
-     // add default externalClasses
 
-     options.externalClasses = options.externalClasses || [];
 
-     options.externalClasses.push('custom-class');
 
-     // add default behaviors
 
-     options.behaviors = options.behaviors || [];
 
-     options.behaviors.push(basic);
 
-     // add relations
 
-     const { relation } = vantOptions;
 
-     if (relation) {
 
-         options.relations = relation.relations;
 
-         options.behaviors.push(relation.mixin);
 
-     }
 
-     // map field to form-field behavior
 
-     if (vantOptions.field) {
 
-         options.behaviors.push('wx://form-field');
 
-     }
 
-     // add default options
 
-     options.options = {
 
-         multipleSlots: true,
 
-         addGlobalClass: true,
 
-     };
 
-     Component(options);
 
- }
 
- export { VantComponent };
 
 
  |