aboutsummaryrefslogtreecommitdiff
path: root/node_modules/renderkid/lib/renderKid/Styles.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/renderkid/lib/renderKid/Styles.js')
-rw-r--r--node_modules/renderkid/lib/renderKid/Styles.js76
1 files changed, 76 insertions, 0 deletions
diff --git a/node_modules/renderkid/lib/renderKid/Styles.js b/node_modules/renderkid/lib/renderKid/Styles.js
new file mode 100644
index 000000000..52651aa01
--- /dev/null
+++ b/node_modules/renderkid/lib/renderKid/Styles.js
@@ -0,0 +1,76 @@
+// Generated by CoffeeScript 1.9.3
+var MixedDeclarationSet, StyleSheet, Styles, terminalWidth;
+
+StyleSheet = require('./styles/StyleSheet');
+
+MixedDeclarationSet = require('./styles/rule/MixedDeclarationSet');
+
+terminalWidth = require('../tools').getCols();
+
+module.exports = Styles = (function() {
+ var self;
+
+ self = Styles;
+
+ Styles.defaultRules = {
+ '*': {
+ display: 'inline'
+ },
+ 'body': {
+ background: 'none',
+ color: 'white',
+ display: 'block',
+ width: terminalWidth + ' !important'
+ }
+ };
+
+ function Styles() {
+ this._defaultStyles = new StyleSheet;
+ this._userStyles = new StyleSheet;
+ this._setDefaultStyles();
+ }
+
+ Styles.prototype._setDefaultStyles = function() {
+ this._defaultStyles.setRule(self.defaultRules);
+ };
+
+ Styles.prototype.setRule = function(selector, rules) {
+ this._userStyles.setRule.apply(this._userStyles, arguments);
+ return this;
+ };
+
+ Styles.prototype.getStyleFor = function(el) {
+ var styles;
+ styles = el.styles;
+ if (styles == null) {
+ el.styles = styles = this._getComputedStyleFor(el);
+ }
+ return styles;
+ };
+
+ Styles.prototype._getRawStyleFor = function(el) {
+ var def, user;
+ def = this._defaultStyles.getRulesFor(el);
+ user = this._userStyles.getRulesFor(el);
+ return MixedDeclarationSet.mix(def, user).toObject();
+ };
+
+ Styles.prototype._getComputedStyleFor = function(el) {
+ var decs, parent, prop, ref, val;
+ decs = {};
+ parent = el.parent;
+ ref = this._getRawStyleFor(el);
+ for (prop in ref) {
+ val = ref[prop];
+ if (val !== 'inherit') {
+ decs[prop] = val;
+ } else {
+ throw Error("Inherited styles are not supported yet.");
+ }
+ }
+ return decs;
+ };
+
+ return Styles;
+
+})();