1 line
36 KiB
Plaintext
1 line
36 KiB
Plaintext
{"version":3,"sources":["../src/PivotTableUI.jsx"],"names":["DraggableAttribute","props","state","open","filterText","value","valueFilter","removeValuesFromFilter","name","addValuesToFilter","x","console","log","toLowerCase","trim","includes","e","stopPropagation","setValuesInFilter","Object","keys","attrValues","filter","y","values","shown","matchesFilter","bind","sort","sorter","truncatedShown","display","cursor","zIndex","moveFilterBoxToTop","setState","target","length","map","toggleValue","selectOnly","filtered","toggleFilterBox","getFilterBox","React","Component","defaultProps","propTypes","PropTypes","string","isRequired","func","objectOf","number","bool","menuLimit","Dropdown","toggle","current","r","setValue","PureComponent","PivotTableUI","unusedOrder","zIndices","maxZIndex","openDropdown","materializedInput","hideConfiguration","headerClass","stylesHeaders","materializeInput","data","nextData","newState","recordsProcessed","PivotData","forEachRecord","derivedAttributes","record","push","attr","null","command","onChange","key","sendPropUpdate","$set","attribute","reduce","v","$unset","dropdown","items","classes","group","ghostClass","preventOnFilter","sorters","numValsAllowed","aggregators","aggregatorName","numInputs","aggregatorCellOutlet","outlet","rendererName","renderers","rendererCell","isOpen","propUpdater","sortIcons","key_a_to_z","rowSymbol","colSymbol","next","value_a_to_z","value_z_to_a","aggregatorCell","rowOrder","colOrder","Array","fill","n","i","vals","hiddenAttributes","hiddenFromAggregators","$splice","unusedAttrs","rows","cols","hiddenFromDragDrop","unusedLength","horizUnused","unusedOrientationCutoff","unusedAttrsCell","makeDnDCell","order","colAttrs","colAttrsCell","rowAttrs","rowAttrsCell","outputCell","assign","PivotTable","arrayOf","object"],"mappings":"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","file":"PivotTableUI.js","sourcesContent":["import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport update from 'immutability-helper';\r\nimport {PivotData, sortAs, getSort} from './Utilities';\r\nimport PivotTable from './PivotTable';\r\nimport Sortable from 'react-sortablejs';\r\nimport Draggable from 'react-draggable';\r\n\r\n/* eslint-disable react/prop-types */\r\n// eslint can't see inherited propTypes!\r\n\r\nexport class DraggableAttribute extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {open: false, filterText: ''};\r\n }\r\n\r\n toggleValue(value) {\r\n if (value in this.props.valueFilter) {\r\n this.props.removeValuesFromFilter(this.props.name, [value]);\r\n } else {\r\n this.props.addValuesToFilter(this.props.name, [value]);\r\n }\r\n }\r\n\r\n matchesFilter(x) {\r\n console.log(' matchesFilter x ', x)\r\n return x\r\n .toLowerCase()\r\n .trim()\r\n .includes(this.state.filterText.toLowerCase().trim());\r\n }\r\n\r\n selectOnly(e, value) {\r\n e.stopPropagation();\r\n this.props.setValuesInFilter(\r\n this.props.name,\r\n Object.keys(this.props.attrValues).filter(y => y !== value)\r\n );\r\n }\r\n\r\n getFilterBox() {\r\n // const showMenu = Object.keys(this.props.attrValues).length < this.props.menuLimit;\r\n console.log(' this.props.attrValues ', this.props.attrValues)\r\n const values = Object.keys(this.props.attrValues);\r\n const shown = values\r\n .filter(this.matchesFilter.bind(this))\r\n .sort(this.props.sorter)\r\n const truncatedShown = values\r\n .filter(this.matchesFilter.bind(this))\r\n .sort(this.props.sorter)\r\n // .slice(0, this.props.menuLimit);\r\n\r\n return (\r\n <Draggable handle=\".pvtDragHandle\">\r\n <div\r\n className=\"pvtFilterBox\"\r\n style={{\r\n display: 'block',\r\n cursor: 'initial',\r\n zIndex: this.props.zIndex,\r\n }}\r\n onClick={() => this.props.moveFilterBoxToTop(this.props.name)}\r\n >\r\n <a onClick={() => this.setState({open: false})} className=\"pvtCloseX\">\r\n ×\r\n </a>\r\n <span className=\"pvtDragHandle\">☰</span>\r\n <h4>{this.props.name}</h4>\r\n\r\n {/* showMenu || <p>(too many values to show)</p> */}\r\n\r\n <p>\r\n <input\r\n type=\"text\"\r\n placeholder=\"Filter values\"\r\n className=\"pvtSearch\"\r\n value={this.state.filterText}\r\n onChange={e =>\r\n this.setState({\r\n filterText: e.target.value,\r\n })\r\n }\r\n />\r\n <br />\r\n <a\r\n role=\"button\"\r\n className=\"pvtButton\"\r\n onClick={() => {\r\n this.props.removeValuesFromFilter(\r\n this.props.name,\r\n Object.keys(this.props.attrValues).filter(\r\n this.matchesFilter.bind(this)\r\n )\r\n )\r\n }}\r\n >\r\n Select {values.length === shown.length ? 'All' : shown.length}\r\n </a>{' '}\r\n <a\r\n role=\"button\"\r\n className=\"pvtButton\"\r\n onClick={() =>\r\n this.props.addValuesToFilter(\r\n this.props.name,\r\n Object.keys(this.props.attrValues).filter(\r\n this.matchesFilter.bind(this)\r\n )\r\n )\r\n }\r\n >\r\n Deselect {values.length === shown.length ? 'All' : shown.length}\r\n </a>\r\n </p>\r\n <div className=\"pvtCheckContainer\">\r\n {truncatedShown.map(x => (\r\n <p\r\n key={x}\r\n onClick={() => this.toggleValue(x)}\r\n className={x in this.props.valueFilter ? '' : 'selected'}\r\n >\r\n <a className=\"pvtOnly\" onClick={e => this.selectOnly(e, x)}>\r\n only\r\n </a>\r\n <a className=\"pvtOnlySpacer\"> </a>\r\n\r\n {x === '' ? <em>null</em> : x}\r\n </p>\r\n ))}\r\n </div>\r\n </div>\r\n </Draggable>\r\n );\r\n }\r\n\r\n toggleFilterBox() {\r\n this.setState({open: !this.state.open});\r\n this.props.moveFilterBoxToTop(this.props.name);\r\n }\r\n\r\n render() {\r\n const filtered =\r\n Object.keys(this.props.valueFilter).length !== 0\r\n ? 'pvtFilteredAttribute'\r\n : '';\r\n return (\r\n <li data-id={this.props.name} title={this.props.name} >\r\n <span className={'pvtAttr ' + filtered}>\r\n <span className='pvtAttrTitle' >\r\n {this.props.name}\r\n </span>\r\n <span\r\n className=\"pvtTriangle\"\r\n onClick={this.toggleFilterBox.bind(this)}\r\n >\r\n {' '}\r\n ▾\r\n </span>\r\n </span>\r\n\r\n {this.state.open ? this.getFilterBox() : null}\r\n </li>\r\n );\r\n }\r\n}\r\n\r\nDraggableAttribute.defaultProps = {\r\n valueFilter: {},\r\n};\r\n\r\nDraggableAttribute.propTypes = {\r\n name: PropTypes.string.isRequired,\r\n addValuesToFilter: PropTypes.func.isRequired,\r\n removeValuesFromFilter: PropTypes.func.isRequired,\r\n attrValues: PropTypes.objectOf(PropTypes.number).isRequired,\r\n valueFilter: PropTypes.objectOf(PropTypes.bool),\r\n moveFilterBoxToTop: PropTypes.func.isRequired,\r\n sorter: PropTypes.func.isRequired,\r\n menuLimit: PropTypes.number,\r\n zIndex: PropTypes.number,\r\n};\r\n\r\nexport class Dropdown extends React.PureComponent {\r\n render() {\r\n return (\r\n <div className=\"pvtDropdown\" style={{zIndex: this.props.zIndex}}>\r\n <div\r\n onClick={e => {\r\n e.stopPropagation();\r\n this.props.toggle();\r\n }}\r\n className={\r\n 'pvtDropdownValue pvtDropdownCurrent ' +\r\n (this.props.open ? 'pvtDropdownCurrentOpen' : '')\r\n }\r\n role=\"button\"\r\n >\r\n <div className=\"pvtDropdownIcon\">{this.props.open ? '×' : '▾'}</div>\r\n {this.props.current || <span> </span>}\r\n </div>\r\n\r\n {this.props.open && (\r\n <div className=\"pvtDropdownMenu\">\r\n {this.props.values.map(r => (\r\n <div\r\n key={r}\r\n role=\"button\"\r\n onClick={e => {\r\n e.stopPropagation();\r\n if (this.props.current === r) {\r\n this.props.toggle();\r\n } else {\r\n this.props.setValue(r);\r\n }\r\n }}\r\n className={\r\n 'pvtDropdownValue ' +\r\n (r === this.props.current ? 'pvtDropdownActiveValue' : '')\r\n }\r\n >\r\n {r}\r\n </div>\r\n ))}\r\n </div>\r\n )}\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nclass PivotTableUI extends React.PureComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n unusedOrder: [],\r\n zIndices: {},\r\n maxZIndex: 1000,\r\n openDropdown: false,\r\n attrValues: {},\r\n materializedInput: [],\r\n hideConfiguration: false,\r\n headerClass: '',\r\n stylesHeaders: {}\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.materializeInput(this.props.data);\r\n }\r\n\r\n componentDidUpdate() {\r\n console.log(' componentDidUpdate ')\r\n this.materializeInput(this.props.data);\r\n }\r\n\r\n materializeInput(nextData) {\r\n console.log(' materializeInput nextData ', nextData)\r\n if (this.state.data === nextData) {\r\n return;\r\n }\r\n const newState = {\r\n data: nextData,\r\n attrValues: {},\r\n materializedInput: []\r\n };\r\n let recordsProcessed = 0;\r\n PivotData.forEachRecord(\r\n newState.data,\r\n this.props.derivedAttributes,\r\n function(record) {\r\n newState.materializedInput.push(record);\r\n for (const attr of Object.keys(record)) {\r\n if (!(attr in newState.attrValues)) {\r\n newState.attrValues[attr] = {};\r\n if (recordsProcessed > 0) {\r\n newState.attrValues[attr].null = recordsProcessed;\r\n }\r\n }\r\n }\r\n for (const attr in newState.attrValues) {\r\n const value = attr in record ? record[attr] : 'null';\r\n if (!(value in newState.attrValues[attr])) {\r\n newState.attrValues[attr][value] = 0;\r\n }\r\n newState.attrValues[attr][value]++;\r\n }\r\n recordsProcessed++;\r\n }\r\n );\r\n this.setState(newState);\r\n }\r\n\r\n sendPropUpdate(command) {\r\n this.props.onChange(update(this.props, command));\r\n }\r\n\r\n propUpdater(key) {\r\n return value => this.sendPropUpdate({[key]: {$set: value}});\r\n }\r\n\r\n setValuesInFilter(attribute, values) {\r\n this.sendPropUpdate({\r\n valueFilter: {\r\n [attribute]: {\r\n $set: values.reduce((r, v) => {\r\n r[v] = true;\r\n return r;\r\n }, {}),\r\n },\r\n },\r\n });\r\n }\r\n\r\n addValuesToFilter(attribute, values) {\r\n if (attribute in this.props.valueFilter) {\r\n this.sendPropUpdate({\r\n valueFilter: {\r\n [attribute]: values.reduce((r, v) => {\r\n r[v] = {$set: true};\r\n return r;\r\n }, {}),\r\n },\r\n });\r\n } else {\r\n this.setValuesInFilter(attribute, values);\r\n }\r\n }\r\n\r\n removeValuesFromFilter(attribute, values) {\r\n if (!this.props.valueFilter[attribute]) {\r\n return\r\n }\r\n this.sendPropUpdate({\r\n valueFilter: {[attribute]: {$unset: values}},\r\n });\r\n }\r\n\r\n moveFilterBoxToTop(attribute) {\r\n this.setState(\r\n update(this.state, {\r\n maxZIndex: {$set: this.state.maxZIndex + 1},\r\n zIndices: {[attribute]: {$set: this.state.maxZIndex + 1}},\r\n })\r\n );\r\n }\r\n\r\n isOpen(dropdown) {\r\n return this.state.openDropdown === dropdown;\r\n }\r\n\r\n makeDnDCell(items, onChange, classes) {\r\n return (\r\n <Sortable\r\n options={{\r\n group: 'shared',\r\n ghostClass: 'pvtPlaceholder',\r\n filter: '.pvtFilterBox',\r\n preventOnFilter: false,\r\n }}\r\n tag=\"td\"\r\n className={classes}\r\n onChange={onChange}\r\n >\r\n {items.map(x => (\r\n <DraggableAttribute\r\n name={x}\r\n key={x}\r\n attrValues={this.state.attrValues[x]}\r\n valueFilter={this.props.valueFilter[x] || {}}\r\n sorter={getSort(this.props.sorters, x)}\r\n menuLimit={this.props.menuLimit}\r\n setValuesInFilter={this.setValuesInFilter.bind(this)}\r\n addValuesToFilter={this.addValuesToFilter.bind(this)}\r\n moveFilterBoxToTop={this.moveFilterBoxToTop.bind(this)}\r\n removeValuesFromFilter={this.removeValuesFromFilter.bind(this)}\r\n zIndex={this.state.zIndices[x] || this.state.maxZIndex}\r\n />\r\n ))}\r\n </Sortable>\r\n );\r\n }\r\n\r\n render() {\r\n const numValsAllowed =\r\n this.props.aggregators[this.props.aggregatorName]([])().numInputs || 0;\r\n\r\n const aggregatorCellOutlet = this.props.aggregators[\r\n this.props.aggregatorName\r\n ]([])().outlet;\r\n\r\n const rendererName =\r\n this.props.rendererName in this.props.renderers\r\n ? this.props.rendererName\r\n : Object.keys(this.props.renderers)[0];\r\n\r\n const rendererCell = (\r\n <td className=\"pvtRenderers\">\r\n <Dropdown\r\n current={rendererName}\r\n values={Object.keys(this.props.renderers)}\r\n open={this.isOpen('renderer')}\r\n zIndex={this.isOpen('renderer') ? this.state.maxZIndex + 1 : 1}\r\n toggle={() =>\r\n this.setState({\r\n openDropdown: this.isOpen('renderer') ? false : 'renderer',\r\n })\r\n }\r\n setValue={this.propUpdater('rendererName')}\r\n />\r\n </td>\r\n );\r\n\r\n const sortIcons = {\r\n key_a_to_z: {\r\n rowSymbol: '↕',\r\n colSymbol: '↔',\r\n next: 'value_a_to_z',\r\n },\r\n value_a_to_z: {\r\n rowSymbol: '↓',\r\n colSymbol: '→',\r\n next: 'value_z_to_a',\r\n },\r\n value_z_to_a: {rowSymbol: '↑', colSymbol: '←', next: 'key_a_to_z'},\r\n };\r\n\r\n const aggregatorCell = (\r\n <td className=\"pvtVals\">\r\n <Dropdown\r\n current={this.props.aggregatorName}\r\n values={Object.keys(this.props.aggregators)}\r\n open={this.isOpen('aggregators')}\r\n zIndex={this.isOpen('aggregators') ? this.state.maxZIndex + 1 : 1}\r\n toggle={() =>\r\n this.setState({\r\n openDropdown: this.isOpen('aggregators') ? false : 'aggregators',\r\n })\r\n }\r\n setValue={this.propUpdater('aggregatorName')}\r\n />\r\n <a\r\n role=\"button\"\r\n className=\"pvtRowOrder\"\r\n onClick={() =>\r\n this.propUpdater('rowOrder')(sortIcons[this.props.rowOrder].next)\r\n }\r\n >\r\n {sortIcons[this.props.rowOrder].rowSymbol}\r\n </a>\r\n <a\r\n role=\"button\"\r\n className=\"pvtColOrder\"\r\n onClick={() =>\r\n this.propUpdater('colOrder')(sortIcons[this.props.colOrder].next)\r\n }\r\n >\r\n {sortIcons[this.props.colOrder].colSymbol}\r\n </a>\r\n {numValsAllowed > 0 && <br />}\r\n {new Array(numValsAllowed).fill().map((n, i) => [\r\n <Dropdown\r\n key={i}\r\n current={this.props.vals[i]}\r\n values={Object.keys(this.state.attrValues).filter(\r\n e =>\r\n !this.props.hiddenAttributes.includes(e) &&\r\n !this.props.hiddenFromAggregators.includes(e)\r\n )}\r\n open={this.isOpen(`val${i}`)}\r\n zIndex={this.isOpen(`val${i}`) ? this.state.maxZIndex + 1 : 1}\r\n toggle={() =>\r\n this.setState({\r\n openDropdown: this.isOpen(`val${i}`) ? false : `val${i}`,\r\n })\r\n }\r\n setValue={value =>\r\n this.sendPropUpdate({\r\n vals: {$splice: [[i, 1, value]]},\r\n })\r\n }\r\n />,\r\n i + 1 !== numValsAllowed ? <br key={`br${i}`} /> : null,\r\n ])}\r\n {aggregatorCellOutlet && aggregatorCellOutlet(this.props.data)}\r\n </td>\r\n );\r\n\r\n const unusedAttrs = Object.keys(this.state.attrValues)\r\n .filter(\r\n e =>\r\n !this.props.rows.includes(e) &&\r\n !this.props.cols.includes(e) &&\r\n !this.props.hiddenAttributes.includes(e) &&\r\n !this.props.hiddenFromDragDrop.includes(e)\r\n )\r\n .sort(sortAs(this.state.unusedOrder));\r\n\r\n const unusedLength = unusedAttrs.reduce((r, e) => r + e.length, 0);\r\n const horizUnused = unusedLength < this.props.unusedOrientationCutoff;\r\n\r\n const unusedAttrsCell = this.makeDnDCell(\r\n unusedAttrs,\r\n order => this.setState({unusedOrder: order}),\r\n `pvtAxisContainer pvtUnused ${\r\n horizUnused ? 'pvtHorizList' : 'pvtVertList'\r\n }`\r\n );\r\n\r\n const colAttrs = this.props.cols.filter(\r\n e =>\r\n !this.props.hiddenAttributes.includes(e) &&\r\n !this.props.hiddenFromDragDrop.includes(e)\r\n );\r\n\r\n const colAttrsCell = this.makeDnDCell(\r\n colAttrs,\r\n this.propUpdater('cols'),\r\n 'pvtAxisContainer pvtHorizList pvtCols'\r\n );\r\n\r\n const rowAttrs = this.props.rows.filter(\r\n e =>\r\n !this.props.hiddenAttributes.includes(e) &&\r\n !this.props.hiddenFromDragDrop.includes(e)\r\n );\r\n const rowAttrsCell = this.makeDnDCell(\r\n rowAttrs,\r\n this.propUpdater('rows'),\r\n 'pvtAxisContainer pvtVertList pvtRows'\r\n );\r\n const outputCell = (\r\n <td className=\"pvtOutput\">\r\n <PivotTable\r\n {...update(this.props, {\r\n data: {$set: this.state.materializedInput},\r\n })}\r\n />\r\n </td>\r\n );\r\n\r\n if (this.props.hideConfiguration) {\r\n return (\r\n <table className=\"pvtUi\">\r\n <tbody onClick={() => this.setState({openDropdown: false})}>\r\n <tr>\r\n {outputCell}\r\n </tr>\r\n </tbody>\r\n </table>\r\n );\r\n }\r\n\r\n if (horizUnused) {\r\n return (\r\n <table className=\"pvtUi\">\r\n { this.props.hideConfiguration &&\r\n <tbody onClick={() => this.setState({openDropdown: false})}>\r\n <tr>\r\n {outputCell}\r\n </tr>\r\n </tbody>\r\n }\r\n { !this.props.hideConfiguration &&\r\n <tbody onClick={() => this.setState({openDropdown: false})}>\r\n <tr>\r\n {rendererCell}\r\n {unusedAttrsCell}\r\n </tr>\r\n <tr>\r\n {aggregatorCell}\r\n {colAttrsCell}\r\n </tr>\r\n <tr>\r\n {rowAttrsCell}\r\n {outputCell}\r\n </tr>\r\n </tbody>\r\n }\r\n </table>\r\n );\r\n }\r\n\r\n return (\r\n <table className=\"pvtUi\">\r\n { this.props.hideConfiguration &&\r\n <tbody onClick={() => this.setState({openDropdown: false})}>\r\n <tr>\r\n {outputCell}\r\n </tr>\r\n </tbody>\r\n }\r\n { !this.props.hideConfiguration &&\r\n <tbody onClick={() => this.setState({openDropdown: false})}>\r\n <tr>\r\n {rendererCell}\r\n {aggregatorCell}\r\n {colAttrsCell}\r\n </tr>\r\n <tr>\r\n {unusedAttrsCell}\r\n {rowAttrsCell}\r\n {outputCell}\r\n </tr>\r\n </tbody>\r\n }\r\n </table>\r\n );\r\n }\r\n}\r\n\r\nPivotTableUI.propTypes = Object.assign({}, PivotTable.propTypes, {\r\n onChange: PropTypes.func.isRequired,\r\n hiddenAttributes: PropTypes.arrayOf(PropTypes.string),\r\n hiddenFromAggregators: PropTypes.arrayOf(PropTypes.string),\r\n hiddenFromDragDrop: PropTypes.arrayOf(PropTypes.string),\r\n unusedOrientationCutoff: PropTypes.number,\r\n menuLimit: PropTypes.number,\r\n hideConfiguration: PropTypes.bool,\r\n headerClass: PropTypes.string,\r\n stylesHeaders: PropTypes.object\r\n});\r\n\r\nPivotTableUI.defaultProps = Object.assign({}, PivotTable.defaultProps, {\r\n hiddenAttributes: [],\r\n hiddenFromAggregators: [],\r\n hiddenFromDragDrop: [],\r\n unusedOrientationCutoff: 85,\r\n menuLimit: 500,\r\n hideConfiguration: true\r\n});\r\n\r\nexport default PivotTableUI;\r\n"]} |