{"version":3,"file":"inline-style-parser-D--Rb2MU.js","sources":["../../node_modules/inline-style-parser/index.js"],"sourcesContent":["// http://www.w3.org/TR/CSS21/grammar.html\n// https://github.com/visionmedia/css-parse/pull/49#issuecomment-30088027\nvar COMMENT_REGEX = /\\/\\*[^*]*\\*+([^/*][^*]*\\*+)*\\//g;\n\nvar NEWLINE_REGEX = /\\n/g;\nvar WHITESPACE_REGEX = /^\\s*/;\n\n// declaration\nvar PROPERTY_REGEX = /^(\\*?[-#/*\\\\\\w]+(\\[[0-9a-z_-]+\\])?)\\s*/;\nvar COLON_REGEX = /^:\\s*/;\nvar VALUE_REGEX = /^((?:'(?:\\\\'|.)*?'|\"(?:\\\\\"|.)*?\"|\\([^)]*?\\)|[^};])+)/;\nvar SEMICOLON_REGEX = /^[;\\s]*/;\n\n// https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/Trim#Polyfill\nvar TRIM_REGEX = /^\\s+|\\s+$/g;\n\n// strings\nvar NEWLINE = '\\n';\nvar FORWARD_SLASH = '/';\nvar ASTERISK = '*';\nvar EMPTY_STRING = '';\n\n// types\nvar TYPE_COMMENT = 'comment';\nvar TYPE_DECLARATION = 'declaration';\n\n/**\n * @param {String} style\n * @param {Object} [options]\n * @return {Object[]}\n * @throws {TypeError}\n * @throws {Error}\n */\nmodule.exports = function(style, options) {\n if (typeof style !== 'string') {\n throw new TypeError('First argument must be a string');\n }\n\n if (!style) return [];\n\n options = options || {};\n\n /**\n * Positional.\n */\n var lineno = 1;\n var column = 1;\n\n /**\n * Update lineno and column based on `str`.\n *\n * @param {String} str\n */\n function updatePosition(str) {\n var lines = str.match(NEWLINE_REGEX);\n if (lines) lineno += lines.length;\n var i = str.lastIndexOf(NEWLINE);\n column = ~i ? str.length - i : column + str.length;\n }\n\n /**\n * Mark position and patch `node.position`.\n *\n * @return {Function}\n */\n function position() {\n var start = { line: lineno, column: column };\n return function(node) {\n node.position = new Position(start);\n whitespace();\n return node;\n };\n }\n\n /**\n * Store position information for a node.\n *\n * @constructor\n * @property {Object} start\n * @property {Object} end\n * @property {undefined|String} source\n */\n function Position(start) {\n this.start = start;\n this.end = { line: lineno, column: column };\n this.source = options.source;\n }\n\n /**\n * Non-enumerable source string.\n */\n Position.prototype.content = style;\n\n var errorsList = [];\n\n /**\n * Error `msg`.\n *\n * @param {String} msg\n * @throws {Error}\n */\n function error(msg) {\n var err = new Error(\n options.source + ':' + lineno + ':' + column + ': ' + msg\n );\n err.reason = msg;\n err.filename = options.source;\n err.line = lineno;\n err.column = column;\n err.source = style;\n\n if (options.silent) {\n errorsList.push(err);\n } else {\n throw err;\n }\n }\n\n /**\n * Match `re` and return captures.\n *\n * @param {RegExp} re\n * @return {undefined|Array}\n */\n function match(re) {\n var m = re.exec(style);\n if (!m) return;\n var str = m[0];\n updatePosition(str);\n style = style.slice(str.length);\n return m;\n }\n\n /**\n * Parse whitespace.\n */\n function whitespace() {\n match(WHITESPACE_REGEX);\n }\n\n /**\n * Parse comments.\n *\n * @param {Object[]} [rules]\n * @return {Object[]}\n */\n function comments(rules) {\n var c;\n rules = rules || [];\n while ((c = comment())) {\n if (c !== false) {\n rules.push(c);\n }\n }\n return rules;\n }\n\n /**\n * Parse comment.\n *\n * @return {Object}\n * @throws {Error}\n */\n function comment() {\n var pos = position();\n if (FORWARD_SLASH != style.charAt(0) || ASTERISK != style.charAt(1)) return;\n\n var i = 2;\n while (\n EMPTY_STRING != style.charAt(i) &&\n (ASTERISK != style.charAt(i) || FORWARD_SLASH != style.charAt(i + 1))\n ) {\n ++i;\n }\n i += 2;\n\n if (EMPTY_STRING === style.charAt(i - 1)) {\n return error('End of comment missing');\n }\n\n var str = style.slice(2, i - 2);\n column += 2;\n updatePosition(str);\n style = style.slice(i);\n column += 2;\n\n return pos({\n type: TYPE_COMMENT,\n comment: str\n });\n }\n\n /**\n * Parse declaration.\n *\n * @return {Object}\n * @throws {Error}\n */\n function declaration() {\n var pos = position();\n\n // prop\n var prop = match(PROPERTY_REGEX);\n if (!prop) return;\n comment();\n\n // :\n if (!match(COLON_REGEX)) return error(\"property missing ':'\");\n\n // val\n var val = match(VALUE_REGEX);\n\n var ret = pos({\n type: TYPE_DECLARATION,\n property: trim(prop[0].replace(COMMENT_REGEX, EMPTY_STRING)),\n value: val\n ? trim(val[0].replace(COMMENT_REGEX, EMPTY_STRING))\n : EMPTY_STRING\n });\n\n // ;\n match(SEMICOLON_REGEX);\n\n return ret;\n }\n\n /**\n * Parse declarations.\n *\n * @return {Object[]}\n */\n function declarations() {\n var decls = [];\n\n comments(decls);\n\n // declarations\n var decl;\n while ((decl = declaration())) {\n if (decl !== false) {\n decls.push(decl);\n comments(decls);\n }\n }\n\n return decls;\n }\n\n whitespace();\n return declarations();\n};\n\n/**\n * Trim `str`.\n *\n * @param {String} str\n * @return {String}\n */\nfunction trim(str) {\n return str ? str.replace(TRIM_REGEX, EMPTY_STRING) : EMPTY_STRING;\n}\n"],"names":["COMMENT_REGEX","NEWLINE_REGEX","WHITESPACE_REGEX","PROPERTY_REGEX","COLON_REGEX","VALUE_REGEX","SEMICOLON_REGEX","TRIM_REGEX","NEWLINE","FORWARD_SLASH","ASTERISK","EMPTY_STRING","TYPE_COMMENT","TYPE_DECLARATION","inlineStyleParser","style","options","lineno","column","updatePosition","str","lines","i","position","start","node","Position","whitespace","error","msg","err","match","re","m","comments","rules","c","comment","pos","declaration","prop","val","ret","trim","declarations","decls","decl"],"mappings":"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","x_google_ignoreList":[0]}