|
- '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;
- }
- }
- };
|