"use strict"; exports.__esModule = true; exports.isCompatTag = isCompatTag; exports.buildChildren = buildChildren; // istanbul ignore next function _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; } } var _types = require("../../types"); var t = _interopRequireWildcard(_types); var isReactComponent = t.buildMatchMemberExpression("React.Component"); exports.isReactComponent = isReactComponent; /** * [Please add a description.] */ function isCompatTag(tagName) { return tagName && /^[a-z]|\-/.test(tagName); } /** * [Please add a description.] */ function cleanJSXElementLiteralChild(child, args) { var lines = child.value.split(/\r\n|\n|\r/); var lastNonEmptyLine = 0; for (var i = 0; i < lines.length; i++) { if (lines[i].match(/[^ \t]/)) { lastNonEmptyLine = i; } } var str = ""; for (var i = 0; i < lines.length; i++) { var line = lines[i]; var isFirstLine = i === 0; var isLastLine = i === lines.length - 1; var isLastNonEmptyLine = i === lastNonEmptyLine; // replace rendered whitespace tabs with spaces var trimmedLine = line.replace(/\t/g, " "); // trim whitespace touching a newline if (!isFirstLine) { trimmedLine = trimmedLine.replace(/^[ ]+/, ""); } // trim whitespace touching an endline if (!isLastLine) { trimmedLine = trimmedLine.replace(/[ ]+$/, ""); } if (trimmedLine) { if (!isLastNonEmptyLine) { trimmedLine += " "; } str += trimmedLine; } } if (str) args.push(t.literal(str)); } /** * [Please add a description.] */ function buildChildren(node) { var elems = []; for (var i = 0; i < node.children.length; i++) { var child = node.children[i]; if (t.isLiteral(child) && typeof child.value === "string") { cleanJSXElementLiteralChild(child, elems); continue; } if (t.isJSXExpressionContainer(child)) child = child.expression; if (t.isJSXEmptyExpression(child)) continue; elems.push(child); } return elems; }