1 | "use strict";
|
2 |
|
3 | exports.__esModule = true;
|
4 | exports.isReactComponent = undefined;
|
5 | exports.isCompatTag = isCompatTag;
|
6 | exports.buildChildren = buildChildren;
|
7 |
|
8 | var _index = require("./index");
|
9 |
|
10 | var t = _interopRequireWildcard(_index);
|
11 |
|
12 | 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; } }
|
13 |
|
14 | var isReactComponent = exports.isReactComponent = t.buildMatchMemberExpression("React.Component");
|
15 |
|
16 | function isCompatTag(tagName) {
|
17 | return !!tagName && /^[a-z]|\-/.test(tagName);
|
18 | }
|
19 |
|
20 | function 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 |
|
62 | function 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 | } |
\ | No newline at end of file |