diff --git a/TableRenderers.js b/TableRenderers.js index 418cd1b..a006e87 100644 --- a/TableRenderers.js +++ b/TableRenderers.js @@ -212,6 +212,15 @@ function makeRenderer() { }; } : null; + var getFormatedValue = function getFormatedValue(aggregator, rowKey, colKey) { + console.log('aggregator', aggregator); + console.log('rowKey', rowKey); + console.log('colKey', colKey); + console.log('props.headersDefinitions', _this2.props.headersDefinitions); + console.log('props', _this2.props); + return ''; + }; + return _react2.default.createElement( 'table', { className: 'pvtTable' }, @@ -308,7 +317,8 @@ function makeRenderer() { onClick: getClickHandler && getClickHandler(aggregator.value(), rowKey, colKey), style: valueCellColors(rowKey, colKey, aggregator.value()) }, - aggregator.format(aggregator.value()) + aggregator.format(aggregator.value()), + j < 10 && getFormatedValue(aggregator, rowKey, colKey) ); }), _react2.default.createElement( diff --git a/TableRenderers.js.map b/TableRenderers.js.map index cef491d..7574411 100644 --- a/TableRenderers.js.map +++ b/TableRenderers.js.map @@ -1 +1 @@ -{"version":3,"sources":["../src/TableRenderers.jsx"],"names":["spanSize","arr","i","j","x","asc","end","noDraw","len","length","asc1","end1","stop","redColorScaleGenerator","values","min","Math","apply","max","nonRed","round","backgroundColor","makeRenderer","opts","TableRenderer","pivotData","PivotData","props","colAttrs","cols","rowAttrs","rows","rowKeys","getRowKeys","colKeys","getColKeys","grandTotalAggregator","getAggregator","getStylesHeaders","stylesHeaders","getHeaderClass","headerClass","valueCellColors","rowTotalColors","colTotalColors","heatmapMode","colorScaleGenerator","tableColorScaleGenerator","rowTotalValues","map","value","colTotalValues","allValues","push","r","c","colorScale","v","rowColorScales","rowValues","colColorScales","colValues","getClickHandler","tableOptions","clickCallback","filters","Object","keys","attr","e","colKey","rowKey","totalAggregator","txt","aggregator","format","React","PureComponent","defaultProps","propTypes","PropTypes","func","object","TSVExportRenderer","headerRow","aggregatorName","join","result","row","unshift","width","window","innerWidth","height","innerHeight","Table"],"mappings":"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","file":"TableRenderers.js","sourcesContent":["import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {PivotData} from './Utilities';\r\n\r\n// helper function for setting row/col-span in pivotTableRenderer\r\nconst spanSize = function(arr, i, j) {\r\n let x;\r\n if (i !== 0) {\r\n let asc, end;\r\n let noDraw = true;\r\n for (\r\n x = 0, end = j, asc = end >= 0;\r\n asc ? x <= end : x >= end;\r\n asc ? x++ : x--\r\n ) {\r\n if (arr[i - 1][x] !== arr[i][x]) {\r\n noDraw = false;\r\n }\r\n }\r\n if (noDraw) {\r\n return -1;\r\n }\r\n }\r\n let len = 0;\r\n while (i + len < arr.length) {\r\n let asc1, end1;\r\n let stop = false;\r\n for (\r\n x = 0, end1 = j, asc1 = end1 >= 0;\r\n asc1 ? x <= end1 : x >= end1;\r\n asc1 ? x++ : x--\r\n ) {\r\n if (arr[i][x] !== arr[i + len][x]) {\r\n stop = true;\r\n }\r\n }\r\n if (stop) {\r\n break;\r\n }\r\n len++;\r\n }\r\n return len;\r\n};\r\n\r\nfunction redColorScaleGenerator(values) {\r\n const min = Math.min.apply(Math, values);\r\n const max = Math.max.apply(Math, values);\r\n return x => {\r\n // eslint-disable-next-line no-magic-numbers\r\n const nonRed = 255 - Math.round((255 * (x - min)) / (max - min));\r\n return {backgroundColor: `rgb(255,${nonRed},${nonRed})`};\r\n };\r\n}\r\n\r\nfunction makeRenderer(opts = {}) {\r\n class TableRenderer extends React.PureComponent {\r\n render() {\r\n const pivotData = new PivotData(this.props);\r\n const colAttrs = pivotData.props.cols;\r\n const rowAttrs = pivotData.props.rows;\r\n const rowKeys = pivotData.getRowKeys();\r\n const colKeys = pivotData.getColKeys();\r\n const grandTotalAggregator = pivotData.getAggregator([], []);\r\n\r\n const getStylesHeaders = () => { return this.props.stylesHeaders }\r\n const getHeaderClass = () => { return this.props.headerClass }\r\n\r\n let valueCellColors = () => {};\r\n let rowTotalColors = () => {};\r\n let colTotalColors = () => {};\r\n if (opts.heatmapMode) {\r\n const colorScaleGenerator = this.props.tableColorScaleGenerator;\r\n const rowTotalValues = colKeys.map(x =>\r\n pivotData.getAggregator([], x).value()\r\n );\r\n rowTotalColors = colorScaleGenerator(rowTotalValues);\r\n const colTotalValues = rowKeys.map(x =>\r\n pivotData.getAggregator(x, []).value()\r\n );\r\n colTotalColors = colorScaleGenerator(colTotalValues);\r\n\r\n if (opts.heatmapMode === 'full') {\r\n const allValues = [];\r\n rowKeys.map(r =>\r\n colKeys.map(c =>\r\n allValues.push(pivotData.getAggregator(r, c).value())\r\n )\r\n );\r\n const colorScale = colorScaleGenerator(allValues);\r\n valueCellColors = (r, c, v) => colorScale(v);\r\n } else if (opts.heatmapMode === 'row') {\r\n const rowColorScales = {};\r\n rowKeys.map(r => {\r\n const rowValues = colKeys.map(x =>\r\n pivotData.getAggregator(r, x).value()\r\n );\r\n rowColorScales[r] = colorScaleGenerator(rowValues);\r\n });\r\n valueCellColors = (r, c, v) => rowColorScales[r](v);\r\n } else if (opts.heatmapMode === 'col') {\r\n const colColorScales = {};\r\n colKeys.map(c => {\r\n const colValues = rowKeys.map(x =>\r\n pivotData.getAggregator(x, c).value()\r\n );\r\n colColorScales[c] = colorScaleGenerator(colValues);\r\n });\r\n valueCellColors = (r, c, v) => colColorScales[c](v);\r\n }\r\n }\r\n\r\n const getClickHandler =\r\n this.props.tableOptions && this.props.tableOptions.clickCallback\r\n ? (value, rowValues, colValues) => {\r\n const filters = {};\r\n for (const i of Object.keys(colAttrs || {})) {\r\n const attr = colAttrs[i];\r\n if (colValues[i] !== null) {\r\n filters[attr] = colValues[i];\r\n }\r\n }\r\n for (const i of Object.keys(rowAttrs || {})) {\r\n const attr = rowAttrs[i];\r\n if (rowValues[i] !== null) {\r\n filters[attr] = rowValues[i];\r\n }\r\n }\r\n return e =>\r\n this.props.tableOptions.clickCallback(\r\n e,\r\n value,\r\n filters,\r\n pivotData\r\n );\r\n }\r\n : null;\r\n\r\n return (\r\n \r\n \r\n {colAttrs.map(function(c, j) {\r\n return (\r\n \r\n {j === 0 && rowAttrs.length !== 0 && (\r\n \r\n {colKeys.map(function(colKey, i) {\r\n const x = spanSize(colKeys, i, j);\r\n if (x === -1) {\r\n return null;\r\n }\r\n return (\r\n \r\n {colKey[j]}\r\n \r\n );\r\n })}\r\n\r\n {j === 0 && (\r\n \r\n Total\r\n \r\n )}\r\n \r\n );\r\n })}\r\n\r\n {rowAttrs.length !== 0 && (\r\n \r\n {rowAttrs.map(function(r, i) {\r\n return (\r\n \r\n );\r\n })}\r\n \r\n \r\n )}\r\n \r\n\r\n \r\n {rowKeys.map(function(rowKey, i) {\r\n const totalAggregator = pivotData.getAggregator(rowKey, []);\r\n return (\r\n \r\n {rowKey.map(function(txt, j) {\r\n const x = spanSize(rowKeys, i, j);\r\n if (x === -1) {\r\n return null;\r\n }\r\n return (\r\n \r\n {txt}\r\n \r\n );\r\n })}\r\n {colKeys.map(function(colKey, j) {\r\n const aggregator = pivotData.getAggregator(rowKey, colKey);\r\n return (\r\n \r\n {aggregator.format(aggregator.value())}\r\n \r\n );\r\n })}\r\n \r\n {totalAggregator.format(totalAggregator.value())}\r\n \r\n \r\n );\r\n })}\r\n\r\n \r\n \r\n Total\r\n \r\n\r\n {colKeys.map(function(colKey, i) {\r\n const totalAggregator = pivotData.getAggregator([], colKey);\r\n return (\r\n \r\n {totalAggregator.format(totalAggregator.value())}\r\n \r\n );\r\n })}\r\n\r\n \r\n {grandTotalAggregator.format(grandTotalAggregator.value())}\r\n \r\n \r\n \r\n
\r\n )}\r\n {c}
\r\n {r}\r\n \r\n {colAttrs.length === 0 ? 'Total' : null}\r\n
\r\n );\r\n }\r\n }\r\n\r\n TableRenderer.defaultProps = PivotData.defaultProps;\r\n TableRenderer.propTypes = PivotData.propTypes;\r\n TableRenderer.defaultProps.tableColorScaleGenerator = redColorScaleGenerator;\r\n TableRenderer.defaultProps.tableOptions = {};\r\n TableRenderer.propTypes.tableColorScaleGenerator = PropTypes.func;\r\n TableRenderer.propTypes.tableOptions = PropTypes.object;\r\n return TableRenderer;\r\n}\r\n\r\nclass TSVExportRenderer extends React.PureComponent {\r\n render() {\r\n const pivotData = new PivotData(this.props);\r\n const rowKeys = pivotData.getRowKeys();\r\n const colKeys = pivotData.getColKeys();\r\n if (rowKeys.length === 0) {\r\n rowKeys.push([]);\r\n }\r\n if (colKeys.length === 0) {\r\n colKeys.push([]);\r\n }\r\n\r\n const headerRow = pivotData.props.rows.map(r => r);\r\n if (colKeys.length === 1 && colKeys[0].length === 0) {\r\n headerRow.push(this.props.aggregatorName);\r\n } else {\r\n colKeys.map(c => headerRow.push(c.join('-')));\r\n }\r\n\r\n const result = rowKeys.map(r => {\r\n const row = r.map(x => x);\r\n colKeys.map(c => {\r\n const v = pivotData.getAggregator(r, c).value();\r\n row.push(v ? v : '');\r\n });\r\n return row;\r\n });\r\n\r\n result.unshift(headerRow);\r\n\r\n return (\r\n r.join('\\t')).join('\\n')}\r\n style={{width: window.innerWidth / 2, height: window.innerHeight / 2}}\r\n readOnly={true}\r\n />\r\n );\r\n }\r\n}\r\n\r\nTSVExportRenderer.defaultProps = PivotData.defaultProps;\r\nTSVExportRenderer.propTypes = PivotData.propTypes;\r\n\r\nexport default {\r\n Table: makeRenderer(),\r\n 'Table Heatmap': makeRenderer({heatmapMode: 'full'}),\r\n 'Table Col Heatmap': makeRenderer({heatmapMode: 'col'}),\r\n 'Table Row Heatmap': makeRenderer({heatmapMode: 'row'}),\r\n 'Exportable TSV': TSVExportRenderer,\r\n};\r\n"]} \ No newline at end of file +{"version":3,"sources":["../src/TableRenderers.jsx"],"names":["spanSize","arr","i","j","x","asc","end","noDraw","len","length","asc1","end1","stop","redColorScaleGenerator","values","min","Math","apply","max","nonRed","round","backgroundColor","makeRenderer","opts","TableRenderer","pivotData","PivotData","props","colAttrs","cols","rowAttrs","rows","rowKeys","getRowKeys","colKeys","getColKeys","grandTotalAggregator","getAggregator","getStylesHeaders","stylesHeaders","getHeaderClass","headerClass","valueCellColors","rowTotalColors","colTotalColors","heatmapMode","colorScaleGenerator","tableColorScaleGenerator","rowTotalValues","map","value","colTotalValues","allValues","push","r","c","colorScale","v","rowColorScales","rowValues","colColorScales","colValues","getClickHandler","tableOptions","clickCallback","filters","Object","keys","attr","e","getFormatedValue","aggregator","rowKey","colKey","console","log","headersDefinitions","totalAggregator","txt","format","React","PureComponent","defaultProps","propTypes","PropTypes","func","object","TSVExportRenderer","headerRow","aggregatorName","join","result","row","unshift","width","window","innerWidth","height","innerHeight","Table"],"mappings":"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","file":"TableRenderers.js","sourcesContent":["import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {PivotData} from './Utilities';\r\n\r\n// helper function for setting row/col-span in pivotTableRenderer\r\nconst spanSize = function(arr, i, j) {\r\n let x;\r\n if (i !== 0) {\r\n let asc, end;\r\n let noDraw = true;\r\n for (\r\n x = 0, end = j, asc = end >= 0;\r\n asc ? x <= end : x >= end;\r\n asc ? x++ : x--\r\n ) {\r\n if (arr[i - 1][x] !== arr[i][x]) {\r\n noDraw = false;\r\n }\r\n }\r\n if (noDraw) {\r\n return -1;\r\n }\r\n }\r\n let len = 0;\r\n while (i + len < arr.length) {\r\n let asc1, end1;\r\n let stop = false;\r\n for (\r\n x = 0, end1 = j, asc1 = end1 >= 0;\r\n asc1 ? x <= end1 : x >= end1;\r\n asc1 ? x++ : x--\r\n ) {\r\n if (arr[i][x] !== arr[i + len][x]) {\r\n stop = true;\r\n }\r\n }\r\n if (stop) {\r\n break;\r\n }\r\n len++;\r\n }\r\n return len;\r\n};\r\n\r\nfunction redColorScaleGenerator(values) {\r\n const min = Math.min.apply(Math, values);\r\n const max = Math.max.apply(Math, values);\r\n return x => {\r\n // eslint-disable-next-line no-magic-numbers\r\n const nonRed = 255 - Math.round((255 * (x - min)) / (max - min));\r\n return {backgroundColor: `rgb(255,${nonRed},${nonRed})`};\r\n };\r\n}\r\n\r\nfunction makeRenderer(opts = {}) {\r\n class TableRenderer extends React.PureComponent {\r\n render() {\r\n const pivotData = new PivotData(this.props);\r\n const colAttrs = pivotData.props.cols;\r\n const rowAttrs = pivotData.props.rows;\r\n const rowKeys = pivotData.getRowKeys();\r\n const colKeys = pivotData.getColKeys();\r\n const grandTotalAggregator = pivotData.getAggregator([], []);\r\n\r\n const getStylesHeaders = () => { return this.props.stylesHeaders }\r\n const getHeaderClass = () => { return this.props.headerClass }\r\n\r\n let valueCellColors = () => {};\r\n let rowTotalColors = () => {};\r\n let colTotalColors = () => {};\r\n if (opts.heatmapMode) {\r\n const colorScaleGenerator = this.props.tableColorScaleGenerator;\r\n const rowTotalValues = colKeys.map(x =>\r\n pivotData.getAggregator([], x).value()\r\n );\r\n rowTotalColors = colorScaleGenerator(rowTotalValues);\r\n const colTotalValues = rowKeys.map(x =>\r\n pivotData.getAggregator(x, []).value()\r\n );\r\n colTotalColors = colorScaleGenerator(colTotalValues);\r\n\r\n if (opts.heatmapMode === 'full') {\r\n const allValues = [];\r\n rowKeys.map(r =>\r\n colKeys.map(c =>\r\n allValues.push(pivotData.getAggregator(r, c).value())\r\n )\r\n );\r\n const colorScale = colorScaleGenerator(allValues);\r\n valueCellColors = (r, c, v) => colorScale(v);\r\n } else if (opts.heatmapMode === 'row') {\r\n const rowColorScales = {};\r\n rowKeys.map(r => {\r\n const rowValues = colKeys.map(x =>\r\n pivotData.getAggregator(r, x).value()\r\n );\r\n rowColorScales[r] = colorScaleGenerator(rowValues);\r\n });\r\n valueCellColors = (r, c, v) => rowColorScales[r](v);\r\n } else if (opts.heatmapMode === 'col') {\r\n const colColorScales = {};\r\n colKeys.map(c => {\r\n const colValues = rowKeys.map(x =>\r\n pivotData.getAggregator(x, c).value()\r\n );\r\n colColorScales[c] = colorScaleGenerator(colValues);\r\n });\r\n valueCellColors = (r, c, v) => colColorScales[c](v);\r\n }\r\n }\r\n\r\n const getClickHandler =\r\n this.props.tableOptions && this.props.tableOptions.clickCallback\r\n ? (value, rowValues, colValues) => {\r\n const filters = {};\r\n for (const i of Object.keys(colAttrs || {})) {\r\n const attr = colAttrs[i];\r\n if (colValues[i] !== null) {\r\n filters[attr] = colValues[i];\r\n }\r\n }\r\n for (const i of Object.keys(rowAttrs || {})) {\r\n const attr = rowAttrs[i];\r\n if (rowValues[i] !== null) {\r\n filters[attr] = rowValues[i];\r\n }\r\n }\r\n return e =>\r\n this.props.tableOptions.clickCallback(\r\n e,\r\n value,\r\n filters,\r\n pivotData\r\n );\r\n }\r\n : null;\r\n \r\n const getFormatedValue = (aggregator, rowKey, colKey) => {\r\n console.log('aggregator', aggregator)\r\n console.log('rowKey', rowKey)\r\n console.log('colKey', colKey)\r\n console.log('props.headersDefinitions', this.props.headersDefinitions)\r\n console.log('props', this.props)\r\n return ''\r\n }\r\n\r\n return (\r\n \r\n \r\n {colAttrs.map(function(c, j) {\r\n return (\r\n \r\n {j === 0 && rowAttrs.length !== 0 && (\r\n \r\n {colKeys.map(function(colKey, i) {\r\n const x = spanSize(colKeys, i, j);\r\n if (x === -1) {\r\n return null;\r\n }\r\n return (\r\n \r\n {colKey[j]}\r\n \r\n );\r\n })}\r\n\r\n {j === 0 && (\r\n \r\n Total\r\n \r\n )}\r\n \r\n );\r\n })}\r\n\r\n {rowAttrs.length !== 0 && (\r\n \r\n {rowAttrs.map(function(r, i) {\r\n return (\r\n \r\n );\r\n })}\r\n \r\n \r\n )}\r\n \r\n\r\n \r\n {rowKeys.map(function(rowKey, i) {\r\n const totalAggregator = pivotData.getAggregator(rowKey, []);\r\n return (\r\n \r\n {rowKey.map(function(txt, j) {\r\n const x = spanSize(rowKeys, i, j);\r\n if (x === -1) {\r\n return null;\r\n }\r\n return (\r\n \r\n {txt}\r\n \r\n );\r\n })}\r\n {colKeys.map(function(colKey, j) {\r\n const aggregator = pivotData.getAggregator(rowKey, colKey);\r\n return (\r\n \r\n {aggregator.format(aggregator.value())}\r\n { j < 10 && getFormatedValue(aggregator, rowKey, colKey) }\r\n \r\n );\r\n })}\r\n \r\n {totalAggregator.format(totalAggregator.value())}\r\n \r\n \r\n );\r\n })}\r\n\r\n \r\n \r\n Total\r\n \r\n\r\n {colKeys.map(function(colKey, i) {\r\n const totalAggregator = pivotData.getAggregator([], colKey);\r\n return (\r\n \r\n {totalAggregator.format(totalAggregator.value())}\r\n \r\n );\r\n })}\r\n\r\n \r\n {grandTotalAggregator.format(grandTotalAggregator.value())}\r\n \r\n \r\n \r\n
\r\n )}\r\n {c}
\r\n {r}\r\n \r\n {colAttrs.length === 0 ? 'Total' : null}\r\n
\r\n );\r\n }\r\n }\r\n\r\n TableRenderer.defaultProps = PivotData.defaultProps;\r\n TableRenderer.propTypes = PivotData.propTypes;\r\n TableRenderer.defaultProps.tableColorScaleGenerator = redColorScaleGenerator;\r\n TableRenderer.defaultProps.tableOptions = {};\r\n TableRenderer.propTypes.tableColorScaleGenerator = PropTypes.func;\r\n TableRenderer.propTypes.tableOptions = PropTypes.object;\r\n return TableRenderer;\r\n}\r\n\r\nclass TSVExportRenderer extends React.PureComponent {\r\n render() {\r\n const pivotData = new PivotData(this.props);\r\n const rowKeys = pivotData.getRowKeys();\r\n const colKeys = pivotData.getColKeys();\r\n if (rowKeys.length === 0) {\r\n rowKeys.push([]);\r\n }\r\n if (colKeys.length === 0) {\r\n colKeys.push([]);\r\n }\r\n\r\n const headerRow = pivotData.props.rows.map(r => r);\r\n if (colKeys.length === 1 && colKeys[0].length === 0) {\r\n headerRow.push(this.props.aggregatorName);\r\n } else {\r\n colKeys.map(c => headerRow.push(c.join('-')));\r\n }\r\n\r\n const result = rowKeys.map(r => {\r\n const row = r.map(x => x);\r\n colKeys.map(c => {\r\n const v = pivotData.getAggregator(r, c).value();\r\n row.push(v ? v : '');\r\n });\r\n return row;\r\n });\r\n\r\n result.unshift(headerRow);\r\n\r\n return (\r\n r.join('\\t')).join('\\n')}\r\n style={{width: window.innerWidth / 2, height: window.innerHeight / 2}}\r\n readOnly={true}\r\n />\r\n );\r\n }\r\n}\r\n\r\nTSVExportRenderer.defaultProps = PivotData.defaultProps;\r\nTSVExportRenderer.propTypes = PivotData.propTypes;\r\n\r\nexport default {\r\n Table: makeRenderer(),\r\n 'Table Heatmap': makeRenderer({heatmapMode: 'full'}),\r\n 'Table Col Heatmap': makeRenderer({heatmapMode: 'col'}),\r\n 'Table Row Heatmap': makeRenderer({heatmapMode: 'row'}),\r\n 'Exportable TSV': TSVExportRenderer,\r\n};\r\n"]} \ No newline at end of file diff --git a/package.json b/package.json index 800c83f..e9559f8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "v-react-pivottable", - "version": "0.11.22", + "version": "0.11.23", "description": "A React-based pivot table", "main": "PivotTableUI.js", "files": [