f1617549b88279c276463607e0cd2876a31986dbaa98a40c2f7ca4097ddad7643cf16632454e4c6c05e794b08cb9974b1dfd4f98abf14b1d8f8c9276b202fc 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. "use strict";
  2. exports.__esModule = true;
  3. exports.isReactComponent = undefined;
  4. exports.isCompatTag = isCompatTag;
  5. exports.buildChildren = buildChildren;
  6. var _index = require("./index");
  7. var t = _interopRequireWildcard(_index);
  8. 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; } }
  9. var isReactComponent = exports.isReactComponent = t.buildMatchMemberExpression("React.Component");
  10. function isCompatTag(tagName) {
  11. return !!tagName && /^[a-z]|\-/.test(tagName);
  12. }
  13. function cleanJSXElementLiteralChild(child, args) {
  14. var lines = child.value.split(/\r\n|\n|\r/);
  15. var lastNonEmptyLine = 0;
  16. for (var i = 0; i < lines.length; i++) {
  17. if (lines[i].match(/[^ \t]/)) {
  18. lastNonEmptyLine = i;
  19. }
  20. }
  21. var str = "";
  22. for (var _i = 0; _i < lines.length; _i++) {
  23. var line = lines[_i];
  24. var isFirstLine = _i === 0;
  25. var isLastLine = _i === lines.length - 1;
  26. var isLastNonEmptyLine = _i === lastNonEmptyLine;
  27. var trimmedLine = line.replace(/\t/g, " ");
  28. if (!isFirstLine) {
  29. trimmedLine = trimmedLine.replace(/^[ ]+/, "");
  30. }
  31. if (!isLastLine) {
  32. trimmedLine = trimmedLine.replace(/[ ]+$/, "");
  33. }
  34. if (trimmedLine) {
  35. if (!isLastNonEmptyLine) {
  36. trimmedLine += " ";
  37. }
  38. str += trimmedLine;
  39. }
  40. }
  41. if (str) args.push(t.stringLiteral(str));
  42. }
  43. function buildChildren(node) {
  44. var elems = [];
  45. for (var i = 0; i < node.children.length; i++) {
  46. var child = node.children[i];
  47. if (t.isJSXText(child)) {
  48. cleanJSXElementLiteralChild(child, elems);
  49. continue;
  50. }
  51. if (t.isJSXExpressionContainer(child)) child = child.expression;
  52. if (t.isJSXEmptyExpression(child)) continue;
  53. elems.push(child);
  54. }
  55. return elems;
  56. }