mapDataUsingRowHeightIndex.js 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. 'use strict';
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. var _lodash = require('lodash');
  6. var _lodash2 = _interopRequireDefault(_lodash);
  7. var _wrapString = require('./wrapString');
  8. var _wrapString2 = _interopRequireDefault(_wrapString);
  9. var _wrapWord = require('./wrapWord');
  10. var _wrapWord2 = _interopRequireDefault(_wrapWord);
  11. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  12. /**
  13. * @param {Array} unmappedRows
  14. * @param {number[]} rowHeightIndex
  15. * @param {Object} config
  16. * @returns {Array}
  17. */
  18. exports.default = (unmappedRows, rowHeightIndex, config) => {
  19. const tableWidth = unmappedRows[0].length;
  20. const mappedRows = unmappedRows.map((cells, index0) => {
  21. const rowHeight = _lodash2.default.times(rowHeightIndex[index0], () => {
  22. return _lodash2.default.fill(Array(tableWidth), '');
  23. });
  24. // rowHeight
  25. // [{row index within rowSaw; index2}]
  26. // [{cell index within a virtual row; index1}]
  27. _lodash2.default.forEach(cells, (value, index1) => {
  28. let chunkedValue;
  29. if (config.columns[index1].wrapWord) {
  30. chunkedValue = (0, _wrapWord2.default)(value, config.columns[index1].width);
  31. } else {
  32. chunkedValue = (0, _wrapString2.default)(value, config.columns[index1].width);
  33. }
  34. _lodash2.default.forEach(chunkedValue, (part, index2) => {
  35. rowHeight[index2][index1] = part;
  36. });
  37. });
  38. return rowHeight;
  39. });
  40. return _lodash2.default.flatten(mappedRows);
  41. };