'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _StyleRule = require('../rules/StyleRule'); var _StyleRule2 = _interopRequireDefault(_StyleRule); var _createRule = require('../utils/createRule'); var _createRule2 = _interopRequireDefault(_createRule); var _isObservable = require('../utils/isObservable'); var _isObservable2 = _interopRequireDefault(_isObservable); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } exports['default'] = { onCreateRule: function onCreateRule(name, decl, options) { if (!(0, _isObservable2['default'])(decl)) return null; // Cast `decl` to `Observable`, since it passed the type guard. var style$ = decl; var rule = (0, _createRule2['default'])(name, {}, options); // TODO // Call `stream.subscribe()` returns a subscription, which should be explicitly // unsubscribed from when we know this sheet is no longer needed. style$.subscribe(function (style) { for (var prop in style) { rule.prop(prop, style[prop]); } }); return rule; }, onProcessRule: function onProcessRule(rule) { if (!(rule instanceof _StyleRule2['default'])) return; var styleRule = rule; var style = styleRule.style; var _loop = function _loop(prop) { var value = style[prop]; if (!(0, _isObservable2['default'])(value)) return 'continue'; delete style[prop]; value.subscribe({ next: function next(nextValue) { styleRule.prop(prop, nextValue); } }); }; for (var prop in style) { var _ret = _loop(prop); if (_ret === 'continue') continue; } } };