index.js 4.1 KB

1234567891011121314151617181920212223242526272829303132333435
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. var behavior_1 = require('./behavior.js');
  4. var props_1 = require('./props.js');
  5. function observe(vantOptions, options) {
  6. var watch = vantOptions.watch,
  7. computed = vantOptions.computed;
  8. options.behaviors.push(behavior_1.behavior);
  9. if (watch) {
  10. var props_2 = options.properties || {};
  11. Object.keys(watch).forEach(function (key) {
  12. if (key in props_2) {
  13. var prop = props_2[key];
  14. if (prop === null || !('type' in prop)) {
  15. prop = { type: prop };
  16. }
  17. prop.observer = watch[key];
  18. props_2[key] = prop;
  19. }
  20. });
  21. options.properties = props_2;
  22. }
  23. if (computed) {
  24. options.methods = options.methods || {};
  25. options.methods.$options = function () {
  26. return vantOptions;
  27. };
  28. if (options.properties) {
  29. props_1.observeProps(options.properties);
  30. }
  31. }
  32. }
  33. exports.observe = observe;
  34. //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LmpzIl0sIm5hbWVzIjpbIk9iamVjdCIsInZhbHVlIiwiYmVoYXZpb3JfMSIsInJlcXVpcmUiLCJwcm9wc18xIiwid2F0Y2giLCJ2YW50T3B0aW9ucyIsImNvbXB1dGVkIiwib3B0aW9ucyIsInByb3BzXzIiLCJrZXkiLCJwcm9wIiwidHlwZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiI7O0FBQ0FBLE9BQUFBLGNBQUFBLENBQUFBLE9BQUFBLEVBQUFBLFlBQUFBLEVBQTZDLEVBQUVDLE9BQS9DRCxJQUE2QyxFQUE3Q0E7QUFDQSxJQUFJRSxhQUFhQyxRQUFqQixlQUFpQkEsQ0FBakI7QUFDQSxJQUFJQyxVQUFVRCxRQUFkLFlBQWNBLENBQWQ7QUFDQSxTQUFBLE9BQUEsQ0FBQSxXQUFBLEVBQUEsT0FBQSxFQUF1QztBQUNuQyxRQUFJRSxRQUFRQyxZQUFaLEtBQUE7QUFBQSxRQUErQkMsV0FBV0QsWUFBMUMsUUFBQTtBQUNBRSxZQUFBQSxTQUFBQSxDQUFBQSxJQUFBQSxDQUF1Qk4sV0FBdkJNLFFBQUFBO0FBQ0EsUUFBQSxLQUFBLEVBQVc7QUFDUCxZQUFJQyxVQUFVRCxRQUFBQSxVQUFBQSxJQUFkLEVBQUE7QUFDQVIsZUFBQUEsSUFBQUEsQ0FBQUEsS0FBQUEsRUFBQUEsT0FBQUEsQ0FBMkIsVUFBQSxHQUFBLEVBQWU7QUFDdEMsZ0JBQUlVLE9BQUosT0FBQSxFQUFvQjtBQUNoQixvQkFBSUMsT0FBT0YsUUFBWCxHQUFXQSxDQUFYO0FBQ0Esb0JBQUlFLFNBQUFBLElBQUFBLElBQWlCLEVBQUUsVUFBdkIsSUFBcUIsQ0FBckIsRUFBd0M7QUFDcENBLDJCQUFPLEVBQUVDLE1BQVRELElBQU8sRUFBUEE7QUFDSDtBQUNEQSxxQkFBQUEsUUFBQUEsR0FBZ0JOLE1BQWhCTSxHQUFnQk4sQ0FBaEJNO0FBQ0FGLHdCQUFBQSxHQUFBQSxJQUFBQSxJQUFBQTtBQUNIO0FBUkxULFNBQUFBO0FBVUFRLGdCQUFBQSxVQUFBQSxHQUFBQSxPQUFBQTtBQUNIO0FBQ0QsUUFBQSxRQUFBLEVBQWM7QUFDVkEsZ0JBQUFBLE9BQUFBLEdBQWtCQSxRQUFBQSxPQUFBQSxJQUFsQkEsRUFBQUE7QUFDQUEsZ0JBQUFBLE9BQUFBLENBQUFBLFFBQUFBLEdBQTJCLFlBQVk7QUFBRSxtQkFBQSxXQUFBO0FBQXpDQSxTQUFBQTtBQUNBLFlBQUlBLFFBQUosVUFBQSxFQUF3QjtBQUNwQkosb0JBQUFBLFlBQUFBLENBQXFCSSxRQUFyQkosVUFBQUE7QUFDSDtBQUNKO0FBQ0o7QUFDRFMsUUFBQUEsT0FBQUEsR0FBQUEsT0FBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciBiZWhhdmlvcl8xID0gcmVxdWlyZShcIi4vYmVoYXZpb3JcIik7XG52YXIgcHJvcHNfMSA9IHJlcXVpcmUoXCIuL3Byb3BzXCIpO1xuZnVuY3Rpb24gb2JzZXJ2ZSh2YW50T3B0aW9ucywgb3B0aW9ucykge1xuICAgIHZhciB3YXRjaCA9IHZhbnRPcHRpb25zLndhdGNoLCBjb21wdXRlZCA9IHZhbnRPcHRpb25zLmNvbXB1dGVkO1xuICAgIG9wdGlvbnMuYmVoYXZpb3JzLnB1c2goYmVoYXZpb3JfMS5iZWhhdmlvcik7XG4gICAgaWYgKHdhdGNoKSB7XG4gICAgICAgIHZhciBwcm9wc18yID0gb3B0aW9ucy5wcm9wZXJ0aWVzIHx8IHt9O1xuICAgICAgICBPYmplY3Qua2V5cyh3YXRjaCkuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7XG4gICAgICAgICAgICBpZiAoa2V5IGluIHByb3BzXzIpIHtcbiAgICAgICAgICAgICAgICB2YXIgcHJvcCA9IHByb3BzXzJba2V5XTtcbiAgICAgICAgICAgICAgICBpZiAocHJvcCA9PT0gbnVsbCB8fCAhKCd0eXBlJyBpbiBwcm9wKSkge1xuICAgICAgICAgICAgICAgICAgICBwcm9wID0geyB0eXBlOiBwcm9wIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHByb3Aub2JzZXJ2ZXIgPSB3YXRjaFtrZXldO1xuICAgICAgICAgICAgICAgIHByb3BzXzJba2V5XSA9IHByb3A7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBvcHRpb25zLnByb3BlcnRpZXMgPSBwcm9wc18yO1xuICAgIH1cbiAgICBpZiAoY29tcHV0ZWQpIHtcbiAgICAgICAgb3B0aW9ucy5tZXRob2RzID0gb3B0aW9ucy5tZXRob2RzIHx8IHt9O1xuICAgICAgICBvcHRpb25zLm1ldGhvZHMuJG9wdGlvbnMgPSBmdW5jdGlvbiAoKSB7IHJldHVybiB2YW50T3B0aW9uczsgfTtcbiAgICAgICAgaWYgKG9wdGlvbnMucHJvcGVydGllcykge1xuICAgICAgICAgICAgcHJvcHNfMS5vYnNlcnZlUHJvcHMob3B0aW9ucy5wcm9wZXJ0aWVzKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmV4cG9ydHMub2JzZXJ2ZSA9IG9ic2VydmU7XG4iXSwiZmlsZSI6ImluZGV4LmpzIn0=