diff --git a/TableRenderers.js b/TableRenderers.js index 807441e..a55287a 100644 --- a/TableRenderers.js +++ b/TableRenderers.js @@ -384,8 +384,10 @@ function makeRenderer() { 'tbody', null, rowKeysSub.map(function (rowKey, i) { - var totalAggregator = pivotData.getAggregator(rowKey, []); var isSubTotal = rowKey.includes('[:sub-total:]'); + var totalAggregator = isSubTotal ? { value: function value() { + return 0; + } } : pivotData.getAggregator(rowKey, []); return _react2.default.createElement( 'tr', { key: 'rowKeyRow' + i }, diff --git a/TableRenderers.js.map b/TableRenderers.js.map index 654ecf6..ccf5a91 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","console","log","rowKeys","getRowKeys","colKeys","getColKeys","rowKeysSub","beforeFirstKey","idx","arrRowKeys","currentFirstKey","push","grandTotalAggregator","getAggregator","getStylesHeaders","stylesHeaders","getHeaderClass","headerClass","valueCellColors","rowTotalColors","colTotalColors","heatmapMode","colorScaleGenerator","tableColorScaleGenerator","rowTotalValues","map","value","colTotalValues","allValues","r","c","colorScale","v","rowColorScales","rowValues","colColorScales","colValues","getClickHandler","tableOptions","clickCallback","filters","Object","keys","attr","e","isNotNullish","val","getFinalFormat","objCol","type","format","includes","number_decimals","numberDecimals","parseInt","resultDecimals","isNaN","counter","replace","getLocaleConfig","delimiters","thousands","delimiter_thousands","decimal","delimiter_decimal","abbreviations","thousand","million","billion","trillion","currency","symbol","currency_symbol","getFormatedValue","aggregator","valToFormat","resultValue","keyColumnaCalculo","vals","aggregatorName","functions","formatedValue","headersDefinitions","_definition","startsWith","chartFunctions","getValueClass","objItem","classItem","colKey","rowKey","totalAggregator","isSubTotal","txt","React","PureComponent","defaultProps","propTypes","PropTypes","func","object","TSVExportRenderer","headerRow","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 console.log('pivotData', pivotData)\r\n console.log('colAttrs', colAttrs)\r\n console.log('rowAttrs', rowAttrs)\r\n const rowKeys = pivotData.getRowKeys();\r\n const colKeys = pivotData.getColKeys();\r\n let rowKeysSub = []\r\n if (rowAttrs !== null && rowAttrs.length > 1) {\r\n let beforeFirstKey = null\r\n for (let idx = 0; idx < rowKeys.length; idx++) {\r\n const arrRowKeys = rowKeys[idx];\r\n const currentFirstKey = arrRowKeys[0]\r\n if (beforeFirstKey === null) {\r\n beforeFirstKey = currentFirstKey\r\n }\r\n if (beforeFirstKey !== currentFirstKey) {\r\n rowKeysSub.push([beforeFirstKey, '[:sub-total:]'])\r\n beforeFirstKey = currentFirstKey\r\n }\r\n rowKeysSub.push(arrRowKeys)\r\n }\r\n } else {\r\n rowKeysSub = pivotData.getRowKeys();\r\n }\r\n console.log('rowKeysSub', rowKeysSub)\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 isNotNullish = (val) => {\r\n if (typeof val !== 'undefined' && val !== null) {\r\n return true\r\n }\r\n return false\r\n }\r\n \r\n const getFinalFormat = (objCol) => {\r\n if (objCol.type !== 'number' || (isNotNullish(objCol.format) && objCol.format.includes('Q'))) {\r\n return objCol.format\r\n }\r\n if (objCol.format.includes('.')) {\r\n if (isNotNullish(objCol.number_decimals)) {\r\n const numberDecimals = parseInt(objCol.number_decimals)\r\n let resultDecimals = ''\r\n if (numberDecimals && !isNaN(numberDecimals) && numberDecimals > 0) {\r\n let counter = 0\r\n resultDecimals = '.'\r\n while (counter < numberDecimals) {\r\n resultDecimals = `${resultDecimals}0`\r\n counter += 1\r\n }\r\n }\r\n return objCol.format.replace('.00', resultDecimals)\r\n }\r\n return objCol.format\r\n }\r\n return objCol.format\r\n }\r\n \r\n const getLocaleConfig = (objCol) => {\r\n if (objCol.type !== 'number' || (isNotNullish(objCol.format) && objCol.format.includes('Q'))) {\r\n return null\r\n }\r\n return {\r\n delimiters: {\r\n thousands: isNotNullish(objCol.delimiter_thousands) ? objCol.delimiter_thousands : ',',\r\n decimal: isNotNullish(objCol.delimiter_decimal) ? objCol.delimiter_decimal : '.'\r\n },\r\n abbreviations: {\r\n thousand: 'k',\r\n million: 'm',\r\n billion: 'b',\r\n trillion: 't'\r\n },\r\n currency: {\r\n symbol: isNotNullish(objCol.currency_symbol) ? objCol.currency_symbol : '$'\r\n }\r\n }\r\n }\r\n\r\n const getFormatedValue = (aggregator) => {\r\n const valToFormat = aggregator.value()\r\n let resultValue = aggregator.format(valToFormat)\r\n const keyColumnaCalculo = isNotNullish(this.props.vals) && this.props.vals.length ? this.props.vals[0] : null\r\n if (this.props.aggregatorName === 'Conteo') {\r\n resultValue = isNotNullish(this.props.functions) ? this.props.functions.formatedValue(valToFormat, '0,0', 'number', false) : resultValue\r\n } else if (isNotNullish(keyColumnaCalculo) && isNotNullish(this.props.headersDefinitions)) {\r\n const _definition = this.props.headersDefinitions[keyColumnaCalculo]\r\n if (isNotNullish(_definition) && isNotNullish(_definition.value)) {\r\n if (_definition.value.startsWith('count_') || _definition.value.startsWith('countd_')) {\r\n resultValue = isNotNullish(this.props.functions) ? this.props.functions.formatedValue(valToFormat, '0,0', 'number', false) : resultValue\r\n } else if (isNotNullish(_definition.format) && _definition.format !== '') {\r\n resultValue = isNotNullish(this.props.chartFunctions) ?\r\n this.props.chartFunctions.formatedValue(valToFormat, getFinalFormat(_definition), _definition.type, false, null, getLocaleConfig(_definition)) :\r\n resultValue\r\n }\r\n }\r\n } \r\n return resultValue\r\n }\r\n\r\n const getValueClass = (aggregator) => {\r\n const valToFormat = aggregator.value()\r\n const keyColumnaCalculo = isNotNullish(this.props.vals) && this.props.vals.length ? this.props.vals[0] : null\r\n if (isNotNullish(keyColumnaCalculo) && isNotNullish(this.props.headersDefinitions)) {\r\n const _definition = this.props.headersDefinitions[keyColumnaCalculo]\r\n const objItem = {}\r\n if (isNotNullish(_definition) && isNotNullish(_definition.value) && isNotNullish(_definition.classItem) && typeof _definition.classItem === 'function') {\r\n objItem[_definition.value] = valToFormat\r\n objItem[`rv_${_definition.value}`] = valToFormat\r\n return _definition.classItem(objItem, true)\r\n }\r\n } \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 {rowKeysSub.map(function(rowKey, i) {\r\n const totalAggregator = pivotData.getAggregator(rowKey, []);\r\n const isSubTotal = rowKey.includes('[:sub-total:]')\r\n return (\r\n \r\n {rowKey.map(function(txt, j) {\r\n const x = spanSize(rowKeysSub, 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 { isSubTotal ? 'a' : getFormatedValue(aggregator) }\r\n \r\n );\r\n })}\r\n \r\n {/* totalAggregator.format(totalAggregator.value()) */}\r\n { isSubTotal ? 'a' : getFormatedValue(totalAggregator) }\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 { getFormatedValue(totalAggregator) }\r\n \r\n );\r\n })}\r\n\r\n \r\n {/* grandTotalAggregator.format(grandTotalAggregator.value()) */}\r\n { getFormatedValue(grandTotalAggregator) }\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","console","log","rowKeys","getRowKeys","colKeys","getColKeys","rowKeysSub","beforeFirstKey","idx","arrRowKeys","currentFirstKey","push","grandTotalAggregator","getAggregator","getStylesHeaders","stylesHeaders","getHeaderClass","headerClass","valueCellColors","rowTotalColors","colTotalColors","heatmapMode","colorScaleGenerator","tableColorScaleGenerator","rowTotalValues","map","value","colTotalValues","allValues","r","c","colorScale","v","rowColorScales","rowValues","colColorScales","colValues","getClickHandler","tableOptions","clickCallback","filters","Object","keys","attr","e","isNotNullish","val","getFinalFormat","objCol","type","format","includes","number_decimals","numberDecimals","parseInt","resultDecimals","isNaN","counter","replace","getLocaleConfig","delimiters","thousands","delimiter_thousands","decimal","delimiter_decimal","abbreviations","thousand","million","billion","trillion","currency","symbol","currency_symbol","getFormatedValue","aggregator","valToFormat","resultValue","keyColumnaCalculo","vals","aggregatorName","functions","formatedValue","headersDefinitions","_definition","startsWith","chartFunctions","getValueClass","objItem","classItem","colKey","rowKey","isSubTotal","totalAggregator","txt","React","PureComponent","defaultProps","propTypes","PropTypes","func","object","TSVExportRenderer","headerRow","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 console.log('pivotData', pivotData)\r\n console.log('colAttrs', colAttrs)\r\n console.log('rowAttrs', rowAttrs)\r\n const rowKeys = pivotData.getRowKeys();\r\n const colKeys = pivotData.getColKeys();\r\n let rowKeysSub = []\r\n if (rowAttrs !== null && rowAttrs.length > 1) {\r\n let beforeFirstKey = null\r\n for (let idx = 0; idx < rowKeys.length; idx++) {\r\n const arrRowKeys = rowKeys[idx];\r\n const currentFirstKey = arrRowKeys[0]\r\n if (beforeFirstKey === null) {\r\n beforeFirstKey = currentFirstKey\r\n }\r\n if (beforeFirstKey !== currentFirstKey) {\r\n rowKeysSub.push([beforeFirstKey, '[:sub-total:]'])\r\n beforeFirstKey = currentFirstKey\r\n }\r\n rowKeysSub.push(arrRowKeys)\r\n }\r\n } else {\r\n rowKeysSub = pivotData.getRowKeys();\r\n }\r\n console.log('rowKeysSub', rowKeysSub)\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 isNotNullish = (val) => {\r\n if (typeof val !== 'undefined' && val !== null) {\r\n return true\r\n }\r\n return false\r\n }\r\n \r\n const getFinalFormat = (objCol) => {\r\n if (objCol.type !== 'number' || (isNotNullish(objCol.format) && objCol.format.includes('Q'))) {\r\n return objCol.format\r\n }\r\n if (objCol.format.includes('.')) {\r\n if (isNotNullish(objCol.number_decimals)) {\r\n const numberDecimals = parseInt(objCol.number_decimals)\r\n let resultDecimals = ''\r\n if (numberDecimals && !isNaN(numberDecimals) && numberDecimals > 0) {\r\n let counter = 0\r\n resultDecimals = '.'\r\n while (counter < numberDecimals) {\r\n resultDecimals = `${resultDecimals}0`\r\n counter += 1\r\n }\r\n }\r\n return objCol.format.replace('.00', resultDecimals)\r\n }\r\n return objCol.format\r\n }\r\n return objCol.format\r\n }\r\n \r\n const getLocaleConfig = (objCol) => {\r\n if (objCol.type !== 'number' || (isNotNullish(objCol.format) && objCol.format.includes('Q'))) {\r\n return null\r\n }\r\n return {\r\n delimiters: {\r\n thousands: isNotNullish(objCol.delimiter_thousands) ? objCol.delimiter_thousands : ',',\r\n decimal: isNotNullish(objCol.delimiter_decimal) ? objCol.delimiter_decimal : '.'\r\n },\r\n abbreviations: {\r\n thousand: 'k',\r\n million: 'm',\r\n billion: 'b',\r\n trillion: 't'\r\n },\r\n currency: {\r\n symbol: isNotNullish(objCol.currency_symbol) ? objCol.currency_symbol : '$'\r\n }\r\n }\r\n }\r\n\r\n const getFormatedValue = (aggregator) => {\r\n const valToFormat = aggregator.value()\r\n let resultValue = aggregator.format(valToFormat)\r\n const keyColumnaCalculo = isNotNullish(this.props.vals) && this.props.vals.length ? this.props.vals[0] : null\r\n if (this.props.aggregatorName === 'Conteo') {\r\n resultValue = isNotNullish(this.props.functions) ? this.props.functions.formatedValue(valToFormat, '0,0', 'number', false) : resultValue\r\n } else if (isNotNullish(keyColumnaCalculo) && isNotNullish(this.props.headersDefinitions)) {\r\n const _definition = this.props.headersDefinitions[keyColumnaCalculo]\r\n if (isNotNullish(_definition) && isNotNullish(_definition.value)) {\r\n if (_definition.value.startsWith('count_') || _definition.value.startsWith('countd_')) {\r\n resultValue = isNotNullish(this.props.functions) ? this.props.functions.formatedValue(valToFormat, '0,0', 'number', false) : resultValue\r\n } else if (isNotNullish(_definition.format) && _definition.format !== '') {\r\n resultValue = isNotNullish(this.props.chartFunctions) ?\r\n this.props.chartFunctions.formatedValue(valToFormat, getFinalFormat(_definition), _definition.type, false, null, getLocaleConfig(_definition)) :\r\n resultValue\r\n }\r\n }\r\n } \r\n return resultValue\r\n }\r\n\r\n const getValueClass = (aggregator) => {\r\n const valToFormat = aggregator.value()\r\n const keyColumnaCalculo = isNotNullish(this.props.vals) && this.props.vals.length ? this.props.vals[0] : null\r\n if (isNotNullish(keyColumnaCalculo) && isNotNullish(this.props.headersDefinitions)) {\r\n const _definition = this.props.headersDefinitions[keyColumnaCalculo]\r\n const objItem = {}\r\n if (isNotNullish(_definition) && isNotNullish(_definition.value) && isNotNullish(_definition.classItem) && typeof _definition.classItem === 'function') {\r\n objItem[_definition.value] = valToFormat\r\n objItem[`rv_${_definition.value}`] = valToFormat\r\n return _definition.classItem(objItem, true)\r\n }\r\n } \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 {rowKeysSub.map(function(rowKey, i) {\r\n const isSubTotal = rowKey.includes('[:sub-total:]')\r\n const totalAggregator = isSubTotal ? { value: () => { return 0 } } : pivotData.getAggregator(rowKey, []);\r\n return (\r\n \r\n {rowKey.map(function(txt, j) {\r\n const x = spanSize(rowKeysSub, 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 { isSubTotal ? 'a' : getFormatedValue(aggregator) }\r\n \r\n );\r\n })}\r\n \r\n {/* totalAggregator.format(totalAggregator.value()) */}\r\n { isSubTotal ? 'a' : getFormatedValue(totalAggregator) }\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 { getFormatedValue(totalAggregator) }\r\n \r\n );\r\n })}\r\n\r\n \r\n {/* grandTotalAggregator.format(grandTotalAggregator.value()) */}\r\n { getFormatedValue(grandTotalAggregator) }\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 e54384d..e2ca32d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "v-react-pivottable", - "version": "0.11.49", + "version": "0.11.50", "description": "A React-based pivot table", "main": "PivotTableUI.js", "files": [