diff options
Diffstat (limited to 'node_modules/stylus/lib/functions/opposite-position.js')
| -rw-r--r-- | node_modules/stylus/lib/functions/opposite-position.js | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/node_modules/stylus/lib/functions/opposite-position.js b/node_modules/stylus/lib/functions/opposite-position.js new file mode 100644 index 00000000..8a8f4101 --- /dev/null +++ b/node_modules/stylus/lib/functions/opposite-position.js @@ -0,0 +1,32 @@ +var utils = require('../utils') + , nodes = require('../nodes'); + +/** + * Return the opposites of the given `positions`. + * + * Examples: + * + * opposite-position(top left) + * // => bottom right + * + * @param {Expression} positions + * @return {Expression} + * @api public + */ + +(module.exports = function oppositePosition(positions){ + var expr = []; + utils.unwrap(positions).nodes.forEach(function(pos, i){ + utils.assertString(pos, 'position ' + i); + pos = (function(){ switch (pos.string) { + case 'top': return 'bottom'; + case 'bottom': return 'top'; + case 'left': return 'right'; + case 'right': return 'left'; + case 'center': return 'center'; + default: throw new Error('invalid position ' + pos); + }})(); + expr.push(new nodes.Literal(pos)); + }); + return expr; +}).raw = true; |
