63 lines
1.7 KiB
JavaScript
63 lines
1.7 KiB
JavaScript
'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;
|
|
}
|
|
}
|
|
}; |