"use strict";
|
|
exports.__esModule = true;
|
exports.isReactComponent = undefined;
|
exports.isCompatTag = isCompatTag;
|
exports.buildChildren = buildChildren;
|
|
var _index = require("./index");
|
|
var t = _interopRequireWildcard(_index);
|
|
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 isReactComponent = exports.isReactComponent = t.buildMatchMemberExpression("React.Component");
|
|
function isCompatTag(tagName) {
|
return !!tagName && /^[a-z]|\-/.test(tagName);
|
}
|
|
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;
|
|
var trimmedLine = line.replace(/\t/g, " ");
|
|
if (!isFirstLine) {
|
trimmedLine = trimmedLine.replace(/^[ ]+/, "");
|
}
|
|
if (!isLastLine) {
|
trimmedLine = trimmedLine.replace(/[ ]+$/, "");
|
}
|
|
if (trimmedLine) {
|
if (!isLastNonEmptyLine) {
|
trimmedLine += " ";
|
}
|
|
str += trimmedLine;
|
}
|
}
|
|
if (str) args.push(t.stringLiteral(str));
|
}
|
|
function buildChildren(node) {
|
var elems = [];
|
|
for (var i = 0; i < node.children.length; i++) {
|
var child = node.children[i];
|
|
if (t.isJSXText(child)) {
|
cleanJSXElementLiteralChild(child, elems);
|
continue;
|
}
|
|
if (t.isJSXExpressionContainer(child)) child = child.expression;
|
if (t.isJSXEmptyExpression(child)) continue;
|
|
elems.push(child);
|
}
|
|
return elems;
|
}
|