| 132 | } |
| 133 | |
| 134 | handleCopy (e) { |
| 135 | if (isEmpty(this.state.editing)) { |
| 136 | e.preventDefault() |
| 137 | const {dataRenderer, valueRenderer, data} = this.props |
| 138 | const {start, end} = this.getState() |
| 139 | |
| 140 | const text = range(start.i, end.i).map((i) => |
| 141 | range(start.j, end.j).map(j => { |
| 142 | const cell = data[i][j] |
| 143 | const value = dataRenderer ? dataRenderer(cell, i, j) : null |
| 144 | if (value === '' || value === null || typeof (value) === 'undefined') { |
| 145 | return valueRenderer(cell, i, j) |
| 146 | } |
| 147 | return value |
| 148 | }).join('\t') |
| 149 | ).join('\n') |
| 150 | e.clipboardData.setData('text/plain', text) |
| 151 | } |
| 152 | } |
| 153 | |
| 154 | handlePaste (e) { |
| 155 | if (isEmpty(this.state.editing)) { |