1 | 'use strict';
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 |
|
7 | var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
|
8 |
|
9 | exports.handleArrayOfData = handleArrayOfData;
|
10 | exports.getComponentDataType = getComponentDataType;
|
11 | exports.getComponentContent = getComponentContent;
|
12 | exports.generateChildCellData = generateChildCellData;
|
13 |
|
14 | var _react = require('react');
|
15 |
|
16 | var _react2 = _interopRequireDefault(_react);
|
17 |
|
18 | var _ImageCell = require('./ImageCell');
|
19 |
|
20 | var _UrlCell = require('./UrlCell');
|
21 |
|
22 | var _TextCell = require('./TextCell');
|
23 |
|
24 | var _constants = require('./constants');
|
25 |
|
26 | var Constants = _interopRequireWildcard(_constants);
|
27 |
|
28 | var _CellExpander = require('./CellExpander');
|
29 |
|
30 | 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; } }
|
31 |
|
32 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
33 |
|
34 | function handleArrayOfData(_ref) {
|
35 | var columnDataType = _ref.columnDataType,
|
36 | cellData = _ref.cellData,
|
37 | width = _ref.width,
|
38 | height = _ref.height,
|
39 | key = _ref.key,
|
40 | columnKey = _ref.columnKey,
|
41 | rowIndex = _ref.rowIndex,
|
42 | mixedContentImage = _ref.mixedContentImage,
|
43 | cellCustomRenderer = _ref.cellCustomRenderer,
|
44 | disableClickEvents = _ref.disableClickEvents;
|
45 |
|
46 | var childrenCellData = generateChildCellData(cellData);
|
47 |
|
48 | var properties = {
|
49 | disableClickEvents: disableClickEvents,
|
50 | columnDataType: columnDataType,
|
51 | cellData: childrenCellData[0],
|
52 | width: width,
|
53 | key: key,
|
54 | columnKey: columnKey,
|
55 | mixedContentImage: mixedContentImage,
|
56 | height: height,
|
57 | rowIndex: rowIndex
|
58 | };
|
59 |
|
60 | if (childrenCellData.length === 1) {
|
61 | return cellCustomRenderer(properties);
|
62 | } else {
|
63 | return _react2.default.createElement(
|
64 | _CellExpander.CellExpander,
|
65 | { firstElement: cellCustomRenderer(properties), totalRows: properties.height, rowIndex: properties.rowIndex },
|
66 | childrenCellData.map(function (cellData, key) {
|
67 | return cellCustomRenderer(_extends({}, properties, { cellData: cellData, key: key }));
|
68 | })
|
69 | );
|
70 | }
|
71 | }
|
72 |
|
73 | function getComponentDataType(_ref2) {
|
74 | var columnDataType = _ref2.columnDataType,
|
75 | cellData = _ref2.cellData,
|
76 | width = _ref2.width,
|
77 | height = _ref2.height,
|
78 | key = _ref2.key,
|
79 | columnKey = _ref2.columnKey,
|
80 | mixedContentImage = _ref2.mixedContentImage,
|
81 | _ref2$cellCustomRende = _ref2.cellCustomRenderer,
|
82 | cellCustomRenderer = _ref2$cellCustomRende === undefined ? getComponentContent : _ref2$cellCustomRende,
|
83 | cellStyles = _ref2.cellStyles,
|
84 | disableClickEvents = _ref2.disableClickEvents,
|
85 | rowIndex = _ref2.rowIndex;
|
86 |
|
87 | if (!columnDataType) {
|
88 | return null;
|
89 | }
|
90 |
|
91 | var props = { cellStyles: cellStyles, columnDataType: columnDataType, cellData: cellData, key: key, columnKey: columnKey, mixedContentImage: mixedContentImage, width: width, height: height, rowIndex: rowIndex, disableClickEvents: disableClickEvents };
|
92 |
|
93 | if (Array.isArray(cellData.main)) {
|
94 | return handleArrayOfData(_extends({}, props, { cellCustomRenderer: cellCustomRenderer }));
|
95 | } else {
|
96 | return cellCustomRenderer(props);
|
97 | }
|
98 | }
|
99 |
|
100 | function getComponentContent(_ref3) {
|
101 | var columnDataType = _ref3.columnDataType,
|
102 | cellData = _ref3.cellData,
|
103 | width = _ref3.width,
|
104 | key = _ref3.key,
|
105 | columnKey = _ref3.columnKey,
|
106 | mixedContentImage = _ref3.mixedContentImage,
|
107 | _ref3$disableClickEve = _ref3.disableClickEvents,
|
108 | disableClickEvents = _ref3$disableClickEve === undefined ? false : _ref3$disableClickEve;
|
109 |
|
110 | switch (columnDataType) {
|
111 | case Constants.ColumnTypes.URL:
|
112 | return _react2.default.createElement(_UrlCell.UrlCell, { cellData: cellData, width: width, key: key, columnKey: columnKey, disabled: disableClickEvents });
|
113 |
|
114 | case Constants.ColumnTypes.IMAGE:
|
115 | return _react2.default.createElement(_ImageCell.ImageCell, { cellData: cellData, width: width, key: key, disabled: disableClickEvents, columnKey: columnKey, mixedContentImage: mixedContentImage });
|
116 |
|
117 | case Constants.ColumnTypes.AUTO:
|
118 | if (cellData.main && cellData.main.src) {
|
119 | return _react2.default.createElement(_ImageCell.ImageCell, { cellData: cellData, width: width, key: key, disabled: disableClickEvents, columnKey: columnKey, mixedContentImage: mixedContentImage });
|
120 | } else {
|
121 | return _react2.default.createElement(_TextCell.TextCell, { cellData: cellData, width: width, key: key, columnKey: columnKey });
|
122 | }
|
123 |
|
124 | default:
|
125 | return _react2.default.createElement(_TextCell.TextCell, { cellData: cellData, width: width, key: key, columnKey: columnKey });
|
126 | }
|
127 | }
|
128 |
|
129 | function generateChildCellData(cellData) {
|
130 | if (!cellData || !cellData.main) {
|
131 | return null;
|
132 | }
|
133 |
|
134 | var results = [];
|
135 |
|
136 | cellData.main.forEach(function (value, i) {
|
137 | var obj = {};
|
138 |
|
139 | Object.keys(cellData).forEach(function (property) {
|
140 |
|
141 | if (Array.isArray(cellData[property])) {
|
142 | obj[property] = cellData[property][i];
|
143 | } else {
|
144 | obj[property] = cellData[property];
|
145 | }
|
146 | });
|
147 |
|
148 | results.push(obj);
|
149 | });
|
150 |
|
151 | return results;
|
152 | } |
\ | No newline at end of file |