react-pivottable-plus 1.0.11 → 1.0.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{PivotTable.js → dist/PivotTable.js} +0 -1
- package/dist/PivotTable.js.map +1 -0
- package/dist/PivotTableUI.js.map +1 -0
- package/{PlotlyRenderers.js → dist/PlotlyRenderers.js} +0 -1
- package/dist/PlotlyRenderers.js.map +1 -0
- package/dist/SubtotalRenderers.js +1372 -0
- package/dist/SubtotalRenderers.js.map +1 -0
- package/{TableRenderers.js → dist/TableRenderers.js} +0 -1
- package/dist/TableRenderers.js.map +1 -0
- package/dist/Utilities.js.map +1 -0
- package/dist/__tests__/PivotTableUI-test.js +177 -0
- package/dist/__tests__/PivotTableUI-test.js.map +1 -0
- package/dist/__tests__/Utilities-test.js +366 -0
- package/dist/__tests__/Utilities-test.js.map +1 -0
- package/dist/hooks/usePivot.js.map +1 -0
- package/dist/renderers/RadixUI.js.map +1 -0
- package/dist/renderers/ShadcnDashboardUI.js.map +1 -0
- package/dist/renderers/TailwindUI.js.map +1 -0
- package/package.json +18 -19
- package/PivotTable.js.map +0 -1
- package/PivotTableUI.js.map +0 -1
- package/PlotlyRenderers.js.map +0 -1
- package/TableRenderers.js.map +0 -1
- package/Utilities.js.map +0 -1
- package/hooks/usePivot.js.map +0 -1
- package/renderers/RadixUI.js.map +0 -1
- package/renderers/ShadcnDashboardUI.js.map +0 -1
- package/renderers/TailwindUI.js.map +0 -1
- /package/{PivotTableUI.js → dist/PivotTableUI.js} +0 -0
- /package/{Utilities.js → dist/Utilities.js} +0 -0
- /package/{hooks → dist/hooks}/usePivot.js +0 -0
- /package/{renderers → dist/renderers}/RadixUI.js +0 -0
- /package/{renderers → dist/renderers}/ShadcnDashboardUI.js +0 -0
- /package/{renderers → dist/renderers}/TailwindUI.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SubtotalRenderers.js","names":["_react","_interopRequireDefault","require","_propTypes","_Utilities","e","__esModule","_slicedToArray","r","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","l","t","Symbol","iterator","n","i","u","a","f","o","call","next","Object","done","push","value","length","Array","isArray","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","from","_arrayLikeToArray","_createForOfIteratorHelper","_n","F","s","toString","slice","constructor","name","test","_classCallCheck","_defineProperties","enumerable","configurable","writable","defineProperty","_toPropertyKey","key","_createClass","prototype","_toPrimitive","_typeof","toPrimitive","String","Number","_callSuper","_getPrototypeOf","_possibleConstructorReturn","_isNativeReflectConstruct","Reflect","construct","apply","_assertThisInitialized","ReferenceError","Boolean","valueOf","setPrototypeOf","getPrototypeOf","bind","__proto__","_inherits","create","_setPrototypeOf","redColorScaleGenerator","values","min","Math","max","x","nonRed","round","backgroundColor","concat","makeRenderer","opts","arguments","undefined","SubtotalRenderer","_React$Component","props","_this","state","collapsedRows","collapsedCols","componentDidMount","subtotals","document","getElementById","style","createElement","id","innerHTML","head","appendChild","getBasePivotSettings","_this2","colAttrs","cols","rowAttrs","rows","tableOptions","assign","rowTotals","colTotals","subtotalOptions","arrowCollapsed","arrowExpanded","colSubtotalDisplay","displayOnTop","enabled","hideOnExpand","rowSubtotalDisplay","pivotData","PivotData","rowEnabled","colEnabled","rowPartialOnTop","colPartialOnTop","rowKeys","getRowKeys","colKeys","getColKeys","cellCallbacks","rowTotalCallbacks","colTotalCallbacks","grandTotalCallback","clickCallback","forEach","rowKey","flatRowKey","flatKey","colKey","flatColKey","clickHandler","heatmapMappers","tableColorScaleGenerator","rowValues","colValues","_this3","getAggregator","filters","colLimit","attr","rowLimit","collapseAttr","rowOrCol","attrIdx","allKeys","flatCollapseKeys","k","slicedKey","setState","prevState","expandAttr","toggleRowKey","newCollapsedRows","toggleColKey","newCollapsedCols","calcAttrSpans","attrArr","numAttrs","spans","li","map","lv","cv","isSubtotal","actualCv","ent","depth","limit","renderColHeaderRow","attrName","pivotSettings","visibleColKeys","colAttrSpans","spaceCell","colSpan","rowSpan","needToggle","attrNameCell","className","attrValueCells","rowIncrSpan","isSubtotalCol","actualColKey","onClick","headerText","headerClass","isCollapsedParent","cursor","totalCell","cells","renderRowHeaderRow","renderTableRow","rowIdx","_this4","rowMapper","colMapper","visibleKeys","isSubtotalRow","actualRowKey","aggregator","valCss","needsSubtotalValue","calculateSubtotal","tempAggregator","safeGetAggregator","format","heatmapMode","bgColorFromSubtotalValue","cellColor","bgColorFromRowColKey","val","formattedVal","cellKey","colCellKey","error","totalVal","formattedTotal","agg","isNaN","totalColor","formatFunc","includes","renderTotalsRow","_this5","colTotal","displayValue","grandTotal","validValuesFound","grandTotalAggregator","grandTotalColor","keys","collapsed","sortedKeys","sort","b","minLength","aStr","bStr","cmp","localeCompare","result","processedKeys","Set","_iterator","_step","parentCollapsed","deepestCollapsedParent","parentKey","flatParentKey","has","add","flatKey_","err","finalResult","addedSubtotals","parentGroups","Map","_i2","_result","level","parentKeyStr","set","lastChildIndex","parentGroup","get","subtotalsToAdd","subtotalKey","subtotalKeyStr","getSubtotal","hasSubtotals","attrs","_this6","total","hasValidValues","childRowKeys","fullRowKey","isChild","childColKeys","fullColKey","childRowKey","childColKey","render","_this7","renderedLabels","visibleRowKeys","finalPivotSettings","maxRowVisible","maxColVisible","rowAttrSpans","rowspans","span","j","nextKey","isNextSubtotal","actualNextKey","matches","renderedRows","rowCells","labelKey","join","rowspan","isCollapsed","icon","marginRight","isLeafLevel","leafColspan","dataCells","colAttrsHeaders","rowAttrsHeader","totalHeader","colorScaleGenerator","valueCellColors","rowTotalColors","colTotalColors","allValues","forEachCell","flatRow","flatCol","rowTotal","rowTotalValues","forEachTotal","_ref","_ref2","valKey","_x","rowTotalColorScale","_ref3","_ref4","colTotalValues","_ref5","_ref6","colTotalColorScale","_ref7","_ref8","grandTotalVal","grandTotalColorScale","colorScale","rowColorScales","entries","_ref9","_ref0","colColorScales","_ref1","_ref10","React","Component","defaultProps","propTypes","PropTypes","func","object","TSVExportRenderer","_React$PureComponent","headerRow","aggregatorName","c","row","unshift","width","window","innerWidth","height","innerHeight","readOnly","PureComponent","_default","exports"],"sources":["../src/SubtotalRenderers.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport {PivotData, flatKey} from './Utilities';\n\nfunction redColorScaleGenerator(values) {\n const min = Math.min.apply(Math, values);\n const max = Math.max.apply(Math, values);\n return x => {\n // eslint-disable-next-line no-magic-numbers\n const nonRed = 255 - Math.round((255 * (x - min)) / (max - min));\n return {backgroundColor: `rgb(255,${nonRed},${nonRed})`};\n };\n}\n\nfunction makeRenderer(opts = {}) {\n class SubtotalRenderer extends React.Component {\n constructor(props) {\n super(props);\n this.state = {collapsedRows: {}, collapsedCols: {}};\n }\n\n componentDidMount() {\n if (\n opts.subtotals &&\n !document.getElementById('react-pivottable-subtotal-styles')\n ) {\n const style = document.createElement('style');\n style.id = 'react-pivottable-subtotal-styles';\n style.innerHTML = `\n .pvtSubtotal {\n font-weight: bold;\n background-color: #f0f0f0;\n }\n .pvtSubtotalRow {\n border-top: 1px solid #ddd;\n }\n .pvtSubtotalVal {\n color: #777;\n font-style: italic;\n }\n `;\n document.head.appendChild(style);\n }\n }\n\n getBasePivotSettings() {\n const props = this.props;\n const colAttrs = props.cols;\n const rowAttrs = props.rows;\n\n const tableOptions = Object.assign(\n {\n rowTotals: true,\n colTotals: true,\n },\n props.tableOptions\n );\n const rowTotals = tableOptions.rowTotals || colAttrs.length === 0;\n const colTotals = tableOptions.colTotals || rowAttrs.length === 0;\n\n const subtotalOptions = Object.assign(\n {\n arrowCollapsed: '\\u25B6',\n arrowExpanded: '\\u25E2',\n },\n props.subtotalOptions\n );\n\n const colSubtotalDisplay = Object.assign(\n {\n displayOnTop: false,\n enabled: rowTotals,\n hideOnExpand: false,\n },\n subtotalOptions.colSubtotalDisplay\n );\n\n const rowSubtotalDisplay = Object.assign(\n {\n displayOnTop: true,\n enabled: colTotals,\n hideOnExpand: false,\n },\n subtotalOptions.rowSubtotalDisplay\n );\n\n const pivotData = new PivotData(\n props,\n !opts.subtotals\n ? {}\n : {\n rowEnabled: rowSubtotalDisplay.enabled,\n colEnabled: colSubtotalDisplay.enabled,\n rowPartialOnTop: rowSubtotalDisplay.displayOnTop,\n colPartialOnTop: colSubtotalDisplay.displayOnTop,\n }\n );\n const rowKeys = pivotData.getRowKeys();\n const colKeys = pivotData.getColKeys();\n\n const cellCallbacks = {};\n const rowTotalCallbacks = {};\n const colTotalCallbacks = {};\n let grandTotalCallback = null;\n if (tableOptions.clickCallback) {\n rowKeys.forEach(rowKey => {\n const flatRowKey = flatKey(rowKey);\n cellCallbacks[flatRowKey] = {};\n colKeys.forEach(colKey => {\n const flatColKey = flatKey(colKey);\n if (!(flatRowKey in cellCallbacks)) {\n cellCallbacks[flatRowKey] = {};\n }\n cellCallbacks[flatRowKey][flatColKey] = this.clickHandler(\n pivotData,\n rowKey,\n colKey\n );\n });\n rowTotalCallbacks[flatRowKey] = this.clickHandler(\n pivotData,\n rowKey,\n []\n );\n });\n colKeys.forEach(colKey => {\n const flatColKey = flatKey(colKey);\n colTotalCallbacks[flatColKey] = this.clickHandler(\n pivotData,\n [],\n colKey\n );\n });\n grandTotalCallback = this.clickHandler(pivotData, [], []);\n }\n\n return Object.assign(\n {\n pivotData,\n colAttrs,\n rowAttrs,\n colKeys,\n rowKeys,\n rowTotals,\n colTotals,\n arrowCollapsed: subtotalOptions.arrowCollapsed,\n arrowExpanded: subtotalOptions.arrowExpanded,\n colSubtotalDisplay,\n rowSubtotalDisplay,\n cellCallbacks,\n rowTotalCallbacks,\n colTotalCallbacks,\n grandTotalCallback,\n },\n SubtotalRenderer.heatmapMappers(\n pivotData,\n props.tableColorScaleGenerator,\n colTotals,\n rowTotals\n )\n );\n }\n\n clickHandler(pivotData, rowValues, colValues) {\n const colAttrs = this.props.cols;\n const rowAttrs = this.props.rows;\n const value = pivotData.getAggregator(rowValues, colValues).value();\n const filters = {};\n const colLimit = Math.min(colAttrs.length, colValues.length);\n for (let i = 0; i < colLimit; i++) {\n const attr = colAttrs[i];\n if (colValues[i] !== null) {\n filters[attr] = colValues[i];\n }\n }\n const rowLimit = Math.min(rowAttrs.length, rowValues.length);\n for (let i = 0; i < rowLimit; i++) {\n const attr = rowAttrs[i];\n if (rowValues[i] !== null) {\n filters[attr] = rowValues[i];\n }\n }\n return e =>\n this.props.tableOptions.clickCallback(e, value, filters, pivotData);\n }\n\n collapseAttr(rowOrCol, attrIdx, allKeys) {\n return function() {\n var flatCollapseKeys = {};\n for (var i = 0; i < allKeys.length; i++) {\n var k = allKeys[i];\n var slicedKey = k.slice(0, attrIdx + 1);\n flatCollapseKeys[flatKey(slicedKey)] = true;\n }\n this.setState(function(prevState) {\n if (rowOrCol === 'row') {\n return {\n collapsedRows: Object.assign(\n {},\n prevState.collapsedRows,\n flatCollapseKeys\n ),\n };\n } else if (rowOrCol === 'col') {\n return {\n collapsedCols: Object.assign(\n {},\n prevState.collapsedCols,\n flatCollapseKeys\n ),\n };\n }\n return null;\n });\n }.bind(this);\n }\n\n expandAttr(rowOrCol, attrIdx, allKeys) {\n return function() {\n var flatCollapseKeys = {};\n for (var i = 0; i < allKeys.length; i++) {\n var k = allKeys[i];\n var slicedKey = k.slice(0, attrIdx + 1);\n flatCollapseKeys[flatKey(slicedKey)] = false;\n }\n this.setState(function(prevState) {\n if (rowOrCol === 'row') {\n return {\n collapsedRows: Object.assign(\n {},\n prevState.collapsedRows,\n flatCollapseKeys\n ),\n };\n } else if (rowOrCol === 'col') {\n return {\n collapsedCols: Object.assign(\n {},\n prevState.collapsedCols,\n flatCollapseKeys\n ),\n };\n }\n return null;\n });\n }.bind(this);\n }\n\n toggleRowKey(flatRowKey) {\n return function() {\n this.setState(function(prevState) {\n var newCollapsedRows = Object.assign({}, prevState.collapsedRows);\n newCollapsedRows[flatRowKey] = !prevState.collapsedRows[flatRowKey];\n return {collapsedRows: newCollapsedRows};\n });\n }.bind(this);\n }\n\n toggleColKey(flatColKey) {\n return function() {\n this.setState(function(prevState) {\n var newCollapsedCols = Object.assign({}, prevState.collapsedCols);\n newCollapsedCols[flatColKey] = !prevState.collapsedCols[flatColKey];\n return {collapsedCols: newCollapsedCols};\n });\n }.bind(this);\n }\n\n // Given an array of attribute values (i.e. each element is another array with\n // the value at every level), compute the spans for every attribute value at\n // each level.\n calcAttrSpans(attrArr, numAttrs) {\n const spans = [];\n const li = Array(numAttrs).map(() => 0);\n let lv = Array(numAttrs).map(() => null);\n for (let i = 0; i < attrArr.length; i++) {\n const cv = attrArr[i];\n const isSubtotal = cv[cv.length - 1] === '__subtotal__';\n const actualCv = isSubtotal ? cv.slice(0, -1) : cv;\n\n const ent = [];\n let depth = 0;\n const limit = Math.min(lv.length, actualCv.length);\n while (depth < limit && lv[depth] === actualCv[depth]) {\n ent.push(-1);\n spans[li[depth]][depth]++;\n depth++;\n }\n while (depth < actualCv.length) {\n li[depth] = i;\n ent.push(1);\n depth++;\n }\n spans.push(ent);\n lv = actualCv;\n }\n return spans;\n }\n\n static heatmapMappers(\n pivotData,\n colorScaleGenerator,\n colTotals,\n rowTotals\n ) {\n const colMapper = {};\n const rowMapper = {};\n\n if (colorScaleGenerator && opts.heatmapMode) {\n const valueCellColors = {};\n const rowTotalColors = {};\n const colTotalColors = {};\n let grandTotalColor = null;\n\n const allValues = [];\n const rowValues = {};\n const colValues = {};\n\n pivotData.forEachCell((val, rowKey, colKey) => {\n if (val !== null && !isNaN(val)) {\n allValues.push(val);\n\n const flatRow = flatKey(rowKey);\n if (!rowValues[flatRow]) {\n rowValues[flatRow] = [];\n }\n rowValues[flatRow].push(val);\n\n const flatCol = flatKey(colKey);\n if (!colValues[flatCol]) {\n colValues[flatCol] = [];\n }\n colValues[flatCol].push(val);\n }\n });\n\n if (opts.heatmapMode === 'row' && colTotals) {\n pivotData.getRowKeys().forEach(rowKey => {\n let rowTotal = 0;\n let hasValidValues = false;\n pivotData.getColKeys().forEach(colKey => {\n const agg = pivotData.getAggregator(rowKey, colKey);\n if (agg) {\n const val = agg.value();\n if (val !== null && !isNaN(val)) {\n rowTotal += val;\n hasValidValues = true;\n }\n }\n });\n\n if (hasValidValues && rowTotal !== 0) {\n const flatRow = flatKey(rowKey);\n if (!rowValues[flatRow]) {\n rowValues[flatRow] = [];\n }\n rowValues[flatRow].push(rowTotal);\n }\n });\n }\n\n if (opts.heatmapMode === 'col' && rowTotals) {\n pivotData.getColKeys().forEach(colKey => {\n let colTotal = 0;\n let hasValidValues = false;\n pivotData.getRowKeys().forEach(rowKey => {\n const agg = pivotData.getAggregator(rowKey, colKey);\n if (agg) {\n const val = agg.value();\n if (val !== null && !isNaN(val)) {\n colTotal += val;\n hasValidValues = true;\n }\n }\n });\n\n if (hasValidValues && colTotal !== 0) {\n const flatCol = flatKey(colKey);\n if (!colValues[flatCol]) {\n colValues[flatCol] = [];\n }\n colValues[flatCol].push(colTotal);\n }\n });\n }\n\n if (colTotals) {\n const rowTotalValues = [];\n pivotData.forEachTotal(([valKey, _x]) => {\n const val = pivotData.getAggregator([valKey], []).value();\n if (val !== null && !isNaN(val)) {\n rowTotalValues.push(val);\n if (opts.heatmapMode === 'full') {\n allValues.push(val);\n }\n }\n });\n\n const rowTotalColorScale =\n opts.heatmapMode === 'full'\n ? colorScaleGenerator(allValues)\n : colorScaleGenerator(rowTotalValues);\n\n pivotData.forEachTotal(([valKey, _x]) => {\n const val = pivotData.getAggregator([valKey], []).value();\n if (val !== null && !isNaN(val)) {\n rowTotalColors[flatKey([valKey])] = rowTotalColorScale(val);\n }\n });\n }\n\n if (rowTotals) {\n const colTotalValues = [];\n pivotData.forEachTotal(([_x, valKey]) => {\n const val = pivotData.getAggregator([], [valKey]).value();\n if (val !== null && !isNaN(val)) {\n colTotalValues.push(val);\n if (opts.heatmapMode === 'full') {\n allValues.push(val);\n }\n }\n });\n\n const colTotalColorScale =\n opts.heatmapMode === 'full'\n ? colorScaleGenerator(allValues)\n : colorScaleGenerator(colTotalValues);\n\n pivotData.forEachTotal(([_x, valKey]) => {\n const val = pivotData.getAggregator([], [valKey]).value();\n if (val !== null && !isNaN(val)) {\n colTotalColors[flatKey([valKey])] = colTotalColorScale(val);\n }\n });\n }\n\n if (colTotals && rowTotals) {\n const grandTotalVal = pivotData.getAggregator([], []).value();\n if (grandTotalVal !== null && !isNaN(grandTotalVal)) {\n if (opts.heatmapMode === 'full') {\n allValues.push(grandTotalVal);\n const grandTotalColorScale = colorScaleGenerator(allValues);\n grandTotalColor = grandTotalColorScale(grandTotalVal);\n }\n }\n }\n\n if (rowTotals) {\n colMapper.totalColor = key => colTotalColors[flatKey([key])];\n }\n if (colTotals) {\n rowMapper.totalColor = key => rowTotalColors[flatKey([key])];\n }\n if (grandTotalColor) {\n colMapper.grandTotalColor = grandTotalColor;\n }\n\n if (opts.heatmapMode === 'full') {\n // Full heatmap: Compare values across the entire table\n // Note: allValues already contains all cell values from earlier collection\n const colorScale = colorScaleGenerator(allValues);\n pivotData.forEachCell((val, rowKey, colKey) => {\n if (val !== null && !isNaN(val)) {\n valueCellColors[\n `${flatKey(rowKey)}_${flatKey(colKey)}`\n ] = colorScale(val);\n }\n });\n\n colMapper.bgColorFromRowColKey = (rowKey, colKey) =>\n valueCellColors[`${flatKey(rowKey)}_${flatKey(colKey)}`];\n\n colMapper.bgColorFromSubtotalValue = value => {\n if (value !== null && !isNaN(value)) {\n return colorScale(value);\n }\n return null;\n };\n } else if (opts.heatmapMode === 'row') {\n // Row heatmap: Compare values within each row\n // Note: rowValues already populated from earlier collection\n const rowColorScales = {};\n Object.entries(rowValues).forEach(([flatRow, values]) => {\n if (values.length > 0) {\n rowColorScales[flatRow] = colorScaleGenerator(values);\n }\n });\n\n pivotData.forEachCell((val, rowKey, colKey) => {\n const flatRow = flatKey(rowKey);\n if (val !== null && !isNaN(val) && rowColorScales[flatRow]) {\n valueCellColors[`${flatRow}_${flatKey(colKey)}`] = rowColorScales[\n flatRow\n ](val);\n }\n });\n\n colMapper.bgColorFromRowColKey = (rowKey, colKey) =>\n valueCellColors[`${flatKey(rowKey)}_${flatKey(colKey)}`];\n\n colMapper.bgColorFromSubtotalValue = (value, rowKey) => {\n if (value !== null && !isNaN(value)) {\n const flatRow = flatKey(rowKey);\n if (rowColorScales[flatRow]) {\n return rowColorScales[flatRow](value);\n }\n }\n return null;\n };\n } else if (opts.heatmapMode === 'col') {\n // Column heatmap: Compare values within each column\n // Note: colValues already populated from earlier collection\n const colColorScales = {};\n Object.entries(colValues).forEach(([flatCol, values]) => {\n if (values.length > 0) {\n colColorScales[flatCol] = colorScaleGenerator(values);\n }\n });\n\n pivotData.forEachCell((val, rowKey, colKey) => {\n const flatCol = flatKey(colKey);\n if (val !== null && !isNaN(val) && colColorScales[flatCol]) {\n valueCellColors[`${flatKey(rowKey)}_${flatCol}`] = colColorScales[\n flatCol\n ](val);\n }\n });\n\n colMapper.bgColorFromRowColKey = (rowKey, colKey) =>\n valueCellColors[`${flatKey(rowKey)}_${flatKey(colKey)}`];\n\n colMapper.bgColorFromSubtotalValue = (value, rowKey, colKey) => {\n if (value !== null && !isNaN(value)) {\n const flatCol = flatKey(colKey);\n if (colColorScales[flatCol]) {\n return colColorScales[flatCol](value);\n }\n }\n return null;\n };\n }\n }\n return {colMapper, rowMapper};\n }\n\n renderColHeaderRow(attrName, attrIdx, pivotSettings) {\n const {\n rowAttrs,\n colAttrs,\n visibleColKeys,\n colAttrSpans,\n rowTotals,\n arrowExpanded,\n arrowCollapsed,\n colSubtotalDisplay,\n } = pivotSettings;\n\n const spaceCell =\n attrIdx === 0 && rowAttrs.length !== 0 ? (\n <th\n key=\"padding\"\n colSpan={rowAttrs.length}\n rowSpan={colAttrs.length}\n />\n ) : null;\n\n const needToggle =\n opts.subtotals &&\n colSubtotalDisplay.enabled &&\n attrIdx !== colAttrs.length - 1;\n const attrNameCell = (\n <th key=\"label\" className=\"pvtAxisLabel\">\n {attrName}\n </th>\n );\n\n const attrValueCells = [];\n const rowIncrSpan = rowAttrs.length !== 0 ? 1 : 0;\n let i = 0;\n while (i < visibleColKeys.length) {\n const colKey = visibleColKeys[i];\n const isSubtotalCol = colKey[colKey.length - 1] === '__subtotal__';\n const actualColKey = isSubtotalCol ? colKey.slice(0, -1) : colKey;\n\n const colSpan =\n attrIdx < actualColKey.length ? colAttrSpans[i][attrIdx] : 1;\n if (attrIdx < actualColKey.length) {\n const rowSpan =\n 1 + (attrIdx === colAttrs.length - 1 ? rowIncrSpan : 0);\n const flatColKey = flatKey(actualColKey.slice(0, attrIdx + 1));\n const onClick = needToggle ? this.toggleColKey(flatColKey) : null;\n\n let headerText = actualColKey[attrIdx];\n let headerClass = 'pvtColLabel';\n\n const isCollapsedParent =\n this.state.collapsedCols[flatColKey] &&\n actualColKey.length < colAttrs.length;\n\n if (isSubtotalCol) {\n headerText = `${headerText} (Subtotal)`;\n headerClass += ' pvtSubtotal';\n } else if (isCollapsedParent) {\n headerClass += ' pvtSubtotal';\n }\n\n attrValueCells.push(\n <th\n className={headerClass}\n key={'colKey-' + flatColKey + (isSubtotalCol ? '-subtotal' : '')}\n colSpan={colSpan}\n rowSpan={rowSpan}\n onClick={onClick}\n style={{cursor: needToggle ? 'pointer' : 'default'}}\n >\n {needToggle\n ? (this.state.collapsedCols[flatColKey]\n ? arrowCollapsed\n : arrowExpanded) + ' '\n : null}\n {headerText}\n </th>\n );\n } else if (attrIdx === actualColKey.length) {\n const rowSpan = colAttrs.length - actualColKey.length + rowIncrSpan;\n const flatColKey = flatKey(actualColKey);\n const isCollapsedParent =\n this.state.collapsedCols[flatColKey] &&\n actualColKey.length < colAttrs.length;\n\n attrValueCells.push(\n <th\n className={`pvtColLabel ${\n isSubtotalCol || isCollapsedParent ? 'pvtSubtotal' : ''\n }`}\n key={\n 'colKeyBuffer-' +\n flatKey(actualColKey) +\n (isSubtotalCol ? '-subtotal' : '')\n }\n colSpan={colSpan}\n rowSpan={rowSpan}\n />\n );\n }\n i = i + colSpan;\n }\n\n const totalCell =\n attrIdx === 0 && rowTotals ? (\n <th\n key=\"total\"\n className=\"pvtTotalLabel\"\n rowSpan={colAttrs.length + Math.min(rowAttrs.length, 1)}\n >\n Totals\n </th>\n ) : null;\n\n const cells = [spaceCell, attrNameCell, ...attrValueCells, totalCell];\n return cells;\n }\n\n renderRowHeaderRow(pivotSettings) {\n const {colAttrs, rowAttrs} = pivotSettings;\n const cells = [];\n if (rowAttrs.length !== 0) {\n rowAttrs.map(function(r, i) {\n cells.push(\n <th className=\"pvtAxisLabel\" key={`rowAttr${i}`}>\n {r}\n </th>\n );\n });\n cells.push(\n <th className=\"pvtTotalLabel\" key=\"total\">\n {colAttrs.length === 0 ? 'Totals' : null}\n </th>\n );\n }\n return cells;\n }\n\n renderTableRow(rowKey, rowIdx, pivotSettings) {\n const {\n colKeys,\n rowAttrs,\n colAttrs,\n rowTotals,\n pivotData,\n rowMapper,\n colMapper,\n cellCallbacks,\n rowTotalCallbacks,\n } = pivotSettings;\n\n const visibleColKeys = this.visibleKeys(\n colKeys,\n this.state.collapsedCols\n );\n\n const cells = [];\n const isSubtotalRow = rowKey[rowKey.length - 1] === '__subtotal__';\n const actualRowKey = isSubtotalRow ? rowKey.slice(0, -1) : rowKey;\n\n visibleColKeys.forEach((colKey, i) => {\n try {\n if (!actualRowKey || !colKey) {\n cells.push(<td className=\"pvtVal\" key={`pvtVal-${i}`} />);\n return;\n }\n\n let aggregator,\n className,\n valCss = {};\n\n const isSubtotalCol = colKey[colKey.length - 1] === '__subtotal__';\n const actualColKey = isSubtotalCol ? colKey.slice(0, -1) : colKey;\n\n const needsSubtotalValue =\n isSubtotalRow ||\n isSubtotalCol ||\n (actualColKey.length < colAttrs.length &&\n this.state.collapsedCols[flatKey(actualColKey)]) ||\n (actualRowKey.length < rowAttrs.length &&\n this.state.collapsedRows[flatKey(actualRowKey)]);\n\n if (needsSubtotalValue) {\n const value = this.calculateSubtotal(\n pivotData,\n actualRowKey,\n actualColKey,\n pivotSettings\n );\n className = 'pvtSubtotal';\n\n const tempAggregator = this.safeGetAggregator(pivotData, [], []);\n aggregator = {\n value: () => value,\n format: tempAggregator ? tempAggregator.format : x => x,\n };\n\n if (opts.heatmapMode && colMapper.bgColorFromSubtotalValue) {\n let cellColor;\n if (opts.heatmapMode === 'full') {\n cellColor = colMapper.bgColorFromSubtotalValue(value);\n } else if (opts.heatmapMode === 'row') {\n cellColor = colMapper.bgColorFromSubtotalValue(\n value,\n actualRowKey\n );\n } else if (opts.heatmapMode === 'col') {\n cellColor = colMapper.bgColorFromSubtotalValue(\n value,\n actualRowKey,\n actualColKey\n );\n }\n\n if (cellColor) {\n valCss = cellColor;\n }\n }\n } else {\n aggregator = this.safeGetAggregator(\n pivotData,\n actualRowKey,\n actualColKey\n );\n className = 'pvtVal';\n\n if (opts.heatmapMode && colMapper.bgColorFromRowColKey) {\n const cellColor = colMapper.bgColorFromRowColKey(\n actualRowKey,\n actualColKey\n );\n if (cellColor) {\n valCss = cellColor;\n }\n }\n }\n\n if (!aggregator || aggregator.value() === null) {\n cells.push(\n <td className={className} key={`pvtVal-${i}`} style={valCss} />\n );\n return;\n }\n\n const val = aggregator.value();\n\n let formattedVal;\n if (val === null) {\n formattedVal = '';\n } else if (className === 'pvtSubtotal' && val === 0) {\n formattedVal = '';\n } else {\n formattedVal = aggregator.format(val);\n }\n\n const cellKey = flatKey(actualRowKey);\n const colCellKey = flatKey(actualColKey);\n\n cells.push(\n <td\n className={className}\n key={`pvtVal-${i}`}\n style={valCss}\n onClick={\n cellCallbacks[cellKey] && colCellKey in cellCallbacks[cellKey]\n ? cellCallbacks[cellKey][colCellKey]\n : null\n }\n >\n {formattedVal}\n </td>\n );\n } catch (error) {\n cells.push(<td className=\"pvtVal\" key={`pvtVal-${i}`} />);\n }\n });\n\n if (rowTotals) {\n try {\n const className = isSubtotalRow ? 'pvtTotal pvtSubtotal' : 'pvtTotal';\n let valCss = {};\n\n let totalVal = 0;\n let formattedTotal = '';\n\n if (isSubtotalRow) {\n totalVal = this.calculateSubtotal(\n pivotData,\n actualRowKey,\n [],\n pivotSettings\n );\n\n if (opts.heatmapMode && colMapper.bgColorFromSubtotalValue) {\n let cellColor;\n if (opts.heatmapMode === 'full') {\n cellColor = colMapper.bgColorFromSubtotalValue(totalVal);\n } else if (opts.heatmapMode === 'row') {\n cellColor = colMapper.bgColorFromSubtotalValue(\n totalVal,\n actualRowKey\n );\n } else if (opts.heatmapMode === 'col') {\n cellColor = colMapper.bgColorFromSubtotalValue(\n totalVal,\n actualRowKey,\n []\n );\n }\n\n if (cellColor) {\n valCss = cellColor;\n }\n }\n } else if (\n actualRowKey.length < rowAttrs.length &&\n this.state.collapsedRows[flatKey(actualRowKey)]\n ) {\n totalVal = this.calculateSubtotal(\n pivotData,\n actualRowKey,\n [],\n pivotSettings\n );\n\n if (opts.heatmapMode && colMapper.bgColorFromSubtotalValue) {\n let cellColor;\n if (opts.heatmapMode === 'full') {\n cellColor = colMapper.bgColorFromSubtotalValue(totalVal);\n } else if (opts.heatmapMode === 'row') {\n cellColor = colMapper.bgColorFromSubtotalValue(\n totalVal,\n actualRowKey\n );\n } else if (opts.heatmapMode === 'col') {\n cellColor = colMapper.bgColorFromSubtotalValue(\n totalVal,\n actualRowKey,\n []\n );\n }\n\n if (cellColor) {\n valCss = cellColor;\n }\n }\n } else {\n pivotData.getColKeys().forEach(colKey => {\n const agg = this.safeGetAggregator(\n pivotData,\n actualRowKey,\n colKey\n );\n if (agg) {\n const val = agg.value();\n if (val !== null && !isNaN(val)) {\n totalVal += val;\n }\n }\n });\n\n if (opts.heatmapMode && totalVal !== 0) {\n if (\n opts.heatmapMode === 'row' &&\n colMapper.bgColorFromSubtotalValue\n ) {\n const cellColor = colMapper.bgColorFromSubtotalValue(\n totalVal,\n actualRowKey\n );\n if (cellColor) {\n valCss = cellColor;\n }\n } else if (rowMapper.totalColor) {\n const cellColor = rowMapper.totalColor(actualRowKey[0]);\n if (cellColor) {\n valCss = cellColor;\n }\n }\n }\n }\n\n if (totalVal !== 0 || isSubtotalRow) {\n const tempAggregator = this.safeGetAggregator(pivotData, [], []);\n const formatFunc =\n tempAggregator && tempAggregator.format\n ? tempAggregator.format\n : x => x;\n if (className.includes('pvtSubtotal') && totalVal === 0) {\n formattedTotal = '';\n } else {\n formattedTotal =\n totalVal === null || totalVal === 0 ? '' : formatFunc(totalVal);\n }\n }\n\n const cellKey = flatKey(actualRowKey);\n\n cells.push(\n <td\n className={className}\n key=\"total\"\n style={valCss}\n onClick={rowTotalCallbacks[cellKey]}\n >\n {formattedTotal}\n </td>\n );\n } catch (error) {\n cells.push(<td className=\"pvtTotal\" key=\"total\" />);\n }\n }\n\n return cells;\n }\n\n renderTotalsRow(pivotSettings) {\n const {\n colKeys,\n colAttrs,\n rowAttrs,\n colTotals,\n pivotData,\n colMapper,\n grandTotalCallback,\n colTotalCallbacks,\n } = pivotSettings;\n\n const visibleColKeys = this.visibleKeys(\n colKeys,\n this.state.collapsedCols\n );\n\n const cells = [];\n cells.push(\n <th\n key=\"labelTotal\"\n className=\"pvtTotalLabel\"\n colSpan={rowAttrs.length + (colAttrs.length === 0 ? 0 : 1)}\n >\n Totals\n </th>\n );\n\n visibleColKeys.forEach((colKey, i) => {\n try {\n const isSubtotalCol = colKey[colKey.length - 1] === '__subtotal__';\n const actualColKey = isSubtotalCol ? colKey.slice(0, -1) : colKey;\n\n if (!actualColKey) {\n cells.push(<td className=\"pvtTotal\" key={`total-${i}`} />);\n return;\n }\n\n let colTotal = 0;\n\n const flatColKey = flatKey(actualColKey);\n const isCollapsedParent =\n this.state.collapsedCols[flatColKey] &&\n actualColKey.length < colAttrs.length;\n\n if (isSubtotalCol || isCollapsedParent) {\n colTotal = this.calculateSubtotal(\n pivotData,\n [],\n actualColKey,\n pivotSettings\n );\n } else {\n pivotData.getRowKeys().forEach(rowKey => {\n const agg = this.safeGetAggregator(\n pivotData,\n rowKey,\n actualColKey\n );\n if (agg) {\n const val = agg.value();\n if (val !== null && !isNaN(val)) {\n colTotal += val;\n }\n }\n });\n }\n\n let valCss = {};\n if (isSubtotalCol || isCollapsedParent) {\n if (opts.heatmapMode && colMapper.bgColorFromSubtotalValue) {\n let cellColor;\n if (opts.heatmapMode === 'full') {\n cellColor = colMapper.bgColorFromSubtotalValue(colTotal);\n } else if (opts.heatmapMode === 'row') {\n cellColor = colMapper.bgColorFromSubtotalValue(colTotal, []);\n } else if (opts.heatmapMode === 'col') {\n cellColor = colMapper.bgColorFromSubtotalValue(\n colTotal,\n [],\n actualColKey\n );\n }\n\n if (cellColor) {\n valCss = cellColor;\n }\n }\n } else {\n if (opts.heatmapMode && colTotal !== 0) {\n if (\n opts.heatmapMode === 'col' &&\n colMapper.bgColorFromSubtotalValue\n ) {\n const cellColor = colMapper.bgColorFromSubtotalValue(\n colTotal,\n [],\n actualColKey\n );\n if (cellColor) {\n valCss = cellColor;\n }\n } else if (colMapper.totalColor) {\n const cellColor = colMapper.totalColor(actualColKey[0]);\n if (cellColor) {\n valCss = cellColor;\n }\n }\n }\n }\n\n const tempAggregator = this.safeGetAggregator(pivotData, [], []);\n const format =\n tempAggregator && tempAggregator.format\n ? tempAggregator.format\n : x => x;\n\n let displayValue;\n if (colTotal === null || colTotal === 0) {\n displayValue = '';\n } else {\n displayValue = format ? format(colTotal) : colTotal;\n }\n\n cells.push(\n <td\n className={`pvtTotal ${\n isSubtotalCol || isCollapsedParent ? 'pvtSubtotal' : ''\n }`}\n key={`total-${i}`}\n style={valCss}\n onClick={colTotalCallbacks[flatKey(actualColKey)]}\n >\n {displayValue}\n </td>\n );\n } catch (error) {\n cells.push(<td className=\"pvtTotal\" key={`total-${i}`} />);\n }\n });\n\n if (colTotals) {\n try {\n let grandTotal = 0;\n let validValuesFound = false;\n\n try {\n const grandTotalAggregator = pivotData.getAggregator([], []);\n if (grandTotalAggregator) {\n const val = grandTotalAggregator.value();\n if (val !== null && !isNaN(val)) {\n grandTotal = val;\n validValuesFound = true;\n }\n }\n } catch (e) {\n // Error getting grand total directly, will calculate manually\n }\n\n if (!validValuesFound) {\n pivotData.getRowKeys().forEach(rowKey => {\n pivotData.getColKeys().forEach(colKey => {\n try {\n const agg = this.safeGetAggregator(pivotData, rowKey, colKey);\n if (agg) {\n const val = agg.value();\n if (val !== null && !isNaN(val)) {\n grandTotal += val;\n validValuesFound = true;\n }\n }\n } catch (e) {\n // Ignore errors for missing combinations\n }\n });\n });\n }\n\n const tempAggregator = this.safeGetAggregator(pivotData, [], []);\n const format =\n tempAggregator && tempAggregator.format\n ? tempAggregator.format\n : x => x;\n\n cells.push(\n <td\n className=\"pvtGrandTotal\"\n key=\"grandTotal\"\n style={\n opts.heatmapMode && colMapper.grandTotalColor\n ? colMapper.grandTotalColor\n : {}\n }\n onClick={grandTotalCallback}\n >\n {validValuesFound && grandTotal !== 0\n ? format\n ? format(grandTotal)\n : grandTotal\n : ''}\n </td>\n );\n } catch (error) {\n cells.push(<td className=\"pvtGrandTotal\" key=\"grandTotal\" />);\n }\n }\n\n return cells;\n }\n\n visibleKeys(keys, collapsed) {\n if (!opts.subtotals) {\n return keys;\n }\n\n const sortedKeys = keys.slice().sort((a, b) => {\n const minLength = Math.min(a.length, b.length);\n for (let i = 0; i < minLength; i++) {\n const aStr = String(a[i]);\n const bStr = String(b[i]);\n const cmp = aStr.localeCompare(bStr);\n if (cmp !== 0) {\n return cmp;\n }\n }\n return a.length - b.length;\n });\n\n const result = [];\n const processedKeys = new Set();\n\n for (const key of sortedKeys) {\n let parentCollapsed = false;\n let deepestCollapsedParent = null;\n\n for (let i = 0; i < key.length; i++) {\n const parentKey = key.slice(0, i + 1);\n const flatParentKey = flatKey(parentKey);\n if (collapsed[flatParentKey]) {\n parentCollapsed = true;\n deepestCollapsedParent = parentKey;\n break;\n }\n }\n\n if (parentCollapsed) {\n const flatParentKey = flatKey(deepestCollapsedParent);\n if (!processedKeys.has(flatParentKey)) {\n result.push(deepestCollapsedParent);\n processedKeys.add(flatParentKey);\n }\n } else {\n const flatKey_ = flatKey(key);\n if (!processedKeys.has(flatKey_)) {\n result.push(key);\n processedKeys.add(flatKey_);\n }\n }\n }\n\n const finalResult = [];\n const addedSubtotals = new Set();\n\n const parentGroups = new Map();\n for (const key of result) {\n for (let level = 1; level < key.length; level++) {\n const parentKey = key.slice(0, level);\n const parentKeyStr = flatKey(parentKey);\n\n if (!parentGroups.has(parentKeyStr)) {\n parentGroups.set(parentKeyStr, {\n key: parentKey,\n level: level,\n lastChildIndex: -1,\n });\n }\n }\n }\n\n for (let i = 0; i < result.length; i++) {\n const key = result[i];\n for (let level = 1; level < key.length; level++) {\n const parentKey = key.slice(0, level);\n const parentKeyStr = flatKey(parentKey);\n const parentGroup = parentGroups.get(parentKeyStr);\n\n if (parentGroup) {\n parentGroup.lastChildIndex = Math.max(\n parentGroup.lastChildIndex,\n i\n );\n }\n }\n }\n\n for (let i = 0; i < result.length; i++) {\n const key = result[i];\n finalResult.push(key);\n\n const subtotalsToAdd = [];\n\n for (let level = key.length - 1; level >= 1; level--) {\n const parentKey = key.slice(0, level);\n const parentKeyStr = flatKey(parentKey);\n const parentGroup = parentGroups.get(parentKeyStr);\n\n if (collapsed[parentKeyStr]) {\n continue;\n }\n\n if (parentGroup && parentGroup.lastChildIndex === i) {\n const subtotalKey = [...parentKey, '__subtotal__'];\n const subtotalKeyStr = flatKey(subtotalKey);\n\n if (!addedSubtotals.has(subtotalKeyStr)) {\n subtotalsToAdd.push(subtotalKey);\n addedSubtotals.add(subtotalKeyStr);\n }\n }\n }\n\n finalResult.push(...subtotalsToAdd);\n }\n\n return finalResult;\n }\n\n getSubtotal(rowKey, colKey, pivotSettings) {\n const {pivotData} = pivotSettings;\n return pivotData.getAggregator(rowKey, colKey).value();\n }\n\n hasSubtotals(rowOrCol, key, pivotSettings) {\n const {rowAttrs, colAttrs} = pivotSettings;\n const attrs = rowOrCol === 'row' ? rowAttrs : colAttrs;\n\n return key.length < attrs.length;\n }\n\n safeGetAggregator(pivotData, rowKey, colKey) {\n try {\n return pivotData.getAggregator(rowKey, colKey);\n } catch (error) {\n return null;\n }\n }\n\n calculateSubtotal(pivotData, rowKey, colKey, pivotSettings) {\n const {rowAttrs, colAttrs} = pivotSettings;\n\n if (\n rowKey.length === rowAttrs.length &&\n colKey.length === colAttrs.length\n ) {\n const agg = this.safeGetAggregator(pivotData, rowKey, colKey);\n return agg ? agg.value() : 0;\n }\n\n let total = 0;\n let hasValidValues = false;\n\n const childRowKeys = [];\n if (rowKey.length < rowAttrs.length) {\n pivotData.getRowKeys().forEach(fullRowKey => {\n let isChild = true;\n for (let i = 0; i < rowKey.length; i++) {\n if (fullRowKey[i] !== rowKey[i]) {\n isChild = false;\n break;\n }\n }\n\n if (isChild) {\n childRowKeys.push(fullRowKey);\n }\n });\n } else {\n childRowKeys.push(rowKey);\n }\n\n const childColKeys = [];\n if (colKey.length < colAttrs.length) {\n pivotData.getColKeys().forEach(fullColKey => {\n let isChild = true;\n for (let i = 0; i < colKey.length; i++) {\n if (fullColKey[i] !== colKey[i]) {\n isChild = false;\n break;\n }\n }\n\n if (isChild) {\n childColKeys.push(fullColKey);\n }\n });\n } else {\n childColKeys.push(colKey);\n }\n\n if (childRowKeys.length === 0 || childColKeys.length === 0) {\n const agg = this.safeGetAggregator(pivotData, rowKey, colKey);\n return agg ? agg.value() || 0 : 0;\n }\n\n childRowKeys.forEach(childRowKey => {\n childColKeys.forEach(childColKey => {\n const agg = this.safeGetAggregator(\n pivotData,\n childRowKey,\n childColKey\n );\n if (agg) {\n const val = agg.value();\n if (val !== null && !isNaN(val)) {\n total += val;\n hasValidValues = true;\n }\n }\n });\n });\n\n return hasValidValues ? total : 0;\n }\n\n render() {\n const pivotSettings = this.getBasePivotSettings();\n const {colAttrs, rowAttrs, rowKeys, colKeys, rowTotals} = pivotSettings;\n\n const renderedLabels = {};\n\n const visibleRowKeys = opts.subtotals\n ? this.visibleKeys(rowKeys, this.state.collapsedRows)\n : rowKeys;\n const visibleColKeys = opts.subtotals\n ? this.visibleKeys(colKeys, this.state.collapsedCols)\n : colKeys;\n\n const finalPivotSettings = Object.assign(\n {\n visibleRowKeys,\n maxRowVisible: Math.max(...visibleRowKeys.map(k => k.length)),\n visibleColKeys,\n maxColVisible: Math.max(...visibleColKeys.map(k => k.length)),\n rowAttrSpans: this.calcAttrSpans(visibleRowKeys, rowAttrs.length),\n colAttrSpans: this.calcAttrSpans(visibleColKeys, colAttrs.length),\n },\n pivotSettings\n );\n\n const rowspans = {};\n visibleRowKeys.forEach((rowKey, rowIdx) => {\n const isSubtotalRow = rowKey[rowKey.length - 1] === '__subtotal__';\n const actualRowKey = isSubtotalRow ? rowKey.slice(0, -1) : rowKey;\n\n for (let level = 0; level < actualRowKey.length; level++) {\n const cellKey = `${rowIdx}-${level}`;\n\n let span = 1;\n let j = rowIdx + 1;\n while (j < visibleRowKeys.length) {\n const nextKey = visibleRowKeys[j];\n const isNextSubtotal =\n nextKey[nextKey.length - 1] === '__subtotal__';\n const actualNextKey = isNextSubtotal\n ? nextKey.slice(0, -1)\n : nextKey;\n\n if (level >= actualNextKey.length) {\n break;\n }\n\n let matches = true;\n for (let l = 0; l <= level; l++) {\n if (\n l >= actualNextKey.length ||\n actualNextKey[l] !== actualRowKey[l]\n ) {\n matches = false;\n break;\n }\n }\n\n if (!matches) {\n break;\n }\n span++;\n j++;\n }\n\n rowspans[cellKey] = span;\n }\n });\n\n const renderedRows = visibleRowKeys.map((rowKey, i) => {\n const rowCells = [];\n\n const isSubtotalRow = rowKey[rowKey.length - 1] === '__subtotal__';\n const actualRowKey = isSubtotalRow ? rowKey.slice(0, -1) : rowKey;\n\n if (isSubtotalRow) {\n rowCells.push(\n <th\n key=\"subtotalLabel\"\n className=\"pvtRowLabel pvtSubtotal\"\n colSpan={rowAttrs.length - actualRowKey.length + 1}\n />\n );\n } else {\n for (let level = 0; level < actualRowKey.length; level++) {\n const labelKey = `${actualRowKey.slice(0, level + 1).join('|')}`;\n\n if (!renderedLabels[labelKey]) {\n renderedLabels[labelKey] = true;\n\n const cellKey = `${i}-${level}`;\n const rowspan = rowspans[cellKey] || 1;\n\n const flatRowKey = flatKey(actualRowKey.slice(0, level + 1));\n const isCollapsed = this.state.collapsedRows[flatRowKey];\n\n let className = 'pvtRowLabel';\n\n let icon = null;\n\n if (level + 1 < rowAttrs.length) {\n if (isCollapsed) {\n className += ' collapsed';\n icon = pivotSettings.arrowCollapsed;\n } else {\n className += ' expanded';\n icon = pivotSettings.arrowExpanded;\n }\n rowCells.push(\n <th\n key={`rowLabel-${level}`}\n className={className}\n rowSpan={rowspan}\n onClick={this.toggleRowKey(flatRowKey)}\n style={{cursor: 'pointer'}}\n >\n {icon && (\n <span className=\"pvtAttr\" style={{marginRight: '6px'}}>\n {icon}\n </span>\n )}\n <span>{actualRowKey[level]}</span>\n </th>\n );\n continue;\n }\n\n const isLeafLevel =\n level === actualRowKey.length - 1 &&\n actualRowKey.length === rowAttrs.length;\n const leafColspan = isLeafLevel ? 2 : 1;\n\n rowCells.push(\n <th\n key={`rowLabel-${level}`}\n className={className}\n rowSpan={rowspan}\n colSpan={leafColspan}\n onClick={this.toggleRowKey(flatRowKey)}\n >\n {icon && <span className=\"pvtAttr\">{icon}</span>}\n <span>{actualRowKey[level]}</span>\n </th>\n );\n }\n }\n\n if (actualRowKey.length < rowAttrs.length) {\n rowCells.push(\n <th\n key=\"padding\"\n className=\"pvtRowLabel\"\n colSpan={rowAttrs.length - actualRowKey.length + 1}\n />\n );\n }\n }\n\n const dataCells = this.renderTableRow(rowKey, i, finalPivotSettings);\n\n return (\n <tr\n key={`row-${i}`}\n className={isSubtotalRow && opts.subtotals ? 'pvtSubtotalRow' : ''}\n >\n {rowCells}\n {dataCells}\n </tr>\n );\n });\n\n const colAttrsHeaders = colAttrs.map((attrName, i) => {\n return (\n <tr key={`colAttr-${i}`}>\n {this.renderColHeaderRow(attrName, i, finalPivotSettings)}\n </tr>\n );\n });\n\n let rowAttrsHeader = null;\n if (rowAttrs.length > 0) {\n rowAttrsHeader = (\n <tr key=\"rowAttr-0\">{this.renderRowHeaderRow(finalPivotSettings)}</tr>\n );\n }\n\n let totalHeader = null;\n if (rowTotals) {\n totalHeader = (\n <tr key=\"total\">{this.renderTotalsRow(finalPivotSettings)}</tr>\n );\n }\n\n return (\n <table className=\"pvtTable\">\n <thead>\n {colAttrsHeaders}\n {rowAttrsHeader}\n </thead>\n <tbody>\n {renderedRows}\n {totalHeader}\n </tbody>\n </table>\n );\n }\n }\n\n SubtotalRenderer.defaultProps = Object.assign({}, PivotData.defaultProps, {\n tableColorScaleGenerator: redColorScaleGenerator,\n tableOptions: {},\n });\n SubtotalRenderer.propTypes = Object.assign({}, PivotData.propTypes, {\n tableColorScaleGenerator: PropTypes.func,\n tableOptions: PropTypes.object,\n });\n return SubtotalRenderer;\n}\n\nclass TSVExportRenderer extends React.PureComponent {\n render() {\n const pivotData = new PivotData(this.props);\n const rowKeys = pivotData.getRowKeys();\n const colKeys = pivotData.getColKeys();\n if (rowKeys.length === 0) {\n rowKeys.push([]);\n }\n if (colKeys.length === 0) {\n colKeys.push([]);\n }\n\n const headerRow = pivotData.props.rows.map(r => r);\n if (colKeys.length === 1 && colKeys[0].length === 0) {\n headerRow.push(this.props.aggregatorName);\n } else {\n colKeys.map(c => headerRow.push(c.join('-')));\n }\n\n const result = rowKeys.map(r => {\n const row = r.map(x => x);\n colKeys.map(c => {\n const aggregator = pivotData.getAggregator(r, c);\n row.push(aggregator.value());\n });\n return row;\n });\n\n result.unshift(headerRow);\n\n return (\n <textarea\n value={result.map(r => r.join('\\t')).join('\\n')}\n style={{width: window.innerWidth / 2, height: window.innerHeight / 2}}\n readOnly={true}\n />\n );\n }\n}\n\nTSVExportRenderer.defaultProps = PivotData.defaultProps;\nTSVExportRenderer.propTypes = PivotData.propTypes;\n\nexport default {\n 'Table With Subtotal': makeRenderer({subtotals: true}),\n 'Heatmap With Subtotal': makeRenderer({\n heatmapMode: 'full',\n subtotals: true,\n }),\n 'Col Heatmap With Subtotal': makeRenderer({\n heatmapMode: 'col',\n subtotals: true,\n }),\n 'Row Heatmap With Subtotal': makeRenderer({\n heatmapMode: 'row',\n subtotals: true,\n }),\n 'Exportable TSV': TSVExportRenderer,\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TableRenderers.js","names":["_react","_interopRequireDefault","require","_propTypes","_Utilities","e","__esModule","_createForOfIteratorHelper","r","t","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","_n","F","s","n","done","value","f","TypeError","o","a","u","call","next","_arrayLikeToArray","toString","slice","constructor","name","from","test","_classCallCheck","_defineProperties","enumerable","configurable","writable","Object","defineProperty","_toPropertyKey","key","_createClass","prototype","i","_toPrimitive","_typeof","toPrimitive","String","Number","_callSuper","_getPrototypeOf","_possibleConstructorReturn","_isNativeReflectConstruct","Reflect","construct","apply","_assertThisInitialized","ReferenceError","Boolean","valueOf","setPrototypeOf","getPrototypeOf","bind","__proto__","_inherits","create","_setPrototypeOf","spanSize","arr","j","no_loop","arguments","undefined","x","asc","end","noDraw","len","asc1","end1","stop","redColorScaleGenerator","values","min","Math","max","nonRed","round","backgroundColor","concat","flatKey","join","fromCharCode","has","set","every","add","forEach","remove","toggle","makeRenderer","opts","TableRenderer","_React$PureComponent","render","_this","pivotData","PivotData","props","id","colAttrs","cols","rowAttrs","rows","rowKeys","getRowKeys","colKeys","getColKeys","grandTotalAggregator","getAggregator","grouping","compactRows","specialCase","rowGroupBefore","folded","state","Set","isFolded","keys","map","fold","setState","_iterator","_step","_loop","filter","colKey","startsWith","rowKey","err","totalRows","pagination","start","page","pageSize","valueCellColors","rowTotalColors","colTotalColors","heatmapMode","colorScaleGenerator","tableColorScaleGenerator","rowTotalValues","colTotalValues","allValues","c","push","colorScale","v","rowColorScales","rowValues","colColorScales","colValues","getClickHandler","tableOptions","clickCallback","filters","_i","_Object$keys","attr","_i2","_Object$keys2","rbClass","cbClass","colGroupBefore","clickClass","pred","closed","createElement","className","clickable","levelKeys","colSpan","rowSpan","onClick","_","totalAggregator","rowGap","rowTotalValue","txt","style","paddingLeft","aggregator","colGap","val","isNumeric","format","totalVal","React","PureComponent","defaultProps","propTypes","PropTypes","func","object","bool","TSVExportRenderer","_React$PureComponent2","headerRow","aggregatorName","result","row","unshift","width","window","innerWidth","height","innerHeight","readOnly","_default","exports","Table"],"sources":["../src/TableRenderers.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport {PivotData} from './Utilities';\n\n// helper function for setting row/col-span in pivotTableRenderer\nconst spanSize = function(arr, i, j, no_loop = false) {\n let x;\n if (i !== 0) {\n let asc, end;\n let noDraw = true;\n for (\n x = 0, end = j, asc = end >= 0;\n asc ? x <= end : x >= end;\n asc ? x++ : x--\n ) {\n if (arr[i - 1][x] !== arr[i][x]) {\n noDraw = false;\n }\n }\n if (noDraw) {\n return -1;\n }\n }\n let len = 0;\n while (i + len < arr.length) {\n let asc1, end1;\n let stop = false;\n for (\n x = no_loop ? j : 0, end1 = j, asc1 = end1 >= 0;\n asc1 ? x <= end1 : x >= end1;\n asc1 ? x++ : x--\n ) {\n if (arr[i][x] !== arr[i + len][x]) {\n stop = true;\n }\n }\n if (stop) {\n break;\n }\n len++;\n }\n return len;\n};\n\nfunction redColorScaleGenerator(values) {\n const min = Math.min.apply(Math, values);\n const max = Math.max.apply(Math, values);\n return x => {\n // eslint-disable-next-line no-magic-numbers\n const nonRed = 255 - Math.round((255 * (x - min)) / (max - min));\n return {backgroundColor: `rgb(255,${nonRed},${nonRed})`};\n };\n}\n\nconst flatKey = arr => arr.join(String.fromCharCode(0));\nconst has = (set, arr) => arr.every(set.has, set);\nconst add = (set, arr) => (arr.forEach(set.add, set) || set);\nconst remove = (set, arr) => (arr.forEach(set.delete, set) || set);\nconst toggle = (set, arr) => (has(set, arr) ? remove : add)(set, arr);\n\nfunction makeRenderer(opts = {}) {\n class TableRenderer extends React.PureComponent {\n render() {\n const pivotData = new PivotData(this.props);\n const id = pivotData.props.id;\n const colAttrs = pivotData.props.cols;\n const rowAttrs = pivotData.props.rows;\n let rowKeys = pivotData.getRowKeys(true);\n let colKeys = pivotData.getColKeys(true);\n const grandTotalAggregator = pivotData.getAggregator([], []);\n\n const grouping = pivotData.props.grouping;\n const compactRows = grouping && this.props.compactRows;\n // speacial case for spanSize counting (no_loop)\n const specialCase = grouping && !this.props.rowGroupBefore;\n const folded = (this.state || {}).folded || new Set();\n const isFolded = keys => has(folded, keys.map(flatKey));\n const fold = keys => this.setState({folded: toggle(new Set(folded), keys.map(flatKey))});\n\n if(grouping){\n for (const key of folded) {\n colKeys = colKeys.filter(colKey => !flatKey(colKey).startsWith(key + String.fromCharCode(0)));\n rowKeys = rowKeys.filter(rowKey => !flatKey(rowKey).startsWith(key + String.fromCharCode(0)));\n }\n }\n\n const totalRows = rowKeys.length;\n if (this.props.pagination) {\n const start = (this.props.page - 1) * this.props.pageSize;\n const end = start + this.props.pageSize;\n rowKeys = rowKeys.slice(start, end);\n }\n\n let valueCellColors = () => {};\n let rowTotalColors = () => {};\n let colTotalColors = () => {};\n if (opts.heatmapMode) {\n const colorScaleGenerator = this.props.tableColorScaleGenerator;\n const rowTotalValues = colKeys.map(x =>\n pivotData.getAggregator([], x).value()\n );\n rowTotalColors = colorScaleGenerator(rowTotalValues);\n const colTotalValues = rowKeys.map(x =>\n pivotData.getAggregator(x, []).value()\n );\n colTotalColors = colorScaleGenerator(colTotalValues);\n\n if (opts.heatmapMode === 'full') {\n const allValues = [];\n rowKeys.map(r =>\n colKeys.map(c =>\n allValues.push(pivotData.getAggregator(r, c).value())\n )\n );\n const colorScale = colorScaleGenerator(allValues);\n valueCellColors = (r, c, v) => colorScale(v);\n } else if (opts.heatmapMode === 'row') {\n const rowColorScales = {};\n rowKeys.map(r => {\n const rowValues = colKeys.map(x =>\n pivotData.getAggregator(r, x).value()\n );\n rowColorScales[r] = colorScaleGenerator(rowValues);\n });\n valueCellColors = (r, c, v) => rowColorScales[r](v);\n } else if (opts.heatmapMode === 'col') {\n const colColorScales = {};\n colKeys.map(c => {\n const colValues = rowKeys.map(x =>\n pivotData.getAggregator(x, c).value()\n );\n colColorScales[c] = colorScaleGenerator(colValues);\n });\n valueCellColors = (r, c, v) => colColorScales[c](v);\n }\n }\n\n const getClickHandler =\n this.props.tableOptions && this.props.tableOptions.clickCallback\n ? (value, rowValues, colValues) => {\n const filters = {};\n for (const i of Object.keys(colAttrs || {})) {\n const attr = colAttrs[i];\n if (colValues[i] !== null) {\n filters[attr] = colValues[i];\n }\n }\n for (const i of Object.keys(rowAttrs || {})) {\n const attr = rowAttrs[i];\n if (rowValues[i] !== null) {\n filters[attr] = rowValues[i];\n }\n }\n return e =>\n this.props.tableOptions.clickCallback(\n e,\n value,\n filters,\n pivotData\n );\n }\n : null;\n\n const rbClass = grouping? this.props.rowGroupBefore ? \"rowGroupBefore\" : \"rowGroupAfter\" : \"\";\n const cbClass = grouping? this.props.colGroupBefore ? \"colGroupBefore\" : \"colGroupAfter\" : \"\";\n const clickClass = (pred, closed) => pred? \" pvtClickable\" + (closed? \" closed\": \"\") : \"\";\n return (\n <table id={id} className={`pvtTable ${rbClass} ${cbClass}`}>\n <thead>\n {colAttrs.map(function(c, j) {\n const clickable = grouping && colAttrs.length > j + 1;\n const levelKeys = colKeys.filter(x => x.length === j+1);\n return (\n <tr key={`colAttr${j}`}>\n {j === 0 && rowAttrs.length !== 0 && (\n <th colSpan={rowAttrs.length} rowSpan={colAttrs.length} />\n )}\n <th className={\"pvtAxisLabel\" + clickClass(clickable, isFolded(levelKeys))}\n onClick={clickable? _ => fold(levelKeys): null}\n >{c}</th>\n {colKeys.map(function(colKey, i) {\n const x = spanSize(colKeys, i, j);\n if (x === -1) {\n return null;\n }\n return (\n <th\n className={\"pvtColLabel\" + clickClass(clickable && colKey[j], isFolded([colKey.slice(0, j + 1)]))}\n key={`colKey-${i}-${j}-${colKey[j]}`}\n colSpan={x}\n rowSpan={\n j === colAttrs.length - 1 && rowAttrs.length !== 0\n ? 2\n : 1\n }\n onClick={clickable && colKey[j] ? _ => fold([colKey.slice(0, j + 1)]) : null}\n >\n {colKey[j]}\n </th>\n );\n })}\n\n {j === 0 && (\n <th\n className=\"pvtTotalLabel\"\n rowSpan={\n colAttrs.length + (rowAttrs.length === 0 ? 0 : 1)\n }\n >\n Totals\n </th>\n )}\n </tr>\n );\n })}\n\n {rowAttrs.length !== 0 && (\n <tr>\n {rowAttrs.map(function(r, i) {\n const clickable = grouping && rowAttrs.length > i + 1;\n const levelKeys = rowKeys.filter(x => x.length === i+1);\n return (\n <th className={\"pvtAxisLabel\" + clickClass(clickable, isFolded(levelKeys))}\n onClick={clickable? _ => fold(levelKeys): null}\n key={`rowAttr${i}`}>\n {r}\n </th>\n );\n })}\n <th className=\"pvtTotalLabel\">\n {colAttrs.length === 0 ? 'Totals' : null}\n </th>\n </tr>\n )}\n </thead>\n\n <tbody>\n {rowKeys.map(function(rowKey, i) {\n const totalAggregator = pivotData.getAggregator(rowKey, []);\n const rowGap = rowAttrs.length - rowKey.length;\n const rowTotalValue = totalAggregator.value();\n return (\n <tr key={`rowKeyRow${i}`}\n className={(rowGap ? \"pvtLevel\" + rowGap : \"pvtData\") + \" pvtRow-data\"}>\n {rowKey.map(function(txt, j) {\n if (compactRows && j < rowKey.length - 1) {\n return null;\n }\n const clickable = grouping && rowAttrs.length > j + 1;\n const x = compactRows ? 1 : spanSize(rowKeys, i, j, specialCase);\n if (x === -1) {\n return null;\n }\n return (\n <th\n key={`rowKeyLabel-${i}-${j}-${txt}`}\n className={\"pvtRowLabel\" + clickClass(clickable && rowKey[j], isFolded([rowKey.slice(0, j + 1)]))}\n rowSpan={x}\n colSpan={\n compactRows ?\n rowAttrs.length + 1 :\n j === rowAttrs.length - 1 && colAttrs.length !== 0\n ? 2\n : 1\n }\n style={{paddingLeft: compactRows ? `calc(var(--pvt-row-padding, 5px) + ${j} * var(--pvt-row-indent, 20px))` : null}}\n onClick={clickable && rowKey[j] ? _ => fold([rowKey.slice(0, j + 1)]) : null}\n >\n {txt}\n </th>\n );\n })}\n {!compactRows && rowGap\n ? <th className=\"pvtRowLabel\" colSpan={rowGap + 1}>{\"Total (\" + rowKey[rowKey.length - 1] + \")\"}</th>\n : null\n }\n {colKeys.map(function(colKey, j) {\n const aggregator = pivotData.getAggregator(rowKey, colKey);\n const colGap = colAttrs.length - colKey.length;\n const val = aggregator.value();\n const isNumeric = typeof val === 'number';\n return (\n <td\n className={\"pvtVal\" + (colGap ? \" pvtLevel\" + colGap : \"\") + (isNumeric ? \" pvtVal-numeric\" : \"\")}\n key={`pvtVal${i}-${j}`}\n onClick={\n getClickHandler &&\n getClickHandler(val, rowKey, colKey)\n }\n style={valueCellColors(\n rowKey,\n colKey,\n val\n )}\n >\n {aggregator.format(val)}\n </td>\n );\n })}\n <td\n className={\"pvtTotal\" + (typeof rowTotalValue === 'number' ? \" pvtVal-numeric\" : \"\")}\n onClick={\n getClickHandler &&\n getClickHandler(rowTotalValue, rowKey, [null])\n }\n style={colTotalColors(rowTotalValue)}\n >\n {totalAggregator.format(rowTotalValue)}\n </td>\n </tr>\n );\n })}\n\n <tr className=\"pvtTotalRow\">\n <th\n className=\"pvtTotalLabel\"\n colSpan={rowAttrs.length + (colAttrs.length === 0 ? 0 : 1)}\n >\n Totals\n </th>\n\n {colKeys.map(function(colKey, i) {\n const totalAggregator = pivotData.getAggregator([], colKey);\n const colGap = colAttrs.length - colKey.length;\n const totalVal = totalAggregator.value();\n const isNumeric = typeof totalVal === 'number';\n return (\n <td\n className={\"pvtTotal\" + (colGap ? \" pvtLevel\" + colGap : \"\") + (isNumeric ? \" pvtVal-numeric\" : \"\")}\n key={`total${i}`}\n onClick={\n getClickHandler &&\n getClickHandler(totalVal, [null], colKey)\n }\n style={rowTotalColors(totalVal)}\n >\n {totalAggregator.format(totalVal)}\n </td>\n );\n })}\n\n <td\n onClick={\n getClickHandler &&\n getClickHandler(grandTotalAggregator.value(), [null], [null])\n }\n className={\"pvtGrandTotal\" + (typeof grandTotalAggregator.value() === 'number' ? \" pvtVal-numeric\" : \"\")}\n >\n {grandTotalAggregator.format(grandTotalAggregator.value())}\n </td>\n </tr>\n </tbody>\n </table>\n );\n }\n }\n\n TableRenderer.defaultProps = PivotData.defaultProps;\n TableRenderer.propTypes = PivotData.propTypes;\n TableRenderer.defaultProps.tableColorScaleGenerator = redColorScaleGenerator;\n TableRenderer.defaultProps.tableOptions = {};\n TableRenderer.propTypes.tableColorScaleGenerator = PropTypes.func;\n TableRenderer.propTypes.tableOptions = PropTypes.object;\n TableRenderer.defaultProps.compactRows = true;\n TableRenderer.propTypes.compactRows = PropTypes.bool;\n return TableRenderer;\n}\n\nclass TSVExportRenderer extends React.PureComponent {\n render() {\n const pivotData = new PivotData(this.props);\n const rowKeys = pivotData.getRowKeys();\n const colKeys = pivotData.getColKeys();\n if (rowKeys.length === 0) {\n rowKeys.push([]);\n }\n if (colKeys.length === 0) {\n colKeys.push([]);\n }\n\n const headerRow = pivotData.props.rows.map(r => r);\n if (colKeys.length === 1 && colKeys[0].length === 0) {\n headerRow.push(this.props.aggregatorName);\n } else {\n colKeys.map(c => headerRow.push(c.join('-')));\n }\n\n const result = rowKeys.map(r => {\n const row = r.map(x => x);\n colKeys.map(c => {\n const v = pivotData.getAggregator(r, c).value();\n row.push(v ? v : '');\n });\n return row;\n });\n\n result.unshift(headerRow);\n\n return (\n <textarea\n value={result.map(r => r.join('\\t')).join('\\n')}\n style={{width: window.innerWidth / 2, height: window.innerHeight / 2}}\n readOnly={true}\n />\n );\n }\n}\n\nTSVExportRenderer.defaultProps = PivotData.defaultProps;\nTSVExportRenderer.propTypes = PivotData.propTypes;\n\nexport default {\n Table: makeRenderer(),\n 'Table Heatmap': makeRenderer({heatmapMode: 'full'}),\n 'Table Col Heatmap': makeRenderer({heatmapMode: 'col'}),\n 'Table Row Heatmap': makeRenderer({heatmapMode: 'row'}),\n 'Exportable TSV': TSVExportRenderer,\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Utilities.js","names":["_propTypes","_interopRequireDefault","require","e","__esModule","_classCallCheck","a","n","TypeError","_defineProperties","r","t","length","o","enumerable","configurable","writable","Object","defineProperty","_toPropertyKey","key","_createClass","prototype","i","_toPrimitive","_typeof","Symbol","toPrimitive","call","String","Number","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","iterator","Array","from","isArray","_arrayLikeToArray","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","toString","slice","constructor","name","test","l","u","f","next","done","push","value","addSeparators","nStr","thousandsSep","decimalSep","x","split","x1","x2","rgx","replace","concat","numberFormat","exports","opts_in","defaults","digitsAfterDecimal","scaler","prefix","suffix","opts","assign","isNaN","isFinite","result","toFixed","rx","rd","rz","naturalSort","as","bs","nas","nbs","b","match","a1","shift","b1","sortAs","order","mapping","l_mapping","toLowerCase","getSort","sorters","attr","sort","usFmt","usFmtInt","usFmtPct","aggregatorTemplates","count","formatter","arguments","undefined","format","uniques","fn","_ref","_ref2","uniq","record","includes","numInputs","sum","_ref3","_ref4","parseFloat","extremes","mode","_ref5","_ref6","data","val","sorter","Math","quantile","q","_ref7","_ref8","vals","floor","ceil","runningStat","ddof","_ref9","_ref0","m","s","m_new","sqrt","Error","sumOverSum","_ref1","_ref10","num","denom","sumNum","sumDenom","fractionOf","wrapped","type","_len","_key","rowKey","colKey","selector","total","row","col","inner","apply","getAggregator","countUnique","listUnique","join","max","min","first","last","median","average","stdev","aggregators","tpl","Count","Sum","Average","Median","Minimum","Maximum","First","Last","locales","en","localeStrings","renderError","computeError","uiRenderError","selectAll","selectNone","tooMany","filterResults","cancel","totals","vs","by","mthNamesEn","dayNamesEn","zeroPad","number","substr","derivers","bin","binWidth","dateFormat","formatString","utcOutput","mthNames","dayNames","utc","date","Date","parse","p","flatKey","attrVals","fromCharCode","PivotData","_this","inputProps","sanitizedProps","keys","reduce","acc","props","defaultProps","PropTypes","checkPropTypes","propTypes","aggregator","aggregatorName","tree","rowKeys","colKeys","rowTotals","colTotals","allTotal","sorted","forEachRecord","derivedAttributes","filter","processRecord","k","valueFilter","forEachMatchingRecord","criteria","callback","_this2","v","arrSort","attrs","_this3","sortersArr","_i","_Array$from","_i2","_Object$keys","comparison","sortKeys","_this4","c","rowOrder","rows","colOrder","cols","getColKeys","getRowKeys","_i3","_Array$from2","_i4","_Array$from3","flatRowKey","flatColKey","agg","forEachTotal","forEach","forEachCell","_this5","input","addRecord","getOwnPropertyNames","derived","_i5","_Object$keys2","compactRecord","_i6","_Object$keys3","j","result1","_i7","_Array$from4","pagination","pageSize","page","oneOfType","array","object","func","isRequired","string","arrayOf","objectOf","bool","oneOf"],"sources":["../src/Utilities.js"],"sourcesContent":["import PropTypes from 'prop-types';\n\n/*\n * decaffeinate suggestions:\n * DS101: Remove unnecessary use of Array.from\n * DS102: Remove unnecessary code created because of implicit returns\n * DS104: Avoid inline assignments\n * DS201: Simplify complex destructure assignments\n * DS203: Remove `|| {}` from converted for-own loops\n * DS205: Consider reworking code to avoid use of IIFEs\n * DS207: Consider shorter variations of null checks\n * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md\n */\n\nconst addSeparators = function(nStr, thousandsSep, decimalSep) {\n const x = String(nStr).split('.');\n let x1 = x[0];\n const x2 = x.length > 1 ? decimalSep + x[1] : '';\n const rgx = /(\\d+)(\\d{3})/;\n while (rgx.test(x1)) {\n x1 = x1.replace(rgx, `$1${thousandsSep}$2`);\n }\n return x1 + x2;\n};\n\nconst numberFormat = function(opts_in) {\n const defaults = {\n digitsAfterDecimal: 2,\n scaler: 1,\n thousandsSep: ',',\n decimalSep: '.',\n prefix: '',\n suffix: '',\n };\n const opts = Object.assign({}, defaults, opts_in);\n return function(x) {\n if (isNaN(x) || !isFinite(x)) {\n return '';\n }\n const result = addSeparators(\n (opts.scaler * x).toFixed(opts.digitsAfterDecimal),\n opts.thousandsSep,\n opts.decimalSep\n );\n return `${opts.prefix}${result}${opts.suffix}`;\n };\n};\n\nconst rx = /(\\d+)|(\\D+)/g;\nconst rd = /\\d/;\nconst rz = /^0/;\nconst naturalSort = (as, bs) => {\n // nulls first\n if (bs !== null && as === null) {\n return -1;\n }\n if (as !== null && bs === null) {\n return 1;\n }\n\n // then raw NaNs\n if (typeof as === 'number' && isNaN(as)) {\n return -1;\n }\n if (typeof bs === 'number' && isNaN(bs)) {\n return 1;\n }\n\n // numbers and numbery strings group together\n const nas = Number(as);\n const nbs = Number(bs);\n if (nas < nbs) {\n return -1;\n }\n if (nas > nbs) {\n return 1;\n }\n\n // within that, true numbers before numbery strings\n if (typeof as === 'number' && typeof bs !== 'number') {\n return -1;\n }\n if (typeof bs === 'number' && typeof as !== 'number') {\n return 1;\n }\n if (typeof as === 'number' && typeof bs === 'number') {\n return 0;\n }\n\n // 'Infinity' is a textual number, so less than 'A'\n if (isNaN(nbs) && !isNaN(nas)) {\n return -1;\n }\n if (isNaN(nas) && !isNaN(nbs)) {\n return 1;\n }\n\n // finally, \"smart\" string sorting per http://stackoverflow.com/a/4373421/112871\n let a = String(as);\n let b = String(bs);\n if (a === b) {\n return 0;\n }\n if (!rd.test(a) || !rd.test(b)) {\n return a > b ? 1 : -1;\n }\n\n // special treatment for strings containing digits\n a = a.match(rx);\n b = b.match(rx);\n while (a.length && b.length) {\n const a1 = a.shift();\n const b1 = b.shift();\n if (a1 !== b1) {\n if (rd.test(a1) && rd.test(b1)) {\n return a1.replace(rz, '.0') - b1.replace(rz, '.0');\n }\n return a1 > b1 ? 1 : -1;\n }\n }\n return a.length - b.length;\n};\n\nconst sortAs = function(order) {\n const mapping = {};\n\n // sort lowercased keys similarly\n const l_mapping = {};\n for (const i in order) {\n const x = order[i];\n mapping[x] = i;\n if (typeof x === 'string') {\n l_mapping[x.toLowerCase()] = i;\n }\n }\n return function(a, b) {\n if (a in mapping && b in mapping) {\n return mapping[a] - mapping[b];\n } else if (a in mapping) {\n return -1;\n } else if (b in mapping) {\n return 1;\n } else if (a in l_mapping && b in l_mapping) {\n return l_mapping[a] - l_mapping[b];\n } else if (a in l_mapping) {\n return -1;\n } else if (b in l_mapping) {\n return 1;\n }\n return naturalSort(a, b);\n };\n};\n\nconst getSort = function(sorters, attr) {\n if (sorters) {\n if (typeof sorters === 'function') {\n const sort = sorters(attr);\n if (typeof sort === 'function') {\n return sort;\n }\n } else if (attr in sorters) {\n return sorters[attr];\n }\n }\n return naturalSort;\n};\n\n// aggregator templates default to US number formatting but this is overrideable\nconst usFmt = numberFormat();\nconst usFmtInt = numberFormat({digitsAfterDecimal: 0});\nconst usFmtPct = numberFormat({\n digitsAfterDecimal: 1,\n scaler: 100,\n suffix: '%',\n});\n\nconst aggregatorTemplates = {\n count(formatter = usFmtInt) {\n return () =>\n function() {\n return {\n count: 0,\n push() {\n this.count++;\n },\n value() {\n return this.count;\n },\n format: formatter,\n };\n };\n },\n\n uniques(fn, formatter = usFmtInt) {\n return function([attr]) {\n return function() {\n return {\n uniq: [],\n push(record) {\n if (!Array.from(this.uniq).includes(record[attr])) {\n this.uniq.push(record[attr]);\n }\n },\n value() {\n return fn(this.uniq);\n },\n format: formatter,\n numInputs: typeof attr !== 'undefined' ? 0 : 1,\n };\n };\n };\n },\n\n sum(formatter = usFmt) {\n return function([attr]) {\n return function() {\n return {\n sum: 0,\n push(record) {\n if (!isNaN(parseFloat(record[attr]))) {\n this.sum += parseFloat(record[attr]);\n }\n },\n value() {\n return this.sum;\n },\n format: formatter,\n numInputs: typeof attr !== 'undefined' ? 0 : 1,\n };\n };\n };\n },\n\n extremes(mode, formatter = usFmt) {\n return function([attr]) {\n return function(data) {\n return {\n val: null,\n sorter: getSort(\n typeof data !== 'undefined' ? data.sorters : null,\n attr\n ),\n push(record) {\n let x = record[attr];\n if (['min', 'max'].includes(mode)) {\n x = parseFloat(x);\n if (!isNaN(x)) {\n this.val = Math[mode](x, this.val !== null ? this.val : x);\n }\n }\n if (\n mode === 'first' &&\n this.sorter(x, this.val !== null ? this.val : x) <= 0\n ) {\n this.val = x;\n }\n if (\n mode === 'last' &&\n this.sorter(x, this.val !== null ? this.val : x) >= 0\n ) {\n this.val = x;\n }\n },\n value() {\n return this.val;\n },\n format(x) {\n if (isNaN(x)) {\n return x;\n }\n return formatter(x);\n },\n numInputs: typeof attr !== 'undefined' ? 0 : 1,\n };\n };\n };\n },\n\n quantile(q, formatter = usFmt) {\n return function([attr]) {\n return function() {\n return {\n vals: [],\n push(record) {\n const x = parseFloat(record[attr]);\n if (!isNaN(x)) {\n this.vals.push(x);\n }\n },\n value() {\n if (this.vals.length === 0) {\n return null;\n }\n this.vals.sort((a, b) => a - b);\n const i = (this.vals.length - 1) * q;\n return (this.vals[Math.floor(i)] + this.vals[Math.ceil(i)]) / 2.0;\n },\n format: formatter,\n numInputs: typeof attr !== 'undefined' ? 0 : 1,\n };\n };\n };\n },\n\n runningStat(mode = 'mean', ddof = 1, formatter = usFmt) {\n return function([attr]) {\n return function() {\n return {\n n: 0.0,\n m: 0.0,\n s: 0.0,\n push(record) {\n const x = parseFloat(record[attr]);\n if (isNaN(x)) {\n return;\n }\n this.n += 1.0;\n if (this.n === 1.0) {\n this.m = x;\n }\n const m_new = this.m + (x - this.m) / this.n;\n this.s = this.s + (x - this.m) * (x - m_new);\n this.m = m_new;\n },\n value() {\n if (mode === 'mean') {\n if (this.n === 0) {\n return 0 / 0;\n }\n return this.m;\n }\n if (this.n <= ddof) {\n return 0;\n }\n switch (mode) {\n case 'var':\n return this.s / (this.n - ddof);\n case 'stdev':\n return Math.sqrt(this.s / (this.n - ddof));\n default:\n throw new Error('unknown mode for runningStat');\n }\n },\n format: formatter,\n numInputs: typeof attr !== 'undefined' ? 0 : 1,\n };\n };\n };\n },\n\n sumOverSum(formatter = usFmt) {\n return function([num, denom]) {\n return function() {\n return {\n sumNum: 0,\n sumDenom: 0,\n push(record) {\n if (!isNaN(parseFloat(record[num]))) {\n this.sumNum += parseFloat(record[num]);\n }\n if (!isNaN(parseFloat(record[denom]))) {\n this.sumDenom += parseFloat(record[denom]);\n }\n },\n value() {\n return this.sumNum / this.sumDenom;\n },\n format: formatter,\n numInputs:\n typeof num !== 'undefined' && typeof denom !== 'undefined' ? 0 : 2,\n };\n };\n };\n },\n\n fractionOf(wrapped, type = 'total', formatter = usFmtPct) {\n return (...x) =>\n function(data, rowKey, colKey) {\n return {\n selector: {total: [[], []], row: [rowKey, []], col: [[], colKey]}[\n type\n ],\n inner: wrapped(...Array.from(x || []))(data, rowKey, colKey),\n push(record) {\n this.inner.push(record);\n },\n format: formatter,\n value() {\n return (\n this.inner.value() /\n data\n .getAggregator(...Array.from(this.selector || []))\n .inner.value()\n );\n },\n numInputs: wrapped(...Array.from(x || []))().numInputs,\n };\n };\n },\n};\n\naggregatorTemplates.countUnique = f =>\n aggregatorTemplates.uniques(x => x.length, f);\naggregatorTemplates.listUnique = s =>\n aggregatorTemplates.uniques(\n x => x.join(s),\n x => x\n );\naggregatorTemplates.max = f => aggregatorTemplates.extremes('max', f);\naggregatorTemplates.min = f => aggregatorTemplates.extremes('min', f);\naggregatorTemplates.first = f => aggregatorTemplates.extremes('first', f);\naggregatorTemplates.last = f => aggregatorTemplates.extremes('last', f);\naggregatorTemplates.median = f => aggregatorTemplates.quantile(0.5, f);\naggregatorTemplates.average = f =>\n aggregatorTemplates.runningStat('mean', 1, f);\naggregatorTemplates.var = (ddof, f) =>\n aggregatorTemplates.runningStat('var', ddof, f);\naggregatorTemplates.stdev = (ddof, f) =>\n aggregatorTemplates.runningStat('stdev', ddof, f);\n\n// default aggregators & renderers use US naming and number formatting\nconst aggregators = (tpl => ({\n Count: tpl.count(usFmtInt),\n 'Count Unique Values': tpl.countUnique(usFmtInt),\n 'List Unique Values': tpl.listUnique(', '),\n Sum: tpl.sum(usFmt),\n 'Integer Sum': tpl.sum(usFmtInt),\n Average: tpl.average(usFmt),\n Median: tpl.median(usFmt),\n 'Sample Variance': tpl.var(1, usFmt),\n 'Sample Standard Deviation': tpl.stdev(1, usFmt),\n Minimum: tpl.min(usFmt),\n Maximum: tpl.max(usFmt),\n First: tpl.first(usFmt),\n Last: tpl.last(usFmt),\n 'Sum over Sum': tpl.sumOverSum(usFmt),\n 'Sum as Fraction of Total': tpl.fractionOf(tpl.sum(), 'total', usFmtPct),\n 'Sum as Fraction of Rows': tpl.fractionOf(tpl.sum(), 'row', usFmtPct),\n 'Sum as Fraction of Columns': tpl.fractionOf(tpl.sum(), 'col', usFmtPct),\n 'Count as Fraction of Total': tpl.fractionOf(tpl.count(), 'total', usFmtPct),\n 'Count as Fraction of Rows': tpl.fractionOf(tpl.count(), 'row', usFmtPct),\n 'Count as Fraction of Columns': tpl.fractionOf(tpl.count(), 'col', usFmtPct),\n}))(aggregatorTemplates);\n\nconst locales = {\n en: {\n aggregators,\n localeStrings: {\n renderError: 'An error occurred rendering the PivotTable results.',\n computeError: 'An error occurred computing the PivotTable results.',\n uiRenderError: 'An error occurred rendering the PivotTable UI.',\n selectAll: 'Select All',\n selectNone: 'Select None',\n tooMany: '(too many to list)',\n filterResults: 'Filter values',\n apply: 'Apply',\n cancel: 'Cancel',\n totals: 'Totals',\n vs: 'vs',\n by: 'by',\n },\n },\n};\n\n// dateFormat deriver l10n requires month and day names to be passed in directly\nconst mthNamesEn = [\n 'Jan',\n 'Feb',\n 'Mar',\n 'Apr',\n 'May',\n 'Jun',\n 'Jul',\n 'Aug',\n 'Sep',\n 'Oct',\n 'Nov',\n 'Dec',\n];\nconst dayNamesEn = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];\nconst zeroPad = number => `0${number}`.substr(-2, 2); // eslint-disable-line no-magic-numbers\n\nconst derivers = {\n bin(col, binWidth) {\n return record => record[col] - (record[col] % binWidth);\n },\n dateFormat(\n col,\n formatString,\n utcOutput = false,\n mthNames = mthNamesEn,\n dayNames = dayNamesEn\n ) {\n const utc = utcOutput ? 'UTC' : '';\n return function(record) {\n const date = new Date(Date.parse(record[col]));\n if (isNaN(date)) {\n return '';\n }\n return formatString.replace(/%(.)/g, function(m, p) {\n switch (p) {\n case 'y':\n return date[`get${utc}FullYear`]();\n case 'm':\n return zeroPad(date[`get${utc}Month`]() + 1);\n case 'n':\n return mthNames[date[`get${utc}Month`]()];\n case 'd':\n return zeroPad(date[`get${utc}Date`]());\n case 'w':\n return dayNames[date[`get${utc}Day`]()];\n case 'x':\n return date[`get${utc}Day`]();\n case 'H':\n return zeroPad(date[`get${utc}Hours`]());\n case 'M':\n return zeroPad(date[`get${utc}Minutes`]());\n case 'S':\n return zeroPad(date[`get${utc}Seconds`]());\n default:\n return `%${p}`;\n }\n });\n };\n },\n};\n\n// Given an array of attribute values, convert to a key that\n// can be used in objects.\nconst flatKey = attrVals => attrVals.join(String.fromCharCode(0));\n\n/*\nData Model class\n*/\n\nclass PivotData {\n constructor(inputProps = {}) {\n const sanitizedProps = Object.keys(inputProps).reduce((acc, key) => {\n if (inputProps[key] !== undefined) {\n acc[key] = inputProps[key];\n }\n return acc;\n }, {});\n this.props = Object.assign({}, PivotData.defaultProps, sanitizedProps);\n PropTypes.checkPropTypes(\n PivotData.propTypes,\n this.props,\n 'prop',\n 'PivotData'\n );\n\n this.aggregator = this.props.aggregators[this.props.aggregatorName](\n this.props.vals\n );\n this.tree = {};\n this.rowKeys = [];\n this.colKeys = [];\n this.rowTotals = {};\n this.colTotals = {};\n this.allTotal = this.aggregator(this, [], []);\n this.sorted = false;\n\n PivotData.forEachRecord(\n this.props.data,\n this.props.derivedAttributes,\n record => {\n if (this.filter(record)) {\n this.processRecord(record);\n }\n }\n );\n }\n\n filter(record) {\n for (const k in this.props.valueFilter) {\n if (record[k] in this.props.valueFilter[k]) {\n return false;\n }\n }\n return true;\n }\n\n forEachMatchingRecord(criteria, callback) {\n return PivotData.forEachRecord(\n this.props.data,\n this.props.derivedAttributes,\n record => {\n if (!this.filter(record)) {\n return;\n }\n for (const k in criteria) {\n const v = criteria[k];\n if (v !== (k in record ? record[k] : 'null')) {\n return;\n }\n }\n callback(record);\n }\n );\n }\n\n arrSort(attrs) {\n let a;\n const sortersArr = (() => {\n const result = [];\n for (a of Array.from(attrs)) {\n result.push(getSort(this.props.sorters, a));\n }\n return result;\n })();\n return function(a, b) {\n for (const i of Object.keys(sortersArr || {})) {\n const sorter = sortersArr[i];\n const comparison = sorter(a[i], b[i]);\n if (comparison !== 0) {\n return comparison;\n }\n }\n return 0;\n };\n }\n\n sortKeys() {\n if (!this.sorted) {\n this.sorted = true;\n const v = (r, c) => this.getAggregator(r, c).value();\n switch (this.props.rowOrder) {\n case 'value_a_to_z':\n this.rowKeys.sort((a, b) => naturalSort(v(a, []), v(b, [])));\n break;\n case 'value_z_to_a':\n this.rowKeys.sort((a, b) => -naturalSort(v(a, []), v(b, [])));\n break;\n default:\n this.rowKeys.sort(this.arrSort(this.props.rows));\n }\n switch (this.props.colOrder) {\n case 'value_a_to_z':\n this.colKeys.sort((a, b) => naturalSort(v([], a), v([], b)));\n break;\n case 'value_z_to_a':\n this.colKeys.sort((a, b) => -naturalSort(v([], a), v([], b)));\n break;\n default:\n this.colKeys.sort(this.arrSort(this.props.cols));\n }\n }\n }\n\n getColKeys() {\n this.sortKeys();\n return this.colKeys;\n }\n\n getRowKeys() {\n this.sortKeys();\n return this.rowKeys;\n }\n\n processRecord(record) {\n // this code is called in a tight loop\n const colKey = [];\n const rowKey = [];\n for (const x of Array.from(this.props.cols)) {\n colKey.push(x in record ? record[x] : 'null');\n }\n for (const x of Array.from(this.props.rows)) {\n rowKey.push(x in record ? record[x] : 'null');\n }\n const flatRowKey = rowKey.join(String.fromCharCode(0));\n const flatColKey = colKey.join(String.fromCharCode(0));\n\n this.allTotal.push(record);\n\n if (rowKey.length !== 0) {\n if (!this.rowTotals[flatRowKey]) {\n this.rowKeys.push(rowKey);\n this.rowTotals[flatRowKey] = this.aggregator(this, rowKey, []);\n }\n this.rowTotals[flatRowKey].push(record);\n }\n\n if (colKey.length !== 0) {\n if (!this.colTotals[flatColKey]) {\n this.colKeys.push(colKey);\n this.colTotals[flatColKey] = this.aggregator(this, [], colKey);\n }\n this.colTotals[flatColKey].push(record);\n }\n\n if (colKey.length !== 0 && rowKey.length !== 0) {\n if (!this.tree[flatRowKey]) {\n this.tree[flatRowKey] = {};\n }\n if (!this.tree[flatRowKey][flatColKey]) {\n this.tree[flatRowKey][flatColKey] = this.aggregator(\n this,\n rowKey,\n colKey\n );\n }\n this.tree[flatRowKey][flatColKey].push(record);\n }\n }\n\n getAggregator(rowKey, colKey) {\n let agg;\n const flatRowKey = rowKey.join(String.fromCharCode(0));\n const flatColKey = colKey.join(String.fromCharCode(0));\n if (rowKey.length === 0 && colKey.length === 0) {\n agg = this.allTotal;\n } else if (rowKey.length === 0) {\n agg = this.colTotals[flatColKey];\n } else if (colKey.length === 0) {\n agg = this.rowTotals[flatRowKey];\n } else {\n agg = this.tree[flatRowKey][flatColKey];\n }\n return (\n agg || {\n value() {\n return null;\n },\n format() {\n return '';\n },\n }\n );\n }\n\n forEachTotal(callback) {\n // Process row totals\n this.getRowKeys().forEach((rowKey, i) => {\n callback([rowKey, null], i);\n });\n\n // Process column totals\n this.getColKeys().forEach((colKey, i) => {\n callback([null, colKey], i);\n });\n }\n\n forEachCell(callback) {\n this.getRowKeys().forEach(rowKey => {\n this.getColKeys().forEach(colKey => {\n const agg = this.getAggregator(rowKey, colKey);\n const value = agg.value();\n callback(value, rowKey, colKey);\n });\n });\n }\n}\n\n// can handle arrays or jQuery selections of tables\nPivotData.forEachRecord = function(input, derivedAttributes, f) {\n let addRecord, record;\n if (Object.getOwnPropertyNames(derivedAttributes).length === 0) {\n addRecord = f;\n } else {\n addRecord = function(record) {\n for (const k in derivedAttributes) {\n const derived = derivedAttributes[k](record);\n if (derived !== null) {\n record[k] = derived;\n }\n }\n return f(record);\n };\n }\n\n // if it's a function, have it call us back\n if (typeof input === 'function') {\n return input(addRecord);\n } else if (Array.isArray(input)) {\n if (Array.isArray(input[0])) {\n // array of arrays\n return (() => {\n const result = [];\n for (const i of Object.keys(input || {})) {\n const compactRecord = input[i];\n if (i > 0) {\n record = {};\n for (const j of Object.keys(input[0] || {})) {\n const k = input[0][j];\n record[k] = compactRecord[j];\n }\n result.push(addRecord(record));\n }\n }\n return result;\n })();\n }\n\n // array of objects\n return (() => {\n const result1 = [];\n for (record of Array.from(input)) {\n result1.push(addRecord(record));\n }\n return result1;\n })();\n }\n throw new Error('unknown input format');\n};\n\nPivotData.defaultProps = {\n aggregators: aggregators,\n cols: [],\n rows: [],\n vals: [],\n aggregatorName: 'Count',\n sorters: {},\n valueFilter: {},\n rowOrder: 'key_a_to_z',\n colOrder: 'key_a_to_z',\n derivedAttributes: {},\n pagination: false,\n pageSize: 20,\n page: 1,\n};\n\nPivotData.propTypes = {\n data: PropTypes.oneOfType([PropTypes.array, PropTypes.object, PropTypes.func])\n .isRequired,\n aggregatorName: PropTypes.string,\n cols: PropTypes.arrayOf(PropTypes.string),\n rows: PropTypes.arrayOf(PropTypes.string),\n vals: PropTypes.arrayOf(PropTypes.string),\n valueFilter: PropTypes.objectOf(PropTypes.objectOf(PropTypes.bool)),\n sorters: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.objectOf(PropTypes.func),\n ]),\n derivedAttributes: PropTypes.objectOf(PropTypes.func),\n rowOrder: PropTypes.oneOf(['key_a_to_z', 'value_a_to_z', 'value_z_to_a']),\n colOrder: PropTypes.oneOf(['key_a_to_z', 'value_a_to_z', 'value_z_to_a']),\n pagination: PropTypes.bool,\n pageSize: PropTypes.number,\n page: PropTypes.number,\n};\n\nexport {\n aggregatorTemplates,\n aggregators,\n derivers,\n locales,\n naturalSort,\n numberFormat,\n getSort,\n sortAs,\n flatKey,\n PivotData,\n};\n"],"mappings":"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","ignoreList":[]}
|