{"_id":"react-table","_rev":"251-909312b4e9fc33e573e88de6eace0dd6","name":"react-table","description":"Hooks for building lightweight, fast and extendable datagrids for React","dist-tags":{"latest":"7.8.0","next":"7.0.0-beta.20","v6":"6.11.4"},"versions":{"0.0.5":{"name":"react-table","version":"0.0.5","description":"A simple sortable table component for react","main":"index.js","scripts":{"start":"gulp","test":"jest","build":"gulp build:release"},"author":{"name":"Nick Tomlin"},"license":"ISC","repository":{"type":"git","url":"https://github.com/nicktomlin/react-table.git"},"devDependencies":{"browserify":"^5.10.0","connect":"^2.25.7","connect-route":"^0.1.4","gulp":"^3.8.7","gulp-livereload":"^2.1.1","gulp-rename":"^1.2.0","gulp-streamify":"0.0.5","gulp-uglify":"^0.3.2","gulp-util":"^3.0.0","jest":"^0.1.37","jest-cli":"^0.1.18","jshint":"^2.5.4","lodash":"^2.4.1","mocha":"^1.21.4","morgan":"^1.2.3","reactify":"^0.14.0","serve-static":"^1.5.3","superagent":"^0.18.2","vinyl-source-stream":"^0.1.1","watchify":"^1.0.2"},"dependencies":{"react":"^0.11.1"},"jest":{"testDirectoryName":"unit","testPathDirs":["<rootDir>/test"],"unmockedModulePathPatterns":["<rootDir>/node_modules/react","<rootDir>/node_modules/lodash","<rootDir>/test/unit/spec-helper","<rootDir>/test/unit/data"]},"gitHead":"c076285c0f169d3965258c1ce2ab5f9e894b3b6f","bugs":{"url":"https://github.com/nicktomlin/react-table/issues"},"homepage":"https://github.com/nicktomlin/react-table","_id":"react-table@0.0.5","_shasum":"6bd093c1fb61ca3dda5ae16a425ec53c3fe962be","_from":".","_npmVersion":"1.4.21","_npmUser":{"name":"nicktomlin","email":"nick.tomlin@gmail.com"},"maintainers":[{"name":"nicktomlin","email":"nick.tomlin@gmail.com"}],"dist":{"shasum":"6bd093c1fb61ca3dda5ae16a425ec53c3fe962be","tarball":"https://registry.npmjs.org/react-table/-/react-table-0.0.5.tgz","integrity":"sha512-AwqUUOQaedH9D+mw9G89C49df1E8k7VDsdGq9DMTrmwWWA0db/XnL4qjPmJIuvZ5wLKBPSPI7oNbWIBHoT01YQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCPuYUu4Q51MS90Z1rtNdEW8xItlRmCHs5AUrfJJWOGtQIgETVYT8NUwdLJaJ/rxfBEVzgSiP7sOURbi9LefO3kcps="}]},"directories":{}},"1.0.0":{"name":"react-table","version":"1.0.0","description":"A simple sortable table component for react","main":"index.js","scripts":{"start":"gulp","test":"jest","build":"gulp build:release"},"author":{"name":"Nick Tomlin"},"license":"ISC","repository":{"type":"git","url":"http://github.com/nicktomlin/react-table"},"devDependencies":{"browserify":"^5.10.0","connect":"^2.25.7","connect-route":"^0.1.4","gulp":"^3.8.7","gulp-livereload":"^2.1.1","gulp-rename":"^1.2.0","gulp-streamify":"0.0.5","gulp-uglify":"^0.3.2","gulp-util":"^3.0.0","jest":"^0.1.18","jest-cli":"^0.1.18","jshint":"^2.5.4","lodash":"^2.4.1","mocha":"^1.21.4","morgan":"^1.2.3","reactify":"^0.17.1","serve-static":"^1.5.3","superagent":"^0.18.2","vinyl-source-stream":"^0.1.1","watchify":"^1.0.2"},"browserify":{"transform":["reactify"]},"dependencies":{"react":"^0.12.1"},"jest":{"testDirectoryName":"unit","testPathDirs":["<rootDir>/test"],"unmockedModulePathPatterns":["<rootDir>/node_modules/react","<rootDir>/node_modules/lodash","<rootDir>/test/unit/spec-helper","<rootDir>/test/unit/data"]},"gitHead":"a83becde06fa4466123634a43f105d0f46ffb0e4","bugs":{"url":"https://github.com/nicktomlin/react-table/issues"},"homepage":"https://github.com/nicktomlin/react-table","_id":"react-table@1.0.0","_shasum":"3ba9c45d7f0871495bb6f14ab5bc2da79a01b91c","_from":".","_npmVersion":"2.1.11","_nodeVersion":"0.10.33","_npmUser":{"name":"nicktomlin","email":"nick.tomlin@gmail.com"},"maintainers":[{"name":"nicktomlin","email":"nick.tomlin@gmail.com"}],"dist":{"shasum":"3ba9c45d7f0871495bb6f14ab5bc2da79a01b91c","tarball":"https://registry.npmjs.org/react-table/-/react-table-1.0.0.tgz","integrity":"sha512-XzOnGeGVW2xLRrjmzmSEwtwPLRKTCMmlBTclyK6j6NPBDp4LB97eVv2QEZK0jj9Z5jGyp/VITECR4s1kBK72lg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFDlFYqBwCZRhbIyRFGnp2zPim94hDBo/Xv5wwo0y/W5AiEAhPdySd7S9X07nJ7zmEWIImLbeXOdccMOAn4nwDBgHeg="}]},"directories":{}},"1.1.0":{"name":"react-table","version":"1.1.0","description":"A simple sortable table component for react","main":"index.js","scripts":{"start":"gulp","test":"jest","build":"gulp build:release"},"author":{"name":"Nick Tomlin"},"license":"ISC","repository":{"type":"git","url":"http://github.com/nicktomlin/react-table"},"devDependencies":{"browserify":"^5.10.0","connect":"^2.25.7","connect-route":"^0.1.4","gulp":"^3.8.7","gulp-livereload":"^2.1.1","gulp-rename":"^1.2.0","gulp-streamify":"0.0.5","gulp-uglify":"^0.3.2","gulp-util":"^3.0.0","jest":"^0.1.18","jest-cli":"^0.1.18","jshint":"^2.5.4","lodash":"^2.4.1","mocha":"^1.21.4","morgan":"^1.2.3","reactify":"^0.17.1","serve-static":"^1.5.3","superagent":"^0.18.2","vinyl-source-stream":"^0.1.1","watchify":"^1.0.2"},"browserify":{"transform":["reactify"]},"dependencies":{"react":"^0.12.1"},"jest":{"testDirectoryName":"unit","testPathDirs":["<rootDir>/test"],"unmockedModulePathPatterns":["<rootDir>/node_modules/react","<rootDir>/node_modules/lodash","<rootDir>/test/unit/spec-helper","<rootDir>/test/unit/data"]},"keywords":["react","react-component","table","sortable-table","sortable"],"gitHead":"3b2a4749764ec75785ac5a6075855d5a2575a7c3","bugs":{"url":"https://github.com/nicktomlin/react-table/issues"},"homepage":"https://github.com/nicktomlin/react-table","_id":"react-table@1.1.0","_shasum":"05a858ae1cea48afaa4cc42ece076cb13d417235","_from":".","_npmVersion":"2.1.11","_nodeVersion":"0.10.33","_npmUser":{"name":"nicktomlin","email":"nick.tomlin@gmail.com"},"maintainers":[{"name":"nicktomlin","email":"nick.tomlin@gmail.com"}],"dist":{"shasum":"05a858ae1cea48afaa4cc42ece076cb13d417235","tarball":"https://registry.npmjs.org/react-table/-/react-table-1.1.0.tgz","integrity":"sha512-QMmxlEFsW2dt3sz5WZf585TOZZ/tY0DfrVdR+ooDu9nvN+ZDmvcc7ePJZ9iY3qxHavq/hZzGNSmuO+9OH2pAFA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBj91LvHRM93pTwzZkfAR7pwU2Z8MrL7dpj4YeEa82irAiBpHcwwa9XpCaBstX9LFtOwuj6cQJ1DnVgEQ32AxMSL3Q=="}]},"directories":{}},"1.2.0":{"name":"react-table","version":"1.2.0","description":"A simple sortable table component for react","main":"index.js","scripts":{"start":"gulp","test":"jest","build":"gulp build:release"},"author":{"name":"Nick Tomlin"},"license":"ISC","repository":{"type":"git","url":"http://github.com/nicktomlin/react-table"},"devDependencies":{"browserify":"^5.10.0","browserify-shim":"^3.8.2","connect":"^2.25.7","connect-route":"^0.1.4","gulp":"^3.8.7","gulp-livereload":"^2.1.1","gulp-rename":"^1.2.0","gulp-streamify":"0.0.5","gulp-uglify":"^0.3.2","gulp-util":"^3.0.0","jest":"^0.1.18","jest-cli":"^0.1.18","jshint":"^2.5.4","lodash":"^2.4.1","mocha":"^1.21.4","morgan":"^1.2.3","reactify":"^0.17.1","serve-static":"^1.5.3","superagent":"^0.18.2","vinyl-source-stream":"^0.1.1","watchify":"^1.0.2"},"browserify":{"transform":["reactify"]},"browserify-shim":{"react":"global:React"},"dependencies":{"react":"^0.12.1"},"jest":{"testDirectoryName":"unit","testPathDirs":["<rootDir>/test"],"unmockedModulePathPatterns":["<rootDir>/node_modules/react","<rootDir>/node_modules/lodash","<rootDir>/test/unit/spec-helper","<rootDir>/test/unit/data"]},"keywords":["react","react-component","table","sortable-table","sortable"],"gitHead":"a3b5a47f712b5048935f60009463591bf34d4f35","bugs":{"url":"https://github.com/nicktomlin/react-table/issues"},"homepage":"https://github.com/nicktomlin/react-table","_id":"react-table@1.2.0","_shasum":"fa97e53cb8bc8b936d10b5d765d6d199f44f0fce","_from":".","_npmVersion":"2.1.11","_nodeVersion":"0.10.33","_npmUser":{"name":"nicktomlin","email":"nick.tomlin@gmail.com"},"maintainers":[{"name":"nicktomlin","email":"nick.tomlin@gmail.com"}],"dist":{"shasum":"fa97e53cb8bc8b936d10b5d765d6d199f44f0fce","tarball":"https://registry.npmjs.org/react-table/-/react-table-1.2.0.tgz","integrity":"sha512-90DsmWqT4/WPNNQNmSQk2oWUCtIo7C1O3J8NAnQc08TeNz+kTzqf8qOf9rzrZdv38UfU94y/1WoGRlS/WOK23w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEpS8j/Qde91M60iyuqkAYlkCVU0i+ymuwjPOTXwQxu9AiAexeS6bnHO4/ZpCdyI4mSo5eW23SSPIIf/x6bgsipw4w=="}]},"directories":{}},"1.3.0":{"name":"react-table","version":"1.3.0","description":"A simple sortable table component for react","main":"index.js","scripts":{"start":"gulp","test":"jest","build":"gulp build:release"},"author":{"name":"Nick Tomlin"},"license":"ISC","repository":{"type":"git","url":"http://github.com/nicktomlin/react-table"},"devDependencies":{"browserify":"^5.10.0","browserify-shim":"^3.8.2","connect":"^2.25.7","connect-route":"^0.1.4","gulp":"^3.8.7","gulp-livereload":"^2.1.1","gulp-rename":"^1.2.0","gulp-streamify":"0.0.5","gulp-uglify":"^0.3.2","gulp-util":"^3.0.0","jest":"^0.1.18","jest-cli":"^0.1.18","jshint":"^2.5.4","lodash":"^2.4.1","mocha":"^1.21.4","morgan":"^1.2.3","reactify":"^0.17.1","serve-static":"^1.5.3","superagent":"^0.18.2","vinyl-source-stream":"^0.1.1","watchify":"^1.0.2"},"browserify":{"transform":["reactify"]},"browserify-shim":{"react":"global:React"},"dependencies":{"react":"^0.12.1"},"jest":{"testDirectoryName":"unit","testPathDirs":["<rootDir>/test"],"unmockedModulePathPatterns":["<rootDir>/node_modules/react","<rootDir>/node_modules/lodash","<rootDir>/test/unit/spec-helper","<rootDir>/test/unit/data"]},"keywords":["react","react-component","table","sortable-table","sortable"],"gitHead":"e7ea7f8569686d64b92fbb67c8676749f5f47496","bugs":{"url":"https://github.com/nicktomlin/react-table/issues"},"homepage":"https://github.com/nicktomlin/react-table","_id":"react-table@1.3.0","_shasum":"3f3792b4e130f6d7942426908ccc694912d388a6","_from":".","_npmVersion":"2.1.11","_nodeVersion":"0.10.33","_npmUser":{"name":"nicktomlin","email":"nick.tomlin@gmail.com"},"maintainers":[{"name":"nicktomlin","email":"nick.tomlin@gmail.com"}],"dist":{"shasum":"3f3792b4e130f6d7942426908ccc694912d388a6","tarball":"https://registry.npmjs.org/react-table/-/react-table-1.3.0.tgz","integrity":"sha512-/Tk+0seiWy4nl76f1WZxEDK7OSFtZdZYaMnYFH+XAiXX+vQ4muy5ZS3j5M5+bS/dAGbjIshMpQvmPQSKL+hLOw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDClyTxO9niXcUCJVxhb2JpgAKM+s+0k+n7HYXtIVaCYQIgX2q9Jfra0X6xt0r4MlcgWyBlCjbOO94NYdY/Mu30+wE="}]},"directories":{}},"2.0.0":{"name":"react-table","version":"2.0.0","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"react-table.js","scripts":{"build:js":"rm -rf react-table.js && browserify src/index.js -s reactTable -u react -t babelify -g uglifyify -o react-table.js","build:css":"rm -rf react-table.css && stylus src/index.styl --use ./node_modules/nib/lib/nib.js --compress -o react-table.css","watch":"onchange 'src/**' -i -- npm-run-all build:*","prepublish":"npm-run-all build:*"},"dependencies":{"classnames":"^2.2.5","lodash":"^4.16.4","react":"^15.3.1"},"devDependencies":{"babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-preset-es2015":"6.14.0","babel-preset-react":"6.11.1","babel-preset-stage-2":"6.13.0","babelify":"^7.3.0","browserify":"13.1.0","onchange":"^3.0.2","react":"15.3.1","standard":"8.0.0","stylus":"^0.54.5","uglifyify":"3.0.3"},"standard":{"parser":"babel-eslint","ignore":["lib","react-table.js"]},"babel":{"presets":["es2015","stage-2","react"]},"gitHead":"98dd8a9784b5de7fdd7b980a607d42d39334b336","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@2.0.0","_shasum":"5e7c989dbaaa5cebaa0a5b7e9a56f30bbc02b737","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.3.1","_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"dist":{"shasum":"5e7c989dbaaa5cebaa0a5b7e9a56f30bbc02b737","tarball":"https://registry.npmjs.org/react-table/-/react-table-2.0.0.tgz","integrity":"sha512-2N66sD0TneEPhltCCcU7CpN6oKiQJTOFz89cU/Bb3xwLsAASBo2cuH2PesT8juyxHY+vfCEJS2D/TMgkUu772A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCGxOhNuLt3iO/pp2N6W0RiS8QdIt86j7vqzGzaoI+imwIgcxY4jTgUIoiNOXi1VvvniK7cPQFVjrjnntWGFLUtO7o="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/react-table-2.0.0.tgz_1477157128496_0.11455119564197958"},"directories":{}},"2.0.1":{"name":"react-table","version":"2.0.1","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"react-table.js","scripts":{"build:js":"rm -rf react-table.js && browserify src/index.js -s reactTable -u react -t babelify -g uglifyify -o react-table.js","build:css":"rm -rf react-table.css && stylus src/index.styl --use ./node_modules/nib/lib/nib.js --compress -o react-table.css","watch":"onchange 'src/**' -i -- npm-run-all build:*","prepublish":"npm-run-all build:*"},"dependencies":{"classnames":"^2.2.5","lodash":"^4.16.4","react":"^15.3.1"},"devDependencies":{"babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-preset-es2015":"6.14.0","babel-preset-react":"6.11.1","babel-preset-stage-2":"6.13.0","babelify":"^7.3.0","browserify":"13.1.0","onchange":"^3.0.2","react":"15.3.1","standard":"8.0.0","stylus":"^0.54.5","uglifyify":"3.0.3"},"standard":{"parser":"babel-eslint","ignore":["lib","react-table.js"]},"babel":{"presets":["es2015","stage-2","react"]},"gitHead":"260ab45deccda0568ab1be741fec2ed40297d37d","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@2.0.1","_shasum":"4f7738fc5ef448be33bda00ef8edda6af5f8731c","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.3.1","_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"dist":{"shasum":"4f7738fc5ef448be33bda00ef8edda6af5f8731c","tarball":"https://registry.npmjs.org/react-table/-/react-table-2.0.1.tgz","integrity":"sha512-FrAOA7SIqvc06ZmAwtBXnhdp85Z97KWHSMn0g8hxcIvq1RZoplcB9kEUuRKbb9ThKeEuhki3kVA6TSzjZ2szDA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCmf39Uyextb9O+r8UhXY/ZhIRVCo1xGhh7fVAl+/CtAgIhALFq3FS388ELM41zO3XZDdRBi4Dja25ZqhY/3qlL876I"}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/react-table-2.0.1.tgz_1477158985432_0.9154492795933038"},"directories":{}},"2.1.0":{"name":"react-table","version":"2.1.0","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"react-table.js","scripts":{"build:js":"rm -rf react-table.js && browserify src/index.js -s reactTable -u react -t babelify -g uglifyify -o react-table.js","build:css":"rm -rf react-table.css && stylus src/index.styl --use ./node_modules/nib/lib/nib.js --compress -o react-table.css","watch":"onchange 'src/**' -i -- npm-run-all build:*","test":"standard","prepublish":"npm-run-all build:*"},"dependencies":{"classnames":"^2.2.5","lodash":"^4.16.4","react":"^15.3.1"},"devDependencies":{"babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-preset-es2015":"6.14.0","babel-preset-react":"6.11.1","babel-preset-stage-2":"6.13.0","babelify":"^7.3.0","browserify":"13.1.0","nib":"^1.1.2","npm-run-all":"^3.1.1","onchange":"^3.0.2","standard":"8.0.0","stylus":"^0.54.5","uglifyify":"3.0.3"},"standard":{"parser":"babel-eslint","ignore":["node_modules","dist","example","react-table.js"]},"babel":{"presets":["es2015","stage-2","react"]},"gitHead":"1f943ffe2591ac03eeb3474e6fb71a5d68ed8b5f","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@2.1.0","_shasum":"15cfeb2d8f5325117826b75eda7ce5c4a25b71e7","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.3.1","_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"dist":{"shasum":"15cfeb2d8f5325117826b75eda7ce5c4a25b71e7","tarball":"https://registry.npmjs.org/react-table/-/react-table-2.1.0.tgz","integrity":"sha512-T4toLKuwEAWDzjf1V/fvQJoU51Y+ARbpSWdZuRPwNdw5AU3Ee4fhkIfXo6yJEUltOGmDBf/tDXIYHDrLj2IVyw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCx+MsYugvnYvWe/dK9fOcsMqh3UJYArSS/Z0vniPx7ygIgJ1gSb7hDCAcTKa+pfxy2oHSHvzSnuc+Ys6sje9LUgIw="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/react-table-2.1.0.tgz_1477322386368_0.0818131766282022"},"directories":{}},"2.1.1":{"name":"react-table","version":"2.1.1","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","scripts":{"build:node":"babel src --out-dir lib --source-maps inline","build:css":"rm -rf react-table.css && stylus src/index.styl --use ./node_modules/nib/lib/nib.js --compress -o react-table.css","watch":"onchange 'src/**' -i -- npm-run-all build:*","test":"standard","umd":"rm -rf react-table.js && browserify lib/index.js -s reactTable -x react -t babelify -g uglifyify -o react-table.js","prepublish":"npm-run-all build:* && npm run umd"},"dependencies":{"classnames":"^2.2.5"},"peerDependencies":{"react":"^15.3.1"},"devDependencies":{"babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-preset-es2015":"6.14.0","babel-preset-react":"6.11.1","babel-preset-stage-2":"6.13.0","babelify":"^7.3.0","browserify":"13.1.0","nib":"^1.1.2","npm-run-all":"^3.1.1","onchange":"^3.0.2","standard":"8.0.0","stylus":"^0.54.5","uglifyify":"3.0.3"},"browserify-shim":{"react":"global:React"},"standard":{"parser":"babel-eslint","ignore":["node_modules","dist","example","react-table.js"]},"babel":{"presets":["es2015","stage-2","react"]},"gitHead":"7a941b880f7d9f624a17a5e43c9c1d10556687ed","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@2.1.1","_shasum":"163a025f608f038cfdcc7d998dee49d55ef665f4","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.3.1","_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"dist":{"shasum":"163a025f608f038cfdcc7d998dee49d55ef665f4","tarball":"https://registry.npmjs.org/react-table/-/react-table-2.1.1.tgz","integrity":"sha512-9XHhticTzpn/3QGXYnkZzsOCAtliwFJxnTriIYONBaZ9chILnFw0NJwnvWsJN6qJT7oceh+9Vja5Ed3HdJkuww==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD+1mZVXqn3k6KIO+Ms2Kb+tddwLcK0YCtu6Rk6xWNW8AIgcsnYlp6rP5Bk5xegnxA0JteNy1+P6lWxXr+kVOT75B8="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/react-table-2.1.1.tgz_1477436664294_0.7722585704177618"},"directories":{}},"2.1.2":{"name":"react-table","version":"2.1.2","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","scripts":{"build:node":"babel src --out-dir lib --source-maps inline","build:css":"rm -rf react-table.css && stylus src/index.styl --use ./node_modules/nib/lib/nib.js --compress -o react-table.css","watch":"onchange 'src/**' -i -- npm-run-all build:*","test":"standard","umd":"rm -rf react-table.js && browserify lib/index.js -s reactTable -x react -t babelify -g uglifyify -o react-table.js","prepublish":"npm-run-all build:* && npm run umd"},"dependencies":{"classnames":"^2.2.5"},"peerDependencies":{"react":"^15.3.1"},"devDependencies":{"babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-preset-es2015":"6.14.0","babel-preset-react":"6.11.1","babel-preset-stage-2":"6.13.0","babelify":"^7.3.0","browserify":"13.1.0","nib":"^1.1.2","npm-run-all":"^3.1.1","onchange":"^3.0.2","standard":"8.0.0","stylus":"^0.54.5","uglifyify":"3.0.3"},"browserify-shim":{"react":"global:React"},"standard":{"parser":"babel-eslint","ignore":["node_modules","dist","lib","example","react-table.js"]},"babel":{"presets":["es2015","stage-2","react"]},"gitHead":"8bff135119b53e44e2f4758d34fc8a5dfd7da998","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@2.1.2","_shasum":"382fc281e827ade567189ec4d64eda38ee3589fc","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.3.1","_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"dist":{"shasum":"382fc281e827ade567189ec4d64eda38ee3589fc","tarball":"https://registry.npmjs.org/react-table/-/react-table-2.1.2.tgz","integrity":"sha512-VRqqoAQRT1WbVHpg7IfHBTQn9L1Vr+b/CoALxnVKOLM4P8n9QEeMIbOEhChq/xH05yYBT677qMqWVAuK1wvBSQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDNjmL4n6SiHGrpG41Co187+WfW1Es19rHGaFGELUCqagIhAKrqnt+g/MNocSqdDP2VboFTqI2MqAL4FtXIAibcqf06"}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/react-table-2.1.2.tgz_1477460248955_0.2016649858560413"},"directories":{}},"2.1.3":{"name":"react-table","version":"2.1.3","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","scripts":{"build:node":"babel src --out-dir lib --source-maps inline","build:css":"rm -rf react-table.css && stylus src/index.styl --use ./node_modules/nib/lib/nib.js --compress -o react-table.css","watch":"onchange 'src/**' -i -- npm-run-all build:*","test":"standard","umd":"rm -rf react-table.js && browserify lib/index.js -s reactTable -x react -t babelify -g uglifyify -o react-table.js","prepublish":"npm-run-all build:* && npm run umd"},"dependencies":{"classnames":"^2.2.5"},"peerDependencies":{"react":"^15.3.1"},"devDependencies":{"babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-preset-es2015":"6.14.0","babel-preset-react":"6.11.1","babel-preset-stage-2":"6.13.0","babelify":"^7.3.0","browserify":"13.1.0","nib":"^1.1.2","npm-run-all":"^3.1.1","onchange":"^3.0.2","standard":"8.0.0","stylus":"^0.54.5","uglifyify":"3.0.3"},"browserify-shim":{"react":"global:React"},"standard":{"parser":"babel-eslint","ignore":["node_modules","dist","lib","example","react-table.js"]},"babel":{"presets":["es2015","stage-2","react"]},"gitHead":"1fef30311c65215efd8425ee9a7fc062d69b10d3","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@2.1.3","_shasum":"2e1aa9b59473a01809220b00637c0d9e7dfcad39","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.3.1","_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"dist":{"shasum":"2e1aa9b59473a01809220b00637c0d9e7dfcad39","tarball":"https://registry.npmjs.org/react-table/-/react-table-2.1.3.tgz","integrity":"sha512-dp/rdgyTLfvrq16R46bh6mHJ8QGydHN1qe//4Xmxo5SF6kQ17+AGsrF40qX3n6NR72kOpNPtoIuJRmgdVE30fA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCxAJQodN7/Nsgihl5j7w+QyRjRSDcnnJ7vVT7Ahl0dgAIgJl4q9ZDMaq7aRpEMPcElrkG0E+rh29O188Pt//3aoeM="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/react-table-2.1.3.tgz_1477464249857_0.7028749068267643"},"directories":{}},"2.2.0":{"name":"react-table","version":"2.2.0","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","scripts":{"build:node":"babel src --out-dir lib --source-maps inline","build:css":"rm -rf react-table.css && stylus src/index.styl --use ./node_modules/nib/lib/nib.js --compress -o react-table.css","watch":"onchange 'src/**' -i -- npm-run-all build:*","test":"standard","umd":"rm -rf react-table.js && browserify lib/index.js -s reactTable -x react -t babelify -g uglifyify -o react-table.js","prepublish":"npm-run-all build:* && npm run umd","postpublish":"git push --tags"},"dependencies":{"classnames":"^2.2.5"},"peerDependencies":{"react":"^15.3.1"},"devDependencies":{"babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-preset-es2015":"6.14.0","babel-preset-react":"6.11.1","babel-preset-stage-2":"6.13.0","babelify":"^7.3.0","browserify":"13.1.0","nib":"^1.1.2","npm-run-all":"^3.1.1","onchange":"^3.0.2","standard":"8.0.0","stylus":"^0.54.5","uglifyify":"3.0.3"},"browserify-shim":{"react":"global:React"},"standard":{"parser":"babel-eslint","ignore":["node_modules","dist","lib","example","react-table.js"]},"babel":{"presets":["es2015","stage-2","react"]},"gitHead":"085616d85867a4b6d2c1b0a51ef2426ecfd4204a","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@2.2.0","_shasum":"cf24b05ac1ad3f165e0dd83847a4e14ee71866f6","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.3.1","_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"dist":{"shasum":"cf24b05ac1ad3f165e0dd83847a4e14ee71866f6","tarball":"https://registry.npmjs.org/react-table/-/react-table-2.2.0.tgz","integrity":"sha512-X4BinM3+J9/hZwQut0fiJNpADGrZe48Y2s5q9PHWQp9kvH2M6k4s95voyHvMv8fUbISgNVGE3HYV6lMRqi3UQw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCpLekL1wqDTK9WMLiZKvLY17q+EYp/hhe9cbRNE4mrwwIhAJ2+/pBfAfOHtPXw+eUC+/hZPwzDXKWE2tW5vvPUXBgX"}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/react-table-2.2.0.tgz_1477530598262_0.6291637616232038"},"directories":{}},"2.2.1":{"name":"react-table","version":"2.2.1","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","scripts":{"build:node":"babel src --out-dir lib --source-maps inline","build:css":"rm -rf react-table.css && stylus src/index.styl --use ./node_modules/nib/lib/nib.js --compress -o react-table.css","watch":"onchange 'src/**' -i -- npm-run-all build:*","test":"standard","umd":"rm -rf react-table.js && browserify lib/index.js -s reactTable -x react -t babelify -g uglifyify -o react-table.js","prepublish":"npm-run-all build:* && npm run umd","postpublish":"git push --tags"},"dependencies":{"classnames":"^2.2.5"},"peerDependencies":{"react":"^15.3.1"},"devDependencies":{"babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-preset-es2015":"6.14.0","babel-preset-react":"6.11.1","babel-preset-stage-2":"6.13.0","babelify":"^7.3.0","browserify":"13.1.0","nib":"^1.1.2","npm-run-all":"^3.1.1","onchange":"^3.0.2","standard":"8.0.0","stylus":"^0.54.5","uglifyify":"3.0.3"},"browserify-shim":{"react":"global:React"},"standard":{"parser":"babel-eslint","ignore":["node_modules","dist","lib","example","react-table.js"]},"babel":{"presets":["es2015","stage-2","react"]},"gitHead":"3b18e8c8c1a74c4669eb1b399bb3af5e23572166","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@2.2.1","_shasum":"2eef9ef8b6acf4c7456b87e2b73ada19f7ca8ee7","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.3.1","_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"dist":{"shasum":"2eef9ef8b6acf4c7456b87e2b73ada19f7ca8ee7","tarball":"https://registry.npmjs.org/react-table/-/react-table-2.2.1.tgz","integrity":"sha512-a6g+IbhoI5+CjlZzVq3bPTVPb7n/Nggm4YTuKjDHi2DkYofyLjWsHAD2npoW9oFP9rKadXoGpJot9R810OY7BA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQClUwGrF3piRScq+f+lxu4JTJUcypqD8qSLVmtdB97ceAIhAOlvA+riR3sL8C2RpZfdqCNw811Wtw5AXGL3Ea2Xsen+"}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/react-table-2.2.1.tgz_1477531162107_0.20111028058454394"},"directories":{}},"2.2.2":{"name":"react-table","version":"2.2.2","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","files":["lib/","react-table.js","react-table.css","media/*.png"],"scripts":{"build:node":"babel src --out-dir lib --source-maps inline","build:css":"rm -rf react-table.css && stylus src/index.styl --use ./node_modules/nib/lib/nib.js --compress -o react-table.css","watch":"onchange 'src/**' -i -- npm-run-all build:*","test":"standard","umd":"rm -rf react-table.js && browserify lib/index.js -s reactTable -x react -t babelify -g uglifyify -o react-table.js","prepublish":"npm-run-all build:* && npm run umd","postpublish":"git push --tags"},"dependencies":{"classnames":"^2.2.5"},"peerDependencies":{"react":"^15.3.1"},"devDependencies":{"babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-preset-es2015":"6.14.0","babel-preset-react":"6.11.1","babel-preset-stage-2":"6.13.0","babelify":"^7.3.0","browserify":"13.1.0","nib":"^1.1.2","npm-run-all":"^3.1.1","onchange":"^3.0.2","standard":"8.0.0","stylus":"^0.54.5","uglifyify":"3.0.3"},"browserify-shim":{"react":"global:React"},"standard":{"parser":"babel-eslint","ignore":["node_modules","dist","lib","example","react-table.js"]},"babel":{"presets":["es2015","stage-2","react"]},"gitHead":"e8146b5d144a90b79ff687b0ba907599431f4662","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@2.2.2","_shasum":"fdb04d0a630433e1dacdfed0a6e7dcc15e1e3c7e","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.3.1","_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"dist":{"shasum":"fdb04d0a630433e1dacdfed0a6e7dcc15e1e3c7e","tarball":"https://registry.npmjs.org/react-table/-/react-table-2.2.2.tgz","integrity":"sha512-X7cujlUnNneSt/Zu+XraLyndlWs2OvE4o2XEYPSLk3v8AvNFFk3TVXSYMlhX3yuK3eXU/IBHZaCvShDirexvCA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIH4GVUSqGhGHJ5KymPV/cYy5FeR344rOXbuuq5sKQyzLAiBP+VOhs6dDcVFJDwPcT5Ow19q+dnZoX2LhfbrtKXJ9uw=="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/react-table-2.2.2.tgz_1477531568998_0.15459348331205547"},"directories":{}},"2.2.3":{"name":"react-table","version":"2.2.3","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","files":["lib/","react-table.js","react-table.css","media/*.png"],"scripts":{"build:node":"babel src --out-dir lib --source-maps inline","build:css":"rm -rf react-table.css && stylus src/index.styl --use ./node_modules/nib/lib/nib.js --compress -o react-table.css","watch":"onchange 'src/**' -i -- npm-run-all build:*","test":"standard","umd":"rm -rf react-table.js && browserify lib/index.js -s reactTable -x react -t babelify -g uglifyify -o react-table.js","prepublish":"npm-run-all build:* && npm run umd","postpublish":"git push --tags"},"dependencies":{"classnames":"^2.2.5"},"peerDependencies":{"react":"^15.3.1"},"devDependencies":{"babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-preset-es2015":"6.14.0","babel-preset-react":"6.11.1","babel-preset-stage-2":"6.13.0","babelify":"^7.3.0","browserify":"13.1.0","nib":"^1.1.2","npm-run-all":"^3.1.1","onchange":"^3.0.2","standard":"^8.0.0","stylus":"^0.54.5","uglifyify":"3.0.3"},"browserify-shim":{"react":"global:React"},"standard":{"parser":"babel-eslint","ignore":["node_modules","dist","lib","example","react-table.js"]},"babel":{"presets":["es2015","stage-2","react"]},"gitHead":"82f39130341f95d8b947eb8801132d11a5cf3724","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@2.2.3","_shasum":"282f9c94a94df2eaf2509bd9bca2552c5b924194","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.3.1","_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"dist":{"shasum":"282f9c94a94df2eaf2509bd9bca2552c5b924194","tarball":"https://registry.npmjs.org/react-table/-/react-table-2.2.3.tgz","integrity":"sha512-w7O4/sww19Jghmuz+Ocy/prnzYMNzk8Yj7yMDxxRssq/pp6wx4EYBPXWRWhVv5zVTgXfHAEMmmGgRWxSNGZHAw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDhUMcGKLzGTLFvX+7uPxXS7CJDTwpbWO8l5kOGTUlxUgIhANVVnLbCpMX1LAYdAEWNm3KCXvWTv4Am01TWQN1vCd17"}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/react-table-2.2.3.tgz_1477532246258_0.7030831633601338"},"directories":{}},"2.2.4":{"name":"react-table","version":"2.2.4","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","files":["lib/","react-table.js","react-table.css","media/*.png"],"scripts":{"build:node":"babel src --out-dir lib --source-maps inline","build:css":"rm -rf react-table.css && stylus src/index.styl --use ./node_modules/nib/lib/nib.js --compress -o react-table.css","watch":"onchange 'src/**' -i -- npm-run-all build:*","test":"standard","umd":"rm -rf react-table.js && browserify lib/index.js -s reactTable -x react -t babelify -g uglifyify -o react-table.js","prepublish":"npm-run-all build:* && npm run umd","postpublish":"git push --tags"},"dependencies":{"classnames":"^2.2.5"},"peerDependencies":{"react":"^15.3.1"},"devDependencies":{"babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-preset-es2015":"6.14.0","babel-preset-react":"6.11.1","babel-preset-stage-2":"6.13.0","babelify":"^7.3.0","browserify":"13.1.0","nib":"^1.1.2","npm-run-all":"^3.1.1","onchange":"^3.0.2","standard":"^8.0.0","stylus":"^0.54.5","uglifyify":"3.0.3"},"browserify-shim":{"react":"global:React"},"standard":{"parser":"babel-eslint","ignore":["node_modules","dist","lib","example","react-table.js"]},"babel":{"presets":["es2015","stage-2","react"]},"gitHead":"efeabe3536568c6bb82d2456c8a2e8003668d1c0","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@2.2.4","_shasum":"04b3305fdff661696a5adb4e57c34bc02a1fd442","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.3.1","_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"dist":{"shasum":"04b3305fdff661696a5adb4e57c34bc02a1fd442","tarball":"https://registry.npmjs.org/react-table/-/react-table-2.2.4.tgz","integrity":"sha512-H+Ce3CL7ICztzi5yoyp5vmgncHE2gz9CwqwnLgkyY95tgaRQod2Y62slSZGp7c3SwM19RImHR2b7QD/MH8cS4g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCOLVJexQHz31Snf4FdgZT+eOa68E6Mu0csgiZH1uLCewIhALOXZ5kTYrJWK+TdJtiWNzJDs2Uwoicm2xVd0+1vHYY5"}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/react-table-2.2.4.tgz_1477580381204_0.19879705435596406"},"directories":{}},"2.2.5":{"name":"react-table","version":"2.2.5","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","files":["lib/","react-table.js","react-table.css","media/*.png"],"scripts":{"build:node":"babel src --out-dir lib --source-maps inline","build:css":"rm -rf react-table.css && stylus src/index.styl --use ./node_modules/nib/lib/nib.js --compress -o react-table.css","watch":"onchange 'src/**' -i -- npm-run-all build:*","test":"standard","umd":"rm -rf react-table.js && browserify lib/index.js -s reactTable -x react -t babelify -g uglifyify -o react-table.js","prepublish":"npm-run-all build:* && npm run umd","postpublish":"git push --tags"},"dependencies":{"classnames":"^2.2.5"},"peerDependencies":{"react":"^15.3.1"},"devDependencies":{"babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-preset-es2015":"6.14.0","babel-preset-react":"6.11.1","babel-preset-stage-2":"6.13.0","babelify":"^7.3.0","browserify":"13.1.0","nib":"^1.1.2","npm-run-all":"^3.1.1","onchange":"^3.0.2","standard":"^8.0.0","stylus":"^0.54.5","uglifyify":"3.0.3"},"browserify-shim":{"react":"global:React"},"standard":{"parser":"babel-eslint","ignore":["node_modules","dist","lib","example","react-table.js"]},"babel":{"presets":["es2015","stage-2","react"]},"gitHead":"3334796223e9e0ef229fb0e6fbde8833190c36c4","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@2.2.5","_shasum":"26914c0e1ce14f07b1b5ed343f36ebf157c1e282","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.3.1","_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"dist":{"shasum":"26914c0e1ce14f07b1b5ed343f36ebf157c1e282","tarball":"https://registry.npmjs.org/react-table/-/react-table-2.2.5.tgz","integrity":"sha512-WDMbiIOsA0MP0jM9+eEWlX3ysuR1xnw7iF7cn0jAXY4Ll6f//FqqV+gK47/d46GKHd+aoxiAZpay0NgnLIPUqw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCsZY52hK0nhROhQ/ZkSjivsH5boKlDxOJvq2VJAQTsSAIgOmc2VXoo8jVRALvPj/qBkvd2tuZ++FCrBaByFnvupb4="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/react-table-2.2.5.tgz_1477581632058_0.2852251895237714"},"directories":{}},"2.2.6":{"name":"react-table","version":"2.2.6","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","files":["lib/","react-table.js","react-table.css","media/*.png"],"scripts":{"build:node":"babel src --out-dir lib --source-maps inline","build:css":"rm -rf react-table.css && stylus src/index.styl --use ./node_modules/nib/lib/nib.js --compress -o react-table.css","watch":"onchange 'src/**' -i -- npm-run-all build:*","test":"standard","umd":"rm -rf react-table.js && browserify lib/index.js -s reactTable -x react -t babelify -g uglifyify -o react-table.js","prepublish":"npm-run-all build:* && npm run umd","postpublish":"git push --tags"},"dependencies":{"classnames":"^2.2.5"},"peerDependencies":{"react":"^15.3.1"},"devDependencies":{"babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-preset-es2015":"6.14.0","babel-preset-react":"6.11.1","babel-preset-stage-2":"6.13.0","babelify":"^7.3.0","browserify":"13.1.0","nib":"^1.1.2","npm-run-all":"^3.1.1","onchange":"^3.0.2","standard":"^8.0.0","stylus":"^0.54.5","uglifyify":"3.0.3"},"browserify-shim":{"react":"global:React"},"standard":{"parser":"babel-eslint","ignore":["node_modules","dist","lib","example","react-table.js"]},"babel":{"presets":["es2015","stage-2","react"]},"gitHead":"e6d03673ffade641e4ab660856e1a0a866aceed2","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@2.2.6","_shasum":"57b50d05a44bbee949883e8ee831c491a17d0014","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.3.1","_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"dist":{"shasum":"57b50d05a44bbee949883e8ee831c491a17d0014","tarball":"https://registry.npmjs.org/react-table/-/react-table-2.2.6.tgz","integrity":"sha512-sBtWEcU4v+Tp6WWQ6VSvZ6cO3D6ce+R6BHZCrpn9WljGzWvpH2Ycu2TeUoEk+xi6I9dKi+BPdmSRVrI6qrCRLw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAigdP21/wH2FTunAYDPShLU+6vb2xIrTgTnlLIp/tJfAiAdKJ19WIKvqXgPevQhDyh6WMB4FFnPTBY6T4p+U3jJTw=="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/react-table-2.2.6.tgz_1477582350713_0.8802991760894656"},"directories":{}},"2.2.7":{"name":"react-table","version":"2.2.7","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","files":["lib/","react-table.js","react-table.css","media/*.png"],"scripts":{"build:node":"babel src --out-dir lib --source-maps inline","build:css":"rm -rf react-table.css && stylus src/index.styl --use ./node_modules/nib/lib/nib.js --compress -o react-table.css","watch":"onchange 'src/**' -i -- npm-run-all build:*","test":"standard","umd":"rm -rf react-table.js && browserify lib/index.js -s reactTable -x react -t babelify -g uglifyify -o react-table.js","prepublish":"npm-run-all build:* && npm run umd","postpublish":"git push --tags"},"dependencies":{"classnames":"^2.2.5"},"peerDependencies":{"react":"^15.3.1"},"devDependencies":{"babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-preset-es2015":"6.14.0","babel-preset-react":"6.11.1","babel-preset-stage-2":"6.13.0","babelify":"^7.3.0","browserify":"13.1.0","nib":"^1.1.2","npm-run-all":"^3.1.1","onchange":"^3.0.2","standard":"^8.0.0","stylus":"^0.54.5","uglifyify":"3.0.3"},"browserify-shim":{"react":"global:React"},"standard":{"parser":"babel-eslint","ignore":["node_modules","dist","lib","example","react-table.js"]},"babel":{"presets":["es2015","stage-2","react"]},"gitHead":"48e6d16d583e36cc27b114e0ec9fbaebc08eac82","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@2.2.7","_shasum":"29ffb0faf4fc857a9bcfe536fc4980d3d88d56be","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.3.1","_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"dist":{"shasum":"29ffb0faf4fc857a9bcfe536fc4980d3d88d56be","tarball":"https://registry.npmjs.org/react-table/-/react-table-2.2.7.tgz","integrity":"sha512-VnUmk8YnE9DF1uIEVXqSEP3KHpkI+okjiLGmnmLNPeSzTGDKZaHFYwwVNGXOWY3lvc4656L2uYkFQz/93tztUA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIF//oV3m7T+TDfgq4ptCw+p6EnIpnWZqMM5eXpDFNwccAiEAhaNwMICdShq2moVJiZXSt61/tuTmp/w8NEUTXldE42o="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/react-table-2.2.7.tgz_1477607955629_0.9987149175722152"},"directories":{}},"3.0.0":{"name":"react-table","version":"3.0.0","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","files":["lib/","react-table.js","react-table.css","media/*.png"],"scripts":{"build:node":"babel src --out-dir lib --source-maps inline","build:css":"rm -rf react-table.css && stylus src/index.styl --use ./node_modules/nib/lib/nib.js --compress -o react-table.css","watch":"onchange 'src/**' -i -- npm-run-all build:*","test":"standard","umd":"rm -rf react-table.js && browserify lib/index.js -s reactTable -x react -t babelify -g uglifyify -o react-table.js","prepublish":"npm-run-all build:* && npm run umd","postpublish":"git push --tags"},"dependencies":{"classnames":"^2.2.5"},"peerDependencies":{"react":"^15.3.1"},"devDependencies":{"babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-preset-es2015":"6.14.0","babel-preset-react":"6.11.1","babel-preset-stage-2":"6.13.0","babelify":"^7.3.0","browserify":"13.1.0","nib":"^1.1.2","npm-run-all":"^3.1.1","onchange":"^3.0.2","standard":"^8.0.0","stylus":"^0.54.5","uglifyify":"3.0.3"},"browserify-shim":{"react":"global:React"},"standard":{"parser":"babel-eslint","ignore":["node_modules","dist","lib","example","react-table.js"]},"babel":{"presets":["es2015","stage-2","react"]},"gitHead":"3d0f38f2c57cd8720a8fece90014c4fc75b11017","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@3.0.0","_shasum":"637c17668f6235844bae95a175620794b7686d46","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.3.1","_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"dist":{"shasum":"637c17668f6235844bae95a175620794b7686d46","tarball":"https://registry.npmjs.org/react-table/-/react-table-3.0.0.tgz","integrity":"sha512-uXXElNrqEnQg1Y20pipvdsSjATbpLVd/wSQA/waCWp0Avy6jtg53fLJ0ohM7x5CkqhzX5hk4ApAIlRu98kHjEA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFn9iRtUeZ5azA7kouFtM2x9lBzf6UIrGE7fqzSEASSMAiEA8N2/4jdd4kx53472UDosTpnm042mwGo2vy/mLfLpEbM="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/react-table-3.0.0.tgz_1477900200179_0.28626765706576407"},"directories":{}},"3.1.0":{"name":"react-table","version":"3.1.0","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","files":["lib/","react-table.js","react-table.css","media/*.png"],"scripts":{"build:node":"babel src --out-dir lib --source-maps inline","build:css":"rm -rf react-table.css && stylus src/index.styl --use ./node_modules/nib/lib/nib.js --compress -o react-table.css","watch":"onchange 'src/**' -i -- npm-run-all build:*","test":"standard","umd":"rm -rf react-table.js && browserify lib/index.js -s reactTable -x react -t babelify -g uglifyify -o react-table.js","prepublish":"npm-run-all build:* && npm run umd","postpublish":"git push --tags"},"dependencies":{"classnames":"^2.2.5"},"peerDependencies":{"react":"^15.3.1"},"devDependencies":{"babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-preset-es2015":"6.14.0","babel-preset-react":"6.11.1","babel-preset-stage-2":"6.13.0","babelify":"^7.3.0","browserify":"13.1.0","nib":"^1.1.2","npm-run-all":"^3.1.1","onchange":"^3.0.2","standard":"^8.0.0","stylus":"^0.54.5","uglifyify":"3.0.3"},"browserify-shim":{"react":"global:React"},"standard":{"parser":"babel-eslint","ignore":["node_modules","dist","lib","example","react-table.js"]},"babel":{"presets":["es2015","stage-2","react"]},"gitHead":"598d33410a784ef231393bd4ad5cab8c1c7fd0af","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@3.1.0","_shasum":"946d81b1c541b3a85866f8140aa6abb182325fc5","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.3.1","_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"dist":{"shasum":"946d81b1c541b3a85866f8140aa6abb182325fc5","tarball":"https://registry.npmjs.org/react-table/-/react-table-3.1.0.tgz","integrity":"sha512-B6ttzOxGn+2MeQsj8JIryAyTLqr2sEH7KJPt9oek3Z6UtdmkgH1cmitMBD0Cj0JQ35jTpevVKDB1+w2LEOq8MQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAkXxWbfvSlnS0i7B+e/PLMMM25v6JpRC4WWCffOOyZMAiEA5+jEzHcUkEPrwkenVfIj9IcwCsypJu1LmHAKcjlebXE="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/react-table-3.1.0.tgz_1478110220123_0.08125310740433633"},"directories":{}},"3.1.1":{"name":"react-table","version":"3.1.1","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","files":["lib/","react-table.js","react-table.css","media/*.png"],"scripts":{"build:node":"babel src --out-dir lib --source-maps inline","build:css":"rm -rf react-table.css && stylus src/index.styl --use ./node_modules/nib/lib/nib.js --compress -o react-table.css","watch":"onchange 'src/**' -i -- npm-run-all build:*","test":"standard","umd":"rm -rf react-table.js && browserify lib/index.js -s reactTable -x react -t babelify -g uglifyify -o react-table.js","prepublish":"npm-run-all build:* && npm run umd","postpublish":"git push --tags"},"dependencies":{"classnames":"^2.2.5"},"peerDependencies":{"react":"^15.3.1"},"devDependencies":{"babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-preset-es2015":"6.14.0","babel-preset-react":"6.11.1","babel-preset-stage-2":"6.13.0","babelify":"^7.3.0","browserify":"13.1.0","nib":"^1.1.2","npm-run-all":"^3.1.1","onchange":"^3.0.2","standard":"^8.0.0","stylus":"^0.54.5","uglifyify":"3.0.3"},"browserify-shim":{"react":"global:React"},"standard":{"parser":"babel-eslint","ignore":["node_modules","dist","lib","example","react-table.js"]},"babel":{"presets":["es2015","stage-2","react"]},"gitHead":"c99796342be301887785630e57c5555cedb05752","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@3.1.1","_shasum":"a801ed75d9b0c5002fcfc92352c588707abec264","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.3.1","_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"dist":{"shasum":"a801ed75d9b0c5002fcfc92352c588707abec264","tarball":"https://registry.npmjs.org/react-table/-/react-table-3.1.1.tgz","integrity":"sha512-9NBkL0ylE9IUzB0f1vFakMzdi3tndje/a10CprWJiySyeCOyDjUlfVfwFDosIJZI1x8uSt2y/lJcGL95SbzFQQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIE4+4Wiu2eEXChMw857yw0fN6oDoAbLwPxJ7V8HZZ+fAAiAYWWZq76CrXRtNOmoz1qtxnioC6uu7DHr91/3hFqW1Eg=="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/react-table-3.1.1.tgz_1478120855937_0.3914145641028881"},"directories":{}},"3.1.2":{"name":"react-table","version":"3.1.2","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","files":["lib/","react-table.js","react-table.css","media/*.png"],"scripts":{"build:node":"babel src --out-dir lib --source-maps inline","build:css":"rm -rf react-table.css && stylus src/index.styl --use ./node_modules/nib/lib/nib.js --compress -o react-table.css","watch":"onchange 'src/**' -i -- npm-run-all build:*","test":"standard","umd":"rm -rf react-table.js && browserify lib/index.js -s reactTable -x react -t babelify -g uglifyify -o react-table.js","prepublish":"npm-run-all build:* && npm run umd","postpublish":"git push --tags"},"dependencies":{"classnames":"^2.2.5"},"peerDependencies":{"react":"^15.3.1"},"devDependencies":{"babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-preset-es2015":"6.14.0","babel-preset-react":"6.11.1","babel-preset-stage-2":"6.13.0","babelify":"^7.3.0","browserify":"13.1.0","nib":"^1.1.2","npm-run-all":"^3.1.1","onchange":"^3.0.2","standard":"^8.0.0","stylus":"^0.54.5","uglifyify":"3.0.3"},"browserify-shim":{"react":"global:React"},"standard":{"parser":"babel-eslint","ignore":["node_modules","dist","lib","example","react-table.js"]},"babel":{"presets":["es2015","stage-2","react"]},"gitHead":"2abcc8695469d997d07f30762672424d1f00a55a","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@3.1.2","_shasum":"4d4405e7337cc6a28978119e9e0d9d48a072051c","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.3.1","_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"dist":{"shasum":"4d4405e7337cc6a28978119e9e0d9d48a072051c","tarball":"https://registry.npmjs.org/react-table/-/react-table-3.1.2.tgz","integrity":"sha512-qvZBJHmknrc8LuXxk4SHXW/hECFW4t8kDWhJ5KSByIQRHT0qSAF6ZeFX+TPA3x0f+ba1xGYQj+6DMHj7hGmpEg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCmLGyvQGYxd4y0awnHVkqKYMiQfObH6UkIYUvTtyXY1AIhAJC8E3FXnspvHmu5RuiyidG8nLVKXIjBorBxqsbU0BrP"}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/react-table-3.1.2.tgz_1478121657602_0.8085840023122728"},"directories":{}},"3.1.3":{"name":"react-table","version":"3.1.3","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","files":["src/","lib/","react-table.js","react-table.css","media/*.png"],"scripts":{"build:node":"babel src --out-dir lib --source-maps inline","build:css":"rm -rf react-table.css && stylus src/index.styl --use ./node_modules/nib/lib/nib.js --compress -o react-table.css","watch":"onchange 'src/**' -i -- npm-run-all build:*","test":"standard","umd":"rm -rf react-table.js && browserify lib/index.js -s reactTable -x react -t babelify -g uglifyify -o react-table.js","prepublish":"npm-run-all build:* && npm run umd","postpublish":"git push --tags"},"dependencies":{"classnames":"^2.2.5"},"peerDependencies":{"react":"^15.3.1"},"devDependencies":{"babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-preset-es2015":"6.14.0","babel-preset-react":"6.11.1","babel-preset-stage-2":"6.13.0","babelify":"^7.3.0","browserify":"13.1.0","nib":"^1.1.2","npm-run-all":"^3.1.1","onchange":"^3.0.2","standard":"^8.0.0","stylus":"^0.54.5","uglifyify":"3.0.3"},"browserify-shim":{"react":"global:React"},"standard":{"parser":"babel-eslint","ignore":["node_modules","dist","lib","example","react-table.js"]},"babel":{"presets":["es2015","stage-2","react"]},"gitHead":"6053c48781c00c62e0b1b5cf4f035a2c2b4c5f86","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@3.1.3","_shasum":"03c62c649ba978d3c5ef0d6bb0a73ad435ba869e","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.2.0","_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"dist":{"shasum":"03c62c649ba978d3c5ef0d6bb0a73ad435ba869e","tarball":"https://registry.npmjs.org/react-table/-/react-table-3.1.3.tgz","integrity":"sha512-P2x/09bVxtTxkxV7Yrmww5wze4b7dcb1wz0Lmq1yVJzm0GcCPzaFUDXF5gKGx6qm/dB9Wnb7VwLZ/gR7b1Cf+g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCCICBr842m7qf+AhhiLy/9rE9Iu/xxVxrgbYoSqsz6yAIgM+KvS0bXLl1jlMorF35Cpb76Fx2PnydqujLsvgASf4M="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/react-table-3.1.3.tgz_1481140521427_0.1891811795067042"},"directories":{}},"3.1.4":{"name":"react-table","version":"3.1.4","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","files":["src/","lib/","react-table.js","react-table.css","media/*.png"],"scripts":{"build:node":"babel src --out-dir lib --source-maps inline","build:css":"rm -rf react-table.css && stylus src/index.styl --use ./node_modules/nib/lib/nib.js --compress -o react-table.css","watch":"onchange 'src/**' -i -- npm-run-all build:*","test":"standard","umd":"rm -rf react-table.js && browserify lib/index.js -s reactTable -x react -t babelify -g uglifyify -o react-table.js","prepublish":"npm-run-all build:* && npm run umd","postpublish":"git push --tags"},"dependencies":{"classnames":"^2.2.5"},"peerDependencies":{"react":"^15.3.1"},"devDependencies":{"babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-preset-es2015":"6.14.0","babel-preset-react":"6.11.1","babel-preset-stage-2":"6.13.0","babelify":"^7.3.0","browserify":"13.1.0","nib":"^1.1.2","npm-run-all":"^3.1.1","onchange":"^3.0.2","standard":"^8.0.0","stylus":"^0.54.5","uglifyify":"3.0.3"},"browserify-shim":{"react":"global:React"},"standard":{"parser":"babel-eslint","ignore":["node_modules","dist","lib","example","react-table.js"]},"babel":{"presets":["es2015","stage-2","react"]},"gitHead":"d8e5188d94771d7df1cf9f9977a631093f2589c6","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@3.1.4","_shasum":"4ecf54d2b27d8747bdd03ec3f60bb53fe8f16a8c","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.2.0","_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"dist":{"shasum":"4ecf54d2b27d8747bdd03ec3f60bb53fe8f16a8c","tarball":"https://registry.npmjs.org/react-table/-/react-table-3.1.4.tgz","integrity":"sha512-IR7PLHYkWhiOglsqdh7XHOnh1Rx5WlkIPYr3iO2clqKaoLFZYGBzZc12EIeD7G9OF0gRVnTTd14ZbVVfZiLNog==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGleSh+4qQkpaogjM6uT1XIZnXQzrwTgRsm0qbFCTcc9AiEAjbC9CX4zUyTKqjww3G7Ln5NlypdRQoJDaJKVb4Op9f8="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/react-table-3.1.4.tgz_1481140850273_0.39329374697990716"},"directories":{}},"3.2.0":{"name":"react-table","version":"3.2.0","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","files":["src/","lib/","react-table.js","react-table.css","media/*.png"],"scripts":{"build:node":"babel src --out-dir lib --source-maps inline","build:css":"rm -rf react-table.css && stylus src/index.styl --use ./node_modules/nib/lib/nib.js --compress -o react-table.css","watch":"onchange 'src/**' -i -- npm-run-all build:*","test":"standard","umd":"rm -rf react-table.js && browserify lib/index.js -s reactTable -x react -t babelify -g uglifyify -o react-table.js","prepublish":"npm-run-all build:* && npm run umd","postpublish":"git push --tags"},"dependencies":{"classnames":"^2.2.5"},"peerDependencies":{"react":"^15.x.x"},"devDependencies":{"babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-preset-es2015":"6.14.0","babel-preset-react":"6.11.1","babel-preset-stage-2":"6.13.0","babelify":"^7.3.0","browserify":"13.1.0","nib":"^1.1.2","npm-run-all":"^3.1.1","onchange":"^3.0.2","standard":"^8.0.0","stylus":"^0.54.5","uglifyify":"3.0.3"},"browserify-shim":{"react":"global:React"},"standard":{"parser":"babel-eslint","ignore":["node_modules","dist","lib","example","react-table.js"]},"babel":{"presets":["es2015","stage-2","react"]},"gitHead":"ecd660ef1000e9573be0a0af50195a56fe3df3d1","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@3.2.0","_shasum":"b78c862d06c6fccc0c5b47cbe009aff0fd428eb4","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.2.0","_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"dist":{"shasum":"b78c862d06c6fccc0c5b47cbe009aff0fd428eb4","tarball":"https://registry.npmjs.org/react-table/-/react-table-3.2.0.tgz","integrity":"sha512-9waf1BQR+1CSKOPgYaF6duHejFtykvY4zVngsEYs8RaVsROsmTuc2bsI68HG6uTIl1alMP+N7kZxxo0Ywf1HxQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFEXBuxXkBu7I+2oQSKwvZaBCZGJdmbbNPE70huU2FEsAiARVraxtFeWDYSfkGbkuAt+JCXfxWPxRBA0IIi7m2cJLg=="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/react-table-3.2.0.tgz_1483988288109_0.42314817546866834"},"directories":{}},"3.2.1":{"name":"react-table","version":"3.2.1","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","files":["src/","lib/","react-table.js","react-table.css","media/*.png"],"scripts":{"build:node":"babel src --out-dir lib --source-maps inline","build:css":"rm -rf react-table.css && stylus src/index.styl --use ./node_modules/nib/lib/nib.js --compress -o react-table.css","watch":"onchange 'src/**' -i -- npm-run-all build:*","test":"standard","umd":"rm -rf react-table.js && browserify lib/index.js -s reactTable -x react -t babelify -g uglifyify -o react-table.js","prepublish":"npm-run-all build:* && npm run umd","postpublish":"git push --tags"},"dependencies":{"classnames":"^2.2.5"},"peerDependencies":{"react":"^15.x.x"},"devDependencies":{"babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-preset-es2015":"6.14.0","babel-preset-react":"6.11.1","babel-preset-stage-2":"6.13.0","babelify":"^7.3.0","browserify":"13.1.0","nib":"^1.1.2","npm-run-all":"^3.1.1","onchange":"^3.0.2","standard":"^8.0.0","stylus":"^0.54.5","uglifyify":"3.0.3"},"browserify-shim":{"react":"global:React"},"standard":{"parser":"babel-eslint","ignore":["node_modules","dist","lib","example","react-table.js"]},"babel":{"presets":["es2015","stage-2","react"]},"gitHead":"dd433f7d9cebb9355ce0720744019987ad9753db","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@3.2.1","_shasum":"df2dcc266afabe56c93c403752aa2671d8272b5e","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.2.0","_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"dist":{"shasum":"df2dcc266afabe56c93c403752aa2671d8272b5e","tarball":"https://registry.npmjs.org/react-table/-/react-table-3.2.1.tgz","integrity":"sha512-EiiilXpJ9jvqQE6Nr1xtyo4iQadn825vWtk7fuU73RsT5vrLJ+LFJmjgD8Eo10oN6h5GnciCBrnQO5CveD+GGg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCis51HqShLp6i2oipvDIcYaCc+uXnwd/7FayZscCn6HAIgFPeyLH79wMh2i3c2WBNyRzf746Jnvi0JxPpzw9rx74w="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/react-table-3.2.1.tgz_1483994701699_0.32799590891227126"},"directories":{}},"4.0.0":{"name":"react-table","version":"4.0.0","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","files":["src/","lib/","react-table.js","react-table.css","media/*.png"],"scripts":{"build:node":"babel src --out-dir lib --source-maps inline","build:css":"rm -rf react-table.css && stylus src/index.styl --use ./node_modules/nib/lib/nib.js --compress -o react-table.css","watch":"npm-run-all --parallel watch:*","watch:node":"onchange 'src/**/*.js' -i -- npm run build:node","watch:css":"onchange 'src/**/*.styl' -i -- npm run build:css","test":"standard","umd":"rm -rf react-table.js && browserify lib/index.js -s reactTable -x react -t babelify -g uglifyify -o react-table.js","prepublish":"npm-run-all build:* && npm run umd","storybook":"start-storybook -p 8000 -c .storybook","deploy":"build-storybook && zab deploy"},"dependencies":{"classnames":"^2.2.5","inline-style-prefixer":"^2.0.5"},"peerDependencies":{"react":"^15.x.x"},"devDependencies":{"@kadira/storybook":"^2.35.1","babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-preset-es2015":"6.14.0","babel-preset-react":"6.11.1","babel-preset-stage-2":"6.13.0","babelify":"^7.3.0","browserify":"13.1.0","github-markdown-css":"^2.4.1","html-loader":"^0.4.4","markdown-loader":"^0.1.7","namor":"^0.3.0","nib":"^1.1.2","npm-run-all":"^3.1.1","onchange":"^3.0.2","react":"^15.4.2","react-dom":"^15.4.2","standard":"^8.0.0","stylus":"^0.54.5","uglifyify":"3.0.3"},"browserify-shim":{"react":"global:React"},"standard":{"parser":"babel-eslint","ignore":["node_modules","dist","lib","example","react-table.js"]},"babel":{"presets":["es2015","stage-2","react"]},"gitHead":"29eda4dc710dc37ad69eda34044968d1bd37a680","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@4.0.0","_shasum":"0459c68bbcd3d10c3647ed2e22696cdec76bb37a","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.2.0","_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"dist":{"shasum":"0459c68bbcd3d10c3647ed2e22696cdec76bb37a","tarball":"https://registry.npmjs.org/react-table/-/react-table-4.0.0.tgz","integrity":"sha512-gRIPFGfCYMdwvU6INJBHcomsDgrtKHxEmT5Y5k7opqUnggM3I4FB+uISn25dgd/uadO8MCYkSmOKKpmZIRXNlA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCID0tDn+TvdPez6+1E1fNsG5cqEa/dqGJCE0sWGGQs6YXAiEAibm16ZMZCJTQzjWu/I4AFmHnezfvs2tkCxFdI4N7eSA="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/react-table-4.0.0.tgz_1484177042126_0.35033101169392467"},"directories":{}},"4.0.1":{"name":"react-table","version":"4.0.1","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","files":["src/","lib/","react-table.js","react-table.css","media/*.png"],"scripts":{"build:node":"babel src --out-dir lib --source-maps inline","build:css":"rm -rf react-table.css && stylus src/index.styl --use ./node_modules/nib/lib/nib.js --compress -o react-table.css","watch":"npm-run-all --parallel watch:*","watch:node":"onchange 'src/**/*.js' -i -- npm run build:node","watch:css":"onchange 'src/**/*.styl' -i -- npm run build:css","test":"standard","umd":"rm -rf react-table.js && browserify lib/index.js -s reactTable -x react -t babelify -g uglifyify -o react-table.js","prepublish":"npm-run-all build:* && npm run umd","storybook":"start-storybook -p 8000 -c .storybook","deploy":"build-storybook && zab deploy"},"dependencies":{"classnames":"^2.2.5","inline-style-prefixer":"^2.0.5"},"peerDependencies":{"react":"^15.x.x"},"devDependencies":{"@kadira/storybook":"^2.35.1","babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-preset-es2015":"6.14.0","babel-preset-react":"6.11.1","babel-preset-stage-2":"6.13.0","babelify":"^7.3.0","browserify":"13.1.0","github-markdown-css":"^2.4.1","html-loader":"^0.4.4","markdown-loader":"^0.1.7","namor":"^0.3.0","nib":"^1.1.2","npm-run-all":"^3.1.1","onchange":"^3.0.2","react":"^15.4.2","react-dom":"^15.4.2","standard":"^8.0.0","stylus":"^0.54.5","uglifyify":"3.0.3"},"browserify-shim":{"react":"global:React"},"standard":{"parser":"babel-eslint","ignore":["node_modules","dist","lib","example","react-table.js"]},"babel":{"presets":["es2015","stage-2","react"]},"gitHead":"76e92de670d8cf153a46075a9e293e74124dd18a","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@4.0.1","_shasum":"d7ecb3c14cf500ba5db70e2214c5752a000ae065","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.2.0","_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"dist":{"shasum":"d7ecb3c14cf500ba5db70e2214c5752a000ae065","tarball":"https://registry.npmjs.org/react-table/-/react-table-4.0.1.tgz","integrity":"sha512-EL8MGuRSvccghZ8KXDDBe7oeRplDK3h0i6ONR2WCiiVlBmJ6MnV4+sDgA2kuJcHI4hu5RXjbZcuRyZjCflW+mA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDtdCLyRBq7Jsyhe4ejNi97W5uhRzJcylOzyY/F2qxt3QIgX/4sxkbFzvSvSkQgYLjt7UuQn+ma1Vg4zvr7GS73qxc="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/react-table-4.0.1.tgz_1484189956668_0.6859617789741606"},"directories":{}},"4.1.0":{"name":"react-table","version":"4.1.0","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","files":["src/","lib/","react-table.js","react-table.css","media/*.png"],"scripts":{"build:node":"babel src --out-dir lib --source-maps inline","build:css":"rm -rf react-table.css && stylus src/index.styl --use ./node_modules/nib/lib/nib.js --compress -o react-table.css","watch":"npm-run-all --parallel watch:*","watch:node":"onchange 'src/**/*.js' -i -- npm run build:node","watch:css":"onchange 'src/**/*.styl' -i -- npm run build:css","test":"standard","umd":"rm -rf react-table.js && browserify lib/index.js -s reactTable -x react -t babelify -g uglifyify -o react-table.js","prepublish":"npm-run-all build:* && npm run umd","storybook":"start-storybook -p 8000 -c .storybook","deploy":"build-storybook && zab deploy"},"dependencies":{"classnames":"^2.2.5","inline-style-prefixer":"^2.0.5"},"peerDependencies":{"react":"^15.x.x"},"devDependencies":{"@kadira/storybook":"^2.35.1","babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-preset-es2015":"6.14.0","babel-preset-react":"6.11.1","babel-preset-stage-2":"6.13.0","babelify":"^7.3.0","browserify":"13.1.0","github-markdown-css":"^2.4.1","html-loader":"^0.4.4","markdown-loader":"^0.1.7","namor":"^0.3.0","nib":"^1.1.2","npm-run-all":"^3.1.1","onchange":"^3.0.2","react":"^15.4.2","react-dom":"^15.4.2","standard":"^8.0.0","stylus":"^0.54.5","uglifyify":"3.0.3"},"browserify-shim":{"react":"global:React"},"standard":{"parser":"babel-eslint","ignore":["node_modules","dist","lib","example","react-table.js","stories"]},"babel":{"presets":["es2015","stage-2","react"]},"gitHead":"ca038e9a69009eaf93ff258e330988ca70b392e0","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@4.1.0","_shasum":"59597209c0627e1fd8b85f79c4d65f1c0eeed69d","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.2.0","_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"dist":{"shasum":"59597209c0627e1fd8b85f79c4d65f1c0eeed69d","tarball":"https://registry.npmjs.org/react-table/-/react-table-4.1.0.tgz","integrity":"sha512-50b9AsRnW4VCnHOWpIkVbl7JpPZIVLSoUKJRwfZth6gj+yQHZew61RlpBdoxa/WPqPjIqCCuUmc7PO9RyaSaqg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHU8wGdSVfapoCsmV/O003MqA7umxDVzTPCaVNA/p2mUAiEAm128HcwayDZ3+SmikCzaeDHI9l45Qq6PrOFKFndRB3w="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/react-table-4.1.0.tgz_1484244386732_0.6546893476042897"},"directories":{}},"4.1.1":{"name":"react-table","version":"4.1.1","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","files":["src/","lib/","react-table.js","react-table.css","media/*.png"],"scripts":{"build:node":"babel src --out-dir lib --source-maps inline","build:css":"rm -rf react-table.css && stylus src/index.styl --use ./node_modules/nib/lib/nib.js --compress -o react-table.css","watch":"npm-run-all --parallel watch:*","watch:node":"onchange 'src/**/*.js' -i -- npm run build:node","watch:css":"onchange 'src/**/*.styl' -i -- npm run build:css","test":"standard","umd":"rm -rf react-table.js && browserify lib/index.js -s reactTable -x react -t babelify -g uglifyify -o react-table.js","prepublish":"npm-run-all build:* && npm run umd","storybook":"start-storybook -p 8000 -c .storybook","deploy":"build-storybook && zab deploy"},"dependencies":{"classnames":"^2.2.5"},"peerDependencies":{"react":"^15.x.x"},"devDependencies":{"@kadira/storybook":"^2.35.1","babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-preset-es2015":"6.14.0","babel-preset-react":"6.11.1","babel-preset-stage-2":"6.13.0","babelify":"^7.3.0","browserify":"13.1.0","github-markdown-css":"^2.4.1","html-loader":"^0.4.4","markdown-loader":"^0.1.7","namor":"^0.3.0","nib":"^1.1.2","npm-run-all":"^3.1.1","onchange":"^3.0.2","react":"^15.4.2","react-dom":"^15.4.2","standard":"^8.0.0","stylus":"^0.54.5","uglifyify":"3.0.3"},"browserify-shim":{"react":"global:React"},"standard":{"parser":"babel-eslint","ignore":["node_modules","dist","lib","example","react-table.js","stories"]},"babel":{"presets":["es2015","stage-2","react"]},"gitHead":"e059ceec7591b347ebf779edcb86833f6f0643d4","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@4.1.1","_shasum":"564bc4a92161eb799e49a040c63b559cece83ff1","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.2.0","_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"dist":{"shasum":"564bc4a92161eb799e49a040c63b559cece83ff1","tarball":"https://registry.npmjs.org/react-table/-/react-table-4.1.1.tgz","integrity":"sha512-f3TI6on5EYMCx6okoWu2wFeaEM//PzrV5WgOwOGZK5EeIg6oPQnqsUTlMSe+qkJ5AZUfDVsJlVLipmhyWlOepw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIG0moClcPkHrZ4kYDXv+oTdxgObII2GHy34wjAT/PCjwAiBPqlWV9KpjSdgJIVz4MvY7u+9oAE8mS0qciEuco4gwnA=="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/react-table-4.1.1.tgz_1484325738658_0.8951960990671068"},"directories":{}},"4.2.0":{"name":"react-table","version":"4.2.0","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","files":["src/","lib/","react-table.js","react-table.css","media/*.png"],"scripts":{"build:node":"babel src --out-dir lib --source-maps inline","build:css":"rm -rf react-table.css && stylus src/index.styl --use ./node_modules/nib/lib/nib.js --compress -o react-table.css","watch":"npm-run-all --parallel watch:*","watch:node":"onchange 'src/**/*.js' -i -- npm run build:node","watch:css":"onchange 'src/**/*.styl' -i -- npm run build:css","test":"standard","umd":"rm -rf react-table.js && browserify lib/index.js -s reactTable -x react -t babelify -g uglifyify -o react-table.js","prepublish":"npm-run-all build:* && npm run umd","storybook":"start-storybook -p 8000 -c .storybook","deploy":"build-storybook && zab deploy"},"dependencies":{"classnames":"^2.2.5"},"peerDependencies":{"react":"^15.x.x"},"devDependencies":{"@kadira/storybook":"^2.35.1","babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-preset-es2015":"6.14.0","babel-preset-react":"6.11.1","babel-preset-stage-2":"6.13.0","babelify":"^7.3.0","browserify":"13.1.0","github-markdown-css":"^2.4.1","html-loader":"^0.4.4","markdown-loader":"^0.1.7","namor":"^0.3.0","nib":"^1.1.2","npm-run-all":"^3.1.1","onchange":"^3.0.2","react":"^15.4.2","react-dom":"^15.4.2","standard":"^8.0.0","stylus":"^0.54.5","uglifyify":"3.0.3"},"browserify-shim":{"react":"global:React"},"standard":{"parser":"babel-eslint","ignore":["node_modules","dist","lib","example","react-table.js","stories"]},"babel":{"presets":["es2015","stage-2","react"]},"gitHead":"f06caec053f7e7880844517d0802e49192a9ca37","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@4.2.0","_shasum":"eb5618eb6ecdd0434451917f3df04b9930f01492","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.2.0","_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"dist":{"shasum":"eb5618eb6ecdd0434451917f3df04b9930f01492","tarball":"https://registry.npmjs.org/react-table/-/react-table-4.2.0.tgz","integrity":"sha512-ReKOvQ8mzJ6YQuHoEVhtmyKdqWbzT9qywXzDEtz+naUuaqXMpSlh0aebTh/gXS+5Wm/K0CtmYI8arS0U2dvCGw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCesEaB3hbk5MaA4o6q1PzqRFk3fSXQ4LdGsZ7CQTVB4wIgRQRp6Sm13dJIFwmVSYg0kMUaxnuqwOV4mUf/0SgdwRQ="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/react-table-4.2.0.tgz_1484597745811_0.909269608091563"},"directories":{}},"4.2.1":{"name":"react-table","version":"4.2.1","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","files":["src/","lib/","react-table.js","react-table.css","media/*.png"],"scripts":{"build:node":"babel src --out-dir lib --source-maps inline","build:css":"rm -rf react-table.css && stylus src/index.styl --use ./node_modules/nib/lib/nib.js --compress -o react-table.css","watch":"npm-run-all --parallel watch:*","watch:node":"onchange 'src/**/*.js' -i -- npm run build:node","watch:css":"onchange 'src/**/*.styl' -i -- npm run build:css","test":"standard","umd":"rm -rf react-table.js && browserify lib/index.js -s reactTable -x react -t babelify -g uglifyify -o react-table.js","prepublish":"npm-run-all build:* && npm run umd","storybook":"start-storybook -p 8000 -c .storybook","deploy":"build-storybook && zab deploy"},"dependencies":{"classnames":"^2.2.5"},"peerDependencies":{"react":"^15.x.x"},"devDependencies":{"@kadira/storybook":"^2.35.1","babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-preset-es2015":"6.14.0","babel-preset-react":"6.11.1","babel-preset-stage-2":"6.13.0","babelify":"^7.3.0","browserify":"13.1.0","github-markdown-css":"^2.4.1","html-loader":"^0.4.4","markdown-loader":"^0.1.7","namor":"^0.3.0","nib":"^1.1.2","npm-run-all":"^3.1.1","onchange":"^3.0.2","react":"^15.4.2","react-dom":"^15.4.2","standard":"^8.0.0","stylus":"^0.54.5","uglifyify":"3.0.3"},"browserify-shim":{"react":"global:React"},"standard":{"parser":"babel-eslint","ignore":["node_modules","dist","lib","example","react-table.js","stories"]},"babel":{"presets":["es2015","stage-2","react"]},"gitHead":"f72fec3cc2a74483e50a3a775b3595dc478fa76a","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@4.2.1","_shasum":"b6d295caf5b23d48525ff4bc7459d74b029667ea","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.2.0","_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"dist":{"shasum":"b6d295caf5b23d48525ff4bc7459d74b029667ea","tarball":"https://registry.npmjs.org/react-table/-/react-table-4.2.1.tgz","integrity":"sha512-cDnJIw7s5WML8jApbA+cawnHqJldD/Za1B1rZ8yn6in92pMvm71i9QHpW8BHJ1Irr0KUOTaXS/IBfqYMfss9PQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICd3DyJ1qhvjJjDF8j1/5aLtjPkKR2/hslD1jmF/Yv3vAiEAvhcEWPTvB/QmdlQFCHYYU1ycR3az1q1d3KC0I+e2XYo="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/react-table-4.2.1.tgz_1484601485778_0.21187772508710623"},"directories":{}},"4.2.2":{"name":"react-table","version":"4.2.2","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","files":["src/","lib/","react-table.js","react-table.css","media/*.png"],"scripts":{"build:node":"babel src --out-dir lib --source-maps inline","build:css":"rm -rf react-table.css && stylus src/index.styl --use ./node_modules/nib/lib/nib.js --compress -o react-table.css","watch":"npm-run-all --parallel watch:*","watch:node":"onchange 'src/**/*.js' -i -- npm run build:node","watch:css":"onchange 'src/**/*.styl' -i -- npm run build:css","test":"standard","umd":"rm -rf react-table.js && browserify lib/index.js -s reactTable -x react -t babelify -g uglifyify -o react-table.js","prepublish":"npm-run-all build:* && npm run umd","storybook":"start-storybook -p 8000 -c .storybook","deploy":"build-storybook && zab deploy"},"dependencies":{"classnames":"^2.2.5"},"peerDependencies":{"react":"^15.x.x"},"devDependencies":{"@kadira/storybook":"^2.35.1","babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-preset-es2015":"6.14.0","babel-preset-react":"6.11.1","babel-preset-stage-2":"6.13.0","babelify":"^7.3.0","browserify":"13.1.0","github-markdown-css":"^2.4.1","html-loader":"^0.4.4","markdown-loader":"^0.1.7","namor":"^0.3.0","nib":"^1.1.2","npm-run-all":"^3.1.1","onchange":"^3.0.2","react":"^15.4.2","react-dom":"^15.4.2","standard":"^8.0.0","stylus":"^0.54.5","uglifyify":"3.0.3"},"browserify-shim":{"react":"global:React"},"standard":{"parser":"babel-eslint","ignore":["node_modules","dist","lib","example","react-table.js","stories"]},"babel":{"presets":["es2015","stage-2","react"]},"gitHead":"ba1325336f0ce97046e7d17050df42a458fc4e9d","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@4.2.2","_shasum":"7277403b52de0380942a61e20a75a679ccf57d85","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.2.0","_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"dist":{"shasum":"7277403b52de0380942a61e20a75a679ccf57d85","tarball":"https://registry.npmjs.org/react-table/-/react-table-4.2.2.tgz","integrity":"sha512-XWBdbWuE5dK/q8hcYjLr+dhx0m9w9OEIbuCBf1KD1MEagnK/M+mCpWMYnkQ+lvjxUbpszZzYCKzcHNi9LK8WYw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCh87X9Bp17NT/brK4GI+rGm5mthB0HlBm4YQIDuQZd2wIhAOBByDOOau3sG+lDLicZWW4OZNDi/xy6LKz8ZO2rkdw8"}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/react-table-4.2.2.tgz_1484604089500_0.6689523679669946"},"directories":{}},"4.2.3":{"name":"react-table","version":"4.2.3","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","files":["src/","lib/","react-table.js","react-table.css","media/*.png"],"scripts":{"build:node":"babel src --out-dir lib --source-maps inline","build:css":"rm -rf react-table.css && stylus src/index.styl --use ./node_modules/nib/lib/nib.js --compress -o react-table.css","watch":"npm-run-all --parallel watch:*","watch:node":"onchange 'src/**/*.js' -i -- npm run build:node","watch:css":"onchange 'src/**/*.styl' -i -- npm run build:css","test":"standard","umd":"rm -rf react-table.js && browserify lib/index.js -s reactTable -x react -t babelify -g uglifyify -o react-table.js","prepublish":"npm-run-all build:* && npm run umd","storybook":"start-storybook -p 8000 -c .storybook","deploy":"build-storybook && zab deploy"},"dependencies":{"classnames":"^2.2.5"},"peerDependencies":{"react":"^15.x.x"},"devDependencies":{"@kadira/storybook":"^2.35.1","babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-preset-es2015":"6.14.0","babel-preset-react":"6.11.1","babel-preset-stage-2":"6.13.0","babelify":"^7.3.0","browserify":"13.1.0","github-markdown-css":"^2.4.1","html-loader":"^0.4.4","markdown-loader":"^0.1.7","namor":"^0.3.0","nib":"^1.1.2","npm-run-all":"^3.1.1","onchange":"^3.0.2","react":"^15.4.2","react-dom":"^15.4.2","standard":"^8.0.0","stylus":"^0.54.5","uglifyify":"3.0.3"},"browserify-shim":{"react":"global:React"},"standard":{"parser":"babel-eslint","ignore":["node_modules","dist","lib","example","react-table.js","stories"]},"babel":{"presets":["es2015","stage-2","react"]},"gitHead":"0bf363aeaf4263d13bb235bd73d1f0258377dfaa","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@4.2.3","_shasum":"ec7d673fa903bd229471d7348479461df9b739bd","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.2.0","_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"dist":{"shasum":"ec7d673fa903bd229471d7348479461df9b739bd","tarball":"https://registry.npmjs.org/react-table/-/react-table-4.2.3.tgz","integrity":"sha512-njN58lE6mY/YZBRnRGtOe1nJ5o+/ht3YnDFGXBWvV/M/PIRvgoNXayNETxx5+u2w0cFCJ1DHYrAOwMvd72KoHA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD0zwjL3A7srNZimBOv8tnHSCZAPZhOr/FB+4SY+Gus8QIhAKZEx5M6jb82hseEBqs8lvosYqZjo/oYIKm1EWlzZrl7"}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/react-table-4.2.3.tgz_1484607152876_0.12648070813156664"},"directories":{}},"4.2.4":{"name":"react-table","version":"4.2.4","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","files":["src/","lib/","react-table.js","react-table.css","media/*.png"],"scripts":{"build:node":"babel src --out-dir lib --source-maps inline","build:css":"rm -rf react-table.css && stylus src/index.styl --use ./node_modules/nib/lib/nib.js --compress -o react-table.css","watch":"npm-run-all --parallel watch:*","watch:node":"onchange 'src/**/*.js' -i -- npm run build:node","watch:css":"onchange 'src/**/*.styl' -i -- npm run build:css","test":"standard","umd":"rm -rf react-table.js && browserify lib/index.js -s reactTable -x react -t babelify -g uglifyify -o react-table.js","prepublish":"npm-run-all build:* && npm run umd","storybook":"start-storybook -p 8000 -c .storybook","docs":"build-storybook -o docs"},"dependencies":{"classnames":"^2.2.5"},"peerDependencies":{"react":"^15.x.x"},"devDependencies":{"@kadira/storybook":"^2.35.1","babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-preset-es2015":"6.14.0","babel-preset-react":"6.11.1","babel-preset-stage-2":"6.13.0","babelify":"^7.3.0","browserify":"13.1.0","github-markdown-css":"^2.4.1","html-loader":"^0.4.4","markdown-loader":"^0.1.7","namor":"^0.3.0","nib":"^1.1.2","npm-run-all":"^3.1.1","onchange":"^3.0.2","react":"^15.4.2","react-dom":"^15.4.2","standard":"^8.0.0","stylus":"^0.54.5","uglifyify":"3.0.3"},"browserify-shim":{"react":"global:React"},"standard":{"parser":"babel-eslint","ignore":["node_modules","dist","lib","example","react-table.js","stories","docs"]},"babel":{"presets":["es2015","stage-2","react"]},"gitHead":"4a871db71f52388f2b774b1d85fa2df3440af445","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@4.2.4","_shasum":"b7965c45c84f7fac74243709f80ea738d1d68f44","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.2.0","_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"dist":{"shasum":"b7965c45c84f7fac74243709f80ea738d1d68f44","tarball":"https://registry.npmjs.org/react-table/-/react-table-4.2.4.tgz","integrity":"sha512-CDGQa78M9fumx73nQP0x3gJEbAjMCH7pTpg776+tQCpKGfURybZ/ZTW89WmPBEML60JtmyTArERRxLapw1rM9A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCiKCJ2XNBzxbEHCY58EyDlwbb86rc5fQg0QbAow0xeHQIhAOFmAV3yOPKXtn+P5lUC2mbZ8jroaLfp8ZqnqgHAX0pi"}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/react-table-4.2.4.tgz_1484755679092_0.19820160581730306"},"directories":{}},"4.2.5":{"name":"react-table","version":"4.2.5","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","files":["src/","lib/","react-table.js","react-table.css","media/*.png"],"scripts":{"build:node":"babel src --out-dir lib --source-maps inline","build:css":"rm -rf react-table.css && stylus src/index.styl --use ./node_modules/nib/lib/nib.js --compress -o react-table.css","watch":"npm-run-all --parallel watch:*","watch:node":"onchange 'src/**/*.js' -i -- npm run build:node","watch:css":"onchange 'src/**/*.styl' -i -- npm run build:css","test":"standard","umd":"rm -rf react-table.js && browserify lib/index.js -s reactTable -x react -t babelify -g uglifyify -o react-table.js","prepublish":"npm-run-all build:* && npm run umd","storybook":"start-storybook -p 8000 -c .storybook","docs":"build-storybook -o docs"},"dependencies":{"classnames":"^2.2.5"},"peerDependencies":{"react":"^15.x.x"},"devDependencies":{"@kadira/storybook":"^2.35.1","babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-preset-es2015":"6.14.0","babel-preset-react":"6.11.1","babel-preset-stage-2":"6.13.0","babelify":"^7.3.0","browserify":"13.1.0","github-markdown-css":"^2.4.1","html-loader":"^0.4.4","markdown-loader":"^0.1.7","namor":"^0.3.0","nib":"^1.1.2","npm-run-all":"^3.1.1","onchange":"^3.0.2","react":"^15.4.2","react-dom":"^15.4.2","standard":"^8.0.0","stylus":"^0.54.5","uglifyify":"3.0.3"},"browserify-shim":{"react":"global:React"},"standard":{"parser":"babel-eslint","ignore":["node_modules","dist","lib","example","react-table.js","stories","docs"]},"babel":{"presets":["es2015","stage-2","react"]},"gitHead":"943332d9e18278f025a07565dd576aa2f735b91c","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@4.2.5","_shasum":"8fcca08c06dfe32a1b23aa56114c5a1530b9c1af","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.2.0","_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"dist":{"shasum":"8fcca08c06dfe32a1b23aa56114c5a1530b9c1af","tarball":"https://registry.npmjs.org/react-table/-/react-table-4.2.5.tgz","integrity":"sha512-tWtH+WZcV5JDczQRsJZq+dh/JJgsv+lIpPEc+dhb4errA5rlX60qftGYDhfDdQazGrL0gb6awj3cMlKw1+FONA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCHoRWayK7EckMAMx2qmgcQNOyNh213y4tu0tMNE23f+AIgTtGbbSuAc5hwyLzxEsVSb79889gwnh4SSyL0V/ZT7PI="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/react-table-4.2.5.tgz_1484879879293_0.9699535446707159"},"directories":{}},"4.2.6":{"name":"react-table","version":"4.2.6","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","files":["src/","lib/","react-table.js","react-table.css","media/*.png"],"scripts":{"build:node":"babel src --out-dir lib --source-maps inline","build:css":"rm -rf react-table.css && stylus src/index.styl --use ./node_modules/nib/lib/nib.js --compress -o react-table.css","watch":"npm-run-all --parallel watch:*","watch:node":"onchange 'src/**/*.js' -i -- npm run build:node","watch:css":"onchange 'src/**/*.styl' -i -- npm run build:css","test":"standard","umd":"rm -rf react-table.js && browserify lib/index.js -s reactTable -x react -t babelify -g uglifyify -o react-table.js","prepublish":"npm-run-all build:* && npm run umd","storybook":"start-storybook -p 8000 -c .storybook","docs":"build-storybook -o docs && cp .storybook/CNAME docs/CNAME"},"dependencies":{"classnames":"^2.2.5"},"peerDependencies":{"react":"^15.x.x"},"devDependencies":{"@kadira/storybook":"^2.35.1","babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-preset-es2015":"6.14.0","babel-preset-react":"6.11.1","babel-preset-stage-2":"6.13.0","babelify":"^7.3.0","browserify":"13.1.0","github-markdown-css":"^2.4.1","html-loader":"^0.4.4","markdown-loader":"^0.1.7","namor":"^0.3.0","nib":"^1.1.2","npm-run-all":"^3.1.1","onchange":"^3.0.2","react":"^15.4.2","react-dom":"^15.4.2","standard":"^8.0.0","stylus":"^0.54.5","uglifyify":"3.0.3"},"browserify-shim":{"react":"global:React"},"standard":{"parser":"babel-eslint","ignore":["node_modules","dist","lib","example","react-table.js","stories","docs"]},"babel":{"presets":["es2015","stage-2","react"]},"gitHead":"c0098ebc2cb46a6191941128b0dddece0d862116","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@4.2.6","_shasum":"ab1d14f9069e27cfd650723f1205d6cef1807daf","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.2.0","_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"dist":{"shasum":"ab1d14f9069e27cfd650723f1205d6cef1807daf","tarball":"https://registry.npmjs.org/react-table/-/react-table-4.2.6.tgz","integrity":"sha512-cgK+0Fr9H0l1zH9P7NaFXWNu4KwcTvTZdChBWLkIE0WlAYZrjCYEux+mNc6B3r02NGfQd9tFSJLpdvWZaTs8hg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBCOpQb5GDNSstXoOhu8VOTZlKg4OWz1/tSDLL4Mz8hgAiBFpK1mjQBx6GNI/XlpkITfY4kNlQxDFdsQVReUX7WVZg=="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/react-table-4.2.6.tgz_1485106062985_0.2008900074288249"},"directories":{}},"4.2.7":{"name":"react-table","version":"4.2.7","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","files":["src/","lib/","react-table.js","react-table.css","media/*.png"],"scripts":{"build:node":"babel src --out-dir lib --source-maps inline","build:css":"rm -rf react-table.css && stylus src/index.styl --use autoprefixer-stylus --compress -o react-table.css","watch":"npm-run-all --parallel watch:*","watch:node":"onchange 'src/**/*.js' -i -- npm run build:node","watch:css":"onchange 'src/**/*.styl' -i -- npm run build:css","test":"standard","umd":"rm -rf react-table.js && browserify lib/index.js -s reactTable -x react -t babelify -g uglifyify -o react-table.js","prepublish":"npm-run-all build:* && npm run umd","storybook":"start-storybook -p 8000 -c .storybook","docs":"build-storybook -o docs && cp .storybook/CNAME docs/CNAME"},"dependencies":{"classnames":"^2.2.5"},"peerDependencies":{"react":"^15.x.x"},"devDependencies":{"@kadira/storybook":"^2.35.1","autoprefixer-stylus":"^0.13.0","babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-preset-es2015":"6.14.0","babel-preset-react":"6.11.1","babel-preset-stage-2":"6.13.0","babelify":"^7.3.0","browserify":"13.1.0","github-markdown-css":"^2.4.1","html-loader":"^0.4.4","markdown-loader":"^0.1.7","namor":"^0.3.0","nib":"^1.1.2","npm-run-all":"^3.1.1","onchange":"^3.0.2","react":"^15.4.2","react-dom":"^15.4.2","standard":"^8.0.0","stylus":"^0.54.5","uglifyify":"3.0.3"},"browserify-shim":{"react":"global:React"},"standard":{"parser":"babel-eslint","ignore":["node_modules","dist","lib","example","react-table.js","stories","docs"]},"babel":{"presets":["es2015","stage-2","react"]},"gitHead":"dc0713c1d171526c7ada39de6415f3b5a5b2672c","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@4.2.7","_shasum":"2fa39cd60b3139cbd659d615d448fe7964e433ff","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.2.0","_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"dist":{"shasum":"2fa39cd60b3139cbd659d615d448fe7964e433ff","tarball":"https://registry.npmjs.org/react-table/-/react-table-4.2.7.tgz","integrity":"sha512-eHPJXxNeo5H9NKw9RReFfRJwRGM7uJrG8XKsGBD2+15gBzdmFWCy/JXL5nfVo2o9gUKXe+8qGlADiA+npVkm9A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCID3L7DXla6ieb+Jtp+W1VRv+U+iNT/8qoqkQ+hSeyZ3cAiEA8v0Ft6tZANencFTEUhNCpwh+BXL6W6t5/3Ka9jneAkc="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/react-table-4.2.7.tgz_1485191832724_0.5985698683653027"},"directories":{}},"4.2.8":{"name":"react-table","version":"4.2.8","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","files":["src/","lib/","react-table.js","react-table.css","media/*.png"],"scripts":{"build:node":"babel src --out-dir lib --source-maps inline","build:css":"rm -rf react-table.css && stylus src/index.styl --compress -o react-table.css && yarn run css:autoprefix","css:autoprefix":"postcss --use autoprefixer react-table.css -r","watch":"npm-run-all --parallel watch:*","watch:node":"onchange 'src/**/*.js' -i -- npm run build:node","watch:css":"onchange 'src/**/*.styl' -i -- npm run build:css","test":"standard","umd":"rm -rf react-table.js && browserify lib/index.js -s reactTable -x react -t babelify -g uglifyify -o react-table.js","prepublish":"npm-run-all build:* && npm run umd","storybook":"start-storybook -p 8000 -c .storybook","docs":"build-storybook -o docs && cp .storybook/CNAME docs/CNAME"},"dependencies":{"classnames":"^2.2.5"},"peerDependencies":{"react":"^15.x.x"},"devDependencies":{"@kadira/storybook":"^2.35.1","autoprefixer":"^6.7.0","babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-preset-es2015":"6.14.0","babel-preset-react":"6.11.1","babel-preset-stage-2":"6.13.0","babelify":"^7.3.0","browserify":"13.1.0","github-markdown-css":"^2.4.1","html-loader":"^0.4.4","markdown-loader":"^0.1.7","namor":"^0.3.0","npm-run-all":"^3.1.1","onchange":"^3.0.2","postcss-cli":"^2.6.0","react":"^15.4.2","react-dom":"^15.4.2","standard":"^8.0.0","stylus":"^0.54.5","uglifyify":"3.0.3"},"browserify-shim":{"react":"global:React"},"standard":{"parser":"babel-eslint","ignore":["node_modules","dist","lib","example","react-table.js","stories","docs"]},"babel":{"presets":["es2015","stage-2","react"]},"gitHead":"6056bb94ec7e2f16137be5041c03e9bd5b964af3","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@4.2.8","_shasum":"b2749f97ba1a0e6153fc8573df4cd197732256bf","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.2.0","_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"dist":{"shasum":"b2749f97ba1a0e6153fc8573df4cd197732256bf","tarball":"https://registry.npmjs.org/react-table/-/react-table-4.2.8.tgz","integrity":"sha512-fW0SSLFfFtMiJiMSy4kEz3SwW0oxooNfAczjCQ7/82QseSuYlsjejMA2I/IFrcRNFWa0nMrPlTmxOR4QzTjJcQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBneYhl8OKvilRMZdyDw983Rd7+C7Uz8vXg+nY2icHY/AiBaPtXt2gS6t0JJ7t8F3GjxvCW+IBQBNmL8OO8OdIqAgw=="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/react-table-4.2.8.tgz_1485469605704_0.39826935809105635"},"directories":{}},"4.3.0":{"name":"react-table","version":"4.3.0","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","files":["src/","lib/","react-table.js","react-table.css","media/*.png"],"scripts":{"build:node":"babel src --out-dir lib --source-maps inline","build:css":"rm -rf react-table.css && stylus src/index.styl --compress -o react-table.css && yarn run css:autoprefix","css:autoprefix":"postcss --use autoprefixer react-table.css -r","watch":"npm-run-all --parallel watch:*","watch:node":"onchange 'src/**/*.js' -i -- npm run build:node","watch:css":"onchange 'src/**/*.styl' -i -- npm run build:css","test":"standard","umd":"rm -rf react-table.js && browserify lib/index.js -s reactTable -x react -t babelify -g uglifyify -o react-table.js","prepublish":"npm-run-all build:* && npm run umd","storybook":"start-storybook -p 8000 -c .storybook","docs":"build-storybook -o docs && cp .storybook/CNAME docs/CNAME"},"dependencies":{"classnames":"^2.2.5"},"peerDependencies":{"react":"^15.x.x"},"devDependencies":{"@kadira/storybook":"^2.35.1","autoprefixer":"^6.7.0","babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-preset-es2015":"6.14.0","babel-preset-react":"6.11.1","babel-preset-stage-2":"6.13.0","babelify":"^7.3.0","browserify":"13.1.0","github-markdown-css":"^2.4.1","html-loader":"^0.4.4","markdown-loader":"^0.1.7","namor":"^0.3.0","npm-run-all":"^3.1.1","onchange":"^3.0.2","postcss-cli":"^2.6.0","react":"^15.4.2","react-dom":"^15.4.2","react-json-tree":"^0.10.1","standard":"^8.0.0","stylus":"^0.54.5","uglifyify":"3.0.3"},"browserify-shim":{"react":"global:React"},"standard":{"parser":"babel-eslint","ignore":["node_modules","dist","lib","example","react-table.js","stories","docs"]},"babel":{"presets":["es2015","stage-2","react"]},"gitHead":"92c33de7ac40607a6aeb72beaa34d834539faf2a","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@4.3.0","_shasum":"54f0efa613ff08a2b8695b74d5d691109242d98b","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.2.0","_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"dist":{"shasum":"54f0efa613ff08a2b8695b74d5d691109242d98b","tarball":"https://registry.npmjs.org/react-table/-/react-table-4.3.0.tgz","integrity":"sha512-EPubWwYJ8E5Fmr/M6x1YBRV683uLn3LLGzzTmjo8IOlm4RK1Jpw0gYhunkyh/72Ed3YJ28pWFLiL/dZwm6mkqw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICyDfmdwHyGss2xOkllYd3xP3hvEu9/YiVGsqCYozYMDAiA7/sWcW4Qok8NRF780CdyM74zaAmI0pnQ/tLNxxgU2qQ=="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/react-table-4.3.0.tgz_1485491122634_0.45649459306150675"},"directories":{}},"4.4.0":{"name":"react-table","version":"4.4.0","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","files":["src/","lib/","react-table.js","react-table.css","media/*.png"],"scripts":{"build:node":"babel src --out-dir lib --source-maps inline","build:css":"rm -rf react-table.css && stylus src/index.styl --compress -o react-table.css && yarn run css:autoprefix","css:autoprefix":"postcss --use autoprefixer react-table.css -r","watch":"npm-run-all --parallel watch:*","watch:node":"onchange 'src/**/*.js' -i -- npm run build:node","watch:css":"onchange 'src/**/*.styl' -i -- npm run build:css","test":"standard","umd":"rm -rf react-table.js && browserify lib/index.js -s reactTable -x react -t babelify -g uglifyify -o react-table.js","prepublish":"npm-run-all build:* && npm run umd","storybook":"start-storybook -p 8000 -c .storybook","docs":"build-storybook -o docs && cp .storybook/CNAME docs/CNAME"},"dependencies":{"classnames":"^2.2.5"},"peerDependencies":{"react":"^15.x.x"},"devDependencies":{"@kadira/storybook":"^2.35.1","autoprefixer":"^6.7.0","babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-preset-es2015":"6.14.0","babel-preset-react":"6.11.1","babel-preset-stage-2":"6.13.0","babelify":"^7.3.0","browserify":"13.1.0","github-markdown-css":"^2.4.1","html-loader":"^0.4.4","markdown-loader":"^0.1.7","namor":"^0.3.0","npm-run-all":"^3.1.1","onchange":"^3.0.2","postcss-cli":"^2.6.0","react":"^15.4.2","react-dom":"^15.4.2","react-json-tree":"^0.10.1","standard":"^8.0.0","stylus":"^0.54.5","uglifyify":"3.0.3"},"browserify-shim":{"react":"global:React"},"standard":{"parser":"babel-eslint","ignore":["node_modules","dist","lib","example","react-table.js","stories","docs"]},"babel":{"presets":["es2015","stage-2","react"]},"gitHead":"114621a3592db7d3ec5b974936d8241108a0b58f","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@4.4.0","_shasum":"e27c443894c29a5f310ea29ebe1dafc180545ebe","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.2.0","_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"dist":{"shasum":"e27c443894c29a5f310ea29ebe1dafc180545ebe","tarball":"https://registry.npmjs.org/react-table/-/react-table-4.4.0.tgz","integrity":"sha512-ULDNf5GMG6d4j9L9sFRa0zhMii/DZBcAR4aRSC4DCLVBebPXXcmF6qy3THBcDKeMM6gM4I7mlzWIJdTT98dU2w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIB3bxfbFyz3ijBvESFXRwulpVsfpue6R/DenpnmKDUsSAiEAvnUh0IEcjB1WvogG326RkxJecQJI/MX1WTqx9l0uwr8="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/react-table-4.4.0.tgz_1485551483644_0.40068383514881134"},"directories":{}},"4.4.1":{"name":"react-table","version":"4.4.1","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","files":["src/","lib/","react-table.js","react-table.css","media/*.png"],"scripts":{"build:node":"babel src --out-dir lib --source-maps inline","build:css":"rm -rf react-table.css && stylus src/index.styl --compress -o react-table.css && yarn run css:autoprefix","css:autoprefix":"postcss --use autoprefixer react-table.css -r","watch":"npm-run-all --parallel watch:*","watch:node":"onchange 'src/**/*.js' -i -- npm run build:node","watch:css":"onchange 'src/**/*.styl' -i -- npm run build:css","test":"standard","umd":"rm -rf react-table.js && browserify lib/index.js -s reactTable -x react -t babelify -g uglifyify -o react-table.js","prepublish":"npm-run-all build:* && npm run umd","storybook":"start-storybook -p 8000 -c .storybook","docs":"build-storybook -o docs && cp .storybook/CNAME docs/CNAME"},"dependencies":{"classnames":"^2.2.5"},"peerDependencies":{"react":"^15.x.x"},"devDependencies":{"@kadira/storybook":"^2.35.1","autoprefixer":"^6.7.0","babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-preset-es2015":"6.14.0","babel-preset-react":"6.11.1","babel-preset-stage-2":"6.13.0","babelify":"^7.3.0","browserify":"13.1.0","github-markdown-css":"^2.4.1","html-loader":"^0.4.4","markdown-loader":"^0.1.7","namor":"^0.3.0","npm-run-all":"^3.1.1","onchange":"^3.0.2","postcss-cli":"^2.6.0","react":"^15.4.2","react-dom":"^15.4.2","react-json-tree":"^0.10.1","standard":"^8.0.0","stylus":"^0.54.5","uglifyify":"3.0.3"},"browserify-shim":{"react":"global:React"},"standard":{"parser":"babel-eslint","ignore":["node_modules","dist","lib","example","react-table.js","stories","docs"]},"babel":{"presets":["es2015","stage-2","react"]},"gitHead":"5e16c2cb24b562e9677c63fb2f7f08bde2e51103","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@4.4.1","_shasum":"450eb3a24d08152eff395b1cb05087f50b380c02","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.2.0","_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"dist":{"shasum":"450eb3a24d08152eff395b1cb05087f50b380c02","tarball":"https://registry.npmjs.org/react-table/-/react-table-4.4.1.tgz","integrity":"sha512-7Ku/rIZsqtnUQQ7zjlSvPUX/JMGCw9/xnFN24v8cvqYzNJgrZzyIYz4sDpJaj61ngKh8edaXIMAlJIY2I6pAew==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBWIxhC/5SD0vOS5Yl/LJaHE5f+rMTKCi1QZulpe6sYZAiEApc873BuZrbSHziFvbw75xeaXSEKltnmCvkQDk9kuSuM="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/react-table-4.4.1.tgz_1485552908831_0.6561323539353907"},"directories":{}},"5.0.0":{"name":"react-table","version":"5.0.0","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","files":["src/","lib/","react-table.js","react-table.css","media/*.png"],"scripts":{"build:node":"babel src --out-dir lib --source-maps inline","build:css":"rm -rf react-table.css && stylus src/index.styl --compress -o react-table.css && yarn run css:autoprefix","css:autoprefix":"postcss --use autoprefixer react-table.css -r","watch":"npm-run-all --parallel watch:*","watch:node":"onchange 'src/**/*.js' -i -- npm run build:node","watch:css":"onchange 'src/**/*.styl' -i -- npm run build:css","test":"standard","umd":"rm -rf react-table.js && browserify lib/index.js -s reactTable -x react -t babelify -g uglifyify -o react-table.js","prepublish":"npm-run-all build:* && npm run umd","storybook":"start-storybook -p 8000 -c .storybook","docs":"build-storybook -o docs && cp .storybook/CNAME docs/CNAME"},"dependencies":{"classnames":"^2.2.5"},"peerDependencies":{"react":"^15.x.x"},"devDependencies":{"@kadira/storybook":"^2.35.1","autoprefixer":"^6.7.0","babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-preset-es2015":"6.14.0","babel-preset-react":"6.11.1","babel-preset-stage-2":"6.13.0","babelify":"^7.3.0","browserify":"13.1.0","github-markdown-css":"^2.4.1","html-loader":"^0.4.4","markdown-loader":"^0.1.7","namor":"^0.3.0","npm-run-all":"^3.1.1","onchange":"^3.0.2","postcss-cli":"^2.6.0","react":"^15.4.2","react-dom":"^15.4.2","react-json-tree":"^0.10.1","standard":"^8.0.0","stylus":"^0.54.5","uglifyify":"3.0.3"},"browserify-shim":{"react":"global:React"},"standard":{"parser":"babel-eslint","ignore":["node_modules","dist","lib","example","react-table.js","stories","docs"]},"babel":{"presets":["es2015","stage-2","react"]},"gitHead":"c3a6e236ae14178ac31f2a5240e022647533518e","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@5.0.0","_shasum":"abcc2175cb123eb08a25d305e2be512b38dcd6de","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.2.0","_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"dist":{"shasum":"abcc2175cb123eb08a25d305e2be512b38dcd6de","tarball":"https://registry.npmjs.org/react-table/-/react-table-5.0.0.tgz","integrity":"sha512-AzqavzHTtWqGIdtwleFdhA7AJXOAaT9C3g50OOdb+Rol9PO6FLm6dG9+4D0J2AB+xoW7LuD/kOcbGZWkk5ED9Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCFdAJc7idTK6uIjsnz5y3WMc+6qw5s8fU2lT8YFFzsaAIhAJBd3v6rsiCjKE7DQxE+IQNzC5tltrQW0c+j9fmqYZ2P"}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/react-table-5.0.0.tgz_1486084447961_0.5279419389553368"},"directories":{}},"5.0.1":{"name":"react-table","version":"5.0.1","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","files":["src/","lib/","react-table.js","react-table.css","media/*.png"],"scripts":{"build:node":"babel src --out-dir lib --source-maps inline","build:css":"rm -rf react-table.css && stylus src/index.styl --compress -o react-table.css && yarn run css:autoprefix","css:autoprefix":"postcss --use autoprefixer react-table.css -r","watch":"npm-run-all --parallel watch:*","watch:node":"onchange 'src/**/*.js' -i -- npm run build:node","watch:css":"onchange 'src/**/*.styl' -i -- npm run build:css","test":"standard","umd":"rm -rf react-table.js && browserify lib/index.js -s reactTable -x react -t babelify -g uglifyify -o react-table.js","prepublish":"npm-run-all build:* && npm run umd","storybook":"start-storybook -p 8000 -c .storybook","docs":"build-storybook -o docs && cp .storybook/CNAME docs/CNAME"},"dependencies":{"classnames":"^2.2.5"},"peerDependencies":{"react":"^15.x.x"},"devDependencies":{"@kadira/storybook":"^2.35.1","autoprefixer":"^6.7.0","babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-preset-es2015":"6.14.0","babel-preset-react":"6.11.1","babel-preset-stage-2":"6.13.0","babelify":"^7.3.0","browserify":"13.1.0","github-markdown-css":"^2.4.1","html-loader":"^0.4.4","markdown-loader":"^0.1.7","namor":"^0.3.0","npm-run-all":"^3.1.1","onchange":"^3.0.2","postcss-cli":"^2.6.0","react":"^15.4.2","react-dom":"^15.4.2","react-json-tree":"^0.10.1","standard":"^8.0.0","stylus":"^0.54.5","uglifyify":"3.0.3"},"browserify-shim":{"react":"global:React"},"standard":{"parser":"babel-eslint","ignore":["node_modules","dist","lib","example","react-table.js","stories","docs"]},"babel":{"presets":["es2015","stage-2","react"]},"gitHead":"ff8e24760ae6de318901ae2228b0700b3cd4d07d","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@5.0.1","_shasum":"f41556714ca1dc05a1774cc8e1422711f3dad700","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.2.0","_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"dist":{"shasum":"f41556714ca1dc05a1774cc8e1422711f3dad700","tarball":"https://registry.npmjs.org/react-table/-/react-table-5.0.1.tgz","integrity":"sha512-Q/h8KLLsZ/BlnuSWKmeWNbYgf2NmYR9vdIhPkR0S5pgF/jBZy9SDWn3XvYkrBl0OpVC4w3TU/5ak0OitwiHp1Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGzviWKC0J3zhp1py5rSrXPZdoJFHgup14Iv73c4lQpVAiBcSuzlzaaCFOtLb0wHE7gdSpnrk8SsUyi/X5s35fx/XA=="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/react-table-5.0.1.tgz_1486145282196_0.7365502268075943"},"directories":{}},"5.0.2":{"name":"react-table","version":"5.0.2","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","files":["src/","lib/","react-table.js","react-table.css","media/*.png"],"scripts":{"build:node":"babel src --out-dir lib --source-maps inline","build:css":"rm -rf react-table.css && stylus src/index.styl --compress -o react-table.css && yarn run css:autoprefix","css:autoprefix":"postcss --use autoprefixer react-table.css -r","watch":"npm-run-all --parallel watch:*","watch:node":"onchange 'src/**/*.js' -i -- npm run build:node","watch:css":"onchange 'src/**/*.styl' -i -- npm run build:css","test":"standard","umd":"rm -rf react-table.js && browserify lib/index.js -s reactTable -x react -t babelify -g uglifyify -o react-table.js","prepublish":"npm-run-all build:* && npm run umd","storybook":"start-storybook -p 8000 -c .storybook","docs":"build-storybook -o docs && cp .storybook/CNAME docs/CNAME"},"dependencies":{"classnames":"^2.2.5"},"peerDependencies":{"react":"^15.x.x"},"devDependencies":{"@kadira/storybook":"^2.35.1","autoprefixer":"^6.7.0","babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-preset-es2015":"6.14.0","babel-preset-react":"6.11.1","babel-preset-stage-2":"6.13.0","babelify":"^7.3.0","browserify":"13.1.0","github-markdown-css":"^2.4.1","html-loader":"^0.4.4","markdown-loader":"^0.1.7","namor":"^0.3.0","npm-run-all":"^3.1.1","onchange":"^3.0.2","postcss-cli":"^2.6.0","react":"^15.4.2","react-dom":"^15.4.2","react-json-tree":"^0.10.1","standard":"^8.0.0","stylus":"^0.54.5","uglifyify":"3.0.3"},"browserify-shim":{"react":"global:React"},"standard":{"parser":"babel-eslint","ignore":["node_modules","dist","lib","example","react-table.js","stories","docs"]},"babel":{"presets":["es2015","stage-2","react"]},"gitHead":"aa48ef57ee26b88dfa03d85f0364c06556b53356","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@5.0.2","_shasum":"889b73a170a57978e40a8cdbd1d89955b8859fd0","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.2.0","_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"dist":{"shasum":"889b73a170a57978e40a8cdbd1d89955b8859fd0","tarball":"https://registry.npmjs.org/react-table/-/react-table-5.0.2.tgz","integrity":"sha512-p91OMVauu5lX77z21eMWjJKeWxvshXcfP6jOTxXaOmBDmlKMcAR91Kk/VliEe/QQnOyWug8ZHBzKQYUXm0gQtg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCipD4bkbhkl1DfUHgGqRQNVK5OBGollbqEMPvznydArAIgM/DgxlgTpUdVGCNYX2j+6TDCVe7PV2be9HzhTzSQLYE="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/react-table-5.0.2.tgz_1486155947138_0.33632099931128323"},"directories":{}},"5.0.3":{"name":"react-table","version":"5.0.3","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","files":["src/","lib/","react-table.js","react-table.css","media/*.png"],"scripts":{"build:node":"babel src --out-dir lib --source-maps inline","build:css":"rm -rf react-table.css && stylus src/index.styl --compress -o react-table.css && yarn run css:autoprefix","css:autoprefix":"postcss --use autoprefixer react-table.css -r","watch":"npm-run-all --parallel watch:*","watch:node":"onchange 'src/**/*.js' -i -- npm run build:node","watch:css":"onchange 'src/**/*.styl' -i -- npm run build:css","test":"standard","umd":"rm -rf react-table.js && browserify lib/index.js -s reactTable -x react -t babelify -g uglifyify -o react-table.js","prepublish":"npm-run-all build:* && npm run umd","storybook":"start-storybook -p 8000 -c .storybook","docs":"build-storybook -o docs && cp .storybook/CNAME docs/CNAME"},"dependencies":{"classnames":"^2.2.5"},"peerDependencies":{"react":"^15.x.x"},"devDependencies":{"@kadira/storybook":"^2.35.1","autoprefixer":"^6.7.0","babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-preset-es2015":"6.14.0","babel-preset-react":"6.11.1","babel-preset-stage-2":"6.13.0","babelify":"^7.3.0","browserify":"13.1.0","github-markdown-css":"^2.4.1","html-loader":"^0.4.4","markdown-loader":"^0.1.7","namor":"^0.3.0","npm-run-all":"^3.1.1","onchange":"^3.0.2","postcss-cli":"^2.6.0","react":"^15.4.2","react-dom":"^15.4.2","react-json-tree":"^0.10.1","standard":"^8.0.0","storybook":"^0.0.0","stylus":"^0.54.5","uglifyify":"3.0.3"},"browserify-shim":{"react":"global:React"},"standard":{"parser":"babel-eslint","ignore":["node_modules","dist","lib","example","react-table.js","stories","docs"]},"babel":{"presets":["es2015","stage-2","react"]},"gitHead":"3984a540c18f9fedf710e0e6a22d2d31022b11c4","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@5.0.3","_shasum":"9536a0974bad9abe01246e4113ad57bea117475d","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.2.0","_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"dist":{"shasum":"9536a0974bad9abe01246e4113ad57bea117475d","tarball":"https://registry.npmjs.org/react-table/-/react-table-5.0.3.tgz","integrity":"sha512-pY5y5jdkkipFxFnCyQTGeVwXKurTcVbNcWdEway19buf3inEQJG4kGmn6WtkcDflysfpnYAt75SEa1OMycGu7g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHuDlAy2ZWJU1bZTHMwBanbrGfbX338ultpdhTrqveFCAiB7eTZF54Sr480eDU7/2yqZNoVKJSCGLwKrUjr7wmze4g=="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/react-table-5.0.3.tgz_1486660072786_0.03300751675851643"},"directories":{}},"5.0.4":{"name":"react-table","version":"5.0.4","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","files":["src/","lib/","react-table.js","react-table.css","media/*.png"],"scripts":{"build:node":"babel src --out-dir lib --source-maps inline","build:css":"rm -rf react-table.css && stylus src/index.styl --compress -o react-table.css && yarn run css:autoprefix","css:autoprefix":"postcss --use autoprefixer react-table.css -r","watch":"npm-run-all --parallel watch:*","watch:node":"onchange 'src/**/*.js' -i -- npm run build:node","watch:css":"onchange 'src/**/*.styl' -i -- npm run build:css","test":"standard","umd":"rm -rf react-table.js && browserify lib/index.js -s reactTable -x react -t babelify -g uglifyify -o react-table.js","prepublish":"npm-run-all build:* && npm run umd","storybook":"start-storybook -p 8000 -c .storybook","docs":"build-storybook -o docs && cp .storybook/CNAME docs/CNAME"},"dependencies":{"classnames":"^2.2.5"},"peerDependencies":{"react":"^15.x.x"},"devDependencies":{"@kadira/storybook":"^2.35.1","autoprefixer":"^6.7.0","babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-preset-es2015":"6.14.0","babel-preset-react":"6.11.1","babel-preset-stage-2":"6.13.0","babelify":"^7.3.0","browserify":"13.1.0","github-markdown-css":"^2.4.1","html-loader":"^0.4.4","markdown-loader":"^0.1.7","namor":"^0.3.0","npm-run-all":"^3.1.1","onchange":"^3.0.2","postcss-cli":"^2.6.0","react":"^15.4.2","react-dom":"^15.4.2","react-json-tree":"^0.10.1","standard":"^8.0.0","storybook":"^0.0.0","stylus":"^0.54.5","uglifyify":"3.0.3"},"browserify-shim":{"react":"global:React"},"standard":{"parser":"babel-eslint","ignore":["node_modules","dist","lib","example","react-table.js","stories","docs"]},"babel":{"presets":["es2015","stage-2","react"]},"gitHead":"beaa748187106bd6dd80883a6135450bf8a5541f","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@5.0.4","_shasum":"7a32c442e0fdab6358b707c5b09675e483a0cacb","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.2.0","_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"dist":{"shasum":"7a32c442e0fdab6358b707c5b09675e483a0cacb","tarball":"https://registry.npmjs.org/react-table/-/react-table-5.0.4.tgz","integrity":"sha512-aemz4qBXTyRy1nfMQMApTZMdLP2X6+Hif6dS0FDQ1L1BJi+L8V15PikLHCI99GkW0rvnSwLQWL7e5Mqs87SszQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFHvh1rJzH70IBBpebTaq9Iiut+hXTihE9tLn8YPIgLDAiAObloswcI1kynODfM2HgIcprs0n9kNt4m+HI30fHDmNQ=="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/react-table-5.0.4.tgz_1486763358844_0.480088337790221"},"directories":{}},"5.1.0":{"name":"react-table","version":"5.1.0","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","files":["src/","lib/","react-table.js","react-table.css","media/*.png"],"scripts":{"build:node":"babel src --out-dir lib --source-maps inline","build:css":"rm -rf react-table.css && stylus src/index.styl --compress -o react-table.css && yarn run css:autoprefix","css:autoprefix":"postcss --use autoprefixer react-table.css -r","watch":"npm-run-all --parallel watch:*","watch:node":"onchange 'src/**/*.js' -i -- npm run build:node","watch:css":"onchange 'src/**/*.styl' -i -- npm run build:css","test":"standard","umd":"rm -rf react-table.js && browserify lib/index.js -s reactTable -x react -t babelify -g uglifyify -o react-table.js","prepublish":"npm-run-all build:* && npm run umd","storybook":"start-storybook -p 8000 -c .storybook","docs":"build-storybook -o docs && cp .storybook/CNAME docs/CNAME"},"dependencies":{"classnames":"^2.2.5"},"peerDependencies":{"react":"^15.x.x"},"devDependencies":{"@kadira/storybook":"^2.35.1","autoprefixer":"^6.7.0","babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-preset-es2015":"6.14.0","babel-preset-react":"6.11.1","babel-preset-stage-2":"6.13.0","babelify":"^7.3.0","browserify":"13.1.0","github-markdown-css":"^2.4.1","html-loader":"^0.4.4","markdown-loader":"^0.1.7","namor":"^0.3.0","npm-run-all":"^3.1.1","onchange":"^3.0.2","postcss-cli":"^2.6.0","react":"^15.4.2","react-dom":"^15.4.2","react-json-tree":"^0.10.1","standard":"^8.0.0","storybook":"^0.0.0","stylus":"^0.54.5","uglifyify":"3.0.3"},"browserify-shim":{"react":"global:React"},"standard":{"parser":"babel-eslint","ignore":["node_modules","dist","lib","example","react-table.js","stories","docs"]},"babel":{"presets":["es2015","stage-2","react"]},"gitHead":"1fec9b882fbc2074146d0457a74f9bd4dc8fb576","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@5.1.0","_shasum":"7a6e8f711837bb9224dd558118686ab10853b367","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.2.0","_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"dist":{"shasum":"7a6e8f711837bb9224dd558118686ab10853b367","tarball":"https://registry.npmjs.org/react-table/-/react-table-5.1.0.tgz","integrity":"sha512-rIu3MoiRKOxjUKT4Jgcom8VfzV0XAtpJjrOfkioDDul24W3AjtzGhBPdVYkZPq4EpRpC0+Cq0rE3IrDQ1FvFVQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCPFgAYN/k0WzS7gdiwvclTFr6mJOpcu6cqtNixCq0IFQIgd1H2qBtSrlv2Ild1X8SFKD3Th77HujNUi28++RUAqRg="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/react-table-5.1.0.tgz_1486770842112_0.7479883125051856"},"directories":{}},"5.1.1":{"name":"react-table","version":"5.1.1","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","files":["src/","lib/","react-table.js","react-table.css","media/*.png"],"scripts":{"build:node":"babel src --out-dir lib --source-maps inline","build:css":"rm -rf react-table.css && stylus src/index.styl --compress -o react-table.css && yarn run css:autoprefix","css:autoprefix":"postcss --use autoprefixer react-table.css -r","watch":"npm-run-all --parallel watch:*","watch:node":"onchange 'src/**/*.js' -i -- npm run build:node","watch:css":"onchange 'src/**/*.styl' -i -- npm run build:css","test":"standard","umd":"rm -rf react-table.js && browserify lib/index.js -s reactTable -x react -t babelify -g uglifyify -o react-table.js","prepublish":"npm-run-all build:* && npm run umd","storybook":"start-storybook -p 8000 -c .storybook","docs":"build-storybook -o docs && cp .storybook/CNAME docs/CNAME"},"dependencies":{"classnames":"^2.2.5"},"peerDependencies":{"react":"^15.x.x"},"devDependencies":{"@kadira/storybook":"^2.35.1","autoprefixer":"^6.7.0","babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-preset-es2015":"6.14.0","babel-preset-react":"6.11.1","babel-preset-stage-2":"6.13.0","babelify":"^7.3.0","browserify":"13.1.0","github-markdown-css":"^2.4.1","html-loader":"^0.4.4","markdown-loader":"^0.1.7","namor":"^0.3.0","npm-run-all":"^3.1.1","onchange":"^3.0.2","postcss-cli":"^2.6.0","react":"^15.4.2","react-dom":"^15.4.2","react-json-tree":"^0.10.1","standard":"^8.0.0","storybook":"^0.0.0","stylus":"^0.54.5","uglifyify":"3.0.3"},"browserify-shim":{"react":"global:React"},"standard":{"parser":"babel-eslint","ignore":["node_modules","dist","lib","example","react-table.js","stories","docs"]},"babel":{"presets":["es2015","stage-2","react"]},"gitHead":"403fb7a708ef602844813211b703734370d7d283","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@5.1.1","_shasum":"f74a0b5a8ca8dd62ddc29daedb9a666ce7b005b8","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.2.0","_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"dist":{"shasum":"f74a0b5a8ca8dd62ddc29daedb9a666ce7b005b8","tarball":"https://registry.npmjs.org/react-table/-/react-table-5.1.1.tgz","integrity":"sha512-ZqTlr7s0WZC5v3FmWEpiALrpV0o/rcjLiSp8FHccV0eGY4vsglOLoForjd/QTY4ZMHjVvaUv31n8+YukICp/Ig==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAnqjs7dx2/tWxParkGzVkDWVrSDYXaraltmhyljqKg3AiBVglRjpxUwTScdfeb2oZi6TFZDWLT26fvXxQjc77mlSQ=="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/react-table-5.1.1.tgz_1487028503528_0.32934247236698866"},"directories":{}},"5.2.0":{"name":"react-table","version":"5.2.0","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","files":["src/","lib/","react-table.js","react-table.css","media/*.png"],"scripts":{"build:node":"babel src --out-dir lib --source-maps inline","build:css":"rm -rf react-table.css && stylus src/index.styl --compress -o react-table.css && yarn run css:autoprefix","css:autoprefix":"postcss --use autoprefixer react-table.css -r","watch":"npm-run-all --parallel watch:*","watch:node":"onchange 'src/**/*.js' -i -- npm run build:node","watch:css":"onchange 'src/**/*.styl' -i -- npm run build:css","test":"standard","umd":"rm -rf react-table.js && browserify lib/index.js -s reactTable -x react -t babelify -g uglifyify -o react-table.js","prepublish":"npm-run-all build:* && npm run umd","storybook":"start-storybook -p 8000 -c .storybook","docs":"build-storybook -o docs && cp .storybook/CNAME docs/CNAME"},"dependencies":{"classnames":"^2.2.5"},"peerDependencies":{"react":"^15.x.x"},"devDependencies":{"@kadira/storybook":"^2.35.1","autoprefixer":"^6.7.0","babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-preset-es2015":"6.14.0","babel-preset-react":"6.11.1","babel-preset-stage-2":"6.13.0","babelify":"^7.3.0","browserify":"13.1.0","github-markdown-css":"^2.4.1","html-loader":"^0.4.4","markdown-loader":"^0.1.7","namor":"^0.3.0","npm-run-all":"^3.1.1","onchange":"^3.0.2","postcss-cli":"^2.6.0","react":"^15.4.2","react-dom":"^15.4.2","react-json-tree":"^0.10.1","standard":"^8.0.0","storybook":"^0.0.0","stylus":"^0.54.5","uglifyify":"3.0.3"},"browserify-shim":{"react":"global:React"},"standard":{"parser":"babel-eslint","ignore":["node_modules","dist","lib","example","react-table.js","stories","docs"]},"babel":{"presets":["es2015","stage-2","react"]},"gitHead":"6d5207eb4efaf424621e17ce3c0bb6772493fa68","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@5.2.0","_shasum":"1ed4eef5f5f8390a137d7cdc8354a2a329469fdc","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.2.0","_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"dist":{"shasum":"1ed4eef5f5f8390a137d7cdc8354a2a329469fdc","tarball":"https://registry.npmjs.org/react-table/-/react-table-5.2.0.tgz","integrity":"sha512-OtIgpz+d+8urS6RMkX7kSuOaEJgcx+ZmNP9SB/+pCIcsH9dKC64px4vsa9zA4N1vz/0L00HuY7GuOnGisZaS6Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEFwD3WlR9qNWv8cDWqyMMOzSlRN/5v8F652vO9xHMXIAiEA3Rpt7EZwY3dB679XW1D5fPrJzrbckIWlWiRYsiDtYBg="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/react-table-5.2.0.tgz_1487178467272_0.8924158273730427"},"directories":{}},"5.3.0":{"name":"react-table","version":"5.3.0","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","files":["src/","lib/","react-table.js","react-table.css","media/*.png"],"scripts":{"build:node":"babel src --out-dir lib --source-maps inline","build:css":"rm -rf react-table.css && stylus src/index.styl --compress -o react-table.css && yarn run css:autoprefix","css:autoprefix":"postcss --use autoprefixer react-table.css -r","watch":"npm-run-all --parallel watch:*","watch:node":"onchange 'src/**/*.js' -i -- npm run build:node","watch:css":"onchange 'src/**/*.styl' -i -- npm run build:css","test":"standard","umd":"rm -rf react-table.js && browserify lib/index.js -s reactTable -x react -t babelify -g uglifyify -o react-table.js","prepublish":"npm-run-all build:* && npm run umd","storybook":"start-storybook -p 8000 -c .storybook","docs":"build-storybook -o docs && cp .storybook/CNAME docs/CNAME"},"dependencies":{"classnames":"^2.2.5"},"peerDependencies":{"react":"^15.x.x"},"devDependencies":{"@kadira/storybook":"^2.35.1","autoprefixer":"^6.7.0","babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-preset-es2015":"6.14.0","babel-preset-react":"6.11.1","babel-preset-stage-2":"6.13.0","babelify":"^7.3.0","browserify":"13.1.0","github-markdown-css":"^2.4.1","html-loader":"^0.4.4","markdown-loader":"^0.1.7","namor":"^0.3.0","npm-run-all":"^3.1.1","onchange":"^3.0.2","postcss-cli":"^2.6.0","react":"^15.4.2","react-dom":"^15.4.2","react-json-tree":"^0.10.1","standard":"^8.0.0","storybook":"^0.0.0","stylus":"^0.54.5","uglifyify":"3.0.3"},"browserify-shim":{"react":"global:React"},"standard":{"parser":"babel-eslint","ignore":["node_modules","dist","lib","example","react-table.js","stories","docs"]},"babel":{"presets":["es2015","stage-2","react"]},"gitHead":"265a5c8753ff8d7e45bbcd8d026768310187f735","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@5.3.0","_shasum":"6893fafce82cefe8ac76551640fe3657f7f68b9c","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.2.0","_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"dist":{"shasum":"6893fafce82cefe8ac76551640fe3657f7f68b9c","tarball":"https://registry.npmjs.org/react-table/-/react-table-5.3.0.tgz","integrity":"sha512-to9QGbuqpLzTVUGliWQf1deRYqowiGtgeoTcjXIpNSRHF+vzEViLBjpyz7TrBcCNuz8GG4apdFg38Yifkkh4Pw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD4eI1zDnpDCyF/KONmJNwT8g/gqPYCtCDClq1gTmCcLQIhAKxL/dnYAWKHls8HksnXgOFtKOabuzMWkC5D+fxac56v"}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/react-table-5.3.0.tgz_1487266922136_0.012098926119506359"},"directories":{}},"5.3.1":{"name":"react-table","version":"5.3.1","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","files":["src/","lib/","react-table.js","react-table.css","media/*.png"],"scripts":{"build:node":"babel src --out-dir lib --source-maps inline","build:css":"rm -rf react-table.css && stylus src/index.styl --compress -o react-table.css && yarn run css:autoprefix","css:autoprefix":"postcss --use autoprefixer react-table.css -r","watch":"npm-run-all --parallel watch:*","watch:node":"onchange 'src/**/*.js' -i -- npm run build:node","watch:css":"onchange 'src/**/*.styl' -i -- npm run build:css","test":"standard","umd":"rm -rf react-table.js && browserify lib/index.js -s reactTable -x react -t babelify -g uglifyify -o react-table.js","prepublish":"npm-run-all build:* && npm run umd","storybook":"start-storybook -p 8000 -c .storybook","docs":"build-storybook -o docs && cp .storybook/CNAME docs/CNAME"},"dependencies":{"classnames":"^2.2.5"},"peerDependencies":{"react":"^15.x.x"},"devDependencies":{"@kadira/storybook":"^2.35.1","autoprefixer":"^6.7.0","babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-preset-es2015":"6.14.0","babel-preset-react":"6.11.1","babel-preset-stage-2":"6.13.0","babelify":"^7.3.0","browserify":"13.1.0","github-markdown-css":"^2.4.1","html-loader":"^0.4.4","markdown-loader":"^0.1.7","namor":"^0.3.0","npm-run-all":"^3.1.1","onchange":"^3.0.2","postcss-cli":"^2.6.0","react":"^15.4.2","react-dom":"^15.4.2","react-json-tree":"^0.10.1","standard":"^8.0.0","storybook":"^0.0.0","stylus":"^0.54.5","uglifyify":"3.0.3"},"browserify-shim":{"react":"global:React"},"standard":{"parser":"babel-eslint","ignore":["node_modules","dist","lib","example","react-table.js","stories","docs"]},"babel":{"presets":["es2015","stage-2","react"]},"gitHead":"ff952de830f94ecc303c4f81e12ea0a04278a161","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@5.3.1","_shasum":"33af0f981c330b51357b5d58646a6e299923f42e","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.2.0","_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"dist":{"shasum":"33af0f981c330b51357b5d58646a6e299923f42e","tarball":"https://registry.npmjs.org/react-table/-/react-table-5.3.1.tgz","integrity":"sha512-iTQ7sznsz99kUbqtG59avsPCGxe2Ji61Ozxl6kqAGsKA7TVLnHtxm/DD46Tlebi2vcGs0YG1cwRRJP87LLz2rw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBiJsyB0d87yruA91xd3C3w23vVvipKajt1ntXStdGyqAiBrv6ey+7xVFfh5dj0l5gyN+K3qHSexCWCsQz8Aix0h7A=="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/react-table-5.3.1.tgz_1487274059865_0.46991916559636593"},"directories":{}},"5.3.2":{"name":"react-table","version":"5.3.2","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","files":["src/","lib/","react-table.js","react-table.css","media/*.png"],"scripts":{"build:node":"babel src --out-dir lib --source-maps inline","build:css":"rm -rf react-table.css && stylus src/index.styl --compress -o react-table.css && yarn run css:autoprefix","css:autoprefix":"postcss --use autoprefixer react-table.css -r","watch":"npm-run-all --parallel watch:*","watch:node":"onchange 'src/**/*.js' -i -- npm run build:node","watch:css":"onchange 'src/**/*.styl' -i -- npm run build:css","test":"standard","umd":"rm -rf react-table.js && browserify lib/index.js -s reactTable -x react -t babelify -g uglifyify -o react-table.js","prepublish":"npm-run-all build:* && npm run umd","storybook":"start-storybook -p 8000 -c .storybook","docs":"build-storybook -o docs && cp .storybook/CNAME docs/CNAME"},"dependencies":{"classnames":"^2.2.5"},"peerDependencies":{"react":"^15.x.x"},"devDependencies":{"@kadira/storybook":"^2.35.1","autoprefixer":"^6.7.0","babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-preset-es2015":"6.14.0","babel-preset-react":"6.11.1","babel-preset-stage-2":"6.13.0","babelify":"^7.3.0","browserify":"13.1.0","github-markdown-css":"^2.4.1","html-loader":"^0.4.4","markdown-loader":"^0.1.7","namor":"^0.3.0","npm-run-all":"^3.1.1","onchange":"^3.0.2","postcss-cli":"^2.6.0","react":"^15.4.2","react-dom":"^15.4.2","react-json-tree":"^0.10.1","standard":"^8.0.0","storybook":"^0.0.0","stylus":"^0.54.5","uglifyify":"3.0.3"},"browserify-shim":{"react":"global:React"},"standard":{"parser":"babel-eslint","ignore":["node_modules","dist","lib","example","react-table.js","stories","docs"]},"babel":{"presets":["es2015","stage-2","react"]},"gitHead":"6b384f2a9002b773b37f98f340a058aa81787452","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@5.3.2","_shasum":"ebcf37a605014b42cda855d907095719347eb2bf","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.2.0","_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"dist":{"shasum":"ebcf37a605014b42cda855d907095719347eb2bf","tarball":"https://registry.npmjs.org/react-table/-/react-table-5.3.2.tgz","integrity":"sha512-7bK7kbesxYjZ+nkXFEfYiNS6N8eSq/m+BnebkmI7kA3loL3dgs9lhrJMygtqQhBuZTBLm4Z4lK1eeX01bhQ5sg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCKyrl2V+qxFyS4Bfxq5YZ7QmH/Nbyk7TQ1T+Focf3XRwIhAM+Dh/ED9q+hJ5o/9IW7toGOUMNUD0YYucANa87WK+gJ"}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/react-table-5.3.2.tgz_1487278962599_0.0775949158705771"},"directories":{}},"5.3.3":{"name":"react-table","version":"5.3.3","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","files":["src/","lib/","react-table.js","react-table.css","media/*.png"],"scripts":{"build:node":"babel src --out-dir lib --source-maps inline","build:css":"rm -rf react-table.css && stylus src/index.styl --compress -o react-table.css && yarn run css:autoprefix","css:autoprefix":"postcss --use autoprefixer react-table.css -r","watch":"npm-run-all --parallel watch:*","watch:node":"onchange 'src/**/*.js' -i -- npm run build:node","watch:css":"onchange 'src/**/*.styl' -i -- npm run build:css","test":"standard","umd":"rm -rf react-table.js && browserify lib/index.js -s reactTable -x react -t babelify -g uglifyify -o react-table.js","prepublish":"npm-run-all build:* && npm run umd","storybook":"start-storybook -p 8000 -c .storybook","docs":"build-storybook -o docs && cp .storybook/CNAME docs/CNAME"},"dependencies":{"classnames":"^2.2.5"},"peerDependencies":{"react":"^15.x.x"},"devDependencies":{"@kadira/storybook":"^2.35.1","autoprefixer":"^6.7.0","babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-preset-es2015":"6.14.0","babel-preset-react":"6.11.1","babel-preset-stage-2":"6.13.0","babelify":"^7.3.0","browserify":"13.1.0","github-markdown-css":"^2.4.1","html-loader":"^0.4.4","markdown-loader":"^0.1.7","namor":"^0.3.0","npm-run-all":"^3.1.1","onchange":"^3.0.2","postcss-cli":"^2.6.0","react":"^15.4.2","react-dom":"^15.4.2","react-json-tree":"^0.10.1","standard":"^8.0.0","storybook":"^0.0.0","stylus":"^0.54.5","uglifyify":"3.0.3"},"browserify-shim":{"react":"global:React"},"standard":{"parser":"babel-eslint","ignore":["node_modules","dist","lib","example","react-table.js","stories","docs"]},"babel":{"presets":["es2015","stage-2","react"]},"gitHead":"a948a9a41ecf42b9f3b6a1dca0feee49d4450ff3","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@5.3.3","_shasum":"3dd0b896a676faa19746956769e00df4607d8a51","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.2.0","_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"dist":{"shasum":"3dd0b896a676faa19746956769e00df4607d8a51","tarball":"https://registry.npmjs.org/react-table/-/react-table-5.3.3.tgz","integrity":"sha512-RnZYQJIJaY+NPP3zOTz1p+PG3oloHwtLoikQwQZMIoRwAjH4c97y5pck6KjhfDYVo9B2lgDxTmHSM5ZlUS5kqA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDzbu69a/wOsSrxl3TcexrSlR0k9V3AIEVs/PeqLQPqFAIhAP8mh8r1oeQOeojHYHN7U4T4QbOSmiVHIk6eJ1xvkbbt"}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/react-table-5.3.3.tgz_1488214881569_0.09407946630381048"},"directories":{}},"5.3.4":{"name":"react-table","version":"5.3.4","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","files":["src/","lib/","react-table.js","react-table.css","media/*.png"],"scripts":{"build:node":"babel src --out-dir lib --source-maps inline","build:css":"rm -rf react-table.css && stylus src/index.styl --compress -o react-table.css && yarn run css:autoprefix","css:autoprefix":"postcss --use autoprefixer react-table.css -r","watch":"npm-run-all --parallel watch:*","watch:node":"onchange 'src/**/*.js' -i -- npm run build:node","watch:css":"onchange 'src/**/*.styl' -i -- npm run build:css","test":"standard","umd":"rm -rf react-table.js && browserify lib/index.js -s reactTable -x react -t babelify -g uglifyify -o react-table.js","prepublish":"npm-run-all build:* && npm run umd","storybook":"start-storybook -p 8000 -c .storybook","docs":"build-storybook -o docs && cp .storybook/CNAME docs/CNAME"},"dependencies":{"classnames":"^2.2.5"},"peerDependencies":{"react":"^15.x.x"},"devDependencies":{"@kadira/storybook":"^2.35.1","autoprefixer":"^6.7.0","babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-preset-es2015":"6.14.0","babel-preset-react":"6.11.1","babel-preset-stage-2":"6.13.0","babelify":"^7.3.0","browserify":"13.1.0","github-markdown-css":"^2.4.1","html-loader":"^0.4.4","markdown-loader":"^0.1.7","namor":"^0.3.0","npm-run-all":"^3.1.1","onchange":"^3.0.2","postcss-cli":"^2.6.0","react":"^15.4.2","react-dom":"^15.4.2","react-json-tree":"^0.10.1","standard":"^8.0.0","storybook":"^0.0.0","stylus":"^0.54.5","uglifyify":"3.0.3"},"browserify-shim":{"react":"global:React"},"standard":{"parser":"babel-eslint","ignore":["node_modules","dist","lib","example","react-table.js","stories","docs"]},"babel":{"presets":["es2015","stage-2","react"]},"gitHead":"6d28bb2c4d96a94ed8684bee14600fc7197c5f6b","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@5.3.4","_shasum":"1a824c76a292f6f9f182fb69d57a93a6bdeb9c06","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.2.0","_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"dist":{"shasum":"1a824c76a292f6f9f182fb69d57a93a6bdeb9c06","tarball":"https://registry.npmjs.org/react-table/-/react-table-5.3.4.tgz","integrity":"sha512-V+KuDbdzjvqeRk83yd6FCTmvsnJJP1PgqLd1Wn2cG7fAF5T1qz3nXavsJ+Wqp8/9MavoEyKoziZYWpLQh6hesA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC465WWGB8EcjQa8pzE8S3u915yMhbWceRIuBhjTV3qXgIgf6q6jR9ivFHx7oucx3pXJ6WLswe30X9IRY661K0iS5g="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/react-table-5.3.4.tgz_1488408656935_0.7489384724758565"},"directories":{}},"5.3.5":{"name":"react-table","version":"5.3.5","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","files":["src/","lib/","react-table.js","react-table.css","media/*.png"],"scripts":{"build:node":"babel src --out-dir lib --source-maps inline","build:css":"rimraf react-table.css && stylus src/index.styl --compress -o react-table.css && yarn run css:autoprefix","css:autoprefix":"postcss --use autoprefixer react-table.css -r","watch":"npm-run-all --parallel watch:*","watch:node":"onchange 'src/**/*.js' -i -- npm run build:node","watch:css":"onchange 'src/**/*.styl' -i -- npm run build:css","test":"standard","umd":"rimraf react-table.js && browserify lib/index.js -s reactTable -x react -t babelify -g uglifyify -o react-table.js","prepublish":"npm-run-all build:* && npm run umd","storybook":"start-storybook -p 8000 -c .storybook","docs":"build-storybook -o docs && cp .storybook/CNAME docs/CNAME"},"dependencies":{"classnames":"^2.2.5"},"peerDependencies":{"react":"^15.x.x"},"devDependencies":{"@kadira/storybook":"^2.35.1","autoprefixer":"^6.7.0","babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-preset-es2015":"6.14.0","babel-preset-react":"6.11.1","babel-preset-stage-2":"6.13.0","babelify":"^7.3.0","browserify":"13.1.0","github-markdown-css":"^2.4.1","html-loader":"^0.4.4","markdown-loader":"^0.1.7","namor":"^0.3.0","npm-run-all":"^3.1.1","onchange":"^3.0.2","postcss-cli":"^2.6.0","react":"^15.4.2","react-dom":"^15.4.2","react-json-tree":"^0.10.1","rimraf":"^2.6.1","standard":"^8.0.0","storybook":"^0.0.0","stylus":"^0.54.5","uglifyify":"3.0.3"},"browserify-shim":{"react":"global:React"},"standard":{"parser":"babel-eslint","ignore":["node_modules","dist","lib","example","react-table.js","stories","docs"]},"babel":{"presets":["es2015","stage-2","react"]},"gitHead":"1a9f0e57b406c7ac63a900fdb47ea11993531c67","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@5.3.5","_shasum":"d65d9232a78f01a77e06f1131ecb430def61428e","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.2.0","_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"dist":{"shasum":"d65d9232a78f01a77e06f1131ecb430def61428e","tarball":"https://registry.npmjs.org/react-table/-/react-table-5.3.5.tgz","integrity":"sha512-DLxev12BnGRDwR/7ZjpITjIcXKQhnXaZ6K9g4EABLQYtx0tg6Y/guQiceDUnriVygJsQz7TGVoHeCuAqKEdgRg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDWIWraVacbRC0mBZP1mkY/Zpts+fw0lTYLq5J0m543rAiAwdXf9rZgeR3yoff1Yvx43+H5hkT34hV0pN0Wp8sCHAQ=="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/react-table-5.3.5.tgz_1490637508827_0.9766046348959208"},"directories":{}},"5.4.0":{"name":"react-table","version":"5.4.0","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","files":["src/","lib/","react-table.js","react-table.css","media/*.png"],"scripts":{"build:node":"babel src --out-dir lib --source-maps inline","build:css":"rimraf react-table.css && stylus src/index.styl --compress -o react-table.css && yarn run css:autoprefix","css:autoprefix":"postcss --use autoprefixer react-table.css -r","watch":"npm-run-all --parallel watch:*","watch:node":"onchange 'src/**/*.js' -i -- npm run build:node","watch:css":"onchange 'src/**/*.styl' -i -- npm run build:css","test":"standard","umd":"rimraf react-table.js && browserify lib/index.js -s reactTable -x react -t babelify -g uglifyify -o react-table.js","prepublish":"npm-run-all build:* && npm run umd","storybook":"start-storybook -p 8000 -c .storybook","docs":"build-storybook -o docs && cp .storybook/CNAME docs/CNAME"},"dependencies":{"classnames":"^2.2.5"},"peerDependencies":{"react":"^15.x.x"},"devDependencies":{"@kadira/storybook":"^2.35.1","autoprefixer":"^6.7.0","babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-preset-es2015":"6.14.0","babel-preset-react":"6.11.1","babel-preset-stage-2":"6.13.0","babelify":"^7.3.0","browserify":"13.1.0","github-markdown-css":"^2.4.1","html-loader":"^0.4.4","markdown-loader":"^0.1.7","namor":"^0.3.0","npm-run-all":"^3.1.1","onchange":"^3.0.2","postcss-cli":"^2.6.0","react":"^15.4.2","react-dom":"^15.4.2","react-json-tree":"^0.10.1","rimraf":"^2.6.1","standard":"^8.0.0","storybook":"^0.0.0","stylus":"^0.54.5","uglifyify":"3.0.3"},"browserify-shim":{"react":"global:React"},"standard":{"parser":"babel-eslint","ignore":["node_modules","dist","lib","example","react-table.js","stories","docs"]},"babel":{"presets":["es2015","stage-2","react"]},"gitHead":"9acf8f37eb67efb2ab4050327543b6062b0953f3","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@5.4.0","_shasum":"292d62d88b34a5a86d62802b71b7c95081299699","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.2.0","_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"dist":{"shasum":"292d62d88b34a5a86d62802b71b7c95081299699","tarball":"https://registry.npmjs.org/react-table/-/react-table-5.4.0.tgz","integrity":"sha512-4I/0uqPDkbVSahD1620GUlP5RONkT/BbxEC/4vYEOnDjgAd9V6qc+6FuP5tvyUu6vAM7GOxODnnAw7Fvz6d6iA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEDZqO4AgxZ1TtXuNwcBHpcSPj8DnP/mqokwXVJaeW/KAiEAiO8K7z41Q9qPdwFSRKwiAvj2S9qsRwsFbFeLhzd+b+k="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/react-table-5.4.0.tgz_1490890930354_0.7072701875586063"},"directories":{}},"5.4.1":{"name":"react-table","version":"5.4.1","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","files":["src/","lib/","react-table.js","react-table.css","media/*.png"],"scripts":{"build:node":"babel src --out-dir lib --source-maps inline","build:css":"rimraf react-table.css && stylus src/index.styl --compress -o react-table.css && yarn run css:autoprefix","css:autoprefix":"postcss --use autoprefixer react-table.css -r","watch":"npm-run-all --parallel watch:*","watch:node":"onchange 'src/**/*.js' -i -- npm run build:node","watch:css":"onchange 'src/**/*.styl' -i -- npm run build:css","test":"standard","umd":"rimraf react-table.js && browserify lib/index.js -s reactTable -x react -t babelify -g uglifyify -o react-table.js","prepublish":"npm-run-all build:* && npm run umd","storybook":"start-storybook -p 8000 -c .storybook","docs":"build-storybook -o docs && cp .storybook/CNAME docs/CNAME"},"dependencies":{"classnames":"^2.2.5"},"peerDependencies":{"react":"^15.x.x"},"devDependencies":{"@kadira/storybook":"^2.35.1","autoprefixer":"^6.7.0","babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-preset-es2015":"6.14.0","babel-preset-react":"6.11.1","babel-preset-stage-2":"6.13.0","babelify":"^7.3.0","browserify":"13.1.0","github-markdown-css":"^2.4.1","html-loader":"^0.4.4","markdown-loader":"^0.1.7","namor":"^0.3.0","npm-run-all":"^3.1.1","onchange":"^3.0.2","postcss-cli":"^2.6.0","react":"^15.4.2","react-dom":"^15.4.2","react-json-tree":"^0.10.1","rimraf":"^2.6.1","standard":"^8.0.0","storybook":"^0.0.0","stylus":"^0.54.5","uglifyify":"3.0.3"},"browserify-shim":{"react":"global:React"},"standard":{"parser":"babel-eslint","ignore":["node_modules","dist","lib","example","react-table.js","stories","docs"]},"babel":{"presets":["es2015","stage-2","react"]},"gitHead":"e8ebf7c780c144c31b67500576ceb282d70861c8","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@5.4.1","_shasum":"19082fea1ca48bac909306d498dbf55fb1e63489","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.2.0","_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"dist":{"shasum":"19082fea1ca48bac909306d498dbf55fb1e63489","tarball":"https://registry.npmjs.org/react-table/-/react-table-5.4.1.tgz","integrity":"sha512-4SKVLctH3YBNx0K9q4h+yMYGtiFXue8fSv3mWGOATFyzD6Qy1Y1XhX7eGrCB4q4J0ZuTd5wVCWntAAq6yKcY1g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCeeVrek7PTBU0PUry7v+0qUBVPsvrHtXuJimHkYIVlyAIhALakDulK2ChBGFMEl96MdWDsVpg2GgW2+Bd46dyr+fNb"}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/react-table-5.4.1.tgz_1490915034545_0.7096673464402556"},"directories":{}},"5.5.0":{"name":"react-table","version":"5.5.0","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","files":["src/","lib/","react-table.js","react-table.css","media/*.png"],"scripts":{"build:node":"babel src --out-dir lib --source-maps inline","build:css":"rimraf react-table.css && stylus src/index.styl --compress -o react-table.css && yarn run css:autoprefix","css:autoprefix":"postcss --use autoprefixer react-table.css -r","watch":"npm-run-all --parallel watch:*","watch:node":"onchange 'src/**/*.js' -i -- npm run build:node","watch:css":"onchange 'src/**/*.styl' -i -- npm run build:css","test":"standard","umd":"rimraf react-table.js && browserify lib/index.js -s reactTable -x react -t babelify -g uglifyify -o react-table.js","prepublish":"npm-run-all build:* && npm run umd","storybook":"start-storybook -p 8000 -c .storybook","docs":"build-storybook -o docs && cp .storybook/CNAME docs/CNAME"},"dependencies":{"classnames":"^2.2.5"},"peerDependencies":{"react":"^15.x.x"},"devDependencies":{"@kadira/storybook":"^2.35.1","autoprefixer":"^6.7.0","babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-preset-es2015":"6.14.0","babel-preset-react":"6.11.1","babel-preset-stage-2":"6.13.0","babelify":"^7.3.0","browserify":"13.1.0","github-markdown-css":"^2.4.1","html-loader":"^0.4.4","markdown-loader":"^0.1.7","namor":"^0.3.0","npm-run-all":"^3.1.1","onchange":"^3.0.2","postcss-cli":"^2.6.0","react":"^15.4.2","react-dom":"^15.4.2","react-json-tree":"^0.10.1","rimraf":"^2.6.1","standard":"^8.0.0","storybook":"^0.0.0","stylus":"^0.54.5","uglifyify":"3.0.3"},"browserify-shim":{"react":"global:React"},"standard":{"parser":"babel-eslint","ignore":["node_modules","dist","lib","example","react-table.js","stories","docs"]},"babel":{"presets":["es2015","stage-2","react"]},"gitHead":"3b39f523be461f41ab497e7a25e397c65a4b09ea","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@5.5.0","_shasum":"6c3d135f2bd72d9d07f95c80a3fbd31736d765c7","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.2.0","_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"dist":{"shasum":"6c3d135f2bd72d9d07f95c80a3fbd31736d765c7","tarball":"https://registry.npmjs.org/react-table/-/react-table-5.5.0.tgz","integrity":"sha512-qLyLQUCvBnmLoXfwpVFi9mKloe7hqVLex3OayEcbAOLAMBJGgm3Twya74NSmZaXFXgBle0UoufrYfPt8qeWSTw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDD0FH9X6FYwFJtoVK3Rp9jt6qj9ZTzCwucmoDjOJr9fgIgGNO2JWAVu+dF5KjLYuf16yBNbVZEEw0gwqbTRqQNVWU="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/react-table-5.5.0.tgz_1491439930539_0.8010181037243456"},"directories":{}},"5.5.1":{"name":"react-table","version":"5.5.1","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","files":["src/","lib/","react-table.js","react-table.css","media/*.png"],"scripts":{"build:node":"babel src --out-dir lib --source-maps inline","build:css":"rimraf react-table.css && stylus src/index.styl --compress -o react-table.css && yarn run css:autoprefix","css:autoprefix":"postcss --use autoprefixer react-table.css -r","watch":"npm-run-all --parallel watch:*","watch:node":"onchange 'src/**/*.js' -i -- npm run build:node","watch:css":"onchange 'src/**/*.styl' -i -- npm run build:css","test":"standard","umd":"rimraf react-table.js && browserify lib/index.js -s reactTable -x react -t babelify -g uglifyify -o react-table.js","prepublish":"npm-run-all build:* && npm run umd","storybook":"start-storybook -p 8000 -c .storybook","docs":"build-storybook -o docs && cp .storybook/CNAME docs/CNAME"},"dependencies":{"classnames":"^2.2.5"},"peerDependencies":{"react":"^15.x.x"},"devDependencies":{"@kadira/storybook":"^2.35.1","autoprefixer":"^6.7.0","babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-preset-es2015":"6.14.0","babel-preset-react":"6.11.1","babel-preset-stage-2":"6.13.0","babelify":"^7.3.0","browserify":"13.1.0","github-markdown-css":"^2.4.1","html-loader":"^0.4.4","markdown-loader":"^0.1.7","namor":"^0.3.0","npm-run-all":"^3.1.1","onchange":"^3.0.2","postcss-cli":"^2.6.0","react":"^15.4.2","react-dom":"^15.4.2","react-json-tree":"^0.10.1","rimraf":"^2.6.1","standard":"^8.0.0","storybook":"^0.0.0","stylus":"^0.54.5","uglifyify":"3.0.3"},"browserify-shim":{"react":"global:React"},"standard":{"parser":"babel-eslint","ignore":["node_modules","dist","lib","example","react-table.js","stories","docs"]},"babel":{"presets":["es2015","stage-2","react"]},"gitHead":"7202776c86362d7f454facf02703d0d831f5ca0c","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@5.5.1","_shasum":"cc253d5194a3defb09bb669e9c7ab800db012d0e","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.2.0","_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"dist":{"shasum":"cc253d5194a3defb09bb669e9c7ab800db012d0e","tarball":"https://registry.npmjs.org/react-table/-/react-table-5.5.1.tgz","integrity":"sha512-Sx2UBtWyM4O6vIKpPS6qYcLAE/jPGSdh8pskO/6WGf3GP0Kj/bKEHYzDRXpNPDKjkN1zqX4RWpUy7pgb4I2Nbg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCEgHmVVcCHUbKqz5vSvQ8HDtpaVlDDoOxccxi0mdlwsQIhALRnCdZYpDl6C4AKz+eo9Wx8JvxvUvgqk8SkqBh7COns"}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/react-table-5.5.1.tgz_1492102167753_0.2600737602915615"},"directories":{}},"5.5.2":{"name":"react-table","version":"5.5.2","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","files":["src/","lib/","react-table.js","react-table.css","media/*.png"],"scripts":{"build:node":"babel src --out-dir lib --source-maps inline","build:css":"rimraf react-table.css && stylus src/index.styl --compress -o react-table.css && yarn run css:autoprefix","css:autoprefix":"postcss --use autoprefixer react-table.css -r","watch":"npm-run-all --parallel watch:*","watch:node":"onchange 'src/**/*.js' -i -- npm run build:node","watch:css":"onchange 'src/**/*.styl' -i -- npm run build:css","test":"standard","umd":"rimraf react-table.js && browserify lib/index.js -s reactTable -x react -t babelify -g uglifyify -o react-table.js","prepublish":"npm-run-all build:* && npm run umd","storybook":"start-storybook -p 8000 -c .storybook","docs":"build-storybook -o docs && cp .storybook/CNAME docs/CNAME"},"dependencies":{"classnames":"^2.2.5"},"peerDependencies":{"react":"^15.x.x"},"devDependencies":{"@kadira/storybook":"^2.35.1","autoprefixer":"^6.7.0","babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-preset-es2015":"6.14.0","babel-preset-react":"6.11.1","babel-preset-stage-2":"6.13.0","babelify":"^7.3.0","browserify":"13.1.0","github-markdown-css":"^2.4.1","html-loader":"^0.4.4","markdown-loader":"^0.1.7","namor":"^0.3.0","npm-run-all":"^3.1.1","onchange":"^3.0.2","postcss-cli":"^2.6.0","react":"^15.4.2","react-dom":"^15.4.2","react-json-tree":"^0.10.1","rimraf":"^2.6.1","standard":"^8.0.0","storybook":"^0.0.0","stylus":"^0.54.5","uglifyify":"3.0.3"},"browserify-shim":{"react":"global:React"},"standard":{"parser":"babel-eslint","ignore":["node_modules","dist","lib","example","react-table.js","stories","docs"]},"babel":{"presets":["es2015","stage-2","react"]},"gitHead":"a64c6a3a766467979e4b1a78b15dd11c52f3f946","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@5.5.2","_shasum":"ae6e07dd9a7140cebad88f05e75b933fec988b44","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.2.0","_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"dist":{"shasum":"ae6e07dd9a7140cebad88f05e75b933fec988b44","tarball":"https://registry.npmjs.org/react-table/-/react-table-5.5.2.tgz","integrity":"sha512-nfeK6hCTYd/64M1WbaTIWpwkMpYQJKkg5WTpGvm0W1uzW+2/JdA+Nkrs2M10DOEhiBqAtzT31UkiJj1SURvMhw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDP5/IO2N+pBqlTKNpgV8dDubWpz+RfFFTc/3digkMPXQIgHpoLD/Q4nWwvTn7aC7svkxzNja/v0ZWca2uoDXhMUVc="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/react-table-5.5.2.tgz_1492442957593_0.17498634941875935"},"directories":{}},"5.5.3":{"name":"react-table","version":"5.5.3","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","files":["src/","lib/","react-table.js","react-table.css","media/*.png"],"scripts":{"build:node":"babel src --out-dir lib --source-maps inline","build:css":"rimraf react-table.css && stylus src/index.styl --compress -o react-table.css && yarn run css:autoprefix","css:autoprefix":"postcss --use autoprefixer react-table.css -r","watch":"npm-run-all --parallel watch:*","watch:node":"onchange 'src/**/*.js' -i -- npm run build:node","watch:css":"onchange 'src/**/*.styl' -i -- npm run build:css","test":"standard","umd":"rimraf react-table.js && webpack --config umd.webpack.js","build":"npm-run-all build:*","prepublish":"npm run build && npm run umd","postpublish":"git push --tags","storybook":"start-storybook -p 8000 -c .storybook","docs":"build-storybook -o docs && cp .storybook/CNAME docs/CNAME"},"dependencies":{"classnames":"^2.2.5"},"peerDependencies":{"react":"^15.x.x"},"devDependencies":{"@kadira/storybook":"^2.35.1","autoprefixer":"^6.7.0","babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-preset-es2015":"6.14.0","babel-preset-react":"6.11.1","babel-preset-stage-2":"6.13.0","github-markdown-css":"^2.4.1","html-loader":"^0.4.4","markdown-loader":"^0.1.7","namor":"^0.3.0","npm-run-all":"^3.1.1","onchange":"^3.0.2","postcss-cli":"^2.6.0","react":"^15.4.2","react-dom":"^15.4.2","react-json-tree":"^0.10.1","rimraf":"^2.6.1","standard":"^8.0.0","storybook":"^0.0.0","stylus":"^0.54.5","webpack":"^2.4.1"},"standard":{"parser":"babel-eslint","ignore":["node_modules","dist","lib","example","react-table.js","stories","docs"]},"babel":{"presets":["es2015","stage-2","react"]},"gitHead":"a1e724c4831afeb4194501c5751a4285561c5129","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@5.5.3","_shasum":"55a4b1e1dc792c828cbacc8929c1a54462d6c187","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.2.0","_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"dist":{"shasum":"55a4b1e1dc792c828cbacc8929c1a54462d6c187","tarball":"https://registry.npmjs.org/react-table/-/react-table-5.5.3.tgz","integrity":"sha512-GdwGERiGhnlMROErBscdQwJ5nupNlneGsiY3TpVDn3yiIXeUOwA7p1XKseC0r3BD3vX2lR557Fm71x3S5R1HmQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDTRKUjGGnXvOgcwGsX/L/+6pUUJKTLCkZ2pdVCmXgqlwIgQjJapj7twwxGQjJoCjuCQCQ3NQW2hH9EWN7V9UIxLJ0="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/react-table-5.5.3.tgz_1492452044230_0.8216113671660423"},"directories":{}},"5.6.0":{"name":"react-table","version":"5.6.0","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","files":["src/","lib/","react-table.js","react-table.css","media/*.png"],"scripts":{"build:node":"babel src --out-dir lib --source-maps inline","build:css":"rimraf react-table.css && stylus src/index.styl --compress -o react-table.css && yarn run css:autoprefix","css:autoprefix":"postcss --use autoprefixer react-table.css -r","watch":"npm-run-all --parallel watch:*","watch:node":"onchange 'src/**/*.js' -i -- npm run build:node","watch:css":"onchange 'src/**/*.styl' -i -- npm run build:css","test":"standard","umd":"rimraf react-table.js && webpack --config umd.webpack.js","build":"npm-run-all build:*","prepublish":"npm run build && npm run umd","postpublish":"git push --tags","storybook":"start-storybook -p 8000 -c .storybook","docs":"build-storybook -o docs && cp .storybook/CNAME docs/CNAME"},"dependencies":{"classnames":"^2.2.5"},"peerDependencies":{"react":"^15.x.x"},"devDependencies":{"@kadira/storybook":"^2.35.1","autoprefixer":"^6.7.0","babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-preset-es2015":"6.14.0","babel-preset-react":"6.11.1","babel-preset-stage-2":"6.13.0","github-markdown-css":"^2.4.1","html-loader":"^0.4.4","markdown-loader":"^0.1.7","namor":"^0.3.0","npm-run-all":"^3.1.1","onchange":"^3.0.2","postcss-cli":"^2.6.0","react":"^15.4.2","react-dom":"^15.4.2","react-json-tree":"^0.10.1","rimraf":"^2.6.1","standard":"^8.0.0","storybook":"^0.0.0","stylus":"^0.54.5","webpack":"^2.4.1"},"standard":{"parser":"babel-eslint","ignore":["node_modules","dist","lib","example","react-table.js","stories","docs"]},"babel":{"presets":["es2015","stage-2","react"]},"gitHead":"0c3f2f2cd1153d13acbe09e77e84d181a396c351","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@5.6.0","_shasum":"0e61845361948999d1ae9f24d92e574ec333cd41","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.2.0","_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"dist":{"shasum":"0e61845361948999d1ae9f24d92e574ec333cd41","tarball":"https://registry.npmjs.org/react-table/-/react-table-5.6.0.tgz","integrity":"sha512-HEwwdB7IxYfeUazRpg3dAftoDh1Bb2HFSQ4bDcTMBsm6LrlIzPbaiYeo7ws3EclSQiRMu0G7i7iWRwJipRAj9Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEz7fu5WC3KWCVxuOLgum0vicDT9vLtbY0OXg2RdHauKAiATIGhxvympduUMu2jBOoVAzYK6qhoCjeMfVMdHfpDwDQ=="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/react-table-5.6.0.tgz_1492728303277_0.6704086377285421"},"directories":{}},"6.0.0":{"name":"react-table","version":"6.0.0","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","files":["src/","lib/","react-table.js","react-table.css","media/*.png"],"scripts":{"build:node":"babel src --out-dir lib --source-maps inline","build:css":"rimraf react-table.css && stylus src/index.styl --compress -o react-table.css && yarn run css:autoprefix","css:autoprefix":"postcss --use autoprefixer react-table.css -r","watch":"npm-run-all --parallel watch:*","watch:node":"onchange 'src/**/*.js' -i -- npm run build:node","watch:css":"onchange 'src/**/*.styl' -i -- npm run build:css","test":"standard","umd":"rimraf react-table.js && webpack --config umd.webpack.js","build":"npm-run-all build:*","prepublish":"npm run build && npm run umd","postpublish":"git push --tags","storybook":"start-storybook -p 8000 -c .storybook","docs":"build-storybook -o docs && cp .storybook/CNAME docs/CNAME"},"dependencies":{"classnames":"^2.2.5","raw-loader":"^0.5.1"},"peerDependencies":{"react":"^15.x.x"},"devDependencies":{"@kadira/storybook":"^2.35.1","autoprefixer":"^6.7.0","babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-preset-es2015":"6.14.0","babel-preset-react":"6.11.1","babel-preset-stage-2":"6.13.0","github-markdown-css":"^2.4.1","html-loader":"^0.4.4","markdown-loader":"^0.1.7","namor":"^0.3.0","npm-run-all":"^3.1.1","onchange":"^3.0.2","postcss-cli":"^2.6.0","react":"^15.4.2","react-dom":"^15.4.2","react-json-tree":"^0.10.1","rimraf":"^2.6.1","standard":"^8.0.0","storybook":"^0.0.0","stylus":"^0.54.5","webpack":"^2.4.1"},"standard":{"parser":"babel-eslint","ignore":["node_modules","dist","lib","example","react-table.js","stories","docs"]},"babel":{"presets":["es2015","stage-2","react"]},"gitHead":"2ba0bf73ad478fbb1193a53c865365739418f3a7","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@6.0.0","_shasum":"50a9daccd1f3dd588b20c15ba15894bd2911de96","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.2.0","_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"dist":{"shasum":"50a9daccd1f3dd588b20c15ba15894bd2911de96","tarball":"https://registry.npmjs.org/react-table/-/react-table-6.0.0.tgz","integrity":"sha512-jBvobdYNJnj8AUa6U4r7U/oRHouXFO9pYcBwVaX0G2tktkgCF/ZkP0jK/JBrZgnRgXa7gj9yT7Xg0weX8Yo6vA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDjuHDLhY79WT5BWeU2e+Pp4MQaAMerYuLKzhD2gEmvhwIgPl9rfun1kj2b7/g6KN02gbsYTKjVxez8aonb9pk5Z4M="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/react-table-6.0.0.tgz_1494531401053_0.459742448059842"},"directories":{}},"6.0.1":{"name":"react-table","version":"6.0.1","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","files":["src/","lib/","react-table.js","react-table.css","media/*.png"],"scripts":{"build:node":"babel src --out-dir lib --source-maps inline","build:css":"rimraf react-table.css && stylus src/index.styl --compress -o react-table.css && yarn run css:autoprefix","css:autoprefix":"postcss --use autoprefixer react-table.css -r","watch":"npm-run-all --parallel watch:*","watch:node":"onchange 'src/**/*.js' -i -- npm run build:node","watch:css":"onchange 'src/**/*.styl' -i -- npm run build:css","test":"standard","umd":"rimraf react-table.js && webpack --config umd.webpack.js","build":"npm-run-all build:*","prepublish":"npm run build && npm run umd","postpublish":"git push --tags","storybook":"start-storybook -p 8000 -c .storybook","docs":"build-storybook -o docs && cp .storybook/CNAME docs/CNAME"},"dependencies":{"classnames":"^2.2.5","raw-loader":"^0.5.1"},"peerDependencies":{"react":"^15.x.x"},"devDependencies":{"@kadira/storybook":"^2.35.1","autoprefixer":"^6.7.0","babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-preset-es2015":"6.14.0","babel-preset-react":"6.11.1","babel-preset-stage-2":"6.13.0","github-markdown-css":"^2.4.1","html-loader":"^0.4.4","markdown-loader":"^0.1.7","namor":"^0.3.0","npm-run-all":"^3.1.1","onchange":"^3.0.2","postcss-cli":"^2.6.0","react":"^15.4.2","react-dom":"^15.4.2","react-json-tree":"^0.10.1","rimraf":"^2.6.1","standard":"^8.0.0","storybook":"^0.0.0","stylus":"^0.54.5","webpack":"^2.4.1"},"standard":{"parser":"babel-eslint","ignore":["node_modules","dist","lib","example","react-table.js","stories","docs"]},"babel":{"presets":["es2015","stage-2","react"]},"gitHead":"ee5fae8c6f3bcf528b04b76a9bd5e81cf2e14a89","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@6.0.1","_shasum":"1be66b9eb1bffe3285809ad0dc412362fb127806","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.2.0","_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"dist":{"shasum":"1be66b9eb1bffe3285809ad0dc412362fb127806","tarball":"https://registry.npmjs.org/react-table/-/react-table-6.0.1.tgz","integrity":"sha512-D8WjPFvZDy6RW5wkGk57N97SuvjID00I7bL8M1NoQE5JD6y8PhWaiEtmpjLIiErmPCN8yPkoQJOltZ5uftl8ww==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAwLWClOUGLIr2s7Hwj/uxwx+0a9tePzC8678dXCL8ssAiEAxUlL6or4SvEeUDXAGSlZGeUfM75xaNAetIOSyqb9rnA="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/react-table-6.0.1.tgz_1494611032099_0.23392608645372093"},"directories":{}},"6.0.2":{"name":"react-table","version":"6.0.2","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","files":["src/","lib/","react-table.js","react-table.css","media/*.png"],"scripts":{"build:node":"babel src --out-dir lib --source-maps inline","build:css":"rimraf react-table.css && stylus src/index.styl --compress -o react-table.css && yarn run css:autoprefix","css:autoprefix":"postcss --use autoprefixer react-table.css -r","watch":"npm-run-all --parallel watch:*","watch:node":"onchange 'src/**/*.js' -i -- npm run build:node","watch:css":"onchange 'src/**/*.styl' -i -- npm run build:css","test":"standard","umd":"rimraf react-table.js && webpack --config umd.webpack.js","build":"npm-run-all build:*","prepublish":"npm run build && npm run umd","postpublish":"git push --tags","docs":"cd docs && yarn && yarn start","docs:build":"cd docs && yarn && yarn run build"},"dependencies":{"classnames":"^2.2.5"},"peerDependencies":{"react":"^15.x.x"},"devDependencies":{"autoprefixer":"^6.7.0","babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-preset-es2015":"6.14.0","babel-preset-react":"6.11.1","babel-preset-stage-2":"6.13.0","github-markdown-css":"^2.4.1","html-loader":"^0.4.4","markdown-loader":"^0.1.7","namor":"^0.3.0","npm-run-all":"^3.1.1","onchange":"^3.0.2","postcss-cli":"^2.6.0","raw-loader":"^0.5.1","react":"^15.4.2","react-dom":"^15.4.2","react-json-tree":"^0.10.1","rimraf":"^2.6.1","standard":"^10.0.2","storybook":"^0.0.0","stylus":"^0.54.5","webpack":"^2.4.1"},"standard":{"parser":"babel-eslint","ignore":["node_modules","dist","lib","example","react-table.js","stories","docs"]},"babel":{"presets":["es2015","stage-2","react"]},"gitHead":"6b69363e1e24379322fbf3508b2a03e06d29edd0","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@6.0.2","_shasum":"fe61cf9d2e563fae6b14a50c683e7d969f68eec9","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.2.0","_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"dist":{"shasum":"fe61cf9d2e563fae6b14a50c683e7d969f68eec9","tarball":"https://registry.npmjs.org/react-table/-/react-table-6.0.2.tgz","integrity":"sha512-MBOPf342XjRwPpl0o5JqSPALREdeB/Uu3vYyMoVS5GSkI3H5e8TQiJ7kzDS0FcaLTPgAN1xY/XgJfgFw/ebTbA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDoVKulfFTmxjlx0VdRHoTDvWpqBWjrlHEwdDZdV0YjBAiAvLqprpU/fT5SuJWrRoO/zKrt3+ZFlo12YLpXnmR+6TQ=="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/react-table-6.0.2.tgz_1494905005450_0.43764145695604384"},"directories":{}},"6.0.3":{"name":"react-table","version":"6.0.3","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","files":["src/","lib/","react-table.js","react-table.css","media/*.png"],"scripts":{"build:node":"babel src --out-dir lib --source-maps inline","build:css":"rimraf react-table.css && stylus src/index.styl --compress -o react-table.css && yarn run css:autoprefix","css:autoprefix":"postcss --use autoprefixer react-table.css -r","watch":"npm-run-all --parallel watch:*","watch:node":"onchange 'src/**/*.js' -i -- npm run build:node","watch:css":"onchange 'src/**/*.styl' -i -- npm run build:css","test":"standard","umd":"rimraf react-table.js && webpack --config umd.webpack.js","build":"npm-run-all build:*","prepublish":"npm run build && npm run umd","postpublish":"git push --tags","docs":"cd docs && yarn && yarn start","docs:build":"cd docs && yarn && yarn run build"},"dependencies":{"classnames":"^2.2.5"},"peerDependencies":{"react":"^15.x.x"},"devDependencies":{"autoprefixer":"^6.7.0","babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-preset-es2015":"6.14.0","babel-preset-react":"6.11.1","babel-preset-stage-2":"6.13.0","github-markdown-css":"^2.4.1","html-loader":"^0.4.4","markdown-loader":"^0.1.7","namor":"^0.3.0","npm-run-all":"^3.1.1","onchange":"^3.0.2","postcss-cli":"^2.6.0","raw-loader":"^0.5.1","react":"^15.4.2","react-dom":"^15.4.2","react-json-tree":"^0.10.1","rimraf":"^2.6.1","standard":"^10.0.2","storybook":"^0.0.0","stylus":"^0.54.5","webpack":"^2.4.1"},"standard":{"parser":"babel-eslint","ignore":["node_modules","dist","lib","example","react-table.js","stories","docs"]},"babel":{"presets":["es2015","stage-2","react"]},"gitHead":"e70b29066be914be8043ae6074d293abf91099ae","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@6.0.3","_shasum":"665ab9b3447fd732aad92a9c65b5312f18236fef","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.2.0","_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"dist":{"shasum":"665ab9b3447fd732aad92a9c65b5312f18236fef","tarball":"https://registry.npmjs.org/react-table/-/react-table-6.0.3.tgz","integrity":"sha512-rdeLs7nByys1lAUG+j/XBTSM0L2hSdYIdhgsODGtUUOTxxDk1nzaBLH+gp5E0YxYidg4KF7SFDhrz2hGOLwSdg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC+HTRJORjcOj5NXrlBDJDL72yW8pKNfJHYS3cNxU7mWgIgHX2HAFele7TZtdwOvFYiKiZoV4ZTLNsf+7/BKNP+J8g="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/react-table-6.0.3.tgz_1494957061030_0.7777294314000756"},"directories":{}},"6.0.4":{"name":"react-table","version":"6.0.4","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","files":["src/","lib/","react-table.js","react-table.css","media/*.png"],"scripts":{"build:node":"babel src --out-dir lib --source-maps inline","build:css":"rimraf react-table.css && stylus src/index.styl --compress -o react-table.css && yarn run css:autoprefix","css:autoprefix":"postcss --use autoprefixer react-table.css -r","watch":"npm-run-all --parallel watch:*","watch:node":"onchange 'src/**/*.js' -i -- npm run build:node","watch:css":"onchange 'src/**/*.styl' -i -- npm run build:css","test":"standard","umd":"rimraf react-table.js && webpack --config umd.webpack.js","build":"npm-run-all build:*","prepublish":"npm run build && npm run umd","postpublish":"git push --tags","docs":"cd docs && yarn && yarn start","docs:build":"cd docs && yarn && yarn run build"},"dependencies":{"classnames":"^2.2.5","react-json-tree":"^0.10.9"},"peerDependencies":{"react":"^15.x.x"},"devDependencies":{"autoprefixer":"^6.7.0","babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-preset-es2015":"6.14.0","babel-preset-react":"6.11.1","babel-preset-stage-2":"6.13.0","npm-run-all":"^3.1.1","onchange":"^3.0.2","postcss-cli":"^2.6.0","react":"^15.4.2","react-dom":"^15.4.2","rimraf":"^2.6.1","standard":"^10.0.2","stylus":"^0.54.5","webpack":"^2.5.1"},"standard":{"parser":"babel-eslint","ignore":["node_modules","dist","lib","example","react-table.js","stories","docs"]},"babel":{"presets":["es2015","stage-2","react"]},"gitHead":"1995bba652e17f341f46a52787f5a3783e62e8db","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@6.0.4","_shasum":"0ec4ebc9d78235687ff9e95d1367fc57088273e6","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.2.0","_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"dist":{"shasum":"0ec4ebc9d78235687ff9e95d1367fc57088273e6","tarball":"https://registry.npmjs.org/react-table/-/react-table-6.0.4.tgz","integrity":"sha512-8ngeKeScADPfIGx3zJHiBZFbQRQbG/PooskT3KpK0zoMX/MTJaE3AoSJ55QRZ+AX4uNTv7YpHUhL4BnrY8wR+A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICfHK23lbo5VTTGW3JoJo/l/h0K3lRbAMulzEGZSbnCOAiBu/ddqLhzdKpn9e2rESXYpVTqxjRzB0wjT9+5/jDwJSg=="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table-6.0.4.tgz_1495217218684_0.41063216025941074"},"directories":{}},"6.0.5":{"name":"react-table","version":"6.0.5","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","files":["src/","lib/","react-table.js","react-table.css","media/*.png"],"scripts":{"build:node":"babel src --out-dir lib --source-maps inline","build:css":"rimraf react-table.css && stylus src/index.styl --compress -o react-table.css && yarn run css:autoprefix","css:autoprefix":"postcss --use autoprefixer react-table.css -r","watch":"npm-run-all --parallel watch:*","watch:node":"onchange 'src/**/*.js' -i -- npm run build:node","watch:css":"onchange 'src/**/*.styl' -i -- npm run build:css","test":"standard","umd":"rimraf react-table.js && webpack --config umd.webpack.js","build":"npm-run-all build:*","prepublish":"npm run build && npm run umd","postpublish":"git push --tags","docs":"cd docs && yarn && yarn start","docs:build":"cd docs && yarn && yarn run build"},"dependencies":{"classnames":"^2.2.5","react-json-tree":"^0.10.9"},"peerDependencies":{"react":"^15.x.x"},"devDependencies":{"autoprefixer":"^6.7.0","babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-preset-es2015":"6.14.0","babel-preset-react":"6.11.1","babel-preset-stage-2":"6.13.0","npm-run-all":"^3.1.1","onchange":"^3.0.2","postcss-cli":"^2.6.0","react":"^15.4.2","react-dom":"^15.4.2","rimraf":"^2.6.1","standard":"^10.0.2","stylus":"^0.54.5","webpack":"^2.5.1"},"standard":{"parser":"babel-eslint","ignore":["node_modules","dist","lib","example","react-table.js","stories","docs"]},"babel":{"presets":["es2015","stage-2","react"]},"gitHead":"846fc0d84d1a8bde83d613c7b4c63784a726f532","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@6.0.5","_shasum":"8a0e034e36304722447aed91cb7c069b640d035d","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.2.0","_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"dist":{"shasum":"8a0e034e36304722447aed91cb7c069b640d035d","tarball":"https://registry.npmjs.org/react-table/-/react-table-6.0.5.tgz","integrity":"sha512-b1ohrlO7K5P2Jn+tcMJ1R5ZuMyEjqVvqWG65OciK8vMn6deAT+SCF4QRfTiaj7sK/8fhOJ+M/Qn3I8FoNTkQNA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIG+uoqO5bWb6zBhmO/F/VuDl3+cAcWhRvtAi4gwEb8ukAiEAnLlqsxpOWkrSlHH6ZYyyjNdDOSsD2WKtB63skgOPjF0="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table-6.0.5.tgz_1495232884237_0.26902959030121565"},"directories":{}},"6.2.0":{"name":"react-table","version":"6.2.0","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","files":["src/","lib/","react-table.js","react-table.css","media/*.png"],"scripts":{"build:node":"babel src --out-dir lib --source-maps inline","build:css":"rimraf react-table.css && stylus src/index.styl --compress -o react-table.css && yarn run css:autoprefix","css:autoprefix":"postcss --use autoprefixer react-table.css -r","watch":"npm-run-all --parallel watch:*","watch:node":"onchange 'src/**/*.js' -i -- npm run build:node","watch:css":"onchange 'src/**/*.styl' -i -- npm run build:css","test":"standard","umd":"rimraf react-table.js && webpack --config umd.webpack.js","build":"npm-run-all build:*","prepublish":"npm run build && npm run umd","postpublish":"git push --tags","docs":"cd docs && yarn && yarn start","docs:build":"cd docs && yarn && yarn run build"},"dependencies":{"classnames":"^2.2.5","react-json-tree":"^0.10.9"},"peerDependencies":{"react":"^15.x.x"},"devDependencies":{"autoprefixer":"^6.7.0","babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-preset-es2015":"6.14.0","babel-preset-react":"6.11.1","babel-preset-stage-2":"6.13.0","npm-run-all":"^3.1.1","onchange":"^3.0.2","postcss-cli":"^2.6.0","react":"^15.4.2","react-dom":"^15.4.2","rimraf":"^2.6.1","standard":"^10.0.2","stylus":"^0.54.5","webpack":"^2.5.1"},"standard":{"parser":"babel-eslint","ignore":["node_modules","dist","lib","example","react-table.js","stories","docs"]},"babel":{"presets":["es2015","stage-2","react"]},"gitHead":"f4704b146cb1ad49204aa3a9dc5c6af247d34226","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@6.2.0","_shasum":"c9734d897af9a225486a77ab57f669511adda36c","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.2.0","_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"dist":{"shasum":"c9734d897af9a225486a77ab57f669511adda36c","tarball":"https://registry.npmjs.org/react-table/-/react-table-6.2.0.tgz","integrity":"sha512-hzTcvNhKX9sZgfj4SzAFqFNOms0LhJmKBmUmZQ20kpAfp14WST3OMKhYUlph4HaF7ORAV1I9epXnhwNL80oU1A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDmyA0qpYP8LfPspquWVQrjKCZpzsp/JXjuKadAxx7dwgIgQK40H2NH0SpCuHpYgKU68oWRscWMSk9aHH+sQJEpFOg="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table-6.2.0.tgz_1496894285883_0.09802628378383815"},"directories":{}},"6.3.0":{"name":"react-table","version":"6.3.0","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","files":["src/","lib/","react-table.js","react-table.css","media/*.png"],"scripts":{"build:node":"babel src --out-dir lib --source-maps inline","build:css":"rimraf react-table.css && stylus src/index.styl --compress -o react-table.css && yarn run css:autoprefix","css:autoprefix":"postcss --use autoprefixer react-table.css -r","watch":"npm-run-all --parallel watch:*","watch:node":"onchange 'src/**/*.js' -i -- npm run build:node","watch:css":"onchange 'src/**/*.styl' -i -- npm run build:css","test":"standard","umd":"rimraf react-table.js && webpack --config umd.webpack.js","build":"npm-run-all build:*","prepublish":"npm run build && npm run umd","postpublish":"git push --tags","docs":"yarn watch & cd docs && yarn && yarn start","docs:build":"yarn build && cd docs && yarn && yarn run build"},"dependencies":{"classnames":"^2.2.5","react-json-tree":"^0.10.9"},"peerDependencies":{"react":"^15.x.x"},"devDependencies":{"autoprefixer":"^6.7.0","babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-preset-es2015":"6.14.0","babel-preset-react":"6.11.1","babel-preset-stage-2":"6.13.0","npm-run-all":"^3.1.1","onchange":"^3.0.2","postcss-cli":"^2.6.0","react":"^15.4.2","react-dom":"^15.4.2","rimraf":"^2.6.1","standard":"^10.0.2","stylus":"^0.54.5","webpack":"^2.5.1"},"standard":{"parser":"babel-eslint","ignore":["node_modules","dist","lib","example","react-table.js","stories","docs"]},"babel":{"presets":["es2015","stage-2","react"]},"gitHead":"fdb3e77b0080efbfce5bc7b175f830f4ba617612","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@6.3.0","_shasum":"b6ca939f342d89861d437eb6c97cc2ec103fd5c2","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.2.0","_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"dist":{"shasum":"b6ca939f342d89861d437eb6c97cc2ec103fd5c2","tarball":"https://registry.npmjs.org/react-table/-/react-table-6.3.0.tgz","integrity":"sha512-H9Kb+2z8pz5EU5sVnLnfu9+s82/AJZDvtu1CMhZ3xLVwONWIqJNVorP48op76Rd8ALf/uRj0KGdoaBPukdYGvA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHpENcgQLsrxz6KEP8LswIVvXsKQV9+F/QomNgkJhPfTAiAbyK/zracyoJBWoWvTvl+femvAI+E9vXt2p2twyRp0zQ=="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table-6.3.0.tgz_1497063772200_0.5712465611286461"},"directories":{}},"6.4.0":{"name":"react-table","version":"6.4.0","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","files":["src/","lib/","react-table.js","react-table.css","media/*.png"],"scripts":{"build:node":"babel src --out-dir lib --source-maps inline","build:css":"rimraf react-table.css && stylus src/index.styl --compress -o react-table.css && yarn run css:autoprefix","css:autoprefix":"postcss --use autoprefixer react-table.css -r","watch":"npm-run-all --parallel watch:*","watch:node":"onchange 'src/**/*.js' -i -- npm run build:node","watch:css":"onchange 'src/**/*.styl' -i -- npm run build:css","test":"standard","umd":"rimraf react-table.js && webpack --config umd.webpack.js","build":"npm-run-all build:*","prepublish":"npm run build && npm run umd","postpublish":"git push --tags","docs":"yarn watch & cd docs && yarn && yarn start","docs:build":"yarn build && cd docs && yarn && yarn run build"},"dependencies":{"classnames":"^2.2.5","react-json-tree":"^0.10.9"},"peerDependencies":{"react":"^15.x.x"},"devDependencies":{"autoprefixer":"^6.7.0","babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-preset-es2015":"6.14.0","babel-preset-react":"6.11.1","babel-preset-stage-2":"6.13.0","npm-run-all":"^3.1.1","onchange":"^3.0.2","postcss-cli":"^2.6.0","react":"^15.4.2","react-dom":"^15.4.2","rimraf":"^2.6.1","standard":"^10.0.2","stylus":"^0.54.5","webpack":"^2.5.1"},"standard":{"parser":"babel-eslint","ignore":["node_modules","dist","lib","example","react-table.js","stories","docs"]},"babel":{"presets":["es2015","stage-2","react"]},"gitHead":"b76f9c956d2244af31a4369b9e38243a7565c09b","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@6.4.0","_shasum":"c3a87f290b2645b063bfd51b1ba17d55269e2321","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.2.0","_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"dist":{"shasum":"c3a87f290b2645b063bfd51b1ba17d55269e2321","tarball":"https://registry.npmjs.org/react-table/-/react-table-6.4.0.tgz","integrity":"sha512-7PnAh9LmH2Sdl6FPQa6CeK+13VKI7dnLeb3ETqPnRA1YLyRHavGjyuEn2lCx3SmKBJy+8JbxdvLjtqOArhaTvA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAUlz3WGY17/1jZDa8pzlQcCScFn6pd8g3uqZx480p6AAiAVqaTsmND07dzb9KaP0dtMcVbHiIWyZpryntBUiqWwIA=="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table-6.4.0.tgz_1497893681707_0.8582039643079042"},"directories":{}},"6.5.0":{"name":"react-table","version":"6.5.0","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","files":["src/","lib/","react-table.js","react-table.css","media/*.png"],"scripts":{"build:node":"babel src --out-dir lib --source-maps inline","build:css":"rimraf react-table.css && stylus src/index.styl --compress -o react-table.css && yarn run css:autoprefix","css:autoprefix":"postcss --use autoprefixer react-table.css -r","watch":"npm-run-all --parallel watch:*","watch:node":"onchange 'src/**/*.js' -i -- npm run build:node","watch:css":"onchange 'src/**/*.styl' -i -- npm run build:css","test":"eslint src","umd":"rimraf react-table.js && webpack --config umd.webpack.js","build":"npm-run-all build:*","prepublish":"npm run build && npm run umd","postpublish":"git push --tags","docs":"yarn watch & cd docs && yarn && yarn start","docs:build":"yarn build && cd docs && yarn && yarn run build"},"dependencies":{"classnames":"^2.2.5"},"peerDependencies":{"react":"^15.x.x"},"devDependencies":{"autoprefixer":"^6.7.0","babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-preset-es2015":"6.14.0","babel-preset-react":"6.11.1","babel-preset-stage-2":"6.13.0","eslint":"^4.1.1","match-sorter":"^1.8.0","npm-run-all":"^3.1.1","onchange":"^3.0.2","postcss-cli":"^2.6.0","react":"^15.4.2","react-dom":"^15.4.2","react-json-tree":"^0.10.9","rimraf":"^2.6.1","standard":"^10.0.2","stylus":"^0.54.5","webpack":"^2.5.1"},"babel":{"presets":["es2015","stage-2","react"]},"gitHead":"f9a1cfae1e428169dc9158f61e24e40a1f46785e","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@6.5.0","_shasum":"8588a78556a26447119eedccc6c57ea82d8b90b2","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.2.0","_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"dist":{"shasum":"8588a78556a26447119eedccc6c57ea82d8b90b2","tarball":"https://registry.npmjs.org/react-table/-/react-table-6.5.0.tgz","integrity":"sha512-fbJt5QKzxLzBwJjyr5B4L6SDlZ+H408LMqMmOnJdVTB8TRUOKiAOYNGdUI314NqtNpz840Ut3D1cJS6LyRz19g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDGE22i5N4KujRTzgL9AoidPsoL1iRl9bYQv9q3riJHfgIhAJqmN0Z0+EJCJDNCtt2ufNwvVJ9BEXinTWDybZUD8utH"}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table-6.5.0.tgz_1499272321526_0.9689203805755824"},"directories":{}},"6.5.1":{"name":"react-table","version":"6.5.1","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","files":["src/","lib/","react-table.js","react-table.css","media/*.png"],"scripts":{"build:node":"babel src --out-dir lib --source-maps inline","build:css":"rimraf react-table.css && stylus src/index.styl --compress -o react-table.css && yarn run css:autoprefix","css:autoprefix":"postcss --use autoprefixer react-table.css -r","watch":"npm-run-all --parallel watch:*","watch:node":"onchange 'src/**/*.js' -i -- npm run build:node","watch:css":"onchange 'src/**/*.styl' -i -- npm run build:css","test":"eslint src","umd":"rimraf react-table.js && webpack --config umd.webpack.js","build":"npm-run-all build:*","prepublish":"npm run build && npm run umd","postpublish":"git push --tags","docs":"yarn watch & cd docs && yarn && yarn start","docs:build":"yarn build && cd docs && yarn && yarn run build"},"dependencies":{"classnames":"^2.2.5"},"peerDependencies":{"react":"^15.x.x"},"devDependencies":{"autoprefixer":"^6.7.0","babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-preset-es2015":"6.14.0","babel-preset-react":"6.11.1","babel-preset-stage-2":"6.13.0","eslint":"^4.1.1","match-sorter":"^1.8.0","npm-run-all":"^3.1.1","onchange":"^3.0.2","postcss-cli":"^2.6.0","react":"^15.4.2","react-dom":"^15.4.2","react-json-tree":"^0.10.9","rimraf":"^2.6.1","standard":"^10.0.2","stylus":"^0.54.5","webpack":"^2.5.1"},"babel":{"presets":["es2015","stage-2","react"]},"gitHead":"30ed0c82fc7fa467fcd1ad4c902fd5eef1333421","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@6.5.1","_shasum":"f60b80f8d23c5977969561fa56eddcdf33fb9900","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.2.0","_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"dist":{"shasum":"f60b80f8d23c5977969561fa56eddcdf33fb9900","tarball":"https://registry.npmjs.org/react-table/-/react-table-6.5.1.tgz","integrity":"sha512-LIZi6EGAsfGr0jyKPmvQjHOLgBNSwCla5JYAdCoNVeEIJ7s3MgFTsTyy6hkbZRsyh32fSAazgef7cRRhxyRNow==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCL/tC1yfoo0LML+c1LRGBRA0Ynrg6XkVdwVsKJy8l/MQIhAOWypTSp8CrZAtSAk2njaWG4puwYRQoFcIXXtCqrSZnf"}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table-6.5.1.tgz_1499296178410_0.9127379183191806"},"directories":{}},"6.5.2":{"name":"react-table","version":"6.5.2","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","files":["src/","lib/","react-table.js","react-table.css","media/*.png"],"scripts":{"build:node":"babel src --out-dir lib --source-maps inline","build:css":"rimraf react-table.css && stylus src/index.styl --compress -o react-table.css && yarn run css:autoprefix","css:autoprefix":"postcss --use autoprefixer react-table.css -r","watch":"npm-run-all --parallel watch:*","watch:node":"onchange 'src/**/*.js' -i -- npm run build:node","watch:css":"onchange 'src/**/*.styl' -i -- npm run build:css","test":"eslint src","umd":"rimraf react-table.js && webpack --config umd.webpack.js","build":"npm-run-all build:*","prepublish":"npm run build && npm run umd","postpublish":"git push --tags","docs":"yarn watch & cd docs && yarn && yarn start","docs:build":"yarn build && cd docs && yarn && yarn run build"},"dependencies":{"classnames":"^2.2.5"},"peerDependencies":{"react":"^15.x.x"},"devDependencies":{"autoprefixer":"^6.7.0","babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-preset-es2015":"6.14.0","babel-preset-react":"6.11.1","babel-preset-stage-2":"6.13.0","eslint":"^4.1.1","match-sorter":"^1.8.0","npm-run-all":"^3.1.1","onchange":"^3.0.2","postcss-cli":"^2.6.0","react":"^15.4.2","react-dom":"^15.4.2","react-json-tree":"^0.10.9","rimraf":"^2.6.1","standard":"^10.0.2","stylus":"^0.54.5","webpack":"^2.5.1"},"babel":{"presets":["es2015","stage-2","react"]},"gitHead":"8004e7a85f4e0a34a4f77e99d86884882afce4b6","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@6.5.2","_shasum":"5362393cf713aada6c0000cc883bb8829600fc73","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.2.0","_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"dist":{"shasum":"5362393cf713aada6c0000cc883bb8829600fc73","tarball":"https://registry.npmjs.org/react-table/-/react-table-6.5.2.tgz","integrity":"sha512-hMRBb7Utlli+p5qLiaBAVk2sNcx1aWO39DzqxPy5CkwrlH/8dAHyK59gigwTXlyL3xg8xZvbRfr9TpXVuDPoFw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAgMI4N8qCm9B5/rurWuyqQ6RROl6aZX3H7bzj/1IzWfAiEA8h1//7KT82PtZjw0mD8DSDf9X6pBWT2N7Os/K9VoKfM="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table-6.5.2.tgz_1501701960169_0.22446978208608925"},"directories":{}},"6.5.3":{"name":"react-table","version":"6.5.3","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","files":["src/","lib/","react-table.js","react-table.css","media/*.png"],"scripts":{"build:node":"babel src --out-dir lib --source-maps inline","build:css":"rimraf react-table.css && stylus src/index.styl --compress -o react-table.css && yarn run css:autoprefix","css:autoprefix":"postcss --use autoprefixer react-table.css -r","watch":"npm-run-all --parallel watch:*","watch:node":"onchange 'src/**/*.js' -i -- npm run build:node","watch:css":"onchange 'src/**/*.styl' -i -- npm run build:css","test":"eslint src","umd":"rimraf react-table.js && webpack --config umd.webpack.js","build":"npm-run-all build:*","prepublish":"npm run build && npm run umd","postpublish":"git push --tags","docs":"yarn watch & cd docs && yarn && yarn start","docs:build":"yarn build && cd docs && yarn && yarn run build"},"dependencies":{"classnames":"^2.2.5"},"peerDependencies":{"react":"^15.x.x"},"devDependencies":{"autoprefixer":"^6.7.0","babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-preset-es2015":"6.14.0","babel-preset-react":"6.11.1","babel-preset-stage-2":"6.13.0","eslint":"^4.1.1","match-sorter":"^1.8.0","npm-run-all":"^3.1.1","onchange":"^3.0.2","postcss-cli":"^2.6.0","react":"^15.4.2","react-dom":"^15.4.2","react-json-tree":"^0.10.9","rimraf":"^2.6.1","standard":"^10.0.2","stylus":"^0.54.5","webpack":"^2.5.1"},"babel":{"presets":["es2015","stage-2","react"]},"gitHead":"d8aec06496e49fa76c230d20819f414224cf2e0a","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@6.5.3","_shasum":"fd84371b97bcabed8308b766faeeaf4264b155c8","_from":".","_npmVersion":"3.10.9","_nodeVersion":"7.2.0","_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"dist":{"shasum":"fd84371b97bcabed8308b766faeeaf4264b155c8","tarball":"https://registry.npmjs.org/react-table/-/react-table-6.5.3.tgz","integrity":"sha512-d/F/35G2IewfVnyGnQ7z9T+DmzUrFeeJeCuB2+f3XdZogxIO9F11aSpCVadeo5a9ZkSge3mUo59hIFIAFEjxXw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCsCKIQ95G/8IDl1ja5m4uIPI/bfsrNVPZ5URfgdjTeqgIhAIN/hNwz+JTqS898owSttllRWu5CDJhxIKU4BAalHIhn"}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table-6.5.3.tgz_1501702797968_0.8974994285963476"},"directories":{}},"6.6.0":{"name":"react-table","version":"6.6.0","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/react-tools/react-table#readme","repository":{"type":"git","url":"git+https://github.com/react-tools/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","files":["src/","lib/","react-table.js","react-table.css","media/*.png"],"scripts":{"build:node":"babel src --out-dir lib --source-maps inline","build:css":"rimraf react-table.css && stylus src/index.styl --compress -o react-table.css && yarn run css:autoprefix","css:autoprefix":"postcss --use autoprefixer react-table.css -r","watch":"npm-run-all --parallel watch:*","watch:node":"onchange 'src/**/*.js' -i -- npm run build:node","watch:css":"onchange 'src/**/*.styl' -i -- npm run build:css","test":"eslint src","umd":"rimraf react-table.js && webpack --config umd.webpack.js","build":"npm-run-all build:*","prepublish":"npm run build && npm run umd","postpublish":"git push --tags","docs":"yarn watch & cd docs && yarn && yarn start","docs:build":"yarn build && cd docs && yarn && yarn run build"},"dependencies":{"classnames":"^2.2.5"},"peerDependencies":{"react":"^15.x.x || ^16.x.x"},"devDependencies":{"autoprefixer":"^6.7.0","babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-preset-es2015":"6.14.0","babel-preset-react":"6.11.1","babel-preset-stage-2":"6.13.0","eslint":"^4.1.1","match-sorter":"^1.8.0","npm-run-all":"^3.1.1","onchange":"^3.0.2","postcss-cli":"^2.6.0","react":"^15.4.2","react-dom":"^15.4.2","react-json-tree":"^0.10.9","rimraf":"^2.6.1","standard":"^10.0.2","stylus":"^0.54.5","webpack":"^2.5.1"},"babel":{"presets":["es2015","stage-2","react"]},"gitHead":"dadfcc121cb48ab4ab7b78372fe25ddc8d1da0a4","bugs":{"url":"https://github.com/react-tools/react-table/issues"},"_id":"react-table@6.6.0","_npmVersion":"5.3.0","_nodeVersion":"8.5.0","_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"dist":{"integrity":"sha512-6g5GKrmufyol9x9i0GwSK2GwMFFevhfLhoYi9fD+0NUD4ctY9iHiSMAHkZK8vgBe6cRQyl7ncdtBB9vhJPtmfw==","shasum":"a57ffa670f8b06a18235a000315df0deaacc6cdf","tarball":"https://registry.npmjs.org/react-table/-/react-table-6.6.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDeIb6jN4r/AOeVsxZx7/ZdH8iXanV0IqgBIppjxWFJrQIgNqkek0SuVTdcCpZVjui6nt3M01qrxLhAitMoFAi+X/I="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table-6.6.0.tgz_1506708471411_0.894763253396377"},"directories":{}},"6.7.0-alpha-0":{"name":"react-table","version":"6.7.0-alpha-0","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/react-tools/react-table#readme","repository":{"type":"git","url":"git+https://github.com/react-tools/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","files":["src/","lib/","react-table.js","react-table.css","media/*.png"],"scripts":{"build:node":"babel src --out-dir lib --source-maps inline","build:css":"rimraf react-table.css && stylus src/index.styl --compress -o react-table.css && yarn run css:autoprefix","css:autoprefix":"postcss --use autoprefixer react-table.css -r","watch":"npm-run-all --parallel watch:*","watch:node":"onchange 'src/**/*.js' -i -- npm run build:node","watch:css":"onchange 'src/**/*.styl' -i -- npm run build:css","test":"eslint src","umd":"rimraf react-table.js && webpack --config umd.webpack.js","build":"npm-run-all build:*","prepublish":"npm run build && npm run umd","postpublish":"git push --tags","docs":"yarn watch & cd docs && yarn && yarn start","docs:build":"yarn build && cd docs && yarn && yarn build"},"dependencies":{"classnames":"^2.2.5","eslint-config-react-tools":"^1.0.10"},"peerDependencies":{"react":"^15.x.x || ^16.x.x"},"devDependencies":{"autoprefixer":"^6.7.0","babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-preset-es2015":"6.14.0","babel-preset-react":"6.11.1","babel-preset-stage-2":"6.13.0","eslint":"^4.1.1","eslint-config-standard":"^10.2.1","eslint-plugin-import":"^2.7.0","eslint-plugin-node":"^5.2.0","eslint-plugin-react":"^7.4.0","eslint-plugin-standard":"^3.0.1","match-sorter":"^1.8.0","npm-run-all":"^3.1.1","onchange":"^3.0.2","postcss-cli":"^2.6.0","prop-types":"^15.6.0","react":"^15.4.2","react-dom":"^15.4.2","react-json-tree":"^0.10.9","rimraf":"^2.6.1","standard":"^10.0.2","stylus":"^0.54.5","webpack":"^2.5.1"},"babel":{"presets":["es2015","stage-2","react"]},"gitHead":"93ceffbf263133a07cd4146c9b99c95c69016fbc","bugs":{"url":"https://github.com/react-tools/react-table/issues"},"_id":"react-table@6.7.0-alpha-0","_npmVersion":"5.3.0","_nodeVersion":"8.5.0","_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"dist":{"integrity":"sha512-/X3rSzd1FN9NmDytRPuayAI9awe0h7r32gu9OkU0Nj+iBE+WsCWgf8kxpBfdvExoF9203gJbjuFNckVixumZgg==","shasum":"5b365371b0cfd5575eb3c0771d4fed9e8fefeab4","tarball":"https://registry.npmjs.org/react-table/-/react-table-6.7.0-alpha-0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHCVGJ2e8F5aus1PTbDSiC9XKhTXSiTz3BtpNjSBoLJmAiEAm6Y5DVpVXTuDsdSlJRZqxJZTIQGAfxdZVAyQpWo4eYs="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table-6.7.0-alpha-0.tgz_1509130885737_0.3844602322205901"},"directories":{}},"6.7.0":{"name":"react-table","version":"6.7.0","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/react-tools/react-table#readme","repository":{"type":"git","url":"git+https://github.com/react-tools/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","files":["src/","lib/","react-table.js","react-table.css","media/*.png"],"scripts":{"build:node":"babel src --out-dir lib --source-maps inline","build:css":"rimraf react-table.css && stylus src/index.styl --compress -o react-table.css && yarn run css:autoprefix","css:autoprefix":"postcss --use autoprefixer react-table.css -r","watch":"npm-run-all --parallel watch:*","watch:node":"onchange 'src/**/*.js' -i -- npm run build:node","watch:css":"onchange 'src/**/*.styl' -i -- npm run build:css","test":"eslint src","umd":"rimraf react-table.js && webpack --config umd.webpack.js","build":"npm-run-all build:*","prepublish":"npm run build && npm run umd","postpublish":"git push --tags","docs":"yarn watch & cd docs && yarn && yarn start","docs:build":"yarn build && cd docs && yarn && yarn build"},"dependencies":{"classnames":"^2.2.5","eslint-config-react-tools":"^1.0.10"},"peerDependencies":{"react":"^15.x.x || ^16.x.x"},"devDependencies":{"autoprefixer":"^6.7.0","babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-preset-es2015":"6.14.0","babel-preset-react":"6.11.1","babel-preset-stage-2":"6.13.0","eslint":"^4.1.1","eslint-config-standard":"^10.2.1","eslint-plugin-import":"^2.7.0","eslint-plugin-node":"^5.2.0","eslint-plugin-react":"^7.4.0","eslint-plugin-standard":"^3.0.1","match-sorter":"^1.8.0","npm-run-all":"^3.1.1","onchange":"^3.0.2","postcss-cli":"^2.6.0","prop-types":"^15.6.0","react":"^15.4.2","react-dom":"^15.4.2","react-json-tree":"^0.10.9","rimraf":"^2.6.1","standard":"^10.0.2","stylus":"^0.54.5","webpack":"^2.5.1"},"babel":{"presets":["es2015","stage-2","react"]},"gitHead":"cd0222fcd2a44e43b9bb4e3dd7b2a1130d964ab8","bugs":{"url":"https://github.com/react-tools/react-table/issues"},"_id":"react-table@6.7.0","_npmVersion":"5.3.0","_nodeVersion":"8.5.0","_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"dist":{"integrity":"sha512-qYgRVOv+OFQEhKtFMkTZx0ztY/g9tQoO88882E1HBjm2K2aKUYEx0ZfFAMyeNxkythR2Bn6DuG8Wg0hlzyS9cw==","shasum":"57ed04b7b7a497088fa18a6ff5cc6d5dbb10e33f","tarball":"https://registry.npmjs.org/react-table/-/react-table-6.7.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHoQ4pBy24NQL6MyHLGIQRlY9uHcRS1LrCvOUIcGiNJQAiA8keKCpExyneXrkTV4gxQ+Vze5sUT4z/9X4egjpiIJ9w=="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table-6.7.0.tgz_1509130971016_0.6101763360202312"},"directories":{}},"6.7.1":{"name":"react-table","version":"6.7.1","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/react-tools/react-table#readme","repository":{"type":"git","url":"git+https://github.com/react-tools/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","files":["src/","lib/","react-table.js","react-table.css","media/*.png"],"scripts":{"build:node":"babel src --out-dir lib --source-maps inline","build:css":"rimraf react-table.css && stylus src/index.styl --compress -o react-table.css && yarn run css:autoprefix","css:autoprefix":"postcss --use autoprefixer react-table.css -r","watch":"npm-run-all --parallel watch:*","watch:node":"onchange 'src/**/*.js' -i -- npm run build:node","watch:css":"onchange 'src/**/*.styl' -i -- npm run build:css","test":"eslint src","umd":"rimraf react-table.js && webpack --config umd.webpack.js","build":"npm-run-all build:*","prepublish":"npm run build && npm run umd","postpublish":"git push --tags","docs":"yarn watch & cd docs && yarn && yarn start","docs:build":"yarn build && cd docs && yarn && yarn build"},"dependencies":{"classnames":"^2.2.5"},"peerDependencies":{"react":"^15.x.x || ^16.x.x","eslint-config-react-tools":"^1.0.10"},"devDependencies":{"autoprefixer":"^6.7.0","babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-preset-es2015":"6.14.0","babel-preset-react":"6.11.1","babel-preset-stage-2":"6.13.0","eslint":"^4.1.1","eslint-config-standard":"^10.2.1","eslint-plugin-import":"^2.7.0","eslint-plugin-node":"^5.2.0","eslint-plugin-react":"^7.4.0","eslint-plugin-standard":"^3.0.1","match-sorter":"^1.8.0","npm-run-all":"^3.1.1","onchange":"^3.0.2","postcss-cli":"^2.6.0","prop-types":"^15.6.0","react":"^15.4.2","react-dom":"^15.4.2","react-json-tree":"^0.10.9","rimraf":"^2.6.1","standard":"^10.0.2","stylus":"^0.54.5","webpack":"^2.5.1"},"babel":{"presets":["es2015","stage-2","react"]},"gitHead":"2d247eafe8adf5b2aacf8b938e5d086bd17e30c9","bugs":{"url":"https://github.com/react-tools/react-table/issues"},"_id":"react-table@6.7.1","_npmVersion":"5.3.0","_nodeVersion":"8.5.0","_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"dist":{"integrity":"sha512-siYR3Fzvr7UqE51SWAgB0FrhUuCp16nwYfjjnwSfF+4UikBjXBE0KCo6AhLIoxJjLL+8zDKmXYLoxBnG0+8rJg==","shasum":"3a17bf0817f436ac08449adf6811a695a1e6d341","tarball":"https://registry.npmjs.org/react-table/-/react-table-6.7.1.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIASqT0waflpvmQ2bqUiJFifgQkztwSTsyf2JPFWyR/e9AiByeFsjXFJuM9phznohMd8w9LgATnXXsKLqwY5Vc6M1Qg=="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table-6.7.1.tgz_1509133494491_0.7979042448569089"},"directories":{}},"6.7.2":{"name":"react-table","version":"6.7.2","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/react-tools/react-table#readme","repository":{"type":"git","url":"git+https://github.com/react-tools/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","files":["src/","lib/","react-table.js","react-table.css","media/*.png"],"scripts":{"build:node":"babel src --out-dir lib --source-maps inline","build:css":"rimraf react-table.css && stylus src/index.styl --compress -o react-table.css && yarn run css:autoprefix","css:autoprefix":"postcss --use autoprefixer react-table.css -r","watch":"npm-run-all --parallel watch:*","watch:node":"onchange 'src/**/*.js' -i -- npm run build:node","watch:css":"onchange 'src/**/*.styl' -i -- npm run build:css","test":"eslint src","umd":"rimraf react-table.js && webpack --config umd.webpack.js","build":"npm-run-all build:*","prepublish":"npm run build && npm run umd","postpublish":"git push --tags","docs":"yarn watch & cd docs && yarn && yarn start","docs:build":"yarn build && cd docs && yarn && yarn build"},"dependencies":{"classnames":"^2.2.5"},"peerDependencies":{"react":"^15.x.x || ^16.x.x","eslint-config-react-tools":"^1.0.10"},"devDependencies":{"autoprefixer":"^6.7.0","babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-preset-es2015":"6.14.0","babel-preset-react":"6.11.1","babel-preset-stage-2":"6.13.0","eslint":"^4.1.1","eslint-config-standard":"^10.2.1","eslint-plugin-import":"^2.7.0","eslint-plugin-node":"^5.2.0","eslint-plugin-react":"^7.4.0","eslint-plugin-standard":"^3.0.1","match-sorter":"^1.8.0","npm-run-all":"^3.1.1","onchange":"^3.0.2","postcss-cli":"^2.6.0","prop-types":"^15.6.0","react":"^15.4.2","react-dom":"^15.4.2","react-json-tree":"^0.10.9","rimraf":"^2.6.1","standard":"^10.0.2","stylus":"^0.54.5","webpack":"^2.5.1"},"babel":{"presets":["es2015","stage-2","react"]},"gitHead":"57598859837925f44b463301e95cd09f94beabba","bugs":{"url":"https://github.com/react-tools/react-table/issues"},"_id":"react-table@6.7.2","_npmVersion":"5.3.0","_nodeVersion":"8.5.0","_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"dist":{"integrity":"sha512-UvBXtVHPLdsVcz8Mk1I3Gn+ISwsv0CUruPS5rKZSyfPNmA4IF/MssgcilbgB/oIp4llC5eUtQ87l3rImcTW/pg==","shasum":"052ee26373154bee66ef79a49258c8b21c54b318","tarball":"https://registry.npmjs.org/react-table/-/react-table-6.7.2.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDPBBlGVXfAKdOP0k2nLB+FLbmMzxffJGO0kuNr3X0aLQIgaU75jlWp6xD6DEyCEvFzyWrORvEmf1fn42W8aS6SvmE="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table-6.7.2.tgz_1509135795367_0.5972795898560435"},"directories":{}},"6.7.3":{"name":"react-table","version":"6.7.3","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/react-tools/react-table#readme","repository":{"type":"git","url":"git+https://github.com/react-tools/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","files":["src/","lib/","react-table.js","react-table.css","media/*.png"],"scripts":{"build:node":"babel src --out-dir lib --source-maps inline","build:css":"rimraf react-table.css && stylus src/index.styl --compress -o react-table.css && yarn run css:autoprefix","css:autoprefix":"postcss --use autoprefixer react-table.css -r","watch":"npm-run-all --parallel watch:*","watch:node":"onchange 'src/**/*.js' -i -- npm run build:node","watch:css":"onchange 'src/**/*.styl' -i -- npm run build:css","test":"eslint src","umd":"rimraf react-table.js && webpack --config umd.webpack.js","build":"npm-run-all build:*","prepublish":"npm run build && npm run umd","postpublish":"git push --tags","docs":"yarn watch & cd docs && yarn && yarn start","docs:build":"yarn build && cd docs && yarn && yarn build"},"dependencies":{"classnames":"^2.2.5"},"peerDependencies":{"react":"^15.x.x || ^16.x.x","eslint-config-react-tools":"^1.0.10"},"devDependencies":{"autoprefixer":"^6.7.0","babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-preset-es2015":"6.14.0","babel-preset-react":"6.11.1","babel-preset-stage-2":"6.13.0","eslint":"^4.1.1","eslint-config-standard":"^10.2.1","eslint-plugin-import":"^2.7.0","eslint-plugin-node":"^5.2.0","eslint-plugin-react":"^7.4.0","eslint-plugin-standard":"^3.0.1","match-sorter":"^1.8.0","npm-run-all":"^3.1.1","onchange":"^3.0.2","postcss-cli":"^2.6.0","prop-types":"^15.6.0","react":"^15.4.2","react-dom":"^15.4.2","react-json-tree":"^0.10.9","rimraf":"^2.6.1","standard":"^10.0.2","stylus":"^0.54.5","webpack":"^2.5.1"},"babel":{"presets":["es2015","stage-2","react"]},"gitHead":"2dcfef884f0504451a6521bea8556f4de16ea37c","bugs":{"url":"https://github.com/react-tools/react-table/issues"},"_id":"react-table@6.7.3","_npmVersion":"5.3.0","_nodeVersion":"8.5.0","_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"dist":{"integrity":"sha512-wqjzxrnkvvRQuBnYOtFWoGVnCCN1Lhvw3B8fxwnEJ9G8WepXQHl8KDPthskGNgAjsps60Oqm5Xltwe4qWqQnfg==","shasum":"7c744c390b04202dbf1c18d66ce4a4a88e5a150b","tarball":"https://registry.npmjs.org/react-table/-/react-table-6.7.3.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDyt1HTtIDG+UZSQU0msvvc2iY7uSAcRr8GtTa+bZYmdAiEA9J2j1bgr6w0wBCrW+9lgBaK8HYF3878DTczxmp1hDLM="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table-6.7.3.tgz_1509136052857_0.5609139211010188"},"directories":{}},"6.7.4":{"name":"react-table","version":"6.7.4","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/react-tools/react-table#readme","repository":{"type":"git","url":"git+https://github.com/react-tools/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","files":["src/","lib/","react-table.js","react-table.css","media/*.png"],"scripts":{"build:node":"babel src --out-dir lib --source-maps inline","build:css":"rimraf react-table.css && stylus src/index.styl --compress -o react-table.css && yarn run css:autoprefix","css:autoprefix":"postcss --use autoprefixer react-table.css -r","watch":"npm-run-all --parallel watch:*","watch:node":"onchange 'src/**/*.js' -i -- npm run build:node","watch:css":"onchange 'src/**/*.styl' -i -- npm run build:css","test":"eslint src","umd":"rimraf react-table.js && webpack --config umd.webpack.js","build":"npm-run-all build:*","prepublish":"npm run build && npm run umd","postpublish":"git push --tags","docs":"yarn watch & cd docs && yarn && yarn start","docs:build":"yarn build && cd docs && yarn && yarn build"},"dependencies":{"classnames":"^2.2.5"},"peerDependencies":{"react":"^15.x.x || ^16.x.x","eslint-config-react-tools":"^1.0.10"},"devDependencies":{"autoprefixer":"^6.7.0","babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-preset-es2015":"6.14.0","babel-preset-react":"6.11.1","babel-preset-stage-2":"6.13.0","eslint":"^4.1.1","eslint-config-standard":"^10.2.1","eslint-plugin-import":"^2.7.0","eslint-plugin-node":"^5.2.0","eslint-plugin-react":"^7.4.0","eslint-plugin-standard":"^3.0.1","match-sorter":"^1.8.0","npm-run-all":"^3.1.1","onchange":"^3.0.2","postcss-cli":"^2.6.0","prop-types":"^15.6.0","react":"^15.4.2","react-dom":"^15.4.2","react-json-tree":"^0.10.9","rimraf":"^2.6.1","standard":"^10.0.2","stylus":"^0.54.5","webpack":"^2.5.1"},"babel":{"presets":["es2015","stage-2","react"]},"gitHead":"adc07de817f6bda894a1fcef5562a9a35cedd26a","bugs":{"url":"https://github.com/react-tools/react-table/issues"},"_id":"react-table@6.7.4","_npmVersion":"5.3.0","_nodeVersion":"8.5.0","_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"dist":{"integrity":"sha512-V0D19Vriw0h4Ho0ECshMjgStOlsRUENYmYtgKtgv4DhpNcxQQ9lxhOdOHLda7uuiPZOJm6B3XvghfZsPTVaSNQ==","shasum":"cd23e15d437034bf2374e9c8d343e1b4e1960e4f","tarball":"https://registry.npmjs.org/react-table/-/react-table-6.7.4.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCxgiBD7qs7ZW3xS2l73eOOeSCjgWstxjwVlcfqxWLLkAIhAKWyeyDAxEc4kOUQopImpy/081rl6tpCxIlOWqIJ82nb"}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table-6.7.4.tgz_1509137725789_0.7022647766862065"},"directories":{}},"6.7.5":{"name":"react-table","version":"6.7.5","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/react-tools/react-table#readme","repository":{"type":"git","url":"git+https://github.com/react-tools/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","files":["src/","lib/","react-table.js","react-table.css","media/*.png"],"scripts":{"build:node":"babel src --out-dir lib --source-maps inline","build:css":"rimraf react-table.css && stylus src/index.styl --compress -o react-table.css && yarn run css:autoprefix","css:autoprefix":"postcss --use autoprefixer react-table.css -r","watch":"npm-run-all --parallel watch:*","watch:node":"onchange 'src/**/*.js' -i -- npm run build:node","watch:css":"onchange 'src/**/*.styl' -i -- npm run build:css","test":"eslint src","umd":"rimraf react-table.js && webpack --config umd.webpack.js","build":"npm-run-all build:*","prepublishOnly":"npm run build && npm run umd","postpublish":"git push --tags","docs":"yarn watch & cd docs && yarn && yarn start","docs:build":"yarn build && cd docs && yarn && yarn build"},"dependencies":{"classnames":"^2.2.5"},"peerDependencies":{"react":"^15.x.x || ^16.x.x"},"devDependencies":{"autoprefixer":"^6.7.0","babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-preset-es2015":"6.14.0","babel-preset-react":"6.11.1","babel-preset-stage-2":"6.13.0","eslint":"^4.1.1","eslint-config-react-tools":"^1.0.10","eslint-plugin-class-property":"^1.0.6","eslint-plugin-import":"^2.7.0","eslint-plugin-jsx-a11y":"^6.0.2","eslint-plugin-react":"^7.4.0","match-sorter":"^1.8.0","npm-run-all":"^3.1.1","onchange":"^3.0.2","postcss-cli":"^2.6.0","prop-types":"^15.6.0","react":"^15.4.2","react-dom":"^15.4.2","react-json-tree":"^0.10.9","rimraf":"^2.6.1","standard":"^10.0.2","stylus":"^0.54.5","webpack":"^2.5.1"},"babel":{"presets":["es2015","stage-2","react"]},"licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@6.7.5","dist":{"shasum":"974b26e3986932e6c724f53911eddfa3923b7942","tarball":"https://registry.npmjs.org/react-table/-/react-table-6.7.5.tgz","integrity":"sha512-1zY0EXkBguxDHcz0mfmXbsByjanQJnEMfFrkCiP49fE9GOaUVShjiM5X4+4VWRrBW9PyoHNrt8X/XsDBWOoEtA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCiQiEAx9STR5NvQ/zdrcNPOf6+0Fc81cFOeEZ5hHm9QQIgAysMGLpTpqr4e69ffhdddnB5ykZsKYjFfg29woOUYIE="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table-6.7.5.tgz_1513123587175_0.1611528650391847"},"directories":{}},"6.7.6":{"name":"react-table","version":"6.7.6","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/react-tools/react-table#readme","repository":{"type":"git","url":"git+https://github.com/react-tools/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","files":["src/","lib/","react-table.js","react-table.css","media/*.png"],"scripts":{"build:node":"babel src --out-dir lib --source-maps inline","build:css":"rimraf react-table.css && stylus src/index.styl --compress -o react-table.css && yarn run css:autoprefix","css:autoprefix":"postcss --use autoprefixer react-table.css -r","watch":"npm-run-all --parallel watch:*","watch:node":"onchange 'src/**/*.js' -i -- npm run build:node","watch:css":"onchange 'src/**/*.styl' -i -- npm run build:css","test":"eslint src","umd":"rimraf react-table.js && webpack --config umd.webpack.js","build":"npm-run-all build:*","prepublish":"npm run build && npm run umd","postpublish":"git push --tags","docs":"yarn watch & cd docs && yarn && yarn start","docs:build":"yarn build && cd docs && yarn && yarn build"},"dependencies":{"classnames":"^2.2.5"},"peerDependencies":{"react":"^15.x.x || ^16.x.x"},"devDependencies":{"autoprefixer":"^6.7.0","babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-preset-es2015":"6.14.0","babel-preset-react":"6.11.1","babel-preset-stage-2":"6.13.0","eslint":"^4.1.1","eslint-config-react-tools":"^1.0.10","eslint-plugin-class-property":"^1.0.6","eslint-plugin-import":"^2.7.0","eslint-plugin-jsx-a11y":"^6.0.2","eslint-plugin-react":"^7.4.0","match-sorter":"^1.8.0","npm-run-all":"^3.1.1","onchange":"^3.0.2","postcss-cli":"^2.6.0","prop-types":"^15.6.0","react":"^15.4.2","react-dom":"^15.4.2","react-json-tree":"^0.10.9","rimraf":"^2.6.1","standard":"^10.0.2","stylus":"^0.54.5","webpack":"^2.5.1"},"babel":{"presets":["es2015","stage-2","react"]},"licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@6.7.6","dist":{"shasum":"3f9e3b308328ceb04ef93a47babefaba2619c905","tarball":"https://registry.npmjs.org/react-table/-/react-table-6.7.6.tgz","integrity":"sha512-ge3MOjCPJB/qIf4lTTxEdH4bgqNCm0aTH4Fg5kbgSWSCtu/n3upWY1CHN4unh7U5aetAzmUwiidc4XtRSQuKEg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEoRZ+g6Sxr/DZFODw6pHrhUL6zhDwWKeC4GOc/tWcodAiBFrzp63FRgygjCM99isL/Qs9REYMEvHFQ6KJm8CFh4fg=="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table-6.7.6.tgz_1513894528962_0.46421100036241114"},"directories":{}},"6.8.0":{"name":"react-table","version":"6.8.0","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/react-tools/react-table#readme","repository":{"type":"git","url":"git+https://github.com/react-tools/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","module":"es/index.js","files":["src/","es/","lib/","react-table.js","react-table.min.js","react-table.css","media/*.png"],"scripts":{"build:cjs":"babel src --out-dir lib --source-maps inline","build:es":"BABEL_ENV=es babel src --out-dir es --source-maps inline","build:umd":"BABEL_ENV=umd rollup -c","build:umd-min":"BABEL_ENV=umd NODE_ENV=production rollup -c","build:css":"rimraf react-table.css && stylus src/index.styl --compress -o react-table.css && yarn css:autoprefix","css:autoprefix":"postcss --use autoprefixer react-table.css -r","watch":"npm-run-all --parallel watch:*","watch:js":"onchange 'src/**/*.js' -i -- yarn build:cjs","watch:css":"onchange 'src/**/*.styl' -i -- yarn build:css","test":"eslint src","build":"npm-run-all build:*","prepublish":"yarn build","postpublish":"git push --tags","docs":"yarn watch & cd docs && yarn && yarn start","docs:build":"yarn build && cd docs && yarn && yarn build"},"dependencies":{"classnames":"^2.2.5"},"peerDependencies":{"react":"^15.x.x || ^16.x.x"},"devDependencies":{"autoprefixer":"^6.7.0","babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-plugin-external-helpers":"^6.22.0","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-preset-env":"^1.6.1","babel-preset-react":"^6.24.1","eslint":"^4.1.1","eslint-config-react-tools":"^1.0.10","eslint-plugin-class-property":"^1.0.6","eslint-plugin-import":"^2.7.0","eslint-plugin-jsx-a11y":"^6.0.2","eslint-plugin-react":"^7.4.0","match-sorter":"^1.8.0","npm-run-all":"^4.1.2","onchange":"^3.0.2","postcss-cli":"^2.6.0","prop-types":"^15.6.0","react":"^15.4.2","react-dom":"^15.4.2","react-json-tree":"^0.10.9","rimraf":"^2.6.1","rollup":"^0.55.3","rollup-plugin-babel":"^3.0.3","rollup-plugin-commonjs":"^8.3.0","rollup-plugin-node-resolve":"^3.0.2","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"^3.0.0","standard":"^10.0.2","stylus":"^0.54.5"},"babel":{"env":{"development":{"presets":[["env",{"modules":"commonjs"}],"react"],"plugins":["transform-object-rest-spread","transform-class-properties"]},"es":{"presets":[["env",{"modules":false}],"react"],"plugins":["transform-object-rest-spread","transform-class-properties"]},"umd":{"presets":[["env",{"modules":false}],"react"],"plugins":["transform-object-rest-spread","transform-class-properties","external-helpers"]}}},"licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@6.8.0","dist":{"shasum":"5ce402eb735df68534c03dabb3faa031478b6a58","tarball":"https://registry.npmjs.org/react-table/-/react-table-6.8.0.tgz","fileCount":55,"unpackedSize":1069542,"integrity":"sha512-aor5Cha5U+8koB00VBk96kNkd2PcA9y4VmiU/XsbXi8C/ckPPyRXUnkYYwNwOxvxoPx2w15j29oY7Q9GGnrpvw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDunfSt2EoxZqnmeLsBK2MZFvoKcr6LNjYbKXuvKWuLnwIhAMXX21i5apdzAke9+Y8E8k0A0ZjvypRi1ZF9yG0fzyY0"}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_6.8.0_1519672839349_0.2810591145203709"},"_hasShrinkwrap":false},"6.8.1":{"name":"react-table","version":"6.8.1","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/react-tools/react-table#readme","repository":{"type":"git","url":"git+https://github.com/react-tools/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","module":"es/index.js","files":["src/","es/","lib/","react-table.js","react-table.min.js","react-table.css","media/*.png"],"scripts":{"build:cjs":"babel src --out-dir lib --source-maps inline","build:es":"BABEL_ENV=es babel src --out-dir es --source-maps inline","build:umd":"BABEL_ENV=umd rollup -c","build:umd-min":"BABEL_ENV=umd NODE_ENV=production rollup -c","build:css":"rimraf react-table.css && stylus src/index.styl --compress -o react-table.css && yarn css:autoprefix","css:autoprefix":"postcss --use autoprefixer react-table.css -r","watch":"npm-run-all --parallel watch:*","watch:js":"onchange 'src/**/*.js' -i -- yarn build:cjs","watch:css":"onchange 'src/**/*.styl' -i -- yarn build:css","test":"eslint src","build":"npm-run-all build:*","prepublish":"yarn build","postpublish":"git push --tags","docs":"yarn watch & cd docs && yarn && yarn start","docs:build":"yarn build && cd docs && yarn && yarn build"},"dependencies":{"classnames":"^2.2.5"},"peerDependencies":{"react":"^15.x.x || ^16.x.x"},"devDependencies":{"autoprefixer":"^6.7.0","babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-plugin-external-helpers":"^6.22.0","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-preset-env":"^1.6.1","babel-preset-react":"^6.24.1","eslint":"^4.1.1","eslint-config-react-tools":"^1.0.10","eslint-plugin-class-property":"^1.0.6","eslint-plugin-import":"^2.7.0","eslint-plugin-jsx-a11y":"^6.0.2","eslint-plugin-react":"^7.4.0","match-sorter":"^1.8.0","npm-run-all":"^4.1.2","onchange":"^3.0.2","postcss-cli":"^2.6.0","prop-types":"^15.6.0","react":"^15.4.2","react-dom":"^15.4.2","react-json-tree":"^0.10.9","rimraf":"^2.6.1","rollup":"^0.55.3","rollup-plugin-babel":"^3.0.3","rollup-plugin-commonjs":"^8.3.0","rollup-plugin-node-resolve":"^3.0.2","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"^3.0.0","standard":"^10.0.2","stylus":"^0.54.5"},"babel":{"env":{"development":{"presets":[["env",{"modules":"commonjs"}],"react"],"plugins":["transform-object-rest-spread","transform-class-properties"]},"es":{"presets":[["env",{"modules":false}],"react"],"plugins":["transform-object-rest-spread","transform-class-properties"]},"umd":{"presets":[["env",{"modules":false}],"react"],"plugins":["transform-object-rest-spread","transform-class-properties","external-helpers"]}}},"licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@6.8.1","dist":{"shasum":"e3608a596853644e75cd0a787ca7935443073e9c","tarball":"https://registry.npmjs.org/react-table/-/react-table-6.8.1.tgz","fileCount":55,"unpackedSize":1058117,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa1juvCRA9TVsSAnZWagAAwDkP/1QW7OEzyNIg6XRiiVxE\nki1nvU1yxjXz7msEtU9I7TveGQn6JoC/WxZbOEjFDBUEbpKYZY8DK1Jt3dOq\njAxC+3N+MUtkdDXNagS6U7nPzZHhQNlPlkni5TsrMAOnOGIZjMcMnvPT7vec\nVR/CVXxTyIZWk2KLbU62Q3qOUXhR1ziVjLCdoG6ioMcF5YYPPIr6vAusm/dY\nKAM30Eee4Zh7+Gf2F73dM7j9Yvd+rPrOtqJx0LfaVXPhKnNPoVJ2S6/DxTh/\nikHonjnyNR21syMV8iK+GkZEVpv0rnXHiA959Amy+S5ib1JcvVX92ORXmD7z\nxAqpyJOxkUxLBfAjg4XrI1QtHj9KfKLWWJP8Y4NwqT/Wci1hQmTpotCTNSR/\nUduNkRjDi0rNKWwMS6g2+T+JL/8mTw0eajvt4VsM57A0Opz5kziXl4RPEkhS\n5hnmBfC68IiojDYWphHqIp8TTzQHiKZS2WBqwiFUmGu6pPHrOqVhnyL6ovli\nBbS5Ca5D7DytCJSyTvWAXL/Lp/p55hRsnT29YfPVN1jtpI4A5fzIwqTyPmBd\nCm04z1v8GCd2DkmoWmpAZc9sy+6di/9q/+MQ54x9/Y1+rqPLL2LNko5TtcXE\n/+eZ/iE2v7tcH3jHsXEYac+zc6p5GFXcCClmLHAOk8cM7o8gOYU2yHCeFwRJ\njrIX\r\n=v1KT\r\n-----END PGP SIGNATURE-----\r\n","integrity":"sha512-vSO+SKGngg3OjvygwGQKGW0eK9yi+yMZpivce2oZX0uxn8ok53NRMa16kvyvbRFp6wGmQP2h+izdPBEz6p78Tw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDCQkWyzDkNN1HrIwBDL/7pdnFGg6nrnr5p0MHF0EGuogIgRKR0cN16DDy8TqZ+jyd1lDPNEK7BBFo4xW9odN+7so8="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_6.8.1_1523989421264_0.6298097053334664"},"_hasShrinkwrap":false},"6.8.2":{"name":"react-table","version":"6.8.2","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/react-tools/react-table#readme","repository":{"type":"git","url":"git+https://github.com/react-tools/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","module":"es/index.js","files":["src/","es/","lib/","react-table.js","react-table.min.js","react-table.css","media/*.png"],"scripts":{"build:cjs":"babel src --out-dir lib --source-maps inline","build:es":"BABEL_ENV=es babel src --out-dir es --source-maps inline","build:umd":"BABEL_ENV=umd rollup -c","build:umd-min":"BABEL_ENV=umd NODE_ENV=production rollup -c","build:css":"rimraf react-table.css && stylus src/index.styl --compress -o react-table.css && yarn css:autoprefix","css:autoprefix":"postcss --use autoprefixer react-table.css -r","watch":"npm-run-all --parallel watch:*","watch:js":"onchange 'src/**/*.js' -i -- yarn build:cjs","watch:css":"onchange 'src/**/*.styl' -i -- yarn build:css","test":"eslint src","build":"npm-run-all build:*","prepublish":"yarn build","postpublish":"git push --tags","docs":"yarn watch & cd docs && yarn && yarn start","docs:build":"yarn build && cd docs && yarn && yarn build"},"dependencies":{"classnames":"^2.2.5"},"peerDependencies":{"react":"^15.x.x || ^16.x.x"},"devDependencies":{"autoprefixer":"^6.7.0","babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-plugin-external-helpers":"^6.22.0","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-preset-env":"^1.6.1","babel-preset-react":"^6.24.1","eslint":"^4.1.1","eslint-config-react-tools":"^1.0.10","eslint-plugin-class-property":"^1.0.6","eslint-plugin-import":"^2.7.0","eslint-plugin-jsx-a11y":"^6.0.2","eslint-plugin-react":"^7.4.0","match-sorter":"^1.8.0","npm-run-all":"^4.1.2","onchange":"^3.0.2","postcss-cli":"^2.6.0","prop-types":"^15.6.0","react":"^15.4.2","react-dom":"^15.4.2","react-json-tree":"^0.10.9","rimraf":"^2.6.1","rollup":"^0.55.3","rollup-plugin-babel":"^3.0.3","rollup-plugin-commonjs":"^8.3.0","rollup-plugin-node-resolve":"^3.0.2","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"^3.0.0","standard":"^10.0.2","stylus":"^0.54.5"},"babel":{"env":{"development":{"presets":[["env",{"modules":"commonjs"}],"react"],"plugins":["transform-object-rest-spread","transform-class-properties"]},"es":{"presets":[["env",{"modules":false}],"react"],"plugins":["transform-object-rest-spread","transform-class-properties"]},"umd":{"presets":[["env",{"modules":false}],"react"],"plugins":["transform-object-rest-spread","transform-class-properties","external-helpers"]}}},"licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@6.8.2","dist":{"shasum":"3a5aefabc85953300d16786fa307c30610db9adc","tarball":"https://registry.npmjs.org/react-table/-/react-table-6.8.2.tgz","fileCount":55,"unpackedSize":1059422,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa1mO7CRA9TVsSAnZWagAAI1cP/j6UR/5VFpE4/P1zLcDr\nA9/MTOWdLm3OBR36atHj9CxH1UEjmGdrKgYyJ/hwiPek7jNvJLEPV1DHutma\nL7v3NNbFpyCyx8evuKpwVBeWjuW5kTsIjRBMWpUbkHvcz/WFwIKf7YLcuSy2\n+K+FBIFpCcpVKrVDONxEjn4WUBJdeg6tXvZzfgTrEdOSI5/EnEG7ZX7Yvh+D\ne2T6zSP/eRt7J8vKiLGR8gcSamt0jM3AQm6hJFB2Omk44cqyUvPEAu1T7XjB\nIDMqAMt2Qh/jnxWLi0mTJoODUFw4NESRzZssy+iwbl4XTXN62Gb9BYREgp0s\nVi2Sl+GBf3zDGWv8uWfiE5QN2CJxtlFAISqmQ4dIV6alS4WgayvAv1KIggSK\nbzirhpbA6wld49jGQF2yzllARfXbaUtC5IsoZhfHJRjyzLNUFO+EGgtu6sxw\nOLw6e6cot7vnZGkkycB9R5U9BIDP74AVhXryBIxrkNLrR88AbB84FMqHaMUl\nHVEhHMTt8TReJMBqFPArKYNnQIZrQvasH+20mXiK2AYmO0puD3aw2nPpiz7u\nLfdnKFSIro6VDHsDbcWtbp8v9fnKf6lyUuBhpUtBL2fXKaSUDreNHdAhfPhr\nNASqYg7/GId0B0enrcXGq2yUgmUQbh9gXeoJdoyLGtSG8JC7YnuBAUYQTZSR\nE/jh\r\n=xMGP\r\n-----END PGP SIGNATURE-----\r\n","integrity":"sha512-Qr/cwfid3M/E/kZioh8dNuyVBjvrCemnBd+RKtgXZcpXoAqG43HWoPbFtmoyAyPnFM08SQsqcgSsc4JopjyI0Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCo1QMmSj8lCwiIh0v3aN7W5OSGRMV+RwGMeT4bJZCkawIhANllaTmcA5kWuC12sNXTIji0WsDku7bl7Xevpj0xbnjp"}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_6.8.2_1523999673798_0.8346256340965377"},"_hasShrinkwrap":false},"6.8.3":{"name":"react-table","version":"6.8.3","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/react-tools/react-table#readme","repository":{"type":"git","url":"git+https://github.com/react-tools/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","module":"es/index.js","files":["src/","es/","lib/","react-table.js","react-table.min.js","react-table.css","media/*.png"],"scripts":{"build:cjs":"babel src --out-dir lib --source-maps inline","build:es":"BABEL_ENV=es babel src --out-dir es --source-maps inline","build:umd":"BABEL_ENV=umd rollup -c","build:umd-min":"BABEL_ENV=umd NODE_ENV=production rollup -c","build:css":"rimraf react-table.css && stylus src/index.styl --compress -o react-table.css && yarn css:autoprefix","css:autoprefix":"postcss --use autoprefixer react-table.css -r","watch":"npm-run-all --parallel watch:*","watch:js":"onchange 'src/**/*.js' -i -- yarn build:cjs","watch:css":"onchange 'src/**/*.styl' -i -- yarn build:css","test":"eslint src","build":"npm-run-all build:*","prepublish":"yarn build","postpublish":"git push --tags","docs":"yarn watch & cd docs && yarn && yarn start","docs:build":"yarn build && cd docs && yarn && yarn build"},"dependencies":{"classnames":"^2.2.5"},"peerDependencies":{"react":"^15.x.x || ^16.x.x"},"devDependencies":{"autoprefixer":"^6.7.0","babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-plugin-external-helpers":"^6.22.0","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-preset-env":"^1.6.1","babel-preset-react":"^6.24.1","eslint":"^4.1.1","eslint-config-react-tools":"^1.0.10","eslint-plugin-class-property":"^1.0.6","eslint-plugin-import":"^2.7.0","eslint-plugin-jsx-a11y":"^6.0.2","eslint-plugin-react":"^7.4.0","match-sorter":"^1.8.0","npm-run-all":"^4.1.2","onchange":"^3.0.2","postcss-cli":"^2.6.0","prop-types":"^15.6.0","react":"^15.4.2","react-dom":"^15.4.2","react-json-tree":"^0.10.9","rimraf":"^2.6.1","rollup":"^0.55.3","rollup-plugin-babel":"^3.0.3","rollup-plugin-commonjs":"^8.3.0","rollup-plugin-node-resolve":"^3.0.2","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"^3.0.0","standard":"^10.0.2","stylus":"^0.54.5"},"babel":{"env":{"development":{"presets":[["env",{"modules":"commonjs"}],"react"],"plugins":["transform-object-rest-spread","transform-class-properties"]},"es":{"presets":[["env",{"modules":false}],"react"],"plugins":["transform-object-rest-spread","transform-class-properties"]},"umd":{"presets":[["env",{"modules":false}],"react"],"plugins":["transform-object-rest-spread","transform-class-properties","external-helpers"]}}},"licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@6.8.3","dist":{"shasum":"d1e2137bc7a9bb33ef5b05cd017b0c1c0597eb06","tarball":"https://registry.npmjs.org/react-table/-/react-table-6.8.3.tgz","fileCount":55,"unpackedSize":1061326,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa/178CRA9TVsSAnZWagAA2gkP+wZbdl4bet+Cwx5NXC6Q\n7qv5XtBfgoTO+vAJPUTlTKlGunkXITfbC845hwHONOcu6/zgYPtdtOuosdlq\ntUDIZ3B/eaLAurR9uMBIuRMgwYpEABjyzSNUs9Wndcx6ZLNA4p2iHnhLjyxK\nTeth5YC877Y7jfybkc8j/en58Ixs2rjvwYgs0b6Hztp49gMFUNj0UstkKPtH\nrCSqVG10GkINe+o5n2GTp52pArJ4laonyR1b56ycNZOUTzQsO+nox+EfIaL5\n2N2KFZYyH5L/8IPXxd0FMKSRV8lqrXRr7b44eOODc7XNZ+p5khFEJ8/txe49\nCSnFChb6ij0ugM2DdmjnkU/ldorOzbJV8IPGDP7VWKmUgmzlKJ0d4xPMONzF\nCBrS1dm6H+jtKFDX6VworsrJYz+YvtWRXmwLzKxGqgGd+9+EqRKqWSiZTyhf\nQNHiQ3529yMGUHgxMcEzMMcTIFKy3WgCEFT7SHq+GRKEHKN5xS4+2TQXoe9U\nXc1X/zF+zlvzwQ9WgQWbh3ly81XKVkZ0eOtN6ca7Y2hI4sLHZuMIFu+WSNqB\nvAacQGrIJLoTPfYFuP7n9hlpxiPsOl8X5ICBunqVcXOho7gtYU4r/kBWfrNS\nX046ES05JzQNO1DQEbCD0oqyKfnwPEA+4nTRXnjs+01+LSoM+MjE3nxeKCrB\nOkZ3\r\n=Alzp\r\n-----END PGP SIGNATURE-----\r\n","integrity":"sha512-yFlOMPIvvgtTIhf0iMvoIOjTdolxprN8xMlIwDKLlWrhAHMaS64ch7miEJIa3GCKeA36YZs7S5QJmmOOw6l08w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIF8899zLVdm6cdJLSm2lDCuTsZQ8preid0+1bm90VYTqAiAo+Ftzy1VIiuHoJ/ZQ5ng8YvnAgg4LRYOiINVcMkE5ew=="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_6.8.3_1526685433335_0.8906010387805738"},"_hasShrinkwrap":false},"6.8.4":{"name":"react-table","version":"6.8.4","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/react-tools/react-table#readme","repository":{"type":"git","url":"git+https://github.com/react-tools/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","module":"es/index.js","files":["src/","es/","lib/","react-table.js","react-table.min.js","react-table.css","media/*.png"],"scripts":{"build:cjs":"babel src --out-dir lib --source-maps inline","build:es":"BABEL_ENV=es babel src --out-dir es --source-maps inline","build:umd":"BABEL_ENV=umd rollup -c","build:umd-min":"BABEL_ENV=umd NODE_ENV=production rollup -c","build:css":"rimraf react-table.css && stylus src/index.styl --compress -o react-table.css && yarn css:autoprefix","css:autoprefix":"postcss --use autoprefixer react-table.css -r","watch":"npm-run-all --parallel watch:*","watch:js":"onchange 'src/**/*.js' -i -- yarn build:cjs","watch:css":"onchange 'src/**/*.styl' -i -- yarn build:css","test":"eslint src","build":"npm-run-all build:*","prepublish":"yarn build","postpublish":"git push --tags","docs":"yarn watch & cd docs && yarn && yarn start","docs:build":"yarn build && cd docs && yarn && yarn build"},"dependencies":{"classnames":"^2.2.5"},"peerDependencies":{"react":"^15.x.x || ^16.x.x"},"devDependencies":{"autoprefixer":"^6.7.0","babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-plugin-external-helpers":"^6.22.0","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-preset-env":"^1.6.1","babel-preset-react":"^6.24.1","eslint":"^4.1.1","eslint-config-react-tools":"^1.0.10","eslint-plugin-class-property":"^1.0.6","eslint-plugin-import":"^2.7.0","eslint-plugin-jsx-a11y":"^6.0.2","eslint-plugin-react":"^7.4.0","match-sorter":"^1.8.0","npm-run-all":"^4.1.2","onchange":"^3.0.2","postcss-cli":"^2.6.0","prop-types":"^15.6.0","react":"^15.4.2","react-dom":"^15.4.2","react-json-tree":"^0.10.9","rimraf":"^2.6.1","rollup":"^0.55.3","rollup-plugin-babel":"^3.0.3","rollup-plugin-commonjs":"^8.3.0","rollup-plugin-node-resolve":"^3.0.2","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"^3.0.0","standard":"^10.0.2","stylus":"^0.54.5"},"babel":{"env":{"development":{"presets":[["env",{"modules":"commonjs"}],"react"],"plugins":["transform-object-rest-spread","transform-class-properties"]},"es":{"presets":[["env",{"modules":false}],"react"],"plugins":["transform-object-rest-spread","transform-class-properties"]},"umd":{"presets":[["env",{"modules":false}],"react"],"plugins":["transform-object-rest-spread","transform-class-properties","external-helpers"]}}},"licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@6.8.4","dist":{"shasum":"8c0e6419cc1e5d3ac4ef349c2601694be47d8b6c","tarball":"https://registry.npmjs.org/react-table/-/react-table-6.8.4.tgz","fileCount":55,"unpackedSize":1061479,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa/2MHCRA9TVsSAnZWagAACuQP+QDVEiZXaGiG8qlOuSyY\nnptGvmyGoOYd6oC9cP43HBfJll5hzkAsV4V9x66/NGeFdpa9mov5jJGtZonx\neNijn1nXhzYxUjDa0ugL1yVlRaRXZsUKz64+e+ZPGDEYEg+0ae0QB2G7Oy9d\nL7rFvezlaFY6GkciRe0ew9roI2NUk83/TL0CAfLAvoQWt4kIhLb32lYYQ6PR\nUrJahspS5WV+fBTaLs/EZ0loa7tRLs31VSdIWoYHzg9cWLxt/fYx9zL7RYez\nhBrrwlIuqVTBDyVwgizNh/ruXqwJUqNypaljYnWUj9BJ1eqwST4rrFBkxqkO\n1ifkJk9g+tRH+a7a3SurQSWURxtkU0EWAGWl7EKVst/iCfKa/43TQjUy2FMy\nWQTTN9sOwEBsui7ItS/n15tw7+VG6SLrobPQeqyv2JfjR5KQP0Vhd4k5qnKo\na9a4p0IN1fYRQmkiWlJVi6DSZYMeMLsBYADOU2cL7myXeW91ukahaVka5pMu\nXsIgISxp+T8pKqsqIAYK0btbRW9vuedhgF42NDxmFvF8VCozmf3ae1uIhlvu\n9i5MdDGQQ+9u6O2mr0zv4Sag1O5B5YWxEHYcf5oebfyvk/fEJlq+af6RIesj\n570v474CLDgYyt6hEWQtw+H/YGyIQDjXTkNraFuf2fmrFSgJLzU5z7GBJBt5\nyx4y\r\n=u9Y1\r\n-----END PGP SIGNATURE-----\r\n","integrity":"sha512-/te+8HFgqx5t7c+4dZ25KtndaOJ0NYjGF+POtisUNeOiM27GgQirLFaTOm2d5fzYBJBEGHxtbWhw3YTCp962og==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDUVd79tUgfRryKl2ukZxo+OwpDF1FAqe02qMRO4Cyr+wIhAKQ71bbOstRfMl8GAah/O+6f3EgR8V9OHAYP93wsKssV"}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_6.8.4_1526686469695_0.20123772649435878"},"_hasShrinkwrap":false},"6.8.5":{"name":"react-table","version":"6.8.5","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/react-tools/react-table#readme","repository":{"type":"git","url":"git+https://github.com/react-tools/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","module":"es/index.js","files":["src/","es/","lib/","react-table.js","react-table.min.js","react-table.css","media/*.png"],"scripts":{"build:cjs":"babel src --out-dir lib --source-maps inline","build:es":"BABEL_ENV=es babel src --out-dir es --source-maps inline","build:umd":"BABEL_ENV=umd rollup -c","build:umd-min":"BABEL_ENV=umd NODE_ENV=production rollup -c","build:css":"rimraf react-table.css && stylus src/index.styl --compress -o react-table.css && yarn css:autoprefix","css:autoprefix":"postcss --use autoprefixer react-table.css -r","watch":"npm-run-all --parallel watch:*","watch:js":"onchange 'src/**/*.js' -i -- yarn build:cjs","watch:css":"onchange 'src/**/*.styl' -i -- yarn build:css","test":"eslint src","build":"npm-run-all build:*","prepublish":"yarn build","postpublish":"git push --tags","docs":"yarn watch & cd docs && yarn && yarn start","docs:build":"yarn build && cd docs && yarn && yarn build"},"dependencies":{"classnames":"^2.2.5"},"peerDependencies":{"react":"^15.x.x || ^16.x.x"},"devDependencies":{"autoprefixer":"^6.7.0","babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-plugin-external-helpers":"^6.22.0","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-preset-env":"^1.6.1","babel-preset-react":"^6.24.1","eslint":"^4.1.1","eslint-config-react-tools":"^1.0.10","eslint-plugin-class-property":"^1.0.6","eslint-plugin-import":"^2.7.0","eslint-plugin-jsx-a11y":"^6.0.2","eslint-plugin-react":"^7.4.0","match-sorter":"^1.8.0","npm-run-all":"^4.1.2","onchange":"^3.0.2","postcss-cli":"^2.6.0","prop-types":"^15.6.0","react":"^16.3.2","react-dom":"^16.3.2","react-json-tree":"^0.10.9","rimraf":"^2.6.1","rollup":"^0.55.3","rollup-plugin-babel":"^3.0.3","rollup-plugin-commonjs":"^8.3.0","rollup-plugin-node-resolve":"^3.0.2","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"^3.0.0","standard":"^10.0.2","stylus":"^0.54.5"},"babel":{"env":{"development":{"presets":[["env",{"modules":"commonjs"}],"react"],"plugins":["transform-object-rest-spread","transform-class-properties"]},"es":{"presets":[["env",{"modules":false}],"react"],"plugins":["transform-object-rest-spread","transform-class-properties"]},"umd":{"presets":[["env",{"modules":false}],"react"],"plugins":["transform-object-rest-spread","transform-class-properties","external-helpers"]}}},"licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@6.8.5","dist":{"shasum":"88460a98d6e7c28ba323b1ceb6db3f4eab9c3357","tarball":"https://registry.npmjs.org/react-table/-/react-table-6.8.5.tgz","fileCount":55,"unpackedSize":1065990,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa/8huCRA9TVsSAnZWagAAerYP/3nWe709RpjoNYbG6067\nuxDA+IPgvHs6rVUe+fW/oT3ZIoPxlxBYio7j8bkrDdnJAcMoZdDSsgL+dqio\nZs6qkvKyzrWpoWT30g3kO9JZiRyDBoZf/7qSsQ5Md/YQjS0/o3fCrBZAEClA\nZOJvlR8GIcKi7pdqS6vCks+UpzlgL6h6wda7RIRM1gLQCWSknxBYu6vshzoY\nO6xlh29fnuT/Z3CSiVuNjRnFdFU1rY+3lMJtJn7LCf/ND11qq1BkthLW+V5i\nZ08DAwzyktnNdVQiCXA8PfF5hYZMx2CZ9eWwXfBr7th7XZ5HB/oaapVF1eo8\nVdohAHflhICM44fGI87I/Y6xl1KYdX4FbTZJXE+hQhYvlxRZRZ5A1ZSk5xGE\ndnvjtSoL5FNfVOUxa3IM4tcxlqB7puiNKanlM68GmNO74MpsxrmeHjNEArKJ\n/DQ5P/z71fdHADU5R6UtcdhxbG9kz+Mq3kK6Ua3F+NzYkzBqDaZHT+bity1b\nYW8et1TJKGxURMGqDiE+VQ4BAlAMthdTXKKI4K3NThgYP58RaCy6O5tlfvWU\nSsj48WY+o/hWBudS+3Y6DNL/E0uj+cvyap4lkKzrVtF2uHNbeP/yKgg3Umt6\nB9xFhuJVltWvNbwEycHkjwBLvz+uXMqO+QUpyrk10inOwqAQa/5mwPNT6X3o\nVHrh\r\n=/2PP\r\n-----END PGP SIGNATURE-----\r\n","integrity":"sha512-45EEucYkdEt9Go0PlyYt02G3l7dzgLQlbhjucZimLdu62wn9QzHHOlIIrAmfu878P7eHWY3/+jZnTboqTERPlg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDxgfS9WiQ2hX9MIseGOv/8BjZkY3Zx3Con/mZB1lDzXQIhANSPflLNcshrVLxz8DLdZ6gQeND6SG/1ylFV4pNxn3PM"}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_6.8.5_1526712428359_0.16990226057859892"},"_hasShrinkwrap":false},"6.8.6":{"name":"react-table","version":"6.8.6","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/react-tools/react-table#readme","repository":{"type":"git","url":"git+https://github.com/react-tools/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","module":"es/index.js","files":["src/","es/","lib/","react-table.js","react-table.min.js","react-table.css","media/*.png"],"scripts":{"build:cjs":"babel src --out-dir lib --source-maps inline","build:es":"BABEL_ENV=es babel src --out-dir es --source-maps inline","build:umd":"BABEL_ENV=umd rollup -c","build:umd-min":"BABEL_ENV=umd NODE_ENV=production rollup -c","build:css":"rimraf react-table.css && stylus src/index.styl --compress -o react-table.css && yarn css:autoprefix","css:autoprefix":"postcss --use autoprefixer react-table.css -r","watch":"npm-run-all --parallel watch:*","watch:js":"onchange 'src/**/*.js' -i -- yarn build:cjs","watch:css":"onchange 'src/**/*.styl' -i -- yarn build:css","test":"eslint src","build":"npm-run-all build:*","prepublish":"yarn build","postpublish":"git push --tags","docs":"yarn watch & cd docs && yarn && yarn start","docs:build":"yarn build && cd docs && yarn && yarn build"},"dependencies":{"classnames":"^2.2.5"},"peerDependencies":{"react":"^15.x.x || ^16.x.x"},"devDependencies":{"autoprefixer":"^6.7.0","babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-plugin-external-helpers":"^6.22.0","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-preset-env":"^1.6.1","babel-preset-react":"^6.24.1","eslint":"^4.1.1","eslint-config-react-tools":"^1.0.10","eslint-plugin-class-property":"^1.0.6","eslint-plugin-import":"^2.7.0","eslint-plugin-jsx-a11y":"^6.0.2","eslint-plugin-react":"^7.4.0","match-sorter":"^1.8.0","npm-run-all":"^4.1.2","onchange":"^3.0.2","postcss-cli":"^2.6.0","prop-types":"^15.6.0","react":"^16.3.2","react-dom":"^16.3.2","react-json-tree":"^0.10.9","rimraf":"^2.6.1","rollup":"^0.55.3","rollup-plugin-babel":"^3.0.3","rollup-plugin-commonjs":"^8.3.0","rollup-plugin-node-resolve":"^3.0.2","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"^3.0.0","standard":"^10.0.2","stylus":"^0.54.5"},"babel":{"env":{"development":{"presets":[["env",{"modules":"commonjs"}],"react"],"plugins":["transform-object-rest-spread","transform-class-properties"]},"es":{"presets":[["env",{"modules":false}],"react"],"plugins":["transform-object-rest-spread","transform-class-properties"]},"umd":{"presets":[["env",{"modules":false}],"react"],"plugins":["transform-object-rest-spread","transform-class-properties","external-helpers"]}}},"licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@6.8.6","dist":{"shasum":"a0ad8b4839319052d5befc012603fb161e52ede3","tarball":"https://registry.npmjs.org/react-table/-/react-table-6.8.6.tgz","fileCount":55,"unpackedSize":1066004,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbBEL+CRA9TVsSAnZWagAAF5UP/1uc7osUfrZTKpGZi9wn\ndMt0SwH9ZIzoqABOTQpvrLv2pV41QTumctaTkONlsQZlDa902t5/CFvtTdZS\nZQQ5y2o83rHj06qBNpnRZLdO0mRIKtqVG12hZG2Fzg0UZ1UH5tjCOhH1CIsb\nPET0jSZ64lFlnTjZ0k5w4R9Drg4JTCEfAICw/+3pI5SfvMU2xjYrUfYS+dU6\nurdh0Sge5WmWHL0BonMroSS/A29PyAXOHTuB/u8BFPkHTMXjFQeB02TZoCV6\n5KxuLkFwTokD7NpM5pWO75L42LX72g4BA+RzmE3f+vxVQDMyqXrtdgZcIVSo\n4TfeaRYi3P6C3iRmc0uooGzQH1kfrJWHfB5kfLSVUCmWTViyVSzcv19I/PkB\nhSjusJvRBMRGlm+bMlL62pJNOlEj1hHV8/riHVvW+Cv8sF0ZBRbHsDPD+E9c\ng+IOP9UhQqWe3H6k+lF102n8EtAF7KPgnemmnzMwOXn+1RTPmWMmXe6bkaDs\nZsMW3rDk+Z5vciqIeimldvmkQKFMuUww6/GuxZp3NEsVfF03QK9GJfNW2uQ2\na3FjXxMsgyZGWfSELYnG5vygKtHL2rzPQ9rDJHgf4w4usq40TvyLcf3F8LoD\npegx7MbSL9aQjWCozqpAs6LdW+YOPqM0+zm7fzJodUE0toCm0L+Eeb48G37y\nFJBQ\r\n=7Q1J\r\n-----END PGP SIGNATURE-----\r\n","integrity":"sha512-vqo10kd6sHm39DuTa+lfMpa+dVZYfZDBDscw6gNn/ilR9QRZbmpaiteNWnyn5XxLcK+1V7UuJ3+yQvTdTsdWKQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCO0bzPEe3bBESxMo5KiFmdZ1tQ7krO7jT3xa3rMz76kgIgdYgpIYlfouGj3b127YZ+FiPTewQxKB10qsRXgS5FrXM="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_6.8.6_1527005948134_0.7882604059490841"},"_hasShrinkwrap":false},"6.9.0":{"name":"react-table","version":"6.9.0","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/react-tools/react-table#readme","repository":{"type":"git","url":"git+https://github.com/react-tools/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","module":"es/index.js","scripts":{"build:cjs":"babel src --out-dir lib --source-maps inline --copy-files","build:es":"cross-env BABEL_ENV=es babel src --out-dir es --source-maps inline","build:umd":"cross-env BABEL_ENV=umd rollup -c","build:umd-min":"cross-env BABEL_ENV=umd NODE_ENV=production rollup -c","build:css":"rimraf react-table.css && stylus src/index.styl --compress -o react-table.css && yarn css:autoprefix","css:autoprefix":"postcss --use autoprefixer react-table.css -r","watch":"npm-run-all --parallel watch:*","watch:js":"onchange 'src/**/*.js' -i -- yarn build:cjs","watch:css":"onchange 'src/**/*.styl' -i -- yarn build:css","test":"eslint src","build":"npm-run-all build:*","prepublish":"yarn build","postpublish":"git push --tags","docs":"yarn watch & cd docs && yarn && yarn start","docs:build":"yarn build && cd docs && yarn && yarn build"},"dependencies":{"classnames":"^2.2.5"},"peerDependencies":{"prop-types":"^15.5.0","react":"^15.x.x || ^16.x.x","react-dom":"^15.x.x || ^16.x.x"},"devDependencies":{"autoprefixer":"^6.7.0","babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-plugin-external-helpers":"^6.22.0","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-preset-env":"^1.6.1","babel-preset-react":"^6.24.1","cross-env":"^5.1.4","eslint":"^4.1.1","eslint-config-react-tools":"^1.0.10","eslint-plugin-class-property":"^1.0.6","eslint-plugin-import":"^2.7.0","eslint-plugin-jsx-a11y":"^6.0.2","eslint-plugin-react":"^7.4.0","match-sorter":"^1.8.0","npm-run-all":"^4.1.2","onchange":"^3.0.2","postcss-cli":"^2.6.0","prop-types":"^15.6.0","react":"^16.3.2","react-dom":"^16.3.2","react-json-tree":"^0.10.9","rimraf":"^2.6.1","rollup":"^0.55.3","rollup-plugin-babel":"^3.0.3","rollup-plugin-commonjs":"^8.3.0","rollup-plugin-node-resolve":"^3.0.2","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"^3.0.0","standard":"^10.0.2","stylus":"^0.54.5"},"babel":{"env":{"development":{"presets":[["env",{"modules":"commonjs"}],"react"],"plugins":["transform-object-rest-spread","transform-class-properties"]},"es":{"presets":[["env",{"modules":false}],"react"],"plugins":["transform-object-rest-spread","transform-class-properties"]},"umd":{"presets":[["env",{"modules":false}],"react"],"plugins":["transform-object-rest-spread","transform-class-properties","external-helpers"]}}},"licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@6.9.0","dist":{"shasum":"de8190a1a3f32c5fa46697a6a6c640e984670f5d","integrity":"sha512-sATtBTyXlQlqSaPayDv66e5JAS8zv1BmaCAm7UT8VzDD9Cvei90Lgx2Cn0HdGMh7BGDNUiVTSGRaNAzejs/Ohg==","tarball":"https://registry.npmjs.org/react-table/-/react-table-6.9.0.tgz","fileCount":71,"unpackedSize":1409296,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcUy3YCRA9TVsSAnZWagAA4jsP/1cEJGqYGWspysFpwc3V\n61RxHYsTrG7r2kiwJBsnYZXV+WJNfE/JqSXNjO51s3np7G17qiHylDPHSLrl\nwvO7wwO3MepUSAMY3T5ZSok/8WC6nwui9JE05h0IZu1bG8BNI7FsEeaoTe83\nxQjMgX12g9ZslTNq7zUGfA5fuR0LmL6g6RN+eSFL31/AQ9sK2x8R+USdtdEI\nc+KRJ0z6UG+2ZfNZsOo+mqsn3ng/ZDLW0ZjklKAESzDWWm7D9V2T4MVBZhPt\n7u5Er2DUTKFMOOAESs7or5srEr8KGqW0As3pl56P9CBhDhiGeN61o+BvZpPY\natVL+IX+lwDNg3m3O9kpDZFKgqlVl8VJWsfvOQ+Kv+P9pZ6dXkISnQ2C5bki\nfFwbgIuWSmZ49LXdG8bOxGnLLijUo+opKChu6xjpu3/8ZtvoAaGySmKh4Q6Z\nNkBqnTiRpVBxwVeEVftUseehtohHAfAilRU64wFM6fMLT1KW0fRWX286pefL\n9g1iIaclPx7H0j84FlikDuHOsy/vUx5GKvVXvY+rNSxEY41YyP1KQsXLas8k\nsfvtSqXiSPnZ5Ez9TIkiAzfyoJJgb4vygzBUpIQcYc3ggQY10Us1RzAXydpZ\nr2R4LTbRYdBLx7+MbnHJxUN01o8E3jUoIQYcdpfxYdxdopStXnT4IZMRqvX/\nrvRF\r\n=JAsU\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD2btbAWDDlHn3ohej/TpYpPBoh67ji8QzQRy+G2R6rnQIgAf1Exsj07dNPnCG9qsFFkObDHKMZO4fyfNfQHvo27RE="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_6.9.0_1548955095606_0.45558720190990587"},"_hasShrinkwrap":false},"7.0.0-alpha.0":{"name":"react-table","version":"7.0.0-alpha.0","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"dist/index.js","scripts":{"test":"cross-env CI=1 react-scripts test --env=jsdom","test:watch":"react-scripts test --env=jsdom","build":"rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next"},"peerDependencies":{"prop-types":"^15.5.0","react":"^16.7.0-alpha.0 || ^16.8.x","react-dom":"^16.7.0-alpha.0 || ^16.8.x"},"devDependencies":{"@babel/plugin-proposal-class-properties":"^7.2.1","@babel/preset-env":"^7.2.0","@babel/preset-react":"^7.0.0","@babel/runtime":"^7.2.0","@svgr/rollup":"^4.1.0","babel-core":"7.0.0-bridge.0","cross-env":"^5.1.4","eslint":"^5.10.0","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-import":"^2.13.0","eslint-plugin-node":"^8.0.0","eslint-plugin-promise":"^4.0.0","eslint-plugin-react":"^7.10.0","eslint-plugin-standard":"^4.0.0","rollup":"^0.68.0","rollup-plugin-babel":"^4.1.0","rollup-plugin-commonjs":"^9.1.3","rollup-plugin-node-resolve":"^4.0.0","rollup-plugin-peer-deps-external":"^2.2.0"},"readmeFilename":"README.md","readme":"# React Table\n\nHooks for building **lightweight, fast and extendable datagrids** for React\n\n<a href=\"https://travis-ci.org/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://travis-ci.org/tannerlinsley/react-table.svg?branch=master\" />\n</a>\n<a href=\"https://npmjs.com/package/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-table.svg\" />\n</a>\n<a href=\"https://spectrum.chat/react-table\">\n  <img alt=\"Join the community on Spectrum\" src=\"https://withspectrum.github.io/badge/badge.svg\" />\n</a>\n<a href=\"https://github.com/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-table.svg?style=social&label=Star\" />\n</a>\n<a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n\n<br />\n<br />\n\n⚠️ Version 7 is under active development and is currently in an alpha state. If you are looking for [React Table v6, click here](https://github.com/tannerlinsley/react-table/tree/v6)\n\n## Features\n\n- Lightweight\n- Headless (Fully customizable)\n- Client-side & Server-side pagination\n- Multi-sort\n- Filters\n- Pivoting & Aggregation\n- Fully controllable\n- Extensible\n- <a href=\"https://medium.com/@tannerlinsley/why-i-wrote-react-table-and-the-problems-it-has-solved-for-nozzle-others-445c4e93d4a8#.axza4ixba\" target=\"\\_parent\">\"Why I wrote React Table and the problems it has solved for Nozzle.io\"</a> by Tanner Linsley\n\n## Versions\n\n- This documentation is for version 7 of react-table.\n- [View the Changelog](https://github.com/tannerlinsley/react-table/blob/master/CHANGELOG.md)\n- Previous versions:\n  - [6.x.x Readme](https://github.com/tannerlinsley/react-table/tree/v6/)\n  - [5.x.x Readme](https://github.com/tannerlinsley/react-table/blob/ad7d31cd3978eb45da7c6194dbab93c1e9a8594d/README.md)\n\n## Sponsors\n\n**React Table v7** is mostly planned and I (@tannerlinsley) am looking for Patreon support to make it a reality. It will require a decent time commitment on my part to not only implement it, but also help people migrate and continue to maintain it. If you would like to contribute to my Patreon goal for v7 and beyond, [visit my Patreon and help me out!](https://patreon.com/tannerlinsley).\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/platinum.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://tryretool.com/?utm_source=sponsor&utm_campaign=react_table\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-retool.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/gold.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://nozzle.io\" target=\"_blank\">\n          <img width=\"300\" src=\"https://nozzle.io/img/logo-blue.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://tryretool.com/?utm_source=sponsor&utm_campaign=react_table\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/gold-placeholder.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://tryretool.com/?utm_source=sponsor&utm_campaign=react_table\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://tryretool.com/?utm_source=sponsor&utm_campaign=react_table\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://tryretool.com/?utm_source=sponsor&utm_campaign=react_table\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n## Table of Contents\n\n- [Installation](#installation)\n- [Example](#example)\n- [Contributing](#contributing)\n\n## Installation\n\n1.  Install React Table as a dependency\n\n```bash\n# Yarn\n$ yarn add react-table\n\n# NPM\n$ npm install react-table\n```\n\n2.  Import the `react-table` module\n\n```javascript\nimport { useReactTable } from \"react-table\";\n```\n\n## Examples\n\n[React Table v7 Sandbox](https://codesandbox.io/s/m5lxzzpz69)\n\n# Documentation\n\nDocumentation for v7 is coming soon. If you're looking for the [v6 documentation, click here](https://github.com/tannerlinsley/react-table/tree/v6)\n\n## Contributing\n\nTo suggest a feature, create an issue if it does not already exist.\nIf you would like to help develop a suggested feature follow these steps:\n\n- Fork this repo\n- Install dependencies with `$ yarn`\n- Auto-build files as you edit with `$ yarn run watch`\n- Implement your changes to files in the `src/` directory\n- Run the <a href=\"https://github.com/tannerlinsley/react-story\">React Story</a> locally with `$ yarn run docs`\n- View changes as you edit `docs/src`\n- Submit PR for review\n\n#### Package Utilities\n\n- `$ yarn run watch` Watches files and builds via babel\n- `$ yarn run docs` Runs the storybook server\n- `$ yarn run test` Runs the test suite\n","licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.0-alpha.0","dist":{"shasum":"2840f6ab15d4dea3da7e097266175083e6928ca5","integrity":"sha512-SnSed4m87PKGY/sqDOO/+EyxJhEaBuLC89fGyKc/Po4NfDOy+eBxBtLe9TL70Kw2/lPgx+pxrVW+5clkWuyaEg==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.0-alpha.0.tgz","fileCount":92,"unpackedSize":1303972,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcWO04CRA9TVsSAnZWagAAApcP/iEkAwmN1nXenh1JgAcp\ni5jhFAfffZUJ6xQAaE5yJJKce+dLPRGstNnqx2EmqITLfi03LOL+s0ziHPQD\nvrenRKQvM2OXG5la3psvE7h8x3REP8LufTV+IZ5GAATH/hhlVR1OqYaP5uYC\npyz1btrp8VKtlVF+kREI0vtCvjw2l0DgpIM50GdNFCfYS5u59qYG8W5xVRMn\nwcu5CfCZvP3qRI22vrTberUg+TICymC0kVwsfNDyGpQjdUdGQMtuJt4NaHdl\nXXCSRqddhEBkMEU7TDwbsbICP1HnawRn4Xzt8pxY24bOZBvDVX5qW+jo6QnI\nLBYPi3ES7DNVfZsx3rbQ+x8r9wDn2VEMeeYpBfP0Q6gaiZDWvCgZrV9fE7UZ\nZ1lId+AwjqD7M3QrZX57pCsudpyMHtReDH1Eh43kDDdb/iF31p4Ld4f5RW+U\ng+c3ecZHQu08qxrasbBPnx1Zs+8a1AnI/cWtRvPCx9zHWn71hLNjSpSp7yVa\nkjgL+xAQonBES6QGes64mcTAq0vP6B/adrk6IGVN6NqIjkPhY1PzBvJ6r8Qi\n5fDY3NDmol9yguM10rHrMGrf9IzPWtxE5x91p/+OI13Rtw7sictY1l4q2yX3\n1s65vy3Ohweh6T7VCLAlfW6fdp4IRS7Ls2rBT5proNQQ+NIa81tfgRJwHwNg\nYOgF\r\n=NcZz\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCjsuvp84dAb/NLzY6HTkS+UrTq0tcD1b7TDSpVnJLj1wIhAJxoMHrScm2ce7c1tDlbKWvHAz7FWERpwK30Xn4DZHgh"}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.0-alpha.0_1549331768207_0.1605429963589684"},"_hasShrinkwrap":false},"7.0.0-alpha.1":{"name":"react-table","version":"7.0.0-alpha.1","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"dist/index.js","scripts":{"test":"cross-env CI=1 react-scripts test --env=jsdom","test:watch":"react-scripts test --env=jsdom","build":"rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next"},"peerDependencies":{"prop-types":"^15.5.0","react":"^16.7.0-alpha.0 || ^16.8.x","react-dom":"^16.7.0-alpha.0 || ^16.8.x"},"devDependencies":{"@babel/plugin-proposal-class-properties":"^7.2.1","@babel/preset-env":"^7.2.0","@babel/preset-react":"^7.0.0","@babel/runtime":"^7.2.0","@svgr/rollup":"^4.1.0","babel-core":"7.0.0-bridge.0","babel-eslint":"^10.0.1","cross-env":"^5.1.4","eslint":"^5.10.0","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-import":"^2.13.0","eslint-plugin-node":"^8.0.0","eslint-plugin-promise":"^4.0.0","eslint-plugin-react":"^7.10.0","eslint-plugin-standard":"^4.0.0","rollup":"^0.68.0","rollup-plugin-babel":"^4.1.0","rollup-plugin-commonjs":"^9.1.3","rollup-plugin-node-resolve":"^4.0.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-uglify":"^6.0.2"},"readmeFilename":"README.md","readme":"# React Table\n\nHooks for building **lightweight, fast and extendable datagrids** for React\n\n<a href=\"https://travis-ci.org/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://travis-ci.org/tannerlinsley/react-table.svg?branch=master\" />\n</a>\n<a href=\"https://npmjs.com/package/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-table.svg\" />\n</a>\n<a href=\"https://spectrum.chat/react-table\">\n  <img alt=\"Join the community on Spectrum\" src=\"https://withspectrum.github.io/badge/badge.svg\" />\n</a>\n<a href=\"https://github.com/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-table.svg?style=social&label=Star\" />\n</a>\n<a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n\n<br />\n<br />\n\n⚠️ Version 7 is under active development and is currently in an alpha state. If you are looking for [React Table v6, click here](https://github.com/tannerlinsley/react-table/tree/v6)\n\n## Features\n\n- Lightweight\n- Headless (Fully customizable)\n- Client-side & Server-side pagination\n- Multi-sort\n- Filters\n- Pivoting & Aggregation\n- Fully controllable\n- Extensible\n- <a href=\"https://medium.com/@tannerlinsley/why-i-wrote-react-table-and-the-problems-it-has-solved-for-nozzle-others-445c4e93d4a8#.axza4ixba\" target=\"\\_parent\">\"Why I wrote React Table and the problems it has solved for Nozzle.io\"</a> by Tanner Linsley\n\n## Versions\n\n- This documentation is for version 7 of react-table.\n- [View the Changelog](https://github.com/tannerlinsley/react-table/blob/master/CHANGELOG.md)\n- Previous versions:\n  - [6.x.x Readme](https://github.com/tannerlinsley/react-table/tree/v6/)\n  - [5.x.x Readme](https://github.com/tannerlinsley/react-table/blob/ad7d31cd3978eb45da7c6194dbab93c1e9a8594d/README.md)\n\n## Sponsors\n\n**React Table v7** is mostly planned and I (@tannerlinsley) am looking for Patreon support to make it a reality. It will require a decent time commitment on my part to not only implement it, but also help people migrate and continue to maintain it. If you would like to contribute to my Patreon goal for v7 and beyond, [visit my Patreon and help me out!](https://patreon.com/tannerlinsley).\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/platinum.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://tryretool.com/?utm_source=sponsor&utm_campaign=react_table\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-retool.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/gold.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://nozzle.io\" target=\"_blank\">\n          <img width=\"300\" src=\"https://nozzle.io/img/logo-blue.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://tryretool.com/?utm_source=sponsor&utm_campaign=react_table\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/gold-placeholder.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://tryretool.com/?utm_source=sponsor&utm_campaign=react_table\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://tryretool.com/?utm_source=sponsor&utm_campaign=react_table\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://tryretool.com/?utm_source=sponsor&utm_campaign=react_table\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n## Table of Contents\n\n- [Installation](#installation)\n- [Example](#example)\n- [Contributing](#contributing)\n\n## Installation\n\n1.  Install React Table as a dependency\n\n```bash\n# Yarn\n$ yarn add react-table\n\n# NPM\n$ npm install react-table\n```\n\n2.  Import the `react-table` module\n\n```javascript\nimport { useReactTable } from \"react-table\";\n```\n\n## Examples\n\n[React Table v7 Sandbox](https://codesandbox.io/s/m5lxzzpz69)\n\n# Documentation\n\nDocumentation for v7 is coming soon. If you're looking for the [v6 documentation, click here](https://github.com/tannerlinsley/react-table/tree/v6)\n\n## Contributing\n\nTo suggest a feature, create an issue if it does not already exist.\nIf you would like to help develop a suggested feature follow these steps:\n\n- Fork this repo\n- Install dependencies with `$ yarn`\n- Auto-build files as you edit with `$ yarn run watch`\n- Implement your changes to files in the `src/` directory\n- Run the <a href=\"https://github.com/tannerlinsley/react-story\">React Story</a> locally with `$ yarn run docs`\n- View changes as you edit `docs/src`\n- Submit PR for review\n\n#### Package Utilities\n\n- `$ yarn run watch` Watches files and builds via babel\n- `$ yarn run docs` Runs the storybook server\n- `$ yarn run test` Runs the test suite\n","licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.0-alpha.1","dist":{"shasum":"a83bd77c6386f6858b529f382df1fe403469556b","integrity":"sha512-aTxOwnDXS7IxNbdHziD44t2t67C7T3JOEXNeQKpxabT/2DyCTnU2pvsPBWFN3XgSpH4NW7m19oIH0BuushXuZw==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.0-alpha.1.tgz","fileCount":93,"unpackedSize":1278174,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcW2ulCRA9TVsSAnZWagAA90YQAKP83e/yv6xDU0p8FpSV\nNeu6/65bJGnNAlci9cx4/zEVZhXroo50f4APa/iV46bMHjQZezhDRjpTwpvp\n4l91jOIUW9ZXIPDxktlWIKVoQFKgqjGGJJkUazOtSi79XqDMAtd8CEvGAWpA\npo7Rxj0JvF2YFxeNDrwWGaC7tTZIi8v4+vTzX8d04w4lKeu/zqUo9gdwy3FR\nLrtCRWYSU5UK42Yb/LfiHVeRAq635oaTQTQN43DvOq3m7AyyYoo3qCUmppYp\npS4WDgzN5NyOI3QW/+MQKlqcRCRo2XEoOko6qreoAHKvrEOQGhwymYomIJZO\nzudrhutvcc/sBTcoFhJylElnIc0f325cW0wy2yfq8EYweNZtesRj2ERrvDXZ\nJoOvrHwinZE/Rar3vKsT9RpnXXEgzBAIUdU3Rq87DOf91e9t9oANORmZoUf0\n83DFJj7sJJtqDQj/j918mAs4U1K0xrAe6dbcfbdHlFdh2R1A4wGMwH8emBPJ\n9bzOD0ZnXTsgqQJk+8ZhjYdSvvg312Hn1McngfgEiZWvv0XtvrgXep50Pkjo\nsGPPSaHP4WmVxodP/nKS3rOuYXoYzJPAKYJVfv3yIun7H9FfX1VffZGe5e9j\nrzIRKqgjBngaFiXje56kBWanJVp+/3Awmt8JqflArbvDLM3pAjiqSDT/Prta\nl5ka\r\n=xCQv\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFjdRKlL5luzbqaljtd942pkVzm637uW+FG43QzYCQkLAiBiZvmsxTzacnRuu4yNTIhLz5/tUfS7rgR/pqh9FjteTg=="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.0-alpha.1_1549495204270_0.6101500976822374"},"_hasShrinkwrap":false},"7.0.0-alpha.2":{"name":"react-table","version":"7.0.0-alpha.2","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"dist/index.js","scripts":{"test":"cross-env CI=1 react-scripts test --env=jsdom","test:watch":"react-scripts test --env=jsdom","build":"rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next"},"peerDependencies":{"prop-types":"^15.5.0","react":"^16.7.0-alpha.0 || ^16.8.x","react-dom":"^16.7.0-alpha.0 || ^16.8.x"},"devDependencies":{"@babel/plugin-proposal-class-properties":"^7.2.1","@babel/preset-env":"^7.2.0","@babel/preset-react":"^7.0.0","@babel/runtime":"^7.2.0","@svgr/rollup":"^4.1.0","babel-core":"7.0.0-bridge.0","babel-eslint":"^10.0.1","cross-env":"^5.1.4","eslint":"^5.10.0","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-import":"^2.13.0","eslint-plugin-node":"^8.0.0","eslint-plugin-promise":"^4.0.0","eslint-plugin-react":"^7.10.0","eslint-plugin-standard":"^4.0.0","rollup":"^0.68.0","rollup-plugin-babel":"^4.1.0","rollup-plugin-commonjs":"^9.1.3","rollup-plugin-node-resolve":"^4.0.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-uglify":"^6.0.2"},"readmeFilename":"README.md","readme":"# React Table\n\nHooks for building **lightweight, fast and extendable datagrids** for React\n\n<a href=\"https://travis-ci.org/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://travis-ci.org/tannerlinsley/react-table.svg?branch=master\" />\n</a>\n<a href=\"https://npmjs.com/package/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-table.svg\" />\n</a>\n<a href=\"https://spectrum.chat/react-table\">\n  <img alt=\"Join the community on Spectrum\" src=\"https://withspectrum.github.io/badge/badge.svg\" />\n</a>\n<a href=\"https://github.com/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-table.svg?style=social&label=Star\" />\n</a>\n<a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n\n<br />\n<br />\n\n⚠️ Version 7 is under active development and is currently in an alpha state. If you are looking for [React Table v6, click here](https://github.com/tannerlinsley/react-table/tree/v6)\n\n## Features\n\n- Lightweight\n- Headless (Fully customizable)\n- Client-side & Server-side pagination\n- Multi-sort\n- Filters\n- Pivoting & Aggregation\n- Fully controllable\n- Extensible\n- <a href=\"https://medium.com/@tannerlinsley/why-i-wrote-react-table-and-the-problems-it-has-solved-for-nozzle-others-445c4e93d4a8#.axza4ixba\" target=\"\\_parent\">\"Why I wrote React Table and the problems it has solved for Nozzle.io\"</a> by Tanner Linsley\n\n## Versions\n\n- This documentation is for version 7 of react-table.\n- [View the Changelog](https://github.com/tannerlinsley/react-table/blob/master/CHANGELOG.md)\n- Previous versions:\n  - [6.x.x Readme](https://github.com/tannerlinsley/react-table/tree/v6/)\n  - [5.x.x Readme](https://github.com/tannerlinsley/react-table/blob/ad7d31cd3978eb45da7c6194dbab93c1e9a8594d/README.md)\n\n## Sponsors\n\n**React Table v7** is mostly planned and I (@tannerlinsley) am looking for Patreon support to make it a reality. It will require a decent time commitment on my part to not only implement it, but also help people migrate and continue to maintain it. If you would like to contribute to my Patreon goal for v7 and beyond, [visit my Patreon and help me out!](https://patreon.com/tannerlinsley).\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/platinum.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://tryretool.com/?utm_source=sponsor&utm_campaign=react_table\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-retool.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/gold.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://nozzle.io\" target=\"_blank\">\n          <img width=\"300\" src=\"https://nozzle.io/img/logo-blue.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://tryretool.com/?utm_source=sponsor&utm_campaign=react_table\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/gold-placeholder.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://tryretool.com/?utm_source=sponsor&utm_campaign=react_table\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://tryretool.com/?utm_source=sponsor&utm_campaign=react_table\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://tryretool.com/?utm_source=sponsor&utm_campaign=react_table\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n## Table of Contents\n\n- [Installation](#installation)\n- [Example](#example)\n- [Contributing](#contributing)\n\n## Installation\n\n1.  Install React Table as a dependency\n\n```bash\n# Yarn\n$ yarn add react-table\n\n# NPM\n$ npm install react-table\n```\n\n2.  Import the `react-table` module\n\n```javascript\nimport { useReactTable } from \"react-table\";\n```\n\n## Examples\n\n[React Table v7 Sandbox](https://codesandbox.io/s/m5lxzzpz69)\n\n# Documentation\n\nDocumentation for v7 is coming soon. If you're looking for the [v6 documentation, click here](https://github.com/tannerlinsley/react-table/tree/v6)\n\n## Contributing\n\nTo suggest a feature, create an issue if it does not already exist.\nIf you would like to help develop a suggested feature follow these steps:\n\n- Fork this repo\n- Install dependencies with `$ yarn`\n- Auto-build files as you edit with `$ yarn run watch`\n- Implement your changes to files in the `src/` directory\n- Run the <a href=\"https://github.com/tannerlinsley/react-story\">React Story</a> locally with `$ yarn run docs`\n- View changes as you edit `docs/src`\n- Submit PR for review\n\n#### Package Utilities\n\n- `$ yarn run watch` Watches files and builds via babel\n- `$ yarn run docs` Runs the storybook server\n- `$ yarn run test` Runs the test suite\n","licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.0-alpha.2","dist":{"shasum":"bb21f971d7a4e075b4afb0bce2163ce6bb1704f7","integrity":"sha512-TySZyFU41XCuJT8GpCHvjtjiV+CgryLH4B2L/nFpSAXslPB7iSjxCC96vZCZf62vrC4m74UloFhVsPio38Lo9Q==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.0-alpha.2.tgz","fileCount":93,"unpackedSize":1278170,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcW2xSCRA9TVsSAnZWagAAYjMP/Aghv8I7HOjg/OkYfIEA\nrFJD38cu2f0LnMLoQF5tc5WjZbQUXHzWq1tILfVVp59eNqmHKH0Atajf6frs\n9lQaiHHoB7Z4QiVzQLTEOyd34cXZBuRm/pyy1ZvfryQsouPjQII7V+30pGUt\nACrSBYSeBP1fDOCA33Doxs2jWFMd6H1O5CXR/pWkn337gEdnBbho2558JyQJ\nTHwJ01cTDm0JYI+VKizRaL4robhbxsyvMoHPZ9omuHSoKCdM4lBJppcyPUdV\nB+JlDc28Uc4BnMi0/nV7yUBDF2g+aDfpwiiiHkW+5SelJapu00oX0KbvMAcJ\nbJE2NH2ZYSgcLuQLYgERIp7XFj4gHqUZen7yLMYBVBRT5ECA+vWaTtHBDELo\n2n6RS6K1oRHyIUDNzl1FEJ+J8+m2w5hvw3wTbpW6zhHcj/axkY0wsgE203dz\nQk7uVYeQQ8rVQneFybeekVVGw3OQjLN7Dy7vnDEi9n70b6Um2s0QncVnqE9E\nESwDUWN1IwtKv7I0Tw8Y7AZgruXT7QRChl83iwWnK7oN/Mav0bjJP/RTIe+F\nJ/QGttVLto3x7XtLx9O2xaPWix7EPF+EE1PGuAKzqxbhj/ZDRD1IZSTWkalT\nkDfIdtkLOZexvDklNS8STkt9CBXmuHgpKwQCxy23Vh6xPD8VTcbG406HE75G\nxxET\r\n=y1ZW\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCzJS0HwxtRv04upT5I5dohad5z3Tkk6/9S3rj4qWcewQIhAI3DCzvauXUMh3R4ivUCKLcYiZpAFN1kFM4QwxzREE4N"}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.0-alpha.2_1549495378321_0.5666001205687945"},"_hasShrinkwrap":false},"6.9.1":{"name":"react-table","version":"6.9.1","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/react-tools/react-table#readme","repository":{"type":"git","url":"git+https://github.com/react-tools/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","module":"es/index.js","scripts":{"build:cjs":"babel src --out-dir lib --source-maps inline --copy-files","build:es":"cross-env BABEL_ENV=es babel src --out-dir es --source-maps inline","build:umd":"cross-env BABEL_ENV=umd rollup -c","build:umd-min":"cross-env BABEL_ENV=umd NODE_ENV=production rollup -c","build:css":"rimraf react-table.css && stylus src/index.styl --compress -o react-table.css && yarn css:autoprefix","css:autoprefix":"postcss --use autoprefixer react-table.css -r","watch":"npm-run-all --parallel watch:*","watch:js":"onchange 'src/**/*.js' -i -- yarn build:cjs","watch:css":"onchange 'src/**/*.styl' -i -- yarn build:css","test":"eslint src","build":"npm-run-all build:*","prepublish":"yarn build","postpublish":"git push --tags","docs":"yarn watch & cd docs && yarn && yarn start","docs:build":"yarn build && cd docs && yarn && yarn build"},"dependencies":{"classnames":"^2.2.5"},"peerDependencies":{"prop-types":"^15.5.0","react":"^15.x.x || ^16.x.x","react-dom":"^15.x.x || ^16.x.x"},"devDependencies":{"autoprefixer":"^6.7.0","babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-plugin-external-helpers":"^6.22.0","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-preset-env":"^1.6.1","babel-preset-react":"^6.24.1","cross-env":"^5.1.4","eslint":"^4.1.1","eslint-config-react-tools":"^1.0.10","eslint-plugin-class-property":"^1.0.6","eslint-plugin-import":"^2.7.0","eslint-plugin-jsx-a11y":"^6.0.2","eslint-plugin-react":"^7.4.0","match-sorter":"^1.8.0","npm-run-all":"^4.1.2","onchange":"^3.0.2","postcss-cli":"^2.6.0","prop-types":"^15.6.0","react":"^16.3.2","react-dom":"^16.3.2","react-json-tree":"^0.10.9","rimraf":"^2.6.1","rollup":"^0.55.3","rollup-plugin-babel":"^3.0.3","rollup-plugin-commonjs":"^8.3.0","rollup-plugin-node-resolve":"^3.0.2","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"^3.0.0","standard":"^10.0.2","stylus":"^0.54.5"},"babel":{"env":{"development":{"presets":[["env",{"modules":"commonjs"}],"react"],"plugins":["transform-object-rest-spread","transform-class-properties"]},"es":{"presets":[["env",{"modules":false}],"react"],"plugins":["transform-object-rest-spread","transform-class-properties"]},"umd":{"presets":[["env",{"modules":false}],"react"],"plugins":["transform-object-rest-spread","transform-class-properties","external-helpers"]}}},"licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@6.9.1","dist":{"shasum":"50a1713a4de90089f14dcb8cf0f313992ad93a20","integrity":"sha512-QWAwEX24kZPjimhrqRMcdJRi0LX+4MWJG7p9WmAPrfEoYG2HTR1odxa5jLPu7sKVkgsUp0PtZ2jxQ4aXabRJNA==","tarball":"https://registry.npmjs.org/react-table/-/react-table-6.9.1.tgz","fileCount":98,"unpackedSize":1722963,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcYaSjCRA9TVsSAnZWagAAGnsP/1MXzUUyn/Vrbs4RwYx7\nKCqbzjjN0CIndylsCjrWjMmU6RGgW7+LUiMQmLI7jP97Ad1aknjq4gwsFkFw\nzZJ1JNa26Mwzx/mjnLSfh87Anc85CE1r5s81JZoMA/49hRqdw8alePPvQHdy\neXKkw41fqrpBTRO435Ooe30yJPL/fT3IAHzvX8y5DAQ2Ddr9ijBJ7HNa/wUc\nwpeL/HIaWXFBSqGyC4jfmTdjQfLzkHAiF6firM89eojE94kGwI75nbkT0EAw\n18+C0YPRDSQTbms980o/oTiwHujfDBq+gfHZCyj4Gtakhdoh4vT8GV0kcEMI\nnD4D7dmPTLcENDx97IczP4yGq1THhSTzEDUIM180m4MpC1wVBlNsQGAFdnuK\nW2/oSB9cpPHRMTLmmbg2Oo2Iix4ySMHdeQKa79aQRGBE1qtwbbMysjHA7yqb\nRqd4pf0tCLH6eXmE20zcSNm/rniE9eGLsreS5o67Up8+Ao03dObLi0dNp4RQ\nOJvE/DkWWY2yWHdO0a5EcgdC88CEuerjv9TESFUA+KpenPkk3hykUy8hI8h2\nN+GXMJvQUAJvY8ObIevnWfBvC+D/JzdyLuhdmS+Qeu0bZZwPKqEUAbDZ/bUM\nASpJKbDdUdI+jxuovXZb3GvThOhkQKO3HIeeh0hS63xH77R7uQb3ph9jvs2e\n2hTH\r\n=QYGf\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDQrngcVdkEfj5xBxcC15Vt2AzoU7KBU7T6ksaPYULXmAIhAN+lx3oR8VHRd2nDXs1oj0Mm/MgLOPNhSRK72+oX+k03"}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_6.9.1_1549903010651_0.2368250873467832"},"_hasShrinkwrap":false},"6.9.2":{"name":"react-table","version":"6.9.2","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/react-tools/react-table#readme","repository":{"type":"git","url":"git+https://github.com/react-tools/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","module":"es/index.js","scripts":{"build:cjs":"babel src --out-dir lib --source-maps inline --copy-files","build:es":"cross-env BABEL_ENV=es babel src --out-dir es --source-maps inline","build:umd":"cross-env BABEL_ENV=umd rollup -c","build:umd-min":"cross-env BABEL_ENV=umd NODE_ENV=production rollup -c","build:css":"rimraf react-table.css && stylus src/index.styl --compress -o react-table.css && yarn css:autoprefix","css:autoprefix":"postcss --use autoprefixer react-table.css -r","watch":"npm-run-all --parallel watch:*","watch:js":"onchange 'src/**/*.js' -i -- yarn build:cjs","watch:css":"onchange 'src/**/*.styl' -i -- yarn build:css","test":"eslint src","build":"npm-run-all build:*","prepublish":"yarn build","postpublish":"git push --tags","docs":"yarn watch & cd docs && yarn && yarn start","docs:build":"yarn build && cd docs && yarn && yarn build"},"dependencies":{"classnames":"^2.2.5"},"peerDependencies":{"prop-types":"^15.5.0","react":"^15.x.x || ^16.x.x","react-dom":"^15.x.x || ^16.x.x"},"devDependencies":{"autoprefixer":"^6.7.0","babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-plugin-external-helpers":"^6.22.0","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-preset-env":"^1.6.1","babel-preset-react":"^6.24.1","cross-env":"^5.1.4","eslint":"^4.1.1","eslint-config-react-tools":"^1.0.10","eslint-plugin-class-property":"^1.0.6","eslint-plugin-import":"^2.7.0","eslint-plugin-jsx-a11y":"^6.0.2","eslint-plugin-react":"^7.4.0","match-sorter":"^1.8.0","npm-run-all":"^4.1.2","onchange":"^3.0.2","postcss-cli":"^2.6.0","prop-types":"^15.6.0","react":"^16.3.2","react-dom":"^16.3.2","react-json-tree":"^0.10.9","rimraf":"^2.6.1","rollup":"^0.55.3","rollup-plugin-babel":"^3.0.3","rollup-plugin-commonjs":"^8.3.0","rollup-plugin-node-resolve":"^3.0.2","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"^3.0.0","standard":"^10.0.2","stylus":"^0.54.5"},"babel":{"env":{"development":{"presets":[["env",{"modules":"commonjs"}],"react"],"plugins":["transform-object-rest-spread","transform-class-properties"]},"es":{"presets":[["env",{"modules":false}],"react"],"plugins":["transform-object-rest-spread","transform-class-properties"]},"umd":{"presets":[["env",{"modules":false}],"react"],"plugins":["transform-object-rest-spread","transform-class-properties","external-helpers"]}}},"licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@6.9.2","dist":{"shasum":"6a59adfeb8d5deced288241ed1c7847035b5ec5f","integrity":"sha512-sTbNHU8Um0xRtmCd1js873HXnXaMWeBwZoiljuj0l1d44eaqjKyYPK/3HCBbJg1yeE2O5pQJ3Km0tlm9niNL9w==","tarball":"https://registry.npmjs.org/react-table/-/react-table-6.9.2.tgz","fileCount":98,"unpackedSize":1721678,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcYwEkCRA9TVsSAnZWagAAVQgQAIE9a3mjQPFYXKqRdntj\npCopmIh97cnLJRb6OkXRgUAr9VO/SkPEXdRy9bqSsKGOnL/Y1PFVNKifIHpH\nKi/aordtYNwpjq5r/eiTbQ2LSefDBjDF0u0qh/8ZHKhJjf9w9QKH9yaRBzSl\nT5ASSUSjUMF6qfB4bAfq+txViQQRUNf2k/UjzUg3oaEw56mh8bDIdy0rNOfL\nLVYlAYLyZ/vdinARCJmGkGP7CWIZ7BAak0/NAdSmGQes29Hin7H+40r0vMJw\nke4K0RT+4uMUf/IZhrerytxHQiiV6a+Ph3cV3Sfu0syamHvfPQYNqA2xAEdZ\njNE5nS6LVRqiuETKciG8va197ButPWE9CJCZfuQuLvL+V64awP03EMB96SqK\nTuSiTLeXvsigFOt7PzKYiSROMCFJ1i3nNBVBNLXA0lmRJwtGD9Tc6pyb7GlW\njX7D0LLJbT49yC7Woq1Rmig08REdf4BnRBqzy/mj/boEjgxeL0hmmFwrUbyZ\nJJNFTPvMM5Ifp2n+HLJUxUi5oKYJL5Z68I9MrWDphIIX9HZDTbYAGj6rd2dX\n/DjG/UhszkjbJm1HCQSzTy8Daaikc+IHJHlPjO24RLQ117fBOPunGvMqbfEL\nfwtR2bohsHrAm0mcvlwTHUHO8eS6xeOa8djO3pYq7GFy8MURDGQNssR9vAxl\nEZ78\r\n=/kJh\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICwcHUYEZ70UrMFYhOewcL89FlcJrbbPFdj/aMokVdzOAiEAiEAxOwkMt/kUZ8OwiXGkjBry/084wWZ1ciTsk/eltM8="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_6.9.2_1549992227166_0.7296880670404728"},"_hasShrinkwrap":false},"6.10.0":{"name":"react-table","version":"6.10.0","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/react-tools/react-table#readme","repository":{"type":"git","url":"git+https://github.com/react-tools/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","module":"es/index.js","scripts":{"build:cjs":"babel src --out-dir lib --source-maps inline --copy-files","build:es":"cross-env BABEL_ENV=es babel src --out-dir es --source-maps inline","build:umd":"cross-env BABEL_ENV=umd rollup -c","build:umd-min":"cross-env BABEL_ENV=umd NODE_ENV=production rollup -c","build:css":"rimraf react-table.css && stylus src/index.styl --compress -o react-table.css && yarn css:autoprefix","css:autoprefix":"postcss --use autoprefixer react-table.css -r","watch":"npm-run-all --parallel watch:*","watch:js":"onchange 'src/**/*.js' -i -- yarn build:cjs","watch:css":"onchange 'src/**/*.styl' -i -- yarn build:css","test":"eslint src","build":"npm-run-all build:*","prepublish":"yarn build","postpublish":"git push --tags","docs":"yarn watch & cd docs && yarn && yarn start","docs:build":"yarn build && cd docs && yarn && yarn build"},"dependencies":{"classnames":"^2.2.5"},"peerDependencies":{"prop-types":"^15.5.0","react":"^15.x.x || ^16.x.x","react-dom":"^15.x.x || ^16.x.x"},"devDependencies":{"autoprefixer":"^6.7.0","babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-plugin-external-helpers":"^6.22.0","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-preset-env":"^1.6.1","babel-preset-react":"^6.24.1","cross-env":"^5.1.4","eslint":"^4.1.1","eslint-config-react-tools":"^1.0.10","eslint-plugin-class-property":"^1.0.6","eslint-plugin-import":"^2.7.0","eslint-plugin-jsx-a11y":"^6.0.2","eslint-plugin-react":"^7.4.0","match-sorter":"^1.8.0","npm-run-all":"^4.1.2","onchange":"^3.0.2","postcss-cli":"^2.6.0","prop-types":"^15.6.0","react":"^16.3.2","react-dom":"^16.3.2","react-json-tree":"^0.10.9","rimraf":"^2.6.1","rollup":"^0.55.3","rollup-plugin-babel":"^3.0.3","rollup-plugin-commonjs":"^8.3.0","rollup-plugin-node-resolve":"^3.0.2","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"^3.0.0","standard":"^10.0.2","stylus":"^0.54.5"},"babel":{"env":{"development":{"presets":[["env",{"modules":"commonjs"}],"react"],"plugins":["transform-object-rest-spread","transform-class-properties"]},"es":{"presets":[["env",{"modules":false}],"react"],"plugins":["transform-object-rest-spread","transform-class-properties"]},"umd":{"presets":[["env",{"modules":false}],"react"],"plugins":["transform-object-rest-spread","transform-class-properties","external-helpers"]}}},"licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@6.10.0","dist":{"shasum":"20444b19d8ca3c1a08e7544e5c3a93e4ba56690e","integrity":"sha512-s/mQLI1+mNvlae45MfAZyZ04YIT3jUzWJqx34s0tfwpDdgJkpeK6vyzwMUkKFCpGODBxpjBOekYZzcEmk+2FiQ==","tarball":"https://registry.npmjs.org/react-table/-/react-table-6.10.0.tgz","fileCount":98,"unpackedSize":1713836,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcv5lpCRA9TVsSAnZWagAArSUP/RlvJaEq/g7sqELLSYyN\nyKWc7hMM6n7uyso4uUUJ/Hv2HHSti9sjXOMCasic2gOgjoI7Tm273/3IsM9c\n34Du+HzWJuj1/acHlAzkPIb+dxVIaOqVMYVERqMirYBKBULujtcuMhCRNzre\nNUv4POvRtDkBLByUXspWbhi8sJAEef9L0BM/VS9rJfNR9XR5sh8gtKC1REyZ\nO9Uz3RMVo01zRO6t7HeVsI89KFB0LEz9vqNAI84snE+3rlR8BnNc1Sm/jAor\n/+fIcKtYYGJfBhhYf/5uRSLUdsj2NyWljzkn/9rlIDdHhmyDhKVBMF7caE64\nRnX3LodeedT23v8zsGBkr5Rj1ZOefktdviwGQidgBwyjCxMKVDO+Gg8s+djb\nQQNVMfLPmlNUn84kPUKCJTHpv2zaFNxyD0wdBT6zidLxoLgf1FXV85NvE9HO\nKW/vyzOlsYPG6U7z3WjE3IlVbNYM7bsnpnfjYvUwyOIlARRZqX8byhdkp5cM\nroXeX/ahu+jIDN/Jm89+cUZX/EsQsKkDIIMLK+P0U0D46ulgqv+n3EB5rvuG\nLdkDrlJ8Fzbomoren0dIXro7gfeBIS3dK4K+7937G8fWcmCBiJQ1etoTBYuR\ne9Yc5Fkw0n/2K9GOhiyN91XqfJNk4w9MohBqn/tNyVF3h0PXWL/hZxIXf1fm\nWbXi\r\n=+HIc\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAODnNguAS2fh4aHACT5sId4jjpE29W8jXiUeNBnpBxCAiEApj+Gt+zB9UMIYqj2W+iqaqjJKY5F3ORz5a3nfG1nEFk="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_6.10.0_1556060520403_0.49197570703232896"},"_hasShrinkwrap":false},"7.0.0-alpha.3":{"name":"react-table","version":"7.0.0-alpha.3","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"dist/index.js","scripts":{"test":"cross-env CI=1 react-scripts test --env=jsdom","test:watch":"react-scripts test --env=jsdom","build":"rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next"},"peerDependencies":{"prop-types":"^15.5.0","react":"^16.8.3","react-dom":"^16.8.3"},"devDependencies":{"@babel/plugin-proposal-class-properties":"^7.2.1","@babel/preset-env":"^7.2.0","@babel/preset-react":"^7.0.0","@babel/runtime":"^7.2.0","@svgr/rollup":"^4.1.0","babel-core":"7.0.0-bridge.0","babel-eslint":"^10.0.1","cross-env":"^5.1.4","eslint":"^5.10.0","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-import":"^2.13.0","eslint-plugin-node":"^8.0.0","eslint-plugin-promise":"^4.0.0","eslint-plugin-react":"^7.10.0","eslint-plugin-standard":"^4.0.0","rollup":"^0.68.0","rollup-plugin-babel":"^4.1.0","rollup-plugin-commonjs":"^9.1.3","rollup-plugin-node-resolve":"^4.0.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-uglify":"^6.0.2"},"readmeFilename":"README.md","readme":"# React Table\n\nHooks for building **lightweight, fast and extendable datagrids** for React\n\n<a href=\"https://travis-ci.org/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://travis-ci.org/tannerlinsley/react-table.svg?branch=master\" />\n</a>\n<a href=\"https://npmjs.com/package/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-table.svg\" />\n</a>\n<a href=\"https://spectrum.chat/react-table\">\n  <img alt=\"Join the community on Spectrum\" src=\"https://withspectrum.github.io/badge/badge.svg\" />\n</a>\n<a href=\"https://github.com/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-table.svg?style=social&label=Star\" />\n</a>\n<a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n\n<br />\n<br />\n\n## ⚠️ Version 7\n\nThis documentation is for Version 7, which is under active development and currently in an alpha state.\n\n## Version 6\n\nLooking for v6 information?\n\n- [Documentation](https://github.com/tannerlinsley/react-table/tree/v6)\n- [HOC Documentation](https://github.com/tannerlinsley/react-table/tree/v6#hoc-extensions)\n- [Examples](https://github.com/tannerlinsley/react-table/tree/v6#codesandbox-examples)\n- [HOC Examples](https://github.com/tannerlinsley/react-table/tree/v6/docs/src/examples)\n\n## Features\n\n- Lightweight\n- Headless (Fully customizable)\n- Client-side & Server-side pagination\n- Multi-sort\n- Filters\n- Pivoting & Aggregation\n- Fully controllable\n- Extensible\n- <a href=\"https://medium.com/@tannerlinsley/why-i-wrote-react-table-and-the-problems-it-has-solved-for-nozzle-others-445c4e93d4a8#.axza4ixba\" target=\"\\_parent\">\"Why I wrote React Table and the problems it has solved for Nozzle.io\"</a> by Tanner Linsley\n\n## Versions\n\n- This documentation is for version 7 of react-table.\n- [View the Changelog](https://github.com/tannerlinsley/react-table/blob/master/CHANGELOG.md)\n- Previous versions:\n  - [6.x.x Readme](https://github.com/tannerlinsley/react-table/tree/v6/)\n  - [5.x.x Readme](https://github.com/tannerlinsley/react-table/blob/ad7d31cd3978eb45da7c6194dbab93c1e9a8594d/README.md)\n\n## Sponsors\n\n**React Table v7** is mostly planned and I (@tannerlinsley) am looking for Patreon support to make it a reality. It will require a decent time commitment on my part to not only implement it, but also help people migrate and continue to maintain it. If you would like to contribute to my Patreon goal for v7 and beyond, [visit my Patreon and help me out!](https://patreon.com/tannerlinsley).\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/platinum.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://tryretool.com/?utm_source=sponsor&utm_campaign=react_table\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-retool.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/gold.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://nozzle.io\" target=\"_blank\">\n          <img width=\"300\" src=\"https://nozzle.io/img/logo-blue.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://zappi.com/web\" target=\"_blank\">\n          <img width=\"300\" src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-zappi.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n## Table of Contents\n\n- [Installation](#installation)\n- [Example](#examples)\n- [Contributing](#contributing)\n\n## Installation\n\n1.  Install React Table as a dependency\n\n```bash\n# Yarn\n$ yarn add react-table\n\n# NPM\n$ npm install react-table\n```\n\n2.  Import the `react-table` module\n\n```javascript\nimport { useReactTable } from 'react-table'\n```\n\n## Examples\n\n[React Table v7 Sandbox](https://codesandbox.io/s/m5lxzzpz69)\n\n# Documentation\n\nDocumentation for v7 is coming soon. If you're looking for the [v6 documentation, click here](https://github.com/tannerlinsley/react-table/tree/v6)\n\n## Contributing\n\nTo suggest a feature, create an issue if it does not already exist.\nIf you would like to help develop a suggested feature follow these steps:\n\n- Fork this repo\n- Install dependencies with `$ yarn`\n- Auto-build files as you edit with `$ yarn run watch`\n- Implement your changes to files in the `src/` directory\n- Run the <a href=\"https://github.com/tannerlinsley/react-story\">React Story</a> locally with `$ yarn run docs`\n- View changes as you edit `docs/src`\n- Submit PR for review\n\n#### Package Utilities\n\n- `$ yarn run watch` Watches files and builds via babel\n- `$ yarn run docs` Runs the storybook server\n- `$ yarn run test` Runs the test suite\n","licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.0-alpha.3","dist":{"shasum":"a1bb3729a230c0c0d652fd71ee2e665d64d4d6b5","integrity":"sha512-Ap9t+jBRT4RjWHqpNpMc9HzRyKsqyq9robk9jc69Vdr589gqvbgr/scY9/QqE40WZrD41Jbb2W3uHtsR4yjo7g==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.0-alpha.3.tgz","fileCount":95,"unpackedSize":1557620,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc5GHVCRA9TVsSAnZWagAAAnwP/itB487/fh78CEc3EZPh\nxiVRC6Yidyl8U3FNIU49+5p34bt3UbZU22jK+3M2l/WxQlsWq+qepBdgFtyu\nFGp17U906+dU+uknpHTzHgvazxEJv1dl9VQNL1p3Yt58LI7AbamRxmRHUb5B\n7fnJoPWCtf86CDBCaGVQEAXIvegVHBbz7DVeWBtr8YfEmhoK4UUAOGu+/bb7\ns7u0Vrw8Ng66in3bRiviFT1A4urgEGBpDYNlwni0iADfJcWfCQy1GtKHg7jH\nRdNbXxBRxtga0Jnnv/hI68eetP9lxhjAm5DtWdhdmOjqlVYcTWD1yNfyEFdJ\nWUkKthXGoloeQ18hbdfdeeLobWwr3rBvpP47py6JoLYfJLdB5RV46TFEO1tK\n3l3M/Jobrj2Wpak2ngQOi2oRgDi7iu+ajSlzt7Vi/e/DSUSH9Pr3fK3jUtEN\nhrqlZ7gptbq/TeWEwIPhGEv/zMC4aAp7KRxBhMyJ5Qh3tWG+VnBLZfArZmNp\nkLV07OsNhaUvYUjfSBqsYwvs7uUIjAncFRwPuT4L0ZfE+MnLjQvWjjnkWmZF\nrrLEMIjlnBfLdUb92IRzm1fbqMgP79wB/vdETqJZt6f5D7JXWYTfgSar3OS6\nVEJHHZGf8gVT9Q+myCV6rpo7M3pFL/XJ6qnPHCrlKu93jlJ0vHZcYNZgLj6A\nhgdo\r\n=J3Cs\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCvolzHpkRzLAMSfYOdCtj4eFyyzUyHku06O4vUXhJo5AIgVYdA7taYKIxBi13jMhQyBmJnKjgVhMP7AYR7+LL9uh4="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.0-alpha.3_1558471124649_0.8651139912304178"},"_hasShrinkwrap":false},"7.0.0-alpha.4":{"name":"react-table","version":"7.0.0-alpha.4","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"dist/index.js","scripts":{"test":"cross-env CI=1 react-scripts test --env=jsdom","test:watch":"react-scripts test --env=jsdom","build":"rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next"},"peerDependencies":{"prop-types":"^15.5.0","react":"^16.8.3","react-dom":"^16.8.3"},"devDependencies":{"@babel/plugin-proposal-class-properties":"^7.2.1","@babel/preset-env":"^7.2.0","@babel/preset-react":"^7.0.0","@babel/runtime":"^7.2.0","@svgr/rollup":"^4.1.0","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^8.0.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.0.0","eslint-plugin-react":"7.x","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","rollup":"^0.68.0","rollup-plugin-babel":"^4.1.0","rollup-plugin-commonjs":"^9.1.3","rollup-plugin-node-resolve":"^4.0.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-uglify":"^6.0.2"},"readmeFilename":"README.md","readme":"# React Table\n\nHooks for building **lightweight, fast and extendable datagrids** for React\n\n<a href=\"https://travis-ci.org/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://travis-ci.org/tannerlinsley/react-table.svg?branch=master\" />\n</a>\n<a href=\"https://npmjs.com/package/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-table.svg\" />\n</a>\n<a href=\"https://spectrum.chat/react-table\">\n  <img alt=\"Join the community on Spectrum\" src=\"https://withspectrum.github.io/badge/badge.svg\" />\n</a>\n<a href=\"https://github.com/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-table.svg?style=social&label=Star\" />\n</a>\n<a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n\n<br />\n<br />\n\n## ⚠️ Version 7\n\nThis documentation is for Version 7, which is under active development and currently in an alpha state.\n\n## Version 6\n\nLooking for v6 information?\n\n- [Documentation](https://github.com/tannerlinsley/react-table/tree/v6)\n- [HOC Documentation](https://github.com/tannerlinsley/react-table/tree/v6#hoc-extensions)\n- [Examples](https://github.com/tannerlinsley/react-table/tree/v6#codesandbox-examples)\n- [HOC Examples](https://github.com/tannerlinsley/react-table/tree/v6/docs/src/examples)\n\n## Features\n\n- Lightweight\n- Headless (Fully customizable)\n- Client-side & Server-side pagination\n- Multi-sort\n- Filters\n- Pivoting & Aggregation\n- Fully controllable\n- Extensible\n- <a href=\"https://medium.com/@tannerlinsley/why-i-wrote-react-table-and-the-problems-it-has-solved-for-nozzle-others-445c4e93d4a8#.axza4ixba\" target=\"\\_parent\">\"Why I wrote React Table and the problems it has solved for Nozzle.io\"</a> by Tanner Linsley\n\n## Versions\n\n- This documentation is for version 7 of react-table.\n- [View the Changelog](https://github.com/tannerlinsley/react-table/blob/master/CHANGELOG.md)\n- Previous versions:\n  - [6.x.x Readme](https://github.com/tannerlinsley/react-table/tree/v6/)\n  - [5.x.x Readme](https://github.com/tannerlinsley/react-table/blob/ad7d31cd3978eb45da7c6194dbab93c1e9a8594d/README.md)\n\n## Sponsors\n\n**React Table v7** is mostly planned and I (@tannerlinsley) am looking for Patreon support to make it a reality. It will require a decent time commitment on my part to not only implement it, but also help people migrate and continue to maintain it. If you would like to contribute to my Patreon goal for v7 and beyond, [visit my Patreon and help me out!](https://patreon.com/tannerlinsley).\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/platinum.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://tryretool.com/?utm_source=sponsor&utm_campaign=react_table\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-retool.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/gold.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://nozzle.io\" target=\"_blank\">\n          <img width=\"300\" src=\"https://nozzle.io/img/logo-blue.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://zappi.com/web\" target=\"_blank\">\n          <img width=\"300\" src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-zappi.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n## Table of Contents\n\n- [Installation](#installation)\n- [Example](#examples)\n- [Contributing](#contributing)\n\n## Installation\n\n1.  Install React Table as a dependency\n\n```bash\n# Yarn\n$ yarn add react-table\n\n# NPM\n$ npm install react-table\n```\n\n2.  Import the `react-table` module\n\n```javascript\nimport { useReactTable } from 'react-table'\n```\n\n## Examples\n\n[React Table v7 Sandbox](https://codesandbox.io/s/m5lxzzpz69)\n\n# Documentation\n\nDocumentation for v7 is coming soon. If you're looking for the [v6 documentation, click here](https://github.com/tannerlinsley/react-table/tree/v6)\n\n## Contributing\n\nTo suggest a feature, create an issue if it does not already exist.\nIf you would like to help develop a suggested feature follow these steps:\n\n- Fork this repo\n- Install dependencies with `$ yarn`\n- Auto-build files as you edit with `$ yarn run watch`\n- Implement your changes to files in the `src/` directory\n- Run the <a href=\"https://github.com/tannerlinsley/react-story\">React Story</a> locally with `$ yarn run docs`\n- View changes as you edit `docs/src`\n- Submit PR for review\n\n#### Package Utilities\n\n- `$ yarn run watch` Watches files and builds via babel\n- `$ yarn run docs` Runs the storybook server\n- `$ yarn run test` Runs the test suite\n","licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.0-alpha.4","dist":{"shasum":"eefecb73d29171831b3589b911fa3fae2d2e6e56","integrity":"sha512-plluf/Uex8TAT+d9xKykpvQHgZatVBZFqrBG0iwPTZwYxtKkarNolPOazq6KbfYFXJxbQtWZYnWBB2qMixlGqg==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.0-alpha.4.tgz","fileCount":95,"unpackedSize":1558240,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc/+erCRA9TVsSAnZWagAAG2YP/ju2XXmCqDHk8O0qREZR\nMtY9jiv4OxvsAqMr53g9ODvFkuOAQltQfXn4TFQmymsU+lDVivGt6UOsVuc7\nyrUtOh6Q/XEHCamFBlaCv3x71TwhUGttfPyS+gNI+lwe9TgIPmZ8NmUGwGNd\ne2dnqm2RepWTh1LdQ/bx39laKZmR9nYiHckHyaYnOAL/d3atklywIoIrrHrJ\nrVq6dzPN6571dOav3D7PKplWi6aDBRzCfoMfsTwM22OuKIkwT/+4/TO2WXco\nd/ffBlHyo/PAWntx6lAr17RvoYvW4/gr+/9Chn7RfVs1j2elLhZexNrbjQDp\nEMIlCO+Tntf0DRCM8FgRLhVA135W0bbfCdrlB2ERxiHnz3+bRUoOxQFifKKB\neIx8yU1/fDMEYUJJCJQ5h55BwsQQopp5s0ifRK5b4Naoyuld0XpJPNW1Rl7/\nMbZjJlhzK7gBv5xJ9Y0DUxJNWSY6PwC7Ek8a5NLdygGDdcJk5o/M3JGT12di\nEtbaOLe1I2AMm8q7dyY1xQXwAuQ8WQn+PCsluvU/Gl5HcFzF5VeCnoPD3OXn\nnZgm2PneaPgJ4GG8KK6gZxU9y2kmdEwktJi446t3PLczVAaimLCAseMa2R1s\nbfO7ETiGbw/BOcI9MwaCOZnh2PRJSKhgLQIvNsJBiqTRK/pyFfG6oeFXxtCz\npQQv\r\n=OYw6\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHyfQRQn7JMWjwYSf9niPHEYIwQ8H7x00MBS6owkhrv+AiEAobl7bgxf9LxKookb6AyV+IXp4lq4A9rb6CsFY1MTnEE="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.0-alpha.4_1560274859074_0.87506086562376"},"_hasShrinkwrap":false},"7.0.0-alpha.5":{"name":"react-table","version":"7.0.0-alpha.5","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"dist/index.js","scripts":{"test":"cross-env CI=1 react-scripts test --env=jsdom","test:watch":"react-scripts test --env=jsdom","build":"rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next"},"peerDependencies":{"prop-types":"^15.5.0","react":"^16.8.3","react-dom":"^16.8.3"},"devDependencies":{"@babel/plugin-proposal-class-properties":"^7.2.1","@babel/preset-env":"^7.2.0","@babel/preset-react":"^7.0.0","@babel/runtime":"^7.2.0","@svgr/rollup":"^4.1.0","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^8.0.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.0.0","eslint-plugin-react":"7.x","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","rollup":"^0.68.0","rollup-plugin-babel":"^4.1.0","rollup-plugin-commonjs":"^9.1.3","rollup-plugin-node-resolve":"^4.0.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-uglify":"^6.0.2"},"readmeFilename":"README.md","readme":"# React Table\n\nHooks for building **lightweight, fast and extendable datagrids** for React\n\n<a href=\"https://travis-ci.org/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://travis-ci.org/tannerlinsley/react-table.svg?branch=master\" />\n</a>\n<a href=\"https://npmjs.com/package/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-table.svg\" />\n</a>\n<a href=\"https://spectrum.chat/react-table\">\n  <img alt=\"Join the community on Spectrum\" src=\"https://withspectrum.github.io/badge/badge.svg\" />\n</a>\n<a href=\"https://github.com/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-table.svg?style=social&label=Star\" />\n</a>\n<a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n\n<br />\n<br />\n\n## ⚠️ Version 7\n\nThis documentation is for Version 7, which is under active development and currently in an alpha state.\n\n## Version 6\n\nLooking for v6 information?\n\n- [Documentation](https://github.com/tannerlinsley/react-table/tree/v6)\n- [HOC Documentation](https://github.com/tannerlinsley/react-table/tree/v6#hoc-extensions)\n- [Examples](https://github.com/tannerlinsley/react-table/tree/v6#codesandbox-examples)\n- [HOC Examples](https://github.com/tannerlinsley/react-table/tree/v6/docs/src/examples)\n\n## Features\n\n- Lightweight\n- Headless (Fully customizable)\n- Client-side & Server-side pagination\n- Multi-sort\n- Filters\n- Pivoting & Aggregation\n- Fully controllable\n- Extensible\n- <a href=\"https://medium.com/@tannerlinsley/why-i-wrote-react-table-and-the-problems-it-has-solved-for-nozzle-others-445c4e93d4a8#.axza4ixba\" target=\"\\_parent\">\"Why I wrote React Table and the problems it has solved for Nozzle.io\"</a> by Tanner Linsley\n\n## Versions\n\n- This documentation is for version 7 of react-table.\n- [View the Changelog](https://github.com/tannerlinsley/react-table/blob/master/CHANGELOG.md)\n- Previous versions:\n  - [6.x.x Readme](https://github.com/tannerlinsley/react-table/tree/v6/)\n  - [5.x.x Readme](https://github.com/tannerlinsley/react-table/blob/ad7d31cd3978eb45da7c6194dbab93c1e9a8594d/README.md)\n\n## Sponsors\n\n**React Table v7** is mostly planned and I (@tannerlinsley) am looking for Patreon support to make it a reality. It will require a decent time commitment on my part to not only implement it, but also help people migrate and continue to maintain it. If you would like to contribute to my Patreon goal for v7 and beyond, [visit my Patreon and help me out!](https://patreon.com/tannerlinsley).\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/platinum.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://tryretool.com/?utm_source=sponsor&utm_campaign=react_table\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-retool.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/gold.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://nozzle.io\" target=\"_blank\">\n          <img width=\"300\" src=\"https://nozzle.io/img/logo-blue.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://zappi.com/web\" target=\"_blank\">\n          <img width=\"300\" src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-zappi.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n## Table of Contents\n\n- [Installation](#installation)\n- [Example](#examples)\n- [Contributing](#contributing)\n\n## Installation\n\n1.  Install React Table as a dependency\n\n```bash\n# Yarn\n$ yarn add react-table\n\n# NPM\n$ npm install react-table\n```\n\n2.  Import the `react-table` module\n\n```javascript\nimport { useReactTable } from 'react-table'\n```\n\n## Examples\n\n[React Table v7 Sandbox](https://codesandbox.io/s/m5lxzzpz69)\n\n# Documentation\n\nDocumentation for v7 is coming soon. If you're looking for the [v6 documentation, click here](https://github.com/tannerlinsley/react-table/tree/v6)\n\n## Contributing\n\nTo suggest a feature, create an issue if it does not already exist.\nIf you would like to help develop a suggested feature follow these steps:\n\n- Fork this repo\n- Install dependencies with `$ yarn`\n- Auto-build files as you edit with `$ yarn run watch`\n- Implement your changes to files in the `src/` directory\n- Run the <a href=\"https://github.com/tannerlinsley/react-story\">React Story</a> locally with `$ yarn run docs`\n- View changes as you edit `docs/src`\n- Submit PR for review\n\n#### Package Utilities\n\n- `$ yarn run watch` Watches files and builds via babel\n- `$ yarn run docs` Runs the storybook server\n- `$ yarn run test` Runs the test suite\n","licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.0-alpha.5","dist":{"shasum":"43cc5b59f3323ad5674e224a368e5c951911c86b","integrity":"sha512-tlAT1QJXrF3nJQkdVwo4VwOlKbFKw7Ub3Jv0gkOt7ou+YPIsEU4JilkUNjuozcuyeSAEKnuz0E/nobo0HQcaYQ==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.0-alpha.5.tgz","fileCount":95,"unpackedSize":1558353,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc/+fPCRA9TVsSAnZWagAAveYP/2gnCLne7Zyaba1wxSvs\nV6urTNBPURj7t+pNYMLoBzRrLJfBNi+/WyRgWDmwyiWoxtBGlVoJ1snL9Xre\nhYos2z2tvnklCQdNZQuAxCpY2zx/KIKIbBq3rjjsJeNIUD0ebbfbiOOo8KQr\nAkHoD0vF3ibyPU1NgqD6vkMAh13C1Kto62hE4/ijZm6kifdEwRpnxxW20Lx8\nNUOV3ysrasY6Dx6Kfyuh+zisSmMMim9IX75c7F21HF4vnax5TQqP9xlWN8+x\nj9nB4eUX+kb1O7kcP/beePweTHutL4CmhXGX+lT+xa5nHXDKv5iGEWPVRx/7\n+z7tYLxklINbtG//sU67zWgUn2Pue8Bm2+Fcwrvo2gM3MXQrY7KJnI/cOylL\nXED4/CBuT4gAAtxWoTb5gCFzOY/AGOGgfa89FwlkWX1nlQxGxDq/w9gpeJ33\n/pJFIAg5VBBldmX9OAob225Y8rhGnc5kudajRNMtID5ld2mIYRU3O7oBbdQQ\nB9gvDJuT7OLjKMH1k+kdM2hHgUSimnGR4LkHJ/+06ud1RbDRuMenLlpm0gwQ\n3kE5j1tzCBYyPv3jXn7sMnqKQjTqE2RNjsGk2l4lRDKeBZq89baWkehZFZoy\nRjO1QFEi0qP287YgTlTg1/DNI55btTo+iYNLiPghdHVR82ErfIWCafZe2Wy+\n4v8W\r\n=fm12\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD/POFPl4NhKTkZd3pvZr1cTQnGLmDFE1j4+YoSJqHyZQIhALkkNfQEeBuHKLnkvi1DzG/Oiu5e2LGU3NRg4L6U5+/2"}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.0-alpha.5_1560274894426_0.20422952634849234"},"_hasShrinkwrap":false},"7.0.0-alpha.6":{"name":"react-table","version":"7.0.0-alpha.6","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"dist/index.js","scripts":{"test":"cross-env CI=1 react-scripts test --env=jsdom","test:watch":"react-scripts test --env=jsdom","build":"rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next"},"peerDependencies":{"prop-types":"^15.5.0","react":"^16.8.3","react-dom":"^16.8.3"},"devDependencies":{"@babel/plugin-proposal-class-properties":"^7.2.1","@babel/preset-env":"^7.2.0","@babel/preset-react":"^7.0.0","@babel/runtime":"^7.2.0","@svgr/rollup":"^4.1.0","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^8.0.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.0.0","eslint-plugin-react":"7.x","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","rollup":"^0.68.0","rollup-plugin-babel":"^4.1.0","rollup-plugin-commonjs":"^9.1.3","rollup-plugin-node-resolve":"^4.0.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-uglify":"^6.0.2"},"readmeFilename":"README.md","readme":"# React Table\n\nHooks for building **lightweight, fast and extendable datagrids** for React\n\n<a href=\"https://travis-ci.org/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://travis-ci.org/tannerlinsley/react-table.svg?branch=master\" />\n</a>\n<a href=\"https://npmjs.com/package/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-table.svg\" />\n</a>\n<a href=\"https://spectrum.chat/react-table\">\n  <img alt=\"Join the community on Spectrum\" src=\"https://withspectrum.github.io/badge/badge.svg\" />\n</a>\n<a href=\"https://github.com/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-table.svg?style=social&label=Star\" />\n</a>\n<a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n\n<br />\n<br />\n\n## ⚠️ Version 7\n\nThis documentation is for Version 7, which is under active development and currently in an alpha state.\n\n## Version 6\n\nLooking for v6 information?\n\n- [Documentation](https://github.com/tannerlinsley/react-table/tree/v6)\n- [HOC Documentation](https://github.com/tannerlinsley/react-table/tree/v6#hoc-extensions)\n- [Examples](https://github.com/tannerlinsley/react-table/tree/v6#codesandbox-examples)\n- [HOC Examples](https://github.com/tannerlinsley/react-table/tree/v6/docs/src/examples)\n\n## Features\n\n- Lightweight\n- Headless (Fully customizable)\n- Client-side & Server-side pagination\n- Multi-sort\n- Filters\n- Pivoting & Aggregation\n- Fully controllable\n- Extensible\n- <a href=\"https://medium.com/@tannerlinsley/why-i-wrote-react-table-and-the-problems-it-has-solved-for-nozzle-others-445c4e93d4a8#.axza4ixba\" target=\"\\_parent\">\"Why I wrote React Table and the problems it has solved for Nozzle.io\"</a> by Tanner Linsley\n\n## Versions\n\n- This documentation is for version 7 of react-table.\n- [View the Changelog](https://github.com/tannerlinsley/react-table/blob/master/CHANGELOG.md)\n- Previous versions:\n  - [6.x.x Readme](https://github.com/tannerlinsley/react-table/tree/v6/)\n  - [5.x.x Readme](https://github.com/tannerlinsley/react-table/blob/ad7d31cd3978eb45da7c6194dbab93c1e9a8594d/README.md)\n\n## Sponsors\n\n**React Table v7** is mostly planned and I (@tannerlinsley) am looking for Patreon support to make it a reality. It will require a decent time commitment on my part to not only implement it, but also help people migrate and continue to maintain it. If you would like to contribute to my Patreon goal for v7 and beyond, [visit my Patreon and help me out!](https://patreon.com/tannerlinsley).\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/platinum.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://tryretool.com/?utm_source=sponsor&utm_campaign=react_table\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-retool.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/gold.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://nozzle.io\" target=\"_blank\">\n          <img width=\"300\" src=\"https://nozzle.io/img/logo-blue.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://zappi.com/web\" target=\"_blank\">\n          <img width=\"300\" src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-zappi.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n## Table of Contents\n\n- [Installation](#installation)\n- [Example](#examples)\n- [Contributing](#contributing)\n\n## Installation\n\n1.  Install React Table as a dependency\n\n```bash\n# Yarn\n$ yarn add react-table\n\n# NPM\n$ npm install react-table\n```\n\n2.  Import the `react-table` module\n\n```javascript\nimport { useReactTable } from 'react-table'\n```\n\n## Examples\n\n[React Table v7 Sandbox](https://codesandbox.io/s/m5lxzzpz69)\n\n# Documentation\n\nDocumentation for v7 is coming soon. If you're looking for the [v6 documentation, click here](https://github.com/tannerlinsley/react-table/tree/v6)\n\n## Contributing\n\nTo suggest a feature, create an issue if it does not already exist.\nIf you would like to help develop a suggested feature follow these steps:\n\n- Fork this repo\n- Install dependencies with `$ yarn`\n- Auto-build files as you edit with `$ yarn run watch`\n- Implement your changes to files in the `src/` directory\n- Run the <a href=\"https://github.com/tannerlinsley/react-story\">React Story</a> locally with `$ yarn run docs`\n- View changes as you edit `docs/src`\n- Submit PR for review\n\n#### Package Utilities\n\n- `$ yarn run watch` Watches files and builds via babel\n- `$ yarn run docs` Runs the storybook server\n- `$ yarn run test` Runs the test suite\n","licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.0-alpha.6","dist":{"shasum":"64dc1ccdcbeb260822dc652a3c1f20eb8f7dda64","integrity":"sha512-8pnE/H7FA2wZljtJiOJGbUqTJ4pQI61JPeSvOIVdHlO/qa9mjjfSkuwo18nC2qtVjGyAavkFVGffJsown+Bl7g==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.0-alpha.6.tgz","fileCount":95,"unpackedSize":1558517,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdC/lwCRA9TVsSAnZWagAA4nkP/iFG4iUQqEPwLj4nOuZb\nIFfI4DrYtTiMI4lMpDG7i++F7RQdgKjnweBTdCRYlRU1UE3TiMKjA4GLHOMk\nL3C0YC8Su7pXiMaI4uLiKDKD4rMiwb5zA9XQl8S7LGCUWzv4PIOj4Vc+xNhg\nExBjgn8V7KE9d611sykXyUAwMQDd3FMiu1pAWRcr5s/LNzkzygICdRze4QEm\nkd1FIIgQhXpScTb4oxffwxPLi+fqhYU1WpB6UGIKxn7i6IlHEbLNqDgC6/3v\nwUZsdGvOHGbq3Uj5WM6+/KHS0zYJT39L6aetDiueLfdWrzkBHndi+INjVOtQ\n8+whF2NFY55cCSf7oe7mudUtypHHhi2WJyAPY1FXEQsqe1OHsGol0YO3lXVF\n/tbURsNnojkk+SGO225dJgGKa9c5ottZAWoeXBLCPi3eXc9Q/+HdhDN7CKT6\n6dPZ2CU9sOtTAhL9FsbO5GSPs4UBAdFz2tPNGBkWWoCx1pLFI7bJlWFsQ7SG\npn6AeCTFdmqPAnJREoGifzS7iWfbLEUHtOWk23FgNvWPREiHhMTGt/FvF6An\nb5BGUihGR4H9JJ82KlteDhf/624pVHoUoxnWPShkBBvTBDccLaHB2aYPnfkW\ny/LHD/i+8PBWUxb2V+7LzuNvpNEdh6Nk473JSa4EXmteYteMd70BVmTS2M9w\n1hBP\r\n=cKgK\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICvHSRAyHrZHmzVh1S2tc7+Pe9b2F8A9cHubGnwiD5qjAiEAomFKv3SxEqbpKIRX1y9UutlVeOQZE0WrCH05Z3TnOOk="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.0-alpha.6_1561065839366_0.40514463107027265"},"_hasShrinkwrap":false},"7.0.0-alpha.7":{"name":"react-table","version":"7.0.0-alpha.7","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"dist/index.js","module":"dist/index.es.js","jsnext:main":"dist/index.es.js","scripts":{"test":"is-ci 'test:ci' 'test:dev'","test:dev":"jest --watch","test:ci":"jest","build":"rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next"},"peerDependencies":{"prop-types":"^15.5.0","react":"^16.8.3","react-dom":"^16.8.3"},"devDependencies":{"@babel/plugin-proposal-class-properties":"^7.2.1","@babel/preset-env":"^7.2.0","@babel/preset-react":"^7.0.0","@babel/runtime":"^7.2.0","@svgr/rollup":"^4.1.0","@testing-library/react":"^8.0.4","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^8.0.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.0.0","eslint-plugin-react":"7.x","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","is-ci-cli":"^1.1.1","jest":"^24.8.0","jest-cli":"^24.8.0","jest-runner-eslint":"^0.7.4","jest-watch-select-projects":"^0.1.2","jest-watch-typeahead":"^0.3.1","rollup":"^0.68.0","rollup-plugin-babel":"^4.1.0","rollup-plugin-commonjs":"^9.1.3","rollup-plugin-node-resolve":"^4.0.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-uglify":"^6.0.2"},"readmeFilename":"README.md","readme":"# React Table\n\nHooks for building **lightweight, fast and extendable datagrids** for React\n\n<a href=\"https://travis-ci.org/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://travis-ci.org/tannerlinsley/react-table.svg?branch=master\" />\n</a>\n<a href=\"https://npmjs.com/package/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-table.svg\" />\n</a>\n<a href=\"https://spectrum.chat/react-table\">\n  <img alt=\"Join the community on Spectrum\" src=\"https://withspectrum.github.io/badge/badge.svg\" />\n</a>\n<a href=\"https://github.com/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-table.svg?style=social&label=Star\" />\n</a>\n<a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n\n<br />\n<br />\n\n## ⚠️ Version 7\n\nThis documentation is for Version 7, which is under active development and currently in an alpha state.\n\n## Version 6\n\nLooking for v6 information?\n\n- [Documentation](https://github.com/tannerlinsley/react-table/tree/v6)\n- [HOC Documentation](https://github.com/tannerlinsley/react-table/tree/v6#hoc-extensions)\n- [Examples](https://github.com/tannerlinsley/react-table/tree/v6#codesandbox-examples)\n- [HOC Examples](https://github.com/tannerlinsley/react-table/tree/v6/docs/src/examples)\n\n## Features\n\n- Lightweight\n- Headless (Fully customizable)\n- Client-side & Server-side pagination\n- Multi-sort\n- Filters\n- Pivoting & Aggregation\n- Fully controllable\n- Extensible\n- <a href=\"https://medium.com/@tannerlinsley/why-i-wrote-react-table-and-the-problems-it-has-solved-for-nozzle-others-445c4e93d4a8#.axza4ixba\" target=\"\\_parent\">\"Why I wrote React Table and the problems it has solved for Nozzle.io\"</a> by Tanner Linsley\n\n## Versions\n\n- This documentation is for version 7 of react-table.\n- [View the Changelog](https://github.com/tannerlinsley/react-table/blob/master/CHANGELOG.md)\n- Previous versions:\n  - [6.x.x Readme](https://github.com/tannerlinsley/react-table/tree/v6/)\n  - [5.x.x Readme](https://github.com/tannerlinsley/react-table/blob/ad7d31cd3978eb45da7c6194dbab93c1e9a8594d/README.md)\n\n## Sponsors\n\n**React Table v7** is mostly planned and I (@tannerlinsley) am looking for Patreon support to make it a reality. It will require a decent time commitment on my part to not only implement it, but also help people migrate and continue to maintain it. If you would like to contribute to my Patreon goal for v7 and beyond, [visit my Patreon and help me out!](https://patreon.com/tannerlinsley).\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/platinum.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://tryretool.com/?utm_source=sponsor&utm_campaign=react_table\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-retool.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/gold.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://nozzle.io\" target=\"_blank\">\n          <img width=\"300\" src=\"https://nozzle.io/img/logo-blue.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://zappi.com/web\" target=\"_blank\">\n          <img width=\"300\" src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-zappi.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n## Table of Contents\n\n- [Installation](#installation)\n- [Example](#examples)\n- [Contributing](#contributing)\n\n## Installation\n\n1.  Install React Table as a dependency\n\n```bash\n# Yarn\n$ yarn add react-table\n\n# NPM\n$ npm install react-table\n```\n\n2.  Import the `react-table` module\n\n```javascript\nimport { useReactTable } from 'react-table'\n```\n\n## Examples\n\n[React Table v7 Sandbox](https://codesandbox.io/s/m5lxzzpz69)\n\n# Documentation\n\nDocumentation for v7 is coming soon. If you're looking for the [v6 documentation, click here](https://github.com/tannerlinsley/react-table/tree/v6)\n\n## Contributing\n\nTo suggest a feature, create an issue if it does not already exist.\nIf you would like to help develop a suggested feature follow these steps:\n\n- Fork this repo\n- Install dependencies with `$ yarn`\n- Auto-build files as you edit with `$ yarn run watch`\n- Implement your changes to files in the `src/` directory\n- Run the <a href=\"https://github.com/tannerlinsley/react-story\">React Story</a> locally with `$ yarn run docs`\n- View changes as you edit `docs/src`\n- Submit PR for review\n\n#### Package Utilities\n\n- `$ yarn run watch` Watches files and builds via babel\n- `$ yarn run docs` Runs the storybook server\n- `$ yarn run test` Runs the test suite\n","licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.0-alpha.7","dist":{"shasum":"0cb6da6f32adb397e68505b7cdd4880d15d73017","integrity":"sha512-oXE9RRkE2CFk1OloNCSTPQ9qxOdujgkCoW5b/srbJsBog/ySkWuozBTQkxH1wGNmnSxGyTrTxJqXdXPQam7VAw==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.0-alpha.7.tgz","fileCount":95,"unpackedSize":1559623,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdLLgKCRA9TVsSAnZWagAAc/IP/jYMOw78bwZUtzp7F8mu\nXU/1LcZPKIx42w4uYT01K+atrxfyOIWSAfhbMYVvXyYumgvsGxB3WD5hOdet\nWURii9Z49ohc1QdQe/Sy2XN4ikxE2pxYgiUqdk9NcgvDv8W+4Tnband/M5xz\n357qsFq/fKXewBWBrO3kt6OvJAORvAzdQ911Y6HH8Go5RObeYyI26kh9sfh7\n0y5oOhlf/8v1RQtGGNlmfKlIFIPjJeufkH73KFZGSDcjMWKnsI1JmMwCBM/w\nhqE+f+emkeN7CdF3qUm2q/ieHky9yOPl+eAweYfqF8Lh8NpQcVxMUxTO0uX4\nxh3P5+KypTLYPnEG6Vly858suugGyiU07uc/LBWFJTaZI95QWBxBJNWruJY0\nSAPUitt48wCn6xR9eWsjg6+EqqK4gmUk3aHzNccyTToJ/y1vn5iORPhySIqC\n2QZtuLw3A6oTOuaAYPpNvnebzjeaBmOEWx/XgeNZ1u/qePWhUxhnR4qIY6B1\nM2IOkZRfNk4KLfW9WJgqhGJwG1cgG+KVqj59Xn1OuUD88d400XpXXOqIdIfg\nTdawi6w/hHX/wXigeyGxcKstJX7qmH7jv2/7kojY1DFyeuTGdGqMb9BRqd4O\n0xHkHMyB63Zkw4PjkM+Fbss8beoS2+J9TvPPPW9jSBgcOSPWJ4SCHYWfxMvk\nwHh2\r\n=+D/V\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCY6oSM8vrdO0GclMZ9TNRIjUsRf5nINDjcCMTM7ZieigIhAK60IVGxmf88iMn33FbcKRWq7zN+SlJxITmE5CycspNw"}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.0-alpha.7_1563211785911_0.42534535150322794"},"_hasShrinkwrap":false},"7.0.0-alpha.8":{"name":"react-table","version":"7.0.0-alpha.8","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"dist/index.js","module":"dist/index.es.js","jsnext:main":"dist/index.es.js","scripts":{"test":"is-ci 'test:ci' 'test:dev'","test:dev":"jest --watch","test:ci":"jest","build":"rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next"},"peerDependencies":{"prop-types":"^15.5.0","react":"^16.8.3","react-dom":"^16.8.3"},"devDependencies":{"@babel/plugin-proposal-class-properties":"^7.2.1","@babel/preset-env":"^7.2.0","@babel/preset-react":"^7.0.0","@babel/runtime":"^7.2.0","@svgr/rollup":"^4.1.0","@testing-library/react":"^8.0.4","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^8.0.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.0.0","eslint-plugin-react":"7.x","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","is-ci-cli":"^1.1.1","jest":"^24.8.0","jest-cli":"^24.8.0","jest-runner-eslint":"^0.7.4","jest-watch-select-projects":"^0.1.2","jest-watch-typeahead":"^0.3.1","rollup":"^0.68.0","rollup-plugin-babel":"^4.1.0","rollup-plugin-commonjs":"^9.1.3","rollup-plugin-node-resolve":"^4.0.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-uglify":"^6.0.2"},"readmeFilename":"README.md","readme":"# React Table\n\nHooks for building **lightweight, fast and extendable datagrids** for React\n\n<a href=\"https://travis-ci.org/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://travis-ci.org/tannerlinsley/react-table.svg?branch=master\" />\n</a>\n<a href=\"https://npmjs.com/package/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-table.svg\" />\n</a>\n<a href=\"https://spectrum.chat/react-table\">\n  <img alt=\"Join the community on Spectrum\" src=\"https://withspectrum.github.io/badge/badge.svg\" />\n</a>\n<a href=\"https://github.com/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-table.svg?style=social&label=Star\" />\n</a>\n<a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n\n<br />\n<br />\n\n## Features\n\n- Lightweight\n- Headless (100% customizable, Bring-your-own-UI)\n- Client-side & Server-side pagination support\n- Sorting (Multi and Stable)\n- Filters\n- Pivoting & Aggregation\n- Fully controllable\n- Extensible via hooks\n- <a href=\"https://medium.com/@tannerlinsley/why-i-wrote-react-table-and-the-problems-it-has-solved-for-nozzle-others-445c4e93d4a8#.axza4ixba\" target=\"\\_parent\">\"Why I wrote React Table and the problems it has solved for Nozzle.io\"</a> by Tanner Linsley\n\n## Demos\n\n[React Table v7 Sandbox](https://codesandbox.io/s/m5lxzzpz69)\n\n## Versions\n\n- This documentation is for version 7.\n- [View the Changelog](https://github.com/tannerlinsley/react-table/blob/master/CHANGELOG.md)\n- Previous versions:\n  - [6.x.x Readme](https://github.com/tannerlinsley/react-table/tree/v6/)\n  - [5.x.x Readme](https://github.com/tannerlinsley/react-table/blob/ad7d31cd3978eb45da7c6194dbab93c1e9a8594d/README.md)\n\n## Sponsors\n\n**React Table v7** is being built and maintained by me, @tannerlinsley and I am always in need of more Patreon support to keep this project afloat. If you would like to contribute to my Patreon goal for v7 and beyond, [visit my Patreon and help me out!](https://patreon.com/tannerlinsley).\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/platinum.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://tryretool.com/?utm_source=sponsor&utm_campaign=react_table\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-retool.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/platinum-placeholder.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/gold.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://nozzle.io\" target=\"_blank\">\n          <img width=\"300\" src=\"https://nozzle.io/img/logo-blue.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://zappi.com/web\" target=\"_blank\">\n          <img width=\"300\" src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-zappi.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/gold-placeholder.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n# Documentation\n\n- [Installation](#installation)\n- [Concepts](#concepts)\n- [Setup](#setup)\n- [Contributing](#contributing)\n\n# Installation\n\nInstall React Table as a dependency using `npm` or `yarn`\n\n```bash\n# NPM\n$ npm install react-table\n\n# Yarn\n$ yarn add react-table\n```\n\nTo import React Table:\n\n```js\nimport {\n  useTable,\n  useGroupBy,\n  useFilters,\n  useSortBy,\n  useExpanded,\n  usePagination,\n  ...\n} from 'react-table'\n```\n\n# Examples\n\n- [Basic](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/master/examples/basic)\n- [Sorting with `useSortBy`](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/master/examples/sorting-with-useSortBy)\n\n# Concepts\n\n## React Table is a \"headless\" library\n\nReact Table is a headless utility, which means out of the box, it doesn't render or supply any actual UI elements. You are in charge of utilizing the state and callbacks of the hooks provided by this library to render your own table markup. [Read this article to understand why React Table is built this way.](https://medium.com/merrickchristensen/headless-user-interface-components-565b0c0f2e18). If you don't want to, then here's a quick rundown anyway:\n\n- Separation of Concerns - Not that superficial kind you read about all the time. The real kind. React Table as a library honestly has no business being in charge of your UI. The look, feel, and overall experience of your table is what makes your app or product great. The less React Table gets in the way of that, the better!\n- Maintenance - By removing the massive (and seemingly endless) API surface area required to support every UI use-case, React Table can remain small, easy-to-use and simple to update/maintain.\n- Extensibility - UI presents countless edge cases for a library simply because it's a creative medium, and one where every developer does things differently. By not dictating UI concerns, React Table empowers the developer to design and extend the UI based on their unique use-case.\n\n## The React Table API\n\nAt the heart of every React Table is a table `instance` object. This object contains everything needed to build a table and interact with it's state. This includes, but is not limited to:\n\n- Columns\n- Materialized Data\n- Sorting\n- Filtering\n- Grouping\n- Pagination\n- Expanded State\n- Any functionality provided by custom plugin hooks, too!\n\n## Using Hooks for configuration, state and lifecycle\n\nReact Table uses React Hooks both internally and externally for 100% of its configuration and lifecycle management. Naturally, this is what allows React Table to be headless and lightweight while still having a concise and simple API.\n\nReact Table is essentially a compatible collection of **custom React hooks**:\n\n- The primary React Table hook\n  - [`useTable`](#usetable)\n- Plugin Hooks\n  - Core Plugin Hooks\n    - [`useTableState`](#useTableState)\n    - [`useGroupBy`](#useGroupBy)\n    - [`useFilters`](#useFilters)\n    - [`useSortBy`](#useSortBy)\n    - [`useExpanded`](#useExpanded)\n    - [`usePagination`](#usePagination)\n    - [`useTokenPagination`](#useTokenPagination)\n  - Layout Plugin Hooks\n    - [`useFlexLayout`](#useFlexLayout)\n    - [`useAbsoluteLayout`](#useAbsoluteLayout) (coming soon!)\n- Custom Plugin Hooks\n  - Get your custom plugin hook listed here!\n\n### Hook Usage\n\n`useTable` is the **primary** hook used to build a React Table. It serves as the starting point for **every option and every plugin hook** that React Table supports. The options passed into `useTable` are supplied to every plugin hook after it in the order they are supplied, eventually resulting a final `instance` object that you can use to build your table UI and interact with the table's state.\n\n```js\nconst instance = useTable(\n  {\n    data: [...],\n    columns: [...],\n  },\n  useGroupBy,\n  useFilters,\n  useSortBy,\n  useExpanded,\n  usePagination\n)\n```\n\n### The stages of a React Table\n\n1. `useTable` is called. A table instance is created.\n1. The `instance.state` is resolved from either a custom user state or an automatically generated one.\n1. A collection of plugin points is created at `instance.hooks`. These plugin points don't run until after all of the plugins have run.\n1. The instance is reduced through each plugin hook in the order they were called. Each hook receives the result of the previous hook, is able to manipulate the `instance`, use plugin points, use their own React hooks internally and eventually return a new `instance`. This happens until the last instance object is returned from the last hook.\n1. Lastly, the plugin points that were registered and populated during hook reduction are run to produce the final instance object that is returned from `useTable`\n\nThis multi-stage process is the secret sauce that allows React Table plugin hooks to work together and compose nicely, while not stepping on each others toes.\n\n### Plugin Hook Order & Consistency\n\nThe order and usage of plugin hooks must follow [The Laws of Hooks](TODO), just like any other custom hook. They must always be unconditionally called in the same order.\n\n> **NOTE: In the event that you want to programmatically enable or disable plugin hooks, most of them provide options to disable their functionality, eg. `options.disableSorting`**\n\n### Option Memoization\n\nReact Table relies on memoization to determine when state and side effects should update or be calculated. This means that every option you pass to `useTable` should be memoized either via `React.useMemo` (for objects) or `React.useCallback` (for functions).\n\n# API\n\n## `useTable`\n\n- Required\n\n`useTable` is the root hook for React Table. To use it, pass it with an options object with at least a `columns` and `rows` value, followed by any React Table compatible hooks you want to use.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `columns: Array<Column>`\n  - Required\n  - Must be **memoized**\n  - The core columns configuration object for the entire table.\n  - Supports nested `columns` arrays via the `column.children` key\n- `data: Array<any>`\n  - Required\n  - Must be **memoized**\n  - The data array that you want to display on the table.\n- `state: TableStateTuple[stateObject, stateUpdater]`\n  - Optional\n  - Must be **memoized** table state tuple. See [`useTableState`](#usetablestate) for more information.\n  - The state/updater pair for the table instance. You would want to override this if you plan on controlling or hoisting table state into your own code.\n  - Defaults to using an internal `useTableState()` instance if not defined.\n  - See [Controlling and Hoisting Table State](#controlling-and-hoisting-table-state)\n- `defaultColumn: Object`\n  - Optional\n  - Defaults to `{}`\n  - The default column object for every column passed to React Table.\n  - Column-specific properties will override the properties in this object, eg. `{ ...defaultColumn, ...userColumn }`\n  - This is particularly useful for adding global column properties. For instance, when using the `useFilters` plugin hook, add a default `Filter` renderer for every column, eg.`{ Filter: MyDefaultFilterComponent }`\n- `useColumns: Function`\n  - Optional\n  - This hook overrides the internal `useColumns` hooks used by `useTable`. You probably never want to override this unless you are testing or developing new features for React Table\n- `useRows: Function`\n  - Optional\n  - This hook overrides the internal `useRows` hooks used by `useTable`. You probably never want to override this unless you are testing or developing new features for React Table\n- `debug: Bool`\n  - Optional\n  - A flag to turn on debug mode.\n  - Defaults to `false`\n\n### `column` Options\n\nThe following options are supported on any column object you can pass to `columns`.\n\n- `accessor: String | Function`\n  - **Required**\n  - This string/function is used to build the data model for your column.\n  - The data returned by an accessor should be **primitive** and sortable.\n  - If a string is passed, the column's value will be looked up on the original row via that key, eg. If your column's accessor is `firstName` then its value would be read from `row['firstName']`. You can also specify deeply nested values with accessors like `info.hobbies` or even `address[0].street`\n  - If a function is passed, the column's value will be looked up on the original row using this accessor function, eg. If your column's accessor is `row => row.firstName`, then its value would be determined by passing the row to this function and using the resulting value.\n- `id: String`\n  - **Required if `accessor` is a function**\n  - This is the unique ID for the column. It is used by reference in things like sorting, grouping, filtering etc.\n  - If a **string** accessor is used, it defaults as the column ID, but can be overridden if necessary.\n- `columns: Array<Column>`\n  - Optional\n  - A nested array of columns.\n  - If defined, the column will act as a header group. Columns can be recursively nested as much as needed.\n- `show: Boolean | Function`\n  - Optional\n  - Defaults to `true`\n  - If set to `false`, the column will be hidden.\n  - If set to a `function`, it will be called with the current table instance and can then return `true` or `false`.\n  - The data model for hidden columns is still calculated including sorting, filters, and grouping.\n- `Header: String | Function | React.Component => JSX`\n  - Optional\n  - Defaults to `({ id }) => id`\n  - Receives the table instance and column model as props\n  - Must either be a **string or return valid JSX**\n  - If a function/component is passed, it will be used for formatting the header value, eg. You can use a `Header` function to dynamically format the header using any table or column state.\n- `Cell: Function | React.Component => JSX`\n  - Optional\n  - Defaults to `({ value }) => value`\n  - Receives the table instance and cell model as props\n  - Must return valid JSX\n  - This function (or component) is primarily used for formatting the column value, eg. If your column accessor returns a date object, you can use a `Cell` function to format that date to a readable format.\n\n### Table Output\n\nThe following properties are available on the table instance returned from `useTable`\n\n- `headerGroups: Array<HeaderGroup>`\n  - An array of normalized header groups, each containing a flattened array of final column objects for that row.\n  - See [Header Group Properties](#header-group-properties) for more information\n- `columns: Array<Column>`\n  - A **flat** array of all final column objects computed from the original columns configuration option.\n  - See [Column Properties](#column-properties) for more information\n- `headers[] Array<Column>`\n  - A **nested** array of final column objects, similar in structure to the original columns configuration option.\n  - See [Column Properties](#column-properties) for more information\n- `rows: Array<Row>`\n  - An array of **materialized row objects** from theriginal `dat oa` array and `columns` passed into the table options\n  - See [Row Properties](#row-properties) for more information\n- `getTableProps: Function(?props)`\n  - **Required**\n  - This function is used to resolve any props needed for your table wrapper.\n  - Custom props may be passed. **NOTE: Custom props will override built-in table props, so be careful!**\n- `prepareRow: Function(Row)`\n  - **Required**\n  - This function is responsible for lazily preparing a row for rendering. Any row that you intend to render in your table needs to be passed to this function **before every render**.\n  - **Why?** Since table data could potentially be very large, it can become very expensive to compute all of the necessary state for every row to be rendered regardless if it actually is rendered or not (for example if you are paginating or virtualizing the rows, you may only have a few rows visible at any given moment). This function allows only the rows you intend to display to be computed and prepped with the correct state.\n\n### `HeaderGroup` Properties\n\nHeader Groups are The following additional properties are available on every `headerGroup` object returned by the table instance.\n\n- `headers: Array<Column>`\n  - **Required**\n  - The columns in this header group.\n- `getHeaderGroupProps: Function(?props)`\n  - **Required**\n  - This function is used to resolve any props needed for this header group's row.\n  - You can use the `getHeaderGroupProps` hook to extend its functionality.\n  - Custom props may be passed. **NOTE: Custom props will override built-in table props, so be careful!**\n\n### `Column` Properties\n\nThe following properties are available on every `Column` object returned by the table instance.\n\n- `id: String`\n  - The resolved column ID from either the column's `accessor` or the column's hard-coded `id` property\n- `visible: Boolean`\n  - The resolved visible state for the column, derived from the column's `show` property\n- `render: Function(type: String | Function | Component, ?props)`\n  - This function is used to render content in context of a column.\n  - If `type` is a string, will render using the `column[type]` renderer. React Table ships with default `Header` renderers. Other renderers like `Filter` are available via hooks like `useFilters`.\n  - If a function or component is passed instead of a string, it will be be passed the table instance and column model as props and is expected to return any valid JSX.\n- `getHeaderProps: Function(?props)`\n  - **Required**\n  - This function is used to resolve any props needed for this column's header cell.\n  - You can use the `getHeaderProps` hook to extend its functionality.\n  - Custom props may be passed. **NOTE: Custom props will override built-in table props, so be careful!**\n\n### `Row` Properties\n\nThe following additional properties are available on every `row` object returned by the table instance.\n\n- `cells: Array<Cell>`\n  - An array of `Cell` objects containing properties and functions specific to the row and column it belongs to.\n  - See [Cell Properties](#cell-properties) for more information\n- `values: Object<columnID: any>`\n  - A map of this row's **resolved** values by columnID, eg. `{ firstName: 'Tanner', lastName: 'Linsley' }`\n- `getRowProps: Function(?props)`\n  - **Required**\n  - This function is used to resolve any props needed for this row.\n  - You can use the `getRowProps` hook to extend its functionality.\n  - Custom props may be passed. **NOTE: Custom props will override built-in table props, so be careful!**\n\n### `Cell` Properties\n\nThe following additional properties are available on every `Cell` object returned in an array of `cells` on every row object.\n\n- `column: Column`\n  - The corresponding column object for this cell\n- `row: Row`\n  - The corresponding row object for this cell\n- `value: any`\n  - The **resolved** value for this cell.\n  - By default, this value is displayed on the table via the default `Cell` renderer. To override the way a cell displays\n- `getCellProps: Function(?props)`\n  - **Required**\n  - This function is used to resolve any props needed for this cell.\n  - You can use the `getCellProps` hook to extend its functionality.\n  - Custom props may be passed. **NOTE: Custom props will override built-in table props, so be careful!**\n- `render: Function(type: String | Function | Component, ?props)`\n  - This function is used to render content in context of a cell.\n  - If `type` is a string, will render using the `column[type]` renderer. React Table ships with a default `Cell` renderer. Other renderers like `Aggregated` are available via hooks like `useFilters`.\n  - If a function or component is passed instead of a string, it will be be passed the table instance and cell model as props and is expected to return any valid JSX.\n\n### Example\n\n```js\nfunction App() {\n  const columns = React.useMemo(\n    () => [\n      {\n        Header: 'Name',\n        columns: [\n          {\n            Header: 'First Name',\n            accessor: 'firstName',\n          },\n          {\n            Header: 'Last Name',\n            accessor: 'lastName',\n          },\n        ],\n      },\n    ],\n    []\n  )\n\n  const data = [\n    {\n      firstName: 'Tanner',\n      lastName: 'Linsley',\n    },\n    {\n      firstName: 'Shawn',\n      lastName: 'Wang',\n    },\n    {\n      firstName: 'Kent C.',\n      lastName: 'Dodds',\n    },\n    {\n      firstName: 'Ryan',\n      lastName: 'Florence',\n    },\n  ]\n\n  return <MyTable columns={columns} data={data} />\n}\n\nfunction MyTable({ columns, data }) {\n  const { getTableProps, headerGroups, rows, prepareRow } = useTable({\n    columns,\n    data,\n  })\n\n  return (\n    <table {...getTableProps()}>\n      <thead>\n        {headerGroups.map(headerGroup => (\n          <tr {...headerGroup.getRowProps()}>\n            {headerGroup.headers.map(column => (\n              <th {...column.getHeaderProps()}>{column.render('Header')}</th>\n            ))}\n          </tr>\n        ))}\n      </thead>\n      <tbody>\n        {rows.map(\n          (row, i) =>\n            prepareRow(row) || (\n              <tr {...row.getRowProps()}>\n                {row.cells.map(cell => {\n                  return <td {...cell.getCellProps()}>{cell.render('Cell')}</td>\n                })}\n              </tr>\n            )\n        )}\n      </tbody>\n    </table>\n  )\n}\n```\n\n## `useGroupBy`\n\n- Plugin Hook\n- Optional\n\n`useGroupBy` is the hook that implements **row grouping and aggregation**.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `state[0].groupBy: Array<String>`\n  - Must be **memoized**\n  - An array of groupBy ID strings, controlling which columns are used to calculate row grouping and aggregation. This information is stored in state since the table is allowed to manipulate the groupBy through user interaction.\n- `groupByFn: Function`\n  - Must be **memoized**\n  - Defaults to [`defaultGroupByFn`](TODO)\n  - This function is responsible for grouping rows based on the `state.groupBy` keys provided. It's very rare you would need to customize this function.\n- `manualGroupBy: Bool`\n  - Enables groupBy detection and functionality, but does not automatically perform row grouping.\n  - Turn this on if you wish to implement your own row grouping outside of the table (eg. server-side or manual row grouping/nesting)\n- `disableGrouping: Bool`\n  - Disables groupBy for the entire table.\n- `aggregations: Object<aggregationKey: aggregationFn>`\n  - Must be **memoized**\n  - Allows overriding or adding additional aggregation functions for use when grouping/aggregating row values. If an aggregation key isn't found on this object, it will default to using the [built-in aggregation functions](TODO)\n\n### Instance Variables\n\nThe following values are provided to the table `instance`:\n\n- `rows: Array<Row>`\n  - An array of **grouped and aggregated** rows.\n\n### Example\n\n```js\nconst state = useTableState({ groupBy: ['firstName'] })\n\nconst aggregations = React.useMemo(() => ({\n  customSum: (values, rows) => values.reduce((sum, next) => sum + next, 0),\n}))\n\nconst { rows } = useTable(\n  {\n    state, // state[0].groupBy === ['firstName']\n    manualGroupBy: false,\n    disableGrouping: false,\n    aggregations,\n  },\n  useGroupBy\n)\n```\n\n## `useFilters`\n\n- Plugin Hook\n- Optional\n\n`useFilters` is the hook that implements **row filtering**.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `state[0].filters: Object<columnID: filterValue>`\n  - Must be **memoized**\n  - An object of columnID's and their corresponding filter values. This information is stored in state since the table is allowed to manipulate the filter through user interaction.\n- `defaultFilter: String | Function`\n  - If a **function** is passed, it must be **memoized**\n  - Defaults to [`text`](TODO)\n  - The function (or resolved function from the string) will be used as the default/fallback filter method for every column that has filtering enabled.\n    - If a `string` is passed, the function with that name located on the `filterTypes` option object will be used.\n    - If a `function` is passed, it will be used.\n  - For mor information on filter types, see [Filtering](TODO)\n- `manualFilters: Bool`\n  - Enables filter detection functionality, but does not automatically perform row filtering.\n  - Turn this on if you wish to implement your own row filter outside of the table (eg. server-side or manual row grouping/nesting)\n- `disableFilters: Bool`\n  - Disables filtering for every column in the entire table.\n- `filterTypes: Object<filterKey: filterType>`\n  - Must be **memoized**\n  - Allows overriding or adding additional filter types for columns to use. If a column's filter type isn't found on this object, it will default to using the [built-in filter types](TODO).\n  - For mor information on filter types, see [Filtering](TODO)\n\n### Instance Variables\n\nThe following values are provided to the table `instance`:\n\n- `rows: Array<Row>`\n  - An array of **filtered** rows.\n- `setFilter: Function(columnID, filterValue) => void`\n  - An instance-level function used to update the filter value for a specific column.\n- `setAllFilters: Function(filtersObject) => void`\n  - An instance-level function used to update the values for **all** filters on the table, all at once.\n\n### Example\n\n```js\n// A great library for fuzzy filtering/sorting items\nimport matchSorter from 'match-sorter'\n\nconst state = useTableState({ filters: { firstName: 'tanner' } })\n\nconst filterTypes = React.useMemo(() => ({\n  // Add a new fuzzyText filter type.\n  fuzzyText: (rows, id, filterValue) => {\n    return matchSorter(rows, filterValue, { keys: [row => row[id] })\n  },\n  // Or, override the default text filter to use\n  // \"startWith\"\n  text: (rows, id, filterValue) => {\n    return rows.filter(row => {\n      const rowValue = row.values[id]\n      return rowValue !== undefined\n        ? String(rowValue)\n            .toLowerCase()\n            .startsWith(String(filterValue).toLowerCase())\n        : true\n    })\n  }\n}), [matchSorter])\n\nconst { rows } = useTable(\n  {\n    // state[0].groupBy === ['firstName']\n    state,\n    // Override the default filter to be our new `fuzzyText` filter type\n    defaultFilter: 'fuzzyText',\n    manualFilters: false,\n    disableFilters: false,\n    // Pass our custom filter types\n    filterTypes,\n  },\n  useFilters\n)\n```\n\n## `useSortBy`\n\n- Plugin Hook\n- Optional\n\n`useSortBy` is the hook that implements **row sorting**. It also support multi-sort (keyboard required).\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `state[0].sortBy: Array<Object<id: columnID, desc: Bool>>`\n  - Must be **memoized**\n  - An array of sorting objects. If there is more than one object in the array, multi-sorting will be enabled. Each sorting object should contain an `id` key with the corresponding column ID to sort by. An optional `desc` key may be set to true or false to indicated ascending or descending sorting for that column. This information is stored in state since the table is allowed to manipulate the filter through user interaction.\n- `defaultSortType: String | Function`\n  - If a **function** is passed, it must be **memoized**\n  - Defaults to [`alphanumeric`](TODO)\n  - The function (or resolved function from the string) will be used as the default/fallback sort method for every column that has sorting enabled.\n    - If a `string` is passed, the function with that name located on the `sortTypes` option object will be used.\n    - If a `function` is passed, it will be used.\n  - For mor information on sort types, see [Sorting](TODO)\n- `manualSorting: Bool`\n  - Enables sorting detection functionality, but does not automatically perform row sorting. Turn this on if you wish to implement your own sorting outside of the table (eg. server-side or manual row grouping/nesting)\n- `disableSorting: Bool`\n  - Disables sorting for every column in the entire table.\n- `disableMultiSort: Bool`\n  - Disables multi-sorting for the entire table.\n- `defaultSortDesc: Bool`\n  - If true, the first default direction for sorting will be descending. This may also be overridden at the column level.\n- `disableSortRemove: Bool`\n  - If true, the un-sorted state will not be available to columns once they have been sorted.\n- `disableMultiRemove: Bool`\n  - If true, the un-sorted state will not be available to multi-sorted columns.\n- `orderByFn: Function`\n  - Must be **memoizd**\n  - Defaults to the built-in [default orderBy function](TODO)\n  - This function is responsible for composing multiple sorting functions together for multi-sorting, and also handles both the directional sorting and stable-sorting tie breaking. Rarely would you want to override this function unless you have a very advanced use-case that requires it.\n- `sortTypes: Object<sortKey: sortType>`\n  - Must be **memoized**\n  - Allows overriding or adding additional sort types for columns to use. If a column's sort type isn't found on this object, it will default to using the [built-in sort types](TODO).\n  - For mor information on sort types, see [Sorting](TODO)\n\n### Instance Variables\n\nThe following values are provided to the table `instance`:\n\n- `rows: Array<Row>`\n  - An array of **sorted** rows.\n\n### Example\n\n```js\nconst state = useTableState({ sortBy: [{ id: 'firstName', desc: true }] })\n\nconst { rows } = useTable(\n  {\n    // state[0].sortBy === [{ id: 'firstName', desc: true }]\n    state,\n  },\n  useSortBy\n)\n```\n\n## `useExpanded`\n\n- Plugin Hook\n- Optional\n\n`useExpanded` is the hook that implements **row expanding**. It is most often used with `useGroupBy` to expand grouped rows, but is not limited to that use-case. It supports expanding rows both via internal table state and also via a hard-coded key on the raw row model.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `state[0].expanded: Object<[pathIndex]: Boolean | ExpandedStateObject>`\n  - Must be **memoized**\n  - An nested object of expanded paths.\n  - A `pathIndex` can be set as the key and its value set to `true` to expand that row's subRows into view. For example, if `{ '3': true }` was passed as the `expanded` state, the **4th row in the original data array** would be expanded.\n  - For nested expansion, you may **use another object** instead of a Boolean to expand sub rows. For example, if `{ '3': { '5' : true }}` was passed as the `expanded` state, then the **6th subRow of the 4th row and the 4th row of the original data array** would be expanded.\n  - This information is stored in state since the table is allowed to manipulate the filter through user interaction.\n- `subRowsKey: String`\n  - Required\n  - Defaults to `subRows`\n  - React Table will use this key when materializing the final row object. It also uses this key to infer sub-rows from the raw data.\n  - See [Grouping and Aggregation](#grouping-and-aggregation) for more information\n- `paginateSubRows: Bool`\n  - Defaults to `true`\n  - If set to `false`, expanded rows will not be paginated. Thus, any expanded subrows would potentially increase the size of any given page by the amount of total expanded subrows on the page.\n- `manualExpandedKey: String`\n  - Defaults to `expanded`\n  - This string is used as the key to detect manual expanded state on any given row. For example, if a raw data row like `{ name: 'Tanner Linsley', friends: [...], expanded: true}` was detected, it would be forcibly expanded, regardless of state.\n\n### Instance Variables\n\nThe following values are provided to the table `instance`:\n\n- `rows: Array<Row>`\n  - An array of **sorted** rows.\n\n### Example\n\n```js\nconst state = useTableState({ expanded: { '3': true, '5': { '2': true } } })\n\nconst { rows } = useTable(\n  {\n    // state[0].sortBy === { '3': true, '5': { '2': true } }\n    state,\n  },\n  useExpanded\n)\n```\n\n## `usePagination`\n\n- Plugin Hook\n- Optional\n\n`usePagination` is the hook that implements **row pagination**. It can be used for both client-side pagination or server-side pagination. For more information on pagination, see [Pagination](TODO)\n\n> **NOTE** Some server-side pagination implementations do not use page index and instead use **token based pagination**! If that's the case, please use the `useTokenPagination` plugin instead.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `state[0].pageSize: Int`\n  - **Required**\n  - Defaults to `10`\n  - Determines the amount of rows on any given page\n- `state[0].pageIndex: Int`\n  - **Required**\n  - Defaults to `0`\n  - The index of the page that should be displayed via the `page` instance value\n- `pageCount: Int`\n  - **Required if `manualPagination` is set to `true`**\n  - If `manualPagination` is `true`, then this value used to determine the amount of pages available. This amount is then used to materialize the `pageOptions` and also compute the `canNextPage` values on the table instance.\n- `manualPagination: Bool`\n  - Enables pagination functionality, but does not automatically perform row pagination.\n  - Turn this on if you wish to implement your own pagination outside of the table (eg. server-side pagination or any other manual pagination technique)\n- `disablePageResetOnDataChange`\n  - Defaults to `false`\n  - Normally, any changes detected to `rows`, `state.filters`, `state.groupBy`, or `state.sortBy` will trigger the `pageIndex` to be reset to `0`\n  - If set to `true`, the `pageIndex` will not be automatically set to `0` when these dependencies change.\n\n### Instance Variables\n\nThe following values are provided to the table `instance`:\n\n- `pages: Array<page>`\n  - An array of every generated `page`, each containing its respective rows.\n- `page: Array<row>`\n  - An array of rows for the **current** page, determined by the current `pageIndex` value.\n- `pageCount: Int`\n  - If `manualPagination` is set to `false`, this is the total amount of pages available in the table based on the current `pageSize` value\n  - if `manualPagination` is set to `true`, this is merely the same `pageCount` option that was passed in the table options.\n- `pageOptions: Array<Int>`\n  - An array of zero-based index integers corresponding to available pages in the table.\n  - This can be useful for generating things like select interfaces for the user to select a page from a list, instead of manually paginating to the desired page.\n- `canPreviousPage: Bool`\n  - If there are pages and the current `pageIndex` is greater than `0`, this will be `true`\n- `canNextPage:`\n  - If there are pages and the current `pageIndex` is less than `pageCount`, this will be `true`\n- `gotoPage: Function(pageIndex)`\n  - This function, when called with a valid `pageIndex`, will set `pageIndex` to that value.\n  - If the passed index is outside of the valid `pageIndex` range, then this function will do nothing.\n- `previousPage: Function`\n  - This function decreases `state.pageIndex` by one.\n  - If there are no pages or `canPreviousPage` is false, this function will do nothing.\n- `nextPage: Function`\n  - This function increases `state.pageIndex` by one.\n  - If there are no pages or `canNextPage` is false, this function will do nothing.\n- `setPageSize: Function(pageSize)`\n  - This function sets `state.pageSize` to the new value.\n  - As a result of a pageSize change, a new `state.pageIndex` is also calculated. It is calculated via `Math.floor(currentTopRowIndex / newPageSize)`\n- `pageIndex: Int`\n  - This is the resolved `state.pageIndex` value.\n- `pageSize: Int`\n  - This is the resolved `state.pageSize` value.\n\n### Example\n\n```js\nconst state = useTableState({ pageSize: 20, pageIndex: 1 })\n\nconst { rows } = useTable(\n  {\n    // state[0] === { pageSize: 20, pageIndex: 1 }\n    state,\n  },\n  usePagination\n)\n```\n\n## `useTokenPagination`\n\n- Plugin Hook\n- Optional\n\n`useTokenPagination` is the hook that **aids in implementing row pagination using tokens**. It is useful for server-side pagination implementations that use **tokens** instead of page index. For more information on pagination, see [Pagination](TODO)\n\n> Documentation Coming Soon...\n\n## `useTableState`\n\n- Optional\n\n`useTableState` is a hook that allows you to hoist the table state out of the table into your own code. You should use this hook if you need to:\n\n- Know about the internal table state\n- React to changes to the internal table state\n- Manually control or override the internal table state\n\nSome common use cases for this hook are:\n\n- Reacting to `pageIndex` and `pageSize` changes for server-side pagination to fetch new data\n- Disallowing specific states via a custom state reducer\n- Enabling parent/unrelated components to manipulate the table state\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `initialState: Object`\n  - Optional\n  - The initial state object for the table.\n  - This object is **merged over the `defaultState` object** (eg. `{...defaultState, ...initialState}`) that React Table and its hooks use to register default state to produce the final initial state object passed to the resolved `useState` hook.\n- `overrides: Object`\n  - Optional\n  - Must be **memoized**\n  - This object is **merged over the current table state** (eg. `{...state, ...overrides}`) to produce the final state object that is then passed to the `useTable` options\n- `options: Object`\n  - `reducer: Function(oldState, newState) => finalState`\n    - Optional\n    - Inspired by Kent C. Dodd's [State Reducer Pattern](https://kentcdodds.com/blog/the-state-reducer-pattern-with-react-hooks)\n    - With every `setState` call to a table state (even internally), this reducer is called and is allowed to modify the final state object for updating.\n    - It is passed the `oldState`, the `newState`, and an action `type`.\n  - `useState`\n    - Optional\n    - Defaults to `React.useState`\n    - This function, if defined will be used as the state hook internally instead of the default `React.useState`. This can be useful for implementing custom state storage hooks like useLocalStorage, etc.\n\n### Instance Variables\n\n- `tableStateTuple: [tableState, setTableState]`\n  - Similar in structure to the result of `React.useState`\n  - **Memoized**. This tuple array will not change between renders unless state or `useTableState` options change.\n  - `tableState: Object`\n    - This is the final state object of the table, which is the product of the `initialState`, `overrides` and the `reducer` options (if applicable)\n  - `setTableState: Function(updater, type) => void`\n    - This function is used both internally by React Table, and optionally by you (the developer) to update the table state programmatically.\n    - `updater: Function`\n      - This function signature is **almost** (see next point) identical to the functional API exposed by `React.setState`. It is passed the previous state and is expected to return a new version of the state.\n      - **NOTE: `updater` must be a function. Passing a replacement object is not supported as it is with React.useState**\n    - `type: String`\n      - The [action type](TODO) corresponding to what action being taken against the state.\n\n### Example\n\n```js\nexport default function MyTable({ manualPageIndex }) {\n  // This is the initial state for our table\n  const initialState = { pageSize: 10, pageIndex: 0 }\n\n  // Here, we can override the pageIndex\n  // regardless of the internal table state\n  const overrides = React.useMemo(() => ({\n    pageIndex: manualPageIndex,\n  }))\n\n  const state = useTableState(initialState, overrides)\n\n  // You can use effects to observe changes to the state\n  React.useEffect(() => {\n    console.log('Page Size Changed!', initialState.pageSize)\n  }, [initialState.pageSize])\n\n  const { rows } = useTable({\n    state,\n  })\n}\n```\n\n<!-- # Guides\n\n## Client Side Pagination\n\nTo add client side pagination, use the `usePagination` hook:\n\n```diff\n// Import React\nimport React from 'react'\n\n// Import React Table\nimport {\n  useTable,\n  useGroupBy,\n  useFilters,\n  useSortBy,\n  useExpanded,\n+  usePagination,\n} from 'react-table'\n\n// Create a component to render your table\nfunction MyTable(props) {\n  // Use the useTable hook to create your table configuration\n  const instance = useTable(\n    props,\n    useGroupBy,\n    useFilters,\n    useSortBy,\n    useExpanded,\n+   usePagination,\n  )\n\n  // Use the state and functions returned from useTable to build your UI\n  const {\n    getTableProps,\n    headerGroups,\n    rows,\n    getRowProps,\n    prepareRow,\n+   pageOptions,\n+   page,\n+   state: [{ pageIndex, pageSize }],\n+   gotoPage,\n+   previousPage,\n+   nextPage,\n+   setPageSize,\n+   canPreviousPage,\n+   canNextPage,\n  } = instance\n\n  // Render the UI for your table\n  return (\n    <div>\n      <table {...getTableProps()}>\n        ...\n      </table>\n+     <div>\n+       <button onClick={() => previousPage()} disabled={!canPreviousPage}>\n+         Previous Page\n+       </button>\n+       <button onClick={() => nextPage()} disabled={!canNextPage}>\n+         Next Page\n+       </button>\n+       <div>\n+         Page{' '}\n+         <em>\n+           {pageIndex + 1} of {pageOptions.length}\n+         </em>\n+       </div>\n+       <div>Go to page:</div>\n+       <input\n+         type=\"number\"\n+         defaultValue={pageIndex + 1 || 1}\n+         onChange={e => {\n+           const page = e.target.value ? Number(e.target.value) - 1 : 0\n+           gotoPage(page)\n+         }}\n+       />\n+       <select\n+         value={pageSize}\n+         onChange={e => {\n+           setPageSize(Number(e.target.value))\n+         }}\n+       >\n+         {pageSizeOptions.map(pageSize => (\n+           <option key={pageSize} value={pageSize}>\n+             Show {pageSize}\n+           </option>\n+         ))}\n+       </select>\n+     </div>\n    </div>\n  )\n}\n```\n\n## Server Side Pagination\n\nTo implement server-side pagination, use the `useTableState` and `usePagination` hooks:\n\n```diff\n\n``` -->\n\n<!-- # Setup\n\nTo begin using React Table you will need to start with a UI to render it. Below is a very basic component that should serve as a good starting point for most projects:\n\n```js\n// Import React\nimport React from 'react'\n\n// Import React Table\nimport {\n  useTable,\n  useGroupBy,\n  useFilters,\n  useSortBy,\n  useExpanded,\n  usePagination,\n} from 'react-table'\n\n// Create a component to render your table\nexport default function MyTable(props) {\n  // Use the useTable hook to create your table configuration\n  const instance = useTable(\n    props,\n    useGroupBy,\n    useFilters,\n    useSortBy,\n    useExpanded,\n    usePagination\n  )\n\n  // Use the state and functions returned from useTable to build your UI\n  const {\n    getTableProps,\n    headerGroups,\n    rows,\n    getRowProps,\n    pageOptions,\n    page,\n    state: [{ pageIndex, pageSize }],\n    gotoPage,\n    prepareRow,\n    previousPage,\n    nextPage,\n    setPageSize,\n    canPreviousPage,\n    canNextPage,\n  } = instance\n\n  // Render the UI for your table\n  return (\n    <div>\n      <table {...getTableProps()}>\n        <thead>\n          {headerGroups.map(headerGroup => (\n            <tr {...headerGroup.getRowProps()}>\n              {headerGroup.headers.map(column => (\n                <th {...column.getHeaderProps()}>{column.render('Header')}</th>\n              ))}\n            </tr>\n          ))}\n        </thead>\n        <tbody>\n          {page.map(\n            (row, i) =>\n              prepareRow(row) || (\n                <tr {...row.getRowProps()}>\n                  {row.cells.map(cell => {\n                    return (\n                      <td {...cell.getCellProps()}>{cell.render('Cell')}</td>\n                    )\n                  })}\n                </tr>\n              )\n          )}\n        </tbody>\n      </table>\n      <div>\n        <button onClick={() => previousPage()} disabled={!canPreviousPage}>\n          Previous Page\n        </button>\n        <button onClick={() => nextPage()} disabled={!canNextPage}>\n          Next Page\n        </button>\n        <div>\n          Page{' '}\n          <em>\n            {pageIndex + 1} of {pageOptions.length}\n          </em>\n        </div>\n        <div>Go to page:</div>\n        <input\n          type=\"number\"\n          defaultValue={pageIndex + 1 || 1}\n          onChange={e => {\n            const page = e.target.value ? Number(e.target.value) - 1 : 0\n            gotoPage(page)\n          }}\n        />\n        <select\n          value={pageSize}\n          onChange={e => {\n            setPageSize(Number(e.target.value))\n          }}\n        >\n          {pageSizeOptions.map(pageSize => (\n            <option key={pageSize} value={pageSize}>\n              Show {pageSize}\n            </option>\n          ))}\n        </select>\n      </div>\n    </div>\n  )\n}\n```\n\nYou can then use your table like so:\n\n```js\n\nimport MyTable from './MyTable'\n\nfunction MyApp () {\n  const columns = React.useMemo(() => [{\n    Header: \"Name\",\n    columns: [\n      {\n        Header: \"First Name\",\n        accessor: \"firstName\",\n      },\n      {\n        Header: \"Last Name\",\n        accessor: \"lastName\",\n      }\n    ]\n  }], [])\n\n  const data = [{\n    firstName: 'Tanner',\n    lastName: 'Linsley'\n  }, {\n    firstName: 'Shawn',\n    lastName: 'Wang'\n  }, {\n    firstName: 'Kent C.',\n    lastName: 'Dodds'\n  }, {\n    firstName: 'Ryan',\n    lastName: 'Florence'\n  }]\n\n  return <MyTable columns={columns} data={data} />\n``` -->\n\n## Contributing\n\nTo suggest a feature, create an issue if it does not already exist.\nIf you would like to help develop a suggested feature follow these steps:\n\n- Fork this repo\n- Install dependencies with `$ yarn`\n- Auto-build files as you edit with `$ yarn run watch`\n- Implement your changes to files in the `src/` directory\n- Run the <a href=\"https://github.com/tannerlinsley/react-story\">React Story</a> locally with `$ yarn run docs`\n- View changes as you edit `docs/src`\n- Submit PR for review\n\n#### Package Utilities\n\n- `$ yarn run watch` Watches files and builds via babel\n- `$ yarn run docs` Runs the storybook server\n- `$ yarn run test` Runs the test suite\n","licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.0-alpha.8","dist":{"shasum":"51a26ccf0b85d61b027e8896dc3bffb199cf2bad","integrity":"sha512-/7QVcm22qOYB9bhVoJUXm3i1bRNfxHKgPaxvKcFLUVH2ZTgLLLtRpuZPK8b225xy12hZ1nZYgY0fVWdo6XCNvQ==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.0-alpha.8.tgz","fileCount":97,"unpackedSize":1607196,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdOgV1CRA9TVsSAnZWagAA2T8P+wexrpOYQV9CZKJChNKE\nKUbHZLFAZNwTwa+kFGqc0BiLk7Vc1Tw7bip/xmLdTbg4h/IAuD0i1Y2nthW1\nLcbznZeFfNdmevo3nsC8J5VY+LW6WZ3n6JZyKrblR96ItTwb8Q86Qb+fixTz\nHHssyFanKJtigkN7Z5hCk/AaVXfbY6ySE6/BcLLaI0mT9Ok4u5oksG8Ofruq\nbUc7f7GxDuI02/++n3uykUJEBaaRJGhvKGCP1t3rCgT+XyDyvlrPQ4Mth0t9\nDtuCseNe8y9cXelbijycOIpDrJ/kuhqi094FkBdzKDH7xlxMpWwxo1SZP8pq\nV2S6idoYc3rX23i8kEjtn79bAOZp4c62Vhi7XNA4ef2MF+/r0u5WWBRvpHhL\nyi2KEHbP6+1Q9Paaz3MDv9RTacc93Voy708ueYdEAb2yd5FAP9rFAPaZ1zbi\nJLdAwzc8r2z6+7xxPaBTDZwIZmLHsEIRRhEXGHrVAE0Ss3L9nL85mQ3YjkCC\nUcmm7xJWWVhbVqkTRKNxYX7vsje6PNFogH/bWWns3miJG3hq+16gPt8lpprG\nLjw6YAw4au0SoLYOybIpvVfvU58lALoGv21IOv0mTmIxTprFGI4iQ1EdsjTc\nCEV0I2EGyOeF3BuZa+9FKgX3y+cD2J43FfImj1jUEMoQoHUwJ/RQy7413/W6\nMhxW\r\n=4rox\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIA5OyMFz1IIbFFggYRfvVrMORDMh1MEcsrzAicV2LTi8AiAhf/PxMTEWtFw3HltQS8G1GStay5ba7IwodOUXK4MhPA=="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.0-alpha.8_1564083573159_0.6406434033405131"},"_hasShrinkwrap":false},"7.0.0-alpha.9":{"name":"react-table","version":"7.0.0-alpha.9","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"dist/index.js","module":"dist/index.es.js","jsnext:main":"dist/index.es.js","scripts":{"commit":"git-cz","test":"is-ci 'test:ci' 'test:dev'","test:dev":"jest --watch","test:ci":"jest","build":"rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next"},"peerDependencies":{"prop-types":"^15.5.0","react":"^16.8.3","react-dom":"^16.8.3"},"devDependencies":{"@babel/plugin-proposal-class-properties":"^7.2.1","@babel/preset-env":"^7.2.0","@babel/preset-react":"^7.0.0","@babel/runtime":"^7.2.0","@svgr/rollup":"^4.1.0","@testing-library/react":"^8.0.4","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","commitizen":"^4.0.3","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^8.0.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.0.0","eslint-plugin-react":"7.x","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","husky":"^3.0.1","is-ci-cli":"^1.1.1","jest":"^24.8.0","jest-cli":"^24.8.0","jest-runner-eslint":"^0.7.4","jest-watch-select-projects":"^0.1.2","jest-watch-typeahead":"^0.3.1","lint-staged":"^9.2.1","rollup":"^0.68.0","rollup-plugin-babel":"^4.1.0","rollup-plugin-commonjs":"^9.1.3","rollup-plugin-node-resolve":"^4.0.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-uglify":"^6.0.2"},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"readmeFilename":"README.md","readme":"# React Table\n\nHooks for building **lightweight, fast and extendable datagrids** for React\n\n<a href=\"https://travis-ci.org/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://travis-ci.org/tannerlinsley/react-table.svg?branch=master\" />\n</a>\n<a href=\"https://npmjs.com/package/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-table.svg\" />\n</a>\n<a href=\"https://spectrum.chat/react-table\">\n  <img alt=\"Join the community on Spectrum\" src=\"https://withspectrum.github.io/badge/badge.svg\" />\n</a>\n<a href=\"https://github.com/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-table.svg?style=social&label=Star\" />\n</a>\n<a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n\n<br />\n<br />\n\n## Features\n\n- Lightweight\n- Headless (100% customizable, Bring-your-own-UI)\n- Client-side & Server-side pagination support\n- Sorting (Multi and Stable)\n- Filters\n- Pivoting & Aggregation\n- Fully controllable\n- Extensible via hooks\n- <a href=\"https://medium.com/@tannerlinsley/why-i-wrote-react-table-and-the-problems-it-has-solved-for-nozzle-others-445c4e93d4a8#.axza4ixba\" target=\"\\_parent\">\"Why I wrote React Table and the problems it has solved for Nozzle.io\"</a> by Tanner Linsley\n\n## Demos\n\n[React Table v7 Sandbox](https://codesandbox.io/s/m5lxzzpz69)\n\n## Versions\n\n- This documentation is for version 7.\n- [View the Changelog](https://github.com/tannerlinsley/react-table/blob/master/CHANGELOG.md)\n- Previous versions:\n  - [6.x.x Readme](https://github.com/tannerlinsley/react-table/tree/v6/)\n  - [5.x.x Readme](https://github.com/tannerlinsley/react-table/blob/ad7d31cd3978eb45da7c6194dbab93c1e9a8594d/README.md)\n\n## Sponsors\n\n**React Table v7** is being built and maintained by me, @tannerlinsley and I am always in need of more Patreon support to keep this project afloat. If you would like to contribute to my Patreon goal for v7 and beyond, [visit my Patreon and help me out!](https://patreon.com/tannerlinsley).\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/platinum.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://tryretool.com/?utm_source=sponsor&utm_campaign=react_table\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-retool.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/platinum-placeholder.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/gold.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://nozzle.io\" target=\"_blank\">\n          <img width=\"300\" src=\"https://nozzle.io/img/logo-blue.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://zappi.com/web\" target=\"_blank\">\n          <img width=\"300\" src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-zappi.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/gold-placeholder.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n# Documentation\n\n- [Installation](#installation)\n- [Concepts](#concepts)\n- [Setup](#setup)\n- [Contributing](#contributing)\n\n# Installation\n\nInstall React Table as a dependency using `npm` or `yarn`\n\n```bash\n# NPM\n$ npm install react-table\n\n# Yarn\n$ yarn add react-table\n```\n\nTo import React Table:\n\n```js\nimport {\n  useTable,\n  useGroupBy,\n  useFilters,\n  useSortBy,\n  useExpanded,\n  usePagination,\n  ...\n} from 'react-table'\n```\n\n# Examples\n\n- [Basic](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/master/examples/basic)\n- [Sorting with `useSortBy`](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/master/examples/sorting-with-useSortBy)\n- [Filtering with `useFilters`](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/master/examples/filtering-with-useFilters)\n\n# Concepts\n\n## React Table is a \"headless\" library\n\nReact Table is a headless utility, which means out of the box, it doesn't render or supply any actual UI elements. You are in charge of utilizing the state and callbacks of the hooks provided by this library to render your own table markup. [Read this article to understand why React Table is built this way.](https://medium.com/merrickchristensen/headless-user-interface-components-565b0c0f2e18). If you don't want to, then here's a quick rundown anyway:\n\n- Separation of Concerns - Not that superficial kind you read about all the time. The real kind. React Table as a library honestly has no business being in charge of your UI. The look, feel, and overall experience of your table is what makes your app or product great. The less React Table gets in the way of that, the better!\n- Maintenance - By removing the massive (and seemingly endless) API surface area required to support every UI use-case, React Table can remain small, easy-to-use and simple to update/maintain.\n- Extensibility - UI presents countless edge cases for a library simply because it's a creative medium, and one where every developer does things differently. By not dictating UI concerns, React Table empowers the developer to design and extend the UI based on their unique use-case.\n\n## The React Table API\n\nAt the heart of every React Table is a table `instance` object. This object contains everything needed to build a table and interact with it's state. This includes, but is not limited to:\n\n- Columns\n- Materialized Data\n- Sorting\n- Filtering\n- Grouping\n- Pagination\n- Expanded State\n- Any functionality provided by custom plugin hooks, too!\n\n## Using Hooks for configuration, state and lifecycle\n\nReact Table uses React Hooks both internally and externally for 100% of its configuration and lifecycle management. Naturally, this is what allows React Table to be headless and lightweight while still having a concise and simple API.\n\nReact Table is essentially a compatible collection of **custom React hooks**:\n\n- The primary React Table hook\n  - [`useTable`](#usetable)\n- Plugin Hooks\n  - Core Plugin Hooks\n    - [`useTableState`](#useTableState)\n    - [`useGroupBy`](#useGroupBy)\n    - [`useFilters`](#useFilters)\n    - [`useSortBy`](#useSortBy)\n    - [`useExpanded`](#useExpanded)\n    - [`usePagination`](#usePagination)\n    - [`useTokenPagination`](#useTokenPagination)\n  - Layout Plugin Hooks\n    - [`useFlexLayout`](#useFlexLayout)\n    - [`useAbsoluteLayout`](#useAbsoluteLayout) (coming soon!)\n- Custom Plugin Hooks\n  - Get your custom plugin hook listed here!\n\n### Hook Usage\n\n`useTable` is the **primary** hook used to build a React Table. It serves as the starting point for **every option and every plugin hook** that React Table supports. The options passed into `useTable` are supplied to every plugin hook after it in the order they are supplied, eventually resulting a final `instance` object that you can use to build your table UI and interact with the table's state.\n\n```js\nconst instance = useTable(\n  {\n    data: [...],\n    columns: [...],\n  },\n  useGroupBy,\n  useFilters,\n  useSortBy,\n  useExpanded,\n  usePagination\n)\n```\n\n### The stages of a React Table\n\n1. `useTable` is called. A table instance is created.\n1. The `instance.state` is resolved from either a custom user state or an automatically generated one.\n1. A collection of plugin points is created at `instance.hooks`. These plugin points don't run until after all of the plugins have run.\n1. The instance is reduced through each plugin hook in the order they were called. Each hook receives the result of the previous hook, is able to manipulate the `instance`, use plugin points, use their own React hooks internally and eventually return a new `instance`. This happens until the last instance object is returned from the last hook.\n1. Lastly, the plugin points that were registered and populated during hook reduction are run to produce the final instance object that is returned from `useTable`\n\nThis multi-stage process is the secret sauce that allows React Table plugin hooks to work together and compose nicely, while not stepping on each others toes.\n\n### Plugin Hook Order & Consistency\n\nThe order and usage of plugin hooks must follow [The Laws of Hooks](TODO), just like any other custom hook. They must always be unconditionally called in the same order.\n\n> **NOTE: In the event that you want to programmatically enable or disable plugin hooks, most of them provide options to disable their functionality, eg. `options.disableSorting`**\n\n### Option Memoization\n\nReact Table relies on memoization to determine when state and side effects should update or be calculated. This means that every option you pass to `useTable` should be memoized either via `React.useMemo` (for objects) or `React.useCallback` (for functions).\n\n# API\n\n## `useTable`\n\n- Required\n\n`useTable` is the root hook for React Table. To use it, pass it with an options object with at least a `columns` and `rows` value, followed by any React Table compatible hooks you want to use.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `columns: Array<Column>`\n  - Required\n  - Must be **memoized**\n  - The core columns configuration object for the entire table.\n  - Supports nested `columns` arrays via the `column.children` key\n- `data: Array<any>`\n  - Required\n  - Must be **memoized**\n  - The data array that you want to display on the table.\n- `state: TableStateTuple[stateObject, stateUpdater]`\n  - Optional\n  - Must be **memoized** table state tuple. See [`useTableState`](#usetablestate) for more information.\n  - The state/updater pair for the table instance. You would want to override this if you plan on controlling or hoisting table state into your own code.\n  - Defaults to using an internal `useTableState()` instance if not defined.\n  - See [Controlling and Hoisting Table State](#controlling-and-hoisting-table-state)\n- `defaultColumn: Object`\n  - Optional\n  - Defaults to `{}`\n  - The default column object for every column passed to React Table.\n  - Column-specific properties will override the properties in this object, eg. `{ ...defaultColumn, ...userColumn }`\n  - This is particularly useful for adding global column properties. For instance, when using the `useFilters` plugin hook, add a default `Filter` renderer for every column, eg.`{ Filter: MyDefaultFilterComponent }`\n- `useColumns: Function`\n  - Optional\n  - This hook overrides the internal `useColumns` hooks used by `useTable`. You probably never want to override this unless you are testing or developing new features for React Table\n- `useRows: Function`\n  - Optional\n  - This hook overrides the internal `useRows` hooks used by `useTable`. You probably never want to override this unless you are testing or developing new features for React Table\n- `debug: Bool`\n  - Optional\n  - A flag to turn on debug mode.\n  - Defaults to `false`\n\n### `column` Options\n\nThe following options are supported on any column object you can pass to `columns`.\n\n- `accessor: String | Function`\n  - **Required**\n  - This string/function is used to build the data model for your column.\n  - The data returned by an accessor should be **primitive** and sortable.\n  - If a string is passed, the column's value will be looked up on the original row via that key, eg. If your column's accessor is `firstName` then its value would be read from `row['firstName']`. You can also specify deeply nested values with accessors like `info.hobbies` or even `address[0].street`\n  - If a function is passed, the column's value will be looked up on the original row using this accessor function, eg. If your column's accessor is `row => row.firstName`, then its value would be determined by passing the row to this function and using the resulting value.\n- `id: String`\n  - **Required if `accessor` is a function**\n  - This is the unique ID for the column. It is used by reference in things like sorting, grouping, filtering etc.\n  - If a **string** accessor is used, it defaults as the column ID, but can be overridden if necessary.\n- `columns: Array<Column>`\n  - Optional\n  - A nested array of columns.\n  - If defined, the column will act as a header group. Columns can be recursively nested as much as needed.\n- `show: Boolean | Function`\n  - Optional\n  - Defaults to `true`\n  - If set to `false`, the column will be hidden.\n  - If set to a `function`, it will be called with the current table instance and can then return `true` or `false`.\n  - The data model for hidden columns is still calculated including sorting, filters, and grouping.\n- `Header: String | Function | React.Component => JSX`\n  - Optional\n  - Defaults to `({ id }) => id`\n  - Receives the table instance and column model as props\n  - Must either be a **string or return valid JSX**\n  - If a function/component is passed, it will be used for formatting the header value, eg. You can use a `Header` function to dynamically format the header using any table or column state.\n- `Cell: Function | React.Component => JSX`\n  - Optional\n  - Defaults to `({ value }) => value`\n  - Receives the table instance and cell model as props\n  - Must return valid JSX\n  - This function (or component) is primarily used for formatting the column value, eg. If your column accessor returns a date object, you can use a `Cell` function to format that date to a readable format.\n\n### `Instance` Properties\n\nThe following properties are available on the table instance returned from `useTable`\n\n- `headerGroups: Array<HeaderGroup>`\n  - An array of normalized header groups, each containing a flattened array of final column objects for that row.\n  - See [Header Group Properties](#header-group-properties) for more information\n- `columns: Array<Column>`\n  - A **flat** array of all final column objects computed from the original columns configuration option.\n  - See [Column Properties](#column-properties) for more information\n- `headers[] Array<Column>`\n  - A **nested** array of final column objects, similar in structure to the original columns configuration option.\n  - See [Column Properties](#column-properties) for more information\n- `rows: Array<Row>`\n  - An array of **materialized row objects** from theriginal `dat oa` array and `columns` passed into the table options\n  - See [Row Properties](#row-properties) for more information\n- `getTableProps: Function(?props)`\n  - **Required**\n  - This function is used to resolve any props needed for your table wrapper.\n  - Custom props may be passed. **NOTE: Custom props will override built-in table props, so be careful!**\n- `prepareRow: Function(Row)`\n  - **Required**\n  - This function is responsible for lazily preparing a row for rendering. Any row that you intend to render in your table needs to be passed to this function **before every render**.\n  - **Why?** Since table data could potentially be very large, it can become very expensive to compute all of the necessary state for every row to be rendered regardless if it actually is rendered or not (for example if you are paginating or virtualizing the rows, you may only have a few rows visible at any given moment). This function allows only the rows you intend to display to be computed and prepped with the correct state.\n\n### `HeaderGroup` Properties\n\nHeader Groups are The following additional properties are available on every `headerGroup` object returned by the table instance.\n\n- `headers: Array<Column>`\n  - **Required**\n  - The columns in this header group.\n- `getHeaderGroupProps: Function(?props)`\n  - **Required**\n  - This function is used to resolve any props needed for this header group's row.\n  - You can use the `getHeaderGroupProps` hook to extend its functionality.\n  - Custom props may be passed. **NOTE: Custom props will override built-in table props, so be careful!**\n\n### `Column` Properties\n\nThe following properties are available on every `Column` object returned by the table instance.\n\n- `id: String`\n  - The resolved column ID from either the column's `accessor` or the column's hard-coded `id` property\n- `visible: Boolean`\n  - The resolved visible state for the column, derived from the column's `show` property\n- `render: Function(type: String | Function | Component, ?props)`\n  - This function is used to render content in context of a column.\n  - If `type` is a string, will render using the `column[type]` renderer. React Table ships with default `Header` renderers. Other renderers like `Filter` are available via hooks like `useFilters`.\n  - If a function or component is passed instead of a string, it will be be passed the table instance and column model as props and is expected to return any valid JSX.\n- `getHeaderProps: Function(?props)`\n  - **Required**\n  - This function is used to resolve any props needed for this column's header cell.\n  - You can use the `getHeaderProps` hook to extend its functionality.\n  - Custom props may be passed. **NOTE: Custom props will override built-in table props, so be careful!**\n\n### `Row` Properties\n\nThe following additional properties are available on every `row` object returned by the table instance.\n\n- `cells: Array<Cell>`\n  - An array of `Cell` objects containing properties and functions specific to the row and column it belongs to.\n  - See [Cell Properties](#cell-properties) for more information\n- `values: Object<columnID: any>`\n  - A map of this row's **resolved** values by columnID, eg. `{ firstName: 'Tanner', lastName: 'Linsley' }`\n- `getRowProps: Function(?props)`\n  - **Required**\n  - This function is used to resolve any props needed for this row.\n  - You can use the `getRowProps` hook to extend its functionality.\n  - Custom props may be passed. **NOTE: Custom props will override built-in table props, so be careful!**\n\n### `Cell` Properties\n\nThe following additional properties are available on every `Cell` object returned in an array of `cells` on every row object.\n\n- `column: Column`\n  - The corresponding column object for this cell\n- `row: Row`\n  - The corresponding row object for this cell\n- `value: any`\n  - The **resolved** value for this cell.\n  - By default, this value is displayed on the table via the default `Cell` renderer. To override the way a cell displays\n- `getCellProps: Function(?props)`\n  - **Required**\n  - This function is used to resolve any props needed for this cell.\n  - You can use the `getCellProps` hook to extend its functionality.\n  - Custom props may be passed. **NOTE: Custom props will override built-in table props, so be careful!**\n- `render: Function(type: String | Function | Component, ?props)`\n  - This function is used to render content in context of a cell.\n  - If `type` is a string, will render using the `column[type]` renderer. React Table ships with a default `Cell` renderer. Other renderers like `Aggregated` are available via hooks like `useFilters`.\n  - If a function or component is passed instead of a string, it will be be passed the table instance and cell model as props and is expected to return any valid JSX.\n\n### Example\n\n```js\nfunction App() {\n  const columns = React.useMemo(\n    () => [\n      {\n        Header: 'Name',\n        columns: [\n          {\n            Header: 'First Name',\n            accessor: 'firstName',\n          },\n          {\n            Header: 'Last Name',\n            accessor: 'lastName',\n          },\n        ],\n      },\n    ],\n    []\n  )\n\n  const data = [\n    {\n      firstName: 'Tanner',\n      lastName: 'Linsley',\n    },\n    {\n      firstName: 'Shawn',\n      lastName: 'Wang',\n    },\n    {\n      firstName: 'Kent C.',\n      lastName: 'Dodds',\n    },\n    {\n      firstName: 'Ryan',\n      lastName: 'Florence',\n    },\n  ]\n\n  return <MyTable columns={columns} data={data} />\n}\n\nfunction MyTable({ columns, data }) {\n  const { getTableProps, headerGroups, rows, prepareRow } = useTable({\n    columns,\n    data,\n  })\n\n  return (\n    <table {...getTableProps()}>\n      <thead>\n        {headerGroups.map(headerGroup => (\n          <tr {...headerGroup.getRowProps()}>\n            {headerGroup.headers.map(column => (\n              <th {...column.getHeaderProps()}>{column.render('Header')}</th>\n            ))}\n          </tr>\n        ))}\n      </thead>\n      <tbody>\n        {rows.map(\n          (row, i) =>\n            prepareRow(row) || (\n              <tr {...row.getRowProps()}>\n                {row.cells.map(cell => {\n                  return <td {...cell.getCellProps()}>{cell.render('Cell')}</td>\n                })}\n              </tr>\n            )\n        )}\n      </tbody>\n    </table>\n  )\n}\n```\n\n## `useGroupBy`\n\n- Plugin Hook\n- Optional\n\n`useGroupBy` is the hook that implements **row grouping and aggregation**.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `state[0].groupBy: Array<String>`\n  - Must be **memoized**\n  - An array of groupBy ID strings, controlling which columns are used to calculate row grouping and aggregation. This information is stored in state since the table is allowed to manipulate the groupBy through user interaction.\n- `groupByFn: Function`\n  - Must be **memoized**\n  - Defaults to [`defaultGroupByFn`](TODO)\n  - This function is responsible for grouping rows based on the `state.groupBy` keys provided. It's very rare you would need to customize this function.\n- `manualGroupBy: Bool`\n  - Enables groupBy detection and functionality, but does not automatically perform row grouping.\n  - Turn this on if you wish to implement your own row grouping outside of the table (eg. server-side or manual row grouping/nesting)\n- `disableGrouping: Bool`\n  - Disables groupBy for the entire table.\n- `aggregations: Object<aggregationKey: aggregationFn>`\n  - Must be **memoized**\n  - Allows overriding or adding additional aggregation functions for use when grouping/aggregating row values. If an aggregation key isn't found on this object, it will default to using the [built-in aggregation functions](TODO)\n\n### `Instance` Properties\n\nThe following values are provided to the table `instance`:\n\n- `rows: Array<Row>`\n  - An array of **grouped and aggregated** rows.\n\n### Example\n\n```js\nconst state = useTableState({ groupBy: ['firstName'] })\n\nconst aggregations = React.useMemo(() => ({\n  customSum: (values, rows) => values.reduce((sum, next) => sum + next, 0),\n}))\n\nconst { rows } = useTable(\n  {\n    state, // state[0].groupBy === ['firstName']\n    manualGroupBy: false,\n    disableGrouping: false,\n    aggregations,\n  },\n  useGroupBy\n)\n```\n\n## `useFilters`\n\n- Plugin Hook\n- Optional\n\n`useFilters` is the hook that implements **row filtering**.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `state[0].filters: Object<columnID: filterValue>`\n  - Must be **memoized**\n  - An object of columnID's and their corresponding filter values. This information is stored in state since the table is allowed to manipulate the filter through user interaction.\n- `defaultFilter: String | Function`\n  - If a **function** is passed, it must be **memoized**\n  - Defaults to [`text`](TODO)\n  - The function (or resolved function from the string) will be used as the default/fallback filter method for every column that has filtering enabled.\n    - If a `string` is passed, the function with that name located on the `filterTypes` option object will be used.\n    - If a `function` is passed, it will be used.\n  - For mor information on filter types, see [Filtering](TODO)\n- `manualFilters: Bool`\n  - Enables filter detection functionality, but does not automatically perform row filtering.\n  - Turn this on if you wish to implement your own row filter outside of the table (eg. server-side or manual row grouping/nesting)\n- `disableFilters: Bool`\n  - Disables filtering for every column in the entire table.\n- `filterTypes: Object<filterKey: filterType>`\n  - Must be **memoized**\n  - Allows overriding or adding additional filter types for columns to use. If a column's filter type isn't found on this object, it will default to using the [built-in filter types](TODO).\n  - For mor information on filter types, see [Filtering](TODO)\n\n### `Instance` Properties\n\nThe following values are provided to the table `instance`:\n\n- `rows: Array<Row>`\n  - An array of **filtered** rows.\n- `preFilteredRows: Array<Row>`\n  - The array of rows **used right before filtering**.\n  - Among many other use-cases, these rows are directly useful for building option lists in filters, since the resulting filtered `rows` do not contain every possible option.\n- `setFilter: Function(columnID, filterValue) => void`\n  - An instance-level function used to update the filter value for a specific column.\n- `setAllFilters: Function(filtersObject) => void`\n  - An instance-level function used to update the values for **all** filters on the table, all at once.\n\n### Example\n\n```js\n// A great library for fuzzy filtering/sorting items\nimport matchSorter from 'match-sorter'\n\nconst state = useTableState({ filters: { firstName: 'tanner' } })\n\nconst filterTypes = React.useMemo(() => ({\n  // Add a new fuzzyText filter type.\n  fuzzyText: (rows, id, filterValue) => {\n    return matchSorter(rows, filterValue, { keys: [row => row[id] })\n  },\n  // Or, override the default text filter to use\n  // \"startWith\"\n  text: (rows, id, filterValue) => {\n    return rows.filter(row => {\n      const rowValue = row.values[id]\n      return rowValue !== undefined\n        ? String(rowValue)\n            .toLowerCase()\n            .startsWith(String(filterValue).toLowerCase())\n        : true\n    })\n  }\n}), [matchSorter])\n\n// Override the default column filter to be our new `fuzzyText` filter type\nconst defaultColumn = React.useMemo(() => ({\n  filter: 'fuzzyText'\n}))\n\nconst { rows } = useTable(\n  {\n    // state[0].groupBy === ['firstName']\n    state,\n    manualFilters: false,\n    disableFilters: false,\n    // Pass our custom filter types\n    filterTypes,\n    defaultColumn\n  },\n  useFilters\n)\n```\n\n## `useSortBy`\n\n- Plugin Hook\n- Optional\n\n`useSortBy` is the hook that implements **row sorting**. It also support multi-sort (keyboard required).\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `state[0].sortBy: Array<Object<id: columnID, desc: Bool>>`\n  - Must be **memoized**\n  - An array of sorting objects. If there is more than one object in the array, multi-sorting will be enabled. Each sorting object should contain an `id` key with the corresponding column ID to sort by. An optional `desc` key may be set to true or false to indicated ascending or descending sorting for that column. This information is stored in state since the table is allowed to manipulate the filter through user interaction.\n- `defaultSortType: String | Function`\n  - If a **function** is passed, it must be **memoized**\n  - Defaults to [`alphanumeric`](TODO)\n  - The function (or resolved function from the string) will be used as the default/fallback sort method for every column that has sorting enabled.\n    - If a `string` is passed, the function with that name located on the `sortTypes` option object will be used.\n    - If a `function` is passed, it will be used.\n  - For mor information on sort types, see [Sorting](TODO)\n- `manualSorting: Bool`\n  - Enables sorting detection functionality, but does not automatically perform row sorting. Turn this on if you wish to implement your own sorting outside of the table (eg. server-side or manual row grouping/nesting)\n- `disableSorting: Bool`\n  - Disables sorting for every column in the entire table.\n- `disableMultiSort: Bool`\n  - Disables multi-sorting for the entire table.\n- `defaultSortDesc: Bool`\n  - If true, the first default direction for sorting will be descending. This may also be overridden at the column level.\n- `disableSortRemove: Bool`\n  - If true, the un-sorted state will not be available to columns once they have been sorted.\n- `disableMultiRemove: Bool`\n  - If true, the un-sorted state will not be available to multi-sorted columns.\n- `orderByFn: Function`\n  - Must be **memoizd**\n  - Defaults to the built-in [default orderBy function](TODO)\n  - This function is responsible for composing multiple sorting functions together for multi-sorting, and also handles both the directional sorting and stable-sorting tie breaking. Rarely would you want to override this function unless you have a very advanced use-case that requires it.\n- `sortTypes: Object<sortKey: sortType>`\n  - Must be **memoized**\n  - Allows overriding or adding additional sort types for columns to use. If a column's sort type isn't found on this object, it will default to using the [built-in sort types](TODO).\n  - For mor information on sort types, see [Sorting](TODO)\n\n### Instance Variables\n\nThe following values are provided to the table `instance`:\n\n- `rows: Array<Row>`\n  - An array of **sorted** rows.\n\n### Example\n\n```js\nconst state = useTableState({ sortBy: [{ id: 'firstName', desc: true }] })\n\nconst { rows } = useTable(\n  {\n    // state[0].sortBy === [{ id: 'firstName', desc: true }]\n    state,\n  },\n  useSortBy\n)\n```\n\n## `useExpanded`\n\n- Plugin Hook\n- Optional\n\n`useExpanded` is the hook that implements **row expanding**. It is most often used with `useGroupBy` to expand grouped rows, but is not limited to that use-case. It supports expanding rows both via internal table state and also via a hard-coded key on the raw row model.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `state[0].expanded: Object<[pathIndex]: Boolean | ExpandedStateObject>`\n  - Must be **memoized**\n  - An nested object of expanded paths.\n  - A `pathIndex` can be set as the key and its value set to `true` to expand that row's subRows into view. For example, if `{ '3': true }` was passed as the `expanded` state, the **4th row in the original data array** would be expanded.\n  - For nested expansion, you may **use another object** instead of a Boolean to expand sub rows. For example, if `{ '3': { '5' : true }}` was passed as the `expanded` state, then the **6th subRow of the 4th row and the 4th row of the original data array** would be expanded.\n  - This information is stored in state since the table is allowed to manipulate the filter through user interaction.\n- `subRowsKey: String`\n  - Required\n  - Defaults to `subRows`\n  - React Table will use this key when materializing the final row object. It also uses this key to infer sub-rows from the raw data.\n  - See [Grouping and Aggregation](#grouping-and-aggregation) for more information\n- `paginateSubRows: Bool`\n  - Defaults to `true`\n  - If set to `false`, expanded rows will not be paginated. Thus, any expanded subrows would potentially increase the size of any given page by the amount of total expanded subrows on the page.\n- `manualExpandedKey: String`\n  - Defaults to `expanded`\n  - This string is used as the key to detect manual expanded state on any given row. For example, if a raw data row like `{ name: 'Tanner Linsley', friends: [...], expanded: true}` was detected, it would be forcibly expanded, regardless of state.\n\n### Instance Variables\n\nThe following values are provided to the table `instance`:\n\n- `rows: Array<Row>`\n  - An array of **sorted** rows.\n\n### Example\n\n```js\nconst state = useTableState({ expanded: { '3': true, '5': { '2': true } } })\n\nconst { rows } = useTable(\n  {\n    // state[0].sortBy === { '3': true, '5': { '2': true } }\n    state,\n  },\n  useExpanded\n)\n```\n\n## `usePagination`\n\n- Plugin Hook\n- Optional\n\n`usePagination` is the hook that implements **row pagination**. It can be used for both client-side pagination or server-side pagination. For more information on pagination, see [Pagination](TODO)\n\n> **NOTE** Some server-side pagination implementations do not use page index and instead use **token based pagination**! If that's the case, please use the `useTokenPagination` plugin instead.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `state[0].pageSize: Int`\n  - **Required**\n  - Defaults to `10`\n  - Determines the amount of rows on any given page\n- `state[0].pageIndex: Int`\n  - **Required**\n  - Defaults to `0`\n  - The index of the page that should be displayed via the `page` instance value\n- `pageCount: Int`\n  - **Required if `manualPagination` is set to `true`**\n  - If `manualPagination` is `true`, then this value used to determine the amount of pages available. This amount is then used to materialize the `pageOptions` and also compute the `canNextPage` values on the table instance.\n- `manualPagination: Bool`\n  - Enables pagination functionality, but does not automatically perform row pagination.\n  - Turn this on if you wish to implement your own pagination outside of the table (eg. server-side pagination or any other manual pagination technique)\n- `disablePageResetOnDataChange`\n  - Defaults to `false`\n  - Normally, any changes detected to `rows`, `state.filters`, `state.groupBy`, or `state.sortBy` will trigger the `pageIndex` to be reset to `0`\n  - If set to `true`, the `pageIndex` will not be automatically set to `0` when these dependencies change.\n\n### Instance Variables\n\nThe following values are provided to the table `instance`:\n\n- `pages: Array<page>`\n  - An array of every generated `page`, each containing its respective rows.\n- `page: Array<row>`\n  - An array of rows for the **current** page, determined by the current `pageIndex` value.\n- `pageCount: Int`\n  - If `manualPagination` is set to `false`, this is the total amount of pages available in the table based on the current `pageSize` value\n  - if `manualPagination` is set to `true`, this is merely the same `pageCount` option that was passed in the table options.\n- `pageOptions: Array<Int>`\n  - An array of zero-based index integers corresponding to available pages in the table.\n  - This can be useful for generating things like select interfaces for the user to select a page from a list, instead of manually paginating to the desired page.\n- `canPreviousPage: Bool`\n  - If there are pages and the current `pageIndex` is greater than `0`, this will be `true`\n- `canNextPage:`\n  - If there are pages and the current `pageIndex` is less than `pageCount`, this will be `true`\n- `gotoPage: Function(pageIndex)`\n  - This function, when called with a valid `pageIndex`, will set `pageIndex` to that value.\n  - If the passed index is outside of the valid `pageIndex` range, then this function will do nothing.\n- `previousPage: Function`\n  - This function decreases `state.pageIndex` by one.\n  - If there are no pages or `canPreviousPage` is false, this function will do nothing.\n- `nextPage: Function`\n  - This function increases `state.pageIndex` by one.\n  - If there are no pages or `canNextPage` is false, this function will do nothing.\n- `setPageSize: Function(pageSize)`\n  - This function sets `state.pageSize` to the new value.\n  - As a result of a pageSize change, a new `state.pageIndex` is also calculated. It is calculated via `Math.floor(currentTopRowIndex / newPageSize)`\n- `pageIndex: Int`\n  - This is the resolved `state.pageIndex` value.\n- `pageSize: Int`\n  - This is the resolved `state.pageSize` value.\n\n### Example\n\n```js\nconst state = useTableState({ pageSize: 20, pageIndex: 1 })\n\nconst { rows } = useTable(\n  {\n    // state[0] === { pageSize: 20, pageIndex: 1 }\n    state,\n  },\n  usePagination\n)\n```\n\n## `useTokenPagination`\n\n- Plugin Hook\n- Optional\n\n`useTokenPagination` is the hook that **aids in implementing row pagination using tokens**. It is useful for server-side pagination implementations that use **tokens** instead of page index. For more information on pagination, see [Pagination](TODO)\n\n> Documentation Coming Soon...\n\n## `useTableState`\n\n- Optional\n\n`useTableState` is a hook that allows you to hoist the table state out of the table into your own code. You should use this hook if you need to:\n\n- Know about the internal table state\n- React to changes to the internal table state\n- Manually control or override the internal table state\n\nSome common use cases for this hook are:\n\n- Reacting to `pageIndex` and `pageSize` changes for server-side pagination to fetch new data\n- Disallowing specific states via a custom state reducer\n- Enabling parent/unrelated components to manipulate the table state\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `initialState: Object`\n  - Optional\n  - The initial state object for the table.\n  - This object is **merged over the `defaultState` object** (eg. `{...defaultState, ...initialState}`) that React Table and its hooks use to register default state to produce the final initial state object passed to the resolved `useState` hook.\n- `overrides: Object`\n  - Optional\n  - Must be **memoized**\n  - This object is **merged over the current table state** (eg. `{...state, ...overrides}`) to produce the final state object that is then passed to the `useTable` options\n- `options: Object`\n  - `reducer: Function(oldState, newState) => finalState`\n    - Optional\n    - Inspired by Kent C. Dodd's [State Reducer Pattern](https://kentcdodds.com/blog/the-state-reducer-pattern-with-react-hooks)\n    - With every `setState` call to a table state (even internally), this reducer is called and is allowed to modify the final state object for updating.\n    - It is passed the `oldState`, the `newState`, and an action `type`.\n  - `useState`\n    - Optional\n    - Defaults to `React.useState`\n    - This function, if defined will be used as the state hook internally instead of the default `React.useState`. This can be useful for implementing custom state storage hooks like useLocalStorage, etc.\n\n### Instance Variables\n\n- `tableStateTuple: [tableState, setTableState]`\n  - Similar in structure to the result of `React.useState`\n  - **Memoized**. This tuple array will not change between renders unless state or `useTableState` options change.\n  - `tableState: Object`\n    - This is the final state object of the table, which is the product of the `initialState`, `overrides` and the `reducer` options (if applicable)\n  - `setTableState: Function(updater, type) => void`\n    - This function is used both internally by React Table, and optionally by you (the developer) to update the table state programmatically.\n    - `updater: Function`\n      - This function signature is **almost** (see next point) identical to the functional API exposed by `React.setState`. It is passed the previous state and is expected to return a new version of the state.\n      - **NOTE: `updater` must be a function. Passing a replacement object is not supported as it is with React.useState**\n    - `type: String`\n      - The [action type](TODO) corresponding to what action being taken against the state.\n\n### Example\n\n```js\nexport default function MyTable({ manualPageIndex }) {\n  // This is the initial state for our table\n  const initialState = { pageSize: 10, pageIndex: 0 }\n\n  // Here, we can override the pageIndex\n  // regardless of the internal table state\n  const overrides = React.useMemo(() => ({\n    pageIndex: manualPageIndex,\n  }))\n\n  const state = useTableState(initialState, overrides)\n\n  // You can use effects to observe changes to the state\n  React.useEffect(() => {\n    console.log('Page Size Changed!', initialState.pageSize)\n  }, [initialState.pageSize])\n\n  const { rows } = useTable({\n    state,\n  })\n}\n```\n\n<!-- # Guides\n\n## Client Side Pagination\n\nTo add client side pagination, use the `usePagination` hook:\n\n```diff\n// Import React\nimport React from 'react'\n\n// Import React Table\nimport {\n  useTable,\n  useGroupBy,\n  useFilters,\n  useSortBy,\n  useExpanded,\n+  usePagination,\n} from 'react-table'\n\n// Create a component to render your table\nfunction MyTable(props) {\n  // Use the useTable hook to create your table configuration\n  const instance = useTable(\n    props,\n    useGroupBy,\n    useFilters,\n    useSortBy,\n    useExpanded,\n+   usePagination,\n  )\n\n  // Use the state and functions returned from useTable to build your UI\n  const {\n    getTableProps,\n    headerGroups,\n    rows,\n    getRowProps,\n    prepareRow,\n+   pageOptions,\n+   page,\n+   state: [{ pageIndex, pageSize }],\n+   gotoPage,\n+   previousPage,\n+   nextPage,\n+   setPageSize,\n+   canPreviousPage,\n+   canNextPage,\n  } = instance\n\n  // Render the UI for your table\n  return (\n    <div>\n      <table {...getTableProps()}>\n        ...\n      </table>\n+     <div>\n+       <button onClick={() => previousPage()} disabled={!canPreviousPage}>\n+         Previous Page\n+       </button>\n+       <button onClick={() => nextPage()} disabled={!canNextPage}>\n+         Next Page\n+       </button>\n+       <div>\n+         Page{' '}\n+         <em>\n+           {pageIndex + 1} of {pageOptions.length}\n+         </em>\n+       </div>\n+       <div>Go to page:</div>\n+       <input\n+         type=\"number\"\n+         defaultValue={pageIndex + 1 || 1}\n+         onChange={e => {\n+           const page = e.target.value ? Number(e.target.value) - 1 : 0\n+           gotoPage(page)\n+         }}\n+       />\n+       <select\n+         value={pageSize}\n+         onChange={e => {\n+           setPageSize(Number(e.target.value))\n+         }}\n+       >\n+         {pageSizeOptions.map(pageSize => (\n+           <option key={pageSize} value={pageSize}>\n+             Show {pageSize}\n+           </option>\n+         ))}\n+       </select>\n+     </div>\n    </div>\n  )\n}\n```\n\n## Server Side Pagination\n\nTo implement server-side pagination, use the `useTableState` and `usePagination` hooks:\n\n```diff\n\n``` -->\n\n<!-- # Setup\n\nTo begin using React Table you will need to start with a UI to render it. Below is a very basic component that should serve as a good starting point for most projects:\n\n```js\n// Import React\nimport React from 'react'\n\n// Import React Table\nimport {\n  useTable,\n  useGroupBy,\n  useFilters,\n  useSortBy,\n  useExpanded,\n  usePagination,\n} from 'react-table'\n\n// Create a component to render your table\nexport default function MyTable(props) {\n  // Use the useTable hook to create your table configuration\n  const instance = useTable(\n    props,\n    useGroupBy,\n    useFilters,\n    useSortBy,\n    useExpanded,\n    usePagination\n  )\n\n  // Use the state and functions returned from useTable to build your UI\n  const {\n    getTableProps,\n    headerGroups,\n    rows,\n    getRowProps,\n    pageOptions,\n    page,\n    state: [{ pageIndex, pageSize }],\n    gotoPage,\n    prepareRow,\n    previousPage,\n    nextPage,\n    setPageSize,\n    canPreviousPage,\n    canNextPage,\n  } = instance\n\n  // Render the UI for your table\n  return (\n    <div>\n      <table {...getTableProps()}>\n        <thead>\n          {headerGroups.map(headerGroup => (\n            <tr {...headerGroup.getRowProps()}>\n              {headerGroup.headers.map(column => (\n                <th {...column.getHeaderProps()}>{column.render('Header')}</th>\n              ))}\n            </tr>\n          ))}\n        </thead>\n        <tbody>\n          {page.map(\n            (row, i) =>\n              prepareRow(row) || (\n                <tr {...row.getRowProps()}>\n                  {row.cells.map(cell => {\n                    return (\n                      <td {...cell.getCellProps()}>{cell.render('Cell')}</td>\n                    )\n                  })}\n                </tr>\n              )\n          )}\n        </tbody>\n      </table>\n      <div>\n        <button onClick={() => previousPage()} disabled={!canPreviousPage}>\n          Previous Page\n        </button>\n        <button onClick={() => nextPage()} disabled={!canNextPage}>\n          Next Page\n        </button>\n        <div>\n          Page{' '}\n          <em>\n            {pageIndex + 1} of {pageOptions.length}\n          </em>\n        </div>\n        <div>Go to page:</div>\n        <input\n          type=\"number\"\n          defaultValue={pageIndex + 1 || 1}\n          onChange={e => {\n            const page = e.target.value ? Number(e.target.value) - 1 : 0\n            gotoPage(page)\n          }}\n        />\n        <select\n          value={pageSize}\n          onChange={e => {\n            setPageSize(Number(e.target.value))\n          }}\n        >\n          {pageSizeOptions.map(pageSize => (\n            <option key={pageSize} value={pageSize}>\n              Show {pageSize}\n            </option>\n          ))}\n        </select>\n      </div>\n    </div>\n  )\n}\n```\n\nYou can then use your table like so:\n\n```js\n\nimport MyTable from './MyTable'\n\nfunction MyApp () {\n  const columns = React.useMemo(() => [{\n    Header: \"Name\",\n    columns: [\n      {\n        Header: \"First Name\",\n        accessor: \"firstName\",\n      },\n      {\n        Header: \"Last Name\",\n        accessor: \"lastName\",\n      }\n    ]\n  }], [])\n\n  const data = [{\n    firstName: 'Tanner',\n    lastName: 'Linsley'\n  }, {\n    firstName: 'Shawn',\n    lastName: 'Wang'\n  }, {\n    firstName: 'Kent C.',\n    lastName: 'Dodds'\n  }, {\n    firstName: 'Ryan',\n    lastName: 'Florence'\n  }]\n\n  return <MyTable columns={columns} data={data} />\n``` -->\n\n## Contributing\n\nTo suggest a feature, create an issue if it does not already exist.\nIf you would like to help develop a suggested feature follow these steps:\n\n- Fork this repo\n- Install dependencies with `$ yarn`\n- Auto-build files as you edit with `$ yarn run watch`\n- Implement your changes to files in the `src/` directory\n- Run the <a href=\"https://github.com/tannerlinsley/react-story\">React Story</a> locally with `$ yarn run docs`\n- View changes as you edit `docs/src`\n- Submit PR for review\n\n#### Package Utilities\n\n- `$ yarn run watch` Watches files and builds via babel\n- `$ yarn run docs` Runs the storybook server\n- `$ yarn run test` Runs the test suite\n","licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.0-alpha.9","dist":{"shasum":"1e7372d003a5af6e6ee5718b5105b741b70a9c02","integrity":"sha512-fDNPlsXhw6aMtji1k3WjlIKiy+gkfsLC6i2Uc0qBKjxC1zPsx0N5CMxw7JeK55K3avwyKNEwRfsfrIk7lsIXww==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.0-alpha.9.tgz","fileCount":97,"unpackedSize":1611961,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdOyshCRA9TVsSAnZWagAA3DMP/19vrBkvLcC5HRJvnEHo\nar+aAgD4f42SXfOxTRkq3+gW4ALDdjP28NeLHWfTsnbqIE9TpnLtW4ssHtk1\nwQTsrzHz3fVR/Ct3pMLbft5DtUX7Rrgm6D/Ymg5uuJFxpMbvFkGIJ8eKG/It\n/ad9Ug89U5r3lLzuIKCxuIEeSxMVfO9ae/bKQHPAQ6iRq+cVCL3L5chYA12H\nYAoQYvOgLUR2JnAsu11b0ZgJxi8iLuAMGGTcsmhvTn7rxuavncZfjwPRaGwm\n06nrr+XK3gXMtKQRcZJcHNfZVe25Br0/B6uoj0Nv7VcM0rguYSZ7y1B8Bm5w\n2wtzZi4qaMaQejxRFEBXlurnsFZr33aL4Ns8YxmbtLq+JQFammcOjRh32FTC\nHp0cfqeNOVqJpQCFwyKIzgUUwxcie9uzM3NV2SVlaxvGhwRIDrEn1DV2STw8\n76P2cBu5zrqszAay+YSbz5frq42bVooe1GHF0j/Ie15RxYRO4o96nbWq+7yd\nTAVl9pidmK8z/xeoyQBmM35c+7eg0vl6COVJZLWy4EEQsfzsUvu0IRaRVtH/\nEY2W4OxmgraMUeZw56I3HnRZrgN5b1ZY5JBZStPB99cUDqHB2WeNTq+rh0Rf\n1e4ptcMkiiA25LBMvGlM3o8o+58uqWTn8VXkn9bVghuflZhf/fgAM8ao43HC\n5BQb\r\n=B4aJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDRsTuLMA+BtvC4opjhZPDPHTrC2BAx8vZAdXvTmWbrPAIhAISuYlUEZj48rRS3uPlhs9+myVOhEQ2g6rQHeei8+0mR"}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.0-alpha.9_1564158753028_0.24080063168444754"},"_hasShrinkwrap":false},"7.0.0-alpha.10":{"name":"react-table","version":"7.0.0-alpha.10","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"dist/index.js","module":"dist/index.es.js","jsnext:main":"dist/index.es.js","scripts":{"commit":"git commit","test":"is-ci 'test:ci' 'test:dev'","test:dev":"jest --watch","test:ci":"jest","build":"rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next"},"peerDependencies":{"prop-types":"^15.5.0","react":"^16.8.3","react-dom":"^16.8.3"},"devDependencies":{"@babel/plugin-proposal-class-properties":"^7.2.1","@babel/preset-env":"^7.2.0","@babel/preset-react":"^7.0.0","@babel/runtime":"^7.2.0","@svgr/rollup":"^4.1.0","@testing-library/react":"^8.0.4","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","commitizen":"^4.0.3","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^8.0.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.0.0","eslint-plugin-react":"7.x","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","husky":"^3.0.1","is-ci-cli":"^1.1.1","jest":"^24.8.0","jest-cli":"^24.8.0","jest-runner-eslint":"^0.7.4","jest-watch-select-projects":"^0.1.2","jest-watch-typeahead":"^0.3.1","lint-staged":"^9.2.1","rollup":"^0.68.0","rollup-plugin-babel":"^4.1.0","rollup-plugin-commonjs":"^9.1.3","rollup-plugin-node-resolve":"^4.0.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-uglify":"^6.0.2"},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"readmeFilename":"README.md","readme":"# React Table\n\nHooks for building **lightweight, fast and extendable datagrids** for React\n\n<a href=\"https://travis-ci.org/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://travis-ci.org/tannerlinsley/react-table.svg?branch=master\" />\n</a>\n<a href=\"https://npmjs.com/package/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-table.svg\" />\n</a>\n<a href=\"https://spectrum.chat/react-table\">\n  <img alt=\"Join the community on Spectrum\" src=\"https://withspectrum.github.io/badge/badge.svg\" />\n</a>\n<a href=\"https://github.com/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-table.svg?style=social&label=Star\" />\n</a>\n<a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n\n<br />\n<br />\n\n## Features\n\n- Lightweight\n- Headless (100% customizable, Bring-your-own-UI)\n- Client-side & Server-side pagination support\n- Sorting (Multi and Stable)\n- Filters\n- Pivoting & Aggregation\n- Fully controllable\n- Extensible via hooks\n- <a href=\"https://medium.com/@tannerlinsley/why-i-wrote-react-table-and-the-problems-it-has-solved-for-nozzle-others-445c4e93d4a8#.axza4ixba\" target=\"\\_parent\">\"Why I wrote React Table and the problems it has solved for Nozzle.io\"</a> by Tanner Linsley\n\n## Demos\n\n[React Table v7 Sandbox](https://codesandbox.io/s/m5lxzzpz69)\n\n## Versions\n\n- This documentation is for version 7.\n- [View the Changelog](https://github.com/tannerlinsley/react-table/blob/master/CHANGELOG.md)\n- Previous versions:\n  - [6.x.x Readme](https://github.com/tannerlinsley/react-table/tree/v6/)\n  - [5.x.x Readme](https://github.com/tannerlinsley/react-table/blob/ad7d31cd3978eb45da7c6194dbab93c1e9a8594d/README.md)\n\n## Sponsors\n\n**React Table v7** is being built and maintained by me, @tannerlinsley and I am always in need of more Patreon support to keep this project afloat. If you would like to contribute to my Patreon goal for v7 and beyond, [visit my Patreon and help me out!](https://patreon.com/tannerlinsley).\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/platinum.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://tryretool.com/?utm_source=sponsor&utm_campaign=react_table\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-retool.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/platinum-placeholder.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/gold.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://nozzle.io\" target=\"_blank\">\n          <img width=\"300\" src=\"https://nozzle.io/img/logo-blue.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://zappi.com/web\" target=\"_blank\">\n          <img width=\"300\" src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-zappi.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/gold-placeholder.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n# Documentation\n\n- [Installation](#installation)\n- [Concepts](#concepts)\n- [Setup](#setup)\n- [Contributing](#contributing)\n\n# Installation\n\nInstall React Table as a dependency using `npm` or `yarn`\n\n```bash\n# NPM\n$ npm install react-table\n\n# Yarn\n$ yarn add react-table\n```\n\nTo import React Table:\n\n```js\nimport {\n  useTable,\n  useGroupBy,\n  useFilters,\n  useSortBy,\n  useExpanded,\n  usePagination,\n  ...\n} from 'react-table'\n```\n\n# Examples\n\n- [Basic](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/master/examples/basic)\n- [Sorting with `useSortBy`](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/master/examples/sorting-with-useSortBy)\n- [Filtering with `useFilters`](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/master/examples/filtering-with-useFilters)\n\n# Concepts\n\n## React Table is a \"headless\" library\n\nReact Table is a headless utility, which means out of the box, it doesn't render or supply any actual UI elements. You are in charge of utilizing the state and callbacks of the hooks provided by this library to render your own table markup. [Read this article to understand why React Table is built this way.](https://medium.com/merrickchristensen/headless-user-interface-components-565b0c0f2e18). If you don't want to, then here's a quick rundown anyway:\n\n- Separation of Concerns - Not that superficial kind you read about all the time. The real kind. React Table as a library honestly has no business being in charge of your UI. The look, feel, and overall experience of your table is what makes your app or product great. The less React Table gets in the way of that, the better!\n- Maintenance - By removing the massive (and seemingly endless) API surface area required to support every UI use-case, React Table can remain small, easy-to-use and simple to update/maintain.\n- Extensibility - UI presents countless edge cases for a library simply because it's a creative medium, and one where every developer does things differently. By not dictating UI concerns, React Table empowers the developer to design and extend the UI based on their unique use-case.\n\n## The React Table API\n\nAt the heart of every React Table is a table `instance` object. This object contains everything needed to build a table and interact with it's state. This includes, but is not limited to:\n\n- Columns\n- Materialized Data\n- Sorting\n- Filtering\n- Grouping\n- Pagination\n- Expanded State\n- Any functionality provided by custom plugin hooks, too!\n\n## Using Hooks for configuration, state and lifecycle\n\nReact Table uses React Hooks both internally and externally for 100% of its configuration and lifecycle management. Naturally, this is what allows React Table to be headless and lightweight while still having a concise and simple API.\n\nReact Table is essentially a compatible collection of **custom React hooks**:\n\n- The primary React Table hook\n  - [`useTable`](#usetable)\n- Plugin Hooks\n  - Core Plugin Hooks\n    - [`useTableState`](#useTableState)\n    - [`useGroupBy`](#useGroupBy)\n    - [`useFilters`](#useFilters)\n    - [`useSortBy`](#useSortBy)\n    - [`useExpanded`](#useExpanded)\n    - [`usePagination`](#usePagination)\n    - [`useTokenPagination`](#useTokenPagination)\n  - Layout Plugin Hooks\n    - [`useFlexLayout`](#useFlexLayout)\n    - [`useAbsoluteLayout`](#useAbsoluteLayout) (coming soon!)\n- Custom Plugin Hooks\n  - Get your custom plugin hook listed here!\n\n### Hook Usage\n\n`useTable` is the **primary** hook used to build a React Table. It serves as the starting point for **every option and every plugin hook** that React Table supports. The options passed into `useTable` are supplied to every plugin hook after it in the order they are supplied, eventually resulting a final `instance` object that you can use to build your table UI and interact with the table's state.\n\n```js\nconst instance = useTable(\n  {\n    data: [...],\n    columns: [...],\n  },\n  useGroupBy,\n  useFilters,\n  useSortBy,\n  useExpanded,\n  usePagination\n)\n```\n\n### The stages of a React Table\n\n1. `useTable` is called. A table instance is created.\n1. The `instance.state` is resolved from either a custom user state or an automatically generated one.\n1. A collection of plugin points is created at `instance.hooks`. These plugin points don't run until after all of the plugins have run.\n1. The instance is reduced through each plugin hook in the order they were called. Each hook receives the result of the previous hook, is able to manipulate the `instance`, use plugin points, use their own React hooks internally and eventually return a new `instance`. This happens until the last instance object is returned from the last hook.\n1. Lastly, the plugin points that were registered and populated during hook reduction are run to produce the final instance object that is returned from `useTable`\n\nThis multi-stage process is the secret sauce that allows React Table plugin hooks to work together and compose nicely, while not stepping on each others toes.\n\n### Plugin Hook Order & Consistency\n\nThe order and usage of plugin hooks must follow [The Laws of Hooks](TODO), just like any other custom hook. They must always be unconditionally called in the same order.\n\n> **NOTE: In the event that you want to programmatically enable or disable plugin hooks, most of them provide options to disable their functionality, eg. `options.disableSorting`**\n\n### Option Memoization\n\nReact Table relies on memoization to determine when state and side effects should update or be calculated. This means that every option you pass to `useTable` should be memoized either via `React.useMemo` (for objects) or `React.useCallback` (for functions).\n\n# API\n\n## `useTable`\n\n- Required\n\n`useTable` is the root hook for React Table. To use it, pass it with an options object with at least a `columns` and `rows` value, followed by any React Table compatible hooks you want to use.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `columns: Array<Column>`\n  - Required\n  - Must be **memoized**\n  - The core columns configuration object for the entire table.\n  - Supports nested `columns` arrays via the `column.children` key\n- `data: Array<any>`\n  - Required\n  - Must be **memoized**\n  - The data array that you want to display on the table.\n- `state: TableStateTuple[stateObject, stateUpdater]`\n  - Optional\n  - Must be **memoized** table state tuple. See [`useTableState`](#usetablestate) for more information.\n  - The state/updater pair for the table instance. You would want to override this if you plan on controlling or hoisting table state into your own code.\n  - Defaults to using an internal `useTableState()` instance if not defined.\n  - See [Controlling and Hoisting Table State](#controlling-and-hoisting-table-state)\n- `defaultColumn: Object`\n  - Optional\n  - Defaults to `{}`\n  - The default column object for every column passed to React Table.\n  - Column-specific properties will override the properties in this object, eg. `{ ...defaultColumn, ...userColumn }`\n  - This is particularly useful for adding global column properties. For instance, when using the `useFilters` plugin hook, add a default `Filter` renderer for every column, eg.`{ Filter: MyDefaultFilterComponent }`\n- `useColumns: Function`\n  - Optional\n  - This hook overrides the internal `useColumns` hooks used by `useTable`. You probably never want to override this unless you are testing or developing new features for React Table\n- `useRows: Function`\n  - Optional\n  - This hook overrides the internal `useRows` hooks used by `useTable`. You probably never want to override this unless you are testing or developing new features for React Table\n- `debug: Bool`\n  - Optional\n  - A flag to turn on debug mode.\n  - Defaults to `false`\n\n### `column` Options\n\nThe following options are supported on any column object you can pass to `columns`.\n\n- `accessor: String | Function`\n  - **Required**\n  - This string/function is used to build the data model for your column.\n  - The data returned by an accessor should be **primitive** and sortable.\n  - If a string is passed, the column's value will be looked up on the original row via that key, eg. If your column's accessor is `firstName` then its value would be read from `row['firstName']`. You can also specify deeply nested values with accessors like `info.hobbies` or even `address[0].street`\n  - If a function is passed, the column's value will be looked up on the original row using this accessor function, eg. If your column's accessor is `row => row.firstName`, then its value would be determined by passing the row to this function and using the resulting value.\n- `id: String`\n  - **Required if `accessor` is a function**\n  - This is the unique ID for the column. It is used by reference in things like sorting, grouping, filtering etc.\n  - If a **string** accessor is used, it defaults as the column ID, but can be overridden if necessary.\n- `columns: Array<Column>`\n  - Optional\n  - A nested array of columns.\n  - If defined, the column will act as a header group. Columns can be recursively nested as much as needed.\n- `show: Boolean | Function`\n  - Optional\n  - Defaults to `true`\n  - If set to `false`, the column will be hidden.\n  - If set to a `function`, it will be called with the current table instance and can then return `true` or `false`.\n  - The data model for hidden columns is still calculated including sorting, filters, and grouping.\n- `Header: String | Function | React.Component => JSX`\n  - Optional\n  - Defaults to `({ id }) => id`\n  - Receives the table instance and column model as props\n  - Must either be a **string or return valid JSX**\n  - If a function/component is passed, it will be used for formatting the header value, eg. You can use a `Header` function to dynamically format the header using any table or column state.\n- `Cell: Function | React.Component => JSX`\n  - Optional\n  - Defaults to `({ value }) => value`\n  - Receives the table instance and cell model as props\n  - Must return valid JSX\n  - This function (or component) is primarily used for formatting the column value, eg. If your column accessor returns a date object, you can use a `Cell` function to format that date to a readable format.\n\n### `Instance` Properties\n\nThe following properties are available on the table instance returned from `useTable`\n\n- `headerGroups: Array<HeaderGroup>`\n  - An array of normalized header groups, each containing a flattened array of final column objects for that row.\n  - See [Header Group Properties](#header-group-properties) for more information\n- `columns: Array<Column>`\n  - A **flat** array of all final column objects computed from the original columns configuration option.\n  - See [Column Properties](#column-properties) for more information\n- `headers[] Array<Column>`\n  - A **nested** array of final column objects, similar in structure to the original columns configuration option.\n  - See [Column Properties](#column-properties) for more information\n- `rows: Array<Row>`\n  - An array of **materialized row objects** from theriginal `dat oa` array and `columns` passed into the table options\n  - See [Row Properties](#row-properties) for more information\n- `getTableProps: Function(?props)`\n  - **Required**\n  - This function is used to resolve any props needed for your table wrapper.\n  - Custom props may be passed. **NOTE: Custom props will override built-in table props, so be careful!**\n- `prepareRow: Function(Row)`\n  - **Required**\n  - This function is responsible for lazily preparing a row for rendering. Any row that you intend to render in your table needs to be passed to this function **before every render**.\n  - **Why?** Since table data could potentially be very large, it can become very expensive to compute all of the necessary state for every row to be rendered regardless if it actually is rendered or not (for example if you are paginating or virtualizing the rows, you may only have a few rows visible at any given moment). This function allows only the rows you intend to display to be computed and prepped with the correct state.\n\n### `HeaderGroup` Properties\n\nHeader Groups are The following additional properties are available on every `headerGroup` object returned by the table instance.\n\n- `headers: Array<Column>`\n  - **Required**\n  - The columns in this header group.\n- `getHeaderGroupProps: Function(?props)`\n  - **Required**\n  - This function is used to resolve any props needed for this header group's row.\n  - You can use the `getHeaderGroupProps` hook to extend its functionality.\n  - Custom props may be passed. **NOTE: Custom props will override built-in table props, so be careful!**\n\n### `Column` Properties\n\nThe following properties are available on every `Column` object returned by the table instance.\n\n- `id: String`\n  - The resolved column ID from either the column's `accessor` or the column's hard-coded `id` property\n- `visible: Boolean`\n  - The resolved visible state for the column, derived from the column's `show` property\n- `render: Function(type: String | Function | Component, ?props)`\n  - This function is used to render content in context of a column.\n  - If `type` is a string, will render using the `column[type]` renderer. React Table ships with default `Header` renderers. Other renderers like `Filter` are available via hooks like `useFilters`.\n  - If a function or component is passed instead of a string, it will be be passed the table instance and column model as props and is expected to return any valid JSX.\n- `getHeaderProps: Function(?props)`\n  - **Required**\n  - This function is used to resolve any props needed for this column's header cell.\n  - You can use the `getHeaderProps` hook to extend its functionality.\n  - Custom props may be passed. **NOTE: Custom props will override built-in table props, so be careful!**\n\n### `Row` Properties\n\nThe following additional properties are available on every `row` object returned by the table instance.\n\n- `cells: Array<Cell>`\n  - An array of `Cell` objects containing properties and functions specific to the row and column it belongs to.\n  - See [Cell Properties](#cell-properties) for more information\n- `values: Object<columnID: any>`\n  - A map of this row's **resolved** values by columnID, eg. `{ firstName: 'Tanner', lastName: 'Linsley' }`\n- `getRowProps: Function(?props)`\n  - **Required**\n  - This function is used to resolve any props needed for this row.\n  - You can use the `getRowProps` hook to extend its functionality.\n  - Custom props may be passed. **NOTE: Custom props will override built-in table props, so be careful!**\n\n### `Cell` Properties\n\nThe following additional properties are available on every `Cell` object returned in an array of `cells` on every row object.\n\n- `column: Column`\n  - The corresponding column object for this cell\n- `row: Row`\n  - The corresponding row object for this cell\n- `value: any`\n  - The **resolved** value for this cell.\n  - By default, this value is displayed on the table via the default `Cell` renderer. To override the way a cell displays\n- `getCellProps: Function(?props)`\n  - **Required**\n  - This function is used to resolve any props needed for this cell.\n  - You can use the `getCellProps` hook to extend its functionality.\n  - Custom props may be passed. **NOTE: Custom props will override built-in table props, so be careful!**\n- `render: Function(type: String | Function | Component, ?props)`\n  - This function is used to render content in context of a cell.\n  - If `type` is a string, will render using the `column[type]` renderer. React Table ships with a default `Cell` renderer. Other renderers like `Aggregated` are available via hooks like `useFilters`.\n  - If a function or component is passed instead of a string, it will be be passed the table instance and cell model as props and is expected to return any valid JSX.\n\n### Example\n\n```js\nfunction App() {\n  const columns = React.useMemo(\n    () => [\n      {\n        Header: 'Name',\n        columns: [\n          {\n            Header: 'First Name',\n            accessor: 'firstName',\n          },\n          {\n            Header: 'Last Name',\n            accessor: 'lastName',\n          },\n        ],\n      },\n    ],\n    []\n  )\n\n  const data = [\n    {\n      firstName: 'Tanner',\n      lastName: 'Linsley',\n    },\n    {\n      firstName: 'Shawn',\n      lastName: 'Wang',\n    },\n    {\n      firstName: 'Kent C.',\n      lastName: 'Dodds',\n    },\n    {\n      firstName: 'Ryan',\n      lastName: 'Florence',\n    },\n  ]\n\n  return <MyTable columns={columns} data={data} />\n}\n\nfunction MyTable({ columns, data }) {\n  const { getTableProps, headerGroups, rows, prepareRow } = useTable({\n    columns,\n    data,\n  })\n\n  return (\n    <table {...getTableProps()}>\n      <thead>\n        {headerGroups.map(headerGroup => (\n          <tr {...headerGroup.getRowProps()}>\n            {headerGroup.headers.map(column => (\n              <th {...column.getHeaderProps()}>{column.render('Header')}</th>\n            ))}\n          </tr>\n        ))}\n      </thead>\n      <tbody>\n        {rows.map(\n          (row, i) =>\n            prepareRow(row) || (\n              <tr {...row.getRowProps()}>\n                {row.cells.map(cell => {\n                  return <td {...cell.getCellProps()}>{cell.render('Cell')}</td>\n                })}\n              </tr>\n            )\n        )}\n      </tbody>\n    </table>\n  )\n}\n```\n\n## `useGroupBy`\n\n- Plugin Hook\n- Optional\n\n`useGroupBy` is the hook that implements **row grouping and aggregation**.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `state[0].groupBy: Array<String>`\n  - Must be **memoized**\n  - An array of groupBy ID strings, controlling which columns are used to calculate row grouping and aggregation. This information is stored in state since the table is allowed to manipulate the groupBy through user interaction.\n- `groupByFn: Function`\n  - Must be **memoized**\n  - Defaults to [`defaultGroupByFn`](TODO)\n  - This function is responsible for grouping rows based on the `state.groupBy` keys provided. It's very rare you would need to customize this function.\n- `manualGroupBy: Bool`\n  - Enables groupBy detection and functionality, but does not automatically perform row grouping.\n  - Turn this on if you wish to implement your own row grouping outside of the table (eg. server-side or manual row grouping/nesting)\n- `disableGrouping: Bool`\n  - Disables groupBy for the entire table.\n- `aggregations: Object<aggregationKey: aggregationFn>`\n  - Must be **memoized**\n  - Allows overriding or adding additional aggregation functions for use when grouping/aggregating row values. If an aggregation key isn't found on this object, it will default to using the [built-in aggregation functions](TODO)\n\n### `Instance` Properties\n\nThe following values are provided to the table `instance`:\n\n- `rows: Array<Row>`\n  - An array of **grouped and aggregated** rows.\n\n### Example\n\n```js\nconst state = useTableState({ groupBy: ['firstName'] })\n\nconst aggregations = React.useMemo(() => ({\n  customSum: (values, rows) => values.reduce((sum, next) => sum + next, 0),\n}))\n\nconst { rows } = useTable(\n  {\n    state, // state[0].groupBy === ['firstName']\n    manualGroupBy: false,\n    disableGrouping: false,\n    aggregations,\n  },\n  useGroupBy\n)\n```\n\n## `useFilters`\n\n- Plugin Hook\n- Optional\n\n`useFilters` is the hook that implements **row filtering**.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `state[0].filters: Object<columnID: filterValue>`\n  - Must be **memoized**\n  - An object of columnID's and their corresponding filter values. This information is stored in state since the table is allowed to manipulate the filter through user interaction.\n- `defaultFilter: String | Function`\n  - If a **function** is passed, it must be **memoized**\n  - Defaults to [`text`](TODO)\n  - The function (or resolved function from the string) will be used as the default/fallback filter method for every column that has filtering enabled.\n    - If a `string` is passed, the function with that name located on the `filterTypes` option object will be used.\n    - If a `function` is passed, it will be used.\n  - For mor information on filter types, see [Filtering](TODO)\n- `manualFilters: Bool`\n  - Enables filter detection functionality, but does not automatically perform row filtering.\n  - Turn this on if you wish to implement your own row filter outside of the table (eg. server-side or manual row grouping/nesting)\n- `disableFilters: Bool`\n  - Disables filtering for every column in the entire table.\n- `filterTypes: Object<filterKey: filterType>`\n  - Must be **memoized**\n  - Allows overriding or adding additional filter types for columns to use. If a column's filter type isn't found on this object, it will default to using the [built-in filter types](TODO).\n  - For mor information on filter types, see [Filtering](TODO)\n\n### `Instance` Properties\n\nThe following values are provided to the table `instance`:\n\n- `rows: Array<Row>`\n  - An array of **filtered** rows.\n- `preFilteredRows: Array<Row>`\n  - The array of rows **used right before filtering**.\n  - Among many other use-cases, these rows are directly useful for building option lists in filters, since the resulting filtered `rows` do not contain every possible option.\n- `setFilter: Function(columnID, filterValue) => void`\n  - An instance-level function used to update the filter value for a specific column.\n- `setAllFilters: Function(filtersObject) => void`\n  - An instance-level function used to update the values for **all** filters on the table, all at once.\n\n### Example\n\n```js\n// A great library for fuzzy filtering/sorting items\nimport matchSorter from 'match-sorter'\n\nconst state = useTableState({ filters: { firstName: 'tanner' } })\n\nconst filterTypes = React.useMemo(() => ({\n  // Add a new fuzzyText filter type.\n  fuzzyText: (rows, id, filterValue) => {\n    return matchSorter(rows, filterValue, { keys: [row => row[id] })\n  },\n  // Or, override the default text filter to use\n  // \"startWith\"\n  text: (rows, id, filterValue) => {\n    return rows.filter(row => {\n      const rowValue = row.values[id]\n      return rowValue !== undefined\n        ? String(rowValue)\n            .toLowerCase()\n            .startsWith(String(filterValue).toLowerCase())\n        : true\n    })\n  }\n}), [matchSorter])\n\n// Override the default column filter to be our new `fuzzyText` filter type\nconst defaultColumn = React.useMemo(() => ({\n  filter: 'fuzzyText'\n}))\n\nconst { rows } = useTable(\n  {\n    // state[0].groupBy === ['firstName']\n    state,\n    manualFilters: false,\n    disableFilters: false,\n    // Pass our custom filter types\n    filterTypes,\n    defaultColumn\n  },\n  useFilters\n)\n```\n\n## `useSortBy`\n\n- Plugin Hook\n- Optional\n\n`useSortBy` is the hook that implements **row sorting**. It also support multi-sort (keyboard required).\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `state[0].sortBy: Array<Object<id: columnID, desc: Bool>>`\n  - Must be **memoized**\n  - An array of sorting objects. If there is more than one object in the array, multi-sorting will be enabled. Each sorting object should contain an `id` key with the corresponding column ID to sort by. An optional `desc` key may be set to true or false to indicated ascending or descending sorting for that column. This information is stored in state since the table is allowed to manipulate the filter through user interaction.\n- `defaultSortType: String | Function`\n  - If a **function** is passed, it must be **memoized**\n  - Defaults to [`alphanumeric`](TODO)\n  - The function (or resolved function from the string) will be used as the default/fallback sort method for every column that has sorting enabled.\n    - If a `string` is passed, the function with that name located on the `sortTypes` option object will be used.\n    - If a `function` is passed, it will be used.\n  - For mor information on sort types, see [Sorting](TODO)\n- `manualSorting: Bool`\n  - Enables sorting detection functionality, but does not automatically perform row sorting. Turn this on if you wish to implement your own sorting outside of the table (eg. server-side or manual row grouping/nesting)\n- `disableSorting: Bool`\n  - Disables sorting for every column in the entire table.\n- `disableMultiSort: Bool`\n  - Disables multi-sorting for the entire table.\n- `defaultSortDesc: Bool`\n  - If true, the first default direction for sorting will be descending. This may also be overridden at the column level.\n- `disableSortRemove: Bool`\n  - If true, the un-sorted state will not be available to columns once they have been sorted.\n- `disableMultiRemove: Bool`\n  - If true, the un-sorted state will not be available to multi-sorted columns.\n- `orderByFn: Function`\n  - Must be **memoizd**\n  - Defaults to the built-in [default orderBy function](TODO)\n  - This function is responsible for composing multiple sorting functions together for multi-sorting, and also handles both the directional sorting and stable-sorting tie breaking. Rarely would you want to override this function unless you have a very advanced use-case that requires it.\n- `sortTypes: Object<sortKey: sortType>`\n  - Must be **memoized**\n  - Allows overriding or adding additional sort types for columns to use. If a column's sort type isn't found on this object, it will default to using the [built-in sort types](TODO).\n  - For mor information on sort types, see [Sorting](TODO)\n\n### Instance Variables\n\nThe following values are provided to the table `instance`:\n\n- `rows: Array<Row>`\n  - An array of **sorted** rows.\n\n### Example\n\n```js\nconst state = useTableState({ sortBy: [{ id: 'firstName', desc: true }] })\n\nconst { rows } = useTable(\n  {\n    // state[0].sortBy === [{ id: 'firstName', desc: true }]\n    state,\n  },\n  useSortBy\n)\n```\n\n## `useExpanded`\n\n- Plugin Hook\n- Optional\n\n`useExpanded` is the hook that implements **row expanding**. It is most often used with `useGroupBy` to expand grouped rows, but is not limited to that use-case. It supports expanding rows both via internal table state and also via a hard-coded key on the raw row model.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `state[0].expanded: Object<[pathIndex]: Boolean | ExpandedStateObject>`\n  - Must be **memoized**\n  - An nested object of expanded paths.\n  - A `pathIndex` can be set as the key and its value set to `true` to expand that row's subRows into view. For example, if `{ '3': true }` was passed as the `expanded` state, the **4th row in the original data array** would be expanded.\n  - For nested expansion, you may **use another object** instead of a Boolean to expand sub rows. For example, if `{ '3': { '5' : true }}` was passed as the `expanded` state, then the **6th subRow of the 4th row and the 4th row of the original data array** would be expanded.\n  - This information is stored in state since the table is allowed to manipulate the filter through user interaction.\n- `subRowsKey: String`\n  - Required\n  - Defaults to `subRows`\n  - React Table will use this key when materializing the final row object. It also uses this key to infer sub-rows from the raw data.\n  - See [Grouping and Aggregation](#grouping-and-aggregation) for more information\n- `paginateSubRows: Bool`\n  - Defaults to `true`\n  - If set to `false`, expanded rows will not be paginated. Thus, any expanded subrows would potentially increase the size of any given page by the amount of total expanded subrows on the page.\n- `manualExpandedKey: String`\n  - Defaults to `expanded`\n  - This string is used as the key to detect manual expanded state on any given row. For example, if a raw data row like `{ name: 'Tanner Linsley', friends: [...], expanded: true}` was detected, it would be forcibly expanded, regardless of state.\n\n### Instance Variables\n\nThe following values are provided to the table `instance`:\n\n- `rows: Array<Row>`\n  - An array of **sorted** rows.\n\n### Example\n\n```js\nconst state = useTableState({ expanded: { '3': true, '5': { '2': true } } })\n\nconst { rows } = useTable(\n  {\n    // state[0].sortBy === { '3': true, '5': { '2': true } }\n    state,\n  },\n  useExpanded\n)\n```\n\n## `usePagination`\n\n- Plugin Hook\n- Optional\n\n`usePagination` is the hook that implements **row pagination**. It can be used for both client-side pagination or server-side pagination. For more information on pagination, see [Pagination](TODO)\n\n> **NOTE** Some server-side pagination implementations do not use page index and instead use **token based pagination**! If that's the case, please use the `useTokenPagination` plugin instead.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `state[0].pageSize: Int`\n  - **Required**\n  - Defaults to `10`\n  - Determines the amount of rows on any given page\n- `state[0].pageIndex: Int`\n  - **Required**\n  - Defaults to `0`\n  - The index of the page that should be displayed via the `page` instance value\n- `pageCount: Int`\n  - **Required if `manualPagination` is set to `true`**\n  - If `manualPagination` is `true`, then this value used to determine the amount of pages available. This amount is then used to materialize the `pageOptions` and also compute the `canNextPage` values on the table instance.\n- `manualPagination: Bool`\n  - Enables pagination functionality, but does not automatically perform row pagination.\n  - Turn this on if you wish to implement your own pagination outside of the table (eg. server-side pagination or any other manual pagination technique)\n- `disablePageResetOnDataChange`\n  - Defaults to `false`\n  - Normally, any changes detected to `rows`, `state.filters`, `state.groupBy`, or `state.sortBy` will trigger the `pageIndex` to be reset to `0`\n  - If set to `true`, the `pageIndex` will not be automatically set to `0` when these dependencies change.\n\n### Instance Variables\n\nThe following values are provided to the table `instance`:\n\n- `pages: Array<page>`\n  - An array of every generated `page`, each containing its respective rows.\n- `page: Array<row>`\n  - An array of rows for the **current** page, determined by the current `pageIndex` value.\n- `pageCount: Int`\n  - If `manualPagination` is set to `false`, this is the total amount of pages available in the table based on the current `pageSize` value\n  - if `manualPagination` is set to `true`, this is merely the same `pageCount` option that was passed in the table options.\n- `pageOptions: Array<Int>`\n  - An array of zero-based index integers corresponding to available pages in the table.\n  - This can be useful for generating things like select interfaces for the user to select a page from a list, instead of manually paginating to the desired page.\n- `canPreviousPage: Bool`\n  - If there are pages and the current `pageIndex` is greater than `0`, this will be `true`\n- `canNextPage:`\n  - If there are pages and the current `pageIndex` is less than `pageCount`, this will be `true`\n- `gotoPage: Function(pageIndex)`\n  - This function, when called with a valid `pageIndex`, will set `pageIndex` to that value.\n  - If the passed index is outside of the valid `pageIndex` range, then this function will do nothing.\n- `previousPage: Function`\n  - This function decreases `state.pageIndex` by one.\n  - If there are no pages or `canPreviousPage` is false, this function will do nothing.\n- `nextPage: Function`\n  - This function increases `state.pageIndex` by one.\n  - If there are no pages or `canNextPage` is false, this function will do nothing.\n- `setPageSize: Function(pageSize)`\n  - This function sets `state.pageSize` to the new value.\n  - As a result of a pageSize change, a new `state.pageIndex` is also calculated. It is calculated via `Math.floor(currentTopRowIndex / newPageSize)`\n- `pageIndex: Int`\n  - This is the resolved `state.pageIndex` value.\n- `pageSize: Int`\n  - This is the resolved `state.pageSize` value.\n\n### Example\n\n```js\nconst state = useTableState({ pageSize: 20, pageIndex: 1 })\n\nconst { rows } = useTable(\n  {\n    // state[0] === { pageSize: 20, pageIndex: 1 }\n    state,\n  },\n  usePagination\n)\n```\n\n## `useTokenPagination`\n\n- Plugin Hook\n- Optional\n\n`useTokenPagination` is the hook that **aids in implementing row pagination using tokens**. It is useful for server-side pagination implementations that use **tokens** instead of page index. For more information on pagination, see [Pagination](TODO)\n\n> Documentation Coming Soon...\n\n## `useTableState`\n\n- Optional\n\n`useTableState` is a hook that allows you to hoist the table state out of the table into your own code. You should use this hook if you need to:\n\n- Know about the internal table state\n- React to changes to the internal table state\n- Manually control or override the internal table state\n\nSome common use cases for this hook are:\n\n- Reacting to `pageIndex` and `pageSize` changes for server-side pagination to fetch new data\n- Disallowing specific states via a custom state reducer\n- Enabling parent/unrelated components to manipulate the table state\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `initialState: Object`\n  - Optional\n  - The initial state object for the table.\n  - This object is **merged over the `defaultState` object** (eg. `{...defaultState, ...initialState}`) that React Table and its hooks use to register default state to produce the final initial state object passed to the resolved `useState` hook.\n- `overrides: Object`\n  - Optional\n  - Must be **memoized**\n  - This object is **merged over the current table state** (eg. `{...state, ...overrides}`) to produce the final state object that is then passed to the `useTable` options\n- `options: Object`\n  - `reducer: Function(oldState, newState) => finalState`\n    - Optional\n    - Inspired by Kent C. Dodd's [State Reducer Pattern](https://kentcdodds.com/blog/the-state-reducer-pattern-with-react-hooks)\n    - With every `setState` call to a table state (even internally), this reducer is called and is allowed to modify the final state object for updating.\n    - It is passed the `oldState`, the `newState`, and an action `type`.\n  - `useState`\n    - Optional\n    - Defaults to `React.useState`\n    - This function, if defined will be used as the state hook internally instead of the default `React.useState`. This can be useful for implementing custom state storage hooks like useLocalStorage, etc.\n\n### Instance Variables\n\n- `tableStateTuple: [tableState, setTableState]`\n  - Similar in structure to the result of `React.useState`\n  - **Memoized**. This tuple array will not change between renders unless state or `useTableState` options change.\n  - `tableState: Object`\n    - This is the final state object of the table, which is the product of the `initialState`, `overrides` and the `reducer` options (if applicable)\n  - `setTableState: Function(updater, type) => void`\n    - This function is used both internally by React Table, and optionally by you (the developer) to update the table state programmatically.\n    - `updater: Function`\n      - This function signature is **almost** (see next point) identical to the functional API exposed by `React.setState`. It is passed the previous state and is expected to return a new version of the state.\n      - **NOTE: `updater` must be a function. Passing a replacement object is not supported as it is with React.useState**\n    - `type: String`\n      - The [action type](TODO) corresponding to what action being taken against the state.\n\n### Example\n\n```js\nexport default function MyTable({ manualPageIndex }) {\n  // This is the initial state for our table\n  const initialState = { pageSize: 10, pageIndex: 0 }\n\n  // Here, we can override the pageIndex\n  // regardless of the internal table state\n  const overrides = React.useMemo(() => ({\n    pageIndex: manualPageIndex,\n  }))\n\n  const state = useTableState(initialState, overrides)\n\n  // You can use effects to observe changes to the state\n  React.useEffect(() => {\n    console.log('Page Size Changed!', initialState.pageSize)\n  }, [initialState.pageSize])\n\n  const { rows } = useTable({\n    state,\n  })\n}\n```\n\n<!-- # Guides\n\n## Client Side Pagination\n\nTo add client side pagination, use the `usePagination` hook:\n\n```diff\n// Import React\nimport React from 'react'\n\n// Import React Table\nimport {\n  useTable,\n  useGroupBy,\n  useFilters,\n  useSortBy,\n  useExpanded,\n+  usePagination,\n} from 'react-table'\n\n// Create a component to render your table\nfunction MyTable(props) {\n  // Use the useTable hook to create your table configuration\n  const instance = useTable(\n    props,\n    useGroupBy,\n    useFilters,\n    useSortBy,\n    useExpanded,\n+   usePagination,\n  )\n\n  // Use the state and functions returned from useTable to build your UI\n  const {\n    getTableProps,\n    headerGroups,\n    rows,\n    getRowProps,\n    prepareRow,\n+   pageOptions,\n+   page,\n+   state: [{ pageIndex, pageSize }],\n+   gotoPage,\n+   previousPage,\n+   nextPage,\n+   setPageSize,\n+   canPreviousPage,\n+   canNextPage,\n  } = instance\n\n  // Render the UI for your table\n  return (\n    <div>\n      <table {...getTableProps()}>\n        ...\n      </table>\n+     <div>\n+       <button onClick={() => previousPage()} disabled={!canPreviousPage}>\n+         Previous Page\n+       </button>\n+       <button onClick={() => nextPage()} disabled={!canNextPage}>\n+         Next Page\n+       </button>\n+       <div>\n+         Page{' '}\n+         <em>\n+           {pageIndex + 1} of {pageOptions.length}\n+         </em>\n+       </div>\n+       <div>Go to page:</div>\n+       <input\n+         type=\"number\"\n+         defaultValue={pageIndex + 1 || 1}\n+         onChange={e => {\n+           const page = e.target.value ? Number(e.target.value) - 1 : 0\n+           gotoPage(page)\n+         }}\n+       />\n+       <select\n+         value={pageSize}\n+         onChange={e => {\n+           setPageSize(Number(e.target.value))\n+         }}\n+       >\n+         {pageSizeOptions.map(pageSize => (\n+           <option key={pageSize} value={pageSize}>\n+             Show {pageSize}\n+           </option>\n+         ))}\n+       </select>\n+     </div>\n    </div>\n  )\n}\n```\n\n## Server Side Pagination\n\nTo implement server-side pagination, use the `useTableState` and `usePagination` hooks:\n\n```diff\n\n``` -->\n\n<!-- # Setup\n\nTo begin using React Table you will need to start with a UI to render it. Below is a very basic component that should serve as a good starting point for most projects:\n\n```js\n// Import React\nimport React from 'react'\n\n// Import React Table\nimport {\n  useTable,\n  useGroupBy,\n  useFilters,\n  useSortBy,\n  useExpanded,\n  usePagination,\n} from 'react-table'\n\n// Create a component to render your table\nexport default function MyTable(props) {\n  // Use the useTable hook to create your table configuration\n  const instance = useTable(\n    props,\n    useGroupBy,\n    useFilters,\n    useSortBy,\n    useExpanded,\n    usePagination\n  )\n\n  // Use the state and functions returned from useTable to build your UI\n  const {\n    getTableProps,\n    headerGroups,\n    rows,\n    getRowProps,\n    pageOptions,\n    page,\n    state: [{ pageIndex, pageSize }],\n    gotoPage,\n    prepareRow,\n    previousPage,\n    nextPage,\n    setPageSize,\n    canPreviousPage,\n    canNextPage,\n  } = instance\n\n  // Render the UI for your table\n  return (\n    <div>\n      <table {...getTableProps()}>\n        <thead>\n          {headerGroups.map(headerGroup => (\n            <tr {...headerGroup.getRowProps()}>\n              {headerGroup.headers.map(column => (\n                <th {...column.getHeaderProps()}>{column.render('Header')}</th>\n              ))}\n            </tr>\n          ))}\n        </thead>\n        <tbody>\n          {page.map(\n            (row, i) =>\n              prepareRow(row) || (\n                <tr {...row.getRowProps()}>\n                  {row.cells.map(cell => {\n                    return (\n                      <td {...cell.getCellProps()}>{cell.render('Cell')}</td>\n                    )\n                  })}\n                </tr>\n              )\n          )}\n        </tbody>\n      </table>\n      <div>\n        <button onClick={() => previousPage()} disabled={!canPreviousPage}>\n          Previous Page\n        </button>\n        <button onClick={() => nextPage()} disabled={!canNextPage}>\n          Next Page\n        </button>\n        <div>\n          Page{' '}\n          <em>\n            {pageIndex + 1} of {pageOptions.length}\n          </em>\n        </div>\n        <div>Go to page:</div>\n        <input\n          type=\"number\"\n          defaultValue={pageIndex + 1 || 1}\n          onChange={e => {\n            const page = e.target.value ? Number(e.target.value) - 1 : 0\n            gotoPage(page)\n          }}\n        />\n        <select\n          value={pageSize}\n          onChange={e => {\n            setPageSize(Number(e.target.value))\n          }}\n        >\n          {pageSizeOptions.map(pageSize => (\n            <option key={pageSize} value={pageSize}>\n              Show {pageSize}\n            </option>\n          ))}\n        </select>\n      </div>\n    </div>\n  )\n}\n```\n\nYou can then use your table like so:\n\n```js\n\nimport MyTable from './MyTable'\n\nfunction MyApp () {\n  const columns = React.useMemo(() => [{\n    Header: \"Name\",\n    columns: [\n      {\n        Header: \"First Name\",\n        accessor: \"firstName\",\n      },\n      {\n        Header: \"Last Name\",\n        accessor: \"lastName\",\n      }\n    ]\n  }], [])\n\n  const data = [{\n    firstName: 'Tanner',\n    lastName: 'Linsley'\n  }, {\n    firstName: 'Shawn',\n    lastName: 'Wang'\n  }, {\n    firstName: 'Kent C.',\n    lastName: 'Dodds'\n  }, {\n    firstName: 'Ryan',\n    lastName: 'Florence'\n  }]\n\n  return <MyTable columns={columns} data={data} />\n``` -->\n\n## Contributing\n\nTo suggest a feature, create an issue if it does not already exist.\nIf you would like to help develop a suggested feature follow these steps:\n\n- Fork this repo\n- Install dependencies with `$ yarn`\n- Link `react-table` locally with `$ yarn link`\n- Auto-build files as you edit with `$ yarn start`\n- Implement your changes and tests to files in the `src/` directory\n- In any example directory, link to the local `react-table` with `$ yarn link react-table`\n- Follow example directions for running. Usually just `$ yarn && yarn start`\n- Document your changes in the root `README.md`\n- To stage a commit, run `yarn commit`\n- Submit PR for review\n","licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.0-alpha.10","dist":{"shasum":"4c0edec480c0d7bd73c2d1b5437065dc47a349c7","integrity":"sha512-Zw45UVHF/JPu9Vd2HIrzhZkj93TQkmGNBrekCSmCrnR8+YKzC1HHlUpq9FyHQxDqFUDCoTsZG5Qu23/4F98tzw==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.0-alpha.10.tgz","fileCount":97,"unpackedSize":1611764,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdOy/7CRA9TVsSAnZWagAAjyEP/1NIrVCNq8XmXy2zbuN8\nOymr96yeEMBEElnxP/y+r82qtvcjz/7xI1X4xDBh6gXoeSeurYCAXNiplpIP\nwaxrfjKEz2unU2UaBjzUllAS/3AioY1gI9hjBP7v4g8BSdgsPaX0O0ilpRx7\nL0tMF0T0p/jsy5xB5d2zV4r4CHJikIuVRnwuf3k9Sf5e9pv07Si7TgCkDVCg\nttVCGGETgKVd+Y+SHl6lpelR5VI/fcqw3Kaa4khmTyFqRW/KHRUS98DBLmen\nTthG718rf9JDzLLNYuhhcBDivkI34X0hc/itBsBCU6v4L1ReqVNCtr/kmvX1\nfScc/kbNFcR5+7HJX2dUnm4p3TZUJ02BJ3jtHTmpYkQQCG5hwzuNF4hElTvV\n51GIXf3Xz1OSkY3Uk1Sxhv9hpv6TI5kt8cPJsMw82Q4X8/CkIrXumePEmsNr\noBrHDBoYXtvi+5XSnfEpQjrWE6X49MaWx5Ttev1DFT/ZRCEcFEptZ3Dpvgup\nOIQXtzfYETnmgJaSJSaqrJrUH44a14+v7W1g2olJj9hjC58/50zWxu/PLFZt\n+llLcfgQBSQ9dzDr1V7zuuOtG7u//19NpoqERfGSh/U+QtQ3oZ6fXzlIuKXn\nr6LhWDnrPnyqUjoSc/clSVwLvuf0vQxUuo2150odiu+22aLaKEgOPMsfyF+p\nx/XP\r\n=YHvq\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBNTN9rZWLfQuGq5J8sTclm/mPc5rn8JwR26v3r/wpBFAiBi8u+okrnp0a7Z1WZiYyCnrp+azZma0Hmr+0YH4B0/8A=="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.0-alpha.10_1564159994137_0.9331918114255668"},"_hasShrinkwrap":false},"7.0.0-alpha.11":{"name":"react-table","version":"7.0.0-alpha.11","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"dist/index.js","module":"dist/index.es.js","jsnext:main":"dist/index.es.js","scripts":{"commit":"git commit","test":"is-ci 'test:ci' 'test:dev'","test:dev":"jest --watch","test:ci":"jest","build":"rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next"},"peerDependencies":{"prop-types":"^15.5.0","react":"^16.8.3","react-dom":"^16.8.3"},"devDependencies":{"@babel/plugin-proposal-class-properties":"^7.2.1","@babel/preset-env":"^7.2.0","@babel/preset-react":"^7.0.0","@babel/runtime":"^7.2.0","@svgr/rollup":"^4.1.0","@testing-library/react":"^8.0.4","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","commitizen":"^4.0.3","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^8.0.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.0.0","eslint-plugin-react":"7.x","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","husky":"^3.0.1","is-ci-cli":"^1.1.1","jest":"^24.8.0","jest-cli":"^24.8.0","jest-runner-eslint":"^0.7.4","jest-watch-select-projects":"^0.1.2","jest-watch-typeahead":"^0.3.1","lint-staged":"^9.2.1","rollup":"^0.68.0","rollup-plugin-babel":"^4.1.0","rollup-plugin-commonjs":"^9.1.3","rollup-plugin-node-resolve":"^4.0.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-uglify":"^6.0.2"},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"readmeFilename":"README.md","readme":"# React Table\n\nHooks for building **lightweight, fast and extendable datagrids** for React\n\n<a href=\"https://travis-ci.org/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://travis-ci.org/tannerlinsley/react-table.svg?branch=master\" />\n</a>\n<a href=\"https://npmjs.com/package/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-table.svg\" />\n</a>\n<a href=\"https://spectrum.chat/react-table\">\n  <img alt=\"Join the community on Spectrum\" src=\"https://withspectrum.github.io/badge/badge.svg\" />\n</a>\n<a href=\"https://github.com/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-table.svg?style=social&label=Star\" />\n</a>\n<a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n\n<br />\n<br />\n\n## Features\n\n- Lightweight\n- Headless (100% customizable, Bring-your-own-UI)\n- Client-side & Server-side pagination support\n- Sorting (Multi and Stable)\n- Filters\n- Pivoting & Aggregation\n- Fully controllable\n- Extensible via hooks\n- <a href=\"https://medium.com/@tannerlinsley/why-i-wrote-react-table-and-the-problems-it-has-solved-for-nozzle-others-445c4e93d4a8#.axza4ixba\" target=\"\\_parent\">\"Why I wrote React Table and the problems it has solved for Nozzle.io\"</a> by Tanner Linsley\n\n## Demos\n\n[React Table v7 Sandbox](https://codesandbox.io/s/m5lxzzpz69)\n\n## Versions\n\n- This documentation is for version 7.\n- [View the Changelog](https://github.com/tannerlinsley/react-table/blob/master/CHANGELOG.md)\n- Previous versions:\n  - [6.x.x Readme](https://github.com/tannerlinsley/react-table/tree/v6/)\n  - [5.x.x Readme](https://github.com/tannerlinsley/react-table/blob/ad7d31cd3978eb45da7c6194dbab93c1e9a8594d/README.md)\n\n## Sponsors\n\n**React Table v7** is being built and maintained by me, @tannerlinsley and I am always in need of more Patreon support to keep this project afloat. If you would like to contribute to my Patreon goal for v7 and beyond, [visit my Patreon and help me out!](https://patreon.com/tannerlinsley).\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/platinum.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://tryretool.com/?utm_source=sponsor&utm_campaign=react_table\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-retool.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/platinum-placeholder.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/gold.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://nozzle.io\" target=\"_blank\">\n          <img width=\"300\" src=\"https://nozzle.io/img/logo-blue.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://zappi.com/web\" target=\"_blank\">\n          <img width=\"300\" src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-zappi.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/gold-placeholder.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n# Documentation\n\n- [Installation](#installation)\n- [Concepts](#concepts)\n- [Setup](#setup)\n- [Contributing](#contributing)\n\n# Installation\n\nInstall React Table as a dependency using `npm` or `yarn`\n\n```bash\n# NPM\n$ npm install react-table\n\n# Yarn\n$ yarn add react-table\n```\n\nTo import React Table:\n\n```js\nimport {\n  useTable,\n  useGroupBy,\n  useFilters,\n  useSortBy,\n  useExpanded,\n  usePagination,\n  ...\n} from 'react-table'\n```\n\n# Examples\n\n- [Basic](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/master/examples/basic)\n- [Sorting with `useSortBy`](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/master/examples/sorting-with-useSortBy)\n- [Filtering with `useFilters`](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/master/examples/filtering-with-useFilters)\n\n# Concepts\n\n## React Table is a \"headless\" library\n\nReact Table is a headless utility, which means out of the box, it doesn't render or supply any actual UI elements. You are in charge of utilizing the state and callbacks of the hooks provided by this library to render your own table markup. [Read this article to understand why React Table is built this way.](https://medium.com/merrickchristensen/headless-user-interface-components-565b0c0f2e18). If you don't want to, then here's a quick rundown anyway:\n\n- Separation of Concerns - Not that superficial kind you read about all the time. The real kind. React Table as a library honestly has no business being in charge of your UI. The look, feel, and overall experience of your table is what makes your app or product great. The less React Table gets in the way of that, the better!\n- Maintenance - By removing the massive (and seemingly endless) API surface area required to support every UI use-case, React Table can remain small, easy-to-use and simple to update/maintain.\n- Extensibility - UI presents countless edge cases for a library simply because it's a creative medium, and one where every developer does things differently. By not dictating UI concerns, React Table empowers the developer to design and extend the UI based on their unique use-case.\n\n## The React Table API\n\nAt the heart of every React Table is a table `instance` object. This object contains everything needed to build a table and interact with it's state. This includes, but is not limited to:\n\n- Columns\n- Materialized Data\n- Sorting\n- Filtering\n- Grouping\n- Pagination\n- Expanded State\n- Any functionality provided by custom plugin hooks, too!\n\n## Using Hooks for configuration, state and lifecycle\n\nReact Table uses React Hooks both internally and externally for 100% of its configuration and lifecycle management. Naturally, this is what allows React Table to be headless and lightweight while still having a concise and simple API.\n\nReact Table is essentially a compatible collection of **custom React hooks**:\n\n- The primary React Table hook\n  - [`useTable`](#usetable)\n- Plugin Hooks\n  - Core Plugin Hooks\n    - [`useTableState`](#useTableState)\n    - [`useGroupBy`](#useGroupBy)\n    - [`useFilters`](#useFilters)\n    - [`useSortBy`](#useSortBy)\n    - [`useExpanded`](#useExpanded)\n    - [`usePagination`](#usePagination)\n    - [`useTokenPagination`](#useTokenPagination)\n  - Layout Plugin Hooks\n    - [`useFlexLayout`](#useFlexLayout)\n    - [`useAbsoluteLayout`](#useAbsoluteLayout) (coming soon!)\n- Custom Plugin Hooks\n  - Get your custom plugin hook listed here!\n\n### Hook Usage\n\n`useTable` is the **primary** hook used to build a React Table. It serves as the starting point for **every option and every plugin hook** that React Table supports. The options passed into `useTable` are supplied to every plugin hook after it in the order they are supplied, eventually resulting a final `instance` object that you can use to build your table UI and interact with the table's state.\n\n```js\nconst instance = useTable(\n  {\n    data: [...],\n    columns: [...],\n  },\n  useGroupBy,\n  useFilters,\n  useSortBy,\n  useExpanded,\n  usePagination\n)\n```\n\n### The stages of a React Table\n\n1. `useTable` is called. A table instance is created.\n1. The `instance.state` is resolved from either a custom user state or an automatically generated one.\n1. A collection of plugin points is created at `instance.hooks`. These plugin points don't run until after all of the plugins have run.\n1. The instance is reduced through each plugin hook in the order they were called. Each hook receives the result of the previous hook, is able to manipulate the `instance`, use plugin points, use their own React hooks internally and eventually return a new `instance`. This happens until the last instance object is returned from the last hook.\n1. Lastly, the plugin points that were registered and populated during hook reduction are run to produce the final instance object that is returned from `useTable`\n\nThis multi-stage process is the secret sauce that allows React Table plugin hooks to work together and compose nicely, while not stepping on each others toes.\n\n### Plugin Hook Order & Consistency\n\nThe order and usage of plugin hooks must follow [The Laws of Hooks](TODO), just like any other custom hook. They must always be unconditionally called in the same order.\n\n> **NOTE: In the event that you want to programmatically enable or disable plugin hooks, most of them provide options to disable their functionality, eg. `options.disableSorting`**\n\n### Option Memoization\n\nReact Table relies on memoization to determine when state and side effects should update or be calculated. This means that every option you pass to `useTable` should be memoized either via `React.useMemo` (for objects) or `React.useCallback` (for functions).\n\n# API\n\n## `useTable`\n\n- Required\n\n`useTable` is the root hook for React Table. To use it, pass it with an options object with at least a `columns` and `rows` value, followed by any React Table compatible hooks you want to use.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `columns: Array<Column>`\n  - Required\n  - Must be **memoized**\n  - The core columns configuration object for the entire table.\n  - Supports nested `columns` arrays via the `column.children` key\n- `data: Array<any>`\n  - Required\n  - Must be **memoized**\n  - The data array that you want to display on the table.\n- `state: TableStateTuple[stateObject, stateUpdater]`\n  - Optional\n  - Must be **memoized** table state tuple. See [`useTableState`](#usetablestate) for more information.\n  - The state/updater pair for the table instance. You would want to override this if you plan on controlling or hoisting table state into your own code.\n  - Defaults to using an internal `useTableState()` instance if not defined.\n  - See [Controlling and Hoisting Table State](#controlling-and-hoisting-table-state)\n- `defaultColumn: Object`\n  - Optional\n  - Defaults to `{}`\n  - The default column object for every column passed to React Table.\n  - Column-specific properties will override the properties in this object, eg. `{ ...defaultColumn, ...userColumn }`\n  - This is particularly useful for adding global column properties. For instance, when using the `useFilters` plugin hook, add a default `Filter` renderer for every column, eg.`{ Filter: MyDefaultFilterComponent }`\n- `useColumns: Function`\n  - Optional\n  - This hook overrides the internal `useColumns` hooks used by `useTable`. You probably never want to override this unless you are testing or developing new features for React Table\n- `useRows: Function`\n  - Optional\n  - This hook overrides the internal `useRows` hooks used by `useTable`. You probably never want to override this unless you are testing or developing new features for React Table\n- `debug: Bool`\n  - Optional\n  - A flag to turn on debug mode.\n  - Defaults to `false`\n\n### `column` Options\n\nThe following options are supported on any column object you can pass to `columns`.\n\n- `accessor: String | Function`\n  - **Required**\n  - This string/function is used to build the data model for your column.\n  - The data returned by an accessor should be **primitive** and sortable.\n  - If a string is passed, the column's value will be looked up on the original row via that key, eg. If your column's accessor is `firstName` then its value would be read from `row['firstName']`. You can also specify deeply nested values with accessors like `info.hobbies` or even `address[0].street`\n  - If a function is passed, the column's value will be looked up on the original row using this accessor function, eg. If your column's accessor is `row => row.firstName`, then its value would be determined by passing the row to this function and using the resulting value.\n- `id: String`\n  - **Required if `accessor` is a function**\n  - This is the unique ID for the column. It is used by reference in things like sorting, grouping, filtering etc.\n  - If a **string** accessor is used, it defaults as the column ID, but can be overridden if necessary.\n- `columns: Array<Column>`\n  - Optional\n  - A nested array of columns.\n  - If defined, the column will act as a header group. Columns can be recursively nested as much as needed.\n- `show: Boolean | Function`\n  - Optional\n  - Defaults to `true`\n  - If set to `false`, the column will be hidden.\n  - If set to a `function`, it will be called with the current table instance and can then return `true` or `false`.\n  - The data model for hidden columns is still calculated including sorting, filters, and grouping.\n- `Header: String | Function | React.Component => JSX`\n  - Optional\n  - Defaults to `({ id }) => id`\n  - Receives the table instance and column model as props\n  - Must either be a **string or return valid JSX**\n  - If a function/component is passed, it will be used for formatting the header value, eg. You can use a `Header` function to dynamically format the header using any table or column state.\n- `Cell: Function | React.Component => JSX`\n  - Optional\n  - Defaults to `({ value }) => value`\n  - Receives the table instance and cell model as props\n  - Must return valid JSX\n  - This function (or component) is primarily used for formatting the column value, eg. If your column accessor returns a date object, you can use a `Cell` function to format that date to a readable format.\n\n### `Instance` Properties\n\nThe following properties are available on the table instance returned from `useTable`\n\n- `headerGroups: Array<HeaderGroup>`\n  - An array of normalized header groups, each containing a flattened array of final column objects for that row.\n  - See [Header Group Properties](#header-group-properties) for more information\n- `columns: Array<Column>`\n  - A **flat** array of all final column objects computed from the original columns configuration option.\n  - See [Column Properties](#column-properties) for more information\n- `headers[] Array<Column>`\n  - A **nested** array of final column objects, similar in structure to the original columns configuration option.\n  - See [Column Properties](#column-properties) for more information\n- `rows: Array<Row>`\n  - An array of **materialized row objects** from theriginal `dat oa` array and `columns` passed into the table options\n  - See [Row Properties](#row-properties) for more information\n- `getTableProps: Function(?props)`\n  - **Required**\n  - This function is used to resolve any props needed for your table wrapper.\n  - Custom props may be passed. **NOTE: Custom props will override built-in table props, so be careful!**\n- `prepareRow: Function(Row)`\n  - **Required**\n  - This function is responsible for lazily preparing a row for rendering. Any row that you intend to render in your table needs to be passed to this function **before every render**.\n  - **Why?** Since table data could potentially be very large, it can become very expensive to compute all of the necessary state for every row to be rendered regardless if it actually is rendered or not (for example if you are paginating or virtualizing the rows, you may only have a few rows visible at any given moment). This function allows only the rows you intend to display to be computed and prepped with the correct state.\n\n### `HeaderGroup` Properties\n\nHeader Groups are The following additional properties are available on every `headerGroup` object returned by the table instance.\n\n- `headers: Array<Column>`\n  - **Required**\n  - The columns in this header group.\n- `getHeaderGroupProps: Function(?props)`\n  - **Required**\n  - This function is used to resolve any props needed for this header group's row.\n  - You can use the `getHeaderGroupProps` hook to extend its functionality.\n  - Custom props may be passed. **NOTE: Custom props will override built-in table props, so be careful!**\n\n### `Column` Properties\n\nThe following properties are available on every `Column` object returned by the table instance.\n\n- `id: String`\n  - The resolved column ID from either the column's `accessor` or the column's hard-coded `id` property\n- `visible: Boolean`\n  - The resolved visible state for the column, derived from the column's `show` property\n- `render: Function(type: String | Function | Component, ?props)`\n  - This function is used to render content in context of a column.\n  - If `type` is a string, will render using the `column[type]` renderer. React Table ships with default `Header` renderers. Other renderers like `Filter` are available via hooks like `useFilters`.\n  - If a function or component is passed instead of a string, it will be be passed the table instance and column model as props and is expected to return any valid JSX.\n- `getHeaderProps: Function(?props)`\n  - **Required**\n  - This function is used to resolve any props needed for this column's header cell.\n  - You can use the `getHeaderProps` hook to extend its functionality.\n  - Custom props may be passed. **NOTE: Custom props will override built-in table props, so be careful!**\n\n### `Row` Properties\n\nThe following additional properties are available on every `row` object returned by the table instance.\n\n- `cells: Array<Cell>`\n  - An array of `Cell` objects containing properties and functions specific to the row and column it belongs to.\n  - See [Cell Properties](#cell-properties) for more information\n- `values: Object<columnID: any>`\n  - A map of this row's **resolved** values by columnID, eg. `{ firstName: 'Tanner', lastName: 'Linsley' }`\n- `getRowProps: Function(?props)`\n  - **Required**\n  - This function is used to resolve any props needed for this row.\n  - You can use the `getRowProps` hook to extend its functionality.\n  - Custom props may be passed. **NOTE: Custom props will override built-in table props, so be careful!**\n\n### `Cell` Properties\n\nThe following additional properties are available on every `Cell` object returned in an array of `cells` on every row object.\n\n- `column: Column`\n  - The corresponding column object for this cell\n- `row: Row`\n  - The corresponding row object for this cell\n- `value: any`\n  - The **resolved** value for this cell.\n  - By default, this value is displayed on the table via the default `Cell` renderer. To override the way a cell displays\n- `getCellProps: Function(?props)`\n  - **Required**\n  - This function is used to resolve any props needed for this cell.\n  - You can use the `getCellProps` hook to extend its functionality.\n  - Custom props may be passed. **NOTE: Custom props will override built-in table props, so be careful!**\n- `render: Function(type: String | Function | Component, ?props)`\n  - This function is used to render content in context of a cell.\n  - If `type` is a string, will render using the `column[type]` renderer. React Table ships with a default `Cell` renderer. Other renderers like `Aggregated` are available via hooks like `useFilters`.\n  - If a function or component is passed instead of a string, it will be be passed the table instance and cell model as props and is expected to return any valid JSX.\n\n### Example\n\n```js\nfunction App() {\n  const columns = React.useMemo(\n    () => [\n      {\n        Header: 'Name',\n        columns: [\n          {\n            Header: 'First Name',\n            accessor: 'firstName',\n          },\n          {\n            Header: 'Last Name',\n            accessor: 'lastName',\n          },\n        ],\n      },\n    ],\n    []\n  )\n\n  const data = [\n    {\n      firstName: 'Tanner',\n      lastName: 'Linsley',\n    },\n    {\n      firstName: 'Shawn',\n      lastName: 'Wang',\n    },\n    {\n      firstName: 'Kent C.',\n      lastName: 'Dodds',\n    },\n    {\n      firstName: 'Ryan',\n      lastName: 'Florence',\n    },\n  ]\n\n  return <MyTable columns={columns} data={data} />\n}\n\nfunction MyTable({ columns, data }) {\n  const { getTableProps, headerGroups, rows, prepareRow } = useTable({\n    columns,\n    data,\n  })\n\n  return (\n    <table {...getTableProps()}>\n      <thead>\n        {headerGroups.map(headerGroup => (\n          <tr {...headerGroup.getRowProps()}>\n            {headerGroup.headers.map(column => (\n              <th {...column.getHeaderProps()}>{column.render('Header')}</th>\n            ))}\n          </tr>\n        ))}\n      </thead>\n      <tbody>\n        {rows.map(\n          (row, i) =>\n            prepareRow(row) || (\n              <tr {...row.getRowProps()}>\n                {row.cells.map(cell => {\n                  return <td {...cell.getCellProps()}>{cell.render('Cell')}</td>\n                })}\n              </tr>\n            )\n        )}\n      </tbody>\n    </table>\n  )\n}\n```\n\n## `useGroupBy`\n\n- Plugin Hook\n- Optional\n\n`useGroupBy` is the hook that implements **row grouping and aggregation**.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `state[0].groupBy: Array<String>`\n  - Must be **memoized**\n  - An array of groupBy ID strings, controlling which columns are used to calculate row grouping and aggregation. This information is stored in state since the table is allowed to manipulate the groupBy through user interaction.\n- `groupByFn: Function`\n  - Must be **memoized**\n  - Defaults to [`defaultGroupByFn`](TODO)\n  - This function is responsible for grouping rows based on the `state.groupBy` keys provided. It's very rare you would need to customize this function.\n- `manualGroupBy: Bool`\n  - Enables groupBy detection and functionality, but does not automatically perform row grouping.\n  - Turn this on if you wish to implement your own row grouping outside of the table (eg. server-side or manual row grouping/nesting)\n- `disableGrouping: Bool`\n  - Disables groupBy for the entire table.\n- `aggregations: Object<aggregationKey: aggregationFn>`\n  - Must be **memoized**\n  - Allows overriding or adding additional aggregation functions for use when grouping/aggregating row values. If an aggregation key isn't found on this object, it will default to using the [built-in aggregation functions](TODO)\n\n### `Instance` Properties\n\nThe following values are provided to the table `instance`:\n\n- `rows: Array<Row>`\n  - An array of **grouped and aggregated** rows.\n\n### Example\n\n```js\nconst state = useTableState({ groupBy: ['firstName'] })\n\nconst aggregations = React.useMemo(() => ({\n  customSum: (values, rows) => values.reduce((sum, next) => sum + next, 0),\n}))\n\nconst { rows } = useTable(\n  {\n    state, // state[0].groupBy === ['firstName']\n    manualGroupBy: false,\n    disableGrouping: false,\n    aggregations,\n  },\n  useGroupBy\n)\n```\n\n## `useFilters`\n\n- Plugin Hook\n- Optional\n\n`useFilters` is the hook that implements **row filtering**.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `state[0].filters: Object<columnID: filterValue>`\n  - Must be **memoized**\n  - An object of columnID's and their corresponding filter values. This information is stored in state since the table is allowed to manipulate the filter through user interaction.\n- `defaultFilter: String | Function`\n  - If a **function** is passed, it must be **memoized**\n  - Defaults to [`text`](TODO)\n  - The function (or resolved function from the string) will be used as the default/fallback filter method for every column that has filtering enabled.\n    - If a `string` is passed, the function with that name located on the `filterTypes` option object will be used.\n    - If a `function` is passed, it will be used.\n  - For mor information on filter types, see [Filtering](TODO)\n- `manualFilters: Bool`\n  - Enables filter detection functionality, but does not automatically perform row filtering.\n  - Turn this on if you wish to implement your own row filter outside of the table (eg. server-side or manual row grouping/nesting)\n- `disableFilters: Bool`\n  - Disables filtering for every column in the entire table.\n- `filterTypes: Object<filterKey: filterType>`\n  - Must be **memoized**\n  - Allows overriding or adding additional filter types for columns to use. If a column's filter type isn't found on this object, it will default to using the [built-in filter types](TODO).\n  - For mor information on filter types, see [Filtering](TODO)\n\n### `Instance` Properties\n\nThe following values are provided to the table `instance`:\n\n- `rows: Array<Row>`\n  - An array of **filtered** rows.\n- `preFilteredRows: Array<Row>`\n  - The array of rows **used right before filtering**.\n  - Among many other use-cases, these rows are directly useful for building option lists in filters, since the resulting filtered `rows` do not contain every possible option.\n- `setFilter: Function(columnID, filterValue) => void`\n  - An instance-level function used to update the filter value for a specific column.\n- `setAllFilters: Function(filtersObject) => void`\n  - An instance-level function used to update the values for **all** filters on the table, all at once.\n\n### Example\n\n```js\n// A great library for fuzzy filtering/sorting items\nimport matchSorter from 'match-sorter'\n\nconst state = useTableState({ filters: { firstName: 'tanner' } })\n\nconst filterTypes = React.useMemo(() => ({\n  // Add a new fuzzyText filter type.\n  fuzzyText: (rows, id, filterValue) => {\n    return matchSorter(rows, filterValue, { keys: [row => row[id] })\n  },\n  // Or, override the default text filter to use\n  // \"startWith\"\n  text: (rows, id, filterValue) => {\n    return rows.filter(row => {\n      const rowValue = row.values[id]\n      return rowValue !== undefined\n        ? String(rowValue)\n            .toLowerCase()\n            .startsWith(String(filterValue).toLowerCase())\n        : true\n    })\n  }\n}), [matchSorter])\n\n// Override the default column filter to be our new `fuzzyText` filter type\nconst defaultColumn = React.useMemo(() => ({\n  filter: 'fuzzyText'\n}))\n\nconst { rows } = useTable(\n  {\n    // state[0].groupBy === ['firstName']\n    state,\n    manualFilters: false,\n    disableFilters: false,\n    // Pass our custom filter types\n    filterTypes,\n    defaultColumn\n  },\n  useFilters\n)\n```\n\n## `useSortBy`\n\n- Plugin Hook\n- Optional\n\n`useSortBy` is the hook that implements **row sorting**. It also support multi-sort (keyboard required).\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `state[0].sortBy: Array<Object<id: columnID, desc: Bool>>`\n  - Must be **memoized**\n  - An array of sorting objects. If there is more than one object in the array, multi-sorting will be enabled. Each sorting object should contain an `id` key with the corresponding column ID to sort by. An optional `desc` key may be set to true or false to indicated ascending or descending sorting for that column. This information is stored in state since the table is allowed to manipulate the filter through user interaction.\n- `defaultSortType: String | Function`\n  - If a **function** is passed, it must be **memoized**\n  - Defaults to [`alphanumeric`](TODO)\n  - The function (or resolved function from the string) will be used as the default/fallback sort method for every column that has sorting enabled.\n    - If a `string` is passed, the function with that name located on the `sortTypes` option object will be used.\n    - If a `function` is passed, it will be used.\n  - For mor information on sort types, see [Sorting](TODO)\n- `manualSorting: Bool`\n  - Enables sorting detection functionality, but does not automatically perform row sorting. Turn this on if you wish to implement your own sorting outside of the table (eg. server-side or manual row grouping/nesting)\n- `disableSorting: Bool`\n  - Disables sorting for every column in the entire table.\n- `disableMultiSort: Bool`\n  - Disables multi-sorting for the entire table.\n- `defaultSortDesc: Bool`\n  - If true, the first default direction for sorting will be descending. This may also be overridden at the column level.\n- `disableSortRemove: Bool`\n  - If true, the un-sorted state will not be available to columns once they have been sorted.\n- `disableMultiRemove: Bool`\n  - If true, the un-sorted state will not be available to multi-sorted columns.\n- `orderByFn: Function`\n  - Must be **memoizd**\n  - Defaults to the built-in [default orderBy function](TODO)\n  - This function is responsible for composing multiple sorting functions together for multi-sorting, and also handles both the directional sorting and stable-sorting tie breaking. Rarely would you want to override this function unless you have a very advanced use-case that requires it.\n- `sortTypes: Object<sortKey: sortType>`\n  - Must be **memoized**\n  - Allows overriding or adding additional sort types for columns to use. If a column's sort type isn't found on this object, it will default to using the [built-in sort types](TODO).\n  - For mor information on sort types, see [Sorting](TODO)\n\n### Instance Variables\n\nThe following values are provided to the table `instance`:\n\n- `rows: Array<Row>`\n  - An array of **sorted** rows.\n\n### Example\n\n```js\nconst state = useTableState({ sortBy: [{ id: 'firstName', desc: true }] })\n\nconst { rows } = useTable(\n  {\n    // state[0].sortBy === [{ id: 'firstName', desc: true }]\n    state,\n  },\n  useSortBy\n)\n```\n\n## `useExpanded`\n\n- Plugin Hook\n- Optional\n\n`useExpanded` is the hook that implements **row expanding**. It is most often used with `useGroupBy` to expand grouped rows, but is not limited to that use-case. It supports expanding rows both via internal table state and also via a hard-coded key on the raw row model.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `state[0].expanded: Object<[pathIndex]: Boolean | ExpandedStateObject>`\n  - Must be **memoized**\n  - An nested object of expanded paths.\n  - A `pathIndex` can be set as the key and its value set to `true` to expand that row's subRows into view. For example, if `{ '3': true }` was passed as the `expanded` state, the **4th row in the original data array** would be expanded.\n  - For nested expansion, you may **use another object** instead of a Boolean to expand sub rows. For example, if `{ '3': { '5' : true }}` was passed as the `expanded` state, then the **6th subRow of the 4th row and the 4th row of the original data array** would be expanded.\n  - This information is stored in state since the table is allowed to manipulate the filter through user interaction.\n- `subRowsKey: String`\n  - Required\n  - Defaults to `subRows`\n  - React Table will use this key when materializing the final row object. It also uses this key to infer sub-rows from the raw data.\n  - See [Grouping and Aggregation](#grouping-and-aggregation) for more information\n- `paginateSubRows: Bool`\n  - Defaults to `true`\n  - If set to `false`, expanded rows will not be paginated. Thus, any expanded subrows would potentially increase the size of any given page by the amount of total expanded subrows on the page.\n- `manualExpandedKey: String`\n  - Defaults to `expanded`\n  - This string is used as the key to detect manual expanded state on any given row. For example, if a raw data row like `{ name: 'Tanner Linsley', friends: [...], expanded: true}` was detected, it would be forcibly expanded, regardless of state.\n\n### Instance Variables\n\nThe following values are provided to the table `instance`:\n\n- `rows: Array<Row>`\n  - An array of **sorted** rows.\n\n### Example\n\n```js\nconst state = useTableState({ expanded: { '3': true, '5': { '2': true } } })\n\nconst { rows } = useTable(\n  {\n    // state[0].sortBy === { '3': true, '5': { '2': true } }\n    state,\n  },\n  useExpanded\n)\n```\n\n## `usePagination`\n\n- Plugin Hook\n- Optional\n\n`usePagination` is the hook that implements **row pagination**. It can be used for both client-side pagination or server-side pagination. For more information on pagination, see [Pagination](TODO)\n\n> **NOTE** Some server-side pagination implementations do not use page index and instead use **token based pagination**! If that's the case, please use the `useTokenPagination` plugin instead.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `state[0].pageSize: Int`\n  - **Required**\n  - Defaults to `10`\n  - Determines the amount of rows on any given page\n- `state[0].pageIndex: Int`\n  - **Required**\n  - Defaults to `0`\n  - The index of the page that should be displayed via the `page` instance value\n- `pageCount: Int`\n  - **Required if `manualPagination` is set to `true`**\n  - If `manualPagination` is `true`, then this value used to determine the amount of pages available. This amount is then used to materialize the `pageOptions` and also compute the `canNextPage` values on the table instance.\n- `manualPagination: Bool`\n  - Enables pagination functionality, but does not automatically perform row pagination.\n  - Turn this on if you wish to implement your own pagination outside of the table (eg. server-side pagination or any other manual pagination technique)\n- `disablePageResetOnDataChange`\n  - Defaults to `false`\n  - Normally, any changes detected to `rows`, `state.filters`, `state.groupBy`, or `state.sortBy` will trigger the `pageIndex` to be reset to `0`\n  - If set to `true`, the `pageIndex` will not be automatically set to `0` when these dependencies change.\n\n### Instance Variables\n\nThe following values are provided to the table `instance`:\n\n- `pages: Array<page>`\n  - An array of every generated `page`, each containing its respective rows.\n- `page: Array<row>`\n  - An array of rows for the **current** page, determined by the current `pageIndex` value.\n- `pageCount: Int`\n  - If `manualPagination` is set to `false`, this is the total amount of pages available in the table based on the current `pageSize` value\n  - if `manualPagination` is set to `true`, this is merely the same `pageCount` option that was passed in the table options.\n- `pageOptions: Array<Int>`\n  - An array of zero-based index integers corresponding to available pages in the table.\n  - This can be useful for generating things like select interfaces for the user to select a page from a list, instead of manually paginating to the desired page.\n- `canPreviousPage: Bool`\n  - If there are pages and the current `pageIndex` is greater than `0`, this will be `true`\n- `canNextPage:`\n  - If there are pages and the current `pageIndex` is less than `pageCount`, this will be `true`\n- `gotoPage: Function(pageIndex)`\n  - This function, when called with a valid `pageIndex`, will set `pageIndex` to that value.\n  - If the passed index is outside of the valid `pageIndex` range, then this function will do nothing.\n- `previousPage: Function`\n  - This function decreases `state.pageIndex` by one.\n  - If there are no pages or `canPreviousPage` is false, this function will do nothing.\n- `nextPage: Function`\n  - This function increases `state.pageIndex` by one.\n  - If there are no pages or `canNextPage` is false, this function will do nothing.\n- `setPageSize: Function(pageSize)`\n  - This function sets `state.pageSize` to the new value.\n  - As a result of a pageSize change, a new `state.pageIndex` is also calculated. It is calculated via `Math.floor(currentTopRowIndex / newPageSize)`\n- `pageIndex: Int`\n  - This is the resolved `state.pageIndex` value.\n- `pageSize: Int`\n  - This is the resolved `state.pageSize` value.\n\n### Example\n\n```js\nconst state = useTableState({ pageSize: 20, pageIndex: 1 })\n\nconst { rows } = useTable(\n  {\n    // state[0] === { pageSize: 20, pageIndex: 1 }\n    state,\n  },\n  usePagination\n)\n```\n\n## `useTokenPagination`\n\n- Plugin Hook\n- Optional\n\n`useTokenPagination` is the hook that **aids in implementing row pagination using tokens**. It is useful for server-side pagination implementations that use **tokens** instead of page index. For more information on pagination, see [Pagination](TODO)\n\n> Documentation Coming Soon...\n\n## `useTableState`\n\n- Optional\n\n`useTableState` is a hook that allows you to hoist the table state out of the table into your own code. You should use this hook if you need to:\n\n- Know about the internal table state\n- React to changes to the internal table state\n- Manually control or override the internal table state\n\nSome common use cases for this hook are:\n\n- Reacting to `pageIndex` and `pageSize` changes for server-side pagination to fetch new data\n- Disallowing specific states via a custom state reducer\n- Enabling parent/unrelated components to manipulate the table state\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `initialState: Object`\n  - Optional\n  - The initial state object for the table.\n  - This object is **merged over the `defaultState` object** (eg. `{...defaultState, ...initialState}`) that React Table and its hooks use to register default state to produce the final initial state object passed to the resolved `useState` hook.\n- `overrides: Object`\n  - Optional\n  - Must be **memoized**\n  - This object is **merged over the current table state** (eg. `{...state, ...overrides}`) to produce the final state object that is then passed to the `useTable` options\n- `options: Object`\n  - `reducer: Function(oldState, newState) => finalState`\n    - Optional\n    - Inspired by Kent C. Dodd's [State Reducer Pattern](https://kentcdodds.com/blog/the-state-reducer-pattern-with-react-hooks)\n    - With every `setState` call to a table state (even internally), this reducer is called and is allowed to modify the final state object for updating.\n    - It is passed the `oldState`, the `newState`, and an action `type`.\n  - `useState`\n    - Optional\n    - Defaults to `React.useState`\n    - This function, if defined will be used as the state hook internally instead of the default `React.useState`. This can be useful for implementing custom state storage hooks like useLocalStorage, etc.\n\n### Instance Variables\n\n- `tableStateTuple: [tableState, setTableState]`\n  - Similar in structure to the result of `React.useState`\n  - **Memoized**. This tuple array will not change between renders unless state or `useTableState` options change.\n  - `tableState: Object`\n    - This is the final state object of the table, which is the product of the `initialState`, `overrides` and the `reducer` options (if applicable)\n  - `setTableState: Function(updater, type) => void`\n    - This function is used both internally by React Table, and optionally by you (the developer) to update the table state programmatically.\n    - `updater: Function`\n      - This function signature is **almost** (see next point) identical to the functional API exposed by `React.setState`. It is passed the previous state and is expected to return a new version of the state.\n      - **NOTE: `updater` must be a function. Passing a replacement object is not supported as it is with React.useState**\n    - `type: String`\n      - The [action type](TODO) corresponding to what action being taken against the state.\n\n### Example\n\n```js\nexport default function MyTable({ manualPageIndex }) {\n  // This is the initial state for our table\n  const initialState = { pageSize: 10, pageIndex: 0 }\n\n  // Here, we can override the pageIndex\n  // regardless of the internal table state\n  const overrides = React.useMemo(() => ({\n    pageIndex: manualPageIndex,\n  }))\n\n  const state = useTableState(initialState, overrides)\n\n  // You can use effects to observe changes to the state\n  React.useEffect(() => {\n    console.log('Page Size Changed!', initialState.pageSize)\n  }, [initialState.pageSize])\n\n  const { rows } = useTable({\n    state,\n  })\n}\n```\n\n<!-- # Guides\n\n## Client Side Pagination\n\nTo add client side pagination, use the `usePagination` hook:\n\n```diff\n// Import React\nimport React from 'react'\n\n// Import React Table\nimport {\n  useTable,\n  useGroupBy,\n  useFilters,\n  useSortBy,\n  useExpanded,\n+  usePagination,\n} from 'react-table'\n\n// Create a component to render your table\nfunction MyTable(props) {\n  // Use the useTable hook to create your table configuration\n  const instance = useTable(\n    props,\n    useGroupBy,\n    useFilters,\n    useSortBy,\n    useExpanded,\n+   usePagination,\n  )\n\n  // Use the state and functions returned from useTable to build your UI\n  const {\n    getTableProps,\n    headerGroups,\n    rows,\n    getRowProps,\n    prepareRow,\n+   pageOptions,\n+   page,\n+   state: [{ pageIndex, pageSize }],\n+   gotoPage,\n+   previousPage,\n+   nextPage,\n+   setPageSize,\n+   canPreviousPage,\n+   canNextPage,\n  } = instance\n\n  // Render the UI for your table\n  return (\n    <div>\n      <table {...getTableProps()}>\n        ...\n      </table>\n+     <div>\n+       <button onClick={() => previousPage()} disabled={!canPreviousPage}>\n+         Previous Page\n+       </button>\n+       <button onClick={() => nextPage()} disabled={!canNextPage}>\n+         Next Page\n+       </button>\n+       <div>\n+         Page{' '}\n+         <em>\n+           {pageIndex + 1} of {pageOptions.length}\n+         </em>\n+       </div>\n+       <div>Go to page:</div>\n+       <input\n+         type=\"number\"\n+         defaultValue={pageIndex + 1 || 1}\n+         onChange={e => {\n+           const page = e.target.value ? Number(e.target.value) - 1 : 0\n+           gotoPage(page)\n+         }}\n+       />\n+       <select\n+         value={pageSize}\n+         onChange={e => {\n+           setPageSize(Number(e.target.value))\n+         }}\n+       >\n+         {pageSizeOptions.map(pageSize => (\n+           <option key={pageSize} value={pageSize}>\n+             Show {pageSize}\n+           </option>\n+         ))}\n+       </select>\n+     </div>\n    </div>\n  )\n}\n```\n\n## Server Side Pagination\n\nTo implement server-side pagination, use the `useTableState` and `usePagination` hooks:\n\n```diff\n\n``` -->\n\n<!-- # Setup\n\nTo begin using React Table you will need to start with a UI to render it. Below is a very basic component that should serve as a good starting point for most projects:\n\n```js\n// Import React\nimport React from 'react'\n\n// Import React Table\nimport {\n  useTable,\n  useGroupBy,\n  useFilters,\n  useSortBy,\n  useExpanded,\n  usePagination,\n} from 'react-table'\n\n// Create a component to render your table\nexport default function MyTable(props) {\n  // Use the useTable hook to create your table configuration\n  const instance = useTable(\n    props,\n    useGroupBy,\n    useFilters,\n    useSortBy,\n    useExpanded,\n    usePagination\n  )\n\n  // Use the state and functions returned from useTable to build your UI\n  const {\n    getTableProps,\n    headerGroups,\n    rows,\n    getRowProps,\n    pageOptions,\n    page,\n    state: [{ pageIndex, pageSize }],\n    gotoPage,\n    prepareRow,\n    previousPage,\n    nextPage,\n    setPageSize,\n    canPreviousPage,\n    canNextPage,\n  } = instance\n\n  // Render the UI for your table\n  return (\n    <div>\n      <table {...getTableProps()}>\n        <thead>\n          {headerGroups.map(headerGroup => (\n            <tr {...headerGroup.getRowProps()}>\n              {headerGroup.headers.map(column => (\n                <th {...column.getHeaderProps()}>{column.render('Header')}</th>\n              ))}\n            </tr>\n          ))}\n        </thead>\n        <tbody>\n          {page.map(\n            (row, i) =>\n              prepareRow(row) || (\n                <tr {...row.getRowProps()}>\n                  {row.cells.map(cell => {\n                    return (\n                      <td {...cell.getCellProps()}>{cell.render('Cell')}</td>\n                    )\n                  })}\n                </tr>\n              )\n          )}\n        </tbody>\n      </table>\n      <div>\n        <button onClick={() => previousPage()} disabled={!canPreviousPage}>\n          Previous Page\n        </button>\n        <button onClick={() => nextPage()} disabled={!canNextPage}>\n          Next Page\n        </button>\n        <div>\n          Page{' '}\n          <em>\n            {pageIndex + 1} of {pageOptions.length}\n          </em>\n        </div>\n        <div>Go to page:</div>\n        <input\n          type=\"number\"\n          defaultValue={pageIndex + 1 || 1}\n          onChange={e => {\n            const page = e.target.value ? Number(e.target.value) - 1 : 0\n            gotoPage(page)\n          }}\n        />\n        <select\n          value={pageSize}\n          onChange={e => {\n            setPageSize(Number(e.target.value))\n          }}\n        >\n          {pageSizeOptions.map(pageSize => (\n            <option key={pageSize} value={pageSize}>\n              Show {pageSize}\n            </option>\n          ))}\n        </select>\n      </div>\n    </div>\n  )\n}\n```\n\nYou can then use your table like so:\n\n```js\n\nimport MyTable from './MyTable'\n\nfunction MyApp () {\n  const columns = React.useMemo(() => [{\n    Header: \"Name\",\n    columns: [\n      {\n        Header: \"First Name\",\n        accessor: \"firstName\",\n      },\n      {\n        Header: \"Last Name\",\n        accessor: \"lastName\",\n      }\n    ]\n  }], [])\n\n  const data = [{\n    firstName: 'Tanner',\n    lastName: 'Linsley'\n  }, {\n    firstName: 'Shawn',\n    lastName: 'Wang'\n  }, {\n    firstName: 'Kent C.',\n    lastName: 'Dodds'\n  }, {\n    firstName: 'Ryan',\n    lastName: 'Florence'\n  }]\n\n  return <MyTable columns={columns} data={data} />\n``` -->\n\n## Contributing\n\nTo suggest a feature, create an issue if it does not already exist.\nIf you would like to help develop a suggested feature follow these steps:\n\n- Fork this repo\n- Install dependencies with `$ yarn`\n- Link `react-table` locally with `$ yarn link`\n- Auto-build files as you edit with `$ yarn start`\n- Implement your changes and tests to files in the `src/` directory\n- In any example directory, link to the local `react-table` with `$ yarn link react-table`\n- Follow example directions for running. Usually just `$ yarn && yarn start`\n- Document your changes in the root `README.md`\n- To stage a commit, run `yarn commit`\n- Submit PR for review\n","licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.0-alpha.11","dist":{"shasum":"a3908f1702a56c4b639e43229fe3680cea67274c","integrity":"sha512-sbkmiv6w2+0dGyIV+o7tIeARREc2JAcXoA5zS9zdATWpudCnxuKeTkSw79JyrHd9cI63NrP9NZ7iFR3PVkQ4XQ==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.0-alpha.11.tgz","fileCount":97,"unpackedSize":1611764,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdOzRECRA9TVsSAnZWagAAWacQAI6Z5AER6kejjwWlheVo\n9gw3FCmu8Wb0/H/8mvXEpPSjSLHIeOOFxPoGj1xI5DKi5HG5tj34d0HkAvsq\nyQPPVU5rFr5e3BwvJjcq4FeEGFwHQVoyDeNqNdWS8YLCHyq8FWpPdn+TdzNl\nHS0zPfGLHQI+xL2AeRM4A4g243E9Nj5oBaMfDFIjSaPGWO0frvd2ndlPGylI\nx7zh6m/plzF1rPH4ixr+LhoZw/tRHZ4P3AjA1iUhAL+/Q70j33NGAH/wpTEW\nc/N9u6x/tx5AtsC5gXN5mNcMmOxJhSuOyuWBpNt3Z6FIULEAMl/ODlD4WmlK\n/Nrk91kVrVnptaVD53gKUEqvW72CqfY7OeBzMZGIcjx/SdUGu/MgElgO2vPw\nSuWs2CNrvPuKL9RJ4qliVe9XFGVZUX5tS8SP6F9s73768kC7lFKfGScNUyN0\ntvVURA79p0MlNUHRPcF5CBRflRdrk2oW+Ewbfz/+mmOMtNSe9wCjnREo1H7A\n9leV4MfB44iCo6rGZBgnOMOYpmbOUtU/FpgJPmGz3HNdzFG8hetQ2zJU6lsl\nDWSzOPb8r/xW5+XgHzEPwL+45GI7jkTRNOIdSPgMjueZ6/a38iDdjURcrby9\nqFuGjiyrM8wDzNm2CPGXiWNWISvqxuNz0WXrvE99ePvqqLD7N4uApSgQB0Gt\n25pr\r\n=k817\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCrBX+I0FeGc1Ixx04Vg9BGNbIGv4NmgMkvJpkGGjxCSgIgMXDPp6OJ5RHeylkwxo/bzooroRIvXN+9TBcX7KKDYFw="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.0-alpha.11_1564161091490_0.8757563382677094"},"_hasShrinkwrap":false},"7.0.0-alpha.12":{"name":"react-table","version":"7.0.0-alpha.12","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"dist/index.js","module":"dist/index.es.js","jsnext:main":"dist/index.es.js","scripts":{"commit":"git commit","test":"is-ci 'test:ci' 'test:dev'","test:dev":"jest --watch","test:ci":"jest","build":"rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next"},"peerDependencies":{"prop-types":"^15.5.0","react":"^16.8.3","react-dom":"^16.8.3"},"devDependencies":{"@babel/plugin-proposal-class-properties":"^7.2.1","@babel/preset-env":"^7.2.0","@babel/preset-react":"^7.0.0","@babel/runtime":"^7.2.0","@svgr/rollup":"^4.1.0","@testing-library/react":"^8.0.4","babel-core":"7.0.0-bridge.0","babel-eslint":"9.x","commitizen":"^4.0.3","cross-env":"^5.1.4","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.x","eslint-plugin-jsx-a11y":"6.x","eslint-plugin-node":"^8.0.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.0.0","eslint-plugin-react":"7.x","eslint-plugin-react-hooks":"1.5.0","eslint-plugin-standard":"^4.0.0","husky":"^3.0.1","is-ci-cli":"^1.1.1","jest":"^24.8.0","jest-cli":"^24.8.0","jest-runner-eslint":"^0.7.4","jest-watch-select-projects":"^0.1.2","jest-watch-typeahead":"^0.3.1","lint-staged":"^9.2.1","rollup":"^0.68.0","rollup-plugin-babel":"^4.1.0","rollup-plugin-commonjs":"^9.1.3","rollup-plugin-node-resolve":"^4.0.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-uglify":"^6.0.2"},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"readmeFilename":"README.md","readme":"# React Table\n\nHooks for building **lightweight, fast and extendable datagrids** for React\n\n<a href=\"https://travis-ci.org/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://travis-ci.org/tannerlinsley/react-table.svg?branch=master\" />\n</a>\n<a href=\"https://npmjs.com/package/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-table.svg\" />\n</a>\n<a href=\"https://spectrum.chat/react-table\">\n  <img alt=\"Join the community on Spectrum\" src=\"https://withspectrum.github.io/badge/badge.svg\" />\n</a>\n<a href=\"https://github.com/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-table.svg?style=social&label=Star\" />\n</a>\n<a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n\n<br />\n<br />\n\n## Features\n\n- Lightweight\n- Headless (100% customizable, Bring-your-own-UI)\n- Client-side & Server-side pagination support\n- Sorting (Multi and Stable)\n- Filters\n- Pivoting & Aggregation\n- Fully controllable\n- Extensible via hooks\n- <a href=\"https://medium.com/@tannerlinsley/why-i-wrote-react-table-and-the-problems-it-has-solved-for-nozzle-others-445c4e93d4a8#.axza4ixba\" target=\"\\_parent\">\"Why I wrote React Table and the problems it has solved for Nozzle.io\"</a> by Tanner Linsley\n\n## Demos\n\n[React Table v7 Sandbox](https://codesandbox.io/s/m5lxzzpz69)\n\n## Versions\n\n- This documentation is for version 7.\n- [View the Changelog](https://github.com/tannerlinsley/react-table/blob/master/CHANGELOG.md)\n- Previous versions:\n  - [6.x.x Readme](https://github.com/tannerlinsley/react-table/tree/v6/)\n  - [5.x.x Readme](https://github.com/tannerlinsley/react-table/blob/ad7d31cd3978eb45da7c6194dbab93c1e9a8594d/README.md)\n\n## Sponsors\n\n**React Table v7** is being built and maintained by me, @tannerlinsley and I am always in need of more Patreon support to keep this project afloat. If you would like to contribute to my Patreon goal for v7 and beyond, [visit my Patreon and help me out!](https://patreon.com/tannerlinsley).\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/platinum.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://tryretool.com/?utm_source=sponsor&utm_campaign=react_table\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-retool.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/platinum-placeholder.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/gold.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://nozzle.io\" target=\"_blank\">\n          <img width=\"300\" src=\"https://nozzle.io/img/logo-blue.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://zappi.com/web\" target=\"_blank\">\n          <img width=\"300\" src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-zappi.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/gold-placeholder.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n# Documentation\n\n- [Installation](#installation)\n- [Concepts](#concepts)\n- [Setup](#setup)\n- [Contributing](#contributing)\n\n# Installation\n\nInstall React Table as a dependency using `npm` or `yarn`\n\n```bash\n# NPM\n$ npm install react-table\n\n# Yarn\n$ yarn add react-table\n```\n\nTo import React Table:\n\n```js\nimport {\n  useTable,\n  useGroupBy,\n  useFilters,\n  useSortBy,\n  useExpanded,\n  usePagination,\n  ...\n} from 'react-table'\n```\n\n# Examples\n\n- [Basic](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/master/examples/basic)\n- [Sorting with `useSortBy`](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/master/examples/sorting-with-useSortBy)\n- [Filtering with `useFilters`](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/master/examples/filtering-with-useFilters)\n\n# Concepts\n\n## React Table is a \"headless\" library\n\nReact Table is a headless utility, which means out of the box, it doesn't render or supply any actual UI elements. You are in charge of utilizing the state and callbacks of the hooks provided by this library to render your own table markup. [Read this article to understand why React Table is built this way.](https://medium.com/merrickchristensen/headless-user-interface-components-565b0c0f2e18). If you don't want to, then here's a quick rundown anyway:\n\n- Separation of Concerns - Not that superficial kind you read about all the time. The real kind. React Table as a library honestly has no business being in charge of your UI. The look, feel, and overall experience of your table is what makes your app or product great. The less React Table gets in the way of that, the better!\n- Maintenance - By removing the massive (and seemingly endless) API surface area required to support every UI use-case, React Table can remain small, easy-to-use and simple to update/maintain.\n- Extensibility - UI presents countless edge cases for a library simply because it's a creative medium, and one where every developer does things differently. By not dictating UI concerns, React Table empowers the developer to design and extend the UI based on their unique use-case.\n\n## The React Table API\n\nAt the heart of every React Table is a table `instance` object. This object contains everything needed to build a table and interact with it's state. This includes, but is not limited to:\n\n- Columns\n- Materialized Data\n- Sorting\n- Filtering\n- Grouping\n- Pagination\n- Expanded State\n- Any functionality provided by custom plugin hooks, too!\n\n## Using Hooks for configuration, state and lifecycle\n\nReact Table uses React Hooks both internally and externally for 100% of its configuration and lifecycle management. Naturally, this is what allows React Table to be headless and lightweight while still having a concise and simple API.\n\nReact Table is essentially a compatible collection of **custom React hooks**:\n\n- The primary React Table hook\n  - [`useTable`](#usetable)\n- Plugin Hooks\n  - Core Plugin Hooks\n    - [`useTableState`](#useTableState)\n    - [`useGroupBy`](#useGroupBy)\n    - [`useFilters`](#useFilters)\n    - [`useSortBy`](#useSortBy)\n    - [`useExpanded`](#useExpanded)\n    - [`usePagination`](#usePagination)\n    - [`useTokenPagination`](#useTokenPagination)\n  - Layout Plugin Hooks\n    - [`useFlexLayout`](#useFlexLayout)\n    - [`useAbsoluteLayout`](#useAbsoluteLayout) (coming soon!)\n- Custom Plugin Hooks\n  - Get your custom plugin hook listed here!\n\n### Hook Usage\n\n`useTable` is the **primary** hook used to build a React Table. It serves as the starting point for **every option and every plugin hook** that React Table supports. The options passed into `useTable` are supplied to every plugin hook after it in the order they are supplied, eventually resulting a final `instance` object that you can use to build your table UI and interact with the table's state.\n\n```js\nconst instance = useTable(\n  {\n    data: [...],\n    columns: [...],\n  },\n  useGroupBy,\n  useFilters,\n  useSortBy,\n  useExpanded,\n  usePagination\n)\n```\n\n### The stages of a React Table\n\n1. `useTable` is called. A table instance is created.\n1. The `instance.state` is resolved from either a custom user state or an automatically generated one.\n1. A collection of plugin points is created at `instance.hooks`. These plugin points don't run until after all of the plugins have run.\n1. The instance is reduced through each plugin hook in the order they were called. Each hook receives the result of the previous hook, is able to manipulate the `instance`, use plugin points, use their own React hooks internally and eventually return a new `instance`. This happens until the last instance object is returned from the last hook.\n1. Lastly, the plugin points that were registered and populated during hook reduction are run to produce the final instance object that is returned from `useTable`\n\nThis multi-stage process is the secret sauce that allows React Table plugin hooks to work together and compose nicely, while not stepping on each others toes.\n\n### Plugin Hook Order & Consistency\n\nThe order and usage of plugin hooks must follow [The Laws of Hooks](TODO), just like any other custom hook. They must always be unconditionally called in the same order.\n\n> **NOTE: In the event that you want to programmatically enable or disable plugin hooks, most of them provide options to disable their functionality, eg. `options.disableSorting`**\n\n### Option Memoization\n\nReact Table relies on memoization to determine when state and side effects should update or be calculated. This means that every option you pass to `useTable` should be memoized either via `React.useMemo` (for objects) or `React.useCallback` (for functions).\n\n# API\n\n## `useTable`\n\n- Required\n\n`useTable` is the root hook for React Table. To use it, pass it with an options object with at least a `columns` and `rows` value, followed by any React Table compatible hooks you want to use.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `columns: Array<Column>`\n  - Required\n  - Must be **memoized**\n  - The core columns configuration object for the entire table.\n  - Supports nested `columns` arrays via the `column.children` key\n- `data: Array<any>`\n  - Required\n  - Must be **memoized**\n  - The data array that you want to display on the table.\n- `state: TableStateTuple[stateObject, stateUpdater]`\n  - Optional\n  - Must be **memoized** table state tuple. See [`useTableState`](#usetablestate) for more information.\n  - The state/updater pair for the table instance. You would want to override this if you plan on controlling or hoisting table state into your own code.\n  - Defaults to using an internal `useTableState()` instance if not defined.\n  - See [Controlling and Hoisting Table State](#controlling-and-hoisting-table-state)\n- `defaultColumn: Object`\n  - Optional\n  - Defaults to `{}`\n  - The default column object for every column passed to React Table.\n  - Column-specific properties will override the properties in this object, eg. `{ ...defaultColumn, ...userColumn }`\n  - This is particularly useful for adding global column properties. For instance, when using the `useFilters` plugin hook, add a default `Filter` renderer for every column, eg.`{ Filter: MyDefaultFilterComponent }`\n- `useColumns: Function`\n  - Optional\n  - This hook overrides the internal `useColumns` hooks used by `useTable`. You probably never want to override this unless you are testing or developing new features for React Table\n- `useRows: Function`\n  - Optional\n  - This hook overrides the internal `useRows` hooks used by `useTable`. You probably never want to override this unless you are testing or developing new features for React Table\n- `debug: Bool`\n  - Optional\n  - A flag to turn on debug mode.\n  - Defaults to `false`\n\n### `column` Options\n\nThe following options are supported on any column object you can pass to `columns`.\n\n- `accessor: String | Function`\n  - **Required**\n  - This string/function is used to build the data model for your column.\n  - The data returned by an accessor should be **primitive** and sortable.\n  - If a string is passed, the column's value will be looked up on the original row via that key, eg. If your column's accessor is `firstName` then its value would be read from `row['firstName']`. You can also specify deeply nested values with accessors like `info.hobbies` or even `address[0].street`\n  - If a function is passed, the column's value will be looked up on the original row using this accessor function, eg. If your column's accessor is `row => row.firstName`, then its value would be determined by passing the row to this function and using the resulting value.\n- `id: String`\n  - **Required if `accessor` is a function**\n  - This is the unique ID for the column. It is used by reference in things like sorting, grouping, filtering etc.\n  - If a **string** accessor is used, it defaults as the column ID, but can be overridden if necessary.\n- `columns: Array<Column>`\n  - Optional\n  - A nested array of columns.\n  - If defined, the column will act as a header group. Columns can be recursively nested as much as needed.\n- `show: Boolean | Function`\n  - Optional\n  - Defaults to `true`\n  - If set to `false`, the column will be hidden.\n  - If set to a `function`, it will be called with the current table instance and can then return `true` or `false`.\n  - The data model for hidden columns is still calculated including sorting, filters, and grouping.\n- `Header: String | Function | React.Component => JSX`\n  - Optional\n  - Defaults to `({ id }) => id`\n  - Receives the table instance and column model as props\n  - Must either be a **string or return valid JSX**\n  - If a function/component is passed, it will be used for formatting the header value, eg. You can use a `Header` function to dynamically format the header using any table or column state.\n- `Cell: Function | React.Component => JSX`\n  - Optional\n  - Defaults to `({ value }) => value`\n  - Receives the table instance and cell model as props\n  - Must return valid JSX\n  - This function (or component) is primarily used for formatting the column value, eg. If your column accessor returns a date object, you can use a `Cell` function to format that date to a readable format.\n\n### `Instance` Properties\n\nThe following properties are available on the table instance returned from `useTable`\n\n- `headerGroups: Array<HeaderGroup>`\n  - An array of normalized header groups, each containing a flattened array of final column objects for that row.\n  - See [Header Group Properties](#header-group-properties) for more information\n- `columns: Array<Column>`\n  - A **flat** array of all final column objects computed from the original columns configuration option.\n  - See [Column Properties](#column-properties) for more information\n- `headers[] Array<Column>`\n  - A **nested** array of final column objects, similar in structure to the original columns configuration option.\n  - See [Column Properties](#column-properties) for more information\n- `rows: Array<Row>`\n  - An array of **materialized row objects** from theriginal `dat oa` array and `columns` passed into the table options\n  - See [Row Properties](#row-properties) for more information\n- `getTableProps: Function(?props)`\n  - **Required**\n  - This function is used to resolve any props needed for your table wrapper.\n  - Custom props may be passed. **NOTE: Custom props will override built-in table props, so be careful!**\n- `prepareRow: Function(Row)`\n  - **Required**\n  - This function is responsible for lazily preparing a row for rendering. Any row that you intend to render in your table needs to be passed to this function **before every render**.\n  - **Why?** Since table data could potentially be very large, it can become very expensive to compute all of the necessary state for every row to be rendered regardless if it actually is rendered or not (for example if you are paginating or virtualizing the rows, you may only have a few rows visible at any given moment). This function allows only the rows you intend to display to be computed and prepped with the correct state.\n\n### `HeaderGroup` Properties\n\nHeader Groups are The following additional properties are available on every `headerGroup` object returned by the table instance.\n\n- `headers: Array<Column>`\n  - **Required**\n  - The columns in this header group.\n- `getHeaderGroupProps: Function(?props)`\n  - **Required**\n  - This function is used to resolve any props needed for this header group's row.\n  - You can use the `getHeaderGroupProps` hook to extend its functionality.\n  - Custom props may be passed. **NOTE: Custom props will override built-in table props, so be careful!**\n\n### `Column` Properties\n\nThe following properties are available on every `Column` object returned by the table instance.\n\n- `id: String`\n  - The resolved column ID from either the column's `accessor` or the column's hard-coded `id` property\n- `visible: Boolean`\n  - The resolved visible state for the column, derived from the column's `show` property\n- `render: Function(type: String | Function | Component, ?props)`\n  - This function is used to render content in context of a column.\n  - If `type` is a string, will render using the `column[type]` renderer. React Table ships with default `Header` renderers. Other renderers like `Filter` are available via hooks like `useFilters`.\n  - If a function or component is passed instead of a string, it will be be passed the table instance and column model as props and is expected to return any valid JSX.\n- `getHeaderProps: Function(?props)`\n  - **Required**\n  - This function is used to resolve any props needed for this column's header cell.\n  - You can use the `getHeaderProps` hook to extend its functionality.\n  - Custom props may be passed. **NOTE: Custom props will override built-in table props, so be careful!**\n\n### `Row` Properties\n\nThe following additional properties are available on every `row` object returned by the table instance.\n\n- `cells: Array<Cell>`\n  - An array of `Cell` objects containing properties and functions specific to the row and column it belongs to.\n  - See [Cell Properties](#cell-properties) for more information\n- `values: Object<columnID: any>`\n  - A map of this row's **resolved** values by columnID, eg. `{ firstName: 'Tanner', lastName: 'Linsley' }`\n- `getRowProps: Function(?props)`\n  - **Required**\n  - This function is used to resolve any props needed for this row.\n  - You can use the `getRowProps` hook to extend its functionality.\n  - Custom props may be passed. **NOTE: Custom props will override built-in table props, so be careful!**\n\n### `Cell` Properties\n\nThe following additional properties are available on every `Cell` object returned in an array of `cells` on every row object.\n\n- `column: Column`\n  - The corresponding column object for this cell\n- `row: Row`\n  - The corresponding row object for this cell\n- `value: any`\n  - The **resolved** value for this cell.\n  - By default, this value is displayed on the table via the default `Cell` renderer. To override the way a cell displays\n- `getCellProps: Function(?props)`\n  - **Required**\n  - This function is used to resolve any props needed for this cell.\n  - You can use the `getCellProps` hook to extend its functionality.\n  - Custom props may be passed. **NOTE: Custom props will override built-in table props, so be careful!**\n- `render: Function(type: String | Function | Component, ?props)`\n  - This function is used to render content in context of a cell.\n  - If `type` is a string, will render using the `column[type]` renderer. React Table ships with a default `Cell` renderer. Other renderers like `Aggregated` are available via hooks like `useFilters`.\n  - If a function or component is passed instead of a string, it will be be passed the table instance and cell model as props and is expected to return any valid JSX.\n\n### Example\n\n```js\nfunction App() {\n  const columns = React.useMemo(\n    () => [\n      {\n        Header: 'Name',\n        columns: [\n          {\n            Header: 'First Name',\n            accessor: 'firstName',\n          },\n          {\n            Header: 'Last Name',\n            accessor: 'lastName',\n          },\n        ],\n      },\n    ],\n    []\n  )\n\n  const data = [\n    {\n      firstName: 'Tanner',\n      lastName: 'Linsley',\n    },\n    {\n      firstName: 'Shawn',\n      lastName: 'Wang',\n    },\n    {\n      firstName: 'Kent C.',\n      lastName: 'Dodds',\n    },\n    {\n      firstName: 'Ryan',\n      lastName: 'Florence',\n    },\n  ]\n\n  return <MyTable columns={columns} data={data} />\n}\n\nfunction MyTable({ columns, data }) {\n  const { getTableProps, headerGroups, rows, prepareRow } = useTable({\n    columns,\n    data,\n  })\n\n  return (\n    <table {...getTableProps()}>\n      <thead>\n        {headerGroups.map(headerGroup => (\n          <tr {...headerGroup.getRowProps()}>\n            {headerGroup.headers.map(column => (\n              <th {...column.getHeaderProps()}>{column.render('Header')}</th>\n            ))}\n          </tr>\n        ))}\n      </thead>\n      <tbody>\n        {rows.map(\n          (row, i) =>\n            prepareRow(row) || (\n              <tr {...row.getRowProps()}>\n                {row.cells.map(cell => {\n                  return <td {...cell.getCellProps()}>{cell.render('Cell')}</td>\n                })}\n              </tr>\n            )\n        )}\n      </tbody>\n    </table>\n  )\n}\n```\n\n## `useGroupBy`\n\n- Plugin Hook\n- Optional\n\n`useGroupBy` is the hook that implements **row grouping and aggregation**.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `state[0].groupBy: Array<String>`\n  - Must be **memoized**\n  - An array of groupBy ID strings, controlling which columns are used to calculate row grouping and aggregation. This information is stored in state since the table is allowed to manipulate the groupBy through user interaction.\n- `groupByFn: Function`\n  - Must be **memoized**\n  - Defaults to [`defaultGroupByFn`](TODO)\n  - This function is responsible for grouping rows based on the `state.groupBy` keys provided. It's very rare you would need to customize this function.\n- `manualGroupBy: Bool`\n  - Enables groupBy detection and functionality, but does not automatically perform row grouping.\n  - Turn this on if you wish to implement your own row grouping outside of the table (eg. server-side or manual row grouping/nesting)\n- `disableGrouping: Bool`\n  - Disables groupBy for the entire table.\n- `aggregations: Object<aggregationKey: aggregationFn>`\n  - Must be **memoized**\n  - Allows overriding or adding additional aggregation functions for use when grouping/aggregating row values. If an aggregation key isn't found on this object, it will default to using the [built-in aggregation functions](TODO)\n\n### `Instance` Properties\n\nThe following values are provided to the table `instance`:\n\n- `rows: Array<Row>`\n  - An array of **grouped and aggregated** rows.\n\n### Example\n\n```js\nconst state = useTableState({ groupBy: ['firstName'] })\n\nconst aggregations = React.useMemo(() => ({\n  customSum: (values, rows) => values.reduce((sum, next) => sum + next, 0),\n}))\n\nconst { rows } = useTable(\n  {\n    state, // state[0].groupBy === ['firstName']\n    manualGroupBy: false,\n    disableGrouping: false,\n    aggregations,\n  },\n  useGroupBy\n)\n```\n\n## `useFilters`\n\n- Plugin Hook\n- Optional\n\n`useFilters` is the hook that implements **row filtering**.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `state[0].filters: Object<columnID: filterValue>`\n  - Must be **memoized**\n  - An object of columnID's and their corresponding filter values. This information is stored in state since the table is allowed to manipulate the filter through user interaction.\n- `defaultFilter: String | Function`\n  - If a **function** is passed, it must be **memoized**\n  - Defaults to [`text`](TODO)\n  - The function (or resolved function from the string) will be used as the default/fallback filter method for every column that has filtering enabled.\n    - If a `string` is passed, the function with that name located on the `filterTypes` option object will be used.\n    - If a `function` is passed, it will be used.\n  - For mor information on filter types, see [Filtering](TODO)\n- `manualFilters: Bool`\n  - Enables filter detection functionality, but does not automatically perform row filtering.\n  - Turn this on if you wish to implement your own row filter outside of the table (eg. server-side or manual row grouping/nesting)\n- `disableFilters: Bool`\n  - Disables filtering for every column in the entire table.\n- `filterTypes: Object<filterKey: filterType>`\n  - Must be **memoized**\n  - Allows overriding or adding additional filter types for columns to use. If a column's filter type isn't found on this object, it will default to using the [built-in filter types](TODO).\n  - For mor information on filter types, see [Filtering](TODO)\n\n### `Instance` Properties\n\nThe following values are provided to the table `instance`:\n\n- `rows: Array<Row>`\n  - An array of **filtered** rows.\n- `preFilteredRows: Array<Row>`\n  - The array of rows **used right before filtering**.\n  - Among many other use-cases, these rows are directly useful for building option lists in filters, since the resulting filtered `rows` do not contain every possible option.\n- `setFilter: Function(columnID, filterValue) => void`\n  - An instance-level function used to update the filter value for a specific column.\n- `setAllFilters: Function(filtersObject) => void`\n  - An instance-level function used to update the values for **all** filters on the table, all at once.\n\n### Example\n\n```js\n// A great library for fuzzy filtering/sorting items\nimport matchSorter from 'match-sorter'\n\nconst state = useTableState({ filters: { firstName: 'tanner' } })\n\nconst filterTypes = React.useMemo(() => ({\n  // Add a new fuzzyText filter type.\n  fuzzyText: (rows, id, filterValue) => {\n    return matchSorter(rows, filterValue, { keys: [row => row[id] })\n  },\n  // Or, override the default text filter to use\n  // \"startWith\"\n  text: (rows, id, filterValue) => {\n    return rows.filter(row => {\n      const rowValue = row.values[id]\n      return rowValue !== undefined\n        ? String(rowValue)\n            .toLowerCase()\n            .startsWith(String(filterValue).toLowerCase())\n        : true\n    })\n  }\n}), [matchSorter])\n\n// Override the default column filter to be our new `fuzzyText` filter type\nconst defaultColumn = React.useMemo(() => ({\n  filter: 'fuzzyText'\n}))\n\nconst { rows } = useTable(\n  {\n    // state[0].groupBy === ['firstName']\n    state,\n    manualFilters: false,\n    disableFilters: false,\n    // Pass our custom filter types\n    filterTypes,\n    defaultColumn\n  },\n  useFilters\n)\n```\n\n## `useSortBy`\n\n- Plugin Hook\n- Optional\n\n`useSortBy` is the hook that implements **row sorting**. It also support multi-sort (keyboard required).\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `state[0].sortBy: Array<Object<id: columnID, desc: Bool>>`\n  - Must be **memoized**\n  - An array of sorting objects. If there is more than one object in the array, multi-sorting will be enabled. Each sorting object should contain an `id` key with the corresponding column ID to sort by. An optional `desc` key may be set to true or false to indicated ascending or descending sorting for that column. This information is stored in state since the table is allowed to manipulate the filter through user interaction.\n- `defaultSortType: String | Function`\n  - If a **function** is passed, it must be **memoized**\n  - Defaults to [`alphanumeric`](TODO)\n  - The function (or resolved function from the string) will be used as the default/fallback sort method for every column that has sorting enabled.\n    - If a `string` is passed, the function with that name located on the `sortTypes` option object will be used.\n    - If a `function` is passed, it will be used.\n  - For mor information on sort types, see [Sorting](TODO)\n- `manualSorting: Bool`\n  - Enables sorting detection functionality, but does not automatically perform row sorting. Turn this on if you wish to implement your own sorting outside of the table (eg. server-side or manual row grouping/nesting)\n- `disableSorting: Bool`\n  - Disables sorting for every column in the entire table.\n- `disableMultiSort: Bool`\n  - Disables multi-sorting for the entire table.\n- `defaultSortDesc: Bool`\n  - If true, the first default direction for sorting will be descending. This may also be overridden at the column level.\n- `disableSortRemove: Bool`\n  - If true, the un-sorted state will not be available to columns once they have been sorted.\n- `disableMultiRemove: Bool`\n  - If true, the un-sorted state will not be available to multi-sorted columns.\n- `orderByFn: Function`\n  - Must be **memoizd**\n  - Defaults to the built-in [default orderBy function](TODO)\n  - This function is responsible for composing multiple sorting functions together for multi-sorting, and also handles both the directional sorting and stable-sorting tie breaking. Rarely would you want to override this function unless you have a very advanced use-case that requires it.\n- `sortTypes: Object<sortKey: sortType>`\n  - Must be **memoized**\n  - Allows overriding or adding additional sort types for columns to use. If a column's sort type isn't found on this object, it will default to using the [built-in sort types](TODO).\n  - For mor information on sort types, see [Sorting](TODO)\n\n### Instance Variables\n\nThe following values are provided to the table `instance`:\n\n- `rows: Array<Row>`\n  - An array of **sorted** rows.\n\n### Example\n\n```js\nconst state = useTableState({ sortBy: [{ id: 'firstName', desc: true }] })\n\nconst { rows } = useTable(\n  {\n    // state[0].sortBy === [{ id: 'firstName', desc: true }]\n    state,\n  },\n  useSortBy\n)\n```\n\n## `useExpanded`\n\n- Plugin Hook\n- Optional\n\n`useExpanded` is the hook that implements **row expanding**. It is most often used with `useGroupBy` to expand grouped rows, but is not limited to that use-case. It supports expanding rows both via internal table state and also via a hard-coded key on the raw row model.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `state[0].expanded: Object<[pathIndex]: Boolean | ExpandedStateObject>`\n  - Must be **memoized**\n  - An nested object of expanded paths.\n  - A `pathIndex` can be set as the key and its value set to `true` to expand that row's subRows into view. For example, if `{ '3': true }` was passed as the `expanded` state, the **4th row in the original data array** would be expanded.\n  - For nested expansion, you may **use another object** instead of a Boolean to expand sub rows. For example, if `{ '3': { '5' : true }}` was passed as the `expanded` state, then the **6th subRow of the 4th row and the 4th row of the original data array** would be expanded.\n  - This information is stored in state since the table is allowed to manipulate the filter through user interaction.\n- `subRowsKey: String`\n  - Required\n  - Defaults to `subRows`\n  - React Table will use this key when materializing the final row object. It also uses this key to infer sub-rows from the raw data.\n  - See [Grouping and Aggregation](#grouping-and-aggregation) for more information\n- `paginateSubRows: Bool`\n  - Defaults to `true`\n  - If set to `false`, expanded rows will not be paginated. Thus, any expanded subrows would potentially increase the size of any given page by the amount of total expanded subrows on the page.\n- `manualExpandedKey: String`\n  - Defaults to `expanded`\n  - This string is used as the key to detect manual expanded state on any given row. For example, if a raw data row like `{ name: 'Tanner Linsley', friends: [...], expanded: true}` was detected, it would be forcibly expanded, regardless of state.\n\n### Instance Variables\n\nThe following values are provided to the table `instance`:\n\n- `rows: Array<Row>`\n  - An array of **sorted** rows.\n\n### Example\n\n```js\nconst state = useTableState({ expanded: { '3': true, '5': { '2': true } } })\n\nconst { rows } = useTable(\n  {\n    // state[0].sortBy === { '3': true, '5': { '2': true } }\n    state,\n  },\n  useExpanded\n)\n```\n\n## `usePagination`\n\n- Plugin Hook\n- Optional\n\n`usePagination` is the hook that implements **row pagination**. It can be used for both client-side pagination or server-side pagination. For more information on pagination, see [Pagination](TODO)\n\n> **NOTE** Some server-side pagination implementations do not use page index and instead use **token based pagination**! If that's the case, please use the `useTokenPagination` plugin instead.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `state[0].pageSize: Int`\n  - **Required**\n  - Defaults to `10`\n  - Determines the amount of rows on any given page\n- `state[0].pageIndex: Int`\n  - **Required**\n  - Defaults to `0`\n  - The index of the page that should be displayed via the `page` instance value\n- `pageCount: Int`\n  - **Required if `manualPagination` is set to `true`**\n  - If `manualPagination` is `true`, then this value used to determine the amount of pages available. This amount is then used to materialize the `pageOptions` and also compute the `canNextPage` values on the table instance.\n- `manualPagination: Bool`\n  - Enables pagination functionality, but does not automatically perform row pagination.\n  - Turn this on if you wish to implement your own pagination outside of the table (eg. server-side pagination or any other manual pagination technique)\n- `disablePageResetOnDataChange`\n  - Defaults to `false`\n  - Normally, any changes detected to `rows`, `state.filters`, `state.groupBy`, or `state.sortBy` will trigger the `pageIndex` to be reset to `0`\n  - If set to `true`, the `pageIndex` will not be automatically set to `0` when these dependencies change.\n\n### Instance Variables\n\nThe following values are provided to the table `instance`:\n\n- `pages: Array<page>`\n  - An array of every generated `page`, each containing its respective rows.\n- `page: Array<row>`\n  - An array of rows for the **current** page, determined by the current `pageIndex` value.\n- `pageCount: Int`\n  - If `manualPagination` is set to `false`, this is the total amount of pages available in the table based on the current `pageSize` value\n  - if `manualPagination` is set to `true`, this is merely the same `pageCount` option that was passed in the table options.\n- `pageOptions: Array<Int>`\n  - An array of zero-based index integers corresponding to available pages in the table.\n  - This can be useful for generating things like select interfaces for the user to select a page from a list, instead of manually paginating to the desired page.\n- `canPreviousPage: Bool`\n  - If there are pages and the current `pageIndex` is greater than `0`, this will be `true`\n- `canNextPage:`\n  - If there are pages and the current `pageIndex` is less than `pageCount`, this will be `true`\n- `gotoPage: Function(pageIndex)`\n  - This function, when called with a valid `pageIndex`, will set `pageIndex` to that value.\n  - If the passed index is outside of the valid `pageIndex` range, then this function will do nothing.\n- `previousPage: Function`\n  - This function decreases `state.pageIndex` by one.\n  - If there are no pages or `canPreviousPage` is false, this function will do nothing.\n- `nextPage: Function`\n  - This function increases `state.pageIndex` by one.\n  - If there are no pages or `canNextPage` is false, this function will do nothing.\n- `setPageSize: Function(pageSize)`\n  - This function sets `state.pageSize` to the new value.\n  - As a result of a pageSize change, a new `state.pageIndex` is also calculated. It is calculated via `Math.floor(currentTopRowIndex / newPageSize)`\n- `pageIndex: Int`\n  - This is the resolved `state.pageIndex` value.\n- `pageSize: Int`\n  - This is the resolved `state.pageSize` value.\n\n### Example\n\n```js\nconst state = useTableState({ pageSize: 20, pageIndex: 1 })\n\nconst { rows } = useTable(\n  {\n    // state[0] === { pageSize: 20, pageIndex: 1 }\n    state,\n  },\n  usePagination\n)\n```\n\n## `useTokenPagination`\n\n- Plugin Hook\n- Optional\n\n`useTokenPagination` is the hook that **aids in implementing row pagination using tokens**. It is useful for server-side pagination implementations that use **tokens** instead of page index. For more information on pagination, see [Pagination](TODO)\n\n> Documentation Coming Soon...\n\n## `useTableState`\n\n- Optional\n\n`useTableState` is a hook that allows you to hoist the table state out of the table into your own code. You should use this hook if you need to:\n\n- Know about the internal table state\n- React to changes to the internal table state\n- Manually control or override the internal table state\n\nSome common use cases for this hook are:\n\n- Reacting to `pageIndex` and `pageSize` changes for server-side pagination to fetch new data\n- Disallowing specific states via a custom state reducer\n- Enabling parent/unrelated components to manipulate the table state\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `initialState: Object`\n  - Optional\n  - The initial state object for the table.\n  - This object is **merged over the `defaultState` object** (eg. `{...defaultState, ...initialState}`) that React Table and its hooks use to register default state to produce the final initial state object passed to the resolved `useState` hook.\n- `overrides: Object`\n  - Optional\n  - Must be **memoized**\n  - This object is **merged over the current table state** (eg. `{...state, ...overrides}`) to produce the final state object that is then passed to the `useTable` options\n- `options: Object`\n  - `reducer: Function(oldState, newState) => finalState`\n    - Optional\n    - Inspired by Kent C. Dodd's [State Reducer Pattern](https://kentcdodds.com/blog/the-state-reducer-pattern-with-react-hooks)\n    - With every `setState` call to a table state (even internally), this reducer is called and is allowed to modify the final state object for updating.\n    - It is passed the `oldState`, the `newState`, and an action `type`.\n  - `useState`\n    - Optional\n    - Defaults to `React.useState`\n    - This function, if defined will be used as the state hook internally instead of the default `React.useState`. This can be useful for implementing custom state storage hooks like useLocalStorage, etc.\n\n### Instance Variables\n\n- `tableStateTuple: [tableState, setTableState]`\n  - Similar in structure to the result of `React.useState`\n  - **Memoized**. This tuple array will not change between renders unless state or `useTableState` options change.\n  - `tableState: Object`\n    - This is the final state object of the table, which is the product of the `initialState`, `overrides` and the `reducer` options (if applicable)\n  - `setTableState: Function(updater, type) => void`\n    - This function is used both internally by React Table, and optionally by you (the developer) to update the table state programmatically.\n    - `updater: Function`\n      - This function signature is **almost** (see next point) identical to the functional API exposed by `React.setState`. It is passed the previous state and is expected to return a new version of the state.\n      - **NOTE: `updater` must be a function. Passing a replacement object is not supported as it is with React.useState**\n    - `type: String`\n      - The [action type](TODO) corresponding to what action being taken against the state.\n\n### Example\n\n```js\nexport default function MyTable({ manualPageIndex }) {\n  // This is the initial state for our table\n  const initialState = { pageSize: 10, pageIndex: 0 }\n\n  // Here, we can override the pageIndex\n  // regardless of the internal table state\n  const overrides = React.useMemo(() => ({\n    pageIndex: manualPageIndex,\n  }))\n\n  const state = useTableState(initialState, overrides)\n\n  // You can use effects to observe changes to the state\n  React.useEffect(() => {\n    console.log('Page Size Changed!', initialState.pageSize)\n  }, [initialState.pageSize])\n\n  const { rows } = useTable({\n    state,\n  })\n}\n```\n\n<!-- # Guides\n\n## Client Side Pagination\n\nTo add client side pagination, use the `usePagination` hook:\n\n```diff\n// Import React\nimport React from 'react'\n\n// Import React Table\nimport {\n  useTable,\n  useGroupBy,\n  useFilters,\n  useSortBy,\n  useExpanded,\n+  usePagination,\n} from 'react-table'\n\n// Create a component to render your table\nfunction MyTable(props) {\n  // Use the useTable hook to create your table configuration\n  const instance = useTable(\n    props,\n    useGroupBy,\n    useFilters,\n    useSortBy,\n    useExpanded,\n+   usePagination,\n  )\n\n  // Use the state and functions returned from useTable to build your UI\n  const {\n    getTableProps,\n    headerGroups,\n    rows,\n    getRowProps,\n    prepareRow,\n+   pageOptions,\n+   page,\n+   state: [{ pageIndex, pageSize }],\n+   gotoPage,\n+   previousPage,\n+   nextPage,\n+   setPageSize,\n+   canPreviousPage,\n+   canNextPage,\n  } = instance\n\n  // Render the UI for your table\n  return (\n    <div>\n      <table {...getTableProps()}>\n        ...\n      </table>\n+     <div>\n+       <button onClick={() => previousPage()} disabled={!canPreviousPage}>\n+         Previous Page\n+       </button>\n+       <button onClick={() => nextPage()} disabled={!canNextPage}>\n+         Next Page\n+       </button>\n+       <div>\n+         Page{' '}\n+         <em>\n+           {pageIndex + 1} of {pageOptions.length}\n+         </em>\n+       </div>\n+       <div>Go to page:</div>\n+       <input\n+         type=\"number\"\n+         defaultValue={pageIndex + 1 || 1}\n+         onChange={e => {\n+           const page = e.target.value ? Number(e.target.value) - 1 : 0\n+           gotoPage(page)\n+         }}\n+       />\n+       <select\n+         value={pageSize}\n+         onChange={e => {\n+           setPageSize(Number(e.target.value))\n+         }}\n+       >\n+         {pageSizeOptions.map(pageSize => (\n+           <option key={pageSize} value={pageSize}>\n+             Show {pageSize}\n+           </option>\n+         ))}\n+       </select>\n+     </div>\n    </div>\n  )\n}\n```\n\n## Server Side Pagination\n\nTo implement server-side pagination, use the `useTableState` and `usePagination` hooks:\n\n```diff\n\n``` -->\n\n<!-- # Setup\n\nTo begin using React Table you will need to start with a UI to render it. Below is a very basic component that should serve as a good starting point for most projects:\n\n```js\n// Import React\nimport React from 'react'\n\n// Import React Table\nimport {\n  useTable,\n  useGroupBy,\n  useFilters,\n  useSortBy,\n  useExpanded,\n  usePagination,\n} from 'react-table'\n\n// Create a component to render your table\nexport default function MyTable(props) {\n  // Use the useTable hook to create your table configuration\n  const instance = useTable(\n    props,\n    useGroupBy,\n    useFilters,\n    useSortBy,\n    useExpanded,\n    usePagination\n  )\n\n  // Use the state and functions returned from useTable to build your UI\n  const {\n    getTableProps,\n    headerGroups,\n    rows,\n    getRowProps,\n    pageOptions,\n    page,\n    state: [{ pageIndex, pageSize }],\n    gotoPage,\n    prepareRow,\n    previousPage,\n    nextPage,\n    setPageSize,\n    canPreviousPage,\n    canNextPage,\n  } = instance\n\n  // Render the UI for your table\n  return (\n    <div>\n      <table {...getTableProps()}>\n        <thead>\n          {headerGroups.map(headerGroup => (\n            <tr {...headerGroup.getRowProps()}>\n              {headerGroup.headers.map(column => (\n                <th {...column.getHeaderProps()}>{column.render('Header')}</th>\n              ))}\n            </tr>\n          ))}\n        </thead>\n        <tbody>\n          {page.map(\n            (row, i) =>\n              prepareRow(row) || (\n                <tr {...row.getRowProps()}>\n                  {row.cells.map(cell => {\n                    return (\n                      <td {...cell.getCellProps()}>{cell.render('Cell')}</td>\n                    )\n                  })}\n                </tr>\n              )\n          )}\n        </tbody>\n      </table>\n      <div>\n        <button onClick={() => previousPage()} disabled={!canPreviousPage}>\n          Previous Page\n        </button>\n        <button onClick={() => nextPage()} disabled={!canNextPage}>\n          Next Page\n        </button>\n        <div>\n          Page{' '}\n          <em>\n            {pageIndex + 1} of {pageOptions.length}\n          </em>\n        </div>\n        <div>Go to page:</div>\n        <input\n          type=\"number\"\n          defaultValue={pageIndex + 1 || 1}\n          onChange={e => {\n            const page = e.target.value ? Number(e.target.value) - 1 : 0\n            gotoPage(page)\n          }}\n        />\n        <select\n          value={pageSize}\n          onChange={e => {\n            setPageSize(Number(e.target.value))\n          }}\n        >\n          {pageSizeOptions.map(pageSize => (\n            <option key={pageSize} value={pageSize}>\n              Show {pageSize}\n            </option>\n          ))}\n        </select>\n      </div>\n    </div>\n  )\n}\n```\n\nYou can then use your table like so:\n\n```js\n\nimport MyTable from './MyTable'\n\nfunction MyApp () {\n  const columns = React.useMemo(() => [{\n    Header: \"Name\",\n    columns: [\n      {\n        Header: \"First Name\",\n        accessor: \"firstName\",\n      },\n      {\n        Header: \"Last Name\",\n        accessor: \"lastName\",\n      }\n    ]\n  }], [])\n\n  const data = [{\n    firstName: 'Tanner',\n    lastName: 'Linsley'\n  }, {\n    firstName: 'Shawn',\n    lastName: 'Wang'\n  }, {\n    firstName: 'Kent C.',\n    lastName: 'Dodds'\n  }, {\n    firstName: 'Ryan',\n    lastName: 'Florence'\n  }]\n\n  return <MyTable columns={columns} data={data} />\n``` -->\n\n## Contributing\n\nTo suggest a feature, create an issue if it does not already exist.\nIf you would like to help develop a suggested feature follow these steps:\n\n- Fork this repo\n- Install dependencies with `$ yarn`\n- Link `react-table` locally with `$ yarn link`\n- Auto-build files as you edit with `$ yarn start`\n- Implement your changes and tests to files in the `src/` directory\n- In any example directory, link to the local `react-table` with `$ yarn link react-table`\n- Follow example directions for running. Usually just `$ yarn && yarn start`\n- Document your changes in the root `README.md`\n- To stage a commit, run `yarn commit`\n- Submit PR for review\n","licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.0-alpha.12","dist":{"shasum":"63b7d30e416569dab36866729e2532f2c81e8aed","integrity":"sha512-t7bgyzMRWY6stEkZn4bcLgPZfniMZG9v75Pse5/WX+kHXagPhISi/c8abFEmdU/I6ubzicHeEZLLwvp2GNdGUw==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.0-alpha.12.tgz","fileCount":97,"unpackedSize":1611812,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdOzb0CRA9TVsSAnZWagAAeFMP/iwn4KaxE2W9OQK9pXb7\nzlMyBXrEkg9uTC44jr+ZB2Gy+SZszNBpWyac3/gRQHqPFFWSq8+zS90PGcme\ngvepFDmV7ZL0KQ/rWiWum0JP9Kjpa7EQcWA0/2I05suyvHw21Z8SS5i2GREv\nwvqwFvSi/jfiPgrqM2O+XT2hLhwa12Hy8Ee7pi/h+ROxLcZQGht8eoxSMMUy\nhP/eh0pcQ6u6Ggm/XKOQNRv2iQ9Lcgkdl4feOuvEx9BfRWk7MNEqaGkcQWVR\nzBd12/74dSQt3+5fUEmGlOGmFONPRhK4zwJYHw8UZoLeEyt44Zc0jnrcGYH0\nwRmjfhE9z6Lf5pMyV6clVJ2s8cmuuhkTOb0dAu5tOC0MLkak7J+FEyRSAEN6\n0pLy0CBzCa6P+1wFmKmhIlKHhR3iiSzbLEIL3o6+vFX1miXLNoqu2wW43Yr3\nGgceD8jhCY8etxq8LOoq0rxT1rFAmRXRL+DeSM1yxRaWiAePeQFlXJkGUcyv\nn9TMrW6M61O02LA5+QPwrmK8vG9ToagYoZcQhfJ4VP/6cV7pbVGkTBqGwkrt\nLLpzpxNb2J0XnhXdearhO8EzLqZAWS3UlT02xymBhaknf+sZRMlT12dPejXW\nvvC93odElYODyfVxdymJ9zElTXoOoHZEzZgmBD0r7oY2BR6zxMEUQkuwTx1B\nyGN+\r\n=hBnY\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAnTKfUXMTU7vw2rlvQ1rHuiGuJdtaubZgHPs9l8AyaQAiAOUMW5MdhZmjmQpzmStrQa7KeAHNdWXZnC64cIc1DejA=="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.0-alpha.12_1564161780018_0.3558053100786367"},"_hasShrinkwrap":false},"7.0.0-alpha.13":{"name":"react-table","version":"7.0.0-alpha.13","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"dist/index.js","module":"dist/index.es.js","jsnext:main":"dist/index.es.js","scripts":{"commit":"git add . && git-cz","test":"is-ci 'test:ci' 'test:dev'","test:dev":"jest --watch","test:ci":"jest","build":"rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier ./**{md,js,jsx,tsx} --write"},"peerDependencies":{"prop-types":"^15.5.0","react":"^16.8.3","react-dom":"^16.8.3"},"devDependencies":{"@babel/core":"^7.5.5","@babel/plugin-proposal-class-properties":"^7.5.5","@babel/preset-env":"^7.5.5","@babel/preset-react":"^7.0.0","@babel/runtime":"^7.5.5","@commitlint/cli":"^8.1.0","@commitlint/config-conventional":"^8.1.0","@svgr/rollup":"^4.3.2","@testing-library/dom":"^5.6.0","@testing-library/jest-dom":"^4.0.0","@testing-library/react":"^8.0.7","babel-eslint":"9.x","commitizen":"^4.0.3","core-js":"3","cross-env":"^5.2.0","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^8.0.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.14.3","eslint-plugin-react-hooks":"1.6.1","eslint-plugin-standard":"^4.0.0","husky":"^3.0.2","is-ci-cli":"^1.1.1","jest":"^24.8.0","jest-cli":"^24.8.0","jest-runner-eslint":"^0.7.4","jest-watch-select-projects":"^0.1.2","jest-watch-typeahead":"^0.3.1","lint-staged":"^9.2.1","prop-types":"^15.5.0","react":"^16.8.3","react-dom":"^16.8.3","rollup":"^0.68.0","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^9.1.3","rollup-plugin-node-resolve":"^4.0.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-uglify":"^6.0.2","snapshot-diff":"^0.5.2"},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"browserslist":"> 0.25%, not dead","readmeFilename":"README.md","readme":"# React Table\n\nHooks for building **lightweight, fast and extendable datagrids** for React\n\n<a href=\"https://travis-ci.org/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://travis-ci.org/tannerlinsley/react-table.svg?branch=master\" />\n</a>\n<a href=\"https://npmjs.com/package/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-table.svg\" />\n</a>\n<a href=\"https://spectrum.chat/react-table\">\n  <img alt=\"Join the community on Spectrum\" src=\"https://withspectrum.github.io/badge/badge.svg\" />\n</a>\n<a href=\"https://github.com/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-table.svg?style=social&label=Star\" />\n</a>\n<a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n\n<br />\n<br />\n\n## Features\n\n- Lightweight\n- Headless (100% customizable, Bring-your-own-UI)\n- Client-side & Server-side pagination support\n- Sorting (Multi and Stable)\n- Filters\n- Pivoting & Aggregation\n- Fully controllable\n- Extensible via hooks\n- <a href=\"https://medium.com/@tannerlinsley/why-i-wrote-react-table-and-the-problems-it-has-solved-for-nozzle-others-445c4e93d4a8#.axza4ixba\" target=\"\\_parent\">\"Why I wrote React Table and the problems it has solved for Nozzle.io\"</a> by Tanner Linsley\n\n## [See Examples](#examples)\n\n## Versions\n\n- This documentation is for version 7.\n- [View the Changelog](https://github.com/tannerlinsley/react-table/blob/master/CHANGELOG.md)\n- Previous versions:\n  - [6.x.x Readme](https://github.com/tannerlinsley/react-table/tree/v6/)\n  - [5.x.x Readme](https://github.com/tannerlinsley/react-table/blob/ad7d31cd3978eb45da7c6194dbab93c1e9a8594d/README.md)\n\n## Sponsors\n\n**React Table v7** is being built and maintained by me, @tannerlinsley and I am always in need of more Patreon support to keep this project afloat. If you would like to contribute to my Patreon goal for v7 and beyond, [visit my Patreon and help me out!](https://patreon.com/tannerlinsley).\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/platinum.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://tryretool.com/?utm_source=sponsor&utm_campaign=react_table\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-retool.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/platinum-placeholder.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/gold.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://nozzle.io\" target=\"_blank\">\n          <img width=\"300\" src=\"https://nozzle.io/img/logo-blue.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://zappi.com/web\" target=\"_blank\">\n          <img width=\"300\" src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-zappi.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/gold-placeholder.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n# Documentation\n\n- [Installation](#installation)\n- [Concepts](#concepts)\n- [Setup](#setup)\n- [Contributing](#contributing)\n\n# Installation\n\nInstall React Table as a dependency using `npm` or `yarn`\n\n```bash\n# NPM\n$ npm install react-table\n\n# Yarn\n$ yarn add react-table\n```\n\nTo import React Table:\n\n```js\nimport {\n  useTable,\n  useGroupBy,\n  useFilters,\n  useSortBy,\n  useExpanded,\n  usePagination,\n  ...\n} from 'react-table'\n```\n\n# Examples\n\n- [Basic](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/master/examples/basic)\n- [Sorting - Client Side](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/master/examples/sorting-client-side)\n- [Filtering - Client Side](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/master/examples/filtering-client-side)\n- [Grouping - Client Side](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/master/examples/grouping-client-side)\n\n# Concepts\n\n## React Table is a \"headless\" UI library\n\nReact Table is a headless utility, which means out of the box, it doesn't render or supply any actual UI elements. You are in charge of utilizing the state and callbacks of the hooks provided by this library to render your own table markup. [Read this article to understand why React Table is built this way.](https://medium.com/merrickchristensen/headless-user-interface-components-565b0c0f2e18). If you don't want to, then here's a quick rundown anyway:\n\n- Separation of Concerns - Not that superficial kind you read about all the time. The real kind. React Table as a library honestly has no business being in charge of your UI. The look, feel, and overall experience of your table is what makes your app or product great. The less React Table gets in the way of that, the better!\n- Maintenance - By removing the massive (and seemingly endless) API surface area required to support every UI use-case, React Table can remain small, easy-to-use and simple to update/maintain.\n- Extensibility - UI presents countless edge cases for a library simply because it's a creative medium, and one where every developer does things differently. By not dictating UI concerns, React Table empowers the developer to design and extend the UI based on their unique use-case.\n\n## The React Table API\n\nAt the heart of every React Table is a table `instance` object. This object contains everything needed to build a table and interact with it's state. This includes, but is not limited to:\n\n- Columns\n- Materialized Data\n- Sorting\n- Filtering\n- Grouping\n- Pagination\n- Expanded State\n- Any functionality provided by custom plugin hooks, too!\n\n## Using Hooks for configuration, state and lifecycle\n\nReact Table uses React Hooks both internally and externally for 100% of its configuration and lifecycle management. Naturally, this is what allows React Table to be headless and lightweight while still having a concise and simple API.\n\nReact Table is essentially a compatible collection of **custom React hooks**:\n\n- The primary React Table hook\n  - [`useTable`](#usetable)\n- Plugin Hooks\n  - Core Plugin Hooks\n    - [`useTableState`](#useTableState)\n    - [`useGroupBy`](#useGroupBy)\n    - [`useFilters`](#useFilters)\n    - [`useSortBy`](#useSortBy)\n    - [`useExpanded`](#useExpanded)\n    - [`usePagination`](#usePagination)\n    - [`useTokenPagination`](#useTokenPagination)\n  - Layout Plugin Hooks\n    - [`useFlexLayout`](#useFlexLayout)\n    - [`useAbsoluteLayout`](#useAbsoluteLayout) (coming soon!)\n- Custom Plugin Hooks\n  - Get your custom plugin hook listed here!\n\n### Hook Usage\n\n`useTable` is the **primary** hook used to build a React Table. It serves as the starting point for **every option and every plugin hook** that React Table supports. The options passed into `useTable` are supplied to every plugin hook after it in the order they are supplied, eventually resulting a final `instance` object that you can use to build your table UI and interact with the table's state.\n\n```js\nconst instance = useTable(\n  {\n    data: [...],\n    columns: [...],\n  },\n  useGroupBy,\n  useFilters,\n  useSortBy,\n  useExpanded,\n  usePagination\n)\n```\n\n### The stages of a React Table\n\n1. `useTable` is called. A table instance is created.\n1. The `instance.state` is resolved from either a custom user state or an automatically generated one.\n1. A collection of plugin points is created at `instance.hooks`.\n1. Each plugin is given the opportunity to add hooks to `instance.hook`.\n1. As the `useTable` logic proceeds to run, each plugin hook type is used at a specific point in time with each individual hook function being executed the order it was registered.\n1. The final instance object is returned from `useTable`, which the developer then uses to construct their table.\n\nThis multi-stage process is the secret sauce that allows React Table plugin hooks to work together and compose nicely, while not stepping on each others toes.\n\nTo dive deeper into plugins, see [Plugins](TODO) and the [Plugin Guide](TODO)\n\n### Plugin Hook Order & Consistency\n\nThe order and usage of plugin hooks must follow [The Laws of Hooks](TODO), just like any other custom hook. They must always be unconditionally called in the same order.\n\n> **NOTE: In the event that you want to programmatically enable or disable plugin hooks, most of them provide options to disable their functionality, eg. `options.disableSorting`**\n\n### Option Memoization\n\nReact Table relies on memoization to determine when state and side effects should update or be calculated. This means that every option you pass to `useTable` should be memoized either via `React.useMemo` (for objects) or `React.useCallback` (for functions).\n\n# API\n\n## `useTable`\n\n- Required\n\n`useTable` is the root hook for React Table. To use it, pass it with an options object with at least a `columns` and `rows` value, followed by any React Table compatible hooks you want to use.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `columns: Array<Column>`\n  - Required\n  - Must be **memoized**\n  - The core columns configuration object for the entire table.\n  - Supports nested `columns` arrays via the `column.children` key\n- `data: Array<any>`\n  - Required\n  - Must be **memoized**\n  - The data array that you want to display on the table.\n- `state: TableStateTuple[stateObject, stateUpdater]`\n  - Optional\n  - Must be **memoized** table state tuple. See [`useTableState`](#usetablestate) for more information.\n  - The state/updater pair for the table instance. You would want to override this if you plan on controlling or hoisting table state into your own code.\n  - Defaults to using an internal `useTableState()` instance if not defined.\n  - See [Controlling and Hoisting Table State](#controlling-and-hoisting-table-state)\n- `defaultColumn: Object`\n  - Optional\n  - Defaults to `{}`\n  - The default column object for every column passed to React Table.\n  - Column-specific properties will override the properties in this object, eg. `{ ...defaultColumn, ...userColumn }`\n  - This is particularly useful for adding global column properties. For instance, when using the `useFilters` plugin hook, add a default `Filter` renderer for every column, eg.`{ Filter: MyDefaultFilterComponent }`\n- `debug: Bool`\n  - Optional\n  - A flag to turn on debug mode.\n  - Defaults to `false`\n\n### `column` Options\n\nThe following options are supported on any column object you can pass to `columns`.\n\n- `accessor: String | Function`\n  - **Required**\n  - This string/function is used to build the data model for your column.\n  - The data returned by an accessor should be **primitive** and sortable.\n  - If a string is passed, the column's value will be looked up on the original row via that key, eg. If your column's accessor is `firstName` then its value would be read from `row['firstName']`. You can also specify deeply nested values with accessors like `info.hobbies` or even `address[0].street`\n  - If a function is passed, the column's value will be looked up on the original row using this accessor function, eg. If your column's accessor is `row => row.firstName`, then its value would be determined by passing the row to this function and using the resulting value.\n- `id: String`\n  - **Required if `accessor` is a function**\n  - This is the unique ID for the column. It is used by reference in things like sorting, grouping, filtering etc.\n  - If a **string** accessor is used, it defaults as the column ID, but can be overridden if necessary.\n- `columns: Array<Column>`\n  - Optional\n  - A nested array of columns.\n  - If defined, the column will act as a header group. Columns can be recursively nested as much as needed.\n- `show: Boolean | Function`\n  - Optional\n  - Defaults to `true`\n  - If set to `false`, the column will be hidden.\n  - If set to a `function`, it will be called with the current table instance and can then return `true` or `false`.\n  - The data model for hidden columns is still calculated including sorting, filters, and grouping.\n- `Header: String | Function | React.Component => JSX`\n  - Optional\n  - Defaults to `({ id }) => id`\n  - Receives the table instance and column model as props\n  - Must either be a **string or return valid JSX**\n  - If a function/component is passed, it will be used for formatting the header value, eg. You can use a `Header` function to dynamically format the header using any table or column state.\n- `Cell: Function | React.Component => JSX`\n  - Optional\n  - Defaults to `({ value }) => value`\n  - Receives the table instance and cell model as props\n  - Must return valid JSX\n  - This function (or component) is primarily used for formatting the column value, eg. If your column accessor returns a date object, you can use a `Cell` function to format that date to a readable format.\n\n### `Instance` Properties\n\nThe following properties are available on the table instance returned from `useTable`\n\n- `headerGroups: Array<HeaderGroup>`\n  - An array of normalized header groups, each containing a flattened array of final column objects for that row.\n  - See [Header Group Properties](#headergroup-properties) for more information\n- `columns: Array<Column>`\n  - A **flat** array of all final column objects computed from the original columns configuration option.\n  - See [Column Properties](#column-properties) for more information\n- `headers[] Array<Column>`\n  - A **nested** array of final column objects, similar in structure to the original columns configuration option.\n  - See [Column Properties](#column-properties) for more information\n- `rows: Array<Row>`\n  - An array of **materialized row objects** from the original `data` array and `columns` passed into the table options\n  - See [Row Properties](#row-properties) for more information\n- `getTableProps: Function(?props)`\n  - **Required**\n  - This function is used to resolve any props needed for your table wrapper.\n  - Custom props may be passed. **NOTE: Custom props will override built-in table props, so be careful!**\n- `prepareRow: Function(Row)`\n  - **Required**\n  - This function is responsible for lazily preparing a row for rendering. Any row that you intend to render in your table needs to be passed to this function **before every render**.\n  - **Why?** Since table data could potentially be very large, it can become very expensive to compute all of the necessary state for every row to be rendered regardless if it actually is rendered or not (for example if you are paginating or virtualizing the rows, you may only have a few rows visible at any given moment). This function allows only the rows you intend to display to be computed and prepped with the correct state.\n\n### `HeaderGroup` Properties\n\nThe following additional properties are available on every `headerGroup` object returned by the table instance.\n\n- `headers: Array<Column>`\n  - **Required**\n  - The columns in this header group.\n- `getHeaderGroupProps: Function(?props)`\n  - **Required**\n  - This function is used to resolve any props needed for this header group's row.\n  - You can use the `getHeaderGroupProps` hook to extend its functionality.\n  - Custom props may be passed. **NOTE: Custom props will override built-in table props, so be careful!**\n\n### `Column` Properties\n\nThe following properties are available on every `Column` object returned by the table instance.\n\n- `id: String`\n  - The resolved column ID from either the column's `accessor` or the column's hard-coded `id` property\n- `visible: Boolean`\n  - The resolved visible state for the column, derived from the column's `show` property\n- `render: Function(type: String | Function | Component, ?props)`\n  - This function is used to render content in context of a column.\n  - If `type` is a string, will render using the `column[type]` renderer. React Table ships with default `Header` renderers. Other renderers like `Filter` are available via hooks like `useFilters`.\n  - If a function or component is passed instead of a string, it will be be passed the table instance and column model as props and is expected to return any valid JSX.\n- `getHeaderProps: Function(?props)`\n  - **Required**\n  - This function is used to resolve any props needed for this column's header cell.\n  - You can use the `getHeaderProps` hook to extend its functionality.\n  - Custom props may be passed. **NOTE: Custom props will override built-in table props, so be careful!**\n\n### `Row` Properties\n\nThe following additional properties are available on every `row` object returned by the table instance.\n\n- `cells: Array<Cell>`\n  - An array of `Cell` objects containing properties and functions specific to the row and column it belongs to.\n  - See [Cell Properties](#cell-properties) for more information\n- `values: Object<columnID: any>`\n  - A map of this row's **resolved** values by columnID, eg. `{ firstName: 'Tanner', lastName: 'Linsley' }`\n- `getRowProps: Function(?props)`\n  - **Required**\n  - This function is used to resolve any props needed for this row.\n  - You can use the `getRowProps` hook to extend its functionality.\n  - Custom props may be passed. **NOTE: Custom props will override built-in table props, so be careful!**\n\n### `Cell` Properties\n\nThe following additional properties are available on every `Cell` object returned in an array of `cells` on every row object.\n\n- `column: Column`\n  - The corresponding column object for this cell\n- `row: Row`\n  - The corresponding row object for this cell\n- `value: any`\n  - The **resolved** value for this cell.\n  - By default, this value is displayed on the table via the default `Cell` renderer. To override the way a cell displays\n- `getCellProps: Function(?props)`\n  - **Required**\n  - This function is used to resolve any props needed for this cell.\n  - You can use the `getCellProps` hook to extend its functionality.\n  - Custom props may be passed. **NOTE: Custom props will override built-in table props, so be careful!**\n- `render: Function(type: String | Function | Component, ?props)`\n  - This function is used to render content in context of a cell.\n  - If `type` is a string, will render using the `column[type]` renderer. React Table ships with a default `Cell` renderer. Other renderers like `Aggregated` are available via hooks like `useFilters`.\n  - If a function or component is passed instead of a string, it will be be passed the table instance and cell model as props and is expected to return any valid JSX.\n\n### Example\n\n```js\nfunction App() {\n  const columns = React.useMemo(\n    () => [\n      {\n        Header: 'Name',\n        columns: [\n          {\n            Header: 'First Name',\n            accessor: 'firstName',\n          },\n          {\n            Header: 'Last Name',\n            accessor: 'lastName',\n          },\n        ],\n      },\n    ],\n    []\n  )\n\n  const data = [\n    {\n      firstName: 'Tanner',\n      lastName: 'Linsley',\n    },\n    {\n      firstName: 'Shawn',\n      lastName: 'Wang',\n    },\n    {\n      firstName: 'Kent C.',\n      lastName: 'Dodds',\n    },\n    {\n      firstName: 'Ryan',\n      lastName: 'Florence',\n    },\n  ]\n\n  return <MyTable columns={columns} data={data} />\n}\n\nfunction MyTable({ columns, data }) {\n  const { getTableProps, headerGroups, rows, prepareRow } = useTable({\n    columns,\n    data,\n  })\n\n  return (\n    <table {...getTableProps()}>\n      <thead>\n        {headerGroups.map(headerGroup => (\n          <tr {...headerGroup.getHeaderGroupProps()}>\n            {headerGroup.headers.map(column => (\n              <th {...column.getHeaderProps()}>{column.render('Header')}</th>\n            ))}\n          </tr>\n        ))}\n      </thead>\n      <tbody>\n        {rows.map(\n          (row, i) =>\n            prepareRow(row) || (\n              <tr {...row.getRowProps()}>\n                {row.cells.map(cell => {\n                  return <td {...cell.getCellProps()}>{cell.render('Cell')}</td>\n                })}\n              </tr>\n            )\n        )}\n      </tbody>\n    </table>\n  )\n}\n```\n\n## `useSortBy`\n\n- Plugin Hook\n- Optional\n\n`useSortBy` is the hook that implements **row sorting**. It also support multi-sort (keyboard required).\n\n- Multi-sort is enabled by default\n- To sort the table via UI, attach the props generated from each column's `getSortByToggleProps()`, then click any of those elements.\n- To multi-sort the table via UI, hold `shift` while clicking on any of those same elements that have the props from `getSortByToggleProps()` attached.\n- To programmatically sort (or multi-sort) any column, use the `toggleSortBy` method located on the instance or each individual column.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `state[0].sortBy: Array<Object<id: columnID, desc: Bool>>`\n  - Must be **memoized**\n  - An array of sorting objects. If there is more than one object in the array, multi-sorting will be enabled. Each sorting object should contain an `id` key with the corresponding column ID to sort by. An optional `desc` key may be set to true or false to indicated ascending or descending sorting for that column. This information is stored in state since the table is allowed to manipulate the filter through user interaction.\n- `manualSorting: Bool`\n  - Enables sorting detection functionality, but does not automatically perform row sorting. Turn this on if you wish to implement your own sorting outside of the table (eg. server-side or manual row grouping/nesting)\n- `disableSorting: Bool`\n  - Disables sorting for every column in the entire table.\n- `disableMultiSort: Bool`\n  - Disables multi-sorting for the entire table.\n- `disableSortRemove: Bool`\n  - If true, the un-sorted state will not be available to columns once they have been sorted.\n- `disableMultiRemove: Bool`\n  - If true, the un-sorted state will not be available to multi-sorted columns.\n- `orderByFn: Function`\n  - Must be **memoizd**\n  - Defaults to the built-in [default orderBy function](TODO)\n  - This function is responsible for composing multiple sorting functions together for multi-sorting, and also handles both the directional sorting and stable-sorting tie breaking. Rarely would you want to override this function unless you have a very advanced use-case that requires it.\n- `sortTypes: Object<sortKey: sortType>`\n  - Must be **memoized**\n  - Allows overriding or adding additional sort types for columns to use. If a column's sort type isn't found on this object, it will default to using the [built-in sort types](TODO).\n  - For mor information on sort types, see [Sorting](TODO)\n\n### `Column` Options\n\nThe following options are supported on any `Column` object passed to the `columns` options in `useTable()`\n\n- `disableSorting: Bool`\n  - Optional\n  - Defualts to `false`\n  - If set to `true`, the sorting for this column will be disabled\n- `sortDescFirst: Bool`\n  - Optional\n  - Defaults to `false`\n  - If set to `true`, the first sort direction for this column will be descending instead of ascending\n- `sortInverted: Bool`\n  - Optional\n  - Defaults to `false`\n  - If set to `true`, the underlying sorting direction will be inverted, but the UI will not.\n  - This may be useful in situations where positive and negative connotation is inverted, eg. a Golfing score where a lower score is considered more positive than a higher one.\n- `sortType: String | Function`\n  - If a **function** is passed, it must be **memoized**\n  - Defaults to [`alphanumeric`](TODO)\n  - The resolved function from the this string/function will be used to sort the this column's data.\n    - If a `string` is passed, the function with that name located on either the custom `sortTypes` option or the built-in sorting types object will be used. If\n    - If a `function` is passed, it will be used.\n  - For mor information on sort types, see [Sorting](TODO)\n\n### `Instance` Properties\n\nThe following values are provided to the table `instance`:\n\n- `rows: Array<Row>`\n  - An array of **sorted** rows.\n- `preSortedRows: Array<Row>`\n  - The array of rows that were originally sorted.\n- `toggleSortBy: Function(ColumnID: String, descending: Bool, isMulti: Bool) => void`\n  - This function can be used to programmatically toggle the sorting for any specific column\n\n### `Column` Properties\n\nThe following properties are available on every `Column` object returned by the table instance.\n\n- `canSort: Bool`\n  - Denotes whether a column is sortable or not depending on if it has a valid accessor/data model or is manually disabled via an option.\n- `toggleSortBy: Function(descending, multi) => void`\n  - This function can be used to programmatically toggle the sorting for this column.\n  - This function is similar to the `instance`-level `toggleSortBy`, however, passing a columnID is not required since it is located on a `Column` object already.\n- `getSortByToggleProps: Function(props) => props`\n  - **Required**\n  - This function is used to resolve any props needed for this column's UI that is responsible for toggling the sort direction when the user clicks it.\n  - You can use the `getSortByToggleProps` hook to extend its functionality.\n  - Custom props may be passed. **NOTE: Custom props may override built-in sortBy props, so be careful!**\n- `sorted: Boolean`\n  - Denotes whether this column is currently being sorted\n- `sortedIndex: Int`\n  - If the column is currently sorted, this integer will be the index in the `sortBy` array from state that corresponds to this column.\n  - If this column is not sorted, the index will always be `-1`\n- `sortedDesc: Bool`\n  - If the column is currently sorted, this denotes whether the column's sort direction is descending or not.\n  - If `true`, the column is sorted `descending`\n  - If `false`, the column is sorted `ascending`\n  - If `undefined`, the column is not currently being sorted.\n\n### Example\n\n```js\nfunction Table({ columns, data }) {\n  // Set some default sorting state\n  const state = useTableState({ sortBy: [{ id: 'firstName', desc: true }] })\n\n  const { getTableProps, headerGroups, rows, prepareRow } = useTable(\n    {\n      columns,\n      data,\n    },\n    useSortBy // Use the sortBy hook\n  )\n\n  return (\n    <table {...getTableProps()}>\n      <thead>\n        {headerGroups.map(headerGroup => (\n          <tr {...headerGroup.getHeaderGroupProps()}>\n            {headerGroup.headers.map(column => (\n              // Add the sorting props to control sorting. For this example\n              // we can add them into the header props\n              <th {...column.getHeaderProps(column.getSortByToggleProps())}>\n                {column.render('Header')}\n                <span>\n                  {/* Add a sort direction indicator */}\n                  <span>\n                    {column.sorted ? (column.sortedDesc ? ' 🔽' : ' 🔼') : ''}\n                  </span>\n                  {/* Add a sort index indicator */}\n                  <span>({column.sorted ? column.sortedIndex + 1 : ''})</span>\n                </span>\n              </th>\n            ))}\n          </tr>\n        ))}\n      </thead>\n      <tbody>\n        {rows.map(\n          (row, i) =>\n            prepareRow(row) || (\n              <tr {...row.getRowProps()}>\n                {row.cells.map(cell => {\n                  return <td {...cell.getCellProps()}>{cell.render('Cell')}</td>\n                })}\n              </tr>\n            )\n        )}\n      </tbody>\n    </table>\n  )\n}\n```\n\n## `useFilters`\n\n- Plugin Hook\n- Optional\n\n`useFilters` is the hook that implements **row filtering**.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `state[0].filters: Object<columnID: filterValue>`\n  - Must be **memoized**\n  - An object of columnID's and their corresponding filter values. This information is stored in state since the table is allowed to manipulate the filter through user interaction.\n- `defaultFilter: String | Function`\n  - If a **function** is passed, it must be **memoized**\n  - Defaults to [`text`](TODO)\n  - The function (or resolved function from the string) will be used as the default/fallback filter method for every column that has filtering enabled.\n    - If a `string` is passed, the function with that name located on the `filterTypes` option object will be used.\n    - If a `function` is passed, it will be used.\n  - For mor information on filter types, see [Filtering](TODO)\n- `manualFilters: Bool`\n  - Enables filter detection functionality, but does not automatically perform row filtering.\n  - Turn this on if you wish to implement your own row filter outside of the table (eg. server-side or manual row grouping/nesting)\n- `disableFilters: Bool`\n  - Disables filtering for every column in the entire table.\n- `filterTypes: Object<filterKey: filterType>`\n  - Must be **memoized**\n  - Allows overriding or adding additional filter types for columns to use. If a column's filter type isn't found on this object, it will default to using the [built-in filter types](TODO).\n  - For mor information on filter types, see [Filtering](TODO)\n\n### `Column` Options\n\nThe following options are supported on any `Column` object passed to the `columns` options in `useTable()`\n\n- `Filter: Function | React.Component => JSX`\n  - **Required**\n  - Receives the table instance and column model as props\n  - Must return valid JSX\n  - This function (or component) is used to render this column's filter UI, eg.\n- `disableFilters: Bool`\n  - Optional\n  - If set to `true`, will disable filtering for this column\n- `filter: String | Function`\n  - Optional\n  - Defaults to [`text`](TODO)\n  - The resolved function from the this string/function will be used to filter the this column's data.\n    - If a `string` is passed, the function with that name located on either the custom `filterTypes` option or the built-in filtering types object will be used. If\n    - If a `function` is passed, it will be used directly.\n  - For mor information on filter types, see [Filtering](TODO)\n  - If a **function** is passed, it must be **memoized**\n\n### `Instance` Properties\n\nThe following values are provided to the table `instance`:\n\n- `rows: Array<Row>`\n  - An array of **filtered** rows.\n- `preFilteredRows: Array<Row>`\n  - The array of rows **used right before filtering**.\n  - Among many other use-cases, these rows are directly useful for building option lists in filters, since the resulting filtered `rows` do not contain every possible option.\n- `setFilter: Function(columnID, filterValue) => void`\n  - An instance-level function used to update the filter value for a specific column.\n- `setAllFilters: Function(filtersObject) => void`\n  - An instance-level function used to update the values for **all** filters on the table, all at once.\n\n### `Column` Properties\n\nThe following properties are available on every `Column` object returned by the table instance.\n\n- `canFilter: Bool`\n  - Denotes whether a column is filterable or not depending on if it has a valid accessor/data model or is manually disabled via an option.\n- `setFilter: Function(filterValue) => void`\n  - An column-level function used to update the filter value for this column\n- `filterValue: any`\n  - The current filter value for this column, resolved from the table state's `filters` object\n- `preFilteredRows: Array<row>`\n  - The array of rows that were originally passed to this columns filter **before** they were filtered.\n  - This array of rows can be useful if building faceted filter options.\n\n### Example\n\n```js\n// A great library for fuzzy filtering/sorting items\nimport matchSorter from 'match-sorter'\n\nconst state = useTableState({ filters: { firstName: 'tanner' } })\n\nconst filterTypes = React.useMemo(() => ({\n  // Add a new fuzzyText filter type.\n  fuzzyText: (rows, id, filterValue) => {\n    return matchSorter(rows, filterValue, { keys: [row => row[id] })\n  },\n  // Or, override the default text filter to use\n  // \"startWith\"\n  text: (rows, id, filterValue) => {\n    return rows.filter(row => {\n      const rowValue = row.values[id]\n      return rowValue !== undefined\n        ? String(rowValue)\n            .toLowerCase()\n            .startsWith(String(filterValue).toLowerCase())\n        : true\n    })\n  }\n}), [matchSorter])\n\n// Override the default column filter to be our new `fuzzyText` filter type\nconst defaultColumn = React.useMemo(() => ({\n  filter: 'fuzzyText'\n}))\n\nconst { rows } = useTable(\n  {\n    // state[0].groupBy === ['firstName']\n    state,\n    manualFilters: false,\n    disableFilters: false,\n    // Pass our custom filter types\n    filterTypes,\n    defaultColumn\n  },\n  useFilters\n)\n```\n\n## `useGroupBy`\n\n- Plugin Hook\n- Optional\n\n`useGroupBy` is the hook that implements **row grouping and aggregation**.\n\n- Each column's `getGroupByToggleProps()` function can be used to generate the props needed to make a clickable UI element that will toggle the grouping on or off for a specific column.\n- Instance and column-level `toggleGroupBy` functions are also made available for programmatic grouping.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `state[0].groupBy: Array<String>`\n  - Must be **memoized**\n  - An array of groupBy ID strings, controlling which columns are used to calculate row grouping and aggregation. This information is stored in state since the table is allowed to manipulate the groupBy through user interaction.\n- `groupByFn: Function`\n  - Must be **memoized**\n  - Defaults to [`defaultGroupByFn`](TODO)\n  - This function is responsible for grouping rows based on the `state.groupBy` keys provided. It's very rare you would need to customize this function.\n- `manualGroupBy: Bool`\n  - Enables groupBy detection and functionality, but does not automatically perform row grouping.\n  - Turn this on if you wish to implement your own row grouping outside of the table (eg. server-side or manual row grouping/nesting)\n- `disableGrouping: Bool`\n  - Disables groupBy for the entire table.\n- `aggregations: Object<aggregationKey: aggregationFn>`\n  - Must be **memoized**\n  - Allows overriding or adding additional aggregation functions for use when grouping/aggregating row values. If an aggregation key isn't found on this object, it will default to using the [built-in aggregation functions](TODO)\n\n### `Column` Options\n\nThe following options are supported on any `Column` object passed to the `columns` options in `useTable()`\n\n- `Aggregated: Function | React.Component => JSX`\n  - Optional\n  - Defaults to this column's `Cell` formatter\n  - Receives the table instance and cell model as props\n  - Must return valid JSX\n  - This function (or component) formats this column's value when it is being grouped and aggregated, eg. If this column was showing the number of visits for a user to a website and it was currently being grouped to show an **average** of the values, the `Aggregated` function for this column could format that value to `1,000 Avg. Visits`\n- `disableGrouping: Boolean`\n  - Defaults to `true`\n  - If `true`, this column is able to be grouped.\n\n### `Instance` Properties\n\nThe following values are provided to the table `instance`:\n\n- `rows: Array<Row>`\n  - An array of **grouped and aggregated** rows.\n- `preGroupedRows: Array<Row>`\n  - The array of rows originally used to create the grouped rows.\n- `toggleGroupBy: Function(columnID: String, ?set: Bool) => void`\n  - This function can be used to programmatically set or toggle the groupBy state for a specific column.\n\n### `Column` Properties\n\nThe following properties are available on every `Column` object returned by the table instance.\n\n- `canGroupBy: Boolean`\n  - If `true`, this column is able to be grouped.\n  - This is resolved from the column having a valid accessor / data model, and not being manually disabled via other `useGroupBy` related options\n- `grouped: Boolean`\n  - If `true`, this column is currently being grouped\n- `groupedIndex: Int`\n  - If this column is currently being grouped, this integer is the index of this column's ID in the table state's `groupBy` array.\n- `toggleGroupBy: Function(?set: Bool) => void`\n  - This function can be used to programmatically set or toggle the groupBy state fo this column.\n- `getGroupByToggleProps: Function(props) => props`\n  - **Required**\n  - This function is used to resolve any props needed for this column's UI that is responsible for toggling grouping when the user clicks it.\n  - You can use the `getGroupByToggleProps` hook to extend its functionality.\n  - Custom props may be passed. **NOTE: Custom props may override built-in sortBy props, so be careful!**\n\n### Example\n\n```js\nconst state = useTableState({ groupBy: ['firstName'] })\n\nconst aggregations = React.useMemo(() => ({\n  customSum: (values, rows) => values.reduce((sum, next) => sum + next, 0),\n}))\n\nconst { rows } = useTable(\n  {\n    state, // state[0].groupBy === ['firstName']\n    manualGroupBy: false,\n    disableGrouping: false,\n    aggregations,\n  },\n  useGroupBy\n)\n```\n\n## `useExpanded`\n\n- Plugin Hook\n- Optional\n\n`useExpanded` is the hook that implements **row expanding**. It is most often used with `useGroupBy` to expand grouped rows, but is not limited to that use-case. It supports expanding rows both via internal table state and also via a hard-coded key on the raw row model.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `state[0].expanded: Object<[pathIndex]: Boolean | ExpandedStateObject>`\n  - Must be **memoized**\n  - An nested object of expanded paths.\n  - A `pathIndex` can be set as the key and its value set to `true` to expand that row's subRows into view. For example, if `{ '3': true }` was passed as the `expanded` state, the **4th row in the original data array** would be expanded.\n  - For nested expansion, you may **use another object** instead of a Boolean to expand sub rows. For example, if `{ '3': { '5' : true }}` was passed as the `expanded` state, then the **6th subRow of the 4th row and the 4th row of the original data array** would be expanded.\n  - This information is stored in state since the table is allowed to manipulate the filter through user interaction.\n- `subRowsKey: String`\n  - Required\n  - Defaults to `subRows`\n  - React Table will use this key when materializing the final row object. It also uses this key to infer sub-rows from the raw data.\n  - See [Grouping and Aggregation](#grouping-and-aggregation) for more information\n- `paginateSubRows: Bool`\n  - Defaults to `true`\n  - If set to `false`, expanded rows will not be paginated. Thus, any expanded subrows would potentially increase the size of any given page by the amount of total expanded subrows on the page.\n- `manualExpandedKey: String`\n  - Defaults to `expanded`\n  - This string is used as the key to detect manual expanded state on any given row. For example, if a raw data row like `{ name: 'Tanner Linsley', friends: [...], expanded: true}` was detected, it would be forcibly expanded, regardless of state.\n\n### Instance Variables\n\nThe following values are provided to the table `instance`:\n\n- `rows: Array<Row>`\n  - An array of **sorted** rows.\n\n### Example\n\n```js\nconst state = useTableState({ expanded: { '3': true, '5': { '2': true } } })\n\nconst { rows } = useTable(\n  {\n    // state[0].sortBy === { '3': true, '5': { '2': true } }\n    state,\n  },\n  useExpanded\n)\n```\n\n## `usePagination`\n\n- Plugin Hook\n- Optional\n\n`usePagination` is the hook that implements **row pagination**. It can be used for both client-side pagination or server-side pagination. For more information on pagination, see [Pagination](TODO)\n\n> **NOTE** Some server-side pagination implementations do not use page index and instead use **token based pagination**! If that's the case, please use the `useTokenPagination` plugin instead.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `state[0].pageSize: Int`\n  - **Required**\n  - Defaults to `10`\n  - Determines the amount of rows on any given page\n- `state[0].pageIndex: Int`\n  - **Required**\n  - Defaults to `0`\n  - The index of the page that should be displayed via the `page` instance value\n- `pageCount: Int`\n  - **Required if `manualPagination` is set to `true`**\n  - If `manualPagination` is `true`, then this value used to determine the amount of pages available. This amount is then used to materialize the `pageOptions` and also compute the `canNextPage` values on the table instance.\n- `manualPagination: Bool`\n  - Enables pagination functionality, but does not automatically perform row pagination.\n  - Turn this on if you wish to implement your own pagination outside of the table (eg. server-side pagination or any other manual pagination technique)\n- `disablePageResetOnDataChange`\n  - Defaults to `false`\n  - Normally, any changes detected to `rows`, `state.filters`, `state.groupBy`, or `state.sortBy` will trigger the `pageIndex` to be reset to `0`\n  - If set to `true`, the `pageIndex` will not be automatically set to `0` when these dependencies change.\n\n### Instance Variables\n\nThe following values are provided to the table `instance`:\n\n- `pages: Array<page>`\n  - An array of every generated `page`, each containing its respective rows.\n- `page: Array<row>`\n  - An array of rows for the **current** page, determined by the current `pageIndex` value.\n- `pageCount: Int`\n  - If `manualPagination` is set to `false`, this is the total amount of pages available in the table based on the current `pageSize` value\n  - if `manualPagination` is set to `true`, this is merely the same `pageCount` option that was passed in the table options.\n- `pageOptions: Array<Int>`\n  - An array of zero-based index integers corresponding to available pages in the table.\n  - This can be useful for generating things like select interfaces for the user to select a page from a list, instead of manually paginating to the desired page.\n- `canPreviousPage: Bool`\n  - If there are pages and the current `pageIndex` is greater than `0`, this will be `true`\n- `canNextPage:`\n  - If there are pages and the current `pageIndex` is less than `pageCount`, this will be `true`\n- `gotoPage: Function(pageIndex)`\n  - This function, when called with a valid `pageIndex`, will set `pageIndex` to that value.\n  - If the passed index is outside of the valid `pageIndex` range, then this function will do nothing.\n- `previousPage: Function`\n  - This function decreases `state.pageIndex` by one.\n  - If there are no pages or `canPreviousPage` is false, this function will do nothing.\n- `nextPage: Function`\n  - This function increases `state.pageIndex` by one.\n  - If there are no pages or `canNextPage` is false, this function will do nothing.\n- `setPageSize: Function(pageSize)`\n  - This function sets `state.pageSize` to the new value.\n  - As a result of a pageSize change, a new `state.pageIndex` is also calculated. It is calculated via `Math.floor(currentTopRowIndex / newPageSize)`\n- `pageIndex: Int`\n  - This is the resolved `state.pageIndex` value.\n- `pageSize: Int`\n  - This is the resolved `state.pageSize` value.\n\n### Example\n\n```js\nconst state = useTableState({ pageSize: 20, pageIndex: 1 })\n\nconst { rows } = useTable(\n  {\n    // state[0] === { pageSize: 20, pageIndex: 1 }\n    state,\n  },\n  usePagination\n)\n```\n\n## `useTokenPagination`\n\n- Plugin Hook\n- Optional\n\n`useTokenPagination` is the hook that **aids in implementing row pagination using tokens**. It is useful for server-side pagination implementations that use **tokens** instead of page index. For more information on pagination, see [Pagination](TODO)\n\n> Documentation Coming Soon...\n\n## `useTableState`\n\n- Optional\n\n`useTableState` is a hook that allows you to hoist the table state out of the table into your own code. You should use this hook if you need to:\n\n- Know about the internal table state\n- React to changes to the internal table state\n- Manually control or override the internal table state\n\nSome common use cases for this hook are:\n\n- Reacting to `pageIndex` and `pageSize` changes for server-side pagination to fetch new data\n- Disallowing specific states via a custom state reducer\n- Enabling parent/unrelated components to manipulate the table state\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `initialState: Object`\n  - Optional\n  - The initial state object for the table.\n  - This object is **merged over the `defaultState` object** (eg. `{...defaultState, ...initialState}`) that React Table and its hooks use to register default state to produce the final initial state object passed to the resolved `useState` hook.\n- `overrides: Object`\n  - Optional\n  - Must be **memoized**\n  - This object is **merged over the current table state** (eg. `{...state, ...overrides}`) to produce the final state object that is then passed to the `useTable` options\n- `options: Object`\n  - `reducer: Function(oldState, newState) => finalState`\n    - Optional\n    - Inspired by Kent C. Dodd's [State Reducer Pattern](https://kentcdodds.com/blog/the-state-reducer-pattern-with-react-hooks)\n    - With every `setState` call to a table state (even internally), this reducer is called and is allowed to modify the final state object for updating.\n    - It is passed the `oldState`, the `newState`, and an action `type`.\n  - `useState`\n    - Optional\n    - Defaults to `React.useState`\n    - This function, if defined will be used as the state hook internally instead of the default `React.useState`. This can be useful for implementing custom state storage hooks like useLocalStorage, etc.\n\n### Instance Variables\n\n- `tableStateTuple: [tableState, setTableState]`\n  - Similar in structure to the result of `React.useState`\n  - **Memoized**. This tuple array will not change between renders unless state or `useTableState` options change.\n  - `tableState: Object`\n    - This is the final state object of the table, which is the product of the `initialState`, `overrides` and the `reducer` options (if applicable)\n  - `setTableState: Function(updater, type) => void`\n    - This function is used both internally by React Table, and optionally by you (the developer) to update the table state programmatically.\n    - `updater: Function`\n      - This function signature is **almost** (see next point) identical to the functional API exposed by `React.setState`. It is passed the previous state and is expected to return a new version of the state.\n      - **NOTE: `updater` must be a function. Passing a replacement object is not supported as it is with React.useState**\n    - `type: String`\n      - The [action type](TODO) corresponding to what action being taken against the state.\n\n### Example\n\n```js\nexport default function MyTable({ manualPageIndex }) {\n  // This is the initial state for our table\n  const initialState = { pageSize: 10, pageIndex: 0 }\n\n  // Here, we can override the pageIndex\n  // regardless of the internal table state\n  const overrides = React.useMemo(() => ({\n    pageIndex: manualPageIndex,\n  }))\n\n  const state = useTableState(initialState, overrides)\n\n  // You can use effects to observe changes to the state\n  React.useEffect(\n    () => {\n      console.log('Page Size Changed!', initialState.pageSize)\n    },\n    [initialState.pageSize]\n  )\n\n  const { rows } = useTable({\n    state,\n  })\n}\n```\n\n# Guides\n\n## Sorting\n\n### Client-Side Sorting\n\n- [Example]()\n\nClient-side sorting can be accomplished by using the `useSortBy` plugin hook. Start by importing the hook from `react-table`:\n\n```diff\n-import { useTable } from 'react-table'\n+import { useTable, useSortBy } from 'react-table'\n```\n\nNext, add the `useSortBy` hook to your `useTable` hook and add the necessary UI pieces we need to make sorting work:\n\n```diff\nfunction MyTable() {\n  const { getTableProps, headerGroups, rows, prepareRow } = useTable(\n    {\n      data,\n      columns,\n    },\n-   useSortBy\n+   useSortBy\n  )\n\n  return (\n    <table {...getTableProps()}>\n      <thead>\n        {headerGroups.map(headerGroup => (\n          <tr {...headerGroup.getHeaderGroupProps()}>\n            {headerGroup.headers.map(column => (\n-             <th {...column.getHeaderProps()}>\n+             <th {...column.getHeaderProps(column.getSortByToggleProps())}>\n                {column.render('Header')}\n+               <span>\n+                 {column.sorted ? (column.sortedDesc ? ' 🔽' : ' 🔼') : ''}\n+               </span>\n              </th>\n            ))}\n          </tr>\n        ))}\n      </thead>\n      <tbody>\n        {rows.map(\n          (row, i) =>\n            prepareRow(row) || (\n              <tr {...row.getRowProps()}>\n                {row.cells.map(cell => {\n                  return <td {...cell.getCellProps()}>{cell.render('Cell')}</td>\n                })}\n              </tr>\n            )\n        )}\n      </tbody>\n    </table>\n  )\n}\n```\n\n### Server-Side Sorting\n\nServer-side sorting can be accomplished by using the `useSortBy` plugin hook in **controlled** mode along with the `useTableState` hook. Start by importing these hooks from `react-table`:\n\n```diff\n-import { useTable } from 'react-table'\n+import { useTable, useSortBy, useTableState } from 'react-table'\n```\n\nNext, add the `useSortBy` and `useTableState` hooks to your `useTable` hook, configure the table state, then add the necessary UI pieces we need to make sorting work:\n\n```diff\nfunction MyTable(data, columns, fetchData) {\n\n+ const state = useTableState()\n+ const [{ sortBy }] = state\n\n+ React.useEffect(() => {\n+   // When sorting changes, trigger your parent component\n+   // or hook to fetch new data with the table state\n+   fetchData(state[0])\n+ }, [sortBy])\n\n  const { getTableProps, headerGroups, rows, prepareRow } = useTable(\n    {\n      data,\n      columns,\n+     state,\n+     manualSorting: true\n    },\n-   useSortBy\n+   useSortBy\n  )\n\n  return (\n    <table {...getTableProps()}>\n      <thead>\n        {headerGroups.map(headerGroup => (\n          <tr {...headerGroup.getHeaderGroupProps()}>\n            {headerGroup.headers.map(column => (\n-             <th {...column.getHeaderProps()}>\n+             <th {...column.getHeaderProps(column.getSortByToggleProps())}>\n                {column.render('Header')}\n+               <span>\n+                 {column.sorted ? (column.sortedDesc ? ' 🔽' : ' 🔼') : ''}\n+               </span>\n              </th>\n            ))}\n          </tr>\n        ))}\n      </thead>\n      <tbody>\n        {rows.map(\n          (row, i) =>\n            prepareRow(row) || (\n              <tr {...row.getRowProps()}>\n                {row.cells.map(cell => {\n                  return <td {...cell.getCellProps()}>{cell.render('Cell')}</td>\n                })}\n              </tr>\n            )\n        )}\n      </tbody>\n    </table>\n  )\n}\n```\n\n<!--\n\n## Client Side Pagination\n\nTo add client side pagination, use the `usePagination` hook:\n\n```diff\n// Import React\nimport React from 'react'\n\n// Import React Table\nimport {\n  useTable,\n  useGroupBy,\n  useFilters,\n  useSortBy,\n  useExpanded,\n+  usePagination,\n} from 'react-table'\n\n// Create a component to render your table\nfunction MyTable(props) {\n  // Use the useTable hook to create your table configuration\n  const instance = useTable(\n    props,\n    useGroupBy,\n    useFilters,\n    useSortBy,\n    useExpanded,\n+   usePagination,\n  )\n\n  // Use the state and functions returned from useTable to build your UI\n  const {\n    getTableProps,\n    headerGroups,\n    rows,\n    getRowProps,\n    prepareRow,\n+   pageOptions,\n+   page,\n+   state: [{ pageIndex, pageSize }],\n+   gotoPage,\n+   previousPage,\n+   nextPage,\n+   setPageSize,\n+   canPreviousPage,\n+   canNextPage,\n  } = instance\n\n  // Render the UI for your table\n  return (\n    <div>\n      <table {...getTableProps()}>\n        ...\n      </table>\n+     <div>\n+       <button onClick={() => previousPage()} disabled={!canPreviousPage}>\n+         Previous Page\n+       </button>\n+       <button onClick={() => nextPage()} disabled={!canNextPage}>\n+         Next Page\n+       </button>\n+       <div>\n+         Page{' '}\n+         <em>\n+           {pageIndex + 1} of {pageOptions.length}\n+         </em>\n+       </div>\n+       <div>Go to page:</div>\n+       <input\n+         type=\"number\"\n+         defaultValue={pageIndex + 1 || 1}\n+         onChange={e => {\n+           const page = e.target.value ? Number(e.target.value) - 1 : 0\n+           gotoPage(page)\n+         }}\n+       />\n+       <select\n+         value={pageSize}\n+         onChange={e => {\n+           setPageSize(Number(e.target.value))\n+         }}\n+       >\n+         {pageSizeOptions.map(pageSize => (\n+           <option key={pageSize} value={pageSize}>\n+             Show {pageSize}\n+           </option>\n+         ))}\n+       </select>\n+     </div>\n    </div>\n  )\n}\n```\n\n## Server Side Pagination\n\nTo implement server-side pagination, use the `useTableState` and `usePagination` hooks:\n\n```diff\n\n``` -->\n\n<!-- # Setup\n\nTo begin using React Table you will need to start with a UI to render it. Below is a very basic component that should serve as a good starting point for most projects:\n\n```js\n// Import React\nimport React from 'react'\n\n// Import React Table\nimport {\n  useTable,\n  useGroupBy,\n  useFilters,\n  useSortBy,\n  useExpanded,\n  usePagination,\n} from 'react-table'\n\n// Create a component to render your table\nexport default function MyTable(props) {\n  // Use the useTable hook to create your table configuration\n  const instance = useTable(\n    props,\n    useGroupBy,\n    useFilters,\n    useSortBy,\n    useExpanded,\n    usePagination\n  )\n\n  // Use the state and functions returned from useTable to build your UI\n  const {\n    getTableProps,\n    headerGroups,\n    rows,\n    getRowProps,\n    pageOptions,\n    page,\n    state: [{ pageIndex, pageSize }],\n    gotoPage,\n    prepareRow,\n    previousPage,\n    nextPage,\n    setPageSize,\n    canPreviousPage,\n    canNextPage,\n  } = instance\n\n  // Render the UI for your table\n  return (\n    <div>\n      <table {...getTableProps()}>\n        <thead>\n          {headerGroups.map(headerGroup => (\n            <tr {...headerGroup.getRowProps()}>\n              {headerGroup.headers.map(column => (\n                <th {...column.getHeaderProps()}>{column.render('Header')}</th>\n              ))}\n            </tr>\n          ))}\n        </thead>\n        <tbody>\n          {page.map(\n            (row, i) =>\n              prepareRow(row) || (\n                <tr {...row.getRowProps()}>\n                  {row.cells.map(cell => {\n                    return (\n                      <td {...cell.getCellProps()}>{cell.render('Cell')}</td>\n                    )\n                  })}\n                </tr>\n              )\n          )}\n        </tbody>\n      </table>\n      <div>\n        <button onClick={() => previousPage()} disabled={!canPreviousPage}>\n          Previous Page\n        </button>\n        <button onClick={() => nextPage()} disabled={!canNextPage}>\n          Next Page\n        </button>\n        <div>\n          Page{' '}\n          <em>\n            {pageIndex + 1} of {pageOptions.length}\n          </em>\n        </div>\n        <div>Go to page:</div>\n        <input\n          type=\"number\"\n          defaultValue={pageIndex + 1 || 1}\n          onChange={e => {\n            const page = e.target.value ? Number(e.target.value) - 1 : 0\n            gotoPage(page)\n          }}\n        />\n        <select\n          value={pageSize}\n          onChange={e => {\n            setPageSize(Number(e.target.value))\n          }}\n        >\n          {pageSizeOptions.map(pageSize => (\n            <option key={pageSize} value={pageSize}>\n              Show {pageSize}\n            </option>\n          ))}\n        </select>\n      </div>\n    </div>\n  )\n}\n```\n\nYou can then use your table like so:\n\n```js\n\nimport MyTable from './MyTable'\n\nfunction MyApp () {\n  const columns = React.useMemo(() => [{\n    Header: \"Name\",\n    columns: [\n      {\n        Header: \"First Name\",\n        accessor: \"firstName\",\n      },\n      {\n        Header: \"Last Name\",\n        accessor: \"lastName\",\n      }\n    ]\n  }], [])\n\n  const data = [{\n    firstName: 'Tanner',\n    lastName: 'Linsley'\n  }, {\n    firstName: 'Shawn',\n    lastName: 'Wang'\n  }, {\n    firstName: 'Kent C.',\n    lastName: 'Dodds'\n  }, {\n    firstName: 'Ryan',\n    lastName: 'Florence'\n  }]\n\n  return <MyTable columns={columns} data={data} />\n``` -->\n\n## Contributing\n\nTo suggest a feature, create an issue if it does not already exist.\nIf you would like to help develop a suggested feature follow these steps:\n\n- Fork this repo\n- Install dependencies with `$ yarn`\n- Link `react-table` locally with `$ yarn link`\n- Auto-build files as you edit with `$ yarn start`\n- Implement your changes and tests to files in the `src/` directory\n- In any example directory, link to the local `react-table` with `$ yarn link react-table`\n- Follow example directions for running. Usually just `$ yarn && yarn start`\n- Document your changes in the root `README.md`\n- To stage a commit, run `yarn commit`\n- Submit PR for review\n","licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.0-alpha.13","dist":{"shasum":"f8b132abcfe55891a48ce2eec0e43e2b0e7b9ecb","integrity":"sha512-18bBwHlBs2eZjS2tO4TR9RIdVC4JEo7vAQon2+cNN9H5sJK4arWlXc6PIWNnKmezGljLYQB0joheUEwonoXjGA==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.0-alpha.13.tgz","fileCount":39,"unpackedSize":587309,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdQG8KCRA9TVsSAnZWagAAukIQAJE6aNtIeb59urg0bsv8\n/4V5zlO81RoqVbR2Ql5zrL+chAcf2F9q1kRymIQkWEqCAXnf3AG97Bynt3W9\nDRvJLb/YEwNAiutL5JFaII7BQnYczF0HSSBviZoq8kpoAGLsfSXUuqfgvq8G\nYWc5EjaDAFgqA7kjDcn62klxDUSpGR6LA2+Tgmbp/uXAgg492sm1ZLhFc4cT\na5bOffS/GH3GK10L9VFguBUT89EzPciRFZcRyFcpVnbdIxUzM4AQbDNKhZAz\nI81LIX9Wc5T+kE8Fu1/o22YOduXVWxhmRAnhif/BSVIhfoggUHShHLdd/i2S\nSnjWaXyauGoqUC2G/hhpUzADoIZOUa+VofmcJ9oqsZwLTz3Tk1ybqxkGDyJc\nJWgcHTAEHIjC4sFi1hLLb/4GWNZAvTxhKGCfAUAfFAkVP5gs0OVOTdnT41K/\nAB0AhXhvUpNfm3VE/liepjGtVJA+SN1JgP6y3nIWiz8V7yFiJqCu0VZPUMMq\nVk4GZoOWsaAcKOgsrsQBdPgtvNcVTYgzt2dQi8+RJczWtGFbNX59NuKjWc32\n8d7ZaGSmjqZEeiiSwueQrOx/yBVS6ofYPO470xUmeKq1taSnQ1VthQ3EmDNL\nY114rYAhNpsR4lQfWLoUuMbBQ8lrOFZhD5cM1yxuFrosdMAs0qPHOFFTOE1c\nF7zI\r\n=uUck\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEcwsRk+8ehp+QPxOHIGdJUwHEi/i9YopJ2yOGHCyYyzAiEA/1IWgZgC968Yb+WMhLlZMtUkbD/AWWkyW1VPn9QL5Hw="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.0-alpha.13_1564503817341_0.5306447723138135"},"_hasShrinkwrap":false},"7.0.0-alpha.14":{"name":"react-table","version":"7.0.0-alpha.14","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"dist/index.js","module":"dist/index.es.js","jsnext:main":"dist/index.es.js","scripts":{"commit":"git add . && git-cz","test":"is-ci 'test:ci' 'test:dev'","test:dev":"jest --watch","test:ci":"jest","build":"rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier ./**{md,js,jsx,tsx} --write"},"peerDependencies":{"prop-types":"^15.5.0","react":"^16.8.3","react-dom":"^16.8.3"},"devDependencies":{"@babel/core":"^7.5.5","@babel/plugin-proposal-class-properties":"^7.5.5","@babel/preset-env":"^7.5.5","@babel/preset-react":"^7.0.0","@babel/runtime":"^7.5.5","@commitlint/cli":"^8.1.0","@commitlint/config-conventional":"^8.1.0","@svgr/rollup":"^4.3.2","@testing-library/dom":"^5.6.0","@testing-library/jest-dom":"^4.0.0","@testing-library/react":"^8.0.7","babel-eslint":"9.x","commitizen":"^4.0.3","core-js":"3","cross-env":"^5.2.0","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^8.0.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.14.3","eslint-plugin-react-hooks":"1.6.1","eslint-plugin-standard":"^4.0.0","husky":"^3.0.2","is-ci-cli":"^1.1.1","jest":"^24.8.0","jest-cli":"^24.8.0","jest-runner-eslint":"^0.7.4","jest-watch-select-projects":"^0.1.2","jest-watch-typeahead":"^0.3.1","lint-staged":"^9.2.1","prop-types":"^15.5.0","react":"^16.8.3","react-dom":"^16.8.3","rollup":"^0.68.0","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^9.1.3","rollup-plugin-node-resolve":"^4.0.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-uglify":"^6.0.2","snapshot-diff":"^0.5.2"},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"browserslist":"> 0.25%, not dead","readmeFilename":"README.md","readme":"# React Table\n\nHooks for building **lightweight, fast and extendable datagrids** for React\n\n<a href=\"https://travis-ci.org/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://travis-ci.org/tannerlinsley/react-table.svg?branch=master\" />\n</a>\n<a href=\"https://npmjs.com/package/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-table.svg\" />\n</a>\n<a href=\"https://spectrum.chat/react-table\">\n  <img alt=\"Join the community on Spectrum\" src=\"https://withspectrum.github.io/badge/badge.svg\" />\n</a>\n<a href=\"https://github.com/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-table.svg?style=social&label=Star\" />\n</a>\n<a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n\n<br />\n<br />\n\n## Features\n\n- Lightweight\n- Headless (100% customizable, Bring-your-own-UI)\n- Client-side & Server-side pagination support\n- Sorting (Multi and Stable)\n- Filters\n- Pivoting & Aggregation\n- Fully controllable\n- Extensible via hooks\n- <a href=\"https://medium.com/@tannerlinsley/why-i-wrote-react-table-and-the-problems-it-has-solved-for-nozzle-others-445c4e93d4a8#.axza4ixba\" target=\"\\_parent\">\"Why I wrote React Table and the problems it has solved for Nozzle.io\"</a> by Tanner Linsley\n\n## [See Examples](#examples)\n\n## Versions\n\n- This documentation is for version 7.\n- [View the Changelog](https://github.com/tannerlinsley/react-table/blob/master/CHANGELOG.md)\n- Previous versions:\n  - [6.x.x Readme](https://github.com/tannerlinsley/react-table/tree/v6/)\n  - [5.x.x Readme](https://github.com/tannerlinsley/react-table/blob/ad7d31cd3978eb45da7c6194dbab93c1e9a8594d/README.md)\n\n## Sponsors\n\n**React Table v7** is being built and maintained by me, @tannerlinsley and I am always in need of more Patreon support to keep this project afloat. If you would like to contribute to my Patreon goal for v7 and beyond, [visit my Patreon and help me out!](https://patreon.com/tannerlinsley).\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/platinum.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://tryretool.com/?utm_source=sponsor&utm_campaign=react_table\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-retool.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/platinum-placeholder.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/gold.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://nozzle.io\" target=\"_blank\">\n          <img width=\"300\" src=\"https://nozzle.io/img/logo-blue.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://zappi.com/web\" target=\"_blank\">\n          <img width=\"300\" src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-zappi.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/gold-placeholder.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n# Documentation\n\n- [Installation](#installation)\n- [Concepts](#concepts)\n- [Setup](#setup)\n- [Contributing](#contributing)\n\n# Installation\n\nInstall React Table as a dependency using `npm` or `yarn`\n\n```bash\n# NPM\n$ npm install react-table\n\n# Yarn\n$ yarn add react-table\n```\n\nTo import React Table:\n\n```js\nimport {\n  useTable,\n  useGroupBy,\n  useFilters,\n  useSortBy,\n  useExpanded,\n  usePagination,\n  ...\n} from 'react-table'\n```\n\n# Examples\n\n- [Basic](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/master/examples/basic)\n- [Sorting - Client Side](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/master/examples/sorting-client-side)\n- [Filtering - Client Side](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/master/examples/filtering-client-side)\n- [Grouping - Client Side](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/master/examples/grouping-client-side)\n\n# Concepts\n\n## React Table is a \"headless\" UI library\n\nReact Table is a headless utility, which means out of the box, it doesn't render or supply any actual UI elements. You are in charge of utilizing the state and callbacks of the hooks provided by this library to render your own table markup. [Read this article to understand why React Table is built this way.](https://medium.com/merrickchristensen/headless-user-interface-components-565b0c0f2e18). If you don't want to, then here's a quick rundown anyway:\n\n- Separation of Concerns - Not that superficial kind you read about all the time. The real kind. React Table as a library honestly has no business being in charge of your UI. The look, feel, and overall experience of your table is what makes your app or product great. The less React Table gets in the way of that, the better!\n- Maintenance - By removing the massive (and seemingly endless) API surface area required to support every UI use-case, React Table can remain small, easy-to-use and simple to update/maintain.\n- Extensibility - UI presents countless edge cases for a library simply because it's a creative medium, and one where every developer does things differently. By not dictating UI concerns, React Table empowers the developer to design and extend the UI based on their unique use-case.\n\n## The React Table API\n\nAt the heart of every React Table is a table `instance` object. This object contains everything needed to build a table and interact with it's state. This includes, but is not limited to:\n\n- Columns\n- Materialized Data\n- Sorting\n- Filtering\n- Grouping\n- Pagination\n- Expanded State\n- Any functionality provided by custom plugin hooks, too!\n\n## Using Hooks for configuration, state and lifecycle\n\nReact Table uses React Hooks both internally and externally for 100% of its configuration and lifecycle management. Naturally, this is what allows React Table to be headless and lightweight while still having a concise and simple API.\n\nReact Table is essentially a compatible collection of **custom React hooks**:\n\n- The primary React Table hook\n  - [`useTable`](#usetable)\n- Plugin Hooks\n  - Core Plugin Hooks\n    - [`useTableState`](#useTableState)\n    - [`useGroupBy`](#useGroupBy)\n    - [`useFilters`](#useFilters)\n    - [`useSortBy`](#useSortBy)\n    - [`useExpanded`](#useExpanded)\n    - [`usePagination`](#usePagination)\n    - [`useTokenPagination`](#useTokenPagination)\n  - Layout Plugin Hooks\n    - [`useFlexLayout`](#useFlexLayout)\n    - [`useAbsoluteLayout`](#useAbsoluteLayout) (coming soon!)\n- Custom Plugin Hooks\n  - Get your custom plugin hook listed here!\n\n### Hook Usage\n\n`useTable` is the **primary** hook used to build a React Table. It serves as the starting point for **every option and every plugin hook** that React Table supports. The options passed into `useTable` are supplied to every plugin hook after it in the order they are supplied, eventually resulting a final `instance` object that you can use to build your table UI and interact with the table's state.\n\n```js\nconst instance = useTable(\n  {\n    data: [...],\n    columns: [...],\n  },\n  useGroupBy,\n  useFilters,\n  useSortBy,\n  useExpanded,\n  usePagination\n)\n```\n\n### The stages of a React Table\n\n1. `useTable` is called. A table instance is created.\n1. The `instance.state` is resolved from either a custom user state or an automatically generated one.\n1. A collection of plugin points is created at `instance.hooks`.\n1. Each plugin is given the opportunity to add hooks to `instance.hook`.\n1. As the `useTable` logic proceeds to run, each plugin hook type is used at a specific point in time with each individual hook function being executed the order it was registered.\n1. The final instance object is returned from `useTable`, which the developer then uses to construct their table.\n\nThis multi-stage process is the secret sauce that allows React Table plugin hooks to work together and compose nicely, while not stepping on each others toes.\n\nTo dive deeper into plugins, see [Plugins](TODO) and the [Plugin Guide](TODO)\n\n### Plugin Hook Order & Consistency\n\nThe order and usage of plugin hooks must follow [The Laws of Hooks](TODO), just like any other custom hook. They must always be unconditionally called in the same order.\n\n> **NOTE: In the event that you want to programmatically enable or disable plugin hooks, most of them provide options to disable their functionality, eg. `options.disableSorting`**\n\n### Option Memoization\n\nReact Table relies on memoization to determine when state and side effects should update or be calculated. This means that every option you pass to `useTable` should be memoized either via `React.useMemo` (for objects) or `React.useCallback` (for functions).\n\n# API\n\n## `useTable`\n\n- Required\n\n`useTable` is the root hook for React Table. To use it, pass it with an options object with at least a `columns` and `rows` value, followed by any React Table compatible hooks you want to use.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `columns: Array<Column>`\n  - Required\n  - Must be **memoized**\n  - The core columns configuration object for the entire table.\n  - Supports nested `columns` arrays via the `column.children` key\n- `data: Array<any>`\n  - Required\n  - Must be **memoized**\n  - The data array that you want to display on the table.\n- `state: TableStateTuple[stateObject, stateUpdater]`\n  - Optional\n  - Must be **memoized** table state tuple. See [`useTableState`](#usetablestate) for more information.\n  - The state/updater pair for the table instance. You would want to override this if you plan on controlling or hoisting table state into your own code.\n  - Defaults to using an internal `useTableState()` instance if not defined.\n  - See [Controlling and Hoisting Table State](#controlling-and-hoisting-table-state)\n- `defaultColumn: Object`\n  - Optional\n  - Defaults to `{}`\n  - The default column object for every column passed to React Table.\n  - Column-specific properties will override the properties in this object, eg. `{ ...defaultColumn, ...userColumn }`\n  - This is particularly useful for adding global column properties. For instance, when using the `useFilters` plugin hook, add a default `Filter` renderer for every column, eg.`{ Filter: MyDefaultFilterComponent }`\n- `debug: Bool`\n  - Optional\n  - A flag to turn on debug mode.\n  - Defaults to `false`\n\n### `column` Options\n\nThe following options are supported on any column object you can pass to `columns`.\n\n- `accessor: String | Function`\n  - **Required**\n  - This string/function is used to build the data model for your column.\n  - The data returned by an accessor should be **primitive** and sortable.\n  - If a string is passed, the column's value will be looked up on the original row via that key, eg. If your column's accessor is `firstName` then its value would be read from `row['firstName']`. You can also specify deeply nested values with accessors like `info.hobbies` or even `address[0].street`\n  - If a function is passed, the column's value will be looked up on the original row using this accessor function, eg. If your column's accessor is `row => row.firstName`, then its value would be determined by passing the row to this function and using the resulting value.\n- `id: String`\n  - **Required if `accessor` is a function**\n  - This is the unique ID for the column. It is used by reference in things like sorting, grouping, filtering etc.\n  - If a **string** accessor is used, it defaults as the column ID, but can be overridden if necessary.\n- `columns: Array<Column>`\n  - Optional\n  - A nested array of columns.\n  - If defined, the column will act as a header group. Columns can be recursively nested as much as needed.\n- `show: Boolean | Function`\n  - Optional\n  - Defaults to `true`\n  - If set to `false`, the column will be hidden.\n  - If set to a `function`, it will be called with the current table instance and can then return `true` or `false`.\n  - The data model for hidden columns is still calculated including sorting, filters, and grouping.\n- `Header: String | Function | React.Component => JSX`\n  - Optional\n  - Defaults to `({ id }) => id`\n  - Receives the table instance and column model as props\n  - Must either be a **string or return valid JSX**\n  - If a function/component is passed, it will be used for formatting the header value, eg. You can use a `Header` function to dynamically format the header using any table or column state.\n- `Cell: Function | React.Component => JSX`\n  - Optional\n  - Defaults to `({ value }) => value`\n  - Receives the table instance and cell model as props\n  - Must return valid JSX\n  - This function (or component) is primarily used for formatting the column value, eg. If your column accessor returns a date object, you can use a `Cell` function to format that date to a readable format.\n\n### `Instance` Properties\n\nThe following properties are available on the table instance returned from `useTable`\n\n- `headerGroups: Array<HeaderGroup>`\n  - An array of normalized header groups, each containing a flattened array of final column objects for that row.\n  - See [Header Group Properties](#headergroup-properties) for more information\n- `columns: Array<Column>`\n  - A **flat** array of all final column objects computed from the original columns configuration option.\n  - See [Column Properties](#column-properties) for more information\n- `headers[] Array<Column>`\n  - A **nested** array of final column objects, similar in structure to the original columns configuration option.\n  - See [Column Properties](#column-properties) for more information\n- `rows: Array<Row>`\n  - An array of **materialized row objects** from the original `data` array and `columns` passed into the table options\n  - See [Row Properties](#row-properties) for more information\n- `getTableProps: Function(?props)`\n  - **Required**\n  - This function is used to resolve any props needed for your table wrapper.\n  - Custom props may be passed. **NOTE: Custom props will override built-in table props, so be careful!**\n- `prepareRow: Function(Row)`\n  - **Required**\n  - This function is responsible for lazily preparing a row for rendering. Any row that you intend to render in your table needs to be passed to this function **before every render**.\n  - **Why?** Since table data could potentially be very large, it can become very expensive to compute all of the necessary state for every row to be rendered regardless if it actually is rendered or not (for example if you are paginating or virtualizing the rows, you may only have a few rows visible at any given moment). This function allows only the rows you intend to display to be computed and prepped with the correct state.\n\n### `HeaderGroup` Properties\n\nThe following additional properties are available on every `headerGroup` object returned by the table instance.\n\n- `headers: Array<Column>`\n  - **Required**\n  - The columns in this header group.\n- `getHeaderGroupProps: Function(?props)`\n  - **Required**\n  - This function is used to resolve any props needed for this header group's row.\n  - You can use the `getHeaderGroupProps` hook to extend its functionality.\n  - Custom props may be passed. **NOTE: Custom props will override built-in table props, so be careful!**\n\n### `Column` Properties\n\nThe following properties are available on every `Column` object returned by the table instance.\n\n- `id: String`\n  - The resolved column ID from either the column's `accessor` or the column's hard-coded `id` property\n- `visible: Boolean`\n  - The resolved visible state for the column, derived from the column's `show` property\n- `render: Function(type: String | Function | Component, ?props)`\n  - This function is used to render content in context of a column.\n  - If `type` is a string, will render using the `column[type]` renderer. React Table ships with default `Header` renderers. Other renderers like `Filter` are available via hooks like `useFilters`.\n  - If a function or component is passed instead of a string, it will be be passed the table instance and column model as props and is expected to return any valid JSX.\n- `getHeaderProps: Function(?props)`\n  - **Required**\n  - This function is used to resolve any props needed for this column's header cell.\n  - You can use the `getHeaderProps` hook to extend its functionality.\n  - Custom props may be passed. **NOTE: Custom props will override built-in table props, so be careful!**\n\n### `Row` Properties\n\nThe following additional properties are available on every `row` object returned by the table instance.\n\n- `cells: Array<Cell>`\n  - An array of `Cell` objects containing properties and functions specific to the row and column it belongs to.\n  - See [Cell Properties](#cell-properties) for more information\n- `values: Object<columnID: any>`\n  - A map of this row's **resolved** values by columnID, eg. `{ firstName: 'Tanner', lastName: 'Linsley' }`\n- `getRowProps: Function(?props)`\n  - **Required**\n  - This function is used to resolve any props needed for this row.\n  - You can use the `getRowProps` hook to extend its functionality.\n  - Custom props may be passed. **NOTE: Custom props will override built-in table props, so be careful!**\n\n### `Cell` Properties\n\nThe following additional properties are available on every `Cell` object returned in an array of `cells` on every row object.\n\n- `column: Column`\n  - The corresponding column object for this cell\n- `row: Row`\n  - The corresponding row object for this cell\n- `value: any`\n  - The **resolved** value for this cell.\n  - By default, this value is displayed on the table via the default `Cell` renderer. To override the way a cell displays\n- `getCellProps: Function(?props)`\n  - **Required**\n  - This function is used to resolve any props needed for this cell.\n  - You can use the `getCellProps` hook to extend its functionality.\n  - Custom props may be passed. **NOTE: Custom props will override built-in table props, so be careful!**\n- `render: Function(type: String | Function | Component, ?props)`\n  - This function is used to render content in context of a cell.\n  - If `type` is a string, will render using the `column[type]` renderer. React Table ships with a default `Cell` renderer. Other renderers like `Aggregated` are available via hooks like `useFilters`.\n  - If a function or component is passed instead of a string, it will be be passed the table instance and cell model as props and is expected to return any valid JSX.\n\n### Example\n\n```js\nfunction App() {\n  const columns = React.useMemo(\n    () => [\n      {\n        Header: 'Name',\n        columns: [\n          {\n            Header: 'First Name',\n            accessor: 'firstName',\n          },\n          {\n            Header: 'Last Name',\n            accessor: 'lastName',\n          },\n        ],\n      },\n    ],\n    []\n  )\n\n  const data = [\n    {\n      firstName: 'Tanner',\n      lastName: 'Linsley',\n    },\n    {\n      firstName: 'Shawn',\n      lastName: 'Wang',\n    },\n    {\n      firstName: 'Kent C.',\n      lastName: 'Dodds',\n    },\n    {\n      firstName: 'Ryan',\n      lastName: 'Florence',\n    },\n  ]\n\n  return <MyTable columns={columns} data={data} />\n}\n\nfunction MyTable({ columns, data }) {\n  const { getTableProps, headerGroups, rows, prepareRow } = useTable({\n    columns,\n    data,\n  })\n\n  return (\n    <table {...getTableProps()}>\n      <thead>\n        {headerGroups.map(headerGroup => (\n          <tr {...headerGroup.getHeaderGroupProps()}>\n            {headerGroup.headers.map(column => (\n              <th {...column.getHeaderProps()}>{column.render('Header')}</th>\n            ))}\n          </tr>\n        ))}\n      </thead>\n      <tbody>\n        {rows.map(\n          (row, i) =>\n            prepareRow(row) || (\n              <tr {...row.getRowProps()}>\n                {row.cells.map(cell => {\n                  return <td {...cell.getCellProps()}>{cell.render('Cell')}</td>\n                })}\n              </tr>\n            )\n        )}\n      </tbody>\n    </table>\n  )\n}\n```\n\n## `useSortBy`\n\n- Plugin Hook\n- Optional\n\n`useSortBy` is the hook that implements **row sorting**. It also support multi-sort (keyboard required).\n\n- Multi-sort is enabled by default\n- To sort the table via UI, attach the props generated from each column's `getSortByToggleProps()`, then click any of those elements.\n- To multi-sort the table via UI, hold `shift` while clicking on any of those same elements that have the props from `getSortByToggleProps()` attached.\n- To programmatically sort (or multi-sort) any column, use the `toggleSortBy` method located on the instance or each individual column.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `state[0].sortBy: Array<Object<id: columnID, desc: Bool>>`\n  - Must be **memoized**\n  - An array of sorting objects. If there is more than one object in the array, multi-sorting will be enabled. Each sorting object should contain an `id` key with the corresponding column ID to sort by. An optional `desc` key may be set to true or false to indicated ascending or descending sorting for that column. This information is stored in state since the table is allowed to manipulate the filter through user interaction.\n- `manualSorting: Bool`\n  - Enables sorting detection functionality, but does not automatically perform row sorting. Turn this on if you wish to implement your own sorting outside of the table (eg. server-side or manual row grouping/nesting)\n- `disableSorting: Bool`\n  - Disables sorting for every column in the entire table.\n- `disableMultiSort: Bool`\n  - Disables multi-sorting for the entire table.\n- `disableSortRemove: Bool`\n  - If true, the un-sorted state will not be available to columns once they have been sorted.\n- `disableMultiRemove: Bool`\n  - If true, the un-sorted state will not be available to multi-sorted columns.\n- `orderByFn: Function`\n  - Must be **memoizd**\n  - Defaults to the built-in [default orderBy function](TODO)\n  - This function is responsible for composing multiple sorting functions together for multi-sorting, and also handles both the directional sorting and stable-sorting tie breaking. Rarely would you want to override this function unless you have a very advanced use-case that requires it.\n- `sortTypes: Object<sortKey: sortType>`\n  - Must be **memoized**\n  - Allows overriding or adding additional sort types for columns to use. If a column's sort type isn't found on this object, it will default to using the [built-in sort types](TODO).\n  - For mor information on sort types, see [Sorting](TODO)\n\n### `Column` Options\n\nThe following options are supported on any `Column` object passed to the `columns` options in `useTable()`\n\n- `disableSorting: Bool`\n  - Optional\n  - Defualts to `false`\n  - If set to `true`, the sorting for this column will be disabled\n- `sortDescFirst: Bool`\n  - Optional\n  - Defaults to `false`\n  - If set to `true`, the first sort direction for this column will be descending instead of ascending\n- `sortInverted: Bool`\n  - Optional\n  - Defaults to `false`\n  - If set to `true`, the underlying sorting direction will be inverted, but the UI will not.\n  - This may be useful in situations where positive and negative connotation is inverted, eg. a Golfing score where a lower score is considered more positive than a higher one.\n- `sortType: String | Function`\n  - If a **function** is passed, it must be **memoized**\n  - Defaults to [`alphanumeric`](TODO)\n  - The resolved function from the this string/function will be used to sort the this column's data.\n    - If a `string` is passed, the function with that name located on either the custom `sortTypes` option or the built-in sorting types object will be used. If\n    - If a `function` is passed, it will be used.\n  - For mor information on sort types, see [Sorting](TODO)\n\n### `Instance` Properties\n\nThe following values are provided to the table `instance`:\n\n- `rows: Array<Row>`\n  - An array of **sorted** rows.\n- `preSortedRows: Array<Row>`\n  - The array of rows that were originally sorted.\n- `toggleSortBy: Function(ColumnID: String, descending: Bool, isMulti: Bool) => void`\n  - This function can be used to programmatically toggle the sorting for any specific column\n\n### `Column` Properties\n\nThe following properties are available on every `Column` object returned by the table instance.\n\n- `canSort: Bool`\n  - Denotes whether a column is sortable or not depending on if it has a valid accessor/data model or is manually disabled via an option.\n- `toggleSortBy: Function(descending, multi) => void`\n  - This function can be used to programmatically toggle the sorting for this column.\n  - This function is similar to the `instance`-level `toggleSortBy`, however, passing a columnID is not required since it is located on a `Column` object already.\n- `getSortByToggleProps: Function(props) => props`\n  - **Required**\n  - This function is used to resolve any props needed for this column's UI that is responsible for toggling the sort direction when the user clicks it.\n  - You can use the `getSortByToggleProps` hook to extend its functionality.\n  - Custom props may be passed. **NOTE: Custom props may override built-in sortBy props, so be careful!**\n- `sorted: Boolean`\n  - Denotes whether this column is currently being sorted\n- `sortedIndex: Int`\n  - If the column is currently sorted, this integer will be the index in the `sortBy` array from state that corresponds to this column.\n  - If this column is not sorted, the index will always be `-1`\n- `sortedDesc: Bool`\n  - If the column is currently sorted, this denotes whether the column's sort direction is descending or not.\n  - If `true`, the column is sorted `descending`\n  - If `false`, the column is sorted `ascending`\n  - If `undefined`, the column is not currently being sorted.\n\n### Example\n\n```js\nfunction Table({ columns, data }) {\n  // Set some default sorting state\n  const state = useTableState({ sortBy: [{ id: 'firstName', desc: true }] })\n\n  const { getTableProps, headerGroups, rows, prepareRow } = useTable(\n    {\n      columns,\n      data,\n    },\n    useSortBy // Use the sortBy hook\n  )\n\n  return (\n    <table {...getTableProps()}>\n      <thead>\n        {headerGroups.map(headerGroup => (\n          <tr {...headerGroup.getHeaderGroupProps()}>\n            {headerGroup.headers.map(column => (\n              // Add the sorting props to control sorting. For this example\n              // we can add them into the header props\n              <th {...column.getHeaderProps(column.getSortByToggleProps())}>\n                {column.render('Header')}\n                <span>\n                  {/* Add a sort direction indicator */}\n                  <span>\n                    {column.sorted ? (column.sortedDesc ? ' 🔽' : ' 🔼') : ''}\n                  </span>\n                  {/* Add a sort index indicator */}\n                  <span>({column.sorted ? column.sortedIndex + 1 : ''})</span>\n                </span>\n              </th>\n            ))}\n          </tr>\n        ))}\n      </thead>\n      <tbody>\n        {rows.map(\n          (row, i) =>\n            prepareRow(row) || (\n              <tr {...row.getRowProps()}>\n                {row.cells.map(cell => {\n                  return <td {...cell.getCellProps()}>{cell.render('Cell')}</td>\n                })}\n              </tr>\n            )\n        )}\n      </tbody>\n    </table>\n  )\n}\n```\n\n## `useFilters`\n\n- Plugin Hook\n- Optional\n\n`useFilters` is the hook that implements **row filtering**.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `state[0].filters: Object<columnID: filterValue>`\n  - Must be **memoized**\n  - An object of columnID's and their corresponding filter values. This information is stored in state since the table is allowed to manipulate the filter through user interaction.\n- `defaultFilter: String | Function`\n  - If a **function** is passed, it must be **memoized**\n  - Defaults to [`text`](TODO)\n  - The function (or resolved function from the string) will be used as the default/fallback filter method for every column that has filtering enabled.\n    - If a `string` is passed, the function with that name located on the `filterTypes` option object will be used.\n    - If a `function` is passed, it will be used.\n  - For mor information on filter types, see [Filtering](TODO)\n- `manualFilters: Bool`\n  - Enables filter detection functionality, but does not automatically perform row filtering.\n  - Turn this on if you wish to implement your own row filter outside of the table (eg. server-side or manual row grouping/nesting)\n- `disableFilters: Bool`\n  - Disables filtering for every column in the entire table.\n- `filterTypes: Object<filterKey: filterType>`\n  - Must be **memoized**\n  - Allows overriding or adding additional filter types for columns to use. If a column's filter type isn't found on this object, it will default to using the [built-in filter types](TODO).\n  - For mor information on filter types, see [Filtering](TODO)\n\n### `Column` Options\n\nThe following options are supported on any `Column` object passed to the `columns` options in `useTable()`\n\n- `Filter: Function | React.Component => JSX`\n  - **Required**\n  - Receives the table instance and column model as props\n  - Must return valid JSX\n  - This function (or component) is used to render this column's filter UI, eg.\n- `disableFilters: Bool`\n  - Optional\n  - If set to `true`, will disable filtering for this column\n- `filter: String | Function`\n  - Optional\n  - Defaults to [`text`](TODO)\n  - The resolved function from the this string/function will be used to filter the this column's data.\n    - If a `string` is passed, the function with that name located on either the custom `filterTypes` option or the built-in filtering types object will be used. If\n    - If a `function` is passed, it will be used directly.\n  - For mor information on filter types, see [Filtering](TODO)\n  - If a **function** is passed, it must be **memoized**\n\n### `Instance` Properties\n\nThe following values are provided to the table `instance`:\n\n- `rows: Array<Row>`\n  - An array of **filtered** rows.\n- `preFilteredRows: Array<Row>`\n  - The array of rows **used right before filtering**.\n  - Among many other use-cases, these rows are directly useful for building option lists in filters, since the resulting filtered `rows` do not contain every possible option.\n- `setFilter: Function(columnID, filterValue) => void`\n  - An instance-level function used to update the filter value for a specific column.\n- `setAllFilters: Function(filtersObject) => void`\n  - An instance-level function used to update the values for **all** filters on the table, all at once.\n\n### `Column` Properties\n\nThe following properties are available on every `Column` object returned by the table instance.\n\n- `canFilter: Bool`\n  - Denotes whether a column is filterable or not depending on if it has a valid accessor/data model or is manually disabled via an option.\n- `setFilter: Function(filterValue) => void`\n  - An column-level function used to update the filter value for this column\n- `filterValue: any`\n  - The current filter value for this column, resolved from the table state's `filters` object\n- `preFilteredRows: Array<row>`\n  - The array of rows that were originally passed to this columns filter **before** they were filtered.\n  - This array of rows can be useful if building faceted filter options.\n\n### Example\n\n```js\n// A great library for fuzzy filtering/sorting items\nimport matchSorter from 'match-sorter'\n\nconst state = useTableState({ filters: { firstName: 'tanner' } })\n\nconst filterTypes = React.useMemo(() => ({\n  // Add a new fuzzyText filter type.\n  fuzzyText: (rows, id, filterValue) => {\n    return matchSorter(rows, filterValue, { keys: [row => row[id] })\n  },\n  // Or, override the default text filter to use\n  // \"startWith\"\n  text: (rows, id, filterValue) => {\n    return rows.filter(row => {\n      const rowValue = row.values[id]\n      return rowValue !== undefined\n        ? String(rowValue)\n            .toLowerCase()\n            .startsWith(String(filterValue).toLowerCase())\n        : true\n    })\n  }\n}), [matchSorter])\n\n// Override the default column filter to be our new `fuzzyText` filter type\nconst defaultColumn = React.useMemo(() => ({\n  filter: 'fuzzyText'\n}))\n\nconst { rows } = useTable(\n  {\n    // state[0].groupBy === ['firstName']\n    state,\n    manualFilters: false,\n    disableFilters: false,\n    // Pass our custom filter types\n    filterTypes,\n    defaultColumn\n  },\n  useFilters\n)\n```\n\n## `useGroupBy`\n\n- Plugin Hook\n- Optional\n\n`useGroupBy` is the hook that implements **row grouping and aggregation**.\n\n- Each column's `getGroupByToggleProps()` function can be used to generate the props needed to make a clickable UI element that will toggle the grouping on or off for a specific column.\n- Instance and column-level `toggleGroupBy` functions are also made available for programmatic grouping.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `state[0].groupBy: Array<String>`\n  - Must be **memoized**\n  - An array of groupBy ID strings, controlling which columns are used to calculate row grouping and aggregation. This information is stored in state since the table is allowed to manipulate the groupBy through user interaction.\n- `groupByFn: Function`\n  - Must be **memoized**\n  - Defaults to [`defaultGroupByFn`](TODO)\n  - This function is responsible for grouping rows based on the `state.groupBy` keys provided. It's very rare you would need to customize this function.\n- `manualGroupBy: Bool`\n  - Enables groupBy detection and functionality, but does not automatically perform row grouping.\n  - Turn this on if you wish to implement your own row grouping outside of the table (eg. server-side or manual row grouping/nesting)\n- `disableGrouping: Bool`\n  - Disables groupBy for the entire table.\n- `aggregations: Object<aggregationKey: aggregationFn>`\n  - Must be **memoized**\n  - Allows overriding or adding additional aggregation functions for use when grouping/aggregating row values. If an aggregation key isn't found on this object, it will default to using the [built-in aggregation functions](TODO)\n\n### `Column` Options\n\nThe following options are supported on any `Column` object passed to the `columns` options in `useTable()`\n\n- `Aggregated: Function | React.Component => JSX`\n  - Optional\n  - Defaults to this column's `Cell` formatter\n  - Receives the table instance and cell model as props\n  - Must return valid JSX\n  - This function (or component) formats this column's value when it is being grouped and aggregated, eg. If this column was showing the number of visits for a user to a website and it was currently being grouped to show an **average** of the values, the `Aggregated` function for this column could format that value to `1,000 Avg. Visits`\n- `disableGrouping: Boolean`\n  - Defaults to `true`\n  - If `true`, this column is able to be grouped.\n\n### `Instance` Properties\n\nThe following values are provided to the table `instance`:\n\n- `rows: Array<Row>`\n  - An array of **grouped and aggregated** rows.\n- `preGroupedRows: Array<Row>`\n  - The array of rows originally used to create the grouped rows.\n- `toggleGroupBy: Function(columnID: String, ?set: Bool) => void`\n  - This function can be used to programmatically set or toggle the groupBy state for a specific column.\n\n### `Column` Properties\n\nThe following properties are available on every `Column` object returned by the table instance.\n\n- `canGroupBy: Boolean`\n  - If `true`, this column is able to be grouped.\n  - This is resolved from the column having a valid accessor / data model, and not being manually disabled via other `useGroupBy` related options\n- `grouped: Boolean`\n  - If `true`, this column is currently being grouped\n- `groupedIndex: Int`\n  - If this column is currently being grouped, this integer is the index of this column's ID in the table state's `groupBy` array.\n- `toggleGroupBy: Function(?set: Bool) => void`\n  - This function can be used to programmatically set or toggle the groupBy state fo this column.\n- `getGroupByToggleProps: Function(props) => props`\n  - **Required**\n  - This function is used to resolve any props needed for this column's UI that is responsible for toggling grouping when the user clicks it.\n  - You can use the `getGroupByToggleProps` hook to extend its functionality.\n  - Custom props may be passed. **NOTE: Custom props may override built-in sortBy props, so be careful!**\n\n### Example\n\n```js\nconst state = useTableState({ groupBy: ['firstName'] })\n\nconst aggregations = React.useMemo(() => ({\n  customSum: (values, rows) => values.reduce((sum, next) => sum + next, 0),\n}))\n\nconst { rows } = useTable(\n  {\n    state, // state[0].groupBy === ['firstName']\n    manualGroupBy: false,\n    disableGrouping: false,\n    aggregations,\n  },\n  useGroupBy\n)\n```\n\n## `useExpanded`\n\n- Plugin Hook\n- Optional\n\n`useExpanded` is the hook that implements **row expanding**. It is most often used with `useGroupBy` to expand grouped rows, but is not limited to that use-case. It supports expanding rows both via internal table state and also via a hard-coded key on the raw row model.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `state[0].expanded: Object<[pathIndex]: Boolean | ExpandedStateObject>`\n  - Must be **memoized**\n  - An nested object of expanded paths.\n  - A `pathIndex` can be set as the key and its value set to `true` to expand that row's subRows into view. For example, if `{ '3': true }` was passed as the `expanded` state, the **4th row in the original data array** would be expanded.\n  - For nested expansion, you may **use another object** instead of a Boolean to expand sub rows. For example, if `{ '3': { '5' : true }}` was passed as the `expanded` state, then the **6th subRow of the 4th row and the 4th row of the original data array** would be expanded.\n  - This information is stored in state since the table is allowed to manipulate the filter through user interaction.\n- `subRowsKey: String`\n  - Required\n  - Defaults to `subRows`\n  - React Table will use this key when materializing the final row object. It also uses this key to infer sub-rows from the raw data.\n  - See [Grouping and Aggregation](#grouping-and-aggregation) for more information\n- `paginateSubRows: Bool`\n  - Defaults to `true`\n  - If set to `false`, expanded rows will not be paginated. Thus, any expanded subrows would potentially increase the size of any given page by the amount of total expanded subrows on the page.\n- `manualExpandedKey: String`\n  - Defaults to `expanded`\n  - This string is used as the key to detect manual expanded state on any given row. For example, if a raw data row like `{ name: 'Tanner Linsley', friends: [...], expanded: true}` was detected, it would be forcibly expanded, regardless of state.\n\n### Instance Variables\n\nThe following values are provided to the table `instance`:\n\n- `rows: Array<Row>`\n  - An array of **sorted** rows.\n\n### Example\n\n```js\nconst state = useTableState({ expanded: { '3': true, '5': { '2': true } } })\n\nconst { rows } = useTable(\n  {\n    // state[0].sortBy === { '3': true, '5': { '2': true } }\n    state,\n  },\n  useExpanded\n)\n```\n\n## `usePagination`\n\n- Plugin Hook\n- Optional\n\n`usePagination` is the hook that implements **row pagination**. It can be used for both client-side pagination or server-side pagination. For more information on pagination, see [Pagination](TODO)\n\n> **NOTE** Some server-side pagination implementations do not use page index and instead use **token based pagination**! If that's the case, please use the `useTokenPagination` plugin instead.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `state[0].pageSize: Int`\n  - **Required**\n  - Defaults to `10`\n  - Determines the amount of rows on any given page\n- `state[0].pageIndex: Int`\n  - **Required**\n  - Defaults to `0`\n  - The index of the page that should be displayed via the `page` instance value\n- `pageCount: Int`\n  - **Required if `manualPagination` is set to `true`**\n  - If `manualPagination` is `true`, then this value used to determine the amount of pages available. This amount is then used to materialize the `pageOptions` and also compute the `canNextPage` values on the table instance.\n- `manualPagination: Bool`\n  - Enables pagination functionality, but does not automatically perform row pagination.\n  - Turn this on if you wish to implement your own pagination outside of the table (eg. server-side pagination or any other manual pagination technique)\n- `disablePageResetOnDataChange`\n  - Defaults to `false`\n  - Normally, any changes detected to `rows`, `state.filters`, `state.groupBy`, or `state.sortBy` will trigger the `pageIndex` to be reset to `0`\n  - If set to `true`, the `pageIndex` will not be automatically set to `0` when these dependencies change.\n\n### Instance Variables\n\nThe following values are provided to the table `instance`:\n\n- `pages: Array<page>`\n  - An array of every generated `page`, each containing its respective rows.\n- `page: Array<row>`\n  - An array of rows for the **current** page, determined by the current `pageIndex` value.\n- `pageCount: Int`\n  - If `manualPagination` is set to `false`, this is the total amount of pages available in the table based on the current `pageSize` value\n  - if `manualPagination` is set to `true`, this is merely the same `pageCount` option that was passed in the table options.\n- `pageOptions: Array<Int>`\n  - An array of zero-based index integers corresponding to available pages in the table.\n  - This can be useful for generating things like select interfaces for the user to select a page from a list, instead of manually paginating to the desired page.\n- `canPreviousPage: Bool`\n  - If there are pages and the current `pageIndex` is greater than `0`, this will be `true`\n- `canNextPage:`\n  - If there are pages and the current `pageIndex` is less than `pageCount`, this will be `true`\n- `gotoPage: Function(pageIndex)`\n  - This function, when called with a valid `pageIndex`, will set `pageIndex` to that value.\n  - If the passed index is outside of the valid `pageIndex` range, then this function will do nothing.\n- `previousPage: Function`\n  - This function decreases `state.pageIndex` by one.\n  - If there are no pages or `canPreviousPage` is false, this function will do nothing.\n- `nextPage: Function`\n  - This function increases `state.pageIndex` by one.\n  - If there are no pages or `canNextPage` is false, this function will do nothing.\n- `setPageSize: Function(pageSize)`\n  - This function sets `state.pageSize` to the new value.\n  - As a result of a pageSize change, a new `state.pageIndex` is also calculated. It is calculated via `Math.floor(currentTopRowIndex / newPageSize)`\n- `pageIndex: Int`\n  - This is the resolved `state.pageIndex` value.\n- `pageSize: Int`\n  - This is the resolved `state.pageSize` value.\n\n### Example\n\n```js\nconst state = useTableState({ pageSize: 20, pageIndex: 1 })\n\nconst { rows } = useTable(\n  {\n    // state[0] === { pageSize: 20, pageIndex: 1 }\n    state,\n  },\n  usePagination\n)\n```\n\n## `useTokenPagination`\n\n- Plugin Hook\n- Optional\n\n`useTokenPagination` is the hook that **aids in implementing row pagination using tokens**. It is useful for server-side pagination implementations that use **tokens** instead of page index. For more information on pagination, see [Pagination](TODO)\n\n> Documentation Coming Soon...\n\n## `useTableState`\n\n- Optional\n\n`useTableState` is a hook that allows you to hoist the table state out of the table into your own code. You should use this hook if you need to:\n\n- Know about the internal table state\n- React to changes to the internal table state\n- Manually control or override the internal table state\n\nSome common use cases for this hook are:\n\n- Reacting to `pageIndex` and `pageSize` changes for server-side pagination to fetch new data\n- Disallowing specific states via a custom state reducer\n- Enabling parent/unrelated components to manipulate the table state\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `initialState: Object`\n  - Optional\n  - The initial state object for the table.\n  - This object is **merged over the `defaultState` object** (eg. `{...defaultState, ...initialState}`) that React Table and its hooks use to register default state to produce the final initial state object passed to the resolved `useState` hook.\n- `overrides: Object`\n  - Optional\n  - Must be **memoized**\n  - This object is **merged over the current table state** (eg. `{...state, ...overrides}`) to produce the final state object that is then passed to the `useTable` options\n- `options: Object`\n  - `reducer: Function(oldState, newState) => finalState`\n    - Optional\n    - Inspired by Kent C. Dodd's [State Reducer Pattern](https://kentcdodds.com/blog/the-state-reducer-pattern-with-react-hooks)\n    - With every `setState` call to a table state (even internally), this reducer is called and is allowed to modify the final state object for updating.\n    - It is passed the `oldState`, the `newState`, and an action `type`.\n  - `useState`\n    - Optional\n    - Defaults to `React.useState`\n    - This function, if defined will be used as the state hook internally instead of the default `React.useState`. This can be useful for implementing custom state storage hooks like useLocalStorage, etc.\n\n### Instance Variables\n\n- `tableStateTuple: [tableState, setTableState]`\n  - Similar in structure to the result of `React.useState`\n  - **Memoized**. This tuple array will not change between renders unless state or `useTableState` options change.\n  - `tableState: Object`\n    - This is the final state object of the table, which is the product of the `initialState`, `overrides` and the `reducer` options (if applicable)\n  - `setTableState: Function(updater, type) => void`\n    - This function is used both internally by React Table, and optionally by you (the developer) to update the table state programmatically.\n    - `updater: Function`\n      - This function signature is **almost** (see next point) identical to the functional API exposed by `React.setState`. It is passed the previous state and is expected to return a new version of the state.\n      - **NOTE: `updater` must be a function. Passing a replacement object is not supported as it is with React.useState**\n    - `type: String`\n      - The [action type](TODO) corresponding to what action being taken against the state.\n\n### Example\n\n```js\nexport default function MyTable({ manualPageIndex }) {\n  // This is the initial state for our table\n  const initialState = { pageSize: 10, pageIndex: 0 }\n\n  // Here, we can override the pageIndex\n  // regardless of the internal table state\n  const overrides = React.useMemo(() => ({\n    pageIndex: manualPageIndex,\n  }))\n\n  const state = useTableState(initialState, overrides)\n\n  // You can use effects to observe changes to the state\n  React.useEffect(\n    () => {\n      console.log('Page Size Changed!', initialState.pageSize)\n    },\n    [initialState.pageSize]\n  )\n\n  const { rows } = useTable({\n    state,\n  })\n}\n```\n\n# Guides\n\n## Sorting\n\n### Client-Side Sorting\n\n- [Example]()\n\nClient-side sorting can be accomplished by using the `useSortBy` plugin hook. Start by importing the hook from `react-table`:\n\n```diff\n-import { useTable } from 'react-table'\n+import { useTable, useSortBy } from 'react-table'\n```\n\nNext, add the `useSortBy` hook to your `useTable` hook and add the necessary UI pieces we need to make sorting work:\n\n```diff\nfunction MyTable() {\n  const { getTableProps, headerGroups, rows, prepareRow } = useTable(\n    {\n      data,\n      columns,\n    },\n-   useSortBy\n+   useSortBy\n  )\n\n  return (\n    <table {...getTableProps()}>\n      <thead>\n        {headerGroups.map(headerGroup => (\n          <tr {...headerGroup.getHeaderGroupProps()}>\n            {headerGroup.headers.map(column => (\n-             <th {...column.getHeaderProps()}>\n+             <th {...column.getHeaderProps(column.getSortByToggleProps())}>\n                {column.render('Header')}\n+               <span>\n+                 {column.sorted ? (column.sortedDesc ? ' 🔽' : ' 🔼') : ''}\n+               </span>\n              </th>\n            ))}\n          </tr>\n        ))}\n      </thead>\n      <tbody>\n        {rows.map(\n          (row, i) =>\n            prepareRow(row) || (\n              <tr {...row.getRowProps()}>\n                {row.cells.map(cell => {\n                  return <td {...cell.getCellProps()}>{cell.render('Cell')}</td>\n                })}\n              </tr>\n            )\n        )}\n      </tbody>\n    </table>\n  )\n}\n```\n\n### Server-Side Sorting\n\nServer-side sorting can be accomplished by using the `useSortBy` plugin hook in **controlled** mode along with the `useTableState` hook. Start by importing these hooks from `react-table`:\n\n```diff\n-import { useTable } from 'react-table'\n+import { useTable, useSortBy, useTableState } from 'react-table'\n```\n\nNext, add the `useSortBy` and `useTableState` hooks to your `useTable` hook, configure the table state, then add the necessary UI pieces we need to make sorting work:\n\n```diff\nfunction MyTable(data, columns, fetchData) {\n\n+ const state = useTableState()\n+ const [{ sortBy }] = state\n\n+ React.useEffect(() => {\n+   // When sorting changes, trigger your parent component\n+   // or hook to fetch new data with the table state\n+   fetchData(state[0])\n+ }, [sortBy])\n\n  const { getTableProps, headerGroups, rows, prepareRow } = useTable(\n    {\n      data,\n      columns,\n+     state,\n+     manualSorting: true\n    },\n-   useSortBy\n+   useSortBy\n  )\n\n  return (\n    <table {...getTableProps()}>\n      <thead>\n        {headerGroups.map(headerGroup => (\n          <tr {...headerGroup.getHeaderGroupProps()}>\n            {headerGroup.headers.map(column => (\n-             <th {...column.getHeaderProps()}>\n+             <th {...column.getHeaderProps(column.getSortByToggleProps())}>\n                {column.render('Header')}\n+               <span>\n+                 {column.sorted ? (column.sortedDesc ? ' 🔽' : ' 🔼') : ''}\n+               </span>\n              </th>\n            ))}\n          </tr>\n        ))}\n      </thead>\n      <tbody>\n        {rows.map(\n          (row, i) =>\n            prepareRow(row) || (\n              <tr {...row.getRowProps()}>\n                {row.cells.map(cell => {\n                  return <td {...cell.getCellProps()}>{cell.render('Cell')}</td>\n                })}\n              </tr>\n            )\n        )}\n      </tbody>\n    </table>\n  )\n}\n```\n\n<!--\n\n## Client Side Pagination\n\nTo add client side pagination, use the `usePagination` hook:\n\n```diff\n// Import React\nimport React from 'react'\n\n// Import React Table\nimport {\n  useTable,\n  useGroupBy,\n  useFilters,\n  useSortBy,\n  useExpanded,\n+  usePagination,\n} from 'react-table'\n\n// Create a component to render your table\nfunction MyTable(props) {\n  // Use the useTable hook to create your table configuration\n  const instance = useTable(\n    props,\n    useGroupBy,\n    useFilters,\n    useSortBy,\n    useExpanded,\n+   usePagination,\n  )\n\n  // Use the state and functions returned from useTable to build your UI\n  const {\n    getTableProps,\n    headerGroups,\n    rows,\n    getRowProps,\n    prepareRow,\n+   pageOptions,\n+   page,\n+   state: [{ pageIndex, pageSize }],\n+   gotoPage,\n+   previousPage,\n+   nextPage,\n+   setPageSize,\n+   canPreviousPage,\n+   canNextPage,\n  } = instance\n\n  // Render the UI for your table\n  return (\n    <div>\n      <table {...getTableProps()}>\n        ...\n      </table>\n+     <div>\n+       <button onClick={() => previousPage()} disabled={!canPreviousPage}>\n+         Previous Page\n+       </button>\n+       <button onClick={() => nextPage()} disabled={!canNextPage}>\n+         Next Page\n+       </button>\n+       <div>\n+         Page{' '}\n+         <em>\n+           {pageIndex + 1} of {pageOptions.length}\n+         </em>\n+       </div>\n+       <div>Go to page:</div>\n+       <input\n+         type=\"number\"\n+         defaultValue={pageIndex + 1 || 1}\n+         onChange={e => {\n+           const page = e.target.value ? Number(e.target.value) - 1 : 0\n+           gotoPage(page)\n+         }}\n+       />\n+       <select\n+         value={pageSize}\n+         onChange={e => {\n+           setPageSize(Number(e.target.value))\n+         }}\n+       >\n+         {pageSizeOptions.map(pageSize => (\n+           <option key={pageSize} value={pageSize}>\n+             Show {pageSize}\n+           </option>\n+         ))}\n+       </select>\n+     </div>\n    </div>\n  )\n}\n```\n\n## Server Side Pagination\n\nTo implement server-side pagination, use the `useTableState` and `usePagination` hooks:\n\n```diff\n\n``` -->\n\n<!-- # Setup\n\nTo begin using React Table you will need to start with a UI to render it. Below is a very basic component that should serve as a good starting point for most projects:\n\n```js\n// Import React\nimport React from 'react'\n\n// Import React Table\nimport {\n  useTable,\n  useGroupBy,\n  useFilters,\n  useSortBy,\n  useExpanded,\n  usePagination,\n} from 'react-table'\n\n// Create a component to render your table\nexport default function MyTable(props) {\n  // Use the useTable hook to create your table configuration\n  const instance = useTable(\n    props,\n    useGroupBy,\n    useFilters,\n    useSortBy,\n    useExpanded,\n    usePagination\n  )\n\n  // Use the state and functions returned from useTable to build your UI\n  const {\n    getTableProps,\n    headerGroups,\n    rows,\n    getRowProps,\n    pageOptions,\n    page,\n    state: [{ pageIndex, pageSize }],\n    gotoPage,\n    prepareRow,\n    previousPage,\n    nextPage,\n    setPageSize,\n    canPreviousPage,\n    canNextPage,\n  } = instance\n\n  // Render the UI for your table\n  return (\n    <div>\n      <table {...getTableProps()}>\n        <thead>\n          {headerGroups.map(headerGroup => (\n            <tr {...headerGroup.getRowProps()}>\n              {headerGroup.headers.map(column => (\n                <th {...column.getHeaderProps()}>{column.render('Header')}</th>\n              ))}\n            </tr>\n          ))}\n        </thead>\n        <tbody>\n          {page.map(\n            (row, i) =>\n              prepareRow(row) || (\n                <tr {...row.getRowProps()}>\n                  {row.cells.map(cell => {\n                    return (\n                      <td {...cell.getCellProps()}>{cell.render('Cell')}</td>\n                    )\n                  })}\n                </tr>\n              )\n          )}\n        </tbody>\n      </table>\n      <div>\n        <button onClick={() => previousPage()} disabled={!canPreviousPage}>\n          Previous Page\n        </button>\n        <button onClick={() => nextPage()} disabled={!canNextPage}>\n          Next Page\n        </button>\n        <div>\n          Page{' '}\n          <em>\n            {pageIndex + 1} of {pageOptions.length}\n          </em>\n        </div>\n        <div>Go to page:</div>\n        <input\n          type=\"number\"\n          defaultValue={pageIndex + 1 || 1}\n          onChange={e => {\n            const page = e.target.value ? Number(e.target.value) - 1 : 0\n            gotoPage(page)\n          }}\n        />\n        <select\n          value={pageSize}\n          onChange={e => {\n            setPageSize(Number(e.target.value))\n          }}\n        >\n          {pageSizeOptions.map(pageSize => (\n            <option key={pageSize} value={pageSize}>\n              Show {pageSize}\n            </option>\n          ))}\n        </select>\n      </div>\n    </div>\n  )\n}\n```\n\nYou can then use your table like so:\n\n```js\n\nimport MyTable from './MyTable'\n\nfunction MyApp () {\n  const columns = React.useMemo(() => [{\n    Header: \"Name\",\n    columns: [\n      {\n        Header: \"First Name\",\n        accessor: \"firstName\",\n      },\n      {\n        Header: \"Last Name\",\n        accessor: \"lastName\",\n      }\n    ]\n  }], [])\n\n  const data = [{\n    firstName: 'Tanner',\n    lastName: 'Linsley'\n  }, {\n    firstName: 'Shawn',\n    lastName: 'Wang'\n  }, {\n    firstName: 'Kent C.',\n    lastName: 'Dodds'\n  }, {\n    firstName: 'Ryan',\n    lastName: 'Florence'\n  }]\n\n  return <MyTable columns={columns} data={data} />\n``` -->\n\n## Contributing\n\nTo suggest a feature, create an issue if it does not already exist.\nIf you would like to help develop a suggested feature follow these steps:\n\n- Fork this repo\n- Install dependencies with `$ yarn`\n- Link `react-table` locally with `$ yarn link`\n- Auto-build files as you edit with `$ yarn start`\n- Implement your changes and tests to files in the `src/` directory\n- In any example directory, link to the local `react-table` with `$ yarn link react-table`\n- Follow example directions for running. Usually just `$ yarn && yarn start`\n- Document your changes in the root `README.md`\n- To stage a commit, run `yarn commit`\n- Submit PR for review\n","licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.0-alpha.14","dist":{"shasum":"74b84fa8bb4d781a0a59d05ea92eabb05f9fd8e3","integrity":"sha512-B/8gPwaKbjsiyOnk3EQsS2rAqlmM1CMJTiYXyEJF514+2sfLVhhC+baek1ELfl2Nhzmhd6r/6ea40RHkFNjK2A==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.0-alpha.14.tgz","fileCount":39,"unpackedSize":587449,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdQIHyCRA9TVsSAnZWagAAGAoQAJdCMDYIEL6GO/O8cHSt\nxOKbaZAj2oXzqHbBHPXeUBWxk17mWQeFfWTpOvCRBXV/t7Ip5x53TC3X+2Ij\nr6q6/94gRo6J3J3JczTITDcL1D4+oeh2JrzHwNPh0Xn13zaWorrazOVBJdvS\nFRwpL5Jhh51ymGb9CnxhsAN9vHDJC6fYN/cqRIjgPvSEIR1WyuBFkPyfhy6k\naYTt3l2wa8Q9qAUzpv4vON3H6gBY1cQXkh4W+6rmvyJfxK3haRgAjTXyp7I0\njjaIw/PHRFw9zINYl+OM5nZKyV1VEYYQs3WBIctjjhqM0/71v6WFsk5c1xgP\nJWa4xYh4/nOidZHzm94IvLUmFi0BrnP+hQQlJYd2/9wlTXFcfJn1n4tVYt0N\n1Hs431clZ9bo8SROjviuSk9oDlqSqjkEmASFhsLVYhMXrTIYytoGitettcZf\nfQteXVmCXKSpvo+c1peKRexLfIwtksk8iavw+Ac6FI28wD8wM1cpd4w5gZba\nd2ZceJfbglU2zN9p7xDrX4SZxnc3QSV27OckyJu6qA76i3q8c5e25XTJJI+B\nA8JT/DPgHiG7wTvcnY73RY9tP4Ry6/M0g3FVgPnVuPtzLsh+lkRbb3DCE6ST\nnHRh2Y2BoAz/aMlQYMF9SloCnodJAOp7R3rznWxhGxghSeRPd14MrEA7qvI0\ny4Y5\r\n=E95C\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHL0hjolLomY9izVwxKJxm+gV9qpVR8/gcoacwFa/Q5vAiB2G2dQCmlSpasKCmbn4JoiK7RN+ZynIwo9YTjvmpNksA=="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.0-alpha.14_1564508657479_0.6497308625095293"},"_hasShrinkwrap":false},"7.0.0-alpha.15":{"name":"react-table","version":"7.0.0-alpha.15","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"dist/index.js","module":"dist/index.es.js","jsnext:main":"dist/index.es.js","scripts":{"commit":"git add . && git-cz","test":"is-ci 'test:ci' 'test:dev'","test:dev":"jest --watch","test:ci":"jest","build":"rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier ./**{md,js,jsx,tsx} --write"},"peerDependencies":{"prop-types":"^15.5.0","react":"^16.8.3","react-dom":"^16.8.3"},"devDependencies":{"@babel/core":"^7.5.5","@babel/plugin-proposal-class-properties":"^7.5.5","@babel/preset-env":"^7.5.5","@babel/preset-react":"^7.0.0","@babel/runtime":"^7.5.5","@commitlint/cli":"^8.1.0","@commitlint/config-conventional":"^8.1.0","@svgr/rollup":"^4.3.2","@testing-library/dom":"^5.6.0","@testing-library/jest-dom":"^4.0.0","@testing-library/react":"^8.0.7","babel-eslint":"9.x","commitizen":"^4.0.3","core-js":"3","cross-env":"^5.2.0","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^8.0.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.14.3","eslint-plugin-react-hooks":"1.6.1","eslint-plugin-standard":"^4.0.0","husky":"^3.0.2","is-ci-cli":"^1.1.1","jest":"^24.8.0","jest-cli":"^24.8.0","jest-runner-eslint":"^0.7.4","jest-watch-select-projects":"^0.1.2","jest-watch-typeahead":"^0.3.1","lint-staged":"^9.2.1","prop-types":"^15.5.0","react":"^16.8.3","react-dom":"^16.8.3","rollup":"^0.68.0","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^9.1.3","rollup-plugin-node-resolve":"^4.0.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-uglify":"^6.0.2","snapshot-diff":"^0.5.2"},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"browserslist":"> 0.25%, not dead","readmeFilename":"README.md","readme":"# React Table\n\nHooks for building **lightweight, fast and extendable datagrids** for React\n\n<a href=\"https://travis-ci.org/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://travis-ci.org/tannerlinsley/react-table.svg?branch=master\" />\n</a>\n<a href=\"https://npmjs.com/package/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-table.svg\" />\n</a>\n<a href=\"https://spectrum.chat/react-table\">\n  <img alt=\"Join the community on Spectrum\" src=\"https://withspectrum.github.io/badge/badge.svg\" />\n</a>\n<a href=\"https://github.com/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-table.svg?style=social&label=Star\" />\n</a>\n<a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n\n<br />\n<br />\n\n## Features\n\n- Lightweight\n- Headless (100% customizable, Bring-your-own-UI)\n- Client-side & Server-side pagination support\n- Sorting (Multi and Stable)\n- Filters\n- Pivoting & Aggregation\n- Fully controllable\n- Extensible via hooks\n- <a href=\"https://medium.com/@tannerlinsley/why-i-wrote-react-table-and-the-problems-it-has-solved-for-nozzle-others-445c4e93d4a8#.axza4ixba\" target=\"\\_parent\">\"Why I wrote React Table and the problems it has solved for Nozzle.io\"</a> by Tanner Linsley\n\n## [See Examples](#examples)\n\n## Versions\n\n- This documentation is for version 7.\n- [View the Changelog](https://github.com/tannerlinsley/react-table/blob/master/CHANGELOG.md)\n- Previous versions:\n  - [6.x.x Readme](https://github.com/tannerlinsley/react-table/tree/v6/)\n  - [5.x.x Readme](https://github.com/tannerlinsley/react-table/blob/ad7d31cd3978eb45da7c6194dbab93c1e9a8594d/README.md)\n\n## Sponsors\n\n**React Table v7** is being built and maintained by me, @tannerlinsley and I am always in need of more Patreon support to keep this project afloat. If you would like to contribute to my Patreon goal for v7 and beyond, [visit my Patreon and help me out!](https://patreon.com/tannerlinsley).\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/platinum.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://tryretool.com/?utm_source=sponsor&utm_campaign=react_table\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-retool.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/platinum-placeholder.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/gold.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://nozzle.io\" target=\"_blank\">\n          <img width=\"300\" src=\"https://nozzle.io/img/logo-blue.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://zappi.com/web\" target=\"_blank\">\n          <img width=\"300\" src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-zappi.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/gold-placeholder.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n# Documentation\n\n- [Installation](#installation)\n- [Concepts](#concepts)\n- [Setup](#setup)\n- [Contributing](#contributing)\n\n# Installation\n\nInstall React Table as a dependency using `npm` or `yarn`\n\n```bash\n# NPM\n$ npm install react-table\n\n# Yarn\n$ yarn add react-table\n```\n\nTo import React Table:\n\n```js\nimport {\n  useTable,\n  useGroupBy,\n  useFilters,\n  useSortBy,\n  useExpanded,\n  usePagination,\n  ...\n} from 'react-table'\n```\n\n# Examples\n\n- [Basic](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/master/examples/basic)\n- [Sorting - Client Side](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/master/examples/sorting-client-side)\n- [Filtering - Client Side](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/master/examples/filtering-client-side)\n- [Grouping - Client Side](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/master/examples/grouping-client-side)\n- [Pagination - Client Side](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/master/examples/pagination-client-side)\n\n# Concepts\n\n## React Table is a \"headless\" UI library\n\nReact Table is a headless utility, which means out of the box, it doesn't render or supply any actual UI elements. You are in charge of utilizing the state and callbacks of the hooks provided by this library to render your own table markup. [Read this article to understand why React Table is built this way.](https://medium.com/merrickchristensen/headless-user-interface-components-565b0c0f2e18). If you don't want to, then here's a quick rundown anyway:\n\n- Separation of Concerns - Not that superficial kind you read about all the time. The real kind. React Table as a library honestly has no business being in charge of your UI. The look, feel, and overall experience of your table is what makes your app or product great. The less React Table gets in the way of that, the better!\n- Maintenance - By removing the massive (and seemingly endless) API surface area required to support every UI use-case, React Table can remain small, easy-to-use and simple to update/maintain.\n- Extensibility - UI presents countless edge cases for a library simply because it's a creative medium, and one where every developer does things differently. By not dictating UI concerns, React Table empowers the developer to design and extend the UI based on their unique use-case.\n\n## The React Table API\n\nAt the heart of every React Table is a table `instance` object. This object contains everything needed to build a table and interact with it's state. This includes, but is not limited to:\n\n- Columns\n- Materialized Data\n- Sorting\n- Filtering\n- Grouping\n- Pagination\n- Expanded State\n- Any functionality provided by custom plugin hooks, too!\n\n## Using Hooks for configuration, state and lifecycle\n\nReact Table uses React Hooks both internally and externally for 100% of its configuration and lifecycle management. Naturally, this is what allows React Table to be headless and lightweight while still having a concise and simple API.\n\nReact Table is essentially a compatible collection of **custom React hooks**:\n\n- The primary React Table hook\n  - [`useTable`](#usetable)\n- Plugin Hooks\n  - Core Plugin Hooks\n    - [`useTableState`](#useTableState)\n    - [`useGroupBy`](#useGroupBy)\n    - [`useFilters`](#useFilters)\n    - [`useSortBy`](#useSortBy)\n    - [`useExpanded`](#useExpanded)\n    - [`usePagination`](#usePagination)\n    - [`useTokenPagination`](#useTokenPagination)\n  - Layout Plugin Hooks\n    - [`useFlexLayout`](#useFlexLayout)\n    - [`useAbsoluteLayout`](#useAbsoluteLayout) (coming soon!)\n- Custom Plugin Hooks\n  - Get your custom plugin hook listed here!\n\n### Hook Usage\n\n`useTable` is the **primary** hook used to build a React Table. It serves as the starting point for **every option and every plugin hook** that React Table supports. The options passed into `useTable` are supplied to every plugin hook after it in the order they are supplied, eventually resulting a final `instance` object that you can use to build your table UI and interact with the table's state.\n\n```js\nconst instance = useTable(\n  {\n    data: [...],\n    columns: [...],\n  },\n  useGroupBy,\n  useFilters,\n  useSortBy,\n  useExpanded,\n  usePagination\n)\n```\n\n### The stages of a React Table\n\n1. `useTable` is called. A table instance is created.\n1. The `instance.state` is resolved from either a custom user state or an automatically generated one.\n1. A collection of plugin points is created at `instance.hooks`.\n1. Each plugin is given the opportunity to add hooks to `instance.hook`.\n1. As the `useTable` logic proceeds to run, each plugin hook type is used at a specific point in time with each individual hook function being executed the order it was registered.\n1. The final instance object is returned from `useTable`, which the developer then uses to construct their table.\n\nThis multi-stage process is the secret sauce that allows React Table plugin hooks to work together and compose nicely, while not stepping on each others toes.\n\nTo dive deeper into plugins, see [Plugins](TODO) and the [Plugin Guide](TODO)\n\n### Plugin Hook Order & Consistency\n\nThe order and usage of plugin hooks must follow [The Laws of Hooks](TODO), just like any other custom hook. They must always be unconditionally called in the same order.\n\n> **NOTE: In the event that you want to programmatically enable or disable plugin hooks, most of them provide options to disable their functionality, eg. `options.disableSorting`**\n\n### Option Memoization\n\nReact Table relies on memoization to determine when state and side effects should update or be calculated. This means that every option you pass to `useTable` should be memoized either via `React.useMemo` (for objects) or `React.useCallback` (for functions).\n\n# API\n\n## `useTable`\n\n- Required\n\n`useTable` is the root hook for React Table. To use it, pass it with an options object with at least a `columns` and `rows` value, followed by any React Table compatible hooks you want to use.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `columns: Array<Column>`\n  - Required\n  - Must be **memoized**\n  - The core columns configuration object for the entire table.\n  - Supports nested `columns` arrays via the `column.children` key\n- `data: Array<any>`\n  - Required\n  - Must be **memoized**\n  - The data array that you want to display on the table.\n- `state: TableStateTuple[stateObject, stateUpdater]`\n  - Optional\n  - Must be **memoized** table state tuple. See [`useTableState`](#usetablestate) for more information.\n  - The state/updater pair for the table instance. You would want to override this if you plan on controlling or hoisting table state into your own code.\n  - Defaults to using an internal `useTableState()` instance if not defined.\n  - See [Controlling and Hoisting Table State](#controlling-and-hoisting-table-state)\n- `defaultColumn: Object`\n  - Optional\n  - Defaults to `{}`\n  - The default column object for every column passed to React Table.\n  - Column-specific properties will override the properties in this object, eg. `{ ...defaultColumn, ...userColumn }`\n  - This is particularly useful for adding global column properties. For instance, when using the `useFilters` plugin hook, add a default `Filter` renderer for every column, eg.`{ Filter: MyDefaultFilterComponent }`\n- `debug: Bool`\n  - Optional\n  - A flag to turn on debug mode.\n  - Defaults to `false`\n\n### `column` Options\n\nThe following options are supported on any column object you can pass to `columns`.\n\n- `accessor: String | Function`\n  - **Required**\n  - This string/function is used to build the data model for your column.\n  - The data returned by an accessor should be **primitive** and sortable.\n  - If a string is passed, the column's value will be looked up on the original row via that key, eg. If your column's accessor is `firstName` then its value would be read from `row['firstName']`. You can also specify deeply nested values with accessors like `info.hobbies` or even `address[0].street`\n  - If a function is passed, the column's value will be looked up on the original row using this accessor function, eg. If your column's accessor is `row => row.firstName`, then its value would be determined by passing the row to this function and using the resulting value.\n- `id: String`\n  - **Required if `accessor` is a function**\n  - This is the unique ID for the column. It is used by reference in things like sorting, grouping, filtering etc.\n  - If a **string** accessor is used, it defaults as the column ID, but can be overridden if necessary.\n- `columns: Array<Column>`\n  - Optional\n  - A nested array of columns.\n  - If defined, the column will act as a header group. Columns can be recursively nested as much as needed.\n- `show: Boolean | Function`\n  - Optional\n  - Defaults to `true`\n  - If set to `false`, the column will be hidden.\n  - If set to a `function`, it will be called with the current table instance and can then return `true` or `false`.\n  - The data model for hidden columns is still calculated including sorting, filters, and grouping.\n- `Header: String | Function | React.Component => JSX`\n  - Optional\n  - Defaults to `({ id }) => id`\n  - Receives the table instance and column model as props\n  - Must either be a **string or return valid JSX**\n  - If a function/component is passed, it will be used for formatting the header value, eg. You can use a `Header` function to dynamically format the header using any table or column state.\n- `Cell: Function | React.Component => JSX`\n  - Optional\n  - Defaults to `({ value }) => value`\n  - Receives the table instance and cell model as props\n  - Must return valid JSX\n  - This function (or component) is primarily used for formatting the column value, eg. If your column accessor returns a date object, you can use a `Cell` function to format that date to a readable format.\n\n### Instance Properties\n\nThe following properties are available on the table instance returned from `useTable`\n\n- `headerGroups: Array<HeaderGroup>`\n  - An array of normalized header groups, each containing a flattened array of final column objects for that row.\n  - See [Header Group Properties](#headergroup-properties) for more information\n- `columns: Array<Column>`\n  - A **flat** array of all final column objects computed from the original columns configuration option.\n  - See [Column Properties](#column-properties) for more information\n- `headers[] Array<Column>`\n  - A **nested** array of final column objects, similar in structure to the original columns configuration option.\n  - See [Column Properties](#column-properties) for more information\n- `rows: Array<Row>`\n  - An array of **materialized row objects** from the original `data` array and `columns` passed into the table options\n  - See [Row Properties](#row-properties) for more information\n- `getTableProps: Function(?props)`\n  - **Required**\n  - This function is used to resolve any props needed for your table wrapper.\n  - Custom props may be passed. **NOTE: Custom props will override built-in table props, so be careful!**\n- `prepareRow: Function(Row)`\n  - **Required**\n  - This function is responsible for lazily preparing a row for rendering. Any row that you intend to render in your table needs to be passed to this function **before every render**.\n  - **Why?** Since table data could potentially be very large, it can become very expensive to compute all of the necessary state for every row to be rendered regardless if it actually is rendered or not (for example if you are paginating or virtualizing the rows, you may only have a few rows visible at any given moment). This function allows only the rows you intend to display to be computed and prepped with the correct state.\n\n### `HeaderGroup` Properties\n\nThe following additional properties are available on every `headerGroup` object returned by the table instance.\n\n- `headers: Array<Column>`\n  - **Required**\n  - The columns in this header group.\n- `getHeaderGroupProps: Function(?props)`\n  - **Required**\n  - This function is used to resolve any props needed for this header group's row.\n  - You can use the `getHeaderGroupProps` hook to extend its functionality.\n  - Custom props may be passed. **NOTE: Custom props will override built-in table props, so be careful!**\n\n### Column Properties\n\nThe following properties are available on every `Column` object returned by the table instance.\n\n- `id: String`\n  - The resolved column ID from either the column's `accessor` or the column's hard-coded `id` property\n- `visible: Boolean`\n  - The resolved visible state for the column, derived from the column's `show` property\n- `render: Function(type: String | Function | Component, ?props)`\n  - This function is used to render content in context of a column.\n  - If `type` is a string, will render using the `column[type]` renderer. React Table ships with default `Header` renderers. Other renderers like `Filter` are available via hooks like `useFilters`.\n  - If a function or component is passed instead of a string, it will be be passed the table instance and column model as props and is expected to return any valid JSX.\n- `getHeaderProps: Function(?props)`\n  - **Required**\n  - This function is used to resolve any props needed for this column's header cell.\n  - You can use the `getHeaderProps` hook to extend its functionality.\n  - Custom props may be passed. **NOTE: Custom props will override built-in table props, so be careful!**\n\n### Row Properties\n\nThe following additional properties are available on every `row` object returned by the table instance.\n\n- `cells: Array<Cell>`\n  - An array of `Cell` objects containing properties and functions specific to the row and column it belongs to.\n  - See [Cell Properties](#cell-properties) for more information\n- `values: Object<columnID: any>`\n  - A map of this row's **resolved** values by columnID, eg. `{ firstName: 'Tanner', lastName: 'Linsley' }`\n- `getRowProps: Function(?props)`\n  - **Required**\n  - This function is used to resolve any props needed for this row.\n  - You can use the `getRowProps` hook to extend its functionality.\n  - Custom props may be passed. **NOTE: Custom props will override built-in table props, so be careful!**\n\n### Cell Properties\n\nThe following additional properties are available on every `Cell` object returned in an array of `cells` on every row object.\n\n- `column: Column`\n  - The corresponding column object for this cell\n- `row: Row`\n  - The corresponding row object for this cell\n- `value: any`\n  - The **resolved** value for this cell.\n  - By default, this value is displayed on the table via the default `Cell` renderer. To override the way a cell displays\n- `getCellProps: Function(?props)`\n  - **Required**\n  - This function is used to resolve any props needed for this cell.\n  - You can use the `getCellProps` hook to extend its functionality.\n  - Custom props may be passed. **NOTE: Custom props will override built-in table props, so be careful!**\n- `render: Function(type: String | Function | Component, ?props)`\n  - This function is used to render content in context of a cell.\n  - If `type` is a string, will render using the `column[type]` renderer. React Table ships with a default `Cell` renderer. Other renderers like `Aggregated` are available via hooks like `useFilters`.\n  - If a function or component is passed instead of a string, it will be be passed the table instance and cell model as props and is expected to return any valid JSX.\n\n### Example\n\n```js\nfunction App() {\n  const columns = React.useMemo(\n    () => [\n      {\n        Header: 'Name',\n        columns: [\n          {\n            Header: 'First Name',\n            accessor: 'firstName',\n          },\n          {\n            Header: 'Last Name',\n            accessor: 'lastName',\n          },\n        ],\n      },\n    ],\n    []\n  )\n\n  const data = [\n    {\n      firstName: 'Tanner',\n      lastName: 'Linsley',\n    },\n    {\n      firstName: 'Shawn',\n      lastName: 'Wang',\n    },\n    {\n      firstName: 'Kent C.',\n      lastName: 'Dodds',\n    },\n    {\n      firstName: 'Ryan',\n      lastName: 'Florence',\n    },\n  ]\n\n  return <MyTable columns={columns} data={data} />\n}\n\nfunction MyTable({ columns, data }) {\n  const { getTableProps, headerGroups, rows, prepareRow } = useTable({\n    columns,\n    data,\n  })\n\n  return (\n    <table {...getTableProps()}>\n      <thead>\n        {headerGroups.map(headerGroup => (\n          <tr {...headerGroup.getHeaderGroupProps()}>\n            {headerGroup.headers.map(column => (\n              <th {...column.getHeaderProps()}>{column.render('Header')}</th>\n            ))}\n          </tr>\n        ))}\n      </thead>\n      <tbody>\n        {rows.map(\n          (row, i) =>\n            prepareRow(row) || (\n              <tr {...row.getRowProps()}>\n                {row.cells.map(cell => {\n                  return <td {...cell.getCellProps()}>{cell.render('Cell')}</td>\n                })}\n              </tr>\n            )\n        )}\n      </tbody>\n    </table>\n  )\n}\n```\n\n## `useSortBy`\n\n- Plugin Hook\n- Optional\n\n`useSortBy` is the hook that implements **row sorting**. It also support multi-sort (keyboard required).\n\n- Multi-sort is enabled by default\n- To sort the table via UI, attach the props generated from each column's `getSortByToggleProps()`, then click any of those elements.\n- To multi-sort the table via UI, hold `shift` while clicking on any of those same elements that have the props from `getSortByToggleProps()` attached.\n- To programmatically sort (or multi-sort) any column, use the `toggleSortBy` method located on the instance or each individual column.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `state[0].sortBy: Array<Object<id: columnID, desc: Bool>>`\n  - Must be **memoized**\n  - An array of sorting objects. If there is more than one object in the array, multi-sorting will be enabled. Each sorting object should contain an `id` key with the corresponding column ID to sort by. An optional `desc` key may be set to true or false to indicated ascending or descending sorting for that column. This information is stored in state since the table is allowed to manipulate the filter through user interaction.\n- `manualSorting: Bool`\n  - Enables sorting detection functionality, but does not automatically perform row sorting. Turn this on if you wish to implement your own sorting outside of the table (eg. server-side or manual row grouping/nesting)\n- `disableSorting: Bool`\n  - Disables sorting for every column in the entire table.\n- `disableMultiSort: Bool`\n  - Disables multi-sorting for the entire table.\n- `disableSortRemove: Bool`\n  - If true, the un-sorted state will not be available to columns once they have been sorted.\n- `disableMultiRemove: Bool`\n  - If true, the un-sorted state will not be available to multi-sorted columns.\n- `orderByFn: Function`\n  - Must be **memoizd**\n  - Defaults to the built-in [default orderBy function](TODO)\n  - This function is responsible for composing multiple sorting functions together for multi-sorting, and also handles both the directional sorting and stable-sorting tie breaking. Rarely would you want to override this function unless you have a very advanced use-case that requires it.\n- `sortTypes: Object<sortKey: sortType>`\n  - Must be **memoized**\n  - Allows overriding or adding additional sort types for columns to use. If a column's sort type isn't found on this object, it will default to using the [built-in sort types](TODO).\n  - For mor information on sort types, see [Sorting](TODO)\n\n### Column Options\n\nThe following options are supported on any `Column` object passed to the `columns` options in `useTable()`\n\n- `disableSorting: Bool`\n  - Optional\n  - Defualts to `false`\n  - If set to `true`, the sorting for this column will be disabled\n- `sortDescFirst: Bool`\n  - Optional\n  - Defaults to `false`\n  - If set to `true`, the first sort direction for this column will be descending instead of ascending\n- `sortInverted: Bool`\n  - Optional\n  - Defaults to `false`\n  - If set to `true`, the underlying sorting direction will be inverted, but the UI will not.\n  - This may be useful in situations where positive and negative connotation is inverted, eg. a Golfing score where a lower score is considered more positive than a higher one.\n- `sortType: String | Function`\n  - If a **function** is passed, it must be **memoized**\n  - Defaults to [`alphanumeric`](TODO)\n  - The resolved function from the this string/function will be used to sort the this column's data.\n    - If a `string` is passed, the function with that name located on either the custom `sortTypes` option or the built-in sorting types object will be used. If\n    - If a `function` is passed, it will be used.\n  - For mor information on sort types, see [Sorting](TODO)\n\n### Instance Properties\n\nThe following values are provided to the table `instance`:\n\n- `rows: Array<Row>`\n  - An array of **sorted** rows.\n- `preSortedRows: Array<Row>`\n  - The array of rows that were originally sorted.\n- `toggleSortBy: Function(ColumnID: String, descending: Bool, isMulti: Bool) => void`\n  - This function can be used to programmatically toggle the sorting for any specific column\n\n### Column Properties\n\nThe following properties are available on every `Column` object returned by the table instance.\n\n- `canSort: Bool`\n  - Denotes whether a column is sortable or not depending on if it has a valid accessor/data model or is manually disabled via an option.\n- `toggleSortBy: Function(descending, multi) => void`\n  - This function can be used to programmatically toggle the sorting for this column.\n  - This function is similar to the `instance`-level `toggleSortBy`, however, passing a columnID is not required since it is located on a `Column` object already.\n- `getSortByToggleProps: Function(props) => props`\n  - **Required**\n  - This function is used to resolve any props needed for this column's UI that is responsible for toggling the sort direction when the user clicks it.\n  - You can use the `getSortByToggleProps` hook to extend its functionality.\n  - Custom props may be passed. **NOTE: Custom props may override built-in sortBy props, so be careful!**\n- `sorted: Boolean`\n  - Denotes whether this column is currently being sorted\n- `sortedIndex: Int`\n  - If the column is currently sorted, this integer will be the index in the `sortBy` array from state that corresponds to this column.\n  - If this column is not sorted, the index will always be `-1`\n- `sortedDesc: Bool`\n  - If the column is currently sorted, this denotes whether the column's sort direction is descending or not.\n  - If `true`, the column is sorted `descending`\n  - If `false`, the column is sorted `ascending`\n  - If `undefined`, the column is not currently being sorted.\n\n### Example\n\n```js\nfunction Table({ columns, data }) {\n  // Set some default sorting state\n  const state = useTableState({ sortBy: [{ id: 'firstName', desc: true }] })\n\n  const { getTableProps, headerGroups, rows, prepareRow } = useTable(\n    {\n      columns,\n      data,\n    },\n    useSortBy // Use the sortBy hook\n  )\n\n  return (\n    <table {...getTableProps()}>\n      <thead>\n        {headerGroups.map(headerGroup => (\n          <tr {...headerGroup.getHeaderGroupProps()}>\n            {headerGroup.headers.map(column => (\n              // Add the sorting props to control sorting. For this example\n              // we can add them into the header props\n              <th {...column.getHeaderProps(column.getSortByToggleProps())}>\n                {column.render('Header')}\n                <span>\n                  {/* Add a sort direction indicator */}\n                  <span>\n                    {column.sorted ? (column.sortedDesc ? ' 🔽' : ' 🔼') : ''}\n                  </span>\n                  {/* Add a sort index indicator */}\n                  <span>({column.sorted ? column.sortedIndex + 1 : ''})</span>\n                </span>\n              </th>\n            ))}\n          </tr>\n        ))}\n      </thead>\n      <tbody>\n        {rows.map(\n          (row, i) =>\n            prepareRow(row) || (\n              <tr {...row.getRowProps()}>\n                {row.cells.map(cell => {\n                  return <td {...cell.getCellProps()}>{cell.render('Cell')}</td>\n                })}\n              </tr>\n            )\n        )}\n      </tbody>\n    </table>\n  )\n}\n```\n\n## `useFilters`\n\n- Plugin Hook\n- Optional\n\n`useFilters` is the hook that implements **row filtering**.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `state[0].filters: Object<columnID: filterValue>`\n  - Must be **memoized**\n  - An object of columnID's and their corresponding filter values. This information is stored in state since the table is allowed to manipulate the filter through user interaction.\n- `defaultFilter: String | Function`\n  - If a **function** is passed, it must be **memoized**\n  - Defaults to [`text`](TODO)\n  - The function (or resolved function from the string) will be used as the default/fallback filter method for every column that has filtering enabled.\n    - If a `string` is passed, the function with that name located on the `filterTypes` option object will be used.\n    - If a `function` is passed, it will be used.\n  - For mor information on filter types, see [Filtering](TODO)\n- `manualFilters: Bool`\n  - Enables filter detection functionality, but does not automatically perform row filtering.\n  - Turn this on if you wish to implement your own row filter outside of the table (eg. server-side or manual row grouping/nesting)\n- `disableFilters: Bool`\n  - Disables filtering for every column in the entire table.\n- `filterTypes: Object<filterKey: filterType>`\n  - Must be **memoized**\n  - Allows overriding or adding additional filter types for columns to use. If a column's filter type isn't found on this object, it will default to using the [built-in filter types](TODO).\n  - For mor information on filter types, see [Filtering](TODO)\n\n### Column Options\n\nThe following options are supported on any `Column` object passed to the `columns` options in `useTable()`\n\n- `Filter: Function | React.Component => JSX`\n  - **Required**\n  - Receives the table instance and column model as props\n  - Must return valid JSX\n  - This function (or component) is used to render this column's filter UI, eg.\n- `disableFilters: Bool`\n  - Optional\n  - If set to `true`, will disable filtering for this column\n- `filter: String | Function`\n  - Optional\n  - Defaults to [`text`](TODO)\n  - The resolved function from the this string/function will be used to filter the this column's data.\n    - If a `string` is passed, the function with that name located on either the custom `filterTypes` option or the built-in filtering types object will be used. If\n    - If a `function` is passed, it will be used directly.\n  - For mor information on filter types, see [Filtering](TODO)\n  - If a **function** is passed, it must be **memoized**\n\n### Instance Properties\n\nThe following values are provided to the table `instance`:\n\n- `rows: Array<Row>`\n  - An array of **filtered** rows.\n- `preFilteredRows: Array<Row>`\n  - The array of rows **used right before filtering**.\n  - Among many other use-cases, these rows are directly useful for building option lists in filters, since the resulting filtered `rows` do not contain every possible option.\n- `setFilter: Function(columnID, filterValue) => void`\n  - An instance-level function used to update the filter value for a specific column.\n- `setAllFilters: Function(filtersObject) => void`\n  - An instance-level function used to update the values for **all** filters on the table, all at once.\n\n### Column Properties\n\nThe following properties are available on every `Column` object returned by the table instance.\n\n- `canFilter: Bool`\n  - Denotes whether a column is filterable or not depending on if it has a valid accessor/data model or is manually disabled via an option.\n- `setFilter: Function(filterValue) => void`\n  - An column-level function used to update the filter value for this column\n- `filterValue: any`\n  - The current filter value for this column, resolved from the table state's `filters` object\n- `preFilteredRows: Array<row>`\n  - The array of rows that were originally passed to this columns filter **before** they were filtered.\n  - This array of rows can be useful if building faceted filter options.\n\n### Example\n\n```js\n// A great library for fuzzy filtering/sorting items\nimport matchSorter from 'match-sorter'\n\nconst state = useTableState({ filters: { firstName: 'tanner' } })\n\nconst filterTypes = React.useMemo(() => ({\n  // Add a new fuzzyText filter type.\n  fuzzyText: (rows, id, filterValue) => {\n    return matchSorter(rows, filterValue, { keys: [row => row[id] })\n  },\n  // Or, override the default text filter to use\n  // \"startWith\"\n  text: (rows, id, filterValue) => {\n    return rows.filter(row => {\n      const rowValue = row.values[id]\n      return rowValue !== undefined\n        ? String(rowValue)\n            .toLowerCase()\n            .startsWith(String(filterValue).toLowerCase())\n        : true\n    })\n  }\n}), [matchSorter])\n\n// Override the default column filter to be our new `fuzzyText` filter type\nconst defaultColumn = React.useMemo(() => ({\n  filter: 'fuzzyText'\n}))\n\nconst { rows } = useTable(\n  {\n    // state[0].groupBy === ['firstName']\n    state,\n    manualFilters: false,\n    disableFilters: false,\n    // Pass our custom filter types\n    filterTypes,\n    defaultColumn\n  },\n  useFilters\n)\n```\n\n## `useGroupBy`\n\n- Plugin Hook\n- Optional\n\n`useGroupBy` is the hook that implements **row grouping and aggregation**.\n\n- Each column's `getGroupByToggleProps()` function can be used to generate the props needed to make a clickable UI element that will toggle the grouping on or off for a specific column.\n- Instance and column-level `toggleGroupBy` functions are also made available for programmatic grouping.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `state[0].groupBy: Array<String>`\n  - Must be **memoized**\n  - An array of groupBy ID strings, controlling which columns are used to calculate row grouping and aggregation. This information is stored in state since the table is allowed to manipulate the groupBy through user interaction.\n- `manualGroupBy: Bool`\n  - Enables groupBy detection and functionality, but does not automatically perform row grouping.\n  - Turn this on if you wish to implement your own row grouping outside of the table (eg. server-side or manual row grouping/nesting)\n- `disableGrouping: Bool`\n  - Disables groupBy for the entire table.\n- `aggregations: Object<aggregationKey: aggregationFn>`\n  - Must be **memoized**\n  - Allows overriding or adding additional aggregation functions for use when grouping/aggregating row values. If an aggregation key isn't found on this object, it will default to using the [built-in aggregation functions](TODO)\n- `groupByFn: Function`\n  - Must be **memoized**\n  - Defaults to [`defaultGroupByFn`](TODO)\n  - This function is responsible for grouping rows based on the `state.groupBy` keys provided. It's very rare you would need to customize this function.\n\n### Column Options\n\nThe following options are supported on any `Column` object passed to the `columns` options in `useTable()`\n\n- `Aggregated: Function | React.Component => JSX`\n  - Optional\n  - Defaults to this column's `Cell` formatter\n  - Receives the table instance and cell model as props\n  - Must return valid JSX\n  - This function (or component) formats this column's value when it is being grouped and aggregated, eg. If this column was showing the number of visits for a user to a website and it was currently being grouped to show an **average** of the values, the `Aggregated` function for this column could format that value to `1,000 Avg. Visits`\n- `disableGrouping: Boolean`\n  - Defaults to `true`\n  - If `true`, this column is able to be grouped.\n\n### Instance Properties\n\nThe following values are provided to the table `instance`:\n\n- `rows: Array<Row>`\n  - An array of **grouped and aggregated** rows.\n- `preGroupedRows: Array<Row>`\n  - The array of rows originally used to create the grouped rows.\n- `toggleGroupBy: Function(columnID: String, ?set: Bool) => void`\n  - This function can be used to programmatically set or toggle the groupBy state for a specific column.\n\n### Column Properties\n\nThe following properties are available on every `Column` object returned by the table instance.\n\n- `canGroupBy: Boolean`\n  - If `true`, this column is able to be grouped.\n  - This is resolved from the column having a valid accessor / data model, and not being manually disabled via other `useGroupBy` related options\n- `grouped: Boolean`\n  - If `true`, this column is currently being grouped\n- `groupedIndex: Int`\n  - If this column is currently being grouped, this integer is the index of this column's ID in the table state's `groupBy` array.\n- `toggleGroupBy: Function(?set: Bool) => void`\n  - This function can be used to programmatically set or toggle the groupBy state fo this column.\n- `getGroupByToggleProps: Function(props) => props`\n  - **Required**\n  - This function is used to resolve any props needed for this column's UI that is responsible for toggling grouping when the user clicks it.\n  - You can use the `getGroupByToggleProps` hook to extend its functionality.\n  - Custom props may be passed. **NOTE: Custom props may override built-in sortBy props, so be careful!**\n\n### Row Properties\n\nThe following properties are available on every `Row` object returned by the table instance.\n\n- `groupByID: String`\n  - The column ID for which this row is being grouped.\n  - Will be `undefined` if the row is an original row from `data` and not a materialized one from the grouping.\n- `groupByVal: any`\n  - If the row is a materialized group row, this will be the grouping value that was used to create it.\n- `values: Object`\n  - Similar to a regular row, a materialized grouping row also has a `values` object\n  - This object contains the **aggregated** values for this row's sub rows\n- `subRows: Array<Row>`\n  - If the row is a materialized group row, this property is the array of materialized subRows that were grouped inside of this row.\n- `depth: Int`\n  - If the row is a materialized group row, this is the grouping depth at which this row was created.\n- `path: Array<String|Int>`\n  - Similar to normal `Row` objects, materialized grouping rows also have a path array. The keys inside it though are not integers like nested normal rows though. Since they are not rows that can be traced back to an original data row, they are given a unique path based on their `groupByVal`\n  - If a row is a grouping row, it will have a path like `['Single']` or `['Complicated', 'Anderson']`, where `Single`, `Complicated`, and `Anderson` would all be derived from their row's `groupByVal`.\n\n### Cell Properties\n\nThe following additional properties are available on every `Cell` object returned in an array of `cells` on every row object.\n\n- `grouped: Bool`\n  - If `true`, this cell is a grouped cell, meaning it contains a grouping value and should usually display and expander.\n- `repeatedValue: Bool`\n  - If `true`, this cell is a repeated value cell, meaning it contains a value that is already being displayed elsewhere (usually by a parent row's cell).\n  - Most of the time, this cell is not required to be displayed and can safely be hidden during rendering\n- `aggregated: Bool`\n  - If `true`, this cell's value has been aggregated and should probably be rendered with the `Aggregated` cell renderer.\n\n### Example\n\n```js\nfunction Table({ columns, data }) {\n  const {\n    getTableProps,\n    headerGroups,\n    rows,\n    prepareRow,\n    state: [{ groupBy, expanded }],\n  } = useTable(\n    {\n      columns,\n      data,\n    },\n    useGroupBy,\n    useExpanded // useGroupBy would be pretty useless without useExpanded ;)\n  )\n\n  // We don't want to render all 2000 rows for this example, so cap\n  // it at 20 for this use case\n  const firstPageRows = rows.slice()\n\n  return (\n    <table {...getTableProps()}>\n      <thead>\n        {headerGroups.map(headerGroup => (\n          <tr {...headerGroup.getHeaderGroupProps()}>\n            {headerGroup.headers.map(column => (\n              <th {...column.getHeaderProps()}>\n                {column.canGroupBy ? (\n                  // If the column can be grouped, let's add a toggle\n                  <span {...column.getGroupByToggleProps()}>\n                    {column.grouped ? '🛑' : '👊'}\n                  </span>\n                ) : null}\n                {column.render('Header')}\n              </th>\n            ))}\n          </tr>\n        ))}\n      </thead>\n      <tbody>\n        {firstPageRows.map(\n          (row, i) =>\n            prepareRow(row) || (\n              <tr {...row.getRowProps()}>\n                {row.cells.map(cell => {\n                  return (\n                    <td {...cell.getCellProps()}>\n                      {cell.grouped ? (\n                        // If it's a grouped cell, add an expander and row count\n                        <>\n                          <span\n                            style={{\n                              cursor: 'pointer',\n                            }}\n                            onClick={() => row.toggleExpanded()}\n                          >\n                            {row.isExpanded ? '👇' : '👉'}\n                          </span>\n                          {cell.render('Cell')} ({row.subRows.length})\n                        </>\n                      ) : cell.aggregated ? (\n                        // If the cell is aggregated, use the Aggregated\n                        // renderer for cell\n                        cell.render('Aggregated')\n                      ) : cell.repeatedValue ? null : ( // For cells with repeated values, render null\n                        // Otherwise, just render the regular cell\n                        cell.render('Cell')\n                      )}\n                    </td>\n                  )\n                })}\n              </tr>\n            )\n        )}\n      </tbody>\n    </table>\n  )\n}\n\n// This is a custom aggregator that\n// takes in an array of values and\n// returns the rounded median\nfunction roundedMedian(values) {\n  let min = values[0] || ''\n  let max = values[0] || ''\n\n  values.forEach(value => {\n    min = Math.min(min, value)\n    max = Math.max(max, value)\n  })\n\n  return Math.round((min + max) / 2)\n}\n\nfunction App() {\n  const columns = React.useMemo(\n    () => [\n      {\n        Header: 'Name',\n        columns: [\n          {\n            Header: 'First Name',\n            accessor: 'firstName',\n            // Use a two-stage aggregator here to first\n            // count the total rows being aggregated,\n            // then sum any of those counts if they are\n            // aggregated further\n            aggregate: ['sum', 'count'],\n            Aggregated: ({ value }) => `${value} Names`,\n          },\n          {\n            Header: 'Last Name',\n            accessor: 'lastName',\n            // Use another two-stage aggregator here to\n            // first count the UNIQUE values from the rows\n            // being aggregated, then sum those counts if\n            // they are aggregated further\n            aggregate: ['sum', 'uniqueCount'],\n            Aggregated: ({ value }) => `${value} Unique Names`,\n          },\n        ],\n      },\n      {\n        Header: 'Info',\n        columns: [\n          {\n            Header: 'Age',\n            accessor: 'age',\n            // Aggregate the average age of visitors\n            aggregate: 'average',\n            Aggregated: ({ value }) => `${value} (avg)`,\n          },\n          {\n            Header: 'Visits',\n            accessor: 'visits',\n            // Aggregate the sum of all visits\n            aggregate: 'sum',\n            Aggregated: ({ value }) => `${value} (total)`,\n          },\n          {\n            Header: 'Status',\n            accessor: 'status',\n          },\n          {\n            Header: 'Profile Progress',\n            accessor: 'progress',\n            // Use our custom roundedMedian aggregator\n            aggregate: roundedMedian,\n            Aggregated: ({ value }) => `${value} (med)`,\n          },\n        ],\n      },\n    ],\n    []\n  )\n\n  const data = React.useMemo(() => makeData(10000), [])\n\n  return <Table columns={columns} data={data} />\n}\n```\n\n## `useExpanded`\n\n- Plugin Hook\n- Optional\n\n`useExpanded` is the hook that implements **row expanding**. It is most often used with `useGroupBy` to expand grouped rows, but is not limited to that use-case. It supports expanding rows both via internal table state and also via a hard-coded key on the raw row model.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `state[0].expanded: Object<[pathIndex]: Boolean | ExpandedStateObject>`\n  - Must be **memoized**\n  - An nested object of expanded paths.\n  - A `pathIndex` can be set as the key and its value set to `true` to expand that row's subRows into view. For example, if `{ '3': true }` was passed as the `expanded` state, the **4th row in the original data array** would be expanded.\n  - For nested expansion, you may **use another object** instead of a Boolean to expand sub rows. For example, if `{ '3': { '5' : true }}` was passed as the `expanded` state, then the **6th subRow of the 4th row and the 4th row of the original data array** would be expanded.\n  - This information is stored in state since the table is allowed to manipulate the filter through user interaction.\n- `subRowsKey: String`\n  - Required\n  - Defaults to `subRows`\n  - React Table will use this key when materializing the final row object. It also uses this key to infer sub-rows from the raw data.\n  - See [Grouping and Aggregation](#grouping-and-aggregation) for more information\n- `paginateSubRows: Bool`\n  - Defaults to `true`\n  - If set to `false`, expanded rows will not be paginated. Thus, any expanded subrows would potentially increase the size of any given page by the amount of total expanded subrows on the page.\n- `manualExpandedKey: String`\n  - Defaults to `expanded`\n  - This string is used as the key to detect manual expanded state on any given row. For example, if a raw data row like `{ name: 'Tanner Linsley', friends: [...], expanded: true}` was detected, it would be forcibly expanded, regardless of state.\n\n### Instance Variables\n\nThe following values are provided to the table `instance`:\n\n- `rows: Array<Row>`\n  - An array of **sorted** rows.\n\n### Example\n\n```js\nconst state = useTableState({ expanded: { '3': true, '5': { '2': true } } })\n\nconst { rows } = useTable(\n  {\n    // state[0].sortBy === { '3': true, '5': { '2': true } }\n    state,\n  },\n  useExpanded\n)\n```\n\n## `usePagination`\n\n- Plugin Hook\n- Optional\n\n`usePagination` is the hook that implements **row pagination**. It can be used for both client-side pagination or server-side pagination. For more information on pagination, see [Pagination](TODO)\n\n> **NOTE** Some server-side pagination implementations do not use page index and instead use **token based pagination**! If that's the case, please use the `useTokenPagination` plugin instead.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `state[0].pageSize: Int`\n  - **Required**\n  - Defaults to `10`\n  - Determines the amount of rows on any given page\n- `state[0].pageIndex: Int`\n  - **Required**\n  - Defaults to `0`\n  - The index of the page that should be displayed via the `page` instance value\n- `pageCount: Int`\n  - **Required if `manualPagination` is set to `true`**\n  - If `manualPagination` is `true`, then this value used to determine the amount of pages available. This amount is then used to materialize the `pageOptions` and also compute the `canNextPage` values on the table instance.\n- `manualPagination: Bool`\n  - Enables pagination functionality, but does not automatically perform row pagination.\n  - Turn this on if you wish to implement your own pagination outside of the table (eg. server-side pagination or any other manual pagination technique)\n- `disablePageResetOnDataChange`\n  - Defaults to `false`\n  - Normally, any changes detected to `rows`, `state.filters`, `state.groupBy`, or `state.sortBy` will trigger the `pageIndex` to be reset to `0`\n  - If set to `true`, the `pageIndex` will not be automatically set to `0` when these dependencies change.\n\n### Instance Variables\n\nThe following values are provided to the table `instance`:\n\n- `pages: Array<page>`\n  - An array of every generated `page`, each containing its respective rows.\n- `page: Array<row>`\n  - An array of rows for the **current** page, determined by the current `pageIndex` value.\n- `pageCount: Int`\n  - If `manualPagination` is set to `false`, this is the total amount of pages available in the table based on the current `pageSize` value\n  - if `manualPagination` is set to `true`, this is merely the same `pageCount` option that was passed in the table options.\n- `pageOptions: Array<Int>`\n  - An array of zero-based index integers corresponding to available pages in the table.\n  - This can be useful for generating things like select interfaces for the user to select a page from a list, instead of manually paginating to the desired page.\n- `canPreviousPage: Bool`\n  - If there are pages and the current `pageIndex` is greater than `0`, this will be `true`\n- `canNextPage:`\n  - If there are pages and the current `pageIndex` is less than `pageCount`, this will be `true`\n- `gotoPage: Function(pageIndex)`\n  - This function, when called with a valid `pageIndex`, will set `pageIndex` to that value.\n  - If the passed index is outside of the valid `pageIndex` range, then this function will do nothing.\n- `previousPage: Function`\n  - This function decreases `state.pageIndex` by one.\n  - If there are no pages or `canPreviousPage` is false, this function will do nothing.\n- `nextPage: Function`\n  - This function increases `state.pageIndex` by one.\n  - If there are no pages or `canNextPage` is false, this function will do nothing.\n- `setPageSize: Function(pageSize)`\n  - This function sets `state.pageSize` to the new value.\n  - As a result of a pageSize change, a new `state.pageIndex` is also calculated. It is calculated via `Math.floor(currentTopRowIndex / newPageSize)`\n- `pageIndex: Int`\n  - This is the resolved `state.pageIndex` value.\n- `pageSize: Int`\n  - This is the resolved `state.pageSize` value.\n\n### Example\n\n```js\nconst state = useTableState({ pageSize: 20, pageIndex: 1 })\n\nconst { rows } = useTable(\n  {\n    // state[0] === { pageSize: 20, pageIndex: 1 }\n    state,\n  },\n  usePagination\n)\n```\n\n## `useTokenPagination`\n\n- Plugin Hook\n- Optional\n\n`useTokenPagination` is the hook that **aids in implementing row pagination using tokens**. It is useful for server-side pagination implementations that use **tokens** instead of page index. For more information on pagination, see [Pagination](TODO)\n\n> Documentation Coming Soon...\n\n## `useTableState`\n\n- Optional\n\n`useTableState` is a hook that allows you to hoist the table state out of the table into your own code. You should use this hook if you need to:\n\n- Know about the internal table state\n- React to changes to the internal table state\n- Manually control or override the internal table state\n\nSome common use cases for this hook are:\n\n- Reacting to `pageIndex` and `pageSize` changes for server-side pagination to fetch new data\n- Disallowing specific states via a custom state reducer\n- Enabling parent/unrelated components to manipulate the table state\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `initialState: Object`\n  - Optional\n  - The initial state object for the table.\n  - This object is **merged over the `defaultState` object** (eg. `{...defaultState, ...initialState}`) that React Table and its hooks use to register default state to produce the final initial state object passed to the resolved `useState` hook.\n- `overrides: Object`\n  - Optional\n  - Must be **memoized**\n  - This object is **merged over the current table state** (eg. `{...state, ...overrides}`) to produce the final state object that is then passed to the `useTable` options\n- `options: Object`\n  - `reducer: Function(oldState, newState) => finalState`\n    - Optional\n    - Inspired by Kent C. Dodd's [State Reducer Pattern](https://kentcdodds.com/blog/the-state-reducer-pattern-with-react-hooks)\n    - With every `setState` call to a table state (even internally), this reducer is called and is allowed to modify the final state object for updating.\n    - It is passed the `oldState`, the `newState`, and an action `type`.\n  - `useState`\n    - Optional\n    - Defaults to `React.useState`\n    - This function, if defined will be used as the state hook internally instead of the default `React.useState`. This can be useful for implementing custom state storage hooks like useLocalStorage, etc.\n\n### Instance Variables\n\n- `tableStateTuple: [tableState, setTableState]`\n  - Similar in structure to the result of `React.useState`\n  - **Memoized**. This tuple array will not change between renders unless state or `useTableState` options change.\n  - `tableState: Object`\n    - This is the final state object of the table, which is the product of the `initialState`, `overrides` and the `reducer` options (if applicable)\n  - `setTableState: Function(updater, type) => void`\n    - This function is used both internally by React Table, and optionally by you (the developer) to update the table state programmatically.\n    - `updater: Function`\n      - This function signature is **almost** (see next point) identical to the functional API exposed by `React.setState`. It is passed the previous state and is expected to return a new version of the state.\n      - **NOTE: `updater` must be a function. Passing a replacement object is not supported as it is with React.useState**\n    - `type: String`\n      - The [action type](TODO) corresponding to what action being taken against the state.\n\n### Example\n\n```js\nexport default function MyTable({ manualPageIndex }) {\n  // This is the initial state for our table\n  const initialState = { pageSize: 10, pageIndex: 0 }\n\n  // Here, we can override the pageIndex\n  // regardless of the internal table state\n  const overrides = React.useMemo(() => ({\n    pageIndex: manualPageIndex,\n  }))\n\n  const state = useTableState(initialState, overrides)\n\n  // You can use effects to observe changes to the state\n  React.useEffect(\n    () => {\n      console.log('Page Size Changed!', initialState.pageSize)\n    },\n    [initialState.pageSize]\n  )\n\n  const { rows } = useTable({\n    state,\n  })\n}\n```\n\n# Guides\n\n## Sorting\n\n### Client-Side Sorting\n\n- [Example]()\n\nClient-side sorting can be accomplished by using the `useSortBy` plugin hook. Start by importing the hook from `react-table`:\n\n```diff\n-import { useTable } from 'react-table'\n+import { useTable, useSortBy } from 'react-table'\n```\n\nNext, add the `useSortBy` hook to your `useTable` hook and add the necessary UI pieces we need to make sorting work:\n\n```diff\nfunction MyTable() {\n  const { getTableProps, headerGroups, rows, prepareRow } = useTable(\n    {\n      data,\n      columns,\n    },\n-   useSortBy\n+   useSortBy\n  )\n\n  return (\n    <table {...getTableProps()}>\n      <thead>\n        {headerGroups.map(headerGroup => (\n          <tr {...headerGroup.getHeaderGroupProps()}>\n            {headerGroup.headers.map(column => (\n-             <th {...column.getHeaderProps()}>\n+             <th {...column.getHeaderProps(column.getSortByToggleProps())}>\n                {column.render('Header')}\n+               <span>\n+                 {column.sorted ? (column.sortedDesc ? ' 🔽' : ' 🔼') : ''}\n+               </span>\n              </th>\n            ))}\n          </tr>\n        ))}\n      </thead>\n      <tbody>\n        {rows.map(\n          (row, i) =>\n            prepareRow(row) || (\n              <tr {...row.getRowProps()}>\n                {row.cells.map(cell => {\n                  return <td {...cell.getCellProps()}>{cell.render('Cell')}</td>\n                })}\n              </tr>\n            )\n        )}\n      </tbody>\n    </table>\n  )\n}\n```\n\n### Server-Side Sorting\n\nServer-side sorting can be accomplished by using the `useSortBy` plugin hook in **controlled** mode along with the `useTableState` hook. Start by importing these hooks from `react-table`:\n\n```diff\n-import { useTable } from 'react-table'\n+import { useTable, useSortBy, useTableState } from 'react-table'\n```\n\nNext, add the `useSortBy` and `useTableState` hooks to your `useTable` hook, configure the table state, then add the necessary UI pieces we need to make sorting work:\n\n```diff\nfunction MyTable(data, columns, fetchData) {\n\n+ const state = useTableState()\n+ const [{ sortBy }] = state\n\n+ React.useEffect(() => {\n+   // When sorting changes, trigger your parent component\n+   // or hook to fetch new data with the table state\n+   fetchData(state[0])\n+ }, [sortBy])\n\n  const { getTableProps, headerGroups, rows, prepareRow } = useTable(\n    {\n      data,\n      columns,\n+     state,\n+     manualSorting: true\n    },\n-   useSortBy\n+   useSortBy\n  )\n\n  return (\n    <table {...getTableProps()}>\n      <thead>\n        {headerGroups.map(headerGroup => (\n          <tr {...headerGroup.getHeaderGroupProps()}>\n            {headerGroup.headers.map(column => (\n-             <th {...column.getHeaderProps()}>\n+             <th {...column.getHeaderProps(column.getSortByToggleProps())}>\n                {column.render('Header')}\n+               <span>\n+                 {column.sorted ? (column.sortedDesc ? ' 🔽' : ' 🔼') : ''}\n+               </span>\n              </th>\n            ))}\n          </tr>\n        ))}\n      </thead>\n      <tbody>\n        {rows.map(\n          (row, i) =>\n            prepareRow(row) || (\n              <tr {...row.getRowProps()}>\n                {row.cells.map(cell => {\n                  return <td {...cell.getCellProps()}>{cell.render('Cell')}</td>\n                })}\n              </tr>\n            )\n        )}\n      </tbody>\n    </table>\n  )\n}\n```\n\n<!--\n\n## Client Side Pagination\n\nTo add client side pagination, use the `usePagination` hook:\n\n```diff\n// Import React\nimport React from 'react'\n\n// Import React Table\nimport {\n  useTable,\n  useGroupBy,\n  useFilters,\n  useSortBy,\n  useExpanded,\n+  usePagination,\n} from 'react-table'\n\n// Create a component to render your table\nfunction MyTable(props) {\n  // Use the useTable hook to create your table configuration\n  const instance = useTable(\n    props,\n    useGroupBy,\n    useFilters,\n    useSortBy,\n    useExpanded,\n+   usePagination,\n  )\n\n  // Use the state and functions returned from useTable to build your UI\n  const {\n    getTableProps,\n    headerGroups,\n    rows,\n    getRowProps,\n    prepareRow,\n+   pageOptions,\n+   page,\n+   state: [{ pageIndex, pageSize }],\n+   gotoPage,\n+   previousPage,\n+   nextPage,\n+   setPageSize,\n+   canPreviousPage,\n+   canNextPage,\n  } = instance\n\n  // Render the UI for your table\n  return (\n    <div>\n      <table {...getTableProps()}>\n        ...\n      </table>\n+     <div>\n+       <button onClick={() => previousPage()} disabled={!canPreviousPage}>\n+         Previous Page\n+       </button>\n+       <button onClick={() => nextPage()} disabled={!canNextPage}>\n+         Next Page\n+       </button>\n+       <div>\n+         Page{' '}\n+         <em>\n+           {pageIndex + 1} of {pageOptions.length}\n+         </em>\n+       </div>\n+       <div>Go to page:</div>\n+       <input\n+         type=\"number\"\n+         defaultValue={pageIndex + 1 || 1}\n+         onChange={e => {\n+           const page = e.target.value ? Number(e.target.value) - 1 : 0\n+           gotoPage(page)\n+         }}\n+       />\n+       <select\n+         value={pageSize}\n+         onChange={e => {\n+           setPageSize(Number(e.target.value))\n+         }}\n+       >\n+         {pageSizeOptions.map(pageSize => (\n+           <option key={pageSize} value={pageSize}>\n+             Show {pageSize}\n+           </option>\n+         ))}\n+       </select>\n+     </div>\n    </div>\n  )\n}\n```\n\n## Server Side Pagination\n\nTo implement server-side pagination, use the `useTableState` and `usePagination` hooks:\n\n```diff\n\n``` -->\n\n<!-- # Setup\n\nTo begin using React Table you will need to start with a UI to render it. Below is a very basic component that should serve as a good starting point for most projects:\n\n```js\n// Import React\nimport React from 'react'\n\n// Import React Table\nimport {\n  useTable,\n  useGroupBy,\n  useFilters,\n  useSortBy,\n  useExpanded,\n  usePagination,\n} from 'react-table'\n\n// Create a component to render your table\nexport default function MyTable(props) {\n  // Use the useTable hook to create your table configuration\n  const instance = useTable(\n    props,\n    useGroupBy,\n    useFilters,\n    useSortBy,\n    useExpanded,\n    usePagination\n  )\n\n  // Use the state and functions returned from useTable to build your UI\n  const {\n    getTableProps,\n    headerGroups,\n    rows,\n    getRowProps,\n    pageOptions,\n    page,\n    state: [{ pageIndex, pageSize }],\n    gotoPage,\n    prepareRow,\n    previousPage,\n    nextPage,\n    setPageSize,\n    canPreviousPage,\n    canNextPage,\n  } = instance\n\n  // Render the UI for your table\n  return (\n    <div>\n      <table {...getTableProps()}>\n        <thead>\n          {headerGroups.map(headerGroup => (\n            <tr {...headerGroup.getRowProps()}>\n              {headerGroup.headers.map(column => (\n                <th {...column.getHeaderProps()}>{column.render('Header')}</th>\n              ))}\n            </tr>\n          ))}\n        </thead>\n        <tbody>\n          {page.map(\n            (row, i) =>\n              prepareRow(row) || (\n                <tr {...row.getRowProps()}>\n                  {row.cells.map(cell => {\n                    return (\n                      <td {...cell.getCellProps()}>{cell.render('Cell')}</td>\n                    )\n                  })}\n                </tr>\n              )\n          )}\n        </tbody>\n      </table>\n      <div>\n        <button onClick={() => previousPage()} disabled={!canPreviousPage}>\n          Previous Page\n        </button>\n        <button onClick={() => nextPage()} disabled={!canNextPage}>\n          Next Page\n        </button>\n        <div>\n          Page{' '}\n          <em>\n            {pageIndex + 1} of {pageOptions.length}\n          </em>\n        </div>\n        <div>Go to page:</div>\n        <input\n          type=\"number\"\n          defaultValue={pageIndex + 1 || 1}\n          onChange={e => {\n            const page = e.target.value ? Number(e.target.value) - 1 : 0\n            gotoPage(page)\n          }}\n        />\n        <select\n          value={pageSize}\n          onChange={e => {\n            setPageSize(Number(e.target.value))\n          }}\n        >\n          {pageSizeOptions.map(pageSize => (\n            <option key={pageSize} value={pageSize}>\n              Show {pageSize}\n            </option>\n          ))}\n        </select>\n      </div>\n    </div>\n  )\n}\n```\n\nYou can then use your table like so:\n\n```js\n\nimport MyTable from './MyTable'\n\nfunction MyApp () {\n  const columns = React.useMemo(() => [{\n    Header: \"Name\",\n    columns: [\n      {\n        Header: \"First Name\",\n        accessor: \"firstName\",\n      },\n      {\n        Header: \"Last Name\",\n        accessor: \"lastName\",\n      }\n    ]\n  }], [])\n\n  const data = [{\n    firstName: 'Tanner',\n    lastName: 'Linsley'\n  }, {\n    firstName: 'Shawn',\n    lastName: 'Wang'\n  }, {\n    firstName: 'Kent C.',\n    lastName: 'Dodds'\n  }, {\n    firstName: 'Ryan',\n    lastName: 'Florence'\n  }]\n\n  return <MyTable columns={columns} data={data} />\n``` -->\n\n## Contributing\n\nTo suggest a feature, create an issue if it does not already exist.\nIf you would like to help develop a suggested feature follow these steps:\n\n- Fork this repo\n- Install dependencies with `$ yarn`\n- Link `react-table` locally with `$ yarn link`\n- Auto-build files as you edit with `$ yarn start`\n- Implement your changes and tests to files in the `src/` directory\n- In any example directory, link to the local `react-table` with `$ yarn link react-table`\n- Follow example directions for running. Usually just `$ yarn && yarn start`\n- Document your changes in the root `README.md`\n- To stage a commit, run `yarn commit`\n- Submit PR for review\n","licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.0-alpha.15","dist":{"shasum":"857e119706ce34a1b9a169a8be14ea55d2900bb8","integrity":"sha512-FHemMzXOEmK8XwE/kKxpmTAIy6bWEIISCNwNdYGMx23nMBKoEUyJzj+qidRFge1PV4Fpj8YxRelB/g4oTLMKDA==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.0-alpha.15.tgz","fileCount":11,"unpackedSize":382035,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdQKQpCRA9TVsSAnZWagAAz70P/jCSep8hcKrU7gxuY+0c\n+XD3l6HVNWybVgNptRbk24+i9m1a/SzG5vvyDb6yykggjDz0EIHojq+GZ+Dw\nb3rKdmuXS9dap2Lk/OKsBdb8gv2iTZWwKbCv0JeVU40TmwKmuIT7ldJxzgJt\n6FM269nAlGbUoElHkUAas2HCwMxRsecqu5A2ZHnvMNlPMrjrZwZkJgGDc+Do\nyvn9R//MBZVHh7NjaJxoVE2eo493gRIEFEmEYX3pp441mh2AWdxjl008z0ip\njpRedn0d4k/1u4qqufdiAIzXTRVzWhO4P2P5MiF2tQEkCu/vqMnipDA7QaF2\noty6U1JPtHZ8PKDL3TTiwfvm54+CgcgZFX3TjjX/p5io5YGA+jicSMdUtomm\nUYeeYD1KXTg9BQcBEpgWuLeqRb1p/sSVE0Wl4j8vqGYf6rKDXYGTym2O35jg\nwtSbDM4un1vxNwLAHTCDCFMwlC6MdnOZ6HVboiV6ydTAxLyC/AIfAxim9quk\ndN/xYO7jt/B+jcc6mYc9thg1hrdl9hpV0D5HDpZR+zqfMt+iLT8KXH3LclCM\nqLWyjN3oFhLChRPoyiePOF5FWDIOmk7BZKNvUj6YxelMNvupyLHk3MfgBQwF\nNkRQX35+QOH5GT9Pzh+EFD/RqJbxIxPzdxHfF0YWvOoDCc8sCpCLA2S+F+Os\nz5dR\r\n=sW1n\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEaOw/LQDReBnSrWd7ZCljeywjkimVBk6EtPZAvK8Ff3AiAFiXkc3bJBpMqyO51suTcaF6NvM2JbaKF2sytZuFcubw=="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.0-alpha.15_1564517416372_0.9039150278683892"},"_hasShrinkwrap":false},"7.0.0-alpha.16":{"name":"react-table","version":"7.0.0-alpha.16","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"dist/index.js","module":"dist/index.es.js","jsnext:main":"dist/index.es.js","scripts":{"commit":"git add . && git-cz","test":"is-ci 'test:ci' 'test:dev'","test:dev":"jest --watch","test:ci":"jest","build":"rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier ./**{md,js,jsx,tsx} --write"},"peerDependencies":{"prop-types":"^15.5.0","react":"^16.8.3","react-dom":"^16.8.3"},"devDependencies":{"@babel/core":"^7.5.5","@babel/plugin-proposal-class-properties":"^7.5.5","@babel/preset-env":"^7.5.5","@babel/preset-react":"^7.0.0","@babel/runtime":"^7.5.5","@commitlint/cli":"^8.1.0","@commitlint/config-conventional":"^8.1.0","@svgr/rollup":"^4.3.2","@testing-library/dom":"^5.6.0","@testing-library/jest-dom":"^4.0.0","@testing-library/react":"^8.0.7","babel-eslint":"9.x","commitizen":"^4.0.3","core-js":"3","cross-env":"^5.2.0","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^8.0.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.14.3","eslint-plugin-react-hooks":"1.6.1","eslint-plugin-standard":"^4.0.0","husky":"^3.0.2","is-ci-cli":"^1.1.1","jest":"^24.8.0","jest-cli":"^24.8.0","jest-runner-eslint":"^0.7.4","jest-watch-select-projects":"^0.1.2","jest-watch-typeahead":"^0.3.1","lint-staged":"^9.2.1","prop-types":"^15.5.0","react":"^16.8.3","react-dom":"^16.8.3","rollup":"^0.68.0","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^9.1.3","rollup-plugin-node-resolve":"^4.0.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-uglify":"^6.0.2","snapshot-diff":"^0.5.2"},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"browserslist":"> 0.25%, not dead","readmeFilename":"README.md","readme":"# React Table\n\nHooks for building **lightweight, fast and extendable datagrids** for React\n\n<a href=\"https://travis-ci.org/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://travis-ci.org/tannerlinsley/react-table.svg?branch=master\" />\n</a>\n<a href=\"https://npmjs.com/package/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-table.svg\" />\n</a>\n<a href=\"https://spectrum.chat/react-table\">\n  <img alt=\"Join the community on Spectrum\" src=\"https://withspectrum.github.io/badge/badge.svg\" />\n</a>\n<a href=\"https://github.com/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-table.svg?style=social&label=Star\" />\n</a>\n<a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n\n<br />\n<br />\n\n## Features\n\n- Lightweight\n- Headless (100% customizable, Bring-your-own-UI)\n- Client-side & Server-side pagination support\n- Sorting (Multi and Stable)\n- Filters\n- Pivoting & Aggregation\n- Fully controllable\n- Extensible via hooks\n- <a href=\"https://medium.com/@tannerlinsley/why-i-wrote-react-table-and-the-problems-it-has-solved-for-nozzle-others-445c4e93d4a8#.axza4ixba\" target=\"\\_parent\">\"Why I wrote React Table and the problems it has solved for Nozzle.io\"</a> by Tanner Linsley\n\n## [See Examples](#examples)\n\n## Versions\n\n- This documentation is for version 7.\n- [View the Changelog](https://github.com/tannerlinsley/react-table/blob/master/CHANGELOG.md)\n- Previous versions:\n  - [6.x.x Readme](https://github.com/tannerlinsley/react-table/tree/v6/)\n  - [5.x.x Readme](https://github.com/tannerlinsley/react-table/blob/ad7d31cd3978eb45da7c6194dbab93c1e9a8594d/README.md)\n\n## Sponsors\n\n**React Table v7** is being built and maintained by me, @tannerlinsley and I am always in need of more Patreon support to keep this project afloat. If you would like to contribute to my Patreon goal for v7 and beyond, [visit my Patreon and help me out!](https://patreon.com/tannerlinsley).\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/platinum.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://tryretool.com/?utm_source=sponsor&utm_campaign=react_table\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-retool.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/platinum-placeholder.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/gold.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://nozzle.io\" target=\"_blank\">\n          <img width=\"300\" src=\"https://nozzle.io/img/logo-blue.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://zappi.com/web\" target=\"_blank\">\n          <img width=\"300\" src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-zappi.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/gold-placeholder.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n# Documentation\n\n- [Installation](#installation)\n- [Concepts](#concepts)\n- [Setup](#setup)\n- [Contributing](#contributing)\n\n# Installation\n\nInstall React Table as a dependency using `npm` or `yarn`\n\n```bash\n# NPM\n$ npm install react-table\n\n# Yarn\n$ yarn add react-table\n```\n\nTo import React Table:\n\n```js\nimport {\n  useTable,\n  useGroupBy,\n  useFilters,\n  useSortBy,\n  useExpanded,\n  usePagination,\n  ...\n} from 'react-table'\n```\n\n# Examples\n\n- [Basic](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/master/examples/basic)\n- [Sorting - Client Side](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/master/examples/sorting-client-side)\n- [Filtering - Client Side](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/master/examples/filtering-client-side)\n- [Grouping - Client Side](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/master/examples/grouping-client-side)\n- [Pagination - Client Side](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/master/examples/pagination-client-side)\n\n# Concepts\n\n## React Table is a \"headless\" UI library\n\nReact Table is a headless utility, which means out of the box, it doesn't render or supply any actual UI elements. You are in charge of utilizing the state and callbacks of the hooks provided by this library to render your own table markup. [Read this article to understand why React Table is built this way.](https://medium.com/merrickchristensen/headless-user-interface-components-565b0c0f2e18). If you don't want to, then here's a quick rundown anyway:\n\n- Separation of Concerns - Not that superficial kind you read about all the time. The real kind. React Table as a library honestly has no business being in charge of your UI. The look, feel, and overall experience of your table is what makes your app or product great. The less React Table gets in the way of that, the better!\n- Maintenance - By removing the massive (and seemingly endless) API surface area required to support every UI use-case, React Table can remain small, easy-to-use and simple to update/maintain.\n- Extensibility - UI presents countless edge cases for a library simply because it's a creative medium, and one where every developer does things differently. By not dictating UI concerns, React Table empowers the developer to design and extend the UI based on their unique use-case.\n\n## The React Table API\n\nAt the heart of every React Table is a table `instance` object. This object contains everything needed to build a table and interact with it's state. This includes, but is not limited to:\n\n- Columns\n- Materialized Data\n- Sorting\n- Filtering\n- Grouping\n- Pagination\n- Expanded State\n- Any functionality provided by custom plugin hooks, too!\n\n## Using Hooks for configuration, state and lifecycle\n\nReact Table uses React Hooks both internally and externally for 100% of its configuration and lifecycle management. Naturally, this is what allows React Table to be headless and lightweight while still having a concise and simple API.\n\nReact Table is essentially a compatible collection of **custom React hooks**:\n\n- The primary React Table hook\n  - [`useTable`](#usetable)\n- Plugin Hooks\n  - Core Plugin Hooks\n    - [`useTableState`](#useTableState)\n    - [`useGroupBy`](#useGroupBy)\n    - [`useFilters`](#useFilters)\n    - [`useSortBy`](#useSortBy)\n    - [`useExpanded`](#useExpanded)\n    - [`usePagination`](#usePagination)\n    - [`useTokenPagination`](#useTokenPagination)\n  - Layout Plugin Hooks\n    - [`useFlexLayout`](#useFlexLayout)\n    - [`useAbsoluteLayout`](#useAbsoluteLayout) (coming soon!)\n- Custom Plugin Hooks\n  - Get your custom plugin hook listed here!\n\n### Hook Usage\n\n`useTable` is the **primary** hook used to build a React Table. It serves as the starting point for **every option and every plugin hook** that React Table supports. The options passed into `useTable` are supplied to every plugin hook after it in the order they are supplied, eventually resulting a final `instance` object that you can use to build your table UI and interact with the table's state.\n\n```js\nconst instance = useTable(\n  {\n    data: [...],\n    columns: [...],\n  },\n  useGroupBy,\n  useFilters,\n  useSortBy,\n  useExpanded,\n  usePagination\n)\n```\n\n### The stages of a React Table\n\n1. `useTable` is called. A table instance is created.\n1. The `instance.state` is resolved from either a custom user state or an automatically generated one.\n1. A collection of plugin points is created at `instance.hooks`.\n1. Each plugin is given the opportunity to add hooks to `instance.hook`.\n1. As the `useTable` logic proceeds to run, each plugin hook type is used at a specific point in time with each individual hook function being executed the order it was registered.\n1. The final instance object is returned from `useTable`, which the developer then uses to construct their table.\n\nThis multi-stage process is the secret sauce that allows React Table plugin hooks to work together and compose nicely, while not stepping on each others toes.\n\nTo dive deeper into plugins, see [Plugins](TODO) and the [Plugin Guide](TODO)\n\n### Plugin Hook Order & Consistency\n\nThe order and usage of plugin hooks must follow [The Laws of Hooks](TODO), just like any other custom hook. They must always be unconditionally called in the same order.\n\n> **NOTE: In the event that you want to programmatically enable or disable plugin hooks, most of them provide options to disable their functionality, eg. `options.disableSorting`**\n\n### Option Memoization\n\nReact Table relies on memoization to determine when state and side effects should update or be calculated. This means that every option you pass to `useTable` should be memoized either via `React.useMemo` (for objects) or `React.useCallback` (for functions).\n\n# API\n\n## `useTable`\n\n- Required\n\n`useTable` is the root hook for React Table. To use it, pass it with an options object with at least a `columns` and `rows` value, followed by any React Table compatible hooks you want to use.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `columns: Array<Column>`\n  - Required\n  - Must be **memoized**\n  - The core columns configuration object for the entire table.\n  - Supports nested `columns` arrays via the `column.children` key\n- `data: Array<any>`\n  - Required\n  - Must be **memoized**\n  - The data array that you want to display on the table.\n- `state: TableStateTuple[stateObject, stateUpdater]`\n  - Optional\n  - Must be **memoized** table state tuple. See [`useTableState`](#usetablestate) for more information.\n  - The state/updater pair for the table instance. You would want to override this if you plan on controlling or hoisting table state into your own code.\n  - Defaults to using an internal `useTableState()` instance if not defined.\n  - See [Controlling and Hoisting Table State](#controlling-and-hoisting-table-state)\n- `defaultColumn: Object`\n  - Optional\n  - Defaults to `{}`\n  - The default column object for every column passed to React Table.\n  - Column-specific properties will override the properties in this object, eg. `{ ...defaultColumn, ...userColumn }`\n  - This is particularly useful for adding global column properties. For instance, when using the `useFilters` plugin hook, add a default `Filter` renderer for every column, eg.`{ Filter: MyDefaultFilterComponent }`\n- `debug: Bool`\n  - Optional\n  - A flag to turn on debug mode.\n  - Defaults to `false`\n\n### `column` Options\n\nThe following options are supported on any column object you can pass to `columns`.\n\n- `accessor: String | Function`\n  - **Required**\n  - This string/function is used to build the data model for your column.\n  - The data returned by an accessor should be **primitive** and sortable.\n  - If a string is passed, the column's value will be looked up on the original row via that key, eg. If your column's accessor is `firstName` then its value would be read from `row['firstName']`. You can also specify deeply nested values with accessors like `info.hobbies` or even `address[0].street`\n  - If a function is passed, the column's value will be looked up on the original row using this accessor function, eg. If your column's accessor is `row => row.firstName`, then its value would be determined by passing the row to this function and using the resulting value.\n- `id: String`\n  - **Required if `accessor` is a function**\n  - This is the unique ID for the column. It is used by reference in things like sorting, grouping, filtering etc.\n  - If a **string** accessor is used, it defaults as the column ID, but can be overridden if necessary.\n- `columns: Array<Column>`\n  - Optional\n  - A nested array of columns.\n  - If defined, the column will act as a header group. Columns can be recursively nested as much as needed.\n- `show: Boolean | Function`\n  - Optional\n  - Defaults to `true`\n  - If set to `false`, the column will be hidden.\n  - If set to a `function`, it will be called with the current table instance and can then return `true` or `false`.\n  - The data model for hidden columns is still calculated including sorting, filters, and grouping.\n- `Header: String | Function | React.Component => JSX`\n  - Optional\n  - Defaults to `({ id }) => id`\n  - Receives the table instance and column model as props\n  - Must either be a **string or return valid JSX**\n  - If a function/component is passed, it will be used for formatting the header value, eg. You can use a `Header` function to dynamically format the header using any table or column state.\n- `Cell: Function | React.Component => JSX`\n  - Optional\n  - Defaults to `({ value }) => value`\n  - Receives the table instance and cell model as props\n  - Must return valid JSX\n  - This function (or component) is primarily used for formatting the column value, eg. If your column accessor returns a date object, you can use a `Cell` function to format that date to a readable format.\n\n### Instance Properties\n\nThe following properties are available on the table instance returned from `useTable`\n\n- `headerGroups: Array<HeaderGroup>`\n  - An array of normalized header groups, each containing a flattened array of final column objects for that row.\n  - See [Header Group Properties](#headergroup-properties) for more information\n- `columns: Array<Column>`\n  - A **flat** array of all final column objects computed from the original columns configuration option.\n  - See [Column Properties](#column-properties) for more information\n- `headers[] Array<Column>`\n  - A **nested** array of final column objects, similar in structure to the original columns configuration option.\n  - See [Column Properties](#column-properties) for more information\n- `rows: Array<Row>`\n  - An array of **materialized row objects** from the original `data` array and `columns` passed into the table options\n  - See [Row Properties](#row-properties) for more information\n- `getTableProps: Function(?props)`\n  - **Required**\n  - This function is used to resolve any props needed for your table wrapper.\n  - Custom props may be passed. **NOTE: Custom props will override built-in table props, so be careful!**\n- `prepareRow: Function(Row)`\n  - **Required**\n  - This function is responsible for lazily preparing a row for rendering. Any row that you intend to render in your table needs to be passed to this function **before every render**.\n  - **Why?** Since table data could potentially be very large, it can become very expensive to compute all of the necessary state for every row to be rendered regardless if it actually is rendered or not (for example if you are paginating or virtualizing the rows, you may only have a few rows visible at any given moment). This function allows only the rows you intend to display to be computed and prepped with the correct state.\n\n### `HeaderGroup` Properties\n\nThe following additional properties are available on every `headerGroup` object returned by the table instance.\n\n- `headers: Array<Column>`\n  - **Required**\n  - The columns in this header group.\n- `getHeaderGroupProps: Function(?props)`\n  - **Required**\n  - This function is used to resolve any props needed for this header group's row.\n  - You can use the `getHeaderGroupProps` hook to extend its functionality.\n  - Custom props may be passed. **NOTE: Custom props will override built-in table props, so be careful!**\n\n### Column Properties\n\nThe following properties are available on every `Column` object returned by the table instance.\n\n- `id: String`\n  - The resolved column ID from either the column's `accessor` or the column's hard-coded `id` property\n- `visible: Boolean`\n  - The resolved visible state for the column, derived from the column's `show` property\n- `render: Function(type: String | Function | Component, ?props)`\n  - This function is used to render content in context of a column.\n  - If `type` is a string, will render using the `column[type]` renderer. React Table ships with default `Header` renderers. Other renderers like `Filter` are available via hooks like `useFilters`.\n  - If a function or component is passed instead of a string, it will be be passed the table instance and column model as props and is expected to return any valid JSX.\n- `getHeaderProps: Function(?props)`\n  - **Required**\n  - This function is used to resolve any props needed for this column's header cell.\n  - You can use the `getHeaderProps` hook to extend its functionality.\n  - Custom props may be passed. **NOTE: Custom props will override built-in table props, so be careful!**\n\n### Row Properties\n\nThe following additional properties are available on every `row` object returned by the table instance.\n\n- `cells: Array<Cell>`\n  - An array of `Cell` objects containing properties and functions specific to the row and column it belongs to.\n  - See [Cell Properties](#cell-properties) for more information\n- `values: Object<columnID: any>`\n  - A map of this row's **resolved** values by columnID, eg. `{ firstName: 'Tanner', lastName: 'Linsley' }`\n- `getRowProps: Function(?props)`\n  - **Required**\n  - This function is used to resolve any props needed for this row.\n  - You can use the `getRowProps` hook to extend its functionality.\n  - Custom props may be passed. **NOTE: Custom props will override built-in table props, so be careful!**\n\n### Cell Properties\n\nThe following additional properties are available on every `Cell` object returned in an array of `cells` on every row object.\n\n- `column: Column`\n  - The corresponding column object for this cell\n- `row: Row`\n  - The corresponding row object for this cell\n- `value: any`\n  - The **resolved** value for this cell.\n  - By default, this value is displayed on the table via the default `Cell` renderer. To override the way a cell displays\n- `getCellProps: Function(?props)`\n  - **Required**\n  - This function is used to resolve any props needed for this cell.\n  - You can use the `getCellProps` hook to extend its functionality.\n  - Custom props may be passed. **NOTE: Custom props will override built-in table props, so be careful!**\n- `render: Function(type: String | Function | Component, ?props)`\n  - This function is used to render content in context of a cell.\n  - If `type` is a string, will render using the `column[type]` renderer. React Table ships with a default `Cell` renderer. Other renderers like `Aggregated` are available via hooks like `useFilters`.\n  - If a function or component is passed instead of a string, it will be be passed the table instance and cell model as props and is expected to return any valid JSX.\n\n### Example\n\n```js\nfunction App() {\n  const columns = React.useMemo(\n    () => [\n      {\n        Header: 'Name',\n        columns: [\n          {\n            Header: 'First Name',\n            accessor: 'firstName',\n          },\n          {\n            Header: 'Last Name',\n            accessor: 'lastName',\n          },\n        ],\n      },\n    ],\n    []\n  )\n\n  const data = [\n    {\n      firstName: 'Tanner',\n      lastName: 'Linsley',\n    },\n    {\n      firstName: 'Shawn',\n      lastName: 'Wang',\n    },\n    {\n      firstName: 'Kent C.',\n      lastName: 'Dodds',\n    },\n    {\n      firstName: 'Ryan',\n      lastName: 'Florence',\n    },\n  ]\n\n  return <MyTable columns={columns} data={data} />\n}\n\nfunction MyTable({ columns, data }) {\n  const { getTableProps, headerGroups, rows, prepareRow } = useTable({\n    columns,\n    data,\n  })\n\n  return (\n    <table {...getTableProps()}>\n      <thead>\n        {headerGroups.map(headerGroup => (\n          <tr {...headerGroup.getHeaderGroupProps()}>\n            {headerGroup.headers.map(column => (\n              <th {...column.getHeaderProps()}>{column.render('Header')}</th>\n            ))}\n          </tr>\n        ))}\n      </thead>\n      <tbody>\n        {rows.map(\n          (row, i) =>\n            prepareRow(row) || (\n              <tr {...row.getRowProps()}>\n                {row.cells.map(cell => {\n                  return <td {...cell.getCellProps()}>{cell.render('Cell')}</td>\n                })}\n              </tr>\n            )\n        )}\n      </tbody>\n    </table>\n  )\n}\n```\n\n## `useSortBy`\n\n- Plugin Hook\n- Optional\n\n`useSortBy` is the hook that implements **row sorting**. It also support multi-sort (keyboard required).\n\n- Multi-sort is enabled by default\n- To sort the table via UI, attach the props generated from each column's `getSortByToggleProps()`, then click any of those elements.\n- To multi-sort the table via UI, hold `shift` while clicking on any of those same elements that have the props from `getSortByToggleProps()` attached.\n- To programmatically sort (or multi-sort) any column, use the `toggleSortBy` method located on the instance or each individual column.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `state[0].sortBy: Array<Object<id: columnID, desc: Bool>>`\n  - Must be **memoized**\n  - An array of sorting objects. If there is more than one object in the array, multi-sorting will be enabled. Each sorting object should contain an `id` key with the corresponding column ID to sort by. An optional `desc` key may be set to true or false to indicated ascending or descending sorting for that column. This information is stored in state since the table is allowed to manipulate the filter through user interaction.\n- `manualSorting: Bool`\n  - Enables sorting detection functionality, but does not automatically perform row sorting. Turn this on if you wish to implement your own sorting outside of the table (eg. server-side or manual row grouping/nesting)\n- `disableSorting: Bool`\n  - Disables sorting for every column in the entire table.\n- `disableMultiSort: Bool`\n  - Disables multi-sorting for the entire table.\n- `disableSortRemove: Bool`\n  - If true, the un-sorted state will not be available to columns once they have been sorted.\n- `disableMultiRemove: Bool`\n  - If true, the un-sorted state will not be available to multi-sorted columns.\n- `orderByFn: Function`\n  - Must be **memoizd**\n  - Defaults to the built-in [default orderBy function](TODO)\n  - This function is responsible for composing multiple sorting functions together for multi-sorting, and also handles both the directional sorting and stable-sorting tie breaking. Rarely would you want to override this function unless you have a very advanced use-case that requires it.\n- `sortTypes: Object<sortKey: sortType>`\n  - Must be **memoized**\n  - Allows overriding or adding additional sort types for columns to use. If a column's sort type isn't found on this object, it will default to using the [built-in sort types](TODO).\n  - For mor information on sort types, see [Sorting](TODO)\n\n### Column Options\n\nThe following options are supported on any `Column` object passed to the `columns` options in `useTable()`\n\n- `disableSorting: Bool`\n  - Optional\n  - Defualts to `false`\n  - If set to `true`, the sorting for this column will be disabled\n- `sortDescFirst: Bool`\n  - Optional\n  - Defaults to `false`\n  - If set to `true`, the first sort direction for this column will be descending instead of ascending\n- `sortInverted: Bool`\n  - Optional\n  - Defaults to `false`\n  - If set to `true`, the underlying sorting direction will be inverted, but the UI will not.\n  - This may be useful in situations where positive and negative connotation is inverted, eg. a Golfing score where a lower score is considered more positive than a higher one.\n- `sortType: String | Function`\n  - If a **function** is passed, it must be **memoized**\n  - Defaults to [`alphanumeric`](TODO)\n  - The resolved function from the this string/function will be used to sort the this column's data.\n    - If a `string` is passed, the function with that name located on either the custom `sortTypes` option or the built-in sorting types object will be used. If\n    - If a `function` is passed, it will be used.\n  - For mor information on sort types, see [Sorting](TODO)\n\n### Instance Properties\n\nThe following values are provided to the table `instance`:\n\n- `rows: Array<Row>`\n  - An array of **sorted** rows.\n- `preSortedRows: Array<Row>`\n  - The array of rows that were originally sorted.\n- `toggleSortBy: Function(ColumnID: String, descending: Bool, isMulti: Bool) => void`\n  - This function can be used to programmatically toggle the sorting for any specific column\n\n### Column Properties\n\nThe following properties are available on every `Column` object returned by the table instance.\n\n- `canSort: Bool`\n  - Denotes whether a column is sortable or not depending on if it has a valid accessor/data model or is manually disabled via an option.\n- `toggleSortBy: Function(descending, multi) => void`\n  - This function can be used to programmatically toggle the sorting for this column.\n  - This function is similar to the `instance`-level `toggleSortBy`, however, passing a columnID is not required since it is located on a `Column` object already.\n- `getSortByToggleProps: Function(props) => props`\n  - **Required**\n  - This function is used to resolve any props needed for this column's UI that is responsible for toggling the sort direction when the user clicks it.\n  - You can use the `getSortByToggleProps` hook to extend its functionality.\n  - Custom props may be passed. **NOTE: Custom props may override built-in sortBy props, so be careful!**\n- `sorted: Boolean`\n  - Denotes whether this column is currently being sorted\n- `sortedIndex: Int`\n  - If the column is currently sorted, this integer will be the index in the `sortBy` array from state that corresponds to this column.\n  - If this column is not sorted, the index will always be `-1`\n- `sortedDesc: Bool`\n  - If the column is currently sorted, this denotes whether the column's sort direction is descending or not.\n  - If `true`, the column is sorted `descending`\n  - If `false`, the column is sorted `ascending`\n  - If `undefined`, the column is not currently being sorted.\n\n### Example\n\n```js\nfunction Table({ columns, data }) {\n  // Set some default sorting state\n  const state = useTableState({ sortBy: [{ id: 'firstName', desc: true }] })\n\n  const { getTableProps, headerGroups, rows, prepareRow } = useTable(\n    {\n      columns,\n      data,\n    },\n    useSortBy // Use the sortBy hook\n  )\n\n  return (\n    <table {...getTableProps()}>\n      <thead>\n        {headerGroups.map(headerGroup => (\n          <tr {...headerGroup.getHeaderGroupProps()}>\n            {headerGroup.headers.map(column => (\n              // Add the sorting props to control sorting. For this example\n              // we can add them into the header props\n              <th {...column.getHeaderProps(column.getSortByToggleProps())}>\n                {column.render('Header')}\n                <span>\n                  {/* Add a sort direction indicator */}\n                  <span>\n                    {column.sorted ? (column.sortedDesc ? ' 🔽' : ' 🔼') : ''}\n                  </span>\n                  {/* Add a sort index indicator */}\n                  <span>({column.sorted ? column.sortedIndex + 1 : ''})</span>\n                </span>\n              </th>\n            ))}\n          </tr>\n        ))}\n      </thead>\n      <tbody>\n        {rows.map(\n          (row, i) =>\n            prepareRow(row) || (\n              <tr {...row.getRowProps()}>\n                {row.cells.map(cell => {\n                  return <td {...cell.getCellProps()}>{cell.render('Cell')}</td>\n                })}\n              </tr>\n            )\n        )}\n      </tbody>\n    </table>\n  )\n}\n```\n\n## `useFilters`\n\n- Plugin Hook\n- Optional\n\n`useFilters` is the hook that implements **row filtering**.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `state[0].filters: Object<columnID: filterValue>`\n  - Must be **memoized**\n  - An object of columnID's and their corresponding filter values. This information is stored in state since the table is allowed to manipulate the filter through user interaction.\n- `defaultFilter: String | Function`\n  - If a **function** is passed, it must be **memoized**\n  - Defaults to [`text`](TODO)\n  - The function (or resolved function from the string) will be used as the default/fallback filter method for every column that has filtering enabled.\n    - If a `string` is passed, the function with that name located on the `filterTypes` option object will be used.\n    - If a `function` is passed, it will be used.\n  - For mor information on filter types, see [Filtering](TODO)\n- `manualFilters: Bool`\n  - Enables filter detection functionality, but does not automatically perform row filtering.\n  - Turn this on if you wish to implement your own row filter outside of the table (eg. server-side or manual row grouping/nesting)\n- `disableFilters: Bool`\n  - Disables filtering for every column in the entire table.\n- `filterTypes: Object<filterKey: filterType>`\n  - Must be **memoized**\n  - Allows overriding or adding additional filter types for columns to use. If a column's filter type isn't found on this object, it will default to using the [built-in filter types](TODO).\n  - For mor information on filter types, see [Filtering](TODO)\n\n### Column Options\n\nThe following options are supported on any `Column` object passed to the `columns` options in `useTable()`\n\n- `Filter: Function | React.Component => JSX`\n  - **Required**\n  - Receives the table instance and column model as props\n  - Must return valid JSX\n  - This function (or component) is used to render this column's filter UI, eg.\n- `disableFilters: Bool`\n  - Optional\n  - If set to `true`, will disable filtering for this column\n- `filter: String | Function`\n  - Optional\n  - Defaults to [`text`](TODO)\n  - The resolved function from the this string/function will be used to filter the this column's data.\n    - If a `string` is passed, the function with that name located on either the custom `filterTypes` option or the built-in filtering types object will be used. If\n    - If a `function` is passed, it will be used directly.\n  - For mor information on filter types, see [Filtering](TODO)\n  - If a **function** is passed, it must be **memoized**\n\n### Instance Properties\n\nThe following values are provided to the table `instance`:\n\n- `rows: Array<Row>`\n  - An array of **filtered** rows.\n- `preFilteredRows: Array<Row>`\n  - The array of rows **used right before filtering**.\n  - Among many other use-cases, these rows are directly useful for building option lists in filters, since the resulting filtered `rows` do not contain every possible option.\n- `setFilter: Function(columnID, filterValue) => void`\n  - An instance-level function used to update the filter value for a specific column.\n- `setAllFilters: Function(filtersObject) => void`\n  - An instance-level function used to update the values for **all** filters on the table, all at once.\n\n### Column Properties\n\nThe following properties are available on every `Column` object returned by the table instance.\n\n- `canFilter: Bool`\n  - Denotes whether a column is filterable or not depending on if it has a valid accessor/data model or is manually disabled via an option.\n- `setFilter: Function(filterValue) => void`\n  - An column-level function used to update the filter value for this column\n- `filterValue: any`\n  - The current filter value for this column, resolved from the table state's `filters` object\n- `preFilteredRows: Array<row>`\n  - The array of rows that were originally passed to this columns filter **before** they were filtered.\n  - This array of rows can be useful if building faceted filter options.\n\n### Example\n\n```js\n// A great library for fuzzy filtering/sorting items\nimport matchSorter from 'match-sorter'\n\nconst state = useTableState({ filters: { firstName: 'tanner' } })\n\nconst filterTypes = React.useMemo(() => ({\n  // Add a new fuzzyText filter type.\n  fuzzyText: (rows, id, filterValue) => {\n    return matchSorter(rows, filterValue, { keys: [row => row[id] })\n  },\n  // Or, override the default text filter to use\n  // \"startWith\"\n  text: (rows, id, filterValue) => {\n    return rows.filter(row => {\n      const rowValue = row.values[id]\n      return rowValue !== undefined\n        ? String(rowValue)\n            .toLowerCase()\n            .startsWith(String(filterValue).toLowerCase())\n        : true\n    })\n  }\n}), [matchSorter])\n\n// Override the default column filter to be our new `fuzzyText` filter type\nconst defaultColumn = React.useMemo(() => ({\n  filter: 'fuzzyText'\n}))\n\nconst { rows } = useTable(\n  {\n    // state[0].groupBy === ['firstName']\n    state,\n    manualFilters: false,\n    disableFilters: false,\n    // Pass our custom filter types\n    filterTypes,\n    defaultColumn\n  },\n  useFilters\n)\n```\n\n## `useGroupBy`\n\n- Plugin Hook\n- Optional\n\n`useGroupBy` is the hook that implements **row grouping and aggregation**.\n\n- Each column's `getGroupByToggleProps()` function can be used to generate the props needed to make a clickable UI element that will toggle the grouping on or off for a specific column.\n- Instance and column-level `toggleGroupBy` functions are also made available for programmatic grouping.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `state[0].groupBy: Array<String>`\n  - Must be **memoized**\n  - An array of groupBy ID strings, controlling which columns are used to calculate row grouping and aggregation. This information is stored in state since the table is allowed to manipulate the groupBy through user interaction.\n- `manualGroupBy: Bool`\n  - Enables groupBy detection and functionality, but does not automatically perform row grouping.\n  - Turn this on if you wish to implement your own row grouping outside of the table (eg. server-side or manual row grouping/nesting)\n- `disableGrouping: Bool`\n  - Disables groupBy for the entire table.\n- `aggregations: Object<aggregationKey: aggregationFn>`\n  - Must be **memoized**\n  - Allows overriding or adding additional aggregation functions for use when grouping/aggregating row values. If an aggregation key isn't found on this object, it will default to using the [built-in aggregation functions](TODO)\n- `groupByFn: Function`\n  - Must be **memoized**\n  - Defaults to [`defaultGroupByFn`](TODO)\n  - This function is responsible for grouping rows based on the `state.groupBy` keys provided. It's very rare you would need to customize this function.\n\n### Column Options\n\nThe following options are supported on any `Column` object passed to the `columns` options in `useTable()`\n\n- `Aggregated: Function | React.Component => JSX`\n  - Optional\n  - Defaults to this column's `Cell` formatter\n  - Receives the table instance and cell model as props\n  - Must return valid JSX\n  - This function (or component) formats this column's value when it is being grouped and aggregated, eg. If this column was showing the number of visits for a user to a website and it was currently being grouped to show an **average** of the values, the `Aggregated` function for this column could format that value to `1,000 Avg. Visits`\n- `disableGrouping: Boolean`\n  - Defaults to `true`\n  - If `true`, this column is able to be grouped.\n\n### Instance Properties\n\nThe following values are provided to the table `instance`:\n\n- `rows: Array<Row>`\n  - An array of **grouped and aggregated** rows.\n- `preGroupedRows: Array<Row>`\n  - The array of rows originally used to create the grouped rows.\n- `toggleGroupBy: Function(columnID: String, ?set: Bool) => void`\n  - This function can be used to programmatically set or toggle the groupBy state for a specific column.\n\n### Column Properties\n\nThe following properties are available on every `Column` object returned by the table instance.\n\n- `canGroupBy: Boolean`\n  - If `true`, this column is able to be grouped.\n  - This is resolved from the column having a valid accessor / data model, and not being manually disabled via other `useGroupBy` related options\n- `grouped: Boolean`\n  - If `true`, this column is currently being grouped\n- `groupedIndex: Int`\n  - If this column is currently being grouped, this integer is the index of this column's ID in the table state's `groupBy` array.\n- `toggleGroupBy: Function(?set: Bool) => void`\n  - This function can be used to programmatically set or toggle the groupBy state fo this column.\n- `getGroupByToggleProps: Function(props) => props`\n  - **Required**\n  - This function is used to resolve any props needed for this column's UI that is responsible for toggling grouping when the user clicks it.\n  - You can use the `getGroupByToggleProps` hook to extend its functionality.\n  - Custom props may be passed. **NOTE: Custom props may override built-in sortBy props, so be careful!**\n\n### Row Properties\n\nThe following properties are available on every `Row` object returned by the table instance.\n\n- `groupByID: String`\n  - The column ID for which this row is being grouped.\n  - Will be `undefined` if the row is an original row from `data` and not a materialized one from the grouping.\n- `groupByVal: any`\n  - If the row is a materialized group row, this will be the grouping value that was used to create it.\n- `values: Object`\n  - Similar to a regular row, a materialized grouping row also has a `values` object\n  - This object contains the **aggregated** values for this row's sub rows\n- `subRows: Array<Row>`\n  - If the row is a materialized group row, this property is the array of materialized subRows that were grouped inside of this row.\n- `depth: Int`\n  - If the row is a materialized group row, this is the grouping depth at which this row was created.\n- `path: Array<String|Int>`\n  - Similar to normal `Row` objects, materialized grouping rows also have a path array. The keys inside it though are not integers like nested normal rows though. Since they are not rows that can be traced back to an original data row, they are given a unique path based on their `groupByVal`\n  - If a row is a grouping row, it will have a path like `['Single']` or `['Complicated', 'Anderson']`, where `Single`, `Complicated`, and `Anderson` would all be derived from their row's `groupByVal`.\n\n### Cell Properties\n\nThe following additional properties are available on every `Cell` object returned in an array of `cells` on every row object.\n\n- `grouped: Bool`\n  - If `true`, this cell is a grouped cell, meaning it contains a grouping value and should usually display and expander.\n- `repeatedValue: Bool`\n  - If `true`, this cell is a repeated value cell, meaning it contains a value that is already being displayed elsewhere (usually by a parent row's cell).\n  - Most of the time, this cell is not required to be displayed and can safely be hidden during rendering\n- `aggregated: Bool`\n  - If `true`, this cell's value has been aggregated and should probably be rendered with the `Aggregated` cell renderer.\n\n### Example\n\n```js\nfunction Table({ columns, data }) {\n  const {\n    getTableProps,\n    headerGroups,\n    rows,\n    prepareRow,\n    state: [{ groupBy, expanded }],\n  } = useTable(\n    {\n      columns,\n      data,\n    },\n    useGroupBy,\n    useExpanded // useGroupBy would be pretty useless without useExpanded ;)\n  )\n\n  // We don't want to render all 2000 rows for this example, so cap\n  // it at 20 for this use case\n  const firstPageRows = rows.slice()\n\n  return (\n    <table {...getTableProps()}>\n      <thead>\n        {headerGroups.map(headerGroup => (\n          <tr {...headerGroup.getHeaderGroupProps()}>\n            {headerGroup.headers.map(column => (\n              <th {...column.getHeaderProps()}>\n                {column.canGroupBy ? (\n                  // If the column can be grouped, let's add a toggle\n                  <span {...column.getGroupByToggleProps()}>\n                    {column.grouped ? '🛑' : '👊'}\n                  </span>\n                ) : null}\n                {column.render('Header')}\n              </th>\n            ))}\n          </tr>\n        ))}\n      </thead>\n      <tbody>\n        {firstPageRows.map(\n          (row, i) =>\n            prepareRow(row) || (\n              <tr {...row.getRowProps()}>\n                {row.cells.map(cell => {\n                  return (\n                    <td {...cell.getCellProps()}>\n                      {cell.grouped ? (\n                        // If it's a grouped cell, add an expander and row count\n                        <>\n                          <span\n                            style={{\n                              cursor: 'pointer',\n                            }}\n                            onClick={() => row.toggleExpanded()}\n                          >\n                            {row.isExpanded ? '👇' : '👉'}\n                          </span>\n                          {cell.render('Cell')} ({row.subRows.length})\n                        </>\n                      ) : cell.aggregated ? (\n                        // If the cell is aggregated, use the Aggregated\n                        // renderer for cell\n                        cell.render('Aggregated')\n                      ) : cell.repeatedValue ? null : ( // For cells with repeated values, render null\n                        // Otherwise, just render the regular cell\n                        cell.render('Cell')\n                      )}\n                    </td>\n                  )\n                })}\n              </tr>\n            )\n        )}\n      </tbody>\n    </table>\n  )\n}\n\n// This is a custom aggregator that\n// takes in an array of values and\n// returns the rounded median\nfunction roundedMedian(values) {\n  let min = values[0] || ''\n  let max = values[0] || ''\n\n  values.forEach(value => {\n    min = Math.min(min, value)\n    max = Math.max(max, value)\n  })\n\n  return Math.round((min + max) / 2)\n}\n\nfunction App() {\n  const columns = React.useMemo(\n    () => [\n      {\n        Header: 'Name',\n        columns: [\n          {\n            Header: 'First Name',\n            accessor: 'firstName',\n            // Use a two-stage aggregator here to first\n            // count the total rows being aggregated,\n            // then sum any of those counts if they are\n            // aggregated further\n            aggregate: ['sum', 'count'],\n            Aggregated: ({ value }) => `${value} Names`,\n          },\n          {\n            Header: 'Last Name',\n            accessor: 'lastName',\n            // Use another two-stage aggregator here to\n            // first count the UNIQUE values from the rows\n            // being aggregated, then sum those counts if\n            // they are aggregated further\n            aggregate: ['sum', 'uniqueCount'],\n            Aggregated: ({ value }) => `${value} Unique Names`,\n          },\n        ],\n      },\n      {\n        Header: 'Info',\n        columns: [\n          {\n            Header: 'Age',\n            accessor: 'age',\n            // Aggregate the average age of visitors\n            aggregate: 'average',\n            Aggregated: ({ value }) => `${value} (avg)`,\n          },\n          {\n            Header: 'Visits',\n            accessor: 'visits',\n            // Aggregate the sum of all visits\n            aggregate: 'sum',\n            Aggregated: ({ value }) => `${value} (total)`,\n          },\n          {\n            Header: 'Status',\n            accessor: 'status',\n          },\n          {\n            Header: 'Profile Progress',\n            accessor: 'progress',\n            // Use our custom roundedMedian aggregator\n            aggregate: roundedMedian,\n            Aggregated: ({ value }) => `${value} (med)`,\n          },\n        ],\n      },\n    ],\n    []\n  )\n\n  const data = React.useMemo(() => makeData(10000), [])\n\n  return <Table columns={columns} data={data} />\n}\n```\n\n## `useExpanded`\n\n- Plugin Hook\n- Optional\n\n`useExpanded` is the hook that implements **row expanding**. It is most often used with `useGroupBy` to expand grouped rows, but is not limited to that use-case. It supports expanding rows both via internal table state and also via a hard-coded key on the raw row model.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `state[0].expanded: Object<[pathIndex]: Boolean | ExpandedStateObject>`\n  - Must be **memoized**\n  - An nested object of expanded paths.\n  - A `pathIndex` can be set as the key and its value set to `true` to expand that row's subRows into view. For example, if `{ '3': true }` was passed as the `expanded` state, the **4th row in the original data array** would be expanded.\n  - For nested expansion, you may **use another object** instead of a Boolean to expand sub rows. For example, if `{ '3': { '5' : true }}` was passed as the `expanded` state, then the **6th subRow of the 4th row and the 4th row of the original data array** would be expanded.\n  - This information is stored in state since the table is allowed to manipulate the filter through user interaction.\n- `subRowsKey: String`\n  - Required\n  - Defaults to `subRows`\n  - React Table will use this key when materializing the final row object. It also uses this key to infer sub-rows from the raw data.\n  - See [Grouping and Aggregation](#grouping-and-aggregation) for more information\n- `paginateSubRows: Bool`\n  - Defaults to `true`\n  - If set to `false`, expanded rows will not be paginated. Thus, any expanded subrows would potentially increase the size of any given page by the amount of total expanded subrows on the page.\n- `manualExpandedKey: String`\n  - Defaults to `expanded`\n  - This string is used as the key to detect manual expanded state on any given row. For example, if a raw data row like `{ name: 'Tanner Linsley', friends: [...], expanded: true}` was detected, it would be forcibly expanded, regardless of state.\n\n### Instance Variables\n\nThe following values are provided to the table `instance`:\n\n- `rows: Array<Row>`\n  - An array of **sorted** rows.\n\n### Example\n\n```js\nconst state = useTableState({ expanded: { '3': true, '5': { '2': true } } })\n\nconst { rows } = useTable(\n  {\n    // state[0].sortBy === { '3': true, '5': { '2': true } }\n    state,\n  },\n  useExpanded\n)\n```\n\n## `usePagination`\n\n- Plugin Hook\n- Optional\n\n`usePagination` is the hook that implements **row pagination**. It can be used for both client-side pagination or server-side pagination. For more information on pagination, see [Pagination](TODO)\n\n> **NOTE** Some server-side pagination implementations do not use page index and instead use **token based pagination**! If that's the case, please use the `useTokenPagination` plugin instead.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `state[0].pageSize: Int`\n  - **Required**\n  - Defaults to `10`\n  - Determines the amount of rows on any given page\n- `state[0].pageIndex: Int`\n  - **Required**\n  - Defaults to `0`\n  - The index of the page that should be displayed via the `page` instance value\n- `pageCount: Int`\n  - **Required if `manualPagination` is set to `true`**\n  - If `manualPagination` is `true`, then this value used to determine the amount of pages available. This amount is then used to materialize the `pageOptions` and also compute the `canNextPage` values on the table instance.\n- `manualPagination: Bool`\n  - Enables pagination functionality, but does not automatically perform row pagination.\n  - Turn this on if you wish to implement your own pagination outside of the table (eg. server-side pagination or any other manual pagination technique)\n- `disablePageResetOnDataChange`\n  - Defaults to `false`\n  - Normally, any changes detected to `rows`, `state.filters`, `state.groupBy`, or `state.sortBy` will trigger the `pageIndex` to be reset to `0`\n  - If set to `true`, the `pageIndex` will not be automatically set to `0` when these dependencies change.\n\n### Instance Variables\n\nThe following values are provided to the table `instance`:\n\n- `pages: Array<page>`\n  - An array of every generated `page`, each containing its respective rows.\n- `page: Array<row>`\n  - An array of rows for the **current** page, determined by the current `pageIndex` value.\n- `pageCount: Int`\n  - If `manualPagination` is set to `false`, this is the total amount of pages available in the table based on the current `pageSize` value\n  - if `manualPagination` is set to `true`, this is merely the same `pageCount` option that was passed in the table options.\n- `pageOptions: Array<Int>`\n  - An array of zero-based index integers corresponding to available pages in the table.\n  - This can be useful for generating things like select interfaces for the user to select a page from a list, instead of manually paginating to the desired page.\n- `canPreviousPage: Bool`\n  - If there are pages and the current `pageIndex` is greater than `0`, this will be `true`\n- `canNextPage:`\n  - If there are pages and the current `pageIndex` is less than `pageCount`, this will be `true`\n- `gotoPage: Function(pageIndex)`\n  - This function, when called with a valid `pageIndex`, will set `pageIndex` to that value.\n  - If the passed index is outside of the valid `pageIndex` range, then this function will do nothing.\n- `previousPage: Function`\n  - This function decreases `state.pageIndex` by one.\n  - If there are no pages or `canPreviousPage` is false, this function will do nothing.\n- `nextPage: Function`\n  - This function increases `state.pageIndex` by one.\n  - If there are no pages or `canNextPage` is false, this function will do nothing.\n- `setPageSize: Function(pageSize)`\n  - This function sets `state.pageSize` to the new value.\n  - As a result of a pageSize change, a new `state.pageIndex` is also calculated. It is calculated via `Math.floor(currentTopRowIndex / newPageSize)`\n- `pageIndex: Int`\n  - This is the resolved `state.pageIndex` value.\n- `pageSize: Int`\n  - This is the resolved `state.pageSize` value.\n\n### Example\n\n```js\nconst state = useTableState({ pageSize: 20, pageIndex: 1 })\n\nconst { rows } = useTable(\n  {\n    // state[0] === { pageSize: 20, pageIndex: 1 }\n    state,\n  },\n  usePagination\n)\n```\n\n## `useTokenPagination`\n\n- Plugin Hook\n- Optional\n\n`useTokenPagination` is the hook that **aids in implementing row pagination using tokens**. It is useful for server-side pagination implementations that use **tokens** instead of page index. For more information on pagination, see [Pagination](TODO)\n\n> Documentation Coming Soon...\n\n## `useTableState`\n\n- Optional\n\n`useTableState` is a hook that allows you to hoist the table state out of the table into your own code. You should use this hook if you need to:\n\n- Know about the internal table state\n- React to changes to the internal table state\n- Manually control or override the internal table state\n\nSome common use cases for this hook are:\n\n- Reacting to `pageIndex` and `pageSize` changes for server-side pagination to fetch new data\n- Disallowing specific states via a custom state reducer\n- Enabling parent/unrelated components to manipulate the table state\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `initialState: Object`\n  - Optional\n  - The initial state object for the table.\n  - This object is **merged over the `defaultState` object** (eg. `{...defaultState, ...initialState}`) that React Table and its hooks use to register default state to produce the final initial state object passed to the resolved `useState` hook.\n- `overrides: Object`\n  - Optional\n  - Must be **memoized**\n  - This object is **merged over the current table state** (eg. `{...state, ...overrides}`) to produce the final state object that is then passed to the `useTable` options\n- `options: Object`\n  - `reducer: Function(oldState, newState) => finalState`\n    - Optional\n    - Inspired by Kent C. Dodd's [State Reducer Pattern](https://kentcdodds.com/blog/the-state-reducer-pattern-with-react-hooks)\n    - With every `setState` call to a table state (even internally), this reducer is called and is allowed to modify the final state object for updating.\n    - It is passed the `oldState`, the `newState`, and an action `type`.\n  - `useState`\n    - Optional\n    - Defaults to `React.useState`\n    - This function, if defined will be used as the state hook internally instead of the default `React.useState`. This can be useful for implementing custom state storage hooks like useLocalStorage, etc.\n\n### Instance Variables\n\n- `tableStateTuple: [tableState, setTableState]`\n  - Similar in structure to the result of `React.useState`\n  - **Memoized**. This tuple array will not change between renders unless state or `useTableState` options change.\n  - `tableState: Object`\n    - This is the final state object of the table, which is the product of the `initialState`, `overrides` and the `reducer` options (if applicable)\n  - `setTableState: Function(updater, type) => void`\n    - This function is used both internally by React Table, and optionally by you (the developer) to update the table state programmatically.\n    - `updater: Function`\n      - This function signature is **almost** (see next point) identical to the functional API exposed by `React.setState`. It is passed the previous state and is expected to return a new version of the state.\n      - **NOTE: `updater` must be a function. Passing a replacement object is not supported as it is with React.useState**\n    - `type: String`\n      - The [action type](TODO) corresponding to what action being taken against the state.\n\n### Example\n\n```js\nexport default function MyTable({ manualPageIndex }) {\n  // This is the initial state for our table\n  const initialState = { pageSize: 10, pageIndex: 0 }\n\n  // Here, we can override the pageIndex\n  // regardless of the internal table state\n  const overrides = React.useMemo(() => ({\n    pageIndex: manualPageIndex,\n  }))\n\n  const state = useTableState(initialState, overrides)\n\n  // You can use effects to observe changes to the state\n  React.useEffect(\n    () => {\n      console.log('Page Size Changed!', initialState.pageSize)\n    },\n    [initialState.pageSize]\n  )\n\n  const { rows } = useTable({\n    state,\n  })\n}\n```\n\n# Guides\n\n## Sorting\n\n### Client-Side Sorting\n\n- [Example]()\n\nClient-side sorting can be accomplished by using the `useSortBy` plugin hook. Start by importing the hook from `react-table`:\n\n```diff\n-import { useTable } from 'react-table'\n+import { useTable, useSortBy } from 'react-table'\n```\n\nNext, add the `useSortBy` hook to your `useTable` hook and add the necessary UI pieces we need to make sorting work:\n\n```diff\nfunction MyTable() {\n  const { getTableProps, headerGroups, rows, prepareRow } = useTable(\n    {\n      data,\n      columns,\n    },\n-   useSortBy\n+   useSortBy\n  )\n\n  return (\n    <table {...getTableProps()}>\n      <thead>\n        {headerGroups.map(headerGroup => (\n          <tr {...headerGroup.getHeaderGroupProps()}>\n            {headerGroup.headers.map(column => (\n-             <th {...column.getHeaderProps()}>\n+             <th {...column.getHeaderProps(column.getSortByToggleProps())}>\n                {column.render('Header')}\n+               <span>\n+                 {column.sorted ? (column.sortedDesc ? ' 🔽' : ' 🔼') : ''}\n+               </span>\n              </th>\n            ))}\n          </tr>\n        ))}\n      </thead>\n      <tbody>\n        {rows.map(\n          (row, i) =>\n            prepareRow(row) || (\n              <tr {...row.getRowProps()}>\n                {row.cells.map(cell => {\n                  return <td {...cell.getCellProps()}>{cell.render('Cell')}</td>\n                })}\n              </tr>\n            )\n        )}\n      </tbody>\n    </table>\n  )\n}\n```\n\n### Server-Side Sorting\n\nServer-side sorting can be accomplished by using the `useSortBy` plugin hook in **controlled** mode along with the `useTableState` hook. Start by importing these hooks from `react-table`:\n\n```diff\n-import { useTable } from 'react-table'\n+import { useTable, useSortBy, useTableState } from 'react-table'\n```\n\nNext, add the `useSortBy` and `useTableState` hooks to your `useTable` hook, configure the table state, then add the necessary UI pieces we need to make sorting work:\n\n```diff\nfunction MyTable(data, columns, fetchData) {\n\n+ const state = useTableState()\n+ const [{ sortBy }] = state\n\n+ React.useEffect(() => {\n+   // When sorting changes, trigger your parent component\n+   // or hook to fetch new data with the table state\n+   fetchData(state[0])\n+ }, [sortBy])\n\n  const { getTableProps, headerGroups, rows, prepareRow } = useTable(\n    {\n      data,\n      columns,\n+     state,\n+     manualSorting: true\n    },\n-   useSortBy\n+   useSortBy\n  )\n\n  return (\n    <table {...getTableProps()}>\n      <thead>\n        {headerGroups.map(headerGroup => (\n          <tr {...headerGroup.getHeaderGroupProps()}>\n            {headerGroup.headers.map(column => (\n-             <th {...column.getHeaderProps()}>\n+             <th {...column.getHeaderProps(column.getSortByToggleProps())}>\n                {column.render('Header')}\n+               <span>\n+                 {column.sorted ? (column.sortedDesc ? ' 🔽' : ' 🔼') : ''}\n+               </span>\n              </th>\n            ))}\n          </tr>\n        ))}\n      </thead>\n      <tbody>\n        {rows.map(\n          (row, i) =>\n            prepareRow(row) || (\n              <tr {...row.getRowProps()}>\n                {row.cells.map(cell => {\n                  return <td {...cell.getCellProps()}>{cell.render('Cell')}</td>\n                })}\n              </tr>\n            )\n        )}\n      </tbody>\n    </table>\n  )\n}\n```\n\n<!--\n\n## Client Side Pagination\n\nTo add client side pagination, use the `usePagination` hook:\n\n```diff\n// Import React\nimport React from 'react'\n\n// Import React Table\nimport {\n  useTable,\n  useGroupBy,\n  useFilters,\n  useSortBy,\n  useExpanded,\n+  usePagination,\n} from 'react-table'\n\n// Create a component to render your table\nfunction MyTable(props) {\n  // Use the useTable hook to create your table configuration\n  const instance = useTable(\n    props,\n    useGroupBy,\n    useFilters,\n    useSortBy,\n    useExpanded,\n+   usePagination,\n  )\n\n  // Use the state and functions returned from useTable to build your UI\n  const {\n    getTableProps,\n    headerGroups,\n    rows,\n    getRowProps,\n    prepareRow,\n+   pageOptions,\n+   page,\n+   state: [{ pageIndex, pageSize }],\n+   gotoPage,\n+   previousPage,\n+   nextPage,\n+   setPageSize,\n+   canPreviousPage,\n+   canNextPage,\n  } = instance\n\n  // Render the UI for your table\n  return (\n    <div>\n      <table {...getTableProps()}>\n        ...\n      </table>\n+     <div>\n+       <button onClick={() => previousPage()} disabled={!canPreviousPage}>\n+         Previous Page\n+       </button>\n+       <button onClick={() => nextPage()} disabled={!canNextPage}>\n+         Next Page\n+       </button>\n+       <div>\n+         Page{' '}\n+         <em>\n+           {pageIndex + 1} of {pageOptions.length}\n+         </em>\n+       </div>\n+       <div>Go to page:</div>\n+       <input\n+         type=\"number\"\n+         defaultValue={pageIndex + 1 || 1}\n+         onChange={e => {\n+           const page = e.target.value ? Number(e.target.value) - 1 : 0\n+           gotoPage(page)\n+         }}\n+       />\n+       <select\n+         value={pageSize}\n+         onChange={e => {\n+           setPageSize(Number(e.target.value))\n+         }}\n+       >\n+         {pageSizeOptions.map(pageSize => (\n+           <option key={pageSize} value={pageSize}>\n+             Show {pageSize}\n+           </option>\n+         ))}\n+       </select>\n+     </div>\n    </div>\n  )\n}\n```\n\n## Server Side Pagination\n\nTo implement server-side pagination, use the `useTableState` and `usePagination` hooks:\n\n```diff\n\n``` -->\n\n<!-- # Setup\n\nTo begin using React Table you will need to start with a UI to render it. Below is a very basic component that should serve as a good starting point for most projects:\n\n```js\n// Import React\nimport React from 'react'\n\n// Import React Table\nimport {\n  useTable,\n  useGroupBy,\n  useFilters,\n  useSortBy,\n  useExpanded,\n  usePagination,\n} from 'react-table'\n\n// Create a component to render your table\nexport default function MyTable(props) {\n  // Use the useTable hook to create your table configuration\n  const instance = useTable(\n    props,\n    useGroupBy,\n    useFilters,\n    useSortBy,\n    useExpanded,\n    usePagination\n  )\n\n  // Use the state and functions returned from useTable to build your UI\n  const {\n    getTableProps,\n    headerGroups,\n    rows,\n    getRowProps,\n    pageOptions,\n    page,\n    state: [{ pageIndex, pageSize }],\n    gotoPage,\n    prepareRow,\n    previousPage,\n    nextPage,\n    setPageSize,\n    canPreviousPage,\n    canNextPage,\n  } = instance\n\n  // Render the UI for your table\n  return (\n    <div>\n      <table {...getTableProps()}>\n        <thead>\n          {headerGroups.map(headerGroup => (\n            <tr {...headerGroup.getRowProps()}>\n              {headerGroup.headers.map(column => (\n                <th {...column.getHeaderProps()}>{column.render('Header')}</th>\n              ))}\n            </tr>\n          ))}\n        </thead>\n        <tbody>\n          {page.map(\n            (row, i) =>\n              prepareRow(row) || (\n                <tr {...row.getRowProps()}>\n                  {row.cells.map(cell => {\n                    return (\n                      <td {...cell.getCellProps()}>{cell.render('Cell')}</td>\n                    )\n                  })}\n                </tr>\n              )\n          )}\n        </tbody>\n      </table>\n      <div>\n        <button onClick={() => previousPage()} disabled={!canPreviousPage}>\n          Previous Page\n        </button>\n        <button onClick={() => nextPage()} disabled={!canNextPage}>\n          Next Page\n        </button>\n        <div>\n          Page{' '}\n          <em>\n            {pageIndex + 1} of {pageOptions.length}\n          </em>\n        </div>\n        <div>Go to page:</div>\n        <input\n          type=\"number\"\n          defaultValue={pageIndex + 1 || 1}\n          onChange={e => {\n            const page = e.target.value ? Number(e.target.value) - 1 : 0\n            gotoPage(page)\n          }}\n        />\n        <select\n          value={pageSize}\n          onChange={e => {\n            setPageSize(Number(e.target.value))\n          }}\n        >\n          {pageSizeOptions.map(pageSize => (\n            <option key={pageSize} value={pageSize}>\n              Show {pageSize}\n            </option>\n          ))}\n        </select>\n      </div>\n    </div>\n  )\n}\n```\n\nYou can then use your table like so:\n\n```js\n\nimport MyTable from './MyTable'\n\nfunction MyApp () {\n  const columns = React.useMemo(() => [{\n    Header: \"Name\",\n    columns: [\n      {\n        Header: \"First Name\",\n        accessor: \"firstName\",\n      },\n      {\n        Header: \"Last Name\",\n        accessor: \"lastName\",\n      }\n    ]\n  }], [])\n\n  const data = [{\n    firstName: 'Tanner',\n    lastName: 'Linsley'\n  }, {\n    firstName: 'Shawn',\n    lastName: 'Wang'\n  }, {\n    firstName: 'Kent C.',\n    lastName: 'Dodds'\n  }, {\n    firstName: 'Ryan',\n    lastName: 'Florence'\n  }]\n\n  return <MyTable columns={columns} data={data} />\n``` -->\n\n## Contributing\n\nTo suggest a feature, create an issue if it does not already exist.\nIf you would like to help develop a suggested feature follow these steps:\n\n- Fork this repo\n- Install dependencies with `$ yarn`\n- Link `react-table` locally with `$ yarn link`\n- Auto-build files as you edit with `$ yarn start`\n- Implement your changes and tests to files in the `src/` directory\n- In any example directory, link to the local `react-table` with `$ yarn link react-table`\n- Follow example directions for running. Usually just `$ yarn && yarn start`\n- Document your changes in the root `README.md`\n- To stage a commit, run `yarn commit`\n- Submit PR for review\n","licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.0-alpha.16","dist":{"shasum":"d45b1c6758d3b6bbaff12f1c4e3adf4a736315d0","integrity":"sha512-F1BjK8i2S1b2giqj7AE1qgCZUA6n/NeuErsuCkJDZZ4eAxR5scwMJ+IlznNE//3DBm878lvXyFtRrFPI3z4mCw==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.0-alpha.16.tgz","fileCount":11,"unpackedSize":383705,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdQMxlCRA9TVsSAnZWagAAyy4P/3btVAsUg/YWBrjetxm8\n396CNHwyjeemw37jPxUnA2X4S3BUY5yMsxRkloISh4lMY4u+xlxyoJ8dU3Zc\n0+/pQiee7XH7gmZBRJeAAfDWM1QNR02TEAjH1K007TYx5LaLQnOKmVK+nAaF\nMJR4BhpWfD8H2YI/FWDoiT8cV/p+D3CCKjg0xMNtlECvzLLUQLKHBJyg94NS\nyIoBKU24RMdq6L1RBJhJJUw+fLLHQLus0vNuR738biaZ0TN7eEzF1i53uGSr\n8qsXkdEI2AUgF84dbPFEJyhxKe63YFXEIZodz5fbv4MVHzfwzNgFw/uDrc2+\nj1KQ0Zh5ZBiVrN6sUE+OEFMvYoZ7PgL5plMVjhPp1tdip2gPs1KpmWQk4uJy\n+UUCCD80kZj81B9f6fu3qmCHbiw4dQWnA30wcvsvtGbeEL8Wp3jGp6coq42g\nEOF8JKHndXLFtOT0eEjJMjZGU6oHnKByfkHkcPUT5RIFSi7VAWqWylUuWG2S\nfqgO3soYzkJUfNAO6OX667kvWQwQ0b9XEilKpvRjX3mGQYo9cHb4bfXsEbQU\nemsOnhsDXrayVJCSK16OrQG34klImixA/96UqKlrmWXRat3FmiIqR244IDbh\nLd47QTgCI3xNTt7uXinTGUKwlR6Os/jGO0n5ZsMvtCGvw45eKYbdhV7GT6rk\n3lBz\r\n=cGsO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAURUxZcIHn4Mn5WK15B21LgqhH7CF5psv0sREmpLZPgAiEA28PFMqIp/0M0EuqrRd4lnAxY2B8JV76tYeR+pY42a0k="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.0-alpha.16_1564527716345_0.0013681727162087043"},"_hasShrinkwrap":false},"7.0.0-alpha.17":{"name":"react-table","version":"7.0.0-alpha.17","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"dist/index.js","module":"dist/index.es.js","jsnext:main":"dist/index.es.js","scripts":{"commit":"git add . && git-cz","test":"is-ci 'test:ci' 'test:dev'","test:dev":"jest --watch","test:ci":"jest","build":"rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier ./**{md,js,jsx,tsx} --write"},"peerDependencies":{"prop-types":"^15.5.0","react":"^16.8.3","react-dom":"^16.8.3"},"devDependencies":{"@babel/core":"^7.5.5","@babel/plugin-proposal-class-properties":"^7.5.5","@babel/preset-env":"^7.5.5","@babel/preset-react":"^7.0.0","@babel/runtime":"^7.5.5","@commitlint/cli":"^8.1.0","@commitlint/config-conventional":"^8.1.0","@svgr/rollup":"^4.3.2","@testing-library/dom":"^5.6.0","@testing-library/jest-dom":"^4.0.0","@testing-library/react":"^8.0.7","babel-eslint":"9.x","commitizen":"^4.0.3","core-js":"3","cross-env":"^5.2.0","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^8.0.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.14.3","eslint-plugin-react-hooks":"1.6.1","eslint-plugin-standard":"^4.0.0","husky":"^3.0.2","is-ci-cli":"^1.1.1","jest":"^24.8.0","jest-cli":"^24.8.0","jest-runner-eslint":"^0.7.4","jest-watch-select-projects":"^0.1.2","jest-watch-typeahead":"^0.3.1","lint-staged":"^9.2.1","prop-types":"^15.5.0","react":"^16.8.3","react-dom":"^16.8.3","rollup":"^0.68.0","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^9.1.3","rollup-plugin-node-resolve":"^4.0.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-uglify":"^6.0.2","snapshot-diff":"^0.5.2"},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"browserslist":"> 0.25%, not dead","readmeFilename":"README.md","readme":"# React Table\n\nHooks for building **lightweight, fast and extendable datagrids** for React\n\n<a href=\"https://travis-ci.org/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://travis-ci.org/tannerlinsley/react-table.svg?branch=master\" />\n</a>\n<a href=\"https://npmjs.com/package/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-table.svg\" />\n</a>\n<a href=\"https://spectrum.chat/react-table\">\n  <img alt=\"Join the community on Spectrum\" src=\"https://withspectrum.github.io/badge/badge.svg\" />\n</a>\n<a href=\"https://github.com/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-table.svg?style=social&label=Star\" />\n</a>\n<a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n\n<br />\n<br />\n\n## Features\n\n- Lightweight\n- Headless (100% customizable, Bring-your-own-UI)\n- Client-side & Server-side pagination support\n- Sorting (Multi and Stable)\n- Filters\n- Pivoting & Aggregation\n- Fully controllable\n- Extensible via hooks\n- <a href=\"https://medium.com/@tannerlinsley/why-i-wrote-react-table-and-the-problems-it-has-solved-for-nozzle-others-445c4e93d4a8#.axza4ixba\" target=\"\\_parent\">\"Why I wrote React Table and the problems it has solved for Nozzle.io\"</a> by Tanner Linsley\n\n## [See Examples](#examples)\n\n## Versions\n\n- This documentation is for version 7.\n- [View the Changelog](https://github.com/tannerlinsley/react-table/blob/master/CHANGELOG.md)\n- Previous versions:\n  - [6.x.x Readme](https://github.com/tannerlinsley/react-table/tree/v6/)\n  - [5.x.x Readme](https://github.com/tannerlinsley/react-table/blob/ad7d31cd3978eb45da7c6194dbab93c1e9a8594d/README.md)\n\n## Sponsors\n\n**React Table v7** is being built and maintained by me, @tannerlinsley and I am always in need of more Patreon support to keep this project afloat. If you would like to contribute to my Patreon goal for v7 and beyond, [visit my Patreon and help me out!](https://patreon.com/tannerlinsley).\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/platinum.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://tryretool.com/?utm_source=sponsor&utm_campaign=react_table\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-retool.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/platinum-placeholder.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/gold.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://nozzle.io\" target=\"_blank\">\n          <img width=\"300\" src=\"https://nozzle.io/img/logo-blue.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://zappi.com/web\" target=\"_blank\">\n          <img width=\"300\" src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-zappi.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/gold-placeholder.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n# Documentation\n\n- [Installation](#installation)\n- [Concepts](#concepts)\n- [Setup](#setup)\n- [Contributing](#contributing)\n\n# Installation\n\nInstall React Table as a dependency using `npm` or `yarn`\n\n```bash\n# NPM\n$ npm install react-table\n\n# Yarn\n$ yarn add react-table\n```\n\nTo import React Table:\n\n```js\nimport {\n  useTable,\n  useGroupBy,\n  useFilters,\n  useSortBy,\n  useExpanded,\n  usePagination,\n  ...\n} from 'react-table'\n```\n\n# Examples\n\n- [Basic](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/master/examples/basic)\n- [Sorting - Client Side](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/master/examples/sorting-client-side)\n- [Filtering - Client Side](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/master/examples/filtering-client-side)\n- [Grouping - Client Side](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/master/examples/grouping-client-side)\n- [Pagination - Client Side](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/master/examples/pagination-client-side)\n\n# Concepts\n\n## React Table is a \"headless\" UI library\n\nReact Table is a headless utility, which means out of the box, it doesn't render or supply any actual UI elements. You are in charge of utilizing the state and callbacks of the hooks provided by this library to render your own table markup. [Read this article to understand why React Table is built this way.](https://medium.com/merrickchristensen/headless-user-interface-components-565b0c0f2e18). If you don't want to, then here's a quick rundown anyway:\n\n- Separation of Concerns - Not that superficial kind you read about all the time. The real kind. React Table as a library honestly has no business being in charge of your UI. The look, feel, and overall experience of your table is what makes your app or product great. The less React Table gets in the way of that, the better!\n- Maintenance - By removing the massive (and seemingly endless) API surface area required to support every UI use-case, React Table can remain small, easy-to-use and simple to update/maintain.\n- Extensibility - UI presents countless edge cases for a library simply because it's a creative medium, and one where every developer does things differently. By not dictating UI concerns, React Table empowers the developer to design and extend the UI based on their unique use-case.\n\n## The React Table API\n\nAt the heart of every React Table is a table `instance` object. This object contains everything needed to build a table and interact with it's state. This includes, but is not limited to:\n\n- Columns\n- Materialized Data\n- Sorting\n- Filtering\n- Grouping\n- Pagination\n- Expanded State\n- Any functionality provided by custom plugin hooks, too!\n\n## Using Hooks for configuration, state and lifecycle\n\nReact Table uses React Hooks both internally and externally for 100% of its configuration and lifecycle management. Naturally, this is what allows React Table to be headless and lightweight while still having a concise and simple API.\n\nReact Table is essentially a compatible collection of **custom React hooks**:\n\n- The primary React Table hook\n  - [`useTable`](#usetable)\n- Plugin Hooks\n  - Core Plugin Hooks\n    - [`useTableState`](#useTableState)\n    - [`useGroupBy`](#useGroupBy)\n    - [`useFilters`](#useFilters)\n    - [`useSortBy`](#useSortBy)\n    - [`useExpanded`](#useExpanded)\n    - [`usePagination`](#usePagination)\n    - [`useTokenPagination`](#useTokenPagination)\n  - Layout Plugin Hooks\n    - [`useFlexLayout`](#useFlexLayout)\n    - [`useAbsoluteLayout`](#useAbsoluteLayout) (coming soon!)\n- Custom Plugin Hooks\n  - Get your custom plugin hook listed here!\n\n### Hook Usage\n\n`useTable` is the **primary** hook used to build a React Table. It serves as the starting point for **every option and every plugin hook** that React Table supports. The options passed into `useTable` are supplied to every plugin hook after it in the order they are supplied, eventually resulting a final `instance` object that you can use to build your table UI and interact with the table's state.\n\n```js\nconst instance = useTable(\n  {\n    data: [...],\n    columns: [...],\n  },\n  useGroupBy,\n  useFilters,\n  useSortBy,\n  useExpanded,\n  usePagination\n)\n```\n\n### The stages of a React Table\n\n1. `useTable` is called. A table instance is created.\n1. The `instance.state` is resolved from either a custom user state or an automatically generated one.\n1. A collection of plugin points is created at `instance.hooks`.\n1. Each plugin is given the opportunity to add hooks to `instance.hook`.\n1. As the `useTable` logic proceeds to run, each plugin hook type is used at a specific point in time with each individual hook function being executed the order it was registered.\n1. The final instance object is returned from `useTable`, which the developer then uses to construct their table.\n\nThis multi-stage process is the secret sauce that allows React Table plugin hooks to work together and compose nicely, while not stepping on each others toes.\n\nTo dive deeper into plugins, see [Plugins](TODO) and the [Plugin Guide](TODO)\n\n### Plugin Hook Order & Consistency\n\nThe order and usage of plugin hooks must follow [The Laws of Hooks](TODO), just like any other custom hook. They must always be unconditionally called in the same order.\n\n> **NOTE: In the event that you want to programmatically enable or disable plugin hooks, most of them provide options to disable their functionality, eg. `options.disableSorting`**\n\n### Option Memoization\n\nReact Table relies on memoization to determine when state and side effects should update or be calculated. This means that every option you pass to `useTable` should be memoized either via `React.useMemo` (for objects) or `React.useCallback` (for functions).\n\n# API\n\n## `useTable`\n\n- Required\n\n`useTable` is the root hook for React Table. To use it, pass it with an options object with at least a `columns` and `rows` value, followed by any React Table compatible hooks you want to use.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `columns: Array<Column>`\n  - Required\n  - Must be **memoized**\n  - The core columns configuration object for the entire table.\n  - Supports nested `columns` arrays via the `column.children` key\n- `data: Array<any>`\n  - Required\n  - Must be **memoized**\n  - The data array that you want to display on the table.\n- `state: TableStateTuple[stateObject, stateUpdater]`\n  - Optional\n  - Must be **memoized** table state tuple. See [`useTableState`](#usetablestate) for more information.\n  - The state/updater pair for the table instance. You would want to override this if you plan on controlling or hoisting table state into your own code.\n  - Defaults to using an internal `useTableState()` instance if not defined.\n  - See [Controlling and Hoisting Table State](#controlling-and-hoisting-table-state)\n- `defaultColumn: Object`\n  - Optional\n  - Defaults to `{}`\n  - The default column object for every column passed to React Table.\n  - Column-specific properties will override the properties in this object, eg. `{ ...defaultColumn, ...userColumn }`\n  - This is particularly useful for adding global column properties. For instance, when using the `useFilters` plugin hook, add a default `Filter` renderer for every column, eg.`{ Filter: MyDefaultFilterComponent }`\n- `debug: Bool`\n  - Optional\n  - A flag to turn on debug mode.\n  - Defaults to `false`\n\n### `column` Options\n\nThe following options are supported on any column object you can pass to `columns`.\n\n- `accessor: String | Function`\n  - **Required**\n  - This string/function is used to build the data model for your column.\n  - The data returned by an accessor should be **primitive** and sortable.\n  - If a string is passed, the column's value will be looked up on the original row via that key, eg. If your column's accessor is `firstName` then its value would be read from `row['firstName']`. You can also specify deeply nested values with accessors like `info.hobbies` or even `address[0].street`\n  - If a function is passed, the column's value will be looked up on the original row using this accessor function, eg. If your column's accessor is `row => row.firstName`, then its value would be determined by passing the row to this function and using the resulting value.\n- `id: String`\n  - **Required if `accessor` is a function**\n  - This is the unique ID for the column. It is used by reference in things like sorting, grouping, filtering etc.\n  - If a **string** accessor is used, it defaults as the column ID, but can be overridden if necessary.\n- `columns: Array<Column>`\n  - Optional\n  - A nested array of columns.\n  - If defined, the column will act as a header group. Columns can be recursively nested as much as needed.\n- `show: Boolean | Function`\n  - Optional\n  - Defaults to `true`\n  - If set to `false`, the column will be hidden.\n  - If set to a `function`, it will be called with the current table instance and can then return `true` or `false`.\n  - The data model for hidden columns is still calculated including sorting, filters, and grouping.\n- `Header: String | Function | React.Component => JSX`\n  - Optional\n  - Defaults to `({ id }) => id`\n  - Receives the table instance and column model as props\n  - Must either be a **string or return valid JSX**\n  - If a function/component is passed, it will be used for formatting the header value, eg. You can use a `Header` function to dynamically format the header using any table or column state.\n- `Cell: Function | React.Component => JSX`\n  - Optional\n  - Defaults to `({ value }) => value`\n  - Receives the table instance and cell model as props\n  - Must return valid JSX\n  - This function (or component) is primarily used for formatting the column value, eg. If your column accessor returns a date object, you can use a `Cell` function to format that date to a readable format.\n\n### Instance Properties\n\nThe following properties are available on the table instance returned from `useTable`\n\n- `headerGroups: Array<HeaderGroup>`\n  - An array of normalized header groups, each containing a flattened array of final column objects for that row.\n  - See [Header Group Properties](#headergroup-properties) for more information\n- `columns: Array<Column>`\n  - A **flat** array of all final column objects computed from the original columns configuration option.\n  - See [Column Properties](#column-properties) for more information\n- `headers[] Array<Column>`\n  - A **nested** array of final column objects, similar in structure to the original columns configuration option.\n  - See [Column Properties](#column-properties) for more information\n- `rows: Array<Row>`\n  - An array of **materialized row objects** from the original `data` array and `columns` passed into the table options\n  - See [Row Properties](#row-properties) for more information\n- `getTableProps: Function(?props)`\n  - **Required**\n  - This function is used to resolve any props needed for your table wrapper.\n  - Custom props may be passed. **NOTE: Custom props will override built-in table props, so be careful!**\n- `prepareRow: Function(Row)`\n  - **Required**\n  - This function is responsible for lazily preparing a row for rendering. Any row that you intend to render in your table needs to be passed to this function **before every render**.\n  - **Why?** Since table data could potentially be very large, it can become very expensive to compute all of the necessary state for every row to be rendered regardless if it actually is rendered or not (for example if you are paginating or virtualizing the rows, you may only have a few rows visible at any given moment). This function allows only the rows you intend to display to be computed and prepped with the correct state.\n\n### `HeaderGroup` Properties\n\nThe following additional properties are available on every `headerGroup` object returned by the table instance.\n\n- `headers: Array<Column>`\n  - **Required**\n  - The columns in this header group.\n- `getHeaderGroupProps: Function(?props)`\n  - **Required**\n  - This function is used to resolve any props needed for this header group's row.\n  - You can use the `getHeaderGroupProps` hook to extend its functionality.\n  - Custom props may be passed. **NOTE: Custom props will override built-in table props, so be careful!**\n\n### Column Properties\n\nThe following properties are available on every `Column` object returned by the table instance.\n\n- `id: String`\n  - The resolved column ID from either the column's `accessor` or the column's hard-coded `id` property\n- `visible: Boolean`\n  - The resolved visible state for the column, derived from the column's `show` property\n- `render: Function(type: String | Function | Component, ?props)`\n  - This function is used to render content in context of a column.\n  - If `type` is a string, will render using the `column[type]` renderer. React Table ships with default `Header` renderers. Other renderers like `Filter` are available via hooks like `useFilters`.\n  - If a function or component is passed instead of a string, it will be be passed the table instance and column model as props and is expected to return any valid JSX.\n- `getHeaderProps: Function(?props)`\n  - **Required**\n  - This function is used to resolve any props needed for this column's header cell.\n  - You can use the `getHeaderProps` hook to extend its functionality.\n  - Custom props may be passed. **NOTE: Custom props will override built-in table props, so be careful!**\n\n### Row Properties\n\nThe following additional properties are available on every `row` object returned by the table instance.\n\n- `cells: Array<Cell>`\n  - An array of `Cell` objects containing properties and functions specific to the row and column it belongs to.\n  - See [Cell Properties](#cell-properties) for more information\n- `values: Object<columnID: any>`\n  - A map of this row's **resolved** values by columnID, eg. `{ firstName: 'Tanner', lastName: 'Linsley' }`\n- `getRowProps: Function(?props)`\n  - **Required**\n  - This function is used to resolve any props needed for this row.\n  - You can use the `getRowProps` hook to extend its functionality.\n  - Custom props may be passed. **NOTE: Custom props will override built-in table props, so be careful!**\n\n### Cell Properties\n\nThe following additional properties are available on every `Cell` object returned in an array of `cells` on every row object.\n\n- `column: Column`\n  - The corresponding column object for this cell\n- `row: Row`\n  - The corresponding row object for this cell\n- `value: any`\n  - The **resolved** value for this cell.\n  - By default, this value is displayed on the table via the default `Cell` renderer. To override the way a cell displays\n- `getCellProps: Function(?props)`\n  - **Required**\n  - This function is used to resolve any props needed for this cell.\n  - You can use the `getCellProps` hook to extend its functionality.\n  - Custom props may be passed. **NOTE: Custom props will override built-in table props, so be careful!**\n- `render: Function(type: String | Function | Component, ?props)`\n  - This function is used to render content in context of a cell.\n  - If `type` is a string, will render using the `column[type]` renderer. React Table ships with a default `Cell` renderer. Other renderers like `Aggregated` are available via hooks like `useFilters`.\n  - If a function or component is passed instead of a string, it will be be passed the table instance and cell model as props and is expected to return any valid JSX.\n\n### Example\n\n```js\nfunction App() {\n  const columns = React.useMemo(\n    () => [\n      {\n        Header: 'Name',\n        columns: [\n          {\n            Header: 'First Name',\n            accessor: 'firstName',\n          },\n          {\n            Header: 'Last Name',\n            accessor: 'lastName',\n          },\n        ],\n      },\n    ],\n    []\n  )\n\n  const data = [\n    {\n      firstName: 'Tanner',\n      lastName: 'Linsley',\n    },\n    {\n      firstName: 'Shawn',\n      lastName: 'Wang',\n    },\n    {\n      firstName: 'Kent C.',\n      lastName: 'Dodds',\n    },\n    {\n      firstName: 'Ryan',\n      lastName: 'Florence',\n    },\n  ]\n\n  return <MyTable columns={columns} data={data} />\n}\n\nfunction MyTable({ columns, data }) {\n  const { getTableProps, headerGroups, rows, prepareRow } = useTable({\n    columns,\n    data,\n  })\n\n  return (\n    <table {...getTableProps()}>\n      <thead>\n        {headerGroups.map(headerGroup => (\n          <tr {...headerGroup.getHeaderGroupProps()}>\n            {headerGroup.headers.map(column => (\n              <th {...column.getHeaderProps()}>{column.render('Header')}</th>\n            ))}\n          </tr>\n        ))}\n      </thead>\n      <tbody>\n        {rows.map(\n          (row, i) =>\n            prepareRow(row) || (\n              <tr {...row.getRowProps()}>\n                {row.cells.map(cell => {\n                  return <td {...cell.getCellProps()}>{cell.render('Cell')}</td>\n                })}\n              </tr>\n            )\n        )}\n      </tbody>\n    </table>\n  )\n}\n```\n\n## `useSortBy`\n\n- Plugin Hook\n- Optional\n\n`useSortBy` is the hook that implements **row sorting**. It also support multi-sort (keyboard required).\n\n- Multi-sort is enabled by default\n- To sort the table via UI, attach the props generated from each column's `getSortByToggleProps()`, then click any of those elements.\n- To multi-sort the table via UI, hold `shift` while clicking on any of those same elements that have the props from `getSortByToggleProps()` attached.\n- To programmatically sort (or multi-sort) any column, use the `toggleSortBy` method located on the instance or each individual column.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `state[0].sortBy: Array<Object<id: columnID, desc: Bool>>`\n  - Must be **memoized**\n  - An array of sorting objects. If there is more than one object in the array, multi-sorting will be enabled. Each sorting object should contain an `id` key with the corresponding column ID to sort by. An optional `desc` key may be set to true or false to indicated ascending or descending sorting for that column. This information is stored in state since the table is allowed to manipulate the filter through user interaction.\n- `manualSorting: Bool`\n  - Enables sorting detection functionality, but does not automatically perform row sorting. Turn this on if you wish to implement your own sorting outside of the table (eg. server-side or manual row grouping/nesting)\n- `disableSorting: Bool`\n  - Disables sorting for every column in the entire table.\n- `disableMultiSort: Bool`\n  - Disables multi-sorting for the entire table.\n- `disableSortRemove: Bool`\n  - If true, the un-sorted state will not be available to columns once they have been sorted.\n- `disableMultiRemove: Bool`\n  - If true, the un-sorted state will not be available to multi-sorted columns.\n- `orderByFn: Function`\n  - Must be **memoizd**\n  - Defaults to the built-in [default orderBy function](TODO)\n  - This function is responsible for composing multiple sorting functions together for multi-sorting, and also handles both the directional sorting and stable-sorting tie breaking. Rarely would you want to override this function unless you have a very advanced use-case that requires it.\n- `sortTypes: Object<sortKey: sortType>`\n  - Must be **memoized**\n  - Allows overriding or adding additional sort types for columns to use. If a column's sort type isn't found on this object, it will default to using the [built-in sort types](TODO).\n  - For mor information on sort types, see [Sorting](TODO)\n\n### Column Options\n\nThe following options are supported on any `Column` object passed to the `columns` options in `useTable()`\n\n- `disableSorting: Bool`\n  - Optional\n  - Defualts to `false`\n  - If set to `true`, the sorting for this column will be disabled\n- `sortDescFirst: Bool`\n  - Optional\n  - Defaults to `false`\n  - If set to `true`, the first sort direction for this column will be descending instead of ascending\n- `sortInverted: Bool`\n  - Optional\n  - Defaults to `false`\n  - If set to `true`, the underlying sorting direction will be inverted, but the UI will not.\n  - This may be useful in situations where positive and negative connotation is inverted, eg. a Golfing score where a lower score is considered more positive than a higher one.\n- `sortType: String | Function`\n  - If a **function** is passed, it must be **memoized**\n  - Defaults to [`alphanumeric`](TODO)\n  - The resolved function from the this string/function will be used to sort the this column's data.\n    - If a `string` is passed, the function with that name located on either the custom `sortTypes` option or the built-in sorting types object will be used. If\n    - If a `function` is passed, it will be used.\n  - For mor information on sort types, see [Sorting](TODO)\n\n### Instance Properties\n\nThe following values are provided to the table `instance`:\n\n- `rows: Array<Row>`\n  - An array of **sorted** rows.\n- `preSortedRows: Array<Row>`\n  - The array of rows that were originally sorted.\n- `toggleSortBy: Function(ColumnID: String, descending: Bool, isMulti: Bool) => void`\n  - This function can be used to programmatically toggle the sorting for any specific column\n\n### Column Properties\n\nThe following properties are available on every `Column` object returned by the table instance.\n\n- `canSort: Bool`\n  - Denotes whether a column is sortable or not depending on if it has a valid accessor/data model or is manually disabled via an option.\n- `toggleSortBy: Function(descending, multi) => void`\n  - This function can be used to programmatically toggle the sorting for this column.\n  - This function is similar to the `instance`-level `toggleSortBy`, however, passing a columnID is not required since it is located on a `Column` object already.\n- `getSortByToggleProps: Function(props) => props`\n  - **Required**\n  - This function is used to resolve any props needed for this column's UI that is responsible for toggling the sort direction when the user clicks it.\n  - You can use the `getSortByToggleProps` hook to extend its functionality.\n  - Custom props may be passed. **NOTE: Custom props may override built-in sortBy props, so be careful!**\n- `sorted: Boolean`\n  - Denotes whether this column is currently being sorted\n- `sortedIndex: Int`\n  - If the column is currently sorted, this integer will be the index in the `sortBy` array from state that corresponds to this column.\n  - If this column is not sorted, the index will always be `-1`\n- `sortedDesc: Bool`\n  - If the column is currently sorted, this denotes whether the column's sort direction is descending or not.\n  - If `true`, the column is sorted `descending`\n  - If `false`, the column is sorted `ascending`\n  - If `undefined`, the column is not currently being sorted.\n\n### Example\n\n```js\nfunction Table({ columns, data }) {\n  // Set some default sorting state\n  const state = useTableState({ sortBy: [{ id: 'firstName', desc: true }] })\n\n  const { getTableProps, headerGroups, rows, prepareRow } = useTable(\n    {\n      columns,\n      data,\n    },\n    useSortBy // Use the sortBy hook\n  )\n\n  return (\n    <table {...getTableProps()}>\n      <thead>\n        {headerGroups.map(headerGroup => (\n          <tr {...headerGroup.getHeaderGroupProps()}>\n            {headerGroup.headers.map(column => (\n              // Add the sorting props to control sorting. For this example\n              // we can add them into the header props\n              <th {...column.getHeaderProps(column.getSortByToggleProps())}>\n                {column.render('Header')}\n                <span>\n                  {/* Add a sort direction indicator */}\n                  <span>\n                    {column.sorted ? (column.sortedDesc ? ' 🔽' : ' 🔼') : ''}\n                  </span>\n                  {/* Add a sort index indicator */}\n                  <span>({column.sorted ? column.sortedIndex + 1 : ''})</span>\n                </span>\n              </th>\n            ))}\n          </tr>\n        ))}\n      </thead>\n      <tbody>\n        {rows.map(\n          (row, i) =>\n            prepareRow(row) || (\n              <tr {...row.getRowProps()}>\n                {row.cells.map(cell => {\n                  return <td {...cell.getCellProps()}>{cell.render('Cell')}</td>\n                })}\n              </tr>\n            )\n        )}\n      </tbody>\n    </table>\n  )\n}\n```\n\n## `useFilters`\n\n- Plugin Hook\n- Optional\n\n`useFilters` is the hook that implements **row filtering**.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `state[0].filters: Object<columnID: filterValue>`\n  - Must be **memoized**\n  - An object of columnID's and their corresponding filter values. This information is stored in state since the table is allowed to manipulate the filter through user interaction.\n- `defaultFilter: String | Function`\n  - If a **function** is passed, it must be **memoized**\n  - Defaults to [`text`](TODO)\n  - The function (or resolved function from the string) will be used as the default/fallback filter method for every column that has filtering enabled.\n    - If a `string` is passed, the function with that name located on the `filterTypes` option object will be used.\n    - If a `function` is passed, it will be used.\n  - For mor information on filter types, see [Filtering](TODO)\n- `manualFilters: Bool`\n  - Enables filter detection functionality, but does not automatically perform row filtering.\n  - Turn this on if you wish to implement your own row filter outside of the table (eg. server-side or manual row grouping/nesting)\n- `disableFilters: Bool`\n  - Disables filtering for every column in the entire table.\n- `filterTypes: Object<filterKey: filterType>`\n  - Must be **memoized**\n  - Allows overriding or adding additional filter types for columns to use. If a column's filter type isn't found on this object, it will default to using the [built-in filter types](TODO).\n  - For mor information on filter types, see [Filtering](TODO)\n\n### Column Options\n\nThe following options are supported on any `Column` object passed to the `columns` options in `useTable()`\n\n- `Filter: Function | React.Component => JSX`\n  - **Required**\n  - Receives the table instance and column model as props\n  - Must return valid JSX\n  - This function (or component) is used to render this column's filter UI, eg.\n- `disableFilters: Bool`\n  - Optional\n  - If set to `true`, will disable filtering for this column\n- `filter: String | Function`\n  - Optional\n  - Defaults to [`text`](TODO)\n  - The resolved function from the this string/function will be used to filter the this column's data.\n    - If a `string` is passed, the function with that name located on either the custom `filterTypes` option or the built-in filtering types object will be used. If\n    - If a `function` is passed, it will be used directly.\n  - For mor information on filter types, see [Filtering](TODO)\n  - If a **function** is passed, it must be **memoized**\n\n### Instance Properties\n\nThe following values are provided to the table `instance`:\n\n- `rows: Array<Row>`\n  - An array of **filtered** rows.\n- `preFilteredRows: Array<Row>`\n  - The array of rows **used right before filtering**.\n  - Among many other use-cases, these rows are directly useful for building option lists in filters, since the resulting filtered `rows` do not contain every possible option.\n- `setFilter: Function(columnID, filterValue) => void`\n  - An instance-level function used to update the filter value for a specific column.\n- `setAllFilters: Function(filtersObject) => void`\n  - An instance-level function used to update the values for **all** filters on the table, all at once.\n\n### Column Properties\n\nThe following properties are available on every `Column` object returned by the table instance.\n\n- `canFilter: Bool`\n  - Denotes whether a column is filterable or not depending on if it has a valid accessor/data model or is manually disabled via an option.\n- `setFilter: Function(filterValue) => void`\n  - An column-level function used to update the filter value for this column\n- `filterValue: any`\n  - The current filter value for this column, resolved from the table state's `filters` object\n- `preFilteredRows: Array<row>`\n  - The array of rows that were originally passed to this columns filter **before** they were filtered.\n  - This array of rows can be useful if building faceted filter options.\n\n### Example\n\n```js\n// A great library for fuzzy filtering/sorting items\nimport matchSorter from 'match-sorter'\n\nconst state = useTableState({ filters: { firstName: 'tanner' } })\n\nconst filterTypes = React.useMemo(() => ({\n  // Add a new fuzzyText filter type.\n  fuzzyText: (rows, id, filterValue) => {\n    return matchSorter(rows, filterValue, { keys: [row => row[id] })\n  },\n  // Or, override the default text filter to use\n  // \"startWith\"\n  text: (rows, id, filterValue) => {\n    return rows.filter(row => {\n      const rowValue = row.values[id]\n      return rowValue !== undefined\n        ? String(rowValue)\n            .toLowerCase()\n            .startsWith(String(filterValue).toLowerCase())\n        : true\n    })\n  }\n}), [matchSorter])\n\n// Override the default column filter to be our new `fuzzyText` filter type\nconst defaultColumn = React.useMemo(() => ({\n  filter: 'fuzzyText'\n}))\n\nconst { rows } = useTable(\n  {\n    // state[0].groupBy === ['firstName']\n    state,\n    manualFilters: false,\n    disableFilters: false,\n    // Pass our custom filter types\n    filterTypes,\n    defaultColumn\n  },\n  useFilters\n)\n```\n\n## `useGroupBy`\n\n- Plugin Hook\n- Optional\n\n`useGroupBy` is the hook that implements **row grouping and aggregation**.\n\n- Each column's `getGroupByToggleProps()` function can be used to generate the props needed to make a clickable UI element that will toggle the grouping on or off for a specific column.\n- Instance and column-level `toggleGroupBy` functions are also made available for programmatic grouping.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `state[0].groupBy: Array<String>`\n  - Must be **memoized**\n  - An array of groupBy ID strings, controlling which columns are used to calculate row grouping and aggregation. This information is stored in state since the table is allowed to manipulate the groupBy through user interaction.\n- `manualGroupBy: Bool`\n  - Enables groupBy detection and functionality, but does not automatically perform row grouping.\n  - Turn this on if you wish to implement your own row grouping outside of the table (eg. server-side or manual row grouping/nesting)\n- `disableGrouping: Bool`\n  - Disables groupBy for the entire table.\n- `aggregations: Object<aggregationKey: aggregationFn>`\n  - Must be **memoized**\n  - Allows overriding or adding additional aggregation functions for use when grouping/aggregating row values. If an aggregation key isn't found on this object, it will default to using the [built-in aggregation functions](TODO)\n- `groupByFn: Function`\n  - Must be **memoized**\n  - Defaults to [`defaultGroupByFn`](TODO)\n  - This function is responsible for grouping rows based on the `state.groupBy` keys provided. It's very rare you would need to customize this function.\n\n### Column Options\n\nThe following options are supported on any `Column` object passed to the `columns` options in `useTable()`\n\n- `Aggregated: Function | React.Component => JSX`\n  - Optional\n  - Defaults to this column's `Cell` formatter\n  - Receives the table instance and cell model as props\n  - Must return valid JSX\n  - This function (or component) formats this column's value when it is being grouped and aggregated, eg. If this column was showing the number of visits for a user to a website and it was currently being grouped to show an **average** of the values, the `Aggregated` function for this column could format that value to `1,000 Avg. Visits`\n- `disableGrouping: Boolean`\n  - Defaults to `true`\n  - If `true`, this column is able to be grouped.\n\n### Instance Properties\n\nThe following values are provided to the table `instance`:\n\n- `rows: Array<Row>`\n  - An array of **grouped and aggregated** rows.\n- `preGroupedRows: Array<Row>`\n  - The array of rows originally used to create the grouped rows.\n- `toggleGroupBy: Function(columnID: String, ?set: Bool) => void`\n  - This function can be used to programmatically set or toggle the groupBy state for a specific column.\n\n### Column Properties\n\nThe following properties are available on every `Column` object returned by the table instance.\n\n- `canGroupBy: Boolean`\n  - If `true`, this column is able to be grouped.\n  - This is resolved from the column having a valid accessor / data model, and not being manually disabled via other `useGroupBy` related options\n- `grouped: Boolean`\n  - If `true`, this column is currently being grouped\n- `groupedIndex: Int`\n  - If this column is currently being grouped, this integer is the index of this column's ID in the table state's `groupBy` array.\n- `toggleGroupBy: Function(?set: Bool) => void`\n  - This function can be used to programmatically set or toggle the groupBy state fo this column.\n- `getGroupByToggleProps: Function(props) => props`\n  - **Required**\n  - This function is used to resolve any props needed for this column's UI that is responsible for toggling grouping when the user clicks it.\n  - You can use the `getGroupByToggleProps` hook to extend its functionality.\n  - Custom props may be passed. **NOTE: Custom props may override built-in sortBy props, so be careful!**\n\n### Row Properties\n\nThe following properties are available on every `Row` object returned by the table instance.\n\n- `groupByID: String`\n  - The column ID for which this row is being grouped.\n  - Will be `undefined` if the row is an original row from `data` and not a materialized one from the grouping.\n- `groupByVal: any`\n  - If the row is a materialized group row, this will be the grouping value that was used to create it.\n- `values: Object`\n  - Similar to a regular row, a materialized grouping row also has a `values` object\n  - This object contains the **aggregated** values for this row's sub rows\n- `subRows: Array<Row>`\n  - If the row is a materialized group row, this property is the array of materialized subRows that were grouped inside of this row.\n- `depth: Int`\n  - If the row is a materialized group row, this is the grouping depth at which this row was created.\n- `path: Array<String|Int>`\n  - Similar to normal `Row` objects, materialized grouping rows also have a path array. The keys inside it though are not integers like nested normal rows though. Since they are not rows that can be traced back to an original data row, they are given a unique path based on their `groupByVal`\n  - If a row is a grouping row, it will have a path like `['Single']` or `['Complicated', 'Anderson']`, where `Single`, `Complicated`, and `Anderson` would all be derived from their row's `groupByVal`.\n\n### Cell Properties\n\nThe following additional properties are available on every `Cell` object returned in an array of `cells` on every row object.\n\n- `grouped: Bool`\n  - If `true`, this cell is a grouped cell, meaning it contains a grouping value and should usually display and expander.\n- `repeatedValue: Bool`\n  - If `true`, this cell is a repeated value cell, meaning it contains a value that is already being displayed elsewhere (usually by a parent row's cell).\n  - Most of the time, this cell is not required to be displayed and can safely be hidden during rendering\n- `aggregated: Bool`\n  - If `true`, this cell's value has been aggregated and should probably be rendered with the `Aggregated` cell renderer.\n\n### Example\n\n```js\nfunction Table({ columns, data }) {\n  const {\n    getTableProps,\n    headerGroups,\n    rows,\n    prepareRow,\n    state: [{ groupBy, expanded }],\n  } = useTable(\n    {\n      columns,\n      data,\n    },\n    useGroupBy,\n    useExpanded // useGroupBy would be pretty useless without useExpanded ;)\n  )\n\n  // We don't want to render all 2000 rows for this example, so cap\n  // it at 20 for this use case\n  const firstPageRows = rows.slice()\n\n  return (\n    <table {...getTableProps()}>\n      <thead>\n        {headerGroups.map(headerGroup => (\n          <tr {...headerGroup.getHeaderGroupProps()}>\n            {headerGroup.headers.map(column => (\n              <th {...column.getHeaderProps()}>\n                {column.canGroupBy ? (\n                  // If the column can be grouped, let's add a toggle\n                  <span {...column.getGroupByToggleProps()}>\n                    {column.grouped ? '🛑' : '👊'}\n                  </span>\n                ) : null}\n                {column.render('Header')}\n              </th>\n            ))}\n          </tr>\n        ))}\n      </thead>\n      <tbody>\n        {firstPageRows.map(\n          (row, i) =>\n            prepareRow(row) || (\n              <tr {...row.getRowProps()}>\n                {row.cells.map(cell => {\n                  return (\n                    <td {...cell.getCellProps()}>\n                      {cell.grouped ? (\n                        // If it's a grouped cell, add an expander and row count\n                        <>\n                          <span\n                            style={{\n                              cursor: 'pointer',\n                            }}\n                            onClick={() => row.toggleExpanded()}\n                          >\n                            {row.isExpanded ? '👇' : '👉'}\n                          </span>\n                          {cell.render('Cell')} ({row.subRows.length})\n                        </>\n                      ) : cell.aggregated ? (\n                        // If the cell is aggregated, use the Aggregated\n                        // renderer for cell\n                        cell.render('Aggregated')\n                      ) : cell.repeatedValue ? null : ( // For cells with repeated values, render null\n                        // Otherwise, just render the regular cell\n                        cell.render('Cell')\n                      )}\n                    </td>\n                  )\n                })}\n              </tr>\n            )\n        )}\n      </tbody>\n    </table>\n  )\n}\n\n// This is a custom aggregator that\n// takes in an array of values and\n// returns the rounded median\nfunction roundedMedian(values) {\n  let min = values[0] || ''\n  let max = values[0] || ''\n\n  values.forEach(value => {\n    min = Math.min(min, value)\n    max = Math.max(max, value)\n  })\n\n  return Math.round((min + max) / 2)\n}\n\nfunction App() {\n  const columns = React.useMemo(\n    () => [\n      {\n        Header: 'Name',\n        columns: [\n          {\n            Header: 'First Name',\n            accessor: 'firstName',\n            // Use a two-stage aggregator here to first\n            // count the total rows being aggregated,\n            // then sum any of those counts if they are\n            // aggregated further\n            aggregate: ['sum', 'count'],\n            Aggregated: ({ value }) => `${value} Names`,\n          },\n          {\n            Header: 'Last Name',\n            accessor: 'lastName',\n            // Use another two-stage aggregator here to\n            // first count the UNIQUE values from the rows\n            // being aggregated, then sum those counts if\n            // they are aggregated further\n            aggregate: ['sum', 'uniqueCount'],\n            Aggregated: ({ value }) => `${value} Unique Names`,\n          },\n        ],\n      },\n      {\n        Header: 'Info',\n        columns: [\n          {\n            Header: 'Age',\n            accessor: 'age',\n            // Aggregate the average age of visitors\n            aggregate: 'average',\n            Aggregated: ({ value }) => `${value} (avg)`,\n          },\n          {\n            Header: 'Visits',\n            accessor: 'visits',\n            // Aggregate the sum of all visits\n            aggregate: 'sum',\n            Aggregated: ({ value }) => `${value} (total)`,\n          },\n          {\n            Header: 'Status',\n            accessor: 'status',\n          },\n          {\n            Header: 'Profile Progress',\n            accessor: 'progress',\n            // Use our custom roundedMedian aggregator\n            aggregate: roundedMedian,\n            Aggregated: ({ value }) => `${value} (med)`,\n          },\n        ],\n      },\n    ],\n    []\n  )\n\n  const data = React.useMemo(() => makeData(10000), [])\n\n  return <Table columns={columns} data={data} />\n}\n```\n\n## `useExpanded`\n\n- Plugin Hook\n- Optional\n\n`useExpanded` is the hook that implements **row expanding**. It is most often used with `useGroupBy` to expand grouped rows, but is not limited to that use-case. It supports expanding rows both via internal table state and also via a hard-coded key on the raw row model.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `state[0].expanded: Object<[pathIndex]: Boolean | ExpandedStateObject>`\n  - Must be **memoized**\n  - An nested object of expanded paths.\n  - A `pathIndex` can be set as the key and its value set to `true` to expand that row's subRows into view. For example, if `{ '3': true }` was passed as the `expanded` state, the **4th row in the original data array** would be expanded.\n  - For nested expansion, you may **use another object** instead of a Boolean to expand sub rows. For example, if `{ '3': { '5' : true }}` was passed as the `expanded` state, then the **6th subRow of the 4th row and the 4th row of the original data array** would be expanded.\n  - This information is stored in state since the table is allowed to manipulate the filter through user interaction.\n- `subRowsKey: String`\n  - Required\n  - Defaults to `subRows`\n  - React Table will use this key when materializing the final row object. It also uses this key to infer sub-rows from the raw data.\n  - See [Grouping and Aggregation](#grouping-and-aggregation) for more information\n- `paginateSubRows: Bool`\n  - Defaults to `true`\n  - If set to `false`, expanded rows will not be paginated. Thus, any expanded subrows would potentially increase the size of any given page by the amount of total expanded subrows on the page.\n- `manualExpandedKey: String`\n  - Defaults to `expanded`\n  - This string is used as the key to detect manual expanded state on any given row. For example, if a raw data row like `{ name: 'Tanner Linsley', friends: [...], expanded: true}` was detected, it would be forcibly expanded, regardless of state.\n\n### Instance Variables\n\nThe following values are provided to the table `instance`:\n\n- `rows: Array<Row>`\n  - An array of **sorted** rows.\n\n### Example\n\n```js\nconst state = useTableState({ expanded: { '3': true, '5': { '2': true } } })\n\nconst { rows } = useTable(\n  {\n    // state[0].sortBy === { '3': true, '5': { '2': true } }\n    state,\n  },\n  useExpanded\n)\n```\n\n## `usePagination`\n\n- Plugin Hook\n- Optional\n\n`usePagination` is the hook that implements **row pagination**. It can be used for both client-side pagination or server-side pagination. For more information on pagination, see [Pagination](TODO)\n\n> **NOTE** Some server-side pagination implementations do not use page index and instead use **token based pagination**! If that's the case, please use the `useTokenPagination` plugin instead.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `state[0].pageSize: Int`\n  - **Required**\n  - Defaults to `10`\n  - Determines the amount of rows on any given page\n- `state[0].pageIndex: Int`\n  - **Required**\n  - Defaults to `0`\n  - The index of the page that should be displayed via the `page` instance value\n- `pageCount: Int`\n  - **Required if `manualPagination` is set to `true`**\n  - If `manualPagination` is `true`, then this value used to determine the amount of pages available. This amount is then used to materialize the `pageOptions` and also compute the `canNextPage` values on the table instance.\n- `manualPagination: Bool`\n  - Enables pagination functionality, but does not automatically perform row pagination.\n  - Turn this on if you wish to implement your own pagination outside of the table (eg. server-side pagination or any other manual pagination technique)\n- `disablePageResetOnDataChange`\n  - Defaults to `false`\n  - Normally, any changes detected to `rows`, `state.filters`, `state.groupBy`, or `state.sortBy` will trigger the `pageIndex` to be reset to `0`\n  - If set to `true`, the `pageIndex` will not be automatically set to `0` when these dependencies change.\n\n### Instance Variables\n\nThe following values are provided to the table `instance`:\n\n- `pages: Array<page>`\n  - An array of every generated `page`, each containing its respective rows.\n- `page: Array<row>`\n  - An array of rows for the **current** page, determined by the current `pageIndex` value.\n- `pageCount: Int`\n  - If `manualPagination` is set to `false`, this is the total amount of pages available in the table based on the current `pageSize` value\n  - if `manualPagination` is set to `true`, this is merely the same `pageCount` option that was passed in the table options.\n- `pageOptions: Array<Int>`\n  - An array of zero-based index integers corresponding to available pages in the table.\n  - This can be useful for generating things like select interfaces for the user to select a page from a list, instead of manually paginating to the desired page.\n- `canPreviousPage: Bool`\n  - If there are pages and the current `pageIndex` is greater than `0`, this will be `true`\n- `canNextPage:`\n  - If there are pages and the current `pageIndex` is less than `pageCount`, this will be `true`\n- `gotoPage: Function(pageIndex)`\n  - This function, when called with a valid `pageIndex`, will set `pageIndex` to that value.\n  - If the passed index is outside of the valid `pageIndex` range, then this function will do nothing.\n- `previousPage: Function`\n  - This function decreases `state.pageIndex` by one.\n  - If there are no pages or `canPreviousPage` is false, this function will do nothing.\n- `nextPage: Function`\n  - This function increases `state.pageIndex` by one.\n  - If there are no pages or `canNextPage` is false, this function will do nothing.\n- `setPageSize: Function(pageSize)`\n  - This function sets `state.pageSize` to the new value.\n  - As a result of a pageSize change, a new `state.pageIndex` is also calculated. It is calculated via `Math.floor(currentTopRowIndex / newPageSize)`\n- `pageIndex: Int`\n  - This is the resolved `state.pageIndex` value.\n- `pageSize: Int`\n  - This is the resolved `state.pageSize` value.\n\n### Example\n\n```js\nconst state = useTableState({ pageSize: 20, pageIndex: 1 })\n\nconst { rows } = useTable(\n  {\n    // state[0] === { pageSize: 20, pageIndex: 1 }\n    state,\n  },\n  usePagination\n)\n```\n\n## `useTokenPagination`\n\n- Plugin Hook\n- Optional\n\n`useTokenPagination` is the hook that **aids in implementing row pagination using tokens**. It is useful for server-side pagination implementations that use **tokens** instead of page index. For more information on pagination, see [Pagination](TODO)\n\n> Documentation Coming Soon...\n\n## `useTableState`\n\n- Optional\n\n`useTableState` is a hook that allows you to hoist the table state out of the table into your own code. You should use this hook if you need to:\n\n- Know about the internal table state\n- React to changes to the internal table state\n- Manually control or override the internal table state\n\nSome common use cases for this hook are:\n\n- Reacting to `pageIndex` and `pageSize` changes for server-side pagination to fetch new data\n- Disallowing specific states via a custom state reducer\n- Enabling parent/unrelated components to manipulate the table state\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `initialState: Object`\n  - Optional\n  - The initial state object for the table.\n  - This object is **merged over the `defaultState` object** (eg. `{...defaultState, ...initialState}`) that React Table and its hooks use to register default state to produce the final initial state object passed to the resolved `useState` hook.\n- `overrides: Object`\n  - Optional\n  - Must be **memoized**\n  - This object is **merged over the current table state** (eg. `{...state, ...overrides}`) to produce the final state object that is then passed to the `useTable` options\n- `options: Object`\n  - `reducer: Function(oldState, newState) => finalState`\n    - Optional\n    - Inspired by Kent C. Dodd's [State Reducer Pattern](https://kentcdodds.com/blog/the-state-reducer-pattern-with-react-hooks)\n    - With every `setState` call to a table state (even internally), this reducer is called and is allowed to modify the final state object for updating.\n    - It is passed the `oldState`, the `newState`, and an action `type`.\n  - `useState`\n    - Optional\n    - Defaults to `React.useState`\n    - This function, if defined will be used as the state hook internally instead of the default `React.useState`. This can be useful for implementing custom state storage hooks like useLocalStorage, etc.\n\n### Instance Variables\n\n- `tableStateTuple: [tableState, setTableState]`\n  - Similar in structure to the result of `React.useState`\n  - **Memoized**. This tuple array will not change between renders unless state or `useTableState` options change.\n  - `tableState: Object`\n    - This is the final state object of the table, which is the product of the `initialState`, `overrides` and the `reducer` options (if applicable)\n  - `setTableState: Function(updater, type) => void`\n    - This function is used both internally by React Table, and optionally by you (the developer) to update the table state programmatically.\n    - `updater: Function`\n      - This function signature is **almost** (see next point) identical to the functional API exposed by `React.setState`. It is passed the previous state and is expected to return a new version of the state.\n      - **NOTE: `updater` must be a function. Passing a replacement object is not supported as it is with React.useState**\n    - `type: String`\n      - The [action type](TODO) corresponding to what action being taken against the state.\n\n### Example\n\n```js\nexport default function MyTable({ manualPageIndex }) {\n  // This is the initial state for our table\n  const initialState = { pageSize: 10, pageIndex: 0 }\n\n  // Here, we can override the pageIndex\n  // regardless of the internal table state\n  const overrides = React.useMemo(() => ({\n    pageIndex: manualPageIndex,\n  }))\n\n  const state = useTableState(initialState, overrides)\n\n  // You can use effects to observe changes to the state\n  React.useEffect(\n    () => {\n      console.log('Page Size Changed!', initialState.pageSize)\n    },\n    [initialState.pageSize]\n  )\n\n  const { rows } = useTable({\n    state,\n  })\n}\n```\n\n# Guides\n\n## Sorting\n\n### Client-Side Sorting\n\n- [Example]()\n\nClient-side sorting can be accomplished by using the `useSortBy` plugin hook. Start by importing the hook from `react-table`:\n\n```diff\n-import { useTable } from 'react-table'\n+import { useTable, useSortBy } from 'react-table'\n```\n\nNext, add the `useSortBy` hook to your `useTable` hook and add the necessary UI pieces we need to make sorting work:\n\n```diff\nfunction MyTable() {\n  const { getTableProps, headerGroups, rows, prepareRow } = useTable(\n    {\n      data,\n      columns,\n    },\n-   useSortBy\n+   useSortBy\n  )\n\n  return (\n    <table {...getTableProps()}>\n      <thead>\n        {headerGroups.map(headerGroup => (\n          <tr {...headerGroup.getHeaderGroupProps()}>\n            {headerGroup.headers.map(column => (\n-             <th {...column.getHeaderProps()}>\n+             <th {...column.getHeaderProps(column.getSortByToggleProps())}>\n                {column.render('Header')}\n+               <span>\n+                 {column.sorted ? (column.sortedDesc ? ' 🔽' : ' 🔼') : ''}\n+               </span>\n              </th>\n            ))}\n          </tr>\n        ))}\n      </thead>\n      <tbody>\n        {rows.map(\n          (row, i) =>\n            prepareRow(row) || (\n              <tr {...row.getRowProps()}>\n                {row.cells.map(cell => {\n                  return <td {...cell.getCellProps()}>{cell.render('Cell')}</td>\n                })}\n              </tr>\n            )\n        )}\n      </tbody>\n    </table>\n  )\n}\n```\n\n### Server-Side Sorting\n\nServer-side sorting can be accomplished by using the `useSortBy` plugin hook in **controlled** mode along with the `useTableState` hook. Start by importing these hooks from `react-table`:\n\n```diff\n-import { useTable } from 'react-table'\n+import { useTable, useSortBy, useTableState } from 'react-table'\n```\n\nNext, add the `useSortBy` and `useTableState` hooks to your `useTable` hook, configure the table state, then add the necessary UI pieces we need to make sorting work:\n\n```diff\nfunction MyTable(data, columns, fetchData) {\n\n+ const state = useTableState()\n+ const [{ sortBy }] = state\n\n+ React.useEffect(() => {\n+   // When sorting changes, trigger your parent component\n+   // or hook to fetch new data with the table state\n+   fetchData(state[0])\n+ }, [sortBy])\n\n  const { getTableProps, headerGroups, rows, prepareRow } = useTable(\n    {\n      data,\n      columns,\n+     state,\n+     manualSorting: true\n    },\n-   useSortBy\n+   useSortBy\n  )\n\n  return (\n    <table {...getTableProps()}>\n      <thead>\n        {headerGroups.map(headerGroup => (\n          <tr {...headerGroup.getHeaderGroupProps()}>\n            {headerGroup.headers.map(column => (\n-             <th {...column.getHeaderProps()}>\n+             <th {...column.getHeaderProps(column.getSortByToggleProps())}>\n                {column.render('Header')}\n+               <span>\n+                 {column.sorted ? (column.sortedDesc ? ' 🔽' : ' 🔼') : ''}\n+               </span>\n              </th>\n            ))}\n          </tr>\n        ))}\n      </thead>\n      <tbody>\n        {rows.map(\n          (row, i) =>\n            prepareRow(row) || (\n              <tr {...row.getRowProps()}>\n                {row.cells.map(cell => {\n                  return <td {...cell.getCellProps()}>{cell.render('Cell')}</td>\n                })}\n              </tr>\n            )\n        )}\n      </tbody>\n    </table>\n  )\n}\n```\n\n<!--\n\n## Client Side Pagination\n\nTo add client side pagination, use the `usePagination` hook:\n\n```diff\n// Import React\nimport React from 'react'\n\n// Import React Table\nimport {\n  useTable,\n  useGroupBy,\n  useFilters,\n  useSortBy,\n  useExpanded,\n+  usePagination,\n} from 'react-table'\n\n// Create a component to render your table\nfunction MyTable(props) {\n  // Use the useTable hook to create your table configuration\n  const instance = useTable(\n    props,\n    useGroupBy,\n    useFilters,\n    useSortBy,\n    useExpanded,\n+   usePagination,\n  )\n\n  // Use the state and functions returned from useTable to build your UI\n  const {\n    getTableProps,\n    headerGroups,\n    rows,\n    getRowProps,\n    prepareRow,\n+   pageOptions,\n+   page,\n+   state: [{ pageIndex, pageSize }],\n+   gotoPage,\n+   previousPage,\n+   nextPage,\n+   setPageSize,\n+   canPreviousPage,\n+   canNextPage,\n  } = instance\n\n  // Render the UI for your table\n  return (\n    <div>\n      <table {...getTableProps()}>\n        ...\n      </table>\n+     <div>\n+       <button onClick={() => previousPage()} disabled={!canPreviousPage}>\n+         Previous Page\n+       </button>\n+       <button onClick={() => nextPage()} disabled={!canNextPage}>\n+         Next Page\n+       </button>\n+       <div>\n+         Page{' '}\n+         <em>\n+           {pageIndex + 1} of {pageOptions.length}\n+         </em>\n+       </div>\n+       <div>Go to page:</div>\n+       <input\n+         type=\"number\"\n+         defaultValue={pageIndex + 1 || 1}\n+         onChange={e => {\n+           const page = e.target.value ? Number(e.target.value) - 1 : 0\n+           gotoPage(page)\n+         }}\n+       />\n+       <select\n+         value={pageSize}\n+         onChange={e => {\n+           setPageSize(Number(e.target.value))\n+         }}\n+       >\n+         {pageSizeOptions.map(pageSize => (\n+           <option key={pageSize} value={pageSize}>\n+             Show {pageSize}\n+           </option>\n+         ))}\n+       </select>\n+     </div>\n    </div>\n  )\n}\n```\n\n## Server Side Pagination\n\nTo implement server-side pagination, use the `useTableState` and `usePagination` hooks:\n\n```diff\n\n``` -->\n\n<!-- # Setup\n\nTo begin using React Table you will need to start with a UI to render it. Below is a very basic component that should serve as a good starting point for most projects:\n\n```js\n// Import React\nimport React from 'react'\n\n// Import React Table\nimport {\n  useTable,\n  useGroupBy,\n  useFilters,\n  useSortBy,\n  useExpanded,\n  usePagination,\n} from 'react-table'\n\n// Create a component to render your table\nexport default function MyTable(props) {\n  // Use the useTable hook to create your table configuration\n  const instance = useTable(\n    props,\n    useGroupBy,\n    useFilters,\n    useSortBy,\n    useExpanded,\n    usePagination\n  )\n\n  // Use the state and functions returned from useTable to build your UI\n  const {\n    getTableProps,\n    headerGroups,\n    rows,\n    getRowProps,\n    pageOptions,\n    page,\n    state: [{ pageIndex, pageSize }],\n    gotoPage,\n    prepareRow,\n    previousPage,\n    nextPage,\n    setPageSize,\n    canPreviousPage,\n    canNextPage,\n  } = instance\n\n  // Render the UI for your table\n  return (\n    <div>\n      <table {...getTableProps()}>\n        <thead>\n          {headerGroups.map(headerGroup => (\n            <tr {...headerGroup.getRowProps()}>\n              {headerGroup.headers.map(column => (\n                <th {...column.getHeaderProps()}>{column.render('Header')}</th>\n              ))}\n            </tr>\n          ))}\n        </thead>\n        <tbody>\n          {page.map(\n            (row, i) =>\n              prepareRow(row) || (\n                <tr {...row.getRowProps()}>\n                  {row.cells.map(cell => {\n                    return (\n                      <td {...cell.getCellProps()}>{cell.render('Cell')}</td>\n                    )\n                  })}\n                </tr>\n              )\n          )}\n        </tbody>\n      </table>\n      <div>\n        <button onClick={() => previousPage()} disabled={!canPreviousPage}>\n          Previous Page\n        </button>\n        <button onClick={() => nextPage()} disabled={!canNextPage}>\n          Next Page\n        </button>\n        <div>\n          Page{' '}\n          <em>\n            {pageIndex + 1} of {pageOptions.length}\n          </em>\n        </div>\n        <div>Go to page:</div>\n        <input\n          type=\"number\"\n          defaultValue={pageIndex + 1 || 1}\n          onChange={e => {\n            const page = e.target.value ? Number(e.target.value) - 1 : 0\n            gotoPage(page)\n          }}\n        />\n        <select\n          value={pageSize}\n          onChange={e => {\n            setPageSize(Number(e.target.value))\n          }}\n        >\n          {pageSizeOptions.map(pageSize => (\n            <option key={pageSize} value={pageSize}>\n              Show {pageSize}\n            </option>\n          ))}\n        </select>\n      </div>\n    </div>\n  )\n}\n```\n\nYou can then use your table like so:\n\n```js\n\nimport MyTable from './MyTable'\n\nfunction MyApp () {\n  const columns = React.useMemo(() => [{\n    Header: \"Name\",\n    columns: [\n      {\n        Header: \"First Name\",\n        accessor: \"firstName\",\n      },\n      {\n        Header: \"Last Name\",\n        accessor: \"lastName\",\n      }\n    ]\n  }], [])\n\n  const data = [{\n    firstName: 'Tanner',\n    lastName: 'Linsley'\n  }, {\n    firstName: 'Shawn',\n    lastName: 'Wang'\n  }, {\n    firstName: 'Kent C.',\n    lastName: 'Dodds'\n  }, {\n    firstName: 'Ryan',\n    lastName: 'Florence'\n  }]\n\n  return <MyTable columns={columns} data={data} />\n``` -->\n\n## Contributing\n\nTo suggest a feature, create an issue if it does not already exist.\nIf you would like to help develop a suggested feature follow these steps:\n\n- Fork this repo\n- Install dependencies with `$ yarn`\n- Link `react-table` locally with `$ yarn link`\n- Auto-build files as you edit with `$ yarn start`\n- Implement your changes and tests to files in the `src/` directory\n- In any example directory, link to the local `react-table` with `$ yarn link react-table`\n- Follow example directions for running. Usually just `$ yarn && yarn start`\n- Document your changes in the root `README.md`\n- To stage a commit, run `yarn commit`\n- Submit PR for review\n","licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.0-alpha.17","dist":{"shasum":"1ef8234047094e2c7096dc485aa8d59372fef5ce","integrity":"sha512-Hxvn5mZQNnNSCumMnq9r4rjezGRwWKsIcO1uOiUz1sRlhxBMPum93n+eWOODEbrqg7TpZ3LFhtGSDIq/XrusVA==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.0-alpha.17.tgz","fileCount":36,"unpackedSize":458944,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdQd2rCRA9TVsSAnZWagAAgQYP/jfUdFKk+8Uge9gUleRD\noI3S6nW+hYbW0PSZtV33XzMXyZxXzIHbQ3Wrw+D2KfZocuNUFkWdpolopjIB\nbvjLtSAyCbl5YjQFoFBkICoJrHa4l80vFCXblVAfZWY7VDPS1BQmgpT6lPlE\n+Fbmav5XA3o4lUrtt2Z8H3t0AYIiKIk/ATQwuKfQbh5Dnz5bWHAvksO79yIP\nc5PPNi3HQENbaEyUw5SzWYK5G3l2/Y/vKvhsUBtfFfWgB8ConpF+PDH17dEz\n5YpYkvM70/LXMTJoKphqzx0SuPGEHYp1Xq8wpKIbpPpJaMkCt7s2Rcfz3sfZ\n9fLEARWIju+JwB8rWOR321WlzAkcDpx4X1cMuKv72PNmj2KKcDUO4du/SpHp\nqZay1A0Fuyga0vSODtL75KbbwHxH7oGhOnSzWi7tsKp2gqAkxBxKSnnDnNLR\nMbt+3EAGFSLTtZYh/sRU8d1yqV14Yvqbor8vcZrhEBPdA98BZMzbNhjSSKfF\nXq5IGXkS1NxZdki999wASU7FnG+FZtVvpV/Or0HQk7G2MZBDh126S8hpX9i9\nlqbLCL/U5uaizWKO4hf9/DnQqWIj/IdW2LF3X0YiJxc7Rpnlih2Z0VXkUFt0\n/XJngmZMDbVH93nBp4gVpjXVN53aZq3vanANbhTpWHFT4f7Eqop7o3VG+zdb\nErMQ\r\n=qHBP\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC3kOgv5+RHPmxnzhf03/kSYvgqRvhS4BH36pvLOBPjpgIgO36Dj8Njj6fXe6hkiAp8R0Sa7zcRfg359kCmT0Ib8H0="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.0-alpha.17_1564597674576_0.6569457558623668"},"_hasShrinkwrap":false},"7.0.0-alpha.18":{"name":"react-table","version":"7.0.0-alpha.18","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"dist/index.js","module":"dist/index.es.js","jsnext:main":"dist/index.es.js","scripts":{"commit":"git add . && git-cz","test":"is-ci 'test:ci' 'test:dev'","test:dev":"jest --watch","test:ci":"jest","build":"rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier ./**{md,js,jsx,tsx} --write"},"peerDependencies":{"prop-types":"^15.5.0","react":"^16.8.3","react-dom":"^16.8.3"},"devDependencies":{"@babel/core":"^7.5.5","@babel/plugin-proposal-class-properties":"^7.5.5","@babel/preset-env":"^7.5.5","@babel/preset-react":"^7.0.0","@babel/runtime":"^7.5.5","@commitlint/cli":"^8.1.0","@commitlint/config-conventional":"^8.1.0","@svgr/rollup":"^4.3.2","@testing-library/dom":"^5.6.0","@testing-library/jest-dom":"^4.0.0","@testing-library/react":"^8.0.7","babel-eslint":"9.x","commitizen":"^4.0.3","core-js":"3","cross-env":"^5.2.0","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^8.0.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.14.3","eslint-plugin-react-hooks":"1.6.1","eslint-plugin-standard":"^4.0.0","husky":"^3.0.2","is-ci-cli":"^1.1.1","jest":"^24.8.0","jest-cli":"^24.8.0","jest-runner-eslint":"^0.7.4","jest-watch-select-projects":"^0.1.2","jest-watch-typeahead":"^0.3.1","lint-staged":"^9.2.1","prop-types":"^15.5.0","react":"^16.8.3","react-dom":"^16.8.3","rollup":"^0.68.0","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^9.1.3","rollup-plugin-node-resolve":"^4.0.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-uglify":"^6.0.2","snapshot-diff":"^0.5.2"},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"browserslist":"> 0.25%, not dead","readmeFilename":"README.md","readme":"# React Table\n\nHooks for building **lightweight, fast and extendable datagrids** for React\n\n<a href=\"https://travis-ci.org/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://travis-ci.org/tannerlinsley/react-table.svg?branch=master\" />\n</a>\n<a href=\"https://npmjs.com/package/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-table.svg\" />\n</a>\n<a href=\"https://spectrum.chat/react-table\">\n  <img alt=\"Join the community on Spectrum\" src=\"https://withspectrum.github.io/badge/badge.svg\" />\n</a>\n<a href=\"https://github.com/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-table.svg?style=social&label=Star\" />\n</a>\n<a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n\n<br />\n<br />\n\n## Features\n\n- Lightweight (4kb - 10kb depending on features and tree-shaking)\n- Headless (100% customizable, Bring-your-own-UI)\n- Client-side & Server-side pagination support\n- Sorting (Multi and Stable)\n- Filters\n- Pivoting & Aggregation\n- Row Selection\n- Row Expansion\n- Fully controllable\n- Extensible via hook-based plugin system\n- <a href=\"https://medium.com/@tannerlinsley/why-i-wrote-react-table-and-the-problems-it-has-solved-for-nozzle-others-445c4e93d4a8#.axza4ixba\" target=\"\\_parent\">\"Why I wrote React Table and the problems it has solved for Nozzle.io\"</a> by Tanner Linsley\n\n## [See Examples](#examples)\n\n## Sponsors\n\n**React Table v7** is being built and maintained by me, @tannerlinsley and I am always in need of more Patreon support to keep this project afloat. If you would like to contribute to my Patreon goal for v7 and beyond, [visit my Patreon and help me out!](https://patreon.com/tannerlinsley).\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/platinum.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://tryretool.com/?utm_source=sponsor&utm_campaign=react_table\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-retool.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/platinum-placeholder.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/gold.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://nozzle.io\" target=\"_blank\">\n          <img width=\"300\" src=\"https://nozzle.io/img/logo-blue.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://zappi.com/web\" target=\"_blank\">\n          <img width=\"300\" src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-zappi.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/gold-placeholder.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n# Documentation\n\n- [Installation](#installation)\n- [Concepts](#concepts)\n- [Setup](#setup)\n- [Contributing](#contributing)\n\n# Installation\n\nInstall React Table as a dependency using `npm` or `yarn`\n\n```bash\n# NPM\n$ npm install react-table\n\n# Yarn\n$ yarn add react-table\n```\n\nTo import React Table:\n\n```js\nimport {\n  useTable,\n  useGroupBy,\n  useFilters,\n  useSortBy,\n  useExpanded,\n  usePagination,\n  ...\n} from 'react-table'\n```\n\n# Examples\n\n- [Basic - Client Side](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/master/examples/basic-client-side)\n- [Sorting - Client Side](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/master/examples/sorting-client-side)\n- [Filtering - Client Side](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/master/examples/filtering-client-side)\n- [Grouping - Client Side](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/master/examples/grouping-client-side)\n- [Pagination - Client Side](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/master/examples/pagination-client-side)\n- [Row Selection - Client Side](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/master/examples/row-selection-client-side)\n- [Expanding - Client Side](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/master/examples/expanding-client-side)\n- [Sub Components](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/master/examples/sub-components)\n\n# Concepts\n\n## React Table is a \"headless\" UI library\n\nReact Table is a headless utility, which means out of the box, it doesn't render or supply any actual UI elements. You are in charge of utilizing the state and callbacks of the hooks provided by this library to render your own table markup. [Read this article to understand why React Table is built this way.](https://medium.com/merrickchristensen/headless-user-interface-components-565b0c0f2e18). If you don't want to, then here's a quick rundown anyway:\n\n- Separation of Concerns - Not that superficial kind you read about all the time. The real kind. React Table as a library honestly has no business being in charge of your UI. The look, feel, and overall experience of your table is what makes your app or product great. The less React Table gets in the way of that, the better!\n- Maintenance - By removing the massive (and seemingly endless) API surface area required to support every UI use-case, React Table can remain small, easy-to-use and simple to update/maintain.\n- Extensibility - UI presents countless edge cases for a library simply because it's a creative medium, and one where every developer does things differently. By not dictating UI concerns, React Table empowers the developer to design and extend the UI based on their unique use-case.\n\n## The React Table API\n\nAt the heart of every React Table is a table `instance` object. This object contains everything needed to build a table and interact with it's state. This includes, but is not limited to:\n\n- Columns\n- Materialized Data\n- Sorting\n- Filtering\n- Grouping\n- Pagination\n- Expanded State\n- Any functionality provided by custom plugin hooks, too!\n\n## Using Hooks for configuration, state and lifecycle\n\nReact Table uses React Hooks both internally and externally for 100% of its configuration and lifecycle management. Naturally, this is what allows React Table to be headless and lightweight while still having a concise and simple API.\n\nReact Table is essentially a compatible collection of **custom React hooks**:\n\n- The primary React Table hook\n  - [`useTable`](#usetable)\n- Plugin Hooks\n  - Core Plugin Hooks\n    - [`useTableState`](#useTableState)\n    - [`useGroupBy`](#useGroupBy)\n    - [`useFilters`](#useFilters)\n    - [`useSortBy`](#useSortBy)\n    - [`useExpanded`](#useExpanded)\n    - [`usePagination`](#usePagination)\n    - [`useTokenPagination`](#useTokenPagination)\n  - Layout Plugin Hooks\n    - [`useFlexLayout`](#useFlexLayout)\n    - [`useAbsoluteLayout`](#useAbsoluteLayout) (coming soon!)\n- Custom Plugin Hooks\n  - Get your custom plugin hook listed here!\n\n### Hook Usage\n\n`useTable` is the **primary** hook used to build a React Table. It serves as the starting point for **every option and every plugin hook** that React Table supports. The options passed into `useTable` are supplied to every plugin hook after it in the order they are supplied, eventually resulting a final `instance` object that you can use to build your table UI and interact with the table's state.\n\n```js\nconst instance = useTable(\n  {\n    data: [...],\n    columns: [...],\n  },\n  useGroupBy,\n  useFilters,\n  useSortBy,\n  useExpanded,\n  usePagination\n)\n```\n\n### The stages of a React Table\n\n1. `useTable` is called. A table instance is created.\n1. The `instance.state` is resolved from either a custom user state or an automatically generated one.\n1. A collection of plugin points is created at `instance.hooks`.\n1. Each plugin is given the opportunity to add hooks to `instance.hook`.\n1. As the `useTable` logic proceeds to run, each plugin hook type is used at a specific point in time with each individual hook function being executed the order it was registered.\n1. The final instance object is returned from `useTable`, which the developer then uses to construct their table.\n\nThis multi-stage process is the secret sauce that allows React Table plugin hooks to work together and compose nicely, while not stepping on each others toes.\n\nTo dive deeper into plugins, see [Plugins](TODO) and the [Plugin Guide](TODO)\n\n### Plugin Hook Order & Consistency\n\nThe order and usage of plugin hooks must follow [The Laws of Hooks](TODO), just like any other custom hook. They must always be unconditionally called in the same order.\n\n> **NOTE: In the event that you want to programmatically enable or disable plugin hooks, most of them provide options to disable their functionality, eg. `options.disableSorting`**\n\n### Option Memoization\n\nReact Table relies on memoization to determine when state and side effects should update or be calculated. This means that every option you pass to `useTable` should be memoized either via `React.useMemo` (for objects) or `React.useCallback` (for functions).\n\n# API\n\n## `useTable`\n\n- Required\n\n`useTable` is the root hook for React Table. To use it, pass it with an options object with at least a `columns` and `rows` value, followed by any React Table compatible hooks you want to use.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `columns: Array<Column>`\n  - Required\n  - Must be **memoized**\n  - The core columns configuration object for the entire table.\n  - Supports nested `columns` arrays via the column's `columns` key, eg. `[{ Header: 'My Group', columns: [...] }]`\n- `data: Array<any>`\n  - Required\n  - Must be **memoized**\n  - The data array that you want to display on the table.\n- `state: TableStateTuple[stateObject, stateUpdater]`\n  - Optional\n  - Must be **memoized** table state tuple. See [`useTableState`](#usetablestate) for more information.\n  - The state/updater pair for the table instance. You would want to override this if you plan on controlling or hoisting table state into your own code.\n  - Defaults to using an internal `useTableState()` instance if not defined.\n  - See [Controlling and Hoisting Table State](#controlling-and-hoisting-table-state)\n- `defaultColumn: Object`\n  - Optional\n  - Defaults to `{}`\n  - The default column object for every column passed to React Table.\n  - Column-specific properties will override the properties in this object, eg. `{ ...defaultColumn, ...userColumn }`\n  - This is particularly useful for adding global column properties. For instance, when using the `useFilters` plugin hook, add a default `Filter` renderer for every column, eg.`{ Filter: MyDefaultFilterComponent }`\n- `debug: Bool`\n  - Optional\n  - A flag to turn on debug mode.\n  - Defaults to `false`\n\n### `column` Options\n\nThe following options are supported on any column object you can pass to `columns`.\n\n- `accessor: String | Function`\n  - **Required**\n  - This string/function is used to build the data model for your column.\n  - The data returned by an accessor should be **primitive** and sortable.\n  - If a string is passed, the column's value will be looked up on the original row via that key, eg. If your column's accessor is `firstName` then its value would be read from `row['firstName']`. You can also specify deeply nested values with accessors like `info.hobbies` or even `address[0].street`\n  - If a function is passed, the column's value will be looked up on the original row using this accessor function, eg. If your column's accessor is `row => row.firstName`, then its value would be determined by passing the row to this function and using the resulting value.\n- `id: String`\n  - **Required if `accessor` is a function**\n  - This is the unique ID for the column. It is used by reference in things like sorting, grouping, filtering etc.\n  - If a **string** accessor is used, it defaults as the column ID, but can be overridden if necessary.\n- `columns: Array<Column>`\n  - Optional\n  - A nested array of columns.\n  - If defined, the column will act as a header group. Columns can be recursively nested as much as needed.\n- `show: Boolean | Function`\n  - Optional\n  - Defaults to `true`\n  - If set to `false`, the column will be hidden.\n  - If set to a `function`, it will be called with the current table instance and can then return `true` or `false`.\n  - The data model for hidden columns is still calculated including sorting, filters, and grouping.\n- `Header: String | Function | React.Component => JSX`\n  - Optional\n  - Defaults to `({ id }) => id`\n  - Receives the table instance and column model as props\n  - Must either be a **string or return valid JSX**\n  - If a function/component is passed, it will be used for formatting the header value, eg. You can use a `Header` function to dynamically format the header using any table or column state.\n- `Cell: Function | React.Component => JSX`\n  - Optional\n  - Defaults to `({ value }) => value`\n  - Receives the table instance and cell model as props\n  - Must return valid JSX\n  - This function (or component) is primarily used for formatting the column value, eg. If your column accessor returns a date object, you can use a `Cell` function to format that date to a readable format.\n\n### Instance Properties\n\nThe following properties are available on the table instance returned from `useTable`\n\n- `headerGroups: Array<HeaderGroup>`\n  - An array of normalized header groups, each containing a flattened array of final column objects for that row.\n  - See [Header Group Properties](#headergroup-properties) for more information\n- `columns: Array<Column>`\n  - A **flat** array of all final column objects computed from the original columns configuration option.\n  - See [Column Properties](#column-properties) for more information\n- `headers[] Array<Column>`\n  - A **nested** array of final column objects, similar in structure to the original columns configuration option.\n  - See [Column Properties](#column-properties) for more information\n- `rows: Array<Row>`\n  - An array of **materialized row objects** from the original `data` array and `columns` passed into the table options\n  - See [Row Properties](#row-properties) for more information\n- `getTableProps: Function(?props)`\n  - **Required**\n  - This function is used to resolve any props needed for your table wrapper.\n  - Custom props may be passed. **NOTE: Custom props will override built-in table props, so be careful!**\n- `prepareRow: Function(Row)`\n  - **Required**\n  - This function is responsible for lazily preparing a row for rendering. Any row that you intend to render in your table needs to be passed to this function **before every render**.\n  - **Why?** Since table data could potentially be very large, it can become very expensive to compute all of the necessary state for every row to be rendered regardless if it actually is rendered or not (for example if you are paginating or virtualizing the rows, you may only have a few rows visible at any given moment). This function allows only the rows you intend to display to be computed and prepped with the correct state.\n- `rowPaths: Array<string>`\n  - An array containing the stringified `path` of every original row in the table. eg. If a row has a path of `[0, 3, 2]`, its stringified path would be `0.3.2`.\n  - This array is used by many plugin hooks including `useRowSelect` to manage row selection state\n  - Only rows that exist on the original `data` array will have a path in this array. Rows created by `useGroupBy`'s aggregations and grouping are not included in this array, since they do not reference an original data row.\n- `flatRows: Array<Row>`\n  - An array of all rows, including subRows which have been flattened into the order in which they were detected (depth first)\n  - This can be helpful in calculating total row counts that must include subRows\n\n### `HeaderGroup` Properties\n\nThe following additional properties are available on every `headerGroup` object returned by the table instance.\n\n- `headers: Array<Column>`\n  - **Required**\n  - The columns in this header group.\n- `getHeaderGroupProps: Function(?props)`\n  - **Required**\n  - This function is used to resolve any props needed for this header group's row.\n  - You can use the `getHeaderGroupProps` hook to extend its functionality.\n  - Custom props may be passed. **NOTE: Custom props will override built-in table props, so be careful!**\n\n### Column Properties\n\nThe following properties are available on every `Column` object returned by the table instance.\n\n- `id: String`\n  - The resolved column ID from either the column's `accessor` or the column's hard-coded `id` property\n- `visible: Boolean`\n  - The resolved visible state for the column, derived from the column's `show` property\n- `render: Function(type: String | Function | Component, ?props)`\n  - This function is used to render content in context of a column.\n  - If `type` is a string, will render using the `column[type]` renderer. React Table ships with default `Header` renderers. Other renderers like `Filter` are available via hooks like `useFilters`.\n  - If a function or component is passed instead of a string, it will be be passed the table instance and column model as props and is expected to return any valid JSX.\n- `getHeaderProps: Function(?props)`\n  - **Required**\n  - This function is used to resolve any props needed for this column's header cell.\n  - You can use the `getHeaderProps` hook to extend its functionality.\n  - Custom props may be passed. **NOTE: Custom props will override built-in table props, so be careful!**\n\n### Row Properties\n\nThe following additional properties are available on every `row` object returned by the table instance.\n\n- `cells: Array<Cell>`\n  - An array of `Cell` objects containing properties and functions specific to the row and column it belongs to.\n  - See [Cell Properties](#cell-properties) for more information\n- `values: Object<columnID: any>`\n  - A map of this row's **resolved** values by columnID, eg. `{ firstName: 'Tanner', lastName: 'Linsley' }`\n- `getRowProps: Function(?props)`\n  - **Required**\n  - This function is used to resolve any props needed for this row.\n  - You can use the `getRowProps` hook to extend its functionality.\n  - Custom props may be passed. **NOTE: Custom props will override built-in table props, so be careful!**\n- `index: Int`\n  - The index of the original row in the `data` array that was passed to `useTable`. If this row is a subRow, it is the original index within the parent row's subRows array\n- `original: Object`\n  - The original row object from the `data` array that was used to materialize this row.\n- `path: Array<string>`\n  - This array is the sequential path of indices one could use to navigate to it, eg. a row path of `[3, 1, 0]` would mean that it is the **first** subRow of a parent that is the **second** subRow of a parent that is the **fourth** row in the original `data` array.\n  - This array is used with plugin hooks like `useExpanded` and `useGroupBy` to compute expanded states for individual rows.\n- `subRows: Array<Row>`\n  - If subRows were detect on the original data object, this will be an array of those materialized row objects.\n\n### Cell Properties\n\nThe following additional properties are available on every `Cell` object returned in an array of `cells` on every row object.\n\n- `column: Column`\n  - The corresponding column object for this cell\n- `row: Row`\n  - The corresponding row object for this cell\n- `value: any`\n  - The **resolved** value for this cell.\n  - By default, this value is displayed on the table via the default `Cell` renderer. To override the way a cell displays\n- `getCellProps: Function(?props)`\n  - **Required**\n  - This function is used to resolve any props needed for this cell.\n  - You can use the `getCellProps` hook to extend its functionality.\n  - Custom props may be passed. **NOTE: Custom props will override built-in table props, so be careful!**\n- `render: Function(type: String | Function | Component, ?props)`\n  - **Required**\n  - This function is used to render content in context of a cell.\n  - If `type` is a string, will render using the `column[type]` renderer. React Table ships with a default `Cell` renderer. Other renderers like `Aggregated` are available via hooks like `useFilters`.\n  - If a function or component is passed instead of a string, it will be be passed the table instance and cell model as props and is expected to return any valid JSX.\n\n### Example\n\n```js\nfunction App() {\n  const columns = React.useMemo(\n    () => [\n      {\n        Header: 'Name',\n        columns: [\n          {\n            Header: 'First Name',\n            accessor: 'firstName',\n          },\n          {\n            Header: 'Last Name',\n            accessor: 'lastName',\n          },\n        ],\n      },\n    ],\n    []\n  )\n\n  const data = [\n    {\n      firstName: 'Tanner',\n      lastName: 'Linsley',\n    },\n    {\n      firstName: 'Shawn',\n      lastName: 'Wang',\n    },\n    {\n      firstName: 'Kent C.',\n      lastName: 'Dodds',\n    },\n    {\n      firstName: 'Ryan',\n      lastName: 'Florence',\n    },\n  ]\n\n  return <MyTable columns={columns} data={data} />\n}\n\nfunction MyTable({ columns, data }) {\n  const { getTableProps, headerGroups, rows, prepareRow } = useTable({\n    columns,\n    data,\n  })\n\n  return (\n    <table {...getTableProps()}>\n      <thead>\n        {headerGroups.map(headerGroup => (\n          <tr {...headerGroup.getHeaderGroupProps()}>\n            {headerGroup.headers.map(column => (\n              <th {...column.getHeaderProps()}>{column.render('Header')}</th>\n            ))}\n          </tr>\n        ))}\n      </thead>\n      <tbody>\n        {rows.map(\n          (row, i) =>\n            prepareRow(row) || (\n              <tr {...row.getRowProps()}>\n                {row.cells.map(cell => {\n                  return <td {...cell.getCellProps()}>{cell.render('Cell')}</td>\n                })}\n              </tr>\n            )\n        )}\n      </tbody>\n    </table>\n  )\n}\n```\n\n## `useSortBy`\n\n- Plugin Hook\n- Optional\n\n`useSortBy` is the hook that implements **row sorting**. It also support multi-sort (keyboard required).\n\n- Multi-sort is enabled by default\n- To sort the table via UI, attach the props generated from each column's `getSortByToggleProps()`, then click any of those elements.\n- To multi-sort the table via UI, hold `shift` while clicking on any of those same elements that have the props from `getSortByToggleProps()` attached.\n- To programmatically sort (or multi-sort) any column, use the `toggleSortBy` method located on the instance or each individual column.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `state[0].sortBy: Array<Object<id: columnID, desc: Bool>>`\n  - Must be **memoized**\n  - An array of sorting objects. If there is more than one object in the array, multi-sorting will be enabled. Each sorting object should contain an `id` key with the corresponding column ID to sort by. An optional `desc` key may be set to true or false to indicated ascending or descending sorting for that column. This information is stored in state since the table is allowed to manipulate the filter through user interaction.\n- `manualSorting: Bool`\n  - Enables sorting detection functionality, but does not automatically perform row sorting. Turn this on if you wish to implement your own sorting outside of the table (eg. server-side or manual row grouping/nesting)\n- `disableSorting: Bool`\n  - Disables sorting for every column in the entire table.\n- `disableMultiSort: Bool`\n  - Disables multi-sorting for the entire table.\n- `disableSortRemove: Bool`\n  - If true, the un-sorted state will not be available to columns once they have been sorted.\n- `disableMultiRemove: Bool`\n  - If true, the un-sorted state will not be available to multi-sorted columns.\n- `orderByFn: Function`\n  - Must be **memoizd**\n  - Defaults to the built-in [default orderBy function](TODO)\n  - This function is responsible for composing multiple sorting functions together for multi-sorting, and also handles both the directional sorting and stable-sorting tie breaking. Rarely would you want to override this function unless you have a very advanced use-case that requires it.\n- `sortTypes: Object<sortKey: sortType>`\n  - Must be **memoized**\n  - Allows overriding or adding additional sort types for columns to use. If a column's sort type isn't found on this object, it will default to using the [built-in sort types](TODO).\n  - For mor information on sort types, see [Sorting](TODO)\n\n### Column Options\n\nThe following options are supported on any `Column` object passed to the `columns` options in `useTable()`\n\n- `disableSorting: Bool`\n  - Optional\n  - Defualts to `false`\n  - If set to `true`, the sorting for this column will be disabled\n- `sortDescFirst: Bool`\n  - Optional\n  - Defaults to `false`\n  - If set to `true`, the first sort direction for this column will be descending instead of ascending\n- `sortInverted: Bool`\n  - Optional\n  - Defaults to `false`\n  - If set to `true`, the underlying sorting direction will be inverted, but the UI will not.\n  - This may be useful in situations where positive and negative connotation is inverted, eg. a Golfing score where a lower score is considered more positive than a higher one.\n- `sortType: String | Function`\n  - If a **function** is passed, it must be **memoized**\n  - Defaults to [`alphanumeric`](TODO)\n  - The resolved function from the this string/function will be used to sort the this column's data.\n    - If a `string` is passed, the function with that name located on either the custom `sortTypes` option or the built-in sorting types object will be used. If\n    - If a `function` is passed, it will be used.\n  - For mor information on sort types, see [Sorting](TODO)\n\n### Instance Properties\n\nThe following values are provided to the table `instance`:\n\n- `rows: Array<Row>`\n  - An array of **sorted** rows.\n- `preSortedRows: Array<Row>`\n  - The array of rows that were originally sorted.\n- `toggleSortBy: Function(ColumnID: String, descending: Bool, isMulti: Bool) => void`\n  - This function can be used to programmatically toggle the sorting for any specific column\n\n### Column Properties\n\nThe following properties are available on every `Column` object returned by the table instance.\n\n- `canSort: Bool`\n  - Denotes whether a column is sortable or not depending on if it has a valid accessor/data model or is manually disabled via an option.\n- `toggleSortBy: Function(descending, multi) => void`\n  - This function can be used to programmatically toggle the sorting for this column.\n  - This function is similar to the `instance`-level `toggleSortBy`, however, passing a columnID is not required since it is located on a `Column` object already.\n- `getSortByToggleProps: Function(props) => props`\n  - **Required**\n  - This function is used to resolve any props needed for this column's UI that is responsible for toggling the sort direction when the user clicks it.\n  - You can use the `getSortByToggleProps` hook to extend its functionality.\n  - Custom props may be passed. **NOTE: Custom props may override built-in sortBy props, so be careful!**\n- `sorted: Boolean`\n  - Denotes whether this column is currently being sorted\n- `sortedIndex: Int`\n  - If the column is currently sorted, this integer will be the index in the `sortBy` array from state that corresponds to this column.\n  - If this column is not sorted, the index will always be `-1`\n- `sortedDesc: Bool`\n  - If the column is currently sorted, this denotes whether the column's sort direction is descending or not.\n  - If `true`, the column is sorted `descending`\n  - If `false`, the column is sorted `ascending`\n  - If `undefined`, the column is not currently being sorted.\n\n### Example\n\n```js\nfunction Table({ columns, data }) {\n  // Set some default sorting state\n  const state = useTableState({ sortBy: [{ id: 'firstName', desc: true }] })\n\n  const { getTableProps, headerGroups, rows, prepareRow } = useTable(\n    {\n      columns,\n      data,\n    },\n    useSortBy // Use the sortBy hook\n  )\n\n  return (\n    <table {...getTableProps()}>\n      <thead>\n        {headerGroups.map(headerGroup => (\n          <tr {...headerGroup.getHeaderGroupProps()}>\n            {headerGroup.headers.map(column => (\n              // Add the sorting props to control sorting. For this example\n              // we can add them into the header props\n              <th {...column.getHeaderProps(column.getSortByToggleProps())}>\n                {column.render('Header')}\n                <span>\n                  {/* Add a sort direction indicator */}\n                  <span>\n                    {column.sorted ? (column.sortedDesc ? ' 🔽' : ' 🔼') : ''}\n                  </span>\n                  {/* Add a sort index indicator */}\n                  <span>({column.sorted ? column.sortedIndex + 1 : ''})</span>\n                </span>\n              </th>\n            ))}\n          </tr>\n        ))}\n      </thead>\n      <tbody>\n        {rows.map(\n          (row, i) =>\n            prepareRow(row) || (\n              <tr {...row.getRowProps()}>\n                {row.cells.map(cell => {\n                  return <td {...cell.getCellProps()}>{cell.render('Cell')}</td>\n                })}\n              </tr>\n            )\n        )}\n      </tbody>\n    </table>\n  )\n}\n```\n\n## `useFilters`\n\n- Plugin Hook\n- Optional\n\n`useFilters` is the hook that implements **row filtering**.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `state[0].filters: Object<columnID: filterValue>`\n  - Must be **memoized**\n  - An object of columnID's and their corresponding filter values. This information is stored in state since the table is allowed to manipulate the filter through user interaction.\n- `defaultFilter: String | Function`\n  - If a **function** is passed, it must be **memoized**\n  - Defaults to [`text`](TODO)\n  - The function (or resolved function from the string) will be used as the default/fallback filter method for every column that has filtering enabled.\n    - If a `string` is passed, the function with that name located on the `filterTypes` option object will be used.\n    - If a `function` is passed, it will be used.\n  - For mor information on filter types, see [Filtering](TODO)\n- `manualFilters: Bool`\n  - Enables filter detection functionality, but does not automatically perform row filtering.\n  - Turn this on if you wish to implement your own row filter outside of the table (eg. server-side or manual row grouping/nesting)\n- `disableFilters: Bool`\n  - Disables filtering for every column in the entire table.\n- `filterTypes: Object<filterKey: filterType>`\n  - Must be **memoized**\n  - Allows overriding or adding additional filter types for columns to use. If a column's filter type isn't found on this object, it will default to using the [built-in filter types](TODO).\n  - For mor information on filter types, see [Filtering](TODO)\n\n### Column Options\n\nThe following options are supported on any `Column` object passed to the `columns` options in `useTable()`\n\n- `Filter: Function | React.Component => JSX`\n  - **Required**\n  - Receives the table instance and column model as props\n  - Must return valid JSX\n  - This function (or component) is used to render this column's filter UI, eg.\n- `disableFilters: Bool`\n  - Optional\n  - If set to `true`, will disable filtering for this column\n- `filter: String | Function`\n  - Optional\n  - Defaults to [`text`](TODO)\n  - The resolved function from the this string/function will be used to filter the this column's data.\n    - If a `string` is passed, the function with that name located on either the custom `filterTypes` option or the built-in filtering types object will be used. If\n    - If a `function` is passed, it will be used directly.\n  - For mor information on filter types, see [Filtering](TODO)\n  - If a **function** is passed, it must be **memoized**\n\n### Instance Properties\n\nThe following values are provided to the table `instance`:\n\n- `rows: Array<Row>`\n  - An array of **filtered** rows.\n- `preFilteredRows: Array<Row>`\n  - The array of rows **used right before filtering**.\n  - Among many other use-cases, these rows are directly useful for building option lists in filters, since the resulting filtered `rows` do not contain every possible option.\n- `setFilter: Function(columnID, filterValue) => void`\n  - An instance-level function used to update the filter value for a specific column.\n- `setAllFilters: Function(filtersObject) => void`\n  - An instance-level function used to update the values for **all** filters on the table, all at once.\n\n### Column Properties\n\nThe following properties are available on every `Column` object returned by the table instance.\n\n- `canFilter: Bool`\n  - Denotes whether a column is filterable or not depending on if it has a valid accessor/data model or is manually disabled via an option.\n- `setFilter: Function(filterValue) => void`\n  - An column-level function used to update the filter value for this column\n- `filterValue: any`\n  - The current filter value for this column, resolved from the table state's `filters` object\n- `preFilteredRows: Array<row>`\n  - The array of rows that were originally passed to this columns filter **before** they were filtered.\n  - This array of rows can be useful if building faceted filter options.\n\n### Example\n\n```js\n// A great library for fuzzy filtering/sorting items\nimport matchSorter from 'match-sorter'\n\nconst state = useTableState({ filters: { firstName: 'tanner' } })\n\nconst filterTypes = React.useMemo(() => ({\n  // Add a new fuzzyText filter type.\n  fuzzyText: (rows, id, filterValue) => {\n    return matchSorter(rows, filterValue, { keys: [row => row[id] })\n  },\n  // Or, override the default text filter to use\n  // \"startWith\"\n  text: (rows, id, filterValue) => {\n    return rows.filter(row => {\n      const rowValue = row.values[id]\n      return rowValue !== undefined\n        ? String(rowValue)\n            .toLowerCase()\n            .startsWith(String(filterValue).toLowerCase())\n        : true\n    })\n  }\n}), [matchSorter])\n\n// Override the default column filter to be our new `fuzzyText` filter type\nconst defaultColumn = React.useMemo(() => ({\n  filter: 'fuzzyText'\n}))\n\nconst { rows } = useTable(\n  {\n    // state[0].groupBy === ['firstName']\n    state,\n    manualFilters: false,\n    disableFilters: false,\n    // Pass our custom filter types\n    filterTypes,\n    defaultColumn\n  },\n  useFilters\n)\n```\n\n## `useGroupBy`\n\n- Plugin Hook\n- Optional\n\n`useGroupBy` is the hook that implements **row grouping and aggregation**.\n\n- Each column's `getGroupByToggleProps()` function can be used to generate the props needed to make a clickable UI element that will toggle the grouping on or off for a specific column.\n- Instance and column-level `toggleGroupBy` functions are also made available for programmatic grouping.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `state[0].groupBy: Array<String>`\n  - Must be **memoized**\n  - An array of groupBy ID strings, controlling which columns are used to calculate row grouping and aggregation. This information is stored in state since the table is allowed to manipulate the groupBy through user interaction.\n- `manualGroupBy: Bool`\n  - Enables groupBy detection and functionality, but does not automatically perform row grouping.\n  - Turn this on if you wish to implement your own row grouping outside of the table (eg. server-side or manual row grouping/nesting)\n- `disableGrouping: Bool`\n  - Disables groupBy for the entire table.\n- `aggregations: Object<aggregationKey: aggregationFn>`\n  - Must be **memoized**\n  - Allows overriding or adding additional aggregation functions for use when grouping/aggregating row values. If an aggregation key isn't found on this object, it will default to using the [built-in aggregation functions](TODO)\n- `groupByFn: Function`\n  - Must be **memoized**\n  - Defaults to [`defaultGroupByFn`](TODO)\n  - This function is responsible for grouping rows based on the `state.groupBy` keys provided. It's very rare you would need to customize this function.\n\n### Column Options\n\nThe following options are supported on any `Column` object passed to the `columns` options in `useTable()`\n\n- `Aggregated: Function | React.Component => JSX`\n  - Optional\n  - Defaults to this column's `Cell` formatter\n  - Receives the table instance and cell model as props\n  - Must return valid JSX\n  - This function (or component) formats this column's value when it is being grouped and aggregated, eg. If this column was showing the number of visits for a user to a website and it was currently being grouped to show an **average** of the values, the `Aggregated` function for this column could format that value to `1,000 Avg. Visits`\n- `disableGrouping: Boolean`\n  - Defaults to `true`\n  - If `true`, this column is able to be grouped.\n\n### Instance Properties\n\nThe following values are provided to the table `instance`:\n\n- `rows: Array<Row>`\n  - An array of **grouped and aggregated** rows.\n- `preGroupedRows: Array<Row>`\n  - The array of rows originally used to create the grouped rows.\n- `toggleGroupBy: Function(columnID: String, ?set: Bool) => void`\n  - This function can be used to programmatically set or toggle the groupBy state for a specific column.\n\n### Column Properties\n\nThe following properties are available on every `Column` object returned by the table instance.\n\n- `canGroupBy: Boolean`\n  - If `true`, this column is able to be grouped.\n  - This is resolved from the column having a valid accessor / data model, and not being manually disabled via other `useGroupBy` related options\n- `grouped: Boolean`\n  - If `true`, this column is currently being grouped\n- `groupedIndex: Int`\n  - If this column is currently being grouped, this integer is the index of this column's ID in the table state's `groupBy` array.\n- `toggleGroupBy: Function(?set: Bool) => void`\n  - This function can be used to programmatically set or toggle the groupBy state fo this column.\n- `getGroupByToggleProps: Function(props) => props`\n  - **Required**\n  - This function is used to resolve any props needed for this column's UI that is responsible for toggling grouping when the user clicks it.\n  - You can use the `getGroupByToggleProps` hook to extend its functionality.\n  - Custom props may be passed. **NOTE: Custom props may override built-in sortBy props, so be careful!**\n\n### Row Properties\n\nThe following properties are available on every `Row` object returned by the table instance.\n\n- `groupByID: String`\n  - The column ID for which this row is being grouped.\n  - Will be `undefined` if the row is an original row from `data` and not a materialized one from the grouping.\n- `groupByVal: any`\n  - If the row is a materialized group row, this will be the grouping value that was used to create it.\n- `values: Object`\n  - Similar to a regular row, a materialized grouping row also has a `values` object\n  - This object contains the **aggregated** values for this row's sub rows\n- `subRows: Array<Row>`\n  - If the row is a materialized group row, this property is the array of materialized subRows that were grouped inside of this row.\n- `depth: Int`\n  - If the row is a materialized group row, this is the grouping depth at which this row was created.\n- `path: Array<String|Int>`\n  - Similar to normal `Row` objects, materialized grouping rows also have a path array. The keys inside it though are not integers like nested normal rows though. Since they are not rows that can be traced back to an original data row, they are given a unique path based on their `groupByVal`\n  - If a row is a grouping row, it will have a path like `['Single']` or `['Complicated', 'Anderson']`, where `Single`, `Complicated`, and `Anderson` would all be derived from their row's `groupByVal`.\n\n### Cell Properties\n\nThe following additional properties are available on every `Cell` object returned in an array of `cells` on every row object.\n\n- `grouped: Bool`\n  - If `true`, this cell is a grouped cell, meaning it contains a grouping value and should usually display and expander.\n- `repeatedValue: Bool`\n  - If `true`, this cell is a repeated value cell, meaning it contains a value that is already being displayed elsewhere (usually by a parent row's cell).\n  - Most of the time, this cell is not required to be displayed and can safely be hidden during rendering\n- `aggregated: Bool`\n  - If `true`, this cell's value has been aggregated and should probably be rendered with the `Aggregated` cell renderer.\n\n### Example\n\n```js\nfunction Table({ columns, data }) {\n  const {\n    getTableProps,\n    headerGroups,\n    rows,\n    prepareRow,\n    state: [{ groupBy, expanded }],\n  } = useTable(\n    {\n      columns,\n      data,\n    },\n    useGroupBy,\n    useExpanded // useGroupBy would be pretty useless without useExpanded ;)\n  )\n\n  // We don't want to render all 2000 rows for this example, so cap\n  // it at 20 for this use case\n  const firstPageRows = rows.slice()\n\n  return (\n    <table {...getTableProps()}>\n      <thead>\n        {headerGroups.map(headerGroup => (\n          <tr {...headerGroup.getHeaderGroupProps()}>\n            {headerGroup.headers.map(column => (\n              <th {...column.getHeaderProps()}>\n                {column.canGroupBy ? (\n                  // If the column can be grouped, let's add a toggle\n                  <span {...column.getGroupByToggleProps()}>\n                    {column.grouped ? '🛑' : '👊'}\n                  </span>\n                ) : null}\n                {column.render('Header')}\n              </th>\n            ))}\n          </tr>\n        ))}\n      </thead>\n      <tbody>\n        {firstPageRows.map(\n          (row, i) =>\n            prepareRow(row) || (\n              <tr {...row.getRowProps()}>\n                {row.cells.map(cell => {\n                  return (\n                    <td {...cell.getCellProps()}>\n                      {cell.grouped ? (\n                        // If it's a grouped cell, add an expander and row count\n                        <>\n                          <span\n                            style={{\n                              cursor: 'pointer',\n                            }}\n                            onClick={() => row.toggleExpanded()}\n                          >\n                            {row.isExpanded ? '👇' : '👉'}\n                          </span>\n                          {cell.render('Cell')} ({row.subRows.length})\n                        </>\n                      ) : cell.aggregated ? (\n                        // If the cell is aggregated, use the Aggregated\n                        // renderer for cell\n                        cell.render('Aggregated')\n                      ) : cell.repeatedValue ? null : ( // For cells with repeated values, render null\n                        // Otherwise, just render the regular cell\n                        cell.render('Cell')\n                      )}\n                    </td>\n                  )\n                })}\n              </tr>\n            )\n        )}\n      </tbody>\n    </table>\n  )\n}\n\n// This is a custom aggregator that\n// takes in an array of values and\n// returns the rounded median\nfunction roundedMedian(values) {\n  let min = values[0] || ''\n  let max = values[0] || ''\n\n  values.forEach(value => {\n    min = Math.min(min, value)\n    max = Math.max(max, value)\n  })\n\n  return Math.round((min + max) / 2)\n}\n\nfunction App() {\n  const columns = React.useMemo(\n    () => [\n      {\n        Header: 'Name',\n        columns: [\n          {\n            Header: 'First Name',\n            accessor: 'firstName',\n            // Use a two-stage aggregator here to first\n            // count the total rows being aggregated,\n            // then sum any of those counts if they are\n            // aggregated further\n            aggregate: ['sum', 'count'],\n            Aggregated: ({ value }) => `${value} Names`,\n          },\n          {\n            Header: 'Last Name',\n            accessor: 'lastName',\n            // Use another two-stage aggregator here to\n            // first count the UNIQUE values from the rows\n            // being aggregated, then sum those counts if\n            // they are aggregated further\n            aggregate: ['sum', 'uniqueCount'],\n            Aggregated: ({ value }) => `${value} Unique Names`,\n          },\n        ],\n      },\n      {\n        Header: 'Info',\n        columns: [\n          {\n            Header: 'Age',\n            accessor: 'age',\n            // Aggregate the average age of visitors\n            aggregate: 'average',\n            Aggregated: ({ value }) => `${value} (avg)`,\n          },\n          {\n            Header: 'Visits',\n            accessor: 'visits',\n            // Aggregate the sum of all visits\n            aggregate: 'sum',\n            Aggregated: ({ value }) => `${value} (total)`,\n          },\n          {\n            Header: 'Status',\n            accessor: 'status',\n          },\n          {\n            Header: 'Profile Progress',\n            accessor: 'progress',\n            // Use our custom roundedMedian aggregator\n            aggregate: roundedMedian,\n            Aggregated: ({ value }) => `${value} (med)`,\n          },\n        ],\n      },\n    ],\n    []\n  )\n\n  const data = React.useMemo(() => makeData(10000), [])\n\n  return <Table columns={columns} data={data} />\n}\n```\n\n## `useExpanded`\n\n- Plugin Hook\n- Optional\n\n`useExpanded` is the hook that implements **row expanding**. It is most often used with `useGroupBy` to expand grouped rows or on its own with nested `subRows` in tree-li,ke `data` sets, but is not limited to these use-cases. It supports expanding rows both via internal table state and also via a hard-coded key on the raw row model.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `state[0].expanded: Object<[pathIndex]: Boolean | ExpandedStateObject>`\n  - Optional\n  - Must be **memoized**\n  - An nested object of expanded paths.\n  - A `pathIndex` can be set as the key and its value set to `true` to expand that row's subRows into view. For example, if `{ '3': true }` was passed as the `expanded` state, the **4th row in the original data array** would be expanded.\n  - For nested expansion, you may **use another object** instead of a Boolean to expand sub rows. For example, if `{ '3': { '5' : true }}` was passed as the `expanded` state, then the **6th subRow of the 4th row and the 4th row of the original data array** would be expanded.\n  - This information is stored in state since the table is allowed to manipulate the filter through user interaction.\n- `subRowsKey: String`\n  - Optional\n  - See the [useTable hook](#table-options) for more details\n- `nestExpandedRows: Bool`\n  - Optional\n  - Defaults to `false`\n  - If set to `false`, expanded rows will not be paginated. Thus, any expanded subrows would potentially increase the size of any given page by the amount of total expanded subrows on the page.\n- `manualExpandedKey: String`\n  - Optional\n  - Defaults to `expanded`\n  - This string is used as the key to detect manual expanded state on any given row. For example, if a raw data row like `{ name: 'Tanner Linsley', friends: [...], expanded: true}` was detected, it would always be expanded, regardless of state.\n\n### Instance Properties\n\nThe following properties are available on the table instance returned from `useTable`\n\n- `rows: Array<Row>`\n  - An array of **sorted** rows.\n\n### Row Properties\n\nThe following additional properties are available on every `row` object returned by the table instance.\n\n- `isExpanded: Bool`\n  - If `true`, this row is in an expanded state.\n- `toggleExpanded: Function(?isExpanded: Bool) => void`\n  - This function will toggle the expanded state of a row between `true` and `false` or, if an `isExpanded` boolean is passed to the function, it will be set as the new `isExpanded` value.\n  - Rows with a hard-coded `manualExpandedKey` (defaults to `expanded`) set to `true` are not affected by this function or the internal expanded state.\n\n### Example\n\n```js\nfunction Table({ columns: userColumns, data }) {\n  const {\n    getTableProps,\n    headerGroups,\n    rows,\n    prepareRow,\n    state: [{ expanded }],\n  } = useTable(\n    {\n      columns: userColumns,\n      data,\n    },\n    useExpanded // Use the useExpanded plugin hook\n  )\n\n  return (\n    <>\n      <pre>\n        <code>{JSON.stringify({ expanded }, null, 2)}</code>\n      </pre>\n      <table {...getTableProps()}>\n        <thead>\n          {headerGroups.map(headerGroup => (\n            <tr {...headerGroup.getHeaderGroupProps()}>\n              {headerGroup.headers.map(column => (\n                <th {...column.getHeaderProps()}>{column.render('Header')}</th>\n              ))}\n            </tr>\n          ))}\n        </thead>\n        <tbody>\n          {rows.map(\n            (row, i) =>\n              prepareRow(row) || (\n                <tr {...row.getRowProps()}>\n                  {row.cells.map(cell => {\n                    return (\n                      <td {...cell.getCellProps()}>{cell.render('Cell')}</td>\n                    )\n                  })}\n                </tr>\n              )\n          )}\n        </tbody>\n      </table>\n      <br />\n      <div>Showing the first 20 results of {rows.length} rows</div>\n    </>\n  )\n}\n\nfunction App() {\n  const columns = React.useMemo(\n    () => [\n      {\n        // Build our expander column\n        Header: () => null, // No header, please\n        id: 'expander', // Make sure it has an ID\n        Cell: ({ row }) =>\n          // Use the row.canExpand and row.getExpandedToggleProps prop getter\n          // to build the toggle for expanding a row\n          row.canExpand ? (\n            <span\n              {...row.getExpandedToggleProps({\n                style: {\n                  // We can even use the row.depth property\n                  // and paddingLeft to indicate the depth\n                  // of the row\n                  paddingLeft: `${row.depth * 2}rem`,\n                },\n              })}\n            >\n              {row.isExpanded ? '👇' : '👉'}\n            </span>\n          ) : null,\n      },\n      {\n        Header: 'Name',\n        columns: [\n          {\n            Header: 'First Name',\n            accessor: 'firstName',\n          },\n          {\n            Header: 'Last Name',\n            accessor: 'lastName',\n          },\n        ],\n      },\n      {\n        Header: 'Info',\n        columns: [\n          {\n            Header: 'Age',\n            accessor: 'age',\n          },\n          {\n            Header: 'Visits',\n            accessor: 'visits',\n          },\n          {\n            Header: 'Status',\n            accessor: 'status',\n          },\n          {\n            Header: 'Profile Progress',\n            accessor: 'progress',\n          },\n        ],\n      },\n    ],\n    []\n  )\n\n  const data = React.useMemo(() => makeData(5, 5, 5), [])\n\n  return <Table columns={columns} data={data} />\n}\n```\n\n## `usePagination`\n\n- Plugin Hook\n- Optional\n\n`usePagination` is the hook that implements **row pagination**. It can be used for both client-side pagination or server-side pagination. For more information on pagination, see [Pagination](TODO)\n\n> **NOTE** Some server-side pagination implementations do not use page index and instead use **token based pagination**! If that's the case, please use the `useTokenPagination` plugin instead.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `state[0].pageSize: Int`\n  - **Required**\n  - Defaults to `10`\n  - Determines the amount of rows on any given page\n- `state[0].pageIndex: Int`\n  - **Required**\n  - Defaults to `0`\n  - The index of the page that should be displayed via the `page` instance value\n- `pageCount: Int`\n  - **Required if `manualPagination` is set to `true`**\n  - If `manualPagination` is `true`, then this value used to determine the amount of pages available. This amount is then used to materialize the `pageOptions` and also compute the `canNextPage` values on the table instance.\n- `manualPagination: Bool`\n  - Enables pagination functionality, but does not automatically perform row pagination.\n  - Turn this on if you wish to implement your own pagination outside of the table (eg. server-side pagination or any other manual pagination technique)\n- `disablePageResetOnDataChange`\n  - Defaults to `false`\n  - Normally, any changes detected to `rows`, `state.filters`, `state.groupBy`, or `state.sortBy` will trigger the `pageIndex` to be reset to `0`\n  - If set to `true`, the `pageIndex` will not be automatically set to `0` when these dependencies change.\n\n### Instance Variables\n\nThe following values are provided to the table `instance`:\n\n- `pages: Array<page>`\n  - An array of every generated `page`, each containing its respective rows.\n- `page: Array<row>`\n  - An array of rows for the **current** page, determined by the current `pageIndex` value.\n- `pageCount: Int`\n  - If `manualPagination` is set to `false`, this is the total amount of pages available in the table based on the current `pageSize` value\n  - if `manualPagination` is set to `true`, this is merely the same `pageCount` option that was passed in the table options.\n- `pageOptions: Array<Int>`\n  - An array of zero-based index integers corresponding to available pages in the table.\n  - This can be useful for generating things like select interfaces for the user to select a page from a list, instead of manually paginating to the desired page.\n- `canPreviousPage: Bool`\n  - If there are pages and the current `pageIndex` is greater than `0`, this will be `true`\n- `canNextPage:`\n  - If there are pages and the current `pageIndex` is less than `pageCount`, this will be `true`\n- `gotoPage: Function(pageIndex)`\n  - This function, when called with a valid `pageIndex`, will set `pageIndex` to that value.\n  - If the passed index is outside of the valid `pageIndex` range, then this function will do nothing.\n- `previousPage: Function`\n  - This function decreases `state.pageIndex` by one.\n  - If there are no pages or `canPreviousPage` is false, this function will do nothing.\n- `nextPage: Function`\n  - This function increases `state.pageIndex` by one.\n  - If there are no pages or `canNextPage` is false, this function will do nothing.\n- `setPageSize: Function(pageSize)`\n  - This function sets `state.pageSize` to the new value.\n  - As a result of a pageSize change, a new `state.pageIndex` is also calculated. It is calculated via `Math.floor(currentTopRowIndex / newPageSize)`\n- `pageIndex: Int`\n  - This is the resolved `state.pageIndex` value.\n- `pageSize: Int`\n  - This is the resolved `state.pageSize` value.\n\n### Example\n\n```js\nfunction Table({ columns, data }) {\n  // Use the state and functions returned from useTable to build your UI\n  const {\n    getTableProps,\n    headerGroups,\n    prepareRow,\n    page, // Instead of using 'rows', we'll use page,\n    // which has only the rows for the active page\n\n    // The rest of these things are super handy, too ;)\n    canPreviousPage,\n    canNextPage,\n    pageOptions,\n    pageCount,\n    gotoPage,\n    nextPage,\n    previousPage,\n    setPageSize,\n    state: [{ pageIndex, pageSize }],\n  } = useTable(\n    {\n      columns,\n      data,\n    },\n    usePagination\n  )\n\n  // Render the UI for your table\n  return (\n    <>\n      <pre>\n        <code>\n          {JSON.stringify(\n            {\n              pageIndex,\n              pageSize,\n              pageCount,\n              canNextPage,\n              canPreviousPage,\n            },\n            null,\n            2\n          )}\n        </code>\n      </pre>\n      <table {...getTableProps()}>\n        <thead>\n          {headerGroups.map(headerGroup => (\n            <tr {...headerGroup.getHeaderGroupProps()}>\n              {headerGroup.headers.map(column => (\n                <th {...column.getHeaderProps()}>{column.render('Header')}</th>\n              ))}\n            </tr>\n          ))}\n        </thead>\n        <tbody>\n          {page.map(\n            (row, i) =>\n              prepareRow(row) || (\n                <tr {...row.getRowProps()}>\n                  {row.cells.map(cell => {\n                    return (\n                      <td {...cell.getCellProps()}>{cell.render('Cell')}</td>\n                    )\n                  })}\n                </tr>\n              )\n          )}\n        </tbody>\n      </table>\n      {/* \n        Pagination can be built however you'd like. \n        This is just a very basic UI implementation:\n      */}\n      <div className=\"pagination\">\n        <button onClick={() => gotoPage(0)} disabled={!canPreviousPage}>\n          {'<<'}\n        </button>{' '}\n        <button onClick={() => previousPage()} disabled={!canPreviousPage}>\n          {'<'}\n        </button>{' '}\n        <button onClick={() => nextPage()} disabled={!canNextPage}>\n          {'>'}\n        </button>{' '}\n        <button onClick={() => gotoPage(pageCount - 1)} disabled={!canNextPage}>\n          {'>>'}\n        </button>{' '}\n        <span>\n          Page{' '}\n          <strong>\n            {pageIndex + 1} of {pageOptions.length}\n          </strong>{' '}\n        </span>\n        <span>\n          | Go to page:{' '}\n          <input\n            type=\"number\"\n            defaultValue={pageIndex + 1}\n            onChange={e => {\n              const page = e.target.value ? Number(e.target.value) - 1 : 0\n              gotoPage(page)\n            }}\n            style={{ width: '100px' }}\n          />\n        </span> <select\n          value={pageSize}\n          onChange={e => {\n            setPageSize(Number(e.target.value))\n          }}\n        >\n          {[10, 20, 30, 40, 50].map(pageSize => (\n            <option key={pageSize} value={pageSize}>\n              Show {pageSize}\n            </option>\n          ))}\n        </select>\n      </div>\n    </>\n  )\n}\n\nfunction App() {\n  const columns = React.useMemo(\n    () => [\n      {\n        Header: 'Name',\n        columns: [\n          {\n            Header: 'First Name',\n            accessor: 'firstName',\n          },\n          {\n            Header: 'Last Name',\n            accessor: 'lastName',\n          },\n        ],\n      },\n      {\n        Header: 'Info',\n        columns: [\n          {\n            Header: 'Age',\n            accessor: 'age',\n          },\n          {\n            Header: 'Visits',\n            accessor: 'visits',\n          },\n          {\n            Header: 'Status',\n            accessor: 'status',\n          },\n          {\n            Header: 'Profile Progress',\n            accessor: 'progress',\n          },\n        ],\n      },\n    ],\n    []\n  )\n\n  const data = React.useMemo(() => makeData(100000), [])\n\n  return (\n    <Styles>\n      <Table columns={columns} data={data} />\n    </Styles>\n  )\n}\n```\n\n## `useTokenPagination (Coming Soon)`\n\n- Plugin Hook\n- Optional\n\n`useTokenPagination` is the hook that **aids in implementing row pagination using tokens**. It is useful for server-side pagination implementations that use **tokens** instead of page index. For more information on pagination, see [Pagination](TODO)\n\n> Documentation Coming Soon...\n\n## `useTableState`\n\n- Optional\n\n`useTableState` is a hook that allows you to hoist the table state out of the table into your own code. You should use this hook if you need to:\n\n- Know about the internal table state\n- React to changes to the internal table state\n- Manually control or override the internal table state\n\nSome common use cases for this hook are:\n\n- Reacting to `pageIndex` and `pageSize` changes for server-side pagination to fetch new data\n- Disallowing specific states via a custom state reducer\n- Enabling parent/unrelated components to manipulate the table state\n\n### Hook Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `initialState: Object`\n  - Optional\n  - The initial state object for the table.\n  - This object is **merged over the `defaultState` object** (eg. `{...defaultState, ...initialState}`) that React Table and its hooks use to register default state to produce the final initial state object passed to the resolved `useState` hook.\n- `overrides: Object`\n  - Optional\n  - Must be **memoized**\n  - This object is **merged over the current table state** (eg. `{...state, ...overrides}`) to produce the final state object that is then passed to the `useTable` options\n- `options: Object`\n  - `reducer: Function(oldState, newState) => finalState`\n    - Optional\n    - Inspired by Kent C. Dodd's [State Reducer Pattern](https://kentcdodds.com/blog/the-state-reducer-pattern-with-react-hooks)\n    - With every `setState` call to a table state (even internally), this reducer is called and is allowed to modify the final state object for updating.\n    - It is passed the `oldState`, the `newState`, and an action `type`.\n  - `useState`\n    - Optional\n    - Defaults to `React.useState`\n    - This function, if defined will be used as the state hook internally instead of the default `React.useState`. This can be useful for implementing custom state storage hooks like useLocalStorage, etc.\n\n### Output\n\n- `tableStateTuple: [tableState, setTableState]`\n  - Similar in structure to the result of `React.useState`\n  - **Memoized** - This tuple array will not change between renders unless the state or `useTableState` options change.\n  - `tableState: Object`\n    - **Memoized** - This object reference will not change unless the state changes.\n    - This is the final state object of the table, which is the product of the `initialState`, `overrides` and the `reducer` options (if applicable)\n  - `setTableState: Function(updater, type) => void`\n    - **Memoized** - This function reference will not change unless the internal state `reducer` is changed\n    - This function is used both internally by React Table, and optionally by you (the developer) to update the table state programmatically.\n    - `updater: Function`\n      - This function signature is **almost** (see next point) identical to the functional API exposed by `React.setState`. It is passed the previous state and is expected to return a new version of the state.\n      - **NOTE: `updater` must be a function. Passing a replacement object is not supported as it is with React.useState**\n    - `type: String`\n      - The [action type](TODO) corresponding to what action being taken against the state.\n\n### Example\n\n```js\nexport default function MyTable({ manualPageIndex }) {\n  // This is the initial state for our table\n  const initialState = { pageSize: 10, pageIndex: 0 }\n\n  // Here, we can override the pageIndex\n  // regardless of the internal table state\n  const overrides = React.useMemo(() => ({\n    pageIndex: manualPageIndex,\n  }))\n\n  const state = useTableState(initialState, overrides)\n\n  // You can use effects to observe changes to the state\n  React.useEffect(\n    () => {\n      console.log('Page Size Changed!', initialState.pageSize)\n    },\n    [initialState.pageSize]\n  )\n\n  const { rows } = useTable({\n    state,\n  })\n}\n```\n\n# Guides\n\n## Sorting\n\n### Client-Side Sorting\n\n- [Example]()\n\nClient-side sorting can be accomplished by using the `useSortBy` plugin hook. Start by importing the hook from `react-table`:\n\n```diff\n-import { useTable } from 'react-table'\n+import { useTable, useSortBy } from 'react-table'\n```\n\nNext, add the `useSortBy` hook to your `useTable` hook and add the necessary UI pieces we need to make sorting work:\n\n```diff\nfunction MyTable() {\n  const { getTableProps, headerGroups, rows, prepareRow } = useTable(\n    {\n      data,\n      columns,\n    },\n-   useSortBy\n+   useSortBy\n  )\n\n  return (\n    <table {...getTableProps()}>\n      <thead>\n        {headerGroups.map(headerGroup => (\n          <tr {...headerGroup.getHeaderGroupProps()}>\n            {headerGroup.headers.map(column => (\n-             <th {...column.getHeaderProps()}>\n+             <th {...column.getHeaderProps(column.getSortByToggleProps())}>\n                {column.render('Header')}\n+               <span>\n+                 {column.sorted ? (column.sortedDesc ? ' 🔽' : ' 🔼') : ''}\n+               </span>\n              </th>\n            ))}\n          </tr>\n        ))}\n      </thead>\n      <tbody>\n        {rows.map(\n          (row, i) =>\n            prepareRow(row) || (\n              <tr {...row.getRowProps()}>\n                {row.cells.map(cell => {\n                  return <td {...cell.getCellProps()}>{cell.render('Cell')}</td>\n                })}\n              </tr>\n            )\n        )}\n      </tbody>\n    </table>\n  )\n}\n```\n\n### Server-Side Sorting\n\nServer-side sorting can be accomplished by using the `useSortBy` plugin hook in **controlled** mode along with the `useTableState` hook. Start by importing these hooks from `react-table`:\n\n```diff\n-import { useTable } from 'react-table'\n+import { useTable, useSortBy, useTableState } from 'react-table'\n```\n\nNext, add the `useSortBy` and `useTableState` hooks to your `useTable` hook, configure the table state, then add the necessary UI pieces we need to make sorting work:\n\n```diff\nfunction MyTable(data, columns, fetchData) {\n\n+ const state = useTableState()\n+ const [{ sortBy }] = state\n\n+ React.useEffect(() => {\n+   // When sorting changes, trigger your parent component\n+   // or hook to fetch new data with the table state\n+   fetchData(state[0])\n+ }, [sortBy])\n\n  const { getTableProps, headerGroups, rows, prepareRow } = useTable(\n    {\n      data,\n      columns,\n+     state,\n+     manualSorting: true\n    },\n-   useSortBy\n+   useSortBy\n  )\n\n  return (\n    <table {...getTableProps()}>\n      <thead>\n        {headerGroups.map(headerGroup => (\n          <tr {...headerGroup.getHeaderGroupProps()}>\n            {headerGroup.headers.map(column => (\n-             <th {...column.getHeaderProps()}>\n+             <th {...column.getHeaderProps(column.getSortByToggleProps())}>\n                {column.render('Header')}\n+               <span>\n+                 {column.sorted ? (column.sortedDesc ? ' 🔽' : ' 🔼') : ''}\n+               </span>\n              </th>\n            ))}\n          </tr>\n        ))}\n      </thead>\n      <tbody>\n        {rows.map(\n          (row, i) =>\n            prepareRow(row) || (\n              <tr {...row.getRowProps()}>\n                {row.cells.map(cell => {\n                  return <td {...cell.getCellProps()}>{cell.render('Cell')}</td>\n                })}\n              </tr>\n            )\n        )}\n      </tbody>\n    </table>\n  )\n}\n```\n\n<!--\n\n## Client Side Pagination\n\nTo add client side pagination, use the `usePagination` hook:\n\n```diff\n// Import React\nimport React from 'react'\n\n// Import React Table\nimport {\n  useTable,\n  useGroupBy,\n  useFilters,\n  useSortBy,\n  useExpanded,\n+  usePagination,\n} from 'react-table'\n\n// Create a component to render your table\nfunction MyTable(props) {\n  // Use the useTable hook to create your table configuration\n  const instance = useTable(\n    props,\n    useGroupBy,\n    useFilters,\n    useSortBy,\n    useExpanded,\n+   usePagination,\n  )\n\n  // Use the state and functions returned from useTable to build your UI\n  const {\n    getTableProps,\n    headerGroups,\n    rows,\n    getRowProps,\n    prepareRow,\n+   pageOptions,\n+   page,\n+   state: [{ pageIndex, pageSize }],\n+   gotoPage,\n+   previousPage,\n+   nextPage,\n+   setPageSize,\n+   canPreviousPage,\n+   canNextPage,\n  } = instance\n\n  // Render the UI for your table\n  return (\n    <div>\n      <table {...getTableProps()}>\n        ...\n      </table>\n+     <div>\n+       <button onClick={() => previousPage()} disabled={!canPreviousPage}>\n+         Previous Page\n+       </button>\n+       <button onClick={() => nextPage()} disabled={!canNextPage}>\n+         Next Page\n+       </button>\n+       <div>\n+         Page{' '}\n+         <em>\n+           {pageIndex + 1} of {pageOptions.length}\n+         </em>\n+       </div>\n+       <div>Go to page:</div>\n+       <input\n+         type=\"number\"\n+         defaultValue={pageIndex + 1 || 1}\n+         onChange={e => {\n+           const page = e.target.value ? Number(e.target.value) - 1 : 0\n+           gotoPage(page)\n+         }}\n+       />\n+       <select\n+         value={pageSize}\n+         onChange={e => {\n+           setPageSize(Number(e.target.value))\n+         }}\n+       >\n+         {pageSizeOptions.map(pageSize => (\n+           <option key={pageSize} value={pageSize}>\n+             Show {pageSize}\n+           </option>\n+         ))}\n+       </select>\n+     </div>\n    </div>\n  )\n}\n```\n\n## Server Side Pagination\n\nTo implement server-side pagination, use the `useTableState` and `usePagination` hooks:\n\n```diff\n\n``` -->\n\n<!-- # Setup\n\nTo begin using React Table you will need to start with a UI to render it. Below is a very basic component that should serve as a good starting point for most projects:\n\n```js\n// Import React\nimport React from 'react'\n\n// Import React Table\nimport {\n  useTable,\n  useGroupBy,\n  useFilters,\n  useSortBy,\n  useExpanded,\n  usePagination,\n} from 'react-table'\n\n// Create a component to render your table\nexport default function MyTable(props) {\n  // Use the useTable hook to create your table configuration\n  const instance = useTable(\n    props,\n    useGroupBy,\n    useFilters,\n    useSortBy,\n    useExpanded,\n    usePagination\n  )\n\n  // Use the state and functions returned from useTable to build your UI\n  const {\n    getTableProps,\n    headerGroups,\n    rows,\n    getRowProps,\n    pageOptions,\n    page,\n    state: [{ pageIndex, pageSize }],\n    gotoPage,\n    prepareRow,\n    previousPage,\n    nextPage,\n    setPageSize,\n    canPreviousPage,\n    canNextPage,\n  } = instance\n\n  // Render the UI for your table\n  return (\n    <div>\n      <table {...getTableProps()}>\n        <thead>\n          {headerGroups.map(headerGroup => (\n            <tr {...headerGroup.getRowProps()}>\n              {headerGroup.headers.map(column => (\n                <th {...column.getHeaderProps()}>{column.render('Header')}</th>\n              ))}\n            </tr>\n          ))}\n        </thead>\n        <tbody>\n          {page.map(\n            (row, i) =>\n              prepareRow(row) || (\n                <tr {...row.getRowProps()}>\n                  {row.cells.map(cell => {\n                    return (\n                      <td {...cell.getCellProps()}>{cell.render('Cell')}</td>\n                    )\n                  })}\n                </tr>\n              )\n          )}\n        </tbody>\n      </table>\n      <div>\n        <button onClick={() => previousPage()} disabled={!canPreviousPage}>\n          Previous Page\n        </button>\n        <button onClick={() => nextPage()} disabled={!canNextPage}>\n          Next Page\n        </button>\n        <div>\n          Page{' '}\n          <em>\n            {pageIndex + 1} of {pageOptions.length}\n          </em>\n        </div>\n        <div>Go to page:</div>\n        <input\n          type=\"number\"\n          defaultValue={pageIndex + 1 || 1}\n          onChange={e => {\n            const page = e.target.value ? Number(e.target.value) - 1 : 0\n            gotoPage(page)\n          }}\n        />\n        <select\n          value={pageSize}\n          onChange={e => {\n            setPageSize(Number(e.target.value))\n          }}\n        >\n          {pageSizeOptions.map(pageSize => (\n            <option key={pageSize} value={pageSize}>\n              Show {pageSize}\n            </option>\n          ))}\n        </select>\n      </div>\n    </div>\n  )\n}\n```\n\nYou can then use your table like so:\n\n```js\n\nimport MyTable from './MyTable'\n\nfunction MyApp () {\n  const columns = React.useMemo(() => [{\n    Header: \"Name\",\n    columns: [\n      {\n        Header: \"First Name\",\n        accessor: \"firstName\",\n      },\n      {\n        Header: \"Last Name\",\n        accessor: \"lastName\",\n      }\n    ]\n  }], [])\n\n  const data = [{\n    firstName: 'Tanner',\n    lastName: 'Linsley'\n  }, {\n    firstName: 'Shawn',\n    lastName: 'Wang'\n  }, {\n    firstName: 'Kent C.',\n    lastName: 'Dodds'\n  }, {\n    firstName: 'Ryan',\n    lastName: 'Florence'\n  }]\n\n  return <MyTable columns={columns} data={data} />\n``` -->\n\n## Contributing\n\nTo suggest a feature, create an issue if it does not already exist.\nIf you would like to help develop a suggested feature follow these steps:\n\n- Fork this repo\n- Install dependencies with `$ yarn`\n- Link `react-table` locally with `$ yarn link`\n- Auto-build files as you edit with `$ yarn start`\n- Implement your changes and tests to files in the `src/` directory\n- In any example directory, link to the local `react-table` with `$ yarn link react-table`\n- Follow example directions for running. Usually just `$ yarn && yarn start`\n- Document your changes in the root `README.md`\n- To stage a commit, run `yarn commit`\n- Submit PR for review\n","licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.0-alpha.18","dist":{"shasum":"9f2405aedc0bdd1f98f88cbd41cbc0339181e270","integrity":"sha512-1pKNXdiaX7MYAnqTt0d3ObL3sk4H1p8BoAltT998/5kREZFmK7gynsQSe/QCGZH+1dot6/YUs1NXsvPSs7khtg==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.0-alpha.18.tgz","fileCount":40,"unpackedSize":518752,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdRfCPCRA9TVsSAnZWagAAS2oQAIo0NFTeHUpBgDL8AW3G\n/ElMHtWE6BuBCVA/RaMaaMmvUlQDLkcl5owibRFqDuBppZHZlfzMcBC6I95O\nPV9k9taJnCrWMqPCIbD0FLcKWhqS8e6OXKYEWdskyG+liXHHEBfQjUO7R6X7\nBeNkN/mzn5eckiZ0+ujVSOXNRpyD+WtEsDvcgMCDh81DpooJoz4KwLHxsZwS\nHG29TO7uPCbE3SM3b6wKb+ulBKyBmcbgX3a8vxn7INKo2ybnRDBcELbWWs/w\nNgS8dP5qM59h0Ij90N1/zsmk0hPZu7GL3HGs6/QaERBvGI854AI9lzIwQkm8\nkX5eWC4gtxuZI7BBdwSBmpWPRTwN7HGmL38Zr0IPwf0HaGWc7ma6ExzdrKIE\n/7YRj/bjx8dnlNI78GPo/WsREBagh0999fZ/6U8BJHKu+6UkKqdghd++ZvPC\n4qH5jZNRqzjX4XAwkTDRHkHoAQ5s+i8++vHry7mAXUHzPtWdhmk+Uhkzbi3n\nZWt4ZSA9PSTZ2sjR1qGHU+u8j58N1vpe/YTFw3jhvKpWWym2zvTpuN7XqttW\n3TURBwEoJlkEdPTZpt6Lecbxg2yK59386guyHrMo7xMJL+f2FVQGqK5H37B/\nfzHnDSK8MF+I9MSVEGiIsLAiIrcjt+lnLyr/HxYqiWisj7IHp69lWA/IZ+YA\nytxO\r\n=2Ica\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAy9XW0KUmZJauMKinqXR9MmNIPvbX5N5wuwUKaVm3eFAiBAznpXBbQt0uXot/KrsN+snlmiCVKz7yuVEVVosKwTcg=="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.0-alpha.18_1564864655020_0.855057585641789"},"_hasShrinkwrap":false},"7.0.0-alpha.19":{"name":"react-table","version":"7.0.0-alpha.19","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"dist/index.js","module":"dist/index.es.js","jsnext:main":"dist/index.es.js","scripts":{"commit":"git add . && git-cz","test":"is-ci 'test:ci' 'test:dev'","test:dev":"jest --watch","test:ci":"jest","build":"rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier ./**{md,js,jsx,tsx} --write"},"peerDependencies":{"prop-types":"^15.5.0","react":"^16.8.3","react-dom":"^16.8.3"},"devDependencies":{"@babel/core":"^7.5.5","@babel/plugin-proposal-class-properties":"^7.5.5","@babel/preset-env":"^7.5.5","@babel/preset-react":"^7.0.0","@babel/runtime":"^7.5.5","@commitlint/cli":"^8.1.0","@commitlint/config-conventional":"^8.1.0","@svgr/rollup":"^4.3.2","@testing-library/dom":"^5.6.0","@testing-library/jest-dom":"^4.0.0","@testing-library/react":"^8.0.7","babel-eslint":"9.x","commitizen":"^4.0.3","core-js":"3","cross-env":"^5.2.0","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^8.0.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.14.3","eslint-plugin-react-hooks":"1.6.1","eslint-plugin-standard":"^4.0.0","husky":"^3.0.2","is-ci-cli":"^1.1.1","jest":"^24.8.0","jest-cli":"^24.8.0","jest-runner-eslint":"^0.7.4","jest-watch-select-projects":"^0.1.2","jest-watch-typeahead":"^0.3.1","lint-staged":"^9.2.1","prop-types":"^15.5.0","react":"^16.8.3","react-dom":"^16.8.3","rollup":"^0.68.0","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^9.1.3","rollup-plugin-node-resolve":"^4.0.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-uglify":"^6.0.2","snapshot-diff":"^0.5.2"},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"browserslist":"> 0.25%, not dead","readmeFilename":"README.md","readme":"# React Table\n\nHooks for building **lightweight, fast and extendable datagrids** for React\n\n<a href=\"https://travis-ci.org/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://travis-ci.org/tannerlinsley/react-table.svg?branch=master\" />\n</a>\n<a href=\"https://npmjs.com/package/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-table.svg\" />\n</a>\n<a href=\"https://spectrum.chat/react-table\">\n  <img alt=\"Join the community on Spectrum\" src=\"https://withspectrum.github.io/badge/badge.svg\" />\n</a>\n<a href=\"https://github.com/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-table.svg?style=social&label=Star\" />\n</a>\n<a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n<br />\n<br />\n<a href=\"https://patreon.com/tannerlinsley\">\n  <img width=\"180\" alt=\"\" src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/become-a-patron.png\" />\n</a>\n\n<br />\n<br />\n\n## Features\n\n- Lightweight (4kb - 10kb depending on features and tree-shaking)\n- Headless (100% customizable, Bring-your-own-UI)\n- Client-side & Server-side pagination support\n- Sorting (Multi and Stable)\n- Filters\n- Pivoting & Aggregation\n- Row Selection\n- Row Expansion\n- Fully controllable\n- Extensible via hook-based plugin system\n- <a href=\"https://medium.com/@tannerlinsley/why-i-wrote-react-table-and-the-problems-it-has-solved-for-nozzle-others-445c4e93d4a8#.axza4ixba\" target=\"\\_parent\">\"Why I wrote React Table and the problems it has solved for Nozzle.io\"</a> by Tanner Linsley\n\n## [See Examples](#examples)\n\n## Sponsors\n\n**React Table v7** is being built and maintained by me, @tannerlinsley and I am always in need of more Patreon support to keep this project afloat. If you would like to contribute to my Patreon goal for v7 and beyond, [visit my Patreon and help me out!](https://patreon.com/tannerlinsley).\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/platinum.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://tryretool.com/?utm_source=sponsor&utm_campaign=react_table\" target=\"_blank\">\n          <img width='480' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-retool.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/gold.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://nozzle.io\" target=\"_blank\">\n          <img width='230' src=\"https://nozzle.io/img/logo-blue.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://zappi.com/web\" target=\"_blank\">\n          <img width='230' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-zappi.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://patreon.com/tannerlinsley\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/supporters.png\" />\n        </a>\n      </td>\n      <td>\n        <ul>\n          <li>Nicholas Kaufmann</li>\n          <li>Pekka</li>\n        </ul>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://patreon.com/tannerlinsley\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/fans.png\" />\n        </a>\n      </td>\n      <td>\n        <ul>\n          <li>Sortmy.games</li>\n          <li>Hugo Meissner</li>\n          <li>Benoit Leger-Derville</li>\n          <li>Thomas Funk</li>\n          <li>Dan Houle</li>\n          <li>David Pickut</li>\n        </ul>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<a href=\"https://patreon.com/tannerlinsley\">\n  <img width=\"150\" alt=\"\" src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/become-a-patron.png\" />\n</a>\n\n\n# Documentation\n\n- [Installation](#installation)\n- [Concepts](#concepts)\n- [Setup](#setup)\n- [Contributing](#contributing)\n\n# Installation\n\nInstall React Table as a dependency using `npm` or `yarn`\n\n```bash\n# NPM\n$ npm install react-table\n\n# Yarn\n$ yarn add react-table\n```\n\nTo import React Table:\n\n```js\nimport {\n  useTable,\n  useGroupBy,\n  useFilters,\n  useSortBy,\n  useExpanded,\n  usePagination,\n  ...\n} from 'react-table'\n```\n\n# Examples\n\n- [Basic - Client Side](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/master/examples/basic-client-side)\n- [Sorting - Client Side](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/master/examples/sorting-client-side)\n- [Filtering - Client Side](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/master/examples/filtering-client-side)\n- [Grouping - Client Side](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/master/examples/grouping-client-side)\n- [Pagination - Client Side](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/master/examples/pagination-client-side)\n- [Row Selection - Client Side](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/master/examples/row-selection-client-side)\n- [Expanding - Client Side](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/master/examples/expanding-client-side)\n- [Sub Components](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/master/examples/sub-components)\n\n# Concepts\n\n## React Table is a \"headless\" UI library\n\nReact Table is a headless utility, which means out of the box, it doesn't render or supply any actual UI elements. You are in charge of utilizing the state and callbacks of the hooks provided by this library to render your own table markup. [Read this article to understand why React Table is built this way.](https://medium.com/merrickchristensen/headless-user-interface-components-565b0c0f2e18). If you don't want to, then here's a quick rundown anyway:\n\n- Separation of Concerns - Not that superficial kind you read about all the time. The real kind. React Table as a library honestly has no business being in charge of your UI. The look, feel, and overall experience of your table is what makes your app or product great. The less React Table gets in the way of that, the better!\n- Maintenance - By removing the massive (and seemingly endless) API surface area required to support every UI use-case, React Table can remain small, easy-to-use and simple to update/maintain.\n- Extensibility - UI presents countless edge cases for a library simply because it's a creative medium, and one where every developer does things differently. By not dictating UI concerns, React Table empowers the developer to design and extend the UI based on their unique use-case.\n\n## The React Table API\n\nAt the heart of every React Table is a table `instance` object. This object contains everything needed to build a table and interact with it's state. This includes, but is not limited to:\n\n- Columns\n- Materialized Data\n- Sorting\n- Filtering\n- Grouping\n- Pagination\n- Expanded State\n- Any functionality provided by custom plugin hooks, too!\n\n## Using Hooks for configuration, state and lifecycle\n\nReact Table uses React Hooks both internally and externally for 100% of its configuration and lifecycle management. Naturally, this is what allows React Table to be headless and lightweight while still having a concise and simple API.\n\nReact Table is essentially a compatible collection of **custom React hooks**:\n\n- The primary React Table hook\n  - [`useTable`](#usetable)\n- Plugin Hooks\n  - Core Plugin Hooks\n    - [`useTableState`](#useTableState)\n    - [`useGroupBy`](#useGroupBy)\n    - [`useFilters`](#useFilters)\n    - [`useSortBy`](#useSortBy)\n    - [`useExpanded`](#useExpanded)\n    - [`usePagination`](#usePagination)\n    - [`useTokenPagination`](#useTokenPagination)\n  - Layout Plugin Hooks\n    - [`useFlexLayout`](#useFlexLayout)\n    - [`useAbsoluteLayout`](#useAbsoluteLayout) (coming soon!)\n- Custom Plugin Hooks\n  - Get your custom plugin hook listed here!\n\n### Hook Usage\n\n`useTable` is the **primary** hook used to build a React Table. It serves as the starting point for **every option and every plugin hook** that React Table supports. The options passed into `useTable` are supplied to every plugin hook after it in the order they are supplied, eventually resulting a final `instance` object that you can use to build your table UI and interact with the table's state.\n\n```js\nconst instance = useTable(\n  {\n    data: [...],\n    columns: [...],\n  },\n  useGroupBy,\n  useFilters,\n  useSortBy,\n  useExpanded,\n  usePagination\n)\n```\n\n### The stages of a React Table\n\n1. `useTable` is called. A table instance is created.\n1. The `instance.state` is resolved from either a custom user state or an automatically generated one.\n1. A collection of plugin points is created at `instance.hooks`.\n1. Each plugin is given the opportunity to add hooks to `instance.hook`.\n1. As the `useTable` logic proceeds to run, each plugin hook type is used at a specific point in time with each individual hook function being executed the order it was registered.\n1. The final instance object is returned from `useTable`, which the developer then uses to construct their table.\n\nThis multi-stage process is the secret sauce that allows React Table plugin hooks to work together and compose nicely, while not stepping on each others toes.\n\nTo dive deeper into plugins, see [Plugins](TODO) and the [Plugin Guide](TODO)\n\n### Plugin Hook Order & Consistency\n\nThe order and usage of plugin hooks must follow [The Laws of Hooks](TODO), just like any other custom hook. They must always be unconditionally called in the same order.\n\n> **NOTE: In the event that you want to programmatically enable or disable plugin hooks, most of them provide options to disable their functionality, eg. `options.disableSorting`**\n\n### Option Memoization\n\nReact Table relies on memoization to determine when state and side effects should update or be calculated. This means that every option you pass to `useTable` should be memoized either via `React.useMemo` (for objects) or `React.useCallback` (for functions).\n\n# API\n\n## `useTable`\n\n- Required\n\n`useTable` is the root hook for React Table. To use it, pass it with an options object with at least a `columns` and `rows` value, followed by any React Table compatible hooks you want to use.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `columns: Array<Column>`\n  - Required\n  - Must be **memoized**\n  - The core columns configuration object for the entire table.\n  - Supports nested `columns` arrays via the column's `columns` key, eg. `[{ Header: 'My Group', columns: [...] }]`\n- `data: Array<any>`\n  - Required\n  - Must be **memoized**\n  - The data array that you want to display on the table.\n- `state: TableStateTuple[stateObject, stateUpdater]`\n  - Optional\n  - Must be **memoized** table state tuple. See [`useTableState`](#usetablestate) for more information.\n  - The state/updater pair for the table instance. You would want to override this if you plan on controlling or hoisting table state into your own code.\n  - Defaults to using an internal `useTableState()` instance if not defined.\n  - See [Controlling and Hoisting Table State](#controlling-and-hoisting-table-state)\n- `defaultColumn: Object`\n  - Optional\n  - Defaults to `{}`\n  - The default column object for every column passed to React Table.\n  - Column-specific properties will override the properties in this object, eg. `{ ...defaultColumn, ...userColumn }`\n  - This is particularly useful for adding global column properties. For instance, when using the `useFilters` plugin hook, add a default `Filter` renderer for every column, eg.`{ Filter: MyDefaultFilterComponent }`\n- `debug: Bool`\n  - Optional\n  - A flag to turn on debug mode.\n  - Defaults to `false`\n\n### `column` Options\n\nThe following options are supported on any column object you can pass to `columns`.\n\n- `accessor: String | Function`\n  - **Required**\n  - This string/function is used to build the data model for your column.\n  - The data returned by an accessor should be **primitive** and sortable.\n  - If a string is passed, the column's value will be looked up on the original row via that key, eg. If your column's accessor is `firstName` then its value would be read from `row['firstName']`. You can also specify deeply nested values with accessors like `info.hobbies` or even `address[0].street`\n  - If a function is passed, the column's value will be looked up on the original row using this accessor function, eg. If your column's accessor is `row => row.firstName`, then its value would be determined by passing the row to this function and using the resulting value.\n- `id: String`\n  - **Required if `accessor` is a function**\n  - This is the unique ID for the column. It is used by reference in things like sorting, grouping, filtering etc.\n  - If a **string** accessor is used, it defaults as the column ID, but can be overridden if necessary.\n- `columns: Array<Column>`\n  - Optional\n  - A nested array of columns.\n  - If defined, the column will act as a header group. Columns can be recursively nested as much as needed.\n- `show: Boolean | Function`\n  - Optional\n  - Defaults to `true`\n  - If set to `false`, the column will be hidden.\n  - If set to a `function`, it will be called with the current table instance and can then return `true` or `false`.\n  - The data model for hidden columns is still calculated including sorting, filters, and grouping.\n- `Header: String | Function | React.Component => JSX`\n  - Optional\n  - Defaults to `({ id }) => id`\n  - Receives the table instance and column model as props\n  - Must either be a **string or return valid JSX**\n  - If a function/component is passed, it will be used for formatting the header value, eg. You can use a `Header` function to dynamically format the header using any table or column state.\n- `Cell: Function | React.Component => JSX`\n  - Optional\n  - Defaults to `({ value }) => value`\n  - Receives the table instance and cell model as props\n  - Must return valid JSX\n  - This function (or component) is primarily used for formatting the column value, eg. If your column accessor returns a date object, you can use a `Cell` function to format that date to a readable format.\n\n### Instance Properties\n\nThe following properties are available on the table instance returned from `useTable`\n\n- `headerGroups: Array<HeaderGroup>`\n  - An array of normalized header groups, each containing a flattened array of final column objects for that row.\n  - See [Header Group Properties](#headergroup-properties) for more information\n- `columns: Array<Column>`\n  - A **flat** array of all final column objects computed from the original columns configuration option.\n  - See [Column Properties](#column-properties) for more information\n- `headers[] Array<Column>`\n  - A **nested** array of final column objects, similar in structure to the original columns configuration option.\n  - See [Column Properties](#column-properties) for more information\n- `rows: Array<Row>`\n  - An array of **materialized row objects** from the original `data` array and `columns` passed into the table options\n  - See [Row Properties](#row-properties) for more information\n- `getTableProps: Function(?props)`\n  - **Required**\n  - This function is used to resolve any props needed for your table wrapper.\n  - Custom props may be passed. **NOTE: Custom props will override built-in table props, so be careful!**\n- `prepareRow: Function(Row)`\n  - **Required**\n  - This function is responsible for lazily preparing a row for rendering. Any row that you intend to render in your table needs to be passed to this function **before every render**.\n  - **Why?** Since table data could potentially be very large, it can become very expensive to compute all of the necessary state for every row to be rendered regardless if it actually is rendered or not (for example if you are paginating or virtualizing the rows, you may only have a few rows visible at any given moment). This function allows only the rows you intend to display to be computed and prepped with the correct state.\n- `rowPaths: Array<string>`\n  - An array containing the stringified `path` of every original row in the table. eg. If a row has a path of `[0, 3, 2]`, its stringified path would be `0.3.2`.\n  - This array is used by many plugin hooks including `useRowSelect` to manage row selection state\n  - Only rows that exist on the original `data` array will have a path in this array. Rows created by `useGroupBy`'s aggregations and grouping are not included in this array, since they do not reference an original data row.\n- `flatRows: Array<Row>`\n  - An array of all rows, including subRows which have been flattened into the order in which they were detected (depth first)\n  - This can be helpful in calculating total row counts that must include subRows\n\n### `HeaderGroup` Properties\n\nThe following additional properties are available on every `headerGroup` object returned by the table instance.\n\n- `headers: Array<Column>`\n  - **Required**\n  - The columns in this header group.\n- `getHeaderGroupProps: Function(?props)`\n  - **Required**\n  - This function is used to resolve any props needed for this header group's row.\n  - You can use the `getHeaderGroupProps` hook to extend its functionality.\n  - Custom props may be passed. **NOTE: Custom props will override built-in table props, so be careful!**\n\n### Column Properties\n\nThe following properties are available on every `Column` object returned by the table instance.\n\n- `id: String`\n  - The resolved column ID from either the column's `accessor` or the column's hard-coded `id` property\n- `visible: Boolean`\n  - The resolved visible state for the column, derived from the column's `show` property\n- `render: Function(type: String | Function | Component, ?props)`\n  - This function is used to render content in context of a column.\n  - If `type` is a string, will render using the `column[type]` renderer. React Table ships with default `Header` renderers. Other renderers like `Filter` are available via hooks like `useFilters`.\n  - If a function or component is passed instead of a string, it will be be passed the table instance and column model as props and is expected to return any valid JSX.\n- `getHeaderProps: Function(?props)`\n  - **Required**\n  - This function is used to resolve any props needed for this column's header cell.\n  - You can use the `getHeaderProps` hook to extend its functionality.\n  - Custom props may be passed. **NOTE: Custom props will override built-in table props, so be careful!**\n\n### Row Properties\n\nThe following additional properties are available on every `row` object returned by the table instance.\n\n- `cells: Array<Cell>`\n  - An array of `Cell` objects containing properties and functions specific to the row and column it belongs to.\n  - See [Cell Properties](#cell-properties) for more information\n- `values: Object<columnID: any>`\n  - A map of this row's **resolved** values by columnID, eg. `{ firstName: 'Tanner', lastName: 'Linsley' }`\n- `getRowProps: Function(?props)`\n  - **Required**\n  - This function is used to resolve any props needed for this row.\n  - You can use the `getRowProps` hook to extend its functionality.\n  - Custom props may be passed. **NOTE: Custom props will override built-in table props, so be careful!**\n- `index: Int`\n  - The index of the original row in the `data` array that was passed to `useTable`. If this row is a subRow, it is the original index within the parent row's subRows array\n- `original: Object`\n  - The original row object from the `data` array that was used to materialize this row.\n- `path: Array<string>`\n  - This array is the sequential path of indices one could use to navigate to it, eg. a row path of `[3, 1, 0]` would mean that it is the **first** subRow of a parent that is the **second** subRow of a parent that is the **fourth** row in the original `data` array.\n  - This array is used with plugin hooks like `useExpanded` and `useGroupBy` to compute expanded states for individual rows.\n- `subRows: Array<Row>`\n  - If subRows were detect on the original data object, this will be an array of those materialized row objects.\n\n### Cell Properties\n\nThe following additional properties are available on every `Cell` object returned in an array of `cells` on every row object.\n\n- `column: Column`\n  - The corresponding column object for this cell\n- `row: Row`\n  - The corresponding row object for this cell\n- `value: any`\n  - The **resolved** value for this cell.\n  - By default, this value is displayed on the table via the default `Cell` renderer. To override the way a cell displays\n- `getCellProps: Function(?props)`\n  - **Required**\n  - This function is used to resolve any props needed for this cell.\n  - You can use the `getCellProps` hook to extend its functionality.\n  - Custom props may be passed. **NOTE: Custom props will override built-in table props, so be careful!**\n- `render: Function(type: String | Function | Component, ?props)`\n  - **Required**\n  - This function is used to render content in context of a cell.\n  - If `type` is a string, will render using the `column[type]` renderer. React Table ships with a default `Cell` renderer. Other renderers like `Aggregated` are available via hooks like `useFilters`.\n  - If a function or component is passed instead of a string, it will be be passed the table instance and cell model as props and is expected to return any valid JSX.\n\n### Example\n\n```js\nfunction App() {\n  const columns = React.useMemo(\n    () => [\n      {\n        Header: 'Name',\n        columns: [\n          {\n            Header: 'First Name',\n            accessor: 'firstName',\n          },\n          {\n            Header: 'Last Name',\n            accessor: 'lastName',\n          },\n        ],\n      },\n    ],\n    []\n  )\n\n  const data = [\n    {\n      firstName: 'Tanner',\n      lastName: 'Linsley',\n    },\n    {\n      firstName: 'Shawn',\n      lastName: 'Wang',\n    },\n    {\n      firstName: 'Kent C.',\n      lastName: 'Dodds',\n    },\n    {\n      firstName: 'Ryan',\n      lastName: 'Florence',\n    },\n  ]\n\n  return <MyTable columns={columns} data={data} />\n}\n\nfunction MyTable({ columns, data }) {\n  const { getTableProps, headerGroups, rows, prepareRow } = useTable({\n    columns,\n    data,\n  })\n\n  return (\n    <table {...getTableProps()}>\n      <thead>\n        {headerGroups.map(headerGroup => (\n          <tr {...headerGroup.getHeaderGroupProps()}>\n            {headerGroup.headers.map(column => (\n              <th {...column.getHeaderProps()}>{column.render('Header')}</th>\n            ))}\n          </tr>\n        ))}\n      </thead>\n      <tbody>\n        {rows.map(\n          (row, i) =>\n            prepareRow(row) || (\n              <tr {...row.getRowProps()}>\n                {row.cells.map(cell => {\n                  return <td {...cell.getCellProps()}>{cell.render('Cell')}</td>\n                })}\n              </tr>\n            )\n        )}\n      </tbody>\n    </table>\n  )\n}\n```\n\n## `useSortBy`\n\n- Plugin Hook\n- Optional\n\n`useSortBy` is the hook that implements **row sorting**. It also support multi-sort (keyboard required).\n\n- Multi-sort is enabled by default\n- To sort the table via UI, attach the props generated from each column's `getSortByToggleProps()`, then click any of those elements.\n- To multi-sort the table via UI, hold `shift` while clicking on any of those same elements that have the props from `getSortByToggleProps()` attached.\n- To programmatically sort (or multi-sort) any column, use the `toggleSortBy` method located on the instance or each individual column.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `state[0].sortBy: Array<Object<id: columnID, desc: Bool>>`\n  - Must be **memoized**\n  - An array of sorting objects. If there is more than one object in the array, multi-sorting will be enabled. Each sorting object should contain an `id` key with the corresponding column ID to sort by. An optional `desc` key may be set to true or false to indicated ascending or descending sorting for that column. This information is stored in state since the table is allowed to manipulate the filter through user interaction.\n- `manualSorting: Bool`\n  - Enables sorting detection functionality, but does not automatically perform row sorting. Turn this on if you wish to implement your own sorting outside of the table (eg. server-side or manual row grouping/nesting)\n- `disableSorting: Bool`\n  - Disables sorting for every column in the entire table.\n- `disableMultiSort: Bool`\n  - Disables multi-sorting for the entire table.\n- `disableSortRemove: Bool`\n  - If true, the un-sorted state will not be available to columns once they have been sorted.\n- `disableMultiRemove: Bool`\n  - If true, the un-sorted state will not be available to multi-sorted columns.\n- `orderByFn: Function`\n  - Must be **memoizd**\n  - Defaults to the built-in [default orderBy function](TODO)\n  - This function is responsible for composing multiple sorting functions together for multi-sorting, and also handles both the directional sorting and stable-sorting tie breaking. Rarely would you want to override this function unless you have a very advanced use-case that requires it.\n- `sortTypes: Object<sortKey: sortType>`\n  - Must be **memoized**\n  - Allows overriding or adding additional sort types for columns to use. If a column's sort type isn't found on this object, it will default to using the [built-in sort types](TODO).\n  - For more information on sort types, see [Sorting](TODO)\n\n### Column Options\n\nThe following options are supported on any `Column` object passed to the `columns` options in `useTable()`\n\n- `disableSorting: Bool`\n  - Optional\n  - Defualts to `false`\n  - If set to `true`, the sorting for this column will be disabled\n- `sortDescFirst: Bool`\n  - Optional\n  - Defaults to `false`\n  - If set to `true`, the first sort direction for this column will be descending instead of ascending\n- `sortInverted: Bool`\n  - Optional\n  - Defaults to `false`\n  - If set to `true`, the underlying sorting direction will be inverted, but the UI will not.\n  - This may be useful in situations where positive and negative connotation is inverted, eg. a Golfing score where a lower score is considered more positive than a higher one.\n- `sortType: String | Function`\n  - If a **function** is passed, it must be **memoized**\n  - Defaults to [`alphanumeric`](TODO)\n  - The resolved function from the this string/function will be used to sort the this column's data.\n    - If a `string` is passed, the function with that name located on either the custom `sortTypes` option or the built-in sorting types object will be used. If\n    - If a `function` is passed, it will be used.\n  - For mor information on sort types, see [Sorting](TODO)\n\n### Instance Properties\n\nThe following values are provided to the table `instance`:\n\n- `rows: Array<Row>`\n  - An array of **sorted** rows.\n- `preSortedRows: Array<Row>`\n  - The array of rows that were originally sorted.\n- `toggleSortBy: Function(ColumnID: String, descending: Bool, isMulti: Bool) => void`\n  - This function can be used to programmatically toggle the sorting for any specific column\n\n### Column Properties\n\nThe following properties are available on every `Column` object returned by the table instance.\n\n- `canSort: Bool`\n  - Denotes whether a column is sortable or not depending on if it has a valid accessor/data model or is manually disabled via an option.\n- `toggleSortBy: Function(descending, multi) => void`\n  - This function can be used to programmatically toggle the sorting for this column.\n  - This function is similar to the `instance`-level `toggleSortBy`, however, passing a columnID is not required since it is located on a `Column` object already.\n- `getSortByToggleProps: Function(props) => props`\n  - **Required**\n  - This function is used to resolve any props needed for this column's UI that is responsible for toggling the sort direction when the user clicks it.\n  - You can use the `getSortByToggleProps` hook to extend its functionality.\n  - Custom props may be passed. **NOTE: Custom props may override built-in sortBy props, so be careful!**\n- `sorted: Boolean`\n  - Denotes whether this column is currently being sorted\n- `sortedIndex: Int`\n  - If the column is currently sorted, this integer will be the index in the `sortBy` array from state that corresponds to this column.\n  - If this column is not sorted, the index will always be `-1`\n- `sortedDesc: Bool`\n  - If the column is currently sorted, this denotes whether the column's sort direction is descending or not.\n  - If `true`, the column is sorted `descending`\n  - If `false`, the column is sorted `ascending`\n  - If `undefined`, the column is not currently being sorted.\n\n### Example\n\n```js\nfunction Table({ columns, data }) {\n  // Set some default sorting state\n  const state = useTableState({ sortBy: [{ id: 'firstName', desc: true }] })\n\n  const { getTableProps, headerGroups, rows, prepareRow } = useTable(\n    {\n      columns,\n      data,\n    },\n    useSortBy // Use the sortBy hook\n  )\n\n  return (\n    <table {...getTableProps()}>\n      <thead>\n        {headerGroups.map(headerGroup => (\n          <tr {...headerGroup.getHeaderGroupProps()}>\n            {headerGroup.headers.map(column => (\n              // Add the sorting props to control sorting. For this example\n              // we can add them into the header props\n              <th {...column.getHeaderProps(column.getSortByToggleProps())}>\n                {column.render('Header')}\n                <span>\n                  {/* Add a sort direction indicator */}\n                  <span>\n                    {column.sorted ? (column.sortedDesc ? ' 🔽' : ' 🔼') : ''}\n                  </span>\n                  {/* Add a sort index indicator */}\n                  <span>({column.sorted ? column.sortedIndex + 1 : ''})</span>\n                </span>\n              </th>\n            ))}\n          </tr>\n        ))}\n      </thead>\n      <tbody>\n        {rows.map(\n          (row, i) =>\n            prepareRow(row) || (\n              <tr {...row.getRowProps()}>\n                {row.cells.map(cell => {\n                  return <td {...cell.getCellProps()}>{cell.render('Cell')}</td>\n                })}\n              </tr>\n            )\n        )}\n      </tbody>\n    </table>\n  )\n}\n```\n\n## `useFilters`\n\n- Plugin Hook\n- Optional\n\n`useFilters` is the hook that implements **row filtering**.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `state[0].filters: Object<columnID: filterValue>`\n  - Must be **memoized**\n  - An object of columnID's and their corresponding filter values. This information is stored in state since the table is allowed to manipulate the filter through user interaction.\n- `defaultFilter: String | Function`\n  - If a **function** is passed, it must be **memoized**\n  - Defaults to [`text`](TODO)\n  - The function (or resolved function from the string) will be used as the default/fallback filter method for every column that has filtering enabled.\n    - If a `string` is passed, the function with that name located on the `filterTypes` option object will be used.\n    - If a `function` is passed, it will be used.\n  - For mor information on filter types, see [Filtering](TODO)\n- `manualFilters: Bool`\n  - Enables filter detection functionality, but does not automatically perform row filtering.\n  - Turn this on if you wish to implement your own row filter outside of the table (eg. server-side or manual row grouping/nesting)\n- `disableFilters: Bool`\n  - Disables filtering for every column in the entire table.\n- `filterTypes: Object<filterKey: filterType>`\n  - Must be **memoized**\n  - Allows overriding or adding additional filter types for columns to use. If a column's filter type isn't found on this object, it will default to using the [built-in filter types](TODO).\n  - For mor information on filter types, see [Filtering](TODO)\n\n### Column Options\n\nThe following options are supported on any `Column` object passed to the `columns` options in `useTable()`\n\n- `Filter: Function | React.Component => JSX`\n  - **Required**\n  - Receives the table instance and column model as props\n  - Must return valid JSX\n  - This function (or component) is used to render this column's filter UI, eg.\n- `disableFilters: Bool`\n  - Optional\n  - If set to `true`, will disable filtering for this column\n- `filter: String | Function`\n  - Optional\n  - Defaults to [`text`](TODO)\n  - The resolved function from the this string/function will be used to filter the this column's data.\n    - If a `string` is passed, the function with that name located on either the custom `filterTypes` option or the built-in filtering types object will be used. If\n    - If a `function` is passed, it will be used directly.\n  - For mor information on filter types, see [Filtering](TODO)\n  - If a **function** is passed, it must be **memoized**\n\n### Instance Properties\n\nThe following values are provided to the table `instance`:\n\n- `rows: Array<Row>`\n  - An array of **filtered** rows.\n- `preFilteredRows: Array<Row>`\n  - The array of rows **used right before filtering**.\n  - Among many other use-cases, these rows are directly useful for building option lists in filters, since the resulting filtered `rows` do not contain every possible option.\n- `setFilter: Function(columnID, filterValue) => void`\n  - An instance-level function used to update the filter value for a specific column.\n- `setAllFilters: Function(filtersObject) => void`\n  - An instance-level function used to update the values for **all** filters on the table, all at once.\n\n### Column Properties\n\nThe following properties are available on every `Column` object returned by the table instance.\n\n- `canFilter: Bool`\n  - Denotes whether a column is filterable or not depending on if it has a valid accessor/data model or is manually disabled via an option.\n- `setFilter: Function(filterValue) => void`\n  - An column-level function used to update the filter value for this column\n- `filterValue: any`\n  - The current filter value for this column, resolved from the table state's `filters` object\n- `preFilteredRows: Array<row>`\n  - The array of rows that were originally passed to this columns filter **before** they were filtered.\n  - This array of rows can be useful if building faceted filter options.\n\n### Example\n\n```js\n// A great library for fuzzy filtering/sorting items\nimport matchSorter from 'match-sorter'\n\nconst state = useTableState({ filters: { firstName: 'tanner' } })\n\nconst filterTypes = React.useMemo(() => ({\n  // Add a new fuzzyText filter type.\n  fuzzyText: (rows, id, filterValue) => {\n    return matchSorter(rows, filterValue, { keys: [row => row[id] })\n  },\n  // Or, override the default text filter to use\n  // \"startWith\"\n  text: (rows, id, filterValue) => {\n    return rows.filter(row => {\n      const rowValue = row.values[id]\n      return rowValue !== undefined\n        ? String(rowValue)\n            .toLowerCase()\n            .startsWith(String(filterValue).toLowerCase())\n        : true\n    })\n  }\n}), [matchSorter])\n\n// Override the default column filter to be our new `fuzzyText` filter type\nconst defaultColumn = React.useMemo(() => ({\n  filter: 'fuzzyText'\n}))\n\nconst { rows } = useTable(\n  {\n    // state[0].groupBy === ['firstName']\n    state,\n    manualFilters: false,\n    disableFilters: false,\n    // Pass our custom filter types\n    filterTypes,\n    defaultColumn\n  },\n  useFilters\n)\n```\n\n## `useGroupBy`\n\n- Plugin Hook\n- Optional\n\n`useGroupBy` is the hook that implements **row grouping and aggregation**.\n\n- Each column's `getGroupByToggleProps()` function can be used to generate the props needed to make a clickable UI element that will toggle the grouping on or off for a specific column.\n- Instance and column-level `toggleGroupBy` functions are also made available for programmatic grouping.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `state[0].groupBy: Array<String>`\n  - Must be **memoized**\n  - An array of groupBy ID strings, controlling which columns are used to calculate row grouping and aggregation. This information is stored in state since the table is allowed to manipulate the groupBy through user interaction.\n- `manualGroupBy: Bool`\n  - Enables groupBy detection and functionality, but does not automatically perform row grouping.\n  - Turn this on if you wish to implement your own row grouping outside of the table (eg. server-side or manual row grouping/nesting)\n- `disableGrouping: Bool`\n  - Disables groupBy for the entire table.\n- `aggregations: Object<aggregationKey: aggregationFn>`\n  - Must be **memoized**\n  - Allows overriding or adding additional aggregation functions for use when grouping/aggregating row values. If an aggregation key isn't found on this object, it will default to using the [built-in aggregation functions](TODO)\n- `groupByFn: Function`\n  - Must be **memoized**\n  - Defaults to [`defaultGroupByFn`](TODO)\n  - This function is responsible for grouping rows based on the `state.groupBy` keys provided. It's very rare you would need to customize this function.\n\n### Column Options\n\nThe following options are supported on any `Column` object passed to the `columns` options in `useTable()`\n\n- `Aggregated: Function | React.Component => JSX`\n  - Optional\n  - Defaults to this column's `Cell` formatter\n  - Receives the table instance and cell model as props\n  - Must return valid JSX\n  - This function (or component) formats this column's value when it is being grouped and aggregated, eg. If this column was showing the number of visits for a user to a website and it was currently being grouped to show an **average** of the values, the `Aggregated` function for this column could format that value to `1,000 Avg. Visits`\n- `disableGrouping: Boolean`\n  - Defaults to `true`\n  - If `true`, this column is able to be grouped.\n\n### Instance Properties\n\nThe following values are provided to the table `instance`:\n\n- `rows: Array<Row>`\n  - An array of **grouped and aggregated** rows.\n- `preGroupedRows: Array<Row>`\n  - The array of rows originally used to create the grouped rows.\n- `toggleGroupBy: Function(columnID: String, ?set: Bool) => void`\n  - This function can be used to programmatically set or toggle the groupBy state for a specific column.\n\n### Column Properties\n\nThe following properties are available on every `Column` object returned by the table instance.\n\n- `canGroupBy: Boolean`\n  - If `true`, this column is able to be grouped.\n  - This is resolved from the column having a valid accessor / data model, and not being manually disabled via other `useGroupBy` related options\n- `grouped: Boolean`\n  - If `true`, this column is currently being grouped\n- `groupedIndex: Int`\n  - If this column is currently being grouped, this integer is the index of this column's ID in the table state's `groupBy` array.\n- `toggleGroupBy: Function(?set: Bool) => void`\n  - This function can be used to programmatically set or toggle the groupBy state fo this column.\n- `getGroupByToggleProps: Function(props) => props`\n  - **Required**\n  - This function is used to resolve any props needed for this column's UI that is responsible for toggling grouping when the user clicks it.\n  - You can use the `getGroupByToggleProps` hook to extend its functionality.\n  - Custom props may be passed. **NOTE: Custom props may override built-in sortBy props, so be careful!**\n\n### Row Properties\n\nThe following properties are available on every `Row` object returned by the table instance.\n\n- `groupByID: String`\n  - The column ID for which this row is being grouped.\n  - Will be `undefined` if the row is an original row from `data` and not a materialized one from the grouping.\n- `groupByVal: any`\n  - If the row is a materialized group row, this will be the grouping value that was used to create it.\n- `values: Object`\n  - Similar to a regular row, a materialized grouping row also has a `values` object\n  - This object contains the **aggregated** values for this row's sub rows\n- `subRows: Array<Row>`\n  - If the row is a materialized group row, this property is the array of materialized subRows that were grouped inside of this row.\n- `depth: Int`\n  - If the row is a materialized group row, this is the grouping depth at which this row was created.\n- `path: Array<String|Int>`\n  - Similar to normal `Row` objects, materialized grouping rows also have a path array. The keys inside it though are not integers like nested normal rows though. Since they are not rows that can be traced back to an original data row, they are given a unique path based on their `groupByVal`\n  - If a row is a grouping row, it will have a path like `['Single']` or `['Complicated', 'Anderson']`, where `Single`, `Complicated`, and `Anderson` would all be derived from their row's `groupByVal`.\n\n### Cell Properties\n\nThe following additional properties are available on every `Cell` object returned in an array of `cells` on every row object.\n\n- `grouped: Bool`\n  - If `true`, this cell is a grouped cell, meaning it contains a grouping value and should usually display and expander.\n- `repeatedValue: Bool`\n  - If `true`, this cell is a repeated value cell, meaning it contains a value that is already being displayed elsewhere (usually by a parent row's cell).\n  - Most of the time, this cell is not required to be displayed and can safely be hidden during rendering\n- `aggregated: Bool`\n  - If `true`, this cell's value has been aggregated and should probably be rendered with the `Aggregated` cell renderer.\n\n### Example\n\n```js\nfunction Table({ columns, data }) {\n  const {\n    getTableProps,\n    headerGroups,\n    rows,\n    prepareRow,\n    state: [{ groupBy, expanded }],\n  } = useTable(\n    {\n      columns,\n      data,\n    },\n    useGroupBy,\n    useExpanded // useGroupBy would be pretty useless without useExpanded ;)\n  )\n\n  // We don't want to render all 2000 rows for this example, so cap\n  // it at 20 for this use case\n  const firstPageRows = rows.slice()\n\n  return (\n    <table {...getTableProps()}>\n      <thead>\n        {headerGroups.map(headerGroup => (\n          <tr {...headerGroup.getHeaderGroupProps()}>\n            {headerGroup.headers.map(column => (\n              <th {...column.getHeaderProps()}>\n                {column.canGroupBy ? (\n                  // If the column can be grouped, let's add a toggle\n                  <span {...column.getGroupByToggleProps()}>\n                    {column.grouped ? '🛑' : '👊'}\n                  </span>\n                ) : null}\n                {column.render('Header')}\n              </th>\n            ))}\n          </tr>\n        ))}\n      </thead>\n      <tbody>\n        {firstPageRows.map(\n          (row, i) =>\n            prepareRow(row) || (\n              <tr {...row.getRowProps()}>\n                {row.cells.map(cell => {\n                  return (\n                    <td {...cell.getCellProps()}>\n                      {cell.grouped ? (\n                        // If it's a grouped cell, add an expander and row count\n                        <>\n                          <span\n                            style={{\n                              cursor: 'pointer',\n                            }}\n                            onClick={() => row.toggleExpanded()}\n                          >\n                            {row.isExpanded ? '👇' : '👉'}\n                          </span>\n                          {cell.render('Cell')} ({row.subRows.length})\n                        </>\n                      ) : cell.aggregated ? (\n                        // If the cell is aggregated, use the Aggregated\n                        // renderer for cell\n                        cell.render('Aggregated')\n                      ) : cell.repeatedValue ? null : ( // For cells with repeated values, render null\n                        // Otherwise, just render the regular cell\n                        cell.render('Cell')\n                      )}\n                    </td>\n                  )\n                })}\n              </tr>\n            )\n        )}\n      </tbody>\n    </table>\n  )\n}\n\n// This is a custom aggregator that\n// takes in an array of values and\n// returns the rounded median\nfunction roundedMedian(values) {\n  let min = values[0] || ''\n  let max = values[0] || ''\n\n  values.forEach(value => {\n    min = Math.min(min, value)\n    max = Math.max(max, value)\n  })\n\n  return Math.round((min + max) / 2)\n}\n\nfunction App() {\n  const columns = React.useMemo(\n    () => [\n      {\n        Header: 'Name',\n        columns: [\n          {\n            Header: 'First Name',\n            accessor: 'firstName',\n            // Use a two-stage aggregator here to first\n            // count the total rows being aggregated,\n            // then sum any of those counts if they are\n            // aggregated further\n            aggregate: ['sum', 'count'],\n            Aggregated: ({ value }) => `${value} Names`,\n          },\n          {\n            Header: 'Last Name',\n            accessor: 'lastName',\n            // Use another two-stage aggregator here to\n            // first count the UNIQUE values from the rows\n            // being aggregated, then sum those counts if\n            // they are aggregated further\n            aggregate: ['sum', 'uniqueCount'],\n            Aggregated: ({ value }) => `${value} Unique Names`,\n          },\n        ],\n      },\n      {\n        Header: 'Info',\n        columns: [\n          {\n            Header: 'Age',\n            accessor: 'age',\n            // Aggregate the average age of visitors\n            aggregate: 'average',\n            Aggregated: ({ value }) => `${value} (avg)`,\n          },\n          {\n            Header: 'Visits',\n            accessor: 'visits',\n            // Aggregate the sum of all visits\n            aggregate: 'sum',\n            Aggregated: ({ value }) => `${value} (total)`,\n          },\n          {\n            Header: 'Status',\n            accessor: 'status',\n          },\n          {\n            Header: 'Profile Progress',\n            accessor: 'progress',\n            // Use our custom roundedMedian aggregator\n            aggregate: roundedMedian,\n            Aggregated: ({ value }) => `${value} (med)`,\n          },\n        ],\n      },\n    ],\n    []\n  )\n\n  const data = React.useMemo(() => makeData(10000), [])\n\n  return <Table columns={columns} data={data} />\n}\n```\n\n## `useExpanded`\n\n- Plugin Hook\n- Optional\n\n`useExpanded` is the hook that implements **row expanding**. It is most often used with `useGroupBy` to expand grouped rows or on its own with nested `subRows` in tree-li,ke `data` sets, but is not limited to these use-cases. It supports expanding rows both via internal table state and also via a hard-coded key on the raw row model.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `state[0].expanded: Object<[pathIndex]: Boolean | ExpandedStateObject>`\n  - Optional\n  - Must be **memoized**\n  - An nested object of expanded paths.\n  - A `pathIndex` can be set as the key and its value set to `true` to expand that row's subRows into view. For example, if `{ '3': true }` was passed as the `expanded` state, the **4th row in the original data array** would be expanded.\n  - For nested expansion, you may **use another object** instead of a Boolean to expand sub rows. For example, if `{ '3': { '5' : true }}` was passed as the `expanded` state, then the **6th subRow of the 4th row and the 4th row of the original data array** would be expanded.\n  - This information is stored in state since the table is allowed to manipulate the filter through user interaction.\n- `subRowsKey: String`\n  - Optional\n  - See the [useTable hook](#table-options) for more details\n- `nestExpandedRows: Bool`\n  - Optional\n  - Defaults to `false`\n  - If set to `false`, expanded rows will not be paginated. Thus, any expanded subrows would potentially increase the size of any given page by the amount of total expanded subrows on the page.\n- `manualExpandedKey: String`\n  - Optional\n  - Defaults to `expanded`\n  - This string is used as the key to detect manual expanded state on any given row. For example, if a raw data row like `{ name: 'Tanner Linsley', friends: [...], expanded: true}` was detected, it would always be expanded, regardless of state.\n\n### Instance Properties\n\nThe following properties are available on the table instance returned from `useTable`\n\n- `rows: Array<Row>`\n  - An array of **sorted** rows.\n\n### Row Properties\n\nThe following additional properties are available on every `row` object returned by the table instance.\n\n- `isExpanded: Bool`\n  - If `true`, this row is in an expanded state.\n- `toggleExpanded: Function(?isExpanded: Bool) => void`\n  - This function will toggle the expanded state of a row between `true` and `false` or, if an `isExpanded` boolean is passed to the function, it will be set as the new `isExpanded` value.\n  - Rows with a hard-coded `manualExpandedKey` (defaults to `expanded`) set to `true` are not affected by this function or the internal expanded state.\n\n### Example\n\n```js\nfunction Table({ columns: userColumns, data }) {\n  const {\n    getTableProps,\n    headerGroups,\n    rows,\n    prepareRow,\n    state: [{ expanded }],\n  } = useTable(\n    {\n      columns: userColumns,\n      data,\n    },\n    useExpanded // Use the useExpanded plugin hook\n  )\n\n  return (\n    <>\n      <pre>\n        <code>{JSON.stringify({ expanded }, null, 2)}</code>\n      </pre>\n      <table {...getTableProps()}>\n        <thead>\n          {headerGroups.map(headerGroup => (\n            <tr {...headerGroup.getHeaderGroupProps()}>\n              {headerGroup.headers.map(column => (\n                <th {...column.getHeaderProps()}>{column.render('Header')}</th>\n              ))}\n            </tr>\n          ))}\n        </thead>\n        <tbody>\n          {rows.map(\n            (row, i) =>\n              prepareRow(row) || (\n                <tr {...row.getRowProps()}>\n                  {row.cells.map(cell => {\n                    return (\n                      <td {...cell.getCellProps()}>{cell.render('Cell')}</td>\n                    )\n                  })}\n                </tr>\n              )\n          )}\n        </tbody>\n      </table>\n      <br />\n      <div>Showing the first 20 results of {rows.length} rows</div>\n    </>\n  )\n}\n\nfunction App() {\n  const columns = React.useMemo(\n    () => [\n      {\n        // Build our expander column\n        Header: () => null, // No header, please\n        id: 'expander', // Make sure it has an ID\n        Cell: ({ row }) =>\n          // Use the row.canExpand and row.getExpandedToggleProps prop getter\n          // to build the toggle for expanding a row\n          row.canExpand ? (\n            <span\n              {...row.getExpandedToggleProps({\n                style: {\n                  // We can even use the row.depth property\n                  // and paddingLeft to indicate the depth\n                  // of the row\n                  paddingLeft: `${row.depth * 2}rem`,\n                },\n              })}\n            >\n              {row.isExpanded ? '👇' : '👉'}\n            </span>\n          ) : null,\n      },\n      {\n        Header: 'Name',\n        columns: [\n          {\n            Header: 'First Name',\n            accessor: 'firstName',\n          },\n          {\n            Header: 'Last Name',\n            accessor: 'lastName',\n          },\n        ],\n      },\n      {\n        Header: 'Info',\n        columns: [\n          {\n            Header: 'Age',\n            accessor: 'age',\n          },\n          {\n            Header: 'Visits',\n            accessor: 'visits',\n          },\n          {\n            Header: 'Status',\n            accessor: 'status',\n          },\n          {\n            Header: 'Profile Progress',\n            accessor: 'progress',\n          },\n        ],\n      },\n    ],\n    []\n  )\n\n  const data = React.useMemo(() => makeData(5, 5, 5), [])\n\n  return <Table columns={columns} data={data} />\n}\n```\n\n## `usePagination`\n\n- Plugin Hook\n- Optional\n\n`usePagination` is the hook that implements **row pagination**. It can be used for both client-side pagination or server-side pagination. For more information on pagination, see [Pagination](TODO)\n\n> **NOTE** Some server-side pagination implementations do not use page index and instead use **token based pagination**! If that's the case, please use the `useTokenPagination` plugin instead.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `state[0].pageSize: Int`\n  - **Required**\n  - Defaults to `10`\n  - Determines the amount of rows on any given page\n- `state[0].pageIndex: Int`\n  - **Required**\n  - Defaults to `0`\n  - The index of the page that should be displayed via the `page` instance value\n- `pageCount: Int`\n  - **Required if `manualPagination` is set to `true`**\n  - If `manualPagination` is `true`, then this value used to determine the amount of pages available. This amount is then used to materialize the `pageOptions` and also compute the `canNextPage` values on the table instance.\n- `manualPagination: Bool`\n  - Enables pagination functionality, but does not automatically perform row pagination.\n  - Turn this on if you wish to implement your own pagination outside of the table (eg. server-side pagination or any other manual pagination technique)\n- `disablePageResetOnDataChange`\n  - Defaults to `false`\n  - Normally, any changes detected to `rows`, `state.filters`, `state.groupBy`, or `state.sortBy` will trigger the `pageIndex` to be reset to `0`\n  - If set to `true`, the `pageIndex` will not be automatically set to `0` when these dependencies change.\n\n### Instance Variables\n\nThe following values are provided to the table `instance`:\n\n- `pages: Array<page>`\n  - An array of every generated `page`, each containing its respective rows.\n- `page: Array<row>`\n  - An array of rows for the **current** page, determined by the current `pageIndex` value.\n- `pageCount: Int`\n  - If `manualPagination` is set to `false`, this is the total amount of pages available in the table based on the current `pageSize` value\n  - if `manualPagination` is set to `true`, this is merely the same `pageCount` option that was passed in the table options.\n- `pageOptions: Array<Int>`\n  - An array of zero-based index integers corresponding to available pages in the table.\n  - This can be useful for generating things like select interfaces for the user to select a page from a list, instead of manually paginating to the desired page.\n- `canPreviousPage: Bool`\n  - If there are pages and the current `pageIndex` is greater than `0`, this will be `true`\n- `canNextPage:`\n  - If there are pages and the current `pageIndex` is less than `pageCount`, this will be `true`\n- `gotoPage: Function(pageIndex)`\n  - This function, when called with a valid `pageIndex`, will set `pageIndex` to that value.\n  - If the passed index is outside of the valid `pageIndex` range, then this function will do nothing.\n- `previousPage: Function`\n  - This function decreases `state.pageIndex` by one.\n  - If there are no pages or `canPreviousPage` is false, this function will do nothing.\n- `nextPage: Function`\n  - This function increases `state.pageIndex` by one.\n  - If there are no pages or `canNextPage` is false, this function will do nothing.\n- `setPageSize: Function(pageSize)`\n  - This function sets `state.pageSize` to the new value.\n  - As a result of a pageSize change, a new `state.pageIndex` is also calculated. It is calculated via `Math.floor(currentTopRowIndex / newPageSize)`\n- `pageIndex: Int`\n  - This is the resolved `state.pageIndex` value.\n- `pageSize: Int`\n  - This is the resolved `state.pageSize` value.\n\n### Example\n\n```js\nfunction Table({ columns, data }) {\n  // Use the state and functions returned from useTable to build your UI\n  const {\n    getTableProps,\n    headerGroups,\n    prepareRow,\n    page, // Instead of using 'rows', we'll use page,\n    // which has only the rows for the active page\n\n    // The rest of these things are super handy, too ;)\n    canPreviousPage,\n    canNextPage,\n    pageOptions,\n    pageCount,\n    gotoPage,\n    nextPage,\n    previousPage,\n    setPageSize,\n    state: [{ pageIndex, pageSize }],\n  } = useTable(\n    {\n      columns,\n      data,\n    },\n    usePagination\n  )\n\n  // Render the UI for your table\n  return (\n    <>\n      <pre>\n        <code>\n          {JSON.stringify(\n            {\n              pageIndex,\n              pageSize,\n              pageCount,\n              canNextPage,\n              canPreviousPage,\n            },\n            null,\n            2\n          )}\n        </code>\n      </pre>\n      <table {...getTableProps()}>\n        <thead>\n          {headerGroups.map(headerGroup => (\n            <tr {...headerGroup.getHeaderGroupProps()}>\n              {headerGroup.headers.map(column => (\n                <th {...column.getHeaderProps()}>{column.render('Header')}</th>\n              ))}\n            </tr>\n          ))}\n        </thead>\n        <tbody>\n          {page.map(\n            (row, i) =>\n              prepareRow(row) || (\n                <tr {...row.getRowProps()}>\n                  {row.cells.map(cell => {\n                    return (\n                      <td {...cell.getCellProps()}>{cell.render('Cell')}</td>\n                    )\n                  })}\n                </tr>\n              )\n          )}\n        </tbody>\n      </table>\n      {/* \n        Pagination can be built however you'd like. \n        This is just a very basic UI implementation:\n      */}\n      <div className=\"pagination\">\n        <button onClick={() => gotoPage(0)} disabled={!canPreviousPage}>\n          {'<<'}\n        </button>{' '}\n        <button onClick={() => previousPage()} disabled={!canPreviousPage}>\n          {'<'}\n        </button>{' '}\n        <button onClick={() => nextPage()} disabled={!canNextPage}>\n          {'>'}\n        </button>{' '}\n        <button onClick={() => gotoPage(pageCount - 1)} disabled={!canNextPage}>\n          {'>>'}\n        </button>{' '}\n        <span>\n          Page{' '}\n          <strong>\n            {pageIndex + 1} of {pageOptions.length}\n          </strong>{' '}\n        </span>\n        <span>\n          | Go to page:{' '}\n          <input\n            type=\"number\"\n            defaultValue={pageIndex + 1}\n            onChange={e => {\n              const page = e.target.value ? Number(e.target.value) - 1 : 0\n              gotoPage(page)\n            }}\n            style={{ width: '100px' }}\n          />\n        </span> <select\n          value={pageSize}\n          onChange={e => {\n            setPageSize(Number(e.target.value))\n          }}\n        >\n          {[10, 20, 30, 40, 50].map(pageSize => (\n            <option key={pageSize} value={pageSize}>\n              Show {pageSize}\n            </option>\n          ))}\n        </select>\n      </div>\n    </>\n  )\n}\n\nfunction App() {\n  const columns = React.useMemo(\n    () => [\n      {\n        Header: 'Name',\n        columns: [\n          {\n            Header: 'First Name',\n            accessor: 'firstName',\n          },\n          {\n            Header: 'Last Name',\n            accessor: 'lastName',\n          },\n        ],\n      },\n      {\n        Header: 'Info',\n        columns: [\n          {\n            Header: 'Age',\n            accessor: 'age',\n          },\n          {\n            Header: 'Visits',\n            accessor: 'visits',\n          },\n          {\n            Header: 'Status',\n            accessor: 'status',\n          },\n          {\n            Header: 'Profile Progress',\n            accessor: 'progress',\n          },\n        ],\n      },\n    ],\n    []\n  )\n\n  const data = React.useMemo(() => makeData(100000), [])\n\n  return (\n    <Styles>\n      <Table columns={columns} data={data} />\n    </Styles>\n  )\n}\n```\n\n## `useTokenPagination (Coming Soon)`\n\n- Plugin Hook\n- Optional\n\n`useTokenPagination` is the hook that **aids in implementing row pagination using tokens**. It is useful for server-side pagination implementations that use **tokens** instead of page index. For more information on pagination, see [Pagination](TODO)\n\n> Documentation Coming Soon...\n\n## `useTableState`\n\n- Optional\n\n`useTableState` is a hook that allows you to hoist the table state out of the table into your own code. You should use this hook if you need to:\n\n- Know about the internal table state\n- React to changes to the internal table state\n- Manually control or override the internal table state\n\nSome common use cases for this hook are:\n\n- Reacting to `pageIndex` and `pageSize` changes for server-side pagination to fetch new data\n- Disallowing specific states via a custom state reducer\n- Enabling parent/unrelated components to manipulate the table state\n\n### Hook Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `initialState: Object`\n  - Optional\n  - The initial state object for the table.\n  - This object is **merged over the `defaultState` object** (eg. `{...defaultState, ...initialState}`) that React Table and its hooks use to register default state to produce the final initial state object passed to the resolved `useState` hook.\n- `overrides: Object`\n  - Optional\n  - Must be **memoized**\n  - This object is **merged over the current table state** (eg. `{...state, ...overrides}`) to produce the final state object that is then passed to the `useTable` options\n- `options: Object`\n  - `reducer: Function(oldState, newState) => finalState`\n    - Optional\n    - Inspired by Kent C. Dodd's [State Reducer Pattern](https://kentcdodds.com/blog/the-state-reducer-pattern-with-react-hooks)\n    - With every `setState` call to a table state (even internally), this reducer is called and is allowed to modify the final state object for updating.\n    - It is passed the `oldState`, the `newState`, and an action `type`.\n  - `useState`\n    - Optional\n    - Defaults to `React.useState`\n    - This function, if defined will be used as the state hook internally instead of the default `React.useState`. This can be useful for implementing custom state storage hooks like useLocalStorage, etc.\n\n### Output\n\n- `tableStateTuple: [tableState, setTableState]`\n  - Similar in structure to the result of `React.useState`\n  - **Memoized** - This tuple array will not change between renders unless the state or `useTableState` options change.\n  - `tableState: Object`\n    - **Memoized** - This object reference will not change unless the state changes.\n    - This is the final state object of the table, which is the product of the `initialState`, `overrides` and the `reducer` options (if applicable)\n  - `setTableState: Function(updater, type) => void`\n    - **Memoized** - This function reference will not change unless the internal state `reducer` is changed\n    - This function is used both internally by React Table, and optionally by you (the developer) to update the table state programmatically.\n    - `updater: Function`\n      - This function signature is **almost** (see next point) identical to the functional API exposed by `React.setState`. It is passed the previous state and is expected to return a new version of the state.\n      - **NOTE: `updater` must be a function. Passing a replacement object is not supported as it is with React.useState**\n    - `type: String`\n      - The [action type](TODO) corresponding to what action being taken against the state.\n\n### Example\n\n```js\nexport default function MyTable({ manualPageIndex }) {\n  // This is the initial state for our table\n  const initialState = { pageSize: 10, pageIndex: 0 }\n\n  // Here, we can override the pageIndex\n  // regardless of the internal table state\n  const overrides = React.useMemo(() => ({\n    pageIndex: manualPageIndex,\n  }))\n\n  const state = useTableState(initialState, overrides)\n\n  // You can use effects to observe changes to the state\n  React.useEffect(\n    () => {\n      console.log('Page Size Changed!', initialState.pageSize)\n    },\n    [initialState.pageSize]\n  )\n\n  const { rows } = useTable({\n    state,\n  })\n}\n```\n\n# Guides\n\n## Sorting\n\n### Client-Side Sorting\n\n- [Example]()\n\nClient-side sorting can be accomplished by using the `useSortBy` plugin hook. Start by importing the hook from `react-table`:\n\n```diff\n-import { useTable } from 'react-table'\n+import { useTable, useSortBy } from 'react-table'\n```\n\nNext, add the `useSortBy` hook to your `useTable` hook and add the necessary UI pieces we need to make sorting work:\n\n```diff\nfunction MyTable() {\n  const { getTableProps, headerGroups, rows, prepareRow } = useTable(\n    {\n      data,\n      columns,\n    },\n-   useSortBy\n+   useSortBy\n  )\n\n  return (\n    <table {...getTableProps()}>\n      <thead>\n        {headerGroups.map(headerGroup => (\n          <tr {...headerGroup.getHeaderGroupProps()}>\n            {headerGroup.headers.map(column => (\n-             <th {...column.getHeaderProps()}>\n+             <th {...column.getHeaderProps(column.getSortByToggleProps())}>\n                {column.render('Header')}\n+               <span>\n+                 {column.sorted ? (column.sortedDesc ? ' 🔽' : ' 🔼') : ''}\n+               </span>\n              </th>\n            ))}\n          </tr>\n        ))}\n      </thead>\n      <tbody>\n        {rows.map(\n          (row, i) =>\n            prepareRow(row) || (\n              <tr {...row.getRowProps()}>\n                {row.cells.map(cell => {\n                  return <td {...cell.getCellProps()}>{cell.render('Cell')}</td>\n                })}\n              </tr>\n            )\n        )}\n      </tbody>\n    </table>\n  )\n}\n```\n\n### Server-Side Sorting\n\nServer-side sorting can be accomplished by using the `useSortBy` plugin hook in **controlled** mode along with the `useTableState` hook. Start by importing these hooks from `react-table`:\n\n```diff\n-import { useTable } from 'react-table'\n+import { useTable, useSortBy, useTableState } from 'react-table'\n```\n\nNext, add the `useSortBy` and `useTableState` hooks to your `useTable` hook, configure the table state, then add the necessary UI pieces we need to make sorting work:\n\n```diff\nfunction MyTable(data, columns, fetchData) {\n\n+ const state = useTableState()\n+ const [{ sortBy }] = state\n\n+ React.useEffect(() => {\n+   // When sorting changes, trigger your parent component\n+   // or hook to fetch new data with the table state\n+   fetchData(state[0])\n+ }, [sortBy])\n\n  const { getTableProps, headerGroups, rows, prepareRow } = useTable(\n    {\n      data,\n      columns,\n+     state,\n+     manualSorting: true\n    },\n-   useSortBy\n+   useSortBy\n  )\n\n  return (\n    <table {...getTableProps()}>\n      <thead>\n        {headerGroups.map(headerGroup => (\n          <tr {...headerGroup.getHeaderGroupProps()}>\n            {headerGroup.headers.map(column => (\n-             <th {...column.getHeaderProps()}>\n+             <th {...column.getHeaderProps(column.getSortByToggleProps())}>\n                {column.render('Header')}\n+               <span>\n+                 {column.sorted ? (column.sortedDesc ? ' 🔽' : ' 🔼') : ''}\n+               </span>\n              </th>\n            ))}\n          </tr>\n        ))}\n      </thead>\n      <tbody>\n        {rows.map(\n          (row, i) =>\n            prepareRow(row) || (\n              <tr {...row.getRowProps()}>\n                {row.cells.map(cell => {\n                  return <td {...cell.getCellProps()}>{cell.render('Cell')}</td>\n                })}\n              </tr>\n            )\n        )}\n      </tbody>\n    </table>\n  )\n}\n```\n\n<!--\n\n## Client Side Pagination\n\nTo add client side pagination, use the `usePagination` hook:\n\n```diff\n// Import React\nimport React from 'react'\n\n// Import React Table\nimport {\n  useTable,\n  useGroupBy,\n  useFilters,\n  useSortBy,\n  useExpanded,\n+  usePagination,\n} from 'react-table'\n\n// Create a component to render your table\nfunction MyTable(props) {\n  // Use the useTable hook to create your table configuration\n  const instance = useTable(\n    props,\n    useGroupBy,\n    useFilters,\n    useSortBy,\n    useExpanded,\n+   usePagination,\n  )\n\n  // Use the state and functions returned from useTable to build your UI\n  const {\n    getTableProps,\n    headerGroups,\n    rows,\n    getRowProps,\n    prepareRow,\n+   pageOptions,\n+   page,\n+   state: [{ pageIndex, pageSize }],\n+   gotoPage,\n+   previousPage,\n+   nextPage,\n+   setPageSize,\n+   canPreviousPage,\n+   canNextPage,\n  } = instance\n\n  // Render the UI for your table\n  return (\n    <div>\n      <table {...getTableProps()}>\n        ...\n      </table>\n+     <div>\n+       <button onClick={() => previousPage()} disabled={!canPreviousPage}>\n+         Previous Page\n+       </button>\n+       <button onClick={() => nextPage()} disabled={!canNextPage}>\n+         Next Page\n+       </button>\n+       <div>\n+         Page{' '}\n+         <em>\n+           {pageIndex + 1} of {pageOptions.length}\n+         </em>\n+       </div>\n+       <div>Go to page:</div>\n+       <input\n+         type=\"number\"\n+         defaultValue={pageIndex + 1 || 1}\n+         onChange={e => {\n+           const page = e.target.value ? Number(e.target.value) - 1 : 0\n+           gotoPage(page)\n+         }}\n+       />\n+       <select\n+         value={pageSize}\n+         onChange={e => {\n+           setPageSize(Number(e.target.value))\n+         }}\n+       >\n+         {pageSizeOptions.map(pageSize => (\n+           <option key={pageSize} value={pageSize}>\n+             Show {pageSize}\n+           </option>\n+         ))}\n+       </select>\n+     </div>\n    </div>\n  )\n}\n```\n\n## Server Side Pagination\n\nTo implement server-side pagination, use the `useTableState` and `usePagination` hooks:\n\n```diff\n\n``` -->\n\n<!-- # Setup\n\nTo begin using React Table you will need to start with a UI to render it. Below is a very basic component that should serve as a good starting point for most projects:\n\n```js\n// Import React\nimport React from 'react'\n\n// Import React Table\nimport {\n  useTable,\n  useGroupBy,\n  useFilters,\n  useSortBy,\n  useExpanded,\n  usePagination,\n} from 'react-table'\n\n// Create a component to render your table\nexport default function MyTable(props) {\n  // Use the useTable hook to create your table configuration\n  const instance = useTable(\n    props,\n    useGroupBy,\n    useFilters,\n    useSortBy,\n    useExpanded,\n    usePagination\n  )\n\n  // Use the state and functions returned from useTable to build your UI\n  const {\n    getTableProps,\n    headerGroups,\n    rows,\n    getRowProps,\n    pageOptions,\n    page,\n    state: [{ pageIndex, pageSize }],\n    gotoPage,\n    prepareRow,\n    previousPage,\n    nextPage,\n    setPageSize,\n    canPreviousPage,\n    canNextPage,\n  } = instance\n\n  // Render the UI for your table\n  return (\n    <div>\n      <table {...getTableProps()}>\n        <thead>\n          {headerGroups.map(headerGroup => (\n            <tr {...headerGroup.getRowProps()}>\n              {headerGroup.headers.map(column => (\n                <th {...column.getHeaderProps()}>{column.render('Header')}</th>\n              ))}\n            </tr>\n          ))}\n        </thead>\n        <tbody>\n          {page.map(\n            (row, i) =>\n              prepareRow(row) || (\n                <tr {...row.getRowProps()}>\n                  {row.cells.map(cell => {\n                    return (\n                      <td {...cell.getCellProps()}>{cell.render('Cell')}</td>\n                    )\n                  })}\n                </tr>\n              )\n          )}\n        </tbody>\n      </table>\n      <div>\n        <button onClick={() => previousPage()} disabled={!canPreviousPage}>\n          Previous Page\n        </button>\n        <button onClick={() => nextPage()} disabled={!canNextPage}>\n          Next Page\n        </button>\n        <div>\n          Page{' '}\n          <em>\n            {pageIndex + 1} of {pageOptions.length}\n          </em>\n        </div>\n        <div>Go to page:</div>\n        <input\n          type=\"number\"\n          defaultValue={pageIndex + 1 || 1}\n          onChange={e => {\n            const page = e.target.value ? Number(e.target.value) - 1 : 0\n            gotoPage(page)\n          }}\n        />\n        <select\n          value={pageSize}\n          onChange={e => {\n            setPageSize(Number(e.target.value))\n          }}\n        >\n          {pageSizeOptions.map(pageSize => (\n            <option key={pageSize} value={pageSize}>\n              Show {pageSize}\n            </option>\n          ))}\n        </select>\n      </div>\n    </div>\n  )\n}\n```\n\nYou can then use your table like so:\n\n```js\n\nimport MyTable from './MyTable'\n\nfunction MyApp () {\n  const columns = React.useMemo(() => [{\n    Header: \"Name\",\n    columns: [\n      {\n        Header: \"First Name\",\n        accessor: \"firstName\",\n      },\n      {\n        Header: \"Last Name\",\n        accessor: \"lastName\",\n      }\n    ]\n  }], [])\n\n  const data = [{\n    firstName: 'Tanner',\n    lastName: 'Linsley'\n  }, {\n    firstName: 'Shawn',\n    lastName: 'Wang'\n  }, {\n    firstName: 'Kent C.',\n    lastName: 'Dodds'\n  }, {\n    firstName: 'Ryan',\n    lastName: 'Florence'\n  }]\n\n  return <MyTable columns={columns} data={data} />\n``` -->\n\n## Contributing\n\nTo suggest a feature, create an issue if it does not already exist.\nIf you would like to help develop a suggested feature follow these steps:\n\n- Fork this repo\n- Install dependencies with `$ yarn`\n- Link `react-table` locally with `$ yarn link`\n- Auto-build files as you edit with `$ yarn start`\n- Implement your changes and tests to files in the `src/` directory\n- In any example directory, link to the local `react-table` with `$ yarn link react-table`\n- Follow example directions for running. Usually just `$ yarn && yarn start`\n- Document your changes in the root `README.md`\n- To stage a commit, run `yarn commit`\n- Submit PR for review\n","licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.0-alpha.19","dist":{"shasum":"82d17ad69ee5dbe9381b415ace6f00b00a36a073","integrity":"sha512-nuQHC9QJ0vLX/YgusXLN+cxE7W6Jmpy9mCAqwwN3yct+xJhbCIpL7MPBBM4VIZhFAgAJQ9S5j5vP2dLusleKiQ==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.0-alpha.19.tgz","fileCount":40,"unpackedSize":520732,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdSER9CRA9TVsSAnZWagAADwkP/1FjRvGmwYgeK1RjHhYc\nC4lxPfNx0QsWmk6GPVOLw860NkBCozJV1/cnXadRx4KnKgCFpEVW45+rORzh\nv8UyzxlCBWqAc3o1l6dnk0/DxpxXMC1KdSQfN/kmWWYekIKATO85JTkGhain\nrkVvMug4abWuhiowEV88Os4E+6sfudIET0qXYNoY4nU4p26dZffwHuUURFIa\n4apMJJuKJQGKf8+RcEr7f41EzX0fqa2QBbqd85PcZxWgPYzJV+OJJKQGKxBM\nbJV0nGI+FWrhrPEVU5iiMV628aGrwDlQmQBMA8In2mk5KJzmYwXtt+ND6v0K\nFGm69NQqcMtZKDpmIR2caB/GStnQGWuBAYYAPLBXIu63Y41gz9PXSas1JJQ7\nSHYbVJoLBOWolfaYKXC2KgWgWJBEORSJBTlewyVVEodckCsyswoo8MVh4TWZ\nzLHDV6O41fu7rEfuP+j6hHYyRhtKLPQDjgls3EpyAh3+ZHLuOpMycU1rE0EX\n7VYgzm4Y5vvYunpt/8X6RY2bekytU/k0n++seSoXTP2wH3sHfIj7BU7Gu3xG\n2+elRncHDa44/gJw2QVUFFepced4axHhdB9BX0iU8SO7vBhuvZGHN8tmFEiJ\nxt1Ufn4Nbm8JJwcLzEdeVPmoRlLaVSjww003ADkltHd7/30JbFAsG+G3Xm3T\nN0C5\r\n=lqXb\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICAykas5S4OrMajTie//B8v+EqR2fvGNYPIEQtvBtzvAAiEAzPoYQBunyqKleI/+ITygWTUJUKWmVrNdpfe1LKbK3Rs="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.0-alpha.19_1565017212806_0.15958866447905673"},"_hasShrinkwrap":false},"7.0.0-alpha.20":{"name":"react-table","version":"7.0.0-alpha.20","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"dist/index.js","module":"dist/index.es.js","jsnext:main":"dist/index.es.js","scripts":{"commit":"git add . && git-cz","test":"is-ci 'test:ci' 'test:dev'","test:dev":"jest --watch","test:ci":"jest","build":"rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier ./src/**/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"prop-types":"^15.5.0","react":"^16.8.3","react-dom":"^16.8.3"},"devDependencies":{"@babel/core":"^7.5.5","@babel/plugin-proposal-class-properties":"^7.5.5","@babel/preset-env":"^7.5.5","@babel/preset-react":"^7.0.0","@babel/runtime":"^7.5.5","@commitlint/cli":"^8.1.0","@commitlint/config-conventional":"^8.1.0","@svgr/rollup":"^4.3.2","@testing-library/dom":"^5.6.0","@testing-library/jest-dom":"^4.0.0","@testing-library/react":"^8.0.7","babel-eslint":"9.x","commitizen":"^4.0.3","core-js":"3","cross-env":"^5.2.0","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^8.0.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.14.3","eslint-plugin-react-hooks":"1.6.1","eslint-plugin-standard":"^4.0.0","husky":"^3.0.2","is-ci-cli":"^1.1.1","jest":"^24.8.0","jest-cli":"^24.8.0","jest-runner-eslint":"^0.7.4","jest-watch-select-projects":"^0.1.2","jest-watch-typeahead":"^0.3.1","lint-staged":"^9.2.1","prop-types":"^15.5.0","react":"^16.8.3","react-dom":"^16.8.3","rollup":"^0.68.0","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^9.1.3","rollup-plugin-node-resolve":"^4.0.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-uglify":"^6.0.2","snapshot-diff":"^0.5.2"},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"browserslist":"> 0.25%, not dead","readmeFilename":"README.md","readme":"# React Table\n\nHooks for building **lightweight, fast and extendable datagrids** for React\n\n<a href=\"https://travis-ci.org/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://travis-ci.org/tannerlinsley/react-table.svg?branch=master\" />\n</a>\n<a href=\"https://npmjs.com/package/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-table.svg\" />\n</a>\n<a href=\"https://spectrum.chat/react-table\">\n  <img alt=\"Join the community on Spectrum\" src=\"https://withspectrum.github.io/badge/badge.svg\" />\n</a>\n<a href=\"https://github.com/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-table.svg?style=social&label=Star\" />\n</a>\n<a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n<br />\n<br />\n<a href=\"https://patreon.com/tannerlinsley\">\n  <img width=\"180\" alt=\"\" src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/become-a-patron.png\" />\n</a>\n\n<br />\n<br />\n\n## Features\n\n- Lightweight (4kb - 10kb depending on features and tree-shaking)\n- Headless (100% customizable, Bring-your-own-UI)\n- Client-side & Server-side pagination support\n- Sorting (Multi and Stable)\n- Filters\n- Pivoting & Aggregation\n- Row Selection\n- Row Expansion\n- Fully controllable\n- Extensible via hook-based plugin system\n- <a href=\"https://medium.com/@tannerlinsley/why-i-wrote-react-table-and-the-problems-it-has-solved-for-nozzle-others-445c4e93d4a8#.axza4ixba\" target=\"\\_parent\">\"Why I wrote React Table and the problems it has solved for Nozzle.io\"</a> by Tanner Linsley\n\n## [See Examples](#examples)\n\n## Sponsors\n\n**React Table v7** is being built and maintained by me, @tannerlinsley and I am always in need of more Patreon support to keep this project afloat. If you would like to contribute to my Patreon goal for v7 and beyond, [visit my Patreon and help me out!](https://patreon.com/tannerlinsley).\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/platinum.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://tryretool.com/?utm_source=sponsor&utm_campaign=react_table\" target=\"_blank\">\n          <img width='480' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-retool.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/gold.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://nozzle.io\" target=\"_blank\">\n          <img width='230' src=\"https://nozzle.io/img/logo-blue.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://zappi.com/web\" target=\"_blank\">\n          <img width='230' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-zappi.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://patreon.com/tannerlinsley\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/supporters.png\" />\n        </a>\n      </td>\n      <td>\n        <ul>\n          <li>Nicholas Kaufmann</li>\n          <li>Pekka</li>\n          <li>Jon Eickmeier</li>\n        </ul>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://patreon.com/tannerlinsley\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/fans.png\" />\n        </a>\n      </td>\n      <td>\n        <ul>\n          <li>Sortmy.games</li>\n          <li>Hugo Meissner</li>\n          <li>Benoit Leger-Derville</li>\n          <li>Thomas Funk</li>\n          <li>Dan Houle</li>\n          <li>David Pickut</li>\n        </ul>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<a href=\"https://patreon.com/tannerlinsley\">\n  <img width=\"150\" alt=\"\" src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/become-a-patron.png\" />\n</a>\n\n# Documentation\n\n- [Installation](#installation)\n- [Concepts](#concepts)\n- [Setup](#setup)\n- [Contributing](#contributing)\n\n# Installation\n\nInstall React Table as a dependency using `npm` or `yarn`\n\n```bash\n# NPM\n$ npm install react-table\n\n# Yarn\n$ yarn add react-table\n```\n\nTo import React Table:\n\n```js\nimport {\n  useTable,\n  useGroupBy,\n  useFilters,\n  useSortBy,\n  useExpanded,\n  usePagination,\n  ...\n} from 'react-table'\n```\n\n# Examples\n\n- [Basic - Client Side](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/master/examples/basic-client-side)\n- [Sorting - Client Side](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/master/examples/sorting-client-side)\n- [Filtering - Client Side](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/master/examples/filtering-client-side)\n- [Grouping - Client Side](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/master/examples/grouping-client-side)\n- [Pagination - Client Side](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/master/examples/pagination-client-side)\n- [Row Selection - Client Side](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/master/examples/row-selection-client-side)\n- [Expanding - Client Side](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/master/examples/expanding-client-side)\n- [Sub Components](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/master/examples/sub-components)\n- [Editable Data](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/master/examples/editable-cells)\n\n# Concepts\n\n## React Table is a \"headless\" UI library\n\nReact Table is a headless utility, which means out of the box, it doesn't render or supply any actual UI elements. You are in charge of utilizing the state and callbacks of the hooks provided by this library to render your own table markup. [Read this article to understand why React Table is built this way.](https://medium.com/merrickchristensen/headless-user-interface-components-565b0c0f2e18). If you don't want to, then here's a quick rundown anyway:\n\n- Separation of Concerns - Not that superficial kind you read about all the time. The real kind. React Table as a library honestly has no business being in charge of your UI. The look, feel, and overall experience of your table is what makes your app or product great. The less React Table gets in the way of that, the better!\n- Maintenance - By removing the massive (and seemingly endless) API surface area required to support every UI use-case, React Table can remain small, easy-to-use and simple to update/maintain.\n- Extensibility - UI presents countless edge cases for a library simply because it's a creative medium, and one where every developer does things differently. By not dictating UI concerns, React Table empowers the developer to design and extend the UI based on their unique use-case.\n\n## The React Table API\n\nAt the heart of every React Table is a table `instance` object. This object contains everything needed to build a table and interact with it's state. This includes, but is not limited to:\n\n- Columns\n- Materialized Data\n- Sorting\n- Filtering\n- Grouping\n- Pagination\n- Expanded State\n- Any functionality provided by custom plugin hooks, too!\n\n## Using Hooks for configuration, state and lifecycle\n\nReact Table uses React Hooks both internally and externally for 100% of its configuration and lifecycle management. Naturally, this is what allows React Table to be headless and lightweight while still having a concise and simple API.\n\nReact Table is essentially a compatible collection of **custom React hooks**:\n\n- The primary React Table hook\n  - [`useTable`](#usetable)\n- Plugin Hooks\n  - Core Plugin Hooks\n    - [`useTableState`](#useTableState)\n    - [`useGroupBy`](#useGroupBy)\n    - [`useFilters`](#useFilters)\n    - [`useSortBy`](#useSortBy)\n    - [`useExpanded`](#useExpanded)\n    - [`usePagination`](#usePagination)\n    - [`useTokenPagination`](#useTokenPagination)\n  - Layout Plugin Hooks\n    - [`useFlexLayout`](#useFlexLayout)\n    - [`useAbsoluteLayout`](#useAbsoluteLayout) (coming soon!)\n- Custom Plugin Hooks\n  - Get your custom plugin hook listed here!\n\n### Hook Usage\n\n`useTable` is the **primary** hook used to build a React Table. It serves as the starting point for **every option and every plugin hook** that React Table supports. The options passed into `useTable` are supplied to every plugin hook after it in the order they are supplied, eventually resulting a final `instance` object that you can use to build your table UI and interact with the table's state.\n\n```js\nconst instance = useTable(\n  {\n    data: [...],\n    columns: [...],\n  },\n  useGroupBy,\n  useFilters,\n  useSortBy,\n  useExpanded,\n  usePagination\n)\n```\n\n### The stages of a React Table\n\n1. `useTable` is called. A table instance is created.\n1. The `instance.state` is resolved from either a custom user state or an automatically generated one.\n1. A collection of plugin points is created at `instance.hooks`.\n1. Each plugin is given the opportunity to add hooks to `instance.hook`.\n1. As the `useTable` logic proceeds to run, each plugin hook type is used at a specific point in time with each individual hook function being executed the order it was registered.\n1. The final instance object is returned from `useTable`, which the developer then uses to construct their table.\n\nThis multi-stage process is the secret sauce that allows React Table plugin hooks to work together and compose nicely, while not stepping on each others toes.\n\nTo dive deeper into plugins, see [Plugins](TODO) and the [Plugin Guide](TODO)\n\n### Plugin Hook Order & Consistency\n\nThe order and usage of plugin hooks must follow [The Laws of Hooks](TODO), just like any other custom hook. They must always be unconditionally called in the same order.\n\n> **NOTE: In the event that you want to programmatically enable or disable plugin hooks, most of them provide options to disable their functionality, eg. `options.disableSorting`**\n\n### Option Memoization\n\nReact Table relies on memoization to determine when state and side effects should update or be calculated. This means that every option you pass to `useTable` should be memoized either via `React.useMemo` (for objects) or `React.useCallback` (for functions).\n\n# API\n\n## `useTable`\n\n- Required\n\n`useTable` is the root hook for React Table. To use it, pass it with an options object with at least a `columns` and `rows` value, followed by any React Table compatible hooks you want to use.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `columns: Array<Column>`\n  - Required\n  - Must be **memoized**\n  - The core columns configuration object for the entire table.\n  - Supports nested `columns` arrays via the column's `columns` key, eg. `[{ Header: 'My Group', columns: [...] }]`\n- `data: Array<any>`\n  - Required\n  - Must be **memoized**\n  - The data array that you want to display on the table.\n- `state: TableStateTuple[stateObject, stateUpdater]`\n  - Optional\n  - Must be **memoized** table state tuple. See [`useTableState`](#usetablestate) for more information.\n  - The state/updater pair for the table instance. You would want to override this if you plan on controlling or hoisting table state into your own code.\n  - Defaults to using an internal `useTableState()` instance if not defined.\n  - See [Controlling and Hoisting Table State](#controlling-and-hoisting-table-state)\n- `defaultColumn: Object`\n  - Optional\n  - Defaults to `{}`\n  - The default column object for every column passed to React Table.\n  - Column-specific properties will override the properties in this object, eg. `{ ...defaultColumn, ...userColumn }`\n  - This is particularly useful for adding global column properties. For instance, when using the `useFilters` plugin hook, add a default `Filter` renderer for every column, eg.`{ Filter: MyDefaultFilterComponent }`\n- `initialRowStateKey: String`\n  - Optional\n  - Defaults to `initialState`\n  - This key is used to look for the initial state of a row when initializing the `rowState` for a`data` array.\n  - If the value located at `row[initialRowStateKey]` is falsey, `{}` will be used instead.\n- `debug: Bool`\n  - Optional\n  - A flag to turn on debug mode.\n  - Defaults to `false`\n\n### `column` Options\n\nThe following options are supported on any column object you can pass to `columns`.\n\n- `accessor: String | Function`\n  - **Required**\n  - This string/function is used to build the data model for your column.\n  - The data returned by an accessor should be **primitive** and sortable.\n  - If a string is passed, the column's value will be looked up on the original row via that key, eg. If your column's accessor is `firstName` then its value would be read from `row['firstName']`. You can also specify deeply nested values with accessors like `info.hobbies` or even `address[0].street`\n  - If a function is passed, the column's value will be looked up on the original row using this accessor function, eg. If your column's accessor is `row => row.firstName`, then its value would be determined by passing the row to this function and using the resulting value.\n- `id: String`\n  - **Required if `accessor` is a function**\n  - This is the unique ID for the column. It is used by reference in things like sorting, grouping, filtering etc.\n  - If a **string** accessor is used, it defaults as the column ID, but can be overridden if necessary.\n- `columns: Array<Column>`\n  - Optional\n  - A nested array of columns.\n  - If defined, the column will act as a header group. Columns can be recursively nested as much as needed.\n- `show: Boolean | Function`\n  - Optional\n  - Defaults to `true`\n  - If set to `false`, the column will be hidden.\n  - If set to a `function`, it will be called with the current table instance and can then return `true` or `false`.\n  - The data model for hidden columns is still calculated including sorting, filters, and grouping.\n- `Header: String | Function | React.Component => JSX`\n  - Optional\n  - Defaults to `({ id }) => id`\n  - Receives the table instance and column model as props\n  - Must either be a **string or return valid JSX**\n  - If a function/component is passed, it will be used for formatting the header value, eg. You can use a `Header` function to dynamically format the header using any table or column state.\n- `Cell: Function | React.Component => JSX`\n  - Optional\n  - Defaults to `({ value }) => value`\n  - Receives the table instance and cell model as props\n  - Must return valid JSX\n  - This function (or component) is primarily used for formatting the column value, eg. If your column accessor returns a date object, you can use a `Cell` function to format that date to a readable format.\n\n### Instance Properties\n\nThe following properties are available on the table instance returned from `useTable`\n\n- `headerGroups: Array<HeaderGroup>`\n  - An array of normalized header groups, each containing a flattened array of final column objects for that row.\n  - See [Header Group Properties](#headergroup-properties) for more information\n- `columns: Array<Column>`\n  - A **flat** array of all final column objects computed from the original columns configuration option.\n  - See [Column Properties](#column-properties) for more information\n- `headers[] Array<Column>`\n  - A **nested** array of final column objects, similar in structure to the original columns configuration option.\n  - See [Column Properties](#column-properties) for more information\n- `rows: Array<Row>`\n  - An array of **materialized row objects** from the original `data` array and `columns` passed into the table options\n  - See [Row Properties](#row-properties) for more information\n- `getTableProps: Function(?props)`\n  - **Required**\n  - This function is used to resolve any props needed for your table wrapper.\n  - Custom props may be passed. **NOTE: Custom props will override built-in table props, so be careful!**\n- `prepareRow: Function(Row)`\n  - **Required**\n  - This function is responsible for lazily preparing a row for rendering. Any row that you intend to render in your table needs to be passed to this function **before every render**.\n  - **Why?** Since table data could potentially be very large, it can become very expensive to compute all of the necessary state for every row to be rendered regardless if it actually is rendered or not (for example if you are paginating or virtualizing the rows, you may only have a few rows visible at any given moment). This function allows only the rows you intend to display to be computed and prepped with the correct state.\n- `rowPaths: Array<string>`\n  - An array containing the stringified `path` of every original row in the table. eg. If a row has a path of `[0, 3, 2]`, its stringified path would be `0.3.2`.\n  - This array is used by many plugin hooks including `useRowSelect` to manage row selection state\n  - Only rows that exist on the original `data` array will have a path in this array. Rows created by `useGroupBy`'s aggregations and grouping are not included in this array, since they do not reference an original data row.\n- `flatRows: Array<Row>`\n  - An array of all rows, including subRows which have been flattened into the order in which they were detected (depth first)\n  - This can be helpful in calculating total row counts that must include subRows\n- `setRowState: Function(rowPath, updater: Function | any) => void`\n  - This function can be used to update the internal state for any row.\n  - Pass it a valid `rowPath` array and `updater`. The `updater` may be a value or function, similar to `React.useState`'s usage.\n  - If `updater` is a function, it will be passed the previous value\n- `setCellState: Function(rowPath, columnID, updater: Function | any) => void`\n  - This function can be used to update the internal state for any cell.\n  - Pass it a valid `rowPath` array, `columnID` and `updater`. The `updater` may be a value or function, similar to `React.useState`'s usage.\n  - If `updater` is a function, it will be passed the previous value\n\n### `HeaderGroup` Properties\n\nThe following additional properties are available on every `headerGroup` object returned by the table instance.\n\n- `headers: Array<Column>`\n  - **Required**\n  - The columns in this header group.\n- `getHeaderGroupProps: Function(?props)`\n  - **Required**\n  - This function is used to resolve any props needed for this header group's row.\n  - You can use the `getHeaderGroupProps` hook to extend its functionality.\n  - Custom props may be passed. **NOTE: Custom props will override built-in table props, so be careful!**\n\n### Column Properties\n\nThe following properties are available on every `Column` object returned by the table instance.\n\n- `id: String`\n  - The resolved column ID from either the column's `accessor` or the column's hard-coded `id` property\n- `visible: Boolean`\n  - The resolved visible state for the column, derived from the column's `show` property\n- `render: Function(type: String | Function | Component, ?props)`\n  - This function is used to render content in context of a column.\n  - If `type` is a string, will render using the `column[type]` renderer. React Table ships with default `Header` renderers. Other renderers like `Filter` are available via hooks like `useFilters`.\n  - If a function or component is passed instead of a string, it will be be passed the table instance and column model as props and is expected to return any valid JSX.\n- `getHeaderProps: Function(?props)`\n  - **Required**\n  - This function is used to resolve any props needed for this column's header cell.\n  - You can use the `getHeaderProps` hook to extend its functionality.\n  - Custom props may be passed. **NOTE: Custom props will override built-in table props, so be careful!**\n\n### Row Properties\n\nThe following additional properties are available on every `row` object returned by the table instance.\n\n- `cells: Array<Cell>`\n  - An array of `Cell` objects containing properties and functions specific to the row and column it belongs to.\n  - See [Cell Properties](#cell-properties) for more information\n- `values: Object<columnID: any>`\n  - A map of this row's **resolved** values by columnID, eg. `{ firstName: 'Tanner', lastName: 'Linsley' }`\n- `getRowProps: Function(?props)`\n  - **Required**\n  - This function is used to resolve any props needed for this row.\n  - You can use the `getRowProps` hook to extend its functionality.\n  - Custom props may be passed. **NOTE: Custom props will override built-in table props, so be careful!**\n- `index: Int`\n  - The index of the original row in the `data` array that was passed to `useTable`. If this row is a subRow, it is the original index within the parent row's subRows array\n- `original: Object`\n  - The original row object from the `data` array that was used to materialize this row.\n- `path: Array<string>`\n  - This array is the sequential path of indices one could use to navigate to it, eg. a row path of `[3, 1, 0]` would mean that it is the **first** subRow of a parent that is the **second** subRow of a parent that is the **fourth** row in the original `data` array.\n  - This array is used with plugin hooks like `useExpanded` and `useGroupBy` to compute expanded states for individual rows.\n- `subRows: Array<Row>`\n  - If subRows were detect on the original data object, this will be an array of those materialized row objects.\n- `state: Object`\n\n  - The current state of the row. It's lifespan is attached to that of the original `data` array. When the raw `data` is changed, this state value is reset to the row's initial value (using the `initialRowStateKey` option).\n  - Can be updated via `instance.setRowState` or the row's `setState` function.\n\n### Cell Properties\n\nThe following additional properties are available on every `Cell` object returned in an array of `cells` on every row object.\n\n- `column: Column`\n  - The corresponding column object for this cell\n- `row: Row`\n  - The corresponding row object for this cell\n- `value: any`\n  - The **resolved** value for this cell.\n  - By default, this value is displayed on the table via the default `Cell` renderer. To override the way a cell displays\n- `getCellProps: Function(?props)`\n  - **Required**\n  - This function is used to resolve any props needed for this cell.\n  - You can use the `getCellProps` hook to extend its functionality.\n  - Custom props may be passed. **NOTE: Custom props will override built-in table props, so be careful!**\n- `render: Function(type: String | Function | Component, ?props)`\n  - **Required**\n  - This function is used to render content in context of a cell.\n  - If `type` is a string, will render using the `column[type]` renderer. React Table ships with a default `Cell` renderer. Other renderers like `Aggregated` are available via hooks like `useFilters`.\n  - If a function or component is passed instead of a string, it will be be passed the table instance and cell model as props and is expected to return any valid JSX.\n\n### Example\n\n```js\nfunction App() {\n  const columns = React.useMemo(\n    () => [\n      {\n        Header: 'Name',\n        columns: [\n          {\n            Header: 'First Name',\n            accessor: 'firstName',\n          },\n          {\n            Header: 'Last Name',\n            accessor: 'lastName',\n          },\n        ],\n      },\n    ],\n    []\n  )\n\n  const data = [\n    {\n      firstName: 'Tanner',\n      lastName: 'Linsley',\n    },\n    {\n      firstName: 'Shawn',\n      lastName: 'Wang',\n    },\n    {\n      firstName: 'Kent C.',\n      lastName: 'Dodds',\n    },\n    {\n      firstName: 'Ryan',\n      lastName: 'Florence',\n    },\n  ]\n\n  return <MyTable columns={columns} data={data} />\n}\n\nfunction MyTable({ columns, data }) {\n  const { getTableProps, headerGroups, rows, prepareRow } = useTable({\n    columns,\n    data,\n  })\n\n  return (\n    <table {...getTableProps()}>\n      <thead>\n        {headerGroups.map(headerGroup => (\n          <tr {...headerGroup.getHeaderGroupProps()}>\n            {headerGroup.headers.map(column => (\n              <th {...column.getHeaderProps()}>{column.render('Header')}</th>\n            ))}\n          </tr>\n        ))}\n      </thead>\n      <tbody>\n        {rows.map(\n          (row, i) =>\n            prepareRow(row) || (\n              <tr {...row.getRowProps()}>\n                {row.cells.map(cell => {\n                  return <td {...cell.getCellProps()}>{cell.render('Cell')}</td>\n                })}\n              </tr>\n            )\n        )}\n      </tbody>\n    </table>\n  )\n}\n```\n\n## `useSortBy`\n\n- Plugin Hook\n- Optional\n\n`useSortBy` is the hook that implements **row sorting**. It also support multi-sort (keyboard required).\n\n- Multi-sort is enabled by default\n- To sort the table via UI, attach the props generated from each column's `getSortByToggleProps()`, then click any of those elements.\n- To multi-sort the table via UI, hold `shift` while clicking on any of those same elements that have the props from `getSortByToggleProps()` attached.\n- To programmatically sort (or multi-sort) any column, use the `toggleSortBy` method located on the instance or each individual column.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `state[0].sortBy: Array<Object<id: columnID, desc: Bool>>`\n  - Must be **memoized**\n  - An array of sorting objects. If there is more than one object in the array, multi-sorting will be enabled. Each sorting object should contain an `id` key with the corresponding column ID to sort by. An optional `desc` key may be set to true or false to indicated ascending or descending sorting for that column. This information is stored in state since the table is allowed to manipulate the filter through user interaction.\n- `manualSorting: Bool`\n  - Enables sorting detection functionality, but does not automatically perform row sorting. Turn this on if you wish to implement your own sorting outside of the table (eg. server-side or manual row grouping/nesting)\n- `disableSorting: Bool`\n  - Disables sorting for every column in the entire table.\n- `disableMultiSort: Bool`\n  - Disables multi-sorting for the entire table.\n- `disableSortRemove: Bool`\n  - If true, the un-sorted state will not be available to columns once they have been sorted.\n- `disableMultiRemove: Bool`\n  - If true, the un-sorted state will not be available to multi-sorted columns.\n- `orderByFn: Function`\n  - Must be **memoizd**\n  - Defaults to the built-in [default orderBy function](TODO)\n  - This function is responsible for composing multiple sorting functions together for multi-sorting, and also handles both the directional sorting and stable-sorting tie breaking. Rarely would you want to override this function unless you have a very advanced use-case that requires it.\n- `sortTypes: Object<sortKey: sortType>`\n  - Must be **memoized**\n  - Allows overriding or adding additional sort types for columns to use. If a column's sort type isn't found on this object, it will default to using the [built-in sort types](TODO).\n  - For more information on sort types, see [Sorting](TODO)\n\n### Column Options\n\nThe following options are supported on any `Column` object passed to the `columns` options in `useTable()`\n\n- `disableSorting: Bool`\n  - Optional\n  - Defualts to `false`\n  - If set to `true`, the sorting for this column will be disabled\n- `sortDescFirst: Bool`\n  - Optional\n  - Defaults to `false`\n  - If set to `true`, the first sort direction for this column will be descending instead of ascending\n- `sortInverted: Bool`\n  - Optional\n  - Defaults to `false`\n  - If set to `true`, the underlying sorting direction will be inverted, but the UI will not.\n  - This may be useful in situations where positive and negative connotation is inverted, eg. a Golfing score where a lower score is considered more positive than a higher one.\n- `sortType: String | Function`\n  - If a **function** is passed, it must be **memoized**\n  - Defaults to [`alphanumeric`](TODO)\n  - The resolved function from the this string/function will be used to sort the this column's data.\n    - If a `string` is passed, the function with that name located on either the custom `sortTypes` option or the built-in sorting types object will be used. If\n    - If a `function` is passed, it will be used.\n  - For mor information on sort types, see [Sorting](TODO)\n\n### Instance Properties\n\nThe following values are provided to the table `instance`:\n\n- `rows: Array<Row>`\n  - An array of **sorted** rows.\n- `preSortedRows: Array<Row>`\n  - The array of rows that were originally sorted.\n- `toggleSortBy: Function(ColumnID: String, descending: Bool, isMulti: Bool) => void`\n  - This function can be used to programmatically toggle the sorting for any specific column\n\n### Column Properties\n\nThe following properties are available on every `Column` object returned by the table instance.\n\n- `canSort: Bool`\n  - Denotes whether a column is sortable or not depending on if it has a valid accessor/data model or is manually disabled via an option.\n- `toggleSortBy: Function(descending, multi) => void`\n  - This function can be used to programmatically toggle the sorting for this column.\n  - This function is similar to the `instance`-level `toggleSortBy`, however, passing a columnID is not required since it is located on a `Column` object already.\n- `getSortByToggleProps: Function(props) => props`\n  - **Required**\n  - This function is used to resolve any props needed for this column's UI that is responsible for toggling the sort direction when the user clicks it.\n  - You can use the `getSortByToggleProps` hook to extend its functionality.\n  - Custom props may be passed. **NOTE: Custom props may override built-in sortBy props, so be careful!**\n- `sorted: Boolean`\n  - Denotes whether this column is currently being sorted\n- `sortedIndex: Int`\n  - If the column is currently sorted, this integer will be the index in the `sortBy` array from state that corresponds to this column.\n  - If this column is not sorted, the index will always be `-1`\n- `sortedDesc: Bool`\n  - If the column is currently sorted, this denotes whether the column's sort direction is descending or not.\n  - If `true`, the column is sorted `descending`\n  - If `false`, the column is sorted `ascending`\n  - If `undefined`, the column is not currently being sorted.\n\n### Example\n\n```js\nfunction Table({ columns, data }) {\n  // Set some default sorting state\n  const state = useTableState({ sortBy: [{ id: 'firstName', desc: true }] })\n\n  const { getTableProps, headerGroups, rows, prepareRow } = useTable(\n    {\n      columns,\n      data,\n    },\n    useSortBy // Use the sortBy hook\n  )\n\n  return (\n    <table {...getTableProps()}>\n      <thead>\n        {headerGroups.map(headerGroup => (\n          <tr {...headerGroup.getHeaderGroupProps()}>\n            {headerGroup.headers.map(column => (\n              // Add the sorting props to control sorting. For this example\n              // we can add them into the header props\n              <th {...column.getHeaderProps(column.getSortByToggleProps())}>\n                {column.render('Header')}\n                <span>\n                  {/* Add a sort direction indicator */}\n                  <span>\n                    {column.sorted ? (column.sortedDesc ? ' 🔽' : ' 🔼') : ''}\n                  </span>\n                  {/* Add a sort index indicator */}\n                  <span>({column.sorted ? column.sortedIndex + 1 : ''})</span>\n                </span>\n              </th>\n            ))}\n          </tr>\n        ))}\n      </thead>\n      <tbody>\n        {rows.map(\n          (row, i) =>\n            prepareRow(row) || (\n              <tr {...row.getRowProps()}>\n                {row.cells.map(cell => {\n                  return <td {...cell.getCellProps()}>{cell.render('Cell')}</td>\n                })}\n              </tr>\n            )\n        )}\n      </tbody>\n    </table>\n  )\n}\n```\n\n## `useFilters`\n\n- Plugin Hook\n- Optional\n\n`useFilters` is the hook that implements **row filtering**.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `state[0].filters: Object<columnID: filterValue>`\n  - Must be **memoized**\n  - An object of columnID's and their corresponding filter values. This information is stored in state since the table is allowed to manipulate the filter through user interaction.\n- `defaultFilter: String | Function`\n  - If a **function** is passed, it must be **memoized**\n  - Defaults to [`text`](TODO)\n  - The function (or resolved function from the string) will be used as the default/fallback filter method for every column that has filtering enabled.\n    - If a `string` is passed, the function with that name located on the `filterTypes` option object will be used.\n    - If a `function` is passed, it will be used.\n  - For mor information on filter types, see [Filtering](TODO)\n- `manualFilters: Bool`\n  - Enables filter detection functionality, but does not automatically perform row filtering.\n  - Turn this on if you wish to implement your own row filter outside of the table (eg. server-side or manual row grouping/nesting)\n- `disableFilters: Bool`\n  - Disables filtering for every column in the entire table.\n- `filterTypes: Object<filterKey: filterType>`\n  - Must be **memoized**\n  - Allows overriding or adding additional filter types for columns to use. If a column's filter type isn't found on this object, it will default to using the [built-in filter types](TODO).\n  - For mor information on filter types, see [Filtering](TODO)\n\n### Column Options\n\nThe following options are supported on any `Column` object passed to the `columns` options in `useTable()`\n\n- `Filter: Function | React.Component => JSX`\n  - **Required**\n  - Receives the table instance and column model as props\n  - Must return valid JSX\n  - This function (or component) is used to render this column's filter UI, eg.\n- `disableFilters: Bool`\n  - Optional\n  - If set to `true`, will disable filtering for this column\n- `filter: String | Function`\n  - Optional\n  - Defaults to [`text`](TODO)\n  - The resolved function from the this string/function will be used to filter the this column's data.\n    - If a `string` is passed, the function with that name located on either the custom `filterTypes` option or the built-in filtering types object will be used. If\n    - If a `function` is passed, it will be used directly.\n  - For mor information on filter types, see [Filtering](TODO)\n  - If a **function** is passed, it must be **memoized**\n\n### Instance Properties\n\nThe following values are provided to the table `instance`:\n\n- `rows: Array<Row>`\n  - An array of **filtered** rows.\n- `preFilteredRows: Array<Row>`\n  - The array of rows **used right before filtering**.\n  - Among many other use-cases, these rows are directly useful for building option lists in filters, since the resulting filtered `rows` do not contain every possible option.\n- `setFilter: Function(columnID, filterValue) => void`\n  - An instance-level function used to update the filter value for a specific column.\n- `setAllFilters: Function(filtersObject) => void`\n  - An instance-level function used to update the values for **all** filters on the table, all at once.\n\n### Column Properties\n\nThe following properties are available on every `Column` object returned by the table instance.\n\n- `canFilter: Bool`\n  - Denotes whether a column is filterable or not depending on if it has a valid accessor/data model or is manually disabled via an option.\n- `setFilter: Function(filterValue) => void`\n  - An column-level function used to update the filter value for this column\n- `filterValue: any`\n  - The current filter value for this column, resolved from the table state's `filters` object\n- `preFilteredRows: Array<row>`\n  - The array of rows that were originally passed to this columns filter **before** they were filtered.\n  - This array of rows can be useful if building faceted filter options.\n\n### Example\n\n```js\n// A great library for fuzzy filtering/sorting items\nimport matchSorter from 'match-sorter'\n\nconst state = useTableState({ filters: { firstName: 'tanner' } })\n\nconst filterTypes = React.useMemo(() => ({\n  // Add a new fuzzyText filter type.\n  fuzzyText: (rows, id, filterValue) => {\n    return matchSorter(rows, filterValue, { keys: [row => row[id] })\n  },\n  // Or, override the default text filter to use\n  // \"startWith\"\n  text: (rows, id, filterValue) => {\n    return rows.filter(row => {\n      const rowValue = row.values[id]\n      return rowValue !== undefined\n        ? String(rowValue)\n            .toLowerCase()\n            .startsWith(String(filterValue).toLowerCase())\n        : true\n    })\n  }\n}), [matchSorter])\n\n// Override the default column filter to be our new `fuzzyText` filter type\nconst defaultColumn = React.useMemo(() => ({\n  filter: 'fuzzyText'\n}))\n\nconst { rows } = useTable(\n  {\n    // state[0].groupBy === ['firstName']\n    state,\n    manualFilters: false,\n    disableFilters: false,\n    // Pass our custom filter types\n    filterTypes,\n    defaultColumn\n  },\n  useFilters\n)\n```\n\n## `useGroupBy`\n\n- Plugin Hook\n- Optional\n\n`useGroupBy` is the hook that implements **row grouping and aggregation**.\n\n- Each column's `getGroupByToggleProps()` function can be used to generate the props needed to make a clickable UI element that will toggle the grouping on or off for a specific column.\n- Instance and column-level `toggleGroupBy` functions are also made available for programmatic grouping.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `state[0].groupBy: Array<String>`\n  - Must be **memoized**\n  - An array of groupBy ID strings, controlling which columns are used to calculate row grouping and aggregation. This information is stored in state since the table is allowed to manipulate the groupBy through user interaction.\n- `manualGroupBy: Bool`\n  - Enables groupBy detection and functionality, but does not automatically perform row grouping.\n  - Turn this on if you wish to implement your own row grouping outside of the table (eg. server-side or manual row grouping/nesting)\n- `disableGrouping: Bool`\n  - Disables groupBy for the entire table.\n- `aggregations: Object<aggregationKey: aggregationFn>`\n  - Must be **memoized**\n  - Allows overriding or adding additional aggregation functions for use when grouping/aggregating row values. If an aggregation key isn't found on this object, it will default to using the [built-in aggregation functions](TODO)\n- `groupByFn: Function`\n  - Must be **memoized**\n  - Defaults to [`defaultGroupByFn`](TODO)\n  - This function is responsible for grouping rows based on the `state.groupBy` keys provided. It's very rare you would need to customize this function.\n\n### Column Options\n\nThe following options are supported on any `Column` object passed to the `columns` options in `useTable()`\n\n- `Aggregated: Function | React.Component => JSX`\n  - Optional\n  - Defaults to this column's `Cell` formatter\n  - Receives the table instance and cell model as props\n  - Must return valid JSX\n  - This function (or component) formats this column's value when it is being grouped and aggregated, eg. If this column was showing the number of visits for a user to a website and it was currently being grouped to show an **average** of the values, the `Aggregated` function for this column could format that value to `1,000 Avg. Visits`\n- `disableGrouping: Boolean`\n  - Defaults to `true`\n  - If `true`, this column is able to be grouped.\n\n### Instance Properties\n\nThe following values are provided to the table `instance`:\n\n- `rows: Array<Row>`\n  - An array of **grouped and aggregated** rows.\n- `preGroupedRows: Array<Row>`\n  - The array of rows originally used to create the grouped rows.\n- `toggleGroupBy: Function(columnID: String, ?set: Bool) => void`\n  - This function can be used to programmatically set or toggle the groupBy state for a specific column.\n\n### Column Properties\n\nThe following properties are available on every `Column` object returned by the table instance.\n\n- `canGroupBy: Boolean`\n  - If `true`, this column is able to be grouped.\n  - This is resolved from the column having a valid accessor / data model, and not being manually disabled via other `useGroupBy` related options\n- `grouped: Boolean`\n  - If `true`, this column is currently being grouped\n- `groupedIndex: Int`\n  - If this column is currently being grouped, this integer is the index of this column's ID in the table state's `groupBy` array.\n- `toggleGroupBy: Function(?set: Bool) => void`\n  - This function can be used to programmatically set or toggle the groupBy state fo this column.\n- `getGroupByToggleProps: Function(props) => props`\n  - **Required**\n  - This function is used to resolve any props needed for this column's UI that is responsible for toggling grouping when the user clicks it.\n  - You can use the `getGroupByToggleProps` hook to extend its functionality.\n  - Custom props may be passed. **NOTE: Custom props may override built-in sortBy props, so be careful!**\n\n### Row Properties\n\nThe following properties are available on every `Row` object returned by the table instance.\n\n- `groupByID: String`\n  - The column ID for which this row is being grouped.\n  - Will be `undefined` if the row is an original row from `data` and not a materialized one from the grouping.\n- `groupByVal: any`\n  - If the row is a materialized group row, this will be the grouping value that was used to create it.\n- `values: Object`\n  - Similar to a regular row, a materialized grouping row also has a `values` object\n  - This object contains the **aggregated** values for this row's sub rows\n- `subRows: Array<Row>`\n  - If the row is a materialized group row, this property is the array of materialized subRows that were grouped inside of this row.\n- `depth: Int`\n  - If the row is a materialized group row, this is the grouping depth at which this row was created.\n- `path: Array<String|Int>`\n  - Similar to normal `Row` objects, materialized grouping rows also have a path array. The keys inside it though are not integers like nested normal rows though. Since they are not rows that can be traced back to an original data row, they are given a unique path based on their `groupByVal`\n  - If a row is a grouping row, it will have a path like `['Single']` or `['Complicated', 'Anderson']`, where `Single`, `Complicated`, and `Anderson` would all be derived from their row's `groupByVal`.\n\n### Cell Properties\n\nThe following additional properties are available on every `Cell` object returned in an array of `cells` on every row object.\n\n- `grouped: Bool`\n  - If `true`, this cell is a grouped cell, meaning it contains a grouping value and should usually display and expander.\n- `repeatedValue: Bool`\n  - If `true`, this cell is a repeated value cell, meaning it contains a value that is already being displayed elsewhere (usually by a parent row's cell).\n  - Most of the time, this cell is not required to be displayed and can safely be hidden during rendering\n- `aggregated: Bool`\n  - If `true`, this cell's value has been aggregated and should probably be rendered with the `Aggregated` cell renderer.\n\n### Example\n\n```js\nfunction Table({ columns, data }) {\n  const {\n    getTableProps,\n    headerGroups,\n    rows,\n    prepareRow,\n    state: [{ groupBy, expanded }],\n  } = useTable(\n    {\n      columns,\n      data,\n    },\n    useGroupBy,\n    useExpanded // useGroupBy would be pretty useless without useExpanded ;)\n  )\n\n  // We don't want to render all 2000 rows for this example, so cap\n  // it at 20 for this use case\n  const firstPageRows = rows.slice()\n\n  return (\n    <table {...getTableProps()}>\n      <thead>\n        {headerGroups.map(headerGroup => (\n          <tr {...headerGroup.getHeaderGroupProps()}>\n            {headerGroup.headers.map(column => (\n              <th {...column.getHeaderProps()}>\n                {column.canGroupBy ? (\n                  // If the column can be grouped, let's add a toggle\n                  <span {...column.getGroupByToggleProps()}>\n                    {column.grouped ? '🛑' : '👊'}\n                  </span>\n                ) : null}\n                {column.render('Header')}\n              </th>\n            ))}\n          </tr>\n        ))}\n      </thead>\n      <tbody>\n        {firstPageRows.map(\n          (row, i) =>\n            prepareRow(row) || (\n              <tr {...row.getRowProps()}>\n                {row.cells.map(cell => {\n                  return (\n                    <td {...cell.getCellProps()}>\n                      {cell.grouped ? (\n                        // If it's a grouped cell, add an expander and row count\n                        <>\n                          <span\n                            style={{\n                              cursor: 'pointer',\n                            }}\n                            onClick={() => row.toggleExpanded()}\n                          >\n                            {row.isExpanded ? '👇' : '👉'}\n                          </span>\n                          {cell.render('Cell')} ({row.subRows.length})\n                        </>\n                      ) : cell.aggregated ? (\n                        // If the cell is aggregated, use the Aggregated\n                        // renderer for cell\n                        cell.render('Aggregated')\n                      ) : cell.repeatedValue ? null : ( // For cells with repeated values, render null\n                        // Otherwise, just render the regular cell\n                        cell.render('Cell')\n                      )}\n                    </td>\n                  )\n                })}\n              </tr>\n            )\n        )}\n      </tbody>\n    </table>\n  )\n}\n\n// This is a custom aggregator that\n// takes in an array of values and\n// returns the rounded median\nfunction roundedMedian(values) {\n  let min = values[0] || ''\n  let max = values[0] || ''\n\n  values.forEach(value => {\n    min = Math.min(min, value)\n    max = Math.max(max, value)\n  })\n\n  return Math.round((min + max) / 2)\n}\n\nfunction App() {\n  const columns = React.useMemo(\n    () => [\n      {\n        Header: 'Name',\n        columns: [\n          {\n            Header: 'First Name',\n            accessor: 'firstName',\n            // Use a two-stage aggregator here to first\n            // count the total rows being aggregated,\n            // then sum any of those counts if they are\n            // aggregated further\n            aggregate: ['sum', 'count'],\n            Aggregated: ({ value }) => `${value} Names`,\n          },\n          {\n            Header: 'Last Name',\n            accessor: 'lastName',\n            // Use another two-stage aggregator here to\n            // first count the UNIQUE values from the rows\n            // being aggregated, then sum those counts if\n            // they are aggregated further\n            aggregate: ['sum', 'uniqueCount'],\n            Aggregated: ({ value }) => `${value} Unique Names`,\n          },\n        ],\n      },\n      {\n        Header: 'Info',\n        columns: [\n          {\n            Header: 'Age',\n            accessor: 'age',\n            // Aggregate the average age of visitors\n            aggregate: 'average',\n            Aggregated: ({ value }) => `${value} (avg)`,\n          },\n          {\n            Header: 'Visits',\n            accessor: 'visits',\n            // Aggregate the sum of all visits\n            aggregate: 'sum',\n            Aggregated: ({ value }) => `${value} (total)`,\n          },\n          {\n            Header: 'Status',\n            accessor: 'status',\n          },\n          {\n            Header: 'Profile Progress',\n            accessor: 'progress',\n            // Use our custom roundedMedian aggregator\n            aggregate: roundedMedian,\n            Aggregated: ({ value }) => `${value} (med)`,\n          },\n        ],\n      },\n    ],\n    []\n  )\n\n  const data = React.useMemo(() => makeData(10000), [])\n\n  return <Table columns={columns} data={data} />\n}\n```\n\n## `useExpanded`\n\n- Plugin Hook\n- Optional\n\n`useExpanded` is the hook that implements **row expanding**. It is most often used with `useGroupBy` to expand grouped rows or on its own with nested `subRows` in tree-li,ke `data` sets, but is not limited to these use-cases. It supports expanding rows both via internal table state and also via a hard-coded key on the raw row model.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `state[0].expanded: Object<[pathIndex]: Boolean | ExpandedStateObject>`\n  - Optional\n  - Must be **memoized**\n  - An nested object of expanded paths.\n  - A `pathIndex` can be set as the key and its value set to `true` to expand that row's subRows into view. For example, if `{ '3': true }` was passed as the `expanded` state, the **4th row in the original data array** would be expanded.\n  - For nested expansion, you may **use another object** instead of a Boolean to expand sub rows. For example, if `{ '3': { '5' : true }}` was passed as the `expanded` state, then the **6th subRow of the 4th row and the 4th row of the original data array** would be expanded.\n  - This information is stored in state since the table is allowed to manipulate the filter through user interaction.\n- `subRowsKey: String`\n  - Optional\n  - See the [useTable hook](#table-options) for more details\n- `nestExpandedRows: Bool`\n  - Optional\n  - Defaults to `false`\n  - If set to `false`, expanded rows will not be paginated. Thus, any expanded subrows would potentially increase the size of any given page by the amount of total expanded subrows on the page.\n- `manualExpandedKey: String`\n  - Optional\n  - Defaults to `expanded`\n  - This string is used as the key to detect manual expanded state on any given row. For example, if a raw data row like `{ name: 'Tanner Linsley', friends: [...], expanded: true}` was detected, it would always be expanded, regardless of state.\n\n### Instance Properties\n\nThe following properties are available on the table instance returned from `useTable`\n\n- `rows: Array<Row>`\n  - An array of **sorted** rows.\n\n### Row Properties\n\nThe following additional properties are available on every `row` object returned by the table instance.\n\n- `isExpanded: Bool`\n  - If `true`, this row is in an expanded state.\n- `toggleExpanded: Function(?isExpanded: Bool) => void`\n  - This function will toggle the expanded state of a row between `true` and `false` or, if an `isExpanded` boolean is passed to the function, it will be set as the new `isExpanded` value.\n  - Rows with a hard-coded `manualExpandedKey` (defaults to `expanded`) set to `true` are not affected by this function or the internal expanded state.\n\n### Example\n\n```js\nfunction Table({ columns: userColumns, data }) {\n  const {\n    getTableProps,\n    headerGroups,\n    rows,\n    prepareRow,\n    state: [{ expanded }],\n  } = useTable(\n    {\n      columns: userColumns,\n      data,\n    },\n    useExpanded // Use the useExpanded plugin hook\n  )\n\n  return (\n    <>\n      <pre>\n        <code>{JSON.stringify({ expanded }, null, 2)}</code>\n      </pre>\n      <table {...getTableProps()}>\n        <thead>\n          {headerGroups.map(headerGroup => (\n            <tr {...headerGroup.getHeaderGroupProps()}>\n              {headerGroup.headers.map(column => (\n                <th {...column.getHeaderProps()}>{column.render('Header')}</th>\n              ))}\n            </tr>\n          ))}\n        </thead>\n        <tbody>\n          {rows.map(\n            (row, i) =>\n              prepareRow(row) || (\n                <tr {...row.getRowProps()}>\n                  {row.cells.map(cell => {\n                    return (\n                      <td {...cell.getCellProps()}>{cell.render('Cell')}</td>\n                    )\n                  })}\n                </tr>\n              )\n          )}\n        </tbody>\n      </table>\n      <br />\n      <div>Showing the first 20 results of {rows.length} rows</div>\n    </>\n  )\n}\n\nfunction App() {\n  const columns = React.useMemo(\n    () => [\n      {\n        // Build our expander column\n        Header: () => null, // No header, please\n        id: 'expander', // Make sure it has an ID\n        Cell: ({ row }) =>\n          // Use the row.canExpand and row.getExpandedToggleProps prop getter\n          // to build the toggle for expanding a row\n          row.canExpand ? (\n            <span\n              {...row.getExpandedToggleProps({\n                style: {\n                  // We can even use the row.depth property\n                  // and paddingLeft to indicate the depth\n                  // of the row\n                  paddingLeft: `${row.depth * 2}rem`,\n                },\n              })}\n            >\n              {row.isExpanded ? '👇' : '👉'}\n            </span>\n          ) : null,\n      },\n      {\n        Header: 'Name',\n        columns: [\n          {\n            Header: 'First Name',\n            accessor: 'firstName',\n          },\n          {\n            Header: 'Last Name',\n            accessor: 'lastName',\n          },\n        ],\n      },\n      {\n        Header: 'Info',\n        columns: [\n          {\n            Header: 'Age',\n            accessor: 'age',\n          },\n          {\n            Header: 'Visits',\n            accessor: 'visits',\n          },\n          {\n            Header: 'Status',\n            accessor: 'status',\n          },\n          {\n            Header: 'Profile Progress',\n            accessor: 'progress',\n          },\n        ],\n      },\n    ],\n    []\n  )\n\n  const data = React.useMemo(() => makeData(5, 5, 5), [])\n\n  return <Table columns={columns} data={data} />\n}\n```\n\n## `usePagination`\n\n- Plugin Hook\n- Optional\n\n`usePagination` is the hook that implements **row pagination**. It can be used for both client-side pagination or server-side pagination. For more information on pagination, see [Pagination](TODO)\n\n> **NOTE** Some server-side pagination implementations do not use page index and instead use **token based pagination**! If that's the case, please use the `useTokenPagination` plugin instead.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `state[0].pageSize: Int`\n  - **Required**\n  - Defaults to `10`\n  - Determines the amount of rows on any given page\n- `state[0].pageIndex: Int`\n  - **Required**\n  - Defaults to `0`\n  - The index of the page that should be displayed via the `page` instance value\n- `pageCount: Int`\n  - **Required if `manualPagination` is set to `true`**\n  - If `manualPagination` is `true`, then this value used to determine the amount of pages available. This amount is then used to materialize the `pageOptions` and also compute the `canNextPage` values on the table instance.\n- `manualPagination: Bool`\n  - Enables pagination functionality, but does not automatically perform row pagination.\n  - Turn this on if you wish to implement your own pagination outside of the table (eg. server-side pagination or any other manual pagination technique)\n- `disablePageResetOnDataChange`\n  - Defaults to `false`\n  - Normally, any changes detected to `rows`, `state.filters`, `state.groupBy`, or `state.sortBy` will trigger the `pageIndex` to be reset to `0`\n  - If set to `true`, the `pageIndex` will not be automatically set to `0` when these dependencies change.\n\n### Instance Properties\n\nThe following values are provided to the table `instance`:\n\n- `pages: Array<page>`\n  - An array of every generated `page`, each containing its respective rows.\n- `page: Array<row>`\n  - An array of rows for the **current** page, determined by the current `pageIndex` value.\n- `pageCount: Int`\n  - If `manualPagination` is set to `false`, this is the total amount of pages available in the table based on the current `pageSize` value\n  - if `manualPagination` is set to `true`, this is merely the same `pageCount` option that was passed in the table options.\n- `pageOptions: Array<Int>`\n  - An array of zero-based index integers corresponding to available pages in the table.\n  - This can be useful for generating things like select interfaces for the user to select a page from a list, instead of manually paginating to the desired page.\n- `canPreviousPage: Bool`\n  - If there are pages and the current `pageIndex` is greater than `0`, this will be `true`\n- `canNextPage:`\n  - If there are pages and the current `pageIndex` is less than `pageCount`, this will be `true`\n- `gotoPage: Function(pageIndex)`\n  - This function, when called with a valid `pageIndex`, will set `pageIndex` to that value.\n  - If the passed index is outside of the valid `pageIndex` range, then this function will do nothing.\n- `previousPage: Function`\n  - This function decreases `state.pageIndex` by one.\n  - If there are no pages or `canPreviousPage` is false, this function will do nothing.\n- `nextPage: Function`\n  - This function increases `state.pageIndex` by one.\n  - If there are no pages or `canNextPage` is false, this function will do nothing.\n- `setPageSize: Function(pageSize)`\n  - This function sets `state.pageSize` to the new value.\n  - As a result of a pageSize change, a new `state.pageIndex` is also calculated. It is calculated via `Math.floor(currentTopRowIndex / newPageSize)`\n- `pageIndex: Int`\n  - This is the resolved `state.pageIndex` value.\n- `pageSize: Int`\n  - This is the resolved `state.pageSize` value.\n\n### Example\n\n```js\nfunction Table({ columns, data }) {\n  // Use the state and functions returned from useTable to build your UI\n  const {\n    getTableProps,\n    headerGroups,\n    prepareRow,\n    page, // Instead of using 'rows', we'll use page,\n    // which has only the rows for the active page\n\n    // The rest of these things are super handy, too ;)\n    canPreviousPage,\n    canNextPage,\n    pageOptions,\n    pageCount,\n    gotoPage,\n    nextPage,\n    previousPage,\n    setPageSize,\n    state: [{ pageIndex, pageSize }],\n  } = useTable(\n    {\n      columns,\n      data,\n    },\n    usePagination\n  )\n\n  // Render the UI for your table\n  return (\n    <>\n      <pre>\n        <code>\n          {JSON.stringify(\n            {\n              pageIndex,\n              pageSize,\n              pageCount,\n              canNextPage,\n              canPreviousPage,\n            },\n            null,\n            2\n          )}\n        </code>\n      </pre>\n      <table {...getTableProps()}>\n        <thead>\n          {headerGroups.map(headerGroup => (\n            <tr {...headerGroup.getHeaderGroupProps()}>\n              {headerGroup.headers.map(column => (\n                <th {...column.getHeaderProps()}>{column.render('Header')}</th>\n              ))}\n            </tr>\n          ))}\n        </thead>\n        <tbody>\n          {page.map(\n            (row, i) =>\n              prepareRow(row) || (\n                <tr {...row.getRowProps()}>\n                  {row.cells.map(cell => {\n                    return (\n                      <td {...cell.getCellProps()}>{cell.render('Cell')}</td>\n                    )\n                  })}\n                </tr>\n              )\n          )}\n        </tbody>\n      </table>\n      {/* \n        Pagination can be built however you'd like. \n        This is just a very basic UI implementation:\n      */}\n      <div className=\"pagination\">\n        <button onClick={() => gotoPage(0)} disabled={!canPreviousPage}>\n          {'<<'}\n        </button>{' '}\n        <button onClick={() => previousPage()} disabled={!canPreviousPage}>\n          {'<'}\n        </button>{' '}\n        <button onClick={() => nextPage()} disabled={!canNextPage}>\n          {'>'}\n        </button>{' '}\n        <button onClick={() => gotoPage(pageCount - 1)} disabled={!canNextPage}>\n          {'>>'}\n        </button>{' '}\n        <span>\n          Page{' '}\n          <strong>\n            {pageIndex + 1} of {pageOptions.length}\n          </strong>{' '}\n        </span>\n        <span>\n          | Go to page:{' '}\n          <input\n            type=\"number\"\n            defaultValue={pageIndex + 1}\n            onChange={e => {\n              const page = e.target.value ? Number(e.target.value) - 1 : 0\n              gotoPage(page)\n            }}\n            style={{ width: '100px' }}\n          />\n        </span> <select\n          value={pageSize}\n          onChange={e => {\n            setPageSize(Number(e.target.value))\n          }}\n        >\n          {[10, 20, 30, 40, 50].map(pageSize => (\n            <option key={pageSize} value={pageSize}>\n              Show {pageSize}\n            </option>\n          ))}\n        </select>\n      </div>\n    </>\n  )\n}\n\nfunction App() {\n  const columns = React.useMemo(\n    () => [\n      {\n        Header: 'Name',\n        columns: [\n          {\n            Header: 'First Name',\n            accessor: 'firstName',\n          },\n          {\n            Header: 'Last Name',\n            accessor: 'lastName',\n          },\n        ],\n      },\n      {\n        Header: 'Info',\n        columns: [\n          {\n            Header: 'Age',\n            accessor: 'age',\n          },\n          {\n            Header: 'Visits',\n            accessor: 'visits',\n          },\n          {\n            Header: 'Status',\n            accessor: 'status',\n          },\n          {\n            Header: 'Profile Progress',\n            accessor: 'progress',\n          },\n        ],\n      },\n    ],\n    []\n  )\n\n  const data = React.useMemo(() => makeData(100000), [])\n\n  return (\n    <Styles>\n      <Table columns={columns} data={data} />\n    </Styles>\n  )\n}\n```\n\n## `useTokenPagination (Coming Soon)`\n\n- Plugin Hook\n- Optional\n\n`useTokenPagination` is the hook that **aids in implementing row pagination using tokens**. It is useful for server-side pagination implementations that use **tokens** instead of page index. For more information on pagination, see [Pagination](TODO)\n\n> Documentation Coming Soon...\n\n## `useRowSelect`\n\n- Plugin Hook\n- Optional\n\n`useRowSelect` is the hook that implements **basic row selection**. For more information on row selection, see [Row Selection](TODO)\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `state[0].selectedRows: Array<RowPathKey>`\n  - Optional\n  - Defaults to `[]`\n  - If a row's path key (eg. a row path of `[1, 3, 2]` would have a path key of `1.3.2`) is found in this array, it will have a selected state.\n- `manualRowSelectedKey: String`\n  - Optional\n  - Defaults to `selected`\n  - If this key is found on the **original** data row, and it is true, this row will be manually selected\n\n### Instance Properties\n\nThe following values are provided to the table `instance`:\n\n- `toggleRowSelected: Function(rowPath: String, ?set: Bool) => void`\n  - Use this function to toggle a row's selected state.\n  - Optionally pass `true` or `false` to set it to that state\n- `toggleRowSelectedAll: Function(?set: Bool) => void`\n  - Use this function to toggle all rows as select or not\n  - Optionally pass `true` or `false` to set all rows to that state\n- `getToggleAllRowsSelectedProps: Function(props) => props`\n  - Use this function to get the props needed for a **select all checkbox**.\n  - Props:\n    - `onChange: Function()`\n    - `style.cursor: 'pointer'`\n    - `checked: Bool`\n    - `title: 'Toggle All Rows Selected'`\n- `allRowsSelected: Bool`\n  - Will be `true` if all rows are selected.\n  - If at least one row is not selected, will be `false`\n\n### Example\n\n```js\nfunction Table({ columns, data }) {\n  // Use the state and functions returned from useTable to build your UI\n  const {\n    getTableProps,\n    headerGroups,\n    rows,\n    prepareRow,\n    state: [{ selectedRows }],\n  } = useTable(\n    {\n      columns,\n      data,\n    },\n    useRowSelect\n  )\n\n  // Render the UI for your table\n  return (\n    <>\n      <table {...getTableProps()}>\n        <thead>\n          {headerGroups.map(headerGroup => (\n            <tr {...headerGroup.getHeaderGroupProps()}>\n              {headerGroup.headers.map(column => (\n                <th {...column.getHeaderProps()}>{column.render('Header')}</th>\n              ))}\n            </tr>\n          ))}\n        </thead>\n        <tbody>\n          {rows.map(\n            (row, i) =>\n              prepareRow(row) || (\n                <tr {...row.getRowProps()}>\n                  {row.cells.map(cell => {\n                    return (\n                      <td {...cell.getCellProps()}>{cell.render('Cell')}</td>\n                    )\n                  })}\n                </tr>\n              )\n          )}\n        </tbody>\n      </table>\n      <p>Selected Rows: {selectedRows.length}</p>\n      <pre>\n        <code>{JSON.stringify({ selectedRows }, null, 2)}</code>\n      </pre>\n    </>\n  )\n}\n\nfunction App() {\n  const columns = React.useMemo(\n    () => [\n      // Let's make a column for selection\n      {\n        id: 'selection',\n        // The header can use the table's getToggleAllRowsSelectedProps method\n        // to render a checkbox\n        Header: ({ getToggleAllRowsSelectedProps }) => (\n          <div>\n            <input type=\"checkbox\" {...getToggleAllRowsSelectedProps()} />\n          </div>\n        ),\n        // The cell can use the individual row's getToggleRowSelectedProps method\n        // to the render a checkbox\n        Cell: ({ row }) => (\n          <div>\n            <input type=\"checkbox\" {...row.getToggleRowSelectedProps()} />\n          </div>\n        ),\n      },\n      {\n        Header: 'Name',\n        columns: [\n          {\n            Header: 'First Name',\n            accessor: 'firstName',\n          },\n          {\n            Header: 'Last Name',\n            accessor: 'lastName',\n          },\n        ],\n      },\n      {\n        Header: 'Info',\n        columns: [\n          {\n            Header: 'Age',\n            accessor: 'age',\n          },\n          {\n            Header: 'Visits',\n            accessor: 'visits',\n          },\n          {\n            Header: 'Status',\n            accessor: 'status',\n          },\n          {\n            Header: 'Profile Progress',\n            accessor: 'progress',\n          },\n        ],\n      },\n    ],\n    []\n  )\n\n  const data = React.useMemo(() => makeData(10), [])\n\n  return <Table columns={columns} data={data} />\n}\n```\n\n## `useRowState`\n\n- Plugin Hook\n- Optional\n\n`useRowState` is a plugin hook that implements **basic state management for _prepared_ rows and their cells**.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `state[0].rowState: Object<RowPathKey:Object<any, cellState: {columnID: Object}>>`\n  - Optional\n  - Defaults to `{}`\n  - If a row's path key (eg. a row path of `[1, 3, 2]` would have a path key of `1.3.2`) is found in this array, it will have the state of the value corresponding to that key.\n  - Individual row states can contain anything, but they also contain a `cellState` key, which provides cell-level state based on column ID's to every\n    **prepared** cell in the table.\n- `initialRowStateAccessor: Function`\n  - Optional\n  - This function may optionally return the initial state for a row.\n  - If this function is defined, it will be passed a `Row` object, from which you can return a value to use as the initial state, eg. `row => row.original.initialState`\n\n### Instance Properties\n\nThe following values are provided to the table `instance`:\n\n- `setRowState: Function(rowPath: Array<string>, updater: Function | Any) => void`\n  - Use this function to programmatically update the state of a row.\n  - `updater` can be a function or value. If a `function` is passed, it will receive the current value and expect a new one to be returned.\n- `setCellState: Function(rowPath: Array<string>, columnID: String, updater: Function | Any) => void`\n  - Use this function to programmatically update the cell of a row.\n  - `updater` can be a function or value. If a `function` is passed, it will receive the current value and expect a new one to be returned.\n\n### Row Properties\n\nThe following additional properties are available on every **prepared** `row` object returned by the table instance.\n\n- `state: Object`\n  - This is the state object for each row, pre-mapped to the row from the table state's `rowState` object via `rowState[row.path.join('.')]`\n  - May also contain a `cellState` key/value pair, which is used to provide individual cell states to this row's cells\n- `setState: Function(updater: Function | any)`\n  - Use this function to programmatically update the state of a row.\n  - `updater` can be a function or value. If a `function` is passed, it will receive the current value and expect a new one to be returned.\n\n### Cell Properties\n\nThe following additional properties are available on every `Cell` object returned in an array of `cells` on every row object.\n\n- `state: Object`\n  - This is the state object for each cell, pre-mapped to the cell from the table state's `rowState` object via `rowState[row.path.join('.')].cellState[columnID]`\n- `setState: Function(updater: Function | any)`\n  - Use this function to programmatically update the state of a cell.\n  - `updater` can be a function or value. If a `function` is passed, it will receive the current value and expect a new one to be returned.\n\n### Example\n\n> Have an example of using useRowState? Submit a PR to add it here!\n\n## `useTableState`\n\n- Optional\n\n`useTableState` is a hook that allows you to hoist the table state out of the table into your own code. You should use this hook if you need to:\n\n- Know about the internal table state\n- React to changes to the internal table state\n- Manually control or override the internal table state\n\nSome common use cases for this hook are:\n\n- Reacting to `pageIndex` and `pageSize` changes for server-side pagination to fetch new data\n- Disallowing specific states via a custom state reducer\n- Enabling parent/unrelated components to manipulate the table state\n\n### Hook Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `initialState: Object`\n  - Optional\n  - The initial state object for the table.\n  - This object is **merged over the `defaultState` object** (eg. `{...defaultState, ...initialState}`) that React Table and its hooks use to register default state to produce the final initial state object passed to the resolved `useState` hook.\n- `overrides: Object`\n  - Optional\n  - Must be **memoized**\n  - This object is **merged over the current table state** (eg. `{...state, ...overrides}`) to produce the final state object that is then passed to the `useTable` options\n- `options: Object`\n  - `reducer: Function(oldState, newState) => finalState`\n    - Optional\n    - Inspired by Kent C. Dodd's [State Reducer Pattern](https://kentcdodds.com/blog/the-state-reducer-pattern-with-react-hooks)\n    - With every `setState` call to a table state (even internally), this reducer is called and is allowed to modify the final state object for updating.\n    - It is passed the `oldState`, the `newState`, and an action `type`.\n  - `useState`\n    - Optional\n    - Defaults to `React.useState`\n    - This function, if defined will be used as the state hook internally instead of the default `React.useState`. This can be useful for implementing custom state storage hooks like useLocalStorage, etc.\n\n### Output\n\n- `tableStateTuple: [tableState, setTableState]`\n  - Similar in structure to the result of `React.useState`\n  - **Memoized** - This tuple array will not change between renders unless the state or `useTableState` options change.\n  - `tableState: Object`\n    - **Memoized** - This object reference will not change unless the state changes.\n    - This is the final state object of the table, which is the product of the `initialState`, `overrides` and the `reducer` options (if applicable)\n  - `setTableState: Function(updater, type) => void`\n    - **Memoized** - This function reference will not change unless the internal state `reducer` is changed\n    - This function is used both internally by React Table, and optionally by you (the developer) to update the table state programmatically.\n    - `updater: Function`\n      - This function signature is **almost** (see next point) identical to the functional API exposed by `React.setState`. It is passed the previous state and is expected to return a new version of the state.\n      - **NOTE: `updater` must be a function. Passing a replacement object is not supported as it is with React.useState**\n    - `type: String`\n      - The [action type](TODO) corresponding to what action being taken against the state.\n\n### Example\n\n```js\nexport default function MyTable({ manualPageIndex }) {\n  // This is the initial state for our table\n  const initialState = { pageSize: 10, pageIndex: 0 }\n\n  // Here, we can override the pageIndex\n  // regardless of the internal table state\n  const overrides = React.useMemo(() => ({\n    pageIndex: manualPageIndex,\n  }))\n\n  const state = useTableState(initialState, overrides)\n\n  // You can use effects to observe changes to the state\n  React.useEffect(\n    () => {\n      console.log('Page Size Changed!', initialState.pageSize)\n    },\n    [initialState.pageSize]\n  )\n\n  const { rows } = useTable({\n    state,\n  })\n}\n```\n\n# Guides\n\n## Sorting\n\n### Client-Side Sorting\n\n- [Example]()\n\nClient-side sorting can be accomplished by using the `useSortBy` plugin hook. Start by importing the hook from `react-table`:\n\n```diff\n-import { useTable } from 'react-table'\n+import { useTable, useSortBy } from 'react-table'\n```\n\nNext, add the `useSortBy` hook to your `useTable` hook and add the necessary UI pieces we need to make sorting work:\n\n```diff\nfunction MyTable() {\n  const { getTableProps, headerGroups, rows, prepareRow } = useTable(\n    {\n      data,\n      columns,\n    },\n-   useSortBy\n+   useSortBy\n  )\n\n  return (\n    <table {...getTableProps()}>\n      <thead>\n        {headerGroups.map(headerGroup => (\n          <tr {...headerGroup.getHeaderGroupProps()}>\n            {headerGroup.headers.map(column => (\n-             <th {...column.getHeaderProps()}>\n+             <th {...column.getHeaderProps(column.getSortByToggleProps())}>\n                {column.render('Header')}\n+               <span>\n+                 {column.sorted ? (column.sortedDesc ? ' 🔽' : ' 🔼') : ''}\n+               </span>\n              </th>\n            ))}\n          </tr>\n        ))}\n      </thead>\n      <tbody>\n        {rows.map(\n          (row, i) =>\n            prepareRow(row) || (\n              <tr {...row.getRowProps()}>\n                {row.cells.map(cell => {\n                  return <td {...cell.getCellProps()}>{cell.render('Cell')}</td>\n                })}\n              </tr>\n            )\n        )}\n      </tbody>\n    </table>\n  )\n}\n```\n\n### Server-Side Sorting\n\nServer-side sorting can be accomplished by using the `useSortBy` plugin hook in **controlled** mode along with the `useTableState` hook. Start by importing these hooks from `react-table`:\n\n```diff\n-import { useTable } from 'react-table'\n+import { useTable, useSortBy, useTableState } from 'react-table'\n```\n\nNext, add the `useSortBy` and `useTableState` hooks to your `useTable` hook, configure the table state, then add the necessary UI pieces we need to make sorting work:\n\n```diff\nfunction MyTable(data, columns, fetchData) {\n\n+ const state = useTableState()\n+ const [{ sortBy }] = state\n\n+ React.useEffect(() => {\n+   // When sorting changes, trigger your parent component\n+   // or hook to fetch new data with the table state\n+   fetchData(state[0])\n+ }, [sortBy])\n\n  const { getTableProps, headerGroups, rows, prepareRow } = useTable(\n    {\n      data,\n      columns,\n+     state,\n+     manualSorting: true\n    },\n-   useSortBy\n+   useSortBy\n  )\n\n  return (\n    <table {...getTableProps()}>\n      <thead>\n        {headerGroups.map(headerGroup => (\n          <tr {...headerGroup.getHeaderGroupProps()}>\n            {headerGroup.headers.map(column => (\n-             <th {...column.getHeaderProps()}>\n+             <th {...column.getHeaderProps(column.getSortByToggleProps())}>\n                {column.render('Header')}\n+               <span>\n+                 {column.sorted ? (column.sortedDesc ? ' 🔽' : ' 🔼') : ''}\n+               </span>\n              </th>\n            ))}\n          </tr>\n        ))}\n      </thead>\n      <tbody>\n        {rows.map(\n          (row, i) =>\n            prepareRow(row) || (\n              <tr {...row.getRowProps()}>\n                {row.cells.map(cell => {\n                  return <td {...cell.getCellProps()}>{cell.render('Cell')}</td>\n                })}\n              </tr>\n            )\n        )}\n      </tbody>\n    </table>\n  )\n}\n```\n\n<!--\n\n## Client Side Pagination\n\nTo add client side pagination, use the `usePagination` hook:\n\n```diff\n// Import React\nimport React from 'react'\n\n// Import React Table\nimport {\n  useTable,\n  useGroupBy,\n  useFilters,\n  useSortBy,\n  useExpanded,\n+  usePagination,\n} from 'react-table'\n\n// Create a component to render your table\nfunction MyTable(props) {\n  // Use the useTable hook to create your table configuration\n  const instance = useTable(\n    props,\n    useGroupBy,\n    useFilters,\n    useSortBy,\n    useExpanded,\n+   usePagination,\n  )\n\n  // Use the state and functions returned from useTable to build your UI\n  const {\n    getTableProps,\n    headerGroups,\n    rows,\n    getRowProps,\n    prepareRow,\n+   pageOptions,\n+   page,\n+   state: [{ pageIndex, pageSize }],\n+   gotoPage,\n+   previousPage,\n+   nextPage,\n+   setPageSize,\n+   canPreviousPage,\n+   canNextPage,\n  } = instance\n\n  // Render the UI for your table\n  return (\n    <div>\n      <table {...getTableProps()}>\n        ...\n      </table>\n+     <div>\n+       <button onClick={() => previousPage()} disabled={!canPreviousPage}>\n+         Previous Page\n+       </button>\n+       <button onClick={() => nextPage()} disabled={!canNextPage}>\n+         Next Page\n+       </button>\n+       <div>\n+         Page{' '}\n+         <em>\n+           {pageIndex + 1} of {pageOptions.length}\n+         </em>\n+       </div>\n+       <div>Go to page:</div>\n+       <input\n+         type=\"number\"\n+         defaultValue={pageIndex + 1 || 1}\n+         onChange={e => {\n+           const page = e.target.value ? Number(e.target.value) - 1 : 0\n+           gotoPage(page)\n+         }}\n+       />\n+       <select\n+         value={pageSize}\n+         onChange={e => {\n+           setPageSize(Number(e.target.value))\n+         }}\n+       >\n+         {pageSizeOptions.map(pageSize => (\n+           <option key={pageSize} value={pageSize}>\n+             Show {pageSize}\n+           </option>\n+         ))}\n+       </select>\n+     </div>\n    </div>\n  )\n}\n```\n\n## Server Side Pagination\n\nTo implement server-side pagination, use the `useTableState` and `usePagination` hooks:\n\n```diff\n\n``` -->\n\n<!-- # Setup\n\nTo begin using React Table you will need to start with a UI to render it. Below is a very basic component that should serve as a good starting point for most projects:\n\n```js\n// Import React\nimport React from 'react'\n\n// Import React Table\nimport {\n  useTable,\n  useGroupBy,\n  useFilters,\n  useSortBy,\n  useExpanded,\n  usePagination,\n} from 'react-table'\n\n// Create a component to render your table\nexport default function MyTable(props) {\n  // Use the useTable hook to create your table configuration\n  const instance = useTable(\n    props,\n    useGroupBy,\n    useFilters,\n    useSortBy,\n    useExpanded,\n    usePagination\n  )\n\n  // Use the state and functions returned from useTable to build your UI\n  const {\n    getTableProps,\n    headerGroups,\n    rows,\n    getRowProps,\n    pageOptions,\n    page,\n    state: [{ pageIndex, pageSize }],\n    gotoPage,\n    prepareRow,\n    previousPage,\n    nextPage,\n    setPageSize,\n    canPreviousPage,\n    canNextPage,\n  } = instance\n\n  // Render the UI for your table\n  return (\n    <div>\n      <table {...getTableProps()}>\n        <thead>\n          {headerGroups.map(headerGroup => (\n            <tr {...headerGroup.getRowProps()}>\n              {headerGroup.headers.map(column => (\n                <th {...column.getHeaderProps()}>{column.render('Header')}</th>\n              ))}\n            </tr>\n          ))}\n        </thead>\n        <tbody>\n          {page.map(\n            (row, i) =>\n              prepareRow(row) || (\n                <tr {...row.getRowProps()}>\n                  {row.cells.map(cell => {\n                    return (\n                      <td {...cell.getCellProps()}>{cell.render('Cell')}</td>\n                    )\n                  })}\n                </tr>\n              )\n          )}\n        </tbody>\n      </table>\n      <div>\n        <button onClick={() => previousPage()} disabled={!canPreviousPage}>\n          Previous Page\n        </button>\n        <button onClick={() => nextPage()} disabled={!canNextPage}>\n          Next Page\n        </button>\n        <div>\n          Page{' '}\n          <em>\n            {pageIndex + 1} of {pageOptions.length}\n          </em>\n        </div>\n        <div>Go to page:</div>\n        <input\n          type=\"number\"\n          defaultValue={pageIndex + 1 || 1}\n          onChange={e => {\n            const page = e.target.value ? Number(e.target.value) - 1 : 0\n            gotoPage(page)\n          }}\n        />\n        <select\n          value={pageSize}\n          onChange={e => {\n            setPageSize(Number(e.target.value))\n          }}\n        >\n          {pageSizeOptions.map(pageSize => (\n            <option key={pageSize} value={pageSize}>\n              Show {pageSize}\n            </option>\n          ))}\n        </select>\n      </div>\n    </div>\n  )\n}\n```\n\nYou can then use your table like so:\n\n```js\n\nimport MyTable from './MyTable'\n\nfunction MyApp () {\n  const columns = React.useMemo(() => [{\n    Header: \"Name\",\n    columns: [\n      {\n        Header: \"First Name\",\n        accessor: \"firstName\",\n      },\n      {\n        Header: \"Last Name\",\n        accessor: \"lastName\",\n      }\n    ]\n  }], [])\n\n  const data = [{\n    firstName: 'Tanner',\n    lastName: 'Linsley'\n  }, {\n    firstName: 'Shawn',\n    lastName: 'Wang'\n  }, {\n    firstName: 'Kent C.',\n    lastName: 'Dodds'\n  }, {\n    firstName: 'Ryan',\n    lastName: 'Florence'\n  }]\n\n  return <MyTable columns={columns} data={data} />\n``` -->\n\n## Contributing\n\nTo suggest a feature, create an issue if it does not already exist.\nIf you would like to help develop a suggested feature follow these steps:\n\n- Fork this repo\n- Install dependencies with `$ yarn`\n- Link `react-table` locally with `$ yarn link`\n- Auto-build files as you edit with `$ yarn start`\n- Implement your changes and tests to files in the `src/` directory\n- In any example directory, link to the local `react-table` with `$ yarn link react-table`\n- Follow example directions for running. Usually just `$ yarn && yarn start`\n- Document your changes in the root `README.md`\n- To stage a commit, run `yarn commit`\n- Submit PR for review\n","licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.0-alpha.20","dist":{"shasum":"784d6af4a91f037a4b882019e3d03520fe1d0ba0","integrity":"sha512-nVtfbht0QGrQJGU97kkukAEE7S+H6YwfIGwPURlewgosUFMCItZkuq/SbxJgw3y9vDqNTQdvSP4PZMEszbreOA==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.0-alpha.20.tgz","fileCount":41,"unpackedSize":536584,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdSjENCRA9TVsSAnZWagAAhq4P/AqMs70+tRGYqf6Eo5Jo\n9UMkMa6gSngbRuBlXYAGji0AV71uDU1FyU6+nOh8ptssy9NU9LdJmvxVLIeq\nZMq32sBeJiS+n2MPQsAtqbG62C0c9VfHvDdGNjf+fj0bO5T/bl8osQ+sZdrH\nKGw1Rvy+SCRKDRwhxi3LEtgVLCUEQ0Zg6kySgPj2KQ+y7LBxwQPR28ZOzUZV\nKUDAx/L5VPTvpdcStuO0m2VY3KIgd5TXdX+Gs09Au1h3XII3J+6C757Zme2d\n8ht6X9CJJ5LSjhJcyquCE63V9LJUbOqY39I8M5z4bDd7exuOR0uMLO2fGevs\nZX+egffPy7CZc7YsTiwW5pJ8bdvR8CQZHmrjMAIwbLw3fmrmzfjVypt1DVbz\nB9a83GkWYYZUUddXGvUyWbNMlXtxH4JNd/cPqMpM3U9XLfwAHRdNp9a6YF+2\ntq1YZggyPHdF0eg7i8DYOng7CpSu4zvfbsqu13u8l9ZUXtVjxWpKIyFeyS4k\nyDaZ/hfjb2yjXbDwgovoNMV8mGkRkuw8zer2gt6et7qUzoUTVcnNFVcKU2ge\nX8F59d/QzhjF5MalhVqiQG/H7GJLktnXwTVS+EvVFmf4eWJi2jWZ4eaD/2j1\nuM6dtlFINZReju4EHyXP9dM9AG6iGCRocJYDFT41eEDfboy4GpK4aFhM2Nx0\nuoer\r\n=vPt8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCKoEHFsF16BRCCNk54jDXH1c2ujvKU/Bt0m7Ho3MDTXgIhAMSepY3oC3V6Jj/WvJ9hNgqqnJmlGwMSi75bu3Zo4E85"}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.0-alpha.20_1565143309028_0.6925754723498367"},"_hasShrinkwrap":false},"7.0.0-alpha.21":{"name":"react-table","version":"7.0.0-alpha.21","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"dist/index.js","module":"dist/index.es.js","jsnext:main":"dist/index.es.js","scripts":{"commit":"git add . && git-cz","test":"is-ci 'test:ci' 'test:dev'","test:dev":"jest --watch","test:ci":"jest","build":"rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier ./src/**/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"prop-types":"^15.5.0","react":"^16.8.3","react-dom":"^16.8.3"},"devDependencies":{"@babel/core":"^7.5.5","@babel/plugin-proposal-class-properties":"^7.5.5","@babel/preset-env":"^7.5.5","@babel/preset-react":"^7.0.0","@babel/runtime":"^7.5.5","@commitlint/cli":"^8.1.0","@commitlint/config-conventional":"^8.1.0","@svgr/rollup":"^4.3.2","@testing-library/dom":"^5.6.0","@testing-library/jest-dom":"^4.0.0","@testing-library/react":"^8.0.7","babel-eslint":"9.x","commitizen":"^4.0.3","core-js":"3","cross-env":"^5.2.0","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^8.0.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.14.3","eslint-plugin-react-hooks":"1.6.1","eslint-plugin-standard":"^4.0.0","husky":"^3.0.2","is-ci-cli":"^1.1.1","jest":"^24.8.0","jest-cli":"^24.8.0","jest-runner-eslint":"^0.7.4","jest-watch-select-projects":"^0.1.2","jest-watch-typeahead":"^0.3.1","lint-staged":"^9.2.1","prop-types":"^15.5.0","react":"^16.8.3","react-dom":"^16.8.3","rollup":"^0.68.0","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^9.1.3","rollup-plugin-node-resolve":"^4.0.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-uglify":"^6.0.2","snapshot-diff":"^0.5.2"},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"browserslist":"> 0.25%, not dead","readmeFilename":"README.md","readme":"# React Table\n\nHooks for building **lightweight, fast and extendable datagrids** for React\n\n<a href=\"https://travis-ci.org/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://travis-ci.org/tannerlinsley/react-table.svg?branch=master\" />\n</a>\n<a href=\"https://npmjs.com/package/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-table.svg\" />\n</a>\n<a href=\"https://spectrum.chat/react-table\">\n  <img alt=\"Join the community on Spectrum\" src=\"https://withspectrum.github.io/badge/badge.svg\" />\n</a>\n<a href=\"https://github.com/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-table.svg?style=social&label=Star\" />\n</a>\n<a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n<br />\n<br />\n<a href=\"https://patreon.com/tannerlinsley\">\n  <img width=\"180\" alt=\"\" src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/become-a-patron.png\" />\n</a>\n\n<br />\n<br />\n\n## Features\n\n- Lightweight (4kb - 10kb depending on features and tree-shaking)\n- Headless (100% customizable, Bring-your-own-UI)\n- Client-side & Server-side pagination support\n- Sorting (Multi and Stable)\n- Filters\n- Pivoting & Aggregation\n- Row Selection\n- Row Expansion\n- Fully controllable\n- Extensible via hook-based plugin system\n- <a href=\"https://medium.com/@tannerlinsley/why-i-wrote-react-table-and-the-problems-it-has-solved-for-nozzle-others-445c4e93d4a8#.axza4ixba\" target=\"\\_parent\">\"Why I wrote React Table and the problems it has solved for Nozzle.io\"</a> by Tanner Linsley\n\n## [See Examples](#examples)\n\n## Sponsors\n\n**React Table v7** is being built and maintained by me, @tannerlinsley and I am always in need of more Patreon support to keep this project afloat. If you would like to contribute to my Patreon goal for v7 and beyond, [visit my Patreon and help me out!](https://patreon.com/tannerlinsley).\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/platinum.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://tryretool.com/?utm_source=sponsor&utm_campaign=react_table\" target=\"_blank\">\n          <img width='480' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-retool.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/gold.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://nozzle.io\" target=\"_blank\">\n          <img width='230' src=\"https://nozzle.io/img/logo-blue.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://zappi.com/web\" target=\"_blank\">\n          <img width='230' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-zappi.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://patreon.com/tannerlinsley\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/supporters.png\" />\n        </a>\n      </td>\n      <td>\n        <ul>\n          <li>Nicholas Kaufmann</li>\n          <li>Pekka</li>\n          <li>Jon Eickmeier</li>\n        </ul>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://patreon.com/tannerlinsley\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/fans.png\" />\n        </a>\n      </td>\n      <td>\n        <ul>\n          <li>Sortmy.games</li>\n          <li>Hugo Meissner</li>\n          <li>Benoit Leger-Derville</li>\n          <li>Thomas Funk</li>\n          <li>Dan Houle</li>\n          <li>David Pickut</li>\n        </ul>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<a href=\"https://patreon.com/tannerlinsley\">\n  <img width=\"150\" alt=\"\" src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/become-a-patron.png\" />\n</a>\n\n# Documentation\n\n- [Installation](#installation)\n- [Concepts](#concepts)\n- [Setup](#setup)\n- [Contributing](#contributing)\n\n# Installation\n\nInstall React Table as a dependency using `npm` or `yarn`\n\n```bash\n# NPM\n$ npm install react-table\n\n# Yarn\n$ yarn add react-table\n```\n\nTo import React Table:\n\n```js\nimport {\n  useTable,\n  useGroupBy,\n  useFilters,\n  useSortBy,\n  useExpanded,\n  usePagination,\n  ...\n} from 'react-table'\n```\n\n# Examples\n\n- Simple\n  - [Basic](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/master/examples/basic)\n  - [Sorting](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/master/examples/sorting)\n  - [Filtering](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/master/examples/filtering)\n  - [Grouping](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/master/examples/grouping)\n  - [Pagination](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/master/examples/pagination)\n  - [Row Selection](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/master/examples/row-selection)\n  - [Expanding](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/master/examples/expanding)\n  - [Sub Components](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/master/examples/sub-components)\n  - [Editable Data](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/master/examples/editable-cells)\n- Controlled\n  - [Pagination (Controlled)](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/master/examples/pagination-controlled)\n\n# Concepts\n\n## React Table is a \"headless\" UI library\n\nReact Table is a headless utility, which means out of the box, it doesn't render or supply any actual UI elements. You are in charge of utilizing the state and callbacks of the hooks provided by this library to render your own table markup. [Read this article to understand why React Table is built this way.](https://medium.com/merrickchristensen/headless-user-interface-components-565b0c0f2e18). If you don't want to, then here's a quick rundown anyway:\n\n- Separation of Concerns - Not that superficial kind you read about all the time. The real kind. React Table as a library honestly has no business being in charge of your UI. The look, feel, and overall experience of your table is what makes your app or product great. The less React Table gets in the way of that, the better!\n- Maintenance - By removing the massive (and seemingly endless) API surface area required to support every UI use-case, React Table can remain small, easy-to-use and simple to update/maintain.\n- Extensibility - UI presents countless edge cases for a library simply because it's a creative medium, and one where every developer does things differently. By not dictating UI concerns, React Table empowers the developer to design and extend the UI based on their unique use-case.\n\n## The React Table API\n\nAt the heart of every React Table is a table `instance` object. This object contains everything needed to build a table and interact with it's state. This includes, but is not limited to:\n\n- Columns\n- Materialized Data\n- Sorting\n- Filtering\n- Grouping\n- Pagination\n- Expanded State\n- Any functionality provided by custom plugin hooks, too!\n\n## Using Hooks for configuration, state and lifecycle\n\nReact Table uses React Hooks both internally and externally for 100% of its configuration and lifecycle management. Naturally, this is what allows React Table to be headless and lightweight while still having a concise and simple API.\n\nReact Table is essentially a compatible collection of **custom React hooks**:\n\n- The primary React Table hook\n  - [`useTable`](#usetable)\n- Plugin Hooks\n  - Core Plugin Hooks\n    - [`useTableState`](#useTableState)\n    - [`useGroupBy`](#useGroupBy)\n    - [`useFilters`](#useFilters)\n    - [`useSortBy`](#useSortBy)\n    - [`useExpanded`](#useExpanded)\n    - [`usePagination`](#usePagination)\n    - [`useTokenPagination`](#useTokenPagination)\n  - Layout Plugin Hooks\n    - [`useFlexLayout`](#useFlexLayout)\n    - [`useAbsoluteLayout`](#useAbsoluteLayout) (coming soon!)\n- Custom Plugin Hooks\n  - Get your custom plugin hook listed here!\n\n### Hook Usage\n\n`useTable` is the **primary** hook used to build a React Table. It serves as the starting point for **every option and every plugin hook** that React Table supports. The options passed into `useTable` are supplied to every plugin hook after it in the order they are supplied, eventually resulting a final `instance` object that you can use to build your table UI and interact with the table's state.\n\n```js\nconst instance = useTable(\n  {\n    data: [...],\n    columns: [...],\n  },\n  useGroupBy,\n  useFilters,\n  useSortBy,\n  useExpanded,\n  usePagination\n)\n```\n\n### The stages of a React Table\n\n1. `useTable` is called. A table instance is created.\n1. The `instance.state` is resolved from either a custom user state or an automatically generated one.\n1. A collection of plugin points is created at `instance.hooks`.\n1. Each plugin is given the opportunity to add hooks to `instance.hook`.\n1. As the `useTable` logic proceeds to run, each plugin hook type is used at a specific point in time with each individual hook function being executed the order it was registered.\n1. The final instance object is returned from `useTable`, which the developer then uses to construct their table.\n\nThis multi-stage process is the secret sauce that allows React Table plugin hooks to work together and compose nicely, while not stepping on each others toes.\n\nTo dive deeper into plugins, see [Plugins](TODO) and the [Plugin Guide](TODO)\n\n### Plugin Hook Order & Consistency\n\nThe order and usage of plugin hooks must follow [The Laws of Hooks](TODO), just like any other custom hook. They must always be unconditionally called in the same order.\n\n> **NOTE: In the event that you want to programmatically enable or disable plugin hooks, most of them provide options to disable their functionality, eg. `options.disableSorting`**\n\n### Option Memoization\n\nReact Table relies on memoization to determine when state and side effects should update or be calculated. This means that every option you pass to `useTable` should be memoized either via `React.useMemo` (for objects) or `React.useCallback` (for functions).\n\n# API\n\n## `useTable`\n\n- Required\n\n`useTable` is the root hook for React Table. To use it, pass it with an options object with at least a `columns` and `rows` value, followed by any React Table compatible hooks you want to use.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `columns: Array<Column>`\n  - Required\n  - Must be **memoized**\n  - The core columns configuration object for the entire table.\n  - Supports nested `columns` arrays via the column's `columns` key, eg. `[{ Header: 'My Group', columns: [...] }]`\n- `data: Array<any>`\n  - Required\n  - Must be **memoized**\n  - The data array that you want to display on the table.\n- `state: TableStateTuple[stateObject, stateUpdater]`\n  - Optional\n  - Must be **memoized** table state tuple. See [`useTableState`](#usetablestate) for more information.\n  - The state/updater pair for the table instance. You would want to override this if you plan on controlling or hoisting table state into your own code.\n  - Defaults to using an internal `useTableState()` instance if not defined.\n  - See [Controlling and Hoisting Table State](#controlling-and-hoisting-table-state)\n- `defaultColumn: Object`\n  - Optional\n  - Defaults to `{}`\n  - The default column object for every column passed to React Table.\n  - Column-specific properties will override the properties in this object, eg. `{ ...defaultColumn, ...userColumn }`\n  - This is particularly useful for adding global column properties. For instance, when using the `useFilters` plugin hook, add a default `Filter` renderer for every column, eg.`{ Filter: MyDefaultFilterComponent }`\n- `initialRowStateKey: String`\n  - Optional\n  - Defaults to `initialState`\n  - This key is used to look for the initial state of a row when initializing the `rowState` for a`data` array.\n  - If the value located at `row[initialRowStateKey]` is falsey, `{}` will be used instead.\n- `debug: Bool`\n  - Optional\n  - A flag to turn on debug mode.\n  - Defaults to `false`\n\n### `column` Options\n\nThe following options are supported on any column object you can pass to `columns`.\n\n- `accessor: String | Function`\n  - **Required**\n  - This string/function is used to build the data model for your column.\n  - The data returned by an accessor should be **primitive** and sortable.\n  - If a string is passed, the column's value will be looked up on the original row via that key, eg. If your column's accessor is `firstName` then its value would be read from `row['firstName']`. You can also specify deeply nested values with accessors like `info.hobbies` or even `address[0].street`\n  - If a function is passed, the column's value will be looked up on the original row using this accessor function, eg. If your column's accessor is `row => row.firstName`, then its value would be determined by passing the row to this function and using the resulting value.\n- `id: String`\n  - **Required if `accessor` is a function**\n  - This is the unique ID for the column. It is used by reference in things like sorting, grouping, filtering etc.\n  - If a **string** accessor is used, it defaults as the column ID, but can be overridden if necessary.\n- `columns: Array<Column>`\n  - Optional\n  - A nested array of columns.\n  - If defined, the column will act as a header group. Columns can be recursively nested as much as needed.\n- `show: Boolean | Function`\n  - Optional\n  - Defaults to `true`\n  - If set to `false`, the column will be hidden.\n  - If set to a `function`, it will be called with the current table instance and can then return `true` or `false`.\n  - The data model for hidden columns is still calculated including sorting, filters, and grouping.\n- `Header: String | Function | React.Component => JSX`\n  - Optional\n  - Defaults to `({ id }) => id`\n  - Receives the table instance and column model as props\n  - Must either be a **string or return valid JSX**\n  - If a function/component is passed, it will be used for formatting the header value, eg. You can use a `Header` function to dynamically format the header using any table or column state.\n- `Cell: Function | React.Component => JSX`\n  - Optional\n  - Defaults to `({ value }) => value`\n  - Receives the table instance and cell model as props\n  - Must return valid JSX\n  - This function (or component) is primarily used for formatting the column value, eg. If your column accessor returns a date object, you can use a `Cell` function to format that date to a readable format.\n\n### Instance Properties\n\nThe following properties are available on the table instance returned from `useTable`\n\n- `headerGroups: Array<HeaderGroup>`\n  - An array of normalized header groups, each containing a flattened array of final column objects for that row.\n  - See [Header Group Properties](#headergroup-properties) for more information\n- `columns: Array<Column>`\n  - A **flat** array of all final column objects computed from the original columns configuration option.\n  - See [Column Properties](#column-properties) for more information\n- `headers[] Array<Column>`\n  - A **nested** array of final column objects, similar in structure to the original columns configuration option.\n  - See [Column Properties](#column-properties) for more information\n- `rows: Array<Row>`\n  - An array of **materialized row objects** from the original `data` array and `columns` passed into the table options\n  - See [Row Properties](#row-properties) for more information\n- `getTableProps: Function(?props)`\n  - **Required**\n  - This function is used to resolve any props needed for your table wrapper.\n  - Custom props may be passed. **NOTE: Custom props will override built-in table props, so be careful!**\n- `prepareRow: Function(Row)`\n  - **Required**\n  - This function is responsible for lazily preparing a row for rendering. Any row that you intend to render in your table needs to be passed to this function **before every render**.\n  - **Why?** Since table data could potentially be very large, it can become very expensive to compute all of the necessary state for every row to be rendered regardless if it actually is rendered or not (for example if you are paginating or virtualizing the rows, you may only have a few rows visible at any given moment). This function allows only the rows you intend to display to be computed and prepped with the correct state.\n- `rowPaths: Array<string>`\n  - An array containing the stringified `path` of every original row in the table. eg. If a row has a path of `[0, 3, 2]`, its stringified path would be `0.3.2`.\n  - This array is used by many plugin hooks including `useRowSelect` to manage row selection state\n  - Only rows that exist on the original `data` array will have a path in this array. Rows created by `useGroupBy`'s aggregations and grouping are not included in this array, since they do not reference an original data row.\n- `flatRows: Array<Row>`\n  - An array of all rows, including subRows which have been flattened into the order in which they were detected (depth first)\n  - This can be helpful in calculating total row counts that must include subRows\n- `setRowState: Function(rowPath, updater: Function | any) => void`\n  - This function can be used to update the internal state for any row.\n  - Pass it a valid `rowPath` array and `updater`. The `updater` may be a value or function, similar to `React.useState`'s usage.\n  - If `updater` is a function, it will be passed the previous value\n- `setCellState: Function(rowPath, columnID, updater: Function | any) => void`\n  - This function can be used to update the internal state for any cell.\n  - Pass it a valid `rowPath` array, `columnID` and `updater`. The `updater` may be a value or function, similar to `React.useState`'s usage.\n  - If `updater` is a function, it will be passed the previous value\n\n### `HeaderGroup` Properties\n\nThe following additional properties are available on every `headerGroup` object returned by the table instance.\n\n- `headers: Array<Column>`\n  - **Required**\n  - The columns in this header group.\n- `getHeaderGroupProps: Function(?props)`\n  - **Required**\n  - This function is used to resolve any props needed for this header group's row.\n  - You can use the `getHeaderGroupProps` hook to extend its functionality.\n  - Custom props may be passed. **NOTE: Custom props will override built-in table props, so be careful!**\n\n### Column Properties\n\nThe following properties are available on every `Column` object returned by the table instance.\n\n- `id: String`\n  - The resolved column ID from either the column's `accessor` or the column's hard-coded `id` property\n- `visible: Boolean`\n  - The resolved visible state for the column, derived from the column's `show` property\n- `render: Function(type: String | Function | Component, ?props)`\n  - This function is used to render content in context of a column.\n  - If `type` is a string, will render using the `column[type]` renderer. React Table ships with default `Header` renderers. Other renderers like `Filter` are available via hooks like `useFilters`.\n  - If a function or component is passed instead of a string, it will be be passed the table instance and column model as props and is expected to return any valid JSX.\n- `getHeaderProps: Function(?props)`\n  - **Required**\n  - This function is used to resolve any props needed for this column's header cell.\n  - You can use the `getHeaderProps` hook to extend its functionality.\n  - Custom props may be passed. **NOTE: Custom props will override built-in table props, so be careful!**\n\n### Row Properties\n\nThe following additional properties are available on every `row` object returned by the table instance.\n\n- `cells: Array<Cell>`\n  - An array of `Cell` objects containing properties and functions specific to the row and column it belongs to.\n  - See [Cell Properties](#cell-properties) for more information\n- `values: Object<columnID: any>`\n  - A map of this row's **resolved** values by columnID, eg. `{ firstName: 'Tanner', lastName: 'Linsley' }`\n- `getRowProps: Function(?props)`\n  - **Required**\n  - This function is used to resolve any props needed for this row.\n  - You can use the `getRowProps` hook to extend its functionality.\n  - Custom props may be passed. **NOTE: Custom props will override built-in table props, so be careful!**\n- `index: Int`\n  - The index of the original row in the `data` array that was passed to `useTable`. If this row is a subRow, it is the original index within the parent row's subRows array\n- `original: Object`\n  - The original row object from the `data` array that was used to materialize this row.\n- `path: Array<string>`\n  - This array is the sequential path of indices one could use to navigate to it, eg. a row path of `[3, 1, 0]` would mean that it is the **first** subRow of a parent that is the **second** subRow of a parent that is the **fourth** row in the original `data` array.\n  - This array is used with plugin hooks like `useExpanded` and `useGroupBy` to compute expanded states for individual rows.\n- `subRows: Array<Row>`\n  - If subRows were detect on the original data object, this will be an array of those materialized row objects.\n- `state: Object`\n\n  - The current state of the row. It's lifespan is attached to that of the original `data` array. When the raw `data` is changed, this state value is reset to the row's initial value (using the `initialRowStateKey` option).\n  - Can be updated via `instance.setRowState` or the row's `setState` function.\n\n### Cell Properties\n\nThe following additional properties are available on every `Cell` object returned in an array of `cells` on every row object.\n\n- `column: Column`\n  - The corresponding column object for this cell\n- `row: Row`\n  - The corresponding row object for this cell\n- `value: any`\n  - The **resolved** value for this cell.\n  - By default, this value is displayed on the table via the default `Cell` renderer. To override the way a cell displays\n- `getCellProps: Function(?props)`\n  - **Required**\n  - This function is used to resolve any props needed for this cell.\n  - You can use the `getCellProps` hook to extend its functionality.\n  - Custom props may be passed. **NOTE: Custom props will override built-in table props, so be careful!**\n- `render: Function(type: String | Function | Component, ?props)`\n  - **Required**\n  - This function is used to render content in context of a cell.\n  - If `type` is a string, will render using the `column[type]` renderer. React Table ships with a default `Cell` renderer. Other renderers like `Aggregated` are available via hooks like `useFilters`.\n  - If a function or component is passed instead of a string, it will be be passed the table instance and cell model as props and is expected to return any valid JSX.\n\n### Example\n\n```js\nfunction App() {\n  const columns = React.useMemo(\n    () => [\n      {\n        Header: 'Name',\n        columns: [\n          {\n            Header: 'First Name',\n            accessor: 'firstName',\n          },\n          {\n            Header: 'Last Name',\n            accessor: 'lastName',\n          },\n        ],\n      },\n    ],\n    []\n  )\n\n  const data = [\n    {\n      firstName: 'Tanner',\n      lastName: 'Linsley',\n    },\n    {\n      firstName: 'Shawn',\n      lastName: 'Wang',\n    },\n    {\n      firstName: 'Kent C.',\n      lastName: 'Dodds',\n    },\n    {\n      firstName: 'Ryan',\n      lastName: 'Florence',\n    },\n  ]\n\n  return <MyTable columns={columns} data={data} />\n}\n\nfunction MyTable({ columns, data }) {\n  const { getTableProps, headerGroups, rows, prepareRow } = useTable({\n    columns,\n    data,\n  })\n\n  return (\n    <table {...getTableProps()}>\n      <thead>\n        {headerGroups.map(headerGroup => (\n          <tr {...headerGroup.getHeaderGroupProps()}>\n            {headerGroup.headers.map(column => (\n              <th {...column.getHeaderProps()}>{column.render('Header')}</th>\n            ))}\n          </tr>\n        ))}\n      </thead>\n      <tbody>\n        {rows.map(\n          (row, i) =>\n            prepareRow(row) || (\n              <tr {...row.getRowProps()}>\n                {row.cells.map(cell => {\n                  return <td {...cell.getCellProps()}>{cell.render('Cell')}</td>\n                })}\n              </tr>\n            )\n        )}\n      </tbody>\n    </table>\n  )\n}\n```\n\n## `useSortBy`\n\n- Plugin Hook\n- Optional\n\n`useSortBy` is the hook that implements **row sorting**. It also support multi-sort (keyboard required).\n\n- Multi-sort is enabled by default\n- To sort the table via UI, attach the props generated from each column's `getSortByToggleProps()`, then click any of those elements.\n- To multi-sort the table via UI, hold `shift` while clicking on any of those same elements that have the props from `getSortByToggleProps()` attached.\n- To programmatically sort (or multi-sort) any column, use the `toggleSortBy` method located on the instance or each individual column.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `state[0].sortBy: Array<Object<id: columnID, desc: Bool>>`\n  - Must be **memoized**\n  - An array of sorting objects. If there is more than one object in the array, multi-sorting will be enabled. Each sorting object should contain an `id` key with the corresponding column ID to sort by. An optional `desc` key may be set to true or false to indicated ascending or descending sorting for that column. This information is stored in state since the table is allowed to manipulate the filter through user interaction.\n- `manualSorting: Bool`\n  - Enables sorting detection functionality, but does not automatically perform row sorting. Turn this on if you wish to implement your own sorting outside of the table (eg. server-side or manual row grouping/nesting)\n- `disableSorting: Bool`\n  - Disables sorting for every column in the entire table.\n- `disableMultiSort: Bool`\n  - Disables multi-sorting for the entire table.\n- `disableSortRemove: Bool`\n  - If true, the un-sorted state will not be available to columns once they have been sorted.\n- `disableMultiRemove: Bool`\n  - If true, the un-sorted state will not be available to multi-sorted columns.\n- `orderByFn: Function`\n  - Must be **memoizd**\n  - Defaults to the built-in [default orderBy function](TODO)\n  - This function is responsible for composing multiple sorting functions together for multi-sorting, and also handles both the directional sorting and stable-sorting tie breaking. Rarely would you want to override this function unless you have a very advanced use-case that requires it.\n- `sortTypes: Object<sortKey: sortType>`\n  - Must be **memoized**\n  - Allows overriding or adding additional sort types for columns to use. If a column's sort type isn't found on this object, it will default to using the [built-in sort types](TODO).\n  - For more information on sort types, see [Sorting](TODO)\n\n### Column Options\n\nThe following options are supported on any `Column` object passed to the `columns` options in `useTable()`\n\n- `disableSorting: Bool`\n  - Optional\n  - Defualts to `false`\n  - If set to `true`, the sorting for this column will be disabled\n- `sortDescFirst: Bool`\n  - Optional\n  - Defaults to `false`\n  - If set to `true`, the first sort direction for this column will be descending instead of ascending\n- `sortInverted: Bool`\n  - Optional\n  - Defaults to `false`\n  - If set to `true`, the underlying sorting direction will be inverted, but the UI will not.\n  - This may be useful in situations where positive and negative connotation is inverted, eg. a Golfing score where a lower score is considered more positive than a higher one.\n- `sortType: String | Function`\n  - If a **function** is passed, it must be **memoized**\n  - Defaults to [`alphanumeric`](TODO)\n  - The resolved function from the this string/function will be used to sort the this column's data.\n    - If a `string` is passed, the function with that name located on either the custom `sortTypes` option or the built-in sorting types object will be used. If\n    - If a `function` is passed, it will be used.\n  - For mor information on sort types, see [Sorting](TODO)\n\n### Instance Properties\n\nThe following values are provided to the table `instance`:\n\n- `rows: Array<Row>`\n  - An array of **sorted** rows.\n- `preSortedRows: Array<Row>`\n  - The array of rows that were originally sorted.\n- `toggleSortBy: Function(ColumnID: String, descending: Bool, isMulti: Bool) => void`\n  - This function can be used to programmatically toggle the sorting for any specific column\n\n### Column Properties\n\nThe following properties are available on every `Column` object returned by the table instance.\n\n- `canSort: Bool`\n  - Denotes whether a column is sortable or not depending on if it has a valid accessor/data model or is manually disabled via an option.\n- `toggleSortBy: Function(descending, multi) => void`\n  - This function can be used to programmatically toggle the sorting for this column.\n  - This function is similar to the `instance`-level `toggleSortBy`, however, passing a columnID is not required since it is located on a `Column` object already.\n- `getSortByToggleProps: Function(props) => props`\n  - **Required**\n  - This function is used to resolve any props needed for this column's UI that is responsible for toggling the sort direction when the user clicks it.\n  - You can use the `getSortByToggleProps` hook to extend its functionality.\n  - Custom props may be passed. **NOTE: Custom props may override built-in sortBy props, so be careful!**\n- `sorted: Boolean`\n  - Denotes whether this column is currently being sorted\n- `sortedIndex: Int`\n  - If the column is currently sorted, this integer will be the index in the `sortBy` array from state that corresponds to this column.\n  - If this column is not sorted, the index will always be `-1`\n- `sortedDesc: Bool`\n  - If the column is currently sorted, this denotes whether the column's sort direction is descending or not.\n  - If `true`, the column is sorted `descending`\n  - If `false`, the column is sorted `ascending`\n  - If `undefined`, the column is not currently being sorted.\n\n### Example\n\n```js\nfunction Table({ columns, data }) {\n  // Set some default sorting state\n  const state = useTableState({ sortBy: [{ id: 'firstName', desc: true }] })\n\n  const { getTableProps, headerGroups, rows, prepareRow } = useTable(\n    {\n      columns,\n      data,\n    },\n    useSortBy // Use the sortBy hook\n  )\n\n  return (\n    <table {...getTableProps()}>\n      <thead>\n        {headerGroups.map(headerGroup => (\n          <tr {...headerGroup.getHeaderGroupProps()}>\n            {headerGroup.headers.map(column => (\n              // Add the sorting props to control sorting. For this example\n              // we can add them into the header props\n              <th {...column.getHeaderProps(column.getSortByToggleProps())}>\n                {column.render('Header')}\n                <span>\n                  {/* Add a sort direction indicator */}\n                  <span>\n                    {column.sorted ? (column.sortedDesc ? ' 🔽' : ' 🔼') : ''}\n                  </span>\n                  {/* Add a sort index indicator */}\n                  <span>({column.sorted ? column.sortedIndex + 1 : ''})</span>\n                </span>\n              </th>\n            ))}\n          </tr>\n        ))}\n      </thead>\n      <tbody>\n        {rows.map(\n          (row, i) =>\n            prepareRow(row) || (\n              <tr {...row.getRowProps()}>\n                {row.cells.map(cell => {\n                  return <td {...cell.getCellProps()}>{cell.render('Cell')}</td>\n                })}\n              </tr>\n            )\n        )}\n      </tbody>\n    </table>\n  )\n}\n```\n\n## `useFilters`\n\n- Plugin Hook\n- Optional\n\n`useFilters` is the hook that implements **row filtering**.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `state[0].filters: Object<columnID: filterValue>`\n  - Must be **memoized**\n  - An object of columnID's and their corresponding filter values. This information is stored in state since the table is allowed to manipulate the filter through user interaction.\n- `defaultFilter: String | Function`\n  - If a **function** is passed, it must be **memoized**\n  - Defaults to [`text`](TODO)\n  - The function (or resolved function from the string) will be used as the default/fallback filter method for every column that has filtering enabled.\n    - If a `string` is passed, the function with that name located on the `filterTypes` option object will be used.\n    - If a `function` is passed, it will be used.\n  - For mor information on filter types, see [Filtering](TODO)\n- `manualFilters: Bool`\n  - Enables filter detection functionality, but does not automatically perform row filtering.\n  - Turn this on if you wish to implement your own row filter outside of the table (eg. server-side or manual row grouping/nesting)\n- `disableFilters: Bool`\n  - Disables filtering for every column in the entire table.\n- `filterTypes: Object<filterKey: filterType>`\n  - Must be **memoized**\n  - Allows overriding or adding additional filter types for columns to use. If a column's filter type isn't found on this object, it will default to using the [built-in filter types](TODO).\n  - For mor information on filter types, see [Filtering](TODO)\n\n### Column Options\n\nThe following options are supported on any `Column` object passed to the `columns` options in `useTable()`\n\n- `Filter: Function | React.Component => JSX`\n  - **Required**\n  - Receives the table instance and column model as props\n  - Must return valid JSX\n  - This function (or component) is used to render this column's filter UI, eg.\n- `disableFilters: Bool`\n  - Optional\n  - If set to `true`, will disable filtering for this column\n- `filter: String | Function`\n  - Optional\n  - Defaults to [`text`](TODO)\n  - The resolved function from the this string/function will be used to filter the this column's data.\n    - If a `string` is passed, the function with that name located on either the custom `filterTypes` option or the built-in filtering types object will be used. If\n    - If a `function` is passed, it will be used directly.\n  - For mor information on filter types, see [Filtering](TODO)\n  - If a **function** is passed, it must be **memoized**\n\n### Instance Properties\n\nThe following values are provided to the table `instance`:\n\n- `rows: Array<Row>`\n  - An array of **filtered** rows.\n- `preFilteredRows: Array<Row>`\n  - The array of rows **used right before filtering**.\n  - Among many other use-cases, these rows are directly useful for building option lists in filters, since the resulting filtered `rows` do not contain every possible option.\n- `setFilter: Function(columnID, filterValue) => void`\n  - An instance-level function used to update the filter value for a specific column.\n- `setAllFilters: Function(filtersObject) => void`\n  - An instance-level function used to update the values for **all** filters on the table, all at once.\n\n### Column Properties\n\nThe following properties are available on every `Column` object returned by the table instance.\n\n- `canFilter: Bool`\n  - Denotes whether a column is filterable or not depending on if it has a valid accessor/data model or is manually disabled via an option.\n- `setFilter: Function(filterValue) => void`\n  - An column-level function used to update the filter value for this column\n- `filterValue: any`\n  - The current filter value for this column, resolved from the table state's `filters` object\n- `preFilteredRows: Array<row>`\n  - The array of rows that were originally passed to this columns filter **before** they were filtered.\n  - This array of rows can be useful if building faceted filter options.\n\n### Example\n\n```js\n// A great library for fuzzy filtering/sorting items\nimport matchSorter from 'match-sorter'\n\nconst state = useTableState({ filters: { firstName: 'tanner' } })\n\nconst filterTypes = React.useMemo(() => ({\n  // Add a new fuzzyText filter type.\n  fuzzyText: (rows, id, filterValue) => {\n    return matchSorter(rows, filterValue, { keys: [row => row[id] })\n  },\n  // Or, override the default text filter to use\n  // \"startWith\"\n  text: (rows, id, filterValue) => {\n    return rows.filter(row => {\n      const rowValue = row.values[id]\n      return rowValue !== undefined\n        ? String(rowValue)\n            .toLowerCase()\n            .startsWith(String(filterValue).toLowerCase())\n        : true\n    })\n  }\n}), [matchSorter])\n\n// Override the default column filter to be our new `fuzzyText` filter type\nconst defaultColumn = React.useMemo(() => ({\n  filter: 'fuzzyText'\n}))\n\nconst { rows } = useTable(\n  {\n    // state[0].groupBy === ['firstName']\n    state,\n    manualFilters: false,\n    disableFilters: false,\n    // Pass our custom filter types\n    filterTypes,\n    defaultColumn\n  },\n  useFilters\n)\n```\n\n## `useGroupBy`\n\n- Plugin Hook\n- Optional\n\n`useGroupBy` is the hook that implements **row grouping and aggregation**.\n\n- Each column's `getGroupByToggleProps()` function can be used to generate the props needed to make a clickable UI element that will toggle the grouping on or off for a specific column.\n- Instance and column-level `toggleGroupBy` functions are also made available for programmatic grouping.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `state[0].groupBy: Array<String>`\n  - Must be **memoized**\n  - An array of groupBy ID strings, controlling which columns are used to calculate row grouping and aggregation. This information is stored in state since the table is allowed to manipulate the groupBy through user interaction.\n- `manualGroupBy: Bool`\n  - Enables groupBy detection and functionality, but does not automatically perform row grouping.\n  - Turn this on if you wish to implement your own row grouping outside of the table (eg. server-side or manual row grouping/nesting)\n- `disableGrouping: Bool`\n  - Disables groupBy for the entire table.\n- `aggregations: Object<aggregationKey: aggregationFn>`\n  - Must be **memoized**\n  - Allows overriding or adding additional aggregation functions for use when grouping/aggregating row values. If an aggregation key isn't found on this object, it will default to using the [built-in aggregation functions](TODO)\n- `groupByFn: Function`\n  - Must be **memoized**\n  - Defaults to [`defaultGroupByFn`](TODO)\n  - This function is responsible for grouping rows based on the `state.groupBy` keys provided. It's very rare you would need to customize this function.\n\n### Column Options\n\nThe following options are supported on any `Column` object passed to the `columns` options in `useTable()`\n\n- `Aggregated: Function | React.Component => JSX`\n  - Optional\n  - Defaults to this column's `Cell` formatter\n  - Receives the table instance and cell model as props\n  - Must return valid JSX\n  - This function (or component) formats this column's value when it is being grouped and aggregated, eg. If this column was showing the number of visits for a user to a website and it was currently being grouped to show an **average** of the values, the `Aggregated` function for this column could format that value to `1,000 Avg. Visits`\n- `disableGrouping: Boolean`\n  - Defaults to `true`\n  - If `true`, this column is able to be grouped.\n\n### Instance Properties\n\nThe following values are provided to the table `instance`:\n\n- `rows: Array<Row>`\n  - An array of **grouped and aggregated** rows.\n- `preGroupedRows: Array<Row>`\n  - The array of rows originally used to create the grouped rows.\n- `toggleGroupBy: Function(columnID: String, ?set: Bool) => void`\n  - This function can be used to programmatically set or toggle the groupBy state for a specific column.\n\n### Column Properties\n\nThe following properties are available on every `Column` object returned by the table instance.\n\n- `canGroupBy: Boolean`\n  - If `true`, this column is able to be grouped.\n  - This is resolved from the column having a valid accessor / data model, and not being manually disabled via other `useGroupBy` related options\n- `grouped: Boolean`\n  - If `true`, this column is currently being grouped\n- `groupedIndex: Int`\n  - If this column is currently being grouped, this integer is the index of this column's ID in the table state's `groupBy` array.\n- `toggleGroupBy: Function(?set: Bool) => void`\n  - This function can be used to programmatically set or toggle the groupBy state fo this column.\n- `getGroupByToggleProps: Function(props) => props`\n  - **Required**\n  - This function is used to resolve any props needed for this column's UI that is responsible for toggling grouping when the user clicks it.\n  - You can use the `getGroupByToggleProps` hook to extend its functionality.\n  - Custom props may be passed. **NOTE: Custom props may override built-in sortBy props, so be careful!**\n\n### Row Properties\n\nThe following properties are available on every `Row` object returned by the table instance.\n\n- `groupByID: String`\n  - The column ID for which this row is being grouped.\n  - Will be `undefined` if the row is an original row from `data` and not a materialized one from the grouping.\n- `groupByVal: any`\n  - If the row is a materialized group row, this will be the grouping value that was used to create it.\n- `values: Object`\n  - Similar to a regular row, a materialized grouping row also has a `values` object\n  - This object contains the **aggregated** values for this row's sub rows\n- `subRows: Array<Row>`\n  - If the row is a materialized group row, this property is the array of materialized subRows that were grouped inside of this row.\n- `depth: Int`\n  - If the row is a materialized group row, this is the grouping depth at which this row was created.\n- `path: Array<String|Int>`\n  - Similar to normal `Row` objects, materialized grouping rows also have a path array. The keys inside it though are not integers like nested normal rows though. Since they are not rows that can be traced back to an original data row, they are given a unique path based on their `groupByVal`\n  - If a row is a grouping row, it will have a path like `['Single']` or `['Complicated', 'Anderson']`, where `Single`, `Complicated`, and `Anderson` would all be derived from their row's `groupByVal`.\n\n### Cell Properties\n\nThe following additional properties are available on every `Cell` object returned in an array of `cells` on every row object.\n\n- `grouped: Bool`\n  - If `true`, this cell is a grouped cell, meaning it contains a grouping value and should usually display and expander.\n- `repeatedValue: Bool`\n  - If `true`, this cell is a repeated value cell, meaning it contains a value that is already being displayed elsewhere (usually by a parent row's cell).\n  - Most of the time, this cell is not required to be displayed and can safely be hidden during rendering\n- `aggregated: Bool`\n  - If `true`, this cell's value has been aggregated and should probably be rendered with the `Aggregated` cell renderer.\n\n### Example\n\n```js\nfunction Table({ columns, data }) {\n  const {\n    getTableProps,\n    headerGroups,\n    rows,\n    prepareRow,\n    state: [{ groupBy, expanded }],\n  } = useTable(\n    {\n      columns,\n      data,\n    },\n    useGroupBy,\n    useExpanded // useGroupBy would be pretty useless without useExpanded ;)\n  )\n\n  // We don't want to render all 2000 rows for this example, so cap\n  // it at 20 for this use case\n  const firstPageRows = rows.slice()\n\n  return (\n    <table {...getTableProps()}>\n      <thead>\n        {headerGroups.map(headerGroup => (\n          <tr {...headerGroup.getHeaderGroupProps()}>\n            {headerGroup.headers.map(column => (\n              <th {...column.getHeaderProps()}>\n                {column.canGroupBy ? (\n                  // If the column can be grouped, let's add a toggle\n                  <span {...column.getGroupByToggleProps()}>\n                    {column.grouped ? '🛑' : '👊'}\n                  </span>\n                ) : null}\n                {column.render('Header')}\n              </th>\n            ))}\n          </tr>\n        ))}\n      </thead>\n      <tbody>\n        {firstPageRows.map(\n          (row, i) =>\n            prepareRow(row) || (\n              <tr {...row.getRowProps()}>\n                {row.cells.map(cell => {\n                  return (\n                    <td {...cell.getCellProps()}>\n                      {cell.grouped ? (\n                        // If it's a grouped cell, add an expander and row count\n                        <>\n                          <span\n                            style={{\n                              cursor: 'pointer',\n                            }}\n                            onClick={() => row.toggleExpanded()}\n                          >\n                            {row.isExpanded ? '👇' : '👉'}\n                          </span>\n                          {cell.render('Cell')} ({row.subRows.length})\n                        </>\n                      ) : cell.aggregated ? (\n                        // If the cell is aggregated, use the Aggregated\n                        // renderer for cell\n                        cell.render('Aggregated')\n                      ) : cell.repeatedValue ? null : ( // For cells with repeated values, render null\n                        // Otherwise, just render the regular cell\n                        cell.render('Cell')\n                      )}\n                    </td>\n                  )\n                })}\n              </tr>\n            )\n        )}\n      </tbody>\n    </table>\n  )\n}\n\n// This is a custom aggregator that\n// takes in an array of values and\n// returns the rounded median\nfunction roundedMedian(values) {\n  let min = values[0] || ''\n  let max = values[0] || ''\n\n  values.forEach(value => {\n    min = Math.min(min, value)\n    max = Math.max(max, value)\n  })\n\n  return Math.round((min + max) / 2)\n}\n\nfunction App() {\n  const columns = React.useMemo(\n    () => [\n      {\n        Header: 'Name',\n        columns: [\n          {\n            Header: 'First Name',\n            accessor: 'firstName',\n            // Use a two-stage aggregator here to first\n            // count the total rows being aggregated,\n            // then sum any of those counts if they are\n            // aggregated further\n            aggregate: ['sum', 'count'],\n            Aggregated: ({ value }) => `${value} Names`,\n          },\n          {\n            Header: 'Last Name',\n            accessor: 'lastName',\n            // Use another two-stage aggregator here to\n            // first count the UNIQUE values from the rows\n            // being aggregated, then sum those counts if\n            // they are aggregated further\n            aggregate: ['sum', 'uniqueCount'],\n            Aggregated: ({ value }) => `${value} Unique Names`,\n          },\n        ],\n      },\n      {\n        Header: 'Info',\n        columns: [\n          {\n            Header: 'Age',\n            accessor: 'age',\n            // Aggregate the average age of visitors\n            aggregate: 'average',\n            Aggregated: ({ value }) => `${value} (avg)`,\n          },\n          {\n            Header: 'Visits',\n            accessor: 'visits',\n            // Aggregate the sum of all visits\n            aggregate: 'sum',\n            Aggregated: ({ value }) => `${value} (total)`,\n          },\n          {\n            Header: 'Status',\n            accessor: 'status',\n          },\n          {\n            Header: 'Profile Progress',\n            accessor: 'progress',\n            // Use our custom roundedMedian aggregator\n            aggregate: roundedMedian,\n            Aggregated: ({ value }) => `${value} (med)`,\n          },\n        ],\n      },\n    ],\n    []\n  )\n\n  const data = React.useMemo(() => makeData(10000), [])\n\n  return <Table columns={columns} data={data} />\n}\n```\n\n## `useExpanded`\n\n- Plugin Hook\n- Optional\n\n`useExpanded` is the hook that implements **row expanding**. It is most often used with `useGroupBy` to expand grouped rows or on its own with nested `subRows` in tree-li,ke `data` sets, but is not limited to these use-cases. It supports expanding rows both via internal table state and also via a hard-coded key on the raw row model.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `state[0].expanded: Object<[pathIndex]: Boolean | ExpandedStateObject>`\n  - Optional\n  - Must be **memoized**\n  - An nested object of expanded paths.\n  - A `pathIndex` can be set as the key and its value set to `true` to expand that row's subRows into view. For example, if `{ '3': true }` was passed as the `expanded` state, the **4th row in the original data array** would be expanded.\n  - For nested expansion, you may **use another object** instead of a Boolean to expand sub rows. For example, if `{ '3': { '5' : true }}` was passed as the `expanded` state, then the **6th subRow of the 4th row and the 4th row of the original data array** would be expanded.\n  - This information is stored in state since the table is allowed to manipulate the filter through user interaction.\n- `subRowsKey: String`\n  - Optional\n  - See the [useTable hook](#table-options) for more details\n- `nestExpandedRows: Bool`\n  - Optional\n  - Defaults to `false`\n  - If set to `false`, expanded rows will not be paginated. Thus, any expanded subrows would potentially increase the size of any given page by the amount of total expanded subrows on the page.\n- `manualExpandedKey: String`\n  - Optional\n  - Defaults to `expanded`\n  - This string is used as the key to detect manual expanded state on any given row. For example, if a raw data row like `{ name: 'Tanner Linsley', friends: [...], expanded: true}` was detected, it would always be expanded, regardless of state.\n\n### Instance Properties\n\nThe following properties are available on the table instance returned from `useTable`\n\n- `rows: Array<Row>`\n  - An array of **sorted** rows.\n\n### Row Properties\n\nThe following additional properties are available on every `row` object returned by the table instance.\n\n- `isExpanded: Bool`\n  - If `true`, this row is in an expanded state.\n- `toggleExpanded: Function(?isExpanded: Bool) => void`\n  - This function will toggle the expanded state of a row between `true` and `false` or, if an `isExpanded` boolean is passed to the function, it will be set as the new `isExpanded` value.\n  - Rows with a hard-coded `manualExpandedKey` (defaults to `expanded`) set to `true` are not affected by this function or the internal expanded state.\n\n### Example\n\n```js\nfunction Table({ columns: userColumns, data }) {\n  const {\n    getTableProps,\n    headerGroups,\n    rows,\n    prepareRow,\n    state: [{ expanded }],\n  } = useTable(\n    {\n      columns: userColumns,\n      data,\n    },\n    useExpanded // Use the useExpanded plugin hook\n  )\n\n  return (\n    <>\n      <pre>\n        <code>{JSON.stringify({ expanded }, null, 2)}</code>\n      </pre>\n      <table {...getTableProps()}>\n        <thead>\n          {headerGroups.map(headerGroup => (\n            <tr {...headerGroup.getHeaderGroupProps()}>\n              {headerGroup.headers.map(column => (\n                <th {...column.getHeaderProps()}>{column.render('Header')}</th>\n              ))}\n            </tr>\n          ))}\n        </thead>\n        <tbody>\n          {rows.map(\n            (row, i) =>\n              prepareRow(row) || (\n                <tr {...row.getRowProps()}>\n                  {row.cells.map(cell => {\n                    return (\n                      <td {...cell.getCellProps()}>{cell.render('Cell')}</td>\n                    )\n                  })}\n                </tr>\n              )\n          )}\n        </tbody>\n      </table>\n      <br />\n      <div>Showing the first 20 results of {rows.length} rows</div>\n    </>\n  )\n}\n\nfunction App() {\n  const columns = React.useMemo(\n    () => [\n      {\n        // Build our expander column\n        Header: () => null, // No header, please\n        id: 'expander', // Make sure it has an ID\n        Cell: ({ row }) =>\n          // Use the row.canExpand and row.getExpandedToggleProps prop getter\n          // to build the toggle for expanding a row\n          row.canExpand ? (\n            <span\n              {...row.getExpandedToggleProps({\n                style: {\n                  // We can even use the row.depth property\n                  // and paddingLeft to indicate the depth\n                  // of the row\n                  paddingLeft: `${row.depth * 2}rem`,\n                },\n              })}\n            >\n              {row.isExpanded ? '👇' : '👉'}\n            </span>\n          ) : null,\n      },\n      {\n        Header: 'Name',\n        columns: [\n          {\n            Header: 'First Name',\n            accessor: 'firstName',\n          },\n          {\n            Header: 'Last Name',\n            accessor: 'lastName',\n          },\n        ],\n      },\n      {\n        Header: 'Info',\n        columns: [\n          {\n            Header: 'Age',\n            accessor: 'age',\n          },\n          {\n            Header: 'Visits',\n            accessor: 'visits',\n          },\n          {\n            Header: 'Status',\n            accessor: 'status',\n          },\n          {\n            Header: 'Profile Progress',\n            accessor: 'progress',\n          },\n        ],\n      },\n    ],\n    []\n  )\n\n  const data = React.useMemo(() => makeData(5, 5, 5), [])\n\n  return <Table columns={columns} data={data} />\n}\n```\n\n## `usePagination`\n\n- Plugin Hook\n- Optional\n\n`usePagination` is the hook that implements **row pagination**. It can be used for both client-side pagination or server-side pagination. For more information on pagination, see [Pagination](TODO)\n\n> **NOTE** Some server-side pagination implementations do not use page index and instead use **token based pagination**! If that's the case, please use the `useTokenPagination` plugin instead.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `state[0].pageSize: Int`\n  - **Required**\n  - Defaults to `10`\n  - Determines the amount of rows on any given page\n- `state[0].pageIndex: Int`\n  - **Required**\n  - Defaults to `0`\n  - The index of the page that should be displayed via the `page` instance value\n- `pageCount: Int`\n  - **Required if `manualPagination` is set to `true`**\n  - If `manualPagination` is `true`, then this value used to determine the amount of pages available. This amount is then used to materialize the `pageOptions` and also compute the `canNextPage` values on the table instance.\n- `manualPagination: Bool`\n  - Enables pagination functionality, but does not automatically perform row pagination.\n  - Turn this on if you wish to implement your own pagination outside of the table (eg. server-side pagination or any other manual pagination technique)\n- `disablePageResetOnDataChange`\n  - Defaults to `false`\n  - Normally, any changes detected to `rows`, `state.filters`, `state.groupBy`, or `state.sortBy` will trigger the `pageIndex` to be reset to `0`\n  - If set to `true`, the `pageIndex` will not be automatically set to `0` when these dependencies change.\n\n### Instance Properties\n\nThe following values are provided to the table `instance`:\n\n- `pages: Array<page>`\n  - An array of every generated `page`, each containing its respective rows.\n- `page: Array<row>`\n  - An array of rows for the **current** page, determined by the current `pageIndex` value.\n- `pageCount: Int`\n  - If `manualPagination` is set to `false`, this is the total amount of pages available in the table based on the current `pageSize` value\n  - if `manualPagination` is set to `true`, this is merely the same `pageCount` option that was passed in the table options.\n- `pageOptions: Array<Int>`\n  - An array of zero-based index integers corresponding to available pages in the table.\n  - This can be useful for generating things like select interfaces for the user to select a page from a list, instead of manually paginating to the desired page.\n- `canPreviousPage: Bool`\n  - If there are pages and the current `pageIndex` is greater than `0`, this will be `true`\n- `canNextPage:`\n  - If there are pages and the current `pageIndex` is less than `pageCount`, this will be `true`\n- `gotoPage: Function(pageIndex)`\n  - This function, when called with a valid `pageIndex`, will set `pageIndex` to that value.\n  - If the passed index is outside of the valid `pageIndex` range, then this function will do nothing.\n- `previousPage: Function`\n  - This function decreases `state.pageIndex` by one.\n  - If there are no pages or `canPreviousPage` is false, this function will do nothing.\n- `nextPage: Function`\n  - This function increases `state.pageIndex` by one.\n  - If there are no pages or `canNextPage` is false, this function will do nothing.\n- `setPageSize: Function(pageSize)`\n  - This function sets `state.pageSize` to the new value.\n  - As a result of a pageSize change, a new `state.pageIndex` is also calculated. It is calculated via `Math.floor(currentTopRowIndex / newPageSize)`\n- `pageIndex: Int`\n  - This is the resolved `state.pageIndex` value.\n- `pageSize: Int`\n  - This is the resolved `state.pageSize` value.\n\n### Example\n\n```js\nfunction Table({ columns, data }) {\n  // Use the state and functions returned from useTable to build your UI\n  const {\n    getTableProps,\n    headerGroups,\n    prepareRow,\n    page, // Instead of using 'rows', we'll use page,\n    // which has only the rows for the active page\n\n    // The rest of these things are super handy, too ;)\n    canPreviousPage,\n    canNextPage,\n    pageOptions,\n    pageCount,\n    gotoPage,\n    nextPage,\n    previousPage,\n    setPageSize,\n    state: [{ pageIndex, pageSize }],\n  } = useTable(\n    {\n      columns,\n      data,\n    },\n    usePagination\n  )\n\n  // Render the UI for your table\n  return (\n    <>\n      <pre>\n        <code>\n          {JSON.stringify(\n            {\n              pageIndex,\n              pageSize,\n              pageCount,\n              canNextPage,\n              canPreviousPage,\n            },\n            null,\n            2\n          )}\n        </code>\n      </pre>\n      <table {...getTableProps()}>\n        <thead>\n          {headerGroups.map(headerGroup => (\n            <tr {...headerGroup.getHeaderGroupProps()}>\n              {headerGroup.headers.map(column => (\n                <th {...column.getHeaderProps()}>{column.render('Header')}</th>\n              ))}\n            </tr>\n          ))}\n        </thead>\n        <tbody>\n          {page.map(\n            (row, i) =>\n              prepareRow(row) || (\n                <tr {...row.getRowProps()}>\n                  {row.cells.map(cell => {\n                    return (\n                      <td {...cell.getCellProps()}>{cell.render('Cell')}</td>\n                    )\n                  })}\n                </tr>\n              )\n          )}\n        </tbody>\n      </table>\n      {/* \n        Pagination can be built however you'd like. \n        This is just a very basic UI implementation:\n      */}\n      <div className=\"pagination\">\n        <button onClick={() => gotoPage(0)} disabled={!canPreviousPage}>\n          {'<<'}\n        </button>{' '}\n        <button onClick={() => previousPage()} disabled={!canPreviousPage}>\n          {'<'}\n        </button>{' '}\n        <button onClick={() => nextPage()} disabled={!canNextPage}>\n          {'>'}\n        </button>{' '}\n        <button onClick={() => gotoPage(pageCount - 1)} disabled={!canNextPage}>\n          {'>>'}\n        </button>{' '}\n        <span>\n          Page{' '}\n          <strong>\n            {pageIndex + 1} of {pageOptions.length}\n          </strong>{' '}\n        </span>\n        <span>\n          | Go to page:{' '}\n          <input\n            type=\"number\"\n            defaultValue={pageIndex + 1}\n            onChange={e => {\n              const page = e.target.value ? Number(e.target.value) - 1 : 0\n              gotoPage(page)\n            }}\n            style={{ width: '100px' }}\n          />\n        </span> <select\n          value={pageSize}\n          onChange={e => {\n            setPageSize(Number(e.target.value))\n          }}\n        >\n          {[10, 20, 30, 40, 50].map(pageSize => (\n            <option key={pageSize} value={pageSize}>\n              Show {pageSize}\n            </option>\n          ))}\n        </select>\n      </div>\n    </>\n  )\n}\n\nfunction App() {\n  const columns = React.useMemo(\n    () => [\n      {\n        Header: 'Name',\n        columns: [\n          {\n            Header: 'First Name',\n            accessor: 'firstName',\n          },\n          {\n            Header: 'Last Name',\n            accessor: 'lastName',\n          },\n        ],\n      },\n      {\n        Header: 'Info',\n        columns: [\n          {\n            Header: 'Age',\n            accessor: 'age',\n          },\n          {\n            Header: 'Visits',\n            accessor: 'visits',\n          },\n          {\n            Header: 'Status',\n            accessor: 'status',\n          },\n          {\n            Header: 'Profile Progress',\n            accessor: 'progress',\n          },\n        ],\n      },\n    ],\n    []\n  )\n\n  const data = React.useMemo(() => makeData(100000), [])\n\n  return (\n    <Styles>\n      <Table columns={columns} data={data} />\n    </Styles>\n  )\n}\n```\n\n## `useTokenPagination (Coming Soon)`\n\n- Plugin Hook\n- Optional\n\n`useTokenPagination` is the hook that **aids in implementing row pagination using tokens**. It is useful for server-side pagination implementations that use **tokens** instead of page index. For more information on pagination, see [Pagination](TODO)\n\n> Documentation Coming Soon...\n\n## `useRowSelect`\n\n- Plugin Hook\n- Optional\n\n`useRowSelect` is the hook that implements **basic row selection**. For more information on row selection, see [Row Selection](TODO)\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `state[0].selectedRows: Array<RowPathKey>`\n  - Optional\n  - Defaults to `[]`\n  - If a row's path key (eg. a row path of `[1, 3, 2]` would have a path key of `1.3.2`) is found in this array, it will have a selected state.\n- `manualRowSelectedKey: String`\n  - Optional\n  - Defaults to `selected`\n  - If this key is found on the **original** data row, and it is true, this row will be manually selected\n\n### Instance Properties\n\nThe following values are provided to the table `instance`:\n\n- `toggleRowSelected: Function(rowPath: String, ?set: Bool) => void`\n  - Use this function to toggle a row's selected state.\n  - Optionally pass `true` or `false` to set it to that state\n- `toggleRowSelectedAll: Function(?set: Bool) => void`\n  - Use this function to toggle all rows as select or not\n  - Optionally pass `true` or `false` to set all rows to that state\n- `getToggleAllRowsSelectedProps: Function(props) => props`\n  - Use this function to get the props needed for a **select all checkbox**.\n  - Props:\n    - `onChange: Function()`\n    - `style.cursor: 'pointer'`\n    - `checked: Bool`\n    - `title: 'Toggle All Rows Selected'`\n- `allRowsSelected: Bool`\n  - Will be `true` if all rows are selected.\n  - If at least one row is not selected, will be `false`\n\n### Example\n\n```js\nfunction Table({ columns, data }) {\n  // Use the state and functions returned from useTable to build your UI\n  const {\n    getTableProps,\n    headerGroups,\n    rows,\n    prepareRow,\n    state: [{ selectedRows }],\n  } = useTable(\n    {\n      columns,\n      data,\n    },\n    useRowSelect\n  )\n\n  // Render the UI for your table\n  return (\n    <>\n      <table {...getTableProps()}>\n        <thead>\n          {headerGroups.map(headerGroup => (\n            <tr {...headerGroup.getHeaderGroupProps()}>\n              {headerGroup.headers.map(column => (\n                <th {...column.getHeaderProps()}>{column.render('Header')}</th>\n              ))}\n            </tr>\n          ))}\n        </thead>\n        <tbody>\n          {rows.map(\n            (row, i) =>\n              prepareRow(row) || (\n                <tr {...row.getRowProps()}>\n                  {row.cells.map(cell => {\n                    return (\n                      <td {...cell.getCellProps()}>{cell.render('Cell')}</td>\n                    )\n                  })}\n                </tr>\n              )\n          )}\n        </tbody>\n      </table>\n      <p>Selected Rows: {selectedRows.length}</p>\n      <pre>\n        <code>{JSON.stringify({ selectedRows }, null, 2)}</code>\n      </pre>\n    </>\n  )\n}\n\nfunction App() {\n  const columns = React.useMemo(\n    () => [\n      // Let's make a column for selection\n      {\n        id: 'selection',\n        // The header can use the table's getToggleAllRowsSelectedProps method\n        // to render a checkbox\n        Header: ({ getToggleAllRowsSelectedProps }) => (\n          <div>\n            <input type=\"checkbox\" {...getToggleAllRowsSelectedProps()} />\n          </div>\n        ),\n        // The cell can use the individual row's getToggleRowSelectedProps method\n        // to the render a checkbox\n        Cell: ({ row }) => (\n          <div>\n            <input type=\"checkbox\" {...row.getToggleRowSelectedProps()} />\n          </div>\n        ),\n      },\n      {\n        Header: 'Name',\n        columns: [\n          {\n            Header: 'First Name',\n            accessor: 'firstName',\n          },\n          {\n            Header: 'Last Name',\n            accessor: 'lastName',\n          },\n        ],\n      },\n      {\n        Header: 'Info',\n        columns: [\n          {\n            Header: 'Age',\n            accessor: 'age',\n          },\n          {\n            Header: 'Visits',\n            accessor: 'visits',\n          },\n          {\n            Header: 'Status',\n            accessor: 'status',\n          },\n          {\n            Header: 'Profile Progress',\n            accessor: 'progress',\n          },\n        ],\n      },\n    ],\n    []\n  )\n\n  const data = React.useMemo(() => makeData(10), [])\n\n  return <Table columns={columns} data={data} />\n}\n```\n\n## `useRowState`\n\n- Plugin Hook\n- Optional\n\n`useRowState` is a plugin hook that implements **basic state management for _prepared_ rows and their cells**.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `state[0].rowState: Object<RowPathKey:Object<any, cellState: {columnID: Object}>>`\n  - Optional\n  - Defaults to `{}`\n  - If a row's path key (eg. a row path of `[1, 3, 2]` would have a path key of `1.3.2`) is found in this array, it will have the state of the value corresponding to that key.\n  - Individual row states can contain anything, but they also contain a `cellState` key, which provides cell-level state based on column ID's to every\n    **prepared** cell in the table.\n- `initialRowStateAccessor: Function`\n  - Optional\n  - This function may optionally return the initial state for a row.\n  - If this function is defined, it will be passed a `Row` object, from which you can return a value to use as the initial state, eg. `row => row.original.initialState`\n\n### Instance Properties\n\nThe following values are provided to the table `instance`:\n\n- `setRowState: Function(rowPath: Array<string>, updater: Function | Any) => void`\n  - Use this function to programmatically update the state of a row.\n  - `updater` can be a function or value. If a `function` is passed, it will receive the current value and expect a new one to be returned.\n- `setCellState: Function(rowPath: Array<string>, columnID: String, updater: Function | Any) => void`\n  - Use this function to programmatically update the cell of a row.\n  - `updater` can be a function or value. If a `function` is passed, it will receive the current value and expect a new one to be returned.\n\n### Row Properties\n\nThe following additional properties are available on every **prepared** `row` object returned by the table instance.\n\n- `state: Object`\n  - This is the state object for each row, pre-mapped to the row from the table state's `rowState` object via `rowState[row.path.join('.')]`\n  - May also contain a `cellState` key/value pair, which is used to provide individual cell states to this row's cells\n- `setState: Function(updater: Function | any)`\n  - Use this function to programmatically update the state of a row.\n  - `updater` can be a function or value. If a `function` is passed, it will receive the current value and expect a new one to be returned.\n\n### Cell Properties\n\nThe following additional properties are available on every `Cell` object returned in an array of `cells` on every row object.\n\n- `state: Object`\n  - This is the state object for each cell, pre-mapped to the cell from the table state's `rowState` object via `rowState[row.path.join('.')].cellState[columnID]`\n- `setState: Function(updater: Function | any)`\n  - Use this function to programmatically update the state of a cell.\n  - `updater` can be a function or value. If a `function` is passed, it will receive the current value and expect a new one to be returned.\n\n### Example\n\n> Have an example of using useRowState? Submit a PR to add it here!\n\n## `useTableState`\n\n- Optional\n\n`useTableState` is a hook that allows you to hoist the table state out of the table into your own code. You should use this hook if you need to:\n\n- Know about the internal table state\n- React to changes to the internal table state\n- Manually control or override the internal table state\n\nSome common use cases for this hook are:\n\n- Reacting to `pageIndex` and `pageSize` changes for server-side pagination to fetch new data\n- Disallowing specific states via a custom state reducer\n- Enabling parent/unrelated components to manipulate the table state\n\n### Hook Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `initialState: Object`\n  - Optional\n  - The initial state object for the table.\n  - This object is **merged over the `defaultState` object** (eg. `{...defaultState, ...initialState}`) that React Table and its hooks use to register default state to produce the final initial state object passed to the resolved `useState` hook.\n- `overrides: Object`\n  - Optional\n  - Must be **memoized**\n  - This object is **merged over the current table state** (eg. `{...state, ...overrides}`) to produce the final state object that is then passed to the `useTable` options\n- `options: Object`\n  - `reducer: Function(oldState, newState) => finalState`\n    - Optional\n    - Inspired by Kent C. Dodd's [State Reducer Pattern](https://kentcdodds.com/blog/the-state-reducer-pattern-with-react-hooks)\n    - With every `setState` call to a table state (even internally), this reducer is called and is allowed to modify the final state object for updating.\n    - It is passed the `oldState`, the `newState`, and an action `type`.\n  - `useState`\n    - Optional\n    - Defaults to `React.useState`\n    - This function, if defined will be used as the state hook internally instead of the default `React.useState`. This can be useful for implementing custom state storage hooks like useLocalStorage, etc.\n\n### Output\n\n- `tableStateTuple: [tableState, setTableState]`\n  - Similar in structure to the result of `React.useState`\n  - **Memoized** - This tuple array will not change between renders unless the state or `useTableState` options change.\n  - `tableState: Object`\n    - **Memoized** - This object reference will not change unless the state changes.\n    - This is the final state object of the table, which is the product of the `initialState`, `overrides` and the `reducer` options (if applicable)\n  - `setTableState: Function(updater, type) => void`\n    - **Memoized** - This function reference will not change unless the internal state `reducer` is changed\n    - This function is used both internally by React Table, and optionally by you (the developer) to update the table state programmatically.\n    - `updater: Function`\n      - This function signature is **almost** (see next point) identical to the functional API exposed by `React.setState`. It is passed the previous state and is expected to return a new version of the state.\n      - **NOTE: `updater` must be a function. Passing a replacement object is not supported as it is with React.useState**\n    - `type: String`\n      - The [action type](TODO) corresponding to what action being taken against the state.\n\n### Example\n\n```js\nexport default function MyTable({ manualPageIndex }) {\n  // This is the initial state for our table\n  const initialState = { pageSize: 10, pageIndex: 0 }\n\n  // Here, we can override the pageIndex\n  // regardless of the internal table state\n  const overrides = React.useMemo(() => ({\n    pageIndex: manualPageIndex,\n  }))\n\n  const state = useTableState(initialState, overrides)\n\n  // You can use effects to observe changes to the state\n  React.useEffect(\n    () => {\n      console.log('Page Size Changed!', initialState.pageSize)\n    },\n    [initialState.pageSize]\n  )\n\n  const { rows } = useTable({\n    state,\n  })\n}\n```\n\n# Guides\n\n## Sorting\n\n### Client-Side Sorting\n\n- [Example]()\n\nClient-side sorting can be accomplished by using the `useSortBy` plugin hook. Start by importing the hook from `react-table`:\n\n```diff\n-import { useTable } from 'react-table'\n+import { useTable, useSortBy } from 'react-table'\n```\n\nNext, add the `useSortBy` hook to your `useTable` hook and add the necessary UI pieces we need to make sorting work:\n\n```diff\nfunction MyTable() {\n  const { getTableProps, headerGroups, rows, prepareRow } = useTable(\n    {\n      data,\n      columns,\n    },\n-   useSortBy\n+   useSortBy\n  )\n\n  return (\n    <table {...getTableProps()}>\n      <thead>\n        {headerGroups.map(headerGroup => (\n          <tr {...headerGroup.getHeaderGroupProps()}>\n            {headerGroup.headers.map(column => (\n-             <th {...column.getHeaderProps()}>\n+             <th {...column.getHeaderProps(column.getSortByToggleProps())}>\n                {column.render('Header')}\n+               <span>\n+                 {column.sorted ? (column.sortedDesc ? ' 🔽' : ' 🔼') : ''}\n+               </span>\n              </th>\n            ))}\n          </tr>\n        ))}\n      </thead>\n      <tbody>\n        {rows.map(\n          (row, i) =>\n            prepareRow(row) || (\n              <tr {...row.getRowProps()}>\n                {row.cells.map(cell => {\n                  return <td {...cell.getCellProps()}>{cell.render('Cell')}</td>\n                })}\n              </tr>\n            )\n        )}\n      </tbody>\n    </table>\n  )\n}\n```\n\n### Server-Side Sorting\n\nServer-side sorting can be accomplished by using the `useSortBy` plugin hook in **controlled** mode along with the `useTableState` hook. Start by importing these hooks from `react-table`:\n\n```diff\n-import { useTable } from 'react-table'\n+import { useTable, useSortBy, useTableState } from 'react-table'\n```\n\nNext, add the `useSortBy` and `useTableState` hooks to your `useTable` hook, configure the table state, then add the necessary UI pieces we need to make sorting work:\n\n```diff\nfunction MyTable(data, columns, fetchData) {\n\n+ const state = useTableState()\n+ const [{ sortBy }] = state\n\n+ React.useEffect(() => {\n+   // When sorting changes, trigger your parent component\n+   // or hook to fetch new data with the table state\n+   fetchData(state[0])\n+ }, [sortBy])\n\n  const { getTableProps, headerGroups, rows, prepareRow } = useTable(\n    {\n      data,\n      columns,\n+     state,\n+     manualSorting: true\n    },\n-   useSortBy\n+   useSortBy\n  )\n\n  return (\n    <table {...getTableProps()}>\n      <thead>\n        {headerGroups.map(headerGroup => (\n          <tr {...headerGroup.getHeaderGroupProps()}>\n            {headerGroup.headers.map(column => (\n-             <th {...column.getHeaderProps()}>\n+             <th {...column.getHeaderProps(column.getSortByToggleProps())}>\n                {column.render('Header')}\n+               <span>\n+                 {column.sorted ? (column.sortedDesc ? ' 🔽' : ' 🔼') : ''}\n+               </span>\n              </th>\n            ))}\n          </tr>\n        ))}\n      </thead>\n      <tbody>\n        {rows.map(\n          (row, i) =>\n            prepareRow(row) || (\n              <tr {...row.getRowProps()}>\n                {row.cells.map(cell => {\n                  return <td {...cell.getCellProps()}>{cell.render('Cell')}</td>\n                })}\n              </tr>\n            )\n        )}\n      </tbody>\n    </table>\n  )\n}\n```\n\n<!--\n\n## Client Side Pagination\n\nTo add client side pagination, use the `usePagination` hook:\n\n```diff\n// Import React\nimport React from 'react'\n\n// Import React Table\nimport {\n  useTable,\n  useGroupBy,\n  useFilters,\n  useSortBy,\n  useExpanded,\n+  usePagination,\n} from 'react-table'\n\n// Create a component to render your table\nfunction MyTable(props) {\n  // Use the useTable hook to create your table configuration\n  const instance = useTable(\n    props,\n    useGroupBy,\n    useFilters,\n    useSortBy,\n    useExpanded,\n+   usePagination,\n  )\n\n  // Use the state and functions returned from useTable to build your UI\n  const {\n    getTableProps,\n    headerGroups,\n    rows,\n    getRowProps,\n    prepareRow,\n+   pageOptions,\n+   page,\n+   state: [{ pageIndex, pageSize }],\n+   gotoPage,\n+   previousPage,\n+   nextPage,\n+   setPageSize,\n+   canPreviousPage,\n+   canNextPage,\n  } = instance\n\n  // Render the UI for your table\n  return (\n    <div>\n      <table {...getTableProps()}>\n        ...\n      </table>\n+     <div>\n+       <button onClick={() => previousPage()} disabled={!canPreviousPage}>\n+         Previous Page\n+       </button>\n+       <button onClick={() => nextPage()} disabled={!canNextPage}>\n+         Next Page\n+       </button>\n+       <div>\n+         Page{' '}\n+         <em>\n+           {pageIndex + 1} of {pageOptions.length}\n+         </em>\n+       </div>\n+       <div>Go to page:</div>\n+       <input\n+         type=\"number\"\n+         defaultValue={pageIndex + 1 || 1}\n+         onChange={e => {\n+           const page = e.target.value ? Number(e.target.value) - 1 : 0\n+           gotoPage(page)\n+         }}\n+       />\n+       <select\n+         value={pageSize}\n+         onChange={e => {\n+           setPageSize(Number(e.target.value))\n+         }}\n+       >\n+         {pageSizeOptions.map(pageSize => (\n+           <option key={pageSize} value={pageSize}>\n+             Show {pageSize}\n+           </option>\n+         ))}\n+       </select>\n+     </div>\n    </div>\n  )\n}\n```\n\n## Server Side Pagination\n\nTo implement server-side pagination, use the `useTableState` and `usePagination` hooks:\n\n```diff\n\n``` -->\n\n<!-- # Setup\n\nTo begin using React Table you will need to start with a UI to render it. Below is a very basic component that should serve as a good starting point for most projects:\n\n```js\n// Import React\nimport React from 'react'\n\n// Import React Table\nimport {\n  useTable,\n  useGroupBy,\n  useFilters,\n  useSortBy,\n  useExpanded,\n  usePagination,\n} from 'react-table'\n\n// Create a component to render your table\nexport default function MyTable(props) {\n  // Use the useTable hook to create your table configuration\n  const instance = useTable(\n    props,\n    useGroupBy,\n    useFilters,\n    useSortBy,\n    useExpanded,\n    usePagination\n  )\n\n  // Use the state and functions returned from useTable to build your UI\n  const {\n    getTableProps,\n    headerGroups,\n    rows,\n    getRowProps,\n    pageOptions,\n    page,\n    state: [{ pageIndex, pageSize }],\n    gotoPage,\n    prepareRow,\n    previousPage,\n    nextPage,\n    setPageSize,\n    canPreviousPage,\n    canNextPage,\n  } = instance\n\n  // Render the UI for your table\n  return (\n    <div>\n      <table {...getTableProps()}>\n        <thead>\n          {headerGroups.map(headerGroup => (\n            <tr {...headerGroup.getRowProps()}>\n              {headerGroup.headers.map(column => (\n                <th {...column.getHeaderProps()}>{column.render('Header')}</th>\n              ))}\n            </tr>\n          ))}\n        </thead>\n        <tbody>\n          {page.map(\n            (row, i) =>\n              prepareRow(row) || (\n                <tr {...row.getRowProps()}>\n                  {row.cells.map(cell => {\n                    return (\n                      <td {...cell.getCellProps()}>{cell.render('Cell')}</td>\n                    )\n                  })}\n                </tr>\n              )\n          )}\n        </tbody>\n      </table>\n      <div>\n        <button onClick={() => previousPage()} disabled={!canPreviousPage}>\n          Previous Page\n        </button>\n        <button onClick={() => nextPage()} disabled={!canNextPage}>\n          Next Page\n        </button>\n        <div>\n          Page{' '}\n          <em>\n            {pageIndex + 1} of {pageOptions.length}\n          </em>\n        </div>\n        <div>Go to page:</div>\n        <input\n          type=\"number\"\n          defaultValue={pageIndex + 1 || 1}\n          onChange={e => {\n            const page = e.target.value ? Number(e.target.value) - 1 : 0\n            gotoPage(page)\n          }}\n        />\n        <select\n          value={pageSize}\n          onChange={e => {\n            setPageSize(Number(e.target.value))\n          }}\n        >\n          {pageSizeOptions.map(pageSize => (\n            <option key={pageSize} value={pageSize}>\n              Show {pageSize}\n            </option>\n          ))}\n        </select>\n      </div>\n    </div>\n  )\n}\n```\n\nYou can then use your table like so:\n\n```js\n\nimport MyTable from './MyTable'\n\nfunction MyApp () {\n  const columns = React.useMemo(() => [{\n    Header: \"Name\",\n    columns: [\n      {\n        Header: \"First Name\",\n        accessor: \"firstName\",\n      },\n      {\n        Header: \"Last Name\",\n        accessor: \"lastName\",\n      }\n    ]\n  }], [])\n\n  const data = [{\n    firstName: 'Tanner',\n    lastName: 'Linsley'\n  }, {\n    firstName: 'Shawn',\n    lastName: 'Wang'\n  }, {\n    firstName: 'Kent C.',\n    lastName: 'Dodds'\n  }, {\n    firstName: 'Ryan',\n    lastName: 'Florence'\n  }]\n\n  return <MyTable columns={columns} data={data} />\n``` -->\n\n## Contributing\n\nTo suggest a feature, create an issue if it does not already exist.\nIf you would like to help develop a suggested feature follow these steps:\n\n- Fork this repo\n- Install dependencies with `$ yarn`\n- Link `react-table` locally with `$ yarn link`\n- Auto-build files as you edit with `$ yarn start`\n- Implement your changes and tests to files in the `src/` directory\n- In any example directory, link to the local `react-table` with `$ yarn link react-table`\n- Follow example directions for running. Usually just `$ yarn && yarn start`\n- Document your changes in the root `README.md`\n- To stage a commit, run `yarn commit`\n- Submit PR for review\n","licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.0-alpha.21","dist":{"shasum":"a2c7c1b79ab6a2f0361b69f70a0923b47b9d879a","integrity":"sha512-eYFZ9D3bEB7lsDm3S6YpOoZ5SgBXXTx4+dQ/wfnR5XxGVCRuGfeugoVzKuTKFu2P/+4HPsxkM49qJqK6xHTn4g==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.0-alpha.21.tgz","fileCount":41,"unpackedSize":535929,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdSlTGCRA9TVsSAnZWagAA2mcP+wU876uy8QbGj7Lc0K28\ndHC8aVmWfYNbYYRBIEq+UMvuuy7WqM/ekY2L0OI0guuPGP6y0hNi1ol7HgzX\nuyRRRkd8bzZGa+zk+zFnUX6NHOCt14ltmCzbEUYuSHFBwxKS9DkMMjMY14Ze\nII6wOrJeEOXk9PmyshTIHw6Z8PXqEmtHSIUWvDRLHezmeK+F92YH6RhRNDTA\n9o8IdtfBGdIyHsp6tIhKxfX7qq0EPCSj1pjh53EFuGr779t53FPVmdlkFf2T\n4qJ59j3ZSfN4AsosuesF5tJefz2vVYFe8WUjsvuUAIU4y89Dp7o3KLC+pJxj\nKuZ3C644tccI8hpPNEuoRnL4fdq3K58vyjYUrJO7UHvS0uPKkgvrKxUSmFP+\naazYNkZ11R/1QUwzRXTSb/7YB3zmiNneAH1/A3Vi3rh1mdBhQg/XdJrKjjJ6\ne9r7g9zm5lgLkmYnAdpIpCD8hqsMYyAgi7SnpBbepBEG3pKmDU3qrIVx+zcP\nUErYICXNv2kDKp7EbJstPF7ewHJ9E6fYuYbyupQfNFaY1eJOLt/iXIIw2RWU\npAcQoMtNwtpuV8h4p0CTvgeI7qGtgAto4yXsr6DXH3jiqNwkTnnYwqSQGUto\n7MGI52DIJKfZ85HJEbSREP7KZ6ZpT6uvp51760cs+DhiSV17A8GNjGSiBl5j\nbMbL\r\n=tg4l\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIH63td+P/QJqKNiccbiRsaa0AtSAOF+1iqRsIqivuX7CAiEA/1a9siB2aQdSg34iXz1NI9yCMef5LKRzlyTqzpbHbdU="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.0-alpha.21_1565152454048_0.400079626289082"},"_hasShrinkwrap":false},"7.0.0-alpha.22":{"name":"react-table","version":"7.0.0-alpha.22","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"dist/index.js","module":"dist/index.es.js","jsnext:main":"dist/index.es.js","scripts":{"commit":"git add . && git-cz","test":"is-ci 'test:ci' 'test:dev'","test:dev":"jest --watch","test:ci":"jest","build":"rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier ./src/**/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"prop-types":"^15.5.0","react":"^16.8.3","react-dom":"^16.8.3"},"devDependencies":{"@babel/core":"^7.5.5","@babel/plugin-proposal-class-properties":"^7.5.5","@babel/preset-env":"^7.5.5","@babel/preset-react":"^7.0.0","@babel/runtime":"^7.5.5","@commitlint/cli":"^8.1.0","@commitlint/config-conventional":"^8.1.0","@svgr/rollup":"^4.3.2","@testing-library/dom":"^6.0.0","@testing-library/jest-dom":"^4.0.0","@testing-library/react":"^9.1.1","babel-eslint":"9.x","commitizen":"^4.0.3","core-js":"3.2.1","cross-env":"^5.2.0","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^8.0.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.14.3","eslint-plugin-react-hooks":"1.7.0","eslint-plugin-standard":"^4.0.0","husky":"^3.0.3","is-ci-cli":"^1.1.1","jest":"^24.8.0","jest-cli":"^24.8.0","jest-runner-eslint":"^0.7.4","jest-watch-select-projects":"^0.1.2","jest-watch-typeahead":"^0.3.1","lint-staged":"^9.2.1","prop-types":"^15.5.0","react":"^16.9.0","react-dom":"^16.9.0","rollup":"^0.68.0","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^9.1.3","rollup-plugin-node-resolve":"^4.0.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-uglify":"^6.0.2","snapshot-diff":"^0.5.2"},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"browserslist":"> 0.25%, not dead","readmeFilename":"README.md","readme":"# React Table\n\nHooks for building **lightweight, fast and extendable datagrids** for React\n\n<a href=\"https://travis-ci.org/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://travis-ci.org/tannerlinsley/react-table.svg?branch=master\" />\n</a>\n<a href=\"https://npmjs.com/package/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-table.svg\" />\n</a>\n<a href=\"https://spectrum.chat/react-table\">\n  <img alt=\"Join the community on Spectrum\" src=\"https://withspectrum.github.io/badge/badge.svg\" />\n</a>\n<a href=\"https://github.com/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-table.svg?style=social&label=Star\" />\n</a>\n<a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n<br />\n<br />\n<a href=\"https://patreon.com/tannerlinsley\">\n  <img width=\"180\" alt=\"\" src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/become-a-patron.png\" />\n</a>\n\n<br />\n<br />\n\n## Features\n\n- Lightweight (4kb - 10kb depending on features and tree-shaking)\n- Headless (100% customizable, Bring-your-own-UI)\n- Client-side & Server-side pagination support\n- Sorting (Multi and Stable)\n- Filters\n- Pivoting & Aggregation\n- Row Selection\n- Row Expansion\n- Fully controllable\n- Extensible via hook-based plugin system\n- <a href=\"https://medium.com/@tannerlinsley/why-i-wrote-react-table-and-the-problems-it-has-solved-for-nozzle-others-445c4e93d4a8#.axza4ixba\" target=\"\\_parent\">\"Why I wrote React Table and the problems it has solved for Nozzle.io\"</a> by Tanner Linsley\n\n## [See Examples](#examples)\n\n## Sponsors\n\n**React Table v7** is being built and maintained by me, @tannerlinsley and I am always in need of more Patreon support to keep this project afloat. If you would like to contribute to my Patreon goal for v7 and beyond, [visit my Patreon and help me out!](https://patreon.com/tannerlinsley).\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/platinum.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://tryretool.com/?utm_source=sponsor&utm_campaign=react_table\" target=\"_blank\">\n          <img width='480' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-retool.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/gold.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://nozzle.io\" target=\"_blank\">\n          <img width='230' src=\"https://nozzle.io/img/logo-blue.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://zappi.io/web/\" target=\"_blank\">\n          <img width='230' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-zappi.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://patreon.com/tannerlinsley\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/supporters.png\" />\n        </a>\n      </td>\n      <td>\n        <div>Nicholas Kaufmann</div>\n        <div><a href=\"https://www.metso.com/\">Pekka</a></div>\n        <div>Jon Eickmeier</div>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://patreon.com/tannerlinsley\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/fans.png\" />\n        </a>\n      </td>\n      <td>\n        <div>Sortmy.games</div>\n        <div>Hugo Meissner</div>\n        <div>Benoit Leger-Derville</div>\n        <div>Thomas Funk</div>\n        <div>Dan Houle</div>\n        <div>David Pickut</div>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<a href=\"https://patreon.com/tannerlinsley\">\n  <img width=\"150\" alt=\"\" src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/become-a-patron.png\" />\n</a>\n\n# Documentation\n\n- [Installation](#installation)\n- [Concepts](#concepts)\n- [Setup](#setup)\n- [Contributing](#contributing)\n\n# Installation\n\nInstall React Table as a dependency using `npm` or `yarn`\n\n```bash\n# NPM\n$ npm install react-table\n\n# Yarn\n$ yarn add react-table\n```\n\nTo import React Table:\n\n```js\nimport {\n  useTable,\n  useGroupBy,\n  useFilters,\n  useSortBy,\n  useExpanded,\n  usePagination,\n  ...\n} from 'react-table'\n```\n\n# Examples\n\n- Simple\n  - [Basic](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/master/examples/basic)\n  - [Sorting](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/master/examples/sorting)\n  - [Filtering](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/master/examples/filtering)\n  - [Grouping](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/master/examples/grouping)\n  - [Pagination](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/master/examples/pagination)\n  - [Row Selection](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/master/examples/row-selection)\n  - [Expanding](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/master/examples/expanding)\n  - [Sub Components](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/master/examples/sub-components)\n  - [Editable Data](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/master/examples/editable-data)\n- Controlled\n  - [Pagination (Controlled)](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/master/examples/pagination-controlled)\n\n# Concepts\n\n## React Table is a \"headless\" UI library\n\nReact Table is a headless utility, which means out of the box, it doesn't render or supply any actual UI elements. You are in charge of utilizing the state and callbacks of the hooks provided by this library to render your own table markup. [Read this article to understand why React Table is built this way.](https://medium.com/merrickchristensen/headless-user-interface-components-565b0c0f2e18). If you don't want to, then here's a quick rundown anyway:\n\n- Separation of Concerns - Not that superficial kind you read about all the time. The real kind. React Table as a library honestly has no business being in charge of your UI. The look, feel, and overall experience of your table is what makes your app or product great. The less React Table gets in the way of that, the better!\n- Maintenance - By removing the massive (and seemingly endless) API surface area required to support every UI use-case, React Table can remain small, easy-to-use and simple to update/maintain.\n- Extensibility - UI presents countless edge cases for a library simply because it's a creative medium, and one where every developer does things differently. By not dictating UI concerns, React Table empowers the developer to design and extend the UI based on their unique use-case.\n\n## The React Table API\n\nAt the heart of every React Table is a table `instance` object. This object contains everything needed to build a table and interact with it's state. This includes, but is not limited to:\n\n- Columns\n- Materialized Data\n- Sorting\n- Filtering\n- Grouping\n- Pagination\n- Expanded State\n- Any functionality provided by custom plugin hooks, too!\n\n## Using Hooks for configuration, state and lifecycle\n\nReact Table uses React Hooks both internally and externally for 100% of its configuration and lifecycle management. Naturally, this is what allows React Table to be headless and lightweight while still having a concise and simple API.\n\nReact Table is essentially a compatible collection of **custom React hooks**:\n\n- The primary React Table hook\n  - [`useTable`](#usetable)\n- Utility Hooks\n  - [`useTableState`](#useTableState)\n- Plugin Hooks\n  - Core Plugin Hooks\n    - [`useTableState`](#useTableState)\n    - [`useGroupBy`](#useGroupBy)\n    - [`useFilters`](#useFilters)\n    - [`useSortBy`](#useSortBy)\n    - [`useExpanded`](#useExpanded)\n    - [`usePagination`](#usePagination)\n    - [`useTokenPagination`](#useTokenPagination)\n    - [`useRowSelect`](#useRowSelect)\n    - [`useRowState`](#useRowState)\n  - Layout Plugin Hooks\n    - [`useFlexLayout`](#useFlexLayout)\n    - [`useAbsoluteLayout`](#useAbsoluteLayout) (coming soon!)\n- Custom Plugin Hooks\n  - Get your custom plugin hook listed here!\n\n### Hook Usage\n\n`useTable` is the **primary** hook used to build a React Table. It serves as the starting point for **every option and every plugin hook** that React Table supports. The options passed into `useTable` are supplied to every plugin hook after it in the order they are supplied, eventually resulting a final `instance` object that you can use to build your table UI and interact with the table's state.\n\n```js\nconst instance = useTable(\n  {\n    data: [...],\n    columns: [...],\n  },\n  useGroupBy,\n  useFilters,\n  useSortBy,\n  useExpanded,\n  usePagination\n)\n```\n\n### The stages of a React Table\n\n1. `useTable` is called. A table instance is created.\n1. The `instance.state` is resolved from either a custom user state or an automatically generated one.\n1. A collection of plugin points is created at `instance.hooks`.\n1. Each plugin is given the opportunity to add hooks to `instance.hook`.\n1. As the `useTable` logic proceeds to run, each plugin hook type is used at a specific point in time with each individual hook function being executed the order it was registered.\n1. The final instance object is returned from `useTable`, which the developer then uses to construct their table.\n\nThis multi-stage process is the secret sauce that allows React Table plugin hooks to work together and compose nicely, while not stepping on each others toes.\n\nTo dive deeper into plugins, see [Plugins](TODO) and the [Plugin Guide](TODO)\n\n### Plugin Hook Order & Consistency\n\nThe order and usage of plugin hooks must follow [The Laws of Hooks](TODO), just like any other custom hook. They must always be unconditionally called in the same order.\n\n> **NOTE: In the event that you want to programmatically enable or disable plugin hooks, most of them provide options to disable their functionality, eg. `options.disableSorting`**\n\n### Option Memoization\n\nReact Table relies on memoization to determine when state and side effects should update or be calculated. This means that every option you pass to `useTable` should be memoized either via `React.useMemo` (for objects) or `React.useCallback` (for functions).\n\n# API\n\n## `useTable`\n\n- Required\n\n`useTable` is the root hook for React Table. To use it, pass it with an options object with at least a `columns` and `rows` value, followed by any React Table compatible hooks you want to use.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `columns: Array<Column>`\n  - Required\n  - Must be **memoized**\n  - The core columns configuration object for the entire table.\n  - Supports nested `columns` arrays via the column's `columns` key, eg. `[{ Header: 'My Group', columns: [...] }]`\n- `data: Array<any>`\n  - Required\n  - Must be **memoized**\n  - The data array that you want to display on the table.\n- `state: TableStateTuple[stateObject, stateUpdater]`\n  - Optional\n  - Must be **memoized** table state tuple. See [`useTableState`](#usetablestate) for more information.\n  - The state/updater pair for the table instance. You would want to override this if you plan on controlling or hoisting table state into your own code.\n  - Defaults to using an internal `useTableState()` instance if not defined.\n  - See [Controlling and Hoisting Table State](#controlling-and-hoisting-table-state)\n- `defaultColumn: Object`\n  - Optional\n  - Defaults to `{}`\n  - The default column object for every column passed to React Table.\n  - Column-specific properties will override the properties in this object, eg. `{ ...defaultColumn, ...userColumn }`\n  - This is particularly useful for adding global column properties. For instance, when using the `useFilters` plugin hook, add a default `Filter` renderer for every column, eg.`{ Filter: MyDefaultFilterComponent }`\n- `initialRowStateKey: String`\n  - Optional\n  - Defaults to `initialState`\n  - This key is used to look for the initial state of a row when initializing the `rowState` for a`data` array.\n  - If the value located at `row[initialRowStateKey]` is falsey, `{}` will be used instead.\n- `debug: Bool`\n  - Optional\n  - A flag to turn on debug mode.\n  - Defaults to `false`\n\n### `column` Options\n\nThe following options are supported on any column object you can pass to `columns`.\n\n- `accessor: String | Function`\n  - **Required**\n  - This string/function is used to build the data model for your column.\n  - The data returned by an accessor should be **primitive** and sortable.\n  - If a string is passed, the column's value will be looked up on the original row via that key, eg. If your column's accessor is `firstName` then its value would be read from `row['firstName']`. You can also specify deeply nested values with accessors like `info.hobbies` or even `address[0].street`\n  - If a function is passed, the column's value will be looked up on the original row using this accessor function, eg. If your column's accessor is `row => row.firstName`, then its value would be determined by passing the row to this function and using the resulting value.\n- `id: String`\n  - **Required if `accessor` is a function**\n  - This is the unique ID for the column. It is used by reference in things like sorting, grouping, filtering etc.\n  - If a **string** accessor is used, it defaults as the column ID, but can be overridden if necessary.\n- `columns: Array<Column>`\n  - Optional\n  - A nested array of columns.\n  - If defined, the column will act as a header group. Columns can be recursively nested as much as needed.\n- `show: Boolean | Function`\n  - Optional\n  - Defaults to `true`\n  - If set to `false`, the column will be hidden.\n  - If set to a `function`, it will be called with the current table instance and can then return `true` or `false`.\n  - The data model for hidden columns is still calculated including sorting, filters, and grouping.\n- `Header: String | Function | React.Component => JSX`\n  - Optional\n  - Defaults to `() => null`\n  - Receives the table instance and column model as props\n  - Must either be a **string or return valid JSX**\n  - If a function/component is passed, it will be used for formatting the header value, eg. You can use a `Header` function to dynamically format the header using any table or column state.\n- `Cell: Function | React.Component => JSX`\n  - Optional\n  - Defaults to `({ cell: { value } }) => value`\n  - Receives the table instance and cell model as props\n  - Must return valid JSX\n  - This function (or component) is primarily used for formatting the column value, eg. If your column accessor returns a date object, you can use a `Cell` function to format that date to a readable format.\n\n### Instance Properties\n\nThe following properties are available on the table instance returned from `useTable`\n\n- `headerGroups: Array<HeaderGroup>`\n  - An array of normalized header groups, each containing a flattened array of final column objects for that row.\n  - See [Header Group Properties](#headergroup-properties) for more information\n- `columns: Array<Column>`\n  - A **flat** array of all final column objects computed from the original columns configuration option.\n  - See [Column Properties](#column-properties) for more information\n- `headers[] Array<Column>`\n  - A **nested** array of final column objects, similar in structure to the original columns configuration option.\n  - See [Column Properties](#column-properties) for more information\n- `rows: Array<Row>`\n  - An array of **materialized row objects** from the original `data` array and `columns` passed into the table options\n  - See [Row Properties](#row-properties) for more information\n- `getTableProps: Function(?props)`\n  - **Required**\n  - This function is used to resolve any props needed for your table wrapper.\n  - Custom props may be passed. **NOTE: Custom props will override built-in table props, so be careful!**\n- `prepareRow: Function(Row)`\n  - **Required**\n  - This function is responsible for lazily preparing a row for rendering. Any row that you intend to render in your table needs to be passed to this function **before every render**.\n  - **Why?** Since table data could potentially be very large, it can become very expensive to compute all of the necessary state for every row to be rendered regardless if it actually is rendered or not (for example if you are paginating or virtualizing the rows, you may only have a few rows visible at any given moment). This function allows only the rows you intend to display to be computed and prepped with the correct state.\n- `rowPaths: Array<string>`\n  - An array containing the stringified `path` of every original row in the table. eg. If a row has a path of `[0, 3, 2]`, its stringified path would be `0.3.2`.\n  - This array is used by many plugin hooks including `useRowSelect` to manage row selection state\n  - Only rows that exist on the original `data` array will have a path in this array. Rows created by `useGroupBy`'s aggregations and grouping are not included in this array, since they do not reference an original data row.\n- `flatRows: Array<Row>`\n  - An array of all rows, including subRows which have been flattened into the order in which they were detected (depth first)\n  - This can be helpful in calculating total row counts that must include subRows\n- `setRowState: Function(rowPath, updater: Function | any) => void`\n  - This function can be used to update the internal state for any row.\n  - Pass it a valid `rowPath` array and `updater`. The `updater` may be a value or function, similar to `React.useState`'s usage.\n  - If `updater` is a function, it will be passed the previous value\n- `setCellState: Function(rowPath, columnID, updater: Function | any) => void`\n  - This function can be used to update the internal state for any cell.\n  - Pass it a valid `rowPath` array, `columnID` and `updater`. The `updater` may be a value or function, similar to `React.useState`'s usage.\n  - If `updater` is a function, it will be passed the previous value\n\n### `HeaderGroup` Properties\n\nThe following additional properties are available on every `headerGroup` object returned by the table instance.\n\n- `headers: Array<Column>`\n  - **Required**\n  - The columns in this header group.\n- `getHeaderGroupProps: Function(?props)`\n  - **Required**\n  - This function is used to resolve any props needed for this header group's row.\n  - You can use the `getHeaderGroupProps` hook to extend its functionality.\n  - Custom props may be passed. **NOTE: Custom props will override built-in table props, so be careful!**\n\n### Column Properties\n\nThe following properties are available on every `Column` object returned by the table instance.\n\n- `id: String`\n  - The resolved column ID from either the column's `accessor` or the column's hard-coded `id` property\n- `visible: Boolean`\n  - The resolved visible state for the column, derived from the column's `show` property\n- `render: Function(type: String | Function | Component, ?props)`\n  - This function is used to render content with the added context of a column.\n  - The entire table `instance` will be passed to the renderer with the addition of a `column` property, containing a reference to the column\n  - If `type` is a string, will render using the `column[type]` renderer. React Table ships with default `Header` renderers. Other renderers like `Filter` are available via hooks like `useFilters`.\n  - If a function or component is passed instead of a string, it will be be passed the table instance and column model as props and is expected to return any valid JSX.\n- `getHeaderProps: Function(?props)`\n  - **Required**\n  - This function is used to resolve any props needed for this column's header cell.\n  - You can use the `getHeaderProps` hook to extend its functionality.\n  - Custom props may be passed. **NOTE: Custom props will override built-in table props, so be careful!**\n\n### Row Properties\n\nThe following additional properties are available on every `row` object returned by the table instance.\n\n- `cells: Array<Cell>`\n  - An array of `Cell` objects containing properties and functions specific to the row and column it belongs to.\n  - See [Cell Properties](#cell-properties) for more information\n- `values: Object<columnID: any>`\n  - A map of this row's **resolved** values by columnID, eg. `{ firstName: 'Tanner', lastName: 'Linsley' }`\n- `getRowProps: Function(?props)`\n  - **Required**\n  - This function is used to resolve any props needed for this row.\n  - You can use the `getRowProps` hook to extend its functionality.\n  - Custom props may be passed. **NOTE: Custom props will override built-in table props, so be careful!**\n- `index: Int`\n  - The index of the original row in the `data` array that was passed to `useTable`. If this row is a subRow, it is the original index within the parent row's subRows array\n- `original: Object`\n  - The original row object from the `data` array that was used to materialize this row.\n- `path: Array<string>`\n  - This array is the sequential path of indices one could use to navigate to it, eg. a row path of `[3, 1, 0]` would mean that it is the **first** subRow of a parent that is the **second** subRow of a parent that is the **fourth** row in the original `data` array.\n  - This array is used with plugin hooks like `useExpanded` and `useGroupBy` to compute expanded states for individual rows.\n- `subRows: Array<Row>`\n  - If subRows were detect on the original data object, this will be an array of those materialized row objects.\n- `state: Object`\n\n  - The current state of the row. It's lifespan is attached to that of the original `data` array. When the raw `data` is changed, this state value is reset to the row's initial value (using the `initialRowStateKey` option).\n  - Can be updated via `instance.setRowState` or the row's `setState` function.\n\n### Cell Properties\n\nThe following additional properties are available on every `Cell` object returned in an array of `cells` on every row object.\n\n- `column: Column`\n  - The corresponding column object for this cell\n- `row: Row`\n  - The corresponding row object for this cell\n- `value: any`\n  - The **resolved** value for this cell.\n  - By default, this value is displayed on the table via the default `Cell` renderer. To override the way a cell displays\n- `getCellProps: Function(?props)`\n  - **Required**\n  - This function is used to resolve any props needed for this cell.\n  - You can use the `getCellProps` hook to extend its functionality.\n  - Custom props may be passed. **NOTE: Custom props will override built-in table props, so be careful!**\n- `render: Function(type: String | Function | Component, ?props)`\n  - **Required**\n  - This function is used to render content with the added context of a cell.\n  - The entire table `instance` will be passed to the renderer with the addition of `column`, `row` and `cell` properties, containing a reference to each respective item.\n  - If `type` is a string, will render using the `column[type]` renderer. React Table ships with a default `Cell` renderer. Other renderers like `Aggregated` are available via hooks like `useFilters`.\n  - If a function or component is passed instead of a string, it will be be passed the table instance and cell model as props and is expected to return any valid JSX.\n\n### Example\n\n```js\nfunction App() {\n  const columns = React.useMemo(\n    () => [\n      {\n        Header: 'Name',\n        columns: [\n          {\n            Header: 'First Name',\n            accessor: 'firstName',\n          },\n          {\n            Header: 'Last Name',\n            accessor: 'lastName',\n          },\n        ],\n      },\n    ],\n    []\n  )\n\n  const data = [\n    {\n      firstName: 'Tanner',\n      lastName: 'Linsley',\n    },\n    {\n      firstName: 'Shawn',\n      lastName: 'Wang',\n    },\n    {\n      firstName: 'Kent C.',\n      lastName: 'Dodds',\n    },\n    {\n      firstName: 'Ryan',\n      lastName: 'Florence',\n    },\n  ]\n\n  return <MyTable columns={columns} data={data} />\n}\n\nfunction MyTable({ columns, data }) {\n  const { getTableProps, headerGroups, rows, prepareRow } = useTable({\n    columns,\n    data,\n  })\n\n  return (\n    <table {...getTableProps()}>\n      <thead>\n        {headerGroups.map(headerGroup => (\n          <tr {...headerGroup.getHeaderGroupProps()}>\n            {headerGroup.headers.map(column => (\n              <th {...column.getHeaderProps()}>{column.render('Header')}</th>\n            ))}\n          </tr>\n        ))}\n      </thead>\n      <tbody>\n        {rows.map(\n          (row, i) =>\n            prepareRow(row) || (\n              <tr {...row.getRowProps()}>\n                {row.cells.map(cell => {\n                  return <td {...cell.getCellProps()}>{cell.render('Cell')}</td>\n                })}\n              </tr>\n            )\n        )}\n      </tbody>\n    </table>\n  )\n}\n```\n\n## `useSortBy`\n\n- Plugin Hook\n- Optional\n\n`useSortBy` is the hook that implements **row sorting**. It also support multi-sort (keyboard required).\n\n- Multi-sort is enabled by default\n- To sort the table via UI, attach the props generated from each column's `getSortByToggleProps()`, then click any of those elements.\n- To multi-sort the table via UI, hold `shift` while clicking on any of those same elements that have the props from `getSortByToggleProps()` attached.\n- To programmatically sort (or multi-sort) any column, use the `toggleSortBy` method located on the instance or each individual column.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `state[0].sortBy: Array<Object<id: columnID, desc: Bool>>`\n  - Must be **memoized**\n  - An array of sorting objects. If there is more than one object in the array, multi-sorting will be enabled. Each sorting object should contain an `id` key with the corresponding column ID to sort by. An optional `desc` key may be set to true or false to indicated ascending or descending sorting for that column. This information is stored in state since the table is allowed to manipulate the filter through user interaction.\n- `manualSorting: Bool`\n  - Enables sorting detection functionality, but does not automatically perform row sorting. Turn this on if you wish to implement your own sorting outside of the table (eg. server-side or manual row grouping/nesting)\n- `disableSorting: Bool`\n  - Disables sorting for every column in the entire table.\n- `disableMultiSort: Bool`\n  - Disables multi-sorting for the entire table.\n- `isMultiSortEvent: Function`\n  - Allows to override default multisort behaviour(i.e. multisort applies when shift key is presssed), if this function is provided then returned boolean value from this function will make decision whether newly applied sort action will be considered as multisort or not.\n  - Receives `event` as argument.\n- `maxMultiSortColCount: Number`\n  - Limit on max number of columns for multisort, e.g. if set to 3, and suppose table is sorted by `[A, B, C]` and then clicking `D` for sorting should result in table sorted by `[B, C , D]`\n- `disableSortRemove: Bool`\n  - If true, the un-sorted state will not be available to columns once they have been sorted.\n- `disableMultiRemove: Bool`\n  - If true, the un-sorted state will not be available to multi-sorted columns.\n- `orderByFn: Function`\n  - Must be **memoizd**\n  - Defaults to the built-in [default orderBy function](TODO)\n  - This function is responsible for composing multiple sorting functions together for multi-sorting, and also handles both the directional sorting and stable-sorting tie breaking. Rarely would you want to override this function unless you have a very advanced use-case that requires it.\n- `sortTypes: Object<sortKey: sortType>`\n  - Must be **memoized**\n  - Allows overriding or adding additional sort types for columns to use. If a column's sort type isn't found on this object, it will default to using the [built-in sort types](TODO).\n  - For more information on sort types, see [Sorting](TODO)\n\n### Column Options\n\nThe following options are supported on any `Column` object passed to the `columns` options in `useTable()`\n\n- `disableSorting: Bool`\n  - Optional\n  - Defualts to `false`\n  - If set to `true`, the sorting for this column will be disabled\n- `sortDescFirst: Bool`\n  - Optional\n  - Defaults to `false`\n  - If set to `true`, the first sort direction for this column will be descending instead of ascending\n- `sortInverted: Bool`\n  - Optional\n  - Defaults to `false`\n  - If set to `true`, the underlying sorting direction will be inverted, but the UI will not.\n  - This may be useful in situations where positive and negative connotation is inverted, eg. a Golfing score where a lower score is considered more positive than a higher one.\n- `sortType: String | Function`\n  - If a **function** is passed, it must be **memoized**\n  - Defaults to [`alphanumeric`](TODO)\n  - The resolved function from the this string/function will be used to sort the this column's data.\n    - If a `string` is passed, the function with that name located on either the custom `sortTypes` option or the built-in sorting types object will be used. If\n    - If a `function` is passed, it will be used.\n  - For mor information on sort types, see [Sorting](TODO)\n\n### Instance Properties\n\nThe following values are provided to the table `instance`:\n\n- `rows: Array<Row>`\n  - An array of **sorted** rows.\n- `preSortedRows: Array<Row>`\n  - The array of rows that were originally sorted.\n- `toggleSortBy: Function(ColumnID: String, descending: Bool, isMulti: Bool) => void`\n  - This function can be used to programmatically toggle the sorting for any specific column\n\n### Column Properties\n\nThe following properties are available on every `Column` object returned by the table instance.\n\n- `canSort: Bool`\n  - Denotes whether a column is sortable or not depending on if it has a valid accessor/data model or is manually disabled via an option.\n- `toggleSortBy: Function(descending, multi) => void`\n  - This function can be used to programmatically toggle the sorting for this column.\n  - This function is similar to the `instance`-level `toggleSortBy`, however, passing a columnID is not required since it is located on a `Column` object already.\n- `getSortByToggleProps: Function(props) => props`\n  - **Required**\n  - This function is used to resolve any props needed for this column's UI that is responsible for toggling the sort direction when the user clicks it.\n  - You can use the `getSortByToggleProps` hook to extend its functionality.\n  - Custom props may be passed. **NOTE: Custom props may override built-in sortBy props, so be careful!**\n- `sorted: Boolean`\n  - Denotes whether this column is currently being sorted\n- `sortedIndex: Int`\n  - If the column is currently sorted, this integer will be the index in the `sortBy` array from state that corresponds to this column.\n  - If this column is not sorted, the index will always be `-1`\n- `sortedDesc: Bool`\n  - If the column is currently sorted, this denotes whether the column's sort direction is descending or not.\n  - If `true`, the column is sorted `descending`\n  - If `false`, the column is sorted `ascending`\n  - If `undefined`, the column is not currently being sorted.\n\n### Example\n\n```js\nfunction Table({ columns, data }) {\n  // Set some default sorting state\n  const state = useTableState({ sortBy: [{ id: 'firstName', desc: true }] })\n\n  const { getTableProps, headerGroups, rows, prepareRow } = useTable(\n    {\n      columns,\n      data,\n    },\n    useSortBy // Use the sortBy hook\n  )\n\n  return (\n    <table {...getTableProps()}>\n      <thead>\n        {headerGroups.map(headerGroup => (\n          <tr {...headerGroup.getHeaderGroupProps()}>\n            {headerGroup.headers.map(column => (\n              // Add the sorting props to control sorting. For this example\n              // we can add them into the header props\n              <th {...column.getHeaderProps(column.getSortByToggleProps())}>\n                {column.render('Header')}\n                <span>\n                  {/* Add a sort direction indicator */}\n                  <span>\n                    {column.sorted ? (column.sortedDesc ? ' 🔽' : ' 🔼') : ''}\n                  </span>\n                  {/* Add a sort index indicator */}\n                  <span>({column.sorted ? column.sortedIndex + 1 : ''})</span>\n                </span>\n              </th>\n            ))}\n          </tr>\n        ))}\n      </thead>\n      <tbody>\n        {rows.map(\n          (row, i) =>\n            prepareRow(row) || (\n              <tr {...row.getRowProps()}>\n                {row.cells.map(cell => {\n                  return <td {...cell.getCellProps()}>{cell.render('Cell')}</td>\n                })}\n              </tr>\n            )\n        )}\n      </tbody>\n    </table>\n  )\n}\n```\n\n## `useFilters`\n\n- Plugin Hook\n- Optional\n\n`useFilters` is the hook that implements **row filtering**.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `state[0].filters: Object<columnID: filterValue>`\n  - Must be **memoized**\n  - An object of columnID's and their corresponding filter values. This information is stored in state since the table is allowed to manipulate the filter through user interaction.\n- `defaultFilter: String | Function`\n  - If a **function** is passed, it must be **memoized**\n  - Defaults to [`text`](TODO)\n  - The function (or resolved function from the string) will be used as the default/fallback filter method for every column that has filtering enabled.\n    - If a `string` is passed, the function with that name located on the `filterTypes` option object will be used.\n    - If a `function` is passed, it will be used.\n  - For mor information on filter types, see [Filtering](TODO)\n- `manualFilters: Bool`\n  - Enables filter detection functionality, but does not automatically perform row filtering.\n  - Turn this on if you wish to implement your own row filter outside of the table (eg. server-side or manual row grouping/nesting)\n- `disableFilters: Bool`\n  - Disables filtering for every column in the entire table.\n- `filterTypes: Object<filterKey: filterType>`\n  - Must be **memoized**\n  - Allows overriding or adding additional filter types for columns to use. If a column's filter type isn't found on this object, it will default to using the [built-in filter types](TODO).\n  - For mor information on filter types, see [Filtering](TODO)\n\n### Column Options\n\nThe following options are supported on any `Column` object passed to the `columns` options in `useTable()`\n\n- `Filter: Function | React.Component => JSX`\n  - **Required**\n  - Receives the table instance and column model as props\n  - Must return valid JSX\n  - This function (or component) is used to render this column's filter UI, eg.\n- `disableFilters: Bool`\n  - Optional\n  - If set to `true`, will disable filtering for this column\n- `filter: String | Function`\n  - Optional\n  - Defaults to [`text`](TODO)\n  - The resolved function from the this string/function will be used to filter the this column's data.\n    - If a `string` is passed, the function with that name located on either the custom `filterTypes` option or the built-in filtering types object will be used. If\n    - If a `function` is passed, it will be used directly.\n  - For mor information on filter types, see [Filtering](TODO)\n  - If a **function** is passed, it must be **memoized**\n\n### Instance Properties\n\nThe following values are provided to the table `instance`:\n\n- `rows: Array<Row>`\n  - An array of **filtered** rows.\n- `preFilteredRows: Array<Row>`\n  - The array of rows **used right before filtering**.\n  - Among many other use-cases, these rows are directly useful for building option lists in filters, since the resulting filtered `rows` do not contain every possible option.\n- `setFilter: Function(columnID, filterValue) => void`\n  - An instance-level function used to update the filter value for a specific column.\n- `setAllFilters: Function(filtersObject) => void`\n  - An instance-level function used to update the values for **all** filters on the table, all at once.\n\n### Column Properties\n\nThe following properties are available on every `Column` object returned by the table instance.\n\n- `canFilter: Bool`\n  - Denotes whether a column is filterable or not depending on if it has a valid accessor/data model or is manually disabled via an option.\n- `setFilter: Function(filterValue) => void`\n  - An column-level function used to update the filter value for this column\n- `filterValue: any`\n  - The current filter value for this column, resolved from the table state's `filters` object\n- `preFilteredColumnRows: Array<row>`\n  - The array of rows that were originally passed to this columns filter **before** they were filtered.\n  - This array of rows can be useful if building faceted filter options.\n\n### Example\n\n```js\n// A great library for fuzzy filtering/sorting items\nimport matchSorter from 'match-sorter'\n\nconst state = useTableState({ filters: { firstName: 'tanner' } })\n\nconst filterTypes = React.useMemo(() => ({\n  // Add a new fuzzyText filter type.\n  fuzzyText: (rows, id, filterValue) => {\n    return matchSorter(rows, filterValue, { keys: [row => row[id] })\n  },\n  // Or, override the default text filter to use\n  // \"startWith\"\n  text: (rows, id, filterValue) => {\n    return rows.filter(row => {\n      const rowValue = row.values[id]\n      return rowValue !== undefined\n        ? String(rowValue)\n            .toLowerCase()\n            .startsWith(String(filterValue).toLowerCase())\n        : true\n    })\n  }\n}), [matchSorter])\n\n// Override the default column filter to be our new `fuzzyText` filter type\nconst defaultColumn = React.useMemo(() => ({\n  filter: 'fuzzyText'\n}))\n\nconst { rows } = useTable(\n  {\n    // state[0].groupBy === ['firstName']\n    state,\n    manualFilters: false,\n    disableFilters: false,\n    // Pass our custom filter types\n    filterTypes,\n    defaultColumn\n  },\n  useFilters\n)\n```\n\n## `useGroupBy`\n\n- Plugin Hook\n- Optional\n\n`useGroupBy` is the hook that implements **row grouping and aggregation**.\n\n- Each column's `getGroupByToggleProps()` function can be used to generate the props needed to make a clickable UI element that will toggle the grouping on or off for a specific column.\n- Instance and column-level `toggleGroupBy` functions are also made available for programmatic grouping.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `state[0].groupBy: Array<String>`\n  - Must be **memoized**\n  - An array of groupBy ID strings, controlling which columns are used to calculate row grouping and aggregation. This information is stored in state since the table is allowed to manipulate the groupBy through user interaction.\n- `manualGroupBy: Bool`\n  - Enables groupBy detection and functionality, but does not automatically perform row grouping.\n  - Turn this on if you wish to implement your own row grouping outside of the table (eg. server-side or manual row grouping/nesting)\n- `disableGrouping: Bool`\n  - Disables groupBy for the entire table.\n- `aggregations: Object<aggregationKey: aggregationFn>`\n  - Must be **memoized**\n  - Allows overriding or adding additional aggregation functions for use when grouping/aggregating row values. If an aggregation key isn't found on this object, it will default to using the [built-in aggregation functions](TODO)\n- `groupByFn: Function`\n  - Must be **memoized**\n  - Defaults to [`defaultGroupByFn`](TODO)\n  - This function is responsible for grouping rows based on the `state.groupBy` keys provided. It's very rare you would need to customize this function.\n\n### Column Options\n\nThe following options are supported on any `Column` object passed to the `columns` options in `useTable()`\n\n- `Aggregated: Function | React.Component => JSX`\n  - Optional\n  - Defaults to this column's `Cell` formatter\n  - Receives the table instance and cell model as props\n  - Must return valid JSX\n  - This function (or component) formats this column's value when it is being grouped and aggregated, eg. If this column was showing the number of visits for a user to a website and it was currently being grouped to show an **average** of the values, the `Aggregated` function for this column could format that value to `1,000 Avg. Visits`\n- `disableGrouping: Boolean`\n  - Defaults to `true`\n  - If `true`, this column is able to be grouped.\n\n### Instance Properties\n\nThe following values are provided to the table `instance`:\n\n- `rows: Array<Row>`\n  - An array of **grouped and aggregated** rows.\n- `preGroupedRows: Array<Row>`\n  - The array of rows originally used to create the grouped rows.\n- `toggleGroupBy: Function(columnID: String, ?set: Bool) => void`\n  - This function can be used to programmatically set or toggle the groupBy state for a specific column.\n\n### Column Properties\n\nThe following properties are available on every `Column` object returned by the table instance.\n\n- `canGroupBy: Boolean`\n  - If `true`, this column is able to be grouped.\n  - This is resolved from the column having a valid accessor / data model, and not being manually disabled via other `useGroupBy` related options\n- `grouped: Boolean`\n  - If `true`, this column is currently being grouped\n- `groupedIndex: Int`\n  - If this column is currently being grouped, this integer is the index of this column's ID in the table state's `groupBy` array.\n- `toggleGroupBy: Function(?set: Bool) => void`\n  - This function can be used to programmatically set or toggle the groupBy state fo this column.\n- `getGroupByToggleProps: Function(props) => props`\n  - **Required**\n  - This function is used to resolve any props needed for this column's UI that is responsible for toggling grouping when the user clicks it.\n  - You can use the `getGroupByToggleProps` hook to extend its functionality.\n  - Custom props may be passed. **NOTE: Custom props may override built-in sortBy props, so be careful!**\n\n### Row Properties\n\nThe following properties are available on every `Row` object returned by the table instance.\n\n- `groupByID: String`\n  - The column ID for which this row is being grouped.\n  - Will be `undefined` if the row is an original row from `data` and not a materialized one from the grouping.\n- `groupByVal: any`\n  - If the row is a materialized group row, this will be the grouping value that was used to create it.\n- `values: Object`\n  - Similar to a regular row, a materialized grouping row also has a `values` object\n  - This object contains the **aggregated** values for this row's sub rows\n- `subRows: Array<Row>`\n  - If the row is a materialized group row, this property is the array of materialized subRows that were grouped inside of this row.\n- `depth: Int`\n  - If the row is a materialized group row, this is the grouping depth at which this row was created.\n- `path: Array<String|Int>`\n  - Similar to normal `Row` objects, materialized grouping rows also have a path array. The keys inside it though are not integers like nested normal rows though. Since they are not rows that can be traced back to an original data row, they are given a unique path based on their `groupByVal`\n  - If a row is a grouping row, it will have a path like `['Single']` or `['Complicated', 'Anderson']`, where `Single`, `Complicated`, and `Anderson` would all be derived from their row's `groupByVal`.\n\n### Cell Properties\n\nThe following additional properties are available on every `Cell` object returned in an array of `cells` on every row object.\n\n- `grouped: Bool`\n  - If `true`, this cell is a grouped cell, meaning it contains a grouping value and should usually display and expander.\n- `repeatedValue: Bool`\n  - If `true`, this cell is a repeated value cell, meaning it contains a value that is already being displayed elsewhere (usually by a parent row's cell).\n  - Most of the time, this cell is not required to be displayed and can safely be hidden during rendering\n- `aggregated: Bool`\n  - If `true`, this cell's value has been aggregated and should probably be rendered with the `Aggregated` cell renderer.\n\n### Example\n\n```js\nfunction Table({ columns, data }) {\n  const {\n    getTableProps,\n    headerGroups,\n    rows,\n    prepareRow,\n    state: [{ groupBy, expanded }],\n  } = useTable(\n    {\n      columns,\n      data,\n    },\n    useGroupBy,\n    useExpanded // useGroupBy would be pretty useless without useExpanded ;)\n  )\n\n  // We don't want to render all 2000 rows for this example, so cap\n  // it at 20 for this use case\n  const firstPageRows = rows.slice()\n\n  return (\n    <table {...getTableProps()}>\n      <thead>\n        {headerGroups.map(headerGroup => (\n          <tr {...headerGroup.getHeaderGroupProps()}>\n            {headerGroup.headers.map(column => (\n              <th {...column.getHeaderProps()}>\n                {column.canGroupBy ? (\n                  // If the column can be grouped, let's add a toggle\n                  <span {...column.getGroupByToggleProps()}>\n                    {column.grouped ? '🛑' : '👊'}\n                  </span>\n                ) : null}\n                {column.render('Header')}\n              </th>\n            ))}\n          </tr>\n        ))}\n      </thead>\n      <tbody>\n        {firstPageRows.map(\n          (row, i) =>\n            prepareRow(row) || (\n              <tr {...row.getRowProps()}>\n                {row.cells.map(cell => {\n                  return (\n                    <td {...cell.getCellProps()}>\n                      {cell.grouped ? (\n                        // If it's a grouped cell, add an expander and row count\n                        <>\n                          <span\n                            style={{\n                              cursor: 'pointer',\n                            }}\n                            onClick={() => row.toggleExpanded()}\n                          >\n                            {row.isExpanded ? '👇' : '👉'}\n                          </span>\n                          {cell.render('Cell')} ({row.subRows.length})\n                        </>\n                      ) : cell.aggregated ? (\n                        // If the cell is aggregated, use the Aggregated\n                        // renderer for cell\n                        cell.render('Aggregated')\n                      ) : cell.repeatedValue ? null : ( // For cells with repeated values, render null\n                        // Otherwise, just render the regular cell\n                        cell.render('Cell')\n                      )}\n                    </td>\n                  )\n                })}\n              </tr>\n            )\n        )}\n      </tbody>\n    </table>\n  )\n}\n\n// This is a custom aggregator that\n// takes in an array of values and\n// returns the rounded median\nfunction roundedMedian(values) {\n  let min = values[0] || ''\n  let max = values[0] || ''\n\n  values.forEach(value => {\n    min = Math.min(min, value)\n    max = Math.max(max, value)\n  })\n\n  return Math.round((min + max) / 2)\n}\n\nfunction App() {\n  const columns = React.useMemo(\n    () => [\n      {\n        Header: 'Name',\n        columns: [\n          {\n            Header: 'First Name',\n            accessor: 'firstName',\n            // Use a two-stage aggregator here to first\n            // count the total rows being aggregated,\n            // then sum any of those counts if they are\n            // aggregated further\n            aggregate: ['sum', 'count'],\n            Aggregated: ({ cell: { value } }) => `${value} Names`,\n          },\n          {\n            Header: 'Last Name',\n            accessor: 'lastName',\n            // Use another two-stage aggregator here to\n            // first count the UNIQUE values from the rows\n            // being aggregated, then sum those counts if\n            // they are aggregated further\n            aggregate: ['sum', 'uniqueCount'],\n            Aggregated: ({ cell: { value } }) => `${value} Unique Names`,\n          },\n        ],\n      },\n      {\n        Header: 'Info',\n        columns: [\n          {\n            Header: 'Age',\n            accessor: 'age',\n            // Aggregate the average age of visitors\n            aggregate: 'average',\n            Aggregated: ({ cell: { value } }) => `${value} (avg)`,\n          },\n          {\n            Header: 'Visits',\n            accessor: 'visits',\n            // Aggregate the sum of all visits\n            aggregate: 'sum',\n            Aggregated: ({ cell: { value } }) => `${value} (total)`,\n          },\n          {\n            Header: 'Status',\n            accessor: 'status',\n          },\n          {\n            Header: 'Profile Progress',\n            accessor: 'progress',\n            // Use our custom roundedMedian aggregator\n            aggregate: roundedMedian,\n            Aggregated: ({ cell: { value } }) => `${value} (med)`,\n          },\n        ],\n      },\n    ],\n    []\n  )\n\n  const data = React.useMemo(() => makeData(10000), [])\n\n  return <Table columns={columns} data={data} />\n}\n```\n\n## `useExpanded`\n\n- Plugin Hook\n- Optional\n\n`useExpanded` is the hook that implements **row expanding**. It is most often used with `useGroupBy` to expand grouped rows or on its own with nested `subRows` in tree-li,ke `data` sets, but is not limited to these use-cases. It supports expanding rows both via internal table state and also via a hard-coded key on the raw row model.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `state[0].expanded: Object<[pathIndex]: Boolean | ExpandedStateObject>`\n  - Optional\n  - Must be **memoized**\n  - An nested object of expanded paths.\n  - A `pathIndex` can be set as the key and its value set to `true` to expand that row's subRows into view. For example, if `{ '3': true }` was passed as the `expanded` state, the **4th row in the original data array** would be expanded.\n  - For nested expansion, you may **use another object** instead of a Boolean to expand sub rows. For example, if `{ '3': { '5' : true }}` was passed as the `expanded` state, then the **6th subRow of the 4th row and the 4th row of the original data array** would be expanded.\n  - This information is stored in state since the table is allowed to manipulate the filter through user interaction.\n- `subRowsKey: String`\n  - Optional\n  - See the [useTable hook](#table-options) for more details\n- `nestExpandedRows: Bool`\n  - Optional\n  - Defaults to `false`\n  - If set to `false`, expanded rows will not be paginated. Thus, any expanded subrows would potentially increase the size of any given page by the amount of total expanded subrows on the page.\n- `manualExpandedKey: String`\n  - Optional\n  - Defaults to `expanded`\n  - This string is used as the key to detect manual expanded state on any given row. For example, if a raw data row like `{ name: 'Tanner Linsley', friends: [...], expanded: true}` was detected, it would always be expanded, regardless of state.\n\n### Instance Properties\n\nThe following properties are available on the table instance returned from `useTable`\n\n- `rows: Array<Row>`\n  - An array of **sorted** rows.\n\n### Row Properties\n\nThe following additional properties are available on every `row` object returned by the table instance.\n\n- `isExpanded: Bool`\n  - If `true`, this row is in an expanded state.\n- `toggleExpanded: Function(?isExpanded: Bool) => void`\n  - This function will toggle the expanded state of a row between `true` and `false` or, if an `isExpanded` boolean is passed to the function, it will be set as the new `isExpanded` value.\n  - Rows with a hard-coded `manualExpandedKey` (defaults to `expanded`) set to `true` are not affected by this function or the internal expanded state.\n\n### Example\n\n```js\nfunction Table({ columns: userColumns, data }) {\n  const {\n    getTableProps,\n    headerGroups,\n    rows,\n    prepareRow,\n    state: [{ expanded }],\n  } = useTable(\n    {\n      columns: userColumns,\n      data,\n    },\n    useExpanded // Use the useExpanded plugin hook\n  )\n\n  return (\n    <>\n      <pre>\n        <code>{JSON.stringify({ expanded }, null, 2)}</code>\n      </pre>\n      <table {...getTableProps()}>\n        <thead>\n          {headerGroups.map(headerGroup => (\n            <tr {...headerGroup.getHeaderGroupProps()}>\n              {headerGroup.headers.map(column => (\n                <th {...column.getHeaderProps()}>{column.render('Header')}</th>\n              ))}\n            </tr>\n          ))}\n        </thead>\n        <tbody>\n          {rows.map(\n            (row, i) =>\n              prepareRow(row) || (\n                <tr {...row.getRowProps()}>\n                  {row.cells.map(cell => {\n                    return (\n                      <td {...cell.getCellProps()}>{cell.render('Cell')}</td>\n                    )\n                  })}\n                </tr>\n              )\n          )}\n        </tbody>\n      </table>\n      <br />\n      <div>Showing the first 20 results of {rows.length} rows</div>\n    </>\n  )\n}\n\nfunction App() {\n  const columns = React.useMemo(\n    () => [\n      {\n        // Build our expander column\n        Header: () => null, // No header, please\n        id: 'expander', // Make sure it has an ID\n        Cell: ({ row }) =>\n          // Use the row.canExpand and row.getExpandedToggleProps prop getter\n          // to build the toggle for expanding a row\n          row.canExpand ? (\n            <span\n              {...row.getExpandedToggleProps({\n                style: {\n                  // We can even use the row.depth property\n                  // and paddingLeft to indicate the depth\n                  // of the row\n                  paddingLeft: `${row.depth * 2}rem`,\n                },\n              })}\n            >\n              {row.isExpanded ? '👇' : '👉'}\n            </span>\n          ) : null,\n      },\n      {\n        Header: 'Name',\n        columns: [\n          {\n            Header: 'First Name',\n            accessor: 'firstName',\n          },\n          {\n            Header: 'Last Name',\n            accessor: 'lastName',\n          },\n        ],\n      },\n      {\n        Header: 'Info',\n        columns: [\n          {\n            Header: 'Age',\n            accessor: 'age',\n          },\n          {\n            Header: 'Visits',\n            accessor: 'visits',\n          },\n          {\n            Header: 'Status',\n            accessor: 'status',\n          },\n          {\n            Header: 'Profile Progress',\n            accessor: 'progress',\n          },\n        ],\n      },\n    ],\n    []\n  )\n\n  const data = React.useMemo(() => makeData(5, 5, 5), [])\n\n  return <Table columns={columns} data={data} />\n}\n```\n\n## `usePagination`\n\n- Plugin Hook\n- Optional\n\n`usePagination` is the hook that implements **row pagination**. It can be used for both client-side pagination or server-side pagination. For more information on pagination, see [Pagination](TODO)\n\n> **NOTE** Some server-side pagination implementations do not use page index and instead use **token based pagination**! If that's the case, please use the `useTokenPagination` plugin instead.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `state[0].pageSize: Int`\n  - **Required**\n  - Defaults to `10`\n  - Determines the amount of rows on any given page\n- `state[0].pageIndex: Int`\n  - **Required**\n  - Defaults to `0`\n  - The index of the page that should be displayed via the `page` instance value\n- `pageCount: Int`\n  - **Required if `manualPagination` is set to `true`**\n  - If `manualPagination` is `true`, then this value used to determine the amount of pages available. This amount is then used to materialize the `pageOptions` and also compute the `canNextPage` values on the table instance.\n- `manualPagination: Bool`\n  - Enables pagination functionality, but does not automatically perform row pagination.\n  - Turn this on if you wish to implement your own pagination outside of the table (eg. server-side pagination or any other manual pagination technique)\n- `disablePageResetOnDataChange`\n  - Defaults to `false`\n  - Normally, any changes detected to `rows`, `state.filters`, `state.groupBy`, or `state.sortBy` will trigger the `pageIndex` to be reset to `0`\n  - If set to `true`, the `pageIndex` will not be automatically set to `0` when these dependencies change.\n\n### Instance Properties\n\nThe following values are provided to the table `instance`:\n\n- `pages: Array<page>`\n  - An array of every generated `page`, each containing its respective rows.\n- `page: Array<row>`\n  - An array of rows for the **current** page, determined by the current `pageIndex` value.\n- `pageCount: Int`\n  - If `manualPagination` is set to `false`, this is the total amount of pages available in the table based on the current `pageSize` value\n  - if `manualPagination` is set to `true`, this is merely the same `pageCount` option that was passed in the table options.\n- `pageOptions: Array<Int>`\n  - An array of zero-based index integers corresponding to available pages in the table.\n  - This can be useful for generating things like select interfaces for the user to select a page from a list, instead of manually paginating to the desired page.\n- `canPreviousPage: Bool`\n  - If there are pages and the current `pageIndex` is greater than `0`, this will be `true`\n- `canNextPage:`\n  - If there are pages and the current `pageIndex` is less than `pageCount`, this will be `true`\n- `gotoPage: Function(pageIndex)`\n  - This function, when called with a valid `pageIndex`, will set `pageIndex` to that value.\n  - If the passed index is outside of the valid `pageIndex` range, then this function will do nothing.\n- `previousPage: Function`\n  - This function decreases `state.pageIndex` by one.\n  - If there are no pages or `canPreviousPage` is false, this function will do nothing.\n- `nextPage: Function`\n  - This function increases `state.pageIndex` by one.\n  - If there are no pages or `canNextPage` is false, this function will do nothing.\n- `setPageSize: Function(pageSize)`\n  - This function sets `state.pageSize` to the new value.\n  - As a result of a pageSize change, a new `state.pageIndex` is also calculated. It is calculated via `Math.floor(currentTopRowIndex / newPageSize)`\n- `pageIndex: Int`\n  - This is the resolved `state.pageIndex` value.\n- `pageSize: Int`\n  - This is the resolved `state.pageSize` value.\n\n### Example\n\n```js\nfunction Table({ columns, data }) {\n  // Use the state and functions returned from useTable to build your UI\n  const {\n    getTableProps,\n    headerGroups,\n    prepareRow,\n    page, // Instead of using 'rows', we'll use page,\n    // which has only the rows for the active page\n\n    // The rest of these things are super handy, too ;)\n    canPreviousPage,\n    canNextPage,\n    pageOptions,\n    pageCount,\n    gotoPage,\n    nextPage,\n    previousPage,\n    setPageSize,\n    state: [{ pageIndex, pageSize }],\n  } = useTable(\n    {\n      columns,\n      data,\n    },\n    usePagination\n  )\n\n  // Render the UI for your table\n  return (\n    <>\n      <pre>\n        <code>\n          {JSON.stringify(\n            {\n              pageIndex,\n              pageSize,\n              pageCount,\n              canNextPage,\n              canPreviousPage,\n            },\n            null,\n            2\n          )}\n        </code>\n      </pre>\n      <table {...getTableProps()}>\n        <thead>\n          {headerGroups.map(headerGroup => (\n            <tr {...headerGroup.getHeaderGroupProps()}>\n              {headerGroup.headers.map(column => (\n                <th {...column.getHeaderProps()}>{column.render('Header')}</th>\n              ))}\n            </tr>\n          ))}\n        </thead>\n        <tbody>\n          {page.map(\n            (row, i) =>\n              prepareRow(row) || (\n                <tr {...row.getRowProps()}>\n                  {row.cells.map(cell => {\n                    return (\n                      <td {...cell.getCellProps()}>{cell.render('Cell')}</td>\n                    )\n                  })}\n                </tr>\n              )\n          )}\n        </tbody>\n      </table>\n      {/* \n        Pagination can be built however you'd like. \n        This is just a very basic UI implementation:\n      */}\n      <div className=\"pagination\">\n        <button onClick={() => gotoPage(0)} disabled={!canPreviousPage}>\n          {'<<'}\n        </button>{' '}\n        <button onClick={() => previousPage()} disabled={!canPreviousPage}>\n          {'<'}\n        </button>{' '}\n        <button onClick={() => nextPage()} disabled={!canNextPage}>\n          {'>'}\n        </button>{' '}\n        <button onClick={() => gotoPage(pageCount - 1)} disabled={!canNextPage}>\n          {'>>'}\n        </button>{' '}\n        <span>\n          Page{' '}\n          <strong>\n            {pageIndex + 1} of {pageOptions.length}\n          </strong>{' '}\n        </span>\n        <span>\n          | Go to page:{' '}\n          <input\n            type=\"number\"\n            defaultValue={pageIndex + 1}\n            onChange={e => {\n              const page = e.target.value ? Number(e.target.value) - 1 : 0\n              gotoPage(page)\n            }}\n            style={{ width: '100px' }}\n          />\n        </span> <select\n          value={pageSize}\n          onChange={e => {\n            setPageSize(Number(e.target.value))\n          }}\n        >\n          {[10, 20, 30, 40, 50].map(pageSize => (\n            <option key={pageSize} value={pageSize}>\n              Show {pageSize}\n            </option>\n          ))}\n        </select>\n      </div>\n    </>\n  )\n}\n\nfunction App() {\n  const columns = React.useMemo(\n    () => [\n      {\n        Header: 'Name',\n        columns: [\n          {\n            Header: 'First Name',\n            accessor: 'firstName',\n          },\n          {\n            Header: 'Last Name',\n            accessor: 'lastName',\n          },\n        ],\n      },\n      {\n        Header: 'Info',\n        columns: [\n          {\n            Header: 'Age',\n            accessor: 'age',\n          },\n          {\n            Header: 'Visits',\n            accessor: 'visits',\n          },\n          {\n            Header: 'Status',\n            accessor: 'status',\n          },\n          {\n            Header: 'Profile Progress',\n            accessor: 'progress',\n          },\n        ],\n      },\n    ],\n    []\n  )\n\n  const data = React.useMemo(() => makeData(100000), [])\n\n  return (\n    <Styles>\n      <Table columns={columns} data={data} />\n    </Styles>\n  )\n}\n```\n\n## `useTokenPagination (Coming Soon)`\n\n- Plugin Hook\n- Optional\n\n`useTokenPagination` is the hook that **aids in implementing row pagination using tokens**. It is useful for server-side pagination implementations that use **tokens** instead of page index. For more information on pagination, see [Pagination](TODO)\n\n> Documentation Coming Soon...\n\n## `useRowSelect`\n\n- Plugin Hook\n- Optional\n\n`useRowSelect` is the hook that implements **basic row selection**. For more information on row selection, see [Row Selection](TODO)\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `state[0].selectedRows: Array<RowPathKey>`\n  - Optional\n  - Defaults to `[]`\n  - If a row's path key (eg. a row path of `[1, 3, 2]` would have a path key of `1.3.2`) is found in this array, it will have a selected state.\n- `manualRowSelectedKey: String`\n  - Optional\n  - Defaults to `selected`\n  - If this key is found on the **original** data row, and it is true, this row will be manually selected\n\n### Instance Properties\n\nThe following values are provided to the table `instance`:\n\n- `toggleRowSelected: Function(rowPath: String, ?set: Bool) => void`\n  - Use this function to toggle a row's selected state.\n  - Optionally pass `true` or `false` to set it to that state\n- `toggleRowSelectedAll: Function(?set: Bool) => void`\n  - Use this function to toggle all rows as select or not\n  - Optionally pass `true` or `false` to set all rows to that state\n- `getToggleAllRowsSelectedProps: Function(props) => props`\n  - Use this function to get the props needed for a **select all checkbox**.\n  - Props:\n    - `onChange: Function()`\n    - `style.cursor: 'pointer'`\n    - `checked: Bool`\n    - `title: 'Toggle All Rows Selected'`\n- `allRowsSelected: Bool`\n  - Will be `true` if all rows are selected.\n  - If at least one row is not selected, will be `false`\n\n### Example\n\n```js\nfunction Table({ columns, data }) {\n  // Use the state and functions returned from useTable to build your UI\n  const {\n    getTableProps,\n    headerGroups,\n    rows,\n    prepareRow,\n    state: [{ selectedRows }],\n  } = useTable(\n    {\n      columns,\n      data,\n    },\n    useRowSelect\n  )\n\n  // Render the UI for your table\n  return (\n    <>\n      <table {...getTableProps()}>\n        <thead>\n          {headerGroups.map(headerGroup => (\n            <tr {...headerGroup.getHeaderGroupProps()}>\n              {headerGroup.headers.map(column => (\n                <th {...column.getHeaderProps()}>{column.render('Header')}</th>\n              ))}\n            </tr>\n          ))}\n        </thead>\n        <tbody>\n          {rows.map(\n            (row, i) =>\n              prepareRow(row) || (\n                <tr {...row.getRowProps()}>\n                  {row.cells.map(cell => {\n                    return (\n                      <td {...cell.getCellProps()}>{cell.render('Cell')}</td>\n                    )\n                  })}\n                </tr>\n              )\n          )}\n        </tbody>\n      </table>\n      <p>Selected Rows: {selectedRows.length}</p>\n      <pre>\n        <code>{JSON.stringify({ selectedRows }, null, 2)}</code>\n      </pre>\n    </>\n  )\n}\n\nfunction App() {\n  const columns = React.useMemo(\n    () => [\n      // Let's make a column for selection\n      {\n        id: 'selection',\n        // The header can use the table's getToggleAllRowsSelectedProps method\n        // to render a checkbox\n        Header: ({ getToggleAllRowsSelectedProps }) => (\n          <div>\n            <input type=\"checkbox\" {...getToggleAllRowsSelectedProps()} />\n          </div>\n        ),\n        // The cell can use the individual row's getToggleRowSelectedProps method\n        // to the render a checkbox\n        Cell: ({ row }) => (\n          <div>\n            <input type=\"checkbox\" {...row.getToggleRowSelectedProps()} />\n          </div>\n        ),\n      },\n      {\n        Header: 'Name',\n        columns: [\n          {\n            Header: 'First Name',\n            accessor: 'firstName',\n          },\n          {\n            Header: 'Last Name',\n            accessor: 'lastName',\n          },\n        ],\n      },\n      {\n        Header: 'Info',\n        columns: [\n          {\n            Header: 'Age',\n            accessor: 'age',\n          },\n          {\n            Header: 'Visits',\n            accessor: 'visits',\n          },\n          {\n            Header: 'Status',\n            accessor: 'status',\n          },\n          {\n            Header: 'Profile Progress',\n            accessor: 'progress',\n          },\n        ],\n      },\n    ],\n    []\n  )\n\n  const data = React.useMemo(() => makeData(10), [])\n\n  return <Table columns={columns} data={data} />\n}\n```\n\n## `useRowState`\n\n- Plugin Hook\n- Optional\n\n`useRowState` is a plugin hook that implements **basic state management for _prepared_ rows and their cells**.\n\n### Table Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `state[0].rowState: Object<RowPathKey:Object<any, cellState: {columnID: Object}>>`\n  - Optional\n  - Defaults to `{}`\n  - If a row's path key (eg. a row path of `[1, 3, 2]` would have a path key of `1.3.2`) is found in this array, it will have the state of the value corresponding to that key.\n  - Individual row states can contain anything, but they also contain a `cellState` key, which provides cell-level state based on column ID's to every\n    **prepared** cell in the table.\n- `initialRowStateAccessor: Function`\n  - Optional\n  - This function may optionally return the initial state for a row.\n  - If this function is defined, it will be passed a `Row` object, from which you can return a value to use as the initial state, eg. `row => row.original.initialState`\n\n### Instance Properties\n\nThe following values are provided to the table `instance`:\n\n- `setRowState: Function(rowPath: Array<string>, updater: Function | Any) => void`\n  - Use this function to programmatically update the state of a row.\n  - `updater` can be a function or value. If a `function` is passed, it will receive the current value and expect a new one to be returned.\n- `setCellState: Function(rowPath: Array<string>, columnID: String, updater: Function | Any) => void`\n  - Use this function to programmatically update the cell of a row.\n  - `updater` can be a function or value. If a `function` is passed, it will receive the current value and expect a new one to be returned.\n\n### Row Properties\n\nThe following additional properties are available on every **prepared** `row` object returned by the table instance.\n\n- `state: Object`\n  - This is the state object for each row, pre-mapped to the row from the table state's `rowState` object via `rowState[row.path.join('.')]`\n  - May also contain a `cellState` key/value pair, which is used to provide individual cell states to this row's cells\n- `setState: Function(updater: Function | any)`\n  - Use this function to programmatically update the state of a row.\n  - `updater` can be a function or value. If a `function` is passed, it will receive the current value and expect a new one to be returned.\n\n### Cell Properties\n\nThe following additional properties are available on every `Cell` object returned in an array of `cells` on every row object.\n\n- `state: Object`\n  - This is the state object for each cell, pre-mapped to the cell from the table state's `rowState` object via `rowState[row.path.join('.')].cellState[columnID]`\n- `setState: Function(updater: Function | any)`\n  - Use this function to programmatically update the state of a cell.\n  - `updater` can be a function or value. If a `function` is passed, it will receive the current value and expect a new one to be returned.\n\n### Example\n\n> Have an example of using useRowState? Submit a PR to add it here!\n\n## `useTableState`\n\n- Optional\n\n`useTableState` is a hook that allows you to hoist the table state out of the table into your own code. You should use this hook if you need to:\n\n- Know about the internal table state\n- React to changes to the internal table state\n- Manually control or override the internal table state\n\nSome common use cases for this hook are:\n\n- Reacting to `pageIndex` and `pageSize` changes for server-side pagination to fetch new data\n- Disallowing specific states via a custom state reducer\n- Enabling parent/unrelated components to manipulate the table state\n\n### Hook Options\n\nThe following options are supported via the main options object passed to `useTable(options)`\n\n- `initialState: Object`\n  - Optional\n  - The initial state object for the table.\n  - This object is **merged over the `defaultState` object** (eg. `{...defaultState, ...initialState}`) that React Table and its hooks use to register default state to produce the final initial state object passed to the resolved `useState` hook.\n- `overrides: Object`\n  - Optional\n  - Must be **memoized**\n  - This object is **merged over the current table state** (eg. `{...state, ...overrides}`) to produce the final state object that is then passed to the `useTable` options\n- `options: Object`\n  - `reducer: Function(oldState, newState) => finalState`\n    - Optional\n    - Inspired by Kent C. Dodd's [State Reducer Pattern](https://kentcdodds.com/blog/the-state-reducer-pattern-with-react-hooks)\n    - With every `setState` call to a table state (even internally), this reducer is called and is allowed to modify the final state object for updating.\n    - It is passed the `oldState`, the `newState`, and an action `type`.\n  - `useState`\n    - Optional\n    - Defaults to `React.useState`\n    - This function, if defined will be used as the state hook internally instead of the default `React.useState`. This can be useful for implementing custom state storage hooks like useLocalStorage, etc.\n\n### Output\n\n- `tableStateTuple: [tableState, setTableState]`\n  - Similar in structure to the result of `React.useState`\n  - **Memoized** - This tuple array will not change between renders unless the state or `useTableState` options change.\n  - `tableState: Object`\n    - **Memoized** - This object reference will not change unless the state changes.\n    - This is the final state object of the table, which is the product of the `initialState`, `overrides` and the `reducer` options (if applicable)\n  - `setTableState: Function(updater, type) => void`\n    - **Memoized** - This function reference will not change unless the internal state `reducer` is changed\n    - This function is used both internally by React Table, and optionally by you (the developer) to update the table state programmatically.\n    - `updater: Function`\n      - This function signature is **almost** (see next point) identical to the functional API exposed by `React.setState`. It is passed the previous state and is expected to return a new version of the state.\n      - **NOTE: `updater` must be a function. Passing a replacement object is not supported as it is with React.useState**\n    - `type: String`\n      - The [action type](TODO) corresponding to what action being taken against the state.\n\n### Example\n\n```js\nexport default function MyTable({ manualPageIndex }) {\n  // This is the initial state for our table\n  const initialState = { pageSize: 10, pageIndex: 0 }\n\n  // Here, we can override the pageIndex\n  // regardless of the internal table state\n  const overrides = React.useMemo(() => ({\n    pageIndex: manualPageIndex,\n  }))\n\n  const state = useTableState(initialState, overrides)\n\n  // You can use effects to observe changes to the state\n  React.useEffect(\n    () => {\n      console.log('Page Size Changed!', initialState.pageSize)\n    },\n    [initialState.pageSize]\n  )\n\n  const { rows } = useTable({\n    state,\n  })\n}\n```\n\n# Guides\n\n## Sorting\n\n### Client-Side Sorting\n\n- [Example]()\n\nClient-side sorting can be accomplished by using the `useSortBy` plugin hook. Start by importing the hook from `react-table`:\n\n```diff\n-import { useTable } from 'react-table'\n+import { useTable, useSortBy } from 'react-table'\n```\n\nNext, add the `useSortBy` hook to your `useTable` hook and add the necessary UI pieces we need to make sorting work:\n\n```diff\nfunction MyTable() {\n  const { getTableProps, headerGroups, rows, prepareRow } = useTable(\n    {\n      data,\n      columns,\n    },\n-   useSortBy\n+   useSortBy\n  )\n\n  return (\n    <table {...getTableProps()}>\n      <thead>\n        {headerGroups.map(headerGroup => (\n          <tr {...headerGroup.getHeaderGroupProps()}>\n            {headerGroup.headers.map(column => (\n-             <th {...column.getHeaderProps()}>\n+             <th {...column.getHeaderProps(column.getSortByToggleProps())}>\n                {column.render('Header')}\n+               <span>\n+                 {column.sorted ? (column.sortedDesc ? ' 🔽' : ' 🔼') : ''}\n+               </span>\n              </th>\n            ))}\n          </tr>\n        ))}\n      </thead>\n      <tbody>\n        {rows.map(\n          (row, i) =>\n            prepareRow(row) || (\n              <tr {...row.getRowProps()}>\n                {row.cells.map(cell => {\n                  return <td {...cell.getCellProps()}>{cell.render('Cell')}</td>\n                })}\n              </tr>\n            )\n        )}\n      </tbody>\n    </table>\n  )\n}\n```\n\n### Server-Side Sorting\n\nServer-side sorting can be accomplished by using the `useSortBy` plugin hook in **controlled** mode along with the `useTableState` hook. Start by importing these hooks from `react-table`:\n\n```diff\n-import { useTable } from 'react-table'\n+import { useTable, useSortBy, useTableState } from 'react-table'\n```\n\nNext, add the `useSortBy` and `useTableState` hooks to your `useTable` hook, configure the table state, then add the necessary UI pieces we need to make sorting work:\n\n```diff\nfunction MyTable(data, columns, fetchData) {\n\n+ const state = useTableState()\n+ const [{ sortBy }] = state\n\n+ React.useEffect(() => {\n+   // When sorting changes, trigger your parent component\n+   // or hook to fetch new data with the table state\n+   fetchData(state[0])\n+ }, [sortBy])\n\n  const { getTableProps, headerGroups, rows, prepareRow } = useTable(\n    {\n      data,\n      columns,\n+     state,\n+     manualSorting: true\n    },\n-   useSortBy\n+   useSortBy\n  )\n\n  return (\n    <table {...getTableProps()}>\n      <thead>\n        {headerGroups.map(headerGroup => (\n          <tr {...headerGroup.getHeaderGroupProps()}>\n            {headerGroup.headers.map(column => (\n-             <th {...column.getHeaderProps()}>\n+             <th {...column.getHeaderProps(column.getSortByToggleProps())}>\n                {column.render('Header')}\n+               <span>\n+                 {column.sorted ? (column.sortedDesc ? ' 🔽' : ' 🔼') : ''}\n+               </span>\n              </th>\n            ))}\n          </tr>\n        ))}\n      </thead>\n      <tbody>\n        {rows.map(\n          (row, i) =>\n            prepareRow(row) || (\n              <tr {...row.getRowProps()}>\n                {row.cells.map(cell => {\n                  return <td {...cell.getCellProps()}>{cell.render('Cell')}</td>\n                })}\n              </tr>\n            )\n        )}\n      </tbody>\n    </table>\n  )\n}\n```\n\n<!--\n\n## Client Side Pagination\n\nTo add client side pagination, use the `usePagination` hook:\n\n```diff\n// Import React\nimport React from 'react'\n\n// Import React Table\nimport {\n  useTable,\n  useGroupBy,\n  useFilters,\n  useSortBy,\n  useExpanded,\n+  usePagination,\n} from 'react-table'\n\n// Create a component to render your table\nfunction MyTable(props) {\n  // Use the useTable hook to create your table configuration\n  const instance = useTable(\n    props,\n    useGroupBy,\n    useFilters,\n    useSortBy,\n    useExpanded,\n+   usePagination,\n  )\n\n  // Use the state and functions returned from useTable to build your UI\n  const {\n    getTableProps,\n    headerGroups,\n    rows,\n    getRowProps,\n    prepareRow,\n+   pageOptions,\n+   page,\n+   state: [{ pageIndex, pageSize }],\n+   gotoPage,\n+   previousPage,\n+   nextPage,\n+   setPageSize,\n+   canPreviousPage,\n+   canNextPage,\n  } = instance\n\n  // Render the UI for your table\n  return (\n    <div>\n      <table {...getTableProps()}>\n        ...\n      </table>\n+     <div>\n+       <button onClick={() => previousPage()} disabled={!canPreviousPage}>\n+         Previous Page\n+       </button>\n+       <button onClick={() => nextPage()} disabled={!canNextPage}>\n+         Next Page\n+       </button>\n+       <div>\n+         Page{' '}\n+         <em>\n+           {pageIndex + 1} of {pageOptions.length}\n+         </em>\n+       </div>\n+       <div>Go to page:</div>\n+       <input\n+         type=\"number\"\n+         defaultValue={pageIndex + 1 || 1}\n+         onChange={e => {\n+           const page = e.target.value ? Number(e.target.value) - 1 : 0\n+           gotoPage(page)\n+         }}\n+       />\n+       <select\n+         value={pageSize}\n+         onChange={e => {\n+           setPageSize(Number(e.target.value))\n+         }}\n+       >\n+         {pageSizeOptions.map(pageSize => (\n+           <option key={pageSize} value={pageSize}>\n+             Show {pageSize}\n+           </option>\n+         ))}\n+       </select>\n+     </div>\n    </div>\n  )\n}\n```\n\n## Server Side Pagination\n\nTo implement server-side pagination, use the `useTableState` and `usePagination` hooks:\n\n```diff\n\n``` -->\n\n<!-- # Setup\n\nTo begin using React Table you will need to start with a UI to render it. Below is a very basic component that should serve as a good starting point for most projects:\n\n```js\n// Import React\nimport React from 'react'\n\n// Import React Table\nimport {\n  useTable,\n  useGroupBy,\n  useFilters,\n  useSortBy,\n  useExpanded,\n  usePagination,\n} from 'react-table'\n\n// Create a component to render your table\nexport default function MyTable(props) {\n  // Use the useTable hook to create your table configuration\n  const instance = useTable(\n    props,\n    useGroupBy,\n    useFilters,\n    useSortBy,\n    useExpanded,\n    usePagination\n  )\n\n  // Use the state and functions returned from useTable to build your UI\n  const {\n    getTableProps,\n    headerGroups,\n    rows,\n    getRowProps,\n    pageOptions,\n    page,\n    state: [{ pageIndex, pageSize }],\n    gotoPage,\n    prepareRow,\n    previousPage,\n    nextPage,\n    setPageSize,\n    canPreviousPage,\n    canNextPage,\n  } = instance\n\n  // Render the UI for your table\n  return (\n    <div>\n      <table {...getTableProps()}>\n        <thead>\n          {headerGroups.map(headerGroup => (\n            <tr {...headerGroup.getRowProps()}>\n              {headerGroup.headers.map(column => (\n                <th {...column.getHeaderProps()}>{column.render('Header')}</th>\n              ))}\n            </tr>\n          ))}\n        </thead>\n        <tbody>\n          {page.map(\n            (row, i) =>\n              prepareRow(row) || (\n                <tr {...row.getRowProps()}>\n                  {row.cells.map(cell => {\n                    return (\n                      <td {...cell.getCellProps()}>{cell.render('Cell')}</td>\n                    )\n                  })}\n                </tr>\n              )\n          )}\n        </tbody>\n      </table>\n      <div>\n        <button onClick={() => previousPage()} disabled={!canPreviousPage}>\n          Previous Page\n        </button>\n        <button onClick={() => nextPage()} disabled={!canNextPage}>\n          Next Page\n        </button>\n        <div>\n          Page{' '}\n          <em>\n            {pageIndex + 1} of {pageOptions.length}\n          </em>\n        </div>\n        <div>Go to page:</div>\n        <input\n          type=\"number\"\n          defaultValue={pageIndex + 1 || 1}\n          onChange={e => {\n            const page = e.target.value ? Number(e.target.value) - 1 : 0\n            gotoPage(page)\n          }}\n        />\n        <select\n          value={pageSize}\n          onChange={e => {\n            setPageSize(Number(e.target.value))\n          }}\n        >\n          {pageSizeOptions.map(pageSize => (\n            <option key={pageSize} value={pageSize}>\n              Show {pageSize}\n            </option>\n          ))}\n        </select>\n      </div>\n    </div>\n  )\n}\n```\n\nYou can then use your table like so:\n\n```js\n\nimport MyTable from './MyTable'\n\nfunction MyApp () {\n  const columns = React.useMemo(() => [{\n    Header: \"Name\",\n    columns: [\n      {\n        Header: \"First Name\",\n        accessor: \"firstName\",\n      },\n      {\n        Header: \"Last Name\",\n        accessor: \"lastName\",\n      }\n    ]\n  }], [])\n\n  const data = [{\n    firstName: 'Tanner',\n    lastName: 'Linsley'\n  }, {\n    firstName: 'Shawn',\n    lastName: 'Wang'\n  }, {\n    firstName: 'Kent C.',\n    lastName: 'Dodds'\n  }, {\n    firstName: 'Ryan',\n    lastName: 'Florence'\n  }]\n\n  return <MyTable columns={columns} data={data} />\n``` -->\n\n## Contributing\n\nTo suggest a feature, create an issue if it does not already exist.\nIf you would like to help develop a suggested feature follow these steps:\n\n- Fork this repo\n- Install dependencies with `$ yarn`\n- Link `react-table` locally with `$ yarn link`\n- Auto-build files as you edit with `$ yarn start`\n- Implement your changes and tests to files in the `src/` directory\n- In any example directory, link to the local `react-table` with `$ yarn link react-table`\n- Follow example directions for running. Usually just `$ yarn && yarn start`\n- Document your changes in the root `README.md`\n- To stage a commit, run `yarn commit`\n- Submit PR for review\n","licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.0-alpha.22","dist":{"shasum":"5847f008271c3167c8fe5c8e401121685ba7c08a","integrity":"sha512-VwIf+/9l8FxdhqHsNodSfm5Ll9DfZe1Cz//FEAuhiV6clR09LFKaqzw7fZNyVlBbQyUyO2M8aMcyaVKCyxas+Q==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.0-alpha.22.tgz","fileCount":41,"unpackedSize":546162,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdVb6TCRA9TVsSAnZWagAAIiYP/0V9dmVryXeFHSqcW+7r\nFzkB+RktYNobTCyoUwGrNVvUURDMJcfhehV5s6z+oqljzGmHO9hZm54Iq14G\nSciyFxJDmAcPRu7DaEb1yNJvlOIs0R+uqjnXgva6CgOukLuZQ6m2j/Du9BMq\nMSQ3qC78YfmwLubZKpg8WAvhTLWas2KOIATRG7pG3SoRf2RrpN868I8M2Jtk\npwL66GGDlGQmQ02scNVru0uF31okRpu3b88O9C/5gAnZFcda8p0V74vDJLHv\nnyT/HEYs5qQooVTkVIe7KQa5yPRGEFVF0NaZykyz9ol1dN3MZ2T0MlGcUYI2\nLgVSHPH3Hs6CYbZjPAyigb7FPA15hOc+JFDNnrdDNyDAj/nKEj0lcKv+AG4D\nbU22FdtQR2VVLZura0KWS4D3PIry1w6OFU132+tX1TXvA7RNr/oizvILqNe3\nYq6rH2f7GTFEWZeySGDdWnz6ZTLdl/gGJJndC3xMDHVCMrsc01/tBuFGclTs\nP6A6gTTCdCZ3/xqR1P3/zVDt/pJ3m6Ui432VKr5my0fVUiC2L+9GoCe/eoJ8\n1SZzxVVOqgIPhIwfJcSLSuPy9qvZHMOHTMrftNkwplyqRifJhweOPIm4Eojr\nzUyr5vc2DORDZjLcQ0EVskEilIYf7OEcW7U8rX+eOItU0czddRj3MItHlVOp\nF0bB\r\n=amXx\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDO7wKcHBynSeZw1JOSwXKP28mECYNNi7MdiM6TPQ0hRQIhAKuR8KKrLJiDRaVoaLbxZ4vnfA0HHR6Gx5TCZuUTSmzG"}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.0-alpha.22_1565900434271_0.3452580909928613"},"_hasShrinkwrap":false},"7.0.0-alpha.23":{"name":"react-table","version":"7.0.0-alpha.23","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"dist/index.js","module":"dist/index.es.js","jsnext:main":"dist/index.es.js","scripts":{"commit":"git add . && git-cz","test":"is-ci 'test:ci' 'test:dev'","test:dev":"jest --watch","test:ci":"jest","build":"rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier ./src/**/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"prop-types":"^15.5.0","react":"^16.8.3","react-dom":"^16.8.3"},"devDependencies":{"@babel/core":"^7.5.5","@babel/plugin-proposal-class-properties":"^7.5.5","@babel/preset-env":"^7.5.5","@babel/preset-react":"^7.0.0","@babel/runtime":"^7.5.5","@commitlint/cli":"^8.1.0","@commitlint/config-conventional":"^8.1.0","@svgr/rollup":"^4.3.2","@testing-library/dom":"^6.0.0","@testing-library/jest-dom":"^4.0.0","@testing-library/react":"^9.1.1","babel-eslint":"9.x","commitizen":"^4.0.3","core-js":"3.2.1","cross-env":"^5.2.0","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^8.0.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.14.3","eslint-plugin-react-hooks":"1.7.0","eslint-plugin-standard":"^4.0.0","husky":"^3.0.3","is-ci-cli":"^1.1.1","jest":"^24.8.0","jest-cli":"^24.8.0","jest-runner-eslint":"^0.7.4","jest-watch-select-projects":"^0.1.2","jest-watch-typeahead":"^0.3.1","lint-staged":"^9.2.1","prettier":"^1.18.2","prop-types":"^15.5.0","react":"^16.9.0","react-dom":"^16.9.0","rollup":"^0.68.0","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^9.1.3","rollup-plugin-node-resolve":"^4.0.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-uglify":"^6.0.2","snapshot-diff":"^0.5.2"},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"browserslist":"> 0.25%, not dead","readmeFilename":"README.md","readme":"# React Table\n\nHooks for building **lightweight, fast and extendable datagrids** for React\n\n<a href=\"https://travis-ci.org/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://travis-ci.org/tannerlinsley/react-table.svg?branch=master\" />\n</a>\n<a href=\"https://npmjs.com/package/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-table.svg\" />\n</a>\n<a href=\"https://spectrum.chat/react-table\">\n  <img alt=\"Join the community on Spectrum\" src=\"https://withspectrum.github.io/badge/badge.svg\" />\n</a>\n<a href=\"https://github.com/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-table.svg?style=social&label=Star\" />\n</a>\n<a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n<br />\n<br />\n<a href=\"https://patreon.com/tannerlinsley\">\n  <img width=\"180\" alt=\"\" src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/become-a-patron.png\" />\n</a>\n\n<br />\n<br />\n\n## Features\n\n- Lightweight (4kb - 10kb depending on features and tree-shaking)\n- Headless (100% customizable, Bring-your-own-UI)\n- Client-side & Server-side pagination support\n- Sorting (Multi and Stable)\n- Filters\n- Pivoting & Aggregation\n- Row Selection\n- Row Expansion\n- Fully controllable\n- Extensible via hook-based plugin system\n- <a href=\"https://medium.com/@tannerlinsley/why-i-wrote-react-table-and-the-problems-it-has-solved-for-nozzle-others-445c4e93d4a8#.axza4ixba\" target=\"\\_parent\">\"Why I wrote React Table and the problems it has solved for Nozzle.io\"</a> by Tanner Linsley\n\n## Documentation\n\n- [Installation](./docs/installation.md) - Walk through how to install React Table\n- [Concepts](./docs/concepts.md) - Read how React Table works and how you can use it better\n- [Examples](./docs/examples.md) - Experience and learn from some examples and guides of how to use React Table and implement common patterns\n- [API](./docs/api.md) - Get to know React Table's API, how to use it and how to extend its functionality\n- [Contributing](./CONTRIBUTING.md) - Become familiar with how to contribute back to React Table\n- [Code of Conduct](./CODE_OF_CONDUCT.md) - Be a good React Table citizen by following these repository rules\n\n## Sponsors\n\n**React Table v7** is being built and maintained by me, @tannerlinsley and I am always in need of more Patreon support to keep this project afloat. If you would like to contribute to my Patreon goal for v7 and beyond, [visit my Patreon and help me out!](https://patreon.com/tannerlinsley)\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/platinum.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://tryretool.com/?utm_source=sponsor&utm_campaign=react_table\" target=\"_blank\">\n          <img width='480' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-retool.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/gold.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://nozzle.io\" target=\"_blank\">\n          <img width='230' src=\"https://nozzle.io/img/logo-blue.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://zappi.io/web/\" target=\"_blank\">\n          <img width='230' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-zappi.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://patreon.com/tannerlinsley\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/supporters.png\" />\n        </a>\n      </td>\n      <td>\n        <div>Nicholas Kaufmann</div>\n        <div><a href=\"https://www.metso.com/\">Pekka</a></div>\n        <div>Jon Eickmeier</div>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://patreon.com/tannerlinsley\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/fans.png\" />\n        </a>\n      </td>\n      <td>\n        <div>Sortmy.games</div>\n        <div>Hugo Meissner</div>\n        <div>Benoit Leger-Derville</div>\n        <div>Thomas Funk</div>\n        <div>Dan Houle</div>\n        <div>David Pickut</div>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<a href=\"https://patreon.com/tannerlinsley\">\n  <img width=\"150\" alt=\"\" src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/become-a-patron.png\" />\n</a>\n","licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.0-alpha.23","dist":{"shasum":"cb2f36dfdc87048ad68df24b2b0658ffd88584de","integrity":"sha512-Kr5Zwum67Yl+Q8twAqdjTaQWV9ELMpWdvinYelkEy4o/AtCwaslBxCLTbSkJxxB41CySeavzsHda2pI+sxU0jg==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.0-alpha.23.tgz","fileCount":41,"unpackedSize":457557,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdVrRdCRA9TVsSAnZWagAAb5IP/3pKSEpHFH7+QEo6v9v4\noxBMXbYIuI+oDkcdjACK04SZn+eo2n7xEC1BiRarnBbR4vRkHn3SyrBIIuJu\n8I9eczfAFw9yKGM6RZNqRIoTAYdiBXumcBQLyRZABiVqpPNmMaS7NF7bK2Ka\na33PBm4ONRY9QSiCw6MhwJmJ3ZOnS8gQmZgelyDnQgNs70mOQuBlaWyGiHH0\nKtpdfAu9w+FRU6Wvq4ESHVPFb9JVqgsW65xygMOrG7c3+uCI99Lq+LNUbk/p\n/OPzdqOVcZ2tHgusURa4Q3gNFeKHXZwgD+KeYyH5lEEfP7QfqMNga4xxt7nf\nA3EjaI3YQvzDCraSTM+bZbRRa7agXdiKgH/GObWDsV5fDaRCAwL4RrBNTfmf\naS5QB/q2eBYEbDw0Hxpblnf1NYfeIbB883julJErlDIXLCwyLjcP2DW29iyP\nbXCOJfWu5SlYnvHlWmiKHgsMnJa9OOf2CcG5+q5/Ge5OwgROQ2H8BFb/psR9\nCtTlkWbDHDsuySBMF/Xj4gum0zuoz8AhKb4uimAyFdH6gWsAsIn+Noict9sf\n31UYVsOPml5uuKiEgmVUQfZnxSmTzBoQPzdCi5ZSv1UQkZyziitZR4SWM0+4\nZoLgIt8nP1Ch1Me7ieai7jCrkYSzPSt7QSm/n77GLPJXvg3U6rhTXCsvCskb\nLyIe\r\n=pdka\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDWKkZhhaIQk+NY9/EaVKb7szMj2SXjmQ5g7A5r8JEAhwIhALm6k6BK6stfkN7HtJIeQmoKKCOWBsUh3ys4o1kXVyQh"}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.0-alpha.23_1565963357181_0.06404150432886713"},"_hasShrinkwrap":false},"7.0.0-alpha.24":{"name":"react-table","version":"7.0.0-alpha.24","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"dist/index.js","module":"dist/index.es.js","jsnext:main":"dist/index.es.js","scripts":{"commit":"git add . && git-cz","test":"is-ci 'test:ci' 'test:dev'","test:dev":"jest --watch","test:ci":"jest","build":"rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier ./src/**/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"prop-types":"^15.5.0","react":"^16.8.3","react-dom":"^16.8.3"},"devDependencies":{"@babel/core":"^7.5.5","@babel/plugin-proposal-class-properties":"^7.5.5","@babel/preset-env":"^7.5.5","@babel/preset-react":"^7.0.0","@babel/runtime":"^7.5.5","@commitlint/cli":"^8.1.0","@commitlint/config-conventional":"^8.1.0","@svgr/rollup":"^4.3.2","@testing-library/dom":"^6.0.0","@testing-library/jest-dom":"^4.0.0","@testing-library/react":"^9.1.1","babel-eslint":"9.x","commitizen":"^4.0.3","core-js":"3.2.1","cross-env":"^5.2.0","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^8.0.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.14.3","eslint-plugin-react-hooks":"1.7.0","eslint-plugin-standard":"^4.0.0","husky":"^3.0.3","is-ci-cli":"^1.1.1","jest":"^24.8.0","jest-cli":"^24.8.0","jest-runner-eslint":"^0.7.4","jest-watch-select-projects":"^0.1.2","jest-watch-typeahead":"^0.3.1","lint-staged":"^9.2.1","prettier":"^1.18.2","prop-types":"^15.5.0","react":"^16.9.0","react-dom":"^16.9.0","rollup":"^0.68.0","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^9.1.3","rollup-plugin-node-resolve":"^4.0.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-uglify":"^6.0.2","snapshot-diff":"^0.5.2"},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"browserslist":"> 0.25%, not dead","readmeFilename":"README.md","readme":"# React Table\n\nHooks for building **lightweight, fast and extendable datagrids** for React\n\n<a href=\"https://travis-ci.org/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://travis-ci.org/tannerlinsley/react-table.svg?branch=master\" />\n</a>\n<a href=\"https://npmjs.com/package/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-table.svg\" />\n</a>\n<a href=\"https://spectrum.chat/react-table\">\n  <img alt=\"Join the community on Spectrum\" src=\"https://withspectrum.github.io/badge/badge.svg\" />\n</a>\n<a href=\"https://github.com/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-table.svg?style=social&label=Star\" />\n</a>\n<a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n<br />\n<br />\n<a href=\"https://patreon.com/tannerlinsley\">\n  <img width=\"180\" alt=\"\" src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/become-a-patron.png\" />\n</a>\n\n<br />\n<br />\n\n## Features\n\n- Lightweight (4kb - 10kb depending on features and tree-shaking)\n- Headless (100% customizable, Bring-your-own-UI)\n- Client-side & Server-side pagination support\n- Sorting (Multi and Stable)\n- Filters\n- Pivoting & Aggregation\n- Row Selection\n- Row Expansion\n- Fully controllable\n- Extensible via hook-based plugin system\n- <a href=\"https://medium.com/@tannerlinsley/why-i-wrote-react-table-and-the-problems-it-has-solved-for-nozzle-others-445c4e93d4a8#.axza4ixba\" target=\"\\_parent\">\"Why I wrote React Table and the problems it has solved for Nozzle.io\"</a> by Tanner Linsley\n\n## Documentation\n\n- [Installation](./docs/installation.md) - Walk through how to install React Table\n- [Concepts](./docs/concepts.md) - Read how React Table works and how you can use it better\n- [Examples](./docs/examples.md) - Experience and learn from some examples and guides of how to use React Table and implement common patterns\n- [API](./docs/api.md) - Get to know React Table's API, how to use it and how to extend its functionality\n- [Contributing](./CONTRIBUTING.md) - Become familiar with how to contribute back to React Table\n- [Code of Conduct](./CODE_OF_CONDUCT.md) - Be a good React Table citizen by following these repository rules\n\n## Sponsors\n\n**React Table v7** is being built and maintained by me, @tannerlinsley and I am always in need of more Patreon support to keep this project afloat. If you would like to contribute to my Patreon goal for v7 and beyond, [visit my Patreon and help me out!](https://patreon.com/tannerlinsley)\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/platinum.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://tryretool.com/?utm_source=sponsor&utm_campaign=react_table\" target=\"_blank\">\n          <img width='480' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-retool.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/gold.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://nozzle.io\" target=\"_blank\">\n          <img width='230' src=\"https://nozzle.io/img/logo-blue.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://zappi.io/web/\" target=\"_blank\">\n          <img width='230' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-zappi.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://patreon.com/tannerlinsley\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/supporters.png\" />\n        </a>\n      </td>\n      <td>\n        <div>Nicholas Kaufmann</div>\n        <div><a href=\"https://www.metso.com/\">Pekka</a></div>\n        <div>Jon Eickmeier</div>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://patreon.com/tannerlinsley\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/fans.png\" />\n        </a>\n      </td>\n      <td>\n        <div>Sortmy.games</div>\n        <div>Hugo Meissner</div>\n        <div>Benoit Leger-Derville</div>\n        <div>Thomas Funk</div>\n        <div>Dan Houle</div>\n        <div>David Pickut</div>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<a href=\"https://patreon.com/tannerlinsley\">\n  <img width=\"150\" alt=\"\" src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/become-a-patron.png\" />\n</a>\n","licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.0-alpha.24","dist":{"shasum":"3d1dcc54567713bb6a1a191fb977c364fb6745fb","integrity":"sha512-wcNiueHcDCfTRJIGmBJ9dV9CPvleTp95oDppx57bxOEqPZ2RF+38jF4KY1LVT5rBaqgywsqg8Gr6jjnrfa/DCg==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.0-alpha.24.tgz","fileCount":41,"unpackedSize":470794,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdWyWVCRA9TVsSAnZWagAAxzAQAIC8aWKuv4CrwtEJMVcU\nEF/PPlQoCRUGGzdTSdtUkZm09PcMzecO8BhCy9BMqf67y5oKNF2td3Plolif\nXB3fsRF67/Q5OiC/7TNI7Zw8dVo/wfcbhmciXMTjj50OW17th0HwRzgEYuku\n9HJ+uYZI/BqtHMj+jSkfcm43sDCm0A3siIkxfww2Yx1RcLK34Z29CD78OiB4\ncAFm2s0aBdfUhskfrk2NQNIVYDCoaL5PhBF6JOpIxc2QG58l3/DDjoHN+YNJ\n1WC7VCeLsUjPQMbbX78kAXP9l9ByEJZwR2Mi5GuyrjBIjspoc17O3gQZXym/\nLBdDwMbW9jAoWrtrqd0V+0YzMO4Y+97DXIPlP4Bl2QyaLPC1oE/ACBy1lnha\nsV20ajaho7MRzHOPcxWsj44QnNB9WVjwEuV3Wuew25dU+2j9uBbsTxikz/rJ\nMJKI7PCpiynBvrXyefabXrbR5GwgXtPbEEqvLlhXhQcOgqhoogs1Rb/u9kOr\nK3IJ5ymmDrfUDlyADAomzne9rbTz5XgJDhvdA8xewBMsWGsXJoOuPj35U4Ko\nJv2Q5vTb+ygmSR59vByvcJWahg3T3N0Qzy4JARlUU1L4+1+3BU++aZxfp0uN\nZRwB3i+MVcBaP3a8X+sOA1VeK9npJUysfe9zMJRmpBpvHSopzN3AGjcctSN7\nx3mc\r\n=iS/r\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBgZRfdwu6sAKmqNJQqOuVR96o/p2Y9Fs2i2I5gsHUBWAiAc2L6uxg+yrtVs6tKG0mWJfXG1vCiQ2f+t7ZYhlq+Pqw=="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.0-alpha.24_1566254485193_0.07200937488290138"},"_hasShrinkwrap":false},"7.0.0-alpha.25":{"name":"react-table","version":"7.0.0-alpha.25","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"dist/index.js","module":"dist/index.es.js","jsnext:main":"dist/index.es.js","scripts":{"commit":"git add . && git-cz","test":"is-ci 'test:ci' 'test:dev'","test:dev":"jest --watch","test:ci":"jest","build":"rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier ./src/**/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"prop-types":"^15.5.0","react":"^16.8.3","react-dom":"^16.8.3"},"devDependencies":{"@babel/core":"^7.5.5","@babel/plugin-proposal-class-properties":"^7.5.5","@babel/preset-env":"^7.5.5","@babel/preset-react":"^7.0.0","@babel/runtime":"^7.5.5","@commitlint/cli":"^8.1.0","@commitlint/config-conventional":"^8.1.0","@svgr/rollup":"^4.3.2","@testing-library/dom":"^6.0.0","@testing-library/jest-dom":"^4.0.0","@testing-library/react":"^9.1.1","babel-eslint":"9.x","commitizen":"^4.0.3","core-js":"3.2.1","cross-env":"^5.2.0","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^8.0.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.14.3","eslint-plugin-react-hooks":"1.7.0","eslint-plugin-standard":"^4.0.0","husky":"^3.0.3","is-ci-cli":"^1.1.1","jest":"^24.8.0","jest-cli":"^24.8.0","jest-runner-eslint":"^0.7.4","jest-watch-select-projects":"^0.1.2","jest-watch-typeahead":"^0.3.1","lint-staged":"^9.2.1","prettier":"^1.18.2","prop-types":"^15.5.0","react":"^16.9.0","react-dom":"^16.9.0","rollup":"^0.68.0","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^9.1.3","rollup-plugin-node-resolve":"^4.0.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-uglify":"^6.0.2","snapshot-diff":"^0.5.2"},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"browserslist":"> 0.25%, not dead","readmeFilename":"README.md","readme":"![React Table Header](https://github.com/tannerlinsley/react-table/raw/master/media/header.png)\n\n<img src='https://github.com/tannerlinsley/react-table/raw/master/media/logo.png' width='300'/>\n\nHooks for building **lightweight, fast and extendable datagrids** for React\n\n<a href=\"https://travis-ci.org/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://travis-ci.org/tannerlinsley/react-table.svg?branch=master\" />\n</a>\n<a href=\"https://npmjs.com/package/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-table.svg\" />\n</a>\n<a href=\"https://spectrum.chat/react-table\">\n  <img alt=\"Join the community on Spectrum\" src=\"https://withspectrum.github.io/badge/badge.svg\" />\n</a>\n<a href=\"https://github.com/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-table.svg?style=social&label=Star\" />\n</a>\n<a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n<br />\n<br />\n<a href=\"https://patreon.com/tannerlinsley\">\n  <img width=\"180\" alt=\"\" src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/become-a-patron.png\" />\n</a>\n\n<br />\n<br />\n\n## Features\n\n- Lightweight (4kb - 10kb depending on features and tree-shaking)\n- Headless (100% customizable, Bring-your-own-UI)\n- Client-side & Server-side pagination support\n- Sorting (Multi and Stable)\n- Filters\n- Pivoting & Aggregation\n- Row Selection\n- Row Expansion\n- Fully controllable\n- Extensible via hook-based plugin system\n- <a href=\"https://medium.com/@tannerlinsley/why-i-wrote-react-table-and-the-problems-it-has-solved-for-nozzle-others-445c4e93d4a8#.axza4ixba\" target=\"\\_parent\">\"Why I wrote React Table and the problems it has solved for Nozzle.io\"</a> by Tanner Linsley\n\n## Documentation\n\n- [Installation](./docs/installation.md) - Walk through how to install React Table\n- [Concepts](./docs/concepts.md) - Read how React Table works and how you can use it better\n- [Examples](./docs/examples.md) - Experience and learn from some examples and guides of how to use React Table and implement common patterns\n- [API](./docs/api.md) - Get to know React Table's API, how to use it and how to extend its functionality\n- [Contributing](./CONTRIBUTING.md) - Become familiar with how to contribute back to React Table\n- [Code of Conduct](./CODE_OF_CONDUCT.md) - Be a good React Table citizen by following these repository rules\n\n## Sponsors\n\n**React Table v7** is being built and maintained by me, @tannerlinsley and I am always in need of more Patreon support to keep this project afloat. If you would like to contribute to my Patreon goal for v7 and beyond, [visit my Patreon and help me out!](https://patreon.com/tannerlinsley)\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/platinum.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://tryretool.com/?utm_source=sponsor&utm_campaign=react_table\" target=\"_blank\">\n          <img width='350' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-retool.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"http://bjntech.com/index.html&utm_campaign=react_table\" target=\"_blank\">\n          <img width='250' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-bjn.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/gold.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://nozzle.io\" target=\"_blank\">\n          <img width='230' src=\"https://nozzle.io/img/logo-blue.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://zappi.io/web/\" target=\"_blank\">\n          <img width='230' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-zappi.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://patreon.com/tannerlinsley\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/supporters.png\" />\n        </a>\n      </td>\n      <td>\n        <div><a href=\"https://www.metso.com/\">Pekka</a></div>\n        <div>Jon Eickmeier</div>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://patreon.com/tannerlinsley\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/fans.png\" />\n        </a>\n      </td>\n      <td>\n        <div>Sortmy.games</div>\n        <div>Hugo Meissner</div>\n        <div>Benoit Leger-Derville</div>\n        <div>Thomas Funk</div>\n        <div>Dan Houle</div>\n        <div>David Pickut</div>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<a href=\"https://patreon.com/tannerlinsley\">\n  <img width=\"150\" alt=\"\" src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/become-a-patron.png\" />\n</a>\n","licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.0-alpha.25","dist":{"shasum":"2f501c2fc3aef28ceee7fa7ed67ee000c7a92993","integrity":"sha512-C0c+ih/mRKvZNnWiFyUPfo+gPZFuB17l1/Rc7MmMxZCx6IK8b35uSxnnG6AnQCOzTWyNy9h1ht3ADP2BDLmCUQ==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.0-alpha.25.tgz","fileCount":40,"unpackedSize":460569,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdXEJhCRA9TVsSAnZWagAAHE4P/07l30thQsMS7mK1H7Qq\nD87avLXYeZCDIebKpPj8jmYsmuxaZ8vKYX0M9vn6zz4KUZ+H4BkUc9qTaivV\nxihgYOz/9PgmblCs14Uagk7+8+HXwGk0poCivxPxuRSvB1GHH6dB+fqajuY5\n2S5Cdo5jDsG6hmf0FmVuJlLUOtRSrnGe7tcHzx182AEXgy6bembIFAKcFK6H\ndd8DI2My997TsjYbllqqdD0l3ap4PIncYIVAC/bZeUtUX+zxsL2Sqe7eQim/\nJc7iBZ+AzyaKIi2JhzhI3qiY/ejFsRa3QwOX5ccfGwZt0UQBk5kdyIU4bKBM\neaIC/28Jw7cz/y+mnjnjQfhyot92XeSn7m+Fk+Rw9FNlnVZPI1sgr+F0gRlX\nCZHeAF9uGcgpvpilifF9EiKvWk4wGQnzzpBLgONNwa3wk+EJRXBCSSyy3e1f\niqJ44nlaSVQ7xa98l3F9c4lCCgp0tJiSQnbN0/iVO1mZQWoal4OReQwDulXo\nt6Vq7TeZgJrRhApB4uLszx5QVXulvJiJrtzsnYmcVKOuQtRkmfdVfu34NLME\ngbmho4xbAyVcVual0CqSa/HLJ97Sa7Eb2Krb9/yDTbRggUhQRlHHgagPVQPb\nK7btYRLtsVjxqLijHx8lGvSs8fFREsC4m/8IJjBywIU3JiPIYcEmn9D28gJ8\n8aj0\r\n=fVRK\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFrpSETlHJ9T5eGXsUGS9RJF/Mm7SapZcH5UTUyEw7yvAiB8UjySn3Ifx+ILqZavqao8F+qKy6zmuXsUVJiyoIEECA=="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.0-alpha.25_1566327392590_0.35555675084894767"},"_hasShrinkwrap":false},"7.0.0-alpha.26":{"name":"react-table","version":"7.0.0-alpha.26","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"dist/index.js","module":"dist/index.es.js","jsnext:main":"dist/index.es.js","scripts":{"commit":"git add . && git-cz","test":"is-ci 'test:ci' 'test:dev'","test:dev":"jest --watch","test:ci":"jest","build":"rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier ./src/**/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"prop-types":"^15.5.0","react":"^16.8.3","react-dom":"^16.8.3"},"devDependencies":{"@babel/core":"^7.5.5","@babel/plugin-proposal-class-properties":"^7.5.5","@babel/preset-env":"^7.5.5","@babel/preset-react":"^7.0.0","@babel/runtime":"^7.5.5","@commitlint/cli":"^8.1.0","@commitlint/config-conventional":"^8.1.0","@svgr/rollup":"^4.3.2","@testing-library/dom":"^6.0.0","@testing-library/jest-dom":"^4.0.0","@testing-library/react":"^9.1.1","babel-eslint":"9.x","commitizen":"^4.0.3","core-js":"3.2.1","cross-env":"^5.2.0","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^8.0.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.14.3","eslint-plugin-react-hooks":"1.7.0","eslint-plugin-standard":"^4.0.0","husky":"^3.0.3","is-ci-cli":"^1.1.1","jest":"^24.8.0","jest-cli":"^24.8.0","jest-runner-eslint":"^0.7.4","jest-watch-select-projects":"^0.1.2","jest-watch-typeahead":"^0.3.1","lint-staged":"^9.2.1","prettier":"^1.18.2","prop-types":"^15.5.0","react":"^16.9.0","react-dom":"^16.9.0","rollup":"^0.68.0","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^9.1.3","rollup-plugin-node-resolve":"^4.0.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-uglify":"^6.0.2","snapshot-diff":"^0.5.2"},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"browserslist":"> 0.25%, not dead","readmeFilename":"README.md","readme":"![React Table Header](https://github.com/tannerlinsley/react-table/raw/master/media/header.png)\n\n<img src='https://github.com/tannerlinsley/react-table/raw/master/media/logo.png' width='300'/>\n\nHooks for building **lightweight, fast and extendable datagrids** for React\n\n<a href=\"https://travis-ci.org/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://travis-ci.org/tannerlinsley/react-table.svg?branch=master\" />\n</a>\n<a href=\"https://npmjs.com/package/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-table.svg\" />\n</a>\n<a href=\"https://spectrum.chat/react-table\">\n  <img alt=\"Join the community on Spectrum\" src=\"https://withspectrum.github.io/badge/badge.svg\" />\n</a>\n<a href=\"https://github.com/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-table.svg?style=social&label=Star\" />\n</a>\n<a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n<br />\n<br />\n<a href=\"https://patreon.com/tannerlinsley\">\n  <img width=\"180\" alt=\"\" src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/become-a-patron.png\" />\n</a>\n\n<br />\n<br />\n\n## Features\n\n- Lightweight (4kb - 10kb depending on features and tree-shaking)\n- Headless (100% customizable, Bring-your-own-UI)\n- Client-side & Server-side pagination support\n- Sorting (Multi and Stable)\n- Filters\n- Pivoting & Aggregation\n- Row Selection\n- Row Expansion\n- Fully controllable\n- Extensible via hook-based plugin system\n- <a href=\"https://medium.com/@tannerlinsley/why-i-wrote-react-table-and-the-problems-it-has-solved-for-nozzle-others-445c4e93d4a8#.axza4ixba\" target=\"\\_parent\">\"Why I wrote React Table and the problems it has solved for Nozzle.io\"</a> by Tanner Linsley\n\n## Documentation\n\n- [Installation](./docs/installation.md) - Walk through how to install React Table\n- [Concepts](./docs/concepts.md) - Read how React Table works and how you can use it better\n- [Examples](./docs/examples.md) - Experience and learn from some examples and guides of how to use React Table and implement common patterns\n- [API](./docs/api.md) - Get to know React Table's API, how to use it and how to extend its functionality\n- [Contributing](./CONTRIBUTING.md) - Become familiar with how to contribute back to React Table\n- [Code of Conduct](./CODE_OF_CONDUCT.md) - Be a good React Table citizen by following these repository rules\n\n## Sponsors\n\n**React Table v7** is being built and maintained by me, @tannerlinsley and I am always in need of more Patreon support to keep this project afloat. If you would like to contribute to my Patreon goal for v7 and beyond, [visit my Patreon and help me out!](https://patreon.com/tannerlinsley)\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/platinum.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://tryretool.com/?utm_source=sponsor&utm_campaign=react_table\" target=\"_blank\">\n          <img width='350' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-retool.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"http://bjntech.com/index.html&utm_campaign=react_table\" target=\"_blank\">\n          <img width='250' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-bjn.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/gold.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://nozzle.io\" target=\"_blank\">\n          <img width='230' src=\"https://nozzle.io/img/logo-blue.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://zappi.io/web/\" target=\"_blank\">\n          <img width='230' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-zappi.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://patreon.com/tannerlinsley\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/supporters.png\" />\n        </a>\n      </td>\n      <td>\n        <div><a href=\"https://www.metso.com/\">Pekka</a></div>\n        <div>Jon Eickmeier</div>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://patreon.com/tannerlinsley\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/fans.png\" />\n        </a>\n      </td>\n      <td>\n        <div>Sortmy.games</div>\n        <div>Hugo Meissner</div>\n        <div>Benoit Leger-Derville</div>\n        <div>Thomas Funk</div>\n        <div>Dan Houle</div>\n        <div>David Pickut</div>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<a href=\"https://patreon.com/tannerlinsley\">\n  <img width=\"150\" alt=\"\" src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/become-a-patron.png\" />\n</a>\n","licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.0-alpha.26","dist":{"shasum":"b131def906c3369d00001b2d7132279785c22942","integrity":"sha512-3Gj+PI0+2SD6K7KSBOj+RzaYETNjPt7zKKxYEBUIMWVvyGbldhtSgNZEGBvzTbQ/dG8d1xXKhyu5/ulh4spfhg==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.0-alpha.26.tgz","fileCount":40,"unpackedSize":465360,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdXwCSCRA9TVsSAnZWagAAw1cP/2nxAmnIuScnWZ7Gh/+N\nuRyUxe5bz/BZqKtfBNTpZgW98gHCY8IQtiLG6EDFfQ7YCEfAC99iJ4njZrZD\nvjqYmKFjCUMDF7cz8uLgdeQ8gac9SjOgGnoASNC/OIBYuwU9dsJcI1ZDc6bC\na6nftK3d89c4Xle3msAQnXRx4Ugz8TcZewxFkmFtQqblo5izzemMMNwK3HlK\nXK8TY+xzJ8qBMA58mQmPP+vJudFBMIUVoknqXv2Oyj3maNC8Aq5Pf74vBFtr\nro7eERm8yubwom99fGYsKwtMkNWlSlQ6gGe0ymoAsjuAyrZgSF6o/hp0rC1S\nKQQGFI4TE/ejAgNmVPE/JA8XU82UTurNxjp/poIQSoAhFqOV1CVwe6X85NLQ\nqgxf45CPXhpn/m7FctLlpNsFTDByABA+UJmx9jgmuBPZ9gYp9zMfnRY6HS40\nLFgTysMOvc4g0jjTJB79SplvkBnKjTCcsSRNw0QeTOrfBTIW6TAzS5srQ5rh\nACAhingRBKP3VdsvxVmB9WY+R3JOkMD+ESUTtAzZkjBsKcJ0sdTlF0HO4UOQ\nwADWYMDv28SdfVGLGsy+IfrcY+n6rjnFc+KLubmfzhvNBGOfLdbtQshIxJ3K\nZll7vF84tdEPB/LUef5MeRO3fvdt30eAPcjz5ETp3nPmac1rtZbB5QGo4+QD\nlmhU\r\n=92Y+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDZ9e1DQITq0zsNJCe3qVkQZFgQI6EceWKh3Co+9WR8sgIhALTPbYc1MIuP19KtTvwjEyBKQsVqz2TYveOjvtPE24sB"}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.0-alpha.26_1566507153926_0.07586832885791917"},"_hasShrinkwrap":false},"7.0.0-alpha.27":{"name":"react-table","version":"7.0.0-alpha.27","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"dist/index.js","module":"dist/index.es.js","jsnext:main":"dist/index.es.js","scripts":{"commit":"git add . && git-cz","test":"is-ci 'test:ci' 'test:dev'","test:dev":"jest --watch","test:ci":"jest","build":"rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier ./src/**/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"prop-types":"^15.5.0","react":"^16.8.3","react-dom":"^16.8.3"},"devDependencies":{"@babel/core":"^7.5.5","@babel/plugin-proposal-class-properties":"^7.5.5","@babel/preset-env":"^7.5.5","@babel/preset-react":"^7.0.0","@babel/runtime":"^7.5.5","@commitlint/cli":"^8.1.0","@commitlint/config-conventional":"^8.1.0","@svgr/rollup":"^4.3.2","@testing-library/dom":"^6.0.0","@testing-library/jest-dom":"^4.0.0","@testing-library/react":"^9.1.1","babel-eslint":"9.x","commitizen":"^4.0.3","core-js":"3.2.1","cross-env":"^5.2.0","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^8.0.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.14.3","eslint-plugin-react-hooks":"1.7.0","eslint-plugin-standard":"^4.0.0","husky":"^3.0.3","is-ci-cli":"^1.1.1","jest":"^24.8.0","jest-cli":"^24.8.0","jest-runner-eslint":"^0.7.4","jest-watch-select-projects":"^0.1.2","jest-watch-typeahead":"^0.3.1","lint-staged":"^9.2.1","prettier":"^1.18.2","prop-types":"^15.5.0","react":"^16.9.0","react-dom":"^16.9.0","rollup":"^0.68.0","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^9.1.3","rollup-plugin-node-resolve":"^4.0.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-uglify":"^6.0.2","snapshot-diff":"^0.5.2"},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"browserslist":"> 0.25%, not dead","readmeFilename":"README.md","readme":"![React Table Header](https://github.com/tannerlinsley/react-table/raw/master/media/header.png)\n\n<img src='https://github.com/tannerlinsley/react-table/raw/master/media/logo.png' width='300'/>\n\nHooks for building **lightweight, fast and extendable datagrids** for React\n\n<a href=\"https://travis-ci.org/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://travis-ci.org/tannerlinsley/react-table.svg?branch=master\" />\n</a>\n<a href=\"https://npmjs.com/package/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-table.svg\" />\n</a>\n<a href=\"https://spectrum.chat/react-table\">\n  <img alt=\"Join the community on Spectrum\" src=\"https://withspectrum.github.io/badge/badge.svg\" />\n</a>\n<a href=\"https://github.com/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-table.svg?style=social&label=Star\" />\n</a>\n<a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n<br />\n<br />\n<a href=\"https://patreon.com/tannerlinsley\">\n  <img width=\"180\" alt=\"\" src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/become-a-patron.png\" />\n</a>\n\n<br />\n<br />\n\n## Features\n\n- Lightweight (4kb - 10kb depending on features and tree-shaking)\n- Headless (100% customizable, Bring-your-own-UI)\n- Client-side & Server-side pagination support\n- Sorting (Multi and Stable)\n- Filters\n- Pivoting & Aggregation\n- Row Selection\n- Row Expansion\n- Fully controllable\n- Extensible via hook-based plugin system\n- <a href=\"https://medium.com/@tannerlinsley/why-i-wrote-react-table-and-the-problems-it-has-solved-for-nozzle-others-445c4e93d4a8#.axza4ixba\" target=\"\\_parent\">\"Why I wrote React Table and the problems it has solved for Nozzle.io\"</a> by Tanner Linsley\n\n## Documentation\n\n- [Installation](./docs/installation.md) - Walk through how to install React Table\n- [Concepts](./docs/concepts.md) - Read how React Table works and how you can use it better\n- [Examples](./docs/examples.md) - Experience and learn from some examples and guides of how to use React Table and implement common patterns\n- [API](./docs/api.md) - Get to know React Table's API, how to use it and how to extend its functionality\n- [Contributing](./CONTRIBUTING.md) - Become familiar with how to contribute back to React Table\n- [Code of Conduct](./CODE_OF_CONDUCT.md) - Be a good React Table citizen by following these repository rules\n\n## Sponsors\n\n**React Table v7** is being built and maintained by me, @tannerlinsley and I am always in need of more Patreon support to keep this project afloat. If you would like to contribute to my Patreon goal for v7 and beyond, [visit my Patreon and help me out!](https://patreon.com/tannerlinsley)\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/platinum.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://tryretool.com/?utm_source=sponsor&utm_campaign=react_table\" target=\"_blank\">\n          <img width='350' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-retool.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"http://bjntech.com/index.html&utm_campaign=react_table\" target=\"_blank\">\n          <img width='250' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-bjn.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/gold.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://nozzle.io\" target=\"_blank\">\n          <img width='230' src=\"https://nozzle.io/img/logo-blue.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://zappi.io/web/\" target=\"_blank\">\n          <img width='230' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-zappi.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://patreon.com/tannerlinsley\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/supporters.png\" />\n        </a>\n      </td>\n      <td>\n        <div><a href=\"https://www.metso.com/\">Pekka</a></div>\n        <div>Jon Eickmeier</div>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://patreon.com/tannerlinsley\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/fans.png\" />\n        </a>\n      </td>\n      <td>\n        <div>Sortmy.games</div>\n        <div>Hugo Meissner</div>\n        <div>Benoit Leger-Derville</div>\n        <div>Thomas Funk</div>\n        <div>Dan Houle</div>\n        <div>David Pickut</div>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<a href=\"https://patreon.com/tannerlinsley\">\n  <img width=\"150\" alt=\"\" src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/become-a-patron.png\" />\n</a>\n","licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.0-alpha.27","dist":{"shasum":"18ed07c53adf6a43c1fb44f5b0e5b38708dd85ee","integrity":"sha512-O29Ux+inQ3IXzxG8ENYmYtGQFipC8+NwMk+nfqfWjbVqenaHjtD2D0AACIX/Ev/NdgsNf2jeDmYJd2mqxRiAlw==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.0-alpha.27.tgz","fileCount":40,"unpackedSize":466282,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdYAVqCRA9TVsSAnZWagAAlhwP/i27Em1jA6N9AeZBxY8M\n+V568NU2+zc8WW9BF+ihV7JuzMffA4mvUNPfdfl0gP3uLYT+VroQgdWYDtit\nykVz2XBuIBT1gyVuAht5CwvEQ+D901czQ/9dOsZauAXCsSrdLCka6S5EbWRJ\nPtMleqsu0H9JRw5WjBLlArZQO0PfNJz6Zicq/UFEX66m72co+DI73l4czA84\nIAfbhD7K7/MiHUl6VBUKZvWGeFlf4s/fRyjX0OM6qMrfAPEYgvWLq8njO3XI\nl76gRp5W91bvYdgtBv73QyVS+c5nHxfreFrzWTH2QPlhud0CNJC5cxa4UtXg\nz58mv2t3YJW/OJkv9fAs5K1JRUDOzmV9e78k/CWbIXH1sx5OEHmPEfVXnaoz\nU9r0IV4wo+k9jQOWnA1EkLSVdg5yHzf4YNelJzpQgdJDa31/PdbHIqOAN6hR\ntyLETKRiwU0ivlV7V9TJ4kblFC0OO+spSr4u8vZrf2o7As+Me7ZKGcMyPM1r\nkA4tF7tnTzloCEoto+VzNRXt63jSV0yt/0yIGKIZQ5B57hunKa8iRiGUgPRU\nAxwf7tZbC/3Q0/YrISnILiVcPduoAvdBy3KlBTCKMM25UIbqdlS5k2k5Xmld\nowskT1+KTVVPFw8Hnw0u8OPPg6Z0DBWkSkMAGMkZ8BW79uVbucLjVnam9bPr\ntHJT\r\n=ee+P\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCiMj/6nPi9kcLtGGP3R/S9voO1c5jRpjSM742DI1tgSgIgB6QauYUNLB6MT/U41HH/QMugYI7rU7WLJSanS8OnZrE="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.0-alpha.27_1566573929961_0.891030732779311"},"_hasShrinkwrap":false},"7.0.0-alpha.28":{"name":"react-table","version":"7.0.0-alpha.28","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"dist/index.js","module":"dist/index.es.js","jsnext:main":"dist/index.es.js","scripts":{"commit":"git add . && git-cz","test":"is-ci 'test:ci' 'test:dev'","test:dev":"jest --watch","test:ci":"jest","build":"rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier ./src/**/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"prop-types":"^15.5.0","react":"^16.8.3","react-dom":"^16.8.3"},"devDependencies":{"@babel/core":"^7.5.5","@babel/plugin-proposal-class-properties":"^7.5.5","@babel/preset-env":"^7.5.5","@babel/preset-react":"^7.0.0","@babel/runtime":"^7.5.5","@commitlint/cli":"^8.1.0","@commitlint/config-conventional":"^8.1.0","@svgr/rollup":"^4.3.2","@testing-library/dom":"^6.0.0","@testing-library/jest-dom":"^4.0.0","@testing-library/react":"^9.1.1","babel-eslint":"9.x","commitizen":"^4.0.3","core-js":"3.2.1","cross-env":"^5.2.0","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^8.0.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.14.3","eslint-plugin-react-hooks":"1.7.0","eslint-plugin-standard":"^4.0.0","husky":"^3.0.3","is-ci-cli":"^1.1.1","jest":"^24.8.0","jest-cli":"^24.8.0","jest-runner-eslint":"^0.7.4","jest-watch-select-projects":"^0.1.2","jest-watch-typeahead":"^0.3.1","lint-staged":"^9.2.1","prettier":"^1.18.2","prop-types":"^15.5.0","react":"^16.9.0","react-dom":"^16.9.0","rollup":"^0.68.0","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^9.1.3","rollup-plugin-node-resolve":"^4.0.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-uglify":"^6.0.2","snapshot-diff":"^0.5.2"},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"browserslist":"> 0.25%, not dead","readmeFilename":"README.md","readme":"![React Table Header](https://github.com/tannerlinsley/react-table/raw/master/media/header.png)\n\n<img src='https://github.com/tannerlinsley/react-table/raw/master/media/logo.png' width='300'/>\n\nHooks for building **lightweight, fast and extendable datagrids** for React\n\n<a href=\"https://travis-ci.org/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://travis-ci.org/tannerlinsley/react-table.svg?branch=master\" />\n</a>\n<a href=\"https://npmjs.com/package/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-table.svg\" />\n</a>\n<a href=\"https://spectrum.chat/react-table\">\n  <img alt=\"Join the community on Spectrum\" src=\"https://withspectrum.github.io/badge/badge.svg\" />\n</a>\n<a href=\"https://github.com/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-table.svg?style=social&label=Star\" />\n</a>\n<a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n<br />\n<br />\n<a href=\"https://patreon.com/tannerlinsley\">\n  <img width=\"180\" alt=\"\" src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/become-a-patron.png\" />\n</a>\n\n<br />\n<br />\n\n## Features\n\n- Lightweight (4kb - 10kb depending on features and tree-shaking)\n- Headless (100% customizable, Bring-your-own-UI)\n- Client-side & Server-side pagination support\n- Sorting (Multi and Stable)\n- Filters\n- Pivoting & Aggregation\n- Row Selection\n- Row Expansion\n- Fully controllable\n- Extensible via hook-based plugin system\n- <a href=\"https://medium.com/@tannerlinsley/why-i-wrote-react-table-and-the-problems-it-has-solved-for-nozzle-others-445c4e93d4a8#.axza4ixba\" target=\"\\_parent\">\"Why I wrote React Table and the problems it has solved for Nozzle.io\"</a> by Tanner Linsley\n\n## Documentation\n\n- [Installation](./docs/installation.md) - Walk through how to install React Table\n- [Concepts](./docs/concepts.md) - Read how React Table works and how you can use it better\n- [Examples](./docs/examples.md) - Experience and learn from some examples and guides of how to use React Table and implement common patterns\n- [API](./docs/api.md) - Get to know React Table's API, how to use it and how to extend its functionality\n- [Contributing](./CONTRIBUTING.md) - Become familiar with how to contribute back to React Table\n- [Code of Conduct](./CODE_OF_CONDUCT.md) - Be a good React Table citizen by following these repository rules\n\n## Sponsors\n\n**React Table v7** is being built and maintained by me, @tannerlinsley and I am always in need of more Patreon support to keep this project afloat. If you would like to contribute to my Patreon goal for v7 and beyond, [visit my Patreon and help me out!](https://patreon.com/tannerlinsley)\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/platinum.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://tryretool.com/?utm_source=sponsor&utm_campaign=react_table\" target=\"_blank\">\n          <img width='350' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-retool.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"http://bjntech.com/index.html&utm_campaign=react_table\" target=\"_blank\">\n          <img width='250' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-bjn.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/gold.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://nozzle.io\" target=\"_blank\">\n          <img width='230' src=\"https://nozzle.io/img/logo-blue.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://zappi.io/web/\" target=\"_blank\">\n          <img width='230' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-zappi.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://patreon.com/tannerlinsley\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/supporters.png\" />\n        </a>\n      </td>\n      <td>\n        <div><a href=\"https://www.metso.com/\">Pekka</a></div>\n        <div>Jon Eickmeier</div>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://patreon.com/tannerlinsley\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/fans.png\" />\n        </a>\n      </td>\n      <td>\n        <div>Sortmy.games</div>\n        <div>Hugo Meissner</div>\n        <div>Benoit Leger-Derville</div>\n        <div>Thomas Funk</div>\n        <div>Dan Houle</div>\n        <div>David Pickut</div>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<a href=\"https://patreon.com/tannerlinsley\">\n  <img width=\"150\" alt=\"\" src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/become-a-patron.png\" />\n</a>\n","licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.0-alpha.28","dist":{"shasum":"96b9dfbf0cf704a9a2daecb1bd351bf4baadd246","integrity":"sha512-/xIYdMTksHpVWWjTM5ayzIc6eg3jAGw+qGXPqzMfP9orn/E/UmOOGH1Mws5V0o/cdwzxE3jsEG5Ok+cfIgwA5w==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.0-alpha.28.tgz","fileCount":40,"unpackedSize":469980,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdY/p1CRA9TVsSAnZWagAAKkEP/3l2QrJX+mKqp2MFCGdY\nS/gB7pbS8FH7XWPq4eKiSb/nP7eDhaKokphwdsL12y2CLKBfVisoXiNypwzR\nNUf7K/fMYplbaO8HTFPLI+kEyc8ZDsCoOIrPcrIAgH2y2mM9IKTmABKuyuvQ\nnQlXF48KzQD30b6OZrlbEmunte/s1CksgL/FLI0jSBa5CqIe2WG8HiyjPy0F\nLAp2O1yC8FeAgy0qDOv2IUBQ2B51zfSwL5qZqxo3G3VwBwqTR1JcTiGN+zhZ\nRB+qvKcxLwKlH7UnQQtH2ztVEaBdAAk2jUXqM0587BOZqX1pl9bKmFKvFM2l\nIaOpiGp87kpBknM9W1J9HV7B1gI/f5P84N7ESUNIOC0KVaAJrmN9Kze5qtKg\nn/6BnN/sIsOvI+5VnjXJSM6IbJIWuY2GgWGolJlDnPfkceSkxkbr7Za0/Dbg\nJk3ilNi0de/797ZiyS7p2TawLl0W/VT9a7OFW6hAvEll5WVnyhoVTycUWARa\nQOrMjChOC991U2XZdeUnwxdX+JIVvJFnauAuPdSzhZQ5rcI/0BKSKTCSZ6yB\nBwKL6L0+0HrrCuk8XFkISesOrLV5isk8v862NzU7xQVakxoPf9GU4b/cCTll\n0xSQjuteOtVgKs/DkwfXDrKKJWkascp6QfELJ+85HaI8C+7Q3Sin4pqVNQpz\nka5L\r\n=5nXr\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHAnPnO8koyPZRqXDODcQupshie+kOAwz26+lybSVBoTAiAGpxwgzjnTzqyQCdXkAWJFVIdzlNBMpG0E7Jo5aAFJww=="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.0-alpha.28_1566833268247_0.8521495046460361"},"_hasShrinkwrap":false},"7.0.0-alpha.29":{"name":"react-table","version":"7.0.0-alpha.29","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"dist/index.js","module":"dist/index.es.js","jsnext:main":"dist/index.es.js","scripts":{"commit":"git add . && git-cz","test":"is-ci 'test:ci' 'test:dev'","test:dev":"jest --watch","test:ci":"jest","build":"rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier ./src/**/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"prop-types":"^15.5.0","react":"^16.8.3","react-dom":"^16.8.3"},"devDependencies":{"@babel/core":"^7.5.5","@babel/plugin-proposal-class-properties":"^7.5.5","@babel/preset-env":"^7.5.5","@babel/preset-react":"^7.0.0","@babel/runtime":"^7.5.5","@commitlint/cli":"^8.1.0","@commitlint/config-conventional":"^8.1.0","@svgr/rollup":"^4.3.2","@testing-library/dom":"^6.0.0","@testing-library/jest-dom":"^4.0.0","@testing-library/react":"^9.1.1","babel-eslint":"9.x","commitizen":"^4.0.3","core-js":"3.2.1","cross-env":"^5.2.0","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^8.0.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.14.3","eslint-plugin-react-hooks":"1.7.0","eslint-plugin-standard":"^4.0.0","husky":"^3.0.3","is-ci-cli":"^1.1.1","jest":"^24.8.0","jest-cli":"^24.8.0","jest-runner-eslint":"^0.7.4","jest-watch-select-projects":"^0.1.2","jest-watch-typeahead":"^0.3.1","lint-staged":"^9.2.1","prettier":"^1.18.2","prop-types":"^15.5.0","react":"^16.9.0","react-dom":"^16.9.0","rollup":"^0.68.0","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^9.1.3","rollup-plugin-node-resolve":"^4.0.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-uglify":"^6.0.2","snapshot-diff":"^0.5.2"},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"browserslist":"> 0.25%, not dead","readmeFilename":"README.md","readme":"![React Table Header](https://github.com/tannerlinsley/react-table/raw/master/media/header.png)\n\n<img src='https://github.com/tannerlinsley/react-table/raw/master/media/logo.png' width='300'/>\n\nHooks for building **lightweight, fast and extendable datagrids** for React\n\n<a href=\"https://travis-ci.org/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://travis-ci.org/tannerlinsley/react-table.svg?branch=master\" />\n</a>\n<a href=\"https://npmjs.com/package/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-table.svg\" />\n</a>\n<a href=\"https://spectrum.chat/react-table\">\n  <img alt=\"Join the community on Spectrum\" src=\"https://withspectrum.github.io/badge/badge.svg\" />\n</a>\n<a href=\"https://github.com/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-table.svg?style=social&label=Star\" />\n</a>\n<a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n<br />\n<br />\n<a href=\"https://patreon.com/tannerlinsley\">\n  <img width=\"180\" alt=\"\" src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/become-a-patron.png\" />\n</a>\n\n<br />\n<br />\n\n## Features\n\n- Lightweight (4kb - 10kb depending on features and tree-shaking)\n- Headless (100% customizable, Bring-your-own-UI)\n- Client-side & Server-side pagination support\n- Sorting (Multi and Stable)\n- Filters\n- Pivoting & Aggregation\n- Row Selection\n- Row Expansion\n- Fully controllable\n- Extensible via hook-based plugin system\n- <a href=\"https://medium.com/@tannerlinsley/why-i-wrote-react-table-and-the-problems-it-has-solved-for-nozzle-others-445c4e93d4a8#.axza4ixba\" target=\"\\_parent\">\"Why I wrote React Table and the problems it has solved for Nozzle.io\"</a> by Tanner Linsley\n\n## Documentation\n\n- [Installation](./docs/installation.md) - Walk through how to install React Table\n- [Concepts](./docs/concepts.md) - Read how React Table works and how you can use it better\n- [Examples](./docs/examples.md) - Experience and learn from some examples and guides of how to use React Table and implement common patterns\n- [API](./docs/api.md) - Get to know React Table's API, how to use it and how to extend its functionality\n- [Contributing](./CONTRIBUTING.md) - Become familiar with how to contribute back to React Table\n- [Code of Conduct](./CODE_OF_CONDUCT.md) - Be a good React Table citizen by following these repository rules\n\n## Sponsors\n\n**React Table v7** is being built and maintained by me, @tannerlinsley and I am always in need of more Patreon support to keep this project afloat. If you would like to contribute to my Patreon goal for v7 and beyond, [visit my Patreon and help me out!](https://patreon.com/tannerlinsley)\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/platinum.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://tryretool.com/?utm_source=sponsor&utm_campaign=react_table\" target=\"_blank\">\n          <img width='350' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-retool.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"http://bjntech.com/index.html&utm_campaign=react_table\" target=\"_blank\">\n          <img width='250' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-bjn.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/gold.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://nozzle.io\" target=\"_blank\">\n          <img width='230' src=\"https://nozzle.io/img/logo-blue.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://zappi.io/web/\" target=\"_blank\">\n          <img width='230' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-zappi.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://patreon.com/tannerlinsley\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/supporters.png\" />\n        </a>\n      </td>\n      <td>\n        <div><a href=\"https://www.metso.com/\">Pekka</a></div>\n        <div>Jon Eickmeier</div>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://patreon.com/tannerlinsley\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/fans.png\" />\n        </a>\n      </td>\n      <td>\n        <div>Sortmy.games</div>\n        <div>Hugo Meissner</div>\n        <div>Benoit Leger-Derville</div>\n        <div>Thomas Funk</div>\n        <div>Dan Houle</div>\n        <div>David Pickut</div>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<a href=\"https://patreon.com/tannerlinsley\">\n  <img width=\"150\" alt=\"\" src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/become-a-patron.png\" />\n</a>\n","licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.0-alpha.29","dist":{"shasum":"d507ba67c6b0136e2c2a4c5ef2f18a753facca23","integrity":"sha512-WVPq88VoWATNyk6AMo8M9yKY4DY8vAnXg02Tgzr/+iUmVq2+N7QowJaF50x5XcducxebPP6F64LW0MlD1kopIg==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.0-alpha.29.tgz","fileCount":40,"unpackedSize":469828,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdY/0JCRA9TVsSAnZWagAAxSwP/1IN2/3Q/hHT/wHLgKmU\n3bgBDryWlImg+R+W0QbtU/mDKn/pxVrFuHUBjquGm3hOBsoDpVOwiSZMiCjo\nntNCa/cqVHbbBhGw2lTBXPTsn7w2dexnnRjL08Gec5pcgGva2of/eGJ+kdQJ\nrJ6AqsHh4gRqvL63N+TWtyxIB5zAyXI88z+GPv1AjIM80Gx4zQQ+VAssI76d\nuAp4bbmTnKDrK05YiPqwXiNXyDVsmuEP+gTv4CBtAF/tAIGoB/d7zmvGjDsr\nFTGqA26QveKu6DwOymtKEkwq0WoJPDlIz4/gaOalwS31vpQXC8/K7jQMjDZp\ntqSxpi8rZe0UNjppIjPxzmWPMH0RwLxeEebeVx1577Xl5iKUxdlUVuT8o2uY\nTNXwo0CtaSUc+sTlUQy7adHwwk1qU4wag17FpzCkhrODSfHxh2Wsq6QSzAs3\n8+LAEyiEmCcyJC7HRm3odaSB1zVE5Ihj76tnve8N3BjeASKG6kd/5g45i2ks\nFWbJdlyVfnuRjCqZ0oApI6nfVp/pu4r21ZZgHsftZErgRrgkIc+TUslvhHgL\n2IITrZGAiZetoFbB6EPNTyhKxmK4i4smSVDMOzPTQrjIE8k2FGQ0ZgRflQg/\nLRnY+FuWBujuKWgyaUfmdHGapg3/C8t9hYRt8iJC1xJP0zPKArD5o5Fvwcj7\nMUP0\r\n=9q9A\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIH/Pap8biyniQ03AtaNg9LTOclMisZoRLKxGIWd05pPnAiBpQcOBUD2B1S+pXQ4wySbtBKGlRbLoUcX+a1UZxgps4Q=="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.0-alpha.29_1566833929284_0.8296548986429659"},"_hasShrinkwrap":false},"7.0.0-alpha.30":{"name":"react-table","version":"7.0.0-alpha.30","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"dist/index.js","module":"dist/index.es.js","jsnext:main":"dist/index.es.js","scripts":{"commit":"git add . && git-cz","test":"is-ci 'test:ci' 'test:dev'","test:dev":"jest --watch","test:ci":"jest","build":"rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier ./src/**/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"prop-types":"^15.5.0","react":"^16.8.3","react-dom":"^16.8.3"},"devDependencies":{"@babel/core":"^7.5.5","@babel/plugin-proposal-class-properties":"^7.5.5","@babel/preset-env":"^7.5.5","@babel/preset-react":"^7.0.0","@babel/runtime":"^7.5.5","@commitlint/cli":"^8.1.0","@commitlint/config-conventional":"^8.1.0","@svgr/rollup":"^4.3.2","@testing-library/dom":"^6.0.0","@testing-library/jest-dom":"^4.0.0","@testing-library/react":"^9.1.1","babel-eslint":"9.x","commitizen":"^4.0.3","core-js":"3.2.1","cross-env":"^5.2.0","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^8.0.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.14.3","eslint-plugin-react-hooks":"1.7.0","eslint-plugin-standard":"^4.0.0","husky":"^3.0.3","is-ci-cli":"^1.1.1","jest":"^24.8.0","jest-cli":"^24.8.0","jest-runner-eslint":"^0.7.4","jest-watch-select-projects":"^0.1.2","jest-watch-typeahead":"^0.3.1","lint-staged":"^9.2.1","prettier":"^1.18.2","prop-types":"^15.5.0","react":"^16.9.0","react-dom":"^16.9.0","rollup":"^0.68.0","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^9.1.3","rollup-plugin-node-resolve":"^4.0.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-uglify":"^6.0.2","snapshot-diff":"^0.5.2"},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"browserslist":"> 0.25%, not dead","readmeFilename":"README.md","readme":"![React Table Header](https://github.com/tannerlinsley/react-table/raw/master/media/header.png)\n\n<img src='https://github.com/tannerlinsley/react-table/raw/master/media/logo.png' width='300'/>\n\nHooks for building **lightweight, fast and extendable datagrids** for React\n\n<a href=\"https://travis-ci.org/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://travis-ci.org/tannerlinsley/react-table.svg?branch=master\" />\n</a>\n<a href=\"https://npmjs.com/package/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-table.svg\" />\n</a>\n<a href=\"https://spectrum.chat/react-table\">\n  <img alt=\"Join the community on Spectrum\" src=\"https://withspectrum.github.io/badge/badge.svg\" />\n</a>\n<a href=\"https://github.com/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-table.svg?style=social&label=Star\" />\n</a>\n<a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n<br />\n<br />\n<a href=\"https://patreon.com/tannerlinsley\">\n  <img width=\"180\" alt=\"\" src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/become-a-patron.png\" />\n</a>\n\n<br />\n<br />\n\n## Features\n\n- Lightweight (4kb - 10kb depending on features and tree-shaking)\n- Headless (100% customizable, Bring-your-own-UI)\n- Client-side & Server-side pagination support\n- Sorting (Multi and Stable)\n- Filters\n- Pivoting & Aggregation\n- Row Selection\n- Row Expansion\n- Fully controllable\n- Extensible via hook-based plugin system\n- <a href=\"https://medium.com/@tannerlinsley/why-i-wrote-react-table-and-the-problems-it-has-solved-for-nozzle-others-445c4e93d4a8#.axza4ixba\" target=\"\\_parent\">\"Why I wrote React Table and the problems it has solved for Nozzle.io\"</a> by Tanner Linsley\n\n## Documentation\n\n- [Installation](./docs/installation.md) - Walk through how to install React Table\n- [Concepts](./docs/concepts.md) - Read how React Table works and how you can use it better\n- [Examples](./docs/examples.md) - Experience and learn from some examples and guides of how to use React Table and implement common patterns\n- [API](./docs/api.md) - Get to know React Table's API, how to use it and how to extend its functionality\n- [Contributing](./CONTRIBUTING.md) - Become familiar with how to contribute back to React Table\n- [Code of Conduct](./CODE_OF_CONDUCT.md) - Be a good React Table citizen by following these repository rules\n\n## Sponsors\n\n**React Table v7** is being built and maintained by me, @tannerlinsley and I am always in need of more Patreon support to keep this project afloat. If you would like to contribute to my Patreon goal for v7 and beyond, [visit my Patreon and help me out!](https://patreon.com/tannerlinsley)\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/platinum.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://tryretool.com/?utm_source=sponsor&utm_campaign=react_table\" target=\"_blank\">\n          <img width='350' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-retool.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"http://bjntech.com/index.html&utm_campaign=react_table\" target=\"_blank\">\n          <img width='250' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-bjn.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/gold.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://nozzle.io\" target=\"_blank\">\n          <img width='230' src=\"https://nozzle.io/img/logo-blue.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://zappi.io/web/\" target=\"_blank\">\n          <img width='230' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-zappi.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://patreon.com/tannerlinsley\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/supporters.png\" />\n        </a>\n      </td>\n      <td>\n        <div><a href=\"https://www.metso.com/\">Pekka</a></div>\n        <div>Jon Eickmeier</div>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://patreon.com/tannerlinsley\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/fans.png\" />\n        </a>\n      </td>\n      <td>\n        <div>Sortmy.games</div>\n        <div>Hugo Meissner</div>\n        <div>Benoit Leger-Derville</div>\n        <div>Thomas Funk</div>\n        <div>Dan Houle</div>\n        <div>David Pickut</div>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<a href=\"https://patreon.com/tannerlinsley\">\n  <img width=\"150\" alt=\"\" src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/become-a-patron.png\" />\n</a>\n","licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.0-alpha.30","dist":{"shasum":"f15928769d1796c584897cd46d21c90d24706eea","integrity":"sha512-CsrqMTyFlIx50usDuiCXO0oAeIgwZ/rWamOPinSckoCbDH5CGo3LQOlZAFfZSDU+13F8lRa/C1znnK+mKaoWVw==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.0-alpha.30.tgz","fileCount":40,"unpackedSize":471152,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdZSykCRA9TVsSAnZWagAA7tkQAKI/uTmPQHt4Hu9FnBsX\nu1Jhe1VydMwQ7izIO74Ndu8MY2HyYrrWmRoOKbYmu4KfDgO8GshuBsIGjFBn\nPpPtNEE42YGYqFPbsFicWc9s93oIr/mNyh0FD/QJUN93TQVvnltiwZuY/8cL\nNJRbMjT+4snLYHXXJiQAzu2ejyrl88w5QKCju6LtQNhRImFAjjQ2MBWfRMcC\ngRZ6syVp3xxiDaqLnuNINPtinK5q3QZnrD5kky0nf0lkypfPhPXDKcq5fr2d\nNTPkebMYmx/kQ9TCSH79iN1A3qpeGSkWcrVqQsZmUIwAl7K4QsCB0ByWYSRz\nO3a4B+29RlxQJPEN92Bt8hsO8olWghHyNRReGWmTooiPZQdGNBKnUDwx10bX\n2G+tWOLlifs2WGWv9loLlH/coawnCr73sRYCbOxwv8UzIU5k6twEXFtPcE26\n/oukzeobCCfqzUKd7xw+rUGr+Y2kC4S8qitX4kGWRNwDhkLOGckOMIE7/odA\n7/dAjBnqX6GCwIgb4Wux1bNfvGfQtkblxYl0rroSdCNnX6a5AM9LeYYycbIa\nYWa4+rkPxyLJqhxuXeSOH4ORwtuk4ub16j7vo49L2GNtlB+xq+ctaoZWxq++\nuKPD+SlUC3VyYfgGLMJS39wwG9PDNUK/PQF5nZA1FVY42uYtlcuggv31x3BA\nX+yB\r\n=2w44\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICrASlIHjhBtvkzU5/fGIQ1shuv/bSXFL1KItBD8pnOhAiEAoZ6EjamYAfmRquJZHroL/REKJ+spPlP5fx9l8uxYccM="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.0-alpha.30_1566911651409_0.7961139541032729"},"_hasShrinkwrap":false},"7.0.0-alpha.31":{"name":"react-table","version":"7.0.0-alpha.31","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"dist/index.js","module":"dist/index.es.js","jsnext:main":"dist/index.es.js","scripts":{"commit":"git add . && git-cz","test":"is-ci 'test:ci' 'test:dev'","test:dev":"jest --watch","test:ci":"jest","build":"rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier ./src/**/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"prop-types":"^15.5.0","react":"^16.8.3","react-dom":"^16.8.3"},"devDependencies":{"@babel/core":"^7.5.5","@babel/plugin-proposal-class-properties":"^7.5.5","@babel/preset-env":"^7.5.5","@babel/preset-react":"^7.0.0","@babel/runtime":"^7.5.5","@commitlint/cli":"^8.1.0","@commitlint/config-conventional":"^8.1.0","@svgr/rollup":"^4.3.2","@testing-library/dom":"^6.0.0","@testing-library/jest-dom":"^4.0.0","@testing-library/react":"^9.1.1","babel-eslint":"9.x","commitizen":"^4.0.3","core-js":"3.2.1","cross-env":"^5.2.0","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^8.0.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.14.3","eslint-plugin-react-hooks":"1.7.0","eslint-plugin-standard":"^4.0.0","husky":"^3.0.3","is-ci-cli":"^1.1.1","jest":"^24.8.0","jest-cli":"^24.8.0","jest-runner-eslint":"^0.7.4","jest-watch-select-projects":"^0.1.2","jest-watch-typeahead":"^0.3.1","lint-staged":"^9.2.1","prettier":"^1.18.2","prop-types":"^15.5.0","react":"^16.9.0","react-dom":"^16.9.0","rollup":"^0.68.0","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^9.1.3","rollup-plugin-node-resolve":"^4.0.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-uglify":"^6.0.2","snapshot-diff":"^0.5.2"},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"browserslist":"> 0.25%, not dead","readmeFilename":"README.md","readme":"![React Table Header](https://github.com/tannerlinsley/react-table/raw/master/media/header.png)\n\n<img src='https://github.com/tannerlinsley/react-table/raw/master/media/logo.png' width='300'/>\n\nHooks for building **lightweight, fast and extendable datagrids** for React\n\n<a href=\"https://travis-ci.org/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://travis-ci.org/tannerlinsley/react-table.svg?branch=master\" />\n</a>\n<a href=\"https://npmjs.com/package/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-table.svg\" />\n</a>\n<a href=\"https://spectrum.chat/react-table\">\n  <img alt=\"Join the community on Spectrum\" src=\"https://withspectrum.github.io/badge/badge.svg\" />\n</a>\n<a href=\"https://github.com/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-table.svg?style=social&label=Star\" />\n</a>\n<a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n<br />\n<br />\n<a href=\"https://patreon.com/tannerlinsley\">\n  <img width=\"180\" alt=\"\" src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/become-a-patron.png\" />\n</a>\n\n<br />\n<br />\n\n## Features\n\n- Lightweight (4kb - 10kb depending on features and tree-shaking)\n- Headless (100% customizable, Bring-your-own-UI)\n- Client-side & Server-side pagination support\n- Sorting (Multi and Stable)\n- Filters\n- Pivoting & Aggregation\n- Row Selection\n- Row Expansion\n- Fully controllable\n- Extensible via hook-based plugin system\n- <a href=\"https://medium.com/@tannerlinsley/why-i-wrote-react-table-and-the-problems-it-has-solved-for-nozzle-others-445c4e93d4a8#.axza4ixba\" target=\"\\_parent\">\"Why I wrote React Table and the problems it has solved for Nozzle.io\"</a> by Tanner Linsley\n\n## Documentation\n\n- [Installation](./docs/installation.md) - Walk through how to install React Table\n- [Concepts](./docs/concepts.md) - Read how React Table works and how you can use it better\n- [Examples](./docs/examples.md) - Experience and learn from some examples and guides of how to use React Table and implement common patterns\n- [API](./docs/api.md) - Get to know React Table's API, how to use it and how to extend its functionality\n- [Contributing](./CONTRIBUTING.md) - Become familiar with how to contribute back to React Table\n- [Code of Conduct](./CODE_OF_CONDUCT.md) - Be a good React Table citizen by following these repository rules\n\n## Sponsors\n\n**React Table v7** is being built and maintained by me, @tannerlinsley and I am always in need of more Patreon support to keep this project afloat. If you would like to contribute to my Patreon goal for v7 and beyond, [visit my Patreon and help me out!](https://patreon.com/tannerlinsley)\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/platinum.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://tryretool.com/?utm_source=sponsor&utm_campaign=react_table\" target=\"_blank\">\n          <img width='350' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-retool.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"http://bjntech.com/index.html&utm_campaign=react_table\" target=\"_blank\">\n          <img width='250' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-bjn.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/gold.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://nozzle.io\" target=\"_blank\">\n          <img width='230' src=\"https://nozzle.io/img/logo-blue.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://zappi.io/web/\" target=\"_blank\">\n          <img width='230' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-zappi.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://patreon.com/tannerlinsley\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/supporters.png\" />\n        </a>\n      </td>\n      <td>\n        <div><a href=\"https://www.metso.com/\">Pekka</a></div>\n        <div>Jon Eickmeier</div>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://patreon.com/tannerlinsley\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/fans.png\" />\n        </a>\n      </td>\n      <td>\n        <div>Sortmy.games</div>\n        <div>Hugo Meissner</div>\n        <div>Benoit Leger-Derville</div>\n        <div>Thomas Funk</div>\n        <div>Dan Houle</div>\n        <div>David Pickut</div>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<a href=\"https://patreon.com/tannerlinsley\">\n  <img width=\"150\" alt=\"\" src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/become-a-patron.png\" />\n</a>\n","licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.0-alpha.31","dist":{"shasum":"2112ae9a2832494aecebbead2c3cfc496b6bf318","integrity":"sha512-AMliKOOt9poVnke5mcOjfHU72cHw8aZlimBdw881eHhcsxqaVDJ/JDDq/93qvhsVqTM05iGAB3Rp1YBVrEr4ew==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.0-alpha.31.tgz","fileCount":41,"unpackedSize":483789,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdZVOkCRA9TVsSAnZWagAAQJsP/0rAjdZ7jbxqoMx+8clh\n4z4SiaQ/vtY2iaoBU0u3c/vB8rphZlLjFQ9ywMAp7RwdNfFaZjGjCIiBo7rz\nEv2OuSzyY4aeaqx/UbiryXDKKsKivBBjkHTxhRlCq17xLVxNLsfYiMv/uI+T\nqtii7M5sAXtq7Uy9GQEfSkhjar1V1ejsAwSf7qGdoiLHXiS+hEAIIdSpv4bN\nn7sS9a279+oC6GMRQ22u+qEk6h+vKQYLddp1on4FnYIk1IW18b7RLi5Lke+/\nvicJKlR5/ixtEgn3UcsaQrtZGJoSCrz44Hb/yBCjht47as7WFaYRinXVoacy\nxMQqVII9tSNnh3uvqbHPNnkPfsMFtIucYRsqDKAaY69THb3V1EnC0KLOQyz0\nZ8t4gT06paWPuDiVW3+ArXD0KmNA8XjtsTKtgsEYWX20vSBZq4RPtDvaPHJD\njWNjP4RqhgGFM4Qp4V/4ame1uNbHdTylahRklWVG4mYW+vDndSc1peP+cTS6\ntlMY2Wjlh2B4laQ8KMeqnkwb9jgFvlNZjdBpd3ZOktgAfVXxr1FssEo/EdZQ\nQJrcMg6E1zS/hdc6jS1Ggl54d8DXrHQbH7bDZlfWFTG3Z4GrVlB15VRK+Wy5\n+1fghx8W3IHtJT1M36qtlG8onQeHWhY/+b50cDrF9G8UgqhgKgsPUG6/B8v4\n6qPT\r\n=B4bM\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFgU6sBjljKvuL2rBu5f/oDXwctcekEKO0UVT1LqmyHnAiEAxfEL/jMP7/05F3uy5Ir09q4xs8sGT0YviKTce2GPu1o="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.0-alpha.31_1566921635824_0.8104140051768944"},"_hasShrinkwrap":false},"7.0.0-alpha.32":{"name":"react-table","version":"7.0.0-alpha.32","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"dist/index.js","module":"dist/index.es.js","jsnext:main":"dist/index.es.js","scripts":{"commit":"git add . && git-cz","test":"is-ci 'test:ci' 'test:dev'","test:dev":"jest --watch","test:ci":"jest","build":"rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier ./src/**/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"prop-types":"^15.5.0","react":"^16.8.3","react-dom":"^16.8.3"},"devDependencies":{"@babel/core":"^7.5.5","@babel/plugin-proposal-class-properties":"^7.5.5","@babel/preset-env":"^7.5.5","@babel/preset-react":"^7.0.0","@babel/runtime":"^7.5.5","@commitlint/cli":"^8.1.0","@commitlint/config-conventional":"^8.1.0","@svgr/rollup":"^4.3.2","@testing-library/dom":"^6.0.0","@testing-library/jest-dom":"^4.0.0","@testing-library/react":"^9.1.1","babel-eslint":"9.x","commitizen":"^4.0.3","core-js":"3.2.1","cross-env":"^5.2.0","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^8.0.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.14.3","eslint-plugin-react-hooks":"1.7.0","eslint-plugin-standard":"^4.0.0","husky":"^3.0.3","is-ci-cli":"^1.1.1","jest":"^24.8.0","jest-cli":"^24.8.0","jest-runner-eslint":"^0.7.4","jest-watch-select-projects":"^0.1.2","jest-watch-typeahead":"^0.3.1","lint-staged":"^9.2.1","prettier":"^1.18.2","prop-types":"^15.5.0","react":"^16.9.0","react-dom":"^16.9.0","rollup":"^0.68.0","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^9.1.3","rollup-plugin-node-resolve":"^4.0.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-uglify":"^6.0.2","snapshot-diff":"^0.5.2"},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"browserslist":"> 0.25%, not dead","readmeFilename":"README.md","readme":"![React Table Header](https://github.com/tannerlinsley/react-table/raw/master/media/header.png)\n\n<img src='https://github.com/tannerlinsley/react-table/raw/master/media/logo.png' width='300'/>\n\nHooks for building **lightweight, fast and extendable datagrids** for React\n\n<a href=\"https://travis-ci.org/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://travis-ci.org/tannerlinsley/react-table.svg?branch=master\" />\n</a>\n<a href=\"https://npmjs.com/package/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-table.svg\" />\n</a>\n<a href=\"https://spectrum.chat/react-table\">\n  <img alt=\"Join the community on Spectrum\" src=\"https://withspectrum.github.io/badge/badge.svg\" />\n</a>\n<a href=\"https://github.com/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-table.svg?style=social&label=Star\" />\n</a>\n<a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n<br />\n<br />\n<a href=\"https://patreon.com/tannerlinsley\">\n  <img width=\"180\" alt=\"\" src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/become-a-patron.png\" />\n</a>\n\n<br />\n<br />\n\n## Features\n\n- Lightweight (4kb - 11kb depending on features and tree-shaking)\n- Headless (100% customizable, Bring-your-own-UI)\n- Auto out of the box, fully controllable API\n- Sorting (Multi and Stable)\n- Filters\n- Pivoting & Aggregation\n- Row Selection\n- Row Expansion\n- Column Ordering\n- Animatable\n- Server-side/controlled data/state\n- Extensible via hook-based plugin system\n- <a href=\"https://medium.com/@tannerlinsley/why-i-wrote-react-table-and-the-problems-it-has-solved-for-nozzle-others-445c4e93d4a8#.axza4ixba\" target=\"\\_parent\">\"Why I wrote React Table and the problems it has solved for Nozzle.io\"</a> by Tanner Linsley\n\n## Documentation\n\n- [Installation](./docs/installation.md) - Walk through how to install React Table\n- [Concepts](./docs/concepts.md) - Read how React Table works and how you can use it better\n- [Examples](./docs/examples.md) - Experience and learn from some examples and guides of how to use React Table and implement common patterns\n- [API](./docs/api.md) - Get to know React Table's API, how to use it and how to extend its functionality\n- [Contributing](./CONTRIBUTING.md) - Become familiar with how to contribute back to React Table\n- [Code of Conduct](./CODE_OF_CONDUCT.md) - Be a good React Table citizen by following these repository rules\n\n## Sponsors\n\n**React Table v7** is being built and maintained by me, @tannerlinsley and I am always in need of more Patreon support to keep this project afloat. If you would like to contribute to my Patreon goal for v7 and beyond, [visit my Patreon and help me out!](https://patreon.com/tannerlinsley)\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/platinum.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://tryretool.com/?utm_source=sponsor&utm_campaign=react_table\" target=\"_blank\">\n          <img width='350' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-retool.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"http://bjntech.com/index.html&utm_campaign=react_table\" target=\"_blank\">\n          <img width='250' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-bjn.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/gold.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://nozzle.io\" target=\"_blank\">\n          <img width='230' src=\"https://nozzle.io/img/logo-blue.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://zappi.io/web/\" target=\"_blank\">\n          <img width='230' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-zappi.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://patreon.com/tannerlinsley\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/supporters.png\" />\n        </a>\n      </td>\n      <td>\n        <div><a href=\"https://www.metso.com/\">Pekka</a></div>\n        <div>Jon Eickmeier</div>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://patreon.com/tannerlinsley\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/fans.png\" />\n        </a>\n      </td>\n      <td>\n        <div>Sortmy.games</div>\n        <div>Hugo Meissner</div>\n        <div>Benoit Leger-Derville</div>\n        <div>Thomas Funk</div>\n        <div>Dan Houle</div>\n        <div>David Pickut</div>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<a href=\"https://patreon.com/tannerlinsley\">\n  <img width=\"150\" alt=\"\" src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/become-a-patron.png\" />\n</a>\n","licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.0-alpha.32","dist":{"shasum":"af0d103649c7949d2934e292ca2b6d3380ccaf3e","integrity":"sha512-Rl1T0Y48U2ViklXGMw0w5uO9NPQjMBMzDlx/RpW/czb20G6Tpdys+ZiExPp9XVeBtckrFl0lrxBStII4NZiaHQ==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.0-alpha.32.tgz","fileCount":41,"unpackedSize":485364,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdZrEjCRA9TVsSAnZWagAA+o0P/iMjOCTs8+w/bPwFP6BJ\neTc4qlvqt8V3UCaPn9qNC8FvcMawFWivRycWjOz9kELfXQnTJJ2I3LFClyk/\nxxrZOAjltXDLg780fdIFD77hz0JnqnSL7IEDUUCB91XrH3YsLcmzD25B4QWT\nZNj1XQOoI6iP8fKkPz8uD6pYmpDwNkgVx53n7QMMgq5YVc0va1WrENJOshoT\nkimN9M5K82gzlksJH2Z6q4fXq9zBZfsVXVLgkAGuJn81Hm2rgpOq8ggu8RGl\nMEjpbyyTAythGb4t1fS7qi4032FU363xyd4X48VhuFnxpOCGY1YHGBdAbAY9\nPBVQobSjRH9/z3XScITMM+ikvEGIJbnTVjYn0JfEg1Vgh49Z7v0kkqBmNQ9b\n6yO/YopY0lbe7+xsPVeiC8C0qOUsxwtfT7dsJPS7lrSwdbTiz07YkTo8e9fi\n7PDHVpDRoNTcxpasvnd65yyc/xSD6UfYywMeSiRIBlO87S2o57qDo3PAyByY\nWY2kI3bD6u7ZixESB3Aptv9+ebWcSnGQAIPwsUIgm7Nz7i29W5jNyon7lvp7\nEPJvb2Dt2vTo3XXzPTwPl872qR30vYr69Q4jiWW2wBsQvl2+uW3sWjAsyUPF\nPlDJYXDCpm4D0Z5P/q+cPmuDvUAQW7Y12CL2WqALnlU2T3Zh8v8Ep/p+RXy2\nRb5O\r\n=XWZr\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC+xZ0+rnNvTazUwMhxm7xG0KV8EfwfACBN49LPxBM0TAIgKEeUYw7gjjKBXWBOLVrABoxT1EZbY80Ok1trF+InI/s="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.0-alpha.32_1567011106413_0.07603060829920971"},"_hasShrinkwrap":false},"7.0.0-alpha.33":{"name":"react-table","version":"7.0.0-alpha.33","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"dist/index.js","module":"dist/index.es.js","jsnext:main":"dist/index.es.js","scripts":{"commit":"git add . && git-cz","test":"is-ci 'test:ci' 'test:dev'","test:dev":"jest --watch","test:ci":"jest","build":"rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier ./src/**/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"prop-types":"^15.5.0","react":"^16.8.3","react-dom":"^16.8.3"},"devDependencies":{"@babel/core":"^7.5.5","@babel/plugin-proposal-class-properties":"^7.5.5","@babel/preset-env":"^7.5.5","@babel/preset-react":"^7.0.0","@babel/runtime":"^7.5.5","@commitlint/cli":"^8.1.0","@commitlint/config-conventional":"^8.1.0","@svgr/rollup":"^4.3.2","@testing-library/dom":"^6.0.0","@testing-library/jest-dom":"^4.0.0","@testing-library/react":"^9.1.1","babel-eslint":"9.x","commitizen":"^4.0.3","core-js":"3.2.1","cross-env":"^5.2.0","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^8.0.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.14.3","eslint-plugin-react-hooks":"1.7.0","eslint-plugin-standard":"^4.0.0","husky":"^3.0.3","is-ci-cli":"^1.1.1","jest":"^24.8.0","jest-cli":"^24.8.0","jest-runner-eslint":"^0.7.4","jest-watch-select-projects":"^0.1.2","jest-watch-typeahead":"^0.3.1","lint-staged":"^9.2.1","prettier":"^1.18.2","prop-types":"^15.5.0","react":"^16.9.0","react-dom":"^16.9.0","rollup":"^0.68.0","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^9.1.3","rollup-plugin-node-resolve":"^4.0.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-uglify":"^6.0.2","snapshot-diff":"^0.5.2"},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"browserslist":"> 0.25%, not dead","readmeFilename":"README.md","readme":"![React Table Header](https://github.com/tannerlinsley/react-table/raw/master/media/header.png)\n\n<img src='https://github.com/tannerlinsley/react-table/raw/master/media/logo.png' width='300'/>\n\nHooks for building **lightweight, fast and extendable datagrids** for React\n\n<a href=\"https://travis-ci.org/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://travis-ci.org/tannerlinsley/react-table.svg?branch=master\" />\n</a>\n<a href=\"https://npmjs.com/package/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-table.svg\" />\n</a>\n<a href=\"https://spectrum.chat/react-table\">\n  <img alt=\"Join the community on Spectrum\" src=\"https://withspectrum.github.io/badge/badge.svg\" />\n</a>\n<a href=\"https://github.com/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-table.svg?style=social&label=Star\" />\n</a>\n<a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n<br />\n<br />\n<a href=\"https://patreon.com/tannerlinsley\">\n  <img width=\"180\" alt=\"\" src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/become-a-patron.png\" />\n</a>\n\n<br />\n<br />\n\n## Features\n\n- Lightweight (4kb - 11kb depending on features and tree-shaking)\n- Headless (100% customizable, Bring-your-own-UI)\n- Auto out of the box, fully controllable API\n- Sorting (Multi and Stable)\n- Filters\n- Pivoting & Aggregation\n- Row Selection\n- Row Expansion\n- Column Ordering\n- Animatable\n- Server-side/controlled data/state\n- Extensible via hook-based plugin system\n- <a href=\"https://medium.com/@tannerlinsley/why-i-wrote-react-table-and-the-problems-it-has-solved-for-nozzle-others-445c4e93d4a8#.axza4ixba\" target=\"\\_parent\">\"Why I wrote React Table and the problems it has solved for Nozzle.io\"</a> by Tanner Linsley\n\n## Documentation\n\n- [Installation](./docs/installation.md) - Walk through how to install React Table\n- [Concepts](./docs/concepts.md) - Read how React Table works and how you can use it better\n- [Examples](./docs/examples.md) - Experience and learn from some examples and guides of how to use React Table and implement common patterns\n- [API](./docs/api.md) - Get to know React Table's API, how to use it and how to extend its functionality\n- [Contributing](./CONTRIBUTING.md) - Become familiar with how to contribute back to React Table\n- [Code of Conduct](./CODE_OF_CONDUCT.md) - Be a good React Table citizen by following these repository rules\n\n## Sponsors\n\n**React Table v7** is being built and maintained by me, @tannerlinsley and I am always in need of more Patreon support to keep this project afloat. If you would like to contribute to my Patreon goal for v7 and beyond, [visit my Patreon and help me out!](https://patreon.com/tannerlinsley)\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/platinum.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://tryretool.com/?utm_source=sponsor&utm_campaign=react_table\" target=\"_blank\">\n          <img width='350' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-retool.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"http://bjntech.com/index.html&utm_campaign=react_table\" target=\"_blank\">\n          <img width='250' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-bjn.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/gold.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://nozzle.io\" target=\"_blank\">\n          <img width='230' src=\"https://nozzle.io/img/logo-blue.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://zappi.io/web/\" target=\"_blank\">\n          <img width='230' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-zappi.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://patreon.com/tannerlinsley\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/supporters.png\" />\n        </a>\n      </td>\n      <td>\n        <div><a href=\"https://www.metso.com/\">Pekka</a></div>\n        <div>Jon Eickmeier</div>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://patreon.com/tannerlinsley\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/fans.png\" />\n        </a>\n      </td>\n      <td>\n        <div>Sortmy.games</div>\n        <div>Hugo Meissner</div>\n        <div>Benoit Leger-Derville</div>\n        <div>Thomas Funk</div>\n        <div>Dan Houle</div>\n        <div>David Pickut</div>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<a href=\"https://patreon.com/tannerlinsley\">\n  <img width=\"150\" alt=\"\" src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/become-a-patron.png\" />\n</a>\n","licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.0-alpha.33","dist":{"shasum":"2ed844073ae9cb9b77be438910500f4de35e92b5","integrity":"sha512-WBp9YsiVuOGfa2TGOzY+f20qEOJJcJYP9KOTdqxeF8dsS6FaxxtFQTRmLtrZgWVv90Ww7kt0WNX6bPgtpNVvAQ==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.0-alpha.33.tgz","fileCount":41,"unpackedSize":483536,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdZ+7fCRA9TVsSAnZWagAABFIP/1RRbo33M826qnFIduok\nFY+aoohPxQOrFdPAdW+B8oFbDoKE5T/Bs2CxCqK8eK6WWX6YvWCrNVWGarN5\nEJk10PprFz4LOgJ2tsuIylz8VJL1Ym61ZplNHktV9M4F/LLQOX8AMapqhGlI\nGo0yy/7XRE5VqiVtLIfKgfMntO8b7Z9iXS3BmHlD82Qtp9gCf2yH7IOI1BXy\n1ggD6TdbsVA+rQnQUMKrknuR1eqZDmuspTKWxhmSqMfBerWAJxLGag5+Yd+F\nCdfVjq5ISwOTde2xgAAIgZC3yYRzxYF1bdGS+gC76UIMyRWoFNZehNPY9AKb\nXeoFgCvpDncGwA0UrwfuqgdcYsJjH3Wab+PgouIu9i2c7YiyrUV1T1SNOtF7\nzNVN2fqSxhN9+iJAVTPqGTmeevby5BTyFMhCAb+qq2E6GhS+bN5NYOLesS2Q\nTf2Ck27SIuXVRcEg993IyxxoUsYYHskAO1MrSG3s4D0V7SqM3GyI29AmT08+\nbZWWuwbn16jFh6hNp7HLicbGyuYvIAPIs65GBYyTpfBkcvXFG3bz8E0HuADJ\nAtKQzXeV/uuiP24TZwQmpvniF1VScwXdb9Vm0LgzduCtk7s9Jxc+XH7AvSDa\ne6I9o0hHVqNYP1OB2DgIprWoYoqCybMA+n60ZRX1j6A6WjVxATzugSYFPb7k\nhVQ4\r\n=Cf+d\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDZ3PzTIE6hSZikH4UL6zSClO1Oez0ubb3xH7ySyIPAzwIhALcLAc6ObWyEAtb9rIM+NciMMWsW4XEXUhE+WXSuVZfs"}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.0-alpha.33_1567092446402_0.9898084354174288"},"_hasShrinkwrap":false},"7.0.0-alpha.34":{"name":"react-table","version":"7.0.0-alpha.34","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"dist/index.js","module":"dist/index.es.js","jsnext:main":"dist/index.es.js","scripts":{"commit":"git add . && git-cz","test":"is-ci 'test:ci' 'test:dev'","test:dev":"jest --watch","test:ci":"jest","build":"rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier ./src/**/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"prop-types":"^15.5.0","react":"^16.8.3","react-dom":"^16.8.3"},"devDependencies":{"@babel/core":"^7.5.5","@babel/plugin-proposal-class-properties":"^7.5.5","@babel/preset-env":"^7.5.5","@babel/preset-react":"^7.0.0","@babel/runtime":"^7.5.5","@commitlint/cli":"^8.1.0","@commitlint/config-conventional":"^8.1.0","@svgr/rollup":"^4.3.2","@testing-library/dom":"^6.0.0","@testing-library/jest-dom":"^4.0.0","@testing-library/react":"^9.1.1","babel-eslint":"9.x","commitizen":"^4.0.3","core-js":"3.2.1","cross-env":"^5.2.0","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^8.0.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.14.3","eslint-plugin-react-hooks":"1.7.0","eslint-plugin-standard":"^4.0.0","husky":"^3.0.3","is-ci-cli":"^1.1.1","jest":"^24.8.0","jest-cli":"^24.8.0","jest-runner-eslint":"^0.7.4","jest-watch-select-projects":"^0.1.2","jest-watch-typeahead":"^0.3.1","lint-staged":"^9.2.1","prettier":"^1.18.2","prop-types":"^15.5.0","react":"^16.9.0","react-dom":"^16.9.0","rollup":"^0.68.0","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^9.1.3","rollup-plugin-node-resolve":"^4.0.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-uglify":"^6.0.2","snapshot-diff":"^0.5.2"},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"browserslist":"> 0.25%, not dead","readmeFilename":"README.md","readme":"![React Table Header](https://github.com/tannerlinsley/react-table/raw/master/media/header.png)\n\n<img src='https://github.com/tannerlinsley/react-table/raw/master/media/logo.png' width='300'/>\n\nHooks for building **lightweight, fast and extendable datagrids** for React\n\n<a href=\"https://travis-ci.org/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://travis-ci.org/tannerlinsley/react-table.svg?branch=master\" />\n</a>\n<a href=\"https://npmjs.com/package/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-table.svg\" />\n</a>\n<a href=\"https://spectrum.chat/react-table\">\n  <img alt=\"Join the community on Spectrum\" src=\"https://withspectrum.github.io/badge/badge.svg\" />\n</a>\n<a href=\"https://github.com/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-table.svg?style=social&label=Star\" />\n</a>\n<a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n<br />\n<br />\n<a href=\"https://patreon.com/tannerlinsley\">\n  <img width=\"180\" alt=\"\" src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/become-a-patron.png\" />\n</a>\n\n<br />\n<br />\n\n## Features\n\n- Lightweight (4kb - 11kb depending on features and tree-shaking)\n- Headless (100% customizable, Bring-your-own-UI)\n- Auto out of the box, fully controllable API\n- Sorting (Multi and Stable)\n- Filters\n- Pivoting & Aggregation\n- Row Selection\n- Row Expansion\n- Column Ordering\n- Animatable\n- Server-side/controlled data/state\n- Extensible via hook-based plugin system\n- <a href=\"https://medium.com/@tannerlinsley/why-i-wrote-react-table-and-the-problems-it-has-solved-for-nozzle-others-445c4e93d4a8#.axza4ixba\" target=\"\\_parent\">\"Why I wrote React Table and the problems it has solved for Nozzle.io\"</a> by Tanner Linsley\n\n## News / Q&A\n\n#### What is the current state of React Table?\n\nReact Table v7 is still under active development, and its API is still changing, albeit only slightly. For this reason, it is currently in an **alpha** release state. It's estimated that it will be out of alpha and into **beta** sometime during September 2019. It will then remain in beta for a short time before being released sometime in Q4 of 2019.\n\n#### Should I use v7@alpha in production?\n\nYou can use it production as long as you lock in the alpha version in your package.json and also accept that the API will likely change before it's official release.\n\n#### I'm still using v6, what should I do?\n\nv6 is a great library and is still the default install for `react-table`, however, I do not intend on offering any long-term support for it. If you intend to keep using v6, I recommend maintaining your own fork of the library and keeping it up to date for your version of React.\n\n#### Where are the docs for the older v6 version?\n\nPlease [visit the v6 branch](https://github.com/tannerlinsley/react-table/tree/v6)\n\n#### I want to migrate from v6 to v7. How do I do that?\n\nThe differences between the 2 versions are incredibly massive. Unfortunately, I cannot write a one-to-one upgrade guide for any of v6's API, simply because much of it is irrelevant with v7's headless approach. The best approach for migrating to v7 is to learn its API by reading the documentation and then following some of the examples to begin building your own table component.\n\n## Documentation\n\n- [Installation](./docs/installation.md) - Walk through how to install React Table\n- [Concepts](./docs/concepts.md) - Read how React Table works and how you can use it better\n- [Examples](./docs/examples.md) - Experience and learn from some examples and guides of how to use React Table and implement common patterns\n- [API](./docs/api.md) - Get to know React Table's API, how to use it and how to extend its functionality\n- [Contributing](./CONTRIBUTING.md) - Become familiar with how to contribute back to React Table\n- [Code of Conduct](./CODE_OF_CONDUCT.md) - Be a good React Table citizen by following these repository rules\n\n## Sponsors\n\n**React Table v7** is being built and maintained by me, @tannerlinsley and I am always in need of more Patreon support to keep this project afloat. If you would like to contribute to my Patreon goal for v7 and beyond, [visit my Patreon and help me out!](https://patreon.com/tannerlinsley)\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/platinum.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://tryretool.com/?utm_source=sponsor&utm_campaign=react_table\" target=\"_blank\">\n          <img width='350' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-retool.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"http://bjntech.com/index.html&utm_campaign=react_table\" target=\"_blank\">\n          <img width='250' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-bjn.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/gold.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://nozzle.io\" target=\"_blank\">\n          <img width='230' src=\"https://nozzle.io/img/logo-blue.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://zappi.io/web/\" target=\"_blank\">\n          <img width='230' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-zappi.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://patreon.com/tannerlinsley\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/supporters.png\" />\n        </a>\n      </td>\n      <td>\n        <div><a href=\"https://www.metso.com/\">Pekka</a></div>\n        <div>Jon Eickmeier</div>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://patreon.com/tannerlinsley\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/fans.png\" />\n        </a>\n      </td>\n      <td>\n        <div>Sortmy.games</div>\n        <div>Hugo Meissner</div>\n        <div>Benoit Leger-Derville</div>\n        <div>Thomas Funk</div>\n        <div>Dan Houle</div>\n        <div>David Pickut</div>\n        <div>Jordan Soltman</div>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<a href=\"https://patreon.com/tannerlinsley\">\n  <img width=\"150\" alt=\"\" src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/become-a-patron.png\" />\n</a>\n","licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.0-alpha.34","dist":{"shasum":"330d1686a9f73951ebf552c595065eedf432d96a","integrity":"sha512-nEjciGRr3xyQ5+Pf19pLFtAeGRSLO1XUqufmGPP3jQVpwUVbTXNvCpIdINh9iRIsYkWtsVPfNiUygrpVYFDWWA==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.0-alpha.34.tgz","fileCount":41,"unpackedSize":487171,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdcUD4CRA9TVsSAnZWagAA128QAKIle/ZroE4+2DSla53l\n+imCzH2yXtMD6Y1QAOJTp835hKM3g4erHla5HcK+IGo7M626ecDR9CGUAMei\nimgb1iAe43WTVVnYNaFapGBsLchStCJrjF4+m4yCLz/pFUsMg6/JZcCGF3Nb\n3fCRnxRidCXStFLIfl5HPjLsS3MaE7QzY1OLBs9fHzVjwZzlHr5XJ0jAfefr\nJzKYfEFQnuwgYDuosSXaVfQNh8n9EnAZcZtewzSDYDsEuqw9Y1NMuzolUXDV\no6mE3aitZO71bG1DdwxT85dRqcuCJW7Qf45vMRoEeloi1+81YHd3CR9ZXdqh\nOw2hCkPzhjHhjKOGiKi3oKNq9B5/Xky/W9BwwOQb/opgK2LFI8qcl/kwgvj3\n9VZEK+/zZ29n+7YFiTlphftfKD3Z4H0aPfvtcxEVUIITX1SvpmM9Wfi6BYbm\n2nall59+1B6oADVV5ezNCUoMrkp7QMu0qJFRcF9iJXpN+Xf1FqPWjwVzrWVU\nkK+Uao51Be4ihkf9KZZBxZ/125pz7Gie5iTnppQjxRJzUZbFTwprGjwTP0G4\nTelpTrOccyxnykQlWJauGby1at1FSU10/CspzjLkhTe+Ppyhlmjqh0t7l+km\nuh6NsL2HKb7+/dezYUrT3rMUrQUwzl3q2+T2+4SaqiaHgQTfLR2rzAKvYXZ7\nvLQr\r\n=UTyf\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCP3DNUe9IBaYKMUaq4LwBz6I1VdqOdze3/agsvYKvLTAIhAKHujJvLEJ7njXb9pMRTtWoX0/k7sxDBrOuJQasiNHQR"}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.0-alpha.34_1567703288180_0.23675837570717517"},"_hasShrinkwrap":false},"6.10.1":{"name":"react-table","version":"6.10.1","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/react-tools/react-table#readme","repository":{"type":"git","url":"git+https://github.com/react-tools/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","module":"es/index.js","scripts":{"build:cjs":"babel src --out-dir lib --source-maps inline --copy-files","build:es":"cross-env BABEL_ENV=es babel src --out-dir es --source-maps inline","build:umd":"cross-env BABEL_ENV=umd rollup -c","build:umd-min":"cross-env BABEL_ENV=umd NODE_ENV=production rollup -c","build:css":"rimraf react-table.css && stylus src/index.styl --compress -o react-table.css && yarn css:autoprefix","css:autoprefix":"postcss --use autoprefixer react-table.css -r","watch":"npm-run-all --parallel watch:*","watch:js":"onchange 'src/**/*.js' -i -- yarn build:cjs","watch:css":"onchange 'src/**/*.styl' -i -- yarn build:css","test":"eslint src","build":"npm-run-all build:*","prepublish":"yarn build","postpublish":"git push --tags","docs":"yarn watch & cd docs && yarn && yarn start","docs:build":"yarn build && cd docs && yarn && yarn build"},"dependencies":{"classnames":"^2.2.5"},"peerDependencies":{"prop-types":"^15.5.0","react":"^15.x.x || ^16.x.x","react-dom":"^15.x.x || ^16.x.x"},"devDependencies":{"autoprefixer":"^6.7.0","babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-plugin-external-helpers":"^6.22.0","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-preset-env":"^1.6.1","babel-preset-react":"^6.24.1","cross-env":"^5.1.4","eslint":"^4.1.1","eslint-config-react-tools":"^1.0.10","eslint-plugin-class-property":"^1.0.6","eslint-plugin-import":"^2.7.0","eslint-plugin-jsx-a11y":"^6.0.2","eslint-plugin-react":"^7.4.0","match-sorter":"^1.8.0","npm-run-all":"^4.1.2","onchange":"^3.0.2","postcss-cli":"^2.6.0","prop-types":"^15.7.2","react":"^16.3.2","react-dom":"^16.3.2","react-json-tree":"^0.10.9","rimraf":"^2.6.1","rollup":"^0.55.3","rollup-plugin-babel":"^3.0.3","rollup-plugin-commonjs":"^8.3.0","rollup-plugin-node-resolve":"^3.0.2","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"^3.0.0","standard":"^10.0.2","stylus":"^0.54.5"},"babel":{"env":{"development":{"presets":[["env",{"modules":"commonjs"}],"react"],"plugins":["transform-object-rest-spread","transform-class-properties"]},"es":{"presets":[["env",{"modules":false}],"react"],"plugins":["transform-object-rest-spread","transform-class-properties"]},"umd":{"presets":[["env",{"modules":false}],"react"],"plugins":["transform-object-rest-spread","transform-class-properties","external-helpers"]}}},"licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@6.10.1","dist":{"shasum":"f08188d88a585d5b27fc57e7ba9a5dc9db349edb","integrity":"sha512-/DJwWb8/7E/KrRVRhOtJUg58Oc7aPgTK2asuXjsxsLbrozkBnR+8UMZQra4w1nrUrrPytqePEdKe9uI1vvmc+w==","tarball":"https://registry.npmjs.org/react-table/-/react-table-6.10.1.tgz","fileCount":72,"unpackedSize":1401249,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdcmtSCRA9TVsSAnZWagAAtrQP/31+LSj73TYViZpchP7t\np/c+N7fS0NT5lIAPv///CekNhlJgBj242QzFHSfsEQUnT4uWCMPTnSKU0dEN\nr/nAsRBj61eh3M6/1XLZ2d0bV6k055uQ8Y8uWIR83Kiq8SAZpwUl6/6kaYMe\nfmhsRmF0HVu9U0ZIvH4NRpt3KQJjwxiCHN6gnIagXMaHj6OCo4NHp3+k5l74\nSIrmbVuJUgHvs69BkqGtBBS58B/W2FCbZXDhzxNgUHWKzsbuVl/DtrTYKol5\nQ1ksNFemn/0BYmqr2thywHO1+qJ3nz6/VsKg5J+zHLhYtUo/GKUnJXtIwejr\n3OD0MLy1hcyZ/Idm5pssKvdv2bj42vufFMKXkP50q3/414v1stB4MAwBhOIb\nV/VGC5zD7xJ7rVITATrUrrVZvkAueFcCqOpnDwWr8iDNaVCEg9yb6ZkylBl6\nULoMtPgf/lR7+u6uZusERBAbR2DozJQ1i2dibrc81kK+78VXQ+pO7Sw/VBdK\nDct6HInyvP6Yrl13XLrNTrCHD0FdyE9ehdEWJvnSdyz3sL1d3P2ZOCr+UJiE\nnjbakhSR5LVcHVzhvOTc6uYv9VV3mZ0N81bDUDEr9b+ssQ2gFAsf6uE4kxyo\nJcy2Nl+u7iASAXHYdsfcKLER5p2jI9BDf5z+b5c/93JKeKmEHVDpJS+qLrVS\nThhk\r\n=tf84\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHmYx2RrlRCPuhZALUywg1kVxbhER+qIudWF8w4eeTHSAiAWTl3azGbcQVg+n8ONfmUfUdp91rwr4j1sIcRgna/oVA=="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_6.10.1_1567779665344_0.5896407676136595"},"_hasShrinkwrap":false},"6.10.2":{"name":"react-table","version":"6.10.2","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/react-tools/react-table#readme","repository":{"type":"git","url":"git+https://github.com/react-tools/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","module":"es/index.js","scripts":{"build:cjs":"babel src --out-dir lib --source-maps inline --copy-files","build:es":"cross-env BABEL_ENV=es babel src --out-dir es --source-maps inline","build:umd":"cross-env BABEL_ENV=umd rollup -c","build:umd-min":"cross-env BABEL_ENV=umd NODE_ENV=production rollup -c","build:css":"rimraf react-table.css && stylus src/index.styl --compress -o react-table.css && yarn css:autoprefix","css:autoprefix":"postcss --use autoprefixer react-table.css -r","watch":"npm-run-all --parallel watch:*","watch:js":"onchange 'src/**/*.js' -i -- yarn build:cjs","watch:css":"onchange 'src/**/*.styl' -i -- yarn build:css","test":"eslint src","build":"npm-run-all build:*","prepublish":"yarn build","postpublish":"git push --tags","docs":"yarn watch & cd docs && yarn && yarn start","docs:build":"yarn build && cd docs && yarn && yarn build"},"dependencies":{"classnames":"^2.2.5"},"peerDependencies":{"prop-types":"^15.5.0","react":"^15.x.x || ^16.x.x","react-dom":"^15.x.x || ^16.x.x"},"devDependencies":{"autoprefixer":"^6.7.0","babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-plugin-external-helpers":"^6.22.0","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-preset-env":"^1.6.1","babel-preset-react":"^6.24.1","cross-env":"^5.1.4","eslint":"^4.1.1","eslint-config-react-tools":"^1.0.10","eslint-plugin-class-property":"^1.0.6","eslint-plugin-import":"^2.7.0","eslint-plugin-jsx-a11y":"^6.0.2","eslint-plugin-react":"^7.4.0","match-sorter":"^1.8.0","npm-run-all":"^4.1.2","onchange":"^3.0.2","postcss-cli":"^2.6.0","prop-types":"^15.7.2","react":"^16.3.2","react-dom":"^16.3.2","react-json-tree":"^0.10.9","rimraf":"^2.6.1","rollup":"^0.55.3","rollup-plugin-babel":"^3.0.3","rollup-plugin-commonjs":"^8.3.0","rollup-plugin-node-resolve":"^3.0.2","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"^3.0.0","standard":"^10.0.2","stylus":"^0.54.5"},"babel":{"env":{"development":{"presets":[["env",{"modules":"commonjs"}],"react"],"plugins":["transform-object-rest-spread","transform-class-properties"]},"es":{"presets":[["env",{"modules":false}],"react"],"plugins":["transform-object-rest-spread","transform-class-properties"]},"umd":{"presets":[["env",{"modules":false}],"react"],"plugins":["transform-object-rest-spread","transform-class-properties","external-helpers"]}}},"licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@6.10.2","dist":{"shasum":"093d3eb8ee563bd95ddbbf72b4533a8371c2bd72","integrity":"sha512-vPTEcmxpQn+UcBcQGVUW9mJqQZ/On0xSq7WqA2tYPEHiVpGrPx1okSmjffa7heVslgTg728LnmLetr9zrc5gDQ==","tarball":"https://registry.npmjs.org/react-table/-/react-table-6.10.2.tgz","fileCount":72,"unpackedSize":1401562,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdcpB/CRA9TVsSAnZWagAAnmUQAJgm/DZXopooZJ+zKJps\n4bS//xYgHCoDlOoNnKoJJzAoDv/xtl0ClKhuO1uRdlmndGldL7B+hQHNfTjM\nRRm3kfp7RQJ8qCrclyMmDuqdN7rxJqezOj9SxEtNFWFonbh8FSVa/fWaj+c2\nW8+IzVjHiZSnr0kyC9ZP5CmP4kofNLviVz1Hx7oP4ZvHW8x2qnvo6JmgWnIL\n+M7ESrPA58ZX1JUCCldxGclp2lcbpP4Ml6jSHNCGncwbK9E9pZjdfn8CLY+h\nQ/732tTl9RH0DCaK40Ja2RjzasYA7ElY3PcNsA5fsomw+LOvWtnrkaw18v9X\nY3QRluL4B7k4P3+YblBeUGlFM1CtfposBHaAv8VlvB7RFo3ljcIJ2DdMTLzx\nMP8UF6PvZethVYGmhIuzFHa/HV5gFJ+B94G2RH/vD+hbHPcmEXAOEkdAws1Y\n/DJiF5tSpfxAm7j5IuJLaGAwXcraB44zcJAhmKrOhjVyaAT6GKI7f/SLbwLn\n+nv32mow8wTzUfe38HKOK6jyWBuREgAPh+keMLuUQ7s9qWkbqNIh68lRJ478\n0gYT4vDfK6bWr8RMNEIRW+dn/bl8hD899cqziFYU08XmstHEEYz8gfa33SJq\nU0sNvBm3FlAz8d7cQa40bg4Spku2jpHV/p9Y/LN5EZrZUQBVTjChhKk6gxUB\nGFwa\r\n=BjRf\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCmVITA7U8J57uaZwPINr1a0ZGzwwmZJow3OY5Kvh7FCQIhANvstYLuOnthVaPxrPOy5jNHFn/XPXoWNDlruYsYmFcn"}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_6.10.2_1567789182427_0.6005706554278765"},"_hasShrinkwrap":false},"6.10.3":{"name":"react-table","version":"6.10.3","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/react-tools/react-table#readme","repository":{"type":"git","url":"git+https://github.com/react-tools/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","module":"es/index.js","scripts":{"build:cjs":"babel src --out-dir lib --source-maps inline --copy-files","build:es":"cross-env BABEL_ENV=es babel src --out-dir es --source-maps inline","build:umd":"cross-env BABEL_ENV=umd rollup -c","build:umd-min":"cross-env BABEL_ENV=umd NODE_ENV=production rollup -c","build:css":"rimraf react-table.css && stylus src/index.styl --compress -o react-table.css && yarn css:autoprefix","css:autoprefix":"postcss --use autoprefixer react-table.css -r","watch":"npm-run-all --parallel watch:*","watch:js":"onchange 'src/**/*.js' -i -- yarn build:cjs","watch:css":"onchange 'src/**/*.styl' -i -- yarn build:css","test":"eslint src","build":"npm-run-all build:*","prepublish":"yarn build","postpublish":"git push --tags","docs":"yarn watch & cd docs && yarn && yarn start","docs:build":"yarn build && cd docs && yarn && yarn build"},"dependencies":{"classnames":"^2.2.5"},"peerDependencies":{"prop-types":"^15.5.0","react":"^15.x.x || ^16.x.x","react-dom":"^15.x.x || ^16.x.x"},"devDependencies":{"autoprefixer":"^6.7.0","babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-plugin-external-helpers":"^6.22.0","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-preset-env":"^1.6.1","babel-preset-react":"^6.24.1","cross-env":"^5.1.4","eslint":"^4.1.1","eslint-config-react-tools":"^1.0.10","eslint-plugin-class-property":"^1.0.6","eslint-plugin-import":"^2.7.0","eslint-plugin-jsx-a11y":"^6.0.2","eslint-plugin-react":"^7.4.0","match-sorter":"^1.8.0","npm-run-all":"^4.1.2","onchange":"^3.0.2","postcss-cli":"^2.6.0","prop-types":"^15.7.2","react":"^16.3.2","react-dom":"^16.3.2","react-json-tree":"^0.10.9","rimraf":"^2.6.1","rollup":"^0.55.3","rollup-plugin-babel":"^3.0.3","rollup-plugin-commonjs":"^8.3.0","rollup-plugin-node-resolve":"^3.0.2","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"^3.0.0","standard":"^10.0.2","stylus":"^0.54.5"},"babel":{"env":{"development":{"presets":[["env",{"modules":"commonjs"}],"react"],"plugins":["transform-object-rest-spread","transform-class-properties"]},"es":{"presets":[["env",{"modules":false}],"react"],"plugins":["transform-object-rest-spread","transform-class-properties"]},"umd":{"presets":[["env",{"modules":false}],"react"],"plugins":["transform-object-rest-spread","transform-class-properties","external-helpers"]}}},"licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@6.10.3","dist":{"shasum":"d085487a5a1b18b76486b71cf1d388d87c8c7362","integrity":"sha512-sVlq2/rxVaQJywGD95+qGiMr/SMHFIFnXdx619BLOWE/Os5FOGtV6pQJNAjZixbQZiOu7dmBO1kME28uxh6wmA==","tarball":"https://registry.npmjs.org/react-table/-/react-table-6.10.3.tgz","fileCount":72,"unpackedSize":1400676,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJddlkdCRA9TVsSAnZWagAAtcAP+gOOzn4LRN+YBruBvACs\nedSBqLxuiUY4ZiPoCyACgYUIvhIH8D2QOyzIpuhxep9dzmnXH84wt7JedAQI\nMhTMXam9nfdt0BHP2nr2xHoqyWDGWsqH/1lil+gsWv9xHjj6P7ZNv0rUeCHj\newopudJBw17IzSUwenVd5Q9QpWN6PPMW1vpUFOnQVK2qTD8D9Kir1W0/k0Gx\n+yV1jkpB9iUD6aV+QsRcNj97qyaYX8q05r30SXV8iy5HWmhwhYNed5UMqhx9\nNMJpt7NILBhlkkKmMkF5mlBI4Sq1rKGVxcGKDBPWOXrlsibR8zAno5S0JFEo\nNa4lhcWXP14ouN8ajf7VqqDIrlbuXlxnwxlfgiNdd73aWd56cQsKpraJuRl3\naOcZPztLI+LQNa2J4CtfY7ivINX1EWgVG3+VDNG3vNk2gzwyE/MraXF9jNhF\nsrWgJB7yIC1w890XIXkgKQ2svXVL7S0WzBNn/jMlxOxSvfuS5DfwA2HtfI8B\nPDhGkW0sWb0pABtfcJgOs3XUMCG8MYMCWV5LNxeY0YNZXr89TEUuj4/FpyRp\noFiAU6ckIT+WUiWWGHZHZWGbbSdF4WeowmSt9/TN8pdDdFQoaqwKde4XV3H5\nVJvLC3OKPiStBdcs2j8tIl9oLEgC4JqKtKzMTKm6io9JWoX28iH4AiHdOaVV\nkAqB\r\n=knNH\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDN119EIZk7wNniR23C0fbwrPVMZPlyNEMzjEVqv6Me0AIhAOBA7S4S7apejLY1wc1ZUdUcfRokX8pKOREKNSY/RTw7"}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_6.10.3_1568037148032_0.1351365801459008"},"_hasShrinkwrap":false},"7.0.0-alpha.35":{"name":"react-table","version":"7.0.0-alpha.35","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"dist/index.js","module":"dist/index.es.js","jsnext:main":"dist/index.es.js","scripts":{"commit":"git add . && git-cz","test":"is-ci 'test:ci' 'test:dev'","test:dev":"jest --watch","test:ci":"jest","build":"rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier ./src/**/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"prop-types":"^15.5.0","react":"^16.8.3","react-dom":"^16.8.3"},"devDependencies":{"@babel/core":"^7.5.5","@babel/plugin-proposal-class-properties":"^7.5.5","@babel/preset-env":"^7.5.5","@babel/preset-react":"^7.0.0","@babel/runtime":"^7.5.5","@commitlint/cli":"^8.1.0","@commitlint/config-conventional":"^8.1.0","@svgr/rollup":"^4.3.2","@testing-library/dom":"^6.0.0","@testing-library/jest-dom":"^4.0.0","@testing-library/react":"^9.1.1","babel-eslint":"9.x","commitizen":"^4.0.3","core-js":"3.2.1","cross-env":"^5.2.0","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^8.0.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.14.3","eslint-plugin-react-hooks":"1.7.0","eslint-plugin-standard":"^4.0.0","husky":"^3.0.3","is-ci-cli":"^1.1.1","jest":"^24.8.0","jest-cli":"^24.8.0","jest-runner-eslint":"^0.7.4","jest-watch-select-projects":"^0.1.2","jest-watch-typeahead":"^0.3.1","lint-staged":"^9.2.1","prettier":"^1.18.2","prop-types":"^15.5.0","react":"^16.9.0","react-dom":"^16.9.0","rollup":"^0.68.0","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^9.1.3","rollup-plugin-node-resolve":"^4.0.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-uglify":"^6.0.2","snapshot-diff":"^0.5.2"},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"browserslist":"> 0.25%, not dead","readmeFilename":"README.md","readme":"![React Table Header](https://github.com/tannerlinsley/react-table/raw/master/media/header.png)\n\n<img src='https://github.com/tannerlinsley/react-table/raw/master/media/logo.png' width='300'/>\n\nHooks for building **lightweight, fast and extendable datagrids** for React\n\n<a href=\"https://travis-ci.org/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://travis-ci.org/tannerlinsley/react-table.svg?branch=master\" />\n</a>\n<a href=\"https://npmjs.com/package/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-table.svg\" />\n</a>\n<a href=\"https://spectrum.chat/react-table\">\n  <img alt=\"Join the community on Spectrum\" src=\"https://withspectrum.github.io/badge/badge.svg\" />\n</a>\n<a href=\"https://github.com/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-table.svg?style=social&label=Star\" />\n</a>\n<a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n<br />\n<br />\n<a href=\"https://patreon.com/tannerlinsley\">\n  <img width=\"180\" alt=\"\" src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/become-a-patron.png\" />\n</a>\n\n<br />\n<br />\n\n## Features\n\n- Lightweight (4kb - 11kb depending on features and tree-shaking)\n- Headless (100% customizable, Bring-your-own-UI)\n- Auto out of the box, fully controllable API\n- Sorting (Multi and Stable)\n- Filters\n- Pivoting & Aggregation\n- Row Selection\n- Row Expansion\n- Column Ordering\n- Animatable\n- Server-side/controlled data/state\n- Extensible via hook-based plugin system\n- <a href=\"https://medium.com/@tannerlinsley/why-i-wrote-react-table-and-the-problems-it-has-solved-for-nozzle-others-445c4e93d4a8#.axza4ixba\" target=\"\\_parent\">\"Why I wrote React Table and the problems it has solved for Nozzle.io\"</a> by Tanner Linsley\n\n## News / Q&A\n\n#### What is the current state of React Table?\n\nReact Table v7 is still under active development, and its API is still changing, albeit only slightly. For this reason, it is currently in an **alpha** release state. It's estimated that it will be out of alpha and into **beta** sometime during September 2019. It will then remain in beta for a short time before being released sometime in Q4 of 2019.\n\n#### Should I use v7@alpha in production?\n\nYou can use it production as long as you lock in the alpha version in your package.json and also accept that the API will likely change before it's official release.\n\n#### I'm still using v6, what should I do?\n\nv6 is a great library and is still the default install for `react-table`, however, I do not intend on offering any long-term support for it. If you intend to keep using v6, I recommend maintaining your own fork of the library and keeping it up to date for your version of React.\n\n#### Where are the docs for the older v6 version?\n\nPlease [visit the v6 branch](https://github.com/tannerlinsley/react-table/tree/v6)\n\n#### I want to migrate from v6 to v7. How do I do that?\n\nThe differences between the 2 versions are incredibly massive. Unfortunately, I cannot write a one-to-one upgrade guide for any of v6's API, simply because much of it is irrelevant with v7's headless approach. The best approach for migrating to v7 is to learn its API by reading the documentation and then following some of the examples to begin building your own table component.\n\n## Documentation\n\n- [Installation](./docs/installation.md) - Walk through how to install React Table\n- [Concepts](./docs/concepts.md) - Read how React Table works and how you can use it better\n- [Examples](./docs/examples.md) - Experience and learn from some examples and guides of how to use React Table and implement common patterns\n- [API](./docs/api.md) - Get to know React Table's API, how to use it and how to extend its functionality\n- [Contributing](./CONTRIBUTING.md) - Become familiar with how to contribute back to React Table\n- [Code of Conduct](./CODE_OF_CONDUCT.md) - Be a good React Table citizen by following these repository rules\n\n## Sponsors\n\n**React Table v7** is being built and maintained by me, @tannerlinsley and I am always in need of more Patreon support to keep this project afloat. If you would like to contribute to my Patreon goal for v7 and beyond, [visit my Patreon and help me out!](https://patreon.com/tannerlinsley)\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/platinum.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://tryretool.com/?utm_source=sponsor&utm_campaign=react_table\" target=\"_blank\">\n          <img width='350' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-retool.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"http://bjntech.com/index.html&utm_campaign=react_table\" target=\"_blank\">\n          <img width='250' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-bjn.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/gold.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://nozzle.io\" target=\"_blank\">\n          <img width='230' src=\"https://nozzle.io/img/logo-blue.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://zappi.io/web/\" target=\"_blank\">\n          <img width='230' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-zappi.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://patreon.com/tannerlinsley\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/supporters.png\" />\n        </a>\n      </td>\n      <td>\n        <div><a href=\"https://www.metso.com/\">Pekka</a></div>\n        <div>Jon Eickmeier</div>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://patreon.com/tannerlinsley\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/fans.png\" />\n        </a>\n      </td>\n      <td>\n        <div>Sortmy.games</div>\n        <div>Hugo Meissner</div>\n        <div>Benoit Leger-Derville</div>\n        <div>Thomas Funk</div>\n        <div>Dan Houle</div>\n        <div>David Pickut</div>\n        <div>Jordan Soltman</div>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<a href=\"https://patreon.com/tannerlinsley\">\n  <img width=\"150\" alt=\"\" src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/become-a-patron.png\" />\n</a>\n","licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.0-alpha.35","dist":{"shasum":"6339afabe89cbf607a7ce37acf682d42985a3920","integrity":"sha512-sQbHvNMf/FZsyCF3i2t5GdljSf58lOaTShC0rtibjWkD0ZOQTAiZpbjPNWpQ2sFmoOkneWMzEIBwzcZrRsEV7w==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.0-alpha.35.tgz","fileCount":41,"unpackedSize":489515,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJddmDBCRA9TVsSAnZWagAAVDoP/RMrBrM3cKiYP9n23ysW\nZz2A/9tuC2+mVbTA5zqpOvP1/Unr7C7bQv1js8F9g/EQKUXFY5MgBf9QWWXP\n7y4qlxJw2mNKqiC/nk+ZHIuUwSotk6IjbGyEZCLCz62vtsLDOBIR/mhc63Nc\n3zLD8tRht7S3jziwhUD9FCcqMTdRFLmEG2Rb/SAwsDKFJpIOL9SY3EpTN+uT\nJlxBfoAZswGLmoLKn8ycn17hEtfTZWVbO1E56V5OenRA8cjRXksnG2Bt2Tb+\nLaElpTHOVH1UPrQmQ6C9NuhRNwq9jirDJZJeUYdnAAWnNiA2h7aoS4+F8qC7\nJxRBFiwWb4Ydo1zrAGUQKSTorHhmZ+CProbqtWo0+ZG3wOiz9BqOjUJsgQcT\nQDYUTbBVcihZrkdvAiDin+KNFU7h7EppZcf59CIfvm/vnT9OAW7pe4gDqyKc\nMtqzJ+FjCni5kmjARrI0OBuWZMjT7cneZpYZiZlZUbLDviqk0gfC7XnvmrF+\ntY2RVZGTGmg8fmynpoDb46GP+jtJtIhPbyVtgt01kh5KadqMKHH3YvU0I4bG\nfpcJwjA5rxAkiocxFeyjFGSt5ePNcmPwVWga7Byy7b0oa+FJgY0Gg6m+iZ9n\nBicCIUCuZMoBW2kJZEG4TRrTp2h1+TWfSIF2DcN0gxQPf0Bc0znOYwuG84wc\nSmqJ\r\n=RfAt\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFCASRqcKGsP3zhAdg1NfIokPwRgJrO21HzxVI7J9u9AAiEArr6qLB2mJqPI/3l3OD37CvCS60IVRWtMYSKsFT1IP6o="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.0-alpha.35_1568039105281_0.6611798663824184"},"_hasShrinkwrap":false},"7.0.0-alpha.36":{"name":"react-table","version":"7.0.0-alpha.36","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"dist/index.js","module":"dist/index.es.js","jsnext:main":"dist/index.es.js","scripts":{"commit":"git add . && git-cz","test":"is-ci 'test:ci' 'test:dev'","test:dev":"jest --watch","test:ci":"jest","build":"rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier ./src/**/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"prop-types":"^15.5.0","react":"^16.8.3","react-dom":"^16.8.3"},"devDependencies":{"@babel/core":"^7.5.5","@babel/plugin-proposal-class-properties":"^7.5.5","@babel/preset-env":"^7.5.5","@babel/preset-react":"^7.0.0","@babel/runtime":"^7.5.5","@commitlint/cli":"^8.1.0","@commitlint/config-conventional":"^8.1.0","@svgr/rollup":"^4.3.2","@testing-library/dom":"^6.0.0","@testing-library/jest-dom":"^4.0.0","@testing-library/react":"^9.1.1","babel-eslint":"9.x","commitizen":"^4.0.3","core-js":"3.2.1","cross-env":"^5.2.0","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^8.0.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.14.3","eslint-plugin-react-hooks":"1.7.0","eslint-plugin-standard":"^4.0.0","husky":"^3.0.3","is-ci-cli":"^1.1.1","jest":"^24.8.0","jest-cli":"^24.8.0","jest-runner-eslint":"^0.7.4","jest-watch-select-projects":"^0.1.2","jest-watch-typeahead":"^0.3.1","lint-staged":"^9.2.1","prettier":"^1.18.2","prop-types":"^15.5.0","react":"^16.9.0","react-dom":"^16.9.0","rollup":"^0.68.0","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^9.1.3","rollup-plugin-node-resolve":"^4.0.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-uglify":"^6.0.2","snapshot-diff":"^0.5.2"},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"browserslist":"> 0.25%, not dead","readmeFilename":"README.md","readme":"![React Table Header](https://github.com/tannerlinsley/react-table/raw/master/media/header.png)\n\n<img src='https://github.com/tannerlinsley/react-table/raw/master/media/logo.png' width='300'/>\n\nHooks for building **lightweight, fast and extendable datagrids** for React\n\n<a href=\"https://travis-ci.org/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://travis-ci.org/tannerlinsley/react-table.svg?branch=master\" />\n</a>\n<a href=\"https://npmjs.com/package/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-table.svg\" />\n</a>\n<a href=\"https://spectrum.chat/react-table\">\n  <img alt=\"Join the community on Spectrum\" src=\"https://withspectrum.github.io/badge/badge.svg\" />\n</a>\n<a href=\"https://github.com/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-table.svg?style=social&label=Star\" />\n</a>\n<a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n<br />\n<br />\n<a href=\"https://patreon.com/tannerlinsley\">\n  <img width=\"180\" alt=\"\" src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/become-a-patron.png\" />\n</a>\n\n<br />\n<br />\n\n## Features\n\n- Lightweight (4kb - 11kb depending on features and tree-shaking)\n- Headless (100% customizable, Bring-your-own-UI)\n- Auto out of the box, fully controllable API\n- Sorting (Multi and Stable)\n- Filters\n- Pivoting & Aggregation\n- Row Selection\n- Row Expansion\n- Column Ordering\n- Animatable\n- Server-side/controlled data/state\n- Extensible via hook-based plugin system\n- <a href=\"https://medium.com/@tannerlinsley/why-i-wrote-react-table-and-the-problems-it-has-solved-for-nozzle-others-445c4e93d4a8#.axza4ixba\" target=\"\\_parent\">\"Why I wrote React Table and the problems it has solved for Nozzle.io\"</a> by Tanner Linsley\n\n## News / Q&A\n\n#### What is the current state of React Table?\n\nReact Table v7 is still under active development, and its API is still changing, albeit only slightly. For this reason, it is currently in an **alpha** release state. It's estimated that it will be out of alpha and into **beta** sometime during September 2019. It will then remain in beta for a short time before being released sometime in Q4 of 2019.\n\n#### Should I use v7@alpha in production?\n\nYou can use it production as long as you lock in the alpha version in your package.json and also accept that the API will likely change before it's official release.\n\n#### I'm still using v6, what should I do?\n\nv6 is a great library and is still the default install for `react-table`, however, I do not intend on offering any long-term support for it. If you intend to keep using v6, I recommend maintaining your own fork of the library and keeping it up to date for your version of React.\n\n#### Where are the docs for the older v6 version?\n\nPlease [visit the v6 branch](https://github.com/tannerlinsley/react-table/tree/v6)\n\n#### I want to migrate from v6 to v7. How do I do that?\n\nThe differences between the 2 versions are incredibly massive. Unfortunately, I cannot write a one-to-one upgrade guide for any of v6's API, simply because much of it is irrelevant with v7's headless approach. The best approach for migrating to v7 is to learn its API by reading the documentation and then following some of the examples to begin building your own table component.\n\n## Documentation\n\n- [Installation](./docs/installation.md) - Walk through how to install React Table\n- [Concepts](./docs/concepts.md) - Read how React Table works and how you can use it better\n- [Examples](./docs/examples.md) - Experience and learn from some examples and guides of how to use React Table and implement common patterns\n- [API](./docs/api.md) - Get to know React Table's API, how to use it and how to extend its functionality\n- [Contributing](./CONTRIBUTING.md) - Become familiar with how to contribute back to React Table\n- [Code of Conduct](./CODE_OF_CONDUCT.md) - Be a good React Table citizen by following these repository rules\n\n## Sponsors\n\n**React Table v7** is being built and maintained by me, @tannerlinsley and I am always in need of more Patreon support to keep this project afloat. If you would like to contribute to my Patreon goal for v7 and beyond, [visit my Patreon and help me out!](https://patreon.com/tannerlinsley)\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/platinum.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://tryretool.com/?utm_source=sponsor&utm_campaign=react_table\" target=\"_blank\">\n          <img width='350' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-retool.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"http://bjntech.com/index.html?utm_campaign=react_table\" target=\"_blank\">\n          <img width='250' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-bjn.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/gold.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://nozzle.io\" target=\"_blank\">\n          <img width='230' src=\"https://nozzle.io/img/logo-blue.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://zappi.io/web/\" target=\"_blank\">\n          <img width='230' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-zappi.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://patreon.com/tannerlinsley\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/supporters.png\" />\n        </a>\n      </td>\n      <td>\n        <div><a href=\"https://www.metso.com/\">Pekka</a></div>\n        <div>Jon Eickmeier</div>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://patreon.com/tannerlinsley\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/fans.png\" />\n        </a>\n      </td>\n      <td>\n        <div>Sortmy.games</div>\n        <div>Hugo Meissner</div>\n        <div>Benoit Leger-Derville</div>\n        <div>Thomas Funk</div>\n        <div>Dan Houle</div>\n        <div>David Pickut</div>\n        <div>Jordan Soltman</div>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<a href=\"https://patreon.com/tannerlinsley\">\n  <img width=\"150\" alt=\"\" src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/become-a-patron.png\" />\n</a>\n","licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.0-alpha.36","dist":{"shasum":"55923b943aad4e98c8d2edb843eb7403f3d06adb","integrity":"sha512-u0cIOAxNmtbGeJKNfmrMWS/CaasN72SdnFpZoUE5gSbysoUVS86+5gexYGiflG0Obz9i+w4il//Hb6zWNzV7Xw==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.0-alpha.36.tgz","fileCount":42,"unpackedSize":495332,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJde5sPCRA9TVsSAnZWagAAu1EP/A7xWKR+TGMqmbAsvgGG\nYG9ju1RffKAtStH7cHnOSsf0frvdeW2zQD6GUTAOiCc9ddzgLrek9I8FjjwE\nPS7EEXiRYEtcUOj1d3GWAyX+WFVhM1P8tqA/Ln9uL3Vsx5szT4qAXBHuCkGh\n301eiHq2Dykqx8SflZms+/kBwdv3m8DaO0ro8nB6DXaBSyK2paeSoo8hk6pR\nUOexICEMQBX2EqxaKc09VloQEvCSaQGh6Nec4YTJgdY9Ry2OJd7IZRxTut+m\nkmr49y5OOexEJnqxeeuyYkdqvIAHfOBgIfeXbwlJtesB3qlv2EBFqQR06J2a\n8Zh/nm9l2Fw/hN7TzCyyU3Xai1+uXLjLEWUo0sUZcw3MOJWqFlLGOqMDf54I\nvkjiFd6oM8MTp8hMWQRarZVOo0ydizV3gN7XaCwPbZ9ZO6FDC98UwB5jWUj3\npMTURKHLBQ7XjmSW4iFdP1Ppjfco4JzpfUplJH8OnM+dJsw3/xL6l957z55p\niKg9AO55VfrwXglZhQWZSIziyUHnpQjb4I5TipmskKw19yrS7sd4e6OLYSWV\n1JMwVLoLronZH7U3PJ4acnbLoCxwe8AqEts2+kL4nAWGuPGxUOnGQ4AsBoKx\nElUYWT66VufOuH5gagNBAaJY/zJrZoY1vNO8CsaBNrfz2QETbqZUbecVy9FA\n/bg8\r\n=TtK8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFUV/wuNF1PgfJin5h4c9i0EU2IBxzxIPsy2LqGLJ8dfAiEA6qx+ejTfbXM4ezkRyVw7onPr+Ie70LczL+IyacxchS0="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.0-alpha.36_1568381710961_0.27136603881694765"},"_hasShrinkwrap":false},"7.0.0-beta.0":{"name":"react-table","version":"7.0.0-beta.0","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"dist/index.js","module":"dist/index.es.js","jsnext:main":"dist/index.es.js","scripts":{"commit":"git add . && git-cz","test":"is-ci 'test:ci' 'test:dev'","test:dev":"jest --watch","test:ci":"jest","build":"rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier ./src/**/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"prop-types":"^15.5.0","react":"^16.8.3","react-dom":"^16.8.3"},"devDependencies":{"@babel/core":"^7.5.5","@babel/plugin-proposal-class-properties":"^7.5.5","@babel/preset-env":"^7.5.5","@babel/preset-react":"^7.0.0","@babel/runtime":"^7.5.5","@commitlint/cli":"^8.1.0","@commitlint/config-conventional":"^8.1.0","@svgr/rollup":"^4.3.2","@testing-library/dom":"^6.0.0","@testing-library/jest-dom":"^4.0.0","@testing-library/react":"^9.1.1","babel-eslint":"9.x","commitizen":"^4.0.3","core-js":"3.2.1","cross-env":"^5.2.0","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^8.0.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.14.3","eslint-plugin-react-hooks":"1.7.0","eslint-plugin-standard":"^4.0.0","husky":"^3.0.3","is-ci-cli":"^1.1.1","jest":"^24.8.0","jest-cli":"^24.8.0","jest-runner-eslint":"^0.7.4","jest-watch-select-projects":"^0.1.2","jest-watch-typeahead":"^0.3.1","lint-staged":"^9.2.1","prettier":"^1.18.2","prop-types":"^15.5.0","react":"^16.9.0","react-dom":"^16.9.0","rollup":"^0.68.0","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^9.1.3","rollup-plugin-node-resolve":"^4.0.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-uglify":"^6.0.2","snapshot-diff":"^0.5.2"},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"browserslist":"> 0.25%, not dead","readmeFilename":"README.md","readme":"![React Table Header](https://github.com/tannerlinsley/react-table/raw/master/media/header.png)\n\n<img src='https://github.com/tannerlinsley/react-table/raw/master/media/logo.png' width='300'/>\n\nHooks for building **lightweight, fast and extendable datagrids** for React\n\n<a href=\"https://travis-ci.org/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://travis-ci.org/tannerlinsley/react-table.svg?branch=master\" />\n</a>\n<a href=\"https://npmjs.com/package/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-table.svg\" />\n</a>\n<a href=\"https://spectrum.chat/react-table\">\n  <img alt=\"Join the community on Spectrum\" src=\"https://withspectrum.github.io/badge/badge.svg\" />\n</a>\n<a href=\"https://github.com/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-table.svg?style=social&label=Star\" />\n</a>\n<a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n<br />\n<br />\n<a href=\"https://patreon.com/tannerlinsley\">\n  <img width=\"180\" alt=\"\" src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/become-a-patron.png\" />\n</a>\n\n<br />\n<br />\n\n## Features\n\n- Lightweight (4kb - 11kb depending on features and tree-shaking)\n- Headless (100% customizable, Bring-your-own-UI)\n- Auto out of the box, fully controllable API\n- Sorting (Multi and Stable)\n- Filters\n- Pivoting & Aggregation\n- Row Selection\n- Row Expansion\n- Column Ordering\n- Animatable\n- Server-side/controlled data/state\n- Extensible via hook-based plugin system\n- <a href=\"https://medium.com/@tannerlinsley/why-i-wrote-react-table-and-the-problems-it-has-solved-for-nozzle-others-445c4e93d4a8#.axza4ixba\" target=\"\\_parent\">\"Why I wrote React Table and the problems it has solved for Nozzle.io\"</a> by Tanner Linsley\n\n## News / Q&A\n\n#### What is the current state of React Table?\n\nReact Table v7 is still under active development, and its API is still changing, albeit only slightly. For this reason, it is currently in an **alpha** release state. It's estimated that it will be out of alpha and into **beta** sometime during September 2019. It will then remain in beta for a short time before being released sometime in Q4 of 2019.\n\n#### Should I use v7@alpha in production?\n\nYou can use it production as long as you lock in the alpha version in your package.json and also accept that the API will likely change before it's official release.\n\n#### I'm still using v6, what should I do?\n\nv6 is a great library and is still the default install for `react-table`, however, I do not intend on offering any long-term support for it. If you intend to keep using v6, I recommend maintaining your own fork of the library and keeping it up to date for your version of React.\n\n#### Where are the docs for the older v6 version?\n\nPlease [visit the v6 branch](https://github.com/tannerlinsley/react-table/tree/v6)\n\n#### I want to migrate from v6 to v7. How do I do that?\n\nThe differences between the 2 versions are incredibly massive. Unfortunately, I cannot write a one-to-one upgrade guide for any of v6's API, simply because much of it is irrelevant with v7's headless approach. The best approach for migrating to v7 is to learn its API by reading the documentation and then following some of the examples to begin building your own table component.\n\n## Documentation\n\n- [Installation](./docs/installation.md) - Walk through how to install React Table\n- [Concepts](./docs/concepts.md) - Read how React Table works and how you can use it better\n- [Examples](./docs/examples.md) - Experience and learn from some examples and guides of how to use React Table and implement common patterns\n- [API](./docs/api.md) - Get to know React Table's API, how to use it and how to extend its functionality\n- [Contributing](./CONTRIBUTING.md) - Become familiar with how to contribute back to React Table\n- [Code of Conduct](./CODE_OF_CONDUCT.md) - Be a good React Table citizen by following these repository rules\n\n## Sponsors\n\n**React Table v7** is being built and maintained by me, @tannerlinsley and I am always in need of more Patreon support to keep this project afloat. If you would like to contribute to my Patreon goal for v7 and beyond, [visit my Patreon and help me out!](https://patreon.com/tannerlinsley)\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/platinum.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://tryretool.com/?utm_source=sponsor&utm_campaign=react_table\" target=\"_blank\">\n          <img width='350' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-retool.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"http://bjntech.com/index.html?utm_campaign=react_table\" target=\"_blank\">\n          <img width='250' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-bjn.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/gold.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://nozzle.io\" target=\"_blank\">\n          <img width='230' src=\"https://nozzle.io/img/logo-blue.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://zappi.io/web/\" target=\"_blank\">\n          <img width='230' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-zappi.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://patreon.com/tannerlinsley\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/supporters.png\" />\n        </a>\n      </td>\n      <td>\n        <div><a href=\"https://www.metso.com/\">Pekka</a></div>\n        <div>Jon Eickmeier</div>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://patreon.com/tannerlinsley\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/fans.png\" />\n        </a>\n      </td>\n      <td>\n        <div>Sortmy.games</div>\n        <div>Hugo Meissner</div>\n        <div>Benoit Leger-Derville</div>\n        <div>Thomas Funk</div>\n        <div>Dan Houle</div>\n        <div>David Pickut</div>\n        <div>Jordan Soltman</div>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<a href=\"https://patreon.com/tannerlinsley\">\n  <img width=\"150\" alt=\"\" src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/become-a-patron.png\" />\n</a>\n","licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.0-beta.0","dist":{"shasum":"2ba60ce9faa8286c2c8ebe668efdd14308129ccf","integrity":"sha512-ddPDtsGMAq1m4Mh/pIn1uUaGAUikS52YMAfOhduKQkz+3UuQVqcUU44C6e8/9S7GZrMB+Vp1MwqmHJwR5ciW/g==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.0-beta.0.tgz","fileCount":42,"unpackedSize":495330,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJde7E0CRA9TVsSAnZWagAA6bQP/RGixvdJFNz7J6ux/BdN\n4QIaNyxPaHjgB+5icku0Z/c1yLGBK5I8pUXMrWUr00cHPNbA3IiVL6zkKAMG\nOnjaZzSanOMbc5+wjhUNAHMOzEDzHPEVRbRb3JOrVjmf7X+N9ezBXSLaUI9b\n6zWiPO/EqpkdYAHLtsXqrDWL2olVfhP2+/IB6C2xApnR+ngADKYgoHaXxAvy\nNLQySCAZ+8C13um8jmQnJsVLyzcW4gRr4z2F7ypUpEkYfgvMYIVWsUYIDmyK\nUdFq8NYGATfE+5u5EP3QkpnWGgDIgyhVDknSjGCVoayqLby7heBLRtmZSgWs\nO4+L4roQvPGJj0hCjV+y3+OZTXkG/fiZM4Cqd60/jk3y3zwYGaBwqzvadMjT\nq1pLB6RCDko6TEdNH1sIKwVQ0KNY7LIDgFSgMIC1lFuwp8JfHDUv+K5SwFHu\nf8yoQcu17SVb1bCoNiwP1RZn3UqHpadGJkLqd2vUcEXJ3U+qkf8bsFz76qJs\ngnq9R3xH2Vd/MfzFmYIm2Tg83LMz5jOUBdlyMW3DlNBj4qmfZnKZWTjnTBjB\nP/eZ9oVzx0bof9d4d8zUq+lxskB+tafORxdVMcXaoIWkmlen+fHmF+osyt1/\nKorNrRTYb5XfLzaNZHy8Pwh876FPvvx/akBRFhk2L2VxQ09QLT7WtxUVGtXT\nltZz\r\n=+OIs\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICau0b2KxmERiyw7hp6Mzak5HMmhBUO4ir2gZ/ANIVT7AiEA+A8QCj7wK3RZpuVeY2gaJsOxi3M8Y6YFoQrq75kfJOQ="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.0-beta.0_1568387379399_0.7521796583891822"},"_hasShrinkwrap":false},"7.0.0-beta.1":{"name":"react-table","version":"7.0.0-beta.1","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"dist/index.js","module":"dist/index.es.js","jsnext:main":"dist/index.es.js","scripts":{"commit":"git add . && git-cz","test":"is-ci 'test:ci' 'test:dev'","test:dev":"jest --watch","test:ci":"jest","build":"rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,examples/*/src,examples/*/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"prop-types":"^15.5.0","react":"^16.8.3","react-dom":"^16.8.3"},"devDependencies":{"@babel/core":"^7.5.5","@babel/plugin-proposal-class-properties":"^7.5.5","@babel/preset-env":"^7.5.5","@babel/preset-react":"^7.0.0","@babel/runtime":"^7.5.5","@commitlint/cli":"^8.1.0","@commitlint/config-conventional":"^8.1.0","@svgr/rollup":"^4.3.2","@testing-library/dom":"^6.0.0","@testing-library/jest-dom":"^4.0.0","@testing-library/react":"^9.1.1","babel-eslint":"9.x","commitizen":"^4.0.3","core-js":"3.2.1","cross-env":"^5.2.0","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^8.0.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.14.3","eslint-plugin-react-hooks":"1.7.0","eslint-plugin-standard":"^4.0.0","husky":"^3.0.3","is-ci-cli":"^1.1.1","jest":"^24.8.0","jest-cli":"^24.8.0","jest-runner-eslint":"^0.7.4","jest-watch-select-projects":"^0.1.2","jest-watch-typeahead":"^0.3.1","lint-staged":"^9.2.1","prettier":"^1.18.2","prop-types":"^15.5.0","react":"^16.9.0","react-dom":"^16.9.0","rollup":"^0.68.0","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^9.1.3","rollup-plugin-node-resolve":"^4.0.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-uglify":"^6.0.2","snapshot-diff":"^0.5.2"},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"browserslist":"> 0.25%, not dead","readmeFilename":"README.md","readme":"![React Table Header](https://github.com/tannerlinsley/react-table/raw/master/media/header.png)\n\n<img src='https://github.com/tannerlinsley/react-table/raw/master/media/logo.png' width='300'/>\n\nHooks for building **lightweight, fast and extendable datagrids** for React\n\n<a href=\"https://travis-ci.org/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://travis-ci.org/tannerlinsley/react-table.svg?branch=master\" />\n</a>\n<a href=\"https://npmjs.com/package/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-table.svg\" />\n</a>\n<a href=\"https://spectrum.chat/react-table\">\n  <img alt=\"Join the community on Spectrum\" src=\"https://withspectrum.github.io/badge/badge.svg\" />\n</a>\n<a href=\"https://github.com/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-table.svg?style=social&label=Star\" />\n</a>\n<a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n<br />\n<br />\n<a href=\"https://patreon.com/tannerlinsley\">\n  <img width=\"180\" alt=\"\" src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/become-a-patron.png\" />\n</a>\n\n<br />\n<br />\n\n## Features\n\n- Lightweight (4kb - 11kb depending on features and tree-shaking)\n- Headless (100% customizable, Bring-your-own-UI)\n- Auto out of the box, fully controllable API\n- Sorting (Multi and Stable)\n- Filters\n- Pivoting & Aggregation\n- Row Selection\n- Row Expansion\n- Column Ordering\n- Animatable\n- Server-side/controlled data/state\n- Extensible via hook-based plugin system\n- <a href=\"https://medium.com/@tannerlinsley/why-i-wrote-react-table-and-the-problems-it-has-solved-for-nozzle-others-445c4e93d4a8#.axza4ixba\" target=\"\\_parent\">\"Why I wrote React Table and the problems it has solved for Nozzle.io\"</a> by Tanner Linsley\n\n## News / Q&A\n\n#### What is the current state of React Table?\n\nReact Table v7 is still under active development, and its API is still changing, albeit only slightly. For this reason, it is currently in an **beta** release state. It's estimated that it will be fully released as a stable version sometime during October 2019.\n\n#### Should I use v7@beta in production?\n\nYou can use it production as long as you lock in the beta version in your package.json and also accept that there may be unlikely, but possible bug fixes and/or API changes before it's official release.\n\n#### I'm still using v6, what should I do?\n\nv6 is a great library and is still the default install for `react-table`, however, I do not intend on offering any long-term support for it. If you intend to keep using v6, I recommend maintaining your own fork of the library and keeping it up to date for your version of React.\n\n#### Where are the docs for the older v6 version?\n\nPlease [visit the v6 branch](https://github.com/tannerlinsley/react-table/tree/v6)\n\n#### I want to migrate from v6 to v7. How do I do that?\n\nThe differences between the 2 versions are incredibly massive. Unfortunately, I cannot write a one-to-one upgrade guide for any of v6's API, simply because much of it is irrelevant with v7's headless approach. The best approach for migrating to v7 is to learn its API by reading the documentation and then following some of the examples to begin building your own table component.\n\n## Documentation\n\n- [Installation](./docs/installation.md) - Walk through how to install React Table\n- [Concepts](./docs/concepts.md) - Read how React Table works and how you can use it better\n- [Examples](./docs/examples.md) - Experience and learn from some examples and guides of how to use React Table and implement common patterns\n- [API](./docs/api.md) - Get to know React Table's API, how to use it and how to extend its functionality\n- [Contributing](./CONTRIBUTING.md) - Become familiar with how to contribute back to React Table\n- [Code of Conduct](./CODE_OF_CONDUCT.md) - Be a good React Table citizen by following these repository rules\n\n## Sponsors\n\n**React Table v7** is being built and maintained by me, @tannerlinsley and I am always in need of more Patreon support to keep this project afloat. If you would like to contribute to my Patreon goal for v7 and beyond, [visit my Patreon and help me out!](https://patreon.com/tannerlinsley)\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/platinum.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://tryretool.com/?utm_source=sponsor&utm_campaign=react_table\" target=\"_blank\">\n          <img width='350' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-retool.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"http://bjntech.com/index.html?utm_campaign=react_table\" target=\"_blank\">\n          <img width='250' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-bjn.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/gold.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://nozzle.io\" target=\"_blank\">\n          <img width='230' src=\"https://nozzle.io/img/logo-blue.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://zappi.io/web/\" target=\"_blank\">\n          <img width='230' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-zappi.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://patreon.com/tannerlinsley\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/supporters.png\" />\n        </a>\n      </td>\n      <td>\n        <div><a href=\"https://www.metso.com/\">Pekka</a></div>\n        <div>Jon Eickmeier</div>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://patreon.com/tannerlinsley\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/fans.png\" />\n        </a>\n      </td>\n      <td>\n        <div>Sortmy.games</div>\n        <div>Hugo Meissner</div>\n        <div>Benoit Leger-Derville</div>\n        <div>Thomas Funk</div>\n        <div>Dan Houle</div>\n        <div>David Pickut</div>\n        <div>Jordan Soltman</div>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<a href=\"https://patreon.com/tannerlinsley\">\n  <img width=\"150\" alt=\"\" src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/become-a-patron.png\" />\n</a>\n","licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.0-beta.1","dist":{"shasum":"9e27e559a0e145f0d615fab398f9c635212510fb","integrity":"sha512-63fZR8yo0g+OHAEo+DAbmcczLaxBi1lJmGgSH6+lziZnaOfYPhu+gSFzW03BCzdk19oyS/2MQjU1EjviwJeAKw==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.0-beta.1.tgz","fileCount":42,"unpackedSize":497603,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdjQ/fCRA9TVsSAnZWagAAtoYP/3hI3b46YF1vGhN3wryT\nx7r97JoxDowuHVFz1nD4MaKZ/LQipSw0F32TDtnsqwH25QXuy84aJMY7sage\ngVHUdNxNKcTR8qa0dUMCs1Ks9O11/Ndyd+SxW4c3vukyd+f/JyeD/Bl+N+F/\nxlY2zPcwjWM2Nwn/HZRqbDzIGRqGktw91c9rdptT2ZJ9Qu7JkY177yPMI3Kv\n2fAsp4dyVRxiYpuSJo+JEARH7pE3GQgkoqHd+TvrJiogQwj5veU0wqnfu1Nb\nOQoIb9/EBEDANK/VP3RrGVj5ALu2R4Nex9dodvf49c4c+05v/QGT1ySG7EPV\nvMzOTpqsDO4ImeTv4TjTXWNdeF8HdcIJ4nASHuI4e48SNZ0SXrqiZAPuxuxK\nmZiX+SY5XLxY2tWdM779bV/TlgDo7Iv9+8DWPTK2w81WdeHez6VMHl4hRFld\nJHjKLjuuDljDhNAMjXxsHV8TqKYwpBFkvEowGY6jEZB1N2XMMixLFYKUKJ0c\n/54KX01ucpsix3kZsCGsJkRLD47pB4zPNj+w3u5GMtlpDY219bX8k/lkBfmm\naV+XJe9zk3QLrJFcjwogm15ucaYBlR5i4vSCmi2aWwLWW9T65htYWxkIX0Kl\niO30pgiLOsKGObQPjTf6J2fmVaunLdWVRw+Twv77V02UW1Whd7ZP3lrlAWrx\nITNe\r\n=irYk\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC7MLtytVeWuyXI9AB5VVMwFQZD/lT1Hhu/Xr/WjVyZoQIgc1y9pYJkUke4eYal1l/HndhjCIAkxune41L7Udajk4A="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.0-beta.1_1569525727086_0.9784118407886455"},"_hasShrinkwrap":false},"7.0.0-beta.2":{"name":"react-table","version":"7.0.0-beta.2","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"dist/index.js","module":"dist/index.es.js","jsnext:main":"dist/index.es.js","scripts":{"commit":"git add . && git-cz","test":"is-ci 'test:ci' 'test:dev'","test:dev":"jest --watch","test:ci":"jest","build":"rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,examples/*/src,examples/*/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"prop-types":"^15.5.0","react":"^16.8.3","react-dom":"^16.8.3"},"devDependencies":{"@babel/core":"^7.5.5","@babel/plugin-proposal-class-properties":"^7.5.5","@babel/preset-env":"^7.5.5","@babel/preset-react":"^7.0.0","@babel/runtime":"^7.5.5","@commitlint/cli":"^8.1.0","@commitlint/config-conventional":"^8.1.0","@svgr/rollup":"^4.3.2","@testing-library/dom":"^6.0.0","@testing-library/jest-dom":"^4.0.0","@testing-library/react":"^9.1.1","babel-eslint":"9.x","commitizen":"^4.0.3","core-js":"3.2.1","cross-env":"^5.2.0","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^8.0.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.14.3","eslint-plugin-react-hooks":"1.7.0","eslint-plugin-standard":"^4.0.0","husky":"^3.0.3","is-ci-cli":"^1.1.1","jest":"^24.8.0","jest-cli":"^24.8.0","jest-runner-eslint":"^0.7.4","jest-watch-select-projects":"^0.1.2","jest-watch-typeahead":"^0.3.1","lint-staged":"^9.2.1","prettier":"^1.18.2","prop-types":"^15.5.0","react":"^16.9.0","react-dom":"^16.9.0","rollup":"^0.68.0","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^9.1.3","rollup-plugin-node-resolve":"^4.0.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-uglify":"^6.0.2","snapshot-diff":"^0.5.2"},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"browserslist":"> 0.25%, not dead","readmeFilename":"README.md","readme":"![React Table Header](https://github.com/tannerlinsley/react-table/raw/master/media/header.png)\n\n<img src='https://github.com/tannerlinsley/react-table/raw/master/media/logo.png' width='300'/>\n\nHooks for building **lightweight, fast and extendable datagrids** for React\n\n<a href=\"https://travis-ci.org/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://travis-ci.org/tannerlinsley/react-table.svg?branch=master\" />\n</a>\n<a href=\"https://bundlephobia.com/result?p=react-table@next\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-table@next\" />\n</a>\n<a href=\"https://npmjs.com/package/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-table.svg\" />\n</a>\n<a href=\"https://spectrum.chat/react-table\">\n  <img alt=\"Join the community on Spectrum\" src=\"https://withspectrum.github.io/badge/badge.svg\" />\n</a>\n<a href=\"https://github.com/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-table.svg?style=social&label=Star\" />\n</a>\n<a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n<br />\n<br />\n<a href=\"https://patreon.com/tannerlinsley\">\n  <img width=\"180\" alt=\"\" src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/become-a-patron.png\" />\n</a>\n\n<br />\n<br />\n\n## Features\n\n- Lightweight (4kb - 9kb depending on features and tree-shaking)\n- Headless (100% customizable, Bring-your-own-UI)\n- Auto out of the box, fully controllable API\n- Sorting (Multi and Stable)\n- Filters\n- Pivoting & Aggregation\n- Row Selection\n- Row Expansion\n- Column Ordering\n- Animatable\n- Server-side/controlled data/state\n- Extensible via hook-based plugin system\n- <a href=\"https://medium.com/@tannerlinsley/why-i-wrote-react-table-and-the-problems-it-has-solved-for-nozzle-others-445c4e93d4a8#.axza4ixba\" target=\"\\_parent\">\"Why I wrote React Table and the problems it has solved for Nozzle.io\"</a> by Tanner Linsley\n\n## News / Q&A\n\n#### What is the current state of React Table?\n\nReact Table v7 is still under active development, and its API is still changing, albeit only slightly. For this reason, it is currently in an **beta** release state. It's estimated that it will be fully released as a stable version sometime during October 2019.\n\n#### Should I use v7@beta in production?\n\nYou can use it in production as long as you lock in the beta version in your package.json and also accept that there may be unlikely, but possible bug fixes and/or API changes before it's official release.\n\n#### I'm still using v6, what should I do?\n\nv6 is a great library and is still the default install for `react-table`, however, I do not intend on offering any long-term support for it. If you intend to keep using v6, I recommend maintaining your own fork of the library and keeping it up to date for your version of React.\n\n#### Where are the docs for the older v6 version?\n\nPlease [visit the v6 branch](https://github.com/tannerlinsley/react-table/tree/v6)\n\n#### I want to migrate from v6 to v7. How do I do that?\n\nThe differences between the 2 versions are incredibly massive. Unfortunately, I cannot write a one-to-one upgrade guide for any of v6's API, simply because much of it is irrelevant with v7's headless approach. The best approach for migrating to v7 is to learn its API by reading the documentation and then following some of the examples to begin building your own table component.\n\n## Documentation\n\n- [Installation](./docs/installation.md) - Walk through how to install React Table\n- [Concepts](./docs/concepts.md) - Read how React Table works and how you can use it better\n- [Examples](./docs/examples.md) - Experience and learn from some examples and guides of how to use React Table and implement common patterns\n- [API](./docs/api.md) - Get to know React Table's API, how to use it and how to extend its functionality\n- [Contributing](./CONTRIBUTING.md) - Become familiar with how to contribute back to React Table\n- [Code of Conduct](./CODE_OF_CONDUCT.md) - Be a good React Table citizen by following these repository rules\n\n## Sponsors\n\n**React Table v7** is being built and maintained by me, @tannerlinsley and I am always in need of more Patreon support to keep this project afloat. If you would like to contribute to my Patreon goal for v7 and beyond, [visit my Patreon and help me out!](https://patreon.com/tannerlinsley)\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/platinum.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://tryretool.com/?utm_source=sponsor&utm_campaign=react_table\" target=\"_blank\">\n          <img width='350' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-retool.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"http://bjntech.com/index.html?utm_campaign=react_table\" target=\"_blank\">\n          <img width='250' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-bjn.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/gold.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://nozzle.io\" target=\"_blank\">\n          <img width='230' src=\"https://nozzle.io/img/logo-blue.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://zappi.io/web/\" target=\"_blank\">\n          <img width='230' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-zappi.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://patreon.com/tannerlinsley\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/supporters.png\" />\n        </a>\n      </td>\n      <td>\n        <div><a href=\"https://www.metso.com/\">Pekka</a></div>\n        <div>Jon Eickmeier</div>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://patreon.com/tannerlinsley\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/fans.png\" />\n        </a>\n      </td>\n      <td>\n        <div>Sortmy.games</div>\n        <div>Hugo Meissner</div>\n        <div>Benoit Leger-Derville</div>\n        <div>Thomas Funk</div>\n        <div>Dan Houle</div>\n        <div>David Pickut</div>\n        <div>Jordan Soltman</div>\n        <div>Robert Tajnšek</div>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<a href=\"https://patreon.com/tannerlinsley\">\n  <img width=\"150\" alt=\"\" src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/become-a-patron.png\" />\n</a>\n","licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.0-beta.2","dist":{"shasum":"47cfeb3615fd959da14131f2bd34b2d536aba3ef","integrity":"sha512-QcSciMyAEwehhI6eP7ay/J26G6GYz4+MejrspkcWHQylMrRjQqWmxbrsaI9mdwyzUUaBjw9mHwGO9b742hOnPg==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.0-beta.2.tgz","fileCount":42,"unpackedSize":501233,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdkgQECRA9TVsSAnZWagAAsNgP/j2aUqv3toBqy6yXGc4Q\noi9zwZXCBx9w4EKOoa+0g4rFKLiim9jeOwhYh8arJtgULS61W9okU9iOrKU9\nYJbuPCQBl3TQNIrxSEfD8N8NEtTBmunQkzxfSbJ6FACbfcWLCmXY7KrRq5RO\n39UQWEiC3UgpWNqEgpmV+yryjSu9/Y1GHh1cXUNplNcbWtyBPGMfzTZnYfoj\nXumfy2/08kHmMVda83anBV1KVJMQW96TNjW+4ouRKeWeyB8EJ0tG7QPq8ioe\n5y/LPH4Gt3dv6m1doK32dmAMSJ9IEkTbCrfYKAOsDdD/gwIGpfPflrd+1lcQ\nQpRTac+NhrUxndeoi79J+ttNSJnx+q6Hajs6YDmI+FQVN6qZI03tjoxs2O6j\nZZEbpuZYbcrXIllXd0kIj2vyh+I+DXFYhsbRwdzqPqsUj0XIWaV+FQ1AtvOm\nRmblVsLEurdBItvHA1TECbahINU1Mfrvq4bxrQV4lrqOzR0Jwk9iJz3YwMUO\nAguVHeu7N7DHzayipKcWifTHqevT68r5j/+l+HD0Dj8QNf3JlZHlSPzxZMgV\nLzT1Y1QRC+kSL6jPcdQXdP5ZZ3JRFhk7KFlneW0rMexApQatvuTLBp0Egtj4\nf0+9NM/ptcv5lKnvhbwkRmzWHG1dghwJxxz43CntKaKuxFbm2X9G/VftWm0U\n7IXG\r\n=7KT9\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCvu3Dk3syE26RPqhGePfOiS4rttRzeY5vVs+PByQBY2QIgLcWv2TmhUdPNQrS44G8ykuQ7RMLx7WXU5FXl63NJypU="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.0-beta.2_1569850371680_0.9235142051020033"},"_hasShrinkwrap":false},"7.0.0-beta.3":{"name":"react-table","version":"7.0.0-beta.3","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"dist/index.js","module":"dist/index.es.js","jsnext:main":"dist/index.es.js","scripts":{"commit":"git add . && git-cz","test":"is-ci 'test:ci' 'test:dev'","test:dev":"jest --watch","test:ci":"jest","build":"rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,examples/*/src,examples/*/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"prop-types":"^15.5.0","react":"^16.8.3","react-dom":"^16.8.3"},"devDependencies":{"@babel/core":"^7.5.5","@babel/plugin-proposal-class-properties":"^7.5.5","@babel/preset-env":"^7.5.5","@babel/preset-react":"^7.0.0","@babel/runtime":"^7.5.5","@commitlint/cli":"^8.1.0","@commitlint/config-conventional":"^8.1.0","@svgr/rollup":"^4.3.2","@testing-library/dom":"^6.0.0","@testing-library/jest-dom":"^4.0.0","@testing-library/react":"^9.1.1","babel-eslint":"9.x","commitizen":"^4.0.3","core-js":"3.2.1","cross-env":"^5.2.0","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^8.0.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.14.3","eslint-plugin-react-hooks":"1.7.0","eslint-plugin-standard":"^4.0.0","husky":"^3.0.3","is-ci-cli":"^1.1.1","jest":"^24.8.0","jest-cli":"^24.8.0","jest-runner-eslint":"^0.7.4","jest-watch-select-projects":"^0.1.2","jest-watch-typeahead":"^0.3.1","lint-staged":"^9.2.1","prettier":"^1.18.2","prop-types":"^15.5.0","react":"^16.9.0","react-dom":"^16.9.0","rollup":"^0.68.0","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^9.1.3","rollup-plugin-node-resolve":"^4.0.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-uglify":"^6.0.2","snapshot-diff":"^0.5.2"},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"browserslist":"> 0.25%, not dead","readmeFilename":"README.md","readme":"![React Table Header](https://github.com/tannerlinsley/react-table/raw/master/media/header.png)\n\n<img src='https://github.com/tannerlinsley/react-table/raw/master/media/logo.png' width='300'/>\n\nHooks for building **lightweight, fast and extendable datagrids** for React\n\n<a href=\"https://travis-ci.org/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://travis-ci.org/tannerlinsley/react-table.svg?branch=master\" />\n</a>\n<a href=\"https://bundlephobia.com/result?p=react-table@next\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-table@next\" />\n</a>\n<a href=\"https://npmjs.com/package/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-table.svg\" />\n</a>\n<a href=\"https://spectrum.chat/react-table\">\n  <img alt=\"Join the community on Spectrum\" src=\"https://withspectrum.github.io/badge/badge.svg\" />\n</a>\n<a href=\"https://github.com/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-table.svg?style=social&label=Star\" />\n</a>\n<a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n<br />\n<br />\n<a href=\"https://patreon.com/tannerlinsley\">\n  <img width=\"180\" alt=\"\" src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/become-a-patron.png\" />\n</a>\n\n<br />\n<br />\n\n## Features\n\n- Lightweight (4kb - 9kb depending on features and tree-shaking)\n- Headless (100% customizable, Bring-your-own-UI)\n- Auto out of the box, fully controllable API\n- Sorting (Multi and Stable)\n- Filters\n- Pivoting & Aggregation\n- Row Selection\n- Row Expansion\n- Column Ordering\n- Animatable\n- Server-side/controlled data/state\n- Extensible via hook-based plugin system\n- <a href=\"https://medium.com/@tannerlinsley/why-i-wrote-react-table-and-the-problems-it-has-solved-for-nozzle-others-445c4e93d4a8#.axza4ixba\" target=\"\\_parent\">\"Why I wrote React Table and the problems it has solved for Nozzle.io\"</a> by Tanner Linsley\n\n## News / Q&A\n\n#### What is the current state of React Table?\n\nReact Table v7 is still under active development, and its API is still changing, albeit only slightly. For this reason, it is currently in an **beta** release state. It's estimated that it will be fully released as a stable version sometime during October 2019.\n\n#### Should I use v7@beta in production?\n\nYou can use it in production as long as you lock in the beta version in your package.json and also accept that there may be unlikely, but possible bug fixes and/or API changes before it's official release.\n\n#### I'm still using v6, what should I do?\n\nv6 is a great library and is still the default install for `react-table`, however, I do not intend on offering any long-term support for it. If you intend to keep using v6, I recommend maintaining your own fork of the library and keeping it up to date for your version of React.\n\n#### Where are the docs for the older v6 version?\n\nPlease [visit the v6 branch](https://github.com/tannerlinsley/react-table/tree/v6)\n\n#### I want to migrate from v6 to v7. How do I do that?\n\nThe differences between the 2 versions are incredibly massive. Unfortunately, I cannot write a one-to-one upgrade guide for any of v6's API, simply because much of it is irrelevant with v7's headless approach. The best approach for migrating to v7 is to learn its API by reading the documentation and then following some of the examples to begin building your own table component.\n\n## Documentation\n\n- [Installation](./docs/installation.md) - Walk through how to install React Table\n- [Concepts](./docs/concepts.md) - Read how React Table works and how you can use it better\n- [Examples](./docs/examples.md) - Experience and learn from some examples and guides of how to use React Table and implement common patterns\n- [API](./docs/api.md) - Get to know React Table's API, how to use it and how to extend its functionality\n- [Contributing](./CONTRIBUTING.md) - Become familiar with how to contribute back to React Table\n- [Code of Conduct](./CODE_OF_CONDUCT.md) - Be a good React Table citizen by following these repository rules\n\n## Sponsors\n\n**React Table v7** is being built and maintained by me, @tannerlinsley and I am always in need of more Patreon support to keep this project afloat. If you would like to contribute to my Patreon goal for v7 and beyond, [visit my Patreon and help me out!](https://patreon.com/tannerlinsley)\n\n<table>\n  <tbody {...getTableBodyProps()}>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/platinum.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://tryretool.com/?utm_source=sponsor&utm_campaign=react_table\" target=\"_blank\">\n          <img width='350' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-retool.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"http://bjntech.com/index.html?utm_campaign=react_table\" target=\"_blank\">\n          <img width='250' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-bjn.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody {...getTableBodyProps()}>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/gold.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://nozzle.io\" target=\"_blank\">\n          <img width='230' src=\"https://nozzle.io/img/logo-blue.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://zappi.io/web/\" target=\"_blank\">\n          <img width='230' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-zappi.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody {...getTableBodyProps()}>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody {...getTableBodyProps()}>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://patreon.com/tannerlinsley\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/supporters.png\" />\n        </a>\n      </td>\n      <td>\n        <div><a href=\"https://www.metso.com/\">Pekka</a></div>\n        <div>Jon Eickmeier</div>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody {...getTableBodyProps()}>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://patreon.com/tannerlinsley\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/fans.png\" />\n        </a>\n      </td>\n      <td>\n        <div>Sortmy.games</div>\n        <div>Hugo Meissner</div>\n        <div>Benoit Leger-Derville</div>\n        <div>Thomas Funk</div>\n        <div>Dan Houle</div>\n        <div>David Pickut</div>\n        <div>Jordan Soltman</div>\n        <div>Robert Tajnšek</div>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<a href=\"https://patreon.com/tannerlinsley\">\n  <img width=\"150\" alt=\"\" src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/become-a-patron.png\" />\n</a>\n","licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.0-beta.3","dist":{"shasum":"63e2e6ba3d20cafadeb649cbe1eb9fe518b137e2","integrity":"sha512-vZCzNR8YM1T4j1jhDQxRrLqavK8CJacxHA4sIM/vqr+o3SgGB9ecNDleGvEbDm8vnim7dflqMnGDXOIe3sE6xg==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.0-beta.3.tgz","fileCount":46,"unpackedSize":530218,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdk7EyCRA9TVsSAnZWagAAsT4P/3aEKAS0eJYS+ZIHfR1i\nJe+MqHcbZV7125+0xXB2fZXEjPxv3CPe0ckZ1t7irlfNIA6NHBWKI+9dKf37\nt2hR2+R5XWw3aeYTNEvZp8vDm6wh54WysWayIFwV/JhscjkK2qbGmeMT5Iut\nsqI6yqJLJEpH2PbrIi8EheFvmR9acf9ObiJ8+3ZMiE0mRrutFAu4lmdwJ/sg\n1yQSlWAN7R94qXO4nJm0yVvcgrzR8lYGnmiuiYrFRDoTsUjXI7ctoeeG5rVm\nZ7Ek+1ynPVbR5zwlDzI+FXwy6wCjnrcMy8epM5V5ZXKAp0nIWbgBJq4OHxG3\n+6A2vZPGo8X6eD6DT9amZK7VUVJ7l/kUgf/q7oNqztSij94/c0aM0XdxwfoB\niwkz/fttDgdJQR6ouaDGuz0x526QEEDjJjLk4ccjx65qKS7mp23+BSE6l8bF\nGGjijfAtoT2JQ/RdJ8Ac44rF+V36+PNqWrUjcmy9nc0Kfv3D6ae1ZpeGop7N\nCN05k6ZR6JbP2kZXhwJ334O059KAXvSLKKRf1ic3EUCswAiny1oq68l9CHc2\ncZVcdU1PYxnuxDSMarxjSfbgzs6KqMWkt64mhz/bmV2eIkyg/3b9C4OqUL9n\n/DfxQUGxh4rWt/QJ5v9byV7tsUufUWKqJAcvXyEcXzkGmyw/xL2Z7ABVV2SK\nGpsu\r\n=LLjx\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDd/Q9v25XHMxePQ2pssfAVCe9PUdsHAUhGMz3RYgl5vAIhAM+pwq/eeAooKNK65L2y16nhczVRZf+PMf87UXU/stJa"}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.0-beta.3_1569960241446_0.8568375426440746"},"_hasShrinkwrap":false},"7.0.0-beta.4":{"name":"react-table","version":"7.0.0-beta.4","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"dist/index.js","module":"dist/index.es.js","jsnext:main":"dist/index.es.js","sideEffects":false,"scripts":{"commit":"git add . && git-cz","test":"is-ci 'test:ci' 'test:dev'","test:dev":"jest --watch","test:ci":"jest","build":"rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,examples/*/src,examples/*/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"prop-types":"^15.5.0","react":"^16.8.3","react-dom":"^16.8.3"},"devDependencies":{"@babel/core":"^7.5.5","@babel/plugin-proposal-class-properties":"^7.5.5","@babel/preset-env":"^7.5.5","@babel/preset-react":"^7.0.0","@babel/runtime":"^7.5.5","@commitlint/cli":"^8.1.0","@commitlint/config-conventional":"^8.1.0","@svgr/rollup":"^4.3.2","@testing-library/dom":"^6.0.0","@testing-library/jest-dom":"^4.0.0","@testing-library/react":"^9.1.1","babel-eslint":"9.x","commitizen":"^4.0.3","core-js":"3.2.1","cross-env":"^5.2.0","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^8.0.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.14.3","eslint-plugin-react-hooks":"1.7.0","eslint-plugin-standard":"^4.0.0","husky":"^3.0.3","is-ci-cli":"^1.1.1","jest":"^24.8.0","jest-cli":"^24.8.0","jest-runner-eslint":"^0.7.4","jest-watch-select-projects":"^0.1.2","jest-watch-typeahead":"^0.3.1","lint-staged":"^9.2.1","prettier":"^1.18.2","prop-types":"^15.5.0","react":"^16.9.0","react-dom":"^16.9.0","rollup":"^0.68.0","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^9.1.3","rollup-plugin-node-resolve":"^4.0.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-uglify":"^6.0.2","snapshot-diff":"^0.5.2"},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"browserslist":"> 0.25%, not dead","readmeFilename":"README.md","readme":"![React Table Header](https://github.com/tannerlinsley/react-table/raw/master/media/header.png)\n\n<img src='https://github.com/tannerlinsley/react-table/raw/master/media/logo.png' width='300'/>\n\nHooks for building **lightweight, fast and extendable datagrids** for React\n\n<a href=\"https://travis-ci.org/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://travis-ci.org/tannerlinsley/react-table.svg?branch=master\" />\n</a>\n<a href=\"https://bundlephobia.com/result?p=react-table@next\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-table@next\" />\n</a>\n<a href=\"https://npmjs.com/package/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-table.svg\" />\n</a>\n<a href=\"https://spectrum.chat/react-table\">\n  <img alt=\"Join the community on Spectrum\" src=\"https://withspectrum.github.io/badge/badge.svg\" />\n</a>\n<a href=\"https://github.com/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-table.svg?style=social&label=Star\" />\n</a>\n<a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n<br />\n<br />\n<a href=\"https://patreon.com/tannerlinsley\">\n  <img width=\"180\" alt=\"\" src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/become-a-patron.png\" />\n</a>\n\n<br />\n<br />\n\n## Features\n\n- Lightweight (4kb - 9kb depending on features and tree-shaking)\n- Headless (100% customizable, Bring-your-own-UI)\n- Auto out of the box, fully controllable API\n- Sorting (Multi and Stable)\n- Filters\n- Pivoting & Aggregation\n- Row Selection\n- Row Expansion\n- Column Ordering\n- Animatable\n- Virtualizable\n- Server-side/controlled data/state\n- Extensible via hook-based plugin system\n- <a href=\"https://medium.com/@tannerlinsley/why-i-wrote-react-table-and-the-problems-it-has-solved-for-nozzle-others-445c4e93d4a8#.axza4ixba\" target=\"\\_parent\">\"Why I wrote React Table and the problems it has solved for Nozzle.io\"</a> by Tanner Linsley\n\n## News / Q&A\n\n#### What is the current state of React Table?\n\nReact Table v7 is still under active development, and its API is still changing, albeit only slightly. For this reason, it is currently in an **beta** release state. It's estimated that it will be fully released as a stable version sometime during October 2019.\n\n#### Should I use v7@beta in production?\n\nYou can use it in production as long as you lock in the beta version in your package.json and also accept that there may be unlikely, but possible bug fixes and/or API changes before it's official release.\n\n#### I'm still using v6, what should I do?\n\nv6 is a great library and is still the default install for `react-table`, however, I do not intend on offering any long-term support for it. If you intend to keep using v6, I recommend maintaining your own fork of the library and keeping it up to date for your version of React.\n\n#### Where are the docs for the older v6 version?\n\nPlease [visit the v6 branch](https://github.com/tannerlinsley/react-table/tree/v6)\n\n#### I want to migrate from v6 to v7. How do I do that?\n\nThe differences between the 2 versions are incredibly massive. Unfortunately, I cannot write a one-to-one upgrade guide for any of v6's API, simply because much of it is irrelevant with v7's headless approach. The best approach for migrating to v7 is to learn its API by reading the documentation and then following some of the examples to begin building your own table component.\n\n## Documentation\n\n- [Installation](./docs/installation.md) - Walk through how to install React Table\n- [Concepts](./docs/concepts.md) - Read how React Table works and how you can use it better\n- [Examples](./docs/examples.md) - Experience and learn from some examples and guides of how to use React Table and implement common patterns\n- [API](./docs/api.md) - Get to know React Table's API, how to use it and how to extend its functionality\n- [Contributing](./CONTRIBUTING.md) - Become familiar with how to contribute back to React Table\n- [Code of Conduct](./CODE_OF_CONDUCT.md) - Be a good React Table citizen by following these repository rules\n\n## Sponsors\n\n**React Table v7** is being built and maintained by me, @tannerlinsley and I am always in need of more Patreon support to keep this project afloat. If you would like to contribute to my Patreon goal for v7 and beyond, [visit my Patreon and help me out!](https://patreon.com/tannerlinsley)\n\n<table>\n  <tbody {...getTableBodyProps()}>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/platinum.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://tryretool.com/?utm_source=sponsor&utm_campaign=react_table\" target=\"_blank\">\n          <img width='350' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-retool.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"http://bjntech.com/index.html?utm_campaign=react_table\" target=\"_blank\">\n          <img width='250' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-bjn.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody {...getTableBodyProps()}>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/gold.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://nozzle.io\" target=\"_blank\">\n          <img width='230' src=\"https://nozzle.io/img/logo-blue.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://zappi.io/web/\" target=\"_blank\">\n          <img width='230' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-zappi.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody {...getTableBodyProps()}>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody {...getTableBodyProps()}>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://patreon.com/tannerlinsley\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/supporters.png\" />\n        </a>\n      </td>\n      <td>\n        <div><a href=\"https://www.metso.com/\">Pekka</a></div>\n        <div>Jon Eickmeier</div>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody {...getTableBodyProps()}>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://patreon.com/tannerlinsley\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/fans.png\" />\n        </a>\n      </td>\n      <td>\n        <div>Sortmy.games</div>\n        <div>Hugo Meissner</div>\n        <div>Benoit Leger-Derville</div>\n        <div>Thomas Funk</div>\n        <div>Dan Houle</div>\n        <div>David Pickut</div>\n        <div>Jordan Soltman</div>\n        <div>Robert Tajnšek</div>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<a href=\"https://patreon.com/tannerlinsley\">\n  <img width=\"150\" alt=\"\" src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/become-a-patron.png\" />\n</a>\n","licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.0-beta.4","dist":{"shasum":"60d97caf41313f436ec05785362c94de456b13e5","integrity":"sha512-FDjX0G9hCDCbHulhVQgIYrt6ut9lAiHzpVE1YQGDPWT/qSGwlhwvGOaTbQ0qprDgEDMnEuaaWytB5iNPkNY9Cg==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.0-beta.4.tgz","fileCount":46,"unpackedSize":527509,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdlAzqCRA9TVsSAnZWagAAso0QAIusAq1K04yooIDwAGn6\nd8ECz9f9sgCBx4li3e6EdKoERo7orxTTnpFBAtFTpEZoGv7xqpWrzOTkNiig\n9dTGveixHIdKggt1/u1Bm42xf7aXZnHvtuNusQzxUhasVwSBueV1ZhvdUXnH\nuFOGeyr+gK/pT/VW7JZKnszqE32HiqhLIrb7tCkmzf7KCxEWYNhisGY71Pmo\nZDDilXQ9hxnoHjpqVya74O09al/envx/ppPJdu0thzPHorDRY5K1mZjBkDTL\n/GDM2PfuNh7JeflJI4bTDn5MOFpURtpJRAZYDuZRdciqzYjUN7Qaoxzp261y\n2h3zELis2TF4agnk6z6LbwmzQOVlQyA9IQTQMWur0jmVdedVxmttCeIDF11h\nJ2VjxIctOK/hfMTHq4JEsxmnTN6ky06dvXTJI6Axx2Utrk+om+hQipkfaLBA\nhBpZsyocQlNdAdAmeo9juNuHFfmOvPdVirbz+74EJ/IBVeF8Dk54DUQastfT\nsP5iuzhTyGiqQWsYdwpn9PFMzCMzHKAHxWvQ3YG5ItqaY5C5xnPEbL6zqnKI\nyKsvROCcuoa4ybAda7OnpYkN4RmGM0QUsp9RrWV+B68UbzPIVTT5t6Is4ERI\neBpjcb1wwm5MpYLXFblE1lyi5nB0S0wAcrwrMHKZpfJqwm9dQ0/cIWWNbmtq\nDEu+\r\n=RBJo\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD0Ltp1Y+ThWbdtRXoUocy8AW4XbuxJXavtkjOXsTb1GAIgIY31U3jnpdjW/SjDo0B4eRAqVbSTQF738aycS61m+1Q="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.0-beta.4_1569983721613_0.08369328288037536"},"_hasShrinkwrap":false},"7.0.0-beta.5":{"name":"react-table","version":"7.0.0-beta.5","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"dist/index.js","module":"dist/index.es.js","jsnext:main":"dist/index.es.js","sideEffects":false,"scripts":{"commit":"git add . && git-cz","test":"is-ci 'test:ci' 'test:dev'","test:dev":"jest --watch","test:ci":"jest","build":"rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,examples/*/src,examples/*/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"prop-types":"^15.5.0","react":"^16.8.3","react-dom":"^16.8.3"},"devDependencies":{"@babel/core":"^7.5.5","@babel/plugin-proposal-class-properties":"^7.5.5","@babel/preset-env":"^7.5.5","@babel/preset-react":"^7.0.0","@babel/runtime":"^7.5.5","@commitlint/cli":"^8.1.0","@commitlint/config-conventional":"^8.1.0","@svgr/rollup":"^4.3.2","@testing-library/dom":"^6.0.0","@testing-library/jest-dom":"^4.0.0","@testing-library/react":"^9.1.1","babel-eslint":"9.x","commitizen":"^4.0.3","core-js":"3.2.1","cross-env":"^5.2.0","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^8.0.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.14.3","eslint-plugin-react-hooks":"1.7.0","eslint-plugin-standard":"^4.0.0","husky":"^3.0.3","is-ci-cli":"^1.1.1","jest":"^24.8.0","jest-cli":"^24.8.0","jest-runner-eslint":"^0.7.4","jest-watch-select-projects":"^0.1.2","jest-watch-typeahead":"^0.3.1","lint-staged":"^9.2.1","prettier":"^1.18.2","prop-types":"^15.5.0","react":"^16.9.0","react-dom":"^16.9.0","rollup":"^0.68.0","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^9.1.3","rollup-plugin-node-resolve":"^4.0.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-terser":"^5.1.2","snapshot-diff":"^0.5.2"},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"browserslist":"> 0.25%, not dead","readmeFilename":"README.md","readme":"![React Table Header](https://github.com/tannerlinsley/react-table/raw/master/media/header.png)\n\n<img src='https://github.com/tannerlinsley/react-table/raw/master/media/logo.png' width='300'/>\n\nHooks for building **lightweight, fast and extendable datagrids** for React\n\n<a href=\"https://travis-ci.org/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://travis-ci.org/tannerlinsley/react-table.svg?branch=master\" />\n</a>\n<a href=\"https://bundlephobia.com/result?p=react-table@next\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-table@next\" />\n</a>\n<a href=\"https://npmjs.com/package/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-table.svg\" />\n</a>\n<a href=\"https://spectrum.chat/react-table\">\n  <img alt=\"Join the community on Spectrum\" src=\"https://withspectrum.github.io/badge/badge.svg\" />\n</a>\n<a href=\"https://github.com/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-table.svg?style=social&label=Star\" />\n</a>\n<a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n<br />\n<br />\n<a href=\"https://patreon.com/tannerlinsley\">\n  <img width=\"180\" alt=\"\" src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/become-a-patron.png\" />\n</a>\n\n<br />\n<br />\n\n## Features\n\n- Lightweight (4kb - 9kb depending on features and tree-shaking)\n- Headless (100% customizable, Bring-your-own-UI)\n- Auto out of the box, fully controllable API\n- Sorting (Multi and Stable)\n- Filters\n- Pivoting & Aggregation\n- Row Selection\n- Row Expansion\n- Column Ordering\n- Animatable\n- Virtualizable\n- Server-side/controlled data/state\n- Extensible via hook-based plugin system\n- <a href=\"https://medium.com/@tannerlinsley/why-i-wrote-react-table-and-the-problems-it-has-solved-for-nozzle-others-445c4e93d4a8#.axza4ixba\" target=\"\\_parent\">\"Why I wrote React Table and the problems it has solved for Nozzle.io\"</a> by Tanner Linsley\n\n## News / Q&A\n\n#### What is the current state of React Table?\n\nReact Table v7 is still under active development, and its API is still changing, albeit only slightly. For this reason, it is currently in an **beta** release state. It's estimated that it will be fully released as a stable version sometime during October 2019.\n\n#### Should I use v7@beta in production?\n\nYou can use it in production as long as you lock in the beta version in your package.json and also accept that there may be unlikely, but possible bug fixes and/or API changes before it's official release.\n\n#### I'm still using v6, what should I do?\n\nv6 is a great library and is still the default install for `react-table`, however, I do not intend on offering any long-term support for it. If you intend to keep using v6, I recommend maintaining your own fork of the library and keeping it up to date for your version of React.\n\n#### Where are the docs for the older v6 version?\n\nPlease [visit the v6 branch](https://github.com/tannerlinsley/react-table/tree/v6)\n\n#### I want to migrate from v6 to v7. How do I do that?\n\nThe differences between the 2 versions are incredibly massive. Unfortunately, I cannot write a one-to-one upgrade guide for any of v6's API, simply because much of it is irrelevant with v7's headless approach. The best approach for migrating to v7 is to learn its API by reading the documentation and then following some of the examples to begin building your own table component.\n\n## Documentation\n\n- [Installation](./docs/installation.md) - Walk through how to install React Table\n- [Concepts](./docs/concepts.md) - Read how React Table works and how you can use it better\n- [Examples](./docs/examples.md) - Experience and learn from some examples and guides of how to use React Table and implement common patterns\n- [API](./docs/api.md) - Get to know React Table's API, how to use it and how to extend its functionality\n- [Contributing](./CONTRIBUTING.md) - Become familiar with how to contribute back to React Table\n- [Code of Conduct](./CODE_OF_CONDUCT.md) - Be a good React Table citizen by following these repository rules\n\n## Sponsors\n\n**React Table v7** is being built and maintained by me, @tannerlinsley and I am always in need of more Patreon support to keep this project afloat. If you would like to contribute to my Patreon goal for v7 and beyond, [visit my Patreon and help me out!](https://patreon.com/tannerlinsley)\n\n<table>\n  <tbody {...getTableBodyProps()}>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/platinum.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://tryretool.com/?utm_source=sponsor&utm_campaign=react_table\" target=\"_blank\">\n          <img width='350' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-retool.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"http://bjntech.com/index.html?utm_campaign=react_table\" target=\"_blank\">\n          <img width='250' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-bjn.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody {...getTableBodyProps()}>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/gold.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://nozzle.io\" target=\"_blank\">\n          <img width='230' src=\"https://nozzle.io/img/logo-blue.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://zappi.io/web/\" target=\"_blank\">\n          <img width='230' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-zappi.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody {...getTableBodyProps()}>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody {...getTableBodyProps()}>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://patreon.com/tannerlinsley\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/supporters.png\" />\n        </a>\n      </td>\n      <td>\n        <div><a href=\"https://www.metso.com/\">Pekka</a></div>\n        <div>Jon Eickmeier</div>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody {...getTableBodyProps()}>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://patreon.com/tannerlinsley\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/fans.png\" />\n        </a>\n      </td>\n      <td>\n        <div>Sortmy.games</div>\n        <div>Hugo Meissner</div>\n        <div>Benoit Leger-Derville</div>\n        <div>Thomas Funk</div>\n        <div>Dan Houle</div>\n        <div>David Pickut</div>\n        <div>Jordan Soltman</div>\n        <div>Robert Tajnšek</div>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<a href=\"https://patreon.com/tannerlinsley\">\n  <img width=\"150\" alt=\"\" src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/become-a-patron.png\" />\n</a>\n","licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.0-beta.5","dist":{"shasum":"c0cbb9c38fba392afb46f2338152d03b949ddc3d","integrity":"sha512-76kNCY5a8DS6RiUpx+qrN6LuzyW/TaEKu820GO5jBzZqZXkF1OxYGQSS3VSnu/EtdDY04dSuZO38KGPHSwpvyA==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.0-beta.5.tgz","fileCount":46,"unpackedSize":527996,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdlBAgCRA9TVsSAnZWagAAsOwP/RU67wh5oqW3f4ZQMzpU\ne7DRNjzs+ayw4jhRc6K6TIdyvzAGQg6x05fMwbfBFFd9OI8qM10pf7rdvbLx\nz8nckkGO9Af1VR9pVOUAGmt02ruWcyea2pbRTtVl+BzULhiPXxqGdMIpgrZC\naitU3k0nvRp3Cqai8xwmAxYuHVEUS8sDtOjKIR9D7FMh0FFbgk72GfDhg/oS\nXKQBhzxrGH/yCgX5CCAPUmZodgkTO1ti+bJsDcsMgf7LzRwi6cmnq/R9Ztmg\n58antRArP/b8sjI4MAzhh/j9kKvER59o8egbbqk2lszlLlm2ag/QpEyNclWn\nepRuuspX8i3N41n+MR+r2uNCx0kfGQjPYfyylZ5WPPQEbfEkyq+iwlowjIxl\nXc6P14cSjyAQ6sSwnKyXpXTRl32+xZhBep0tDfN1UXI8ANRVVbsFLXZ0GoPf\nkqAg5Yj/PDcddBnraWcYalgJLim2X6OC2d/mvEQDDqtGO2aDekCxO/oCU66t\n83Mpn8JmYRSpifMxNYfgDDJaqOXiS0ppgzBeBZbr7j6GgptDr1q0pm3jw87w\np1Iz8LsXjg2ZMybbK9C8QIIQDgXUaV6u80/bDXb3xQio//6ws5atgY+C6lll\nwWwZa553zqZcNdBBHxjdLkjqr4mmHSSTHEmkbQ5xH5KwzV4UknHeh+rQPgxo\nWeyu\r\n=WOX0\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBM5mv3UY/cLyiJndraIDIez/MJbBfMxTozLE7hbe1oAAiEAqYxh7FhejUNzZlgtXZDI9pNuZcSkfYEPCeF8KCI6vrw="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.0-beta.5_1569984543913_0.01921163137868187"},"_hasShrinkwrap":false},"7.0.0-beta.6":{"name":"react-table","version":"7.0.0-beta.6","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"dist/index.js","module":"dist/index.es.js","jsnext:main":"dist/index.es.js","sideEffects":false,"scripts":{"commit":"git add . && git-cz","test":"is-ci 'test:ci' 'test:dev'","test:dev":"jest --watch","test:ci":"jest","build":"rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,examples/*/src,examples/*/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"prop-types":"^15.5.0","react":"^16.8.3","react-dom":"^16.8.3"},"devDependencies":{"@babel/core":"^7.5.5","@babel/plugin-proposal-class-properties":"^7.5.5","@babel/preset-env":"^7.5.5","@babel/preset-react":"^7.0.0","@babel/runtime":"^7.5.5","@commitlint/cli":"^8.1.0","@commitlint/config-conventional":"^8.1.0","@svgr/rollup":"^4.3.2","@testing-library/dom":"^6.0.0","@testing-library/jest-dom":"^4.0.0","@testing-library/react":"^9.1.1","babel-eslint":"9.x","commitizen":"^4.0.3","core-js":"3.2.1","cross-env":"^5.2.0","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^8.0.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.14.3","eslint-plugin-react-hooks":"1.7.0","eslint-plugin-standard":"^4.0.0","husky":"^3.0.3","is-ci-cli":"^1.1.1","jest":"^24.8.0","jest-cli":"^24.8.0","jest-runner-eslint":"^0.7.4","jest-watch-select-projects":"^0.1.2","jest-watch-typeahead":"^0.3.1","lint-staged":"^9.2.1","prettier":"^1.18.2","prop-types":"^15.5.0","react":"^16.9.0","react-dom":"^16.9.0","rollup":"^0.68.0","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^9.1.3","rollup-plugin-node-resolve":"^4.0.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-terser":"^5.1.2","snapshot-diff":"^0.5.2"},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"browserslist":"> 0.25%, not dead","readmeFilename":"README.md","readme":"![React Table Header](https://github.com/tannerlinsley/react-table/raw/master/media/header.png)\n\n<img src='https://github.com/tannerlinsley/react-table/raw/master/media/logo.png' width='300'/>\n\nHooks for building **lightweight, fast and extendable datagrids** for React\n\n<a href=\"https://travis-ci.org/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://travis-ci.org/tannerlinsley/react-table.svg?branch=master\" />\n</a>\n<a href=\"https://bundlephobia.com/result?p=react-table@next\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-table@next\" />\n</a>\n<a href=\"https://npmjs.com/package/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-table.svg\" />\n</a>\n<a href=\"https://spectrum.chat/react-table\">\n  <img alt=\"Join the community on Spectrum\" src=\"https://withspectrum.github.io/badge/badge.svg\" />\n</a>\n<a href=\"https://github.com/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-table.svg?style=social&label=Star\" />\n</a>\n<a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n<br />\n<br />\n<a href=\"https://patreon.com/tannerlinsley\">\n  <img width=\"180\" alt=\"\" src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/become-a-patron.png\" />\n</a>\n\n<br />\n<br />\n\n## Features\n\n- Lightweight (4kb - 9kb depending on features and tree-shaking)\n- Headless (100% customizable, Bring-your-own-UI)\n- Auto out of the box, fully controllable API\n- Sorting (Multi and Stable)\n- Filters\n- Pivoting & Aggregation\n- Row Selection\n- Row Expansion\n- Column Ordering\n- Animatable\n- Virtualizable\n- Resizable\n- Server-side/controlled data/state\n- Extensible via hook-based plugin system\n- <a href=\"https://medium.com/@tannerlinsley/why-i-wrote-react-table-and-the-problems-it-has-solved-for-nozzle-others-445c4e93d4a8#.axza4ixba\" target=\"\\_parent\">\"Why I wrote React Table and the problems it has solved for Nozzle.io\"</a> by Tanner Linsley\n\n## News / Q&A\n\n#### What is the current state of React Table?\n\nReact Table v7 is still under active development, and its API is still changing, albeit only slightly. For this reason, it is currently in an **beta** release state. It's estimated that it will be fully released as a stable version sometime during October 2019.\n\n#### Should I use v7@beta in production?\n\nYou can use it in production as long as you lock in the beta version in your package.json and also accept that there may be unlikely, but possible bug fixes and/or API changes before it's official release.\n\n#### I'm still using v6, what should I do?\n\nv6 is a great library and is still the default install for `react-table`, however, I do not intend on offering any long-term support for it. If you intend to keep using v6, I recommend maintaining your own fork of the library and keeping it up to date for your version of React.\n\n#### Where are the docs for the older v6 version?\n\nPlease [visit the v6 branch](https://github.com/tannerlinsley/react-table/tree/v6)\n\n#### I want to migrate from v6 to v7. How do I do that?\n\nThe differences between the 2 versions are incredibly massive. Unfortunately, I cannot write a one-to-one upgrade guide for any of v6's API, simply because much of it is irrelevant with v7's headless approach. The best approach for migrating to v7 is to learn its API by reading the documentation and then following some of the examples to begin building your own table component.\n\n## Documentation\n\n- [Installation](./docs/installation.md) - Walk through how to install React Table\n- [Concepts](./docs/concepts.md) - Read how React Table works and how you can use it better\n- [Examples](./docs/examples.md) - Experience and learn from some examples and guides of how to use React Table and implement common patterns\n- [API](./docs/api.md) - Get to know React Table's API, how to use it and how to extend its functionality\n- [Contributing](./CONTRIBUTING.md) - Become familiar with how to contribute back to React Table\n- [Code of Conduct](./CODE_OF_CONDUCT.md) - Be a good React Table citizen by following these repository rules\n\n## Sponsors\n\n**React Table v7** is being built and maintained by me, @tannerlinsley and I am always in need of more Patreon support to keep this project afloat. If you would like to contribute to my Patreon goal for v7 and beyond, [visit my Patreon and help me out!](https://patreon.com/tannerlinsley)\n\n<table>\n  <tbody {...getTableBodyProps()}>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/platinum.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://tryretool.com/?utm_source=sponsor&utm_campaign=react_table\" target=\"_blank\">\n          <img width='350' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-retool.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"http://bjntech.com/index.html?utm_campaign=react_table\" target=\"_blank\">\n          <img width='250' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-bjn.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody {...getTableBodyProps()}>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/gold.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://nozzle.io\" target=\"_blank\">\n          <img width='230' src=\"https://nozzle.io/img/logo-blue.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://zappi.io/web/\" target=\"_blank\">\n          <img width='230' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-zappi.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody {...getTableBodyProps()}>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody {...getTableBodyProps()}>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://patreon.com/tannerlinsley\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/supporters.png\" />\n        </a>\n      </td>\n      <td>\n        <div><a href=\"https://www.metso.com/\">Pekka</a></div>\n        <div>Jon Eickmeier</div>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody {...getTableBodyProps()}>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://patreon.com/tannerlinsley\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/fans.png\" />\n        </a>\n      </td>\n      <td>\n        <div>Sortmy.games</div>\n        <div>Hugo Meissner</div>\n        <div>Benoit Leger-Derville</div>\n        <div>Thomas Funk</div>\n        <div>Dan Houle</div>\n        <div>David Pickut</div>\n        <div>Jordan Soltman</div>\n        <div>Robert Tajnšek</div>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<a href=\"https://patreon.com/tannerlinsley\">\n  <img width=\"150\" alt=\"\" src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/become-a-patron.png\" />\n</a>\n","licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.0-beta.6","dist":{"shasum":"9a559c3e4eb3d3378159623dc44ff1f7bc9b2bb9","integrity":"sha512-ttfKfJWDEjv3np0PuswTmqSeAzT2EPpNrnjUlV/IIpvsqIbDzXKhiOI63l2rPj1BOyM2Ko6MExZamoGmHsgYSQ==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.0-beta.6.tgz","fileCount":47,"unpackedSize":553276,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdlgUiCRA9TVsSAnZWagAAmjkP+wdknbzKBLZpJKcKWdoC\nxuhm/3+DgF1lRmCr4vjTZIYVJAJuJXJvUTZDTgAox6DJdUIBWg1059pHwOyF\npUPGCpHoQ0riq2cn5KAtaL5clZKoV1CcXOSCV/14mi5CGdGmWeqz+xCCBWDh\nZmvucOby5NkeJNjPnYZZiza455Ary/SNEcgzIq9Pzc1yDn0QKmVBpChuQZFS\nq900Qq3SoZHG8No2YCUccb9SwG3P64mU40T0JYuf8fU9D/bCq7+w/58is+jQ\nNakJIsrUBNiW6W9+UHRSgbY64Mg/c7PD745soJmqytDRVml4+Er5aNs6BOaU\ni56NXNAAc/Im8SIeLLDsdDXtfm7JKRQRFwlLcSI4JxVEL77fC9G8iFSnr/TS\nz8sktSYeKND0B38O7Lh+j9dGFc1cYQHKOzCdFWoSyDMLzLuqnUQGmBhHHnNF\nqP0QMuurJmU18qwrZy6ykkuB4uwMkB8HsQcB0BDUAIs6WfvCb02xyN7MDC44\nT7G3FttqsW/jN7MPUiMixqxtkxAeuVZmYgp1bY6i7MtT+vi6s0w727Epft74\noT5LWRhxi+yROgTHjhvUwC8vP5+EoO3Q53M9XHpIcQWqcWJlkkdCxNQIQvBq\nQaGXIzZvwxq4p/d/s9Fo55hNwXY6h9VLXtcWML2MKa3OWAbxOTs9XjYyplN6\nXs1Z\r\n=Lxvi\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIENcs+SW9bHTtzVHQN8tA8EOq1zNKddHwL+v3B9/2bGFAiEAjRlVdDHT075W8yl6MkTo/Y65iZdqtKjpEDiU9s3SlOM="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.0-beta.6_1570112801770_0.22650045814232223"},"_hasShrinkwrap":false},"7.0.0-beta.7":{"name":"react-table","version":"7.0.0-beta.7","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"dist/index.js","module":"dist/index.es.js","jsnext:main":"dist/index.es.js","sideEffects":false,"scripts":{"commit":"git add . && git-cz","test":"is-ci 'test:ci' 'test:dev'","test:dev":"jest --watch","test:ci":"jest","build":"rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,examples/*/src,examples/*/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"prop-types":"^15.5.0","react":"^16.8.3","react-dom":"^16.8.3"},"devDependencies":{"@babel/core":"^7.5.5","@babel/plugin-proposal-class-properties":"^7.5.5","@babel/preset-env":"^7.5.5","@babel/preset-react":"^7.0.0","@babel/runtime":"^7.5.5","@commitlint/cli":"^8.1.0","@commitlint/config-conventional":"^8.1.0","@svgr/rollup":"^4.3.2","@testing-library/dom":"^6.0.0","@testing-library/jest-dom":"^4.0.0","@testing-library/react":"^9.1.1","babel-eslint":"9.x","commitizen":"^4.0.3","core-js":"3.2.1","cross-env":"^5.2.0","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^8.0.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.14.3","eslint-plugin-react-hooks":"1.7.0","eslint-plugin-standard":"^4.0.0","husky":"^3.0.3","is-ci-cli":"^1.1.1","jest":"^24.8.0","jest-cli":"^24.8.0","jest-runner-eslint":"^0.7.4","jest-watch-select-projects":"^0.1.2","jest-watch-typeahead":"^0.3.1","lint-staged":"^9.2.1","prettier":"^1.18.2","prop-types":"^15.5.0","react":"^16.9.0","react-dom":"^16.9.0","rollup":"^0.68.0","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^9.1.3","rollup-plugin-node-resolve":"^4.0.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-terser":"^5.1.2","snapshot-diff":"^0.5.2"},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"browserslist":"> 0.25%, not dead","readmeFilename":"README.md","readme":"![React Table Header](https://github.com/tannerlinsley/react-table/raw/master/media/header.png)\n\n<img src='https://github.com/tannerlinsley/react-table/raw/master/media/logo.png' width='300'/>\n\nHooks for building **lightweight, fast and extendable datagrids** for React\n\n<a href=\"https://travis-ci.org/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://travis-ci.org/tannerlinsley/react-table.svg?branch=master\" />\n</a>\n<a href=\"https://bundlephobia.com/result?p=react-table@next\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-table@next\" />\n</a>\n<a href=\"https://npmjs.com/package/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-table.svg\" />\n</a>\n<a href=\"https://spectrum.chat/react-table\">\n  <img alt=\"Join the community on Spectrum\" src=\"https://withspectrum.github.io/badge/badge.svg\" />\n</a>\n<a href=\"https://github.com/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-table.svg?style=social&label=Star\" />\n</a>\n<a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n<br />\n<br />\n<a href=\"https://patreon.com/tannerlinsley\">\n  <img width=\"180\" alt=\"\" src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/become-a-patron.png\" />\n</a>\n\n<br />\n<br />\n\n## Features\n\n- Lightweight (4kb - 9kb depending on features and tree-shaking)\n- Headless (100% customizable, Bring-your-own-UI)\n- Auto out of the box, fully controllable API\n- Sorting (Multi and Stable)\n- Filters\n- Pivoting & Aggregation\n- Row Selection\n- Row Expansion\n- Column Ordering\n- Animatable\n- Virtualizable\n- Resizable\n- Server-side/controlled data/state\n- Extensible via hook-based plugin system\n- <a href=\"https://medium.com/@tannerlinsley/why-i-wrote-react-table-and-the-problems-it-has-solved-for-nozzle-others-445c4e93d4a8#.axza4ixba\" target=\"\\_parent\">\"Why I wrote React Table and the problems it has solved for Nozzle.io\"</a> by Tanner Linsley\n\n## News / Q&A\n\n#### What is the current state of React Table?\n\nReact Table v7 is still under active development, and its API is still changing, albeit only slightly. For this reason, it is currently in an **beta** release state. It's estimated that it will be fully released as a stable version sometime during October 2019.\n\n#### Should I use v7@beta in production?\n\nYou can use it in production as long as you lock in the beta version in your package.json and also accept that there may be unlikely, but possible bug fixes and/or API changes before it's official release.\n\n#### I'm still using v6, what should I do?\n\nv6 is a great library and is still the default install for `react-table`, however, I do not intend on offering any long-term support for it. If you intend to keep using v6, I recommend maintaining your own fork of the library and keeping it up to date for your version of React.\n\n#### Where are the docs for the older v6 version?\n\nPlease [visit the v6 branch](https://github.com/tannerlinsley/react-table/tree/v6)\n\n#### I want to migrate from v6 to v7. How do I do that?\n\nThe differences between the 2 versions are incredibly massive. Unfortunately, I cannot write a one-to-one upgrade guide for any of v6's API, simply because much of it is irrelevant with v7's headless approach. The best approach for migrating to v7 is to learn its API by reading the documentation and then following some of the examples to begin building your own table component.\n\n## Documentation\n\n- [Installation](./docs/installation.md) - Walk through how to install React Table\n- [Concepts](./docs/concepts.md) - Read how React Table works and how you can use it better\n- [Examples](./docs/examples.md) - Experience and learn from some examples and guides of how to use React Table and implement common patterns\n- [API](./docs/api.md) - Get to know React Table's API, how to use it and how to extend its functionality\n- [Contributing](./CONTRIBUTING.md) - Become familiar with how to contribute back to React Table\n- [Code of Conduct](./CODE_OF_CONDUCT.md) - Be a good React Table citizen by following these repository rules\n\n## Sponsors\n\n**React Table v7** is being built and maintained by me, @tannerlinsley and I am always in need of more Patreon support to keep this project afloat. If you would like to contribute to my Patreon goal for v7 and beyond, [visit my Patreon and help me out!](https://patreon.com/tannerlinsley)\n\n<table>\n  <tbody {...getTableBodyProps()}>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/platinum.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://tryretool.com/?utm_source=sponsor&utm_campaign=react_table\" target=\"_blank\">\n          <img width='350' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-retool.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"http://bjntech.com/index.html?utm_campaign=react_table\" target=\"_blank\">\n          <img width='250' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-bjn.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody {...getTableBodyProps()}>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/gold.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://nozzle.io\" target=\"_blank\">\n          <img width='230' src=\"https://nozzle.io/img/logo-blue.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://zappi.io/web/\" target=\"_blank\">\n          <img width='230' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-zappi.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody {...getTableBodyProps()}>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody {...getTableBodyProps()}>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://patreon.com/tannerlinsley\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/supporters.png\" />\n        </a>\n      </td>\n      <td>\n        <div><a href=\"https://www.metso.com/\">Pekka</a></div>\n        <div>Jon Eickmeier</div>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody {...getTableBodyProps()}>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://patreon.com/tannerlinsley\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/fans.png\" />\n        </a>\n      </td>\n      <td>\n        <div>Sortmy.games</div>\n        <div>Hugo Meissner</div>\n        <div>Benoit Leger-Derville</div>\n        <div>Thomas Funk</div>\n        <div>Dan Houle</div>\n        <div>David Pickut</div>\n        <div>Jordan Soltman</div>\n        <div>Robert Tajnšek</div>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<a href=\"https://patreon.com/tannerlinsley\">\n  <img width=\"150\" alt=\"\" src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/become-a-patron.png\" />\n</a>\n","licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.0-beta.7","dist":{"shasum":"91ba3c73f95ba2842168d145ee54256d866ab17a","integrity":"sha512-buAmy/w7PsfgaP8yGpHnY1+T+M6vvEerGSScATUAoZxvPVQ/pQblW+Xnv97VwIkck7n/wRu+n6Gf3skeMgSdrw==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.0-beta.7.tgz","fileCount":47,"unpackedSize":556580,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdlk6jCRA9TVsSAnZWagAAlEMP/29Vulb4lcP8PR71KXsA\n2aL/sfyolnj9zDBKzYwGs1j4mFTTAN8NSV+kF6LXdBoRVwBX0DmxaMDSFzmO\nGUEyzXvfkRWEcbC2jonKOH0j17cZKHuCsTCltiyrvpDgsNH5tsQFzXRorf/U\nM+BH0xu+C7o23kGX3s4Aa1D8nAFWwuKO60VwwaIil/XVvXWCOKdnFLBm1oQC\nHylxUuMDeJThf8wRUHVhu1HKeFzUGDGGTWPW+hCnrGust7rsm9bzXc3TNZQa\nUaxN+h4+tECOZ9rBC0qwS+2c7Do/KOHRzjda8exvp7uhXjm/iRs8HcVkioNl\nmKtEpwx9PDW0qIZ9yM4qPcNJsUafE69c6c4Buw25vgfB+Nme/WB9MYvQAb2Q\nrJfkJb9X3A6qzq4EZm+d+pNy22wCQDdDv2c+KsCCeKV2IBowvoPCPvFYNyui\nUaE5IhjSyMozOyV56J6fqtpHVLJFGs79Wm7iVMjy6EgBam2zEXbUM95tFluS\ntiB0DCENdgmbNIMpOgBXYj+Xf/z/vP+3Od0RyOyR8Ur8x1n5gcDLdrHDsb+n\nn01aBGheHfSQ7TKzCEhWWubwnncJCfrgq0TASOz4kTedYM5HBfGy5QaxgiXF\nw5IBKb4l/1iZ2gJ1ZC+POytfXeLclTpjHFKewSYfX1np2PAD/Sfp2en5jHCO\n13gw\r\n=hKr1\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCPnjx9U8LD1onpWvwgrRpzjAT11mAGx+YejLGqy3hJaQIhANyDx4bny8PSioiQYfyu9dxg8Ohx4eWu66KQ09uPnDnS"}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.0-beta.7_1570131618491_0.7158994494616477"},"_hasShrinkwrap":false},"7.0.0-beta.8":{"name":"react-table","version":"7.0.0-beta.8","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"dist/index.js","module":"dist/index.es.js","jsnext:main":"dist/index.es.js","sideEffects":false,"scripts":{"commit":"git add . && git-cz","test":"is-ci 'test:ci' 'test:dev'","test:dev":"jest --watch","test:ci":"jest","build":"rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,examples/*/src,examples/*/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"prop-types":"^15.5.0","react":"^16.8.3","react-dom":"^16.8.3"},"devDependencies":{"@babel/core":"^7.5.5","@babel/plugin-proposal-class-properties":"^7.5.5","@babel/preset-env":"^7.5.5","@babel/preset-react":"^7.0.0","@babel/runtime":"^7.5.5","@commitlint/cli":"^8.1.0","@commitlint/config-conventional":"^8.1.0","@svgr/rollup":"^4.3.2","@testing-library/dom":"^6.0.0","@testing-library/jest-dom":"^4.0.0","@testing-library/react":"^9.1.1","babel-eslint":"9.x","commitizen":"^4.0.3","core-js":"3.2.1","cross-env":"^5.2.0","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^8.0.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.14.3","eslint-plugin-react-hooks":"1.7.0","eslint-plugin-standard":"^4.0.0","husky":"^3.0.3","is-ci-cli":"^1.1.1","jest":"^24.8.0","jest-cli":"^24.8.0","jest-runner-eslint":"^0.7.4","jest-watch-select-projects":"^0.1.2","jest-watch-typeahead":"^0.3.1","lint-staged":"^9.2.1","prettier":"^1.18.2","prop-types":"^15.5.0","react":"^16.9.0","react-dom":"^16.9.0","rollup":"^0.68.0","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^9.1.3","rollup-plugin-node-resolve":"^4.0.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-terser":"^5.1.2","snapshot-diff":"^0.5.2"},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"browserslist":"> 0.25%, not dead","readmeFilename":"README.md","readme":"![React Table Header](https://github.com/tannerlinsley/react-table/raw/master/media/header.png)\n\n<img src='https://github.com/tannerlinsley/react-table/raw/master/media/logo.png' width='300'/>\n\nHooks for building **lightweight, fast and extendable datagrids** for React\n\n<a href=\"https://travis-ci.org/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://travis-ci.org/tannerlinsley/react-table.svg?branch=master\" />\n</a>\n<a href=\"https://bundlephobia.com/result?p=react-table@next\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-table@next\" />\n</a>\n<a href=\"https://npmjs.com/package/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-table.svg\" />\n</a>\n<a href=\"https://spectrum.chat/react-table\">\n  <img alt=\"Join the community on Spectrum\" src=\"https://withspectrum.github.io/badge/badge.svg\" />\n</a>\n<a href=\"https://github.com/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-table.svg?style=social&label=Star\" />\n</a>\n<a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n<br />\n<br />\n<a href=\"https://patreon.com/tannerlinsley\">\n  <img width=\"180\" alt=\"\" src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/become-a-patron.png\" />\n</a>\n\n<br />\n<br />\n\n## Features\n\n- Lightweight (4kb - 9kb depending on features and tree-shaking)\n- Headless (100% customizable, Bring-your-own-UI)\n- Auto out of the box, fully controllable API\n- Sorting (Multi and Stable)\n- Filters\n- Pivoting & Aggregation\n- Row Selection\n- Row Expansion\n- Column Ordering\n- Animatable\n- Virtualizable\n- Resizable\n- Server-side/controlled data/state\n- Extensible via hook-based plugin system\n- <a href=\"https://medium.com/@tannerlinsley/why-i-wrote-react-table-and-the-problems-it-has-solved-for-nozzle-others-445c4e93d4a8#.axza4ixba\" target=\"\\_parent\">\"Why I wrote React Table and the problems it has solved for Nozzle.io\"</a> by Tanner Linsley\n\n## News / Q&A\n\n#### What is the current state of React Table?\n\nReact Table v7 is still under active development, and its API is still changing, albeit only slightly. For this reason, it is currently in an **beta** release state. It's estimated that it will be fully released as a stable version sometime during October 2019.\n\n#### Should I use v7@beta in production?\n\nYou can use it in production as long as you lock in the beta version in your package.json and also accept that there may be unlikely, but possible bug fixes and/or API changes before it's official release.\n\n#### I'm still using v6, what should I do?\n\nv6 is a great library and is still the default install for `react-table`, however, I do not intend on offering any long-term support for it. If you intend to keep using v6, I recommend maintaining your own fork of the library and keeping it up to date for your version of React.\n\n#### Where are the docs for the older v6 version?\n\nPlease [visit the v6 branch](https://github.com/tannerlinsley/react-table/tree/v6)\n\n#### I want to migrate from v6 to v7. How do I do that?\n\nThe differences between the 2 versions are incredibly massive. Unfortunately, I cannot write a one-to-one upgrade guide for any of v6's API, simply because much of it is irrelevant with v7's headless approach. The best approach for migrating to v7 is to learn its API by reading the documentation and then following some of the examples to begin building your own table component.\n\n## Documentation\n\n- [Installation](./docs/installation.md) - Walk through how to install React Table\n- [Concepts](./docs/concepts.md) - Read how React Table works and how you can use it better\n- [Examples](./docs/examples.md) - Experience and learn from some examples and guides of how to use React Table and implement common patterns\n- [API](./docs/api.md) - Get to know React Table's API, how to use it and how to extend its functionality\n- [Contributing](./CONTRIBUTING.md) - Become familiar with how to contribute back to React Table\n- [Code of Conduct](./CODE_OF_CONDUCT.md) - Be a good React Table citizen by following these repository rules\n\n## Sponsors\n\n**React Table v7** is being built and maintained by me, @tannerlinsley and I am always in need of more Patreon support to keep this project afloat. If you would like to contribute to my Patreon goal for v7 and beyond, [visit my Patreon and help me out!](https://patreon.com/tannerlinsley)\n\n<table>\n  <tbody {...getTableBodyProps()}>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/platinum.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://tryretool.com/?utm_source=sponsor&utm_campaign=react_table\" target=\"_blank\">\n          <img width='350' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-retool.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"http://bjntech.com/index.html?utm_campaign=react_table\" target=\"_blank\">\n          <img width='250' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-bjn.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody {...getTableBodyProps()}>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/gold.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://nozzle.io\" target=\"_blank\">\n          <img width='230' src=\"https://nozzle.io/img/logo-blue.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://zappi.io/web/\" target=\"_blank\">\n          <img width='230' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-zappi.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody {...getTableBodyProps()}>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody {...getTableBodyProps()}>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://patreon.com/tannerlinsley\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/supporters.png\" />\n        </a>\n      </td>\n      <td>\n        <div><a href=\"https://www.metso.com/\">Pekka</a></div>\n        <div>Jon Eickmeier</div>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody {...getTableBodyProps()}>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://patreon.com/tannerlinsley\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/fans.png\" />\n        </a>\n      </td>\n      <td>\n        <div>Sortmy.games</div>\n        <div>Hugo Meissner</div>\n        <div>Benoit Leger-Derville</div>\n        <div>Thomas Funk</div>\n        <div>Dan Houle</div>\n        <div>David Pickut</div>\n        <div>Jordan Soltman</div>\n        <div>Robert Tajnšek</div>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<a href=\"https://patreon.com/tannerlinsley\">\n  <img width=\"150\" alt=\"\" src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/become-a-patron.png\" />\n</a>\n","licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.0-beta.8","dist":{"shasum":"3b0cf748d0a2ca58dc48064cd2e180483addb570","integrity":"sha512-ajeYb96bFcOydd8JR/h3+P5K/H9xdzpg3xDtTkacaqa5hxq9ztk+m6luA5akR3bz19Q8cRlVsEA9P0HIOV5/Tg==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.0-beta.8.tgz","fileCount":47,"unpackedSize":560964,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdlmkJCRA9TVsSAnZWagAApIMQAIPRAv7Ny5VSWZuSsQ5G\nXoXWc937CcNqFqoEsohLHnsmem6iBK1Ss3DEGZ1j2yBtSItr5a3uHdQ91+0j\ncQAwJwwnjFEbwai1K3ysTEQyANL6XotqlZfgJgqTMAOLDZzIEo+4tNXGlvXb\nhrl+M2IPUu+VWQeSVN7LBtuIGcuplVkH6CRQK4Exl5Lyvha5d1kn5XH89ktE\nvZB0wT9r0U50gW1vnplG5Ly59GIyNcAf8mITrkQ1vummwz2t85S9wJu3yCBj\nxJst5x7JhvSVBUMQ5JheTwfHmtIRmZG2uw2ETk8t2qH6fxzt5ztLyAMpcYry\nJSKm2t4bQXAK1X1sehCEqzZKpm1rTYBhlxLRaPhdYt2Lm9fbyMyLa8To8ptK\nMGY8lUqUhFKFGD5pxKX2dWl0UwNDRhVwg2E84xRCS+qu+V86F/SzUNR4Ppy+\ncBPVWe0GS723xJJXKkU7SVoSTZMleby07bUsAW9BFywFz2X2wvJEQnRk90rc\ndTyoyhj7RKeQe4YZl/jCH33ILD1MIQ2soFV3yafV+bnfYBKQ/A8lasw3x7j/\nYEofUO6LcPiQfSGt0Rb/sCCJbJSBNnRfrqwtUMpTsywFp17TP8ji12Zfz1NS\nuPMnwDdcUl+Cogu/bj9A7uLEA+rMw+XH/Sva2vmZyiU4n18QVfp/gCM5C2h5\noiVS\r\n=sUmM\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD/tBfEu8Kjl/wrqPcT4uiZMY1PpjUBLq73FENb+DFe9wIhAPWcPtfAq2pnFd65c34j0EhiKUbsAflPI2Y1PKgRHre3"}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.0-beta.8_1570138376641_0.22056641677020394"},"_hasShrinkwrap":false},"7.0.0-beta.9":{"name":"react-table","version":"7.0.0-beta.9","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"dist/index.js","module":"dist/index.es.js","jsnext:main":"dist/index.es.js","sideEffects":false,"scripts":{"commit":"git add . && git-cz","test":"is-ci 'test:ci' 'test:dev'","test:dev":"jest --watch","test:ci":"jest","build":"rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,examples/*/src,examples/*/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"prop-types":"^15.5.0","react":"^16.8.3","react-dom":"^16.8.3"},"devDependencies":{"@babel/core":"^7.5.5","@babel/plugin-proposal-class-properties":"^7.5.5","@babel/preset-env":"^7.5.5","@babel/preset-react":"^7.0.0","@babel/runtime":"^7.5.5","@commitlint/cli":"^8.1.0","@commitlint/config-conventional":"^8.1.0","@svgr/rollup":"^4.3.2","@testing-library/dom":"^6.0.0","@testing-library/jest-dom":"^4.0.0","@testing-library/react":"^9.1.1","babel-eslint":"9.x","commitizen":"^4.0.3","core-js":"3.2.1","cross-env":"^5.2.0","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^8.0.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.14.3","eslint-plugin-react-hooks":"1.7.0","eslint-plugin-standard":"^4.0.0","husky":"^3.0.3","is-ci-cli":"^1.1.1","jest":"^24.8.0","jest-cli":"^24.8.0","jest-runner-eslint":"^0.7.4","jest-watch-select-projects":"^0.1.2","jest-watch-typeahead":"^0.3.1","lint-staged":"^9.2.1","prettier":"^1.18.2","prop-types":"^15.5.0","react":"^16.9.0","react-dom":"^16.9.0","rollup":"^0.68.0","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^9.1.3","rollup-plugin-node-resolve":"^4.0.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-terser":"^5.1.2","snapshot-diff":"^0.5.2"},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"browserslist":"> 0.25%, not dead","readmeFilename":"README.md","readme":"![React Table Header](https://github.com/tannerlinsley/react-table/raw/master/media/header.png)\n\n<img src='https://github.com/tannerlinsley/react-table/raw/master/media/logo.png' width='300'/>\n\nHooks for building **lightweight, fast and extendable datagrids** for React\n\n<a href=\"https://travis-ci.org/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://travis-ci.org/tannerlinsley/react-table.svg?branch=master\" />\n</a>\n<a href=\"https://bundlephobia.com/result?p=react-table@next\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-table@next\" />\n</a>\n<a href=\"https://npmjs.com/package/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-table.svg\" />\n</a>\n<a href=\"https://spectrum.chat/react-table\">\n  <img alt=\"Join the community on Spectrum\" src=\"https://withspectrum.github.io/badge/badge.svg\" />\n</a>\n<a href=\"https://github.com/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-table.svg?style=social&label=Star\" />\n</a>\n<a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n<br />\n<br />\n<a href=\"https://patreon.com/tannerlinsley\">\n  <img width=\"180\" alt=\"\" src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/become-a-patron.png\" />\n</a>\n\n<br />\n<br />\n\n## Features\n\n- Lightweight (4kb - 9kb depending on features and tree-shaking)\n- Headless (100% customizable, Bring-your-own-UI)\n- Auto out of the box, fully controllable API\n- Sorting (Multi and Stable)\n- Filters\n- Pivoting & Aggregation\n- Row Selection\n- Row Expansion\n- Column Ordering\n- Animatable\n- Virtualizable\n- Resizable\n- Server-side/controlled data/state\n- Extensible via hook-based plugin system\n- <a href=\"https://medium.com/@tannerlinsley/why-i-wrote-react-table-and-the-problems-it-has-solved-for-nozzle-others-445c4e93d4a8#.axza4ixba\" target=\"\\_parent\">\"Why I wrote React Table and the problems it has solved for Nozzle.io\"</a> by Tanner Linsley\n\n## News / Q&A\n\n#### What is the current state of React Table?\n\nReact Table v7 is still under active development, and its API is still changing, albeit only slightly. For this reason, it is currently in an **beta** release state. It's estimated that it will be fully released as a stable version sometime during October 2019.\n\n#### Should I use v7@beta in production?\n\nYou can use it in production as long as you lock in the beta version in your package.json and also accept that there may be unlikely, but possible bug fixes and/or API changes before it's official release.\n\n#### I'm still using v6, what should I do?\n\nv6 is a great library and is still the default install for `react-table`, however, I do not intend on offering any long-term support for it. If you intend to keep using v6, I recommend maintaining your own fork of the library and keeping it up to date for your version of React.\n\n#### Where are the docs for the older v6 version?\n\nPlease [visit the v6 branch](https://github.com/tannerlinsley/react-table/tree/v6)\n\n#### I want to migrate from v6 to v7. How do I do that?\n\nThe differences between the 2 versions are incredibly massive. Unfortunately, I cannot write a one-to-one upgrade guide for any of v6's API, simply because much of it is irrelevant with v7's headless approach. The best approach for migrating to v7 is to learn its API by reading the documentation and then following some of the examples to begin building your own table component.\n\n## Documentation\n\n- [Installation](./docs/installation.md) - Walk through how to install React Table\n- [Concepts](./docs/concepts.md) - Read how React Table works and how you can use it better\n- [Examples](./docs/examples.md) - Experience and learn from some examples and guides of how to use React Table and implement common patterns\n- [API](./docs/api.md) - Get to know React Table's API, how to use it and how to extend its functionality\n- [Contributing](./CONTRIBUTING.md) - Become familiar with how to contribute back to React Table\n- [Code of Conduct](./CODE_OF_CONDUCT.md) - Be a good React Table citizen by following these repository rules\n\n## Sponsors\n\n**React Table v7** is being built and maintained by me, @tannerlinsley and I am always in need of more Patreon support to keep this project afloat. If you would like to contribute to my Patreon goal for v7 and beyond, [visit my Patreon and help me out!](https://patreon.com/tannerlinsley)\n\n<table>\n  <tbody {...getTableBodyProps()}>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/platinum.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://tryretool.com/?utm_source=sponsor&utm_campaign=react_table\" target=\"_blank\">\n          <img width='350' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-retool.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"http://bjntech.com/index.html?utm_campaign=react_table\" target=\"_blank\">\n          <img width='250' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-bjn.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody {...getTableBodyProps()}>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/gold.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://nozzle.io\" target=\"_blank\">\n          <img width='230' src=\"https://nozzle.io/img/logo-blue.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://zappi.io/web/\" target=\"_blank\">\n          <img width='230' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-zappi.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody {...getTableBodyProps()}>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody {...getTableBodyProps()}>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://patreon.com/tannerlinsley\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/supporters.png\" />\n        </a>\n      </td>\n      <td>\n        <div><a href=\"https://www.metso.com/\">Pekka</a></div>\n        <div>Jon Eickmeier</div>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody {...getTableBodyProps()}>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://patreon.com/tannerlinsley\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/fans.png\" />\n        </a>\n      </td>\n      <td>\n        <div>Sortmy.games</div>\n        <div>Hugo Meissner</div>\n        <div>Benoit Leger-Derville</div>\n        <div>Thomas Funk</div>\n        <div>Dan Houle</div>\n        <div>David Pickut</div>\n        <div>Jordan Soltman</div>\n        <div>Robert Tajnšek</div>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<a href=\"https://patreon.com/tannerlinsley\">\n  <img width=\"150\" alt=\"\" src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/become-a-patron.png\" />\n</a>\n","licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.0-beta.9","dist":{"shasum":"ca95194e37d98bd3b862bccae328e9a5e506235b","integrity":"sha512-3Pb22HiQkvJ7yYBHMm5ee8BOWLSkJkx6emaQbPBjuWZ/LljzVhEG6P1XPc7KHmuP5Ae3zjq1PpSTVRqey/rNIQ==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.0-beta.9.tgz","fileCount":46,"unpackedSize":557311,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdmVYuCRA9TVsSAnZWagAAYrgQAJzKCqj2Hc2WxfbHE2G+\nfVGMCtFkPBGMigx3V9gLl2PnDs4rBXQsH/OrzSAOrGCSDh6NOW9klCidYoCs\nFKhnIiz45WNrnIMKGnKMO9LRZwFaJxhXj73tgTqzwrsEFUiRwl2Y1+AZhBOC\nVn6eWbtM86j54gDAHZMOJBf7nWt6B+zayT0+EPTnQv4ffJSJP4gerv4iaCMy\nWxxU6Lch/LUNmoK1L+AfKJscbYeKnBgC+ANmcF4f54OJA9uR9W2cpemNIFaX\nW+qbyGEiFuUg/P/LkrMuMYr32LfMN2JgYt1t9a5SsJ0Hl3+uF6x6K0TFF1je\nYYS5vTU3CH1nUJdbz3RpwjSlscn69WTxv0oue+fLKLsT8b3sv5hRouwuT0d4\nFfxUiRdsNwdbPAs0AwOtsml+s7vuvFKMT5mgU1KP9jz5LiF4ZFEQ4dJ5j2Z1\nf35O1q518V/7hgSbaan8/42FElzpcY3Ey0EKHHatTNE3Fx0o41jfSi5aVbrl\ngah3AEtmx61A0ESDnYtUu9O3X/8RVZ951Oe3Yu3PckTJNjqzX9oO9CgrENnW\nbNaUTlFmSU7PqCQXCNYOOJp7uwi774yHRD9/vqyiboUNdUL+NfCW0f0+9ksH\n2FWtCqG6n1IPoKGFzJOx5SPsdozShTjNFmRQib0UeYQtYM9uP89d6R/LeWZd\n0xaL\r\n=Ck9q\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCjjxEDxlCGYX6tDLqv3ov4VoFgB6An9MgGY2gj7U2leQIhALyWMIaylrcc/it91Cqhu4hOOOMf41UWP6GC9xFjtu85"}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.0-beta.9_1570330157609_0.7917457550169285"},"_hasShrinkwrap":false},"7.0.0-beta.10":{"name":"react-table","version":"7.0.0-beta.10","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"dist/index.js","module":"dist/index.es.js","jsnext:main":"dist/index.es.js","sideEffects":false,"scripts":{"commit":"git add . && git-cz","test":"is-ci 'test:ci' 'test:dev'","test:dev":"jest --watch","test:ci":"jest","build":"rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,examples/*/src,examples/*/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"prop-types":"^15.5.0","react":"^16.8.3","react-dom":"^16.8.3"},"devDependencies":{"@babel/core":"^7.5.5","@babel/plugin-proposal-class-properties":"^7.5.5","@babel/preset-env":"^7.5.5","@babel/preset-react":"^7.0.0","@babel/runtime":"^7.5.5","@commitlint/cli":"^8.1.0","@commitlint/config-conventional":"^8.1.0","@svgr/rollup":"^4.3.2","@testing-library/dom":"^6.0.0","@testing-library/jest-dom":"^4.0.0","@testing-library/react":"^9.1.1","babel-eslint":"9.x","commitizen":"^4.0.3","core-js":"3.2.1","cross-env":"^5.2.0","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^8.0.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.14.3","eslint-plugin-react-hooks":"1.7.0","eslint-plugin-standard":"^4.0.0","husky":"^3.0.3","is-ci-cli":"^1.1.1","jest":"^24.8.0","jest-cli":"^24.8.0","jest-runner-eslint":"^0.7.4","jest-watch-select-projects":"^0.1.2","jest-watch-typeahead":"^0.3.1","lint-staged":"^9.2.1","prettier":"^1.18.2","prop-types":"^15.5.0","react":"^16.9.0","react-dom":"^16.9.0","rollup":"^0.68.0","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^9.1.3","rollup-plugin-node-resolve":"^4.0.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-terser":"^5.1.2","snapshot-diff":"^0.5.2"},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"browserslist":"> 0.25%, not dead","readmeFilename":"README.md","readme":"![React Table Header](https://github.com/tannerlinsley/react-table/raw/master/media/header.png)\n\n<img src='https://github.com/tannerlinsley/react-table/raw/master/media/logo.png' width='300'/>\n\nHooks for building **lightweight, fast and extendable datagrids** for React\n\n<a href=\"https://travis-ci.org/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://travis-ci.org/tannerlinsley/react-table.svg?branch=master\" />\n</a>\n<a href=\"https://bundlephobia.com/result?p=react-table@next\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-table@next\" />\n</a>\n<a href=\"https://npmjs.com/package/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-table.svg\" />\n</a>\n<a href=\"https://spectrum.chat/react-table\">\n  <img alt=\"Join the community on Spectrum\" src=\"https://withspectrum.github.io/badge/badge.svg\" />\n</a>\n<a href=\"https://github.com/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-table.svg?style=social&label=Star\" />\n</a>\n<a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n<br />\n<br />\n<a href=\"https://patreon.com/tannerlinsley\">\n  <img width=\"180\" alt=\"\" src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/become-a-patron.png\" />\n</a>\n\n<br />\n<br />\n\n## Features\n\n- Lightweight (4kb - 9kb depending on features and tree-shaking)\n- Headless (100% customizable, Bring-your-own-UI)\n- Auto out of the box, fully controllable API\n- Sorting (Multi and Stable)\n- Filters\n- Pivoting & Aggregation\n- Row Selection\n- Row Expansion\n- Column Ordering\n- Animatable\n- Virtualizable\n- Resizable\n- Server-side/controlled data/state\n- Extensible via hook-based plugin system\n- <a href=\"https://medium.com/@tannerlinsley/why-i-wrote-react-table-and-the-problems-it-has-solved-for-nozzle-others-445c4e93d4a8#.axza4ixba\" target=\"\\_parent\">\"Why I wrote React Table and the problems it has solved for Nozzle.io\"</a> by Tanner Linsley\n\n## News / Q&A\n\n#### What is the current state of React Table?\n\nReact Table v7 is still under active development, and its API is still changing, albeit only slightly. For this reason, it is currently in an **beta** release state. It's estimated that it will be fully released as a stable version sometime during October 2019.\n\n#### Should I use v7@beta in production?\n\nYou can use it in production as long as you lock in the beta version in your package.json and also accept that there may be unlikely, but possible bug fixes and/or API changes before it's official release.\n\n#### I'm still using v6, what should I do?\n\nv6 is a great library and is still the default install for `react-table`, however, I do not intend on offering any long-term support for it. If you intend to keep using v6, I recommend maintaining your own fork of the library and keeping it up to date for your version of React.\n\n#### Where are the docs for the older v6 version?\n\nPlease [visit the v6 branch](https://github.com/tannerlinsley/react-table/tree/v6)\n\n#### I want to migrate from v6 to v7. How do I do that?\n\nThe differences between the 2 versions are incredibly massive. Unfortunately, I cannot write a one-to-one upgrade guide for any of v6's API, simply because much of it is irrelevant with v7's headless approach. The best approach for migrating to v7 is to learn its API by reading the documentation and then following some of the examples to begin building your own table component.\n\n## Documentation\n\n- [Installation](./docs/installation.md) - Walk through how to install React Table\n- [Concepts](./docs/concepts.md) - Read how React Table works and how you can use it better\n- [Examples](./docs/examples.md) - Experience and learn from some examples and guides of how to use React Table and implement common patterns\n- [API](./docs/api.md) - Get to know React Table's API, how to use it and how to extend its functionality\n- [Contributing](./CONTRIBUTING.md) - Become familiar with how to contribute back to React Table\n- [Code of Conduct](./CODE_OF_CONDUCT.md) - Be a good React Table citizen by following these repository rules\n\n## Sponsors\n\n**React Table v7** is being built and maintained by me, @tannerlinsley and I am always in need of more Patreon support to keep this project afloat. If you would like to contribute to my Patreon goal for v7 and beyond, [visit my Patreon and help me out!](https://patreon.com/tannerlinsley)\n\n<table>\n  <tbody {...getTableBodyProps()}>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/platinum.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://tryretool.com/?utm_source=sponsor&utm_campaign=react_table\" target=\"_blank\">\n          <img width='350' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-retool.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"http://bjntech.com/index.html?utm_campaign=react_table\" target=\"_blank\">\n          <img width='250' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-bjn.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody {...getTableBodyProps()}>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/gold.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://nozzle.io\" target=\"_blank\">\n          <img width='230' src=\"https://nozzle.io/img/logo-blue.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://zappi.io/web/\" target=\"_blank\">\n          <img width='230' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-zappi.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody {...getTableBodyProps()}>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody {...getTableBodyProps()}>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://patreon.com/tannerlinsley\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/supporters.png\" />\n        </a>\n      </td>\n      <td>\n        <div><a href=\"https://www.metso.com/\">Pekka</a></div>\n        <div>Jon Eickmeier</div>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody {...getTableBodyProps()}>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://patreon.com/tannerlinsley\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/fans.png\" />\n        </a>\n      </td>\n      <td>\n        <div>Sortmy.games</div>\n        <div>Hugo Meissner</div>\n        <div>Benoit Leger-Derville</div>\n        <div>Thomas Funk</div>\n        <div>Dan Houle</div>\n        <div>David Pickut</div>\n        <div>Jordan Soltman</div>\n        <div>Robert Tajnšek</div>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<a href=\"https://patreon.com/tannerlinsley\">\n  <img width=\"150\" alt=\"\" src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/become-a-patron.png\" />\n</a>\n","licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.0-beta.10","dist":{"shasum":"c19efa4a4cb31fb6d9dc53d9b0c7f8b2855dd1a0","integrity":"sha512-SAMpjvQjqdsH1oZS5ClXKpVCPYNGUF2l2sCogAVeCxOAo+LJjBI+pSE7Z6uMZku6lWFXvlAg666tNqJ+Bjz0DA==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.0-beta.10.tgz","fileCount":46,"unpackedSize":562447,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdm2eJCRA9TVsSAnZWagAA+sMP/2xfaSeK1M7zstCIN6L9\nvLJRUQOBkpG0cujYUiImnaF5qKTK+1HLtalLUbdFIJRjgcOc7ywx0fW/MHUg\nXVKbx3R34iGmYjivCxBFh2sYiXJKEjipKnlcJzhAhaxJXvratE9nVv8JiW26\nGGw5Vk72IrC3rYUQnpcPXuC1R3QaHoP6WFqBikvxFzISOhEKRTjZSJZsU5Jo\nBJ/gwqjMGlDRm9RjukpsJZjf+1TliTkGYFZ+okekQ2ztozZ/68dUAs0/aEzJ\nfw/Udbl9/wAg6Y+Szi3iaWnZcK69mOy3d6QE7oasB751uUgr6LSLnDHjlto0\n1se+D8c3oGEDCyR8oKIqnk+KJC/NgHHlQFrOYqmiXKvBYrwDRRsDQjlL1GnK\nTvIBDCaJ/UPlWxWOk7I8+0y1JcUwmfGGz8ZjUJR3DoKkEfETfEHJLPEG8GIh\nYhEVNG+ApW5bhjViTz4EPl1RFZV3aDL+ubwcrLGkUPohSGoe2L9vp/66DT0Q\nc2HOFCEqOGVC3aYRDxBY900jxa5cvXVUBWrBJ0rg1Hun5VcYY0E6eZnpSaeS\nam+JXw88bYcETxPTexvv6jRCa/aWvGNkFrU5W1a8hO2IheqFFtEPV/AmgJyO\nxtR2/omCj9lywmwtzXS5vGjKTvRLmW4viwvlfEZXp+nQq5XRcrqXKHHi5Mws\nIrDI\r\n=MGBN\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIACjiWQ2vcG8TYHgVqr+1gjWppiX1o5adoVKoMszf01eAiAnP6/XiTsilJJ6F+4Qi0+2UMpyeaA1n1UNY+P78RLlHQ=="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.0-beta.10_1570465673214_0.5965502566329279"},"_hasShrinkwrap":false},"7.0.0-beta.11":{"name":"react-table","version":"7.0.0-beta.11","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"dist/index.js","module":"dist/index.es.js","jsnext:main":"dist/index.es.js","sideEffects":false,"scripts":{"commit":"git add . && git-cz","test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","build":"rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,examples/*/src,examples/*/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"prop-types":"^15.5.0","react":"^16.8.3","react-dom":"^16.8.3"},"devDependencies":{"@babel/core":"^7.5.5","@babel/plugin-proposal-class-properties":"^7.5.5","@babel/preset-env":"^7.5.5","@babel/preset-react":"^7.0.0","@babel/runtime":"^7.5.5","@commitlint/cli":"^8.1.0","@commitlint/config-conventional":"^8.1.0","@svgr/rollup":"^4.3.2","@testing-library/dom":"^6.0.0","@testing-library/jest-dom":"^4.0.0","@testing-library/react":"^9.1.1","babel-eslint":"9.x","commitizen":"^4.0.3","core-js":"3.2.1","cross-env":"^5.2.0","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^8.0.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.14.3","eslint-plugin-react-hooks":"1.7.0","eslint-plugin-standard":"^4.0.0","husky":"^3.0.3","is-ci-cli":"^2.0.0","jest":"^24.8.0","jest-cli":"^24.8.0","jest-runner-eslint":"^0.7.4","jest-watch-select-projects":"^0.1.2","jest-watch-typeahead":"^0.3.1","lint-staged":"^9.2.1","prettier":"^1.18.2","prop-types":"^15.5.0","react":"^16.9.0","react-dom":"^16.9.0","rollup":"^0.68.0","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^9.1.3","rollup-plugin-node-resolve":"^4.0.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-terser":"^5.1.2","snapshot-diff":"^0.5.2"},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"browserslist":"> 0.25%, not dead","readmeFilename":"README.md","readme":"![React Table Header](https://github.com/tannerlinsley/react-table/raw/master/media/header.png)\n\n<img src='https://github.com/tannerlinsley/react-table/raw/master/media/logo.png' width='300'/>\n\nHooks for building **lightweight, fast and extendable datagrids** for React\n\n<a href=\"https://travis-ci.org/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://travis-ci.org/tannerlinsley/react-table.svg?branch=master\" />\n</a>\n<a href=\"https://bundlephobia.com/result?p=react-table@next\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-table@next\" />\n</a>\n<a href=\"https://npmjs.com/package/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-table.svg\" />\n</a>\n<a href=\"https://spectrum.chat/react-table\">\n  <img alt=\"Join the community on Spectrum\" src=\"https://withspectrum.github.io/badge/badge.svg\" />\n</a>\n<a href=\"https://github.com/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-table.svg?style=social&label=Star\" />\n</a>\n<a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n<br />\n<br />\n<a href=\"https://patreon.com/tannerlinsley\">\n  <img width=\"180\" alt=\"\" src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/become-a-patron.png\" />\n</a>\n\n<br />\n<br />\n\n## Features\n\n- Lightweight (4kb - 9kb depending on features and tree-shaking)\n- Headless (100% customizable, Bring-your-own-UI)\n- Auto out of the box, fully controllable API\n- Sorting (Multi and Stable)\n- Filters\n- Pivoting & Aggregation\n- Row Selection\n- Row Expansion\n- Column Ordering\n- Animatable\n- Virtualizable\n- Resizable\n- Server-side/controlled data/state\n- Extensible via hook-based plugin system\n- <a href=\"https://medium.com/@tannerlinsley/why-i-wrote-react-table-and-the-problems-it-has-solved-for-nozzle-others-445c4e93d4a8#.axza4ixba\" target=\"\\_parent\">\"Why I wrote React Table and the problems it has solved for Nozzle.io\"</a> by Tanner Linsley\n\n## News / Q&A\n\n#### What is the current state of React Table?\n\nReact Table v7 is still under active development, and its API is still changing, albeit only slightly. For this reason, it is currently in an **beta** release state. It's estimated that it will be fully released as a stable version sometime during October 2019.\n\n#### Should I use v7@beta in production?\n\nYou can use it in production as long as you lock in the beta version in your package.json and also accept that there may be unlikely, but possible bug fixes and/or API changes before it's official release.\n\n#### I'm still using v6, what should I do?\n\nv6 is a great library and is still the default install for `react-table`, however, I do not intend on offering any long-term support for it. If you intend to keep using v6, I recommend maintaining your own fork of the library and keeping it up to date for your version of React.\n\n#### Where are the docs for the older v6 version?\n\nPlease [visit the v6 branch](https://github.com/tannerlinsley/react-table/tree/v6)\n\n#### I want to migrate from v6 to v7. How do I do that?\n\nThe differences between the 2 versions are incredibly massive. Unfortunately, I cannot write a one-to-one upgrade guide for any of v6's API, simply because much of it is irrelevant with v7's headless approach. The best approach for migrating to v7 is to learn its API by reading the documentation and then following some of the examples to begin building your own table component.\n\n## Documentation\n\n- [Installation](./docs/installation.md) - Walk through how to install React Table\n- [Concepts](./docs/concepts.md) - Read how React Table works and how you can use it better\n- [Examples](./docs/examples.md) - Experience and learn from some examples and guides of how to use React Table and implement common patterns\n- [API](./docs/api.md) - Get to know React Table's API, how to use it and how to extend its functionality\n- [Contributing](./CONTRIBUTING.md) - Become familiar with how to contribute back to React Table\n- [Code of Conduct](./CODE_OF_CONDUCT.md) - Be a good React Table citizen by following these repository rules\n\n## Sponsors\n\n**React Table v7** is being built and maintained by me, @tannerlinsley and I am always in need of more Patreon support to keep this project afloat. If you would like to contribute to my Patreon goal for v7 and beyond, [visit my Patreon and help me out!](https://patreon.com/tannerlinsley)\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/platinum.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://tryretool.com/?utm_source=sponsor&utm_campaign=react_table\" target=\"_blank\">\n          <img width='350' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-retool.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"http://bjntech.com/index.html?utm_campaign=react_table\" target=\"_blank\">\n          <img width='250' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-bjn.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/gold.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://nozzle.io\" target=\"_blank\">\n          <img width='230' src=\"https://nozzle.io/img/logo-blue.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://zappi.io/web/\" target=\"_blank\">\n          <img width='230' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-zappi.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://patreon.com/tannerlinsley\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/supporters.png\" />\n        </a>\n      </td>\n      <td>\n        <div><a href=\"https://www.metso.com/\">Pekka</a></div>\n        <div>Jon Eickmeier</div>\n        <div><a href=\"https://github.com/Shah-Sahab\">Syed Hussain<a></div>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://patreon.com/tannerlinsley\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/fans.png\" />\n        </a>\n      </td>\n      <td>\n        <div>Sortmy.games</div>\n        <div>Hugo Meissner</div>\n        <div>Benoit Leger-Derville</div>\n        <div>Thomas Funk</div>\n        <div>Dan Houle</div>\n        <div>David Pickut</div>\n        <div>Jordan Soltman</div>\n        <div>Robert Tajnšek</div>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<a href=\"https://patreon.com/tannerlinsley\">\n  <img width=\"150\" alt=\"\" src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/become-a-patron.png\" />\n</a>\n","licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.0-beta.11","dist":{"shasum":"978a22a179d168f6a4e4ed41dec149057b63412d","integrity":"sha512-mkjyzpZgvNEZa4O308Qv+3oNOVTDR5SrpX+xHIlC8ZkN5/SDTlEtqFs2CgBbUvUNad8qEJup2CoKg7akNNzOvw==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.0-beta.11.tgz","fileCount":46,"unpackedSize":573005,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdnk35CRA9TVsSAnZWagAAmS8P/0ju6iLCZG3caTxV5V3P\nqhZ56mBcwmjZtS5OrISLxbVwWuFjzI4GlVKYxYlV3KBL3pXfoVbz0Lz6O/Ls\nSIGz9obnpY2A8yxE8o+7peiGanCEETPvtkaUpNVlqkKSfOnrplF2K0xxjYK1\nD45k8OxJ1htGHcgCD7Q2uk/JGL+eJ38fNkMnqMvCGQNUVQBLxt59guhQ1OH7\nt2+VvMJPl8vjoN+6jkHiblos3Sn0tYIOzL/wuA0FolbgntCGWO6JPNKqSIAa\np0CeW7obiy9v52MxvPloNv0LTKAJCqaSVmS92Ylk7f3nvVDZXeCL1FG2KfMz\ngT8vQyW53nFdgUfyUZcLOspZvjuXpLuZJu9f5FEp0tv5RWKcp6ZWn4K5Kf96\nk9S0WLeEYUDGev5DNkj9XAphROzwtc95VmcNRPecl38eMklQpacJ9e368s5a\n4+3ormHQbUO19gM7vyvRRtQyHyRoUSRJcRRaJkeh42bnC7tdGcDq1XE22/Qe\ntZbgQWhN/GS35j2sJXQaW1jEJKQIGaSYvXNTmZITs6g4wiEV3yvGq/X63j4H\nmc0bdqpdUBYgvsHGkThfFqbI4O1Q3r5Hqq2dLGAPKqhEOVzDJyNOa+aio9Q+\neN/LijlmmK19fTK9tGku/BMZHuTPyAxZL9aYuf8DzGJELHa/MtHWTv8YQ78s\nTsIc\r\n=azhU\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAEke9S7oD/ubO7/X8qYEvYkOEXCY7iBY8Sc47oT9AVoAiEAin9VK5MF2ArLJXrJCZsJTnD1G2o5Oxy8CND9csYiENw="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.0-beta.11_1570655736469_0.06652412032783994"},"_hasShrinkwrap":false},"7.0.0-beta.12":{"name":"react-table","version":"7.0.0-beta.12","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"dist/index.js","module":"dist/index.es.js","jsnext:main":"dist/index.es.js","sideEffects":false,"scripts":{"commit":"git add . && git-cz","test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"jest","build":"rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,examples/*/src,examples/*/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"prop-types":"^15.5.0","react":"^16.8.3","react-dom":"^16.8.3"},"devDependencies":{"@babel/core":"^7.5.5","@babel/plugin-proposal-class-properties":"^7.5.5","@babel/preset-env":"^7.5.5","@babel/preset-react":"^7.0.0","@babel/runtime":"^7.5.5","@commitlint/cli":"^8.1.0","@commitlint/config-conventional":"^8.1.0","@svgr/rollup":"^4.3.2","@testing-library/dom":"^6.0.0","@testing-library/jest-dom":"^4.0.0","@testing-library/react":"^9.1.1","babel-eslint":"9.x","commitizen":"^4.0.3","core-js":"3.2.1","cross-env":"^5.2.0","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^8.0.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.14.3","eslint-plugin-react-hooks":"1.7.0","eslint-plugin-standard":"^4.0.0","husky":"^3.0.3","is-ci-cli":"^2.0.0","jest":"^24.8.0","jest-cli":"^24.8.0","jest-runner-eslint":"^0.7.4","jest-watch-select-projects":"^0.1.2","jest-watch-typeahead":"^0.3.1","lint-staged":"^9.2.1","prettier":"^1.18.2","prop-types":"^15.5.0","react":"^16.9.0","react-dom":"^16.9.0","rollup":"^0.68.0","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^9.1.3","rollup-plugin-node-resolve":"^4.0.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-terser":"^5.1.2","snapshot-diff":"^0.5.2"},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"browserslist":"> 0.25%, not dead","readmeFilename":"README.md","readme":"![React Table Header](https://github.com/tannerlinsley/react-table/raw/master/media/header.png)\n\n<img src='https://github.com/tannerlinsley/react-table/raw/master/media/logo.png' width='300'/>\n\nHooks for building **lightweight, fast and extendable datagrids** for React\n\n<a href=\"https://travis-ci.org/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://travis-ci.org/tannerlinsley/react-table.svg?branch=master\" />\n</a>\n<a href=\"https://bundlephobia.com/result?p=react-table@next\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://badgen.net/bundlephobia/minzip/react-table@next\" />\n</a>\n<a href=\"https://npmjs.com/package/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/npm/dm/react-table.svg\" />\n</a>\n<a href=\"https://spectrum.chat/react-table\">\n  <img alt=\"Join the community on Spectrum\" src=\"https://withspectrum.github.io/badge/badge.svg\" />\n</a>\n<a href=\"https://github.com/tannerlinsley/react-table\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/github/stars/tannerlinsley/react-table.svg?style=social&label=Star\" />\n</a>\n<a href=\"https://twitter.com/tannerlinsley\" target=\"\\_parent\">\n  <img alt=\"\" src=\"https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow\" />\n</a>\n<br />\n<br />\n<a href=\"https://patreon.com/tannerlinsley\">\n  <img width=\"180\" alt=\"\" src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/become-a-patron.png\" />\n</a>\n\n<br />\n<br />\n\n## Features\n\n- Lightweight (4kb - 9kb depending on features and tree-shaking)\n- Headless (100% customizable, Bring-your-own-UI)\n- Auto out of the box, fully controllable API\n- Sorting (Multi and Stable)\n- Filters\n- Pivoting & Aggregation\n- Row Selection\n- Row Expansion\n- Column Ordering\n- Animatable\n- Virtualizable\n- Resizable\n- Server-side/controlled data/state\n- Extensible via hook-based plugin system\n- <a href=\"https://medium.com/@tannerlinsley/why-i-wrote-react-table-and-the-problems-it-has-solved-for-nozzle-others-445c4e93d4a8#.axza4ixba\" target=\"\\_parent\">\"Why I wrote React Table and the problems it has solved for Nozzle.io\"</a> by Tanner Linsley\n\n## News / Q&A\n\n#### What is the current state of React Table?\n\nReact Table v7 is still under active development, and its API is still changing, albeit only slightly. For this reason, it is currently in an **beta** release state. It's estimated that it will be fully released as a stable version sometime during October 2019.\n\n#### Should I use v7@beta in production?\n\nYou can use it in production as long as you lock in the beta version in your package.json and also accept that there may be unlikely, but possible bug fixes and/or API changes before it's official release.\n\n#### I'm still using v6, what should I do?\n\nv6 is a great library and is still the default install for `react-table`, however, I do not intend on offering any long-term support for it. If you intend to keep using v6, I recommend maintaining your own fork of the library and keeping it up to date for your version of React.\n\n#### Where are the docs for the older v6 version?\n\nPlease [visit the v6 branch](https://github.com/tannerlinsley/react-table/tree/v6)\n\n#### I want to migrate from v6 to v7. How do I do that?\n\nThe differences between the 2 versions are incredibly massive. Unfortunately, I cannot write a one-to-one upgrade guide for any of v6's API, simply because much of it is irrelevant with v7's headless approach. The best approach for migrating to v7 is to learn its API by reading the documentation and then following some of the examples to begin building your own table component.\n\n## Documentation\n\n- [Installation](./docs/installation.md) - Walk through how to install React Table\n- [Concepts](./docs/concepts.md) - Read how React Table works and how you can use it better\n- [Examples](./docs/examples.md) - Experience and learn from some examples and guides of how to use React Table and implement common patterns\n- [API](./docs/api.md) - Get to know React Table's API, how to use it and how to extend its functionality\n- [Contributing](./CONTRIBUTING.md) - Become familiar with how to contribute back to React Table\n- [Code of Conduct](./CODE_OF_CONDUCT.md) - Be a good React Table citizen by following these repository rules\n\n## Sponsors\n\n**React Table v7** is being built and maintained by me, @tannerlinsley and I am always in need of more Patreon support to keep this project afloat. If you would like to contribute to my Patreon goal for v7 and beyond, [visit my Patreon and help me out!](https://patreon.com/tannerlinsley)\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/platinum.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://tryretool.com/?utm_source=sponsor&utm_campaign=react_table\" target=\"_blank\">\n          <img width='350' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-retool.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"http://bjntech.com/index.html?utm_campaign=react_table\" target=\"_blank\">\n          <img width='250' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-bjn.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/gold.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://nozzle.io\" target=\"_blank\">\n          <img width='230' src=\"https://nozzle.io/img/logo-blue.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://zappi.io/web/\" target=\"_blank\">\n          <img width='230' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-zappi.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://patreon.com/tannerlinsley\" target=\"_blank\">\n          <img src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver-placeholder.png\">\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://patreon.com/tannerlinsley\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/supporters.png\" />\n        </a>\n      </td>\n      <td>\n        <div><a href=\"https://www.metso.com/\">Pekka</a></div>\n        <div>Jon Eickmeier</div>\n        <div><a href=\"https://github.com/Shah-Sahab\">Syed Hussain<a></div>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://patreon.com/tannerlinsley\">\n          <img width='200' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/fans.png\" />\n        </a>\n      </td>\n      <td>\n        <div>Sortmy.games</div>\n        <div>Hugo Meissner</div>\n        <div>Benoit Leger-Derville</div>\n        <div>Thomas Funk</div>\n        <div>Dan Houle</div>\n        <div>David Pickut</div>\n        <div>Jordan Soltman</div>\n        <div>Robert Tajnšek</div>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<a href=\"https://patreon.com/tannerlinsley\">\n  <img width=\"150\" alt=\"\" src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/become-a-patron.png\" />\n</a>\n","licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.0-beta.12","dist":{"shasum":"ae54b398fbdb527b9fad82e52c4d829c00fdd5dc","integrity":"sha512-h1c0KNTBRPAMgZumaNixr3X0w7kFTuqk6pHwia12LsMgnTHNEEeqp7+tQ5fTPwwMArp1/OHXeOdSKEes1C83iw==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.0-beta.12.tgz","fileCount":46,"unpackedSize":573005,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdnlRvCRA9TVsSAnZWagAAVawQAIqqyI1BUeirMbXm/P8n\nP2ErOWdho+RqCcQfqdWnD9KcBeCciI/94Rn9pJmJesHwx6r50vrud5etBxMZ\nS45EK9LhSzZhqOGbpSbonxY5Qxr5i0cjsIedHNKRlO+lKM/vGC2wYt5Y9Hxw\nD6RxJ2IlyGvMIGHAfdwBAJ9Pxkb/VjjtjTLpzd5OnsWjgPBZbUSslFIWDCms\nK3tJUsWwjjfk+rrQug79ilDKPsWFi7XGMIWfNV2gR0p0rb24/Q4SYoFNHUU0\n3IeS7cEbsAg87UE5IFlXuJ9DYPfc4MA/dPNtdoz6E/hO4gjNgJAnz6Cyk+Hb\n7rXZNHgEzcnFPBsmnPV8TEscurRCcccdxr2slfaHj93vsLoJBPXyhSSQ1GnE\n/01jxumCOwcoAfv4ZsRTEboH5lTNsiG2dCVxzAx6GtJr0KrXxYrDHOY9jG0/\nhxzqGJ8AgMLno5y+7e0VT+osh/8JB7W43H/aGmQaz6dg/VmNmSyhMrWG5eCc\nu3zlkPqHwcZ5afOVjDPByRmYJBZiz/+xMc1H0emI18P34RLsqPy8R0JvgK/G\nxwBvQppy4AalitdhF/NbChMRKMHBUttIfHo7kPiPEL62kO7ogwr1JFXElQhd\nsxV9VEhXN7sWBUtCLBFTMdmkDqzzpR9RfSHohDuOzJt+JRv9VZE/TGdSfnDO\norft\r\n=3Lgm\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCJC3UMBY6twiRqQP80DqARgdExW5RUL9GLQUpq/QzWtwIhALFfTr2HSuzDhIv1OOlR2i5AO3jZvgAqMD2zjUM8PPFQ"}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.0-beta.12_1570657390624_0.17232044963107152"},"_hasShrinkwrap":false},"7.0.0-beta.13":{"name":"react-table","version":"7.0.0-beta.13","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"dist/index.js","module":"dist/index.es.js","jsnext:main":"dist/index.es.js","sideEffects":false,"scripts":{"commit":"git add . && git-cz","test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"yarn test:jest && yarn test:types","test:jest":"jest","test:types":"dtslint","build":"rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,examples/*/src,examples/*/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"prop-types":"^15.5.0","react":"^16.8.3","react-dom":"^16.8.3"},"devDependencies":{"@babel/core":"^7.5.5","@babel/plugin-proposal-class-properties":"^7.5.5","@babel/preset-env":"^7.5.5","@babel/preset-react":"^7.0.0","@babel/runtime":"^7.5.5","@commitlint/cli":"^8.1.0","@commitlint/config-conventional":"^8.1.0","@svgr/rollup":"^4.3.2","@testing-library/dom":"^6.0.0","@testing-library/jest-dom":"^4.0.0","@testing-library/react":"^9.1.1","babel-eslint":"9.x","commitizen":"^4.0.3","core-js":"3.2.1","cross-env":"^5.2.0","dtslint":"^0.9.8","eslint":"5.x","eslint-config-prettier":"^4.3.0","eslint-config-react-app":"^4.0.1","eslint-config-standard":"^12.0.0","eslint-config-standard-react":"^7.0.2","eslint-plugin-flowtype":"2.x","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^8.0.0","eslint-plugin-prettier":"^3.1.0","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.14.3","eslint-plugin-react-hooks":"1.7.0","eslint-plugin-standard":"^4.0.0","husky":"^3.0.3","is-ci-cli":"^2.0.0","jest":"^24.8.0","jest-cli":"^24.8.0","jest-runner-eslint":"^0.7.4","jest-watch-select-projects":"^0.1.2","jest-watch-typeahead":"^0.3.1","lint-staged":"^9.2.1","prettier":"^1.18.2","prop-types":"^15.5.0","react":"^16.9.0","react-dom":"^16.9.0","rollup":"^0.68.0","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^9.1.3","rollup-plugin-node-resolve":"^4.0.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-terser":"^5.1.2","snapshot-diff":"^0.5.2"},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"browserslist":"> 0.25%, not dead","readmeFilename":"README.md","readme":"![React Table Header](https://github.com/tannerlinsley/react-table/raw/master/media/header.png)\n\n<img src='https://github.com/tannerlinsley/react-table/raw/master/media/logo.png' width='300'/>\n\nHooks for building **lightweight, fast and extendable datagrids** for React\n\n[![#TanStack](https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack)](https://twitter.com/intent/tweet?button_hashtag=TanStack)\n\n<!-- [![GitHub Actions CI](https://github.com/tannerlinsley/react-table/workflows/CI/badge.svg)](https://github.com/tannerlinsley/react-table/actions) -->\n\n[![Travis CI](https://travis-ci.org/tannerlinsley/react-table.svg?branch=master)](https://travis-ci.org/tannerlinsley/react-table)\n[![Bundlephobia](https://badgen.net/bundlephobia/minzip/react-table@next)](https://bundlephobia.com/result?p=react-table@next)\n[![NPM Package](https://img.shields.io/npm/dm/react-table.svg)](https://npmjs.com/package/react-table)\n[![Join the community on Spectrum](https://withspectrum.github.io/badge/badge.svg)](https://spectrum.chat/react-table)\n[![GitHub Stars](https://img.shields.io/github/stars/tannerlinsley/react-table.svg?style=social&label=Star)](https://github.com/tannerlinsley/react-table)\n[![Twitter Followers](https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow)](https://twitter.com/tannerlinsley)\n\nEnjoy this library? Try them all! [React Query](https://github.com/tannerlinsley/react-query), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n### [Become a Sponsor](https://github.com/sponsors/tannerlinsley/)\n\n## Features\n\n- Lightweight (4kb - 9kb depending on features and tree-shaking)\n- Headless (100% customizable, Bring-your-own-UI)\n- Auto out of the box, fully controllable API\n- Sorting (Multi and Stable)\n- Filters\n- Pivoting & Aggregation\n- Row Selection\n- Row Expansion\n- Column Ordering\n- Animatable\n- Virtualizable\n- Resizable\n- Server-side/controlled data/state\n- Extensible via hook-based plugin system\n- <a href=\"https://medium.com/@tannerlinsley/why-i-wrote-react-table-and-the-problems-it-has-solved-for-nozzle-others-445c4e93d4a8#.axza4ixba\" target=\"\\_parent\">\"Why I wrote React Table and the problems it has solved for Nozzle.io\"</a> by Tanner Linsley\n\n## News / Q&A\n\n#### What is the current state of React Table?\n\nReact Table v7 is still under active development, and its API is still changing, albeit only slightly. For this reason, it is currently in an **beta** release state. It's estimated that it will be fully released as a stable version sometime during October 2019.\n\n#### Should I use v7@beta in production?\n\nYou can use it in production as long as you lock in the beta version in your package.json and also accept that there may be unlikely, but possible bug fixes and/or API changes before it's official release.\n\n#### I'm still using v6, what should I do?\n\nv6 is a great library and is still the default install for `react-table`, however, I do not intend on offering any long-term support for it. If you intend to keep using v6, I recommend maintaining your own fork of the library and keeping it up to date for your version of React.\n\n#### Where are the docs for the older v6 version?\n\nPlease [visit the v6 branch](https://github.com/tannerlinsley/react-table/tree/v6)\n\n#### I want to migrate from v6 to v7. How do I do that?\n\nThe differences between the 2 versions are incredibly massive. Unfortunately, I cannot write a one-to-one upgrade guide for any of v6's API, simply because much of it is irrelevant with v7's headless approach. The best approach for migrating to v7 is to learn its API by reading the documentation and then following some of the examples to begin building your own table component.\n\nIn case you would need to have both v6 and v7 in one app during the migration process (large codebase, complex use cases), you can install an official [`react-table-6` package](https://www.npmjs.com/package/react-table-6) alongside the `react-table`.\n\n## Documentation\n\n- [Installation](./docs/installation.md) - Walk through how to install React Table\n- [Concepts](./docs/concepts.md) - Read how React Table works and how you can use it better\n- [Examples](./docs/examples.md) - Experience and learn from some examples and guides of how to use React Table and implement common patterns\n- [API](./docs/api.md) - Get to know React Table's API, how to use it and how to extend its functionality\n- [Contributing](./CONTRIBUTING.md) - Become familiar with how to contribute back to React Table\n- [Code of Conduct](./CODE_OF_CONDUCT.md) - Be a good React Table citizen by following these repository rules\n\n## Sponsors\n\nThis library is being built and maintained by me, @tannerlinsley and I am always in need of more support to keep this project afloat. If you would like to get additional support, add your logo or name on this README, or simply just contribute to my open source Sponsorship goal, [visit my Github Sponsors page!](https://github.com/sponsors/tannerlinsley/)\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/diamond.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Sponsor!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\" target=\"_blank\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/platinum.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://tryretool.com/?utm_source=sponsor&utm_campaign=react_table\" target=\"_blank\">\n          <img width='225' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-retool.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"http://bjntech.com/index.html?utm_campaign=react_table\" target=\"_blank\">\n          <img width='225' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-bjn.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n       <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Sponsor!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\" target=\"_blank\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/gold.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://nozzle.io\" target=\"_blank\">\n          <img width='225' src=\"https://nozzle.io/img/logo-blue.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://zappi.io/web/\" target=\"_blank\">\n          <img width='225' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-zappi.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Sponsor!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\" target=\"_blank\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Sponsor!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/supporters.png\" />\n        </a>\n      </td>\n      <td>\n        <ul>\n        <li>Jon Eickmeier</li>\n        <li><a href=\"https://github.com/Shah-Sahab\">Syed Hussain<a></li>\n        </ul>\n      </td>\n      <td>\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Supporter!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/fans.png\" />\n        </a>\n      </td>\n      <td>\n        <ul>\n        <li>Sortmy.games</li>\n        <li>Hugo Meissner</li>\n        <li>Benoit Leger-Derville</li>\n        <li>Thomas Funk</li>\n        <li>Dan Houle</li>\n        <li>David Pickut</li>\n        <li>Jordan Soltman</li>\n        <li>Robert Tajnšek</li>\n        <li>Pekka Tapani</li>\n        </ul>\n      </td>\n      <td>\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Fan!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n### [Become a Sponsor](https://github.com/sponsors/tannerlinsley/)\n","licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.0-beta.13","dist":{"shasum":"03982850f5a6c04a189e8b517aae478a537e1fa4","integrity":"sha512-/meuhZ4v53Iy+55McfMEH/WU3iQsPfaSB4EMxtBYTq/yg8+xIICIRh6ebC6J1GLv/25Wzt8cxkEn/TWButUSVg==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.0-beta.13.tgz","fileCount":46,"unpackedSize":558053,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd1XcyCRA9TVsSAnZWagAANV0P+wSTQaEGUDRkHmSzHMRP\nbuEIc07FvOY643ss576mP9Wiaz71dhJH65E/7C2Tq6CHBm4Kj/jdyuYNodF+\n8IIb9Z+SUMfwk4oGNG+UogXWuhzVB5lbQRR9v2ggUhgASM/WeUaGyWzboL+p\nURQao/8sKaqPfDTJ6w+PdOvF1+Cmt2meqtQAK86g2x4oZrJOZ84KSa/idtcq\nyuFfiBXg0mwOL+SSsi7H34YbcpQYLRsy8fLboTcExSfQJKJ//1hnLvnToCJ0\nOuimelovHBqEb3WO/lEv9JqCdZAZaKV5FtFW6iiqPm+dKH3xkzF3ermYTovu\nX0s5NHltGBhFTDSCmnCXyIvz7e8GQi1rgiaqSWw3iitLvQDSzd+Vrlj1m8fb\ntNX45uwGtTtS5HnniBzr0za6etnyz/SapUrGFzIBXOU0ozeJHbikOymmlsUv\nDe3j7hoWH5frD2tPsG/ic4nUDlTtCz9hohJDGm/Jt3ugrzqwjd84Wlh0XGZL\nk0FCNWCvlcwbESQ6q76CKU2Ji6ihNKvWuKUitvcf4ZFS5bxBGfifoIG3Fju7\nVjfpSY69gZQwEVIxEiVNZKnIm5KMVVi95JWgOQ3AgFocAxXz58VzmCPX3nuG\nZijj+Csl2WKf5KnQxX1AH0MjyxfT9TmkI9ZzVtM9ApVHvAx2B8mqjs97i0pP\nD+hn\r\n=zKAh\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDDLY6+d2gejovVrAac5nJchd+8tjZ8xwZvG1q8h2gO0AiAOxY8KzFnS41ugIbMa76gB22lNxEDjgPC6RSw2p5MfOw=="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.0-beta.13_1574270769990_0.15807910362800204"},"_hasShrinkwrap":false},"7.0.0-beta.14":{"name":"react-table","version":"7.0.0-beta.14","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"dist/index.js","module":"dist/index.es.js","scripts":{"commit":"git add . && git-cz","test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"yarn test:jest && yarn test:types","test:jest":"jest","test:types":"echo '\n****\nTODO: Re-enable dtslint\n****\n'","build":"rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,examples/*/src,examples/*/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"prop-types":"^15.5.0","react":"^16.8.3","react-dom":"^16.8.3"},"devDependencies":{"@babel/core":"^7.7.2","@babel/preset-env":"^7.7.1","@babel/preset-react":"^7.7.0","@babel/runtime":"^7.7.2","@commitlint/cli":"^8.2.0","@commitlint/config-conventional":"^8.2.0","@svgr/rollup":"^4.3.3","@testing-library/dom":"^6.10.1","@testing-library/jest-dom":"^4.2.4","@testing-library/react":"^9.3.2","babel-eslint":"9.x","babel-jest":"^24.9.0","commitizen":"^4.0.3","core-js":"3.4.1","cross-env":"^6.0.3","dtslint":"^0.9.8","eslint":"6.6.0","eslint-config-prettier":"^6.7.0","eslint-config-react-app":"^5.0.2","eslint-config-standard":"^14.1.0","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"4.4.1","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^10.0.0","eslint-plugin-prettier":"^3.1.1","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.16.0","eslint-plugin-react-hooks":"2.3.0","eslint-plugin-standard":"^4.0.1","husky":"^3.1.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","jest-cli":"^24.9.0","jest-runner-eslint":"^0.7.5","jest-watch-select-projects":"^1.0.0","jest-watch-typeahead":"^0.4.2","lint-staged":"^9.4.3","prettier":"^1.19.1","prop-types":"^15.5.0","react":"^16.12.0","react-dom":"^16.12.0","rollup":"^1.27.3","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2","snapshot-diff":"^0.6.1"},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"browserslist":"> 0.25%, not dead","readmeFilename":"README.md","readme":"![React Table Header](https://github.com/tannerlinsley/react-table/raw/master/media/header.png)\n\n<img src='https://github.com/tannerlinsley/react-table/raw/master/media/logo.png' width='300'/>\n\nHooks for building **lightweight, fast and extendable datagrids** for React\n\n[![#TanStack](https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack)](https://twitter.com/intent/tweet?button_hashtag=TanStack)\n\n<!-- [![GitHub Actions CI](https://github.com/tannerlinsley/react-table/workflows/CI/badge.svg)](https://github.com/tannerlinsley/react-table/actions) -->\n\n[![Travis CI](https://travis-ci.org/tannerlinsley/react-table.svg?branch=master)](https://travis-ci.org/tannerlinsley/react-table)\n[![Bundlephobia](https://badgen.net/bundlephobia/minzip/react-table@next)](https://bundlephobia.com/result?p=react-table@next)\n[![NPM Package](https://img.shields.io/npm/dm/react-table.svg)](https://npmjs.com/package/react-table)\n[![Join the community on Spectrum](https://withspectrum.github.io/badge/badge.svg)](https://spectrum.chat/react-table)\n[![GitHub Stars](https://img.shields.io/github/stars/tannerlinsley/react-table.svg?style=social&label=Star)](https://github.com/tannerlinsley/react-table)\n[![Twitter Followers](https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow)](https://twitter.com/tannerlinsley)\n\nEnjoy this library? Try them all! [React Query](https://github.com/tannerlinsley/react-query), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n### [Become a Sponsor](https://github.com/sponsors/tannerlinsley/)\n\n## Features\n\n- Lightweight (4kb - 10kb depending on features and tree-shaking)\n- Headless (100% customizable, Bring-your-own-UI)\n- Auto out of the box, fully controllable API\n- Sorting (Multi and Stable)\n- Filters\n- Pivoting & Aggregation\n- Row Selection\n- Row Expansion\n- Column Ordering\n- Animatable\n- Virtualizable\n- Resizable\n- Server-side/controlled data/state\n- Extensible via hook-based plugin system\n- <a href=\"https://medium.com/@tannerlinsley/why-i-wrote-react-table-and-the-problems-it-has-solved-for-nozzle-others-445c4e93d4a8#.axza4ixba\" target=\"\\_parent\">\"Why I wrote React Table and the problems it has solved for Nozzle.io\"</a> by Tanner Linsley\n\n## News / Q&A\n\n#### What is the current state of React Table?\n\nReact Table v7 is still under active development, and its API is still changing, albeit only slightly. For this reason, it is currently in an **beta** release state. It's estimated that it will be fully released as a stable version sometime during October 2019.\n\n#### Should I use v7@beta in production?\n\nYou can use it in production as long as you lock in the beta version in your package.json and also accept that there may be unlikely, but possible bug fixes and/or API changes before it's official release.\n\n#### I'm still using v6, what should I do?\n\nv6 is a great library and is still the default install for `react-table`, however, I do not intend on offering any long-term support for it. If you intend to keep using v6, I recommend maintaining your own fork of the library and keeping it up to date for your version of React.\n\n#### Where are the docs for the older v6 version?\n\nPlease [visit the v6 branch](https://github.com/tannerlinsley/react-table/tree/v6)\n\n#### I want to migrate from v6 to v7. How do I do that?\n\nThe differences between the 2 versions are incredibly massive. Unfortunately, I cannot write a one-to-one upgrade guide for any of v6's API, simply because much of it is irrelevant with v7's headless approach. The best approach for migrating to v7 is to learn its API by reading the documentation and then following some of the examples to begin building your own table component.\n\nIn case you would need to have both v6 and v7 in one app during the migration process (large codebase, complex use cases), you can install an official [`react-table-6` package](https://www.npmjs.com/package/react-table-6) alongside the `react-table`.\n\n## Documentation\n\n- [Installation](./docs/installation.md) - Walk through how to install React Table\n- [Concepts](./docs/concepts.md) - Read how React Table works and how you can use it better\n- [Examples](./docs/examples.md) - Experience and learn from some examples and guides of how to use React Table and implement common patterns\n- [API](./docs/api.md) - Get to know React Table's API, how to use it and how to extend its functionality\n- [Contributing](./CONTRIBUTING.md) - Become familiar with how to contribute back to React Table\n- [Code of Conduct](./CODE_OF_CONDUCT.md) - Be a good React Table citizen by following these repository rules\n\n## Sponsors\n\nThis library is being built and maintained by me, @tannerlinsley and I am always in need of more support to keep this project afloat. If you would like to get additional support, add your logo or name on this README, or simply just contribute to my open source Sponsorship goal, [visit my Github Sponsors page!](https://github.com/sponsors/tannerlinsley/)\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/diamond.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Sponsor!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\" target=\"_blank\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/platinum.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://tryretool.com/?utm_source=sponsor&utm_campaign=react_table\" target=\"_blank\">\n          <img width='225' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-retool.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"http://bjntech.com/index.html?utm_campaign=react_table\" target=\"_blank\">\n          <img width='225' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-bjn.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n       <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Sponsor!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\" target=\"_blank\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/gold.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://nozzle.io\" target=\"_blank\">\n          <img width='225' src=\"https://nozzle.io/img/logo-blue.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://zappi.io/web/\" target=\"_blank\">\n          <img width='225' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-zappi.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Sponsor!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\" target=\"_blank\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Sponsor!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/supporters.png\" />\n        </a>\n      </td>\n      <td>\n        <ul>\n        <li>Jon Eickmeier</li>\n        <li><a href=\"https://github.com/Shah-Sahab\">Syed Hussain<a></li>\n        </ul>\n      </td>\n      <td>\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Supporter!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/fans.png\" />\n        </a>\n      </td>\n      <td>\n        <ul>\n        <li>Sortmy.games</li>\n        <li>Hugo Meissner</li>\n        <li>Benoit Leger-Derville</li>\n        <li>Thomas Funk</li>\n        <li>Dan Houle</li>\n        <li>David Pickut</li>\n        <li>Jordan Soltman</li>\n        <li>Robert Tajnšek</li>\n        <li>Pekka Tapani</li>\n        </ul>\n      </td>\n      <td>\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Fan!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n### [Become a Sponsor](https://github.com/sponsors/tannerlinsley/)\n","licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.0-beta.14","dist":{"shasum":"17824db22de1b082ed9fdb8e3bcb21612abd6523","integrity":"sha512-5pUAq+Dv/Dwo/iMZHRjxlBpphOclgDDJ0BBW26MgzWPZY+PfhqzIWVk7HnIFa8GJW8dzpMu20/jiWRhwav1N/A==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.0-beta.14.tgz","fileCount":46,"unpackedSize":650427,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd1ZHqCRA9TVsSAnZWagAA8mwQAIbpWejqCRjB1iNMIB3O\nlGTcM95xGqhm25VPgP/t7Zmp56bHheCvnfl/mRrrtuVcKmNWSLl9HzDwR4Za\nWnbwVmnsFkr9885rsGysY7LXD5vKrYv1NIlIP1fcTKRNUfMMtCSrRxYfCG7D\n0hG6J9ky4hk4pyrRyx5CrDdhPR7Bm0OR72bp9316HLhIdMKTOUTcQ8PXyOQW\ntyRSqUfyhkn7zh5bSQtkAljFR4IvRzvSHnJkQDznDdNJHWSGCOjviJMrgQbV\n6dASLDcntVcNG94uDMRtugUPylWd+23hEkz6wwzHHOX54x6FLEmq2uXyNziT\nwG8Ubwed+lHIdHpTmG6osDRDw5E31EMcryXRGXL6YSfizO6SRO1jU7XDBDBv\nIJP9oGhHPXxK00AK2rLDeWnYYN7OsC2NA6npZwOQ1pDgmWDfc9wfywOH4H27\nemo1WmrEfxZPoctqnFCt79GlXOYk+rEIQ+k2jFSqj3MzGq2vrwAhduPzR7Yf\n6W2ddYhn7Ur+0ccdIM5bPH60Xns/ijxFm7MF9TmODV4na7P36fBvYsGEHe3+\nn4CAWWDSlUd4NHywk4jNjQaRvgLW3AxMfZQ1HowxN2kcz6h5U6nyaVPb4M3f\ncS2pZezb5HYelV/cTvGMV1/+dW8kEQjvIzhM3s/FSUQgQSXn79o1xEwPWfhb\nQAwy\r\n=SUIz\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGdl2O/ryVMiyYyvFOkeWtZ0nxyeX1WPTbdC4vA9eWX9AiEArFDlhcxbKHO4Ni5TZGNU6ykVPcPAjpJX0THP6mZlaNY="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.0-beta.14_1574277610244_0.19652063012775778"},"_hasShrinkwrap":false},"7.0.0-beta.15":{"name":"react-table","version":"7.0.0-beta.15","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"dist/index.js","module":"dist/index.es.js","scripts":{"commit":"git add . && git-cz","test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"yarn test:jest && yarn test:types","test:jest":"jest","test:types":"echo '\n****\nTODO: Re-enable dtslint\n****\n'","build":"rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,examples/*/src,examples/*/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"prop-types":"^15.5.0","react":"^16.8.3","react-dom":"^16.8.3"},"devDependencies":{"@babel/core":"^7.7.2","@babel/preset-env":"^7.7.1","@babel/preset-react":"^7.7.0","@babel/runtime":"^7.7.2","@commitlint/cli":"^8.2.0","@commitlint/config-conventional":"^8.2.0","@svgr/rollup":"^4.3.3","@testing-library/dom":"^6.10.1","@testing-library/jest-dom":"^4.2.4","@testing-library/react":"^9.3.2","babel-eslint":"9.x","babel-jest":"^24.9.0","commitizen":"^4.0.3","core-js":"3.4.1","cross-env":"^6.0.3","dtslint":"^0.9.8","eslint":"6.6.0","eslint-config-prettier":"^6.7.0","eslint-config-react-app":"^5.0.2","eslint-config-standard":"^14.1.0","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"4.4.1","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^10.0.0","eslint-plugin-prettier":"^3.1.1","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.16.0","eslint-plugin-react-hooks":"2.3.0","eslint-plugin-standard":"^4.0.1","husky":"^3.1.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","jest-cli":"^24.9.0","jest-runner-eslint":"^0.7.5","jest-watch-select-projects":"^1.0.0","jest-watch-typeahead":"^0.4.2","lint-staged":"^9.4.3","prettier":"^1.19.1","prop-types":"^15.5.0","react":"^16.12.0","react-dom":"^16.12.0","rollup":"^1.27.3","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2","snapshot-diff":"^0.6.1"},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"browserslist":"> 0.25%, not dead","readmeFilename":"README.md","readme":"![React Table Header](https://github.com/tannerlinsley/react-table/raw/master/media/header.png)\n\n<img src='https://github.com/tannerlinsley/react-table/raw/master/media/logo.png' width='300'/>\n\nHooks for building **lightweight, fast and extendable datagrids** for React\n\n[![#TanStack](https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack)](https://twitter.com/intent/tweet?button_hashtag=TanStack)\n\n<!-- [![GitHub Actions CI](https://github.com/tannerlinsley/react-table/workflows/CI/badge.svg)](https://github.com/tannerlinsley/react-table/actions) -->\n\n[![Travis CI](https://travis-ci.org/tannerlinsley/react-table.svg?branch=master)](https://travis-ci.org/tannerlinsley/react-table)\n[![Bundlephobia](https://badgen.net/bundlephobia/minzip/react-table@next)](https://bundlephobia.com/result?p=react-table@next)\n[![NPM Package](https://img.shields.io/npm/dm/react-table.svg)](https://npmjs.com/package/react-table)\n[![Join the community on Spectrum](https://withspectrum.github.io/badge/badge.svg)](https://spectrum.chat/react-table)\n[![GitHub Stars](https://img.shields.io/github/stars/tannerlinsley/react-table.svg?style=social&label=Star)](https://github.com/tannerlinsley/react-table)\n[![Twitter Followers](https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow)](https://twitter.com/tannerlinsley)\n\nEnjoy this library? Try them all! [React Query](https://github.com/tannerlinsley/react-query), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n### [Become a Sponsor](https://github.com/sponsors/tannerlinsley/)\n\n## Features\n\n- Lightweight (4kb - 10kb depending on features and tree-shaking)\n- Headless (100% customizable, Bring-your-own-UI)\n- Auto out of the box, fully controllable API\n- Sorting (Multi and Stable)\n- Filters\n- Pivoting & Aggregation\n- Row Selection\n- Row Expansion\n- Column Ordering\n- Animatable\n- Virtualizable\n- Resizable\n- Server-side/controlled data/state\n- Extensible via hook-based plugin system\n- <a href=\"https://medium.com/@tannerlinsley/why-i-wrote-react-table-and-the-problems-it-has-solved-for-nozzle-others-445c4e93d4a8#.axza4ixba\" target=\"\\_parent\">\"Why I wrote React Table and the problems it has solved for Nozzle.io\"</a> by Tanner Linsley\n\n## News / Q&A\n\n#### What is the current state of React Table?\n\nReact Table v7 is still under active development, and its API is still changing, albeit only slightly. For this reason, it is currently in an **beta** release state. It's estimated that it will be fully released as a stable version sometime during October 2019.\n\n#### Should I use v7@beta in production?\n\nYou can use it in production as long as you lock in the beta version in your package.json and also accept that there may be unlikely, but possible bug fixes and/or API changes before it's official release.\n\n#### I'm still using v6, what should I do?\n\nv6 is a great library and is still the default install for `react-table`, however, I do not intend on offering any long-term support for it. If you intend to keep using v6, I recommend maintaining your own fork of the library and keeping it up to date for your version of React.\n\n#### Where are the docs for the older v6 version?\n\nPlease [visit the v6 branch](https://github.com/tannerlinsley/react-table/tree/v6)\n\n#### I want to migrate from v6 to v7. How do I do that?\n\nThe differences between the 2 versions are incredibly massive. Unfortunately, I cannot write a one-to-one upgrade guide for any of v6's API, simply because much of it is irrelevant with v7's headless approach. The best approach for migrating to v7 is to learn its API by reading the documentation and then following some of the examples to begin building your own table component.\n\nIn case you would need to have both v6 and v7 in one app during the migration process (large codebase, complex use cases), you can install an official [`react-table-6` package](https://www.npmjs.com/package/react-table-6) alongside the `react-table`.\n\n## Documentation\n\n- [Installation](./docs/installation.md) - Walk through how to install React Table\n- [Concepts](./docs/concepts.md) - Read how React Table works and how you can use it better\n- [Examples](./docs/examples.md) - Experience and learn from some examples and guides of how to use React Table and implement common patterns\n- [API](./docs/api.md) - Get to know React Table's API, how to use it and how to extend its functionality\n- [Contributing](./CONTRIBUTING.md) - Become familiar with how to contribute back to React Table\n- [Code of Conduct](./CODE_OF_CONDUCT.md) - Be a good React Table citizen by following these repository rules\n\n## Sponsors\n\nThis library is being built and maintained by me, @tannerlinsley and I am always in need of more support to keep this project afloat. If you would like to get additional support, add your logo or name on this README, or simply just contribute to my open source Sponsorship goal, [visit my Github Sponsors page!](https://github.com/sponsors/tannerlinsley/)\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/diamond.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Sponsor!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\" target=\"_blank\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/platinum.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://tryretool.com/?utm_source=sponsor&utm_campaign=react_table\" target=\"_blank\">\n          <img width='225' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-retool.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"http://bjntech.com/index.html?utm_campaign=react_table\" target=\"_blank\">\n          <img width='225' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-bjn.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n       <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Sponsor!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\" target=\"_blank\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/gold.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://nozzle.io\" target=\"_blank\">\n          <img width='225' src=\"https://nozzle.io/img/logo-blue.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://zappi.io/web/\" target=\"_blank\">\n          <img width='225' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-zappi.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Sponsor!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\" target=\"_blank\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Sponsor!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/supporters.png\" />\n        </a>\n      </td>\n      <td>\n        <ul>\n        <li>Jon Eickmeier</li>\n        <li><a href=\"https://github.com/Shah-Sahab\">Syed Hussain<a></li>\n        </ul>\n      </td>\n      <td>\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Supporter!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/fans.png\" />\n        </a>\n      </td>\n      <td>\n        <ul>\n        <li>Sortmy.games</li>\n        <li>Hugo Meissner</li>\n        <li>Benoit Leger-Derville</li>\n        <li>Thomas Funk</li>\n        <li>Dan Houle</li>\n        <li>David Pickut</li>\n        <li>Jordan Soltman</li>\n        <li>Robert Tajnšek</li>\n        <li>Pekka Tapani</li>\n        </ul>\n      </td>\n      <td>\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Fan!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n### [Become a Sponsor](https://github.com/sponsors/tannerlinsley/)\n","licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.0-beta.15","dist":{"shasum":"66dc4c71f9e77f5c92ac65a307341d6d3e045d33","integrity":"sha512-Qr0HjVkYIPLi7BJiHm6ZfRIH00Ziu/bdonwouwKY10hsaqQi9AyH9kF4cXJChBQuspfjsnqnP9kQAjsEIoAeUQ==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.0-beta.15.tgz","fileCount":46,"unpackedSize":650404,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd3CsICRA9TVsSAnZWagAAUU4P/3llYWdF+OzrMK3pGelo\ngS6QKHbi4LyrPpMk1x1Wl9qaBZqSxbieczTIwqm72WqfQaZCXzJ4DlaXnkAf\ngdTJPBMW39h6fHVi20tJ9f0Imc85f6Ky4YVHaLup8J49L0lY4RXJbfW97Ut5\nsWGO4vF2t+n4Gen3A7KZjhwNVhM+APnHsAO5kn3KXBksCZI/KfRC51jzhQsX\nkxe8H3rnfDEgyDC6D+DqKzMI49iNW5u89/C6tgmzqGRp6/LRp8bLJe45tisQ\nAsqlDACdMwdk3M0NoIliNOdQyHsXiiIegde8L/81e8gXQ6gSuTB2Wz/5YErr\nbjSEwnwVHfhFN9UoqH3LgmNZknp+2XFr6f+as8eYl9nNJcenLvtj0qDuB/ie\nMeb2MEIJa5YDOnoz4brYFsCMOisl6NMDnjQMdCAUo2EZii4ALe0YICkepku7\n5w7VY0OChxVP1MFTnwXYZYMFVKHOedQTKPvzElX/5wZ6kGcraH11QlOlQnLk\ncKqeu6VqAh63rbhs92ls2Ej6gJmLpNHyw9A2assu/twdi2H6S+FQ2Lq0XM2t\nkFBbphl/dKcAdIXVrhs/KzikeuPv3ln1SqR/4qV+rUF4nssBNqJPap5a8y0A\nHAtGoza5vAr+9Oa64H8DiirY0k3PcY6wTnhdOYoyNFZwnJXi0mVPUHuRVXJ5\n5m+1\r\n=4NKW\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFJ2vHKBlZyylcNL62j6H492xBOC6qwlPBs2jBaIEWBWAiEAgPD3oRcX3O/u8PNOncowh/s2qjtr/PXGHN2F9oG0DBA="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.0-beta.15_1574710023701_0.6038370292262139"},"_hasShrinkwrap":false},"7.0.0-beta.16":{"name":"react-table","version":"7.0.0-beta.16","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"dist/index.js","module":"dist/index.es.js","scripts":{"commit":"git add . && git-cz","test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"yarn test:jest && yarn test:types","test:jest":"jest","test:types":"echo '\n****\nTODO: Re-enable dtslint\n****\n'","build":"rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,examples/*/src,examples/*/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"prop-types":"^15.5.0","react":"^16.8.3","react-dom":"^16.8.3"},"devDependencies":{"@babel/core":"^7.7.2","@babel/preset-env":"^7.7.1","@babel/preset-react":"^7.7.0","@babel/runtime":"^7.7.2","@commitlint/cli":"^8.2.0","@commitlint/config-conventional":"^8.2.0","@svgr/rollup":"^4.3.3","@testing-library/dom":"^6.10.1","@testing-library/jest-dom":"^4.2.4","@testing-library/react":"^9.3.2","babel-eslint":"9.x","babel-jest":"^24.9.0","commitizen":"^4.0.3","core-js":"3.4.1","cross-env":"^6.0.3","dtslint":"^0.9.8","eslint":"6.6.0","eslint-config-prettier":"^6.7.0","eslint-config-react-app":"^5.0.2","eslint-config-standard":"^14.1.0","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"4.4.1","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^10.0.0","eslint-plugin-prettier":"^3.1.1","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.16.0","eslint-plugin-react-hooks":"2.3.0","eslint-plugin-standard":"^4.0.1","husky":"^3.1.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","jest-cli":"^24.9.0","jest-runner-eslint":"^0.7.5","jest-watch-select-projects":"^1.0.0","jest-watch-typeahead":"^0.4.2","lint-staged":"^9.4.3","prettier":"^1.19.1","prop-types":"^15.5.0","react":"^16.12.0","react-dom":"^16.12.0","rollup":"^1.27.3","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2","snapshot-diff":"^0.6.1"},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"browserslist":"> 0.25%, not dead","readmeFilename":"README.md","readme":"![React Table Header](https://github.com/tannerlinsley/react-table/raw/master/media/header.png)\n\n<img src='https://github.com/tannerlinsley/react-table/raw/master/media/logo.png' width='300'/>\n\nHooks for building **lightweight, fast and extendable datagrids** for React\n\n[![#TanStack](https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack)](https://twitter.com/intent/tweet?button_hashtag=TanStack)\n\n<!-- [![GitHub Actions CI](https://github.com/tannerlinsley/react-table/workflows/CI/badge.svg)](https://github.com/tannerlinsley/react-table/actions) -->\n\n[![Travis CI](https://travis-ci.org/tannerlinsley/react-table.svg?branch=master)](https://travis-ci.org/tannerlinsley/react-table)\n[![Bundlephobia](https://badgen.net/bundlephobia/minzip/react-table@next)](https://bundlephobia.com/result?p=react-table@next)\n[![NPM Package](https://img.shields.io/npm/dm/react-table.svg)](https://npmjs.com/package/react-table)\n[![Join the community on Spectrum](https://withspectrum.github.io/badge/badge.svg)](https://spectrum.chat/react-table)\n[![GitHub Stars](https://img.shields.io/github/stars/tannerlinsley/react-table.svg?style=social&label=Star)](https://github.com/tannerlinsley/react-table)\n[![Twitter Followers](https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow)](https://twitter.com/tannerlinsley)\n\nEnjoy this library? Try them all! [React Query](https://github.com/tannerlinsley/react-query), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n### [Become a Sponsor](https://github.com/sponsors/tannerlinsley/)\n\n## Features\n\n- Lightweight (4kb - 10kb depending on features and tree-shaking)\n- Headless (100% customizable, Bring-your-own-UI)\n- Auto out of the box, fully controllable API\n- Sorting (Multi and Stable)\n- Filters\n- Pivoting & Aggregation\n- Row Selection\n- Row Expansion\n- Column Ordering\n- Animatable\n- Virtualizable\n- Resizable\n- Server-side/controlled data/state\n- Extensible via hook-based plugin system\n- <a href=\"https://medium.com/@tannerlinsley/why-i-wrote-react-table-and-the-problems-it-has-solved-for-nozzle-others-445c4e93d4a8#.axza4ixba\" target=\"\\_parent\">\"Why I wrote React Table and the problems it has solved for Nozzle.io\"</a> by Tanner Linsley\n\n## News / Q&A\n\n#### What is the current state of React Table?\n\nReact Table v7 is still under active development, and its API is still changing, albeit only slightly. For this reason, it is currently in an **beta** release state. It's estimated that it will be fully released as a stable version sometime during October 2019.\n\n#### Should I use v7@beta in production?\n\nYou can use it in production as long as you lock in the beta version in your package.json and also accept that there may be unlikely, but possible bug fixes and/or API changes before it's official release.\n\n#### I'm still using v6, what should I do?\n\nv6 is a great library and is still the default install for `react-table`, however, I do not intend on offering any long-term support for it. If you intend to keep using v6, I recommend maintaining your own fork of the library and keeping it up to date for your version of React.\n\n#### Where are the docs for the older v6 version?\n\nPlease [visit the v6 branch](https://github.com/tannerlinsley/react-table/tree/v6)\n\n#### I want to migrate from v6 to v7. How do I do that?\n\nThe differences between the 2 versions are incredibly massive. Unfortunately, I cannot write a one-to-one upgrade guide for any of v6's API, simply because much of it is irrelevant with v7's headless approach. The best approach for migrating to v7 is to learn its API by reading the documentation and then following some of the examples to begin building your own table component.\n\nIn case you would need to have both v6 and v7 in one app during the migration process (large codebase, complex use cases), you can install an official [`react-table-6` package](https://www.npmjs.com/package/react-table-6) alongside the `react-table`.\n\n## Documentation\n\n- [Installation](./docs/installation.md) - Walk through how to install React Table\n- [Concepts](./docs/concepts.md) - Read how React Table works and how you can use it better\n- [Examples](./docs/examples.md) - Experience and learn from some examples and guides of how to use React Table and implement common patterns\n- [API](./docs/api.md) - Get to know React Table's API, how to use it and how to extend its functionality\n- [Contributing](./CONTRIBUTING.md) - Become familiar with how to contribute back to React Table\n- [Code of Conduct](./CODE_OF_CONDUCT.md) - Be a good React Table citizen by following these repository rules\n\n## Sponsors\n\nThis library is being built and maintained by me, @tannerlinsley and I am always in need of more support to keep this project afloat. If you would like to get additional support, add your logo or name on this README, or simply just contribute to my open source Sponsorship goal, [visit my Github Sponsors page!](https://github.com/sponsors/tannerlinsley/)\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/diamond.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Sponsor!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\" target=\"_blank\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/platinum.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://tryretool.com/?utm_source=sponsor&utm_campaign=react_table\" target=\"_blank\">\n          <img width='225' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-retool.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"http://bjntech.com/index.html?utm_campaign=react_table\" target=\"_blank\">\n          <img width='225' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-bjn.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n       <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Sponsor!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\" target=\"_blank\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/gold.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://nozzle.io\" target=\"_blank\">\n          <img width='225' src=\"https://nozzle.io/img/logo-blue.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://zappi.io/web/\" target=\"_blank\">\n          <img width='225' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-zappi.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Sponsor!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\" target=\"_blank\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Sponsor!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/supporters.png\" />\n        </a>\n      </td>\n      <td>\n        <ul>\n        <li>Jon Eickmeier</li>\n        <li><a href=\"https://github.com/Shah-Sahab\">Syed Hussain<a></li>\n        </ul>\n      </td>\n      <td>\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Supporter!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/fans.png\" />\n        </a>\n      </td>\n      <td>\n        <ul>\n        <li>Sortmy.games</li>\n        <li>Hugo Meissner</li>\n        <li>Benoit Leger-Derville</li>\n        <li>Thomas Funk</li>\n        <li>Dan Houle</li>\n        <li>David Pickut</li>\n        <li>Jordan Soltman</li>\n        <li>Robert Tajnšek</li>\n        <li>Pekka Tapani</li>\n        </ul>\n      </td>\n      <td>\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Fan!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n### [Become a Sponsor](https://github.com/sponsors/tannerlinsley/)\n","licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.0-beta.16","dist":{"shasum":"bf270b993ff1b28a2c2d334680b99d14b211aaca","integrity":"sha512-4aG3mYNTRR0Lz9ONsPGQUo5NCjaEpNWFXg73QYDgqtIJakrb3gt+s2ojhRbXlXnBLa4wr1txw3batXTR7CP51w==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.0-beta.16.tgz","fileCount":46,"unpackedSize":652744,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd41+4CRA9TVsSAnZWagAAqmIP/0fZraoI9FQ7UXVO2Gmb\nbMleaEQz+YB2mQjTy0ijmKS3Yl1cjXECCbHPUNj/8Hnd6mezHeulFxHdJyAb\nqKPP7VEIG3WbUJK3yXZJJpjo2eRjbZHCy+YzSHEqXF+zCPjKNemSPoNwlgK/\nBvVqxpAw1m+mLRDQoAgQoCrk02dKCdENxVweJ3pf7MGhcEk3CyXgjsHg65R7\nZnhoMxETwqexsEh5n8mxrWKzKMKqQcCrbveByOrjwvoQvJt5opYLQN7DX6XU\nfyyaZwfkuOA0PjVG964mDWCrp8HeL3YXUY74xk2FFAITXF759LD1lCZW3KP5\n34YTc3uArT4E2tZui9cDwnaSGCFD7sk+6LFdTKdf87Uim32zXMOxNecZB9OJ\nwsWWHwcelew8x7p4BQl9+ZyOFy4sDJWo7TIfKIDfltQIz4Zax3ASzBoyfpHL\nF84u5sO+C5rA0ekbJCLOsw3a8TLA6cSoRjm7oBreZo50C0fLyfNuiACQjitn\n/myrbxXc17FU3AgABborazHJHuwA0+65hsXH0I1KIF4tMmqjn/gvHQKSEKoh\n59Xqf1hGOLefcBWRP/DEQigdS1BxFBJLSqPoqoaqabRem//Ia1BQO5mik7c1\nUjKFf1+aMFbihv/DrfyzwugAevge0KH50pFf8+IV2kZrLtlA4Xgzq4IvKGMD\nK30K\r\n=yzoR\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEQgEWpQr6UhZbNclNYX8hLjJMTzv3xeijxRH34pH52mAiEAtRTsab/HzXGGVTHzOcd6/oKsiftF4s2ISrw629xIikU="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.0-beta.16_1575182264364_0.9898915908165462"},"_hasShrinkwrap":false},"7.0.0-beta.17":{"name":"react-table","version":"7.0.0-beta.17","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"dist/index.js","module":"dist/index.es.js","scripts":{"commit":"git add . && git-cz","test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"yarn test:jest && yarn test:types","test:jest":"jest","test:types":"echo '\n****\nTODO: Re-enable dtslint\n****\n'","build":"rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,examples/*/src,examples/*/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"prop-types":"^15.5.0","react":"^16.8.3","react-dom":"^16.8.3"},"devDependencies":{"@babel/core":"^7.7.2","@babel/preset-env":"^7.7.1","@babel/preset-react":"^7.7.0","@babel/runtime":"^7.7.2","@commitlint/cli":"^8.2.0","@commitlint/config-conventional":"^8.2.0","@svgr/rollup":"^4.3.3","@testing-library/dom":"^6.10.1","@testing-library/jest-dom":"^4.2.4","@testing-library/react":"^9.3.2","babel-eslint":"9.x","babel-jest":"^24.9.0","commitizen":"^4.0.3","core-js":"3.4.1","cross-env":"^6.0.3","dtslint":"^0.9.8","eslint":"6.6.0","eslint-config-prettier":"^6.7.0","eslint-config-react-app":"^5.0.2","eslint-config-standard":"^14.1.0","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"4.4.1","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^10.0.0","eslint-plugin-prettier":"^3.1.1","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.16.0","eslint-plugin-react-hooks":"2.3.0","eslint-plugin-standard":"^4.0.1","husky":"^3.1.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","jest-cli":"^24.9.0","jest-runner-eslint":"^0.7.5","jest-watch-select-projects":"^1.0.0","jest-watch-typeahead":"^0.4.2","lint-staged":"^9.4.3","prettier":"^1.19.1","prop-types":"^15.5.0","react":"^16.12.0","react-dom":"^16.12.0","rollup":"^1.27.3","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2","snapshot-diff":"^0.6.1"},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"browserslist":"> 0.25%, not dead","readmeFilename":"README.md","readme":"![React Table Header](https://github.com/tannerlinsley/react-table/raw/master/media/header.png)\n\n<img src='https://github.com/tannerlinsley/react-table/raw/master/media/logo.png' width='300'/>\n\nHooks for building **lightweight, fast and extendable datagrids** for React\n\n[![#TanStack](https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack)](https://twitter.com/intent/tweet?button_hashtag=TanStack)\n\n<!-- [![GitHub Actions CI](https://github.com/tannerlinsley/react-table/workflows/CI/badge.svg)](https://github.com/tannerlinsley/react-table/actions) -->\n\n[![Travis CI](https://travis-ci.org/tannerlinsley/react-table.svg?branch=master)](https://travis-ci.org/tannerlinsley/react-table)\n[![Bundlephobia](https://badgen.net/bundlephobia/minzip/react-table@next)](https://bundlephobia.com/result?p=react-table@next)\n[![NPM Package](https://img.shields.io/npm/dm/react-table.svg)](https://npmjs.com/package/react-table)\n[![Join the community on Spectrum](https://withspectrum.github.io/badge/badge.svg)](https://spectrum.chat/react-table)\n[![GitHub Stars](https://img.shields.io/github/stars/tannerlinsley/react-table.svg?style=social&label=Star)](https://github.com/tannerlinsley/react-table)\n[![Twitter Followers](https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow)](https://twitter.com/tannerlinsley)\n\nEnjoy this library? Try them all! [React Query](https://github.com/tannerlinsley/react-query), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n### [Become a Sponsor](https://github.com/sponsors/tannerlinsley/)\n\n## Features\n\n- Lightweight (4kb - 10kb depending on features and tree-shaking)\n- Headless (100% customizable, Bring-your-own-UI)\n- Auto out of the box, fully controllable API\n- Sorting (Multi and Stable)\n- Filters\n- Pivoting & Aggregation\n- Row Selection\n- Row Expansion\n- Column Ordering\n- Animatable\n- Virtualizable\n- Resizable\n- Server-side/controlled data/state\n- Extensible via hook-based plugin system\n- <a href=\"https://medium.com/@tannerlinsley/why-i-wrote-react-table-and-the-problems-it-has-solved-for-nozzle-others-445c4e93d4a8#.axza4ixba\" target=\"\\_parent\">\"Why I wrote React Table and the problems it has solved for Nozzle.io\"</a> by Tanner Linsley\n\n## News / Q&A\n\n#### What is the current state of React Table?\n\nReact Table v7 is still under active development, and its API is still changing, albeit only slightly. For this reason, it is currently in an **beta** release state. It's estimated that it will be fully released as a stable version sometime during October 2019.\n\n#### Should I use v7@beta in production?\n\nYou can use it in production as long as you lock in the beta version in your package.json and also accept that there may be unlikely, but possible bug fixes and/or API changes before it's official release.\n\n#### I'm still using v6, what should I do?\n\nv6 is a great library and is still the default install for `react-table`, however, I do not intend on offering any long-term support for it. If you intend to keep using v6, I recommend maintaining your own fork of the library and keeping it up to date for your version of React.\n\n#### Where are the docs for the older v6 version?\n\nPlease [visit the v6 branch](https://github.com/tannerlinsley/react-table/tree/v6)\n\n#### I want to migrate from v6 to v7. How do I do that?\n\nThe differences between the 2 versions are incredibly massive. Unfortunately, I cannot write a one-to-one upgrade guide for any of v6's API, simply because much of it is irrelevant with v7's headless approach. The best approach for migrating to v7 is to learn its API by reading the documentation and then following some of the examples to begin building your own table component.\n\nIn case you would need to have both v6 and v7 in one app during the migration process (large codebase, complex use cases), you can install an official [`react-table-6` package](https://www.npmjs.com/package/react-table-6) alongside the `react-table`.\n\n## Documentation\n\n- [Installation](./docs/installation.md) - Walk through how to install React Table\n- [Concepts](./docs/concepts.md) - Read how React Table works and how you can use it better\n- [Examples](./docs/examples.md) - Experience and learn from some examples and guides of how to use React Table and implement common patterns\n- [API](./docs/api.md) - Get to know React Table's API, how to use it and how to extend its functionality\n- [Contributing](./CONTRIBUTING.md) - Become familiar with how to contribute back to React Table\n- [Code of Conduct](./CODE_OF_CONDUCT.md) - Be a good React Table citizen by following these repository rules\n\n## Sponsors\n\nThis library is being built and maintained by me, @tannerlinsley and I am always in need of more support to keep this project afloat. If you would like to get additional support, add your logo or name on this README, or simply just contribute to my open source Sponsorship goal, [visit my Github Sponsors page!](https://github.com/sponsors/tannerlinsley/)\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/diamond.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Sponsor!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\" target=\"_blank\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/platinum.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://tryretool.com/?utm_source=sponsor&utm_campaign=react_table\" target=\"_blank\">\n          <img width='225' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-retool.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"http://bjntech.com/index.html?utm_campaign=react_table\" target=\"_blank\">\n          <img width='225' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-bjn.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n       <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Sponsor!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\" target=\"_blank\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/gold.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://nozzle.io\" target=\"_blank\">\n          <img width='225' src=\"https://nozzle.io/img/logo-blue.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://zappi.io/web/\" target=\"_blank\">\n          <img width='225' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-zappi.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Sponsor!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\" target=\"_blank\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Sponsor!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/supporters.png\" />\n        </a>\n      </td>\n      <td>\n        <ul>\n        <li>Jon Eickmeier</li>\n        <li><a href=\"https://github.com/Shah-Sahab\">Syed Hussain<a></li>\n        </ul>\n      </td>\n      <td>\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Supporter!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/fans.png\" />\n        </a>\n      </td>\n      <td>\n        <ul>\n        <li>Sortmy.games</li>\n        <li>Hugo Meissner</li>\n        <li>Benoit Leger-Derville</li>\n        <li>Thomas Funk</li>\n        <li>Dan Houle</li>\n        <li>David Pickut</li>\n        <li>Jordan Soltman</li>\n        <li>Robert Tajnšek</li>\n        <li>Pekka Tapani</li>\n        </ul>\n      </td>\n      <td>\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Fan!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n### [Become a Sponsor](https://github.com/sponsors/tannerlinsley/)\n","licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.0-beta.17","dist":{"shasum":"a8d34786684b921cba137985eeae4fb7b49cc878","integrity":"sha512-JqrtmIyXx2X5abUT8irRSTwg32xgkHq0eEhm/iD3wdC+B7MFU5IUCR7Cfkco7QaZKb+653OIraI3HL0aand9sQ==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.0-beta.17.tgz","fileCount":46,"unpackedSize":652906,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd42YbCRA9TVsSAnZWagAAIL8QAJkk5dhP2pojnkrBgb4h\n4gOUh8hsYh4fWQJEvGGlKup6aV61cf8SuPRjrE3m4nNJM2lJ3TNXN/9/vT5e\n6Ko6Zi/r4t8CzjwqZtNZiiJIxwPqCohhY/UkRtNLKwpgkECFlvc5AEZ1M07X\nGoLnDWU5JrEtiHqzJnkvz3ZZ/V34UEslPwsxF5AjpXdIXYmJpD4zMQ796B5L\nE1u/K2gdvcsIR0foUMqPnOrUEXx5n8puibcyoS18glbM8/NNjmUEwwmrvl74\nZsIZ1hEcFhiEH0rAp6ZXXNFYmjMSpkv5I3D9SLQDj04qzwKhfunFWzIyxHJf\nzuTi8trcl1TliI6yBWb5PTO01m5Im8t14unTPxf4ub6SfYQc4uUq3AD04xtP\niAM4dAwx7/o7S2w/olsaDgankBdEPaGOS9B/IUfS5DZ6vsxZtaUJmwuX5m0l\n0yQR0btRPGOPQysKsfF/lQc88BfHStGzH61KKlZnhIzvaPXe3Qikn7a6Cw41\nshI1d/QLbezQjXgZewf3N55U11kHqjZfnl26g+rUaz9EqzfosqpYIIKp4d1t\n0856xhCFXKndJT+MQ+G5pp3dMfMnKbcj2W2Y7GtiJqZsbXil9YY3AxROvWPh\ncDOeJ2OCGkv4T0q7PVgbdSL1mFvue444A5ZERB+1Jo3hpxSEGGfe+bfJGiEh\n45gL\r\n=zSvT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDHdhiZprz0NJuveHXre1xaWI2Y+hedZoVmQQTFGQP/fAiEAgnurge5BJVRHACCWT48fxM3H+hishdKPFnD5qRhRBUs="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.0-beta.17_1575183899456_0.9884721486903072"},"_hasShrinkwrap":false},"7.0.0-beta.18":{"name":"react-table","version":"7.0.0-beta.18","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"dist/index.js","module":"dist/index.es.js","scripts":{"commit":"git add . && git-cz","test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"yarn test:jest && yarn test:types","test:jest":"jest","test:types":"echo '\n****\nTODO: Re-enable dtslint\n****\n'","build":"rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,examples/*/src,examples/*/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"prop-types":"^15.5.0","react":"^16.8.3","react-dom":"^16.8.3"},"devDependencies":{"@babel/core":"^7.7.2","@babel/preset-env":"^7.7.1","@babel/preset-react":"^7.7.0","@babel/runtime":"^7.7.2","@commitlint/cli":"^8.2.0","@commitlint/config-conventional":"^8.2.0","@svgr/rollup":"^4.3.3","@testing-library/dom":"^6.10.1","@testing-library/jest-dom":"^4.2.4","@testing-library/react":"^9.3.2","babel-eslint":"9.x","babel-jest":"^24.9.0","commitizen":"^4.0.3","core-js":"3.4.1","cross-env":"^6.0.3","dtslint":"^0.9.8","eslint":"6.6.0","eslint-config-prettier":"^6.7.0","eslint-config-react-app":"^5.0.2","eslint-config-standard":"^14.1.0","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"4.4.1","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^10.0.0","eslint-plugin-prettier":"^3.1.1","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.16.0","eslint-plugin-react-hooks":"2.3.0","eslint-plugin-standard":"^4.0.1","husky":"^3.1.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","jest-cli":"^24.9.0","jest-runner-eslint":"^0.7.5","jest-watch-select-projects":"^1.0.0","jest-watch-typeahead":"^0.4.2","lint-staged":"^9.4.3","prettier":"^1.19.1","prop-types":"^15.5.0","react":"^16.12.0","react-dom":"^16.12.0","rollup":"^1.27.3","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2","snapshot-diff":"^0.6.1"},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"browserslist":"> 0.25%, not dead","readmeFilename":"README.md","readme":"![React Table Header](https://github.com/tannerlinsley/react-table/raw/master/media/header.png)\n\n<img src='https://github.com/tannerlinsley/react-table/raw/master/media/logo.png' width='300'/>\n\nHooks for building **lightweight, fast and extendable datagrids** for React\n\n[![#TanStack](https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack)](https://twitter.com/intent/tweet?button_hashtag=TanStack)\n\n<!-- [![GitHub Actions CI](https://github.com/tannerlinsley/react-table/workflows/CI/badge.svg)](https://github.com/tannerlinsley/react-table/actions) -->\n\n[![Travis CI](https://travis-ci.org/tannerlinsley/react-table.svg?branch=master)](https://travis-ci.org/tannerlinsley/react-table)\n[![Bundlephobia](https://badgen.net/bundlephobia/minzip/react-table@next)](https://bundlephobia.com/result?p=react-table@next)\n[![NPM Package](https://img.shields.io/npm/dm/react-table.svg)](https://npmjs.com/package/react-table)\n[![Join the community on Spectrum](https://withspectrum.github.io/badge/badge.svg)](https://spectrum.chat/react-table)\n[![GitHub Stars](https://img.shields.io/github/stars/tannerlinsley/react-table.svg?style=social&label=Star)](https://github.com/tannerlinsley/react-table)\n[![Twitter Followers](https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow)](https://twitter.com/tannerlinsley)\n\nEnjoy this library? Try them all! [React Query](https://github.com/tannerlinsley/react-query), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n### [Become a Sponsor](https://github.com/sponsors/tannerlinsley/)\n\n## Features\n\n- Lightweight (4kb - 10kb depending on features and tree-shaking)\n- Headless (100% customizable, Bring-your-own-UI)\n- Auto out of the box, fully controllable API\n- Sorting (Multi and Stable)\n- Filters\n- Pivoting & Aggregation\n- Row Selection\n- Row Expansion\n- Column Ordering\n- Animatable\n- Virtualizable\n- Resizable\n- Server-side/controlled data/state\n- Extensible via hook-based plugin system\n- <a href=\"https://medium.com/@tannerlinsley/why-i-wrote-react-table-and-the-problems-it-has-solved-for-nozzle-others-445c4e93d4a8#.axza4ixba\" target=\"\\_parent\">\"Why I wrote React Table and the problems it has solved for Nozzle.io\"</a> by Tanner Linsley\n\n## News / Q&A\n\n#### What is the current state of React Table?\n\nReact Table v7 is still under active development, and its API is still changing, albeit only slightly. For this reason, it is currently in an **beta** release state. It's estimated that it will be fully released as a stable version sometime during October 2019.\n\n#### Should I use v7@beta in production?\n\nYou can use it in production as long as you lock in the beta version in your package.json and also accept that there may be unlikely, but possible bug fixes and/or API changes before it's official release.\n\n#### I'm still using v6, what should I do?\n\nv6 is a great library and is still the default install for `react-table`, however, I do not intend on offering any long-term support for it. If you intend to keep using v6, I recommend maintaining your own fork of the library and keeping it up to date for your version of React.\n\n#### Where are the docs for the older v6 version?\n\nPlease [visit the v6 branch](https://github.com/tannerlinsley/react-table/tree/v6)\n\n#### I want to migrate from v6 to v7. How do I do that?\n\nThe differences between the 2 versions are incredibly massive. Unfortunately, I cannot write a one-to-one upgrade guide for any of v6's API, simply because much of it is irrelevant with v7's headless approach. The best approach for migrating to v7 is to learn its API by reading the documentation and then following some of the examples to begin building your own table component.\n\nIn case you would need to have both v6 and v7 in one app during the migration process (large codebase, complex use cases), you can install an official [`react-table-6` package](https://www.npmjs.com/package/react-table-6) alongside the `react-table`.\n\n## Documentation\n\n- [Installation](./docs/installation.md) - Walk through how to install React Table\n- [Concepts](./docs/concepts.md) - Read how React Table works and how you can use it better\n- [Examples](./docs/examples.md) - Experience and learn from some examples and guides of how to use React Table and implement common patterns\n- [API](./docs/api.md) - Get to know React Table's API, how to use it and how to extend its functionality\n- [Contributing](./CONTRIBUTING.md) - Become familiar with how to contribute back to React Table\n- [Code of Conduct](./CODE_OF_CONDUCT.md) - Be a good React Table citizen by following these repository rules\n\n## Sponsors\n\nThis library is being built and maintained by me, @tannerlinsley and I am always in need of more support to keep this project afloat. If you would like to get additional support, add your logo or name on this README, or simply just contribute to my open source Sponsorship goal, [visit my Github Sponsors page!](https://github.com/sponsors/tannerlinsley/)\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/diamond.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Sponsor!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\" target=\"_blank\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/platinum.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://tryretool.com/?utm_source=sponsor&utm_campaign=react_table\" target=\"_blank\">\n          <img width='225' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-retool.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"http://bjntech.com/index.html?utm_campaign=react_table\" target=\"_blank\">\n          <img width='225' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-bjn.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n       <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Sponsor!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\" target=\"_blank\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/gold.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://nozzle.io\" target=\"_blank\">\n          <img width='225' src=\"https://nozzle.io/img/logo-blue.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://zappi.io/web/\" target=\"_blank\">\n          <img width='225' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-zappi.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Sponsor!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\" target=\"_blank\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Sponsor!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/supporters.png\" />\n        </a>\n      </td>\n      <td>\n        <ul>\n        <li>Jon Eickmeier</li>\n        <li><a href=\"https://github.com/Shah-Sahab\">Syed Hussain<a></li>\n        </ul>\n      </td>\n      <td>\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Supporter!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/fans.png\" />\n        </a>\n      </td>\n      <td>\n        <ul>\n        <li>Sortmy.games</li>\n        <li>Hugo Meissner</li>\n        <li>Benoit Leger-Derville</li>\n        <li>Thomas Funk</li>\n        <li>Dan Houle</li>\n        <li>David Pickut</li>\n        <li>Jordan Soltman</li>\n        <li>Robert Tajnšek</li>\n        <li>Pekka Tapani</li>\n        </ul>\n      </td>\n      <td>\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Fan!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n### [Become a Sponsor](https://github.com/sponsors/tannerlinsley/)\n","licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.0-beta.18","dist":{"shasum":"1f5f32737549825a2b582f466410b13c89105a87","integrity":"sha512-oPiEn5KvCQnDF5ZFoveu2FWUu1eML4ABBNpWiZzotz73AmdJSwgBdr/BOcSQl9Cip1dJ94BG+9G5+nLcYin3EA==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.0-beta.18.tgz","fileCount":46,"unpackedSize":652847,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd42cNCRA9TVsSAnZWagAAPnsP+wQbKhk2yUuZp/1EUvAu\n7I100N+B76z0zYm+0/mFlJ4v/UgzIsh9Dwoo4H/Tpc2Sp8t+ErFOLXoQHei3\n57Cnqm/BbEWIyVkjMFAPfHNqRxinE4ffx5XvHm2m0qdSjoiQ4dVnZxlGaGMS\n/SHRjICcwYB+qssrYYHx/557VYmuQH8jj3gi3IsL20+zARyi1OkA2NmP80AQ\nDa7A9CFTTgNJNT9HxQphwjPbsn1gX+v0jpXcPzzxvnZSOZXdTXUl2zQPGC5E\nkv/2LOEwq3WPeij51crJyaT3jeu8QWwPH1nkrbw+hmECOyGNx0MvlVcoftVz\n1J7cU3lBL74jY8K2rEhoJ13sAk8VQgu7czS/vWQ2D+M1KHaDfJ2fs8RZ3NAd\nWDU8TvA0CRvrrC/sBe7Dnf16s2Y16LlEGfhq7xmP6ClvAbZ9XKbn5E6kVg+6\nO4nDhe+lioOSO7v7AZPnh0+oVyG8mJvsFU1uyJRHGpxHkzNtpRxChuAGY9jS\nzJP/pj0G/wM88QW71rLWtgqSKswN0JS3raloY7OPy8RdTIeejOY7taLTbUmM\nKF2axJDLO1H1cj/aqqA23hQ5pjKJSzWJtaNFpdsHWK5wY21V72JSsePRzU9b\nDBwG9BOT8KJIb6TnHz7YWJFXv5r0f8admipnQ4GsyRVlKtb3CCcoHeRwIn0L\nkgCX\r\n=CVLY\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD1oxL2uS4a7wUfmO9tB3/DpT3MPLtP7wnlXCFJuutRzQIhALI3Lzie58+PunYguhKVPtrs14rdj7NkwNaSEi07vP4r"}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.0-beta.18_1575184141241_0.8892658616547695"},"_hasShrinkwrap":false},"7.0.0-beta.19":{"name":"react-table","version":"7.0.0-beta.19","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"dist/index.js","module":"dist/index.es.js","scripts":{"commit":"git add . && git-cz","test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"yarn test:jest && yarn test:types","test:jest":"jest","test:types":"echo '\n****\nTODO: Re-enable dtslint\n****\n'","build":"rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,examples/*/src,examples/*/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"prop-types":"^15.5.0","react":"^16.8.3","react-dom":"^16.8.3"},"devDependencies":{"@babel/core":"^7.7.2","@babel/preset-env":"^7.7.1","@babel/preset-react":"^7.7.0","@babel/runtime":"^7.7.2","@commitlint/cli":"^8.2.0","@commitlint/config-conventional":"^8.2.0","@svgr/rollup":"^4.3.3","@testing-library/dom":"^6.10.1","@testing-library/jest-dom":"^4.2.4","@testing-library/react":"^9.3.2","babel-eslint":"9.x","babel-jest":"^24.9.0","commitizen":"^4.0.3","core-js":"3.4.1","cross-env":"^6.0.3","dtslint":"^0.9.8","eslint":"6.6.0","eslint-config-prettier":"^6.7.0","eslint-config-react-app":"^5.0.2","eslint-config-standard":"^14.1.0","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"4.4.1","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^10.0.0","eslint-plugin-prettier":"^3.1.1","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.16.0","eslint-plugin-react-hooks":"2.3.0","eslint-plugin-standard":"^4.0.1","husky":"^3.1.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","jest-cli":"^24.9.0","jest-runner-eslint":"^0.7.5","jest-watch-select-projects":"^1.0.0","jest-watch-typeahead":"^0.4.2","lint-staged":"^9.4.3","prettier":"^1.19.1","prop-types":"^15.5.0","react":"^16.12.0","react-dom":"^16.12.0","rollup":"^1.27.3","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2","snapshot-diff":"^0.6.1"},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"browserslist":"> 0.25%, not dead","readmeFilename":"README.md","readme":"![React Table Header](https://github.com/tannerlinsley/react-table/raw/master/media/header.png)\n\n<img src='https://github.com/tannerlinsley/react-table/raw/master/media/logo.png' width='300'/>\n\nHooks for building **lightweight, fast and extendable datagrids** for React\n\n[![#TanStack](https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack)](https://twitter.com/intent/tweet?button_hashtag=TanStack)\n\n<!-- [![GitHub Actions CI](https://github.com/tannerlinsley/react-table/workflows/CI/badge.svg)](https://github.com/tannerlinsley/react-table/actions) -->\n\n[![Travis CI](https://travis-ci.org/tannerlinsley/react-table.svg?branch=master)](https://travis-ci.org/tannerlinsley/react-table)\n[![Bundlephobia](https://badgen.net/bundlephobia/minzip/react-table@next)](https://bundlephobia.com/result?p=react-table@next)\n[![NPM Package](https://img.shields.io/npm/dm/react-table.svg)](https://npmjs.com/package/react-table)\n[![Join the community on Spectrum](https://withspectrum.github.io/badge/badge.svg)](https://spectrum.chat/react-table)\n[![GitHub Stars](https://img.shields.io/github/stars/tannerlinsley/react-table.svg?style=social&label=Star)](https://github.com/tannerlinsley/react-table)\n[![Twitter Followers](https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow)](https://twitter.com/tannerlinsley)\n\nEnjoy this library? Try them all! [React Query](https://github.com/tannerlinsley/react-query), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n### [Become a Sponsor](https://github.com/sponsors/tannerlinsley/)\n\n## Features\n\n- Lightweight (4kb - 10kb depending on features and tree-shaking)\n- Headless (100% customizable, Bring-your-own-UI)\n- Auto out of the box, fully controllable API\n- Sorting (Multi and Stable)\n- Filters\n- Pivoting & Aggregation\n- Row Selection\n- Row Expansion\n- Column Ordering\n- Animatable\n- Virtualizable\n- Resizable\n- Server-side/controlled data/state\n- Extensible via hook-based plugin system\n- <a href=\"https://medium.com/@tannerlinsley/why-i-wrote-react-table-and-the-problems-it-has-solved-for-nozzle-others-445c4e93d4a8#.axza4ixba\" target=\"\\_parent\">\"Why I wrote React Table and the problems it has solved for Nozzle.io\"</a> by Tanner Linsley\n\n## News / Q&A\n\n#### What is the current state of React Table?\n\nReact Table v7 is still under active development, and its API is still changing, albeit only slightly. For this reason, it is currently in an **beta** release state. It's estimated that it will be fully released as a stable version sometime during October 2019.\n\n#### Should I use v7@beta in production?\n\nYou can use it in production as long as you lock in the beta version in your package.json and also accept that there may be unlikely, but possible bug fixes and/or API changes before it's official release.\n\n#### I'm still using v6, what should I do?\n\nv6 is a great library and is still the default install for `react-table`, however, I do not intend on offering any long-term support for it. If you intend to keep using v6, I recommend maintaining your own fork of the library and keeping it up to date for your version of React.\n\n#### Where are the docs for the older v6 version?\n\nPlease [visit the v6 branch](https://github.com/tannerlinsley/react-table/tree/v6)\n\n#### I want to migrate from v6 to v7. How do I do that?\n\nThe differences between the 2 versions are incredibly massive. Unfortunately, I cannot write a one-to-one upgrade guide for any of v6's API, simply because much of it is irrelevant with v7's headless approach. The best approach for migrating to v7 is to learn its API by reading the documentation and then following some of the examples to begin building your own table component.\n\nIn case you would need to have both v6 and v7 in one app during the migration process (large codebase, complex use cases), you can install an official [`react-table-6` package](https://www.npmjs.com/package/react-table-6) alongside the `react-table`.\n\n## Documentation\n\n- [Installation](./docs/installation.md) - Walk through how to install React Table\n- [Concepts](./docs/concepts.md) - Read how React Table works and how you can use it better\n- [Examples](./docs/examples.md) - Experience and learn from some examples and guides of how to use React Table and implement common patterns\n- [API](./docs/api.md) - Get to know React Table's API, how to use it and how to extend its functionality\n- [Contributing](./CONTRIBUTING.md) - Become familiar with how to contribute back to React Table\n- [Code of Conduct](./CODE_OF_CONDUCT.md) - Be a good React Table citizen by following these repository rules\n\n## Sponsors\n\nThis library is being built and maintained by me, @tannerlinsley and I am always in need of more support to keep this project afloat. If you would like to get additional support, add your logo or name on this README, or simply just contribute to my open source Sponsorship goal, [visit my Github Sponsors page!](https://github.com/sponsors/tannerlinsley/)\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/diamond.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Sponsor!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\" target=\"_blank\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/platinum.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://tryretool.com/?utm_source=sponsor&utm_campaign=react_table\" target=\"_blank\">\n          <img width='225' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-retool.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"http://bjntech.com/index.html?utm_campaign=react_table\" target=\"_blank\">\n          <img width='225' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-bjn.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n       <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Sponsor!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\" target=\"_blank\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/gold.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://nozzle.io\" target=\"_blank\">\n          <img width='225' src=\"https://nozzle.io/img/logo-blue.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://zappi.io/web/\" target=\"_blank\">\n          <img width='225' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-zappi.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Sponsor!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\" target=\"_blank\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Sponsor!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/supporters.png\" />\n        </a>\n      </td>\n      <td>\n        <ul>\n        <li>Jon Eickmeier</li>\n        <li><a href=\"https://github.com/Shah-Sahab\">Syed Hussain<a></li>\n        </ul>\n      </td>\n      <td>\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Supporter!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/fans.png\" />\n        </a>\n      </td>\n      <td>\n        <ul>\n        <li>Sortmy.games</li>\n        <li>Hugo Meissner</li>\n        <li>Benoit Leger-Derville</li>\n        <li>Thomas Funk</li>\n        <li>Dan Houle</li>\n        <li>David Pickut</li>\n        <li>Jordan Soltman</li>\n        <li>Robert Tajnšek</li>\n        <li>Pekka Tapani</li>\n        </ul>\n      </td>\n      <td>\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Fan!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n### [Become a Sponsor](https://github.com/sponsors/tannerlinsley/)\n","licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.0-beta.19","dist":{"shasum":"8563ae56f693cbffa10060772ba1f1cd4e926bb2","integrity":"sha512-BRt7zW7PGyg67fR2CK9M2fwP6BocjQN870w3P+K+vDJMkpewGjSPDscCU5sJMBqCEjKWg85k2pVkiwQPg9ofgQ==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.0-beta.19.tgz","fileCount":46,"unpackedSize":652748,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd42feCRA9TVsSAnZWagAA2agP/jw55kpO2nv2VH4RrlSl\nTxzWrfae5GIy9NouW/7hsTRr9ssYeGyymfpZ/QHqBkEJwwD+kvcCAQq5ORue\nBWsFF0bGELsv3AL+TCefbgCBxD1c9p1sPUH1Jav0NZCd4Lml3AYhMYvwfFMm\nShPbelJYmrkqdvRb4uo+20e5KFfTVrInyq/5T5/WyqdSbDk1IoyQRkehpZ6C\nzAq4Ag7pDQLtv4IAHaJ2Or6QIX9OiKYXGzkXg3XF1DSKGtMtXjCx8mwNEHk6\nkfq1yVqMtNYmsNcMLrlciuczDzETspxoHjMRTfD1TRtMv/GQ+8I9wkbx7Xvq\nfR9HE4ydUiJTD9Fj+AlN0cXOZGcb+mPbTYPC+153s/iGXZaeSn/bytT/Qdo+\nUCC5RJZCXu26r5aNPeEAZvn0KDv0NWBTwEZVHgNnFsuCJGWB9SZh39MwyIr/\nACJgafU2IQwEFCWR0M4dU5zBuTtjmjCPHDMtSo/aczsy5sfqn4JV+nx5pa9g\naleTdx5iIsAOU4GloAEgriU1CvjyAYoPJkr11hubHdoqBeJr5JH0UPrZ5vHx\nu8CgKQEy+5KrDURhG2T0QIq/AZRGNkl7zvqvmP/KlgPNN+FkJhqGcXJvayiK\n6I4ObcsTUkYzosBINNbUZa6UFYIoTh0biQZKujAiTr/YSvBGthh9mrCIActk\nRi96\r\n=Urdo\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCKwewa5BCzpb0A1wbWiw6ihIEiiTMevW354e8/vdqurwIgWgNJZ31kO3oJFJ6fb9H5+nrdcK9r7kklMrxkPY9ste4="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.0-beta.19_1575184349689_0.8316148891660504"},"_hasShrinkwrap":false},"7.0.0-beta.20":{"name":"react-table","version":"7.0.0-beta.20","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"dist/index.js","module":"dist/index.es.js","scripts":{"commit":"git add . && git-cz","test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"yarn test:jest && yarn test:types","test:jest":"jest","test:types":"echo '\n****\nTODO: Re-enable dtslint\n****\n'","build":"rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,examples/*/src,examples/*/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"prop-types":"^15.5.0","react":"^16.8.3","react-dom":"^16.8.3"},"devDependencies":{"@babel/core":"^7.7.2","@babel/preset-env":"^7.7.1","@babel/preset-react":"^7.7.0","@babel/runtime":"^7.7.2","@commitlint/cli":"^8.2.0","@commitlint/config-conventional":"^8.2.0","@svgr/rollup":"^4.3.3","@testing-library/dom":"^6.10.1","@testing-library/jest-dom":"^4.2.4","@testing-library/react":"^9.3.2","babel-eslint":"9.x","babel-jest":"^24.9.0","commitizen":"^4.0.3","core-js":"3.4.1","cross-env":"^6.0.3","dtslint":"^0.9.8","eslint":"6.6.0","eslint-config-prettier":"^6.7.0","eslint-config-react-app":"^5.0.2","eslint-config-standard":"^14.1.0","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"4.4.1","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^10.0.0","eslint-plugin-prettier":"^3.1.1","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.16.0","eslint-plugin-react-hooks":"2.3.0","eslint-plugin-standard":"^4.0.1","husky":"^3.1.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","jest-cli":"^24.9.0","jest-runner-eslint":"^0.7.5","jest-watch-select-projects":"^1.0.0","jest-watch-typeahead":"^0.4.2","lint-staged":"^9.4.3","prettier":"^1.19.1","prop-types":"^15.5.0","react":"^16.12.0","react-dom":"^16.12.0","rollup":"^1.27.3","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2","snapshot-diff":"^0.6.1"},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"browserslist":"> 0.25%, not dead","readmeFilename":"README.md","readme":"![React Table Header](https://github.com/tannerlinsley/react-table/raw/master/media/header.png)\n\n<img src='https://github.com/tannerlinsley/react-table/raw/master/media/logo.png' width='300'/>\n\nHooks for building **lightweight, fast and extendable datagrids** for React\n\n[![#TanStack](https://img.shields.io/twitter/url?color=%2308a0e9&label=%23TanStack&style=social&url=https%3A%2F%2Ftwitter.com%2Fintent%2Ftweet%3Fbutton_hashtag%3DTanStack)](https://twitter.com/intent/tweet?button_hashtag=TanStack)\n\n<!-- [![GitHub Actions CI](https://github.com/tannerlinsley/react-table/workflows/CI/badge.svg)](https://github.com/tannerlinsley/react-table/actions) -->\n\n[![Travis CI](https://travis-ci.org/tannerlinsley/react-table.svg?branch=master)](https://travis-ci.org/tannerlinsley/react-table)\n[![Bundlephobia](https://badgen.net/bundlephobia/minzip/react-table@next)](https://bundlephobia.com/result?p=react-table@next)\n[![NPM Package](https://img.shields.io/npm/dm/react-table.svg)](https://npmjs.com/package/react-table)\n[![Join the community on Spectrum](https://withspectrum.github.io/badge/badge.svg)](https://spectrum.chat/react-table)\n[![GitHub Stars](https://img.shields.io/github/stars/tannerlinsley/react-table.svg?style=social&label=Star)](https://github.com/tannerlinsley/react-table)\n[![Twitter Followers](https://img.shields.io/twitter/follow/tannerlinsley.svg?style=social&label=Follow)](https://twitter.com/tannerlinsley)\n\nEnjoy this library? Try them all! [React Query](https://github.com/tannerlinsley/react-query), [React Form](https://github.com/tannerlinsley/react-form), [React Charts](https://github.com/tannerlinsley/react-charts)\n\n### [Become a Sponsor](https://github.com/sponsors/tannerlinsley/)\n\n## Features\n\n- Lightweight (4kb - 10kb depending on features and tree-shaking)\n- Headless (100% customizable, Bring-your-own-UI)\n- Auto out of the box, fully controllable API\n- Sorting (Multi and Stable)\n- Filters\n- Pivoting & Aggregation\n- Row Selection\n- Row Expansion\n- Column Ordering\n- Animatable\n- Virtualizable\n- Resizable\n- Server-side/controlled data/state\n- Extensible via hook-based plugin system\n- <a href=\"https://medium.com/@tannerlinsley/why-i-wrote-react-table-and-the-problems-it-has-solved-for-nozzle-others-445c4e93d4a8#.axza4ixba\" target=\"\\_parent\">\"Why I wrote React Table and the problems it has solved for Nozzle.io\"</a> by Tanner Linsley\n\n## News / Q&A\n\n#### What is the current state of React Table?\n\nReact Table v7 is still under active development, and its API is still changing, albeit only slightly. For this reason, it is currently in an **beta** release state. It's estimated that it will be fully released as a stable version sometime during October 2019.\n\n#### Should I use v7@beta in production?\n\nYou can use it in production as long as you lock in the beta version in your package.json and also accept that there may be unlikely, but possible bug fixes and/or API changes before it's official release.\n\n#### I'm still using v6, what should I do?\n\nv6 is a great library and is still the default install for `react-table`, however, I do not intend on offering any long-term support for it. If you intend to keep using v6, I recommend maintaining your own fork of the library and keeping it up to date for your version of React.\n\n#### Where are the docs for the older v6 version?\n\nPlease [visit the v6 branch](https://github.com/tannerlinsley/react-table/tree/v6)\n\n#### I want to migrate from v6 to v7. How do I do that?\n\nThe differences between the 2 versions are incredibly massive. Unfortunately, I cannot write a one-to-one upgrade guide for any of v6's API, simply because much of it is irrelevant with v7's headless approach. The best approach for migrating to v7 is to learn its API by reading the documentation and then following some of the examples to begin building your own table component.\n\nIn case you would need to have both v6 and v7 in one app during the migration process (large codebase, complex use cases), you can install an official [`react-table-6` package](https://www.npmjs.com/package/react-table-6) alongside the `react-table`.\n\n## Documentation\n\n- [Installation](./docs/installation.md) - Walk through how to install React Table\n- [Concepts](./docs/concepts.md) - Read how React Table works and how you can use it better\n- [Examples](./docs/examples.md) - Experience and learn from some examples and guides of how to use React Table and implement common patterns\n- [API](./docs/api.md) - Get to know React Table's API, how to use it and how to extend its functionality\n- [Contributing](./CONTRIBUTING.md) - Become familiar with how to contribute back to React Table\n- [Code of Conduct](./CODE_OF_CONDUCT.md) - Be a good React Table citizen by following these repository rules\n\n## Sponsors\n\nThis library is being built and maintained by me, @tannerlinsley and I am always in need of more support to keep this project afloat. If you would like to get additional support, add your logo or name on this README, or simply just contribute to my open source Sponsorship goal, [visit my Github Sponsors page!](https://github.com/sponsors/tannerlinsley/)\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/diamond.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Sponsor!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\" target=\"_blank\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/platinum.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://tryretool.com/?utm_source=sponsor&utm_campaign=react_table\" target=\"_blank\">\n          <img width='225' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-retool.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"http://bjntech.com/index.html?utm_campaign=react_table\" target=\"_blank\">\n          <img width='225' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-bjn.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n       <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Sponsor!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\" target=\"_blank\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/gold.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://nozzle.io\" target=\"_blank\">\n          <img width='225' src=\"https://nozzle.io/img/logo-blue.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://zappi.io/web/\" target=\"_blank\">\n          <img width='225' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/sponsor-zappi.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Sponsor!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\" target=\"_blank\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/silver.png\">\n        </a>\n      </td>\n      <td align=\"center\" valign=\"middle\">\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Sponsor!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/supporters.png\" />\n        </a>\n      </td>\n      <td>\n        <ul>\n        <li>Jon Eickmeier</li>\n        <li><a href=\"https://github.com/Shah-Sahab\">Syed Hussain<a></li>\n        </ul>\n      </td>\n      <td>\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Supporter!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n<table>\n  <tbody>\n    <tr>\n      <td valign=\"top\">\n        <a href=\"https://github.com/sponsors/tannerlinsley/\">\n          <img width='150' src=\"https://raw.githubusercontent.com/tannerlinsley/files/master/images/patreon/fans.png\" />\n        </a>\n      </td>\n      <td>\n        <ul>\n        <li>Sortmy.games</li>\n        <li>Hugo Meissner</li>\n        <li>Benoit Leger-Derville</li>\n        <li>Thomas Funk</li>\n        <li>Dan Houle</li>\n        <li>David Pickut</li>\n        <li>Jordan Soltman</li>\n        <li>Robert Tajnšek</li>\n        <li>Pekka Tapani</li>\n        </ul>\n      </td>\n      <td>\n        <a href=\"https://github.com/sponsors/tannerlinsley\" target=\"_blank\">\n          Become a Fan!\n        </a>\n      </td>\n    </tr>\n  </tbody>\n</table>\n\n### [Become a Sponsor](https://github.com/sponsors/tannerlinsley/)\n","licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.0-beta.20","dist":{"shasum":"2125726549a15d5fd1d264145c92b9807a82aa1e","integrity":"sha512-809Zj/OHX+Jbfnb+kxULZDvDstHrpzjFl2+mYOF9pU1CcJKkL2GdBmlWr9pcDmznxMU6veJUYnAxXYqvAWKVrQ==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.0-beta.20.tgz","fileCount":45,"unpackedSize":690248,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd5MsSCRA9TVsSAnZWagAApTcP/RxdFoxaYFFiOTHZ7DhV\nr2aG7EuB/8RPP+bdR+c8JSEzAnRPqwbzZCVnBWfnNNCoS/T1nSOH55o7m4eR\nqARhQfx6OC/JApjU1vQeqQkeXwvPRZQrZk59WsOT/wpzm/w2frI7Kpgq9WhV\ncOjbF67m9PHEbP2ePxw2YVwNzy3PuNyg0P1BlLHVC7uBT2ZAmXfNWwoJJdeD\n7P/GDRMWDQcdJ/JA1P+eNnIWANmCbakXxmPtaPKKA+FKNrc/t6iiJFZvBo0U\nxiBCXHXIhA3+XJ0vHvBG+O4+VnvIg/0J2phQOSddOlcUS3s+LhqIcFcoGrFb\nmE+hcsJn+kEliJ+MC3uSdk2CWpPsh+NgY/zpfnVzvzLFhiK1JdANX0MpsJkX\na5L0FWbT+4uJ92Np4/U75sWXe4z74R1jB1cETX3fqQVE0awYPyRvV1034M+Z\n8uApOuvRCTEk5nVG9qW8l2Lw374RFX8C45MjPQ3VgkrcTdueDWDQsd7k7Yuh\njei0Ee7A+LI8agK1LcKof6tgL07sjIzsx5VwtK/wf1umWfPpWzECX9/k+JeL\nmG7lZZwScATnsapqaR59TCu5C8lht2XVKdXNdRhLoba396kADSgONfE2uhtW\nmH55Es9aZT1jWFfKL6UhU0FL8znJZwvCIrUt+GHvkRJgdh7CG0Al6VwgENQf\nw2wY\r\n=5n0b\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCMcH0bqqhR3Q4VYf8hztfbP0Eb8Ej6vP1nMdbCspRruQIgD28xl2aNw3r92hBeWJZJYTEkNnfuVuTlKa5Zeb1GsX4="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.0-beta.20_1575275281745_0.6168014443170207"},"_hasShrinkwrap":false},"7.0.0-beta.21":{"name":"react-table","version":"7.0.0-beta.21","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"dist/index.js","module":"dist/index.es.js","scripts":{"commit":"git add . && git-cz","test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"yarn test:jest && yarn test:types","test:jest":"jest","test:types":"echo '\n****\nTODO: Re-enable dtslint\n****\n'","build":"rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,examples/*/src,examples/*/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"prop-types":"^15.5.0","react":"^16.8.3","react-dom":"^16.8.3"},"devDependencies":{"@babel/core":"^7.7.2","@babel/preset-env":"^7.7.1","@babel/preset-react":"^7.7.0","@babel/runtime":"^7.7.2","@commitlint/cli":"^8.2.0","@commitlint/config-conventional":"^8.2.0","@svgr/rollup":"^4.3.3","@testing-library/dom":"^6.10.1","@testing-library/jest-dom":"^4.2.4","@testing-library/react":"^9.3.2","babel-eslint":"9.x","babel-jest":"^24.9.0","commitizen":"^4.0.3","core-js":"3.4.1","cross-env":"^6.0.3","dtslint":"^0.9.8","eslint":"6.6.0","eslint-config-prettier":"^6.7.0","eslint-config-react-app":"^5.0.2","eslint-config-standard":"^14.1.0","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"4.4.1","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^10.0.0","eslint-plugin-prettier":"^3.1.1","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.16.0","eslint-plugin-react-hooks":"2.3.0","eslint-plugin-standard":"^4.0.1","husky":"^3.1.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","jest-cli":"^24.9.0","jest-runner-eslint":"^0.7.5","jest-watch-select-projects":"^1.0.0","jest-watch-typeahead":"^0.4.2","lint-staged":"^9.4.3","prettier":"^1.19.1","prop-types":"^15.5.0","react":"^16.12.0","react-dom":"^16.12.0","rollup":"^1.27.3","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2","snapshot-diff":"^0.6.1"},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"browserslist":"> 0.25%, not dead","licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.0-beta.21","dist":{"shasum":"bafd0e2db431acb4ac40f43dbdbe91e43dc68576","integrity":"sha512-FpC7Eb0Lc04PHsKskhYCCXwjHwKO4iKZQ1xr9WV92H8g/1L2fUAfpkOZFP3zcUucIra0EBq9OMOyYQKTgPbMxw==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.0-beta.21.tgz","fileCount":45,"unpackedSize":690215,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd5TpGCRA9TVsSAnZWagAAqD8QAJ3S/Ibhqx/CU03pDbaY\n3gzYsaxP4RspR98Ba8WcD0BAWpAlj2LuuGaq4yJ9Q6UQqLeCUEa/wqL2Klw6\nEIO/ObGerETf0cBizz+vS4eygXBqZ55e+EU5gEr69VNp0zLcOvVx48mrEeON\n1NbkfYE0bk6L5rKBJNZ1v+QHQ/R4Ud1xb6lI9ok7G040G6qbqSU9oiQx09B5\nqmUB9lu4/9p7vGd8Gde4zXfQs4zRkzTo3FOeiNFVesenBXCBxwYuLSSAoPdx\n0HqpsezasBjh/cf12h+o2OccgVOGjhvf8zlIWFvpAyfbc8sZMOaLALf0KHDC\nFFeQNpzlpmZUPfkcJciG8cc6yYjkthyvy81ufFM/VHbXGASsE8bAx3ZE/rpR\n6V5Mx5mjxKVdS/PkSy5F3oB46NpjPHf/Ja9cyRRs9Lc3g0woz8Xm1tFulcxz\n3AsiB1B4HL23J6AFiQo6txSwMVttopF8f0Hf0GDeTIj2+AhHCu53mFEp0uyk\nGcEbbLF1SZVgYaGNeO1kkRoU1+AnxHnxUVlQG6u7Sl0XQQrYsE4KWEjeFtAW\ntV4BfSo2mAkK6wodq5cS0R0ZzZWVpQbJpk2urSstz8Jedjj28prQsad4zQwD\nHMA/OV1aa8IsxMHn0YIVB1KGd2od8cfLW1BppEd4G8g1baYb2Uk/u0pW+dCR\ndyKF\r\n=jbBO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIE4/M9vu9ji98MRbRrW9fvZUSw4A41s2CWuqykP0CdlsAiEA1402mByP786J2mo/kHL2Hfj+xU/9ST1TcsyXIpKh7TE="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.0-beta.21_1575303749461_0.9677133405155911"},"_hasShrinkwrap":false},"6.11.1":{"name":"react-table","version":"6.11.1","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table/tree/v6#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","module":"es/index.js","scripts":{"build:cjs":"babel src --out-dir lib --source-maps inline --copy-files","build:es":"cross-env BABEL_ENV=es babel src --out-dir es --source-maps inline","build:umd":"cross-env BABEL_ENV=umd rollup -c","build:umd-min":"cross-env BABEL_ENV=umd NODE_ENV=production rollup -c","build:css":"rimraf react-table.css && stylus src/index.styl --compress -o react-table.css && yarn css:autoprefix","css:autoprefix":"postcss --use autoprefixer react-table.css -r","watch":"npm-run-all --parallel watch:*","watch:js":"onchange 'src/**/*.js' -i -- yarn build:cjs","watch:css":"onchange 'src/**/*.styl' -i -- yarn build:css","test":"eslint src","build":"npm-run-all build:*","prepublish":"yarn build","postpublish":"git push --tags","docs":"yarn watch & cd docs && yarn && yarn start","docs:build":"yarn build && cd docs && yarn && yarn build"},"dependencies":{"classnames":"^2.2.5","react-is":"^16.8.1"},"peerDependencies":{"prop-types":"^15.7.0","react":"^16.x.x","react-dom":"^16.x.x"},"devDependencies":{"autoprefixer":"^6.7.0","babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-plugin-external-helpers":"^6.22.0","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-preset-env":"^1.6.1","babel-preset-react":"^6.24.1","cross-env":"^5.1.4","eslint":"^4.1.1","eslint-config-react-tools":"^1.0.10","eslint-plugin-class-property":"^1.0.6","eslint-plugin-import":"^2.7.0","eslint-plugin-jsx-a11y":"^6.0.2","eslint-plugin-react":"^7.4.0","match-sorter":"^1.8.0","npm-run-all":"^4.1.2","onchange":"^3.0.2","postcss-cli":"^2.6.0","prop-types":"^15.7.2","react":"^16.3.2","react-dom":"^16.3.2","react-json-tree":"^0.10.9","rimraf":"^2.6.1","rollup":"^0.55.3","rollup-plugin-babel":"^3.0.3","rollup-plugin-commonjs":"^8.3.0","rollup-plugin-node-resolve":"^3.0.2","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"^3.0.0","standard":"^10.0.2","stylus":"^0.54.5"},"babel":{"env":{"development":{"presets":[["env",{"modules":"commonjs"}],"react"],"plugins":["transform-object-rest-spread","transform-class-properties"]},"es":{"presets":[["env",{"modules":false}],"react"],"plugins":["transform-object-rest-spread","transform-class-properties"]},"umd":{"presets":[["env",{"modules":false}],"react"],"plugins":["transform-object-rest-spread","transform-class-properties","external-helpers"]}}},"licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@6.11.1","dist":{"shasum":"269ad4fae4110597819536e12f21625f2b730378","integrity":"sha512-OLd7fnmzEYI1Jnth5kwncb7L2vW8MPCIBvf+yngrzRf9GCH6U6TgQXGW+bBrw91h+TP0p+L/v/kKWwlbJN5ncg==","tarball":"https://registry.npmjs.org/react-table/-/react-table-6.11.1.tgz","fileCount":73,"unpackedSize":1425379,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd5VQWCRA9TVsSAnZWagAADQsQAIzK/3cwF/UqjUoX6C91\nlA6nxLS8mh3tMt9A+ktOc4j/2+dmk+tZkc2lZrkU1b2ml70i6rTgWW45V6y4\nsKvthqHMjhYq7oemaleFGOBzQNgNAywMuSAqHuWjcgSqVBSyIZ1DOIk5J5an\nl+/H2jXa4o24Ewo3rCU2YwM1tIGAXSkNgcW6ZnUrbnWpyIbFbXckGVhDX2Gc\n/6khOQ6BrbFaulhe+bfWrA3++SflMOiOa0lVa/8cYJz7r1+dIBQirTCr55sd\nHY9MHnmIB1YSyXVe6TV2zCUj4z6LpmiQgnNJ8pgqWLATZqJRKeG/w0CJH3OO\ncPiMNCWFAVJzPP16Ci8d1fhPvEXzoJwbCVXOoJ2AEaOTK55SL69gPaVvo2Kg\nhpIq8QKOvDTDeghDfmvr0ibdU3+BPytD7kEB5jXv0FA9nedBmivGu8buPB7U\nXWoPfgqyDn2D3uL4SwdOrsrbwCQEe68lIaZYc4C704LNoHsIvTIx0dwEXdpU\ngUSrjrIgwQ3DdsuaBXQfj2WEg+eQHqNGM8i2WvjVKw3dibpNgBG4dyNVuVhG\nSWI0cYRDdyKJVbQ5yDHoc+mGI5XfZv6KG1ggf9ia2q2HlUy2PeAnCJjQl7l0\nilvB1B/aFtMQIUUPb9YIaLj6/1nA5hKXy24S8XZLIsM8fIb/Qq/pjaHCN1dE\ncdL7\r\n=C5Fv\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCW7T5rYRdXC8kVfZYa5EjFn0PoPz9xRwNtzoPjn3/AvgIgSvoYgY80YE1EVSGs2PCjJtnfrSdde6hgcsqXcBzSXwQ="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_6.11.1_1575310357318_0.06032988281610252"},"_hasShrinkwrap":false},"7.0.0-beta.22":{"name":"react-table","version":"7.0.0-beta.22","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"dist/index.js","module":"dist/index.es.js","scripts":{"commit":"git add . && git-cz","test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"yarn test:jest && yarn test:types","test:jest":"jest","test:types":"echo '\n****\nTODO: Re-enable dtslint\n****\n'","build":"rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,examples/*/src,examples/*/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"prop-types":"^15.5.0","react":"^16.8.3","react-dom":"^16.8.3"},"devDependencies":{"@babel/core":"^7.7.2","@babel/preset-env":"^7.7.1","@babel/preset-react":"^7.7.0","@babel/runtime":"^7.7.2","@commitlint/cli":"^8.2.0","@commitlint/config-conventional":"^8.2.0","@svgr/rollup":"^4.3.3","@testing-library/dom":"^6.10.1","@testing-library/jest-dom":"^4.2.4","@testing-library/react":"^9.3.2","babel-eslint":"9.x","babel-jest":"^24.9.0","commitizen":"^4.0.3","core-js":"3.4.1","cross-env":"^6.0.3","dtslint":"^0.9.8","eslint":"6.6.0","eslint-config-prettier":"^6.7.0","eslint-config-react-app":"^5.0.2","eslint-config-standard":"^14.1.0","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"4.4.1","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^10.0.0","eslint-plugin-prettier":"^3.1.1","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.16.0","eslint-plugin-react-hooks":"2.3.0","eslint-plugin-standard":"^4.0.1","husky":"^3.1.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","jest-cli":"^24.9.0","jest-runner-eslint":"^0.7.5","jest-watch-select-projects":"^1.0.0","jest-watch-typeahead":"^0.4.2","lint-staged":"^9.4.3","prettier":"^1.19.1","prop-types":"^15.5.0","react":"^16.12.0","react-dom":"^16.12.0","rollup":"^1.27.3","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2","snapshot-diff":"^0.6.1"},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"browserslist":"> 0.25%, not dead","licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.0-beta.22","dist":{"shasum":"6e2f05539ce348c1c0c95959a8c15fbdc58d769c","integrity":"sha512-GVd8uEnldOtnnkSO7sQEToSohOqmt5VwwFIYz/5AGBK2LnAaTP+yk1okvk/h2PX3JkNVd/GMa3sQfST+06Un0g==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.0-beta.22.tgz","fileCount":45,"unpackedSize":689709,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd5Vh3CRA9TVsSAnZWagAAqP0P/1JH1yOBUcARHeUsNuXA\npZi6/aXr2K19JbdI1+d9NDtoW3WkZ6Tuxmot3+0MLT2fda0/76fjTACUv6dG\nmFB0+H+iA8A6Tjhs/t3ugBrSGqKsWD3zGOqUChwvhinGOlPBgTDvGimtYdq/\nLAKSFwFiBKJKQtpYWLtnfBizMxAPfUndQuRPtgavF6bD7kGPEK5RViRWm/Yt\nvP3jgkJK5cXxadRu1ddTPqkOAnelshIpy7DfVDhZH4bil0fYx3KVvQBdpSyP\nMe5pku2pe8rNdRQ4xeo0bqWWkIRQQskNMaFhvhAnUlPjQLw2hGsSQNQC6jW/\nI7vwjAOzadX4fGEsvb6rZtDqzaosl+i62zCqZD2QoTFUhe5A0Dn1qQXdbotM\nPlwsAR9a34JkUXhbiJXJvnnaO7a4u20P0O+glFA9B8OAD7d5xcYixZyzJTyb\ni5P5LJ3cJGbz2vOUIh8IcQKZLjjE50ENIvHYX03MtkcjF/2R74QSnUzTF/eT\niMRJQYJUgVUR7o+Y38kSg9HP5Ega/QYc+nvJdml+iWr1VnVnYbfq4/AUgr+h\nTAFJBnNglpga3CRTbpbmfUX93BWbuEJ1ujUv93nKd+tnjfl2OT10AM9OQT6a\nQqjK1kaLwGTNitvk1Hdzn7FqqjjR/YM+aj4QKLRkd4bAz0dK0b2suY6xtbZX\nLBGh\r\n=rnED\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDGpjbiYf4T4QckyMomPPDRcJF68Sgn39UdXvwK5FGo+AIhAIkpcyyw6fj3475B8QEGep46/J7VsscDT+xYqj76hdAt"}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.0-beta.22_1575311479289_0.4774159065767767"},"_hasShrinkwrap":false},"6.11.2":{"name":"react-table","version":"6.11.2","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/react-tools/react-table#readme","repository":{"type":"git","url":"git+https://github.com/react-tools/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","module":"es/index.js","scripts":{"build:cjs":"babel src --out-dir lib --source-maps inline --copy-files","build:es":"cross-env BABEL_ENV=es babel src --out-dir es --source-maps inline","build:umd":"cross-env BABEL_ENV=umd rollup -c","build:umd-min":"cross-env BABEL_ENV=umd NODE_ENV=production rollup -c","build:css":"rimraf react-table.css && stylus src/index.styl --compress -o react-table.css && yarn css:autoprefix","css:autoprefix":"postcss --use autoprefixer react-table.css -r","watch":"npm-run-all --parallel watch:*","watch:js":"onchange 'src/**/*.js' -i -- yarn build:cjs","watch:css":"onchange 'src/**/*.styl' -i -- yarn build:css","test":"eslint src","build":"npm-run-all build:*","prepublish":"yarn build","postpublish":"git push --tags","docs":"yarn watch & cd docs && yarn && yarn start","docs:build":"yarn build && cd docs && yarn && yarn build"},"dependencies":{"classnames":"^2.2.5"},"peerDependencies":{"prop-types":"^15.5.0","react":"^16.x.x","react-dom":"^16.x.x"},"devDependencies":{"autoprefixer":"^6.7.0","babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-plugin-external-helpers":"^6.22.0","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-preset-env":"^1.6.1","babel-preset-react":"^6.24.1","cross-env":"^5.1.4","eslint":"^4.1.1","eslint-config-react-tools":"^1.0.10","eslint-plugin-class-property":"^1.0.6","eslint-plugin-import":"^2.7.0","eslint-plugin-jsx-a11y":"^6.0.2","eslint-plugin-react":"^7.4.0","match-sorter":"^1.8.0","npm-run-all":"^4.1.2","onchange":"^3.0.2","postcss-cli":"^2.6.0","prop-types":"^15.7.2","react":"^16.3.2","react-dom":"^16.3.2","react-json-tree":"^0.10.9","rimraf":"^2.6.1","rollup":"^0.55.3","rollup-plugin-babel":"^3.0.3","rollup-plugin-commonjs":"^8.3.0","rollup-plugin-node-resolve":"^3.0.2","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"^3.0.0","standard":"^10.0.2","stylus":"^0.54.5"},"babel":{"env":{"development":{"presets":[["env",{"modules":"commonjs"}],"react"],"plugins":["transform-object-rest-spread","transform-class-properties"]},"es":{"presets":[["env",{"modules":false}],"react"],"plugins":["transform-object-rest-spread","transform-class-properties"]},"umd":{"presets":[["env",{"modules":false}],"react"],"plugins":["transform-object-rest-spread","transform-class-properties","external-helpers"]}}},"licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@6.11.2","dist":{"shasum":"d814ade6523e53f3ff2639ad171e0e64c606e55f","integrity":"sha512-UspBbCrPc+zZM5b+y6wRU9TYOcb/iknbAni3Gs1SnO47akj5eLkURwJTAvmBP3bBBFBsM4pYjq+5VeCZZc0wSw==","tarball":"https://registry.npmjs.org/react-table/-/react-table-6.11.2.tgz","fileCount":72,"unpackedSize":1402285,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd5Z2YCRA9TVsSAnZWagAAWIsP/A6gLSZFze+iEdKyQx7T\n2/OVVxUFdj0lakLXapfQDhdpY04xhaH0IxQn5jlRgTvX+Ca2VJOP7JUR89yT\nlnerGLG0obmnaazIRyRIxPWX53z93rWYRoijqQxqrs6DuEVlAD+Y43o1ONhJ\n3s+d/Iou8uNy0uyXN+TE/Jb2NWmJjZ3g5oHK7vi18wcRwBUK2DOcnio4MgeR\n/qQzeO1/XCYo9KaxkLpvw214YrOHzgICfgHmTmE1yIGZv/Yyn1KyfoKgXixQ\nQijVAYDv9TScOp8ePihe4cGZubTEd/K6cZReQSdBtmdHv0rNAxYnHx/E0ddq\nSOhcuVOoeug8QLxYsy/FENjBWIxO0puofM3r5h8xai5Q1jvprsZ+iVuasHjG\nFcvoQ0SGXAkDL66o8ujCJ4w3mhiGni9zCYMIF2+Qq/UzrHULEmFZeFJqaEx3\n0ySwL9fDrkKNCW+5smq87iOZaMLbdCgwZHUeLVGDY6EaqtHdEic94eWgBQ4y\nKNokJR0H+eDeEf+7X0QFFmZVSL3TcxZFiTyvUj7bhW+/Pek1IiQtnIx2VZ1U\nvKTbf67ly6qktrjsj7JYPUBVk1+SBaItXUqomG4V9b5oqQW6LkKUHve3x9fi\nkZNRGO3Rk2T+/SmhJAMYV+aSdDJHWWbZNNm1dSvcyh5TUlArz9/xBvqHZPTj\nTDSa\r\n=r3VJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD1waYTijZgsmR8GmSfwUNUzVqr3nuXC9BeMxfThEkD7AIhAKGipTX+oMp6p3h24u/NPhOUaBwoHCUr/QXsuXGpsfi2"}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_6.11.2_1575329176201_0.9695746296635914"},"_hasShrinkwrap":false},"7.0.0-beta.23":{"name":"react-table","version":"7.0.0-beta.23","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"dist/index.js","module":"dist/index.es.js","scripts":{"commit":"git add . && git-cz","test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"yarn test:jest && yarn test:types","test:jest":"jest","test:types":"echo '\n****\nTODO: Re-enable dtslint\n****\n'","build":"rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,examples/*/src,examples/*/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"prop-types":"^15.5.0","react":"^16.8.3","react-dom":"^16.8.3"},"devDependencies":{"@babel/core":"^7.7.2","@babel/preset-env":"^7.7.1","@babel/preset-react":"^7.7.0","@babel/runtime":"^7.7.2","@commitlint/cli":"^8.2.0","@commitlint/config-conventional":"^8.2.0","@svgr/rollup":"^4.3.3","@testing-library/dom":"^6.10.1","@testing-library/jest-dom":"^4.2.4","@testing-library/react":"^9.3.2","babel-eslint":"9.x","babel-jest":"^24.9.0","commitizen":"^4.0.3","core-js":"3.4.1","cross-env":"^6.0.3","dtslint":"^0.9.8","eslint":"6.6.0","eslint-config-prettier":"^6.7.0","eslint-config-react-app":"^5.0.2","eslint-config-standard":"^14.1.0","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"4.4.1","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^10.0.0","eslint-plugin-prettier":"^3.1.1","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.16.0","eslint-plugin-react-hooks":"2.3.0","eslint-plugin-standard":"^4.0.1","husky":"^3.1.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","jest-cli":"^24.9.0","jest-runner-eslint":"^0.7.5","jest-watch-select-projects":"^1.0.0","jest-watch-typeahead":"^0.4.2","lint-staged":"^9.4.3","prettier":"^1.19.1","prop-types":"^15.5.0","react":"^16.12.0","react-dom":"^16.12.0","rollup":"^1.27.3","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2","snapshot-diff":"^0.6.1"},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"browserslist":"> 0.25%, not dead","licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.0-beta.23","dist":{"shasum":"ceb1efa8487671d08897b51d39dffc098f789dbb","integrity":"sha512-2Lr5xSgvwA+4eCuR2zyhCgpcxmD5dvssFtSI+wXTsC7roScmnc5FqSI3utvF2dY91rc6y9oeKtNKdNl88oGqFw==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.0-beta.23.tgz","fileCount":45,"unpackedSize":691947,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd5aQRCRA9TVsSAnZWagAAyLsQAI0RKpiOH/+Tw3OZzRrj\ngOgN6bWrjXMXQffTFdyGrKOZtvUEvmW5ucJGa3277UAMf1WnkY2HB6DVWqzm\nGM6dDWae3N27+/TF0v/a44333PcGQvoyM76LeeZ+hfDCpkWBgMHVSGoHGkW4\nQsr2V95jTIpVnWbKdJOBR8/BpGOwsG8glQMMFlxon2MS/sh2SSRcMk6Sim/I\n5Tx6IADOkU1/ZLjy1tGXWV8qUv5S90vB5fxcEf8X1/SPIfrEh7rFGaH99I9v\nnONzZrVdI5/7DWlqB5pqCO0aepxwKx/UpFfiPUcwb33KBbyzZAKQ+KaCpuG+\nZ2EaymbVSERqrqVRvZZGMkBBlhVznTlICGG7UzIJsiuHBiouux8D7XaCaec/\nPh5JLtMa5I78fZlJcDcSNfHmdhRUWIgmHPTSkOl8HUr00PzZe+p0kSOnSt95\nz3cdfqRIAMw614GjIhgdIRllUUyBzFAp2JDyvCV0z5SxkcBhfW2PI4NUZOKw\nEdykMbjQiN3QVSCW/Vk1STZq584ipgMzPzRFCS/1IPDFkhRFKS/cz/e9fFcr\nZX6UL1rKdt8kR/pAiQdQEjSglo8GfIeGhsgkSC0zW1faqXsu6xIff0GKSATy\n+oIctMW14Y7q6MwjdgFHnAado00Ihw2PPzgcjeHbWDr9ejjSiFrjc2FFQrDu\n3R6f\r\n=n5Ja\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDBZn5iUIjnod273EgrJdaZQPe6zKGy1ceovn9i5rDOxQIgWXWXiZmQglMDERonsjPJ1mUJJMrHQ/Mbwj/p9wqCPIw="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.0-beta.23_1575330833077_0.16339801471913962"},"_hasShrinkwrap":false},"7.0.0-beta.24":{"name":"react-table","version":"7.0.0-beta.24","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"dist/index.js","module":"dist/index.es.js","scripts":{"commit":"git add . && git-cz","test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"yarn test:jest && yarn test:types","test:jest":"jest","test:types":"echo '\n****\nTODO: Re-enable dtslint\n****\n'","build":"rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,examples/*/src,examples/*/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"prop-types":"^15.5.0","react":"^16.8.3","react-dom":"^16.8.3"},"devDependencies":{"@babel/core":"^7.7.2","@babel/preset-env":"^7.7.1","@babel/preset-react":"^7.7.0","@babel/runtime":"^7.7.2","@commitlint/cli":"^8.2.0","@commitlint/config-conventional":"^8.2.0","@svgr/rollup":"^4.3.3","@testing-library/dom":"^6.10.1","@testing-library/jest-dom":"^4.2.4","@testing-library/react":"^9.3.2","babel-eslint":"9.x","babel-jest":"^24.9.0","commitizen":"^4.0.3","core-js":"3.4.1","cross-env":"^6.0.3","dtslint":"^0.9.8","eslint":"6.6.0","eslint-config-prettier":"^6.7.0","eslint-config-react-app":"^5.0.2","eslint-config-standard":"^14.1.0","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"4.4.1","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^10.0.0","eslint-plugin-prettier":"^3.1.1","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.16.0","eslint-plugin-react-hooks":"2.3.0","eslint-plugin-standard":"^4.0.1","husky":"^3.1.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","jest-cli":"^24.9.0","jest-runner-eslint":"^0.7.5","jest-watch-select-projects":"^1.0.0","jest-watch-typeahead":"^0.4.2","lint-staged":"^9.4.3","prettier":"^1.19.1","prop-types":"^15.5.0","react":"^16.12.0","react-dom":"^16.12.0","rollup":"^1.27.3","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2","snapshot-diff":"^0.6.1","typescript":"^3.7.2"},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"browserslist":"> 0.25%, not dead","licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.0-beta.24","dist":{"shasum":"7ff08d5de1ada947bbb97ae34ff6279dffce4231","integrity":"sha512-InSJavRORVfb5hX4MNxpAqXbL9GbcGvBqcVE0/Z2YCAcUjkEYTPIFlOu2O0RlAYZlSJ1TCuGMw6mmFijJ65M+w==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.0-beta.24.tgz","fileCount":44,"unpackedSize":674944,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd5o/wCRA9TVsSAnZWagAA/wgP/RalvtRPAO9NMpeznc0J\nRb0vJEm1mRdjQwQgeBsaKixIwUaikswMTq8BYigoc3OD3YNeuPjszU/6mAKs\nyh9Sd5ESQLM49RyzMgfjCShkSRYpK5KEP8IO6nfjrdl95qnx5pZDkmUZ/SJU\neX9Lp8GO3GsqqWu0GV9E/Zn3J9A0O1MAB0sC/EJdWdCih3Mj/GncN6rVRMz2\nfHLxeUL0xf6yu73nqYmYOz3X0wAPeGdgSMe5V5J+RELUyUApoff6LAhdDjLJ\nV4LpF/+VBGOj77qmfIf1HItzdzIlD6X08ZWzX8DgQYyGO5eX+12R49clEglm\nilP+OmaYMWFC61quBJOd2L7KxIBZJCxZWwIbxxxK6Rpp4X/tCCnkgVJz0Nmy\nCN/4o5KjsY1ejunBUOpZhG1fve8AMzlp7okVBJNb57P4s3NvKUC5vi1EfhMl\nExCV+LbmSwor9/z309tsl6zJH6M98r6ckEGhL0ToIi1L7v0TsBt8Dr7CuWeo\n0jTEyK+N6HkOzBBK08QuMmye24D/islE+OY5qzuhqaCU+rtadZS7tsIZSDdO\nW6s9yZLSW2V91QwsgvrqBa0tKPhRsk7CHqsKEOY+MYVMT4iMItocWhRw0ViB\nCyFVrPQ0p5rCUAXM8Wzf3+VP5JrAVmZh9vmlAQMEC6q3gD15MceUPU6CfaAF\nXz6w\r\n=+tTZ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICUJP8y6vZMMNWYee2rZ06Zd5Hq2J97BzEfAkr4sY2XyAiEA3O8YWN64HMM5Xv3LhdiDWl5z0MMFvMVIdm9YR2PQvZc="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.0-beta.24_1575391215485_0.606128358605853"},"_hasShrinkwrap":false},"7.0.0-beta.25":{"name":"react-table","version":"7.0.0-beta.25","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"dist/index.js","module":"dist/index.es.js","scripts":{"commit":"git add . && git-cz","test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"yarn test:jest","test:jest":"jest","build":"cross-env NODE_ENV=production rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,examples/*/src,examples/*/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"react":"^16.8.3","react-dom":"^16.8.3"},"devDependencies":{"@babel/core":"^7.7.2","@babel/preset-env":"^7.7.1","@babel/preset-react":"^7.7.0","@babel/runtime":"^7.7.2","@commitlint/cli":"^8.2.0","@commitlint/config-conventional":"^8.2.0","@svgr/rollup":"^4.3.3","@testing-library/dom":"^6.10.1","@testing-library/jest-dom":"^4.2.4","@testing-library/react":"^9.3.2","babel-eslint":"9.x","babel-jest":"^24.9.0","commitizen":"^4.0.3","core-js":"3.4.1","cross-env":"^6.0.3","dtslint":"^0.9.8","eslint":"6.6.0","eslint-config-prettier":"^6.7.0","eslint-config-react-app":"^5.0.2","eslint-config-standard":"^14.1.0","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"4.4.1","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^10.0.0","eslint-plugin-prettier":"^3.1.1","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.16.0","eslint-plugin-react-hooks":"2.3.0","eslint-plugin-standard":"^4.0.1","husky":"^3.1.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","jest-cli":"^24.9.0","jest-runner-eslint":"^0.7.5","jest-watch-select-projects":"^1.0.0","jest-watch-typeahead":"^0.4.2","lint-staged":"^9.4.3","prettier":"^1.19.1","prop-types":"^15.5.0","react":"^16.12.0","react-dom":"^16.12.0","rollup":"^1.27.3","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size":"^0.2.1","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2","snapshot-diff":"^0.6.1"},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"browserslist":"> 0.25%, not dead","licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.0-beta.25","dist":{"shasum":"55dd0f45c7d97ad6466b8697275dda43589a49b9","integrity":"sha512-ncYIoOw3+U1CdsLZSHJ3n0/MV/1hgaCggLk8HuW17UrKn7PSwyqw6qyCkhzu9qVsTU9VWuZVkauZmfnEYg6cjA==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.0-beta.25.tgz","fileCount":44,"unpackedSize":675085,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd5pEzCRA9TVsSAnZWagAA2UAP/iRRv9hAnk8QmaJfM5aD\nor2RCU2aEtVNLu1FRT74MDjwfrWE4CvX586Uw70ZFQO79AaBCNianPgqa3+W\nFXYHZvKkBEMdbMxLY/B2i2g7A5lrfmRRxSbMHRaJGQieXSPLdNhxr3nVlWbW\nYE/iYGQh9DS4vWUI9JGldIM8jEwSV1fQ04OJ/aG07IipQFN4stFuFXp8V+aT\nYHx4zDrUICxSXA8aVC0QL6quvolcxSizWM3rhBlcEGWbEh3bJxE/YabxWgia\nIDsPe5vXLE3EW3gs/TY95QXkCclBjiVDWi7I0IWiA2fuoSkaF59/8j+dmh7T\n/V88hAuA4ltAirWpuus5GEXJUHRpgmNN3HzeRPb8/1UYubOTdr3YxXgVTWaF\nHVT6Rew0+A3MLB2QW6wxfd3hVUscK+ovOCIFR2f0RPwQTIfVJXB3uY6vYWn/\nG6QZnu8o06pnmlaJ4543kWs6UmBANbObJ23bebfd1hwG8MD16QETGRCE4nm9\nceUDQ/OkdwjUk+ES3WOAzhTBnmC3pipQG0btP38IX+w3EqXs+an59FMVc/bF\nuN7CYWnO0aax515BjEqJ4zPT6mAvJfzQGup9H+IZhUnAGx41xOFhSgy9krCF\nZOndEnIqss37gw/QNSGZpjkoGocsbVM+zRlvS0RK/WxEhJpXigM4UlhktCIZ\nDMf5\r\n=RmcW\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCYD9h/bKYFpCpx6Oh8pqXYX9sMoEen0M47OS8nLz7U0QIgRg25UQ1Eedo17v+GX2b52DXQKhap1Ih/GP4AUnY7Y3U="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.0-beta.25_1575391539459_0.15191965641638983"},"_hasShrinkwrap":false},"7.0.0-beta.26":{"name":"react-table","version":"7.0.0-beta.26","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"dist/index.js","module":"dist/index.es.js","scripts":{"commit":"git add . && git-cz","test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"yarn test:jest","test:jest":"jest","build":"cross-env NODE_ENV=production rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,examples/*/src,examples/*/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"react":"^16.8.3","react-dom":"^16.8.3"},"devDependencies":{"@babel/core":"^7.7.2","@babel/preset-env":"^7.7.1","@babel/preset-react":"^7.7.0","@babel/runtime":"^7.7.2","@commitlint/cli":"^8.2.0","@commitlint/config-conventional":"^8.2.0","@svgr/rollup":"^4.3.3","@testing-library/dom":"^6.10.1","@testing-library/jest-dom":"^4.2.4","@testing-library/react":"^9.3.2","babel-eslint":"9.x","babel-jest":"^24.9.0","commitizen":"^4.0.3","core-js":"3.4.1","cross-env":"^6.0.3","dtslint":"^0.9.8","eslint":"6.6.0","eslint-config-prettier":"^6.7.0","eslint-config-react-app":"^5.0.2","eslint-config-standard":"^14.1.0","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"4.4.1","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^10.0.0","eslint-plugin-prettier":"^3.1.1","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.16.0","eslint-plugin-react-hooks":"2.3.0","eslint-plugin-standard":"^4.0.1","husky":"^3.1.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","jest-cli":"^24.9.0","jest-runner-eslint":"^0.7.5","jest-watch-select-projects":"^1.0.0","jest-watch-typeahead":"^0.4.2","lint-staged":"^9.4.3","prettier":"^1.19.1","prop-types":"^15.5.0","react":"^16.12.0","react-dom":"^16.12.0","rollup":"^1.27.3","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size":"^0.2.1","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2","snapshot-diff":"^0.6.1"},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"browserslist":"> 0.25%, not dead","licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.0-beta.26","dist":{"shasum":"20ab9a7bd21f01930e764198410a642a3ae28e79","integrity":"sha512-Pw/1T9kiAjV1cIf6K6bQV6yNQc3O7XUGin1RcSR1xFKw0RNGC5vl1VDPZrNep1BXDsbR6o8O63X45HFNVg6HzA==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.0-beta.26.tgz","fileCount":44,"unpackedSize":675266,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd5r4xCRA9TVsSAnZWagAAeqAP/0QnkV/e1T6qLIHp4fBQ\nI9C7l39Sz/H07HMR/zq3q+WwIGdd4ar+Dr0+Gy9RqKHkledR+RDWmHhk2/+C\nDJKrlXyRRixTyRqYJ3pLhIhU671/BItl8Hig0R547bEIfO9/VTaCY5FIFlgt\nj73uhKbmFZwEc9SLcJjjUxQCEp7RPtZKsJk45+zsurMiARnfxEA5lrzC9STP\nxxVFVrV4if+xI7zUitiQIkecH2sMIo7iRjsdijEc29cJaGXY9lej1fTSrZD+\n7IIJY+SWYcktGP1gv9dPml3Kx8ka2bVyigGgBllzJgU/iry5e97lR+pSU7ZM\npthLJBXEahmbMFX/QKmQG988w28qYWuZGo89W6oOawDrPQwCzF/PKC5OIZOY\nvSdFYW/5K2CqHTRx4agB0utAG6f481Op3y70eqwu2dfRlNsPkL0+cNP5YZ+G\n5iwcZlfsZccPaAhiUr3EOKwPs/Y2XoE2gM8N/+qG7W3OaSklQ1bW6pU1nTSN\nQHQA8CkQGSgEz7vgDUNDRa/XrTd4E9583GhsaeFJ+mE8pr4HRh7lMVKZIt7b\n3h1oKLLv5cGrHTMNWF8GR3KRvLit3z3rPDh38pyfXvRXo/iZI6zBgb7PUShi\nHem1m/BAFh1EVfSbBWHY856Wz8NG2SHr0DVJigjP28bESOFz6dwOVZUmL8bB\n1DCj\r\n=Apeg\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGgus48xxObo4KDlLXUBuwxk5rlNIZFndWhq78HWzlvHAiAhm/HcOVfKD6D97g8pSeojMX4WmAKTbRGNTodSBlSkhA=="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.0-beta.26_1575403056831_0.4710473994899802"},"_hasShrinkwrap":false},"7.0.0-beta.27":{"name":"react-table","version":"7.0.0-beta.27","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"dist/index.js","module":"dist/index.es.js","scripts":{"commit":"git add . && git-cz","test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"yarn test:jest","test:jest":"jest","build":"cross-env NODE_ENV=production rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,examples/*/src,examples/*/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"react":"^16.8.3","react-dom":"^16.8.3"},"devDependencies":{"@babel/core":"^7.7.2","@babel/preset-env":"^7.7.1","@babel/preset-react":"^7.7.0","@babel/runtime":"^7.7.2","@commitlint/cli":"^8.2.0","@commitlint/config-conventional":"^8.2.0","@svgr/rollup":"^4.3.3","@testing-library/dom":"^6.10.1","@testing-library/jest-dom":"^4.2.4","@testing-library/react":"^9.3.2","babel-eslint":"9.x","babel-jest":"^24.9.0","commitizen":"^4.0.3","core-js":"3.4.1","cross-env":"^6.0.3","dtslint":"^0.9.8","eslint":"6.6.0","eslint-config-prettier":"^6.7.0","eslint-config-react-app":"^5.0.2","eslint-config-standard":"^14.1.0","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"4.4.1","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^10.0.0","eslint-plugin-prettier":"^3.1.1","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.16.0","eslint-plugin-react-hooks":"2.3.0","eslint-plugin-standard":"^4.0.1","husky":"^3.1.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","jest-cli":"^24.9.0","jest-runner-eslint":"^0.7.5","jest-watch-select-projects":"^1.0.0","jest-watch-typeahead":"^0.4.2","lint-staged":"^9.4.3","prettier":"^1.19.1","prop-types":"^15.5.0","react":"^16.12.0","react-dom":"^16.12.0","rollup":"^1.27.3","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size":"^0.2.1","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2","snapshot-diff":"^0.6.1"},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"browserslist":"> 0.25%, not dead","licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.0-beta.27","dist":{"shasum":"0505aed2beffedc596dd003e72c91a4709b91456","integrity":"sha512-Lkc8xIwc6OhV4RV753zJt/29WdPh0H5TlZVT8KRjiCaX4Xcrx/MI0kAG+WljxIz9USN6+FYiKrYVtOcScHIxBA==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.0-beta.27.tgz","fileCount":45,"unpackedSize":688762,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd6HzvCRA9TVsSAnZWagAA5VAP/ie8l5IHXnyNAfgTO3xv\nCBzznUjlb4GtXG+cBV+pWWrPPzOSUK4gm/MVmpKtsV8nqXOI9Xs3yscZb/oh\nNBRmWduhPfI6r23Pf5QYDM1vjnK4lEmdsNmTZcrB0exvqRUsdj1xr4yoUDyB\nFy89LiJyVgE0wqL4wLZluK8skpUNbT7U2rXWhuN3kyFOCH1/95JkI341hFaE\nBsj/3XA2T7V89mZUKTXSssD2NqGgZZTWKl8dVYezS07RQw9jWUPlVr/Fs92q\nshf/0s3ZE1eNc1F3i8LMoQ3NmtfxLMeHb+qwzPhOUhntuPGl5N5V2m2oZqle\n6hLDwDw1sb69g3KqTJRXSTG3sFftVHwvP8xyiitl+yifCpXnAde3d4NIL9vQ\nOThgVNCEi1w/hy6VCuOkulG8HYHhxbYZpBeOCQsLw4RAfkoknHQz9gbM8Oou\nsOlYiebx7Na9uMj/CbFRzbqPa43cu6agMpXm6Qv7Tfg/91mDiznhx18wAYVG\n4cRYfABIwRMdjnpzEstLxcy0tSU4Mew+4ty3FSUsmJDn3SZ91REEhve8VAOn\nP6YbY/JHZAXtkdOj6/+r7tstdqSDXAwceZ7bs8bzdy6ufeJ983COx9DK6iZQ\n1y+npKTGXhtPKE0jeZyOArm1wwBUiyskFNgi2WcSXd/CLvG7UIy//dIogwqP\nG0ak\r\n=3Tsn\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIH1m4dJ1lp+jbnr3mtnTPF2KYKsRf3xsFa5fO4tl1KXUAiEAi0YaBI6ufD5kuyA0yEnVDCGksSxZZl0hNQkvLVn0gU4="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.0-beta.27_1575517422786_0.8389423013601043"},"_hasShrinkwrap":false},"6.11.3":{"name":"react-table","version":"6.11.3","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table/tree/v6#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","module":"es/index.js","scripts":{"build:cjs":"babel src --out-dir lib --source-maps inline --copy-files","build:es":"cross-env BABEL_ENV=es babel src --out-dir es --source-maps inline","build:umd":"cross-env BABEL_ENV=umd rollup -c","build:umd-min":"cross-env BABEL_ENV=umd NODE_ENV=production rollup -c","build:css":"rimraf react-table.css && stylus src/index.styl --compress -o react-table.css && yarn css:autoprefix","css:autoprefix":"postcss --use autoprefixer react-table.css -r","watch":"npm-run-all --parallel watch:*","watch:js":"onchange 'src/**/*.js' -i -- yarn build:cjs","watch:css":"onchange 'src/**/*.styl' -i -- yarn build:css","test":"eslint src","build":"npm-run-all build:*","prepublish":"yarn build","postpublish":"git push --tags","docs":"yarn watch & cd docs && yarn && yarn start","docs:build":"yarn build && cd docs && yarn && yarn build"},"dependencies":{"classnames":"^2.2.5","react-is":"^16.8.1"},"peerDependencies":{"prop-types":"^15.7.0","react":"^16.x.x","react-dom":"^16.x.x"},"devDependencies":{"autoprefixer":"^6.7.0","babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-plugin-external-helpers":"^6.22.0","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-preset-env":"^1.6.1","babel-preset-react":"^6.24.1","cross-env":"^5.1.4","eslint":"^4.1.1","eslint-config-react-tools":"^1.0.10","eslint-plugin-class-property":"^1.0.6","eslint-plugin-import":"^2.7.0","eslint-plugin-jsx-a11y":"^6.0.2","eslint-plugin-react":"^7.4.0","match-sorter":"^1.8.0","npm-run-all":"^4.1.2","onchange":"^3.0.2","postcss-cli":"^2.6.0","prop-types":"^15.7.2","react":"^16.3.2","react-dom":"^16.3.2","react-json-tree":"^0.10.9","rimraf":"^2.6.1","rollup":"^0.55.3","rollup-plugin-babel":"^3.0.3","rollup-plugin-commonjs":"^8.3.0","rollup-plugin-node-resolve":"^3.0.2","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"^3.0.0","standard":"^10.0.2","stylus":"^0.54.5"},"babel":{"env":{"development":{"presets":[["env",{"modules":"commonjs"}],"react"],"plugins":["transform-object-rest-spread","transform-class-properties"]},"es":{"presets":[["env",{"modules":false}],"react"],"plugins":["transform-object-rest-spread","transform-class-properties"]},"umd":{"presets":[["env",{"modules":false}],"react"],"plugins":["transform-object-rest-spread","transform-class-properties","external-helpers"]}}},"licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@6.11.3","dist":{"shasum":"d8659f410a45e6d16babe2556560851434986742","integrity":"sha512-zbtGkGSaEE6vJvsJEJJWWeNCXAkXOUNGXWAd5P1koM+mPOvcexhsK7gQ7QSIx4RrY2nNAbL3vJDEGYSNxOHJsw==","tarball":"https://registry.npmjs.org/react-table/-/react-table-6.11.3.tgz","fileCount":73,"unpackedSize":1425327,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd6WOFCRA9TVsSAnZWagAAUfwQAI+TSgg+edaRpvGPTIg3\nSV4HY/w5dpXNxMuD9qSAdQ6Qu47lHyky0fXXPD1tHSwi1S1SKbNW38zb2kMG\n3+YvAz0LmdklTywim/w7HRYjWPg79g85iK0ZzujOZVJ30a0YqIzH5LZLnRaV\nVRJNS+yGDLPxmyEv/H/CtFqJ3/7upHZJCS9vVw0TxmzIvIJLjDnlXvyWgzTW\nPrL7Pw8pdk7EiS7/tZCVkxKGTNMKdUg2kal/I9Aq66q8lj22ETiqEZtO7nX1\nXBfyz2so1wfEvSwlnoUkrEbcvfzVOMM7DhXb6RfxlLtZcUzj/RR3Zxas/Gwj\n4rWbkLJrZDKdx/WxAtOn1GmTVMSXoboSuYpHgFkVlpWQ9J1nmb/oVjI1TeBX\nYC/fLbPzhCsCCOjJi2a8XscOgB1G+69RmPux658gAFMgdWvezj5VllRE5K7l\nOEx2uHUCA2ROyNJOb4EkfxKIGzYpiQU39ngNPVO0FsvC7fBBo0RMloVHUy6i\n/GZTkV+MXfNEyCytOXRbqZ9N8rUljZzK58V9z6oxuMsG3nx0CcJIBlxbf36p\nQgJIkZE7fYY4XXUTwK3NMje0b15We6pY4dxbmuszj5rRUQI7fb3B3vprgt81\nWqMUP2cOvJORJ2rNex0rYEeSNFkBBJD9eV2aNyfaT9Fmeah1qsyuFbNpLdB5\nkQUo\r\n=MPb8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDB55lX5/vlYfEjT9Cfdw8rIp5OmZ/G5TT+2YtsFrAQawIhAJnz5chxKOmfvaCTKExRpoGYFfVbsiC93IjbcD/4WGMF"}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_6.11.3_1575576452422_0.20526694220830843"},"_hasShrinkwrap":false},"6.11.4":{"name":"react-table","version":"6.11.4","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table/tree/v6#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","module":"es/index.js","scripts":{"build:cjs":"babel src --out-dir lib --source-maps inline --copy-files","build:es":"cross-env BABEL_ENV=es babel src --out-dir es --source-maps inline","build:umd":"cross-env BABEL_ENV=umd rollup -c","build:umd-min":"cross-env BABEL_ENV=umd NODE_ENV=production rollup -c","build:css":"rimraf react-table.css && stylus src/index.styl --compress -o react-table.css && yarn css:autoprefix","css:autoprefix":"postcss --use autoprefixer react-table.css -r","watch":"npm-run-all --parallel watch:*","watch:js":"onchange 'src/**/*.js' -i -- yarn build:cjs","watch:css":"onchange 'src/**/*.styl' -i -- yarn build:css","test":"eslint src","build":"npm-run-all build:*","prepublish":"yarn build","postpublish":"git push --tags","docs":"yarn watch & cd docs && yarn && yarn start","docs:build":"yarn build && cd docs && yarn && yarn build"},"dependencies":{"classnames":"^2.2.5","react-is":"^16.8.1"},"peerDependencies":{"prop-types":"^15.7.0","react":"^16.x.x","react-dom":"^16.x.x"},"devDependencies":{"autoprefixer":"^6.7.0","babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-plugin-external-helpers":"^6.22.0","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-preset-env":"^1.6.1","babel-preset-react":"^6.24.1","cross-env":"^5.1.4","eslint":"^4.1.1","eslint-config-react-tools":"^1.0.10","eslint-plugin-class-property":"^1.0.6","eslint-plugin-import":"^2.7.0","eslint-plugin-jsx-a11y":"^6.0.2","eslint-plugin-react":"^7.4.0","match-sorter":"^1.8.0","npm-run-all":"^4.1.2","onchange":"^3.0.2","postcss-cli":"^2.6.0","prop-types":"^15.7.2","react":"^16.3.2","react-dom":"^16.3.2","react-json-tree":"^0.10.9","rimraf":"^2.6.1","rollup":"^0.55.3","rollup-plugin-babel":"^3.0.3","rollup-plugin-commonjs":"^8.3.0","rollup-plugin-node-resolve":"^3.0.2","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"^3.0.0","standard":"^10.0.2","stylus":"^0.54.5"},"babel":{"env":{"development":{"presets":[["env",{"modules":"commonjs"}],"react"],"plugins":["transform-object-rest-spread","transform-class-properties"]},"es":{"presets":[["env",{"modules":false}],"react"],"plugins":["transform-object-rest-spread","transform-class-properties"]},"umd":{"presets":[["env",{"modules":false}],"react"],"plugins":["transform-object-rest-spread","transform-class-properties","external-helpers"]}}},"readmeFilename":"README.md","readme":"# React Table v6\n\n`react-table` is a **lightweight, fast and extendable datagrid** built for React\n\n## Important! This is not the most recent version of React Table and is no longer receiving long-term support.\n\nThis is a v6 of react-table, due to the incredibly massive differences from v7 this branch exists as a way to access its docs and source. I do not intend on offering any long-term support for it. If you intend to keep using v6, I recommend maintaining your own fork of the library and keeping it up to date for your version of React. Otherwise, look into using [the most recent version](https://github.com/tannerlinsley/react-table) of react-table!\n\n## Features\n\n- Lightweight at 11kb (and just 2kb more for styles)\n- Fully customizable (JSX, templates, state, styles, callbacks)\n- Client-side & Server-side pagination\n- Multi-sort\n- Filters\n- Pivoting & Aggregation\n- Minimal design & easily themeable\n- Fully controllable via optional props and callbacks\n- <a href=\"https://medium.com/@tannerlinsley/why-i-wrote-react-table-and-the-problems-it-has-solved-for-nozzle-others-445c4e93d4a8#.axza4ixba\" target=\"\\_parent\">\"Why I wrote React Table and the problems it has solved for Nozzle.io\"</a> by Tanner Linsley\n\n## CodeSandbox Examples\n\n- [100k-rows-aggregation](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/v6/examples/100k-rows-aggregation)\n- [cell-renderers](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/v6/examples/cell-renderers)\n- [controlled-table](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/v6/examples/controlled-table)\n- [custom-column-widths](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/v6/examples/custom-column-widths)\n- [custom-component-props](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/v6/examples/custom-component-props)\n- [custom-expander-position](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/v6/examples/custom-expander-position)\n- [custom-filtering](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/v6/examples/custom-filtering)\n- [custom-no-data-text](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/v6/examples/custom-no-data-text)\n- [custom-sorting](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/v6/examples/custom-sorting)\n- [default-sorting](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/v6/examples/default-sorting)\n- [editable-content](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/v6/examples/editable-content)\n- [fixed-header-vertical-scroll](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/v6/examples/fixed-header-vertical-scroll)\n- [footers](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/v6/examples/footers)\n- [functional-rendering](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/v6/examples/functional-rendering)\n- [multiple-pagination-bars](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/v6/examples/multiple-pagination-bars)\n- [pivoting-and-aggregation](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/v6/examples/pivoting-and-aggregation)\n- [pivoting-options](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/v6/examples/pivoting-options)\n- [pivoting-sub-components](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/v6/examples/pivoting-sub-components)\n- [server-side-data](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/v6/examples/server-side-data)\n- [simple-table](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/v6/examples/simple-table)\n- [sub-components](https://codesandbox.io/s/github/tannerlinsley/react-table/tree/v6/examples/sub-components)\n\n## Table of Contents\n\n- [Installation](#installation)\n- [Example](#example)\n- [Data](#data)\n- [Props](#props)\n- [Columns](#columns)\n- [Column Header Groups](#column-header-groups)\n- [Custom Cell and Header and Footer Rendering](#custom-cell-header-and-footer-rendering)\n- [Styles](#styles)\n- [Custom Props](#custom-props)\n- [Pivoting and Aggregation](#pivoting-and-aggregation)\n- [Sub Tables and Sub Components](#sub-tables-and-sub-components)\n- [Server-side Data](#server-side-data)\n- [Fully Controlled Component](#fully-controlled-component)\n- [Functional Rendering](#functional-rendering)\n- [Multi-Sort](#multi-sort)\n- [Filtering](#filtering)\n- [Component Overrides](#component-overrides)\n- [HOC Extensions](#hoc-extensions)\n- [Contributing](#contributing)\n- [Scripts](#scripts)\n- [Used By](#used-by)\n\n## Installation\n\nNote that this installation guide uses the `react-table-v6` version of the package; while you could access the earier versions of the package by `react-table` name, in order to provide a better migration workflow from v6 to the most recent version of the 6.x.x exists as `react-table-v6`.\n\n1.  Install React Table as a dependency\n\n```bash\n# Yarn\n$ yarn add react-table-v6\n\n# NPM\n$ npm install react-table-v6\n```\n\n## Usage\n\n2.  Import the `react-table-v6` module\n\n```javascript\n// ES6\nimport ReactTable from 'react-table-v6'\n// ES5\nvar ReactTable = require('react-table-v6').default\n```\n\n3.  Import styles by including `react-table.css`\n\n```javascript\n// JS (Webpack)\nimport 'react-table-v6/react-table.css'\n// Old-school\n<link rel=\"stylesheet\" href=\"node_modules/react-table-v6/react-table.css\">\n```\n\nSee the example below for further usage.\n\n##### CDN\n\n```html\n<!-- CSS -->\n<link\n  rel=\"stylesheet\"\n  href=\"https://unpkg.com/react-table-v6@latest/react-table.css\"\n/>\n\n<!-- JS -->\n<script src=\"https://unpkg.com/react-table-v6@latest/react-table.js\"></script>\n<script src=\"https://unpkg.com/react-table-v6@latest/react-table.min.js\"></script>\n\n<script>\n  var ReactTable = window.ReactTable.default\n</script>\n```\n\n## Example\n\n```javascript\nimport ReactTable from 'react-table-v6'\nimport 'react-table-v6/react-table.css'\n\nrender() {\n  const data = [{\n    name: 'Tanner Linsley',\n    age: 26,\n    friend: {\n      name: 'Jason Maurer',\n      age: 23,\n    }\n  },{\n    ...\n  }]\n\n  const columns = [{\n    Header: 'Name',\n    accessor: 'name' // String-based value accessors!\n  }, {\n    Header: 'Age',\n    accessor: 'age',\n    Cell: props => <span className='number'>{props.value}</span> // Custom cell components!\n  }, {\n    id: 'friendName', // Required because our accessor is not a string\n    Header: 'Friend Name',\n    accessor: d => d.friend.name // Custom value accessors!\n  }, {\n    Header: props => <span>Friend Age</span>, // Custom header components!\n    accessor: 'friend.age'\n  }]\n\n  return <ReactTable\n    data={data}\n    columns={columns}\n  />\n}\n```\n\n## Data\n\nSimply pass the `data` prop anything that resembles an array or object. Client-side sorting and pagination are built in, and your table will update gracefully as you change any props. [Server-side data](#server-side-data) is also supported!\n\n```javascript\n<ReactTable\n  data={[...]}\n/>\n```\n\n**Pro Tip: Using the `resolveData` prop** - Any time the `data` prop value changes (using a `===` comparison), the table will update, but sometimes you need to materialize, alter, or shape this data before it enters the table. To do this, you can use the `resolveData` prop! It receives the `data` prop as the only parameter and returns the resolved data.\n\n```javascript\n<ReactTable\n  data={myData} // The data prop should be immutable and only change when you want to update the table\n  resolveData={data => data.map(row => row)} // But you can break immutability here because `resolveData` runs when the `data` prop changes!\n/>\n```\n\n## Props\n\nThese are all of the available props (and their default values) for the main `<ReactTable />` component.\n\n```javascript\n{\n  // General\n  data: [],\n  resolveData: data => resolvedData,\n  loading: false,\n  showPagination: true,\n  showPaginationTop: false,\n  showPaginationBottom: true\n  showPageSizeOptions: true,\n  pageSizeOptions: [5, 10, 20, 25, 50, 100],\n  defaultPageSize: 20,\n  minRows: undefined, // controls the minimum number of rows to display - default will be `pageSize`\n  // NOTE: if you set minRows to 0 then you get rid of empty padding rows BUT your table formatting will also look strange when there are ZERO rows in the table\n  showPageJump: true,\n  collapseOnSortingChange: true,\n  collapseOnPageChange: true,\n  collapseOnDataChange: true,\n  freezeWhenExpanded: false,\n  sortable: true,\n  multiSort: true,\n  resizable: true,\n  filterable: false,\n  defaultSortDesc: false,\n  defaultSorted: [],\n  defaultFiltered: [],\n  defaultResized: [],\n  defaultExpanded: {},\n  defaultFilterMethod: (filter, row, column) => {\n    const id = filter.pivotId || filter.id\n    return row[id] !== undefined ? String(row[id]).startsWith(filter.value) : true\n  },\n  defaultSortMethod: (a, b, desc) => {\n    // force null and undefined to the bottom\n    a = a === null || a === undefined ? '' : a\n    b = b === null || b === undefined ? '' : b\n    // force any string values to lowercase\n    a = typeof a === 'string' ? a.toLowerCase() : a\n    b = typeof b === 'string' ? b.toLowerCase() : b\n    // Return either 1 or -1 to indicate a sort priority\n    if (a > b) {\n      return 1\n    }\n    if (a < b) {\n      return -1\n    }\n    // returning 0, undefined or any falsey value will use subsequent sorts or\n    // the index as a tiebreaker\n    return 0\n  },\n  PadRowComponent: () => <span>&nbsp;</span>, // the content rendered inside of a padding row\n\n  // Controlled State Overrides (see Fully Controlled Component section)\n  page: undefined,\n  pageSize: undefined,\n  sorted: [],\n  filtered: [],\n  resized: [],\n  expanded: {},\n\n  // Controlled State Callbacks\n  onPageChange: undefined,\n  onPageSizeChange: undefined,\n  onSortedChange: undefined,\n  onFilteredChange: undefined,\n  onResizedChange: undefined,\n  onExpandedChange: undefined,\n\n  // Pivoting\n  pivotBy: undefined,\n\n  // Key Constants\n  pivotValKey: '_pivotVal',\n  pivotIDKey: '_pivotID',\n  subRowsKey: '_subRows',\n  aggregatedKey: '_aggregated',\n  nestingLevelKey: '_nestingLevel',\n  originalKey: '_original',\n  indexKey: '_index',\n  groupedByPivotKey: '_groupedByPivot',\n\n  // Server-side callbacks\n  onFetchData: () => null,\n\n  // Classes\n  className: '',\n  style: {},\n\n  // Component decorators\n  getProps: () => ({}),\n  getTableProps: () => ({}),\n  getTheadGroupProps: () => ({}),\n  getTheadGroupTrProps: () => ({}),\n  getTheadGroupThProps: () => ({}),\n  getTheadProps: () => ({}),\n  getTheadTrProps: () => ({}),\n  getTheadThProps: () => ({}),\n  getTheadFilterProps: () => ({}),\n  getTheadFilterTrProps: () => ({}),\n  getTheadFilterThProps: () => ({}),\n  getTbodyProps: () => ({}),\n  getTrGroupProps: () => ({}),\n  getTrProps: () => ({}),\n  getTdProps: () => ({}),\n  getTfootProps: () => ({}),\n  getTfootTrProps: () => ({}),\n  getTfootTdProps: () => ({}),\n  getPaginationProps: () => ({}),\n  getLoadingProps: () => ({}),\n  getNoDataProps: () => ({}),\n  getResizerProps: () => ({}),\n\n  // Custom pagination rendering\n  renderPageJump: ({ onChange, value, onBlur, onKeyPress, inputType, pageJumpText }) => component,\n  renderCurrentPage: page => component,\n  renderTotalPagesCount: pages => component,\n  renderPageSizeOptions: ({\n      pageSize,\n      pageSizeOptions,\n      rowsSelectorText,\n      onPageSizeChange,\n      rowsText,\n    }) => component\n\n  // Global Column Defaults\n  // To override only some values, import { ReactTableDefaults } from 'react-table-v6'\n  // and construct your overrides (e.g. {...ReactTableDefaults.column, className: 'react-table-cell'})\n  column: {\n    // Renderers\n    Cell: undefined,\n    Header: undefined,\n    Footer: undefined,\n    Aggregated: undefined,\n    Pivot: undefined,\n    PivotValue: undefined,\n    Expander: undefined,\n    Filter: undefined,\n    // Standard options\n    sortable: undefined, // use table default\n    resizable: undefined, // use table default\n    filterable: undefined, // use table default\n    show: true,\n    minWidth: 100,\n    // Cells only\n    className: '',\n    style: {},\n    getProps: () => ({}),\n    // Headers only\n    headerClassName: '',\n    headerStyle: {},\n    getHeaderProps: () => ({})\n    // Footers only\n    footerClassName: '',\n    footerStyle: {},\n    getFooterProps: () => ({}),\n    filterAll: false,\n    filterMethod: undefined,\n    sortMethod: undefined,\n    defaultSortDesc: undefined,\n  },\n\n  // Global Expander Column Defaults\n  // To override only some values, import { ReactTableDefaults } from 'react-table-v6\n  // and construct your overrides (e.g. {...ReactTableDefaults.expanderDefaults, sortable: true})\n  expanderDefaults: {\n    sortable: false,\n    resizable: false,\n    filterable: false,\n    width: 35\n  },\n\n  // Global Pivot Column Defaults\n  pivotDefaults: {},\n\n  // Text\n  previousText: 'Previous',\n  nextText: 'Next',\n  loadingText: 'Loading...',\n  noDataText: 'No rows found',\n  pageText: 'Page',\n  ofText: 'of',\n  rowsText: 'rows',\n\n  // Accessibility Labels\n  pageJumpText: 'jump to page',\n  rowsSelectorText: 'rows per page',\n}\n```\n\nYou can easily override the core defaults like so:\n\n```javascript\nimport { ReactTableDefaults } from 'react-table-v6'\n\nObject.assign(ReactTableDefaults, {\n  defaultPageSize: 10,\n  minRows: 3\n  // etc...\n})\n```\n\nOr just define them as props\n\n```javascript\n<ReactTable\n  defaultPageSize={10}\n  minRows={3}\n  // etc...\n/>\n```\n\n## Columns\n\n`<ReactTable />` requires a `columns` prop, which is an array of objects containing the following properties\n\n```javascript\n[{\n  // Renderers - For more information, see \"Renderers\" section below\n  Cell: JSX | String | Function // Used to render a standard cell, defaults to the accessed value\n  Header: JSX | String | Function // Used to render the header of a column or column group\n  Footer: JSX | String | Function // Used to render the footer of a column\n  Filter: JSX | cellInfo => ( // Used to render the filter UI of a filter-enabled column\n    <select onChange={event => onFiltersChange(event.target.value)} value={filter ? filter.value : ''}></select>\n    // The value passed to onFiltersChange will be the value passed to filter.value of the filterMethod\n  )\n  Aggregated: JSX | String | Function // Used to render aggregated cells. Defaults to a comma separated list of values.\n  Pivot: JSX | String | Function | cellInfo => ( // Used to render a pivoted cell\n    <span>\n      <Expander /><PivotValue /> // By default, will utilize the the PivotValue and Expander components at run time\n    </span>\n  ),\n  PivotValue: JSX | String | Function // Used to render the value inside of a Pivot cell\n  Expander: JSX | String | Function // Used to render the expander in both Pivot and Expander cells\n\n  // General\n  accessor: 'propertyName', // or Accessor eg. (row) => row.propertyName (see \"Accessors\" section for more details)\n  id: 'myProperty', // Conditional - A unique ID is required if the accessor is not a string or if you would like to override the column name used in server-side calls\n  sortable: boolean, // Overrides the table option\n  resizable: boolean, // Overrides the table option\n  filterable: boolean, // Overrides the table option\n  show: true, // can be used to hide a column\n  width: undefined, // A hardcoded width for the column. This overrides both min and max width options\n  minWidth: 100, // A minimum width for this column. If there is extra room, column will flex to fill available space (up to the max-width, if set)\n  maxWidth: undefined, // A maximum width for this column.\n\n  // Special\n  pivot: false,\n  // Turns this column into a special column for specifying pivot position in your column definitions.\n  // The `pivotDefaults` options will be applied on top of this column's options.\n  // It will also let you specify rendering of the header (and header group if this special column is placed in the `columns` option of another column)\n  expander: false,\n  // Turns this column into a special column for specifying expander position and options in your column definitions.\n  // The `expanderDefaults` options will be applied on top of this column's options.\n  // It will also let you specify rendering of the header (and header group if this special column is placed in the `columns` option of another column) and\n  // the rendering of the expander itself via the `Expander` property\n\n  // Cell Options\n  className: '', // Set the classname of the `td` element of the column\n  style: {}, // Set the style of the `td` element of the column\n  // Header & HeaderGroup Options\n  headerClassName: '', // Set the classname of the `th` element of the column\n  headerStyle: {}, // Set the style of the `th` element of the column\n  getHeaderProps: (state, rowInfo, column, instance) => ({}), // a function that returns props to decorate the `th` element of the column\n\n  // Header Groups only\n  columns: [...], // See Header Groups section below\n\n  // Footer\n  footerClassName: '', // Set the classname of the `td` element of the column's footer\n  footerStyle: {}, // Set the style of the `td` element of the column's footer\n  getFooterProps: (state, rowInfo, column, instance) => ({}), // A function that returns props to decorate the `td` element of the column's footer\n\n  // Filtering\n  filterMethod: (filter, row || rows, column) => {return true}, // A function returning a boolean that specifies the filtering logic for the column\n    // 'filter' == an object specifying which filter is being applied. Format: {id: [the filter column's id], value: [the value the user typed in the filter field], pivotId: [if filtering on a pivot column, the pivotId will be set to the pivot column's id and the `id` field will be set to the top level pivoting column]}\n    // 'row' || 'rows' == the row (or rows, if filterAll is set to true) of data supplied to the table\n    // 'column' == the column that the filter is on\n  filterAll: false\n}]\n```\n\n## Renderers\n\nReact Table supports very flexible renderers for just about everything:\n\n- `Cell` - Renders a standard cell\n- `Header` - Renders a column header or column group header\n- `Footer` - Renders a column footer\n- `Filter` - Renders a column's filter UI\n- `Aggregated` - Renders an aggregated cell\n- `Pivot` - Renders a pivoted cell (by default, will utilize `Expander` and `PivotValue` renderers)\n- `PivotValue` - Renders the value inside a `Pivot` renderer\n- `Expander` - Renders the Expander used in both the default `Pivot` renderer and any expander-designated column\n\nAny of these renderers can be one of the following:\n\n- A React Class\n- JSX or any rendered react component\n- Stateless functional component\n- Function that returns any primitive\n\nAll of these formats receive the following props:\n\n```javascript\n{\n  // Row-level props\n  row: Object, // the materialized row of data\n  original: , // the original row of data\n  index: '', // the index of the row in the original array\n  viewIndex: '', // the index of the row relative to the current view\n  level: '', // the nesting level of this row\n  nestingPath: '', // the nesting path of this row\n  aggregated: '', // true if this row's values were aggregated\n  groupedByPivot: '', // true if this row was produced by a pivot\n  subRows: '', // any sub rows defined by the `subRowKey` prop\n\n  // Cells-level props\n  isExpanded: '', // true if this row is expanded\n  value: '', // the materialized value of this cell\n  resized: '', // the resize information for this cell's column\n  show: '', // true if the column is visible\n  width: '', // the resolved width of this cell\n  maxWidth: '', // the resolved maxWidth of this cell\n  tdProps: '', // the resolved tdProps from `getTdProps` for this cell\n  columnProps: '', // the resolved column props from 'getProps' for this cell's column\n  classes: '', // the resolved array of classes for this cell\n  styles: '' // the resolved styles for this cell\n}\n```\n\n## Accessors\n\nAccessors are functions that return the value to populate the row's value for the column.\nThis lets the render function not have to worry about accessing the correct data, the value is automatically populated in it's props.\n\nIf a `string` or `array` is passed the default accessor is used.\nThe default accessor will parse the input into an array and recursively flatten it.\nAny values that contain a dot (`.`) will be split.\nAny values that contain bracket (`[]`) will be split.\nThis array is then used as the path to the value to return.\n\n(\"\\$\" is the placeholder value that would be returned by the default accessor)\n\n| value        | path            | data                    |\n| ------------ | --------------- | ----------------------- |\n| \"a\"          | [\"a\"]           | {\"a\": \\$}               |\n| \"a.b\"        | [\"a\", \"b\"]      | {\"a\": {\"b\": \\$}}        |\n| \"a[0]\"       | [\"a\", \"0\"]      | {\"a\": [$]}              |\n| [\"a.b\", \"c\"] | [\"a\", \"b\", \"c\"] | {\"a\": {\"b\": {\"c\": \\$}}} |\n\n_NOTE_\nIf your data has a field/key with a dot (`.`) you will need to supply a custom accessor.\n\n## Column Header Groups\n\nTo group columns with another header column, just nest your columns in a header column. Header columns utilize the same header properties as regular columns.\n\n```javascript\nconst columns = [{\n  Header: 'Favorites',\n  headerClassName: 'my-favorites-column-header-group'\n  columns: [{\n    Header: 'Color',\n    accessor: 'favorites.color'\n  }, {\n    Header: 'Food',\n    accessor: 'favorites.food'\n  }, {\n    Header: 'Actor',\n    accessor: 'favorites.actor'\n  }]\n}]\n```\n\n## Custom Cell, Header and Footer Rendering\n\nYou can use any react component or JSX to display content in column headers, cells and footers. Any component you use will be passed the following props (if available):\n\n- `row` - Original row from your data\n- `original` - The post-accessed values from the original row\n- `index` - The index of the row\n- `viewIndex` - the index of the row relative to the current page\n- `level` - The nesting depth (zero-indexed)\n- `nestingPath` - The nesting path of the row\n- `aggregated` - A boolean stating if the row is an aggregation row\n- `subRows` - An array of any expandable sub-rows contained in this row\n\n```javascript\n// This column uses a stateless component to produce a different colored bar depending on the value\n// You can also use stateful components or any other function that returns JSX\nconst columns = [\n  {\n    Header: () => (\n      <span>\n        <i className=\"fa-tasks\" /> Progress\n      </span>\n    ),\n    accessor: 'progress',\n    Cell: row => (\n      <div\n        style={{\n          width: '100%',\n          height: '100%',\n          backgroundColor: '#dadada',\n          borderRadius: '2px'\n        }}\n      >\n        <div\n          style={{\n            width: `${row.value}%`,\n            height: '100%',\n            backgroundColor:\n              row.value > 66\n                ? '#85cc00'\n                : row.value > 33\n                ? '#ffbf00'\n                : '#ff2e00',\n            borderRadius: '2px',\n            transition: 'all .2s ease-out'\n          }}\n        />\n      </div>\n    )\n  }\n]\n```\n\n## Styles\n\n- React-table ships with a minimal and clean stylesheet to get you on your feet quickly.\n- The stylesheet is located at `react-table-v6/react-table.css`.\n- There are countless ways to import a stylesheet. If you have questions on how to do so, consult the documentation of your build system.\n\n#### Classes\n\n- Adding a `-striped` className to ReactTable will slightly color odd numbered rows for legibility\n- Adding a `-highlight` className to ReactTable will highlight any row as you hover over it\n\n#### CSS\n\nWe think the default styles looks great! But, if you prefer a more custom look, all of the included styles are easily overridable. Every single component contains a unique class that makes it super easy to customize. Just go for it!\n\n#### JS Styles\n\nEvery single react-table element and `get[ComponentName]Props` callback supports `classname` and `style` props.\n\n## Custom Props\n\n#### Built-in Components\n\nEvery single built-in component's props can be dynamically extended using any one of these prop-callbacks:\n\n```javascript\n<ReactTable\n  getProps={fn}\n  getTableProps={fn}\n  getTheadGroupProps={fn}\n  getTheadGroupTrProps={fn}\n  getTheadGroupThProps={fn}\n  getTheadProps={fn}\n  getTheadTrProps={fn}\n  getTheadThProps={fn}\n  getTheadFilterProps={fn}\n  getTheadFilterTrProps={fn}\n  getTheadFilterThProps={fn}\n  getTbodyProps={fn}\n  getTrGroupProps={fn}\n  getTrProps={fn}\n  getTdProps={fn}\n  getPaginationProps={fn}\n  getLoadingProps={fn}\n  getNoDataProps={fn}\n  getResizerProps={fn}\n/>\n```\n\nIf used, **a callback prop must return a valid object**, even if it's an empty one.\n\nThese callbacks are executed with each render of the element with four parameters:\n\n1.  Table State\n2.  RowInfo (undefined if not applicable)\n3.  Column (undefined if not applicable)\n4.  React Table Instance\n\nThis makes it extremely easy to add, say... a row click callback!\n\n```javascript\n// When any Td element is clicked, we'll log out some information\n<ReactTable\n  getTdProps={(state, rowInfo, column, instance) => {\n    return {\n      onClick: (e, handleOriginal) => {\n        console.log('A Td Element was clicked!')\n        console.log('it produced this event:', e)\n        console.log('It was in this column:', column)\n        console.log('It was in this row:', rowInfo)\n        console.log('It was in this table instance:', instance)\n\n        // IMPORTANT! React-Table uses onClick internally to trigger\n        // events like expanding SubComponents and pivots.\n        // By default a custom 'onClick' handler will override this functionality.\n        // If you want to fire the original onClick handler, call the\n        // 'handleOriginal' function.\n        if (handleOriginal) {\n          handleOriginal()\n        }\n      }\n    }\n  }}\n/>\n```\n\nYou can use these callbacks for dynamic styling as well!\n\n```javascript\n// Any Tr element will be green if its (row.age > 20)\n<ReactTable\n  getTrProps={(state, rowInfo, column) => {\n    return {\n      style: {\n        background: rowInfo.row.age > 20 ? 'green' : 'red'\n      }\n    }\n  }}\n/>\n```\n\n#### Column Components\n\nJust as core components can have dynamic props, columns and column headers can too!\n\nYou can utilize either of these prop callbacks on columns:\n\n```javascript\nconst columns = [{\n  getHeaderProps: () => (...),\n  getProps: () => (...)\n}]\n```\n\nIn a similar fashion these can be used to dynamically style just about anything!\n\n```javascript\n// This columns cells will be red if (row.name === Santa Clause)\nconst columns = [\n  {\n    getProps: (state, rowInfo, column) => {\n      return {\n        style: {\n          background: rowInfo.row.name === 'Santa Clause' ? 'red' : null\n        }\n      }\n    }\n  }\n]\n```\n\n## Pivoting and Aggregation\n\nPivoting the table will group records together based on their accessed values and allow the rows in that group to be expanded underneath it.\nTo pivot, pass an array of `columnID`'s to `pivotBy`. Remember, a column's `id` is either the one that you assign it (when using a custom accessors) or its `accessor` string.\n\n```javascript\n<ReactTable\n  ...\n  pivotBy={['lastName', 'age']}\n/>\n```\n\nNaturally when grouping rows together, you may want to aggregate the rows inside it into the grouped column. No aggregation is done by default, however, it is very simple to aggregate any pivoted columns:\n\n```javascript\n// In this example, we use lodash to sum and average the values, but you can use whatever you want to aggregate.\nconst columns = [\n  {\n    Header: 'Age',\n    accessor: 'age',\n    aggregate: (values, rows) => _.round(_.mean(values)),\n    Aggregated: row => {\n      // You can even render the cell differently if it's an aggregated cell\n      return <span>row.value (avg)</span>\n    }\n  },\n  {\n    Header: 'Visits',\n    accessor: 'visits',\n    aggregate: (values, rows) => _.sum(values)\n  }\n]\n```\n\nPivoted columns can be sorted just like regular columns including holding down the `<shift>` button to multi-sort.\n\n## Sub Tables and Sub Components\n\nBy adding a `SubComponent` props, you can easily add an expansion level to all root-level rows:\n\n```javascript\n<ReactTable\n  data={data}\n  columns={columns}\n  defaultPageSize={10}\n  SubComponent={row => {\n    return (\n      <div>\n        You can put any component you want here, even another React Table! You\n        even have access to the row-level data if you need! Spark-charts,\n        drill-throughs, infographics... the possibilities are endless!\n      </div>\n    )\n  }}\n/>\n```\n\n## Server-side Data\n\nIf you want to handle pagination, sorting, and filtering on the server, `react-table` makes it easy on you.\n\n1.  Feed React Table `data` from somewhere dynamic. eg. `state`, a redux store, etc...\n1.  Add `manual` as a prop. This informs React Table that you'll be handling sorting and pagination server-side\n1.  Subscribe to the `onFetchData` prop. This function is called at `componentDidMount` and any time sorting, pagination or filterting is changed in the table\n1.  In the `onFetchData` callback, request your data using the provided information in the params of the function (current state and instance)\n1.  Update your data with the rows to be displayed\n1.  Optionally set how many pages there are total\n\n```javascript\n<ReactTable\n  ...\n  data={this.state.data} // should default to []\n  pages={this.state.pages} // should default to -1 (which means we don't know how many pages we have)\n  loading={this.state.loading}\n  manual // informs React Table that you'll be handling sorting and pagination server-side\n  onFetchData={(state, instance) => {\n    // show the loading overlay\n    this.setState({loading: true})\n    // fetch your data\n    Axios.post('mysite.com/data', {\n      page: state.page,\n      pageSize: state.pageSize,\n      sorted: state.sorted,\n      filtered: state.filtered\n    })\n      .then((res) => {\n        // Update react-table\n        this.setState({\n          data: res.data.rows,\n          pages: res.data.pages,\n          loading: false\n        })\n      })\n  }}\n/>\n```\n\nFor a detailed example, take a peek at our <a href=\"https://react-table.js.org/#/story/server-side-data\" target=\"\\_parent\">async table mockup</a>\n\n## Fully Controlled Component\n\nReact Table by default works fantastically out of the box, but you can achieve even more control and customization if you choose to maintain the state yourself. It is very easy to do, even if you only want to manage _parts_ of the state.\n\nHere are the props and their corresponding callbacks that control the state of the a table:\n\n```javascript\n<ReactTable\n  // Props\n  page={0} // the index of the page you wish to display\n  pageSize={20} // the number of rows per page to be displayed\n  sorted={[{ // the sorting model for the table\n      id: 'lastName',\n      desc: true\n    }, {\n      id: 'firstName',\n      desc: true\n  }]}\n  expanded={{ // The nested row indexes on the current page that should appear expanded\n    1: true,\n    4: true,\n    5: {\n      2: true,\n      3: true\n    }\n  }}\n  filtered={[{ // the current filters model\n    id: 'lastName',\n    value: 'linsley'\n  }]}\n  resized={[{ // the current resized column model\n    \"id\": \"lastName\",\n    \"value\": 446.25\n  }]}\n\n  // Callbacks\n  onPageChange={(pageIndex) => {...}} // Called when the page index is changed by the user\n  onPageSizeChange={(pageSize, pageIndex) => {...}} // Called when the pageSize is changed by the user. The resolve page is also sent to maintain approximate position in the data\n  onSortedChange={(newSorted, column, shiftKey) => {...}} // Called when a sortable column header is clicked with the column itself and if the shiftkey was held. If the column is a pivoted column, `column` will be an array of columns\n  onExpandedChange={(newExpanded, index, event) => {...}} // Called when an expander is clicked. Use this to manage `expanded`\n  onFilteredChange={(filtered, column) => {...}} // Called when a user enters a value into a filter input field or the value passed to the onFiltersChange handler by the Filter option.\n  onResizedChange={(newResized, event) => {...}} // Called when a user clicks on a resizing component (the right edge of a column header)\n/>\n```\n\n## Functional Rendering\n\nPossibly one of the coolest features of React-Table is its ability to expose internal components and state for custom render logic. The easiest way to do this is to pass a function as the child of `<ReactTable />`.\n\nThe function you pass will be called with the following items:\n\n- Fully-resolved state of the table\n- A function that returns the standard table component\n- The instance of the component\n\nYou can then return any JSX or react you want! This turns out to be perfect for:\n\n- Accessing the internal state of the table without a `ref`\n- Decorating the table or extending it with your own UI\n- Building your own custom display logic\n\nAccessing internal state and wrapping with more UI:\n\n```javascript\n<ReactTable data={data} columns={columns}>\n  {(state, makeTable, instance) => {\n    return (\n      <div\n        style={{\n          background: '#ffcf00',\n          borderRadius: '5px',\n          overflow: 'hidden',\n          padding: '5px'\n        }}\n      >\n        <pre>\n          <code>\n            state.allVisibleColumns ==={' '}\n            {JSON.stringify(state.allVisibleColumns, null, 4)}\n          </code>\n        </pre>\n        {makeTable()}\n      </div>\n    )\n  }}\n</ReactTable>\n```\n\nThe possibilities are endless!\n\n## Sorting\n\nSorting comes built in with React-Table.\n\n- Click a column header to sort by its accessor.\n- Click it again to reverse the sort.\n- Set `defaultSortDesc` property to `true` to make the first sort direction default to descending.\n- Override a specific column's default sort direction by using the same `defaultSortDesc` property on a column, set to `true`\n\n## Multi-Sort\n\nWhen clicking on a column header, hold shift to multi-sort! You can toggle `ascending` `descending` and `none` for multi-sort columns. Clicking on a header without holding shift will clear the multi-sort and replace it with the single sort of that column. It's quite handy!\n\nYou can set the `multiSort` prop to `false` to disable this feature (which may be useful for server-side sorting when you are not\ngoing to sort multiple columns).\n\n## Custom Sorting Algorithm\n\nTo override the default sorting algorithm for the whole table use the `defaultSortMethod` prop.\n\nTo override the sorting algorithm for a single column, use the `sortMethod` column property.\n\nSupply a function that implements the native javascript [`Array.sort`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort) interface. This is React Table's default sorting algorithm:\n\n- `a` the first value to compare\n- `b` the second value to compare\n- `desc` true if sort is descending, false if ascending\n\n```javascript\ndefaultSortMethod = (a, b, desc) => {\n  // force null and undefined to the bottom\n  a = a === null || a === undefined ? -Infinity : a\n  b = b === null || b === undefined ? -Infinity : b\n  // force any string values to lowercase\n  a = typeof a === 'string' ? a.toLowerCase() : a\n  b = typeof b === 'string' ? b.toLowerCase() : b\n  // Return either 1 or -1 to indicate a sort priority\n  if (a > b) {\n    return 1\n  }\n  if (a < b) {\n    return -1\n  }\n  // returning 0 or undefined will use any subsequent column sorting methods or the row index as a tiebreaker\n  return 0\n}\n```\n\n## Filtering\n\nFiltering can be enabled by setting the `filterable` option on the table.\n\nIf you don't want particular column to be filtered you can set the `filterable={false}` option on the column.\n\nBy default the table tries to filter by checking if the row's value starts with the filter text. The default method for filtering the table can be set with the table's `defaultFilterMethod` option.\n\nIf you want to override a particular column's filtering method, you can set the `filterMethod` option on a column.\n\nBy default, `filterMethod` is passed a single row of data at a time, and you are responsible for returning `true` or `false`, indicating whether it should be shown.\n\nAlternatively, you can set `filterAll` to `true`, and `filterMethod` will be passed the entire array of rows to be filtered, and you will then be responsible for returning the new filtered array. This is extremely handy when you need to utilize a utility like fuzzy matching that requires the entire array of items.\n\nTo completely override the filter that is shown, you can set the `Filter` column option. Using this option you can specify the JSX that is shown. The option is passed an `onChange` method which must be called with the the value that you want to pass to the `filterMethod` option whenever the filter has changed.\n\nSee <a href=\"http://react-table.js.org/#/story/custom-filtering\" target=\"\\_parent\">Custom Filtering</a> demo for examples.\n\n## Component Overrides\n\nThough we confidently stand by the markup and architecture behind it, `react-table` does offer the ability to change the core componentry it uses to render everything. You can extend or override these internal components by passing a react component to it's corresponding prop on either the global props or on a one-off basis like so:\n\n```javascript\n// Change the global default\nimport { ReactTableDefaults } from 'react-table-v6'\nObject.assign(ReactTableDefaults, {\n  TableComponent: component,\n  TheadComponent: component,\n  TbodyComponent: component,\n  TrGroupComponent: component,\n  TrComponent: component,\n  ThComponent: component,\n  TdComponent: component,\n  TfootComponent: component,\n  ExpanderComponent: component,\n  AggregatedComponent: component,\n  PivotValueComponent: component,\n  PivotComponent: component,\n  FilterComponent: component,\n  PaginationComponent: component,\n  PreviousComponent: undefined,\n  NextComponent: undefined,\n  LoadingComponent: component,\n  NoDataComponent: component,\n  ResizerComponent: component\n})\n\n// Or change per instance\n<ReactTable\n  TableComponent={Component},\n  TheadComponent={Component},\n  // etc...\n  />\n```\n\nIf you choose to change the core components React-Table uses to render, you must make sure your replacement components consume and utilize all of the supplied and inherited props that are needed for that component to function properly. We would suggest investigating <a href=\"https://github.com/tannerlinsley/react-table/blob/v6/src/index.js\" target=\"\\_parent\">the source</a> for the component you wish to replace.\n\n# HOC Extensions\n\nThis section is about expanding ReactTable using Higher Order Components/Functions.\n\n## Covered in this section\n\n- A Brief explanation of HOCs and why they are a good approach for ReactTable enhancements\n- Documentation of the currently available HOCs\n- TreeTable\n- SelectTable\n- Documentation of the standard for writing HOCs with ReactTable\n\n## What are HOCs and why use them with ReactTable\n\nHOCs (or Higher Order Components/Functions) are either a React Component (or a function that returns a React Component)\nthat are used to enhance the functionality of an existing component. How much you can enhance depends on the props that\nthe component exposes.\n\nFortunately, ReactTable exposes a LOT of functionality as props to the component. In some cases there are too many\nprops to keep track of and that is where HOCs come in.\n\nYou can write a HOC that just focusses on the additional functionality you want to enhance and keep those enhancements to\nreuse over and over again when you need them. You don't have to edit the ReactTable source code, just wrap ReactTable in one or\nmore HOCs (more on some issues related to chaining HOCs later) that provide the additional functionality you want to expose.\n\nThe most obvious HOC is one that can add `checkbox` or select functionality. The HOC included provides `select` functionality\nthat allows the developer to specify if they want a `checkbox` or `radio` style of select column. The implementation of the\nselection is recorded (e.g. in component state, Redux, etc.) and how to manage multiple selections. The HOC really only handles\nthe rendering pieces.\n\nBut there is more documentation on the `select` HOC below.\n\n## Currently Available HOCs\n\nAny of the below HOCs can be imported from react-table like so:\n\n```javascript\nimport ReactTable from \"react-table-v6\";\nimport treeTableHOC from \"react-table-v6/lib/hoc/treeTable\";\n\nconst TreeTable = treeTableHOC(ReactTable);\n```\n\nSwap `treeTable` and `TreeTable` with any of the other HOC names as necessary.\n\n### TreeTable\n\nTreeTable takes over the rendering of the generated pivot rows of ReactTable so that they appear more like an expandable Tree.\n\nIt accomplishes this by rendering a 100% wide div and then only rendering the cell that controls the pivot at that level.\n\nUsing it is as simple as doing the following:\n\n```javascript\nconst TreeTable = treeTableHOC(ReactTable);\n```\n\nAfter you have done the above, you can then use `TreeTable` just as you would `ReactTable` but it will render pivots using\nthe Tree style described above.\n\n### SelectTable\n\nSelectTable is a little trickier. The HOCs attempt to avoid adding additional state and, as there is no internal ID for a row that\ncan be relied on to be static (ReactTable just reuses indexes when rendering) the developer has to maintain the state outside of even\nthe wrapped component. So it is largely based on callbacks.\n\nYou include the HOC in the same manner as you would for the treeTableHOC but then need to provide the following overrides:\n\n- isSelected - returns `true` if the key passed is selected otherwise it should return `false`\n- selectAll - a property that indicates if the selectAll is set (`true|false`)\n- toggleAll - called when the user clicks the `selectAll` checkbox/radio\n- toggleSelection - called when the use clicks a specific checkbox/radio in a row\n- selectType - either `checkbox|radio` to indicate what type of selection is required\n\n**Note:** The select field defaults to the accessor `_id` property in order to render the select field for that particular row. If your objects have different\nunique ID fields, make sure to tell React Table that by passing it the `keyField` property.\n\n```javascript\n<ReactTable keyField=\"id\" />\n```\n\nIn the case of `radio` there is no `selectAll` displayed but the developer is responsible for only making one selection in\nthe controlling component's state. You could select multiple but it wouldn't make sense and you should use `checkbox` instead.\n\nYou also have to decide what `selectAll` means. Given ReactTable is a paged solution there are other records off-page. When someone\nselects the `selectAll` checkbox, should it mark every possible record, only what might be visible to due a Filter or only those items\non the current page?\n\nThe example opts for the middle approach so it gets a `ref` to the ReactTable instance and pulls the `sortedData` out of the resolved\nstate (then walks through those records and pulls their ID into the `selection` state of the controlling component).\n\nYou can also replace the input component that is used to render the select box and select all box:\n\n- SelectAllInputComponent - the checkbox in the top left corner\n- SelectInputComponent - the checkbox used on a row\n\n### SelectTreeTable\n\nSelectTreeTable is a combination of TreeTable and SelectTable.\n\nTo function correctly the chain has to be in the correct order as follows (see the comments in the guid on HOCs below).\n\n```javascript\nconst SelectTreeTable = selectTableHOC(treeTableHOC(ReactTable));\n```\n\nIn this particular instance it is (probably) because the functions need access to the state on the wrapped component to manage\nthe selected items. Although that is not totally clearly the issue.\n\n### FoldableTable\n\nFoldableTable is a HOC that make the columns are foldable. The reason I developed this HOC because when working on the real project related to the financial which display so many columns for validation and comparison.\n\nSo foldable columns allow users to temporary hidden the unwanted to columns so that they can focus on the data that they want to see.\n\n#### How it works\n\n```javascript\nconst FoldableTable = FoldableTableHOC(ReactTable);\n```\n\nIt will scan all the columns which `foldable` is `true` and apply the foldable column feature. This feature will work for both normal columns and header columns as samples below.\n\n- With Header Columns\n\n```javascript\nrender(){\n  return <FoldableTable\n           columns={[{\n              Header: \"Name\",\n              foldable: true,\n              columns: [{\n                  Header: \"First Name\",\n                  accessor: \"first_name\"\n                },{\n                  Header: \"Last Name\",\n                  accessor: \"last_name\"\n                }]\n              },{\n              Header: \"Info\",\n              foldable: true,\n              columns: [{\n                  Header: \"Email\",\n                  accessor: \"email\"\n                },{\n                  Header: \"Gender\",\n                  accessor: \"gender\"\n               }]\n            }]\n        }/>\n}\n```\n\n![With Header Columns](https://raw.githubusercontent.com/baoduy/Images/master/Wordpress/JavaScripts/react-table%20foldableHOC/FoldableTable%20With%20Header.gif)\n\n- With Nornal Columns\n\n```javascript\nrender() {\n    return <FoldableTable\n        columns={[{\n                Header: \"First Name\",\n                accessor: \"first_name\"\n            },\n            {\n                Header: \"Last Name\",\n                accessor: \"last_name\",\n                foldable: true,\n            },\n            {\n                Header: \"Email\",\n                accessor: \"email\",\n                foldable: true,\n            },\n            {\n                Header: \"Gender\",\n                accessor: \"gender\",\n                foldable: true,\n            }]}></FoldableTable>\n}\n```\n\n![With Normal Columns](https://raw.githubusercontent.com/baoduy/Images/master/Wordpress/JavaScripts/react-table%20foldableHOC/FoldableTable%20Without%20Header.gif)\n\n- The `FoldableTable` also fully compatible with existing HOCs, below is with selectTableHOC.\n\n![With Normal Columns](https://raw.githubusercontent.com/baoduy/Images/master/Wordpress/JavaScripts/react-table%20foldableHOC/FoldableTable%20With%20selectTable.gif)\n\n#### State management\n\nIf you would like to manage the state of FoldableTable, then add the following codes.\n\n```javascript\nrender() {\n    return <FoldableTable\n        onFoldChange={newFolded => this.setState(p => { return { folded: newFolded } })}\n       folded={this.state.folded}\n       />\n}\n```\n\n#### Custom Components\n\n- FoldIconComponent: to render the Icon of buttons.\n- FoldButtonComponent: to render the folding buttons for each Column.\n  With default rendering as below.\n\n```javascript\nconst defaultFoldIconComponent = ({ collapsed }) => {\n  //Render your Icon here\n};\n\nconst defaultFoldButtonComponent = ({ header, collapsed, icon, onClick }) => {\n  //Render your button here.\n};\n```\n\n### AdvancedExpandTable\n\nHOC which allows any Cell in the row to toggle the row's\nSubComponent (expand/collapse). Also allows the SubComponent to toggle itself. Technically supports toggling any row's SubComponent.\n\nThese are the expand functions available to any SubComponent or Column Cell:\n\n```\ntoggleRowSubComponent\nshowRowSubComponent\nhideRowSubComponent\n```\n\nThey are available through the `props.columnProps.rest` object.\n\nOn any change to the props, the table will reset the expanded state.\n\nAccepts a onExpandedChange callback to be called whenever the table expanded state changes\n\nNote: only supports 1 level of nesting.\n\nExample usage in a Column Cell Renderer:\n\n```javascript\n    Cell: props => {\n      const {\n        value\n        columnProps: { rest: { showRowSubComponent } },\n        nestingPath\n      } = props;\n      return (\n        <div>\n          <button\n            onClick={e => showRowSubComponent(nestingPath, e)}\n          >\n            {value}\n          </button>\n        </div>\n      );\n    }\n```\n\nExample usage in the ReactTable SubComponent (toggle itself):\n\n```javascript\n  const AdvancedExpandReactTable = advancedExpandTableHOC(ReactTable);\n\n  <AdvancedExpandReactTable>\n  ...\n  SubComponent={({ row, nestingPath, toggleRowSubComponent }) => {\n    return (\n      <div>\n        <button\n          onClick={e => toggleRowSubComponent({ nestingPath }, e)}\n        >\n          {row.value}\n        </button>\n      </div>\n    );\n  }}\n  />\n```\n\nEach Column Renderer (E.g. Cell ) gets the expand functions in its props and each SubComponent gets the expand functions in its props\n\nExpand functions takes the `nestingPath` or `rowInfo` given to each\nColumn Renderer and SubComponent already by ReactTable.\n\n## HOC Guide for ReactTable\n\nThere are a few rules required when writing a HOC for ReactTable (other than meeting the normal lint standards - which are\nstill being developed).\n\nFirstly, there are issues with `ref` when you write a HOC. Consider a deeply nested component wrapped in multiple HOCs...\n\nA HOC in the middle of the chain requires access to the instance of the component it thinks it is wrapping but there is at\nleast one other wrapper in the way. The challenge is: How do I get to the actual wrapped component?\n\nEach HOC is required to be a React Class so that a `ref` can be obtained against each component:\n\n```Javascript\n<Component ... ref={r => this.wrappedInstance = r} />\n```\n\n_NOTE:_ \"Component\" can also be the `<ReactTable />` instance.\n\nThen the following method needs\nto be placed on the class so that it exposes the correct instance of ReactTable:\n\n```Javascript\ngetWrappedInstance() {\n  if (!this.wrappedInstance) console.warn('<component name here> - No wrapped instance')\n  if (this.wrappedInstance.getWrappedInstance) return this.wrappedInstance.getWrappedInstance()\n  else return this.wrappedInstance\n}\n```\n\nEssentially this will walk down the chain (if there are chained HOCs) and stop when it gets to the end and return the wrapped instance.\n\nFinally, sometimes the chains need to be in a specific order to function correctly. It is not clear if this is just an architectural\nissue or if it would be better solved using a library like `recompose`. Anyone who is able to contribute a reliable solution to this\nis welcome to submit a PR.\n","licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@6.11.4","dist":{"shasum":"e9d30b4500d2c1cf8e5ba312227d19a256ec1913","integrity":"sha512-2b114yTjYyDTAha1vOH33QPupzv/KE3i7diouYqmt7O3NIExaWxNxxvbch26MyvL5YSLN17cK9Zk9Eh3ss+Pcg==","tarball":"https://registry.npmjs.org/react-table/-/react-table-6.11.4.tgz","fileCount":73,"unpackedSize":1425327,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd6WQcCRA9TVsSAnZWagAAzJIQAKM/FnW7dLOsSSCWA2m8\nF36k4DiLhOWMXhA+bPeLaC6BH6J0eF9o54RUj75Nr+7V+SyvZf0EvO4og5O9\nwlqXCPPIhaAHP7bQMKI36wWrIQiv2GBjzY41YVEPVXRcNMMn/i3wH8nx1n/4\nsAhHvQaOyZJ83RNzGa5NcKLZpunwop8DSKGdyQcWnMzyVai7f5heo37tqrgm\nnBgfSNN6H0im5HvkS/ZxPG1VYFCuOWI+LeARj9AvSYrF1dCaRVEvewbbMMnb\nR2z0jLJJSe3WhK2JDcqa2a3NfHxrRNjBaj2gujyfipV+pCo7rf1II7LTou9r\nQ/C7DJKCJCUBLnrAW8UZ8jrDBBBcbinh3r+DC6mk3vE3oSgBSRzvTBNgAvfp\nZfk8TwqpvE2PdLm5WzBgYX+6aokW93iOtZyazqA0gLDax1ZWbUlWtpbpn+UT\nFPdW7skc2P8n18O7KyRs6tFtkSqfU5a++YvD3jW/QCidjw6Rs/hrTLjv8CXI\no69vyMAGoINDKZ8cufol/bVI5iEhy9I6alKxgpnis4/anUOweyOKOZt7zNKp\ncwwocIAl14Bz9PTYBE2GJqBe94HNcWFFoAtFfv01HJYGixeY9Eo5mSxYgMHE\npdN9EJkJcsdsGKx+nQeppXG6aJ+TAJ6ILl4KLRuJDL6ufmevV17EF7hwYKFN\ne9XR\r\n=Ta1E\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCHYqjE2HTKQ5a347GswGLw2r+R+PkUksMMBbTR9VQGuQIgWvSK5xh4LJLPX/n/nVYECnclytMRasaNutGfERaecdU="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_6.11.4_1575576603284_0.25473414965982166"},"_hasShrinkwrap":false},"7.0.0-beta.28":{"name":"react-table","version":"7.0.0-beta.28","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"dist/index.js","module":"dist/index.es.js","scripts":{"commit":"git add . && git-cz","test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"yarn test:jest","test:jest":"jest","build":"cross-env NODE_ENV=production rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,examples/*/src,examples/*/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"react":"^16.8.3","react-dom":"^16.8.3"},"devDependencies":{"@babel/core":"^7.7.2","@babel/preset-env":"^7.7.1","@babel/preset-react":"^7.7.0","@babel/runtime":"^7.7.2","@commitlint/cli":"^8.2.0","@commitlint/config-conventional":"^8.2.0","@svgr/rollup":"^4.3.3","@testing-library/dom":"^6.10.1","@testing-library/jest-dom":"^4.2.4","@testing-library/react":"^9.3.2","babel-eslint":"9.x","babel-jest":"^24.9.0","commitizen":"^4.0.3","core-js":"3.4.1","cross-env":"^6.0.3","dtslint":"^0.9.8","eslint":"6.6.0","eslint-config-prettier":"^6.7.0","eslint-config-react-app":"^5.0.2","eslint-config-standard":"^14.1.0","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"4.4.1","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^10.0.0","eslint-plugin-prettier":"^3.1.1","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.16.0","eslint-plugin-react-hooks":"2.3.0","eslint-plugin-standard":"^4.0.1","husky":"^3.1.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","jest-cli":"^24.9.0","jest-runner-eslint":"^0.7.5","jest-watch-select-projects":"^1.0.0","jest-watch-typeahead":"^0.4.2","lint-staged":"^9.4.3","prettier":"^1.19.1","prop-types":"^15.5.0","react":"^16.12.0","react-dom":"^16.12.0","rollup":"^1.27.3","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size":"^0.2.1","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2","snapshot-diff":"^0.6.1"},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"browserslist":"> 0.25%, not dead","licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.0-beta.28","dist":{"shasum":"f5cd37b09fdbc7f22f472d021c56637d9fae097c","integrity":"sha512-Ym05FAFNPGU6cid3Uw2W2+tn3mfGqKkLs51dw5FAJyz3fFNV0/i/CrTzHXZbVDA/KO2KNFYUjKGQJxIiDbXb4w==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.0-beta.28.tgz","fileCount":45,"unpackedSize":707674,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd6W2pCRA9TVsSAnZWagAAP8cP/1C/uzfIBwyySJYYfX57\nCtJ7jUF7ceQH/GmujFbjpqYyK2rOVxcyETG0XblI2dvahRcQKQ5suPo1zX1u\nhUoLuCEXmPjqBRySe0Pzl0RiM+i7igxsEPVDifcIN3s47WS5aFG5QDb8NCu+\nJgDp+oUuIje+fn9qmz2pPhpBCQNkXIq0/PZ4Hw/a/jxIHgU0ky6UEGLmN9bZ\n3GX27fFQTjjm+Q8Vx2WwfgpQFHRDHgEsCzszfrH9gFKEXV6KR5V/VWxmi9XY\nZjECFYX5G82WhitjBAxgY7bCn7r7MadqaL8IdvGsRHIco8M1JAZXun/1AM51\niwEvPWN7YEjMLN+MsSP7QhgQm4D7ncEriLqj/EPMval/3F382QYl10Krf5yu\nlLn+gfSpzIW7aGSwEzmTDkTjsGi2/Wddf4fgLTk1FXqneALtLXzuy1V9xi2c\nq68yJqkHZ7BPVDHbH8NQURZNpxUEkpmzOrgTA9qrX12miFbgkuLk40QdbPn+\nkFpkrwlfPRvuRso+jhoqa5UjVrB3DJ2Jb0Pu0PuZVSSvc0KzWe1eBRz1pYBR\nm+QoZax2oOJoA6Mf921WzjVGHjtiort4Oo0a7JUbHLXwnh+T0iLjdiKQW4eb\nRFES9HQnKgGsxOdZyDgzBIUK1b5fwTjU0K0Pzldcd1D8624j5wCNY49itwSn\nqgBR\r\n=IjiF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICyRU8bKKsRugK7ZmU2s2dGto3p8aTPUfTSxLElxxRYxAiEAwl4GZLR7pMmgekk6o1ml5nFsJGDXg2EykpoSbc+A3yw="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.0-beta.28_1575579048838_0.7886184893303119"},"_hasShrinkwrap":false},"7.0.0-rc.0":{"name":"react-table","version":"7.0.0-rc.0","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"dist/index.js","module":"dist/index.es.js","scripts":{"commit":"git add . && git-cz","test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"yarn test:jest","test:jest":"jest","build":"cross-env NODE_ENV=production rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,examples/*/src,examples/*/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"react":"^16.8.3","react-dom":"^16.8.3"},"devDependencies":{"@babel/core":"^7.7.2","@babel/preset-env":"^7.7.1","@babel/preset-react":"^7.7.0","@babel/runtime":"^7.7.2","@commitlint/cli":"^8.2.0","@commitlint/config-conventional":"^8.2.0","@svgr/rollup":"^4.3.3","@testing-library/dom":"^6.10.1","@testing-library/jest-dom":"^4.2.4","@testing-library/react":"^9.3.2","babel-eslint":"9.x","babel-jest":"^24.9.0","commitizen":"^4.0.3","core-js":"3.4.1","cross-env":"^6.0.3","dtslint":"^0.9.8","eslint":"6.6.0","eslint-config-prettier":"^6.7.0","eslint-config-react-app":"^5.0.2","eslint-config-standard":"^14.1.0","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"4.4.1","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^10.0.0","eslint-plugin-prettier":"^3.1.1","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.16.0","eslint-plugin-react-hooks":"2.3.0","eslint-plugin-standard":"^4.0.1","husky":"^3.1.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","jest-cli":"^24.9.0","jest-runner-eslint":"^0.7.5","jest-watch-select-projects":"^1.0.0","jest-watch-typeahead":"^0.4.2","lint-staged":"^9.4.3","prettier":"^1.19.1","prop-types":"^15.5.0","react":"^16.12.0","react-dom":"^16.12.0","rollup":"^1.27.3","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size":"^0.2.1","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2","snapshot-diff":"^0.6.1"},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"browserslist":"> 0.25%, not dead","licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.0-rc.0","dist":{"shasum":"44d9457c848fbf1fb3bd5ebb66b6a7b2ae44609a","integrity":"sha512-dpJvnHWMc9k+35wSY+wkvhUGiSt8O0cpqlzqmvJBm109DZVg7RroFP/DM3IhJl7OS2NW09pqV144cmLI8+dpww==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.0-rc.0.tgz","fileCount":45,"unpackedSize":714949,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd6dZnCRA9TVsSAnZWagAARw8P/001vaz+Fa7k35JT9CD7\nGPW98yyGjAvGvDhTc1x4ROOg1G2jsyeJmCXHzedSo0cOoxJQNsmTk/iLodVQ\ntyb+9y1ii/QZeqD/QzgT67p5Y+kM3XWkt8n6kX/E54GXFPYOumI1ro2zx3Gl\nNvuJNVLSXZHuoOG9RCD2w7EwlpI4nE4LUIRrp3n4rST1VTHRK/JOv6oNrWeB\nPOzegcHUtryEaBGcB+gyQ0qyqJL+hTTA+WGzwKN7DhLggT7j0Fo9mBuU7LnP\nU2B5dkxXEUBDoOFYGtufqitNLQGwMrJMw3kFcxZePNyPNyGNiWoPqJVhEfaQ\nGi/3+d91/XNBSxCs1x3lzWvF9P6P0p9fWIPGm4Sv+POk2ozvmhmIWgZcXTIj\nF/00qolmPOiv0rzP7EynUgsQJ5yxxMxy6K5m2XYm1me4lMJe53uxOJ6+aTT1\n8YC9pOpW73FzOeAcpeZgYPYMu61D13O7anf8QCaDuGfsHcM3WZ2jkygkwE2r\niQldFDFTsKhOj6a8EXH07MtQGTDxjiqX+uuD/T3KpYgiNIturRhvO+H9Fzc1\nN6cQBjToULhqhNgTJbXUaCtC46Wwe7ErpKegKedBUO8BJinVYK4oDCJKCIVx\nHKYofZubHCcoLj4T8A0gfVVOfCpq50fiH1tvl2Yd4ZUeXDcCE4hWeQIgWerC\nZXMx\r\n=21JT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBsmdYXo3NGsBIGPu+TtarLQ4V0c4HrUL2UonFD5lbNlAiEAxrzvcyiavXih1p1lN+L0IaLlYNYBxmByXpN+DzVrgNs="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.0-rc.0_1575605862515_0.38761446137752564"},"_hasShrinkwrap":false},"7.0.0-rc.1":{"name":"react-table","version":"7.0.0-rc.1","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"dist/index.js","module":"dist/index.es.js","scripts":{"commit":"git add . && git-cz","test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"yarn test:jest","test:jest":"jest","build":"cross-env NODE_ENV=production rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,examples/*/src,examples/*/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"react":"^16.8.3","react-dom":"^16.8.3"},"devDependencies":{"@babel/core":"^7.7.2","@babel/preset-env":"^7.7.1","@babel/preset-react":"^7.7.0","@babel/runtime":"^7.7.2","@commitlint/cli":"^8.2.0","@commitlint/config-conventional":"^8.2.0","@svgr/rollup":"^4.3.3","@testing-library/dom":"^6.10.1","@testing-library/jest-dom":"^4.2.4","@testing-library/react":"^9.3.2","babel-eslint":"9.x","babel-jest":"^24.9.0","commitizen":"^4.0.3","core-js":"3.4.1","cross-env":"^6.0.3","dtslint":"^0.9.8","eslint":"6.6.0","eslint-config-prettier":"^6.7.0","eslint-config-react-app":"^5.0.2","eslint-config-standard":"^14.1.0","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"4.4.1","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^10.0.0","eslint-plugin-prettier":"^3.1.1","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.16.0","eslint-plugin-react-hooks":"2.3.0","eslint-plugin-standard":"^4.0.1","husky":"^3.1.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","jest-cli":"^24.9.0","jest-runner-eslint":"^0.7.5","jest-watch-select-projects":"^1.0.0","jest-watch-typeahead":"^0.4.2","lint-staged":"^9.4.3","prettier":"^1.19.1","prop-types":"^15.5.0","react":"^16.12.0","react-dom":"^16.12.0","rollup":"^1.27.3","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size":"^0.2.1","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2","snapshot-diff":"^0.6.1"},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"browserslist":"> 0.25%, not dead","licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.0-rc.1","dist":{"shasum":"33f61b904d246d862a46a05ac4d8eda6343ea83b","integrity":"sha512-tAuZg+TY64UUgBPRts/q+0JguGZpliYdoQZl7lAnLAQ/reU/5c04sCx54QcpH7n/PYVHMJEYkIU0ito8ZZ011w==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.0-rc.1.tgz","fileCount":45,"unpackedSize":715574,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd6dqpCRA9TVsSAnZWagAAjc8P/jo3pgMcg3gMvs0TpZ/E\nV5CWDtDcwJCTL5WQcg7XutmHpsasupZGs4QRyQ1Hvjo6+FEjdkdWwF15GiR5\n4HhPn0CXBpVMjrM+jBz+6V/eCk63mic/I1y8F5QuvJfEaaLW7jLD0QSQg8ZE\nbsaL54TFyva7iFVAMn107EzS0US36qSIbWHHY96VggK/5EQASyD0xgMABriY\nxqwTVbs51508KDCoU/RfkE625IEQE2BdXKYo1COfW0+VhUvEDtvV3fVomUvR\nOoDCaUwOrL9ZfB3D7hPPX3BSgD3s1RZs2I3tfTry4EPWRl8NUKCSB9cL2aCM\nP72ZwNcXAuTTUmlB9HNpRc8NRff22g/dJshGQpiDiLlzNmXwjHqe1Qm7vzSc\n+nIEs/5xbiBTUAtbKYJ/wIcbDSgbWt2haMhBgQ5Z9LLRPHkhYjPfIDdmidv4\nALtKbjypMNZLHTcTIwwkq+Sixq355LYwW+7JvBJOcy7JgPcxAIcf7NKYgIiY\nJJmz7pQgJQi2y8oTUqnSfjTjlQrdrFCs3qBVkwUfnPGLMJ1z1VKbjErQt5D8\nWrte/6b7qjZZ/bUmTYdbHUtgSQ0Oj2d+HpM0e3J7mzqyCcp6n7ajLxGibG0W\naKF/C3iFDT4SschyIXRvcH0qduTraQkKmkGqVLSvBrOKhfEu2op03aeM3Nx4\nRVyc\r\n=QK5O\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDFPiTooWtyMNxx/U6O2t8T8+S/mUwptL3xkp/mUcE2xAiA6g1wRTdh5G0TC4GKjA2fKTGtU4pPTt/nU2W7HkH3YRQ=="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.0-rc.1_1575606952894_0.6042530549429943"},"_hasShrinkwrap":false},"7.0.0-rc.2":{"name":"react-table","version":"7.0.0-rc.2","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"dist/index.js","module":"dist/index.es.js","scripts":{"commit":"git add . && git-cz","test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"yarn test:jest","test:jest":"jest","build":"cross-env NODE_ENV=production rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,examples/*/src,examples/*/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"react":"^16.8.3","react-dom":"^16.8.3"},"devDependencies":{"@babel/core":"^7.7.2","@babel/preset-env":"^7.7.1","@babel/preset-react":"^7.7.0","@babel/runtime":"^7.7.2","@commitlint/cli":"^8.2.0","@commitlint/config-conventional":"^8.2.0","@svgr/rollup":"^4.3.3","@testing-library/dom":"^6.10.1","@testing-library/jest-dom":"^4.2.4","@testing-library/react":"^9.3.2","babel-eslint":"9.x","babel-jest":"^24.9.0","commitizen":"^4.0.3","core-js":"3.4.1","cross-env":"^6.0.3","dtslint":"^0.9.8","eslint":"6.6.0","eslint-config-prettier":"^6.7.0","eslint-config-react-app":"^5.0.2","eslint-config-standard":"^14.1.0","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"4.4.1","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^10.0.0","eslint-plugin-prettier":"^3.1.1","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.16.0","eslint-plugin-react-hooks":"2.3.0","eslint-plugin-standard":"^4.0.1","husky":"^3.1.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","jest-cli":"^24.9.0","jest-runner-eslint":"^0.7.5","jest-watch-select-projects":"^1.0.0","jest-watch-typeahead":"^0.4.2","lint-staged":"^9.4.3","prettier":"^1.19.1","prop-types":"^15.5.0","react":"^16.12.0","react-dom":"^16.12.0","rollup":"^1.27.3","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size":"^0.2.1","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2","snapshot-diff":"^0.6.1"},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"browserslist":"> 0.25%, not dead","licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.0-rc.2","dist":{"shasum":"01ad9b40e1ecc906373e092890cb23f029f861b3","integrity":"sha512-4+KAh0/HClX2JC4O9g0WKkt0ZLdHgsOumDLYaaQ8Hu4T28hTT0vTaLP/y6FCf4yVl6ayDh3/jpmjzPFUp32rMw==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.0-rc.2.tgz","fileCount":46,"unpackedSize":710094,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd6uRUCRA9TVsSAnZWagAA9UEP/A/oJv2WeDGCvjJG8yE7\nzL9DXbv9Ly5LQ3JlVEuPT13Aolt//YjUVAzQNTv4nREf+14BfgCIye5a9f30\njPqXyNz3VlivfXC7Spz+kTh99PQM+q6PFh1rhMtJO7siequLEZwZXHb2ondN\nikFhIGPcZbR5lF7lLgSsC6VBwFFTu6DscZYB5Kb2hfoKy8Uh2cVTNj/ylaoz\nCRVCm9A/45vgm7VNO9tUwajAvtKxAlkKAs4c+vvcK8LY0zroAoopuUqLKtRM\nUeeAojl29yBrJfOHg+FOwPh4OQnAh2lxQtFreuwlFk9xPvTX/ILYfXmJiB7U\nREWWw3uMRutDULk2honq8AA2w2hVBi0vZDKU4IL+BX2BjmSyEA2O/OTQoKc6\niQ2IgWnGBfqpnVMt6UN4XzApt44496ccFTE6ABTl5s786WIKcCHwHsrQ++c6\n9ArXpMPZfVVwHoOv5AHUjIp9THO1TIQFlDC49+WJNDOG2RmEdQ5tqOdpCdLj\niRSJdFycd6bzOnlE0IKpHKqoTq0gzX/1fEV3ektXY+arVbRV09YpGMnBaLJQ\nkyIwBya5DhHeuLfh29Y4SOdxKcQ4TqkUQkwhK8q1uYyL0WZTxbGIXfgWStgU\ngiuHQcinUIHzqct/cOislKHlXvrtcIs+uyQDiDropHlmWNsOppngKS25MF1s\n7JZj\r\n=NyxX\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDxE7bwRHLEyB3WXl9LAJUi0DYozV4CjEw5GaNui9LSugIgX2aroDwucqjLleS+QJBbwTWrqToKuea5d4q1++Y6+Js="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.0-rc.2_1575674963375_0.8131210541500362"},"_hasShrinkwrap":false},"7.0.0-rc.3":{"name":"react-table","version":"7.0.0-rc.3","description":"Hooks for building lightweight, fast and extendable datagrids for React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"dist/index.js","module":"dist/index.es.js","scripts":{"commit":"git add . && git-cz","test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"yarn test:jest","test:jest":"jest","build":"cross-env NODE_ENV=production rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,examples/*/src,examples/*/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"react":"^16.8.3","react-dom":"^16.8.3"},"devDependencies":{"@babel/core":"^7.7.2","@babel/preset-env":"^7.7.1","@babel/preset-react":"^7.7.0","@babel/runtime":"^7.7.2","@commitlint/cli":"^8.2.0","@commitlint/config-conventional":"^8.2.0","@svgr/rollup":"^4.3.3","@testing-library/dom":"^6.10.1","@testing-library/jest-dom":"^4.2.4","@testing-library/react":"^9.3.2","babel-eslint":"9.x","babel-jest":"^24.9.0","commitizen":"^4.0.3","core-js":"3.4.1","cross-env":"^6.0.3","dtslint":"^0.9.8","eslint":"6.6.0","eslint-config-prettier":"^6.7.0","eslint-config-react-app":"^5.0.2","eslint-config-standard":"^14.1.0","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"4.4.1","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^10.0.0","eslint-plugin-prettier":"^3.1.1","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.16.0","eslint-plugin-react-hooks":"2.3.0","eslint-plugin-standard":"^4.0.1","husky":"^3.1.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","jest-cli":"^24.9.0","jest-runner-eslint":"^0.7.5","jest-watch-select-projects":"^1.0.0","jest-watch-typeahead":"^0.4.2","lint-staged":"^9.4.3","prettier":"^1.19.1","prop-types":"^15.5.0","react":"^16.12.0","react-dom":"^16.12.0","rollup":"^1.27.3","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size":"^0.2.1","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2","snapshot-diff":"^0.6.1"},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"browserslist":"> 0.25%, not dead","licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.0-rc.3","dist":{"shasum":"ecdc112ca7abf31529d59cccd00b5e14d040f4e7","integrity":"sha512-a/SmDdfMMjZtdo33UeWVF0z0xGil5nKUbuGvGe3LM0d6mw1OdNFvNlBhMlqdhJQBIffI/pPhkmK6V7osspPAyA==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.0-rc.3.tgz","fileCount":46,"unpackedSize":710139,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd6uVECRA9TVsSAnZWagAAl2oP/3eAwWcQ214hZ4hVgo/q\nUWxw2ZyFEPCwQyHv/T8yI3IEWOHDiHZF4F7IKrl4viM78B3L0cOZXR6UFa2G\nvKDUSP9LLr2hk+mUMwxd72l3JBgJegMHsXz/zEj4cGYOHjk2ZdZMe10yGcvF\nn7j0/FfhDXFi5+cY91+g6DpARGl9mZDJzXNxrCfPU0ycQuKDt4VvMndbdJns\n6BEyrq0CykrEhX9BqI+dntvBVSbqDhmbuzVnZ0WK6jLQgk6EQzkl+uvPSbNm\nVgYsH3KdCcMVG7NCCmVitnisCJ19Vx/P5lblnfoo9QgDN+ebHoyp9/zXohIs\n82vsQ0G14ehT0fzF8hfsKNCny67Itcynk3yRDhlxhHYjFPIg+/gnOVY9w9N6\neJYjLGtahVM4peLomTpe5XDp21hNAWNomXURF+FNKPCFQ4wNm1dRO6fYAx5M\nto1OoPiePfM3dfg06CoY3TuZMO3Al6I2lQRr9Werru99btK2sy0ztY+YaSjc\nis9B8r9KVPmaTDDQ/yUj+EQ7UyxFkZ+2JzH3njG+Jlv7XfFNhiGhQfXLiVp9\n70YmaqqCiEsJFPrrkd9x3mU8yS6rvD2xVcD+PmaZHTqDn5X0BZ/4Ry/Tb/av\nqYBvkifH4yhuvkFId9GQhPOI6jXGQIZcFsGqvoKFc+w4UFA0c5Ny97aFK4aM\n4Z+A\r\n=txVJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDwtKTktE4O1Dh4gZfo4druFBzCXbpQ7m7nZ2EQmOLLfwIhAMTsrlZy7HvyVpjCAJ+1wPumQaPeurtAv3Dbp8BunHKT"}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.0-rc.3_1575675203681_0.8650575881367082"},"_hasShrinkwrap":false},"6.11.5":{"name":"react-table","version":"6.11.5","description":"A fast, lightweight, opinionated table and datagrid built on React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table/tree/v6#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"lib/index.js","module":"es/index.js","scripts":{"build:cjs":"babel src --out-dir lib --source-maps inline --copy-files","build:es":"cross-env BABEL_ENV=es babel src --out-dir es --source-maps inline","build:umd":"cross-env BABEL_ENV=umd rollup -c","build:umd-min":"cross-env BABEL_ENV=umd NODE_ENV=production rollup -c","build:css":"rimraf react-table.css && stylus src/index.styl --compress -o react-table.css && yarn css:autoprefix","css:autoprefix":"postcss --use autoprefixer react-table.css -r","watch":"npm-run-all --parallel watch:*","watch:js":"onchange 'src/**/*.js' -i -- yarn build:cjs","watch:css":"onchange 'src/**/*.styl' -i -- yarn build:css","test":"eslint src","build":"npm-run-all build:*","prepublish":"yarn build","postpublish":"git push --tags","docs":"yarn watch & cd docs && yarn && yarn start","docs:build":"yarn build && cd docs && yarn && yarn build"},"dependencies":{"@types/react-table":"^6.8.5","classnames":"^2.2.5","react-is":"^16.8.1"},"peerDependencies":{"prop-types":"^15.7.0","react":"^16.x.x","react-dom":"^16.x.x"},"devDependencies":{"autoprefixer":"^6.7.0","babel-cli":"6.14.0","babel-eslint":"6.1.2","babel-plugin-external-helpers":"^6.22.0","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-preset-env":"^1.6.1","babel-preset-react":"^6.24.1","cross-env":"^5.1.4","eslint":"^4.1.1","eslint-config-react-tools":"^1.0.10","eslint-plugin-class-property":"^1.0.6","eslint-plugin-import":"^2.7.0","eslint-plugin-jsx-a11y":"^6.0.2","eslint-plugin-react":"^7.4.0","match-sorter":"^1.8.0","npm-run-all":"^4.1.2","onchange":"^3.0.2","postcss-cli":"^2.6.0","prop-types":"^15.7.2","react":"^16.3.2","react-dom":"^16.3.2","react-json-tree":"^0.10.9","rimraf":"^2.6.1","rollup":"^0.55.3","rollup-plugin-babel":"^3.0.3","rollup-plugin-commonjs":"^8.3.0","rollup-plugin-node-resolve":"^3.0.2","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"^3.0.0","standard":"^10.0.2","stylus":"^0.54.5"},"babel":{"env":{"development":{"presets":[["env",{"modules":"commonjs"}],"react"],"plugins":["transform-object-rest-spread","transform-class-properties"]},"es":{"presets":[["env",{"modules":false}],"react"],"plugins":["transform-object-rest-spread","transform-class-properties"]},"umd":{"presets":[["env",{"modules":false}],"react"],"plugins":["transform-object-rest-spread","transform-class-properties","external-helpers"]}}},"licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@6.11.5","dist":{"shasum":"84e52885db426a07a6c4ce2c7e942f2cd4e2aa58","integrity":"sha512-LM+AS9v//7Y7lAlgTWW/cW6Sn5VOb3EsSkKQfQTzOW8FngB1FUskLLNEVkAYsTX9LjOWR3QlGjykJqCE6eXT/g==","tarball":"https://registry.npmjs.org/react-table/-/react-table-6.11.5.tgz","fileCount":71,"unpackedSize":1394957,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd6ugUCRA9TVsSAnZWagAAd8AP/1AidwOqCUA5IvI+HIm4\ndRiQbtKU2jiFqz38k98y8pgLaMDPmNszm3TcajgwB/3qMwOBjd92Ea+Fv9eM\n361hU2N+mCERV7mrLxnZ+cyNIOkivdMssSQlM7r3ozMsgVwemxPgkcRwHVOo\ncTvp146na3Vjlqx0wZDg0HzV0+IjXkzwjz5m30xzrk4rB38rCKbSQBdzWASV\nP4wXAaaQNmRXHQ1Uzt3VeV2Z2zaAMZEuxqj3wb8qskNbQrd3B+8bQCFVvPgn\nJYkYNws6VmTuRzjcGqcnweAL0/YYjb5SLfvMbu+wfFw/6aBw9BdCOsth40Bi\nlyUmg6fW2zPpi7Y2PVP22EhV4UpQM4Kc88wNDQixqbIKe9Kkm5bbPFo4sLg8\nSpYaPuC5csBkG2xRbZeygpY5Gsbp9whU/YkWAcqYTc5O+UjV5JHSLQ33gG2D\nmG8Y1hM5IpxfiwY1EbRRuxH484kcOre+qWV3lYzINMv5VcVXhZ6k+Hpcruo8\nHOKm2/vKeV4HY2f4LHPGuSPi9kXL3fnt5JjmiUMHe1Zq8Io0l9OqsOmkShtP\ntHuZ7Fmd8IXpRA08bnq3t16AtWa+Sba76Cwq3mUG71mHw+NO3F/Yl1TVr1DH\n4vXa5IY4RCUHPKgbaMErs5KWxOxoC4Lz6wq8f8tP9A981cRgOUGGy0tDcLDk\nmUF2\r\n=uFY9\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDX+8/xEU5e9Xvu7X3dzmQeMg3Hva0STFFsg8aJvE+6AQIhAKUyTJ4hVxMojyAu/jrrXEuB11pUrQqQqpdNZmOIYYm9"}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_6.11.5_1575675923607_0.3603044515495817"},"_hasShrinkwrap":false},"7.0.0-rc.4":{"name":"react-table","version":"7.0.0-rc.4","description":"Hooks for building lightweight, fast and extendable datagrids for React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"dist/index.js","module":"dist/index.es.js","scripts":{"commit":"git add . && git-cz","test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"yarn test:jest","test:jest":"jest","build":"cross-env NODE_ENV=production rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,examples/*/src,examples/*/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"react":"^16.8.3","react-dom":"^16.8.3"},"devDependencies":{"@babel/core":"^7.7.2","@babel/preset-env":"^7.7.1","@babel/preset-react":"^7.7.0","@babel/runtime":"^7.7.2","@commitlint/cli":"^8.2.0","@commitlint/config-conventional":"^8.2.0","@svgr/rollup":"^4.3.3","@testing-library/dom":"^6.10.1","@testing-library/jest-dom":"^4.2.4","@testing-library/react":"^9.3.2","babel-eslint":"9.x","babel-jest":"^24.9.0","commitizen":"^4.0.3","core-js":"3.4.1","cross-env":"^6.0.3","dtslint":"^0.9.8","eslint":"6.6.0","eslint-config-prettier":"^6.7.0","eslint-config-react-app":"^5.0.2","eslint-config-standard":"^14.1.0","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"4.4.1","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^10.0.0","eslint-plugin-prettier":"^3.1.1","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.16.0","eslint-plugin-react-hooks":"2.3.0","eslint-plugin-standard":"^4.0.1","husky":"^3.1.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","jest-cli":"^24.9.0","jest-runner-eslint":"^0.7.5","jest-watch-select-projects":"^1.0.0","jest-watch-typeahead":"^0.4.2","lint-staged":"^9.4.3","prettier":"^1.19.1","prop-types":"^15.5.0","react":"^16.12.0","react-dom":"^16.12.0","rollup":"^1.27.3","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size":"^0.2.1","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2","snapshot-diff":"^0.6.1"},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"browserslist":"> 0.25%, not dead","licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.0-rc.4","dist":{"shasum":"88bc61747821f3c3bbbfc7e1a4a088cbe94ed9ee","integrity":"sha512-NOYmNmAIvQ9sSZd5xMNSthqiZ/o5h8h28MhFQFSxCu5u3v9J8PNh7x9wYMnk737MTjoKCZWIZT/dMFCPItXzEg==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.0-rc.4.tgz","fileCount":46,"unpackedSize":710262,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd7bDUCRA9TVsSAnZWagAAWw0P/2KDVsScb04AOW7oe4+f\neRSsmP3sefCBaY7qBUCuoNtUROKZECmoSFEB/EhafN3EC4ANiRFtmBPOrKG5\n/CGwiEfHnDo7QcR5T5uYHmfXQkXH4oDb4YmLnqDVGBzwQ6KayHRbgEROHmDz\nQdXmriMDAleOiCwFISHZVoS5Ac7KPooQT0CdOK5+aziKRKeMryvA266P3t0s\nyyPXsKQe1RHZQ2tN2QMWCwN9Rpzz7lfUKjMUZHqKxMsYv6eUUf+eO+rAiEyG\nXkhN6IN7jZ5XXq2A+0EZ8GoZQrvLinH7tKt6T+Ynp8OvL2PEOLSnPCry/7UY\nvce+mnOyBz2zpRrAU89+Ne/j3+wRmw110ij5kz5aXEaZs7VOqcTTiIy+Z+xo\n/2Xe7/tv3llJq9JMt25Ea9tYyryZeyKk2T3sfCeOAt0/NCLmFJcQMC6g3yeq\neD07c/wBNktYEui5io4+Ut8NeNPoYDsPYUqHL//Ot1R6bafixkLDY7oomy7D\nqa8mlrNpVTikMUONHZQ9tHYw5FSL6jiGI/tiwWhGTCgUlc+aOey/FYnZhKDR\ncOiZMWtntzvPWqE+fyzdf3ERUN29ahNt9NN7ldNWfJyVvC5OMAydJJsLWGj1\nVgzl5glx1Qukv82vNaINkNLd89ji7XqxpcVCqsE0Ol7ZLr7vt1FPN5ohJRbZ\nQ0Kg\r\n=DdnF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEDyGQ8uLKcPdsG5YWmB2O81KNiFezoxyTklXCuG1z1fAiEAvxR8DqjabzwaDOtSe28LCNwRCBqaVNLTo2wkVdxAG5s="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.0-rc.4_1575858388164_0.44640171032112397"},"_hasShrinkwrap":false},"7.0.0-rc.5":{"name":"react-table","version":"7.0.0-rc.5","description":"Hooks for building lightweight, fast and extendable datagrids for React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"dist/index.js","module":"dist/index.es.js","scripts":{"commit":"git add . && git-cz","test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"yarn test:jest","test:jest":"jest","build":"cross-env NODE_ENV=production rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,examples/*/src,examples/*/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"react":"^16.8.3","react-dom":"^16.8.3"},"devDependencies":{"@babel/core":"^7.7.2","@babel/preset-env":"^7.7.1","@babel/preset-react":"^7.7.0","@babel/runtime":"^7.7.2","@commitlint/cli":"^8.2.0","@commitlint/config-conventional":"^8.2.0","@svgr/rollup":"^4.3.3","@testing-library/dom":"^6.10.1","@testing-library/jest-dom":"^4.2.4","@testing-library/react":"^9.3.2","babel-eslint":"9.x","babel-jest":"^24.9.0","commitizen":"^4.0.3","core-js":"3.4.1","cross-env":"^6.0.3","dtslint":"^0.9.8","eslint":"6.6.0","eslint-config-prettier":"^6.7.0","eslint-config-react-app":"^5.0.2","eslint-config-standard":"^14.1.0","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"4.4.1","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^10.0.0","eslint-plugin-prettier":"^3.1.1","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.16.0","eslint-plugin-react-hooks":"2.3.0","eslint-plugin-standard":"^4.0.1","husky":"^3.1.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","jest-cli":"^24.9.0","jest-runner-eslint":"^0.7.5","jest-watch-select-projects":"^1.0.0","jest-watch-typeahead":"^0.4.2","lint-staged":"^9.4.3","prettier":"^1.19.1","prop-types":"^15.5.0","react":"^16.12.0","react-dom":"^16.12.0","rollup":"^1.27.3","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size":"^0.2.1","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2","snapshot-diff":"^0.6.1"},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"browserslist":"> 0.25%, not dead","licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.0-rc.5","dist":{"shasum":"6d0caf6b6003c19c3e36dfd7c926f5b40dee0c30","integrity":"sha512-hMrnKMvKOfqbHv3WUxmActkTj06Y8r3v/HIZ2H6CRqhgjGV3gtONn2N1w9lLCY7NE3x7BtD+YhtmacYhWkGtJA==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.0-rc.5.tgz","fileCount":46,"unpackedSize":718448,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd7bJJCRA9TVsSAnZWagAAeJwP/3VMmYJG9PTgfHGRQI71\nV9YUJgoNX+64fZ1sZxiD2KSUxNLw7Kpj3TNAHTS0Gd1nB3u1GXYTW4sjOGLJ\ntcZD9MUxkAectJUzOEotQRSYzk6cs1DcxNdWyqiD+jrP3Y45mKZNtTrksKeE\nF46jKlipXS36/hs5I1KAdozX08GBzIOV7KbiQVv3lAoOiyV4wwJgmLvCmHi5\n3e3ng7bBRnVZu27yFxwc7ms0PZZm2t2GYhoVUjBoyp6QMSZoohs8vjxP5Fmh\no4g04VInbF5X9yTFntKzms0EGVZtz3IOi98o+nbh2t3lILHDziGGfzbpspOy\n1XLZWDSg3ZhiUatjEX/TICgxMKIqcrTee322RNJSWTGekgiRYKhzpGR6bWcX\nDsaONRC30d5P8HxsRh/TMWl5GcOFu/MpPfbyUIc/3DQtYbwRtdQzTT4kT30T\n1yhtGmJWqJpc4TTMvrrNpScD+64yMOk36c7gEnaD9AruMk/XZtDqsb5esg5H\n4m9IpNcrzaiz+hAkAdnahfQTv5DBAEds7XkWZsLBHXsqOyBCNRQVhnNvaFcn\n+pVF3Dr5SIacCTbwVJgkdlHrXP3vFG6yarjRVFesv/Yx05/4/gZ9O5fM9HYG\nkvwd7KPkK6Jx++/mSjPmHNn7sNcGberRpNfnVz1uoXerKSbx6rBMihlbrvk/\nnLVA\r\n=e/vg\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICI6E+/rkF42dvsZjM3nBZLmxtjTjt3DZfRvy2KMJ1rjAiAHlV0Eng3erk2l9OM1WNBp80Fdqb43sNzDGn296YDj6A=="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.0-rc.5_1575858761289_0.44139731723006226"},"_hasShrinkwrap":false},"7.0.0-rc.6":{"name":"react-table","version":"7.0.0-rc.6","description":"Hooks for building lightweight, fast and extendable datagrids for React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"dist/index.js","module":"dist/index.es.js","scripts":{"commit":"git add . && git-cz","test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"yarn test:jest","test:jest":"jest","build":"cross-env NODE_ENV=production rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,examples/*/src,examples/*/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"react":"^16.8.3","react-dom":"^16.8.3"},"devDependencies":{"@babel/core":"^7.7.2","@babel/preset-env":"^7.7.1","@babel/preset-react":"^7.7.0","@babel/runtime":"^7.7.2","@commitlint/cli":"^8.2.0","@commitlint/config-conventional":"^8.2.0","@svgr/rollup":"^4.3.3","@testing-library/dom":"^6.10.1","@testing-library/jest-dom":"^4.2.4","@testing-library/react":"^9.3.2","babel-eslint":"9.x","babel-jest":"^24.9.0","commitizen":"^4.0.3","core-js":"3.4.1","cross-env":"^6.0.3","dtslint":"^0.9.8","eslint":"6.6.0","eslint-config-prettier":"^6.7.0","eslint-config-react-app":"^5.0.2","eslint-config-standard":"^14.1.0","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"4.4.1","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^10.0.0","eslint-plugin-prettier":"^3.1.1","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.16.0","eslint-plugin-react-hooks":"2.3.0","eslint-plugin-standard":"^4.0.1","husky":"^3.1.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","jest-cli":"^24.9.0","jest-runner-eslint":"^0.7.5","jest-watch-select-projects":"^1.0.0","jest-watch-typeahead":"^0.4.2","lint-staged":"^9.4.3","prettier":"^1.19.1","prop-types":"^15.5.0","react":"^16.12.0","react-dom":"^16.12.0","rollup":"^1.27.3","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size":"^0.2.1","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2","snapshot-diff":"^0.6.1"},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"browserslist":"> 0.25%, not dead","licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.0-rc.6","dist":{"shasum":"3cb43919e31166659d6aa223bd3dfee765981f6b","integrity":"sha512-iFgxMla6JnxjZwKG3eiHHOlIIANiK/HzvRFWXT8LV78N9bEOGC5A5N44S/xQ1PaZN/1c+NDBz5fBazhx/vG7/A==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.0-rc.6.tgz","fileCount":46,"unpackedSize":725084,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd7nwECRA9TVsSAnZWagAAbUwQAJPapLXRC2CWhpt3Q7id\na56vHIlxjV39qlcdLQ4Dg+2BSIcMSHbk5BgnUOwan6absyYDk3gEf3wJc4i8\nsXEMezHSTeXp8+b614HlmAr5jud231hnE4Ff9tpsjyCktfZ8cGsWk8zvZzbG\nBm7UVwuU8oMDoxF7hH5rkMZ0/80otfVqR9wGfMtYmrzES7mFcBiTIVbheBxG\n4EjqnV8FgKdd9K+RRIgLR12e+TSycUtGEZvWnLKhYUq4Eri5sgzr5ycp2dCS\nwjw+lrYY/UcOYEHWmmI4ogT+36YMSk7gf2rbQhVVF6/HqSwB4hYmSgQnKogt\nXjjc8w/nDzWxdwYc+yr0HoIVGoSubLPnznBLqi9g2YW/nE+yBqYzgCSNEDpq\neJVLjjUPXUrAa7EKGbMt0XnIykVNWy59poeVAqFGKNJdVo/zZrD8OlwqBSzm\nEQRrLpBtRTfR9lhAFjwUfGUTDSOblO1/bYSOORKWj3bZ/4KxEdWoaO2EBXR9\neriLPVp93W5EJ+7hbizQMQUsxed2QdqsWh/n/SeDWH+QTRmfYW/8Wnj4FuO7\nVib3y+mDyS329ae0pyqoepiWSlnB7/Oe4uZ7fXOTr1A36Q4Isz3EQpMzToMJ\n5Bj6TQvS+k9j2pbtQQSBnBzfV3+V+2E5PQSamiL5GKXtghDkJkt0nsWOPohL\nur6N\r\n=SlYq\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICuzDhhuONgl98tJ5uwv+3N1QKZXXk8WXH3otmIyhjFnAiEA+S1P7V/AmPnQLdgVAe2d4pKFV+hzxulR5Z0YbPIOzpw="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.0-rc.6_1575910403945_0.6131488812691499"},"_hasShrinkwrap":false},"7.0.0-rc.7":{"name":"react-table","version":"7.0.0-rc.7","description":"Hooks for building lightweight, fast and extendable datagrids for React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"dist/index.js","module":"dist/index.es.js","scripts":{"commit":"git add . && git-cz","test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"yarn test:jest","test:jest":"jest","build":"cross-env NODE_ENV=production rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,examples/*/src,examples/*/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"react":"^16.8.3","react-dom":"^16.8.3"},"devDependencies":{"@babel/core":"^7.7.2","@babel/preset-env":"^7.7.1","@babel/preset-react":"^7.7.0","@babel/runtime":"^7.7.2","@commitlint/cli":"^8.2.0","@commitlint/config-conventional":"^8.2.0","@svgr/rollup":"^4.3.3","@testing-library/dom":"^6.10.1","@testing-library/jest-dom":"^4.2.4","@testing-library/react":"^9.3.2","babel-eslint":"9.x","babel-jest":"^24.9.0","commitizen":"^4.0.3","core-js":"3.4.1","cross-env":"^6.0.3","dtslint":"^0.9.8","eslint":"6.6.0","eslint-config-prettier":"^6.7.0","eslint-config-react-app":"^5.0.2","eslint-config-standard":"^14.1.0","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"4.4.1","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^10.0.0","eslint-plugin-prettier":"^3.1.1","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.16.0","eslint-plugin-react-hooks":"2.3.0","eslint-plugin-standard":"^4.0.1","husky":"^3.1.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","jest-cli":"^24.9.0","jest-runner-eslint":"^0.7.5","jest-watch-select-projects":"^1.0.0","jest-watch-typeahead":"^0.4.2","lint-staged":"^9.4.3","prettier":"^1.19.1","prop-types":"^15.5.0","react":"^16.12.0","react-dom":"^16.12.0","rollup":"^1.27.3","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size":"^0.2.1","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2","snapshot-diff":"^0.6.1"},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"browserslist":"> 0.25%, not dead","licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.0-rc.7","dist":{"shasum":"1bf3e248cdef22213821c021236e895bdc3cb5d2","integrity":"sha512-24Yofwkh822NyCmnpsrChV8SNOCENQWpV4A5f/MzapTi6iwje644Q11/wbLIgJdPnUJJ0/JbhjsDjxlB6yFV7Q==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.0-rc.7.tgz","fileCount":47,"unpackedSize":757887,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd7+qtCRA9TVsSAnZWagAANdcP/1roWrOTgMh5E73dautD\nOF85zijsd7FkfLEFp/8HU1/LvQ1xZoEiQmZJJvYC6of/eb4Av+YIwpQVXKRP\nZDj5WRfUizVu5sidqXm8h2yN4N53c/fg5LNuPfIXlCT70uLIbi/zjGJUMHkj\nZBZCuaMXuHwEfdjPjhjXsURb3jB3zD/067m/0Z7mXV4e2yrj2WwUAwxow9BQ\novjEp/OcBWBLoaqkJBDTREhgeQEfpz1BXYiB3mmSWLUq9YsYachUaFFLPUQT\nSXTG00/Wy/KtBlEr6yZy6XfZGTyv44dj2Gk2thiRKYUQ4M5tRydlj1L2Jo6Z\niJ4cLvWz8n0kJYtUWnTun5UlbQJhLcu8pRRQeQW71StGLTvVFNQA3XBzb87q\no9jRBSoWie+GFq0a8nIrb4+zkNwMiWnr5qUu0H94BF/w5CjpNCa/2oDlaEqz\n6SSHbHcHbvELstppT3dyXac34LJr8N8bnietLuqIBCQtcaqlMir1TPAKBr9w\npMDZVWeaLfNppJFaGvHae+7P/ptQMDif3i5VaRpaBY9OtP+dpYz/f8PfX4SG\nGePF0MYKfm/jxeOamfDTnjj/k1wSh3RG7KlX4no3tj/WT+2fj4RHmouwcXJZ\n71RnbweR8UURAl+XrEagvsx0nRJVeldNY2v3J0QpiV0nmaXXtydD8hwMGjIR\ne0Ro\r\n=/Kwm\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEiddE0HEmzF93dw5K28Ql/2rMwyAucKe16ii9/ZrPFjAiAhMyZcr4cMngAi7IQEpsTvrwBx2NUMs18S/sp6nQhASQ=="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.0-rc.7_1576004268898_0.16695459558842485"},"_hasShrinkwrap":false},"7.0.0-rc.8":{"name":"react-table","version":"7.0.0-rc.8","description":"Hooks for building lightweight, fast and extendable datagrids for React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"dist/index.js","module":"dist/index.es.js","scripts":{"commit":"git add . && git-cz","test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"yarn test:jest","test:jest":"jest","build":"cross-env NODE_ENV=production rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,examples/*/src,examples/*/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"react":"^16.8.3","react-dom":"^16.8.3"},"devDependencies":{"@babel/core":"^7.7.2","@babel/preset-env":"^7.7.1","@babel/preset-react":"^7.7.0","@babel/runtime":"^7.7.2","@commitlint/cli":"^8.2.0","@commitlint/config-conventional":"^8.2.0","@svgr/rollup":"^4.3.3","@testing-library/dom":"^6.10.1","@testing-library/jest-dom":"^4.2.4","@testing-library/react":"^9.3.2","babel-eslint":"9.x","babel-jest":"^24.9.0","commitizen":"^4.0.3","core-js":"3.4.1","cross-env":"^6.0.3","dtslint":"^0.9.8","eslint":"6.6.0","eslint-config-prettier":"^6.7.0","eslint-config-react-app":"^5.0.2","eslint-config-standard":"^14.1.0","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"4.4.1","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^10.0.0","eslint-plugin-prettier":"^3.1.1","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.16.0","eslint-plugin-react-hooks":"2.3.0","eslint-plugin-standard":"^4.0.1","husky":"^3.1.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","jest-cli":"^24.9.0","jest-runner-eslint":"^0.7.5","jest-watch-select-projects":"^1.0.0","jest-watch-typeahead":"^0.4.2","lint-staged":"^9.4.3","prettier":"^1.19.1","prop-types":"^15.5.0","react":"^16.12.0","react-dom":"^16.12.0","rollup":"^1.27.3","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size":"^0.2.1","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2","snapshot-diff":"^0.6.1"},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"browserslist":"> 0.25%, not dead","licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.0-rc.8","dist":{"shasum":"51067e35f443cdc5850ff58c8890219cccafe4c9","integrity":"sha512-I7U9il+SK8Bvjl+cZGug7fddr5MG5gnvhjRy5aOrcOkW8yWTo9ZiA7H+DzW+2cY6hC8UnqDhL9NsAq6K7J0Nrg==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.0-rc.8.tgz","fileCount":47,"unpackedSize":757905,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd8CuzCRA9TVsSAnZWagAAvvsP/1COyeNJo/I8SrxR2o4f\nNomohklso6dvhhlQWP9E7NSTP2zTIDYWcc+/sBz0c2VtimTwohJkiKTadOs1\nagaVz+K3asKrMNHXXV9GYRzsJmd3fBIHGnwLnqPPY/BYuI5u1V7KqN0BF1ze\nsnmc88FVOaA9zex9gSmKb62VB/y50ISrXudJ05FuhklPfBKtys0S+Dif6JH/\ndjKu1hDw7/d8RxAZWGfqzm8hrqWOceG3cS44Wy43lPRtkT4mmLDqpubBtbsm\njeR90i2p5aPuonp0qRNmEy/D8z2/PA0IBo46mToeZny7WfWLqlMJDQ+zjqym\n+rU13gbVBJ3kz9cfe8A+7wzYTs7VONJo2m7zQdWtQqCnNNIYYViz5Eb+r7Xc\nZc1fWVVFDwykh+ULjKnOXqyJACgncEfiwY7g1hS+mUUr+lOhOUu1RTaNHBHI\n2NOvy2w9Yn1B3BgIuPafRWCJ9YPznNZBNr1g996WVQ5W8RV4kbiWUUN5bzuz\nfDrMvDilSnPZgRxLP0LToGxBrgMBV7HJPTbdjkepcYyqxoBKrXyIwxkLjzh1\nh2LnXEkhlRKzF2mMdmjaCaWUhCQNEotAQ8QsjGf4bVlpu1u69SG3pNbOs13h\neqVUD0y8gYas8fGk1d1gm0tzv8MBofKYiBjulfJaP3rDrgHVNgMnLOut5mNp\nv4zv\r\n=dg8U\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIB5mR3PqBH6O1r8mu2h6LqLkXcK70HSsq39+XHGpYNZdAiEA2j8iZx/cumR6XAIi3MiDl+93e0IsiOUh8CW2LKxzvDg="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.0-rc.8_1576020915420_0.169353586133979"},"_hasShrinkwrap":false},"7.0.0-rc.9":{"name":"react-table","version":"7.0.0-rc.9","description":"Hooks for building lightweight, fast and extendable datagrids for React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"dist/index.js","module":"dist/index.es.js","scripts":{"commit":"git add . && git-cz","test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"yarn test:jest","test:jest":"jest","build":"cross-env NODE_ENV=production rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,examples/*/src,examples/*/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"react":"^16.8.3","react-dom":"^16.8.3"},"devDependencies":{"@babel/core":"^7.7.2","@babel/preset-env":"^7.7.1","@babel/preset-react":"^7.7.0","@babel/runtime":"^7.7.2","@commitlint/cli":"^8.2.0","@commitlint/config-conventional":"^8.2.0","@svgr/rollup":"^4.3.3","@testing-library/dom":"^6.10.1","@testing-library/jest-dom":"^4.2.4","@testing-library/react":"^9.3.2","babel-eslint":"9.x","babel-jest":"^24.9.0","commitizen":"^4.0.3","core-js":"3.4.1","cross-env":"^6.0.3","dtslint":"^0.9.8","eslint":"6.6.0","eslint-config-prettier":"^6.7.0","eslint-config-react-app":"^5.0.2","eslint-config-standard":"^14.1.0","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"4.4.1","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^10.0.0","eslint-plugin-prettier":"^3.1.1","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.16.0","eslint-plugin-react-hooks":"2.3.0","eslint-plugin-standard":"^4.0.1","husky":"^3.1.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","jest-cli":"^24.9.0","jest-runner-eslint":"^0.7.5","jest-watch-select-projects":"^1.0.0","jest-watch-typeahead":"^0.4.2","lint-staged":"^9.4.3","prettier":"^1.19.1","prop-types":"^15.5.0","react":"^16.12.0","react-dom":"^16.12.0","rollup":"^1.27.3","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size":"^0.2.1","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2","snapshot-diff":"^0.6.1"},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"browserslist":"> 0.25%, not dead","licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.0-rc.9","dist":{"shasum":"6e10fc796c1db3a64837bb62b0ac68ecbb69f3b8","integrity":"sha512-KBu3jnnthpEPkNQZA/GTcNyfLqOAyF/Wkd2CA7CCxYWflNAM7i/cUj+IuNcSgJ/w+yIdnn/aAwsKwphlQ4RPhA==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.0-rc.9.tgz","fileCount":47,"unpackedSize":757475,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd8IdBCRA9TVsSAnZWagAAGl4QAJlzNuVxAIY07XzexIja\nyGy6kdPy730UclDdO0Iwz+kpNG9r8Tjch/Rh7JJ/7SGvzqWjtehExiNJdHdl\n7ANdSA22sw2wU5IYMsIJW5moYRDxDg/9IdxXgemy0N7PkRiBMJZKUkYpIjzP\nm5CFLuIZd6ovDYaYaibuVQZCE8kIgjab7n07dujeOAU5gXJNGl3j8aRGPBb9\nCU5IDqZButqTUhzmps6RdDLH0gAhVFZUgmJYbcHW5ywq0G+tMJa539M85vcY\nhKlvw3XHza/P7MUT05KWYMvsQ4sF7STpx06ih8ygx83Pp5ce0711mpSw/Yyt\n8R9wGuzY9MGlo4YrcTGW7B+1RwnZjIPepMxCFUfWe6K1kny98eSl97zL6kgj\nl1wnoeMDFSyhyNI8u51hXkmPXGX1bufEQZCXGCYhjVJsU1diY91JNXOH4Sbi\nQBk18QcVfedT7wfPVxEKUxOxlkATSSfOEJmwcFPMDJSNAPCa4Mfy+mcdh4MW\nRWnBZtqfr4j8i9a/62APCOVTJpuCnBPxauk5OlSt2oh6rV9w54WqxjU7Rjmq\nLfw/dwyY+irl9B4sKfPSlQNm9iGSM8zzlpr1zJCxpTdWH2sGzWivfoL3aJGh\nmPvDKQByjefxdv8BK/Hqkhd2trM9BYP/O0newUFB2qcx5NsWjX85jDLqX9au\nx3fa\r\n=3fo/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCvrt6bP3s1JK0QAt0CZuEv4+LOJjPqw/Rtd2iHKSo7MgIhAMGFI61cmg3P8r5B8IHy9A9BuYmEqtvXFxQgbEMs7zFr"}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.0-rc.9_1576044352893_0.9233030046558939"},"_hasShrinkwrap":false},"7.0.0-rc.10":{"name":"react-table","version":"7.0.0-rc.10","description":"Hooks for building lightweight, fast and extendable datagrids for React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"dist/index.js","module":"dist/index.es.js","scripts":{"commit":"git add . && git-cz","test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"yarn test:jest","test:jest":"jest","build":"cross-env NODE_ENV=production rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,examples/*/src,examples/*/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"react":"^16.8.3","react-dom":"^16.8.3"},"devDependencies":{"@babel/core":"^7.7.2","@babel/preset-env":"^7.7.1","@babel/preset-react":"^7.7.0","@babel/runtime":"^7.7.2","@commitlint/cli":"^8.2.0","@commitlint/config-conventional":"^8.2.0","@svgr/rollup":"^4.3.3","@testing-library/dom":"^6.10.1","@testing-library/jest-dom":"^4.2.4","@testing-library/react":"^9.3.2","babel-eslint":"9.x","babel-jest":"^24.9.0","commitizen":"^4.0.3","core-js":"3.4.1","cross-env":"^6.0.3","dtslint":"^0.9.8","eslint":"6.6.0","eslint-config-prettier":"^6.7.0","eslint-config-react-app":"^5.0.2","eslint-config-standard":"^14.1.0","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"4.4.1","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^10.0.0","eslint-plugin-prettier":"^3.1.1","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.16.0","eslint-plugin-react-hooks":"2.3.0","eslint-plugin-standard":"^4.0.1","husky":"^3.1.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","jest-cli":"^24.9.0","jest-runner-eslint":"^0.7.5","jest-watch-select-projects":"^1.0.0","jest-watch-typeahead":"^0.4.2","lint-staged":"^9.4.3","prettier":"^1.19.1","prop-types":"^15.5.0","react":"^16.12.0","react-dom":"^16.12.0","rollup":"^1.27.3","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size":"^0.2.1","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2","snapshot-diff":"^0.6.1"},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"browserslist":"> 0.25%, not dead","licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.0-rc.10","dist":{"shasum":"b7469752f5cd6a44f4eb7309645a7fc4a42f3808","integrity":"sha512-9EekDruo8+yvkfN3idyBIXRLeLMW9E/HlEu41LItNRufGF0g6r1Kn7/3HKSMOBxUP0DeAGDyD82KHHCU+g2Feg==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.0-rc.10.tgz","fileCount":47,"unpackedSize":761934,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd80F6CRA9TVsSAnZWagAAJTwP/3KwFfixog16jkLMrvWI\nWZUr+YMJbn3y8wdBpX0ngAmK8B08uGd5WL8xOriaTSltm0c9ZX/EbepgCr4r\ncZHk83QJmkERBfNOQlrfOMWLuZpfNk10cKpI2hJGFCS+ekES8iAkHNfcVNjN\nnfddzoLSLpIfP0PCLKC4R9Xk+M1jsr36DpLIwx7EDy0iEInVHZtnsBFinVai\nCIVn/Ys8zhppShNvvJvNGPNi1tQ1EzIQxMvxe14MWgN8pRn9untrP9WtesZH\n/wOcT5YWgKer5vx2oKZtbRV9JVXux2Z8NN3LTT1nNUMUjLBzg3j7Dhk97Suc\nKqKVtsUvnQIelIbvCwskAykxuJyXKgdfD9wBmBopPbNuaDSzLU/2hPIDvBxv\n5exuczrmFXTj9dSmZx9xYyus8NmekJnHU+oc0XVe5BiaE5/d/SMKLHT2b+Fz\nvNfoM25XxZcgDOaEt5PAxjbP6Fv1lglSa0HxEVOCA3l+rS7xmzSBMG180sC0\nv2BgDbs/Ix5nf3GmgCVwr+3td6ubzBTHL8brgxEnhFaA2sSmk+lEW2FSUqyD\nAUwWTaV5m1okfODeAgAjQvb9UYMgwnL8yPAOQFh8wR/jZv0odesN6ERPryZf\n1JY1XOOcUAT/Uj7PZUi/KUn8wjoGucRNuajtbkL/ZsvlpB6zANuQrQI0e2Ks\nQh5L\r\n=P4iO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEDKbCU8dXQyzU9IrHiNhDpXi9rMJ28FlbtBZcpC8FkCAiEAgjrXn8A3/TKoWYyzQbV5XegMN/JRZdG1asgIUSu2bHs="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.0-rc.10_1576223097565_0.8539496205377679"},"_hasShrinkwrap":false},"7.0.0-rc.11":{"name":"react-table","version":"7.0.0-rc.11","description":"Hooks for building lightweight, fast and extendable datagrids for React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"dist/index.js","module":"dist/index.es.js","scripts":{"commit":"git add . && git-cz","test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"yarn test:jest","test:jest":"jest","build":"cross-env NODE_ENV=production rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,examples/*/src,examples/*/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"react":"^16.8.3","react-dom":"^16.8.3"},"devDependencies":{"@babel/core":"^7.7.2","@babel/preset-env":"^7.7.1","@babel/preset-react":"^7.7.0","@babel/runtime":"^7.7.2","@commitlint/cli":"^8.2.0","@commitlint/config-conventional":"^8.2.0","@svgr/rollup":"^4.3.3","@testing-library/dom":"^6.10.1","@testing-library/jest-dom":"^4.2.4","@testing-library/react":"^9.3.2","babel-eslint":"9.x","babel-jest":"^24.9.0","commitizen":"^4.0.3","core-js":"3.4.1","cross-env":"^6.0.3","dtslint":"^0.9.8","eslint":"6.6.0","eslint-config-prettier":"^6.7.0","eslint-config-react-app":"^5.0.2","eslint-config-standard":"^14.1.0","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"4.4.1","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^10.0.0","eslint-plugin-prettier":"^3.1.1","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.16.0","eslint-plugin-react-hooks":"2.3.0","eslint-plugin-standard":"^4.0.1","husky":"^3.1.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","jest-cli":"^24.9.0","jest-runner-eslint":"^0.7.5","jest-watch-select-projects":"^1.0.0","jest-watch-typeahead":"^0.4.2","lint-staged":"^9.4.3","prettier":"^1.19.1","prop-types":"^15.5.0","react":"^16.12.0","react-dom":"^16.12.0","rollup":"^1.27.3","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size":"^0.2.1","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2","snapshot-diff":"^0.6.1"},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"browserslist":"> 0.25%, not dead","licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.0-rc.11","dist":{"shasum":"98c5299ce16a09c8899727955fb4505bd1ed64ac","integrity":"sha512-Wj2amgPpi69MyMvjIQZMTp+bhun5uAjBtHbDIfAT5n/xa3DN0Frby5aSlMmrmbuWAIB3BLM2ak6hfkuWspXX/A==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.0-rc.11.tgz","fileCount":48,"unpackedSize":778632,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd+aIgCRA9TVsSAnZWagAAUOoP/RVOJ100xzV/7EitYuqz\nEQtZ1iMqzy1raQd4m+WpKMYytarhBVnFPwtyVDxFisbS8mK3Wn4D/c4AuOR+\nfguV0nWIao3H5ymtDpJ++BcAcFu7zdTPbLwU2aSMZ9OiyWuMkjAxlVIdnfcL\nWFUiF2XfAG9aZo1gmDZPmYXbfvfPnX1uNNr7W7Eso04TNwrTdyRexDAn+xiM\nBa+PF3sjPU0xEEvsTurslQJEQK6rli3yHFaAoG+l2bfpxy+tbf5jSZK09WsH\n7uOjQhvROq5mJqfBUkkiiaKdRQUuU9F1+ixvnavJRpCed23lg6bBAHp0WnkK\ngrwQumlBJwkKuzvVwxJNQUlrbWQxxMmSdLmUUu0xERACWdiWT2i9laPXbcQs\nn6/aglcCzF4WPH7eMmb6TfGPeJrE+GsI5dJ8y1CbihTILuMXE8U3JYFUfJUN\nvvwhWFQknDgUqGGIwV75rg5eC2MVE5Jptk2nTyBKYMzGPGOISCmiMma+3vAE\n6yBrzXOp0UWU/PXhngqa/+u/HmVivjpMe+pT/iAod+PihOlxLwSfa6tQPMYg\nypMZMLe/R/cIzByYxdKm+o0PMPS8FrXadmYCLwzAPf4363XTj3YrjwZfEZyB\nRSZBiHYS4d1gbqOD7QQnlzTwmKBjKeRJ41IvKqv2zcbZEAO03Yg4QowRsnYl\nzTO8\r\n=jCaK\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAX0isJA+XVFpaF3gobpyuUJx68IrHafuEggSTAgMsIaAiEA/ajnYRdFBtUMKI233NmBRoCSyrBJUqy48MJ0QAiITuA="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.0-rc.11_1576641055500_0.1350695980353398"},"_hasShrinkwrap":false},"7.0.0-rc.12":{"name":"react-table","version":"7.0.0-rc.12","description":"Hooks for building lightweight, fast and extendable datagrids for React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"dist/index.js","module":"dist/index.es.js","scripts":{"commit":"git add . && git-cz","test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"yarn test:jest","test:jest":"jest","build":"cross-env NODE_ENV=production rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,examples/*/src,examples/*/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"react":"^16.8.3","react-dom":"^16.8.3"},"devDependencies":{"@babel/core":"^7.7.2","@babel/preset-env":"^7.7.1","@babel/preset-react":"^7.7.0","@babel/runtime":"^7.7.2","@commitlint/cli":"^8.2.0","@commitlint/config-conventional":"^8.2.0","@svgr/rollup":"^4.3.3","@testing-library/dom":"^6.10.1","@testing-library/jest-dom":"^4.2.4","@testing-library/react":"^9.3.2","babel-eslint":"9.x","babel-jest":"^24.9.0","commitizen":"^4.0.3","core-js":"3.4.1","cross-env":"^6.0.3","dtslint":"^0.9.8","eslint":"6.6.0","eslint-config-prettier":"^6.7.0","eslint-config-react-app":"^5.0.2","eslint-config-standard":"^14.1.0","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"4.4.1","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^10.0.0","eslint-plugin-prettier":"^3.1.1","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.16.0","eslint-plugin-react-hooks":"2.3.0","eslint-plugin-standard":"^4.0.1","husky":"^3.1.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","jest-cli":"^24.9.0","jest-runner-eslint":"^0.7.5","jest-watch-select-projects":"^1.0.0","jest-watch-typeahead":"^0.4.2","lint-staged":"^9.4.3","prettier":"^1.19.1","prop-types":"^15.5.0","react":"^16.12.0","react-dom":"^16.12.0","rollup":"^1.27.3","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size":"^0.2.1","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2","snapshot-diff":"^0.6.1"},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"browserslist":"> 0.25%, not dead","licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.0-rc.12","dist":{"shasum":"28230d9077042cac3afbdad8f1d7b8c8fbddca11","integrity":"sha512-myMnYvWKUu63oUIcPaSJ8WaJuiAlus7JLDtbaXMCrGBFHObm/8eyyVzx1uQW1dYFEhKLzxlWQH7v2g01Ottlzg==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.0-rc.12.tgz","fileCount":48,"unpackedSize":780630,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd+bTICRA9TVsSAnZWagAA010P/jpqY9p68EhdUP6CGTJ2\nTVlZ3DdBdn/NS37pAbbrNFXRB/gC1AEcTFjuol6hdiTcOu7eBGKYLY/l0/pj\ngx/o2d7KpE8aKBmEbTMiCZbatCOCQILwXr6Kbdppfu7pOAJ0j9G//S0vojl5\nLgrPSw0w9m26ei83DUxSPDJKxckFCb3OvzVACgO1fv75Rf/niyhoKu+sg1IW\nwL6Q3beJAgvkS8i6nPgusu6Z3GxmEI8vNMT6GK05YAxBALr6DV8EwjWZXqnR\nose8aOufx1u0ky2si4LX0F4j2QRpiukjADq0Sa8ldoRjMwGJo1FcB2wQqQXZ\nUyvgUfvrXVadQDBMRFRmaYHQenthstJVpXlzXVqBukUH4CYgBKHaL6DULDY4\nchb//3SbOLgTJT6Rs/xF9sEq78BeMKKWNq8b4MHgPcELmrwV7+FGqu5gULvX\nC+/DirZE1Wg8gO6sU3k4WoZd14aonE2ydWJlx6ziJUsaifxRbRJfhYErOz2t\nxRTSppYfHP5aRc2I2DqK1HfdRa4y3x54pm6agcgp3eEuFjeU1M4JlwYLGeQ9\nMCQ99jPHxCoYRe5pnBuakOkKcx/tZtlIZM6wrWK+YSPpce4GDE+seFxtCuQ1\nHHvjKQ8vvjHhHB16ZAqcdGr3DLErQoQ98rYqFdeMTavHs9PUNwEicjg9xeHd\ngYHN\r\n=dcA2\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEvp/8P3i3VDxLoTorZvz3ISoc3smjV5dMSeRNBKcumdAiEA+MrswqMcz61K9nO+C7xA7EYx8KWe76A9ta6fZB64GbE="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.0-rc.12_1576645832132_0.8955369354975289"},"_hasShrinkwrap":false},"7.0.0-rc.13":{"name":"react-table","version":"7.0.0-rc.13","description":"Hooks for building lightweight, fast and extendable datagrids for React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"dist/index.js","module":"dist/index.es.js","scripts":{"commit":"git add . && git-cz","test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"yarn test:jest","test:jest":"jest","build":"cross-env NODE_ENV=production rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,examples/*/src,examples/*/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"react":"^16.8.3","react-dom":"^16.8.3"},"devDependencies":{"@babel/core":"^7.7.2","@babel/preset-env":"^7.7.1","@babel/preset-react":"^7.7.0","@babel/runtime":"^7.7.2","@commitlint/cli":"^8.2.0","@commitlint/config-conventional":"^8.2.0","@svgr/rollup":"^4.3.3","@testing-library/dom":"^6.10.1","@testing-library/jest-dom":"^4.2.4","@testing-library/react":"^9.3.2","babel-eslint":"9.x","babel-jest":"^24.9.0","commitizen":"^4.0.3","core-js":"3.4.1","cross-env":"^6.0.3","dtslint":"^0.9.8","eslint":"6.6.0","eslint-config-prettier":"^6.7.0","eslint-config-react-app":"^5.0.2","eslint-config-standard":"^14.1.0","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"4.4.1","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^10.0.0","eslint-plugin-prettier":"^3.1.1","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.16.0","eslint-plugin-react-hooks":"2.3.0","eslint-plugin-standard":"^4.0.1","husky":"^3.1.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","jest-cli":"^24.9.0","jest-runner-eslint":"^0.7.5","jest-watch-select-projects":"^1.0.0","jest-watch-typeahead":"^0.4.2","lint-staged":"^9.4.3","prettier":"^1.19.1","prop-types":"^15.5.0","react":"^16.12.0","react-dom":"^16.12.0","rollup":"^1.27.3","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size":"^0.2.1","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2","snapshot-diff":"^0.6.1"},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"browserslist":"> 0.25%, not dead","licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.0-rc.13","dist":{"shasum":"2bfb2684911abb524994e3e3761714f0a73154be","integrity":"sha512-qM1CyqpB33DN8xMQY+R9OQmrmODhV/rcH9+d7JzPNGb1cTMPgJ58LiI0z9KZJ1zcmSLD0P6CoUXUnVBaRp5PMg==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.0-rc.13.tgz","fileCount":48,"unpackedSize":782346,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd+mR0CRA9TVsSAnZWagAAbjkP/3AHn/6SALi9ztDc649C\ngwwruHjUczpmODPmo5e2pjMqxPs564n4jAGxLLmOSVxWCcfrXcgBc+AduU8W\nRX7qjIyM5SFfRmPv2QwNNRqDuGyhYIRS9fZzWzMJBymDsBvW+5mnSIO2jRfb\nUeFRCOGhxdlNJJQII6T73mp99WvZQ1OWalkA+aN82T09UJtQ94DVEFAzTSMG\nHmv1NJQs48cUts4OUZKBcoAxwTkZyRasYe5UYRtflW1EXL9nyeLhjnAB8e5/\nw/UVcqh7nJzOy/JnBIPEU7ki7QFLHV644V7A75MqUn5uiwY4Fdhzn3cpC6Jz\nzKqdnKBc1yLwEz2riN4vaxFaC2qGTFkLHFsuqo43LGP6FIL6E1Y757JZehzN\nASqugLiO/m0mLLQ2oyxm2ZXwSIfUEYUogXn91AaspeBgMMIaiAGvB8aIOirZ\npxwPfNbe/SAbGok/bSNKedwrrY+WqftxPDcSoD/padFa6Wh+gsMcSnAP9KTj\nG98Lrjaq1zDUl8s2lFY1mcrVzNwn3P00WFOzR2JlO4FXKxdkpid+D8X4AeCb\nDnBuPV/K/744fjpivXbKnuql80u5V7+MfamfX9CI1fYYJ8RKqRkdI0fCFQEn\nL1dXQLfAgVsPMbv2uze4l+0C9tcjQ2aQHXxB2vhDbLRY0Jc1pnz4e2yyEoTw\nheii\r\n=scSf\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICuPtuTmQWhvLJosR53sKQHNCSPcPhGhr8vYXoZ/5sCdAiBdKetpZtfkCr/8xe0h07huQN1X38FatlKls3aTLWtc8w=="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.0-rc.13_1576690804200_0.16679235260038028"},"_hasShrinkwrap":false},"7.0.0-rc.14":{"name":"react-table","version":"7.0.0-rc.14","description":"Hooks for building lightweight, fast and extendable datagrids for React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"dist/index.js","module":"dist/index.es.js","scripts":{"commit":"git add . && git-cz","test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"yarn test:jest","test:jest":"jest","build":"cross-env NODE_ENV=production rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,examples/*/src,examples/*/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"react":"^16.8.3","react-dom":"^16.8.3"},"devDependencies":{"@babel/core":"^7.7.2","@babel/preset-env":"^7.7.1","@babel/preset-react":"^7.7.0","@babel/runtime":"^7.7.2","@commitlint/cli":"^8.2.0","@commitlint/config-conventional":"^8.2.0","@svgr/rollup":"^4.3.3","@testing-library/dom":"^6.10.1","@testing-library/jest-dom":"^4.2.4","@testing-library/react":"^9.3.2","babel-eslint":"9.x","babel-jest":"^24.9.0","commitizen":"^4.0.3","core-js":"3.4.1","cross-env":"^6.0.3","dtslint":"^0.9.8","eslint":"6.6.0","eslint-config-prettier":"^6.7.0","eslint-config-react-app":"^5.0.2","eslint-config-standard":"^14.1.0","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"4.4.1","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^10.0.0","eslint-plugin-prettier":"^3.1.1","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.16.0","eslint-plugin-react-hooks":"2.3.0","eslint-plugin-standard":"^4.0.1","husky":"^3.1.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","jest-cli":"^24.9.0","jest-runner-eslint":"^0.7.5","jest-watch-select-projects":"^1.0.0","jest-watch-typeahead":"^0.4.2","lint-staged":"^9.4.3","prettier":"^1.19.1","prop-types":"^15.5.0","react":"^16.12.0","react-dom":"^16.12.0","rollup":"^1.27.3","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size":"^0.2.1","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2","snapshot-diff":"^0.6.1"},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"browserslist":"> 0.25%, not dead","licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.0-rc.14","dist":{"shasum":"bb4171fbdd56d78dd5f6b9e18694a36c00bd6261","integrity":"sha512-9NyzAE0kLH8HA+DK86ynxVDxniO5ZdggAqI7nDKauWXQGVYNFId8+JJSescJ2vwP9nR2JKyCEDG9c+CjIaLNkA==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.0-rc.14.tgz","fileCount":48,"unpackedSize":788200,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd+nYRCRA9TVsSAnZWagAAgG4QAIroaWBRsisQQkqWnGEd\nUpWDDd6GSAb1IeLptlryWaj983WtUUCYeQ7ySiynOqZWephCZllqnxU/WvaL\nolvAEyn0bDfB9A1jPgG/gvgNUG7X1z1TZIDvUa8OVyxen9RdMgVk0siBsYg5\nVY/BVu9wGHlH/CWfBn35v8kZGzCDKPES3Q2DBU7bmA4uatdtOaYtJk1ObYOs\nSEOXJR/L0KBhpnjWzlW7/iJ92WL579R5VrYDBLetedt13NgoCynbB2b7FNS5\nSDL0Bmi+fJ/cCvtip7GEBA3AaF2MgQCeNSCU6mcP31UroAa6c5DuaAoklzWi\nYbl11VgZ1JHBp0GyeUtc+4mUf9s3amToLotN8T9aVTFpRuKBEODpA5LMb6x6\nDBix2+bEM66kZ6X9eaibGILT2r1CuW9eeZ5HCbnz+zLMyBF7r2Jv/qGQQYbC\ndpvx2IoUGE/Y5734t4KGa4663GWW5opWDSLF/gYZfBA/dtSpfyjgQPXYi+yl\nysQGa2IWPYv8LSFB1ojm9ejRhmvohrw4Qu/AmEVCAwZWvukdST9mc4+yLoFx\nquLnWSjnaJYtf0Hzlbbs3q0JHAk5BjVyLFX/n/eKy1+1yrRA/Un8znTmHFoQ\nHzg241fwsQVQ6hwVf1n7u6QhszIEs1zewtPjVnIedRjnAxeotmZ8dy2cw2pw\n3BT0\r\n=8+da\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIF2Dtb6ZQsEiOqC3MXCzKqKCFaDXk9mqIgTl1fqLpkVMAiEAtNrDLoKoFNYMiQj3qdcDsSqUC4F1UhwAs3pWhJ7J+4o="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.0-rc.14_1576695312480_0.41518402233693075"},"_hasShrinkwrap":false},"7.0.0-rc.15":{"name":"react-table","version":"7.0.0-rc.15","description":"Hooks for building lightweight, fast and extendable datagrids for React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"dist/index.js","module":"dist/index.es.js","scripts":{"commit":"git add . && git-cz","test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"yarn test:jest","test:jest":"jest","build":"cross-env NODE_ENV=production rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,examples/*/src,examples/*/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"react":"^16.8.3","react-dom":"^16.8.3"},"devDependencies":{"@babel/core":"^7.7.2","@babel/preset-env":"^7.7.1","@babel/preset-react":"^7.7.0","@babel/runtime":"^7.7.2","@commitlint/cli":"^8.2.0","@commitlint/config-conventional":"^8.2.0","@svgr/rollup":"^4.3.3","@testing-library/dom":"^6.10.1","@testing-library/jest-dom":"^4.2.4","@testing-library/react":"^9.3.2","babel-eslint":"9.x","babel-jest":"^24.9.0","commitizen":"^4.0.3","core-js":"3.4.1","cross-env":"^6.0.3","dtslint":"^0.9.8","eslint":"6.6.0","eslint-config-prettier":"^6.7.0","eslint-config-react-app":"^5.0.2","eslint-config-standard":"^14.1.0","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"4.4.1","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^10.0.0","eslint-plugin-prettier":"^3.1.1","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.16.0","eslint-plugin-react-hooks":"2.3.0","eslint-plugin-standard":"^4.0.1","husky":"^3.1.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","jest-cli":"^24.9.0","jest-runner-eslint":"^0.7.5","jest-watch-select-projects":"^1.0.0","jest-watch-typeahead":"^0.4.2","lint-staged":"^9.4.3","prettier":"^1.19.1","prop-types":"^15.5.0","react":"^16.12.0","react-dom":"^16.12.0","rollup":"^1.27.3","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size":"^0.2.1","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2","snapshot-diff":"^0.6.1"},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"browserslist":"> 0.25%, not dead","licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.0-rc.15","dist":{"shasum":"bb855e4e2abbb4aaf0ed2334404a41f3ada8e13a","integrity":"sha512-ofMOlgrioHhhvHjvjsQkxvfQzU98cqwy6BjPGNwhLN1vhgXeWi0mUGreaCPvRenEbTiXsQbMl4k3Xmx3Mut8Rw==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.0-rc.15.tgz","fileCount":49,"unpackedSize":816752,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd+osDCRA9TVsSAnZWagAA3hMP/jGwOoGauduUS1ZitI6X\nCdUJFfWJp7ph6OwlSUla5z8wxI741rHsc3NjKQSHRljOBxrq7bwz9t5cuCJ5\n2vUzjH4HB+KORvACHYrzCJz4tX7ZrWUQ00NM8qS+JjQKwMihfiaVeeq+X35u\nQdy+MfpGUhDWE1VJTY+7OJ6ve/04BNh6ypaFgjZUcdEOGu8FUKL+Op6y9E5F\nMzgyZsHnOwvTju16gJ7Nw0KhZNHg6Hr01P7ELao3UnMwzKh5WrTNoAWV+uPR\nEqCcxW3MHN0uLMfUk9jIDNaVQ6lBBJFLNHBQxyU0EFQ6cOEAa7N0vLMJOwJK\nB0enPd/+i0rxFA6h8NzNf0k862OLSsvJzVCNHTDu21D5X48BL7UGrn/QyqwY\nVTk438dWxZGJ2OA9/uZ2dF9R70t6unYB7smeMxYdiLUsgKqteX8pMqGyu7sS\nf73RY8S3rVWgI3ivNhcBsh7iIw/5S9SYPIDfF+CYpjcQO/j+W0oy5ly7+nnx\nMVNWvip7Wp/rLL3moFd4uTGQX9VC18itO6sTyIlNVqae/GdwGOLoDAbBxL1E\nTetFLdrlU4sw3Wxo8uccn11J7lIXEQdf2552x3L25DfVixK3rd4RZSSzot/V\n0aBjjlONVeVBAqdI/Nz1VmOCvjZgvn58rr248eJeDx/YpYV+cYSQg+HIGeaT\nMlvv\r\n=7w3X\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDmlQAgLjSBMj7FTUZDBL/dCQj3iJ4tpeHa5Iu6v1i9cAiEAiu2r83H0r5iYCwRJH+lGHlUHlGKqZu6TDh3DvrDKFJw="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.0-rc.15_1576700675312_0.6094693542991747"},"_hasShrinkwrap":false},"7.0.0-rc.16":{"name":"react-table","version":"7.0.0-rc.16","description":"Hooks for building lightweight, fast and extendable datagrids for React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"dist/index.js","module":"dist/index.es.js","scripts":{"commit":"git add . && git-cz","test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"yarn test:jest","test:jest":"jest --coverage","test:coverage":"yarn test:jest; open coverage/lcov-report/index.html","build":"cross-env NODE_ENV=production rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,examples/*/src,examples/*/src/**}/*.{md,js,jsx,tsx} --write"},"peerDependencies":{"react":"^16.8.3","react-dom":"^16.8.3"},"devDependencies":{"@babel/core":"^7.7.2","@babel/preset-env":"^7.7.1","@babel/preset-react":"^7.7.0","@babel/runtime":"^7.7.2","@commitlint/cli":"^8.2.0","@commitlint/config-conventional":"^8.2.0","@svgr/rollup":"^4.3.3","@testing-library/dom":"^6.10.1","@testing-library/jest-dom":"^4.2.4","@testing-library/react":"^9.3.2","babel-eslint":"9.x","babel-jest":"^24.9.0","commitizen":"^4.0.3","core-js":"3.4.1","cross-env":"^6.0.3","dtslint":"^0.9.8","eslint":"6.6.0","eslint-config-prettier":"^6.7.0","eslint-config-react-app":"^5.0.2","eslint-config-standard":"^14.1.0","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"4.4.1","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^10.0.0","eslint-plugin-prettier":"^3.1.1","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.16.0","eslint-plugin-react-hooks":"2.3.0","eslint-plugin-standard":"^4.0.1","husky":"^3.1.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","jest-cli":"^24.9.0","jest-diff":"^25.1.0","jest-runner-eslint":"^0.7.5","jest-watch-select-projects":"^1.0.0","jest-watch-typeahead":"^0.4.2","lint-staged":"^9.4.3","prettier":"^1.19.1","prop-types":"^15.5.0","react":"^16.12.0","react-dom":"^16.12.0","rollup":"^1.27.3","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size":"^0.2.1","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2","serve":"^11.2.0"},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"browserslist":"> 0.25%, not dead","dependencies":{"@babel/plugin-transform-runtime":"^7.8.3"},"licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.0-rc.16","dist":{"shasum":"61aa22e5c6e4796ea3a0085653f5e4bb90bdab5d","integrity":"sha512-2wcGKO56gKlE1IwJnFatCn1yzHIAwRgbTJJQeoSiERJ/Ed6VeLdJLMJkLuSnxZCwD8CjhZD+C/iXEaFubJVW3A==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.0-rc.16.tgz","fileCount":54,"unpackedSize":986331,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeSLDdCRA9TVsSAnZWagAAVzMP/0DrV9lbXdfklDGEEura\nlSbG9R7ba36IJIuj8o43+WoYJclIBfwDtHlVhYWICGS9b5PvvBK2WHODUSB9\nXuggjVnBV+p/+iuTGSq0J92Ca3bGGaAEaQg8mYPZ9CsFM12gdoKbAbzDnckX\n5zu2UNYgYgT1nIAmKABTAV42jPtnDnDi6KXegNy3sGrLtiJNIeGJfB6dNGFB\nG1hcJNpuhQWnSe/beoTvb55/c69YFZxL0D/OM7bboMk+ypZSjCwK3BgH80WA\njbCeyxacY8E9Mz4+vf879YJhRNlBflsCTlq7lnkzG8/ohLTGA/opzQ2nT/w+\nD9gquP6Gq4MzHyx2NeF5sr9w1qzM+h+aSgpRh+gaZUKPifr++JJKiH/DjE+7\n0uGZEGzWIaGKi5bgNhHDLz4VEwVYtf8GDh1Lv1T6ffEyghpgrzfZp5e3ixud\nG2o5lKycsNrX2g3AFdcpQCHUkgZhimELGvP4W5ziu7aXWe2VqFcjDxJpMDvN\nOIJBC3xKHSi0Jk4Z+fONFdZQPR4+93gL9Tki6GsWoP3kmyLd5CZdijKKcmx6\ngP7H4mU3iZIqZkbYp5kvfeGR8Za77hj7U4eA6AuWbuIhXaAEns60kBN8GTu1\n2xhV52AMwBXwkZQ1d/5BPTNjPtp+nLlViLbxJWjuSH/GaBAd63KM8jxLf78P\nbRMV\r\n=NH7B\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCkQ34yVt19Ssfxxj4rVhr+ADayZLs9KELEEPBszcONXwIhAJEn0nt2CXcc6ho8Bz2MJS6qNqII7TKH1tX/ZE/nEjJ2"}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.0-rc.16_1581822172560_0.7849019054154589"},"_hasShrinkwrap":false},"7.0.0":{"name":"react-table","version":"7.0.0","description":"Hooks for building lightweight, fast and extendable datagrids for React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"index.js","scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"yarn test:jest","test:jest":"jest --coverage","test:coverage":"yarn test:jest; open coverage/lcov-report/index.html","build":"cross-env NODE_ENV=production rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,examples/*/src,examples/*/src/**}/*.{md,js,jsx,tsx} --write"},"browserslist":"> 0.25%, not dead","peerDependencies":{"react":"^16.8.3"},"devDependencies":{"@babel/core":"^7.7.2","@babel/plugin-transform-runtime":"^7.8.3","@babel/preset-env":"^7.7.1","@babel/preset-react":"^7.7.0","@babel/runtime":"^7.7.2","@svgr/rollup":"^4.3.3","@testing-library/dom":"^6.10.1","@testing-library/jest-dom":"^4.2.4","@testing-library/react":"^9.3.2","@testing-library/react-hooks":"^3.2.1","babel-eslint":"9.x","babel-jest":"^24.9.0","core-js":"3.4.1","cross-env":"^6.0.3","eslint":"6.6.0","eslint-config-prettier":"^6.7.0","eslint-config-react-app":"^5.0.2","eslint-config-standard":"^14.1.0","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"4.4.1","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^10.0.0","eslint-plugin-prettier":"^3.1.1","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.16.0","eslint-plugin-react-hooks":"2.3.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.0.0","jest":"^24.9.0","jest-cli":"^24.9.0","jest-diff":"^25.1.0","jest-runner-eslint":"^0.7.5","jest-watch-select-projects":"^1.0.0","jest-watch-typeahead":"^0.4.2","lint-staged":"^9.4.3","prettier":"^1.19.1","prop-types":"^15.5.0","react":"^16.12.0","react-dom":"^16.12.0","react-test-renderer":"^16.13.0","rollup":"^1.27.3","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size":"^0.2.1","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2","serve":"^11.2.0"},"licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.0","dist":{"shasum":"3297e454cbffe916626b184f5394d7e7e098fa36","integrity":"sha512-/RKUYLuqrupUs0qHdjdQLmgwdQ9mgXPnpshqv2T+OQUGhTu0XuLXVc6GOIywemXNf6qjL3dj81O6zALLK74Emw==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.0.tgz","fileCount":59,"unpackedSize":1479982,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeZ+pZCRA9TVsSAnZWagAAubwP/iSDm2IPoRxxjg35MCxK\nNZ5hMBbN765monh8NWU+fS4m1iA5bNWr3KBO9wnR3q3ZQx1jpXvJqrkd2uQv\nEkbAf28Ds4ipADlfSGNQzVY+0gS012A92AFgAkO+uywTA0u2m8gyOZ6o9PvX\npadJrLZ5QIUwbxCwAjizeEVmQGKzbFLJtGxlp/dO55XcBDMTc3rhmNaekBlJ\nlPES4EB9aUPR6VoKTagwIRBrHF5AgDLDbFHtx0csMHlXMzF70MN754GeuqFM\nc5DJb75XBhXFEjTKKVM1hMNgy2FFWTccw9q+2mZ6W+N4KZk3XFtW+Nkf/dW1\n3Hb+9NqZtgyTzJE9oHcz2/LUGvBQ5pGeiWuOIWsBbhVb4RHIwnvTVViTjP0Y\nJdu9o8kAe3y48PJgHlGMzZk7+JUUnOi3FAUkTFExnCgnqoBLytsKlTSWCani\nbgDu8QFyE8nIge2vcTRrdEqUvMXm7+W7Ix6JWi/5SUVzFBhgI2P2mhjKubl2\nWy+b65V9b3hvlh9OoVT87YdaijEyV3uemyOlnzgSDe+wPN4IhEblPWKeTOfD\ntLg5Q8LG2JJ4khJNGRZ+fTCDlA6byifm3Ig2vRe8Z84sEZlPuyHOr2jizgs2\naJ20IZs56WXLrGhWdqyP9q0xK5Si8/X45BBTAToUZqFX/C4ybQfpdQaFMR9I\nD9VV\r\n=dmpO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD4NdSaHP5ZX9HTg/awXpELEafqsAhtbzEY+yvDClwC+gIhAOWTaWyA0f9e+YhpjR7sb426hUNcPJXqSlPcp/I+cuZT"}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.0_1583868505412_0.5846312226763919"},"_hasShrinkwrap":false},"7.0.1":{"name":"react-table","version":"7.0.1","description":"Hooks for building lightweight, fast and extendable datagrids for React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"index.js","scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"yarn test:jest","test:jest":"jest --coverage","test:coverage":"yarn test:jest; open coverage/lcov-report/index.html","build":"cross-env NODE_ENV=production rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,examples/*/src,examples/*/src/**}/*.{md,js,jsx,tsx} --write","docz:build":"docz build","docz:dev":"docz dev","docz:serve":"docz build && docz serve"},"browserslist":"> 0.25%, not dead","dependencies":{"docz":"^2.2.0","gatsby-theme-docz":"^2.2.0"},"peerDependencies":{"react":"^16.8.3"},"devDependencies":{"@babel/core":"^7.7.2","@babel/plugin-transform-runtime":"^7.8.3","@babel/preset-env":"^7.7.1","@babel/preset-react":"^7.7.0","@babel/runtime":"^7.7.2","@svgr/rollup":"^4.3.3","@testing-library/dom":"^6.10.1","@testing-library/jest-dom":"^4.2.4","@testing-library/react":"^9.3.2","@testing-library/react-hooks":"^3.2.1","babel-eslint":"9.x","babel-jest":"^24.9.0","core-js":"3.4.1","cross-env":"^6.0.3","eslint":"6.6.0","eslint-config-prettier":"^6.7.0","eslint-config-react-app":"^5.0.2","eslint-config-standard":"^14.1.0","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"4.4.1","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^10.0.0","eslint-plugin-prettier":"^3.1.1","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.16.0","eslint-plugin-react-hooks":"2.3.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.0.0","jest":"^24.9.0","jest-cli":"^24.9.0","jest-diff":"^25.1.0","jest-runner-eslint":"^0.7.5","jest-watch-select-projects":"^1.0.0","jest-watch-typeahead":"^0.4.2","lint-staged":"^9.4.3","prettier":"^1.19.1","prop-types":"^15.5.0","react":"^16.12.0","react-dom":"^16.12.0","react-test-renderer":"^16.13.0","rollup":"^1.32.1","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size":"^0.2.1","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2","serve":"^11.2.0"},"licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.1","dist":{"shasum":"93165908bbec15a78f48d2975f4835df4ea2c131","integrity":"sha512-G4uq8EmSbItIHATpR77x52/ySs/NYWciU4dFAM70ZVc+lq7zUn7Ah1eoH3PK/K/5NfjtJFBeZMlK1hIFxzaJSg==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.1.tgz","fileCount":63,"unpackedSize":1481728,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJehMk7CRA9TVsSAnZWagAA1YcP/i9qRJSIH4e/6a/gHQ4O\n0bqa7JX+218JFkNpENri3NojfLoFJ9AHC2haU1Ti9bZ69xSmNDCjZPTJkrj0\nHPxbPGN0AMFdTrp+OFLV2ciso7L7vvLeJGl8+W3iEb5hTO4811ZMHuWUvU9T\n6KbxdOStJc7sUVkm2f480GRMMRjAEy4KDxsaNpClCkKpvlTbw/w9l7uYCrJC\n0Bc+wKXoRnWbMs80siBpmuI6koHbBE7FXMyx3KXNpnzmCZ88KFw9Kq5K+PIC\nVychYwm1gW/ab0U3SVKPyTh9QmpOFr/b2bi6ELLBssBx2cWm/t5ycHR5WUjT\n7qVKOpxeoUueo1PsKBDKsQHhD+q6tCGqcVIC1tT7LXarkM+dZP9cxfs+AHLx\nMT8j2nEzIErzCstccB/CRTyKWZG/LPIpSzszwSRF5qvHGA3zfyC6TLvjyjjF\nlcbW4cEqtrGOkiEZdbDZkDS2y2isRVzzKYIcNe1hBw5s1p10kIDCrzvFzltC\notC9fE0MOq5jnlOJ5ZQWJzpmMTT6Sx0z/Igbl3G3i1XbQq96qWPoIUXwU1jx\nz+bwOzBsat+4ej1NUCs7FrBXRJt/vemVupTvi2Qus7Lm/Hs1+r8dORCNCvXh\nQPg15Id0F7K0AWAOkpCgi9qm9rsbN8b90ZY85MFnDaeFpZlYqWLYZVkBDX/d\nQsPP\r\n=tOuk\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCI+bsZOQDu0S+nVRCK70W0YJ7G0aEd/RBGU4Vyw21AgQIhAKuYJqBYYBFK0ExoDs5ZlzBIP9rZR8p5s74mbZ14FH+C"}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.1_1585760570546_0.3418928746753733"},"_hasShrinkwrap":false},"7.0.2":{"name":"react-table","version":"7.0.2","description":"Hooks for building lightweight, fast and extendable datagrids for React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"index.js","scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"yarn test:jest","test:jest":"jest --coverage","test:coverage":"yarn test:jest; open coverage/lcov-report/index.html","build":"cross-env NODE_ENV=production rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,examples/*/src,examples/*/src/**}/*.{md,js,jsx,tsx} --write","docz:build":"docz build","docz:dev":"docz dev","docz:serve":"docz build && docz serve","postinstall":"node ./scripts/postinstall.js || exit 0"},"browserslist":"> 0.25%, not dead","dependencies":{"docz":"^2.2.0","gatsby-theme-docz":"^2.2.0"},"peerDependencies":{"react":"^16.8.3"},"devDependencies":{"@babel/core":"^7.7.2","@babel/plugin-transform-runtime":"^7.8.3","@babel/preset-env":"^7.7.1","@babel/preset-react":"^7.7.0","@babel/runtime":"^7.7.2","@svgr/rollup":"^4.3.3","@testing-library/dom":"^6.10.1","@testing-library/jest-dom":"^4.2.4","@testing-library/react":"^9.3.2","@testing-library/react-hooks":"^3.2.1","babel-eslint":"9.x","babel-jest":"^24.9.0","core-js":"3.4.1","cross-env":"^6.0.3","eslint":"6.6.0","eslint-config-prettier":"^6.7.0","eslint-config-react-app":"^5.0.2","eslint-config-standard":"^14.1.0","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"4.4.1","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^10.0.0","eslint-plugin-prettier":"^3.1.1","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.16.0","eslint-plugin-react-hooks":"2.3.0","eslint-plugin-standard":"^4.0.1","is-ci-cli":"^2.0.0","jest":"^24.9.0","jest-cli":"^24.9.0","jest-diff":"^25.1.0","jest-runner-eslint":"^0.7.5","jest-watch-select-projects":"^1.0.0","jest-watch-typeahead":"^0.4.2","lint-staged":"^9.4.3","prettier":"^1.19.1","prop-types":"^15.5.0","react":"^16.12.0","react-dom":"^16.12.0","react-test-renderer":"^16.13.0","rollup":"^1.32.1","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size":"^0.2.1","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2","serve":"^11.2.0"},"licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.2","dist":{"shasum":"4d95df86d942fe9226ea278c90209d35a98e7f98","integrity":"sha512-a+bh53D9oJCRdcn3lo15WuRh5aPhKCeIWJjuY/HpTyzQbidJutlv4/Q2KqgSpvcajG3IdJhRjx7y/wiydNeOdQ==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.2.tgz","fileCount":63,"unpackedSize":1481421,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJehRIwCRA9TVsSAnZWagAADJsP/3kgquNEHnQqUXOj4kT9\nfAa16mjfekDxueZbfQvbv930px9k+DPjx1BRAJlYNodQE3kLiKmMGMNynkpu\nk/o7eJ8CXCW4fCbXyJ32QweuMaSpb4m+KkHLcG9XyqnZbJtYjtIUHuJmVjek\n7Tayd+tYKT1SRBlkK8I4in4lFVNyzckQVgnZlSMFAYYjkseXq/tRDfi4su+v\n89XqWbC0QNzrDI2v9T7JyYMhBUDS2BFEleofqAJNIoQNdPG/LhOXKfvoJkjc\nYpEd2N8SqZ5ALIzoFKv1joCTRmKPlRxJ3zf6ozEbrhYVgFvNX34wgdnQAUb1\nr+sw2MmmokuBgMr7H+RDZ1r6uAeEpiV/eS2pYzlmFVABsuhTQgUADahPh0D6\nUHat6/vR9yZpovwojGgkvUeF71f3zdeKGdLqTB7c4apHyqZIG40nanlQMbSD\nl1nnxNowF8QhU6I/eJKndi7HIglCbTVG5m98cSHJjjCXKBj8POhbR4UYVTV7\nJIZZ/hgrHj56DVUSnXhvL5wunqUKXUTOqTgHFiIm7CP/xuxl4QISWB1jZGkm\nU6AmBT7bJ55eck1YiDWFfuXUxcLsvb/DpXD92ZKbASOv1VPlZsY1qJCoqYNO\nS3yfuk9sNpam5eX6aepBUL5mSFHuY2+Igo/eSXuUjdnuAGGX2pseIl8YOGgq\n3XK0\r\n=IFRF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEPY72TMAxDWbjnSluC+fellXwq+1Pe09Eu2oOuXz78/AiEA3f0wZzvTmyQEkbXeqT0I2ae8HZQOHxiNfn83WkUNZ9U="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.2_1585779247624_0.8483971452098151"},"_hasShrinkwrap":false},"7.0.3":{"name":"react-table","version":"7.0.3","description":"Hooks for building lightweight, fast and extendable datagrids for React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"index.js","scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"yarn test:jest","test:jest":"jest --coverage","test:coverage":"yarn test:jest; open coverage/lcov-report/index.html","build":"cross-env NODE_ENV=production rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,examples/*/src,examples/*/src/**}/*.{md,js,jsx,tsx} --write","docz:build":"docz build","docz:dev":"docz dev","docz:serve":"docz build && docz serve","postinstall":"node ./scripts/postinstall.js || exit 0"},"browserslist":"> 0.25%, not dead","peerDependencies":{"react":"^16.8.3"},"devDependencies":{"@babel/core":"^7.7.2","@babel/plugin-transform-runtime":"^7.8.3","@babel/preset-env":"^7.7.1","@babel/preset-react":"^7.7.0","@babel/runtime":"^7.7.2","@svgr/rollup":"^4.3.3","@testing-library/dom":"^6.10.1","@testing-library/jest-dom":"^4.2.4","@testing-library/react":"^9.3.2","@testing-library/react-hooks":"^3.2.1","babel-eslint":"9.x","babel-jest":"^24.9.0","core-js":"3.4.1","cross-env":"^6.0.3","docz":"^2.2.0","eslint":"6.6.0","eslint-config-prettier":"^6.7.0","eslint-config-react-app":"^5.0.2","eslint-config-standard":"^14.1.0","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"4.4.1","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^10.0.0","eslint-plugin-prettier":"^3.1.1","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.16.0","eslint-plugin-react-hooks":"2.3.0","eslint-plugin-standard":"^4.0.1","gatsby-theme-docz":"^2.2.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","jest-cli":"^24.9.0","jest-diff":"^25.1.0","jest-runner-eslint":"^0.7.5","jest-watch-select-projects":"^1.0.0","jest-watch-typeahead":"^0.4.2","lint-staged":"^9.4.3","prettier":"^1.19.1","prop-types":"^15.5.0","react":"^16.12.0","react-dom":"^16.12.0","react-test-renderer":"^16.13.0","rollup":"^1.32.1","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size":"^0.2.1","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2","serve":"^11.2.0"},"licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.3","dist":{"shasum":"8d50999b2610d1a3534d8ae0f93107db64273339","integrity":"sha512-C5YmCbQ8QVkbFcPVG6DvTzQxDR87ZTE3tiDBPG9wW/+7STu6AqsA16n2MHqB86AEpy3pu/M7jgO2W096JzNBbw==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.3.tgz","fileCount":65,"unpackedSize":1481772,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJehhrQCRA9TVsSAnZWagAA7rgP+wVyeWJvSikG0o874Q2Z\nBuBwCUES4jFqzy7isZFUjoiQAeI10LBeUmot4KQqPBO5MrlYaO5trxhE3fJX\nZNgwQ9xx3omfeZfIBe1t3TdWuwmw7EyMkd0QQW+rRlrGNM3T4B8ya3sdB/+I\nEXsE8HXNCFwbVZt6YhC0/ncTpToKRNIbnxVyaDR07akfih9CTm+091IR3hVz\npj9TiJW4achnF9MFieb+ZyQZd09wsiJGIRwzm6a2jitQdto+BBq8txzqoJJo\n5mPaLgo43QS3hYJjuo3ctNAHVevB14m0/qUhsCLeGhzbexnBR7DCgQJvdR5r\nqmteP+7D5H3TF2XR1qQc51dkRrR6d9o0E8/ZAKrQccAVeOmV3jaEJxKghOv7\nWUclgLtIiQIipIPwqnLrYg5Y7a0hw5cux58lJovXLja1kCwDK0BmTZmIHSog\nhIEkkyXhLFcR/LYTohiNl2eOu0rMPpdf6Mubx2gntPzzrrnVKkhFtWuEhCWo\nTQMZV8AHuPItAUrz7EPyT+GDI3ibQ/ZYARTjiW6ppxrRUwahG72ggi6qDqrP\n06aQEYsE/3fpe1q1BS84urO/w7odueZFyJCsyYkUsPsj15D5wx5f+PhNo/NF\n/hzTR1nJsXypWFliaIbdlxRGfq9zt94RD4ljP2LyUbmLdBZa2/W8g3dpczjc\nMVWP\r\n=2eYQ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCB9wwUZoyYOkq6i4Zb7xEniGMRTfV2wEjSfbkMSltg8wIhAK26yDv92hW3ZyETz0roCJPu+dd5zC7IL0mbE4R7umIu"}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.3_1585846992027_0.36824049572084694"},"_hasShrinkwrap":false},"7.0.4":{"name":"react-table","version":"7.0.4","description":"Hooks for building lightweight, fast and extendable datagrids for React","license":"MIT","homepage":"https://github.com/tannerlinsley/react-table#readme","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"index.js","scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"yarn test:jest","test:jest":"jest --coverage","test:coverage":"yarn test:jest; open coverage/lcov-report/index.html","build":"cross-env NODE_ENV=production rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,examples/*/src,examples/*/src/**}/*.{md,js,jsx,tsx} --write","docz:build":"docz build","docz:dev":"docz dev","docz:serve":"docz build && docz serve","postinstall":"node ./scripts/postinstall.js || exit 0"},"browserslist":"> 0.25%, not dead","dependencies":{"@scarf/scarf":"^0.1.5"},"peerDependencies":{"react":"^16.8.3"},"devDependencies":{"@babel/core":"^7.7.2","@babel/plugin-transform-runtime":"^7.8.3","@babel/preset-env":"^7.7.1","@babel/preset-react":"^7.7.0","@babel/runtime":"^7.7.2","@svgr/rollup":"^4.3.3","@testing-library/dom":"^6.10.1","@testing-library/jest-dom":"^4.2.4","@testing-library/react":"^9.3.2","@testing-library/react-hooks":"^3.2.1","babel-eslint":"9.x","babel-jest":"^24.9.0","core-js":"3.4.1","cross-env":"^6.0.3","docz":"^2.2.0","eslint":"6.6.0","eslint-config-prettier":"^6.7.0","eslint-config-react-app":"^5.0.2","eslint-config-standard":"^14.1.0","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"4.4.1","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^10.0.0","eslint-plugin-prettier":"^3.1.1","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.16.0","eslint-plugin-react-hooks":"2.3.0","eslint-plugin-standard":"^4.0.1","gatsby-theme-docz":"^2.2.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","jest-cli":"^24.9.0","jest-diff":"^25.1.0","jest-runner-eslint":"^0.7.5","jest-watch-select-projects":"^1.0.0","jest-watch-typeahead":"^0.4.2","lint-staged":"^9.4.3","prettier":"^1.19.1","prop-types":"^15.5.0","react":"^16.12.0","react-dom":"^16.12.0","react-test-renderer":"^16.13.0","rollup":"^1.32.1","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size":"^0.2.1","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2","serve":"^11.2.0"},"licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.4","dist":{"shasum":"456838661982c83c3682f156c59a41b4339a2120","integrity":"sha512-Uqpj+VnUIvsNWNtNFD1z2i7OCHdlhoJtQt0DWx3XOkZnvDyI/eCghK8YBfA9mY4TW7vEgCDLaRCcREC/fmcx6Q==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.4.tgz","fileCount":65,"unpackedSize":1481972,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJehkszCRA9TVsSAnZWagAAJrcP/0q8fDCAgNaOS+3zlSar\nbI9KSujYZJ53P1J5rdWKdZRAEL8N++4K23pcyHb5wcW8LwyJ9nT0YdfJ6LJu\nhKDeIiBTVfd8hs3/SqLoA2WjJG2c/RnfDHl2Aa2gjn0GgQOMNy4iaK4G+P5p\n6CIVSaqyK1NX6j+tXO8pUlcvjVSLjOhKL8AEQ+h2fBqARWOADWFiAa37VMAI\napr2yxQ/tNDJgvPPkViefqeFblutVAB8oEj15p5C9cjE2R8VaFnoUgKE0lcY\njMDwiMs8o+eBnw+FnhGmX+1uWXfUmBOxlFkIGQMFF/w1IEqOdLOxHs6L9NjI\nar+aEuHrys4a2oHrjDB9d2D1XoDw51HjawEXJx8MDB7ZRtbG/4zB+HrlksSJ\nqwau8xr3jirSL2+rlIoqOBtxFDycJRxTUrNc0/Nja0etjpcYSPYkBg7CoOCP\nVl8zxMbDeiQpW21+9cY9/z6GtBogyb3r3RaFll7Rm1OpUe4mHeZoP963ox2S\nNqYt3K8wB5qzJWfVJIn5kK5zRvqaQCCZsF2+JUtG/9IcE9sOnovRUsuv0F6T\nOCbkh0QYgMq5h/ZOkwvRPGqAPB8PkqePTCuiVGRF9tOJBs6AWsyFe0rfPehK\niKLaaDgZdwBr/q0q85SXXmzdDyKe/EQJxv3SkAkwk0SIZsqaY1HMSBrlG0DM\nHNEG\r\n=Zy4U\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGYUPUoja7AS7Gm0/aw1t623wSOQJMekbAHEls/NiCXvAiEA6RZPmHq+1NJVeY9wDaASpdweGFuqu8VeyqTH3ljXdLg="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.4_1585859378708_0.3428714302723017"},"_hasShrinkwrap":false},"7.0.5":{"name":"react-table","version":"7.0.5","description":"Hooks for building lightweight, fast and extendable datagrids for React","license":"MIT","homepage":"https://react-table.js.org/","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"index.js","scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"yarn test:jest","test:jest":"jest --coverage","test:coverage":"yarn test:jest; open coverage/lcov-report/index.html","build":"cross-env NODE_ENV=production rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,examples/*/src,examples/*/src/**}/*.{md,js,jsx,tsx} --write","docz:build":"docz build","docz:dev":"docz dev","docz:serve":"docz build && docz serve","postinstall":"node ./scripts/postinstall.js || exit 0"},"browserslist":"> 0.25%, not dead","dependencies":{"@scarf/scarf":"^1.0.4"},"peerDependencies":{"react":"^16.8.3"},"devDependencies":{"@babel/core":"^7.7.2","@babel/plugin-transform-runtime":"^7.8.3","@babel/preset-env":"^7.7.1","@babel/preset-react":"^7.7.0","@babel/runtime":"^7.7.2","@svgr/rollup":"^4.3.3","@testing-library/dom":"^6.10.1","@testing-library/jest-dom":"^4.2.4","@testing-library/react":"^9.3.2","@testing-library/react-hooks":"^3.2.1","babel-eslint":"9.x","babel-jest":"^24.9.0","core-js":"3.4.1","cross-env":"^6.0.3","docz":"^2.2.0","eslint":"6.6.0","eslint-config-prettier":"^6.7.0","eslint-config-react-app":"^5.0.2","eslint-config-standard":"^14.1.0","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"4.4.1","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^10.0.0","eslint-plugin-prettier":"^3.1.1","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.16.0","eslint-plugin-react-hooks":"2.3.0","eslint-plugin-standard":"^4.0.1","gatsby-theme-docz":"^2.2.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","jest-cli":"^24.9.0","jest-diff":"^25.1.0","jest-runner-eslint":"^0.7.5","jest-watch-select-projects":"^1.0.0","jest-watch-typeahead":"^0.4.2","lint-staged":"^9.4.3","prettier":"^1.19.1","prop-types":"^15.5.0","react":"^16.12.0","react-dom":"^16.12.0","react-test-renderer":"^16.13.0","rollup":"^1.32.1","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size":"^0.2.1","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2","serve":"^11.2.0"},"licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.0.5","dist":{"shasum":"619c069dc585bb1dbfaa2ad4384de8d267267054","integrity":"sha512-zm6NvcHlg3r4E4le6ESXKneaHEpPHAZJn+FAZDCleS0++JEKs1rPq9AtHMcZmiiqxKkerM4wco9mH2ztaX0zYQ==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.5.tgz","fileCount":61,"unpackedSize":855517,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeuwEfCRA9TVsSAnZWagAAlJwP/3E0oU4zxEdMjM1dP9OB\n8B8OrmWMhYirCrBdq0fiOYIzWguzx0dP3cPJyX2HZpoeDIumKTcDENlXqeyb\nUZFeAbOrDHKMlQuPa0xmx2teSIDvrWGZooqKCoPCZEu4wgAlacIyIVPqWwUJ\nfrudmT3gpZvC5U2ed79gHd3UNhVsbGmGM64RzIRsRZmGDikvOeU4uWrO/J0z\ne/dbwRwUUWq5sroXzdaYRMAXVWI4x0m3/0xRIEomxigbILBHUc/cgbaJ38uU\nsIYzdBFHrQD7dOmHTTH43TlgSQ8AhDciSBw4WUH8ARdS40iJXdXXrSF/R6Lg\nwwe+aWn34/1a+mTzi7XHIjUORjvNAvg1KObM6Ij8FgaKX3I7MloNNF/+7KiB\nIRHxHG8aMnrMeOtbMB9zEKyK3p5Awcz2aYcqKlbvAOrWgANS3Ckoc4O5cJ1R\nyWC7n6kPt4StypXtHm2taSH5wVTIIH+GRakOFNUQkgn7k82wXOAjRn/TUoww\nlnOgXzoaLwjKv8k/v/xotKuQHJZlN+GDP7IRMbxwNXTLqAKPCVONC4k2jFON\n+fSIq4bJvhtLk+s06ZbON2YAiPqQZu0XlCcfxAXjBlAqngDgIn6y3yOw6vSy\nkahU2+mu6WJbWeq9X1HxHcv23gYOdShVCEZe+j9h0yPPcspJuqqeY2MPF3W7\nGdOa\r\n=5jLJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGMul0Wgq+a7AtuSa3Cus9FNFLaDC31H6/fPjPZ2bOmuAiA/GgD0SpNHiCEvhJvSUz0aYL8yWvJ53ipj/JjQaMPz0Q=="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.5_1589313822770_0.6358131675313123"},"_hasShrinkwrap":false},"7.0.6":{"name":"react-table","version":"7.0.6","description":"Hooks for building lightweight, fast and extendable datagrids for React","license":"MIT","homepage":"https://react-table.js.org","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"index.js","scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"yarn test:jest","test:jest":"jest --coverage","test:coverage":"yarn test:jest; open coverage/lcov-report/index.html","build":"cross-env NODE_ENV=production rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,examples/*/src,examples/*/src/**}/*.{md,js,jsx,tsx} --write","docz:build":"docz build","docz:dev":"docz dev","docz:serve":"docz build && docz serve","postinstall":"node ./scripts/postinstall.js || exit 0"},"browserslist":"> 0.25%, not dead","dependencies":{"@scarf/scarf":"^1.0.4"},"peerDependencies":{"react":"^16.8.3"},"devDependencies":{"@babel/core":"^7.7.2","@babel/plugin-transform-runtime":"^7.8.3","@babel/preset-env":"^7.7.1","@babel/preset-react":"^7.7.0","@babel/runtime":"^7.7.2","@svgr/rollup":"^4.3.3","@testing-library/dom":"^6.10.1","@testing-library/jest-dom":"^4.2.4","@testing-library/react":"^9.3.2","@testing-library/react-hooks":"^3.2.1","babel-eslint":"9.x","babel-jest":"^24.9.0","core-js":"3.4.1","cross-env":"^6.0.3","docz":"^2.2.0","eslint":"6.6.0","eslint-config-prettier":"^6.7.0","eslint-config-react-app":"^5.0.2","eslint-config-standard":"^14.1.0","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"4.4.1","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^10.0.0","eslint-plugin-prettier":"^3.1.1","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.16.0","eslint-plugin-react-hooks":"2.3.0","eslint-plugin-standard":"^4.0.1","gatsby-theme-docz":"^2.2.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","jest-cli":"^24.9.0","jest-diff":"^25.1.0","jest-runner-eslint":"^0.7.5","jest-watch-select-projects":"^1.0.0","jest-watch-typeahead":"^0.4.2","lint-staged":"^9.4.3","prettier":"^1.19.1","prop-types":"^15.5.0","react":"^16.12.0","react-dom":"^16.12.0","react-test-renderer":"^16.13.0","rollup":"^1.32.1","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size":"^0.2.1","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2","serve":"^11.2.0"},"gitHead":"fddbc19d0130f17bada316ebc436de6069f144c9","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@7.0.6","_nodeVersion":"12.16.3","_npmVersion":"6.14.4","dist":{"integrity":"sha512-XP+mXWCDd6VNZ/fCq69yc/vCWRGTfhQHc0fsLrnMVwT9m3MmmErMLywMbYQkkDjg1OBbhoDXpuo/R7VKGpFbQg==","shasum":"ab7c9bb527339c49af39a4380884e55bbf67d8bc","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.0.6.tgz","fileCount":49,"unpackedSize":859560,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJevdcXCRA9TVsSAnZWagAAF3EP/iXqQgcGpsE04ZZyDTQU\nmAMGswymdOM54sfIow3sstMi5Wf8cIR2ZJzzUnHl8i93pucxFyBsKKjq/0Y8\nF6WV8qSx2XQRe5re2MAbDz7BUABKjlH2SpXxvojbCEsdd+1X5W2dHuF+HZxh\nN4VSzSKT+nPgjgQdwkgXXvaeh1UQhV8gqS0tmHDbxhqI2+PiPKYZGlN0XIGU\nM7l77VfZ5R2powPrLMEIT+AxLjx1t3BfkZSaWnxB6fW6AeOZpeB3++qu7C5q\ng2fqMrOcMHXsrMOIveowe3Mjc1V0/xwYt0uk1hctUzKY3hLcheJJ0SWGI1Re\nbJf+bJucucFLiFUtbajecryNWwPgtmyLSUXBR9TEneqGwlRS7frEFyDgQm8t\nIfrRYO39SusStR7W2AoMJfXv/8k9MLqzgUy7I2etGzHcoBsV7odi6tyFE0TV\nl9sbnrJPVaxUI/b9ePHLkB/x3eXibG2fXQC9rGR+5psSo6killPyATFHzak8\nlJ3RqPuWKimWi2eUrVycOn0ctaiqh1VqgR80IxAGxqqewi+Wjo9DfpsiyXHV\naH97wzKJxdp5+ni6Uv0ql8xCyMd6/iYNClpB0hE81VOaGLWUEK2SXQj63oB1\nS0yQcARpp29XVdXJlaawdhuTqqmV3CGdxjgF5iFop67Qc4EnLU+OL650Za9c\n2nbP\r\n=dJMs\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDVT7cNLqY8+y7g3m63cZxVI18yk2tHHNJmt+up6j9TPgIhAMxT5e5Fs6h5NQ9TnnzOfhrOcvog3ff0YmmwBVtCy+lf"}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.0.6_1589499670811_0.9699583434481351"},"_hasShrinkwrap":false},"7.1.0":{"name":"react-table","version":"7.1.0","description":"Hooks for building lightweight, fast and extendable datagrids for React","license":"MIT","homepage":"https://react-table.js.org","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"index.js","scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"yarn test:jest","test:jest":"jest --coverage","test:coverage":"yarn test:jest; open coverage/lcov-report/index.html","build":"cross-env NODE_ENV=production rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,examples/*/src,examples/*/src/**}/*.{md,js,jsx,tsx} --write","docz:build":"docz build","docz:dev":"docz dev","docz:serve":"docz build && docz serve","postinstall":"node ./scripts/postinstall.js || exit 0"},"browserslist":"> 0.25%, not dead","dependencies":{"@scarf/scarf":"^1.0.4"},"peerDependencies":{"react":"^16.8.3"},"devDependencies":{"@babel/core":"^7.7.2","@babel/plugin-transform-runtime":"^7.8.3","@babel/preset-env":"^7.7.1","@babel/preset-react":"^7.7.0","@babel/runtime":"^7.7.2","@svgr/rollup":"^4.3.3","@testing-library/dom":"^6.10.1","@testing-library/jest-dom":"^4.2.4","@testing-library/react":"^9.3.2","@testing-library/react-hooks":"^3.2.1","babel-eslint":"9.x","babel-jest":"^24.9.0","core-js":"3.4.1","cross-env":"^6.0.3","docz":"^2.2.0","eslint":"6.6.0","eslint-config-prettier":"^6.7.0","eslint-config-react-app":"^5.0.2","eslint-config-standard":"^14.1.0","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"4.4.1","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^10.0.0","eslint-plugin-prettier":"^3.1.1","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.16.0","eslint-plugin-react-hooks":"2.3.0","eslint-plugin-standard":"^4.0.1","gatsby-theme-docz":"^2.2.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","jest-cli":"^24.9.0","jest-diff":"^25.1.0","jest-runner-eslint":"^0.7.5","jest-watch-select-projects":"^1.0.0","jest-watch-typeahead":"^0.4.2","lint-staged":"^9.4.3","prettier":"^1.19.1","prop-types":"^15.5.0","react":"^16.12.0","react-dom":"^16.12.0","react-test-renderer":"^16.13.0","rollup":"^1.32.1","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size":"^0.2.1","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2","serve":"^11.2.0"},"gitHead":"7bc067c6385767a8e73dc73cb5ed1f6d250772ff","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@7.1.0","_nodeVersion":"12.16.3","_npmVersion":"6.14.4","dist":{"integrity":"sha512-AZpgW0Xpo6Z7jxXZIBovzCGoYVkuBwATsJh7X4+JXwq9JtDaorOmxWC9gKx5Hui4d+n+I99enyyJS+LRtKydxA==","shasum":"c975cd67e917c54190b6c9df29f085285b0c3f4e","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.1.0.tgz","fileCount":49,"unpackedSize":864188,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJevwu9CRA9TVsSAnZWagAADVIP/RiBATiqoZiOBdsC8mjx\nhUqAtEEcMTMLWESIHgyvAs2o/d+0rmIcZffWu65yjezfM0E4KmSlnzgj3Tu/\nACGjQSs1WaezBlYVbRGNxTx+8tMQJ+p9ej4VUMTbU0exRQt2l3hd8oaK6QXk\nPvPiVf5K3Bd43PvVVgAave8mrPtxP9QrJsbx9Kad3iKxSYh/+D+wu1p4zw67\nZYGRr3LWF+NRRF18pWtzrGJqiSTSImqEs+1Gpj4IfmTH0XltC5Y8J0SP3hPJ\n+DWe4SBt8lWRoOf2rfXUmhFqCRtimVxv/kJneoRI6ZvL4Swb6F3D1DJ4vnXq\nswO6scU6M/dhSFwwp/FGOOJa5a5PmB/R3ekBSd2UvS54mQZJMEFa4EClOwKn\nrzt27IxpnPFk+MMootibj2F8gm1Kuo9hJD4otBUe5Nmc2jlqvcPqzMApx4cL\nXfJ087PLM0N5TGvrN7UJvBEUi+x58swtosHmCa8hG14ZW4FumSwH5SEnCILr\nYUpoFq+im/jApxGdc0c6CHd6DQXcZ0Q4CwV7k9EMlLVRHi3YYHpK50B+7bhS\ngIkOUv4nI/8sZzXFe9BszKYxSeE9/XX4PKtUMsgA3NHwFPc7UHoKOoRvwiC9\nTBtmzUpTZf4N8JK+76wqLxBtMnYsckHwO6eXY5v7RvfPqKACQdE3HaJ+qGT8\n3PMt\r\n=R2mK\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDgde7Xk4dC1+hFkdbTnBvjn1xkATVjyCxeLhDI/1+2VgIhAMLWLRSUp8gi6prRGg4cJC4CNWocSX2wn4bOKro4CSOA"}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.1.0_1589578684830_0.6114823249961661"},"_hasShrinkwrap":false},"7.2.0":{"name":"react-table","version":"7.2.0","description":"Hooks for building lightweight, fast and extendable datagrids for React","license":"MIT","homepage":"https://react-table.js.org","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"index.js","scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"yarn test:jest","test:jest":"jest --coverage","test:coverage":"yarn test:jest; open coverage/lcov-report/index.html","build":"cross-env NODE_ENV=production rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,examples/*/src,examples/*/src/**}/*.{md,js,jsx,tsx} --write","docz:build":"docz build","docz:dev":"docz dev","docz:serve":"docz build && docz serve","postinstall":"node ./scripts/postinstall.js || exit 0"},"browserslist":"> 0.25%, not dead","dependencies":{"@scarf/scarf":"^1.0.4"},"peerDependencies":{"react":"^16.8.3"},"devDependencies":{"@babel/core":"^7.7.2","@babel/plugin-transform-runtime":"^7.8.3","@babel/preset-env":"^7.7.1","@babel/preset-react":"^7.7.0","@babel/runtime":"^7.7.2","@svgr/rollup":"^4.3.3","@testing-library/dom":"^6.10.1","@testing-library/jest-dom":"^4.2.4","@testing-library/react":"^9.3.2","@testing-library/react-hooks":"^3.2.1","babel-eslint":"9.x","babel-jest":"^24.9.0","core-js":"3.4.1","cross-env":"^6.0.3","docz":"^2.2.0","eslint":"6.6.0","eslint-config-prettier":"^6.7.0","eslint-config-react-app":"^5.0.2","eslint-config-standard":"^14.1.0","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"4.4.1","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^10.0.0","eslint-plugin-prettier":"^3.1.1","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.16.0","eslint-plugin-react-hooks":"2.3.0","eslint-plugin-standard":"^4.0.1","gatsby-theme-docz":"^2.2.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","jest-cli":"^24.9.0","jest-diff":"^25.1.0","jest-runner-eslint":"^0.7.5","jest-watch-select-projects":"^1.0.0","jest-watch-typeahead":"^0.4.2","lint-staged":"^9.4.3","prettier":"^1.19.1","prop-types":"^15.5.0","react":"^16.12.0","react-dom":"^16.12.0","react-test-renderer":"^16.13.0","rollup":"^1.32.1","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size":"^0.2.1","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2","serve":"^11.2.0"},"gitHead":"d2db96bbed67e300db28b61d559d411c9cc047a8","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@7.2.0","_nodeVersion":"12.18.0","_npmVersion":"6.14.4","dist":{"integrity":"sha512-hcBwPimjwOKQZoaeoQnUYyQNCg3NhjA1xAhKmuxam03sKsxE5NfI4GZ1qJcBQ8CJVj78e1o/lOKCh1AGuPmcnQ==","shasum":"a2d8a84efa610be541103b3c714cacbb15df9d1a","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.2.0.tgz","fileCount":49,"unpackedSize":870947,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe4AZwCRA9TVsSAnZWagAA4AcP/irzOOCKTr8jYNF3xDoB\nYeCDV6Viw+JuXwlNJDtgGCwUkQslnwoUN69AVYTYkfjEDShGrGkBTM2UGSC7\nU1oteIAo4ICYXBhwSYqUam5hb0Xnt+7EryCdhdEYwlcl70k/ATKX54npGiY5\nfXo70GZVuh1XiQpJv4YHlwGEPIzHf4B/pKWpylwuJfqPJPOtoG1z3czLpC7i\nddo3s4i3BbJ/UFP3LWOu7/ucrvsP92YT6p2oDInvjS6PKo5dTsK7V52xeEWf\nIEQAzCczJsmcr9QgMEizZ6KJDYUYJz6smb6Zr4s6/AWUcCar7ty98zXlTTey\nUlIqHtCMBymrhcZutgL3OZrzz+/XHLnw/GgnBvGUmt5FWVbtWqpA5Hi/dYE7\n9QH/Xy3mlMKA6Z5j5CchkpKW3Tq8DWXF1OxaXrInQCqQF2dR2Kk2LeU69Bum\ni22mVuLlyE92WvrLWMrnaHIOdLfmdiX1bu98ha38GD1HH0/n3Qhi59x8H0Iu\nusyx1ZQhAKyBE0nRBv4pqmKpmd8yzJ4gjT4WI82enTedYNSvrQYidt7eUgnB\nC1EvPPLeavW+zzowErHi5JUPJ4CE6y4L7F+UkKqu7OioP9LSUvu4tssibWtN\nS38b/7I+Xr23fXnNCDYlx6WdDaAuKte84SCyotEBpoutOb7rcwadUyhMoiDg\nKmXI\r\n=mrIF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEi3zPU/XP8NFPJt6iICz/IOtfPm1iZ4BfGtfy5kXbm9AiAl9JRj4oSGfMfDXX3xD3ViekWroj1eogFm1/1RRkd64A=="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.2.0_1591740015734_0.17119776121147945"},"_hasShrinkwrap":false},"7.2.1":{"name":"react-table","version":"7.2.1","description":"Hooks for building lightweight, fast and extendable datagrids for React","license":"MIT","homepage":"https://react-table.js.org","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"index.js","scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"yarn test:jest","test:jest":"jest --coverage","test:coverage":"yarn test:jest; open coverage/lcov-report/index.html","build":"cross-env NODE_ENV=production rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,examples/*/src,examples/*/src/**}/*.{md,js,jsx,tsx} --write","docz:build":"docz build","docz:dev":"docz dev","docz:serve":"docz build && docz serve","postinstall":"node ./scripts/postinstall.js || exit 0"},"browserslist":"> 0.25%, not dead","dependencies":{"@scarf/scarf":"^1.0.4"},"peerDependencies":{"react":"^16.8.3"},"devDependencies":{"@babel/core":"^7.7.2","@babel/plugin-transform-runtime":"^7.8.3","@babel/preset-env":"^7.7.1","@babel/preset-react":"^7.7.0","@babel/runtime":"^7.7.2","@svgr/rollup":"^4.3.3","@testing-library/dom":"^6.10.1","@testing-library/jest-dom":"^4.2.4","@testing-library/react":"^9.3.2","@testing-library/react-hooks":"^3.2.1","babel-eslint":"9.x","babel-jest":"^24.9.0","core-js":"3.4.1","cross-env":"^6.0.3","docz":"^2.2.0","eslint":"6.6.0","eslint-config-prettier":"^6.7.0","eslint-config-react-app":"^5.0.2","eslint-config-standard":"^14.1.0","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"4.4.1","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^10.0.0","eslint-plugin-prettier":"^3.1.1","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.16.0","eslint-plugin-react-hooks":"2.3.0","eslint-plugin-standard":"^4.0.1","gatsby-theme-docz":"^2.2.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","jest-cli":"^24.9.0","jest-diff":"^25.1.0","jest-runner-eslint":"^0.7.5","jest-watch-select-projects":"^1.0.0","jest-watch-typeahead":"^0.4.2","lint-staged":"^9.4.3","prettier":"^1.19.1","prop-types":"^15.5.0","react":"^16.12.0","react-dom":"^16.12.0","react-test-renderer":"^16.13.0","rollup":"^1.32.1","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size":"^0.2.1","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2","serve":"^11.2.0"},"gitHead":"30c4be6d477425b0044237c6fbcc4ce577576064","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@7.2.1","_nodeVersion":"12.18.0","_npmVersion":"6.14.4","dist":{"integrity":"sha512-cICU3w5yFWTDluz9yFePziEQXGt3PK5R1Va3InP7qMGnZOKm8kv0GiDMli+VOqE1uM1dBYPb9BEad15up1ac6g==","shasum":"d85f5a59b6441ccd9e0acddc93c288c54a7de7ee","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.2.1.tgz","fileCount":49,"unpackedSize":871061,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe69grCRA9TVsSAnZWagAAJv0P+gOScsq+BPyVooUWbyTl\nOCvHqb4CRX7EmfvILuE6lyqzi5ShRqNaiBqX9AC7cBs0NTL2fhuVpmM31ErO\nkMWadI4Wbke26YYLXXmp5XtnwqKPABxbD1Urexp2Bt4kLW/Lvidq3aOJMvOC\nclPU5fQ4gSWjoP8YOfH6YPWQPdwi+W2V/tQLrUGAEBYINvj0wMiedM9F/kBy\nQZsXpaGzRh2K8V+yIaBWMw8xfbiG8HM0QNoeWgLDDwzqltmqbNKqD/2G+aWl\nePTMaEGOB6Mth+EEJEelImVtO+qhxtKn5DMv7NmWKw/A+dMDNzZsaNLIW9DI\nG5EvSt3Y5uXnls7PWL0CoRkUKTRr3/mXFtf1vqkeJ/NAstMO6lr4QV6LUoSe\nKmVsN+RFdaA/jkEenSJMfmjfBd+JrDfpq08N0jIlkrzPKDhfGdHoWzZFttY1\nfpSzgXqt/HlvQUieDdeDNLNBu7dOJZUl4fR2RPSFgXY5KjxxKua/lo6CEjmV\nqq6Zfce7fVv2dnnYfZ1ILHfCQtA/6GRblo21kHxlwjoTJhkurd54+Yk7GsI5\nxf5z/mJZRhXE6IlKf5aDPBV1V8jt+NpxTQWwVh6Zn0yQRulFiJhmTXv1MM7Z\ntEhpH+uUQQ4r5Kd/L0T1V9EQcHofpi2AFAF+6QeoVpA3mTNdztRxxHOZ31+M\nnN5G\r\n=9ov0\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD68OT1d+jpD36c5Amhz/fouBbTuLK8+Pr6igoY4a6WjQIgQjgCTp6ldcZ3qArw8KczJFVeUDz4EvIwrCvju9X7qAw="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.2.1_1592514603154_0.23446034147744133"},"_hasShrinkwrap":false},"7.2.2":{"name":"react-table","version":"7.2.2","description":"Hooks for building lightweight, fast and extendable datagrids for React","license":"MIT","homepage":"https://react-table.js.org","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"keywords":["react","table","react-table","datagrid"],"main":"index.js","scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"yarn test:jest","test:jest":"jest --coverage","test:coverage":"yarn test:jest; open coverage/lcov-report/index.html","build":"cross-env NODE_ENV=production rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,examples/*/src,examples/*/src/**}/*.{md,js,jsx,tsx} --write","docz:build":"docz build","docz:dev":"docz dev","docz:serve":"docz build && docz serve","postinstall":"node ./scripts/postinstall.js || exit 0"},"browserslist":"> 0.25%, not dead","peerDependencies":{"react":"^16.8.3"},"devDependencies":{"@babel/core":"^7.7.2","@babel/plugin-transform-runtime":"^7.8.3","@babel/preset-env":"^7.7.1","@babel/preset-react":"^7.7.0","@babel/runtime":"^7.7.2","@svgr/rollup":"^4.3.3","@testing-library/dom":"^6.10.1","@testing-library/jest-dom":"^4.2.4","@testing-library/react":"^9.3.2","@testing-library/react-hooks":"^3.2.1","babel-eslint":"9.x","babel-jest":"^24.9.0","core-js":"3.4.1","cross-env":"^6.0.3","docz":"^2.2.0","eslint":"6.6.0","eslint-config-prettier":"^6.7.0","eslint-config-react-app":"^5.0.2","eslint-config-standard":"^14.1.0","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"4.4.1","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^10.0.0","eslint-plugin-prettier":"^3.1.1","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.16.0","eslint-plugin-react-hooks":"2.3.0","eslint-plugin-standard":"^4.0.1","gatsby-theme-docz":"^2.2.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","jest-cli":"^24.9.0","jest-diff":"^25.1.0","jest-runner-eslint":"^0.7.5","jest-watch-select-projects":"^1.0.0","jest-watch-typeahead":"^0.4.2","lint-staged":"^9.4.3","prettier":"^1.19.1","prop-types":"^15.5.0","react":"^16.12.0","react-dom":"^16.12.0","react-test-renderer":"^16.13.0","rollup":"^1.32.1","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size":"^0.2.1","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2","serve":"^11.2.0"},"gitHead":"f9cdb0ade66d31236f1c26b2366168f7f41c2c0b","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@7.2.2","_nodeVersion":"12.18.1","_npmVersion":"6.14.5","dist":{"integrity":"sha512-JBE3QUyRQJkHRU72NKo7HRGtSGcrzIcVLDbsoZI+KhWkFEZ2t9UfpqeHBdbc3R5RRJZ6qC7+NzZZxJPSYWKPBQ==","shasum":"2978a903f0e367e1ceab25d60a6a40ae23498f77","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.2.2.tgz","fileCount":49,"unpackedSize":870901,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe+5cYCRA9TVsSAnZWagAAZJYQAJkZWbFMrKQK++G2PxuH\n2s2zNFKXqFELBeuECFPC13r3dssl10GtcTGUJ0PElITToZHOAokRC/z6cgs5\nDGf1Tzh5if2Pr29xzxDlkhXj1Lp3G9UHs5b6ss6uYzlykhiKmODRAv01iroC\nMriT4my6YV0gO6IUlKZzD9IQvRlE1G4I1YKwNzW8nrNjDpoOUhqa/rdwz6ps\nX46QVPMDzXP3qB6+0K8TIbkwFkU55bM8yJI31ooClFJ1wdgQBz8v624K4qJ5\nCt6rmDStvun7XCOPMdDlCNb8qT0DHsUmrrpIaYGAGld7lP22mm9LXL1V9e5L\nDgIrDpdazwoyl6BhTTySwRHGnHJriRyzhrZQBhxLV6UvPKplWEPCNWlYIGTZ\nDvHMZVJr2Cq4ZjBGba/wPJxGi3/lXHr0+F4BTAysG+/8blAGfu0KEla/7Omh\nGYezZj500hJ6a6n/WjJgtIi0F90GRrSyuoELjRSxOVj3m/xY1G/9n/OIcyC+\nyx1VXFmYIJqbwQ5L8p0ky0o9HXK+chn4OgXRjOJIMD05T9YsMOHSPiVBYDkp\nKM2N8o4Ks/GJXHTMi/xnMgtRsxM+CgqYLrSkXB1V30pMuPHEyGU+b/2uU2iR\nf+n+9Viz0XpsSK9loG31b3Azduc3xU/r73QxNCQiMXAgkBq4tfsH79UxG0o/\n9942\r\n=MosX\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDIX49iYJlK15nHPXtkxtSRW5wwWhEXFv7xKFfhdS6J9gIhAIfegtRbhCKa1EM2HpHhCmEAyZx7ZfL/0Qwzwq/g6TEq"}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.2.2_1593546519336_0.27735856430500516"},"_hasShrinkwrap":false},"7.3.0":{"name":"react-table","version":"7.3.0","description":"Hooks for building lightweight, fast and extendable datagrids for React","license":"MIT","homepage":"https://react-table.js.org","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"keywords":["react","table","react-table","datagrid"],"main":"index.js","scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"yarn test:jest","test:jest":"jest --coverage","test:coverage":"yarn test:jest; open coverage/lcov-report/index.html","build":"cross-env NODE_ENV=production rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,examples/*/src,examples/*/src/**}/*.{md,js,jsx,tsx} --write","docz:build":"docz build","docz:dev":"docz dev","docz:serve":"docz build && docz serve"},"browserslist":"> 0.25%, not dead","peerDependencies":{"react":"^16.8.3"},"devDependencies":{"@babel/core":"^7.7.2","@babel/plugin-transform-runtime":"^7.8.3","@babel/preset-env":"^7.7.1","@babel/preset-react":"^7.7.0","@babel/runtime":"^7.7.2","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^4.3.3","@testing-library/dom":"^6.10.1","@testing-library/jest-dom":"^4.2.4","@testing-library/react":"^9.3.2","@testing-library/react-hooks":"^3.2.1","babel-eslint":"9.x","babel-jest":"^24.9.0","core-js":"3.4.1","cross-env":"^6.0.3","docz":"^2.2.0","eslint":"6.6.0","eslint-config-prettier":"^6.7.0","eslint-config-react-app":"^5.0.2","eslint-config-standard":"^14.1.0","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"4.4.1","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^10.0.0","eslint-plugin-prettier":"^3.1.1","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.16.0","eslint-plugin-react-hooks":"2.3.0","eslint-plugin-standard":"^4.0.1","gatsby-theme-docz":"^2.2.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","jest-cli":"^24.9.0","jest-diff":"^25.1.0","jest-runner-eslint":"^0.7.5","jest-watch-select-projects":"^1.0.0","jest-watch-typeahead":"^0.4.2","lint-staged":"^9.4.3","prettier":"^1.19.1","prop-types":"^15.5.0","react":"^16.12.0","react-dom":"^16.12.0","react-test-renderer":"^16.13.0","rollup":"^1.32.1","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size":"^0.2.1","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2","serve":"^11.2.0"},"gitHead":"c4120e6fa87dc9fe2668554e22f095f279d283b7","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@7.3.0","_nodeVersion":"12.18.2","_npmVersion":"6.14.5","dist":{"integrity":"sha512-VQlVgvKItkpO+tAtWf/xdn9a8RU8gVqG25Ymrw9PczyBrM2Cr+HivHVQ2VsYWy8SieL0bcCNk3C++mbtWgXLfQ==","shasum":"f9c78f3a6c7ba5efdea3414b8e5dc54a3cf69466","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.3.0.tgz","fileCount":48,"unpackedSize":866787,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfEckjCRA9TVsSAnZWagAAvVwP/01OlILKEoR/23x2a2sj\nq1e3YVf+KWB8Igz2YhrDTNS1NVq0a2YTbRWAcLLmt7AGFrUNU4PCLtBVY1Yi\ndeLhUL/AmW/0hFlEqihHC4RHLo0L1ToofLPy9EMzlTW8y/sdzPmmnmCoH3wV\nHbuBucGAq/v2F0nEBBgiBIFeXivcfSL+Ny7Hw9pCXxlURGJTFVYOuHNxGZlF\nsnlSw7AsVnfvZKyF9gaXOr000apmA0I04sXzccYnSQp5thFBvILJA0JHFgRy\naZIjbG0ifte8+jjNgQmS9vRGqBKqxgpZi98hl6Q4JEuLCpr/pmeGqnJUwbKQ\nEfuxYs2mX7WFWq86OePXCmMVgv/SJqTQM2DmkxDgfmH4Hkh4WM4/wG60vFXa\nNMm85o+1yzUnNvarsS8w18WTKc19YTxbHN5DXXWD2dZtOJ2fFtOevEx3O8Ui\nafPYfgeocvmkJTDhM8wG9oK54xXktZBek0VMUIX9h/x1JByt0XHJmDZ6WM0+\nVk4GUUAKNZiPDwGv6kmmWQgcJrNihDxzbgyeQ2NySUgHOddyXUk4rShNcyqj\njwa1l55k1r06Qcipb0fbXPXpZmx8qexQvWtUfAt1tTsbW5qcD3Cqo4kdg1XI\ng5kCbNpItIwIFSQNljKub1gYyfw33mFeG3Os3T3Tdgr9724QH0HZIIFvUU4A\nwVFc\r\n=yPsB\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAQJWZ1SYAwvwVInukzPZ5Uu8rrXjlDFFLrp+/X4+TkeAiEAo36zLKPQJf6uKHXaZu7wHAwPMr29a1vy/1IQzvq2JUg="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.3.0_1595001122805_0.19332332893840154"},"_hasShrinkwrap":false},"7.3.1":{"name":"react-table","version":"7.3.1","description":"Hooks for building lightweight, fast and extendable datagrids for React","license":"MIT","homepage":"https://react-table.js.org","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"keywords":["react","table","react-table","datagrid"],"main":"index.js","scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"yarn test:jest","test:jest":"jest --coverage","test:coverage":"yarn test:jest; open coverage/lcov-report/index.html","build":"cross-env NODE_ENV=production rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,examples/*/src,examples/*/src/**}/*.{md,js,jsx,tsx} --write","docz:build":"docz build","docz:dev":"docz dev","docz:serve":"docz build && docz serve"},"browserslist":"> 0.25%, not dead","peerDependencies":{"react":"^16.8.3"},"devDependencies":{"@babel/core":"^7.7.2","@babel/plugin-transform-runtime":"^7.8.3","@babel/preset-env":"^7.7.1","@babel/preset-react":"^7.7.0","@babel/runtime":"^7.7.2","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^4.3.3","@testing-library/dom":"^6.10.1","@testing-library/jest-dom":"^4.2.4","@testing-library/react":"^9.3.2","@testing-library/react-hooks":"^3.2.1","babel-eslint":"9.x","babel-jest":"^24.9.0","core-js":"3.4.1","cross-env":"^6.0.3","docz":"^2.2.0","eslint":"6.6.0","eslint-config-prettier":"^6.7.0","eslint-config-react-app":"^5.0.2","eslint-config-standard":"^14.1.0","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"4.4.1","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^10.0.0","eslint-plugin-prettier":"^3.1.1","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.16.0","eslint-plugin-react-hooks":"2.3.0","eslint-plugin-standard":"^4.0.1","gatsby-theme-docz":"^2.2.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","jest-cli":"^24.9.0","jest-diff":"^25.1.0","jest-runner-eslint":"^0.7.5","jest-watch-select-projects":"^1.0.0","jest-watch-typeahead":"^0.4.2","lint-staged":"^9.4.3","prettier":"^1.19.1","prop-types":"^15.5.0","react":"^16.12.0","react-dom":"^16.12.0","react-test-renderer":"^16.13.0","rollup":"^1.32.1","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size":"^0.2.1","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2","serve":"^11.2.0"},"gitHead":"9676c8f0c285c365eab5ee18efc6aec24f406330","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@7.3.1","_nodeVersion":"12.18.2","_npmVersion":"6.14.5","dist":{"integrity":"sha512-sMz745ppaOsjrQUh/sTJPqW/COzNR5lh9WMM6d0d9ijulv4WMF9qR3N7T1LiF0VuSNZo77+Dod+r88XQNI7xGQ==","shasum":"ed41e3dbb4c4b2f6f23f5187a99f422ec31030df","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.3.1.tgz","fileCount":48,"unpackedSize":866782,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfFcCcCRA9TVsSAnZWagAAdAYP/2dQxphAMGZ3jNC2aQpj\nAGD3ZgKi9aXahauLP45rb1/w4pvVuui8nu2mQ5zj2hvfzdPxrmEBlpgNQcbb\n/SkEtG8pXyC0wfUnwmCUbM1W1ccTyuTwXZE/rBgRVug01e/UkZxJnofdkmkt\n52Ff8HDv4edXD3cGw8xMMnx7S22m+f8FFANpGI+NXxWe6GimzIK6TPiUqavR\nMI8izyy+YDIo46eoeekgdXVVvH8gXlyCfTo+/oTK4FKuCm8qsnN9XTqqhDOg\njWGGgoVX1Wtlugsl1qFxbzwlha5heKDErgsfeb4j9NndXiIUNUPWrEvO5RF1\nCNJyQnUw8rXJycASmS1P/xJlYkMP7FwsSFxwq9xCjfYuY09J8T14dTODqZ04\nWx4VcoxKdVyGLxATXu7gZDk9yIzwjLnWq+4Oa9Z99FQ7/kt94rpC9J/5uxS8\niA9CzOSNdBbWGnYMtLnsywFezJilabUiUoWlWDWC2iOramZ/TBtjV2cLqRo7\nSBSdA7aev1PzbtE4fM/fjoRf9LGrYKtmXmxbzC3P/mXSYEX2MZIUJUZfali9\n6DV6f+YPWxgf5TX8XUwBpOWjE+GMAaQN6t/XT9hh2xPy8PYBcJVodWi+VULq\npapVLZm2hXMheb1GgEBc8c+v32lBe3VVQJtFhx1tiZ58uH4JwlLITqxtYj1P\nmdXU\r\n=HjWB\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGw2QyRWl+Gvght2fCZ4GWkcYTM9ecJ1gqkllBC+2lBxAiEAn7RMvsYh61/3+lUqZZz+3HEbIMikacyT0tOC1p7dDIY="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.3.1_1595261083796_0.13098153157541237"},"_hasShrinkwrap":false},"7.3.2":{"name":"react-table","version":"7.3.2","description":"Hooks for building lightweight, fast and extendable datagrids for React","license":"MIT","homepage":"https://react-table.js.org","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"keywords":["react","table","react-table","datagrid"],"main":"index.js","scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"yarn test:jest","test:jest":"jest --coverage","test:coverage":"yarn test:jest; open coverage/lcov-report/index.html","build":"cross-env NODE_ENV=production rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,examples/*/src,examples/*/src/**}/*.{md,js,jsx,tsx} --write","docz:build":"docz build","docz:dev":"docz dev","docz:serve":"docz build && docz serve"},"browserslist":"> 0.25%, not dead","peerDependencies":{"react":"^16.8.3"},"devDependencies":{"@babel/core":"^7.7.2","@babel/plugin-transform-runtime":"^7.8.3","@babel/preset-env":"^7.7.1","@babel/preset-react":"^7.7.0","@babel/runtime":"^7.7.2","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^4.3.3","@testing-library/dom":"^6.10.1","@testing-library/jest-dom":"^4.2.4","@testing-library/react":"^9.3.2","@testing-library/react-hooks":"^3.2.1","babel-eslint":"9.x","babel-jest":"^24.9.0","core-js":"3.4.1","cross-env":"^6.0.3","docz":"^2.2.0","eslint":"6.6.0","eslint-config-prettier":"^6.7.0","eslint-config-react-app":"^5.0.2","eslint-config-standard":"^14.1.0","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"4.4.1","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^10.0.0","eslint-plugin-prettier":"^3.1.1","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.16.0","eslint-plugin-react-hooks":"2.3.0","eslint-plugin-standard":"^4.0.1","gatsby-theme-docz":"^2.2.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","jest-cli":"^24.9.0","jest-diff":"^25.1.0","jest-runner-eslint":"^0.7.5","jest-watch-select-projects":"^1.0.0","jest-watch-typeahead":"^0.4.2","lint-staged":"^9.4.3","prettier":"^1.19.1","prop-types":"^15.5.0","react":"^16.12.0","react-dom":"^16.12.0","react-test-renderer":"^16.13.0","rollup":"^1.32.1","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size":"^0.2.1","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2","serve":"^11.2.0"},"gitHead":"7044363e12faeebb68c20a40bb9634917a137e55","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@7.3.2","_nodeVersion":"12.18.2","_npmVersion":"6.14.5","dist":{"integrity":"sha512-n8ZvC8tzuDa3qK9PFlcXmo58JCRfxg/3LlvG8YJywvsQKiCnTfK6lDSp8a3WsAOBcZvBtGgyeoke7pBfAdB8jA==","shasum":"def43b9777e0ef5839608104a557c3f1c365b2ff","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.3.2.tgz","fileCount":48,"unpackedSize":866897,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfFcOTCRA9TVsSAnZWagAAMTAQAIqX68wUnY+6oNqcykN5\nL2W7gOuavFDHgTaY3wV4yzacgmg5MBeoBpXTdNUN+zltqptd04FHDha5YMwN\nIXx5rmcBrVyv1TyBv0n8/oS0GVXejNr4IUeif1VE9HAAMkxSKfqE1BCRthh6\nmApyZbX9dCZpDGs3CiIvllkYX9gSiUPyKZq3LJlj+shKZi7HrvbcJrcEb2vE\nsiJtA/LIow4Sk+XB0pP09z5IOoV7hsMkUJ5WroOpGHLu07GuGVedHKdzLiAU\nNE4cRHnPt37u/QflQAfJTFU9W4ITQfL73eAyh4llP2XB2cLoBoEcEG3Oc6it\n7cMdx5qwY3haPNLkwWWKyn2i2bpMSUMazoofDKCDRg/zhh4gpvFF26xOCe6r\nLwgiCXHl7jeKNGPtOCR4j8U9dmTXDWLJCMD/+ygfaHbl64+btjlnLuG8RQfh\nP4YLfsWuWTzyULz0voCFmIojyhEexL6TFW/PPeUlLn6hv21sNQR/qt/NHaZx\nziTyoILmxQWEeMNxGIcAxCxwMI9ege30mxKofzYvPpnOmVKob/JzVxT+s8kC\n5FFUA+6uQ3926PhTFQo658QGtMJ9sFPUmJ8UzXlZDhOh3f/gv6AbN+qj2dcc\ndbE1WMvalOP+JtbJnJJmzNB3J4QpvxnQuMpV0tIAxqYf9+5cQrXYFKXC2oLl\n9qF8\r\n=ZB0h\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDUmrMEZ0b7Noy3M+m5zkYNRzw71Y8F7vZWZBNjVn5BvgIhANBq5wlfdXERtSLgrQJavNxmkTZ7W+bvA7aGp7SeDYz3"}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.3.2_1595261842616_0.49633165047295247"},"_hasShrinkwrap":false},"7.3.3":{"name":"react-table","version":"7.3.3","description":"Hooks for building lightweight, fast and extendable datagrids for React","license":"MIT","homepage":"https://react-table.js.org","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"keywords":["react","table","react-table","datagrid"],"main":"index.js","scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"yarn test:jest","test:jest":"jest --coverage","test:coverage":"yarn test:jest; open coverage/lcov-report/index.html","build":"cross-env NODE_ENV=production rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,examples/*/src,examples/*/src/**}/*.{md,js,jsx,tsx} --write","docz:build":"docz build","docz:dev":"docz dev","docz:serve":"docz build && docz serve"},"browserslist":"> 0.25%, not dead","peerDependencies":{"react":"^16.8.3"},"devDependencies":{"@babel/core":"^7.7.2","@babel/plugin-transform-runtime":"^7.8.3","@babel/preset-env":"^7.7.1","@babel/preset-react":"^7.7.0","@babel/runtime":"^7.7.2","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^4.3.3","@testing-library/dom":"^6.10.1","@testing-library/jest-dom":"^4.2.4","@testing-library/react":"^9.3.2","@testing-library/react-hooks":"^3.2.1","babel-eslint":"9.x","babel-jest":"^24.9.0","core-js":"3.4.1","cross-env":"^6.0.3","docz":"^2.2.0","eslint":"6.6.0","eslint-config-prettier":"^6.7.0","eslint-config-react-app":"^5.0.2","eslint-config-standard":"^14.1.0","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"4.4.1","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^10.0.0","eslint-plugin-prettier":"^3.1.1","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.16.0","eslint-plugin-react-hooks":"2.3.0","eslint-plugin-standard":"^4.0.1","gatsby-theme-docz":"^2.2.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","jest-cli":"^24.9.0","jest-diff":"^25.1.0","jest-runner-eslint":"^0.7.5","jest-watch-select-projects":"^1.0.0","jest-watch-typeahead":"^0.4.2","lint-staged":"^9.4.3","prettier":"^1.19.1","prop-types":"^15.5.0","react":"^16.12.0","react-dom":"^16.12.0","react-test-renderer":"^16.13.0","rollup":"^1.32.1","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size":"^0.2.1","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2","serve":"^11.2.0"},"gitHead":"aa2835766a7a34f70cd6b579628e4f7e820970ab","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@7.3.3","_nodeVersion":"12.18.3","_npmVersion":"6.14.6","dist":{"integrity":"sha512-FG28N93kZ3DtMzeKtyFxKAebQ+WPF9ayGAGEaoaE9hA7F9vrhsTeU1ReKe/nBEs9uc3zm1n/fwDeBUBkZyAK9g==","shasum":"34bdde5f0f2363b923d1fd93c321a3f2c0aa20c3","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.3.3.tgz","fileCount":48,"unpackedSize":867460,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfIt1WCRA9TVsSAnZWagAAobkP/jgxBR5vrsbkmcT+9q63\nJp9vz9QfMDgItbzvG+0LQUFWfy7qFPJwl2MJ/qklp3e0Os042dYbmRIojUAL\n3Oa8JIdtoNwWh7b/wo+RLL3zdsp5ey1qb1r0d1e7tfSB1bXeNlo/ykV31gUc\nBHMV3ICOfmtcbK/pb7sqd0TXmZNKT8aUiSQsIvnYSonkq8GuPEBi9OkgAyQf\nmZWIrCcVWCM7bREjdLcelqEbErMb0VMi8+97kQyYnhPXejPiUzuzyyFde8B7\n/zDmgEogLP5FfuilCY+u+3+uHPuEa/b12NnhtFvuz30JSj89pcd+1Mu/YK2/\nTvTuOFB2jrAqF9lIH9FfG3BwYqX/0cFfInjofCKEej4WoU8EGfGxBi90msnT\nZMirgIWxTxILz0Bpxo9h8bNSWaCcWruUKA5kawiBuAECAg838hGqVI+hO6cF\n7gluBtFz40ZM72QVAqc7uhiTalXMsdL+7vnt/Pro3zkbaQHD3ga0Px6aHx6B\nxIo+QaWOFoGTsJKPsEXiRUzb5u/RsbO8FpuIgYiK/GX/tbKI5+sLCMqkyBjv\nJShX7giR8PavNiWM7IzEIFdSuSy/rrVEyhgAmm94gzbLqDGn5XeV+kMtdryi\nC24n4nIJXp+ZM7j24Sq/9Q61uVcwdPkUx2hIyky2YN1fKdaZ9RfyqgYix8Rr\n1XRC\r\n=vhEN\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICwbwzhHNZTbRyfj2YOVltIEqLjPOEiFcRUjhUz3fiPxAiEA73Qm6RQo32hGGpvfikUqPr4QT1PwnJg+HaRJpTxCdFw="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.3.3_1596120405607_0.7994702009224688"},"_hasShrinkwrap":false},"7.3.4":{"name":"react-table","version":"7.3.4","description":"Hooks for building lightweight, fast and extendable datagrids for React","license":"MIT","homepage":"https://react-table.js.org","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"keywords":["react","table","react-table","datagrid"],"main":"index.js","scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"yarn test:jest","test:jest":"jest --coverage","test:coverage":"yarn test:jest; open coverage/lcov-report/index.html","build":"cross-env NODE_ENV=production rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,examples/*/src,examples/*/src/**}/*.{md,js,jsx,tsx} --write","docz:build":"docz build","docz:dev":"docz dev","docz:serve":"docz build && docz serve"},"browserslist":"> 0.25%, not dead","peerDependencies":{"react":"^16.8.3"},"devDependencies":{"@babel/core":"^7.7.2","@babel/plugin-transform-runtime":"^7.8.3","@babel/preset-env":"^7.7.1","@babel/preset-react":"^7.7.0","@babel/runtime":"^7.7.2","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^4.3.3","@testing-library/dom":"^6.10.1","@testing-library/jest-dom":"^4.2.4","@testing-library/react":"^9.3.2","@testing-library/react-hooks":"^3.2.1","babel-eslint":"9.x","babel-jest":"^24.9.0","core-js":"3.4.1","cross-env":"^6.0.3","docz":"^2.2.0","eslint":"6.6.0","eslint-config-prettier":"^6.7.0","eslint-config-react-app":"^5.0.2","eslint-config-standard":"^14.1.0","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"4.4.1","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^10.0.0","eslint-plugin-prettier":"^3.1.1","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.16.0","eslint-plugin-react-hooks":"2.3.0","eslint-plugin-standard":"^4.0.1","gatsby-theme-docz":"^2.2.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","jest-cli":"^24.9.0","jest-diff":"^25.1.0","jest-runner-eslint":"^0.7.5","jest-watch-select-projects":"^1.0.0","jest-watch-typeahead":"^0.4.2","lint-staged":"^9.4.3","prettier":"^1.19.1","prop-types":"^15.5.0","react":"^16.12.0","react-dom":"^16.12.0","react-test-renderer":"^16.13.0","rollup":"^1.32.1","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size":"^0.2.1","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2","serve":"^11.2.0"},"gitHead":"b2d0aa643c0199b75bb4acb516c508e6ef102c18","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@7.3.4","_nodeVersion":"12.18.3","_npmVersion":"6.14.6","dist":{"integrity":"sha512-AGcFAa8OEryNUzZdc1GWjRAZojr6uOd7SPc4wmJDN3Dq+ycmfUMos+n7WWMdAGu1GKdBwApA1Hgehq7sdBEtpQ==","shasum":"a5ff9364f693cec37975718ec59149921b4dd79a","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.3.4.tgz","fileCount":48,"unpackedSize":868972,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfKEPACRA9TVsSAnZWagAAdnYP/21kDb7HydTZba6xCj33\nvNC2t3JyZCiwiViAV6LdVzfBe7z2q9x4g6xisZYCO3jW6CThgG7tpw1AdDVm\ndt2sLCYGYYNIdlGAdF621hFcSovBNKXQ5EQLdrDJZ+C9hKSU/0t9n3iPxbqR\nJOeu5xzdxLgRMuztargU0TPsQ+SOPMYwmXbfbc/S54jmyYhCAdPZNy00L07m\nfHgf2RrziBTAFJtVECjNNsKUYfqDmq0XYMoFSBQNB6PVae9IUdre3DEPKjv/\naa3biovIHmOYljPFKlCzHdKfZOcIEoYV9GPebuaaAZnJkEf6hkSHt3CY38Op\nGWqDo8r3DY5MIGYBBBw8QO7Zh402HT1AjjgnEh0iAC0+Tba3PRei1d8un/N7\nFveSKnWKi0vHd4VHMYxVVu+nahrLuUXb/QGcue2WVJey4y4Bse3+jVtbPDnv\npS9Ly0d7hgLYx9FWz207NHDNVv8RCzEyrg5EInYbMOW4zueURH1lQ+2AokH7\ne1xohR+zrOf3SmFCFqAlVO+QEJvemCnFUr+PnXFBhRldPv6Q5cjKk/DUDduX\n1+aEzrwKPzqUQRRvD0gtbvi+rQ9FDSLChbmH/kHx1QvGQ2NIoXKCAb5cllQ4\nY+K3C5ArTBdgZYfuAQQvMqfBp0UDq3ct9uk3W4l9rHGsNzDwziQy3TdIoSvZ\nMpER\r\n=aUJE\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFkvxs+UoNuDbQGengWvXH7f/G6SdfFcT4+a/B0mXRHjAiEAsowBgquUDNh2cvdxivfCrptbzyqHdLR5B6RYsGlXX/c="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.3.4_1596474303906_0.05099506302282841"},"_hasShrinkwrap":false},"7.3.5":{"name":"react-table","version":"7.3.5","description":"Hooks for building lightweight, fast and extendable datagrids for React","license":"MIT","homepage":"https://react-table.js.org","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"keywords":["react","table","react-table","datagrid"],"main":"index.js","scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"yarn test:jest","test:jest":"jest --coverage","test:coverage":"yarn test:jest; open coverage/lcov-report/index.html","build":"cross-env NODE_ENV=production rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,examples/*/src,examples/*/src/**}/*.{md,js,jsx,tsx} --write","docz:build":"docz build","docz:dev":"docz dev","docz:serve":"docz build && docz serve"},"browserslist":"> 0.25%, not dead","peerDependencies":{"react":"^16.8.3"},"devDependencies":{"@babel/core":"^7.7.2","@babel/plugin-transform-runtime":"^7.8.3","@babel/preset-env":"^7.7.1","@babel/preset-react":"^7.7.0","@babel/runtime":"^7.7.2","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^4.3.3","@testing-library/dom":"^6.10.1","@testing-library/jest-dom":"^4.2.4","@testing-library/react":"^9.3.2","@testing-library/react-hooks":"^3.2.1","babel-eslint":"9.x","babel-jest":"^24.9.0","core-js":"3.4.1","cross-env":"^6.0.3","docz":"^2.2.0","eslint":"6.6.0","eslint-config-prettier":"^6.7.0","eslint-config-react-app":"^5.0.2","eslint-config-standard":"^14.1.0","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"4.4.1","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^10.0.0","eslint-plugin-prettier":"^3.1.1","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.16.0","eslint-plugin-react-hooks":"2.3.0","eslint-plugin-standard":"^4.0.1","gatsby-theme-docz":"^2.2.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","jest-cli":"^24.9.0","jest-diff":"^25.1.0","jest-runner-eslint":"^0.7.5","jest-watch-select-projects":"^1.0.0","jest-watch-typeahead":"^0.4.2","lint-staged":"^9.4.3","prettier":"^1.19.1","prop-types":"^15.5.0","react":"^16.12.0","react-dom":"^16.12.0","react-test-renderer":"^16.13.0","rollup":"^1.32.1","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size":"^0.2.1","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2","serve":"^11.2.0"},"gitHead":"f3194d67adf9733edbc1d1aee4d3277804bb1c7c","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@7.3.5","_nodeVersion":"12.18.3","_npmVersion":"6.14.6","dist":{"integrity":"sha512-mTeV7UQaE6VTTw5eY7JOExd61TRnrAYO0/debtb8YgegjX9kI4Ct3BtT6Gryg+6UemnsOBlX/wbHtl3vIJ6yOg==","shasum":"ae3c7c8609641948c1fceed9566b7d5dce8ac22f","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.3.5.tgz","fileCount":48,"unpackedSize":870006,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfKEeQCRA9TVsSAnZWagAAdfIP/36dV9km2BjOoJFmvMR5\nXSs1v8X4HFgZY/aQfuSH5fIMUZF37PJdqmuzNJjDE1gdYo8xIS6kttSlR/LW\ndPLjAyKjGWy7g9CFe1glVYqd6HJbbZPRtLeFaxX04yfB29ygiH1qRi6liYfP\n2VRP5CJ9K7Twde769LL9zReCGwl0/MFR7jIJSfc1cpDn0lGlLvFw8FRkWppr\nKuioc64FwyvLtQ1AqIaTJWhG3tb6ToMOmRgc0ixY1iqS5SauKGxbzcd0cu3o\ngB7A3KpL6gNXVMq6PgWWQoJlNhsx1gZ6czRG+CMp/KofQl3sLZt06lUu5YTr\nZMgAsiSKYF3Ap+HqO3JevRvpG+afpwqpcoEM4OvP/cYm4idlYZNtqmC0HWKw\nuYMWtzAQweqEDfMR9IZy8wdnw59Tlm1enCm+byg1HrLK7b+iFVWtVxV0gb4c\nCZ0yo3ItJcT3wcsj9elpxHRYVelG0xD9bgqXZwx54HOmAHgd8jut1lOJCuNW\n4jfCKHZta2u1mJ+/r+v+IQy+uQbTh9NsOvO3KiBGVMdPUOBmIdpTirtuj6wY\nPHyqCRFfzaQHNsMlxCkp4a4bXGXxC+brSg8cwXIF6qaZrg8bq36H8ysvJK4F\n6JMuHmyLLL8LHVCk3uCEXKq2QUHA5uNRVlDNkc4Jz+JJ+aEUXIoepBfch4Ao\nIE5R\r\n=+Phg\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFSHtEfv1UPkEzw5uBZgBmng1xYkbdZ9TfURIF8sC3jFAiA7XmVQ+4OECHmsSwf23tKsdMSl0wioOU7HQKYbhfn1Bg=="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.3.5_1596475280107_0.5387256045540603"},"_hasShrinkwrap":false},"7.4.0":{"name":"react-table","version":"7.4.0","description":"Hooks for building lightweight, fast and extendable datagrids for React","license":"MIT","homepage":"https://react-table.js.org","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"keywords":["react","table","react-table","datagrid"],"main":"index.js","scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"yarn test:jest","test:jest":"jest --coverage","test:coverage":"yarn test:jest; open coverage/lcov-report/index.html","build":"cross-env NODE_ENV=production rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,examples/*/src,examples/*/src/**}/*.{md,js,jsx,tsx} --write","docz:build":"docz build","docz:dev":"docz dev","docz:serve":"docz build && docz serve"},"browserslist":"> 0.25%, not dead","peerDependencies":{"react":"^16.8.3"},"devDependencies":{"@babel/core":"^7.7.2","@babel/plugin-transform-runtime":"^7.8.3","@babel/preset-env":"^7.7.1","@babel/preset-react":"^7.7.0","@babel/runtime":"^7.7.2","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^4.3.3","@testing-library/dom":"^6.10.1","@testing-library/jest-dom":"^4.2.4","@testing-library/react":"^9.3.2","@testing-library/react-hooks":"^3.2.1","babel-eslint":"9.x","babel-jest":"^24.9.0","core-js":"3.4.1","cross-env":"^6.0.3","docz":"^2.2.0","eslint":"6.6.0","eslint-config-prettier":"^6.7.0","eslint-config-react-app":"^5.0.2","eslint-config-standard":"^14.1.0","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"4.4.1","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^10.0.0","eslint-plugin-prettier":"^3.1.1","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.16.0","eslint-plugin-react-hooks":"2.3.0","eslint-plugin-standard":"^4.0.1","gatsby-theme-docz":"^2.2.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","jest-cli":"^24.9.0","jest-diff":"^25.1.0","jest-runner-eslint":"^0.7.5","jest-watch-select-projects":"^1.0.0","jest-watch-typeahead":"^0.4.2","lint-staged":"^9.4.3","prettier":"^1.19.1","prop-types":"^15.5.0","react":"^16.12.0","react-dom":"^16.12.0","react-test-renderer":"^16.13.0","rollup":"^1.32.1","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size":"^0.2.1","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2","serve":"^11.2.0"},"gitHead":"ec8dcb1cc0c97d0530b177c9f1d42265b7063226","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@7.4.0","_nodeVersion":"12.18.3","_npmVersion":"6.14.6","dist":{"integrity":"sha512-er8jRoMKb/J4xyikBOU1GTN1x8AxDUBco13krKfyEC9TQ85/iQeCngNNFT5PpZc0pJ6zZo/qL5DSIsKEjhkm7g==","shasum":"69588e9f0b7c8dd26382276848fe4b2040e95dd0","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.4.0.tgz","fileCount":48,"unpackedSize":875642,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfKE1BCRA9TVsSAnZWagAAdwgP/0F/HCCKjzSpB5ZDmbyS\npamkSvJ52OJIexR7z83FrGbBqX8FUKoXyBY41+bsbz6ZJvIDd6tqXK0jQg8C\ntsl+FT8O2JNd7Y0qfZqaaGYMwRibsyquhzRidqoD7LTHSzIrgOcS4WKGenjb\naUV7UXjtIUo0STKzbJb2QByDxKhe4eKWFER3Srz/HBryOA18lry5azRIjglx\nFz5KJn+o8uC+rD83akN4W0EwTfAg1tnvinQq04CmHELiVADJG+o6X1Zd5Cvn\n9019rNxdZfrZpyU0ILm6jS4v7s+CdhKGGgcgmS+BuC3oigbhbCJUqd/GzXGZ\nBUJUS1n/scgWHYNQhusGKZZW67XCSUlelbisduzDtAYVi32fBZvUWnhM23mn\nbRANSsqBv6INoluHutBrrWEDKBMZAATzuQOGls/jYOWGJG8mHpYE9OAtUenf\no41GStwQAY9Td2skODnWlqtZXZZvrlRB9XTrXz2sOdQDHM3XtYaIo2qPzHiG\ntE4c6RRQeCm+n/LDGpM3ybLfvczyZuqdU/nDN5Yzb8dcfb7nqsnoymydgaLU\n+KVvGhQhWOGW4ll3+ypc3ZRTFS2eqgDUgWPTXQfvqNxtp188Zr8u4ZFY9/Vi\nqpV854J3nRUo5nCy8CTCj0roOlBlXqzRRJzsW8ko9TN2J+QqlMEhhEjR29bE\nM7Y8\r\n=/2QE\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCfp67VZznDozpm/yqNGd/ZAqerY/Ybs6ZrO60UwROglwIgaYHGmOEtjcqDoHhC1HsZ3kOlpXAXPu+TV40Ba3eDA6I="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.4.0_1596476736507_0.0960570475820608"},"_hasShrinkwrap":false},"7.4.1":{"name":"react-table","version":"7.4.1","description":"Hooks for building lightweight, fast and extendable datagrids for React","license":"MIT","homepage":"https://react-table.js.org","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"keywords":["react","table","react-table","datagrid"],"main":"index.js","scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"yarn test:jest","test:jest":"jest --coverage","test:coverage":"yarn test:jest; open coverage/lcov-report/index.html","build":"cross-env NODE_ENV=production rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,examples/*/src,examples/*/src/**}/*.{md,js,jsx,tsx} --write","docz:build":"docz build","docz:dev":"docz dev","docz:serve":"docz build && docz serve"},"browserslist":"> 0.25%, not dead","peerDependencies":{"react":"^16.8.3"},"devDependencies":{"@babel/core":"^7.7.2","@babel/plugin-transform-runtime":"^7.8.3","@babel/preset-env":"^7.7.1","@babel/preset-react":"^7.7.0","@babel/runtime":"^7.7.2","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^4.3.3","@testing-library/dom":"^6.10.1","@testing-library/jest-dom":"^4.2.4","@testing-library/react":"^9.3.2","@testing-library/react-hooks":"^3.2.1","babel-eslint":"9.x","babel-jest":"^24.9.0","core-js":"3.4.1","cross-env":"^6.0.3","docz":"^2.2.0","eslint":"6.6.0","eslint-config-prettier":"^6.7.0","eslint-config-react-app":"^5.0.2","eslint-config-standard":"^14.1.0","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"4.4.1","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^10.0.0","eslint-plugin-prettier":"^3.1.1","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.16.0","eslint-plugin-react-hooks":"2.3.0","eslint-plugin-standard":"^4.0.1","gatsby-theme-docz":"^2.2.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","jest-cli":"^24.9.0","jest-diff":"^25.1.0","jest-runner-eslint":"^0.7.5","jest-watch-select-projects":"^1.0.0","jest-watch-typeahead":"^0.4.2","lint-staged":"^9.4.3","prettier":"^1.19.1","prop-types":"^15.5.0","react":"^16.12.0","react-dom":"^16.12.0","react-test-renderer":"^16.13.0","rollup":"^1.32.1","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size":"^0.2.1","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2","serve":"^11.2.0"},"gitHead":"72e413438618d93cc3b0ba8fdb111ea364400e7f","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@7.4.1","_nodeVersion":"12.18.3","_npmVersion":"6.14.6","dist":{"integrity":"sha512-OPlYGyKgLf621qfO3m/wAgTCgiNSNfzs+ffalIAHpOtzPKWDhr3622gC168uGxLjNFTTDKd5jzD385UmlB0PoQ==","shasum":"c19ea2672ce0145d6f7a14af69d3a24e09f0981d","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.4.1.tgz","fileCount":48,"unpackedSize":875849,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfKFhqCRA9TVsSAnZWagAAz9QP/RKpocCgQWJtFBR5m4ij\nx4CP8NzBhvHSDT/7xhanYCZ5a7s4hctCKc/qdKXYzDw25jr+EXXEe5zH9P3B\nX0lAa35GbttXusvaRGB9wzeqztMgh3VSu6Rr3YccQ7FBBIed9m6HdKQgnjbt\n5Nzd/lq86R/Lo8xnc4XpSdktIHV6V4OlXB6NBGqowLUnx44Hh9CwWX50Zqkt\nAQVnb5Zyjx5P/Dmd/OYpwd8UjzIHFmhKXZB+j8g3ZPNP3Y/L7zEMFaheFBO/\noNvwCC5/6/3LK6V0aMUvF2sOPHuRIScmCi07/Ad+Mbd1W9K1d2sYiPyE4ZZj\nW68HMoSSScsWg6LLilANkCbBzQt5esFLOM/yKVoEL4wbXkx6IoNPNOnxVp01\nUJrXC+s4BSp+aROLjYuSJK699kGSebcx3YlMAkzXwnuLaiZTG+4mwijALf+M\n6XcT/KxobIjJd8nrOdxHnYV/1o4Pn0xiz2CZhgZ2Qnzsk3Bvixi5Ui9A7g+K\npeUveEBuvcl/TXqa3eHQrvm8yX5kbaVnw/a0Q+KdXd2PSS1DBawF7dTrRr9j\n9j5bzpB2S73PX3ZHWmmvB0KUfkKKu8mHotcl08BpT/xs1fi4zIUL+KAjFgzN\neOv96cYHv9kUifvQ+/xIW1c9h0EsCx7n1t65bfIc3zIA0rxD3I1b1MoNbN8Z\nOo9A\r\n=EZ7r\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDkHbP+Fl27zIdT+aDk7uvE+cF4lEtOtnEf4T+iPl3Y0gIhAP2SAMcC2aw50Iw/8rwN2QI+GiqD1/fQrD18LHgEklxq"}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.4.1_1596479594294_0.7622792106366578"},"_hasShrinkwrap":false},"7.4.2":{"name":"react-table","version":"7.4.2","description":"Hooks for building lightweight, fast and extendable datagrids for React","license":"MIT","homepage":"https://react-table.js.org","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"keywords":["react","table","react-table","datagrid"],"main":"index.js","scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"yarn test:jest","test:jest":"jest --coverage","test:coverage":"yarn test:jest; open coverage/lcov-report/index.html","build":"cross-env NODE_ENV=production rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,examples/*/src,examples/*/src/**}/*.{md,js,jsx,tsx} --write","docz:build":"docz build","docz:dev":"docz dev","docz:serve":"docz build && docz serve"},"browserslist":"> 0.25%, not dead","peerDependencies":{"react":"^16.8.3"},"devDependencies":{"@babel/core":"^7.7.2","@babel/plugin-transform-runtime":"^7.8.3","@babel/preset-env":"^7.7.1","@babel/preset-react":"^7.7.0","@babel/runtime":"^7.7.2","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^4.3.3","@testing-library/dom":"^6.10.1","@testing-library/jest-dom":"^4.2.4","@testing-library/react":"^9.3.2","@testing-library/react-hooks":"^3.2.1","babel-eslint":"9.x","babel-jest":"^24.9.0","core-js":"3.4.1","cross-env":"^6.0.3","docz":"^2.2.0","eslint":"6.6.0","eslint-config-prettier":"^6.7.0","eslint-config-react-app":"^5.0.2","eslint-config-standard":"^14.1.0","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"4.4.1","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^10.0.0","eslint-plugin-prettier":"^3.1.1","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.16.0","eslint-plugin-react-hooks":"2.3.0","eslint-plugin-standard":"^4.0.1","gatsby-theme-docz":"^2.2.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","jest-cli":"^24.9.0","jest-diff":"^25.1.0","jest-runner-eslint":"^0.7.5","jest-watch-select-projects":"^1.0.0","jest-watch-typeahead":"^0.4.2","lint-staged":"^9.4.3","prettier":"^1.19.1","prop-types":"^15.5.0","react":"^16.12.0","react-dom":"^16.12.0","react-test-renderer":"^16.13.0","rollup":"^1.32.1","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size":"^0.2.1","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2","serve":"^11.2.0"},"gitHead":"6a9223bb11821b48a92531f493e171f0df0d62c8","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@7.4.2","_nodeVersion":"12.18.3","_npmVersion":"6.14.6","dist":{"integrity":"sha512-9uDsqxkML+smN456JlQBlHNRFy/MD1+Lcwaab5mYPRsxIMM51lr1+eAkQyZrgb1vyENUbAFdd32ShStCRuz1JA==","shasum":"0f44179b39a4f43930723fb8f409746b305609aa","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.4.2.tgz","fileCount":48,"unpackedSize":875887,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfKGNRCRA9TVsSAnZWagAAxDcP/320JV/F2nFgSJrZ4AoD\nxucY4cj+fkkOoEwP3g3pBCNGZmr4I5/G405UvqHL6dVH9HY4uB9+GOlKOxo6\n0+m+0XW3AO+0fPZk1M40vNBzoiUuOoFFLrIM0bEgFAN5U5yw+eKF9/svNgO4\nmUNUmdW8I2FTCTWitMn/KQuydVgcl9ITgQYp0P+K/DRrVUVev3LG7wqTfe6j\nJCTDaAZESTIACqc7zj7zkCh4WEu32IvjudZanGJp/dEbJuze5XRICjsgfUWI\neA6GMkDxe7stGfhc3Bbwy9C4uL3S5Q0t4No1VDLgtOhPqbAo9c10K/tKUfyl\nHmYbWinWpY50As/ADKk3qQj9YWFV/ugV20DUQ3j/rWCH8V3qZmCMXGNAisma\n7C0+UdUFBoYKzWb/2vtLHjr1ucYxkMWb4L/Jh/CcsKwnmgPr2kMyYYOuU0Bd\nWg7ccfSmQz+3X4dincEeCkD2p0mi7ZEhEDeaCRCPXHzievDfNH7ShQ/ijkVb\n1mEIWZD5PVgKeMNp+/tZl9S6lq4ukEBiPTQJoX4l/9uWE1/iIcK5MI4zlXVp\nlnYv98j/rtZB2oA5nOwSZEcxLW7q5uFB8qXEr9ruB3YF1QT3EyCe+x63E8zc\nkImOd3H5c98R8wzeoEbPkpPcw9YEvSU6WQ5j1PGsZjzPYIQ05rv0Vqwo8nv1\nMst7\r\n=H/um\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD/fu+5axdspTKyO4UbltLER5+sukTH2A7VNkrTDlLzNAIhAPPg6DjwGLAjOPlqLT3v6DmMe2Iu8rUT5eQzgTt+JqR2"}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.4.2_1596482385371_0.6716788964568157"},"_hasShrinkwrap":false},"7.5.0":{"name":"react-table","version":"7.5.0","description":"Hooks for building lightweight, fast and extendable datagrids for React","license":"MIT","homepage":"https://react-table.js.org","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"keywords":["react","table","react-table","datagrid"],"main":"index.js","scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"yarn test:jest","test:jest":"jest --coverage","test:coverage":"yarn test:jest; open coverage/lcov-report/index.html","build":"cross-env NODE_ENV=production rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,examples/*/src,examples/*/src/**}/*.{md,js,jsx,tsx} --write","docz:build":"docz build","docz:dev":"docz dev","docz:serve":"docz build && docz serve"},"browserslist":"> 0.25%, not dead","peerDependencies":{"react":"^16.8.3"},"devDependencies":{"@babel/core":"^7.7.2","@babel/plugin-transform-runtime":"^7.8.3","@babel/preset-env":"^7.7.1","@babel/preset-react":"^7.7.0","@babel/runtime":"^7.7.2","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^4.3.3","@testing-library/dom":"^6.10.1","@testing-library/jest-dom":"^4.2.4","@testing-library/react":"^9.3.2","@testing-library/react-hooks":"^3.2.1","babel-eslint":"9.x","babel-jest":"^24.9.0","core-js":"3.4.1","cross-env":"^6.0.3","docz":"^2.2.0","eslint":"6.6.0","eslint-config-prettier":"^6.7.0","eslint-config-react-app":"^5.0.2","eslint-config-standard":"^14.1.0","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"4.4.1","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^10.0.0","eslint-plugin-prettier":"^3.1.1","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.16.0","eslint-plugin-react-hooks":"2.3.0","eslint-plugin-standard":"^4.0.1","gatsby-theme-docz":"^2.2.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","jest-cli":"^24.9.0","jest-diff":"^25.1.0","jest-runner-eslint":"^0.7.5","jest-watch-select-projects":"^1.0.0","jest-watch-typeahead":"^0.4.2","lint-staged":"^9.4.3","prettier":"^1.19.1","prop-types":"^15.5.0","react":"^16.12.0","react-dom":"^16.12.0","react-test-renderer":"^16.13.0","rollup":"^1.32.1","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size":"^0.2.1","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2","serve":"^11.2.0"},"gitHead":"205c7a9ffca144ab9260022cd0227145f47381a7","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@7.5.0","_nodeVersion":"12.18.3","_npmVersion":"6.14.6","dist":{"integrity":"sha512-hLsbNqLJkkYiATVteM8mthP8y5vnLPB2qdi9FeGZjsvb2m5vxj6cavIgk35oulvBmYD6Kox0HFfI332HPZpC7w==","shasum":"87326d92cdffbbf970f49b395bcafc3f84989ddf","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.5.0.tgz","fileCount":48,"unpackedSize":895288,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfKM6vCRA9TVsSAnZWagAA70oP/1p2GZuTpPrVyxb9PtMU\nonu26UttyWYg0ratzYW1aPBTz07UrrJPf8nmnCZ6v9ppdsMevVWzJvb5utgL\nwx3hc6gpWKge5SfcquGsdC5F9RYnbKUwOXyVUJPNWWiMxwxYiwOyihtWFugX\n8WpPS/FWcn13rqsYAcyCX0DgpAUBNXBeXdrAKY9c4U+m6lJopuKd0OF8eLmo\n+j06YaMMf0jTlR+211p7CitoToT/F+zAIh5C4N31tr9xBp0F9CaUMtMb5uuL\nEnzUsKTZKeox0GKMXO+sm3hezJGZGCzxUTIzreTENTvlWGZwqgnASHQNDlTw\nGixxokaThV27vTHbBqIovd+bdBK3eOmz97KzNjReBNSMudH0IlBQoChxam1P\nGRuPvZ4p5KRP/tYGpqiMioe/A8g4Q852M3uaeXpAmMpgagtn/8d9br+exBHJ\nMYsDvEjt3IWLKtg/zvUI/6IXQdkV4hPDSum8/iRikMeXK8PmvIo5/gW/4g2V\n8IBFGki4yK//XW+ZHlssH4Dss3dqTWPJmVYlbzYJo/9JcCxkalgVkZEQ6bkd\nVURgc82WGt7jpOCj7dFb5KAvOYF8I0g8KNGN4lkCzl1idf07+rv/QmzKNG9b\nrasfhXYz4EgNhx0NskL3h7oolFibvGlectorl/n2vTR6gduJu0+zYTFYdgAx\nKPBK\r\n=jxtp\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCabmT0myQxHtKCp0S1TvBVrRfcZvA92Inf5s3Nga2GvwIhANmsGV4e170YB2PrLSErL5Hh/OmifHWtqyxeC5F/DRdg"}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},{"name":"zsherman","email":"zach.h.sherman@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.5.0_1596509871195_0.5567413892913584"},"_hasShrinkwrap":false},"7.5.1":{"name":"react-table","version":"7.5.1","description":"Hooks for building lightweight, fast and extendable datagrids for React","license":"MIT","homepage":"https://react-table.tanstack.com","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"keywords":["react","table","react-table","datagrid"],"main":"index.js","scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"yarn test:jest","test:jest":"jest --coverage","test:coverage":"yarn test:jest; open coverage/lcov-report/index.html","build":"cross-env NODE_ENV=production rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,examples/*/src,examples/*/src/**}/*.{md,js,jsx,tsx} --write","docz:build":"docz build","docz:dev":"docz dev","docz:serve":"docz build && docz serve"},"browserslist":"> 0.25%, not dead","peerDependencies":{"react":"^16.8.3"},"devDependencies":{"@babel/core":"^7.7.2","@babel/plugin-transform-runtime":"^7.8.3","@babel/preset-env":"^7.7.1","@babel/preset-react":"^7.7.0","@babel/runtime":"^7.7.2","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^4.3.3","@testing-library/dom":"^6.10.1","@testing-library/jest-dom":"^4.2.4","@testing-library/react":"^9.3.2","@testing-library/react-hooks":"^3.2.1","babel-eslint":"9.x","babel-jest":"^24.9.0","core-js":"3.4.1","cross-env":"^6.0.3","docz":"^2.2.0","eslint":"6.6.0","eslint-config-prettier":"^6.7.0","eslint-config-react-app":"^5.0.2","eslint-config-standard":"^14.1.0","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"4.4.1","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^10.0.0","eslint-plugin-prettier":"^3.1.1","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.16.0","eslint-plugin-react-hooks":"2.3.0","eslint-plugin-standard":"^4.0.1","gatsby-theme-docz":"^2.2.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","jest-cli":"^24.9.0","jest-diff":"^25.1.0","jest-runner-eslint":"^0.7.5","jest-watch-select-projects":"^1.0.0","jest-watch-typeahead":"^0.4.2","lint-staged":"^9.4.3","prettier":"^1.19.1","prop-types":"^15.5.0","react":"^16.12.0","react-dom":"^16.12.0","react-test-renderer":"^16.13.0","rollup":"^1.32.1","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size":"^0.2.1","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2","serve":"^11.2.0"},"gitHead":"a86e4049b8311cfd822d7d2fac43f876c6114480","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@7.5.1","_nodeVersion":"12.18.3","_npmVersion":"6.14.6","dist":{"integrity":"sha512-rprrUElCqvj79lyY2XbUoYLzwA5Mm4CGS8ElQ8OyzocvmkvCcmunvvfbpIg9Jm9HnMBjVZcVyPFPZ1BFelIBKw==","shasum":"b6a9b46e52c0f37ff91717ac478f430c6a357e41","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.5.1.tgz","fileCount":48,"unpackedSize":895683,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfZMBbCRA9TVsSAnZWagAANngP/RybRt7zc9tHMFUgiHd8\nw62DwPhAs9rtzevT0MjW2fV1p7gucDUD7C75a2c6X6ClTp6EqKwU8kiiLJqD\nBKiTyYWSyb2tP8qwOH/W1cuGL8w5u4avdMTU7wgCrffxhT93uUGshJCCUgLu\nW7kPBhJkQd9aluYcZFIgPZw7JgxKzqJ86J+BT01A9cT5jCmcRkL537Bj0e7n\nC3x1tSG1ciDWHDhzE4pIB+gQjCCAWwBAA0Mojw1p3NAuhzcJpgt7pNqdaT+K\nR961c4WuGitrafujqLflol+bJwMHgjijTndFej5gYqS4B+S6GiVXGQka4PnL\nK61unhQUb5LeXsUenldTyQpINgWt+qI0zMmsNINPvxL0aQkKnFAIdtLPxMFN\nzPU/04Rd6ZkhoRn9fdcXcyo5L804BmVma2djgdaWj8EqW6u+6n0BwVnU7+Mo\nNCeVkZ6iA2QSe6z2/B/JFEBHXMAzxJcjLL5G58GMyuplR7gXFW8rHYI8P5ZO\ndzpRH8RIgx/LGNkE1dYJykK00Xl141E7lyzRwMxQPNp9kbQHO7r9L3hO5po4\nTbDu3AWpyCw6oXGu7W5QwKi5m75sRj0ewQ783Ov36SjzdWdno4tgKl+pGq0k\nk/V5h8FqIyFbtodQWYsmA7/ZIZr9VpiDyapmGtnnHcfkg03eLEIggOoBp4T8\nJBAw\r\n=mhXf\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFcZa2zHDBRIKRU3IdShOO/3IOUvOQx4PyhuUijE7hM2AiBoNp7aqc8WDFSHUXY9uzZJazPB6ACNxHGl16lKYGlMjQ=="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.5.1_1600438362912_0.6220131225292742"},"_hasShrinkwrap":false},"7.5.2":{"name":"react-table","version":"7.5.2","description":"Hooks for building lightweight, fast and extendable datagrids for React","license":"MIT","homepage":"https://react-table.tanstack.com","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"keywords":["react","table","react-table","datagrid"],"main":"index.js","scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"yarn test:jest","test:jest":"jest --coverage","test:coverage":"yarn test:jest; open coverage/lcov-report/index.html","build":"cross-env NODE_ENV=production rollup -c","start":"rollup -c -w","prepare":"yarn build","release":"yarn publish","releaseNext":"yarn publish --tag next","format":"prettier {src,src/**,examples/*/src,examples/*/src/**}/*.{md,js,jsx,tsx} --write","docz:build":"docz build","docz:dev":"docz dev","docz:serve":"docz build && docz serve"},"browserslist":"> 0.25%, not dead","peerDependencies":{"react":"^16.8.3"},"devDependencies":{"@babel/core":"^7.7.2","@babel/plugin-transform-runtime":"^7.8.3","@babel/preset-env":"^7.7.1","@babel/preset-react":"^7.7.0","@babel/runtime":"^7.7.2","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^4.3.3","@testing-library/dom":"^6.10.1","@testing-library/jest-dom":"^4.2.4","@testing-library/react":"^9.3.2","@testing-library/react-hooks":"^3.2.1","babel-eslint":"9.x","babel-jest":"^24.9.0","core-js":"3.4.1","cross-env":"^6.0.3","docz":"^2.2.0","eslint":"6.6.0","eslint-config-prettier":"^6.7.0","eslint-config-react-app":"^5.0.2","eslint-config-standard":"^14.1.0","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"4.4.1","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^10.0.0","eslint-plugin-prettier":"^3.1.1","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.16.0","eslint-plugin-react-hooks":"2.3.0","eslint-plugin-standard":"^4.0.1","gatsby-theme-docz":"^2.2.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","jest-cli":"^24.9.0","jest-diff":"^25.1.0","jest-runner-eslint":"^0.7.5","jest-watch-select-projects":"^1.0.0","jest-watch-typeahead":"^0.4.2","lint-staged":"^9.4.3","prettier":"^1.19.1","prop-types":"^15.5.0","react":"^16.12.0","react-dom":"^16.12.0","react-test-renderer":"^16.13.0","rollup":"^1.32.1","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size":"^0.2.1","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2","serve":"^11.2.0"},"gitHead":"6600b275e34e49365119b9cbcba7f0a42c395a53","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@7.5.2","_nodeVersion":"12.18.4","_npmVersion":"6.14.6","dist":{"integrity":"sha512-qiceR/gQUOBsO/q1z1wZ3RbRvkRt39Gbzo631HiPuWmo+eTmTgaXDqLGzCmU+bOr81PB6kDxXhoWQR8hiWaUJA==","shasum":"d82ceee3d4d40b119159bce1708f084a95d3435c","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.5.2.tgz","fileCount":48,"unpackedSize":896090,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfeMG5CRA9TVsSAnZWagAAWQ4P/3xgSZgqbwHd6riVHFzE\nMs65iPTU02aN4HOnk7/UcYXSE7HUoTCSCV05/H0kt6czd/GGTLaNBZg7iSwT\nruFfySOTvN+c23htoCUcLHL2a69ah0d3OKKo+xdjQ+QGHADt/X7w44oJ3BE7\n7HrZKLkPJ5PeOfc6KimWvZOM7eCd+c3CMnJAIUOADmMA4ApKAAYKd90kv2Vn\nNScqJsWf985TaTri/Qr6KjNmdhtQ0XV2qDEKN2BUIq5O1MaptQw2ukG1B3lk\nndDadmqQRUoPQ309weUyeV7/cadTqp9Astrgf4ties1NSPpxk5cFybL7PnLb\nLxHOKLTlwX77GZZkgCS0w1DcKEJ38f9I0kbTuubhvik98V4WgZDIY4BsB1Ba\nJdZdwxWYULWnQ27xiKmA/TriZLlVORogNRlHObn+gHvtPW3tvwftCnebAZLp\nrnRv1PtpUHZdsseBKM2uFfi5s+6Va0MEKRxmkkf/lF26CklNo3/t06rqoPVf\nyhC34sfls7xRQEiNYH7ryY6he3KmUrjC3Q04rTpxw9WMDdI2tG9nrkv4MpvR\nMUzmlTQJMbCnl25JhDpJeywNLtU3zpnHnlY8td9Zq7ymuC23rXiwpa/CYVav\nfEzxRXIBD8qrRM8QoBhIIGj8GD415fgCgozwnlxPEAHHQasKYkIPaoT6IzQ2\n72GP\r\n=qrxK\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIB9ieBlgmjK4owlzRGW7PsVWi4kmWTWNYcz0/W4T8RdDAiBz48FCmZsVk3iJAkO4bdn2y4YvfzNUr2yldTGRArtltQ=="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.5.2_1601749433343_0.5834006380834744"},"_hasShrinkwrap":false},"7.6.0":{"name":"react-table","version":"7.6.0","description":"Hooks for building lightweight, fast and extendable datagrids for React","license":"MIT","homepage":"https://react-table.tanstack.com","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"keywords":["react","table","react-table","datagrid"],"main":"index.js","scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"yarn test:jest","test:jest":"jest --coverage","test:coverage":"yarn test:jest; open coverage/lcov-report/index.html","build":"cross-env NODE_ENV=production rollup -c","start":"rollup -c -w","prepare":"yarn build","format":"prettier {src,src/**,examples/*/src,examples/*/src/**}/*.{md,js,jsx,tsx} --write","docz:build":"docz build","docz:dev":"docz dev","docz:serve":"docz build && docz serve"},"release":{"branches":["6.x","master",{"name":"next","prerelease":true}]},"browserslist":"> 0.25%, not dead","peerDependencies":{"react":"^16.8.3"},"devDependencies":{"@babel/core":"^7.7.2","@babel/plugin-transform-runtime":"^7.8.3","@babel/preset-env":"^7.7.1","@babel/preset-react":"^7.7.0","@babel/runtime":"^7.7.2","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^4.3.3","@testing-library/dom":"^6.10.1","@testing-library/jest-dom":"^4.2.4","@testing-library/react":"^9.3.2","@testing-library/react-hooks":"^3.2.1","babel-eslint":"9.x","babel-jest":"^24.9.0","core-js":"3.4.1","cross-env":"^6.0.3","docz":"^2.2.0","eslint":"6.6.0","eslint-config-prettier":"^6.7.0","eslint-config-react-app":"^5.0.2","eslint-config-standard":"^14.1.0","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"4.4.1","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^10.0.0","eslint-plugin-prettier":"^3.1.1","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.16.0","eslint-plugin-react-hooks":"2.3.0","eslint-plugin-standard":"^4.0.1","gatsby-theme-docz":"^2.2.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","jest-cli":"^24.9.0","jest-diff":"^25.1.0","jest-runner-eslint":"^0.7.5","jest-watch-select-projects":"^1.0.0","jest-watch-typeahead":"^0.4.2","lint-staged":"^9.4.3","prettier":"^1.19.1","prop-types":"^15.5.0","react":"^16.12.0","react-dom":"^16.12.0","react-test-renderer":"^16.13.0","rollup":"^1.32.1","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size":"^0.2.1","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2","serve":"^11.2.0"},"gitHead":"a9b57eb175edd5790a85c3ba9b9e898ee9d37637","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@7.6.0","_nodeVersion":"14.13.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-16kRTypBWz9ZwLnPWA8hc3eIC64POzO9GaMBiKaCcVM+0QOQzt0G7ebzGUM8SW0CYUpVM+glv1kMXrWj9tr3Sw==","shasum":"83d765b96505b5332d108a2e0c27ab653f5a78c3","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.6.0.tgz","fileCount":50,"unpackedSize":915341,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfgiRPCRA9TVsSAnZWagAAv7oP/0WOGjSOS0M44dgipY6Q\nKSVHpH7x4LxSSl0Txin9CaYDXo9SrnOpXnkOqlP/YVbyk3yMkkrgHHmifwrF\nMlwliCuYSqcMoL8bXX6GrdW8lkPSMsNmnqLKY05xWjtm1tDMhWeTLFqOfJas\nhmYIEJy/ukMtiirvvMQMEl/GwQq3M4t1GwZjf5sEwiK2kRcsUgHTvpif9nbd\nupHDfoTc9GmrzDipjU5iRVB85T9flrmml3Af+bXBrQUdx7aUCDtBJ68B1GEx\ndeJ4pRJ1JsBIWP5A8G4jMbz/Lh2PfpGBWYBhcViGdEF5rVXzqemfaktjRQuS\nEPXJB11JGoPR+fpujbXqsatSxFojIw2W/oY6lxnrDX8Qw4os2lQ6GtDf0qqU\n4YC0yF+tM0kMEGXlnXYgKt9ufXk4Uhubl5Pa67kMoNEaqR7f2BKWx24QVSkP\n6DQ3WSG3i2vmLX8sIs1vM5aqW4atszRqf+ypG9Ixib4Emo+AzgjzPIdH2ao2\nbmcq47rmu+Ct5LJyL3CFJlYiR2WAPt5ZtiWzKKYAZK8thbLFw+31ERF1Fe/W\n8C5sp5RPlz3jvz7ebRl1e+6wgopeJgreECt1Cfvhty21ywW3M32VStmw1PXV\nxQOCRr/X2WaDxriTcR19+BbRSWP65gEvgpvZQ8YAv7t15Ctzuursap1r42Op\nzckP\r\n=MG2c\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDskotkXhqsQzbJDbM1wtGK/Ep49phaXTSaqn6+GhkTBQIgadMl+2CgkOy3KEWWHC0vbPWYJbsXryCgg760OApuHL8="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.6.0_1602364494225_0.4162604207292899"},"_hasShrinkwrap":false},"7.6.1":{"name":"react-table","version":"7.6.1","description":"Hooks for building lightweight, fast and extendable datagrids for React","license":"MIT","homepage":"https://react-table.tanstack.com","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"keywords":["react","table","react-table","datagrid"],"main":"index.js","scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"yarn test:jest","test:jest":"jest --coverage","test:coverage":"yarn test:jest; open coverage/lcov-report/index.html","build":"cross-env NODE_ENV=production rollup -c","start":"rollup -c -w","prepare":"yarn build","format":"prettier {src,src/**,examples/*/src,examples/*/src/**}/*.{md,js,jsx,tsx} --write","docz:build":"docz build","docz:dev":"docz dev","docz:serve":"docz build && docz serve"},"release":{"branches":["6.x","master",{"name":"next","prerelease":true}]},"browserslist":"> 0.25%, not dead","peerDependencies":{"react":"^16.8.3"},"devDependencies":{"@babel/core":"^7.7.2","@babel/plugin-transform-runtime":"^7.8.3","@babel/preset-env":"^7.7.1","@babel/preset-react":"^7.7.0","@babel/runtime":"^7.7.2","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^4.3.3","@testing-library/dom":"^6.10.1","@testing-library/jest-dom":"^4.2.4","@testing-library/react":"^9.3.2","@testing-library/react-hooks":"^3.2.1","babel-eslint":"9.x","babel-jest":"^24.9.0","core-js":"3.4.1","cross-env":"^6.0.3","docz":"^2.2.0","eslint":"6.6.0","eslint-config-prettier":"^6.7.0","eslint-config-react-app":"^5.0.2","eslint-config-standard":"^14.1.0","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"4.4.1","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^10.0.0","eslint-plugin-prettier":"^3.1.1","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.16.0","eslint-plugin-react-hooks":"2.3.0","eslint-plugin-standard":"^4.0.1","gatsby-theme-docz":"^2.2.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","jest-cli":"^24.9.0","jest-diff":"^25.1.0","jest-runner-eslint":"^0.7.5","jest-watch-select-projects":"^1.0.0","jest-watch-typeahead":"^0.4.2","lint-staged":"^9.4.3","prettier":"^1.19.1","prop-types":"^15.5.0","react":"^16.12.0","react-dom":"^16.12.0","react-test-renderer":"^16.13.0","rollup":"^1.32.1","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size":"^0.2.1","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2","serve":"^11.2.0"},"gitHead":"401c6b8585d37ba2624136d9bfadbe9bbcdb92f3","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@7.6.1","_nodeVersion":"14.13.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-XQyvombPoFbNiDHWAXdxbN78kFpsT1/aJuRSupFfBhO3FJtEVIIq2xbV1NvLzrd1YwfCYRm07ln5OHlfz0SXBg==","shasum":"33ad2bfc58de619678694c5452597544f4864266","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.6.1.tgz","fileCount":50,"unpackedSize":915335,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJflwSQCRA9TVsSAnZWagAAJFwP/1a8gXZ9vJPtrNgco0nF\nWGp6Kwl8g/MD5MA+HU9N6T4qPjrDb9rMqV+C4lCDXCxgy1SJ/08UfegjsXs2\nMRY0XmQ3TTAVkc3P+i5fXd4AX5Wj1x6Pe8yAor+1SD1aA9L27ZCELyvRAzkh\nqTljUYnO8bh7uepimgla5VgFpHmApX+LZa37ObGgTCR4Pgyqtkv77lAU8lM1\n3MAuX/EYNrd5P3FGh9t5s4IlTPbYIr73prvuxX6//A3Bvsjz4h3EAAUalivi\nWmBcM4DXhHDk/LVSClxTWheA/0uJzHYIjDwBX8aZkfu9sMNSS8CTM+cUrONq\nQsDXgpLGOm7/LK16Jt20oAjtJwP8vP5MrhHs0e5vxp6HUOXAK4aRa3xIT9kg\nA+nVueXIXM9ld3et/APVypmgScABBwqiGIT49QlN/Z0WCzOeyOOhG2qLL55A\n9VgAaO+iHb1aPhfqs0JH0bgPfsQv8HKIWRatgkMoexAbl7XFAppZQR+/mrZM\nzvXA8aLxTg18pHv/xKUbtFqUmizSev0ECk9jRRuFtRTCVjMyerWUZWwL0LZ1\ngxLN4+P5IiFpP82CAqCLYtcuk7oiZnantVGn7X9NWzRAOpdUScn0B9PPG74C\nZ8szNtNWFaPvxHC1FxePK/PBUJOPcOd/41i0wZ4Z7oUuhTx0pqx9OgpRDt0W\np5EP\r\n=eujV\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD6evT8Ifwoby4a6xaq00FRGZLiLphWHpkN7pilsBJ9yQIgdUD7jaCTiArPxqPc2PSPDyc3ZcynM5UvfahLCspxR1Y="}]},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.6.1_1603732623496_0.9894434493100708"},"_hasShrinkwrap":false},"7.6.2":{"name":"react-table","version":"7.6.2","description":"Hooks for building lightweight, fast and extendable datagrids for React","license":"MIT","homepage":"https://react-table.tanstack.com","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"keywords":["react","table","react-table","datagrid"],"main":"index.js","scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"yarn test:jest","test:jest":"jest --coverage","test:coverage":"yarn test:jest; open coverage/lcov-report/index.html","build":"cross-env NODE_ENV=production rollup -c","start":"rollup -c -w","prepare":"yarn build","format":"prettier {src,src/**,examples/*/src,examples/*/src/**}/*.{md,js,jsx,tsx} --write","docz:build":"docz build","docz:dev":"docz dev","docz:serve":"docz build && docz serve"},"release":{"branches":["6.x","master",{"name":"next","prerelease":true}]},"browserslist":"> 0.25%, not dead","peerDependencies":{"react":"^16.8.3 || ^17.0.0-0"},"devDependencies":{"@babel/core":"^7.7.2","@babel/plugin-transform-runtime":"^7.8.3","@babel/preset-env":"^7.7.1","@babel/preset-react":"^7.7.0","@babel/runtime":"^7.7.2","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^4.3.3","@testing-library/dom":"^6.10.1","@testing-library/jest-dom":"^4.2.4","@testing-library/react":"^9.3.2","@testing-library/react-hooks":"^3.2.1","babel-eslint":"9.x","babel-jest":"^24.9.0","core-js":"3.4.1","cross-env":"^6.0.3","docz":"^2.2.0","eslint":"6.6.0","eslint-config-prettier":"^6.7.0","eslint-config-react-app":"^5.0.2","eslint-config-standard":"^14.1.0","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"4.4.1","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^10.0.0","eslint-plugin-prettier":"^3.1.1","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.16.0","eslint-plugin-react-hooks":"2.3.0","eslint-plugin-standard":"^4.0.1","gatsby-theme-docz":"^2.2.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","jest-cli":"^24.9.0","jest-diff":"^25.1.0","jest-runner-eslint":"^0.7.5","jest-watch-select-projects":"^1.0.0","jest-watch-typeahead":"^0.4.2","lint-staged":"^9.4.3","prettier":"^1.19.1","prop-types":"^15.5.0","react":"^16.12.0","react-dom":"^16.12.0","react-test-renderer":"^16.13.0","rollup":"^1.32.1","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size":"^0.2.1","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2","serve":"^11.2.0"},"gitHead":"f1f1f787f1ba06d32a4d711f23a7abb47063978e","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@7.6.2","_nodeVersion":"14.15.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-urwNZTieb+xg/+BITUIrqdH5jZfJlw7rKVAAq25iXpBPwbQojLCEKJuGycLbVwn8fzU+Ovly3y8HHNaLNrPCvQ==","shasum":"b60932fa6d457c2bca0da49815cd6a8fe9451f77","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.6.2.tgz","fileCount":50,"unpackedSize":915348,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfrqWfCRA9TVsSAnZWagAAVecP/0Tm2KzncODhcwSbc+kn\nZehBRjDVkavBJJIlv4G1K8jaMJNwko8hECO62MdfQ6VvqHUUACpDIi+K5d+1\nyLKgYUJJMq/nOqpgNE46edSywlkVeC8MVur72uINXZ2SVegb9yKpIYUMR5G9\nNFsdf+EPdFibb+7rhwffCy6wWs6t8dpx7jjBA697nEVZUmFOpCpcMr+vh0eo\nixdNlavTH4sBXNSG7iptScsScT6PYICNvn0Poswi3sURuVjvN3oIvQOtOCtu\nYpA5NAwWi1JF9tC1Gp1eK0do+2b0VQ5AJ41XT3SA1qvEkWvRrxl9dWfBdvUx\nrHR7t9CYK3WYZqLPh5QKBvm8FhLhksvtqFu1zu8B/qk/2h9d88cfgcY6ztkq\ncB9cOxAaUnaSNfWGCLIThE76oRqqrDigzPwh5V8/sKp9aLYJg+E1qZZKVqe5\nOpUrGAVoj0Ve3Ts7ZmffUqhULBI3bWFAngWaK9uoQyv9HO+Ui+3FXeMqBvQ2\neHY09vYczR5UxIB/AvBJEkdgq+t5/tScmeo0Y6VpmcDEdywCodWY/J/QN/jM\nFVRveZlOPWI9sp1jUqZUwJBZfnJwUys3dIIpekNn5Vq7TjG6uHv0++WO/sCX\nVpeAX651nVZJE4IWDPwoV9zOXGM0RuxlU0a7PyVfeMVN5In4ZeY8OhGX2VHW\n079o\r\n=N1+h\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHLXdC7DUD0CGtplID6or83fsSAwr2L2TIStrjpoNQmZAiEA6Rmnv5fUpbbxw+Kff5/hfxw/LZ4WHe6pjY6gRSVQ+gM="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.6.2_1605281182722_0.6427409881325603"},"_hasShrinkwrap":false},"7.6.3":{"name":"react-table","version":"7.6.3","description":"Hooks for building lightweight, fast and extendable datagrids for React","license":"MIT","homepage":"https://react-table.tanstack.com","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"keywords":["react","table","react-table","datagrid"],"main":"index.js","scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"yarn test:jest","test:jest":"jest --coverage","test:coverage":"yarn test:jest; open coverage/lcov-report/index.html","build":"cross-env NODE_ENV=production rollup -c","start":"rollup -c -w","prepare":"yarn build","format":"prettier {src,src/**,examples/*/src,examples/*/src/**}/*.{md,js,jsx,tsx} --write","docz:build":"docz build","docz:dev":"docz dev","docz:serve":"docz build && docz serve"},"release":{"branches":["6.x","master",{"name":"next","prerelease":true}]},"browserslist":"> 0.25%, not dead","peerDependencies":{"react":"^16.8.3 || ^17.0.0-0"},"devDependencies":{"@babel/core":"^7.7.2","@babel/plugin-transform-runtime":"^7.8.3","@babel/preset-env":"^7.7.1","@babel/preset-react":"^7.7.0","@babel/runtime":"^7.7.2","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^4.3.3","@testing-library/dom":"^6.10.1","@testing-library/jest-dom":"^4.2.4","@testing-library/react":"^9.3.2","@testing-library/react-hooks":"^3.2.1","babel-eslint":"9.x","babel-jest":"^24.9.0","core-js":"3.4.1","cross-env":"^6.0.3","docz":"^2.2.0","eslint":"6.6.0","eslint-config-prettier":"^6.7.0","eslint-config-react-app":"^5.0.2","eslint-config-standard":"^14.1.0","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"4.4.1","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^10.0.0","eslint-plugin-prettier":"^3.1.1","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.16.0","eslint-plugin-react-hooks":"2.3.0","eslint-plugin-standard":"^4.0.1","gatsby-theme-docz":"^2.2.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","jest-cli":"^24.9.0","jest-diff":"^25.1.0","jest-runner-eslint":"^0.7.5","jest-watch-select-projects":"^1.0.0","jest-watch-typeahead":"^0.4.2","lint-staged":"^9.4.3","prettier":"^1.19.1","prop-types":"^15.5.0","react":"^16.12.0","react-dom":"^16.12.0","react-test-renderer":"^16.13.0","rollup":"^1.32.1","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size":"^0.2.1","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2","serve":"^11.2.0"},"gitHead":"f97fb98509d0b27cc0bebcf3137872afe4f2809e","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@7.6.3","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-hfPF13zDLxPMpLKzIKCE8RZud9T/XrRTsaCIf8zXpWZIZ2juCl7qrGpo3AQw9eAetXV5DP7s2GDm+hht7qq5Dw==","shasum":"76434392b3f62344bdb704f5b227c2f29c1ffb14","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.6.3.tgz","fileCount":50,"unpackedSize":915623,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf/MUzCRA9TVsSAnZWagAAgR0P/3wmh5ayqc9ge5WiW5O7\neBaux16lIg6iq5BNdKKHqOZ3g8SBHGOcEB/jh37KuI84aO09W83t8Wj/rnJd\nsxmYRK3D4BzSL0aWePnFJ5joyb+P1DgghP3diMNjZKQRdgOD5wE11J6Vs8ey\nbPVmtPX9S5rLJ16KcMCmq6w1Z76rT4uLGpMb8MWJmF0p572oMZllu9JxQLE6\n2kFJATIFzyLQWB/xH9WBET80zXCDi7fQHjPHwiARagXKn28XYFnFj7A5Qwqd\nZOyyIwO3kWvJQF40x7paq3nAJVesIE1AYOICwuXISWPoXeXCa2Uhc+FVDNjL\nSMP2lCAaMSlOR3Ki3UagGPwz3TPa/sY85ED1QMB6mtPUpuJPzlPl76GuJ8MF\nJRqVzH4ERQLk7mD7yzqYk3nHBSYudUYHz9iKp7ev3+bHuFK/EI/sRe+cYdZ+\nu/rrU5AVVLA67xnDFPeVZ3FIlMNCsQxrLKsXT3z/GnXXHj7E3rslsc5EnO7d\nLuRpeCSCoVlY/kBV5frnYfm+eFPPrgkRhjFQ8X+ewMkYdw6tK67Ir+oV8NBy\nnxgyHjHXTBsqaCSTSm3u3FaEP8t8CLWSIGon96Iig0afV+Q45BXc25qvllHB\nIg4JTihAJxgqgqBc+TtzLaOvB+nY8TZ+NfkAAZueEolh+5vPHptHCbqeHd+3\nwl76\r\n=KMiW\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCENn/6dzdA8AdnbtUEu75dnQLgfwlsV28Wds3MBimgPQIgHI4NFZZPa3A/JBIJgAyri6rqWmILQVNkyzvFKqI1iss="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.6.3_1610401074763_0.2482024789773678"},"_hasShrinkwrap":false},"7.7.0":{"name":"react-table","version":"7.7.0","description":"Hooks for building lightweight, fast and extendable datagrids for React","license":"MIT","homepage":"https://react-table.tanstack.com","repository":{"type":"git","url":"git+https://github.com/tannerlinsley/react-table.git"},"funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"keywords":["react","table","react-table","datagrid"],"main":"index.js","scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"yarn test:jest","test:jest":"jest --coverage","test:coverage":"yarn test:jest; open coverage/lcov-report/index.html","build":"cross-env NODE_ENV=production rollup -c","start":"rollup -c -w","prepare":"yarn build","format":"prettier {src,src/**,examples/*/src,examples/*/src/**}/*.{md,js,jsx,tsx} --write","docz:build":"docz build","docz:dev":"docz dev","docz:serve":"docz build && docz serve"},"release":{"branches":["6.x","master",{"name":"next","prerelease":true}]},"browserslist":"> 0.25%, not dead","peerDependencies":{"react":"^16.8.3 || ^17.0.0-0"},"devDependencies":{"@babel/core":"^7.7.2","@babel/plugin-transform-runtime":"^7.8.3","@babel/preset-env":"^7.7.1","@babel/preset-react":"^7.7.0","@babel/runtime":"^7.7.2","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^4.3.3","@testing-library/dom":"^6.10.1","@testing-library/jest-dom":"^4.2.4","@testing-library/react":"^9.3.2","@testing-library/react-hooks":"^3.2.1","babel-eslint":"9.x","babel-jest":"^24.9.0","core-js":"3.4.1","cross-env":"^6.0.3","docz":"^2.2.0","eslint":"6.6.0","eslint-config-prettier":"^6.7.0","eslint-config-react-app":"^5.0.2","eslint-config-standard":"^14.1.0","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"4.4.1","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^10.0.0","eslint-plugin-prettier":"^3.1.1","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.16.0","eslint-plugin-react-hooks":"2.3.0","eslint-plugin-standard":"^4.0.1","gatsby-theme-docz":"^2.2.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","jest-cli":"^24.9.0","jest-diff":"^25.1.0","jest-runner-eslint":"^0.7.5","jest-watch-select-projects":"^1.0.0","jest-watch-typeahead":"^0.4.2","lint-staged":"^9.4.3","prettier":"^1.19.1","prop-types":"^15.5.0","react":"^16.12.0","react-dom":"^16.12.0","react-test-renderer":"^16.13.0","rollup":"^1.32.1","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size":"^0.2.1","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2","serve":"^11.2.0"},"gitHead":"fa662bc33d4356b79390dd24140b5cc56b75e1d6","bugs":{"url":"https://github.com/tannerlinsley/react-table/issues"},"_id":"react-table@7.7.0","_nodeVersion":"14.16.1","_npmVersion":"6.14.12","dist":{"integrity":"sha512-jBlj70iBwOTvvImsU9t01LjFjy4sXEtclBovl3mTiqjz23Reu0DKnRza4zlLtOPACx6j2/7MrQIthIK1Wi+LIA==","shasum":"e2ce14d7fe3a559f7444e9ecfe8231ea8373f912","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.7.0.tgz","fileCount":50,"unpackedSize":922351,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJghfQMCRA9TVsSAnZWagAAA4UP/jpeJye3V9SD598h/6AT\nOOx96ttjbKpwstaJHgKoIDaEJbhWRJWdBtewitfVSZbL+BGbvMrvkNFMH127\np/EYVGVJXEvv4TshpIZHIplOUOSdVNkcJGwbd5AcQUypI2QYxW1NWaljB5qQ\ngL9FCrHb5w4/DS1lB3COpQlB02G3GFBOFzVNbxku55D3cp/g1RRpJ+hkZtoe\nL3FBN5DLeKJJ/j5V8+XLIBr2dnyWDOdRYIIdVG4iqbGybBzajQgAtHJXX7Sk\n9uVRjv0EGevOj/kl3vRxPA9UZviOqj+KQX11MoHwVtRcYpGz4xZN9SeJmeCC\nRex7C2Y1rENecKQiDEiqDUgmq/LSXMwB3H6NJOaHdPhSj65DspswKK98XOZW\nE6AtEeU2FTW0yQ+v9w78UR1xKNmu7Toc73jV/xGVZ5AV4JHBJd8Ojtay1mHd\nrYpnX+RTF0lxhnOOvDLgqvsgIPJ024bPd7ikyKd71PBeXfqqko6kwqZALLAk\ntDJ6wQnnVTNP+IhzLC7goXPJXvY2N8Q3NbjREsZAH0beOF+Ad5rBD17Gzibl\niajjuxgWzd+ANGHqoh+ieLZF1qPEynX6iWd8DtFgnp2EyJfjQfwPiUQ+wapl\nMhgJT/SNWHlrMkQqzyj40XidyjbSGUaSC4HrtXAAw6tKZWgZXoL8EBigVUoz\nMy5p\r\n=jVT+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIA8VjlQKW3+3w6+M3CmQAzFBEgFg9/sJpSRfynYE2nWRAiEAsvXHoHaVWfR6FTqe26wH9y0ifH8s6y9OCe3k7yIpH84="}]},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.7.0_1619391499963_0.5633408382053611"},"_hasShrinkwrap":false},"7.8.0":{"name":"react-table","version":"7.8.0","description":"Hooks for building lightweight, fast and extendable datagrids for React","license":"MIT","homepage":"https://react-table.tanstack.com/","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-table"},"funding":{"type":"github","url":"https://github.com/sponsors/tannerlinsley"},"keywords":["react","table","react-table","datagrid"],"main":"index.js","scripts":{"test":"is-ci \"test:ci\" \"test:dev\"","test:dev":"jest --watch","test:ci":"yarn test:jest","test:jest":"jest --coverage","test:coverage":"yarn test:jest; open coverage/lcov-report/index.html","build":"cross-env NODE_ENV=production rollup -c","start":"rollup -c -w","prepare":"yarn build","format":"prettier {src,src/**,examples/*/src,examples/*/src/**}/*.{md,js,jsx,tsx} --write","docz:build":"docz build","docz:dev":"docz dev","docz:serve":"docz build && docz serve"},"release":{"branches":["6.x","master",{"name":"next","prerelease":true}]},"browserslist":"> 0.25%, not dead","peerDependencies":{"react":"^16.8.3 || ^17.0.0-0 || ^18.0.0"},"devDependencies":{"@babel/core":"^7.7.2","@babel/plugin-transform-runtime":"^7.8.3","@babel/preset-env":"^7.7.1","@babel/preset-react":"^7.7.0","@babel/runtime":"^7.7.2","@rollup/plugin-replace":"^2.3.3","@svgr/rollup":"^4.3.3","@testing-library/dom":"^6.10.1","@testing-library/jest-dom":"^4.2.4","@testing-library/react":"^13.1.1","@testing-library/react-hooks":"^3.2.1","babel-eslint":"9.x","babel-jest":"^24.9.0","core-js":"3.4.1","cross-env":"^6.0.3","docz":"^2.2.0","eslint":"6.6.0","eslint-config-prettier":"^6.7.0","eslint-config-react-app":"^5.0.2","eslint-config-standard":"^14.1.0","eslint-config-standard-react":"^9.2.0","eslint-plugin-flowtype":"4.4.1","eslint-plugin-import":"2.18.2","eslint-plugin-jsx-a11y":"6.2.3","eslint-plugin-node":"^10.0.0","eslint-plugin-prettier":"^3.1.1","eslint-plugin-promise":"^4.2.1","eslint-plugin-react":"7.16.0","eslint-plugin-react-hooks":"2.3.0","eslint-plugin-standard":"^4.0.1","gatsby-theme-docz":"^2.2.0","is-ci-cli":"^2.0.0","jest":"^24.9.0","jest-cli":"^24.9.0","jest-diff":"^25.1.0","jest-runner-eslint":"^0.7.5","jest-watch-select-projects":"^1.0.0","jest-watch-typeahead":"^0.4.2","lint-staged":"^9.4.3","prettier":"^1.19.1","prop-types":"^15.5.0","react":"^18.1.0","react-dom":"^18.1.0","react-test-renderer":"^18.1.0","rollup":"^1.32.1","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","rollup-plugin-size":"^0.2.1","rollup-plugin-size-snapshot":"^0.10.0","rollup-plugin-terser":"^5.1.2","serve":"^11.2.0"},"licenseText":"MIT License\n\nCopyright (c) 2016 Tanner Linsley\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_id":"react-table@7.8.0","dist":{"shasum":"07858c01c1718c09f7f1aed7034fcfd7bda907d2","integrity":"sha512-hNaz4ygkZO4bESeFfnfOft73iBUj8K5oKi1EcSHPAibEydfsX2MyU6Z8KCr3mv3C9Kqqh71U+DhZkFvibbnPbA==","tarball":"https://registry.npmjs.org/react-table/-/react-table-7.8.0.tgz","fileCount":61,"unpackedSize":939595,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCZDorkMyM0F8fc1Mt5LJntw0Rb97npqgV5WtOkyQzaKwIgdLYU2jr5yktsWXwOuVOSEMXk2mrCaUMG3tIcTnlBs9w="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJigk6CACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqVpBAAnabdTSB4ZXUMmI86qPLQ5D0H5WZUOr2VWJPHUaxqqb6WNss0\r\nB5kgVeEccrsUiZk3hZMMGNjyRNDkTlIAB24EV/BskEXNP4969JQDvwzK4hOQ\r\ng6jk6IcZSPQJjCkeB2xaFcj/rPE9fdaKr2iKBWnnQyoipaslly9edb9oHNyK\r\niGawFYMNmx1LL0YTEb4Va8r/IV24yfrGTswJk2YtbOPWRhSLlg6sxRwkFb0N\r\nlw5H2HtBzlv5arB2pILA/m7TBzAct7Z+qFjfecqR+82fFJDFsbm45W/PdGu2\r\n0RRj07umIdSx+XMJ7KM9x0noehHpErIvPLQeTOzoCl7uNLWOJPqUoKx2oUKV\r\n3TX0WHoRtx+Nd0ganw+UxrUt3yEhB5Id1LUjHzGovtErWk8yLpq6p1VulqGM\r\n8FrOf5I4eOZpn06qxDv/FzfD6xyMRKIaqWoiEpmHOM/In3xdMV6voR1WOKjc\r\njtfFiafgSH+vE32J3dgGoqETBA2bZuD6TDQgP0BWLhhE6PGd8qZ7/WVtWRPv\r\ns/I4y5xkXpByjuDB3uPanjYfgtdB49xA6hYSKXADpZZSK0QBMAA8UtXMIhru\r\nGdsDuLaka65/Q9E+fNhtDtLmCzdkBZn14Ty/Xe8vFL9DT/aksvF5VrXhB7RV\r\n6kmO5rffbNSqDp3lI0AYqEo9Jk5ShbXVIXU=\r\n=h+R+\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"},"directories":{},"maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-table_7.8.0_1652706946099_0.2950684635997094"},"_hasShrinkwrap":false}},"readme":"# React Table v7\n\n> [Looking for the latest version?](https://github.com/tanstack/react-table)\n\n## Visit [react-table-v7.tanstack.com](https://react-table-v7.tanstack.com) for docs, guides, API and more!\n\n## Quick Features\n\n- Lightweight (5kb - 14kb+ depending on features used and tree-shaking)\n- Headless (100% customizable, Bring-your-own-UI)\n- Auto out of the box, fully controllable API\n- Sorting (Multi and Stable)\n- Filters\n- Pivoting & Aggregation\n- Row Selection\n- Row Expansion\n- Column Ordering\n- Animatable\n- Virtualizable\n- Resizable\n- Server-side/controlled data/state\n- Extensible via hook-based plugin system\n\n### [Become a Sponsor](https://github.com/sponsors/tannerlinsley/)\n\n<!-- Force 1 -->\n","maintainers":[{"name":"tannerlinsley","email":"tannerlinsley@gmail.com"}],"time":{"modified":"2023-10-14T19:40:28.964Z","created":"2014-09-05T20:47:48.991Z","0.0.5":"2014-09-05T20:47:48.991Z","1.0.0":"2014-12-19T22:46:50.936Z","1.1.0":"2015-01-17T22:53:20.162Z","1.2.0":"2015-01-23T14:57:58.227Z","1.3.0":"2015-03-28T22:12:37.742Z","2.0.0":"2016-10-22T17:25:31.674Z","2.0.1":"2016-10-22T17:56:28.495Z","2.1.0":"2016-10-24T15:19:48.259Z","2.1.1":"2016-10-25T23:04:28.324Z","2.1.2":"2016-10-26T05:37:31.634Z","2.1.3":"2016-10-26T06:44:11.861Z","2.2.0":"2016-10-27T01:10:01.130Z","2.2.1":"2016-10-27T01:19:25.033Z","2.2.2":"2016-10-27T01:26:11.302Z","2.2.3":"2016-10-27T01:37:28.556Z","2.2.4":"2016-10-27T14:59:43.519Z","2.2.5":"2016-10-27T15:20:36.928Z","2.2.6":"2016-10-27T15:32:33.419Z","2.2.7":"2016-10-27T22:39:18.019Z","3.0.0":"2016-10-31T07:50:02.213Z","3.1.0":"2016-11-02T18:10:22.246Z","3.1.1":"2016-11-02T21:07:38.497Z","3.1.2":"2016-11-02T21:20:58.308Z","3.1.3":"2016-12-07T19:55:23.748Z","3.1.4":"2016-12-07T20:00:52.723Z","3.2.0":"2017-01-09T18:58:10.526Z","3.2.1":"2017-01-09T20:45:02.747Z","4.0.0":"2017-01-11T23:24:04.320Z","4.0.1":"2017-01-12T02:59:17.426Z","4.1.0":"2017-01-12T18:06:28.947Z","4.1.1":"2017-01-13T16:42:19.273Z","4.2.0":"2017-01-16T20:15:46.055Z","4.2.1":"2017-01-16T21:18:07.815Z","4.2.2":"2017-01-16T22:01:29.741Z","4.2.3":"2017-01-16T22:52:34.877Z","4.2.4":"2017-01-18T16:07:59.349Z","4.2.5":"2017-01-20T02:38:01.527Z","4.2.6":"2017-01-22T17:27:45.054Z","4.2.7":"2017-01-23T17:17:13.473Z","4.2.8":"2017-01-26T22:26:45.953Z","4.3.0":"2017-01-27T04:25:25.084Z","4.4.0":"2017-01-27T21:11:23.873Z","4.4.1":"2017-01-27T21:35:09.086Z","5.0.0":"2017-02-03T01:14:08.214Z","5.0.1":"2017-02-03T18:08:04.591Z","5.0.2":"2017-02-03T21:05:49.355Z","5.0.3":"2017-02-09T17:07:53.022Z","5.0.4":"2017-02-10T21:49:20.958Z","5.1.0":"2017-02-10T23:54:02.348Z","5.1.1":"2017-02-13T23:28:25.656Z","5.2.0":"2017-02-15T17:07:47.523Z","5.3.0":"2017-02-16T17:42:02.377Z","5.3.1":"2017-02-16T19:41:01.652Z","5.3.2":"2017-02-16T21:02:44.691Z","5.3.3":"2017-02-27T17:01:22.385Z","5.3.4":"2017-03-01T22:50:59.389Z","5.3.5":"2017-03-27T17:58:31.096Z","5.4.0":"2017-03-30T16:22:10.726Z","5.4.1":"2017-03-30T23:03:54.791Z","5.5.0":"2017-04-06T00:52:13.064Z","5.5.1":"2017-04-13T16:49:29.960Z","5.5.2":"2017-04-17T15:29:19.643Z","5.5.3":"2017-04-17T18:00:45.013Z","5.6.0":"2017-04-20T22:45:05.364Z","6.0.0":"2017-05-11T19:36:41.295Z","6.0.1":"2017-05-12T17:43:55.392Z","6.0.2":"2017-05-16T03:23:28.658Z","6.0.3":"2017-05-16T17:51:03.333Z","6.0.4":"2017-05-19T18:06:58.844Z","6.0.5":"2017-05-19T22:28:04.459Z","6.2.0":"2017-06-08T03:58:05.994Z","6.3.0":"2017-06-10T03:02:53.771Z","6.4.0":"2017-06-19T17:34:43.380Z","6.5.0":"2017-07-05T16:32:01.662Z","6.5.1":"2017-07-05T23:09:38.647Z","6.5.2":"2017-08-02T19:26:01.991Z","6.5.3":"2017-08-02T19:39:59.746Z","6.6.0":"2017-09-29T18:07:52.087Z","6.7.0-alpha-0":"2017-10-27T19:01:25.844Z","6.7.0":"2017-10-27T19:02:51.340Z","6.7.1":"2017-10-27T19:44:54.574Z","6.7.2":"2017-10-27T20:23:15.464Z","6.7.3":"2017-10-27T20:27:33.023Z","6.7.4":"2017-10-27T20:55:25.985Z","6.7.5":"2017-12-13T00:06:27.274Z","6.7.6":"2017-12-21T22:15:29.318Z","6.8.0":"2018-02-26T19:20:39.516Z","6.8.1":"2018-04-17T18:23:41.434Z","6.8.2":"2018-04-17T21:14:34.001Z","6.8.3":"2018-05-18T23:17:13.437Z","6.8.4":"2018-05-18T23:34:29.837Z","6.8.5":"2018-05-19T06:47:08.480Z","6.8.6":"2018-05-22T16:19:08.223Z","6.9.0":"2019-01-31T17:18:15.811Z","7.0.0-alpha.0":"2019-02-05T01:56:08.387Z","7.0.0-alpha.1":"2019-02-06T23:20:04.470Z","7.0.0-alpha.2":"2019-02-06T23:22:58.469Z","6.9.1":"2019-02-11T16:36:50.835Z","6.9.2":"2019-02-12T17:23:47.360Z","6.10.0":"2019-04-23T23:02:00.560Z","7.0.0-alpha.3":"2019-05-21T20:38:44.827Z","7.0.0-alpha.4":"2019-06-11T17:40:59.369Z","7.0.0-alpha.5":"2019-06-11T17:41:34.599Z","7.0.0-alpha.6":"2019-06-20T21:23:59.551Z","7.0.0-alpha.7":"2019-07-15T17:29:46.048Z","7.0.0-alpha.8":"2019-07-25T19:39:33.379Z","7.0.0-alpha.9":"2019-07-26T16:32:33.216Z","7.0.0-alpha.10":"2019-07-26T16:53:14.524Z","7.0.0-alpha.11":"2019-07-26T17:11:31.925Z","7.0.0-alpha.12":"2019-07-26T17:23:00.224Z","7.0.0-alpha.13":"2019-07-30T16:23:37.539Z","7.0.0-alpha.14":"2019-07-30T17:44:17.674Z","7.0.0-alpha.15":"2019-07-30T20:10:16.559Z","7.0.0-alpha.16":"2019-07-30T23:01:56.484Z","7.0.0-alpha.17":"2019-07-31T18:27:54.731Z","7.0.0-alpha.18":"2019-08-03T20:37:35.260Z","7.0.0-alpha.19":"2019-08-05T15:00:12.966Z","7.0.0-alpha.20":"2019-08-07T02:01:49.288Z","7.0.0-alpha.21":"2019-08-07T04:34:14.373Z","7.0.0-alpha.22":"2019-08-15T20:20:34.584Z","7.0.0-alpha.23":"2019-08-16T13:49:17.352Z","7.0.0-alpha.24":"2019-08-19T22:41:25.357Z","7.0.0-alpha.25":"2019-08-20T18:56:32.724Z","7.0.0-alpha.26":"2019-08-22T20:52:34.095Z","7.0.0-alpha.27":"2019-08-23T15:25:30.173Z","7.0.0-alpha.28":"2019-08-26T15:27:48.583Z","7.0.0-alpha.29":"2019-08-26T15:38:49.450Z","7.0.0-alpha.30":"2019-08-27T13:14:11.624Z","7.0.0-alpha.31":"2019-08-27T16:00:36.019Z","7.0.0-alpha.32":"2019-08-28T16:51:46.664Z","7.0.0-alpha.33":"2019-08-29T15:27:26.632Z","7.0.0-alpha.34":"2019-09-05T17:08:08.343Z","6.10.1":"2019-09-06T14:21:05.569Z","6.10.2":"2019-09-06T16:59:42.641Z","6.10.3":"2019-09-09T13:52:28.264Z","7.0.0-alpha.35":"2019-09-09T14:25:05.475Z","7.0.0-alpha.36":"2019-09-13T13:35:11.255Z","7.0.0-beta.0":"2019-09-13T15:09:39.608Z","7.0.0-beta.1":"2019-09-26T19:22:07.421Z","7.0.0-beta.2":"2019-09-30T13:32:52.008Z","7.0.0-beta.3":"2019-10-01T20:04:01.657Z","7.0.0-beta.4":"2019-10-02T02:35:21.792Z","7.0.0-beta.5":"2019-10-02T02:49:04.063Z","7.0.0-beta.6":"2019-10-03T14:26:42.011Z","7.0.0-beta.7":"2019-10-03T19:40:18.803Z","7.0.0-beta.8":"2019-10-03T21:32:56.842Z","7.0.0-beta.9":"2019-10-06T02:49:17.852Z","7.0.0-beta.10":"2019-10-07T16:27:53.411Z","7.0.0-beta.11":"2019-10-09T21:15:36.663Z","7.0.0-beta.12":"2019-10-09T21:43:10.893Z","7.0.0-beta.13":"2019-11-20T17:26:10.160Z","7.0.0-beta.14":"2019-11-20T19:20:10.495Z","7.0.0-beta.15":"2019-11-25T19:27:03.904Z","7.0.0-beta.16":"2019-12-01T06:37:44.578Z","7.0.0-beta.17":"2019-12-01T07:04:59.676Z","7.0.0-beta.18":"2019-12-01T07:09:01.442Z","7.0.0-beta.19":"2019-12-01T07:12:29.921Z","7.0.0-beta.20":"2019-12-02T08:28:01.972Z","7.0.0-beta.21":"2019-12-02T16:22:29.695Z","6.11.1":"2019-12-02T18:12:37.502Z","7.0.0-beta.22":"2019-12-02T18:31:19.576Z","6.11.2":"2019-12-02T23:26:16.401Z","7.0.0-beta.23":"2019-12-02T23:53:53.350Z","7.0.0-beta.24":"2019-12-03T16:40:15.680Z","7.0.0-beta.25":"2019-12-03T16:45:39.575Z","7.0.0-beta.26":"2019-12-03T19:57:37.066Z","7.0.0-beta.27":"2019-12-05T03:43:43.107Z","6.11.3":"2019-12-05T20:07:32.610Z","6.11.4":"2019-12-05T20:10:03.506Z","7.0.0-beta.28":"2019-12-05T20:50:49.118Z","7.0.0-rc.0":"2019-12-06T04:17:42.729Z","7.0.0-rc.1":"2019-12-06T04:35:53.150Z","7.0.0-rc.2":"2019-12-06T23:29:23.578Z","7.0.0-rc.3":"2019-12-06T23:33:24.125Z","6.11.5":"2019-12-06T23:45:23.774Z","7.0.0-rc.4":"2019-12-09T02:26:28.391Z","7.0.0-rc.5":"2019-12-09T02:32:41.500Z","7.0.0-rc.6":"2019-12-09T16:53:24.176Z","7.0.0-rc.7":"2019-12-10T18:57:49.119Z","7.0.0-rc.8":"2019-12-10T23:35:15.632Z","7.0.0-rc.9":"2019-12-11T06:05:53.271Z","7.0.0-rc.10":"2019-12-13T07:44:57.813Z","7.0.0-rc.11":"2019-12-18T03:50:55.706Z","7.0.0-rc.12":"2019-12-18T05:10:32.313Z","7.0.0-rc.13":"2019-12-18T17:40:04.477Z","7.0.0-rc.14":"2019-12-18T18:55:12.688Z","7.0.0-rc.15":"2019-12-18T20:24:35.500Z","7.0.0-rc.16":"2020-02-16T03:02:53.280Z","7.0.0":"2020-03-10T19:28:25.552Z","7.0.1":"2020-04-01T17:02:50.876Z","7.0.2":"2020-04-01T22:14:07.866Z","7.0.3":"2020-04-02T17:03:12.303Z","7.0.4":"2020-04-02T20:29:38.918Z","7.0.5":"2020-05-12T20:03:42.957Z","7.0.6":"2020-05-14T23:41:10.985Z","7.1.0":"2020-05-15T21:38:04.997Z","7.2.0":"2020-06-09T22:00:15.926Z","7.2.1":"2020-06-18T21:10:03.447Z","7.2.2":"2020-06-30T19:48:39.521Z","7.3.0":"2020-07-17T15:52:03.023Z","7.3.1":"2020-07-20T16:04:44.035Z","7.3.2":"2020-07-20T16:17:22.795Z","7.3.3":"2020-07-30T14:46:45.815Z","7.3.4":"2020-08-03T17:05:04.237Z","7.3.5":"2020-08-03T17:21:20.404Z","7.4.0":"2020-08-03T17:45:37.010Z","7.4.1":"2020-08-03T18:33:14.524Z","7.4.2":"2020-08-03T19:19:45.539Z","7.5.0":"2020-08-04T02:57:51.398Z","7.5.1":"2020-09-18T14:12:43.260Z","7.5.2":"2020-10-03T18:23:53.566Z","7.6.0":"2020-10-10T21:14:54.532Z","7.6.1":"2020-10-26T17:17:03.850Z","7.6.2":"2020-11-13T15:26:22.976Z","7.6.3":"2021-01-11T21:37:55.012Z","7.7.0":"2021-04-25T22:58:20.146Z","7.8.0":"2022-05-16T13:15:46.299Z"},"homepage":"https://react-table.tanstack.com/","repository":{"type":"git","url":"https://github.com/tannerlinsley/react-table"},"license":"MIT","readmeFilename":"README.md","keywords":["react","table","react-table","datagrid"],"users":{"fairchild":true,"wuwenbin":true,"mswanson1524":true,"bbezanson":true,"tlamason":true,"yong_a":true,"charlieberard":true,"susuaung":true,"mannieschumpert":true,"nkalodimas":true,"orenschwartz":true,"myorkgitis":true,"nkrules":true,"ayoola_moore":true,"rommguy":true,"karzanosman984":true,"abuelwafa":true,"yanghcc":true,"xiechao06":true}}