{"_id":"@alexkuc/use-filters","_rev":"3-376348168e57c55998e24cfac3f75b29","name":"@alexkuc/use-filters","dist-tags":{"latest":"1.0.3"},"versions":{"1.0.0":{"name":"@alexkuc/use-filters","private":false,"publishConfig":{"access":"public"},"version":"1.0.0","main":"./dist/use-filters.umd.js","module":"./dist/use-filters.mjs","exports":{".":{"require":"./dist/use-filters.umd.js","import":"./dist/use-filters.mjs"}},"engines":{"node":">=14 <=18"},"description":"useFilters is a React-based hook that allows to filter arbitary data.","author":{"name":"Alexander Kucheryuk","url":"https://www.linkedin.com/in/alexkuc/"},"license":"MIT","keywords":["React","Data","Filter","Hook"],"scripts":{"dev":"vite","build":"tsc && vite build","preview":"vite preview","test":"jest --maxWorkers=1","coverage":"jest --coverage=true --maxWorkers=1","docs":"VITE_MODE=DOCS npm run build","publish":"npm test && npm run build && npm publish"},"dependencies":{"lodash":"^4.17.21","react":"^18.2.0","react-dom":"^18.2.0","@faker-js/faker":"^7.5.0","classnames":"^2.3.1","dayjs":"^1.11.5","mobx":"^6.6.2","mobx-react-lite":"^3.4.0","modern-normalize":"^1.1.0","react-router-dom":"^6.3.0","sass":"^1.54.9"},"devDependencies":{"@testing-library/react":"^13.4.0","@types/jest":"^29.0.0","@types/lodash":"^4.14.184","@types/node":"^18.7.14","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@vitejs/plugin-react":"^2.0.0","jest":"^29.0.2","jest-environment-jsdom":"^29.0.2","ts-jest":"^29.0.0-next.1","ts-node":"^10.9.1","typescript":"^4.6.3","vite":"^3.0.0"},"optionalDependencies":{"@faker-js/faker":"^7.5.0","classnames":"^2.3.1","dayjs":"^1.11.5","mobx":"^6.6.2","mobx-react-lite":"^3.4.0","modern-normalize":"^1.1.0","react-router-dom":"^6.3.0","sass":"^1.54.9"},"_id":"@alexkuc/use-filters@1.0.0","_nodeVersion":"18.8.0","_npmVersion":"8.18.0","dist":{"integrity":"sha512-5+R1jHcG1Kx/CPIhhiU0ZZa81I7qcPzrDifGhogx1HYjdwz3AlVsGcGoU3NfIqgt3z2HMdMmbz5b3NW9eHVPvw==","shasum":"59fabd07ffcc6adb5939db0083773d7689f12ccd","tarball":"https://registry.npmjs.org/@alexkuc/use-filters/-/use-filters-1.0.0.tgz","fileCount":5,"unpackedSize":199477,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC/zUzXSn+Z/aqSBAj6OHatXARauX5OTGaHK7+a0NpwoAIgT5ctmdTVq7ufNPP13tt92cIExzBmfUbTb+gkRdVjPiU="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjZughACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp6Nw//fySnz9Mr0ruoy1Q0AXAyvwPg20RS8t58NZYPuJ8DluJ8A91s\r\nGE1qVyXsuQxGLXSlSVVgUHr8sLvRz1vm6wt2vCtohrqTAt3CG+yO438Rn/ZU\r\n1tNSsdEeK4ULW9kmkXLSPc5n4fid5QRvbcjb8jvw9RubTHV84lf2A7fR0+Hp\r\n+bvDiypp5NNiJ26HbwoAI9/h7PrZy7u8pdqKEaHS0UyIt11DISBk4gIMbMNc\r\nQlhvWV4JNHuydsBMysF3ewTXV/5SMb5w9BS0xlvcTa7delL9PO4V7fUGCehV\r\nKelWuE+jASgKf/PIy8drCnOmHYy5yCEUKLOstHgeVvfPR9fnymnr6Af6f0X5\r\nVW7iOhtQyTpnr5ICHvvjpbfY5QWWjvBQ8wzQSoYrVyofTTSxhi1npZkOmrZg\r\nVPksKQzgLrnMzvp10NyYzvmE/Kl//XNwhE7cO+wGrGybW48QeDQMdqk4VLDH\r\nf6IY7HjH2SZcXhc1pnrLxQlsobSJnf5jCdhjeDOxj9rA/pEai11X/LQ0KtMo\r\n+LzRolHao4TlNUTFwoC72R06iTCqoWkLEaQM6mIIXiFFR5Cv74znYPvykXNo\r\nMtWITc0+bbff2b4FJGP56efrlWLKempAeoXw1DnyBKGIJFqM0npn5AZIb/9E\r\n+3XY7mWw0qDG4xJrJZzdYB2LPdzT94EyOCE=\r\n=XZQo\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"alexkuc","email":"alexander.kucheryuk@icloud.com"},"directories":{},"maintainers":[{"name":"alexkuc","email":"alexander.kucheryuk@icloud.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/use-filters_1.0.0_1667688481237_0.21698798696128296"},"_hasShrinkwrap":false},"1.0.1":{"name":"@alexkuc/use-filters","private":false,"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/alexkuc/use-filters.git"},"homepage":"https://github.com/alexkuc/use-filters","version":"1.0.1","main":"./dist/use-filters.umd.js","module":"./dist/use-filters.mjs","exports":{".":{"require":"./dist/use-filters.umd.js","import":"./dist/use-filters.mjs"}},"engines":{"node":">=14 <=18"},"description":"useFilters is a React-based hook that allows to filter arbitary data.","author":{"name":"Alexander Kucheryuk","url":"https://www.linkedin.com/in/alexkuc/"},"license":"MIT","keywords":["React","Data","Filter","Hook"],"scripts":{"dev":"vite","build":"tsc && vite build","preview":"vite preview","test":"jest --maxWorkers=1","coverage":"jest --coverage=true --maxWorkers=1","docs":"VITE_MODE=DOCS npm run build","publish":"npm test && npm run build && npm publish"},"dependencies":{"lodash":"^4.17.21","react":"^18.2.0","react-dom":"^18.2.0","@faker-js/faker":"^7.5.0","classnames":"^2.3.1","dayjs":"^1.11.5","mobx":"^6.6.2","mobx-react-lite":"^3.4.0","modern-normalize":"^1.1.0","react-router-dom":"^6.3.0","sass":"^1.54.9"},"devDependencies":{"@testing-library/react":"^13.4.0","@types/jest":"^29.0.0","@types/lodash":"^4.14.184","@types/node":"^18.7.14","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@vitejs/plugin-react":"^2.0.0","jest":"^29.0.2","jest-environment-jsdom":"^29.0.2","ts-jest":"^29.0.0-next.1","ts-node":"^10.9.1","typescript":"^4.6.3","vite":"^3.0.0"},"optionalDependencies":{"@faker-js/faker":"^7.5.0","classnames":"^2.3.1","dayjs":"^1.11.5","mobx":"^6.6.2","mobx-react-lite":"^3.4.0","modern-normalize":"^1.1.0","react-router-dom":"^6.3.0","sass":"^1.54.9"},"bugs":{"url":"https://github.com/alexkuc/use-filters/issues"},"_id":"@alexkuc/use-filters@1.0.1","_nodeVersion":"18.8.0","_npmVersion":"9.6.2","dist":{"integrity":"sha512-OLcJgeLU96JAoGH3gQUyerFgigMIXhVZjMUMdakX7LvYI32R+pCqdDT+uTqeCvtTi8qQZIxRcsYXKFTO0AgJmQ==","shasum":"2ee62c2e28659136c78f22c917c6ac522f467342","tarball":"https://registry.npmjs.org/@alexkuc/use-filters/-/use-filters-1.0.1.tgz","fileCount":5,"unpackedSize":199579,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAgxnMSDZoLorClHjyCgWzCYelVMa/T1/oZw/ZIMg68AAiEAq4nJmQpowKHZps7+quxmnw4DQTALZQZyL1w3qVl3K5k="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkFgkiACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq3mQ//bgO6fdXQzQC8sD9ENPIVHq6nTnPr/4pTLuz8rcxNwVUifWid\r\n+03TimYo+ueKfYJ+lJtJLPGyJlwE29+Af2AbIPLl+QhXP0ZfM4Aj/iEsevPh\r\nmfAS3lC9bmucaVfsfWJONmZdwTKen672k8xm2AqIkUrCBxSMvpw5CQu7lxqP\r\nC0h7pDa7lrvc6KNLzYHTrYqLUBcvtitm5+45mmESFl4NJd57MOCPGWXN4PhI\r\nw/CA5zg5AUASbrHzH64ujukoAUCTnqRQHg2tS1/ra1J20M1mH0yyueSMmBOG\r\n5M841nHjWXjTQnEHwuRhw7YWxRY635L9XdLTl2rZtSdRH6u/6CL/vb+6K8QC\r\nGkHiKCHMiil1dza/9fAi3Cq1dZX2GsX88Y3RuQwaJcn8YRCsZ5by+xptDS4t\r\n9A4Wnu9VutCLXLq3/RE8jn4y1kbtUDSKFjvvGbipmDTEwAEz+q+I8PfERjPU\r\nWI3ZkSaa9QgSWgzAv2HCQWqFWozVXq3rvpZx6VMoSVgQ8/Mrq67p9i3O/p4c\r\nm3BJ+vyvasEWuHhahwtAx/MLsriyvJxdP0LRQQJ2cVHjGr7B78KHCYdnb4kl\r\nsQlZDwniCwKeqSkdaxVGd5j0GO3vXWFFSynpYAEs0oXvo8q/167eWeH/rygX\r\nCE/K6ODEbEy5u7BNW5fUL+aSNadO9liODSs=\r\n=Jfpa\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"alexkuc","email":"alexander.kucheryuk@icloud.com"},"directories":{},"maintainers":[{"name":"alexkuc","email":"alexander.kucheryuk@icloud.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/use-filters_1.0.1_1679165730527_0.2952305403616631"},"_hasShrinkwrap":false},"1.0.2":{"name":"@alexkuc/use-filters","private":false,"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/alexkuc/use-filters.git"},"homepage":"https://github.com/alexkuc/use-filters","version":"1.0.2","main":"./dist/use-filters.umd.js","module":"./dist/use-filters.mjs","exports":{".":{"require":"./dist/use-filters.umd.js","import":"./dist/use-filters.mjs"}},"engines":{"node":">=14 <=18"},"description":"useFilters is a React-based hook that allows to filter arbitary data.","author":{"name":"Alexander Kucheryuk","url":"https://www.linkedin.com/in/alexkuc/"},"license":"MIT","keywords":["React","Data","Filter","Hook"],"scripts":{"dev":"vite","build":"tsc && vite build","preview":"vite preview","test":"jest --maxWorkers=1","coverage":"jest --coverage=true --maxWorkers=1","docs":"VITE_MODE=DOCS npm run build","publish":"npm test && npm run build && npm publish"},"dependencies":{"lodash":"^4.17.21","react":"^18.2.0","react-dom":"^18.2.0","@faker-js/faker":"^7.5.0","classnames":"^2.3.1","dayjs":"^1.11.5","mobx":"^6.6.2","mobx-react-lite":"^3.4.0","modern-normalize":"^1.1.0","react-router-dom":"^6.3.0","sass":"^1.54.9"},"devDependencies":{"@testing-library/react":"^13.4.0","@types/jest":"^29.0.0","@types/lodash":"^4.14.184","@types/node":"^18.7.14","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@vitejs/plugin-react":"^2.0.0","jest":"^29.0.2","jest-environment-jsdom":"^29.0.2","ts-jest":"^29.0.0-next.1","ts-node":"^10.9.1","typescript":"^4.6.3","vite":"^3.0.0"},"optionalDependencies":{"@faker-js/faker":"^7.5.0","classnames":"^2.3.1","dayjs":"^1.11.5","mobx":"^6.6.2","mobx-react-lite":"^3.4.0","modern-normalize":"^1.1.0","react-router-dom":"^6.3.0","sass":"^1.54.9"},"bugs":{"url":"https://github.com/alexkuc/use-filters/issues"},"_id":"@alexkuc/use-filters@1.0.2","_nodeVersion":"18.8.0","_npmVersion":"9.6.2","dist":{"integrity":"sha512-ZPA88uRCGZR0ksn87lPLppq7Qu46vAFWEEprq4J+96yAIQ57pTbBNdfCOInWmxnvjUpZCE2U4RVGjWfhW8XYGw==","shasum":"f2ed511875f047b163a54a5b2d7407b00ce1e8d1","tarball":"https://registry.npmjs.org/@alexkuc/use-filters/-/use-filters-1.0.2.tgz","fileCount":5,"unpackedSize":199579,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC+MuK5rgy/UsLMzMJ3/mtfYYaWpQyGdI3XImQ+aaNiowIhAJprUVSdm/qtQgSKKh9AYw7BG+v64u9nQ4IkwVDcMQzZ"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkFg0SACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqHpQ/9Hp7aqVbHd16TtN1awMYPK25tCf6NnIVHCFxRSltILYwia+yX\r\nkzhd5TZUaJ7tHtnOu1aztLAD4vNqVpjGmYVaaiRU5I5EBufmtVKlfMsonlEA\r\nJMKcHhHdgSCn6Aw0hbqX0YjY4NThHgW/TIgIUmqJMO2H6HmtOlqWIgHk8asO\r\nuZ/AjGqHo7z1NR7dviGAVpbbjHdjDLqFE2jgEu0hW895Ov6JHEjZBfJolRuu\r\n/wpu8N137mHwKSIeF5hqpCO5gKNXnOyHkbGz1dilqHO6LR+z8IG2MCwJTjqB\r\ncufzAXyD2HlnX7sqi95ETuWqyZ5TOExRD7v7QRrAE8U/BF62mNEp2fXqfvtj\r\nA0zcAn7G97rv9jDqBB3yF5RMwNFAUMtHwC6BWL95A5zxrJEgRdv8+jW+8o6x\r\ntaOQmEHOlPoUUnKoix+nPDdWJKDxqOoxIenM+3HblGsZBCLk3Hcq7nW++Mzi\r\nSpKGQ8Q9SqpgZf1SgstyD0Zgub0APzMp6G0esOFNj1F3jMPajiW+qXr2MncJ\r\neYKevtLp2njqpGrxHN2shtijIyFUWXwy1jsUuwVB47T7MwhAS5WlptU0onz6\r\ndV+z3cS9Dz3EwOPRgY1KSFOTduzYF5LWsaNN6h1XftXQ3Vd3zGzWm9U85xzG\r\nhUePwfS1c81nn1q6195Qn/2zz+U+qAKusBY=\r\n=JZG4\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"alexkuc","email":"alexander.kucheryuk@icloud.com"},"directories":{},"maintainers":[{"name":"alexkuc","email":"alexander.kucheryuk@icloud.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/use-filters_1.0.2_1679166738503_0.1736442242348235"},"_hasShrinkwrap":false},"1.0.3":{"name":"@alexkuc/use-filters","private":false,"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/alexkuc/use-filters.git"},"homepage":"https://github.com/alexkuc/use-filters","version":"1.0.3","main":"./dist/use-filters.umd.js","module":"./dist/use-filters.mjs","exports":{".":{"require":"./dist/use-filters.umd.js","import":"./dist/use-filters.mjs"}},"engines":{"node":">=14 <=18"},"description":"useFilters is a React-based hook that allows to filter arbitary data.","author":{"name":"Alexander Kucheryuk","url":"https://www.linkedin.com/in/alexkuc/"},"license":"MIT","keywords":["React","Data","Filter","Hook"],"scripts":{"dev":"vite","build":"tsc && vite build","preview":"vite preview","test":"jest --maxWorkers=1","coverage":"jest --coverage=true --maxWorkers=1","docs":"VITE_MODE=DOCS npm run build","prepublishOnly":"npm test && npm run build"},"dependencies":{"lodash":"^4.17.21","react":"^18.2.0","react-dom":"^18.2.0","@faker-js/faker":"^7.5.0","classnames":"^2.3.1","dayjs":"^1.11.5","mobx":"^6.6.2","mobx-react-lite":"^3.4.0","modern-normalize":"^1.1.0","react-router-dom":"^6.3.0","sass":"^1.54.9"},"devDependencies":{"@testing-library/react":"^13.4.0","@types/jest":"^29.0.0","@types/lodash":"^4.14.184","@types/node":"^18.7.14","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@vitejs/plugin-react":"^2.0.0","jest":"^29.0.2","jest-environment-jsdom":"^29.0.2","ts-jest":"^29.0.0-next.1","ts-node":"^10.9.1","typescript":"^4.6.3","vite":"^3.0.0"},"optionalDependencies":{"@faker-js/faker":"^7.5.0","classnames":"^2.3.1","dayjs":"^1.11.5","mobx":"^6.6.2","mobx-react-lite":"^3.4.0","modern-normalize":"^1.1.0","react-router-dom":"^6.3.0","sass":"^1.54.9"},"bugs":{"url":"https://github.com/alexkuc/use-filters/issues"},"_id":"@alexkuc/use-filters@1.0.3","_nodeVersion":"18.8.0","_npmVersion":"9.6.2","dist":{"integrity":"sha512-zdX7Y5tuMDlvhIOTNEhD0PwdP/tqfukSMxat/unwH5Gcbe/RlJW9h842o56SmevawNhqsKCPN/E/kfDzt59MhQ==","shasum":"993c8311998b852768d95162adaaa6e691e38714","tarball":"https://registry.npmjs.org/@alexkuc/use-filters/-/use-filters-1.0.3.tgz","fileCount":5,"unpackedSize":199571,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD/hHBk073eE7VpJfPdL7dEeEvTnS9adTNff7/Sig+7ngIhAKcXeZJyUDT/MgWugbWZ4vwTT/vjuewXmE7bchSHwgyI"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkFhLPACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo6gQ//bVtwUPW1mGtW5q5T10FIU26K3xVyHHfzlQ5WhLpd/pc1BoFJ\r\nc7LFJudZSL2cJ6DGVS+UXs8gf4oehUudjMgU6Z2qvhTXKbdVAhr3E69rYF+3\r\nN/zUmNCgLkyQZ47aVBDwCPcGYVWddDW4LGnKqBR/+V60PqQXnmBYKzWxJKvm\r\nwGn0m19Llzs2kpOmFnITHDNWsZh/mNCx+scHlBIALx68Bn8gv0cbsfNseGRZ\r\nO866UgRVkd+4D3CErxoP1qEuRb6GVKclJOG+4hmYUF7jY8jquCI9Rs4K1iOw\r\nTdEm7HnNmE3u0z6wem+TwZCLPjSaGd//yEszKTLPJ5HiKgnXq7C0sslr2Xqw\r\ng856ao8gheW17g93Hc1Vpezeh+reUBvk+j09AFzM3rG53sHRF1Ju3/IIye9v\r\ndLdenZZZltx4pFeArgQ6wNWyxhfd/kkulUL4JzGkztnjuB+U5Ws717oY0VSB\r\nRkDPkdaPQS1++rVE7LshXiv5/3kzR6sJFTNR1jeyo6H0ASpjy6vntrjxaxeE\r\nupe8ngqoL7h/gwBpbNero60+39QLZ2O7RgO5Y5SNQNNhJvQgopsiRjSBC6AC\r\njkN9lephjid8XL7GXANOa7dG52okKZwfSJd0nur/DE9UPCDIVYGoyySalVUh\r\n9pG3rzYpro9wS68Wz/dDsaBqMFLFBZMRXSU=\r\n=GGJs\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"alexkuc","email":"alexander.kucheryuk@icloud.com"},"directories":{},"maintainers":[{"name":"alexkuc","email":"alexander.kucheryuk@icloud.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/use-filters_1.0.3_1679168207452_0.7841587921461775"},"_hasShrinkwrap":false}},"time":{"created":"2022-11-05T22:48:01.152Z","1.0.0":"2022-11-05T22:48:01.477Z","modified":"2023-03-18T19:36:47.725Z","1.0.1":"2023-03-18T18:55:30.707Z","1.0.2":"2023-03-18T19:12:18.687Z","1.0.3":"2023-03-18T19:36:47.614Z"},"maintainers":[{"name":"alexkuc","email":"alexander.kucheryuk@icloud.com"}],"description":"useFilters is a React-based hook that allows to filter arbitary data.","keywords":["React","Data","Filter","Hook"],"author":{"name":"Alexander Kucheryuk","url":"https://www.linkedin.com/in/alexkuc/"},"license":"MIT","readme":"# Use Filters\n\n`useFilters` is a React-based hook that allows to filter arbitary data. It is written in TypeScript to take advantage of generics. The hook is scalable as it supports nested filters and arbitary data type as well as filters. Implementation has also unit tests.\n\n## Installation\n\nYou can install this directly from npm registry via\n\n```shell\nnpm i @alexkuc/use-filters\n```\n\n## Dependencies\n\nThis hook was written against React v18 but is not bundled itself.\n\nPrimary dependencies are listed under `dependencies` in `package.json`.\nExample-related dependencies are listed under `optionalDependencies`.\nSource-specific dependencies are listed under `devDependencies`.\n\n## Usage\n\nUsage is pretty straight forward:\n\n```ts\nconst { getData, setData, filters, setFilters } = useFilters({ data, filters });\n```\n\nwhere `data` can be any value and `filters` is an object typeof `FilterMapType`:\n\n```ts\ntype FilterMapType<DataValue> = {\n  [key: string]: Filter<DataValue>;\n  [key: number]: Filter<DataValue>;\n  [key: symbol]: Filter<DataValue>;\n};\n```\n\n```ts\ntype Filter<DataValue> = {\n  checkData: (item: DataValue) => boolean;\n  removeValue: (value: any) => void;\n  addValue: (value: any) => void;\n  setValues: (value: any | any[]) => void;\n  resetValues: () => void;\n};\n```\n\nYou can view online examples [here](https://alexkuc.github.io/use-filters/) and their source code can be found [here](./examples/).\n\n| Function     | Purpose                   | Notes           |\n| :----------- | :------------------------ | --------------- |\n| `getData`    | get _filtered_ data       | custom getter   |\n| `setData`    | set raw, unfiltered data  | useState setter |\n| `filters`    | internal state of filters | useState value  |\n| `setFilters` | sets filters              | useState setter |\n\nIf your filters are not set initially but later via setFilters, you need to explicitly set filter type:\n\n```ts\nconst { ... } = useFilters<DataType, FilterType>(data, {});\n```\n\nInternal `filters` are exposed to allow running events when filters are modified, e.g. `useEffect(..., [filters])`.\n","readmeFilename":"README.md","homepage":"https://github.com/alexkuc/use-filters","repository":{"type":"git","url":"git+https://github.com/alexkuc/use-filters.git"},"bugs":{"url":"https://github.com/alexkuc/use-filters/issues"}}