{"_id":"@addapptables/ngrx-actions","_rev":"8-c77c670b8307aa4c5d5155acfd910359","name":"@addapptables/ngrx-actions","dist-tags":{"latest":"2.0.0"},"versions":{"0.0.1":{"name":"@addapptables/ngrx-actions","version":"0.0.1","private":false,"repository":{"type":"git","url":"git+https://github.com/addapptables/ngrx-actions.git"},"bugs":{"url":"https://github.com/addapptables/ngrx-actions/issues"},"peerDependencies":{"@angular/common":"^7.2.1","@angular/core":"^7.2.1","@ngrx/store":"^7.0.0","rxjs":"6.3.3"},"main":"bundles/addapptables-ngrx-actions.umd.js","module":"fesm5/addapptables-ngrx-actions.js","es2015":"fesm2015/addapptables-ngrx-actions.js","esm5":"esm5/addapptables-ngrx-actions.js","esm2015":"esm2015/addapptables-ngrx-actions.js","fesm5":"fesm5/addapptables-ngrx-actions.js","fesm2015":"fesm2015/addapptables-ngrx-actions.js","typings":"addapptables-ngrx-actions.d.ts","metadata":"addapptables-ngrx-actions.metadata.json","sideEffects":false,"dependencies":{"tslib":"^1.9.0"},"description":"Note: This library is an improvement on the ngrx-actions library.","homepage":"https://github.com/addapptables/ngrx-actions#readme","_id":"@addapptables/ngrx-actions@0.0.1","_npmVersion":"5.6.0","_nodeVersion":"8.11.4","_npmUser":{"name":"teogl","email":"teito.lop@gmail.com"},"dist":{"integrity":"sha512-j6aomrAvT7uXYQ8z8u1dCyR05QDdVnrCB5nQpXdyDABVsXbdw9UkkpvZGHtQXHeKvd8F0FPIvzk3DPIPYnr9gA==","shasum":"dad24f452ce9c6a65af84aab162a1a9075763cd0","tarball":"https://registry.npmjs.org/@addapptables/ngrx-actions/-/ngrx-actions-0.0.1.tgz","fileCount":55,"unpackedSize":282919,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcQOQLCRA9TVsSAnZWagAACJ4QAJzNPYkdN/hTXauJporY\nTjiOoPHsfLAKozmgXYQUleTvs8Y2dJbileOFifxR5m8OChRc7Zp7RUlHsnXo\n4HNAgsjvuTwpjwPYlNIghR5SkIr2DxKBvrJ7f4bt5rae+nwGpeOlbHoKQUaa\n4bnukg8lN/WoQtmkjLv5TUsy3OjJVQGqFfrRzu3u/Jqhxmed/KdsQYziZ0eS\nOREIirUGDJlPPF3qzssf2pd6E66am+XnR+ksWUSW3VED0Gpdhd74V6eYxVyN\ndniDdGI7oG9KaB6xD9IY6NGDAwv/UOAeii8GxAu83AyT5EM2hdBdoqkubqrd\nfg6O84VzN74G7DfgnwxPgkhx3LSXXrRnOWhA0zgNGIlDy3R7RkQXsjc7Y27G\nsm21QVn08IngvZ4+PIo6naiikzZ9dO/xnMPWkA8J7Rvw5n5zBECTZAlvppct\nLD+2VDO7qffUCHVtqhfNcbxlN6q4rDIeeiT7l1md6cIeiJUGySrg3v/Wkd3z\nT8PcHTdAeRdoMYk98DcgDsiR0ugRyt44PU4wYJrzVcmhY6VHlFHEFgwwUYk9\noyPK26G6njlIy50gzhUaKCkyIrfyvcIqPpTWILKxoVSD4upGhoi66nyKjHfs\nD5Nfmoh5rht2vwUZcHfLamUhpOBooMejHglUb1L92m+S2R552oYSsvuapgIs\nlpGK\r\n=mEN3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIA+1MauaDvsN8VoWXxZosSUyJ3xRcaYEk8zdOmlcV9uaAiBhKYwH8LoBTdXaszfjZqI6014e/UC8ezei9bX50bgqXg=="}]},"maintainers":[{"name":"teogl","email":"teito.lop@gmail.com"},{"name":"sebastian.delaroche","email":"sebastianroche17@gmail.com"},{"name":"addapptable","email":"dev@addapptables.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ngrx-actions_0.0.1_1547756554909_0.975140246487771"},"_hasShrinkwrap":false},"0.0.2":{"name":"@addapptables/ngrx-actions","version":"0.0.2","author":{"name":"Addapptables"},"description":"Material ngrx actions library for angular","license":"MIT","homepage":"https://github.com/addapptables/ngrx-actions","private":false,"repository":{"type":"git","url":"git+https://github.com/addapptables/ngrx-actions.git"},"bugs":{"url":"https://github.com/addapptables/ngrx-actions/issues"},"peerDependencies":{"@angular/common":"^7.2.2","@angular/core":"^7.2.2","@ngrx/store":"^7.1.0","rxjs":"~6.3.3"},"keywords":["angular","angular 2","ngrx","actions","addapptables-ngrx-actions"],"main":"bundles/addapptables-ngrx-actions.umd.js","module":"fesm5/addapptables-ngrx-actions.js","es2015":"fesm2015/addapptables-ngrx-actions.js","esm5":"esm5/addapptables-ngrx-actions.js","esm2015":"esm2015/addapptables-ngrx-actions.js","fesm5":"fesm5/addapptables-ngrx-actions.js","fesm2015":"fesm2015/addapptables-ngrx-actions.js","typings":"addapptables-ngrx-actions.d.ts","metadata":"addapptables-ngrx-actions.metadata.json","sideEffects":false,"dependencies":{"tslib":"^1.9.0"},"_id":"@addapptables/ngrx-actions@0.0.2","_npmVersion":"5.6.0","_nodeVersion":"8.11.4","_npmUser":{"name":"teogl","email":"teito.lop@gmail.com"},"dist":{"integrity":"sha512-7B5ioOebGdnMRKnU7mQ32Qmuj5+LaVWpq0AIhpjt8G6Cp2TA9fXIxiOqSv/UjKeG3MupWdz9qujeoe9XgXKjZA==","shasum":"036381cb341734946111af074175165bfba64e9e","tarball":"https://registry.npmjs.org/@addapptables/ngrx-actions/-/ngrx-actions-0.0.2.tgz","fileCount":54,"unpackedSize":282381,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcS0yqCRA9TVsSAnZWagAAFzwP/0VyQYhrYCxFK7Wvh2Mj\nAetY+KqHN/OWmThXAVClhlPjxpslXyJfAh/S0zRh6PxE62wJ8IZ4/w1IDGWI\nvyN0MrAikjnuE/Zdn5znqo22waaMgZFqnR0kdskvq4tg1q/deunE0dte/9Iw\nY7Y8tN5bwOpixPKZTY5eiAEUdngrxRyjYLob20lMF+d33O3CKECAICWd2apw\nSfwWDegp2QCOAt5sEQP6RxE0MV1e3sZkKJc74TTUV99VGFIyF0bHF5oE0Tg1\nThZMZ5jr4U0ZQlzmbIKgEMjJ0Z21BWg+YI1Wp0JMEO0pC0wW4RmkzqfGqpxI\nP0g+l+59LkXUPMEv3S87mGgO0qHdIYo8/apgYGhzfWFk7X3Q8Ft2EpFQVIJC\n30EY46RZYqVUlKA9CegOtCIlbvjGQeyaguPNUpKAR5PSsyyCtV42IwliHF9Q\ndVltwsLgLPRnfG2BxUYIMKBSs16BUB/p97E6aq1cpyhzm7umABriQGToA/A4\nOcgrhS+gjZfpW2sk/oLXWw+g9mKrpguhDThHc1YUKWyWJyETBI+hObqG3Voa\n+h+bu8qMAykAngHshGnBMzrm+mE92bE7kRIapC3nZszRp7KCLP8aH4OryS68\n3+zKyzp5dnPZU5pUAiqybmMsAVJSe3e0vdHg/0f6X8KVvermc8t1FUk7Mxi3\nMYXE\r\n=NUWz\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDvR73UY3tuj/T/3vkrsX7WG+AhfkSNYfaS07wLXyLsdwIgJfLj9xOqnToGC+ZjL5kU9r5xsDd5Wz0TbGgJ01pHenI="}]},"maintainers":[{"name":"addapptable","email":"dev@addapptables.com"},{"name":"sebastian.delaroche","email":"sebastianroche17@gmail.com"},{"name":"teogl","email":"teito.lop@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ngrx-actions_0.0.2_1548438698160_0.26419782019241156"},"_hasShrinkwrap":false},"0.0.3":{"name":"@addapptables/ngrx-actions","version":"0.0.3","author":{"name":"Addapptables"},"description":"Material ngrx actions library for angular","license":"MIT","homepage":"https://github.com/addapptables/ngrx-actions","private":false,"repository":{"type":"git","url":"git+https://github.com/addapptables/ngrx-actions.git"},"bugs":{"url":"https://github.com/addapptables/ngrx-actions/issues"},"peerDependencies":{"@angular/common":">= 7.0.0 < 8.0.0","@angular/core":">= 7.0.0 < 8.0.0","@ngrx/store":">= 7.0.0 < 8.0.0","rxjs":">= 6.0.0 < 7.0.0"},"keywords":["angular","angular 2","ngrx","actions","addapptables-ngrx-actions"],"main":"bundles/addapptables-ngrx-actions.umd.js","module":"fesm5/addapptables-ngrx-actions.js","es2015":"fesm2015/addapptables-ngrx-actions.js","esm5":"esm5/addapptables-ngrx-actions.js","esm2015":"esm2015/addapptables-ngrx-actions.js","fesm5":"fesm5/addapptables-ngrx-actions.js","fesm2015":"fesm2015/addapptables-ngrx-actions.js","typings":"addapptables-ngrx-actions.d.ts","metadata":"addapptables-ngrx-actions.metadata.json","sideEffects":false,"dependencies":{"tslib":"^1.9.0"},"_id":"@addapptables/ngrx-actions@0.0.3","_npmVersion":"5.6.0","_nodeVersion":"8.11.4","_npmUser":{"name":"teogl","email":"teito.lop@gmail.com"},"dist":{"integrity":"sha512-Q0kc+ItE/OYi9VYaFyOWVZgd4YNCOITPjvv98P/uOFhH38awH3l3+mLId5cCMDp07eBRdQky7bxZtUq5tGT+CA==","shasum":"cd2b36bbba79b9d56dbb670227054442c4528db8","tarball":"https://registry.npmjs.org/@addapptables/ngrx-actions/-/ngrx-actions-0.0.3.tgz","fileCount":54,"unpackedSize":279753,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcS1oDCRA9TVsSAnZWagAAXU0QAKJcIOPKFukILgFKsRwJ\nKcEdIHfRUwej2P5heUTi0AhTfiSf7yNy103tMtK3HIBVZTAVtZTZch973V7t\nVjsDoXA58fjmRqmNSc1ltqPXt6nDCfpi2s6v94l8jLAZIwcpXiM2mTm/RfnU\nuCBHjDHWLcQC/VLU/GqXT32G2aTH3DgYLVP0F83yRdpTf4rUtjCt1gDXYCuT\nz7xZt6RuZug4YPla5VvvlvR0Pn2G5uwgrlN1Dxk3FLezxJV4nIS3KaYBBmZw\n47WFnJSZsYGQkjNYNjaxwHs9tupP4nt3DiMJa1emFA9tuC+BJrB1fh7N5UYG\nOp/548LjFxu0ShgCQFS7603m6jN18FiB2Cjhroef7vBkSrxcI29zOtQs3vxP\nPrzhaGKDz9ERRVapTzLXZfEKcEkl3IyvGic4wiFkUiNQeZRNA86K0c20iRwo\n6yrSxM7TGXG/5e6fnbuPzbb7kMaYECFMZcaoM8+/wXRJh59Gl7DLEFJLcaP9\nCA+85j5k/Ay6Qig36dLRPY26Re2NWYjHH6ZGKA1wxX5A2RckOldskv9O9uwi\nTepG50bDdxrJPePeMva2mJYe0a42LexoG3faekex0/gNjm2Yf01h99HYiEX/\nZy5olJ47BVH5z5nKnKljvi1Z24pTX2z5yRtImVDBUJuq0FjrbSg2fiHQiVUt\nH7Va\r\n=Kyse\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFEZl+JAT8/Ag2h6u6ytxGGzYgk45v7dYWO1V9ejmUjDAiEA2iX/uLQzIptuN7+CCkbst4gx61NFK5FrKQBxgY+yR8w="}]},"maintainers":[{"name":"addapptable","email":"dev@addapptables.com"},{"name":"sebastian.delaroche","email":"sebastianroche17@gmail.com"},{"name":"teogl","email":"teito.lop@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ngrx-actions_0.0.3_1548442115284_0.7643335021783575"},"_hasShrinkwrap":false},"1.0.0":{"name":"@addapptables/ngrx-actions","version":"1.0.0","author":{"name":"Addapptables"},"description":"Material ngrx actions library for angular","license":"MIT","homepage":"https://github.com/addapptables/ngrx-actions","private":false,"repository":{"type":"git","url":"git+https://github.com/addapptables/ngrx-actions.git"},"bugs":{"url":"https://github.com/addapptables/ngrx-actions/issues"},"peerDependencies":{"@angular/common":">=7.0.0 < 8.0.0","@angular/core":">=7.0.0 < 8.0.0","@ngrx/store":">=7.0.0 < 8.0.0","rxjs":">=6.0.0 < 7.0.0"},"keywords":["angular","angular 2","ngrx","actions","addapptables-ngrx-actions"],"main":"bundles/addapptables-ngrx-actions.umd.js","module":"fesm5/addapptables-ngrx-actions.js","es2015":"fesm2015/addapptables-ngrx-actions.js","esm5":"esm5/addapptables-ngrx-actions.js","esm2015":"esm2015/addapptables-ngrx-actions.js","fesm5":"fesm5/addapptables-ngrx-actions.js","fesm2015":"fesm2015/addapptables-ngrx-actions.js","typings":"addapptables-ngrx-actions.d.ts","metadata":"addapptables-ngrx-actions.metadata.json","sideEffects":false,"dependencies":{"tslib":"^1.9.0"},"_id":"@addapptables/ngrx-actions@1.0.0","_npmVersion":"5.6.0","_nodeVersion":"8.11.4","_npmUser":{"name":"teogl","email":"teito.lop@gmail.com"},"dist":{"integrity":"sha512-yKmelxmmgXoyMGaAXhJ/DFMR/DeBsrLZtwjEXoosVzvdcsu2hrNGedeQoEcVmBtfBj2SwTGu2jgk1nSZs5qnpw==","shasum":"82063f27acedf06af8fc8733d7d82be850150360","tarball":"https://registry.npmjs.org/@addapptables/ngrx-actions/-/ngrx-actions-1.0.0.tgz","fileCount":54,"unpackedSize":279749,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcVcQ9CRA9TVsSAnZWagAAXmQP/Rzt+CmOtXOusPGHzEqk\nPaQ+zmPIu4LJrNWQF3E+pZkLqmm3eIFZ2X1LInuvelOGnaUIz1WXOFKvlhnQ\n5hc3jjm4ChR3l4++FjwA/Phng+l81b8oKcAZ7MPPJ4HLrekZ7IvLMNyLps7c\n9O3fsvv6y7rofCqkIBri3ylGuiLWT++aS0Y94YABYDK+kGHdnZ2JfbAVplqz\nOhqoIkQcKiv4Mj12zMuEwxEdHmgwyE7h+pBovMBck6yoFrahW59ZD+immaNg\nqIANMFwO1Zm4/DI1fm3YQWw/nMFHfD3ru8oVDGkWR0vpw2bOcM4vgOM5QY+H\nzjQWj4RolKGp16pBpgUK4+qcMI/WLOEfexgW7UV34Z+oYhKRGm0Ndww1qUon\nEjvkz0P/3j9VUe6QgZYHqT5nUDRFVf4+1BOgzMC+KYi5CCojrHvoOFjtLMPU\nOe5XpgBVuxRYTh3OmmlNHSq+qrvu80yG61dliOsJ9O/KkM7j/JwZC/yg1tHr\nP+pL5Dpw7LW73aICC2Gp84QsekfexcHXojEGCXb8LGWh/9v1SZ/nPHq5jVlM\nxsA5jDJc5hMfYLbb+UUj5YdOEhutYXtV17SRHDbM9Qts4aZd+hTHGfz7sQWl\nwGspzrCwMV5ueHWHY8dJcMIW5ufah8YUmHrhVgpbeXsSr1Kh1GjaJ60kU8WC\nMo/H\r\n=KPHf\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEfiFnq21LTbJe1SpE7IYRwWIKSv0u/jjxbij9fmxaYRAiEA+uDl2K1WsqFZyzsyOigA6ZiJ40afFFUhuJ7XZ4/vAbY="}]},"maintainers":[{"name":"addapptable","email":"dev@addapptables.com"},{"name":"sebastian.delaroche","email":"sebastianroche17@gmail.com"},{"name":"teogl","email":"teito.lop@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ngrx-actions_1.0.0_1549124669075_0.6741621680780194"},"_hasShrinkwrap":false},"2.0.0":{"name":"@addapptables/ngrx-actions","version":"2.0.0","author":{"name":"Addapptables"},"description":"Material ngrx actions library for angular","license":"MIT","homepage":"https://github.com/addapptables/ngrx-actions","private":false,"repository":{"type":"git","url":"git+https://github.com/addapptables/ngrx-actions.git"},"bugs":{"url":"https://github.com/addapptables/ngrx-actions/issues"},"peerDependencies":{"@angular/common":">=8.0.0 < 9.0.0","@angular/core":">=8.0.0 < 9.0.0","@ngrx/store":">=8.0.0 < 9.0.0","rxjs":">=6.0.0 < 7.0.0"},"keywords":["angular","angular 2","ngrx","actions","addapptables-ngrx-actions"],"main":"bundles/addapptables-ngrx-actions.umd.js","module":"fesm5/addapptables-ngrx-actions.js","es2015":"fesm2015/addapptables-ngrx-actions.js","esm5":"esm5/addapptables-ngrx-actions.js","esm2015":"esm2015/addapptables-ngrx-actions.js","fesm5":"fesm5/addapptables-ngrx-actions.js","fesm2015":"fesm2015/addapptables-ngrx-actions.js","typings":"addapptables-ngrx-actions.d.ts","metadata":"addapptables-ngrx-actions.metadata.json","sideEffects":false,"dependencies":{"tslib":"^1.9.0"},"_id":"@addapptables/ngrx-actions@2.0.0","_nodeVersion":"10.16.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-Wdawrgv5VIkcx48NMRA8O7ZKxPv4Klo0Km0XGVoRnF4KsTPQCH0xJX6iwPO3qGnafRrIoWCSMnGs1poprDyY5w==","shasum":"30f5c33f246a06bac458ec12b9364fa93c870b5b","tarball":"https://registry.npmjs.org/@addapptables/ngrx-actions/-/ngrx-actions-2.0.0.tgz","fileCount":54,"unpackedSize":286168,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdF4ilCRA9TVsSAnZWagAABGQP/RFbCgwEVEqR7yCCeZRS\nJj5S0lluOUjktArD2+OXdx1BWgL+inNrIbbpFHHYmOVzeRQpNgc4iU9g4Wph\nP2Un0/CIyvJI0EmyXlLGe6jHDcHjn44BEj9tL0i4I+iiGBN0fD6mmRUDs9B4\nac8k/lncCb+Y30oZ8dC+R3EHHdSv1b4iK1/JxzZkzR1aFxRnQN4briOJV+Rg\n7cim4Lw0t8z+mhG9l0ADtZpLsotD5bJyb1VQX474IuxBeN9ufuiC2ReJ/1h/\nh2Sx7enKRAI7xDyjvCcBb49+893d5f6bw7/BZbLpOQsxPwr2+XYgQlH7GvzD\nmEPLLJMj4WR8FuqvFDyTL5J9cvD7z3xaqj/XZKuLhgY31F6C56ACCv9WwU0+\n7FYDM/LBPFG5f7vNbG1RFOkZqW8p4Cnzy7fGgQwuQ8zMO8mEwQa8xzQ5bsct\nCy7iRn5aa4hFESNPDv1eaUlyI88WCDjU8MeHofV99QME47AkGRJ5v4P1cAL5\n10BP4ymu8WtiWWRm/Niktob27dGE9kFzxudHhUg/1PJDgRH2ntDI7+iBU7/m\n0tcKWC5855Ft6lVNgoCxiGVf/HxVTXUrD13LupQOM+TsLYDXK0DSJBWq9r5w\n0y4BBiKieuhWwuw2f1i3EIwM3dZg/1iiU2XnQ8mP2maqBsHhNPSS1FB3IHwK\nRmb6\r\n=Ck/e\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCBaS+cSOLRVNp0+GIoyXbjCqav0iiVbtjFZlkSTvmvMgIhAO7VhTIvwJIgnee6FlDHqJbuKCaz5sAvt/AFoyOp90iX"}]},"maintainers":[{"name":"addapptable","email":"dev@addapptables.com"},{"name":"sebastian.delaroche","email":"sebastianroche17@gmail.com"},{"name":"teogl","email":"teito.lop@gmail.com"}],"_npmUser":{"name":"teogl","email":"teito.lop@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ngrx-actions_2.0.0_1561823396918_0.5100211928641365"},"_hasShrinkwrap":false}},"time":{"created":"2019-01-17T20:22:34.749Z","0.0.1":"2019-01-17T20:22:34.992Z","modified":"2022-04-04T11:27:44.664Z","0.0.2":"2019-01-25T17:51:38.361Z","0.0.3":"2019-01-25T18:48:35.424Z","1.0.0":"2019-02-02T16:24:29.237Z","2.0.0":"2019-06-29T15:49:57.022Z"},"maintainers":[{"email":"teito.lop@gmail.com","name":"teogl"}],"description":"Material ngrx actions library for angular","homepage":"https://github.com/addapptables/ngrx-actions","repository":{"type":"git","url":"git+https://github.com/addapptables/ngrx-actions.git"},"bugs":{"url":"https://github.com/addapptables/ngrx-actions/issues"},"readme":"# NGRX Actions\r\n\r\nNote: This library is an improvement on the ngrx-actions library.\r\n\r\nActions/reducer utility for NGRX. It provides a handful of functions to make NGRX/Redux more Angular-tastic.\r\n\r\n- `@Store(MyInitialState)`: Decorator for default state of a store.\r\n- `@Action(...MyActionClass: Action[])`: Decorator for a action function.\r\n- `@Effect(...MyActionClass: Action[])`: Decorator for a effect function.\r\n- `ofAction(MyActionClass)`: Lettable operator for NGRX Effects\r\n- `createReducer(MyStoreClass)`: Reducer bootstrap function\r\n- `@Select('my.prop')`: Select decorator\r\n\r\nSee [changelog](CHANGELOG.md) for latest changes.\r\n\r\n## Whats this for?\r\nThis is _sugar_ to help reduce boilerplate when using Redux patterns. That said, here's the high level of what it provides:\r\n\r\n- Reducers become classes so its more logical organization\r\n- Automatically creates new instances so you don't have to handle spreads everywhere\r\n- Enables better type checking inside your actions\r\n- Reduces having to pass type constants by using type checking\r\n\r\nIts dead simple (<100LOC) and you can pick and choose where you want to use it.\r\n\r\n## Getting Started\r\nTo get started, lets install the package thru npm:\r\n\r\n```\r\nnpm i @addapptables/ngrx-actions --S\r\n```\r\n\r\n### Reducers\r\nNext, create an action just like you do with NGRX today:\r\n\r\n```javascript\r\nexport class MyAction {\r\n  readonly type = 'My Action';\r\n  constructor(public payload: MyObj) {}\r\n}\r\n```\r\n\r\nthen you create a class and decorate it with a `Store` decorator that contains\r\nthe initial state for your reducer. Within that class you define methods\r\ndecorated with the `Action` decorator with an argument of the action class\r\nyou want to match it on.\r\n\r\n```javascript\r\nimport { Store, Action } from 'ngrx-actions';\r\n\r\n@Store({\r\n    collection: [],\r\n    selections: [],\r\n    loading: false\r\n})\r\nexport class MyStore {\r\n    @Action(Load, Refresh)\r\n    load(state: MyState, action: Load) {\r\n        state.loading = true;\r\n    }\r\n\r\n    @Action(LoadSuccess)\r\n    loadSuccess(state: MyState, action: LoadSuccess) {\r\n        state.collection = [...action.payload];\r\n    }\r\n\r\n    @Action(Selection)\r\n    selection(state: MyState, action: Selection) {\r\n        state.selections = [...action.payload];\r\n    }\r\n\r\n    @Action(DeleteSuccess)\r\n    deleteSuccess(state: MyState, action: DeleteSuccess) {\r\n        const idx = state.collection.findIndex(r => r.myId === action.payload);\r\n        if (idx === -1) {\r\n          return state;\r\n        }\r\n        const collection = [...state.collection];\r\n        collection.splice(idx, 1);\r\n        return { ...state, collection };\r\n    }\r\n}\r\n```\r\n\r\nYou may notice, I don't return the state. Thats because if it doesn't see\r\na state returned from the action it inspects whether the state was an\r\nobject or array and automatically creates a new instance for you. If you are\r\nmutating deeply nested properties, you still need to deal with those yourself.\r\n\r\nYou can still return the state yourself and it won't mess with it. This is helpful\r\nfor if the state didn't change or you have some complex logic going on. This can be\r\nseen in the `deleteSuccess` action.\r\n\r\nAbove you may notice, the first action has multiple action classes. Thats because\r\nthe `@Action` decorator can accept single or multiple actions.\r\n\r\nTo hook it up to NGRX, all you have to do is call the `createReducer` function passing\r\nyour store. Now pass the `myReducer` just like you would a function with a switch statement inside.\r\n\r\n```javascript\r\nimport { createReducer } from 'ngrx-actions';\r\nexport function myReducer(state, action) { return createReducer(MyStore)(state, action); }\r\n```\r\n\r\nIn the above example, I return a function that returns my `createReducer`. This is because AoT\r\ncomplains stating `Function expressions are not supported in decorators` if we just assign\r\nthe `createReducer` method directly. This is a known issue and [other NGRX](https://github.com/ngrx/platform/issues/116) things suffer from it too.\r\n\r\nNext, pass that to your NGRX module just like normal:\r\n\r\n```javascript\r\n@NgModule({\r\n   imports: [\r\n      StoreModule.forRoot(reducers, { metaReducers }),\r\n      ReduxRegisterModule.forRoot({\r\n         pizza: PizzaStore\r\n      })\r\n   ]\r\n})\r\nexport class AppModule {}\r\n```\r\n\r\nOptionally you can also provide your store directly to the `ReduxRegisterModule` and it will handle\r\ncreating the reducer for you and also enables the ability to use DI with your stores. So rather than\r\ndescribing in `forRoot` or `forFeature` with `StoreModule`, we call them on `ReduxRegisterModule`.\r\n\r\n```javascript\r\n@NgModule({\r\n   imports: [\r\n      ReduxRegisterModule.forFeature('menu', {\r\n          sidebar: MenuStore\r\n      })\r\n   ]\r\n})\r\nexport class ChildModule {}\r\n```\r\n\r\n### Effects\r\nIf you want to use NGRX effects, I've created a lettable operator that will allow you to\r\npass the action class as the argument like this:\r\n\r\n```javascript\r\nimport { ofAction } from 'ngrx-actions';\r\n\r\n@Injectable()\r\nexport class MyEffects {\r\n    constructor(\r\n        private update$: Actions,\r\n        private myService: MyService\r\n    ) {}\r\n\r\n    @Effect()\r\n    Load$ = this.update$.pipe(\r\n        ofAction(Load),\r\n        switchMap(() => this.myService.getAll()),\r\n        map(res => new LoadSuccess(res))\r\n    );\r\n}\r\n```\r\n\r\n`@Effect` that you can define in your store to perform async operations.\r\n\r\n```javascript\r\n@Store({ delievered: false })\r\nexport class PizzaStore {\r\n    constructor(private pizzaService: PizzaService) {}\r\n\r\n    @Action(DeliverPizza)\r\n    deliverPizza(state) {\r\n        state.delivered = false;\r\n    }\r\n\r\n    @Effect(DeliverPizza)\r\n    deliverPizzaToCustomer(state, { payload }: DeliverPizza) {\r\n        this.pizzaService.deliver(payload);\r\n    }\r\n}\r\n```\r\n\r\nEffects are always run after actions.\r\n\r\n### Selects\r\nWe didn't leave out selectors, there is a `Select` decorator that accepts a (deep) path string. This looks like:\r\n\r\n```javascript\r\n@Component({ ... })\r\nexport class MyComponent {\r\n    // Functions\r\n    @Select((state) => state.color) color$: Observable<string>;\r\n\r\n    // Array of props\r\n    @Select(['my', 'prop', 'color']) color$: Observable<strinv>;\r\n\r\n    // Deeply nested properties\r\n    @Select('my.prop.color') color$: Observable<string>;\r\n\r\n    // Implied by the name of the member\r\n    @Select() color: Observable<string>;\r\n\r\n    // Remap the slice to a new object\r\n    @Select(state => state.map(f => 'blue')) color$: Observable<string>;\r\n}\r\n```\r\n\r\nAnd you can start using it in any component. It also works with feature stores too. Note: The Select decorator has a limitation of lack of type checking due to [TypeScript#4881](https://github.com/Microsoft/TypeScript/issues/4881).\r\n","readmeFilename":"README.md","keywords":["angular","angular 2","ngrx","actions","addapptables-ngrx-actions"],"author":{"name":"Addapptables"},"license":"MIT"}