1"use strict"; 2 3exports.__esModule = true; 4exports.isReactComponent = undefined; 5exports.isCompatTag = isCompatTag; 6exports.buildChildren = buildChildren; 7 8var _index = require("./index"); 9 10var t = _interopRequireWildcard(_index); 11 12function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } 13 14var isReactComponent = exports.isReactComponent = t.buildMatchMemberExpression("React.Component"); 15 16function isCompatTag(tagName) { 17 return !!tagName && /^[a-z]|\-/.test(tagName); 18} 19 20function cleanJSXElementLiteralChild(child, args) { 21 var lines = child.value.split(/\r\n|\n|\r/); 22 23 var lastNonEmptyLine = 0; 24 25 for (var i = 0; i < lines.length; i++) { 26 if (lines[i].match(/[^ \t]/)) { 27 lastNonEmptyLine = i; 28 } 29 } 30 31 var str = ""; 32 33 for (var _i = 0; _i < lines.length; _i++) { 34 var line = lines[_i]; 35 36 var isFirstLine = _i === 0; 37 var isLastLine = _i === lines.length - 1; 38 var isLastNonEmptyLine = _i === lastNonEmptyLine; 39 40 var trimmedLine = line.replace(/\t/g, " "); 41 42 if (!isFirstLine) { 43 trimmedLine = trimmedLine.replace(/^[ ]+/, ""); 44 } 45 46 if (!isLastLine) { 47 trimmedLine = trimmedLine.replace(/[ ]+$/, ""); 48 } 49 50 if (trimmedLine) { 51 if (!isLastNonEmptyLine) { 52 trimmedLine += " "; 53 } 54 55 str += trimmedLine; 56 } 57 } 58 59 if (str) args.push(t.stringLiteral(str)); 60} 61 62function buildChildren(node) { 63 var elems = []; 64 65 for (var i = 0; i < node.children.length; i++) { 66 var child = node.children[i]; 67 68 if (t.isJSXText(child)) { 69 cleanJSXElementLiteralChild(child, elems); 70 continue; 71 } 72 73 if (t.isJSXExpressionContainer(child)) child = child.expression; 74 if (t.isJSXEmptyExpression(child)) continue; 75 76 elems.push(child); 77 } 78 79 return elems; 80}