blob: 79daafdaed21ccbeb95af6d481251dcfe3ef10fe [file] [log] [blame]
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = parseMedia;
var _Container = require('./nodes/Container');
var _Container2 = _interopRequireDefault(_Container);
var _parsers = require('./parsers');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/**
* Parses a media query list into an array of nodes. A typical node signature:
* {string} node.type -- one of: 'media-query', 'media-type', 'keyword',
* 'media-feature-expression', 'media-feature', 'colon', 'value'
* {string} node.value -- the contents of a particular element, trimmed
* e.g.: `screen`, `max-width`, `1024px`
* {string} node.after -- whitespaces that follow the element
* {string} node.before -- whitespaces that precede the element
* {string} node.sourceIndex -- the index of the element in a source media
* query list, 0-based
* {object} node.parent -- a link to the parent node (a container)
*
* Some nodes (media queries, media feature expressions) contain other nodes.
* They additionally have:
* {array} node.nodes -- an array of nodes of the type described here
* {funciton} node.each -- traverses direct children of the node, calling
* a callback for each one
* {funciton} node.walk -- traverses ALL descendants of the node, calling
* a callback for each one
*/
function parseMedia(value) {
return new _Container2.default({
nodes: (0, _parsers.parseMediaList)(value),
type: 'media-query-list',
value: value.trim()
});
}