"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); function setAsync(context, data) { return new Promise(function (resolve) { context.setData(data, resolve); }); } exports.behavior = Behavior({ created: function created() { var _this = this; if (!this.$options) { return; } var cache = {}; var computed = this.$options().computed; var keys = Object.keys(computed); this.calcComputed = function () { var needUpdate = {}; keys.forEach(function (key) { var value = computed[key].call(_this); if (cache[key] !== value) { cache[key] = value; needUpdate[key] = value; } }); return needUpdate; }; }, attached: function attached() { this.set(); }, methods: { // set data and set computed data set: function set(data, callback) { var _this = this; var stack = []; if (data) { stack.push(setAsync(this, data)); } if (this.calcComputed) { stack.push(setAsync(this, this.calcComputed())); } return Promise.all(stack).then(function (res) { if (callback && typeof callback === 'function') { callback.call(_this); } return res; }); } } }); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJlaGF2aW9yLmpzIl0sIm5hbWVzIjpbIk9iamVjdCIsInZhbHVlIiwiY29udGV4dCIsImV4cG9ydHMiLCJjcmVhdGVkIiwiX3RoaXMiLCJjYWNoZSIsImNvbXB1dGVkIiwia2V5cyIsIm5lZWRVcGRhdGUiLCJhdHRhY2hlZCIsIm1ldGhvZHMiLCJzZXQiLCJzdGFjayIsInNldEFzeW5jIiwiY2FsbGJhY2siXSwibWFwcGluZ3MiOiI7O0FBQ0FBLE9BQUFBLGNBQUFBLENBQUFBLE9BQUFBLEVBQUFBLFlBQUFBLEVBQTZDLEVBQUVDLE9BQS9DRCxJQUE2QyxFQUE3Q0E7QUFDQSxTQUFBLFFBQUEsQ0FBQSxPQUFBLEVBQUEsSUFBQSxFQUFpQztBQUM3QixXQUFPLElBQUEsT0FBQSxDQUFZLFVBQUEsT0FBQSxFQUFtQjtBQUNsQ0UsZ0JBQUFBLE9BQUFBLENBQUFBLElBQUFBLEVBQUFBLE9BQUFBO0FBREosS0FBTyxDQUFQO0FBR0g7QUFDREMsUUFBQUEsUUFBQUEsR0FBbUIsU0FBUztBQUN4QkMsYUFBUyxTQUFBLE9BQUEsR0FBWTtBQUNqQixZQUFJQyxRQUFKLElBQUE7QUFDQSxZQUFJLENBQUMsS0FBTCxRQUFBLEVBQW9CO0FBQ2hCO0FBQ0g7QUFDRCxZQUFJQyxRQUFKLEVBQUE7QUFDQSxZQUFJQyxXQUFXLEtBQUEsUUFBQSxHQUFmLFFBQUE7QUFDQSxZQUFJQyxPQUFPUixPQUFBQSxJQUFBQSxDQUFYLFFBQVdBLENBQVg7QUFDQSxhQUFBLFlBQUEsR0FBb0IsWUFBWTtBQUM1QixnQkFBSVMsYUFBSixFQUFBO0FBQ0FELGlCQUFBQSxPQUFBQSxDQUFhLFVBQUEsR0FBQSxFQUFlO0FBQ3hCLG9CQUFJUCxRQUFRTSxTQUFBQSxHQUFBQSxFQUFBQSxJQUFBQSxDQUFaLEtBQVlBLENBQVo7QUFDQSxvQkFBSUQsTUFBQUEsR0FBQUEsTUFBSixLQUFBLEVBQTBCO0FBQ3RCQSwwQkFBQUEsR0FBQUEsSUFBQUEsS0FBQUE7QUFDQUcsK0JBQUFBLEdBQUFBLElBQUFBLEtBQUFBO0FBQ0g7QUFMTEQsYUFBQUE7QUFPQSxtQkFBQSxVQUFBO0FBVEosU0FBQTtBQVRvQixLQUFBO0FBcUJ4QkUsY0FBVSxTQUFBLFFBQUEsR0FBWTtBQUNsQixhQUFBLEdBQUE7QUF0Qm9CLEtBQUE7QUF3QnhCQyxhQUFTO0FBQ0w7QUFDQUMsYUFBSyxTQUFBLEdBQUEsQ0FBQSxJQUFBLEVBQUEsUUFBQSxFQUEwQjtBQUMzQixnQkFBSVAsUUFBSixJQUFBO0FBQ0EsZ0JBQUlRLFFBQUosRUFBQTtBQUNBLGdCQUFBLElBQUEsRUFBVTtBQUNOQSxzQkFBQUEsSUFBQUEsQ0FBV0MsU0FBQUEsSUFBQUEsRUFBWEQsSUFBV0MsQ0FBWEQ7QUFDSDtBQUNELGdCQUFJLEtBQUosWUFBQSxFQUF1QjtBQUNuQkEsc0JBQUFBLElBQUFBLENBQVdDLFNBQUFBLElBQUFBLEVBQWUsS0FBMUJELFlBQTBCLEVBQWZDLENBQVhEO0FBQ0g7QUFDRCxtQkFBTyxRQUFBLEdBQUEsQ0FBQSxLQUFBLEVBQUEsSUFBQSxDQUF3QixVQUFBLEdBQUEsRUFBZTtBQUMxQyxvQkFBSUUsWUFBWSxPQUFBLFFBQUEsS0FBaEIsVUFBQSxFQUFnRDtBQUM1Q0EsNkJBQUFBLElBQUFBLENBQUFBLEtBQUFBO0FBQ0g7QUFDRCx1QkFBQSxHQUFBO0FBSkosYUFBTyxDQUFQO0FBTUg7QUFqQkk7QUF4QmUsQ0FBVCxDQUFuQloiLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmZ1bmN0aW9uIHNldEFzeW5jKGNvbnRleHQsIGRhdGEpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUpIHtcbiAgICAgICAgY29udGV4dC5zZXREYXRhKGRhdGEsIHJlc29sdmUpO1xuICAgIH0pO1xufVxuZXhwb3J0cy5iZWhhdmlvciA9IEJlaGF2aW9yKHtcbiAgICBjcmVhdGVkOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIGlmICghdGhpcy4kb3B0aW9ucykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHZhciBjYWNoZSA9IHt9O1xuICAgICAgICB2YXIgY29tcHV0ZWQgPSB0aGlzLiRvcHRpb25zKCkuY29tcHV0ZWQ7XG4gICAgICAgIHZhciBrZXlzID0gT2JqZWN0LmtleXMoY29tcHV0ZWQpO1xuICAgICAgICB0aGlzLmNhbGNDb21wdXRlZCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHZhciBuZWVkVXBkYXRlID0ge307XG4gICAgICAgICAgICBrZXlzLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xuICAgICAgICAgICAgICAgIHZhciB2YWx1ZSA9IGNvbXB1dGVkW2tleV0uY2FsbChfdGhpcyk7XG4gICAgICAgICAgICAgICAgaWYgKGNhY2hlW2tleV0gIT09IHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhY2hlW2tleV0gPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgbmVlZFVwZGF0ZVtrZXldID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gbmVlZFVwZGF0ZTtcbiAgICAgICAgfTtcbiAgICB9LFxuICAgIGF0dGFjaGVkOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHRoaXMuc2V0KCk7XG4gICAgfSxcbiAgICBtZXRob2RzOiB7XG4gICAgICAgIC8vIHNldCBkYXRhIGFuZCBzZXQgY29tcHV0ZWQgZGF0YVxuICAgICAgICBzZXQ6IGZ1bmN0aW9uIChkYXRhLCBjYWxsYmFjaykge1xuICAgICAgICAgICAgdmFyIF90aGlzID0gdGhpcztcbiAgICAgICAgICAgIHZhciBzdGFjayA9IFtdO1xuICAgICAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgICAgICBzdGFjay5wdXNoKHNldEFzeW5jKHRoaXMsIGRhdGEpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLmNhbGNDb21wdXRlZCkge1xuICAgICAgICAgICAgICAgIHN0YWNrLnB1c2goc2V0QXN5bmModGhpcywgdGhpcy5jYWxjQ29tcHV0ZWQoKSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKHN0YWNrKS50aGVuKGZ1bmN0aW9uIChyZXMpIHtcbiAgICAgICAgICAgICAgICBpZiAoY2FsbGJhY2sgJiYgdHlwZW9mIGNhbGxiYWNrID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrLmNhbGwoX3RoaXMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG59KTtcbiJdLCJmaWxlIjoiYmVoYXZpb3IuanMifQ==