|
- 'use strict';
-
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
-
- var _RuleList = require('../RuleList');
-
- var _RuleList2 = _interopRequireDefault(_RuleList);
-
- var _StyleRule = require('../rules/StyleRule');
-
- var _StyleRule2 = _interopRequireDefault(_StyleRule);
-
- var _createRule = require('../utils/createRule');
-
- var _createRule2 = _interopRequireDefault(_createRule);
-
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-
- // A symbol replacement.
- var now = Date.now();
-
- var fnValuesNs = 'fnValues' + now;
- var fnStyleNs = 'fnStyle' + ++now;
-
- exports['default'] = {
- onCreateRule: function onCreateRule(name, decl, options) {
- if (typeof decl !== 'function') return null;
- var rule = (0, _createRule2['default'])(name, {}, options);
- rule[fnStyleNs] = decl;
- return rule;
- },
- onProcessStyle: function onProcessStyle(style, rule) {
- var fn = {};
- for (var prop in style) {
- var value = style[prop];
- if (typeof value !== 'function') continue;
- delete style[prop];
- fn[prop] = value;
- }
- rule = rule;
- rule[fnValuesNs] = fn;
- return style;
- },
- onUpdate: function onUpdate(data, rule) {
- // It is a rules container like for e.g. ConditionalRule.
- if (rule.rules instanceof _RuleList2['default']) {
- rule.rules.update(data);
- return;
- }
- if (!(rule instanceof _StyleRule2['default'])) return;
-
- rule = rule;
-
- // If we have a fn values map, it is a rule with function values.
- if (rule[fnValuesNs]) {
- for (var prop in rule[fnValuesNs]) {
- rule.prop(prop, rule[fnValuesNs][prop](data));
- }
- }
-
- rule = rule;
-
- var fnStyle = rule[fnStyleNs];
-
- // If we have a style function, the entire rule is dynamic and style object
- // will be returned from that function.
- if (fnStyle) {
- var style = fnStyle(data);
- for (var _prop in style) {
- rule.prop(_prop, style[_prop]);
- }
- }
- }
- };
|