props.js 3.3 KB

12345678910111213141516171819202122232425262728293031
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. function observeProps(props) {
  4. if (!props) {
  5. return;
  6. }
  7. Object.keys(props).forEach(function (key) {
  8. var prop = props[key];
  9. if (prop === null || !('type' in prop)) {
  10. prop = { type: prop };
  11. }
  12. var observer = prop.observer;
  13. prop.observer = function () {
  14. var args = [];
  15. for (var _i = 0; _i < arguments.length; _i++) {
  16. args[_i] = arguments[_i];
  17. }
  18. if (observer) {
  19. if (typeof observer === 'string') {
  20. observer = this[observer];
  21. }
  22. observer.apply(this, args);
  23. }
  24. this.set();
  25. };
  26. props[key] = prop;
  27. });
  28. }
  29. exports.observeProps = observeProps;
  30. //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInByb3BzLmpzIl0sIm5hbWVzIjpbIk9iamVjdCIsInZhbHVlIiwicHJvcCIsInByb3BzIiwidHlwZSIsIm9ic2VydmVyIiwiYXJncyIsIl9pIiwiYXJndW1lbnRzIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6Ijs7QUFDQUEsT0FBQUEsY0FBQUEsQ0FBQUEsT0FBQUEsRUFBQUEsWUFBQUEsRUFBNkMsRUFBRUMsT0FBL0NELElBQTZDLEVBQTdDQTtBQUNBLFNBQUEsWUFBQSxDQUFBLEtBQUEsRUFBNkI7QUFDekIsUUFBSSxDQUFKLEtBQUEsRUFBWTtBQUNSO0FBQ0g7QUFDREEsV0FBQUEsSUFBQUEsQ0FBQUEsS0FBQUEsRUFBQUEsT0FBQUEsQ0FBMkIsVUFBQSxHQUFBLEVBQWU7QUFDdEMsWUFBSUUsT0FBT0MsTUFBWCxHQUFXQSxDQUFYO0FBQ0EsWUFBSUQsU0FBQUEsSUFBQUEsSUFBaUIsRUFBRSxVQUF2QixJQUFxQixDQUFyQixFQUF3QztBQUNwQ0EsbUJBQU8sRUFBRUUsTUFBVEYsSUFBTyxFQUFQQTtBQUNIO0FBQ0QsWUFBSUcsV0FBV0gsS0FBZixRQUFBO0FBQ0FBLGFBQUFBLFFBQUFBLEdBQWdCLFlBQVk7QUFDeEIsZ0JBQUlJLE9BQUosRUFBQTtBQUNBLGlCQUFLLElBQUlDLEtBQVQsQ0FBQSxFQUFpQkEsS0FBS0MsVUFBdEIsTUFBQSxFQUFBLElBQUEsRUFBOEM7QUFDMUNGLHFCQUFBQSxFQUFBQSxJQUFXRSxVQUFYRixFQUFXRSxDQUFYRjtBQUNIO0FBQ0QsZ0JBQUEsUUFBQSxFQUFjO0FBQ1Ysb0JBQUksT0FBQSxRQUFBLEtBQUosUUFBQSxFQUFrQztBQUM5QkQsK0JBQVcsS0FBWEEsUUFBVyxDQUFYQTtBQUNIO0FBQ0RBLHlCQUFBQSxLQUFBQSxDQUFBQSxJQUFBQSxFQUFBQSxJQUFBQTtBQUNIO0FBQ0QsaUJBQUEsR0FBQTtBQVhKSCxTQUFBQTtBQWFBQyxjQUFBQSxHQUFBQSxJQUFBQSxJQUFBQTtBQW5CSkgsS0FBQUE7QUFxQkg7QUFDRFMsUUFBQUEsWUFBQUEsR0FBQUEsWUFBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmZ1bmN0aW9uIG9ic2VydmVQcm9wcyhwcm9wcykge1xuICAgIGlmICghcHJvcHMpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBPYmplY3Qua2V5cyhwcm9wcykuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7XG4gICAgICAgIHZhciBwcm9wID0gcHJvcHNba2V5XTtcbiAgICAgICAgaWYgKHByb3AgPT09IG51bGwgfHwgISgndHlwZScgaW4gcHJvcCkpIHtcbiAgICAgICAgICAgIHByb3AgPSB7IHR5cGU6IHByb3AgfTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgb2JzZXJ2ZXIgPSBwcm9wLm9ic2VydmVyO1xuICAgICAgICBwcm9wLm9ic2VydmVyID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdmFyIGFyZ3MgPSBbXTtcbiAgICAgICAgICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCBhcmd1bWVudHMubGVuZ3RoOyBfaSsrKSB7XG4gICAgICAgICAgICAgICAgYXJnc1tfaV0gPSBhcmd1bWVudHNbX2ldO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG9ic2VydmVyKSB7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBvYnNlcnZlciA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZXIgPSB0aGlzW29ic2VydmVyXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgb2JzZXJ2ZXIuYXBwbHkodGhpcywgYXJncyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnNldCgpO1xuICAgICAgICB9O1xuICAgICAgICBwcm9wc1trZXldID0gcHJvcDtcbiAgICB9KTtcbn1cbmV4cG9ydHMub2JzZXJ2ZVByb3BzID0gb2JzZXJ2ZVByb3BzO1xuIl0sImZpbGUiOiJwcm9wcy5qcyJ9