component.js 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. var basic_1 = require('./../mixins/basic.js');
  4. var index_1 = require('./../mixins/observer/index.js');
  5. function mapKeys(source, target, map) {
  6. Object.keys(map).forEach(function (key) {
  7. if (source[key]) {
  8. target[map[key]] = source[key];
  9. }
  10. });
  11. }
  12. function VantComponent(vantOptions) {
  13. var _a;
  14. if (vantOptions === void 0) {
  15. vantOptions = {};
  16. }
  17. var options = {};
  18. mapKeys(vantOptions, options, {
  19. data: 'data',
  20. props: 'properties',
  21. mixins: 'behaviors',
  22. methods: 'methods',
  23. beforeCreate: 'created',
  24. created: 'attached',
  25. mounted: 'ready',
  26. relations: 'relations',
  27. destroyed: 'detached',
  28. classes: 'externalClasses'
  29. });
  30. var relation = vantOptions.relation;
  31. if (relation) {
  32. options.relations = Object.assign(options.relations || {}, (_a = {}, _a["../" + relation.name + "/index"] = relation, _a));
  33. }
  34. // add default externalClasses
  35. options.externalClasses = options.externalClasses || [];
  36. options.externalClasses.push('custom-class');
  37. // add default behaviors
  38. options.behaviors = options.behaviors || [];
  39. options.behaviors.push(basic_1.basic);
  40. // map field to form-field behavior
  41. if (vantOptions.field) {
  42. options.behaviors.push('wx://form-field');
  43. }
  44. // add default options
  45. options.options = {
  46. multipleSlots: true,
  47. addGlobalClass: true
  48. };
  49. index_1.observe(vantOptions, options);
  50. Component(options);
  51. }
  52. exports.VantComponent = VantComponent;
  53. //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudC5qcyJdLCJuYW1lcyI6WyJPYmplY3QiLCJ2YWx1ZSIsImJhc2ljXzEiLCJyZXF1aXJlIiwiaW5kZXhfMSIsInNvdXJjZSIsInRhcmdldCIsIm1hcCIsInZhbnRPcHRpb25zIiwib3B0aW9ucyIsIm1hcEtleXMiLCJkYXRhIiwicHJvcHMiLCJtaXhpbnMiLCJtZXRob2RzIiwiYmVmb3JlQ3JlYXRlIiwiY3JlYXRlZCIsIm1vdW50ZWQiLCJyZWxhdGlvbnMiLCJkZXN0cm95ZWQiLCJjbGFzc2VzIiwicmVsYXRpb24iLCJfYSIsIm11bHRpcGxlU2xvdHMiLCJhZGRHbG9iYWxDbGFzcyIsIkNvbXBvbmVudCIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiI7O0FBQ0FBLE9BQUFBLGNBQUFBLENBQUFBLE9BQUFBLEVBQUFBLFlBQUFBLEVBQTZDLEVBQUVDLE9BQS9DRCxJQUE2QyxFQUE3Q0E7QUFDQSxJQUFJRSxVQUFVQyxRQUFkLHNCQUFjQSxDQUFkO0FBQ0EsSUFBSUMsVUFBVUQsUUFBZCwrQkFBY0EsQ0FBZDtBQUNBLFNBQUEsT0FBQSxDQUFBLE1BQUEsRUFBQSxNQUFBLEVBQUEsR0FBQSxFQUFzQztBQUNsQ0gsV0FBQUEsSUFBQUEsQ0FBQUEsR0FBQUEsRUFBQUEsT0FBQUEsQ0FBeUIsVUFBQSxHQUFBLEVBQWU7QUFDcEMsWUFBSUssT0FBSixHQUFJQSxDQUFKLEVBQWlCO0FBQ2JDLG1CQUFPQyxJQUFQRCxHQUFPQyxDQUFQRCxJQUFtQkQsT0FBbkJDLEdBQW1CRCxDQUFuQkM7QUFDSDtBQUhMTixLQUFBQTtBQUtIO0FBQ0QsU0FBQSxhQUFBLENBQUEsV0FBQSxFQUFvQztBQUNoQyxRQUFBLEVBQUE7QUFDQSxRQUFJUSxnQkFBZ0IsS0FBcEIsQ0FBQSxFQUE0QjtBQUFFQSxzQkFBQUEsRUFBQUE7QUFBbUI7QUFDakQsUUFBSUMsVUFBSixFQUFBO0FBQ0FDLFlBQUFBLFdBQUFBLEVBQUFBLE9BQUFBLEVBQThCO0FBQzFCQyxjQUQwQixNQUFBO0FBRTFCQyxlQUYwQixZQUFBO0FBRzFCQyxnQkFIMEIsV0FBQTtBQUkxQkMsaUJBSjBCLFNBQUE7QUFLMUJDLHNCQUwwQixTQUFBO0FBTTFCQyxpQkFOMEIsVUFBQTtBQU8xQkMsaUJBUDBCLE9BQUE7QUFRMUJDLG1CQVIwQixXQUFBO0FBUzFCQyxtQkFUMEIsVUFBQTtBQVUxQkMsaUJBQVM7QUFWaUIsS0FBOUJWO0FBWUEsUUFBSVcsV0FBV2IsWUFBZixRQUFBO0FBQ0EsUUFBQSxRQUFBLEVBQWM7QUFDVkMsZ0JBQUFBLFNBQUFBLEdBQW9CVCxPQUFBQSxNQUFBQSxDQUFjUyxRQUFBQSxTQUFBQSxJQUFkVCxFQUFBQSxHQUF3Q3NCLEtBQUFBLEVBQUFBLEVBQ3hEQSxHQUFHLFFBQVFELFNBQVIsSUFBQSxHQUFIQyxRQUFBQSxJQUR3REEsUUFBQUEsRUFBNURiLEVBQW9CVCxFQUFwQlM7QUFHSDtBQUNEO0FBQ0FBLFlBQUFBLGVBQUFBLEdBQTBCQSxRQUFBQSxlQUFBQSxJQUExQkEsRUFBQUE7QUFDQUEsWUFBQUEsZUFBQUEsQ0FBQUEsSUFBQUEsQ0FBQUEsY0FBQUE7QUFDQTtBQUNBQSxZQUFBQSxTQUFBQSxHQUFvQkEsUUFBQUEsU0FBQUEsSUFBcEJBLEVBQUFBO0FBQ0FBLFlBQUFBLFNBQUFBLENBQUFBLElBQUFBLENBQXVCUCxRQUF2Qk8sS0FBQUE7QUFDQTtBQUNBLFFBQUlELFlBQUosS0FBQSxFQUF1QjtBQUNuQkMsZ0JBQUFBLFNBQUFBLENBQUFBLElBQUFBLENBQUFBLGlCQUFBQTtBQUNIO0FBQ0Q7QUFDQUEsWUFBQUEsT0FBQUEsR0FBa0I7QUFDZGMsdUJBRGMsSUFBQTtBQUVkQyx3QkFBZ0I7QUFGRixLQUFsQmY7QUFJQUwsWUFBQUEsT0FBQUEsQ0FBQUEsV0FBQUEsRUFBQUEsT0FBQUE7QUFDQXFCLGNBQUFBLE9BQUFBO0FBQ0g7QUFDREMsUUFBQUEsYUFBQUEsR0FBQUEsYUFBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciBiYXNpY18xID0gcmVxdWlyZShcIi4uL21peGlucy9iYXNpY1wiKTtcbnZhciBpbmRleF8xID0gcmVxdWlyZShcIi4uL21peGlucy9vYnNlcnZlci9pbmRleFwiKTtcbmZ1bmN0aW9uIG1hcEtleXMoc291cmNlLCB0YXJnZXQsIG1hcCkge1xuICAgIE9iamVjdC5rZXlzKG1hcCkuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7XG4gICAgICAgIGlmIChzb3VyY2Vba2V5XSkge1xuICAgICAgICAgICAgdGFyZ2V0W21hcFtrZXldXSA9IHNvdXJjZVtrZXldO1xuICAgICAgICB9XG4gICAgfSk7XG59XG5mdW5jdGlvbiBWYW50Q29tcG9uZW50KHZhbnRPcHRpb25zKSB7XG4gICAgdmFyIF9hO1xuICAgIGlmICh2YW50T3B0aW9ucyA9PT0gdm9pZCAwKSB7IHZhbnRPcHRpb25zID0ge307IH1cbiAgICB2YXIgb3B0aW9ucyA9IHt9O1xuICAgIG1hcEtleXModmFudE9wdGlvbnMsIG9wdGlvbnMsIHtcbiAgICAgICAgZGF0YTogJ2RhdGEnLFxuICAgICAgICBwcm9wczogJ3Byb3BlcnRpZXMnLFxuICAgICAgICBtaXhpbnM6ICdiZWhhdmlvcnMnLFxuICAgICAgICBtZXRob2RzOiAnbWV0aG9kcycsXG4gICAgICAgIGJlZm9yZUNyZWF0ZTogJ2NyZWF0ZWQnLFxuICAgICAgICBjcmVhdGVkOiAnYXR0YWNoZWQnLFxuICAgICAgICBtb3VudGVkOiAncmVhZHknLFxuICAgICAgICByZWxhdGlvbnM6ICdyZWxhdGlvbnMnLFxuICAgICAgICBkZXN0cm95ZWQ6ICdkZXRhY2hlZCcsXG4gICAgICAgIGNsYXNzZXM6ICdleHRlcm5hbENsYXNzZXMnXG4gICAgfSk7XG4gICAgdmFyIHJlbGF0aW9uID0gdmFudE9wdGlvbnMucmVsYXRpb247XG4gICAgaWYgKHJlbGF0aW9uKSB7XG4gICAgICAgIG9wdGlvbnMucmVsYXRpb25zID0gT2JqZWN0LmFzc2lnbihvcHRpb25zLnJlbGF0aW9ucyB8fCB7fSwgKF9hID0ge30sXG4gICAgICAgICAgICBfYVtcIi4uL1wiICsgcmVsYXRpb24ubmFtZSArIFwiL2luZGV4XCJdID0gcmVsYXRpb24sXG4gICAgICAgICAgICBfYSkpO1xuICAgIH1cbiAgICAvLyBhZGQgZGVmYXVsdCBleHRlcm5hbENsYXNzZXNcbiAgICBvcHRpb25zLmV4dGVybmFsQ2xhc3NlcyA9IG9wdGlvbnMuZXh0ZXJuYWxDbGFzc2VzIHx8IFtdO1xuICAgIG9wdGlvbnMuZXh0ZXJuYWxDbGFzc2VzLnB1c2goJ2N1c3RvbS1jbGFzcycpO1xuICAgIC8vIGFkZCBkZWZhdWx0IGJlaGF2aW9yc1xuICAgIG9wdGlvbnMuYmVoYXZpb3JzID0gb3B0aW9ucy5iZWhhdmlvcnMgfHwgW107XG4gICAgb3B0aW9ucy5iZWhhdmlvcnMucHVzaChiYXNpY18xLmJhc2ljKTtcbiAgICAvLyBtYXAgZmllbGQgdG8gZm9ybS1maWVsZCBiZWhhdmlvclxuICAgIGlmICh2YW50T3B0aW9ucy5maWVsZCkge1xuICAgICAgICBvcHRpb25zLmJlaGF2aW9ycy5wdXNoKCd3eDovL2Zvcm0tZmllbGQnKTtcbiAgICB9XG4gICAgLy8gYWRkIGRlZmF1bHQgb3B0aW9uc1xuICAgIG9wdGlvbnMub3B0aW9ucyA9IHtcbiAgICAgICAgbXVsdGlwbGVTbG90czogdHJ1ZSxcbiAgICAgICAgYWRkR2xvYmFsQ2xhc3M6IHRydWVcbiAgICB9O1xuICAgIGluZGV4XzEub2JzZXJ2ZSh2YW50T3B0aW9ucywgb3B0aW9ucyk7XG4gICAgQ29tcG9uZW50KG9wdGlvbnMpO1xufVxuZXhwb3J0cy5WYW50Q29tcG9uZW50ID0gVmFudENvbXBvbmVudDtcbiJdLCJmaWxlIjoiY29tcG9uZW50LmpzIn0=