drawTable.js 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. 'use strict';
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. var _lodash = require('lodash');
  6. var _lodash2 = _interopRequireDefault(_lodash);
  7. var _drawBorder = require('./drawBorder');
  8. var _drawRow = require('./drawRow');
  9. var _drawRow2 = _interopRequireDefault(_drawRow);
  10. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  11. /**
  12. * @param {Array} rows
  13. * @param {Object} border
  14. * @param {Array} columnSizeIndex
  15. * @param {Array} rowSpanIndex
  16. * @param {Function} drawHorizontalLine
  17. * @returns {string}
  18. */
  19. exports.default = (rows, border, columnSizeIndex, rowSpanIndex, drawHorizontalLine) => {
  20. let output;
  21. let realRowIndex;
  22. let rowHeight;
  23. const rowCount = rows.length;
  24. realRowIndex = 0;
  25. output = '';
  26. if (drawHorizontalLine(realRowIndex, rowCount)) {
  27. output += (0, _drawBorder.drawBorderTop)(columnSizeIndex, border);
  28. }
  29. _lodash2.default.forEach(rows, (row, index0) => {
  30. output += (0, _drawRow2.default)(row, border);
  31. if (!rowHeight) {
  32. rowHeight = rowSpanIndex[realRowIndex];
  33. realRowIndex++;
  34. }
  35. rowHeight--;
  36. if (rowHeight === 0 && index0 !== rowCount - 1 && drawHorizontalLine(realRowIndex, rowCount)) {
  37. output += (0, _drawBorder.drawBorderJoin)(columnSizeIndex, border);
  38. }
  39. });
  40. if (drawHorizontalLine(realRowIndex, rowCount)) {
  41. output += (0, _drawBorder.drawBorderBottom)(columnSizeIndex, border);
  42. }
  43. return output;
  44. };