{"_id":"@r-hannuschka/ngx-fileupload","_rev":"34-a4681a1e065b4c3d6b45e3b05a8be27e","name":"@r-hannuschka/ngx-fileupload","dist-tags":{"latest":"3.4.3","beta":"2.0.0-beta.0"},"versions":{"0.0.1":{"name":"@r-hannuschka/ngx-fileupload","version":"0.0.1","description":"angular fileupload library","repository":{"url":"git+https://github.com/r-hannuschka/ngx-fileupload.git","type":"git"},"license":"MIT","keywords":["angular","file","upload","fileupload"],"dependencies":{"angular-pipes":"^9.0.2","tslib":"^1.9.0"},"peerDependencies":{"@angular/common":"^8.0.1","@angular/core":"^8.0.1"},"author":{"name":"Ralf Hannuschka","url":"https://github.com/r-hannuschka"},"bugs":{"url":"https://github.com/r-hannuschka/ngx-fileupload/issues"},"homepage":"https://github.com/r-hannuschka/ngx-fileupload#readme","main":"bundles/r-hannuschka-ngx-fileupload.umd.js","module":"fesm5/r-hannuschka-ngx-fileupload.js","es2015":"fesm2015/r-hannuschka-ngx-fileupload.js","esm5":"esm5/r-hannuschka-ngx-fileupload.js","esm2015":"esm2015/r-hannuschka-ngx-fileupload.js","fesm5":"fesm5/r-hannuschka-ngx-fileupload.js","fesm2015":"fesm2015/r-hannuschka-ngx-fileupload.js","typings":"r-hannuschka-ngx-fileupload.d.ts","metadata":"r-hannuschka-ngx-fileupload.metadata.json","sideEffects":false,"_id":"@r-hannuschka/ngx-fileupload@0.0.1","_nodeVersion":"10.14.1","_npmVersion":"6.9.0","dist":{"integrity":"sha512-ocqkT3hUzBoUFa6b/OEo0529bma9Wa8u+Vtwzag4r/N/dFBfZUY7A9YLLGgJ9KxedSPfrm1NARKfGgIeEZeYMA==","shasum":"1f3e2d6aff4e00454d88e88c649d16b990f8d20a","tarball":"https://registry.npmjs.org/@r-hannuschka/ngx-fileupload/-/ngx-fileupload-0.0.1.tgz","fileCount":37,"unpackedSize":392920,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdFp+9CRA9TVsSAnZWagAAzJ8P/jj4Y1lyu+VPMgTT9QZf\nwPS9C5fgWt8SRa9ZzL+7IEa7fJGYW/B+BckQURLpoAmcuccNrwkw8a7OaFYI\n3MuKZalr5OCANyj9CKtASbGL4S86MeN20KKb5uZcddTboXtcCblzuA+DNZX7\nFP28K7WaGTxZ5Vkpzg5jqjpwU0//FhOLaOIQVq+eZeRhERxLIBMWuvQPSOPd\nbyqFySpS8Agd+Y/fziuBgurlEap8EupWSd/6NBUQXUJviBtTTcFPO7uL3zD1\newejpo465cYZZCtEkxXL81l4jGuIjWtMtA223//7VDq09iy4BMI7zseNUmSB\nxJMQFpYS3p2Vlb5oJ1z3JCchUCr2tepJsCh2xYpTrCXHPhGdncsmE0hxmUmu\nDsy7DTUEXQZgDP+mcnbO0aJq1z9oPvJJYnlpgKrgBiCR9763ZI5A2zbVFZda\nqI8Ew67Njuby3+aosr+4zMrcWwIK4fyIMTUctXhQshKsvydBb/m4HVwq4WtA\nyl9IqslBy4OEGXjoDMw3LssyaMAg0wMSRRA10Pau38D2ZBeRlb3kdQH0nuK2\noBZGua1Kmx4YapfR3NsklL8Z9/qClj8xKG6YLT3mwOZ6Kd7h69Psp8+/hZ+i\n4dBvJmTlwlGjAagPI29pFqyoKfLb7SXJNXRekDYmhBfB32CVJ5mlaWsm3ga2\nAknT\r\n=4Ygb\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEDHx+8TbhvTlLl384DfE62zuDPEgA1gIKvFD2qCMoEaAiAs+sD/3gv0SIJ5GUeootct4u7J8wGsURLUUXP+M7fyWw=="}]},"maintainers":[{"name":"r-hannuschka","email":"r.hannuschka@gmail.com"}],"_npmUser":{"name":"r-hannuschka","email":"r.hannuschka@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ngx-fileupload_0.0.1_1561763772731_0.09378389391388953"},"_hasShrinkwrap":false,"deprecated":"Package has been moved and is no longer maintained, use @ngx-file-upload/core and @ngx-file-upload/ui packages."},"0.1.0":{"name":"@r-hannuschka/ngx-fileupload","version":"0.1.0","description":"angular fileupload library","repository":{"url":"git+https://github.com/r-hannuschka/ngx-fileupload.git","type":"git"},"license":"MIT","keywords":["angular","file","upload","fileupload"],"peerDependencies":{"@angular/common":"^8.0.1","@angular/core":"^8.0.1","angular-pipes":"^9.0.2"},"author":{"name":"Ralf Hannuschka","url":"https://github.com/r-hannuschka"},"bugs":{"url":"https://github.com/r-hannuschka/ngx-fileupload/issues"},"homepage":"https://github.com/r-hannuschka/ngx-fileupload#readme","main":"bundles/r-hannuschka-ngx-fileupload.umd.js","module":"fesm5/r-hannuschka-ngx-fileupload.js","es2015":"fesm2015/r-hannuschka-ngx-fileupload.js","esm5":"esm5/r-hannuschka-ngx-fileupload.js","esm2015":"esm2015/r-hannuschka-ngx-fileupload.js","fesm5":"fesm5/r-hannuschka-ngx-fileupload.js","fesm2015":"fesm2015/r-hannuschka-ngx-fileupload.js","typings":"r-hannuschka-ngx-fileupload.d.ts","metadata":"r-hannuschka-ngx-fileupload.metadata.json","sideEffects":false,"dependencies":{"tslib":"^1.9.0"},"_id":"@r-hannuschka/ngx-fileupload@0.1.0","_nodeVersion":"10.14.1","_npmVersion":"6.9.0","dist":{"integrity":"sha512-LLQG+X/C52lac+l1iAbt5/4D9c4WbiWtGBOCiCiRG6zIHUIenoUDjqx7ka78QUOnfQpOYeYraC4Ex85+XsKNTQ==","shasum":"55d635b66f3186f268839c8c97e52b9513329c44","tarball":"https://registry.npmjs.org/@r-hannuschka/ngx-fileupload/-/ngx-fileupload-0.1.0.tgz","fileCount":38,"unpackedSize":514451,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdF8azCRA9TVsSAnZWagAAAioP/jZfeiBWw4jusNgYY4kK\nG/a/LzmbPpEtwVNa+4+wXnQQuY6JqtJojtQwdwxw+qImQyG6oRv4+Y3d42TO\nERpjYW5nZsdsP5xpicximm/GYZ7DQzHejJhJJpgtpQQTgprgqvPuS47hNR5D\nJrjdP2d93CDTuPQJl516rBYl8m1Va+Vy7XxpfLylCKRx9JGyifVlTg9WnOAE\nBpglMuoUr6JJVBM9oxHpQV4q3cLUQXoGyik2UyIHhlpZJiRLggwsRz4i5RQS\nqOVhi7QOW1BEMXKBPe0SU98oS4Y8IZuvN+VI4YEPjc7SYxtqXwGC2i4fDYzh\nCcRUGzzfiZnF6RYqWGWtcnKfP3jTmAQctERLt6v0Ju7Di2j2NdK00hAZ67gS\n/k5sl/3MSOlu/+WJwXkLWyZ+NXaTO3+1YfXrCZ1A6wyQD207hY6OGFinbKWm\n1ipADL6Gm3hNQXEeoeY47V1FXfXrOKZFU5GGIuwW4YbJHWS2vziYzEV9T5Xj\nLdePCgl02fN/p7pmbVZUZPpSFUScIWHEId/FFqGJ/SgNAG1LQTAWp7YW3WlF\nHr16CIV0bteNTlDiN0BQYYKoABcVLCUhoIx852lbZltILu5E0KUWacZSC6JT\n9eNjPxmSTJl+2TCV7I9peCGe+RgDE2zDjIK/KaSyDUxg8uWi7SluhhR8YQIV\nd/Z2\r\n=52IM\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQClAGKVcRLcf2nzp3FPhqmZbyIYnHjpDGjfMcFmKEwCwgIhAOoIbD7+CgqqxnT7BOHzjealZRyvCNM70/fSa84pq7xp"}]},"maintainers":[{"name":"r-hannuschka","email":"r.hannuschka@gmail.com"}],"_npmUser":{"name":"r-hannuschka","email":"r.hannuschka@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ngx-fileupload_0.1.0_1561839282494_0.1696479224978904"},"_hasShrinkwrap":false,"deprecated":"Package has been moved and is no longer maintained, use @ngx-file-upload/core and @ngx-file-upload/ui packages."},"0.1.1":{"name":"@r-hannuschka/ngx-fileupload","version":"0.1.1","description":"angular fileupload library","repository":{"url":"git+https://github.com/r-hannuschka/ngx-fileupload.git","type":"git"},"license":"MIT","keywords":["angular","file","upload","fileupload"],"peerDependencies":{"@angular/common":"^8.0.1","@angular/core":"^8.0.1","angular-pipes":"^9.0.2"},"author":{"name":"Ralf Hannuschka","url":"https://github.com/r-hannuschka"},"bugs":{"url":"https://github.com/r-hannuschka/ngx-fileupload/issues"},"homepage":"https://github.com/r-hannuschka/ngx-fileupload#readme","main":"bundles/r-hannuschka-ngx-fileupload.umd.js","module":"fesm5/r-hannuschka-ngx-fileupload.js","es2015":"fesm2015/r-hannuschka-ngx-fileupload.js","esm5":"esm5/r-hannuschka-ngx-fileupload.js","esm2015":"esm2015/r-hannuschka-ngx-fileupload.js","fesm5":"fesm5/r-hannuschka-ngx-fileupload.js","fesm2015":"fesm2015/r-hannuschka-ngx-fileupload.js","typings":"r-hannuschka-ngx-fileupload.d.ts","metadata":"r-hannuschka-ngx-fileupload.metadata.json","sideEffects":false,"dependencies":{"tslib":"^1.9.0"},"_id":"@r-hannuschka/ngx-fileupload@0.1.1","_nodeVersion":"10.14.1","_npmVersion":"6.9.0","dist":{"integrity":"sha512-pdx5zr3q1lQS5xtvSaURa9DrRW+fYHCxaREwYH15R6zzo31rMcqNYNf4UFX9w8A5Wt7ZORhhTmPMbsijFib8rA==","shasum":"0c3143ad2693fe7a932bd6ff2e36793009c43744","tarball":"https://registry.npmjs.org/@r-hannuschka/ngx-fileupload/-/ngx-fileupload-0.1.1.tgz","fileCount":38,"unpackedSize":512745,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdGKcWCRA9TVsSAnZWagAAB+4P/jw8urK7a889fOlDkYT6\n5TdvNOjK0vvl8G1x7yI4bOoYJz175QRtj8oL1+b4HggzfE/uovGsSNMvgHwk\nycIvyFRtGKbtNb7pR9Cvncml3NqHiirCE1cwk6Ls/0US5BpOVlNEOuEHkSqk\nYH2Pvn7qOXESDAa+qw40XCs3pTbYNOXUZgxgBdDZ7muzbDaSA/twIQ84AQwa\nJmXsxA1vWjbH/1XOzB4Jl5Y/kCpPkiu9PVpRNR6EBHks3MPDao3jzTj4DZF9\nWwcfztLpF81sKwCGdO8DN/owlvfGZUCCj0reTXwFquXEU0WLMMIFqx8dCZWo\nJrKsKpeFLIaz8BZwwyh4Mt7rfznX8ONiHcUFC/ovZ+4W7tmrBemOGOue4Mqq\nd+87PnLWLLwMHXMCFYx1oF0IQklRvESGPDpuFYyNSMytsXS6zJTf9GzuHnF3\nDcEYe6jS+pcl3qAhI7WwS/2wq373K0q51Rujo0NylaDtvjSDQ+vp1fUhR5Ht\nre+MOsxAxyLwwmezjqX4Ow97F9eVNBCIOen526m8DDZ06tuAV05QIeofOy2E\nZDnHtvJRjyjh7azyHT4sCnWkLBimYW/wdBuqRI1C7C8AtRvtKk+uzokYMxxg\neRv5aQsN1zptI2FSIS4o5dTeXhNnvnh53hpqqTzNQWuZurMwbZKQARLFH48f\n9Lbc\r\n=NJDf\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBrRJB/le4Se3KIALmQBGTyEhY8+qsMY8AQuM0k+23q3AiBT/GZLbnQDtD7bL+SPaD9xeYGVUU4W9RJSn74t453v3g=="}]},"maintainers":[{"name":"r-hannuschka","email":"r.hannuschka@gmail.com"}],"_npmUser":{"name":"r-hannuschka","email":"r.hannuschka@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ngx-fileupload_0.1.1_1561896725466_0.4641768686561405"},"_hasShrinkwrap":false,"deprecated":"Package has been moved and is no longer maintained, use @ngx-file-upload/core and @ngx-file-upload/ui packages."},"0.2.0":{"name":"@r-hannuschka/ngx-fileupload","version":"0.2.0","description":"angular fileupload library","repository":{"url":"git+https://github.com/r-hannuschka/ngx-fileupload.git","type":"git"},"license":"MIT","keywords":["angular","file","upload","fileupload"],"peerDependencies":{"@angular/common":"^8.0.1","@angular/core":"^8.0.1","angular-pipes":"^9.0.2"},"author":{"name":"Ralf Hannuschka","url":"https://github.com/r-hannuschka"},"bugs":{"url":"https://github.com/r-hannuschka/ngx-fileupload/issues"},"homepage":"https://github.com/r-hannuschka/ngx-fileupload#readme","main":"bundles/r-hannuschka-ngx-fileupload.umd.js","module":"fesm5/r-hannuschka-ngx-fileupload.js","es2015":"fesm2015/r-hannuschka-ngx-fileupload.js","esm5":"esm5/r-hannuschka-ngx-fileupload.js","esm2015":"esm2015/r-hannuschka-ngx-fileupload.js","fesm5":"fesm5/r-hannuschka-ngx-fileupload.js","fesm2015":"fesm2015/r-hannuschka-ngx-fileupload.js","typings":"r-hannuschka-ngx-fileupload.d.ts","metadata":"r-hannuschka-ngx-fileupload.metadata.json","sideEffects":false,"dependencies":{"tslib":"^1.9.0"},"_id":"@r-hannuschka/ngx-fileupload@0.2.0","_nodeVersion":"10.14.1","_npmVersion":"6.9.0","dist":{"integrity":"sha512-7k+1B6ZWj5GjykxKLM5wW7f7hR9mZTFvgJ5X3htfEXEZ9/l1EUQOgM6+tyiLKxoCCJhbv7BBULzDO1LRpXgCig==","shasum":"e4ff6087fc9c2e7caff0248bb65e1a36749c38f5","tarball":"https://registry.npmjs.org/@r-hannuschka/ngx-fileupload/-/ngx-fileupload-0.2.0.tgz","fileCount":38,"unpackedSize":539929,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdGPU2CRA9TVsSAnZWagAANZQQAKFnvTuKIgPL/S8g1L3k\n+tK3mmswYKeeJaCwPEnz+9hi952qWXBSh97dQKO6TOiloDJF24VuD2yeWNEl\nfKuawBkn5zlhCP+ebHid6AsL1eO3PiJdtWoHnkrjPyHtR6XR/hfKp6XUa9yJ\ngacvFt5bQwUADqEp5YkFNnqujc4H57RWtRW3aDuAJ/eQHjdWG+G2POhL2wqf\nSg9ZXGrRVT4QanEMAE+X4exRfIjamy1TXaZ7yTEYIEjunQ1oWNdm61NwUJUd\nf/SuZaIAjRZ8Jq5A2JfzfzKtzWxcFWmqtVVHra7M9CRo8iJfl2g0lj7EpwIS\nP0kkvXGd+WZjrwXAVTsLsOATSrUbBryB11OAeDEr+yVuQhMNTPjcBmY9fj9e\n0KmujpYHuqPDJ5Jj0wj8S5KqPPdgCmbNheG/NHgWkqxWK//knwqdLe+7ht4n\njuNCmuT7N1MBDY4MMIEcx1HtphlBo0z1Mw2X1DbrxmP4zz6FvpukFFv21COw\nvJvRiGwUT/i1YrzfAhi9kmnoBFCBncrfIL2Bp/bt2zvJoHHkqf1rGugkv6Rw\ndw6prKU/J2X+8B6wh9GOJ7pfk532kpGCE2oHAezfSMDDNA+XqFCdaGXfAWJE\nUXVjzeg/+2FasivhogGANjTkN8crGCPVN58pUcgLUfl7Qr3JJ7kOoHUCTTmY\nC/E7\r\n=VrDE\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCCTV+rihSXWWeaEAoqswHRyjYsFgZZ5/PhQNO+M2TWOwIgeqjtk+jt3LJwUi2JK9sCpY0xYSCv0MBGHbxsGg9iWOM="}]},"maintainers":[{"name":"r-hannuschka","email":"r.hannuschka@gmail.com"}],"_npmUser":{"name":"r-hannuschka","email":"r.hannuschka@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ngx-fileupload_0.2.0_1561916725977_0.20394354987574825"},"_hasShrinkwrap":false,"deprecated":"Package has been moved and is no longer maintained, use @ngx-file-upload/core and @ngx-file-upload/ui packages."},"0.2.1":{"name":"@r-hannuschka/ngx-fileupload","version":"0.2.1","description":"angular fileupload library","repository":{"url":"git+https://github.com/r-hannuschka/ngx-fileupload.git","type":"git"},"license":"MIT","keywords":["angular","file","upload","fileupload"],"peerDependencies":{"@angular/common":"^8.0.1","@angular/core":"^8.0.1","angular-pipes":"^9.0.2"},"author":{"name":"Ralf Hannuschka","url":"https://github.com/r-hannuschka"},"bugs":{"url":"https://github.com/r-hannuschka/ngx-fileupload/issues"},"homepage":"https://github.com/r-hannuschka/ngx-fileupload#readme","main":"bundles/r-hannuschka-ngx-fileupload.umd.js","module":"fesm5/r-hannuschka-ngx-fileupload.js","es2015":"fesm2015/r-hannuschka-ngx-fileupload.js","esm5":"esm5/r-hannuschka-ngx-fileupload.js","esm2015":"esm2015/r-hannuschka-ngx-fileupload.js","fesm5":"fesm5/r-hannuschka-ngx-fileupload.js","fesm2015":"fesm2015/r-hannuschka-ngx-fileupload.js","typings":"r-hannuschka-ngx-fileupload.d.ts","metadata":"r-hannuschka-ngx-fileupload.metadata.json","sideEffects":false,"dependencies":{"tslib":"^1.9.0"},"_id":"@r-hannuschka/ngx-fileupload@0.2.1","_nodeVersion":"10.14.1","_npmVersion":"6.9.0","dist":{"integrity":"sha512-C6I6NEZBIywUpjvNv1doVqdiF9vFnIVIRN6FpH/YGcY2VixzsyS8EXWsFCBSZrth3rFo/Qq7jlsRwvileam3gw==","shasum":"58c031852684859e13f5e732714ff77e3486cf0c","tarball":"https://registry.npmjs.org/@r-hannuschka/ngx-fileupload/-/ngx-fileupload-0.2.1.tgz","fileCount":38,"unpackedSize":539979,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdGQpECRA9TVsSAnZWagAAkpMQAJZW/4IaXXMerNOLhxFN\nCotDUCcjMkX6Uari7o8abLqAj8Tbpye6UjJmy/b7cqu1dtjfoFAMib161iBq\nNW3NMNMKaipPHv8N82XABfh37OU10eHZQ5THgsgzns2s1Hl1Iis+fKGPnubr\npC3tQubzbaKRb/1gddzhUT3OJZy3iEokOK3dSyJCH4PjYAxUxzoZ4q2zf5Na\no2wDJKj/gPgR0qGkCzCuV2PbeGtEaYpaN5mvLwZHoNV7sYFlpqRh2iLTwTrj\nVUinEipEJ4r/EBZVDlDX7IGD9yFz+d9DksU2/haM6y3y1W1k7B2niTQr7PQf\nBIJ4Tb7SYEHBne8g15ZukZg8mbZ+iyTIcUFOUUw3Fh7iOP7kdWKQu6AUJXdD\nqNbsd20p89YHyHvhKiC2F3320/RRJ5j9CBfme/wjzi42MwCkuOqRhxd4jTMG\nFooP4PH0Kv0mg3xNL51rWCgD3ukA5NcK5I/Qsw0/lzbVNHOGjbhQ5bb98x+9\nlZbaYxfl18UvDpMwxkL7X9Jr5tFehWMwPdVrXzYQfw2+zVWkmoccgp4M5kbv\nSiNq8oDkM54BZUQXIH3s5/Ym6vTcMYH6Lmb6OPx4ArZ77mrOK+nq1lp+ovfb\noUtATXo5Ht5JYdV1kYLamx/RbQaErF2+s1ivlzJNb5GSBFafd7KB202/UYbk\nR/Ca\r\n=LJJB\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCwJWN3RBy3AYOLX7YfsTOlOS8rZV5WHx6/1ayskler8wIgRqtJMoG/Dm68vbyuCgEBaneRnepEFEekItPkLY+Blag="}]},"maintainers":[{"name":"r-hannuschka","email":"r.hannuschka@gmail.com"}],"_npmUser":{"name":"r-hannuschka","email":"r.hannuschka@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ngx-fileupload_0.2.1_1561922115484_0.9599360340954111"},"_hasShrinkwrap":false,"deprecated":"Package has been moved and is no longer maintained, use @ngx-file-upload/core and @ngx-file-upload/ui packages."},"0.3.0":{"name":"@r-hannuschka/ngx-fileupload","version":"0.3.0","description":"angular fileupload library","repository":{"url":"git+https://github.com/r-hannuschka/ngx-fileupload.git","type":"git"},"license":"MIT","keywords":["angular","file","upload","fileupload"],"peerDependencies":{"@angular/common":"^8.0.1","@angular/core":"^8.0.1","angular-pipes":"^9.0.2"},"author":{"name":"Ralf Hannuschka","url":"https://github.com/r-hannuschka"},"bugs":{"url":"https://github.com/r-hannuschka/ngx-fileupload/issues"},"homepage":"https://github.com/r-hannuschka/ngx-fileupload#readme","main":"bundles/r-hannuschka-ngx-fileupload.umd.js","module":"fesm5/r-hannuschka-ngx-fileupload.js","es2015":"fesm2015/r-hannuschka-ngx-fileupload.js","esm5":"esm5/r-hannuschka-ngx-fileupload.js","esm2015":"esm2015/r-hannuschka-ngx-fileupload.js","fesm5":"fesm5/r-hannuschka-ngx-fileupload.js","fesm2015":"fesm2015/r-hannuschka-ngx-fileupload.js","typings":"r-hannuschka-ngx-fileupload.d.ts","metadata":"r-hannuschka-ngx-fileupload.metadata.json","sideEffects":false,"dependencies":{"tslib":"^1.9.0"},"_id":"@r-hannuschka/ngx-fileupload@0.3.0","_nodeVersion":"10.14.1","_npmVersion":"6.9.0","dist":{"integrity":"sha512-SUwz9b1mk9j9v1eBtJo7uPFZuFYAYbyReZas3fHqAMUHq3b9CmVR70InkcBcwh4cCijL7+XiUCEQ/JlSvuWThw==","shasum":"23fabffec87b47ea54022fb977791927ccc0a938","tarball":"https://registry.npmjs.org/@r-hannuschka/ngx-fileupload/-/ngx-fileupload-0.3.0.tgz","fileCount":41,"unpackedSize":611473,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdGoMXCRA9TVsSAnZWagAACwUP/0WmadoPcQb4LqlhYCYe\n/mQH4ByUNublnZXXd9w3daop0WhtCQKDShXtRODJIisqQ1WgAdRWCENg12y8\n1Ph16M34/NKVxTrKpzaqpob2+Lg5pnslEqAScbyP2w8xZJkOTuv1uryAgpyu\nly/CDcQxZxKIsJhPrSoqpE2iCADv4Mhsfh3NdsByTL6MfVhFvLi8CioRoeBg\nnuUTtSFbbhoAFQeTKc5W9eQDNLj6yYkoyqB4aJ8WoHA+/Z+KdeCXLB/1JO2V\nE8n65kbaJbRUrsqPmbgd2rgtOX10taqkaTdc/3FE1ficEp/I04gGMowXgmjt\n9/Jq8IJ0Jq958cKb/hmPdyFeeoFj1PrnXO9SPmbOmBc/TXPAxmyjnEj6b4B4\nz6jOGnIDQR5g/3QpHqfpdu2M1YWCvZ1gLGqOFRRnkicymupAjQbbH4MD1CPT\nLMtYdkKhOESUEQI3rxntuexGrobHKGHeLAOri9lwy/jaIM4MOcRZGXi8tHBl\nBAMmaIMBw1p/11xgO+PXJZKoR011zXTZZMPfuzb+yswSUi4JI8Kp0URf7MTZ\nRtHSPy0O3pJRb+DSZKrah7qO84JvqKO2JP/Oar/nUse4FNy9vxnABUtf+iTk\n45xKSzk9MTY06fBwaCHXet2YebnwAjKvpK8jGlkAVKLAF9R5IJHnqTlW3lPq\nPxHF\r\n=e+4A\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCXYeZJX6Nx3mU2Yk1ISlp2TZF01ujp+m+IwcSeQIw7KgIgapzR6RHkcZ/5pIzFKhkeTW0Hgw9GJ0mDnhj/Zu7pTvQ="}]},"maintainers":[{"name":"r-hannuschka","email":"r.hannuschka@gmail.com"}],"_npmUser":{"name":"r-hannuschka","email":"r.hannuschka@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ngx-fileupload_0.3.0_1562018582694_0.30944008063888373"},"_hasShrinkwrap":false,"deprecated":"Package has been moved and is no longer maintained, use @ngx-file-upload/core and @ngx-file-upload/ui packages."},"0.4.0-beta.0":{"name":"@r-hannuschka/ngx-fileupload","version":"0.4.0-beta.0","description":"angular fileupload library","repository":{"url":"git+https://github.com/r-hannuschka/ngx-fileupload.git","type":"git"},"license":"MIT","keywords":["angular","file","upload","fileupload"],"peerDependencies":{"@angular/common":"^8.0.1","@angular/core":"^8.0.1","angular-pipes":"^9.0.2"},"author":{"name":"Ralf Hannuschka","url":"https://github.com/r-hannuschka"},"bugs":{"url":"https://github.com/r-hannuschka/ngx-fileupload/issues"},"homepage":"https://github.com/r-hannuschka/ngx-fileupload#readme","main":"bundles/r-hannuschka-ngx-fileupload.umd.js","module":"fesm5/r-hannuschka-ngx-fileupload.js","es2015":"fesm2015/r-hannuschka-ngx-fileupload.js","esm5":"esm5/r-hannuschka-ngx-fileupload.js","esm2015":"esm2015/r-hannuschka-ngx-fileupload.js","fesm5":"fesm5/r-hannuschka-ngx-fileupload.js","fesm2015":"fesm2015/r-hannuschka-ngx-fileupload.js","typings":"r-hannuschka-ngx-fileupload.d.ts","metadata":"r-hannuschka-ngx-fileupload.metadata.json","sideEffects":false,"dependencies":{"tslib":"^1.9.0"},"readme":"# NgxFileupload\r\n\r\n[![npm](https://img.shields.io/npm/v/@r-hannuschka/ngx-fileupload.svg?maxAge=2592000?style=plastic)](https://www.npmjs.com/package/@r-hannuschka/ngx-fileupload)\r\n\r\nAngular 8+ async fileupload with progressbar\r\n\r\n![ngx-fileupload.gif](https://raw.githubusercontent.com/r-hannuschka/ngx-fileupload/master/docs/ngx-fileupload.gif)\r\n___\r\n\r\n- [NgxFileupload](#NgxFileupload)\r\n  - [Installation](#Installation)\r\n  - [Usage](#Usage)\r\n  - [Examples](#Examples)\r\n    - [Custom Item Template](#Custom-Item-Template)\r\n    - [Full Customize](#Full-Customize)\r\n    - [Validators](#Validators)\r\n  - [Development](#Development)\r\n  - [Changelog](#Changelog)\r\n  - [@Progress](#Progress)\r\n  - [Author](#Author)\r\n  - [Other Modules](#Other-Modules)\r\n\r\n## Installation\r\n\r\nnpm\r\n\r\n```bash\r\nnpm i --save @r-hannuschka/ngx-fileupload angular-pipes\r\n```\r\n\r\n## Usage\r\n\r\napp.module.ts\r\n\r\n```js\r\nimport { NgModule, Injectable } from '@angular/core';\r\nimport { NgxFileuploadModule } from 'lib/public-api';\r\n\r\n@NgModule({\r\n    imports: [\r\n        ...\r\n        NgxFileuploadModule\r\n    ],\r\n    exports: [...],\r\n    declarations: [...]\r\n})\r\nexport class AppModule { }\r\n```\r\n\r\napp.component.html\r\n\r\n```html\r\n<ngx-fileupload [url]=\"<URL>\"></ngx-fileupload>\r\n```\r\n\r\n## Examples\r\n\r\n### Custom Item Template\r\n\r\nif a custom template will be added, it will receive UploadTemplateContext object which contains:  \r\n\r\n- *current upload informations: data:UploadData*\r\n\r\n| name | type | description | values |\r\n|---|---|---|---|\r\n| hasError | boolean | flag upload got error | |\r\n| isSuccess | boolean | upload was successfully |\r\n| isValid | boolean | current upload is valid |\r\n| message | string | current error / validation or success message|\r\n| name | string | name of file | |\r\n| progress | number | progress in percent | |\r\n| size | number | size of file | |\r\n| state | string | current state of upload | canceled, queued, progress, error,  uploaded, invalid|\r\n| uploaded | number | uploaded size in byte | |\r\n\r\n```html\r\n<ng-template #customItemTemplate let-uploadData=\"data\" ...>\r\n    <h2>{{uploadData.name}}</h2>\r\n    <div>Progress: {{uplodaData.uploaded}}/{{uploadData.size}}\r\n</ng-template>\r\n```\r\n\r\n- *control to start/stop/retry a download: ctrl:UploadControl*\r\n\r\n```html\r\n<ng-template #customItemTemplate ... let-uploadCtrl=\"ctrl\">\r\n    <!-- retry failed upload -->\r\n    <button type=\"button\" *ngIf=\"data.hasError\" (click)=\"uploadCtrl.retry()\">retry</button>\r\n\r\n    <!-- start current upload -->\r\n    <button type=\"button\" *ngIf=\"!data.hasError\" (click)=\"uploadCtrl.start()\">start</button>\r\n\r\n    <!-- cancel / remove current upload -->\r\n    <button type=\"button\" (click)=\"uploadCtrl.cancel()\">stop</button>\r\n</ng-template>\r\n```\r\n\r\nsimply define a *ng-template* tag and pass it to *ngx-fileupload* component\r\n\r\n```html\r\n<ng-template #customItemTemplate let-uploadData=\"data\" let-uploadCtrl=\"ctrl\">\r\n    ...\r\n</ng-template>\r\n\r\n<ngx-fileupload [url]=\"<URL>\" [itemTemplate]='customItemTemplate'></ngx-fileupload>\r\n```\r\n\r\n### Full Customize\r\n\r\ncool.component.ts\r\n\r\n```ts\r\nimport { FileUpload } from '../services/file-upload';\r\nimport { UploadModel, UploadState } from '../model/upload';\r\n\r\n@Component({\r\n    selector: 'my-cool-component',\r\n    styleUrls: ['./cool.component.scss'],\r\n    templateUrl: 'cool.component.html',\r\n})\r\nexport class MyCoolComponent {\r\n\r\n    /**\r\n     * all file uploades, which will be added to upload-item view\r\n     */\r\n    public uploads: FileUpload[] = [];\r\n\r\n    /**\r\n     * new uploads added with drag and drop\r\n     */\r\n    public onUploadsAdd( uploads: FileUpload[] ) {\r\n        this.uploads.push( ...uploads );\r\n    }\r\n\r\n    /**\r\n     * handle upload change event,\r\n     * if upload has been completed or canceled remove it from list\r\n     */\r\n    public handleUploadChange( upload: UploadModel, fileUpload: FileUpload ) {\r\n        let completed = upload.state === UploadState.CANCELED;\r\n        completed = completed || upload.state === UploadState.UPLOADED;\r\n\r\n        if ( completed ) {\r\n            const idx = this.uploads.indexOf(fileUpload);\r\n            this.uploads.splice( idx, 1 );\r\n        }\r\n    }\r\n}\r\n```\r\n\r\ncool.component.html\r\n\r\n```html\r\n<div class=\"file-upload--list\">\r\n    <!--\r\n        list to show all current files which should uploaded\r\n        pass upload container (item) to file upload view ngx-fileupload-item\r\n        to register on upload changes\r\n\r\n        optional: add custom template\r\n    -->\r\n    <ng-container *ngFor=\"let item of uploads\">\r\n        <ngx-fileupload-item\r\n            [upload]=\"item\"\r\n            [template]=\"itemTemplate\"\r\n            (changed)=\"handleUploadChange($event, item)\">\r\n        </ngx-fileupload-item>\r\n    </ng-container>\r\n</div>\r\n<!--\r\n    add directive ngxFileUpload to any container, if you drop files here\r\n    it will generate a file upload container for each file wich has\r\n    been added\r\n-->\r\n<div class=\"fileupload dropzone\"\r\n    [ngxFileupload]=\"url\"\r\n    (add)=\"onUploadsAdd($event)\"\r\n    #myNgxFileuploadRef='ngxFileuploadRef'>\r\n</div>\r\n\r\n<!-- button, on click use myNgxFileuploadRef to upload all files at once -->\r\n<button class=\"btn-upload\" type=\"button\" (click)=\"myNgxFileuploadRef.uploadAll()\">Upload</button>\r\n```\r\n\r\n### Validators\r\n\r\n*validators/max-size.validator.ts*/\r\n\r\n```ts\r\nimport {\r\n    NgxFileuploadValidation,\r\n    ValidationResult\r\n} from '@r-hannuschka/ngx-fileupload/public-api';\r\n\r\nexport class MaxUploadSizeValidator implements NgxFileuploadValidator {\r\n\r\n    /**\r\n     * validate max upload size to 1MB\r\n     */\r\n    public validate(file: File): ValidationResult {\r\n        const valid = (file.size / (1024 * 1024)) < 1;\r\n        const error = !valid ? 'Max file size 1MByte' : '';\r\n        return { valid, error };\r\n    }\r\n}\r\n```\r\n\r\n*app-upload.module.ts*\r\n\r\nWe create a own module for validation to keep main module clean, you can add as many validators you want if needed. If no Validators are passed all files will uploaded to server.\r\n\r\n```ts\r\nimport { NgModule } from '@angular/core';\r\nimport {\r\n    NgxFileuploadModule,\r\n    NGX_FILEUPLOAD_VALIDATOR \r\n} from '@r-hannuschka/ngx-fileupload/public-api';\r\nimport { MaxUploadSizeValidator } from './validators/max-size.validator';\r\n\r\n@NgModule({\r\n    exports: [ NgxFileuploadModule ],\r\n    imports: [ NgxFileuploadModule ],\r\n    providers: [{\r\n        provide: NGX_FILEUPLOAD_VALIDATOR,\r\n        useClass: MaxUploadSizeValidator,\r\n        multi: true\r\n    }, {\r\n        provide: NGX_FILEUPLOAD_VALIDATOR,\r\n        useClass: SomeOtherValidator,\r\n        multi: true\r\n    }],\r\n})\r\nexport class AppUploadModule { }\r\n```\r\n\r\n*app.module.ts*\r\n\r\nsimply import AppUploadModule into main module\r\n\r\n```ts\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { NgModule } from '@angular/core';\r\nimport { AppComponent } from './app.component';\r\nimport { AppUploadModule } from './app-upload.module';\r\n\r\n@NgModule( {\r\n    declarations: [\r\n        AppComponent\r\n    ],\r\n    imports: [\r\n        AppUploadModule,\r\n        BrowserModule\r\n    ],\r\n    bootstrap: [AppComponent],\r\n} )\r\nexport class AppModule { }\r\n```\r\n\r\n\r\n\r\n## Development\r\n\r\n```bash\r\ngit clone https://github.com/r-hannuschka/ngx-fileupload\r\ncd ngx-fileupload\\src\r\nnpm i\r\n\r\n# run simple express server for minimized rest api\r\n# listen on localhost:3000\r\nnode src\\server\\upload-server.js\r\n\r\n# start webpack server (angular app)\r\n# listen on localhost:4200\r\nnpm start\r\n```\r\n\r\n## Changelog\r\n\r\n**0.3.0**  \r\n\r\n  - __breaking changes__:  \r\n    - remove *UploadTemplateContext.data.error*, if an error occurs  \r\n    it is written now to *UploadTemplateContext.data.message*\r\n\r\n  - __features__\r\n    - validation providers could now defined\r\n    - write upload response data to upload model\r\n  \r\n  - __other changes__\r\n    - show notifications for error / invalid / completed\r\n    - update scss / upload-item template\r\n\r\n**0.2.1**  \r\n\r\n- __bugfixes__\r\n  - fixed docs\r\n\r\n**0.2.0**  \r\n\r\n- __breaking changes__:  \r\n  - ngxFileUploadDirective, upload renamed to uploadAll, cancel renamed to cancelAll\r\n\r\n- __features__:\r\n  - on error, upload will not completed anymore instead a retry button will shown\r\n  - add UploadControl.retry(), if upload failed it could be uploaded\r\n\r\n  ```html\r\n  <!-- insert own retry button in custom template -->\r\n  <ng-template let-uploadData=\"data\" let-uploadCtrl=\"ctrl\">\r\n      <button *ngIf=\"data.hasError\" (click)=\"uploadCtrl.retry()\">retry</button>\r\n  </ng-template>\r\n  ```\r\n\r\n  - update item template, add new button upload (@see uploadCtrl.start())\r\n  - css changes\r\n  - add more documentaion\r\n\r\n- __bugfixes__\r\n  - ngxFileuploadDirective cancel(All) not working correctly\r\n\r\n## @Progress\r\n\r\n- theming\r\n- unit tests\r\n- e2e tests\r\n\r\n## Author\r\n\r\nRalf Hannuschka [Github](https://github.com/r-hannuschka)\r\n\r\n## Other Modules\r\n\r\n- [ngx-responsivemenu](https://github.com/r-hannuschka/ngx-responsivemenu)","readmeFilename":"README.md","_id":"@r-hannuschka/ngx-fileupload@0.4.0-beta.0","_nodeVersion":"10.14.1","_npmVersion":"6.9.0","dist":{"integrity":"sha512-1Vxoz2Dg7Ss0Q5ZZA0CW6oNQUwKfSP18XZJwgyutAAjx+vUwExQ7FEr87Cd6gM/+hHuoiAVlTSn29WmKGiRLOw==","shasum":"910af4a9102fe493b8ce03e3e6c2bc179ff1f917","tarball":"https://registry.npmjs.org/@r-hannuschka/ngx-fileupload/-/ngx-fileupload-0.4.0-beta.0.tgz","fileCount":41,"unpackedSize":661179,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdG6c3CRA9TVsSAnZWagAA5AAP/2J9ucknTZzhc3ee880Q\n5DaXT4582VRAT1twLBr6+opy8pZiXWsDa3+dbIiK4oejWOPHhhxzMOkoYYSZ\nCFWVGhBhShwSvel56cWa/RKuFQmlVSfW1YXW2SDT5h/mgniMPje33rafUdgg\ns3sz/GpAf9ZA2J1PThKbIixfki5Rc2vSK9G754gYSQaKBHihM3AsRlBVQszK\nPT6FB7hcF1ifk0GMkQt+gNksKqIbRG8cwBHFhQwlAo4oZVcBUCIaSHerj88X\nvFCF/Os24UwvSj1OB1bUxghBt2OCwPT2+hKhjRAxY0sAWIUWR42BY6vixuzY\naNJLs7I8vjabVeppwDmdumpTU9U5c5lwPBR8cRdibH8HQVi/Z8SdkKLFuPzF\n/4xvQG5x0E5noEqeH6x0DYjqCt7MUXx9bw6luxWXOa5j8lgRIGsYheyF8wC4\nzmHVUGUlx80OU1jKF3uIaVtHqQO/A/fkzGvRXDYuaqsXsu/Qnn8iGeGHmhXD\niTRlpvb267vlLMPn9dtQlGC2DCiuuXZRDhmM3Af85dXD/E/Ny9JmfXmNudJJ\n0ZXh6MG5u6OqBaUAu7OP0egI4JNW8bPGn3dmKVIa0+SYqGg51U9/5r2JW/Cr\nItuTdu2tnIYydwNgeIuN2y2YgFNsgqoMfreU9My0fMHK6TYBgCh67tTVmSQK\n5ndS\r\n=qgxx\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDYB+xUrVbUwBsphBI9qN/T2AnT8nP4ldcskU36i7wuzQIhAJTGQ7KYIKKsvBRIqENjNuEh75wzmossTVTB0GviCiyU"}]},"maintainers":[{"name":"r-hannuschka","email":"r.hannuschka@gmail.com"}],"_npmUser":{"name":"r-hannuschka","email":"r.hannuschka@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ngx-fileupload_0.4.0-beta.0_1562093366301_0.11659256605269674"},"_hasShrinkwrap":false},"0.4.0-beta.1":{"name":"@r-hannuschka/ngx-fileupload","version":"0.4.0-beta.1","description":"angular fileupload library","repository":{"url":"git+https://github.com/r-hannuschka/ngx-fileupload.git","type":"git"},"license":"MIT","keywords":["angular","file","upload","fileupload"],"peerDependencies":{"@angular/common":"^8.0.1","@angular/core":"^8.0.1","angular-pipes":"^9.0.2"},"author":{"name":"Ralf Hannuschka","url":"https://github.com/r-hannuschka"},"bugs":{"url":"https://github.com/r-hannuschka/ngx-fileupload/issues"},"homepage":"https://github.com/r-hannuschka/ngx-fileupload#readme","main":"bundles/r-hannuschka-ngx-fileupload.umd.js","module":"fesm5/r-hannuschka-ngx-fileupload.js","es2015":"fesm2015/r-hannuschka-ngx-fileupload.js","esm5":"esm5/r-hannuschka-ngx-fileupload.js","esm2015":"esm2015/r-hannuschka-ngx-fileupload.js","fesm5":"fesm5/r-hannuschka-ngx-fileupload.js","fesm2015":"fesm2015/r-hannuschka-ngx-fileupload.js","typings":"r-hannuschka-ngx-fileupload.d.ts","metadata":"r-hannuschka-ngx-fileupload.metadata.json","sideEffects":false,"dependencies":{"tslib":"^1.9.0"},"readme":"# NgxFileupload\r\n\r\n[![npm](https://img.shields.io/npm/v/@r-hannuschka/ngx-fileupload.svg?maxAge=2592000?style=plastic)](https://www.npmjs.com/package/@r-hannuschka/ngx-fileupload)\r\n\r\nAngular 8+ async fileupload with progressbar\r\n\r\n![ngx-fileupload.gif](https://raw.githubusercontent.com/r-hannuschka/ngx-fileupload/master/docs/ngx-fileupload.gif)\r\n___\r\n\r\n- [NgxFileupload](#NgxFileupload)\r\n  - [Installation](#Installation)\r\n  - [Usage](#Usage)\r\n  - [Examples](#Examples)\r\n    - [Custom Item Template](#Custom-Item-Template)\r\n    - [Full Customize](#Full-Customize)\r\n    - [Validators](#Validators)\r\n  - [Development](#Development)\r\n  - [Changelog](#Changelog)\r\n  - [@Progress](#Progress)\r\n  - [Author](#Author)\r\n  - [Other Modules](#Other-Modules)\r\n\r\n## Installation\r\n\r\nnpm\r\n\r\n```bash\r\nnpm i --save @r-hannuschka/ngx-fileupload angular-pipes\r\n```\r\n\r\n## Usage\r\n\r\napp.module.ts\r\n\r\n```js\r\nimport { NgModule, Injectable } from '@angular/core';\r\nimport { NgxFileuploadModule } from 'lib/public-api';\r\n\r\n@NgModule({\r\n    imports: [\r\n        ...\r\n        NgxFileuploadModule\r\n    ],\r\n    exports: [...],\r\n    declarations: [...]\r\n})\r\nexport class AppModule { }\r\n```\r\n\r\napp.component.html\r\n\r\n```html\r\n<ngx-fileupload [url]=\"<URL>\"></ngx-fileupload>\r\n```\r\n\r\n## Examples\r\n\r\n### Custom Item Template\r\n\r\nif a custom template will be added, it will receive UploadTemplateContext object which contains:  \r\n\r\n- *current upload informations: data:UploadData*\r\n\r\n| name | type | description | values |\r\n|---|---|---|---|\r\n| hasError | boolean | flag upload got error | |\r\n| isSuccess | boolean | upload was successfully |\r\n| isValid | boolean | current upload is valid |\r\n| message | string | current error / validation or success message|\r\n| name | string | name of file | |\r\n| progress | number | progress in percent | |\r\n| size | number | size of file | |\r\n| state | string | current state of upload | canceled, queued, progress, error,  uploaded, invalid|\r\n| uploaded | number | uploaded size in byte | |\r\n\r\n```html\r\n<ng-template #customItemTemplate let-uploadData=\"data\" ...>\r\n    <h2>{{uploadData.name}}</h2>\r\n    <div>Progress: {{uplodaData.uploaded}}/{{uploadData.size}}\r\n</ng-template>\r\n```\r\n\r\n- *control to start/stop/retry a download: ctrl:UploadControl*\r\n\r\n```html\r\n<ng-template #customItemTemplate ... let-uploadCtrl=\"ctrl\">\r\n    <!-- retry failed upload -->\r\n    <button type=\"button\" *ngIf=\"data.hasError\" (click)=\"uploadCtrl.retry()\">retry</button>\r\n\r\n    <!-- start current upload -->\r\n    <button type=\"button\" *ngIf=\"!data.hasError\" (click)=\"uploadCtrl.start()\">start</button>\r\n\r\n    <!-- cancel / remove current upload -->\r\n    <button type=\"button\" (click)=\"uploadCtrl.cancel()\">stop</button>\r\n</ng-template>\r\n```\r\n\r\nsimply define a *ng-template* tag and pass it to *ngx-fileupload* component\r\n\r\n```html\r\n<ng-template #customItemTemplate let-uploadData=\"data\" let-uploadCtrl=\"ctrl\">\r\n    ...\r\n</ng-template>\r\n\r\n<ngx-fileupload [url]=\"<URL>\" [itemTemplate]='customItemTemplate'></ngx-fileupload>\r\n```\r\n\r\n### Full Customize\r\n\r\ncool.component.ts\r\n\r\n```ts\r\nimport { FileUpload } from '../services/file-upload';\r\nimport { UploadModel, UploadState } from '../model/upload';\r\n\r\n@Component({\r\n    selector: 'my-cool-component',\r\n    styleUrls: ['./cool.component.scss'],\r\n    templateUrl: 'cool.component.html',\r\n})\r\nexport class MyCoolComponent {\r\n\r\n    /**\r\n     * all file uploades, which will be added to upload-item view\r\n     */\r\n    public uploads: FileUpload[] = [];\r\n\r\n    /**\r\n     * new uploads added with drag and drop\r\n     */\r\n    public onUploadsAdd( uploads: FileUpload[] ) {\r\n        this.uploads.push( ...uploads );\r\n    }\r\n\r\n    /**\r\n     * handle upload change event,\r\n     * if upload has been completed or canceled remove it from list\r\n     */\r\n    public handleUploadChange( upload: UploadModel, fileUpload: FileUpload ) {\r\n        let completed = upload.state === UploadState.CANCELED;\r\n        completed = completed || upload.state === UploadState.UPLOADED;\r\n\r\n        if ( completed ) {\r\n            const idx = this.uploads.indexOf(fileUpload);\r\n            this.uploads.splice( idx, 1 );\r\n        }\r\n    }\r\n}\r\n```\r\n\r\ncool.component.html\r\n\r\n```html\r\n<div class=\"file-upload--list\">\r\n    <!--\r\n        list to show all current files which should uploaded\r\n        pass upload container (item) to file upload view ngx-fileupload-item\r\n        to register on upload changes\r\n\r\n        optional: add custom template\r\n    -->\r\n    <ng-container *ngFor=\"let item of uploads\">\r\n        <ngx-fileupload-item\r\n            [upload]=\"item\"\r\n            [template]=\"itemTemplate\"\r\n            (changed)=\"handleUploadChange($event, item)\">\r\n        </ngx-fileupload-item>\r\n    </ng-container>\r\n</div>\r\n<!--\r\n    add directive ngxFileUpload to any container, if you drop files here\r\n    it will generate a file upload container for each file wich has\r\n    been added\r\n-->\r\n<div class=\"fileupload dropzone\"\r\n    [ngxFileupload]=\"url\"\r\n    (add)=\"onUploadsAdd($event)\"\r\n    #myNgxFileuploadRef='ngxFileuploadRef'>\r\n</div>\r\n\r\n<!-- button, on click use myNgxFileuploadRef to upload all files at once -->\r\n<button class=\"btn-upload\" type=\"button\" (click)=\"myNgxFileuploadRef.uploadAll()\">Upload</button>\r\n```\r\n\r\n### Validators\r\n\r\n*validators/max-size.validator.ts*/\r\n\r\n```ts\r\nimport {\r\n    NgxFileuploadValidation,\r\n    ValidationResult\r\n} from '@r-hannuschka/ngx-fileupload/public-api';\r\n\r\nexport class MaxUploadSizeValidator implements NgxFileuploadValidator {\r\n\r\n    /**\r\n     * validate max upload size to 1MB\r\n     */\r\n    public validate(file: File): ValidationResult {\r\n        const valid = (file.size / (1024 * 1024)) < 1;\r\n        const error = !valid ? 'Max file size 1MByte' : '';\r\n        return { valid, error };\r\n    }\r\n}\r\n```\r\n\r\n*app-upload.module.ts*\r\n\r\nWe create a own module for validation to keep main module clean, you can add as many validators you want if needed. If no Validators are passed all files will uploaded to server.\r\n\r\n```ts\r\nimport { NgModule } from '@angular/core';\r\nimport {\r\n    NgxFileuploadModule,\r\n    NGX_FILEUPLOAD_VALIDATOR \r\n} from '@r-hannuschka/ngx-fileupload/public-api';\r\nimport { MaxUploadSizeValidator } from './validators/max-size.validator';\r\n\r\n@NgModule({\r\n    exports: [ NgxFileuploadModule ],\r\n    imports: [ NgxFileuploadModule ],\r\n    providers: [{\r\n        provide: NGX_FILEUPLOAD_VALIDATOR,\r\n        useClass: MaxUploadSizeValidator,\r\n        multi: true\r\n    }, {\r\n        provide: NGX_FILEUPLOAD_VALIDATOR,\r\n        useClass: SomeOtherValidator,\r\n        multi: true\r\n    }],\r\n})\r\nexport class AppUploadModule { }\r\n```\r\n\r\n*app.module.ts*\r\n\r\nsimply import AppUploadModule into main module\r\n\r\n```ts\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { NgModule } from '@angular/core';\r\nimport { AppComponent } from './app.component';\r\nimport { AppUploadModule } from './app-upload.module';\r\n\r\n@NgModule( {\r\n    declarations: [\r\n        AppComponent\r\n    ],\r\n    imports: [\r\n        AppUploadModule,\r\n        BrowserModule\r\n    ],\r\n    bootstrap: [AppComponent],\r\n} )\r\nexport class AppModule { }\r\n```\r\n\r\n\r\n\r\n## Development\r\n\r\n```bash\r\ngit clone https://github.com/r-hannuschka/ngx-fileupload\r\ncd ngx-fileupload\\src\r\nnpm i\r\n\r\n# run simple express server for minimized rest api\r\n# listen on localhost:3000\r\nnode src\\server\\upload-server.js\r\n\r\n# start webpack server (angular app)\r\n# listen on localhost:4200\r\nnpm start\r\n```\r\n\r\n## Changelog\r\n\r\n**0.4.0-beta.1**\r\n\r\n  - __fixes__\r\n    - update changelog\r\n\r\n**0.4.0-beta.0**\r\n\r\n  - __features__\r\n    - add support on ngx-fileupload directive to open file select window, triggered on click\r\n    - add clean all action on ngx-fileupload directive to remove only broken downloads\r\n\r\n**0.3.0**  \r\n\r\n  - __breaking changes__:  \r\n    - remove *UploadTemplateContext.data.error*, if an error occurs  \r\n    it is written now to *UploadTemplateContext.data.message*\r\n\r\n  - __features__\r\n    - validation providers could now defined\r\n    - write upload response data to upload model\r\n  \r\n  - __other changes__\r\n    - show notifications for error / invalid / completed\r\n    - update scss / upload-item template\r\n\r\n**0.2.1**  \r\n\r\n- __bugfixes__\r\n  - fixed docs\r\n\r\n**0.2.0**  \r\n\r\n- __breaking changes__:  \r\n  - ngxFileUploadDirective, upload renamed to uploadAll, cancel renamed to cancelAll\r\n\r\n- __features__:\r\n  - on error, upload will not completed anymore instead a retry button will shown\r\n  - add UploadControl.retry(), if upload failed it could be uploaded\r\n\r\n  ```html\r\n  <!-- insert own retry button in custom template -->\r\n  <ng-template let-uploadData=\"data\" let-uploadCtrl=\"ctrl\">\r\n      <button *ngIf=\"data.hasError\" (click)=\"uploadCtrl.retry()\">retry</button>\r\n  </ng-template>\r\n  ```\r\n\r\n  - update item template, add new button upload (@see uploadCtrl.start())\r\n  - css changes\r\n  - add more documentaion\r\n\r\n- __bugfixes__\r\n  - ngxFileuploadDirective cancel(All) not working correctly\r\n\r\n## @Progress\r\n\r\n- theming\r\n- unit tests\r\n- e2e tests\r\n\r\n## Author\r\n\r\nRalf Hannuschka [Github](https://github.com/r-hannuschka)\r\n\r\n## Other Modules\r\n\r\n- [ngx-responsivemenu](https://github.com/r-hannuschka/ngx-responsivemenu)","readmeFilename":"README.md","_id":"@r-hannuschka/ngx-fileupload@0.4.0-beta.1","_nodeVersion":"10.14.1","_npmVersion":"6.9.0","dist":{"integrity":"sha512-C30SVHbpoPfb7rEwjW/g74vSF87ssOrKbGlyG6tcuj6kJ1fs+Xrrjt869tTLlLagxur+rS8r0eFNR8T4DjzfKg==","shasum":"462dc03fb4e07e0cf0db286d0acec7c6c9b8424f","tarball":"https://registry.npmjs.org/@r-hannuschka/ngx-fileupload/-/ngx-fileupload-0.4.0-beta.1.tgz","fileCount":41,"unpackedSize":661462,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdG6kOCRA9TVsSAnZWagAAdggP/julEg2KOWwAkLtPFxAa\nItUHLDhaoPVh9wTzFJVuV3adqRf/owzLMwON5BqMtqda38JoPsVUuUcBPXJ5\n1fs9zv/ZrHHk9VSoFuUJcC2oKbqejIAt9JNxldpsK+AwndP7jKci/fI1I8dJ\nSY+jS2BYUkW2Kpy6lCBnDZf6LYsSN7W2tW77jZi4K0mc+Alw2pF/pWjWfz0A\n4RPVLfAlZnLce2cHsJofbtKD6TYUBSzNN6Jw8lA3VST8+6+/0lULeEkp+dn2\n0nYHLS3Gyij0wlumaQw8vFiW45AS2DZbX5C8Ed1EBt3YK76ItgOv5kpG5EE2\nGeY6cGSsbrJNA+hSG4Yo88kpDocmSwLGcz0YbWlDLAv0mnGyDTA6jShAEbpM\n58dO1z9t2MlKr9E3jC5grsX0gv0R1Vg5DRlQqlt2aS7Hs8EM/CQF30kNMOjm\n8whpZK378wyyjYGG9BXVFDJM9DSVN9IxFIN+QOdRt+ZS9RqFLlCMWbT9qJOc\n7JnhsOuPEMkyfenlKyzp8/AQGqcYQZSqvLjqqOYz/ea68iUw2waFIQ6hKPtI\n4sleCj6EDeTmG45eXP6FVO7KBpff4UlvidL+whE09JIvKcj1QOVOhhfr09CS\nQhIhv0iMr0jE4qZ3QlhOuibYagK04IiV/7nSt1lJi5aOSNtnciNQ5KXmBBbN\nRKaI\r\n=XtAp\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCSZYnNVOtxkTiiDOGqQMqadMDrCEpyfjkG/kMwxm0AxAIhAJgM1VCIal9qpAs1A28jo7sr1sL9JIqHJuV+5U3PU1ir"}]},"maintainers":[{"name":"r-hannuschka","email":"r.hannuschka@gmail.com"}],"_npmUser":{"name":"r-hannuschka","email":"r.hannuschka@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ngx-fileupload_0.4.0-beta.1_1562093837704_0.14459280904890726"},"_hasShrinkwrap":false},"0.4.0-beta.2":{"name":"@r-hannuschka/ngx-fileupload","version":"0.4.0-beta.2","description":"angular fileupload library","repository":{"url":"git+https://github.com/r-hannuschka/ngx-fileupload.git","type":"git"},"license":"MIT","keywords":["angular","file","upload","fileupload"],"peerDependencies":{"@angular/common":"^8.0.1","@angular/core":"^8.0.1","angular-pipes":"^9.0.2"},"author":{"name":"Ralf Hannuschka","url":"https://github.com/r-hannuschka"},"bugs":{"url":"https://github.com/r-hannuschka/ngx-fileupload/issues"},"homepage":"https://github.com/r-hannuschka/ngx-fileupload#readme","main":"bundles/r-hannuschka-ngx-fileupload.umd.js","module":"fesm5/r-hannuschka-ngx-fileupload.js","es2015":"fesm2015/r-hannuschka-ngx-fileupload.js","esm5":"esm5/r-hannuschka-ngx-fileupload.js","esm2015":"esm2015/r-hannuschka-ngx-fileupload.js","fesm5":"fesm5/r-hannuschka-ngx-fileupload.js","fesm2015":"fesm2015/r-hannuschka-ngx-fileupload.js","typings":"r-hannuschka-ngx-fileupload.d.ts","metadata":"r-hannuschka-ngx-fileupload.metadata.json","sideEffects":false,"dependencies":{"tslib":"^1.9.0"},"readme":"# NgxFileUpload\r\n\r\n[![npm](https://img.shields.io/npm/v/@r-hannuschka/ngx-fileupload.svg?maxAge=2592000?style=plastic)](https://www.npmjs.com/package/@r-hannuschka/ngx-fileupload)\r\n\r\nAngular 8+ async fileupload with progressbar\r\n\r\n![ngx-fileupload.gif](https://raw.githubusercontent.com/r-hannuschka/ngx-fileupload/master/docs/ngx-fileupload.gif)\r\n___\r\n\r\n- [NgxFileUpload](#NgxFileUpload)\r\n  - [Installation](#Installation)\r\n  - [Usage](#Usage)\r\n  - [Examples](#Examples)\r\n    - [Custom Item Template](#Custom-Item-Template)\r\n    - [Full Customize](#Full-Customize)\r\n    - [Validators](#Validators)\r\n  - [Development](#Development)\r\n  - [Changelog](#Changelog)\r\n  - [@Progress](#Progress)\r\n  - [Author](#Author)\r\n  - [Other Modules](#Other-Modules)\r\n\r\n## Installation\r\n\r\nnpm\r\n\r\n```bash\r\nnpm i --save @r-hannuschka/ngx-fileupload angular-pipes\r\n```\r\n\r\n## Usage\r\n\r\napp.module.ts\r\n\r\n```js\r\nimport { NgModule, Injectable } from '@angular/core';\r\nimport { NgxFileUploadModule } from 'lib/public-api';\r\n\r\n@NgModule({\r\n    imports: [\r\n        ...\r\n        NgxFileUploadModule\r\n    ],\r\n    exports: [...],\r\n    declarations: [...]\r\n})\r\nexport class AppModule { }\r\n```\r\n\r\napp.component.html\r\n\r\n```html\r\n<ngx-fileupload [url]=\"<URL>\"></ngx-fileupload>\r\n```\r\n\r\n## Examples\r\n\r\n### Custom Item Template\r\n\r\nif a custom template will be added, it will receive UploadTemplateContext object which contains:  \r\n\r\n- *current upload informations: data:UploadData*\r\n\r\n| name | type | description | values |\r\n|---|---|---|---|\r\n| hasError | boolean | flag upload got error | |\r\n| isSuccess | boolean | upload was successfully |\r\n| isValid | boolean | current upload is valid |\r\n| message | string | current error / validation or success message|\r\n| name | string | name of file | |\r\n| progress | number | progress in percent | |\r\n| state | string | current state of upload | canceled, queued, progress, error,  uploaded, invalid|\r\n| size | number | size of file | |\r\n| uploaded | number | uploaded size in byte | |\r\n\r\n```html\r\n<ng-template #customItemTemplate let-uploadData=\"data\" ...>\r\n    <h2>{{uploadData.name}}</h2>\r\n    <div>Progress: {{uplodaData.uploaded}}/{{uploadData.size}}\r\n</ng-template>\r\n```\r\n\r\n- *control to start/stop/retry a download: ctrl:UploadControl*\r\n\r\n```html\r\n<ng-template #customItemTemplate ... let-uploadCtrl=\"ctrl\">\r\n    <!-- retry failed upload -->\r\n    <button type=\"button\" *ngIf=\"data.hasError\" (click)=\"uploadCtrl.retry()\">retry</button>\r\n\r\n    <!-- start current upload -->\r\n    <button type=\"button\" *ngIf=\"!data.hasError\" (click)=\"uploadCtrl.start()\">start</button>\r\n\r\n    <!-- cancel / remove current upload -->\r\n    <button type=\"button\" (click)=\"uploadCtrl.cancel()\">stop</button>\r\n</ng-template>\r\n```\r\n\r\nsimply define a *ng-template* tag and pass it to *ngx-fileupload* component\r\n\r\n```html\r\n<ng-template #customItemTemplate let-uploadData=\"data\" let-uploadCtrl=\"ctrl\">\r\n    ...\r\n</ng-template>\r\n\r\n<ngx-fileupload [url]=\"<URL>\" [itemTemplate]='customItemTemplate'></ngx-fileupload>\r\n```\r\n\r\n### Full Customize\r\n\r\ncool.component.ts\r\n\r\n```ts\r\nimport { FileUpload } from '../services/file-upload';\r\nimport { UploadModel, UploadState } from '../model/upload';\r\n\r\n@Component({\r\n    selector: 'my-cool-component',\r\n    styleUrls: ['./cool.component.scss'],\r\n    templateUrl: 'cool.component.html',\r\n})\r\nexport class MyCoolComponent {\r\n\r\n    /**\r\n     * all file uploades, which will be added to upload-item view\r\n     */\r\n    public uploads: FileUpload[] = [];\r\n\r\n    /**\r\n     * new uploads added with drag and drop\r\n     */\r\n    public onUploadsAdd( uploads: FileUpload[] ) {\r\n        this.uploads.push( ...uploads );\r\n    }\r\n\r\n    /**\r\n     * handle upload change event,\r\n     * if upload has been completed or canceled remove it from list\r\n     */\r\n    public handleUploadChange( upload: UploadModel, fileUpload: FileUpload ) {\r\n        let completed = upload.state === UploadState.CANCELED;\r\n        completed = completed || upload.state === UploadState.UPLOADED;\r\n\r\n        if ( completed ) {\r\n            const idx = this.uploads.indexOf(fileUpload);\r\n            this.uploads.splice( idx, 1 );\r\n        }\r\n    }\r\n}\r\n```\r\n\r\ncool.component.html\r\n\r\n```html\r\n<div class=\"file-upload--list\">\r\n    <!--\r\n        list to show all current files which should uploaded\r\n        pass upload container (item) to file upload view ngx-fileupload-item\r\n        to register on upload changes\r\n\r\n        optional: add custom template\r\n    -->\r\n    <ng-container *ngFor=\"let item of uploads\">\r\n        <ngx-fileupload-item\r\n            [upload]=\"item\"\r\n            [template]=\"itemTemplate\"\r\n            (changed)=\"handleUploadChange($event, item)\">\r\n        </ngx-fileupload-item>\r\n    </ng-container>\r\n</div>\r\n<!--\r\n    add directive ngxFileUpload to any container, if you drop files here\r\n    it will generate a file upload container for each file wich has\r\n    been added\r\n-->\r\n<div class=\"fileupload dropzone\"\r\n    [ngxFileUpload]=\"url\"\r\n    (add)=\"onUploadsAdd($event)\"\r\n    #myNgxFileUploadRef='ngxFileUploadRef'>\r\n</div>\r\n\r\n<!-- button, on click use myNgxFileUploadRef to upload all files at once -->\r\n<button class=\"btn-upload\" type=\"button\" (click)=\"myNgxFileUploadRef.uploadAll()\">Upload</button>\r\n```\r\n\r\n### Validators\r\n\r\n*validators/max-size.validator.ts*/\r\n\r\n```ts\r\nimport {\r\n    NgxFileUploadValidation,\r\n    ValidationResult\r\n} from '@r-hannuschka/ngx-fileupload/public-api';\r\n\r\nexport class MaxUploadSizeValidator implements NgxFileUploadValidator {\r\n\r\n    /**\r\n     * validate max upload size to 1MB\r\n     */\r\n    public validate(file: File): ValidationResult {\r\n        const valid = (file.size / (1024 * 1024)) < 1;\r\n        const error = !valid ? 'Max file size 1MByte' : '';\r\n        return { valid, error };\r\n    }\r\n}\r\n```\r\n\r\n*app-upload.module.ts*\r\n\r\nWe create a own module for validation to keep main module clean, you can add as many validators you want if needed. If no Validators are passed all files will uploaded to server.\r\n\r\n```ts\r\nimport { NgModule } from '@angular/core';\r\nimport {\r\n    NgxFileUploadModule,\r\n    NGX_FILEUPLOAD_VALIDATOR\r\n} from '@r-hannuschka/ngx-fileupload/public-api';\r\nimport { MaxUploadSizeValidator } from './validators/max-size.validator';\r\n\r\n@NgModule({\r\n    exports: [ NgxFileUploadModule ],\r\n    imports: [ NgxFileUploadModule ],\r\n    providers: [{\r\n        provide: NGX_FILEUPLOAD_VALIDATOR,\r\n        useClass: MaxUploadSizeValidator,\r\n        multi: true\r\n    }, {\r\n        provide: NGX_FILEUPLOAD_VALIDATOR,\r\n        useClass: SomeOtherValidator,\r\n        multi: true\r\n    }],\r\n})\r\nexport class AppUploadModule { }\r\n```\r\n\r\n*app.module.ts*\r\n\r\nsimply import AppUploadModule into main module\r\n\r\n```ts\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { NgModule } from '@angular/core';\r\nimport { AppComponent } from './app.component';\r\nimport { AppUploadModule } from './app-upload.module';\r\n\r\n@NgModule( {\r\n    declarations: [\r\n        AppComponent\r\n    ],\r\n    imports: [\r\n        AppUploadModule,\r\n        BrowserModule\r\n    ],\r\n    bootstrap: [AppComponent],\r\n} )\r\nexport class AppModule { }\r\n```\r\n\r\n\r\n\r\n## Development\r\n\r\n```bash\r\ngit clone https://github.com/r-hannuschka/ngx-fileupload\r\ncd ngx-fileupload\\src\r\nnpm i\r\n\r\n# run simple express server for minimized rest api\r\n# listen on localhost:3000\r\nnode src\\server\\upload-server.js\r\n\r\n# start webpack server (angular app)\r\n# listen on localhost:4200\r\nnpm start\r\n```\r\n\r\n## Changelog\r\n\r\n**0.4.0-beta.2**\r\n\r\n  - __breaking changes__:\r\n    - change spelling NgxFileupload... to NgxFileUpload...\r\n    - NgxFileUploadDirective is now exported as ngxFileUploadRef (before ngxFileuploadRef)\r\n\r\n  - __fixes__:  \r\n    - stop all click events from items, to ensure we dont affect any other parent component\r\n\r\n**0.4.0-beta.1**\r\n\r\n  - __fixes__\r\n    - update changelog\r\n\r\n**0.4.0-beta.0**\r\n\r\n  - __features__\r\n    - add support on ngx-fileupload directive to open file select window, triggered on click\r\n    - add clean all action on ngx-fileupload directive to remove only broken downloads\r\n\r\n**0.3.0**  \r\n\r\n  - __breaking changes__:  \r\n    - remove *UploadTemplateContext.data.error*, if an error occurs  \r\n    it is written now to *UploadTemplateContext.data.message*\r\n\r\n  - __features__\r\n    - validation providers could now defined\r\n    - write upload response data to upload model\r\n  \r\n  - __other changes__\r\n    - show notifications for error / invalid / completed\r\n    - update scss / upload-item template\r\n\r\n**0.2.1**  \r\n\r\n- __bugfixes__\r\n  - fixed docs\r\n\r\n**0.2.0**  \r\n\r\n- __breaking changes__:  \r\n  - ngxFileUploadDirective, upload renamed to uploadAll, cancel renamed to cancelAll\r\n\r\n- __features__:\r\n  - on error, upload will not completed anymore instead a retry button will shown\r\n  - add UploadControl.retry(), if upload failed it could be uploaded\r\n\r\n  ```html\r\n  <!-- insert own retry button in custom template -->\r\n  <ng-template let-uploadData=\"data\" let-uploadCtrl=\"ctrl\">\r\n      <button *ngIf=\"data.hasError\" (click)=\"uploadCtrl.retry()\">retry</button>\r\n  </ng-template>\r\n  ```\r\n\r\n  - update item template, add new button upload (@see uploadCtrl.start())\r\n  - css changes\r\n  - add more documentaion\r\n\r\n- __bugfixes__\r\n  - ngxFileuploadDirective cancel(All) not working correctly\r\n\r\n## @Progress\r\n\r\n- theming\r\n- unit tests\r\n- e2e tests\r\n\r\n## Author\r\n\r\nRalf Hannuschka [Github](https://github.com/r-hannuschka)\r\n\r\n## Other Modules\r\n\r\n- [ngx-responsivemenu](https://github.com/r-hannuschka/ngx-responsivemenu)","readmeFilename":"README.md","_id":"@r-hannuschka/ngx-fileupload@0.4.0-beta.2","_nodeVersion":"10.14.1","_npmVersion":"6.9.0","dist":{"integrity":"sha512-b7VB8q+CcZkIHLa4cIb4kLmmnfco8F5EXdMOMWmZtEBQ3yOk8qO42S27mx0uJUqa+QkDLBY5tykLyseN41TcVg==","shasum":"80abb95c3ffd8fe09dabce6b43acff793e1cb40a","tarball":"https://registry.npmjs.org/@r-hannuschka/ngx-fileupload/-/ngx-fileupload-0.4.0-beta.2.tgz","fileCount":41,"unpackedSize":667311,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdG8FLCRA9TVsSAnZWagAALMoP/2PF50bsI79RUNwN6HZ/\n/Kl+vwnO4WKvI9INJ8y2YXfii3RGxucuwmdMFg1k/HemIW31fXja8xqJlSYa\ntGFQG6feW13D0aQYD+2CCxlH9+6zgyY/F5Fx2Q+oPHmJfsSkb23XfZYRN5ZP\ngWeYz/c12nX4hKFcpG/UMFY3MfVcPrkH4MwkzPGkfV0xECB8i8EXiVdQuk+N\nGSbZXA62wf2G2ril1WhYZvKywRC23C8rlxmtw1Ox8Q1IECsk8WoK8hVABIJ6\nMYgUptMRXHShujHDI8FbUgPDWyNx3JN9wjOQk6yHMhjPoDu0hqYP5hIqnyMl\n+Bpr6biQfM+CT6IIYuuI8ubE1lsAzaRDEm9RcYjYw4b2TTRFpPjYZNILup52\n2SlNH8ob7UW0PhXIy0TCCw3ME0AMLqSjQig0XteQOmMfukHr66miRDxgkAXm\ntigE9jRW9011MVFVHKGb6hzX1dEpv7eO/EVzPLm7nC8LB9krXxh68fvsEar1\noC08kmfYtSFzc6EEDkWtZbNAdOjIs1y/VHeymSvShCOkhsmFghKmXFTzQCec\nSF8UwLYgnCx/ffFVd5fBrZredSiOXxWsnFlMwE4zd/n02rHnoqUzWXfIQDqj\neeVAew4RVhN1UOQ+IlxeExdqQpw8tgrwy2kejmEFosWVF8HKxrAuKryV7g6w\n4ITN\r\n=d8wL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFhmRLXUKg2Na9BMQnAldwoKy5nfE+XBGGq6VQS6qzY1AiEA1skx6kzZRJw7fWLbH/vkxPs3xpiuY/yo398Pc1bzgjQ="}]},"maintainers":[{"name":"r-hannuschka","email":"r.hannuschka@gmail.com"}],"_npmUser":{"name":"r-hannuschka","email":"r.hannuschka@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ngx-fileupload_0.4.0-beta.2_1562100042653_0.2948867316499806"},"_hasShrinkwrap":false},"0.4.0":{"name":"@r-hannuschka/ngx-fileupload","version":"0.4.0","description":"angular fileupload library","repository":{"url":"git+https://github.com/r-hannuschka/ngx-fileupload.git","type":"git"},"license":"MIT","keywords":["angular","file","upload","fileupload"],"peerDependencies":{"@angular/common":"^8.0.1","@angular/core":"^8.0.1","angular-pipes":"^9.0.2"},"author":{"name":"Ralf Hannuschka","url":"https://github.com/r-hannuschka"},"bugs":{"url":"https://github.com/r-hannuschka/ngx-fileupload/issues"},"homepage":"https://github.com/r-hannuschka/ngx-fileupload#readme","main":"bundles/r-hannuschka-ngx-fileupload.umd.js","module":"fesm5/r-hannuschka-ngx-fileupload.js","es2015":"fesm2015/r-hannuschka-ngx-fileupload.js","esm5":"esm5/r-hannuschka-ngx-fileupload.js","esm2015":"esm2015/r-hannuschka-ngx-fileupload.js","fesm5":"fesm5/r-hannuschka-ngx-fileupload.js","fesm2015":"fesm2015/r-hannuschka-ngx-fileupload.js","typings":"r-hannuschka-ngx-fileupload.d.ts","metadata":"r-hannuschka-ngx-fileupload.metadata.json","sideEffects":false,"dependencies":{"tslib":"^1.9.0"},"_id":"@r-hannuschka/ngx-fileupload@0.4.0","_nodeVersion":"10.14.1","_npmVersion":"6.9.0","dist":{"integrity":"sha512-yCGSmCiefbrcto8xsB9G6FyCvXfUSIPszKxlafSfjbltViML5Ds3Cd9pxB+q9hej2NOSO5hU7XfCrDyaeHPFiw==","shasum":"5ac12aa025e2e94d89e59fe043481bd12a4dffb3","tarball":"https://registry.npmjs.org/@r-hannuschka/ngx-fileupload/-/ngx-fileupload-0.4.0.tgz","fileCount":41,"unpackedSize":775834,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdHNrbCRA9TVsSAnZWagAAd2MP/28M45e3TJnGrqOF/bu1\nfE/xAtVRZvhzCteucAhdlTX73p8JOihX9sfxv1QGEgj0j0hrqBawB58qtZp+\nSyYB3gayrEZ6ZCBHdrxmKR8YmUvg+k3Pal844gqCTxpLrJtAtD0/4ks2rJeq\ndd3NJSitrNbG3msoSLMJBjJwbfZwspVhm+1V20a0H/lEOIWsyOoUXh6W1Xlt\nSGeTLhlnTEQYk5R7kY9UKqcskhXpu5TYX2Wb93c3o552wMhHUxxPp/PA0HYd\nSA9bhhN0cfiDO8tGslo1o/llHpDcH9kWm9FBWhBqBGEPqSY56uMsUiV4IMeW\njwLPd8ozxcNuvAvSORufeVHS3olPnGZNtrYCPhD8mnlQx+XHyhcb6s+r/DeB\ndW5Vu2uUfrj23BSKLgq58ivbkLisMrqYXz+D9RFXUrrIdVCUckX0jBKBDzLl\nCxwiAGuAY/IjQKhTcJABD5qd8tvKoIX0UOVqurXLe8rclvKTtZHA0LLM/Iwt\neCWIDKAHXW7qLl9Anhyq+E+C3FYoWFvUgWDBRJhnHbEzTa0Mc0S6c3M0zABN\nKcpKu2eIrKM5VEYA8yUJF7N552dnLxydbvgpzRGkFrRDpu6qXAKqa4IR2Kpi\n5DfW6Zcv/QNux2NFP5wdJMB4un9rZnazgn2OOEBhsH32H5YWfUhbVmGFQPc7\nsG0c\r\n=ORDT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCG8PU+ylMr7ypP4AoEKn6NeomnFVL8YUApmjwoDwu2IwIhAM5Ukz+Hc7eHQsC4d6v+YMOeaOGLyBPq8C4XqAru0gpS"}]},"maintainers":[{"name":"r-hannuschka","email":"r.hannuschka@gmail.com"}],"_npmUser":{"name":"r-hannuschka","email":"r.hannuschka@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ngx-fileupload_0.4.0_1562172123181_0.2546277437363116"},"_hasShrinkwrap":false,"deprecated":"Package has been moved and is no longer maintained, use @ngx-file-upload/core and @ngx-file-upload/ui packages."},"0.5.0-beta.1":{"name":"@r-hannuschka/ngx-fileupload","version":"0.5.0-beta.1","description":"angular fileupload library","repository":{"url":"git+https://github.com/r-hannuschka/ngx-fileupload.git","type":"git"},"license":"MIT","keywords":["angular","file","upload","fileupload"],"peerDependencies":{"@angular/common":"^8.0.1","@angular/core":"^8.0.1","angular-pipes":"^9.0.2"},"author":{"name":"Ralf Hannuschka","url":"https://github.com/r-hannuschka"},"bugs":{"url":"https://github.com/r-hannuschka/ngx-fileupload/issues"},"homepage":"https://github.com/r-hannuschka/ngx-fileupload#readme","main":"bundles/r-hannuschka-ngx-fileupload.umd.js","module":"fesm5/r-hannuschka-ngx-fileupload.js","es2015":"fesm2015/r-hannuschka-ngx-fileupload.js","esm5":"esm5/r-hannuschka-ngx-fileupload.js","esm2015":"esm2015/r-hannuschka-ngx-fileupload.js","fesm5":"fesm5/r-hannuschka-ngx-fileupload.js","fesm2015":"fesm2015/r-hannuschka-ngx-fileupload.js","typings":"r-hannuschka-ngx-fileupload.d.ts","metadata":"r-hannuschka-ngx-fileupload.metadata.json","sideEffects":false,"dependencies":{"tslib":"^1.9.0"},"readme":"# NgxFileUpload\r\n\r\n[![npm](https://img.shields.io/npm/v/@r-hannuschka/ngx-fileupload.svg?maxAge=2592000?style=plastic)](https://www.npmjs.com/package/@r-hannuschka/ngx-fileupload)\r\n[![Codacy Badge](https://api.codacy.com/project/badge/Grade/dc2f1a553c31471a95184d397bf72eb3)](https://www.codacy.com/app/r-hannuschka/ngx-fileupload?utm_source=github.com&amp;utm_medium=referral&amp;utm_content=r-hannuschka/ngx-fileupload&amp;utm_campaign=Badge_Grade)\r\n\r\nAngular 8+ async fileupload with progressbar\r\n\r\n![ngx-fileupload.gif](https://raw.githubusercontent.com/r-hannuschka/ngx-fileupload/master/docs/ngx-fileupload.gif)\r\n___\r\n\r\n- [NgxFileUpload](#NgxFileUpload)\r\n  - [Installation](#Installation)\r\n  - [Usage](#Usage)\r\n  - [Examples](#Examples)\r\n    - [Custom Item Template](#Custom-Item-Template)\r\n    - [Full Customize](#Full-Customize)\r\n    - [Validators](#Validators)\r\n    - [Add Params / Headers to Upload](#Add-Params--Headers-to-Upload)\r\n  - [Development](#Development)\r\n  - [Credits](#Credits)\r\n  - [Author](#Author)\r\n  - [Other Modules](#Other-Modules)\r\n\r\n## Installation\r\n\r\nnpm\r\n\r\n```bash\r\nnpm i --save @r-hannuschka/ngx-fileupload angular-pipes\r\n```\r\n\r\n## Usage\r\n\r\napp.module.ts\r\n\r\n```js\r\nimport { NgModule, Injectable } from \"@angular/core\";\r\nimport { NgxFileUploadModule } from \"lib/public-api\";\r\n\r\n@NgModule({\r\n    imports: [\r\n        ...\r\n        NgxFileUploadModule\r\n    ],\r\n    exports: [...],\r\n    declarations: [...]\r\n})\r\nexport class AppModule { }\r\n```\r\n\r\napp.component.html\r\n\r\n```html\r\n<ngx-fileupload [url]=\"<URL>\"></ngx-fileupload>\r\n```\r\n\r\n## Examples\r\n\r\n### Custom Item Template\r\n\r\nif a custom template will be added, it will receive UploadTemplateContext object which contains:  \r\n\r\ndata:UploadData (current upload informations)\r\n\r\n| name | type | description | values |\r\n|---|---|---|---|\r\n| hasError | boolean | flag upload got error | |\r\n| isSuccess | boolean | upload was successfully |\r\n| isValid | boolean | current upload is valid |\r\n| message | string | current error / validation or success message|\r\n| name | string | name of file | |\r\n| progress | number | progress in percent | |\r\n| state | string | current state of upload | canceled, queued, progress, error,  uploaded, invalid|\r\n| size | number | size of file | |\r\n| uploaded | number | uploaded size in byte | |\r\n\r\n```html\r\n<ng-template #customItemTemplate let-uploadData=\"data\" ...>\r\n    <h2>{{uploadData.name}}</h2>\r\n    <div>Progress: {{uplodaData.uploaded}}/{{uploadData.size}}\r\n</ng-template>\r\n```\r\n\r\nctrl:UploadControl (start/stop/retry an upload)\r\n\r\n```html\r\n<ng-template #customItemTemplate ... let-uploadCtrl=\"ctrl\">\r\n    <!-- retry failed upload -->\r\n    <button type=\"button\" *ngIf=\"data.hasError\" (click)=\"uploadCtrl.retry()\">retry</button>\r\n\r\n    <!-- start current upload -->\r\n    <button type=\"button\" *ngIf=\"!data.hasError\" (click)=\"uploadCtrl.start()\">start</button>\r\n\r\n    <!-- cancel / remove current upload -->\r\n    <button type=\"button\" (click)=\"uploadCtrl.cancel()\">stop</button>\r\n</ng-template>\r\n```\r\n\r\nsimply define a *ng-template* tag and pass it to *ngx-fileupload* component\r\n\r\n```html\r\n<ng-template #customItemTemplate let-uploadData=\"data\" let-uploadCtrl=\"ctrl\">\r\n    ...\r\n</ng-template>\r\n\r\n<ngx-fileupload [url]=\"<URL>\" [itemTemplate]=\"customItemTemplate\"></ngx-fileupload>\r\n```\r\n\r\n___\r\n\r\n### Full Customize\r\n\r\nmy.component.ts\r\n\r\n```ts\r\nimport { FileUpload } from \"../services/file-upload\";\r\nimport { UploadModel, UploadState } from \"../model/upload\";\r\n\r\n@Component({\r\n    selector: \"my-component\",\r\n    styleUrls: [\"./my.component.scss\"],\r\n    templateUrl: \"my.component.html\",\r\n})\r\nexport class MyComponent {\r\n\r\n    /**\r\n     * all file uploades, which will be added to upload-item view\r\n     */\r\n    public uploads: FileUpload[] = [];\r\n\r\n    /**\r\n     * new uploads added with drag and drop\r\n     */\r\n    public onUploadsAdd( uploads: FileUpload[] ) {\r\n        this.uploads.push( ...uploads );\r\n    }\r\n\r\n    /**\r\n     * handle upload change event,\r\n     * if upload has been completed or canceled remove it from list\r\n     */\r\n    public handleUploadChange( upload: UploadModel, fileUpload: FileUpload ) {\r\n        let completed = upload.state === UploadState.CANCELED;\r\n        completed = completed || upload.state === UploadState.UPLOADED;\r\n\r\n        if ( completed ) {\r\n            const idx = this.uploads.indexOf(fileUpload);\r\n            this.uploads.splice( idx, 1 );\r\n        }\r\n    }\r\n}\r\n```\r\n\r\nmy.component.html\r\n\r\n```html\r\n<!-- \r\n    define custom item template, if we dont pass a template to \r\n    ngx-fileupload-item it will take default template as fallback\r\n-->\r\n<ng-template #itemTemplate let-uploadData=\"data\" let-uploadCtrl=\"ctrl\">\r\n\r\n    <div class=\"title\">\r\n        {{uploadData.name}}\r\n    </div>\r\n\r\n    <div class=\"actions\">\r\n        <button type=\"button\"\r\n            *ngIf=\"!uploadData.hasError\"\r\n            [disabled]=\"uploadData.invalid || uploadData.state !== 'queued'\"\r\n            (click)=\"uploadCtrl.start()\"\r\n        >\r\n            start\r\n        </button>\r\n        <button type=\"button\" (click)=\"uploadCtrl.cancel()\">\r\n            stop\r\n        </button>\r\n    </div>\r\n\r\n</ng-template>\r\n\r\n<!-- show all uploads -->\r\n<div class=\"file-upload--list\">\r\n    <ng-container *ngFor=\"let item of uploads\">\r\n        <ngx-fileupload-item\r\n            [upload]=\"item\"\r\n            [template]=\"itemTemplate\"\r\n            (changed)=\"handleUploadChange($event, item)\">\r\n        </ngx-fileupload-item>\r\n    </ng-container>\r\n</div>\r\n\r\n<!--\r\n    add directive ngxFileUpload to create new uploads if files get dropped here\r\n    or selected from file window.\r\n-->\r\n<div class=\"fileupload dropzone\"\r\n    [ngxFileUpload]=\"url\"\r\n    (add)=\"onUploadsAdd($event)\"\r\n    #myNgxFileUploadRef=\"ngxFileUploadRef\">\r\n\r\n    <span>\r\n        Drop Files or Click to add uploads.\r\n    </span>\r\n</div>\r\n\r\n<!-- button, on click use myNgxFileUploadRef to upload all files at once -->\r\n<button class=\"btn btn-upload\" type=\"button\" (click)=\"myNgxFileUploadRef.uploadAll()\">Upload</button>\r\n<button class=\"btn btn-clear\"  type=\"button\" (click)=\"myNgxFileUploadRef.cleanAll()\">Clean Up</button>\r\n<button class=\"btn btn-cancel\" type=\"button\" (click)=\"myNgxFileUploadRef.cancelAll()\">Cancel</button>\r\n```\r\n\r\n___\r\n\r\n### Validators\r\n\r\nvalidators/max-size.validator.ts\r\n\r\n```ts\r\nimport {\r\n    NgxFileUploadValidation,\r\n    ValidationResult\r\n} from \"@r-hannuschka/ngx-fileupload\";\r\n\r\nexport class MaxUploadSizeValidator implements NgxFileUploadValidator {\r\n\r\n    /**\r\n     * validate max upload size to 1MB\r\n     */\r\n    public validate(file: File): ValidationResult {\r\n        const valid = (file.size / (1024 * 1024)) < 1;\r\n        const error = !valid ? \"Max file size 1MByte\" : \"\";\r\n        return { valid, error };\r\n    }\r\n}\r\n```\r\n\r\napp-upload.module.ts\r\n\r\nWe create a own module for validation to keep main module clean, you can add as many validators you want if needed. If no Validators are passed all files will uploaded to server.\r\n\r\n```ts\r\nimport { NgModule } from \"@angular/core\";\r\nimport {\r\n    NgxFileUploadModule,\r\n    NGX_FILEUPLOAD_VALIDATOR\r\n} from \"@r-hannuschka/ngx-fileupload\";\r\nimport { MaxUploadSizeValidator } from \"./validators/max-size.validator\";\r\n\r\n@NgModule({\r\n    exports: [ NgxFileUploadModule ],\r\n    imports: [ NgxFileUploadModule ],\r\n    providers: [{\r\n        provide: NGX_FILEUPLOAD_VALIDATOR,\r\n        useClass: MaxUploadSizeValidator,\r\n        multi: true\r\n    }, {\r\n        provide: NGX_FILEUPLOAD_VALIDATOR,\r\n        useClass: SomeOtherValidator,\r\n        multi: true\r\n    }],\r\n})\r\nexport class AppUploadModule { }\r\n```\r\n\r\napp.module.ts\r\n\r\nsimply import AppUploadModule into main module\r\n\r\n```ts\r\nimport { BrowserModule } from \"@angular/platform-browser\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { AppComponent } from \"./app.component\";\r\nimport { AppUploadModule } from \"./app-upload.module\";\r\n\r\n@NgModule( {\r\n    declarations: [\r\n        AppComponent\r\n    ],\r\n    imports: [\r\n        AppUploadModule,\r\n        BrowserModule\r\n    ],\r\n    bootstrap: [AppComponent],\r\n} )\r\nexport class AppModule { }\r\n```\r\n\r\n___\r\n\r\n### Add Params / Headers to Upload\r\n\r\nTo add additional params / headers HTTP Interceptors should be used from angular to modify\r\nrequest.\r\n\r\nupload.interceptor.ts\r\n\r\n```ts\r\nimport { HttpInterceptor, HttpHandler, HttpRequest, HttpEvent } from \"@angular/common/http\";\r\nimport { Observable } from \"rxjs\";\r\n\r\nexport class UploadInterceptor implements HttpInterceptor {\r\n\r\n    public intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n        const needle = new RegExp(\"^/lib/upload\");\r\n        if (req.url.match(needle) && req.body.has(\"file\")) {\r\n            const fileName = req.body.get(\"file\").name;\r\n            const request: HttpRequest<any> = req.clone({\r\n                /** add additional params */\r\n                setParams: {\r\n                    \"fileName\": fileName,\r\n                }\r\n            });\r\n            return next.handle(request);\r\n        }\r\n        return next.handle(req);\r\n    }\r\n}\r\n```\r\n\r\napp-upload.module.ts\r\n\r\n```ts\r\nimport { NgModule } from \"@angular/core\";\r\nimport { HTTP_INTERCEPTORS } from \"@angular/common/http\";\r\nimport { NgxFileUploadModule } from \"@r-hannuschka/ngx-fileupload\";\r\n\r\n@NgModule({\r\n    exports: [ NgxFileUploadModule ],\r\n    imports: [ NgxFileUploadModule ],\r\n    providers: [{\r\n        // ... validators\r\n    }, {\r\n        provide: HTTP_INTERCEPTORS,\r\n        useClass: UploadInterceptor,\r\n        multi: true\r\n    }],\r\n})\r\nexport class AppUploadModule { }\r\n```\r\n\r\n___\r\n\r\n## Development\r\n\r\n```bash\r\ngit clone https://github.com/r-hannuschka/ngx-fileupload\r\ncd ngx-fileupload\\src\r\nnpm i\r\n\r\n# run simple express server for minimized rest api\r\n# listen on localhost:3000\r\nnode src\\server\\upload-server.js\r\n\r\n# start webpack server (angular app)\r\n# listen on localhost:4200\r\nnpm start\r\n```\r\n\r\n## Credits\r\n\r\nSpecial thanks for code reviews, great improvements and ideas to\r\n\r\n||||  \r\n|:-:|:-:|:-:|\r\n|[![alt Konrad Mattheis](https://avatars2.githubusercontent.com/u/1100969?s=60&v=4)](https://github.com/konne)<br />Konrad Mattheis| [<img src=\"https://avatars3.githubusercontent.com/u/17725886?s=60&v=4\" width=60 alt=\"Thomas Haenig\" />](https://avatars3.githubusercontent.com/u/17725886?s=60&v=4)<br />Thomas Haenig| [![alt Alexander Görlich](https://avatars0.githubusercontent.com/u/13659581?s=60&v=4)](https://github.com/AlexanderGoerlich)  <br />Alexander Görlich|\r\n\r\n## Author\r\n\r\nRalf Hannuschka [Github](https://github.com/r-hannuschka)\r\n\r\n## Other Modules\r\n\r\n- [ngx-responsivemenu](https://github.com/r-hannuschka/ngx-responsivemenu)\r\n","readmeFilename":"README.md","_id":"@r-hannuschka/ngx-fileupload@0.5.0-beta.1","_nodeVersion":"10.14.1","_npmVersion":"6.9.0","dist":{"integrity":"sha512-rNi8mx1inZ7l8evfQpfnfriaRrQZbYju+Rp2bv1hNG7XkmocmU0976Xizekifu/mBdiPnJRCP7loPEjW474Eog==","shasum":"4a47ca5ef3d731e5d9618cd990c6aa96bb872014","tarball":"https://registry.npmjs.org/@r-hannuschka/ngx-fileupload/-/ngx-fileupload-0.5.0-beta.1.tgz","fileCount":41,"unpackedSize":802797,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdHjk7CRA9TVsSAnZWagAAzvgP/jTSfpqR0d0LmUCCN/Wq\nZ1iU7gf4g1k357G+nV/y61whbvHagHbvjsAlDCjG9g/w1lMC+wStZ9TXfKG8\nFtuuaqg6V2AiPqSjqYzHO1dQ01zsE5xHJxeuQBeZNXuFzJp9NnyHnDIc2E1e\n3Mv/LzXMUGd6cuqncpC8lXx55yy0jDMYaqhLLIZT1Vlnie7YhJd/LpbPKmwI\n7D0AMv6S9UEWRb7f0FmQAEJwegK5EpPKHyB4oAbTczQ/Kb2H+nutIOR0dvH0\nANm5nULJiiukbQdSOJHGjKMTaIR4VgH0fvC9cX6DdHNC7Of/9URleJ5OZSdl\nEfIvyFcCZtMZe4gK+Gw0g2xXGW0z81GMdtNJUaJ+SOYc71i2vUImjMXX6kk/\ntHld42h5Fvm0XNjLLQJxn1iPHytO4CDxXckXePhD7aUxeyrUsJIAzMqQkIgE\nAoeZKxAiC77AXrh4nvUplu2uBNEhCH3ZgcUtGWi1UVu2DoNeAX4TTjYiQjn5\nbkgfP+dXyyePC1KN09khKlZ2eKYHlL6UZQt2HeRiKq5IocE/x0VP6POhoiDb\nRKPVzHHdOz5bLz0ILMpFGYoqI1k3N6A1tnC+xt2LCcg6KobTzLLvgEFJMT1d\n+uUOzBzT53eTX1GJIPYXbS87IVr9NwEszFwBlyRJt6Hjjnn5eE5lE+kxkw9b\nn2Zj\r\n=mbyT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCmC0IUoXYCVa1NUOq3HLFP48Z+DtNKCNUNlLUU997pWQIhAKcMOUn91D7Nw07od81YP/HZWtPYPHwY1ho2X1l1MJfR"}]},"maintainers":[{"name":"r-hannuschka","email":"r.hannuschka@gmail.com"}],"_npmUser":{"name":"r-hannuschka","email":"r.hannuschka@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ngx-fileupload_0.5.0-beta.1_1562261818843_0.3343233416375253"},"_hasShrinkwrap":false},"1.0.0":{"name":"@r-hannuschka/ngx-fileupload","version":"1.0.0","description":"angular fileupload library","repository":{"url":"git+https://github.com/r-hannuschka/ngx-fileupload.git","type":"git"},"license":"MIT","keywords":["ngx","angular 8","file","upload","fileupload","progressbar"],"peerDependencies":{"@angular/common":"^8.0.1","@angular/core":"^8.0.1","angular-pipes":"^9.0.2"},"author":{"name":"Ralf Hannuschka","url":"https://github.com/r-hannuschka"},"bugs":{"url":"https://github.com/r-hannuschka/ngx-fileupload/issues"},"homepage":"https://github.com/r-hannuschka/ngx-fileupload#readme","main":"bundles/r-hannuschka-ngx-fileupload.umd.js","module":"fesm5/r-hannuschka-ngx-fileupload.js","es2015":"fesm2015/r-hannuschka-ngx-fileupload.js","esm5":"esm5/r-hannuschka-ngx-fileupload.js","esm2015":"esm2015/r-hannuschka-ngx-fileupload.js","fesm5":"fesm5/r-hannuschka-ngx-fileupload.js","fesm2015":"fesm2015/r-hannuschka-ngx-fileupload.js","typings":"r-hannuschka-ngx-fileupload.d.ts","metadata":"r-hannuschka-ngx-fileupload.metadata.json","sideEffects":false,"dependencies":{"tslib":"^1.9.0"},"_id":"@r-hannuschka/ngx-fileupload@1.0.0","_nodeVersion":"10.14.1","_npmVersion":"6.9.0","dist":{"integrity":"sha512-xe2yfT/pur2Zlw0lxFL2VTuXF+iTbgnHYpNTERoCLE+CvGTd6UBXvlQdAqlk3mMa1cQjKcFsC1anfQ+e5WHUMw==","shasum":"5ffe8bc2777e579f4ab1ee75e1c71c92e5e58885","tarball":"https://registry.npmjs.org/@r-hannuschka/ngx-fileupload/-/ngx-fileupload-1.0.0.tgz","fileCount":41,"unpackedSize":816962,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdJHgkCRA9TVsSAnZWagAA4ScP/1wcbzF5l4wR6wSank62\nX6+10R4Y7Opj+l6wqXpDo7VKA0RVLRCvkm/0pVypM18l+NmlYp/lcU5Ot/Ar\n1IP9wSyScGpmo+Kgpwnk/42rZkl2iFMuQKNjsO2C8E3tng/43xhqlcbOS7uB\nk22cbxP4T+LCh7DNNc+9B+6jGRpOo5lqmDzUmnT3mOD9PI9h989Q0adhmUjT\n5/0Wb5PD/gSMRvCT9aYvOuq2XVE85g0VboAKCipA31G1GF3c9X2PAbTX9Y3M\n39SL2DFf6wIjolJK2C8sT7hB8nBVLd/7s/yYvqDq3LvJI2MZlotAEmQsNnvl\naWGLrnMStBqLvAbYTIM9USU7Iv0qr1Rm2Vk6o/oWPnPOM5CcP7LKacgZRmMM\nNKakYqP1s5738ogz+LRQ8FsFEwHOCIRaVnOR0ZGy6CBrQEKemcvDZX/um10q\nLfvrd7KtJ8iIybVPyCMOmzqE+siCaYcB23SqA0xwVxPbYAL8Mj7dUdRrNRFe\nmZrD2VtY8yRduan1oXSBZdk97Jk7R7bwlnuJLT+KKh6wrE6VMhWeMvNeUYkO\n4lSvBqdy2mjgdaIGTjv5RMsoo+i1NFG+89zeBhbtjwost1rDLPadlFfyh+Ka\nrcRk6hDt1JuCDxiiWUhiYabZGw0yX+Senl9wvSLGo+Vz70OlNSOlAgBCtqyy\nGQN3\r\n=rqmS\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDySqCxmf7J9lDUAmAJNFPb2PE6MiC5E1g1lS0mkYvQYwIgTH4Hm5Y1DeO5HO2wGHi2JmlJYNbGJb8EilzUiiYLEto="}]},"maintainers":[{"name":"r-hannuschka","email":"r.hannuschka@gmail.com"}],"_npmUser":{"name":"r-hannuschka","email":"r.hannuschka@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ngx-fileupload_1.0.0_1562671139674_0.5091060529765581"},"_hasShrinkwrap":false,"deprecated":"Package has been moved and is no longer maintained, use @ngx-file-upload/core and @ngx-file-upload/ui packages."},"1.0.1":{"name":"@r-hannuschka/ngx-fileupload","version":"1.0.1","description":"angular fileupload library","repository":{"url":"git+https://github.com/r-hannuschka/ngx-fileupload.git","type":"git"},"license":"MIT","keywords":["ngx","angular 8","file","upload","fileupload","progressbar"],"peerDependencies":{"@angular/common":"^8.0.1","@angular/core":"^8.0.1","angular-pipes":"^9.0.2"},"author":{"name":"Ralf Hannuschka","url":"https://github.com/r-hannuschka"},"bugs":{"url":"https://github.com/r-hannuschka/ngx-fileupload/issues"},"homepage":"https://github.com/r-hannuschka/ngx-fileupload#readme","main":"bundles/r-hannuschka-ngx-fileupload.umd.js","module":"fesm5/r-hannuschka-ngx-fileupload.js","es2015":"fesm2015/r-hannuschka-ngx-fileupload.js","esm5":"esm5/r-hannuschka-ngx-fileupload.js","esm2015":"esm2015/r-hannuschka-ngx-fileupload.js","fesm5":"fesm5/r-hannuschka-ngx-fileupload.js","fesm2015":"fesm2015/r-hannuschka-ngx-fileupload.js","typings":"r-hannuschka-ngx-fileupload.d.ts","metadata":"r-hannuschka-ngx-fileupload.metadata.json","sideEffects":false,"dependencies":{"tslib":"^1.9.0"},"_id":"@r-hannuschka/ngx-fileupload@1.0.1","_nodeVersion":"10.16.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-b3ewzwDALaU8GXRyOFWMNkBy/DIPDvBceoXEj5NjedLKKimDBi/DM3TzgxFWp3Vopj0PXoFX6X0H1TisTOzCRQ==","shasum":"f8e17869b73fc0be4d5549019ce971a7b399ab4c","tarball":"https://registry.npmjs.org/@r-hannuschka/ngx-fileupload/-/ngx-fileupload-1.0.1.tgz","fileCount":41,"unpackedSize":798136,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdJQcnCRA9TVsSAnZWagAA91IP/0/fBA8Rt3PJ/q4XgkS3\n67lPMlpYzd9aBCuLXyZVMsfHjyOR1WRWl5h33hgyPTyCe8EabcxFfuD2bypC\nNCkgLywKugrRupo7Wey0lcPKIyA4Gn02rX27XeB4bDBiFspOOe7LIHA3xN/d\nV4Tk1mU3NRPRvL8Dy/KqTvRl4YMHORjMEJ/PaqH0RbS890xoDvYUAUwyTRXW\nS+qdnH60guH26U3Q/A6iHnBbEybeOe6Kdjf8SQ2fFwHtnFVcfrcilvl4SYTi\nAbXnXdObNoS4J7M0be2uceEmXMJh97tx9vgrQmRGRyKwbzw2o1C2cHJdi0kc\nbw7mQV7dYr91XIivnaLK6nlyZIAqOhQVTQaHxth0tDhtcgXHEJYI7G/+6rPq\nA4W+4fI1xCLBaFV1e/eFUxNCuur21F0Sssa9di4HJDqliPLSPqDExT+Q6eTk\no52nw/+wkjGHSQMfSZgCWnI71V7MJ1WSJYjcD3AAQEtYwkk3q2lkwvYeDTZk\noGPl+RG9+We8tQHh/MdcPuotyz678XaDIKmKyn+7+DwAVfWoykQq5jlszk5a\nlKa7UpdxXOe6evluy5OmIdD9D1mGiPJ5pmKGddUrRHNvN/skabxCmnxnbKBe\nuPkYiZOTMKF1ccUkcUmE2sY1/FBUls+8pUVhKFVyO8j7GChTbdFtSJD5nL9f\npk2R\r\n=jbMo\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCTrFqRkgfePJipf918obv5w70FsDngoa8f6S940axgQAIhAJpt9ANi1We3yRJnB0E9bhy7TVNkXH5WoT/HYUt6kR4T"}]},"maintainers":[{"name":"r-hannuschka","email":"r.hannuschka@gmail.com"}],"_npmUser":{"name":"r-hannuschka","email":"r.hannuschka@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ngx-fileupload_1.0.1_1562707750675_0.4150964369401111"},"_hasShrinkwrap":false,"deprecated":"Package has been moved and is no longer maintained, use @ngx-file-upload/core and @ngx-file-upload/ui packages."},"1.0.2":{"name":"@r-hannuschka/ngx-fileupload","version":"1.0.2","description":"angular fileupload library","repository":{"url":"git+https://github.com/r-hannuschka/ngx-fileupload.git","type":"git"},"license":"MIT","keywords":["ngx","angular 8","file","upload","fileupload","progressbar"],"peerDependencies":{"@angular/common":"^8.0.1","@angular/core":"^8.0.1","angular-pipes":"^9.0.2"},"author":{"name":"Ralf Hannuschka","url":"https://github.com/r-hannuschka"},"bugs":{"url":"https://github.com/r-hannuschka/ngx-fileupload/issues"},"homepage":"https://github.com/r-hannuschka/ngx-fileupload#readme","main":"bundles/r-hannuschka-ngx-fileupload.umd.js","module":"fesm5/r-hannuschka-ngx-fileupload.js","es2015":"fesm2015/r-hannuschka-ngx-fileupload.js","esm5":"esm5/r-hannuschka-ngx-fileupload.js","esm2015":"esm2015/r-hannuschka-ngx-fileupload.js","fesm5":"fesm5/r-hannuschka-ngx-fileupload.js","fesm2015":"fesm2015/r-hannuschka-ngx-fileupload.js","typings":"r-hannuschka-ngx-fileupload.d.ts","metadata":"r-hannuschka-ngx-fileupload.metadata.json","sideEffects":false,"dependencies":{"tslib":"^1.9.0"},"_id":"@r-hannuschka/ngx-fileupload@1.0.2","_nodeVersion":"10.16.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-1JjSaITk2jadyDGN7gwqRC6G7J9TKFmypcxvl7WOGvWvyWbKnYYZOm/JQca5LztCWzYV2vZ7eNPUeUQryihXgw==","shasum":"c0b40aee591f4f79ecda944bbb8d78a48897bc1d","tarball":"https://registry.npmjs.org/@r-hannuschka/ngx-fileupload/-/ngx-fileupload-1.0.2.tgz","fileCount":41,"unpackedSize":848346,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdJ22NCRA9TVsSAnZWagAAB1QP/iHt8mEVMLzAw4GWMo3U\njtdBnNLMPpooTOS2iqCZvseo+azENlIxKxfdTYARxOk0Wmyjsem0n5awyYOx\nx8WVGI3i8OsH72zSkjHr79a5C4bYmVbqEmKrdBCJULtVriHET+/slegK/lrr\nuM2z55wMahyr4Z+rhh64yY9h4AVGxsHoDYX9IfFa8X2YDTXrbVeFFGsVhuuh\n1vn2pm2uPaxmhoAvodV6LJ1EugaFnCNHmhb+OK8z+QhpH7VQYgQagleHgDx7\n/GrzRiEGlS9+N+NxRA9gcyRKu5qKN8NtRdTEckNIgYewencnB5FR12eE9aRn\nl0RARipbiojhKqm5zXRw86xcb+EfBg2R4rXSZVbkybSQLKVLJBqsV8PCWnJu\nG7Wd+JJ4wzmMbwqkB12XnsNq1d8t7HCoHqxWemSCZvhibPqfYkY0QPuOq0FF\nHtHNDcqAvZp6CYz33nAWYXjWGr4EDWRo5gHNBBHPnIgFwOtiPxmyMqzvEFgO\nDqjAuSAkUCyksUZIfxx/7kVgS/CR8jevhrwUAJMplAZwiAHB36FwxgDwnlp6\nTjMNY4F+k5Wu4dGxX4MHXA8CzYfS1MA3RgOZaAfHQtJHbShRiWHvzZoGRApS\nokoDGwCck2MRi/7rG/Xw6XE5sjmCcDDGTvRS5cME/sexU3RyR9xyDa2VE9jt\nRzzq\r\n=9ni7\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEdN3XQB6a05l9aot6jyDfePNk1ioJ5GxUJFxNkvbjUyAiBUiljxNUYqURhY/9YflC0w3PlbWManzPPFCyYXxBFxAw=="}]},"maintainers":[{"name":"r-hannuschka","email":"r.hannuschka@gmail.com"}],"_npmUser":{"name":"r-hannuschka","email":"r.hannuschka@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ngx-fileupload_1.0.2_1562865036487_0.7136580465622291"},"_hasShrinkwrap":false,"deprecated":"Package has been moved and is no longer maintained, use @ngx-file-upload/core and @ngx-file-upload/ui packages."},"1.0.3":{"name":"@r-hannuschka/ngx-fileupload","version":"1.0.3","description":"angular fileupload library","repository":{"url":"git+https://github.com/r-hannuschka/ngx-fileupload.git","type":"git"},"license":"MIT","keywords":["ngx","angular 8","file","upload","fileupload","progressbar"],"peerDependencies":{"@angular/common":"^8.0.1","@angular/core":"^8.0.1","angular-pipes":"^9.0.2"},"author":{"name":"Ralf Hannuschka","url":"https://github.com/r-hannuschka"},"bugs":{"url":"https://github.com/r-hannuschka/ngx-fileupload/issues"},"homepage":"https://github.com/r-hannuschka/ngx-fileupload#readme","main":"bundles/r-hannuschka-ngx-fileupload.umd.js","module":"fesm5/r-hannuschka-ngx-fileupload.js","es2015":"fesm2015/r-hannuschka-ngx-fileupload.js","esm5":"esm5/r-hannuschka-ngx-fileupload.js","esm2015":"esm2015/r-hannuschka-ngx-fileupload.js","fesm5":"fesm5/r-hannuschka-ngx-fileupload.js","fesm2015":"fesm2015/r-hannuschka-ngx-fileupload.js","typings":"r-hannuschka-ngx-fileupload.d.ts","metadata":"r-hannuschka-ngx-fileupload.metadata.json","sideEffects":false,"dependencies":{"tslib":"^1.9.0"},"_id":"@r-hannuschka/ngx-fileupload@1.0.3","_nodeVersion":"10.14.1","_npmVersion":"6.9.0","dist":{"integrity":"sha512-GYsYAEWLkjNan9fqxLpV+lAe19ZSXEKfnG2GW1qaggz6W1z1BtPUAtKMybco6+OyZFqFgAgBEVPkcGnT3HiByg==","shasum":"bb578186ee5d872a4352a3bbb950707fbf5d21f5","tarball":"https://registry.npmjs.org/@r-hannuschka/ngx-fileupload/-/ngx-fileupload-1.0.3.tgz","fileCount":41,"unpackedSize":872106,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdLEZrCRA9TVsSAnZWagAAEvcQAIRphWrln3v6hGYljo0r\n5DnEb6ywwXMKph2CIprQKUICu9ex+ExIJkL+528MlTyuQiFGxcn82i+le1OT\nQfkYf/lTh+0rnZF2eBwEIyV4//eAYLe24AlxhwQQ6PaOE9k4zqDHchRnIGMr\n65UloMU6jC1mXOpedhy7hLyYeH/JP/8Pwc9DyIEfN80G/kF8j2ejgQstkZr3\nC0v/2UFX9W65Zp/26ESxhoOi84pmOwvP+gZez7ftZQD7S0EWRuGSrBETlIdi\nN413dahGHW/vAvYhm5L+dqX2cKoX4tKtKcP1vRMUnIdZcg+3d7yQrToinNDN\n73f0+vXk513f55Rycfjd9u10NGUnrDBTBf2BypyQsPgUNsy0yZ2LAiujStV0\nyJ0ph4fcOQzz7GX4gOQHkz1E0Elg9oOsdvHvbwBLJNtFohwKA3wRmGzZaMNU\n8JIeFChC3HyKZCeRvwChHJwpSJr+VS3J6oEoSz/mdZV77ZpnEKsHuhxb+Cll\nLCqgqDj21gdQMD6+Ozj7sLTeQehKKGfkvYJCuWaoiQo4cud+IjXAFufenVw8\nMFQeXg63n09fWbuHKKAPnFbGLOpAork4z1BpdU4yC9GotXBhJceFInV5VLyH\nhXOwg55q1uJ6XAfEzxPqsjghzbL/R6+x4OaEY25fpx5wP1W0tgxc8vKqQv+z\nhevb\r\n=t5O2\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEuxAALp+VZDe4fjtIA7f3yvJzXNrL1dTHCbpHKlAoVVAiEAjewXaKEp5AU19v6ni1u66ygOzsbQ2mQFAj9/Q7aRFkA="}]},"maintainers":[{"name":"r-hannuschka","email":"r.hannuschka@gmail.com"}],"_npmUser":{"name":"r-hannuschka","email":"r.hannuschka@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ngx-fileupload_1.0.3_1563182698507_0.4474859698431466"},"_hasShrinkwrap":false,"deprecated":"Package has been moved and is no longer maintained, use @ngx-file-upload/core and @ngx-file-upload/ui packages."},"1.0.4":{"name":"@r-hannuschka/ngx-fileupload","version":"1.0.4","description":"angular fileupload library","repository":{"url":"git+https://github.com/r-hannuschka/ngx-fileupload.git","type":"git"},"license":"MIT","keywords":["ngx","angular 8","file","upload","fileupload","progressbar"],"peerDependencies":{"@angular/common":"^8.0.1","@angular/core":"^8.0.1","angular-pipes":"^9.0.2"},"author":{"name":"Ralf Hannuschka","url":"https://github.com/r-hannuschka"},"bugs":{"url":"https://github.com/r-hannuschka/ngx-fileupload/issues"},"homepage":"https://github.com/r-hannuschka/ngx-fileupload#readme","main":"bundles/r-hannuschka-ngx-fileupload.umd.js","module":"fesm5/r-hannuschka-ngx-fileupload.js","es2015":"fesm2015/r-hannuschka-ngx-fileupload.js","esm5":"esm5/r-hannuschka-ngx-fileupload.js","esm2015":"esm2015/r-hannuschka-ngx-fileupload.js","fesm5":"fesm5/r-hannuschka-ngx-fileupload.js","fesm2015":"fesm2015/r-hannuschka-ngx-fileupload.js","typings":"r-hannuschka-ngx-fileupload.d.ts","metadata":"r-hannuschka-ngx-fileupload.metadata.json","sideEffects":false,"dependencies":{"tslib":"^1.9.0"},"_id":"@r-hannuschka/ngx-fileupload@1.0.4","_nodeVersion":"10.14.1","_npmVersion":"6.9.0","dist":{"integrity":"sha512-gTuW5ipZ+CGT7/2949wC1scQ8pKL7kxs6wl8aZr2zyhMyZY2VhO34tJ3L9SxQkf7n47qdwathQS6tbmkN2uQng==","shasum":"a1b99e12626fa33a631fee29ac21c1a3ad60e4e3","tarball":"https://registry.npmjs.org/@r-hannuschka/ngx-fileupload/-/ngx-fileupload-1.0.4.tgz","fileCount":41,"unpackedSize":872106,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdOEcCCRA9TVsSAnZWagAALfgQAJN90Xak7ahySry6Jh/c\nd0Pz0aQJd1hY9G2HqRkyXF9tEH2i3XOtQdm6yl3as5dsLL5S8nHUJFb/R6CN\nxLV4SAmaPe31eivHEx0JrzQMasUQ2ZqOwL0jUj4kGc/DdviWgyYucMdt7TrO\nHgQZaNeT+RLlsSfq1wovCep2f2RLvenw7QKgNyf2rFBsVJbZmQC/pTK1zlcI\n4/APWUDK0nodVIsvZZzcpO9vdf/qzk+MBjqTMbUA7DXoyZdDw+bGmtG0KjK5\nFuMFTqfuZsd4AtpXjwM/Ub+yZSqwapHYeiqJA1OMKXSQmCqmzTChpmyoJ65Y\nJGh4RYvSoHtdZ8tS3sktJZ1WXJ5BkSMqLubimy+yeNQHyts8zX0FR4wudfzL\na/dGiED9gX2oCgjTIJrpMGp4ZLFrPoH/axtuOQbaFY1KT4Uw3i9OWlia9Aqr\noi4UvndaJnmqJ4pNrbQFWKVGHU34+4ENBaZDZYIz/5vK2f/QSYFlBTlVQp4i\nBtVZAgTgb71se9Dao+diT6d1ybnIyM9dlGiR+BqDu9ECpyDQ4Tlau/o22whe\npITbghjtyg5eQr8MDgPcm1uQNZ7SgyH5bd7jjwk+YnAJkpjLmVSQ3oM5/Kca\ng2gxBkstJpwqgDQNnWnacGrFbmSvC8iPGPboSpsQzXZoS66s0XqiZFj7/JmJ\ngb7U\r\n=SlRl\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD6pJucwSw4m17PemduIaV8khdsBWlq8FpOEOnO6LjnxwIhAJJnvb/wbjU21CP4PsBOFYOU7AMGdgTtHGN6zLoW5qcE"}]},"maintainers":[{"name":"r-hannuschka","email":"r.hannuschka@gmail.com"}],"_npmUser":{"name":"r-hannuschka","email":"r.hannuschka@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ngx-fileupload_1.0.4_1563969281782_0.16742448285233436"},"_hasShrinkwrap":false,"deprecated":"Package has been moved and is no longer maintained, use @ngx-file-upload/core and @ngx-file-upload/ui packages."},"2.0.0-beta.0":{"name":"@r-hannuschka/ngx-fileupload","version":"2.0.0-beta.0","description":"angular fileupload library","repository":{"url":"git+https://github.com/r-hannuschka/ngx-fileupload.git","type":"git"},"license":"MIT","keywords":["ngx","angular 8","file","upload","fileupload","progressbar"],"peerDependencies":{"@angular/common":"^8.0.1","@angular/core":"^8.0.1","angular-pipes":"^9.0.2"},"author":{"name":"Ralf Hannuschka","url":"https://github.com/r-hannuschka"},"bugs":{"url":"https://github.com/r-hannuschka/ngx-fileupload/issues"},"homepage":"https://github.com/r-hannuschka/ngx-fileupload#readme","main":"bundles/r-hannuschka-ngx-fileupload.umd.js","module":"fesm5/r-hannuschka-ngx-fileupload.js","es2015":"fesm2015/r-hannuschka-ngx-fileupload.js","esm5":"esm5/r-hannuschka-ngx-fileupload.js","esm2015":"esm2015/r-hannuschka-ngx-fileupload.js","fesm5":"fesm5/r-hannuschka-ngx-fileupload.js","fesm2015":"fesm2015/r-hannuschka-ngx-fileupload.js","typings":"r-hannuschka-ngx-fileupload.d.ts","metadata":"r-hannuschka-ngx-fileupload.metadata.json","sideEffects":false,"dependencies":{"tslib":"^1.9.0"},"readme":"# NgxFileUpload\n\n[![npm](https://img.shields.io/npm/v/@r-hannuschka/ngx-fileupload.svg?maxAge=2592000?style=plastic)](https://www.npmjs.com/package/@r-hannuschka/ngx-fileupload)\n[![CircleCI](https://circleci.com/gh/r-hannuschka/ngx-fileupload/tree/master.svg?style=svg)](https://circleci.com/gh/r-hannuschka/ngx-fileupload/tree/master)\n[![Codacy Badge](https://api.codacy.com/project/badge/Grade/dc2f1a553c31471a95184d397bf72eb3)](https://www.codacy.com/app/r-hannuschka/ngx-fileupload?utm_source=github.com&amp;utm_medium=referral&amp;utm_content=r-hannuschka/ngx-fileupload&amp;utm_campaign=Badge_Grade)\n[![codecov](https://codecov.io/gh/r-hannuschka/ngx-fileupload/branch/master/graph/badge.svg)](https://codecov.io/gh/r-hannuschka/ngx-fileupload)\n\nAngular 8+ async fileupload with progressbar\n\n![ngx-fileupload.gif](https://raw.githubusercontent.com/r-hannuschka/ngx-fileupload/master/docs/ngx-fileupload.gif)\n\n## Contents\n\n- [NgxFileUpload](#NgxFileUpload)\n  - [Contents](#Contents)\n  - [Installation](#Installation)\n  - [Usage](#Usage)\n  - [Examples](#Examples)\n    - [Custom Item Template](#Custom-Item-Template)\n    - [Full Customize](#Full-Customize)\n    - [Validators](#Validators)\n    - [Add Params / Headers to Upload](#Add-Params--Headers-to-Upload)\n  - [Development](#Development)\n  - [Tests](#Tests)\n  - [Credits](#Credits)\n  - [Author](#Author)\n  - [Other Modules](#Other-Modules)\n\n## Installation\n\nnpm\n\n```bash\nnpm i --save @r-hannuschka/ngx-fileupload angular-pipes\n```\n\n## Usage\n\napp.module.ts\n\n```js\nimport { NgModule, Injectable } from \"@angular/core\";\nimport { NgxFileUploadModule } from \"@r-hannuschka/ngx-fileupload\";\n\n@NgModule({\n    imports: [\n        ...\n        NgxFileUploadModule\n    ],\n    exports: [...],\n    declarations: [...]\n})\nexport class AppModule { }\n```\n\napp.component.html\n\n```html\n<ngx-fileupload [url]=\"<URL>\"></ngx-fileupload>\n```\n\nUpload file directly in post body (no formdata)\n\n```html\n    <!-- file will directly sends with POST and not added to FormData Object default is true-->\n    <ngx-fileupload [url]=\"<URL>\" [useFormData]=\"false\"></ngx-fileupload>\n```\n\nUpload file with form data but custom form data field\n\n```html\n    <!-- file will uploaded via FormData with field name myFileUploadField, (default: 'file') -->\n    <ngx-fileupload [url]=\"<URL>\" [formDataName]=\"'myFileUploadField'\"></ngx-fileupload>\n```\n\n## Examples\n\n### Custom Item Template\n\nif a custom template will be added, it will receive UploadTemplateContext object which contains:  \n\ndata:UploadData (current upload informations)\n\n| name | type | description | values |\n|---|---|---|---|\n| hasError | boolean | flag upload got error | |\n| isSuccess | boolean | upload was successfully |\n| isValid | boolean | current upload is valid |\n| message | string | current error / validation or success message|\n| name | string | name of file | |\n| progress | number | progress in percent | |\n| state | string | current state of upload | canceled, queued, progress, error,  uploaded, invalid|\n| size | number | size of file | |\n| uploaded | number | uploaded size in byte | |\n\n```html\n<ng-template #customItemTemplate let-uploadData=\"data\" ...>\n    <h2>{{uploadData.name}}</h2>\n    <div>Progress: {{uplodaData.uploaded}}/{{uploadData.size}}\n</ng-template>\n```\n\nctrl:UploadControl (start/stop/retry an upload)\n\n```html\n<ng-template #customItemTemplate ... let-uploadCtrl=\"ctrl\">\n    <!-- retry failed upload -->\n    <button type=\"button\" *ngIf=\"data.hasError\" (click)=\"uploadCtrl.retry()\">retry</button>\n\n    <!-- start current upload -->\n    <button type=\"button\" *ngIf=\"!data.hasError\" (click)=\"uploadCtrl.start()\">start</button>\n\n    <!-- cancel / remove current upload -->\n    <button type=\"button\" (click)=\"uploadCtrl.cancel()\">stop</button>\n</ng-template>\n```\n\nsimply define a *ng-template* tag and pass it to *ngx-fileupload* component\n\n```html\n<ng-template #customItemTemplate let-uploadData=\"data\" let-uploadCtrl=\"ctrl\">\n    ...\n</ng-template>\n\n<ngx-fileupload [url]=\"<URL>\" [itemTemplate]=\"customItemTemplate\"></ngx-fileupload>\n```\n\n___\n\n### Full Customize\n\nmy.component.ts\n\n```ts\nimport { FileUpload, UploadModel, UploadState } from \"@r-hannuschka/ngx-fileupload\";\n\n@Component({\n    selector: \"my-component\",\n    styleUrls: [\"./my.component.scss\"],\n    templateUrl: \"my.component.html\",\n})\nexport class MyComponent {\n\n    /**\n     * all file uploades, which will be added to upload-item view\n     */\n    public uploads: FileUpload[] = [];\n\n    /**\n     * new uploads added with drag and drop\n     */\n    public onUploadsAdd( uploads: FileUpload[] ) {\n        this.uploads.push( ...uploads );\n    }\n\n    /**\n     * handle upload change event,\n     * if upload has been completed or canceled remove it from list\n     */\n    public handleUploadChange( upload: UploadModel, fileUpload: FileUpload ) {\n        let completed = upload.state === UploadState.CANCELED;\n        completed = completed || upload.state === UploadState.UPLOADED;\n\n        if ( completed ) {\n            const idx = this.uploads.indexOf(fileUpload);\n            this.uploads.splice( idx, 1 );\n        }\n    }\n}\n```\n\nmy.component.html\n\n```html\n<!-- \n    define custom item template, if we dont pass a template to \n    ngx-fileupload-item it will take default template as fallback\n-->\n<ng-template #itemTemplate let-uploadData=\"data\" let-uploadCtrl=\"ctrl\">\n\n    <div class=\"title\">\n        {{uploadData.name}}\n    </div>\n\n    <div class=\"actions\">\n        <button type=\"button\"\n            *ngIf=\"!uploadData.hasError\"\n            [disabled]=\"uploadData.invalid || uploadData.state !== 'queued'\"\n            (click)=\"uploadCtrl.start()\">\n            start\n        </button>\n        <button type=\"button\" (click)=\"uploadCtrl.cancel()\">\n            stop\n        </button>\n    </div>\n\n</ng-template>\n\n<!-- show all uploads -->\n<div class=\"file-upload--list\">\n    <ng-container *ngFor=\"let item of uploads\">\n        <ngx-fileupload-item\n            [upload]=\"item\"\n            [template]=\"itemTemplate\"\n            (changed)=\"handleUploadChange($event, item)\">\n        </ngx-fileupload-item>\n    </ng-container>\n</div>\n\n<!--\n    add directive ngxFileUpload to create new uploads if files get dropped here\n    or selected from file window.\n\n    optional pass useFormData: boolean (default: true)\n    optional pass formDataName: string (default file)\n-->\n<div class=\"fileupload dropzone\"\n    [ngxFileUpload]=\"url\"\n    [useFormData]=\"true\"\n    [formDataName]=\"'myFileUpload'\"\n    (add)=\"onUploadsAdd($event)\"\n    #myNgxFileUploadRef=\"ngxFileUploadRef\">\n\n    <span>\n        Drop Files or Click to add uploads.\n    </span>\n</div>\n\n<!-- button, on click use myNgxFileUploadRef to upload all files at once -->\n<button class=\"btn btn-upload\" type=\"button\" (click)=\"myNgxFileUploadRef.uploadAll()\">Upload</button>\n<button class=\"btn btn-clear\"  type=\"button\" (click)=\"myNgxFileUploadRef.cleanAll()\">Clean Up</button>\n<button class=\"btn btn-cancel\" type=\"button\" (click)=\"myNgxFileUploadRef.cancelAll()\">Cancel</button>\n```\n\n___\n\n### Validators\n\nvalidators/max-size.validator.ts\n\n```ts\nimport {\n    NgxFileUploadValidation,\n    ValidationResult\n} from \"@r-hannuschka/ngx-fileupload\";\n\nexport class MaxUploadSizeValidator implements NgxFileUploadValidator {\n\n    /**\n     * validate max upload size to 1MB\n     */\n    public validate(file: File): ValidationResult {\n        const valid = (file.size / (1024 * 1024)) < 1;\n        const error = !valid ? \"Max file size 1MByte\" : \"\";\n        return { valid, error };\n    }\n}\n```\n\napp-upload.module.ts\n\nWe create a own module for validation to keep main module clean, you can add as many validators you want if needed. If no Validators are passed all files will uploaded to server.\n\n```ts\nimport { NgModule } from \"@angular/core\";\nimport {\n    NgxFileUploadModule,\n    NGX_FILEUPLOAD_VALIDATOR\n} from \"@r-hannuschka/ngx-fileupload\";\nimport { MaxUploadSizeValidator } from \"./validators/max-size.validator\";\n\n@NgModule({\n    exports: [ NgxFileUploadModule ],\n    imports: [ NgxFileUploadModule ],\n    providers: [{\n        provide: NGX_FILEUPLOAD_VALIDATOR,\n        useClass: MaxUploadSizeValidator,\n        multi: true\n    }, {\n        provide: NGX_FILEUPLOAD_VALIDATOR,\n        useClass: SomeOtherValidator,\n        multi: true\n    }],\n})\nexport class AppUploadModule { }\n```\n\napp.module.ts\n\nsimply import AppUploadModule into main module\n\n```ts\nimport { BrowserModule } from \"@angular/platform-browser\";\nimport { NgModule } from \"@angular/core\";\nimport { AppComponent } from \"./app.component\";\nimport { AppUploadModule } from \"./app-upload.module\";\n\n@NgModule( {\n    declarations: [\n        AppComponent\n    ],\n    imports: [\n        AppUploadModule,\n        BrowserModule\n    ],\n    bootstrap: [AppComponent],\n} )\nexport class AppModule { }\n```\n\n___\n\n### Add Params / Headers to Upload\n\nTo add additional params / headers HTTP Interceptors should be used from angular to modify\nrequest.\n\nupload.interceptor.ts\n\n```ts\nimport { HttpInterceptor, HttpHandler, HttpRequest, HttpEvent } from \"@angular/common/http\";\nimport { Observable } from \"rxjs\";\n\nexport class UploadInterceptor implements HttpInterceptor {\n\n    public intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n        const needle = new RegExp(\"^/lib/upload\");\n        if (req.url.match(needle) && req.body.has(\"file\")) {\n            const fileName = req.body.get(\"file\").name;\n            const request: HttpRequest<any> = req.clone({\n                /** add additional params */\n                setParams: {\n                    \"fileName\": fileName,\n                }\n            });\n            return next.handle(request);\n        }\n        return next.handle(req);\n    }\n}\n```\n\napp-upload.module.ts\n\n```ts\nimport { NgModule } from \"@angular/core\";\nimport { HTTP_INTERCEPTORS } from \"@angular/common/http\";\nimport { NgxFileUploadModule } from \"@r-hannuschka/ngx-fileupload\";\n\n@NgModule({\n    exports: [ NgxFileUploadModule ],\n    imports: [ NgxFileUploadModule ],\n    providers: [{\n        // ... validators\n    }, {\n        provide: HTTP_INTERCEPTORS,\n        useClass: UploadInterceptor,\n        multi: true\n    }],\n})\nexport class AppUploadModule { }\n```\n\n___\n\n## Development\n\n```bash\ngit clone https://github.com/r-hannuschka/ngx-fileupload\ncd ngx-fileupload\\src\nnpm i\n\n# run simple express server for minimized rest api\n# listen on localhost:3000\nnode src\\server\\upload-server.js\n\n# start webpack server (angular app)\n# listen on localhost:4200\nnpm start\n```\n\n## Tests\n\n```bash\n# end to end tests\nng e2e\n\n# unit tests\nng test ngx-fileupload\n```\n\n## Credits\n\nSpecial thanks for code reviews, great improvements and ideas to\n\n||||  \n|:-:|:-:|:-:|\n|[![alt Konrad Mattheis](https://avatars2.githubusercontent.com/u/1100969?s=60&v=4)](https://github.com/konne)<br />Konrad Mattheis| [<img src=\"https://avatars3.githubusercontent.com/u/17725886?s=60&v=4\" width=60 alt=\"Thomas Haenig\" />](https://github.com/thomashaenig)<br />Thomas Haenig| [![alt Alexander Görlich](https://avatars0.githubusercontent.com/u/13659581?s=60&v=4)](https://github.com/AlexanderGoerlich)  <br />Alexander Görlich|\n\n## Author\n\nRalf Hannuschka [Github](https://github.com/r-hannuschka)\n\n## Other Modules\n\n- [ngx-responsivemenu](https://github.com/r-hannuschka/ngx-responsivemenu)\n","readmeFilename":"README.md","_id":"@r-hannuschka/ngx-fileupload@2.0.0-beta.0","_nodeVersion":"10.16.3","_npmVersion":"6.9.0","dist":{"integrity":"sha512-NHrI5ZAHMT7WbZhMLmoDD3U4BZPnQOEZQ3x+cnvGuNHvttyc2m3xEAA1DjC6kgH2H2q6TSL2OyoYEuO22iKiAw==","shasum":"673c2b355d163338cfac75d28ac24cc189a4e1c4","tarball":"https://registry.npmjs.org/@r-hannuschka/ngx-fileupload/-/ngx-fileupload-2.0.0-beta.0.tgz","fileCount":53,"unpackedSize":955753,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdckOYCRA9TVsSAnZWagAAs8IP/j/3WLPe+BZTirwoXTxg\nslXkcvOHRnfe0N5hAmsjypOBrvKvdca9RWhhO5Bcx6NnM4nWWvlfUwDag2/K\npgRyT3zOe44Q/R7aPlbXUlfdDh9XtofAaHhzeV3DwW8GVjiJHQ9AKNn+RcKS\n/qcCTg3qne+ylKT4t0TyR/5EsXcMzm+yk9G8YFgMVjJ5KZlQSnJkirrEKb4m\nUv+GS01BGoHH9LBn+xCucnmh1NPr6z7jmUYpVMAwi+M/SNP9SH6c4qiSpjYO\nPAVxAOf9+6mvjPfoZ+gJTg2gDrRiTC2517w8vZ/Nm3EdDEs58YwV2bjPuq/o\nlL9bdIOsSV4OROE7XXgSTs7/SU6fv/cUGQPyHp6nxEhbm5+8rwvJ1nT9+6xf\n/JBQjtjxbiaUPXp5Q2gqhhjAej0RX+eCePaE9lKpzbkECqs3ZmbhNbSFUucS\nq42n3em2axYsibURjzUTn/fptlfUiZUfscJiIH/OYKKNPtU/MVd3UWB+m3EH\n94zLzesmt2O3PzP8DHdMWJbJX4n55SiNSx5yFN9w4csFtRZMm46onfZZte99\nEum9YkJWCHgWHu9F9yOujS0jM0aC8q/e1t/TdFuQjfJobSPsOgzN/Y/5BD/9\nh0glBbAIhfrsdI8xfpjdAz20RHgLbCj7eDTd3HYrk9IpYaK3wjZ/X+qqAfvS\n2xV9\r\n=aCFp\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD+wLXKG0XAN9BhbskZ/Kd+c9qRsRl1cJuKmfhAn5l99wIhAKUL6tVpuGXSLK07SUG7HJuc192f5ircXqyz2N5tMuDK"}]},"maintainers":[{"name":"r-hannuschka","email":"r.hannuschka@gmail.com"}],"_npmUser":{"name":"r-hannuschka","email":"r.hannuschka@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ngx-fileupload_2.0.0-beta.0_1567769495951_0.6311212490877038"},"_hasShrinkwrap":false},"2.0.0":{"name":"@r-hannuschka/ngx-fileupload","version":"2.0.0","description":"angular fileupload library","repository":{"url":"git+https://github.com/r-hannuschka/ngx-fileupload.git","type":"git"},"license":"MIT","keywords":["ngx","angular 8","file","upload","fileupload","progressbar"],"peerDependencies":{"@angular/common":"^8.0.1","@angular/core":"^8.0.1","angular-pipes":"^9.0.2"},"author":{"name":"Ralf Hannuschka","url":"https://github.com/r-hannuschka"},"bugs":{"url":"https://github.com/r-hannuschka/ngx-fileupload/issues"},"homepage":"https://github.com/r-hannuschka/ngx-fileupload#readme","main":"bundles/r-hannuschka-ngx-fileupload.umd.js","module":"fesm5/r-hannuschka-ngx-fileupload.js","es2015":"fesm2015/r-hannuschka-ngx-fileupload.js","esm5":"esm5/r-hannuschka-ngx-fileupload.js","esm2015":"esm2015/r-hannuschka-ngx-fileupload.js","fesm5":"fesm5/r-hannuschka-ngx-fileupload.js","fesm2015":"fesm2015/r-hannuschka-ngx-fileupload.js","typings":"r-hannuschka-ngx-fileupload.d.ts","metadata":"r-hannuschka-ngx-fileupload.metadata.json","sideEffects":false,"dependencies":{"tslib":"^1.9.0"},"_id":"@r-hannuschka/ngx-fileupload@2.0.0","_nodeVersion":"10.16.3","_npmVersion":"6.9.0","dist":{"integrity":"sha512-kxMifEXygBenM4QJTFZPtBJba/hf4d2nSFwdg4Awdnhouw+ZAxp328c743GI77IpChCz8FPXxBV/zltfyfQLFw==","shasum":"4acdcb311a13342288600a1667c31b27f8649aee","tarball":"https://registry.npmjs.org/@r-hannuschka/ngx-fileupload/-/ngx-fileupload-2.0.0.tgz","fileCount":56,"unpackedSize":969570,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJddTBgCRA9TVsSAnZWagAAgaIP+wSZK4fA29A8eErbvcHn\ncCX+5tSK+tmCIlZVBYEOCTcy6W9j5CrtLFTNFiVjyNJH+eeUoNHOUYp6hQ+n\nXw1sTjXBiYkWL9+2zKRDaHSu1qes7Ea8PKrQMdrsSw7cL4XQ4Mk1V2tweTNP\nHQ1sDaq+b8EJe6JHpRgQMXML5UFuobla3dFItcbGfs15+UABozJAbNqZLXYm\ndYpJGYDE/rswa5PrMM1WrMlLNgCbZbYjU8g8Zt21LQszDZdmywLLSBhCuzvm\nU9jTw7muYPcOGDybxwlj6/ZD5rHLp514Vo3oOajy7p7vfnwMaUmLQY2NaoI+\nLDEyDaSKkFauXRFke5QTdoWlawC6RuY5tap4PdSInqU+AzcVRLFCjrxhfRay\ni74QCtYM72FWlBvCEYaE4AdFKA2Dl4GD1PqfEWTmMILERegqzLg54YpD+FSP\naVCx81eZt6ePOxEE1CI1LxbFBFM0hTwmRDfn/9wvtP0E/etO73jgpHMRhUSd\n9wszRddmwH4hD+z7+f9m6RL7gI6DizWTY4V7HoNi2cGVwUkojG3FBsU5aCP0\ns4tVV4Dle4jb6Llg5o4kdusZPTG9lBajlSFB0jcs+kOMi6zbBLB7FR6jfCey\ntDglmxPF/MP2JPgrb6CGnc5LPi4LIBnDJteC9qi1VAoR5R6qesYm+B97Q0kV\nVPBl\r\n=6CRk\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCbW8yJRd8SAxkC2mP5E69Snncwo/Kz99zK8n3INpi86AIhAMDYk5euis4k/adJBejD4BR39ZCXApd8F955+W2fbxC4"}]},"maintainers":[{"name":"r-hannuschka","email":"r.hannuschka@gmail.com"}],"_npmUser":{"name":"r-hannuschka","email":"r.hannuschka@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ngx-fileupload_2.0.0_1567961183930_0.6154156822039547"},"_hasShrinkwrap":false,"deprecated":"Package has been moved and is no longer maintained, use @ngx-file-upload/core and @ngx-file-upload/ui packages."},"2.0.1":{"name":"@r-hannuschka/ngx-fileupload","version":"2.0.1","description":"angular fileupload library","repository":{"url":"git+https://github.com/r-hannuschka/ngx-fileupload.git","type":"git"},"license":"MIT","keywords":["ngx","angular 8","file","upload","fileupload","progressbar"],"peerDependencies":{"@angular/common":"^8.0.1","@angular/core":"^8.0.1","angular-pipes":"^9.0.2"},"author":{"name":"Ralf Hannuschka","url":"https://github.com/r-hannuschka"},"bugs":{"url":"https://github.com/r-hannuschka/ngx-fileupload/issues"},"homepage":"https://github.com/r-hannuschka/ngx-fileupload#readme","main":"bundles/r-hannuschka-ngx-fileupload.umd.js","module":"fesm5/r-hannuschka-ngx-fileupload.js","es2015":"fesm2015/r-hannuschka-ngx-fileupload.js","esm5":"esm5/r-hannuschka-ngx-fileupload.js","esm2015":"esm2015/r-hannuschka-ngx-fileupload.js","fesm5":"fesm5/r-hannuschka-ngx-fileupload.js","fesm2015":"fesm2015/r-hannuschka-ngx-fileupload.js","typings":"r-hannuschka-ngx-fileupload.d.ts","metadata":"r-hannuschka-ngx-fileupload.metadata.json","sideEffects":false,"dependencies":{"tslib":"^1.9.0"},"_id":"@r-hannuschka/ngx-fileupload@2.0.1","_nodeVersion":"10.16.3","_npmVersion":"6.9.0","dist":{"integrity":"sha512-+7nKKeZkUdj5xqOmvgA4Cjt8EwC3ZNVQ0/nCW4xnyoLqCsNQhx8xGGf5dIw5+7vDW3gIpLQTuePlMJidDYcGiw==","shasum":"32123f184bcdf472e7b28a187da49e017e8e92e9","tarball":"https://registry.npmjs.org/@r-hannuschka/ngx-fileupload/-/ngx-fileupload-2.0.1.tgz","fileCount":56,"unpackedSize":969570,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdmHFLCRA9TVsSAnZWagAAhLgQAKE/1Jg74AUa5hIbvws5\ne5wFQsXwsL5jGvrNeqNpVCqu7lvNeb9rsgXWm61Bu+eizC3p0p4VU8p8Jv9r\nMWw6e25lab3k3zw3Uo44yWR5k3K7e0bV3at9rnlBxmm9DV/0TJPUbYtlBdfX\nhBVyDWQMiD1tlnXGGsQv58r7OEMsgQwVRrJDBMYQd+1HX+2KXkWH64GYaSo+\nmZ3jyuwgvcIzGZrbA28Zn6hPaziIoZQdAYQVlyDMu3c04cglLa3SEUivJQJW\nlfkdMwZuz/qbxHXjj7UMpkdApWRdGwo3o7kZ88XuNv1PwzHuD+3IawVvsW4S\n6JLWU+5ntXTmi8ss8sugLMxQN2TjrToCt8vrp8btjWPi3NGssDtD9t2pguhy\njcDlZAW2nKYEX21ZhEbDhJTYrNHSKlzAx5CqwSoZJfFaTSaU10H+zuNFd4tB\nbSLHu8mnoWpraXoyYMfqckAe46Lvtxkxs/JGhfupEajISGahM38h4bnPD/Bu\nSJY8aODQGRy838U/8IGRoX56oZkLWBnCNHu0ueIr+HlHaOdcj1BaIHntvFyu\ngup0wQJ1HfAm5nNyabDSGyTMac+bLg+n/RDRupAsJmpseP3FArHI3thhXKHt\n/cPQcOxg799By6e8Rt6/PPg4z7PbeRinMSbsF3h+1uEgBbwIfaW7vP24bYGX\ngEcd\r\n=9l7U\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDvH9D/Cs8L/gAK7aoByBI3vFJFASpZegTWuuHDXRAOVgIhAL2tJw8Y4YKfcr4zEVmYpImHjSSiGpjq30e/aRk9I7NL"}]},"maintainers":[{"name":"r-hannuschka","email":"r.hannuschka@gmail.com"}],"_npmUser":{"name":"r-hannuschka","email":"r.hannuschka@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ngx-fileupload_2.0.1_1570271562346_0.7283471251457005"},"_hasShrinkwrap":false,"deprecated":"Package has been moved and is no longer maintained, use @ngx-file-upload/core and @ngx-file-upload/ui packages."},"2.1.1":{"name":"@r-hannuschka/ngx-fileupload","version":"2.1.1","description":"angular fileupload library","repository":{"url":"git+https://github.com/r-hannuschka/ngx-fileupload.git","type":"git"},"license":"MIT","keywords":["ngx","angular 8","file","upload","fileupload","progressbar"],"peerDependencies":{"@angular/common":"^8.0.1","@angular/core":"^8.0.1"},"author":{"name":"Ralf Hannuschka","url":"https://github.com/r-hannuschka"},"bugs":{"url":"https://github.com/r-hannuschka/ngx-fileupload/issues"},"homepage":"https://github.com/r-hannuschka/ngx-fileupload#readme","main":"bundles/r-hannuschka-ngx-fileupload.umd.js","module":"fesm5/r-hannuschka-ngx-fileupload.js","es2015":"fesm2015/r-hannuschka-ngx-fileupload.js","esm5":"esm5/r-hannuschka-ngx-fileupload.js","esm2015":"esm2015/r-hannuschka-ngx-fileupload.js","fesm5":"fesm5/r-hannuschka-ngx-fileupload.js","fesm2015":"fesm2015/r-hannuschka-ngx-fileupload.js","typings":"r-hannuschka-ngx-fileupload.d.ts","metadata":"r-hannuschka-ngx-fileupload.metadata.json","sideEffects":false,"dependencies":{"tslib":"^1.9.0"},"_id":"@r-hannuschka/ngx-fileupload@2.1.1","_nodeVersion":"10.16.3","_npmVersion":"6.9.0","dist":{"integrity":"sha512-t/QoeyCsj7BE6MvxgsHmtpG0DB3P9vctvRG0caJ5uC3rjxb/VlIP+W9my6qU8sQXHYnjSjuAXY6EyQWhDtVbmQ==","shasum":"8b714dbda3e50dda6adf9a1c470331f3b055873f","tarball":"https://registry.npmjs.org/@r-hannuschka/ngx-fileupload/-/ngx-fileupload-2.1.1.tgz","fileCount":71,"unpackedSize":952918,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdoHb5CRA9TVsSAnZWagAAPWUP/1qpMK/iaVBriLG2TOrR\ne8zYEz6S77ukY93tjqejO0EMfV6iSQLqM97h2G85TdLWfsUqVioTAfQG+VUX\nAFUEAMFyUYs8x6xu2/5s9AFTZ/wRf4maGVRPAEZTUpi8lQLV1up+Dig4Wozd\nv/fsZ44IZTdN82R8sLF4ggoG9Iyd4Knz8pSCSiveXtwEhS2EqsR5L3d1L5C3\nGsjEeFVCS+gYPbQVCBXDRn+uuUwDiQxPBkGg1U/hQyyK/6rE0R6VbsHVn3nn\nuPMVVZYGefrvE/MFjnLJ/B/LXgg8gqfUUfN0788TA7HJpi7yHw5/QFNPH6e9\nS0yd0Kou9MWP+xNe+F0jPo9/u1evQ0skf/awA9QrkZLcmXvlguYXVRoy45aE\n9QZCCWIN4U/InvJ9sOEJDKUyrkW+JAuW9HfREuUHnAO7578KWqVYJOaMR9AP\nGi2vy7pZBV35sPirGEjK+ioOO0pWNq+Q1AjAkK3RuEm+WLxGCL5koG8+JuTx\nnSdfF8Uif/8V17bk9WFBkpAvG3QoCdS3E6zzew6FCx8W3i0RwNpXX9m7ii3R\n3Dr1l4u6VX+OPAdijaEd/5R2IQjyJwhlhGw7y0Dl8RQFKdkdDPStnb1/fdAX\n9HWTMh+AWTZ46tIaVVfjgTWb+Edq2Gg/g65bZOTj+JOh2y00ND4QB8JOcHfy\nCpPf\r\n=8bdX\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD9iVAUhlpbcbIj7FG0hhOOP0AWl7Z3dtoNoowgimEAdgIhANdztmMCKDHYlJR7h3m2o5aVfLZt4qWG/NkCdg/wz+Un"}]},"maintainers":[{"name":"r-hannuschka","email":"r.hannuschka@gmail.com"}],"_npmUser":{"name":"r-hannuschka","email":"r.hannuschka@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ngx-fileupload_2.1.1_1570797304724_0.033834669498052916"},"_hasShrinkwrap":false,"deprecated":"Package has been moved and is no longer maintained, use @ngx-file-upload/core and @ngx-file-upload/ui packages."},"3.0.0":{"name":"@r-hannuschka/ngx-fileupload","version":"3.0.0","description":"angular fileupload library","repository":{"url":"git+https://github.com/r-hannuschka/ngx-fileupload.git","type":"git"},"license":"MIT","keywords":["ngx","angular 8","file","upload","fileupload","progressbar","upload queue"],"peerDependencies":{"@angular/common":"^8.0.1","@angular/core":"^8.0.1"},"author":{"name":"Ralf Hannuschka","url":"https://github.com/r-hannuschka"},"bugs":{"url":"https://github.com/r-hannuschka/ngx-fileupload/issues"},"homepage":"https://github.com/r-hannuschka/ngx-fileupload#readme","main":"bundles/r-hannuschka-ngx-fileupload.umd.js","module":"fesm5/r-hannuschka-ngx-fileupload.js","es2015":"fesm2015/r-hannuschka-ngx-fileupload.js","esm5":"esm5/r-hannuschka-ngx-fileupload.js","esm2015":"esm2015/r-hannuschka-ngx-fileupload.js","fesm5":"fesm5/r-hannuschka-ngx-fileupload.js","fesm2015":"fesm2015/r-hannuschka-ngx-fileupload.js","typings":"r-hannuschka-ngx-fileupload.d.ts","metadata":"r-hannuschka-ngx-fileupload.metadata.json","sideEffects":false,"dependencies":{"tslib":"^1.9.0"},"_id":"@r-hannuschka/ngx-fileupload@3.0.0","_nodeVersion":"10.17.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-hausF3o/fpJ0A5UbxMhYeNIK9jWqLg2wRx+gS99j0twSgyNngZDGNfJCGb6D7qzrpCVLzUpJJMymthmTYvSk3w==","shasum":"f210de222ce151a135daf1289372b89ae1b526d2","tarball":"https://registry.npmjs.org/@r-hannuschka/ngx-fileupload/-/ngx-fileupload-3.0.0.tgz","fileCount":83,"unpackedSize":1351440,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdtcUcCRA9TVsSAnZWagAAj0wP/iQrI5J6108/het6lOip\nZzQEDGWeaud7AevGWyeReuPz5AXMbAN/vjyDnNq10pdBEAKhz4RSjQi8SBIv\n72+y/7wB6BOYkilaIjN6CxHH0Met9J9LCZI/KEwvykowYCgxtCw/hjstvUg8\nmJpQo2Ml/5Q7joDI/6wWZTYExX/PQQvUCIIJ5HCHG6rbsZJ6Z8psUD6RAQov\nXgV70yJz8EuoBU/zp4GXHD+NapLByp4SNpEGQ4sDlA8Wui/Z+/RZnwLK+Bhg\n1mRhdTgZeRFpSIY5jP63LhWPnYzLS+JTAu6L9v4ajuG5gS56tOb3nqZP5Bp3\ny30tT9pqLolRL9pnSuVE7y1/4cSsdYpqAtFbcpiaAxIh+c4jLXW59vdI57MF\nWY7QqQwtFll1b8KQsvYst7kkdj8cC7QBhkpRsUJrCEA5iICy9wyCq/upYLgQ\ndco8fONCcyVC2qYVNbYvC9FfPkAWXF5+itBMcvE0dr0ocyN3lWRcxWR8OTUD\nZMclA59HkfiUb4hB7fO+I7DLoiAjophLsw4vod7gkJdAKblISEgVIIoQcheN\nXHEQB8rqpS8SQLYC1GVX2+AU8hD4sVkpqkX76X1putdjiLKQ4ESjoJVTf4Yc\nraTBJgFeQq4nFGaHDC/rcKxNxNJYqm73s//EBY9oKjuWDZ8hYsqq5jziW+Gv\nq0FH\r\n=yW6+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIA9YIzB3XTgpGM7Nwmw9uo5fNWBHcYnboNRW2O1Qv4X6AiEA/K7+lnt3nUknRlcFY3kX6bI+BZ7sMp5Ry6PtPoukprA="}]},"maintainers":[{"name":"r-hannuschka","email":"r.hannuschka@gmail.com"}],"_npmUser":{"name":"r-hannuschka","email":"r.hannuschka@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ngx-fileupload_3.0.0_1572193563576_0.1555472593266185"},"_hasShrinkwrap":false,"deprecated":"Package has been moved and is no longer maintained, use @ngx-file-upload/core and @ngx-file-upload/ui packages."},"3.0.1":{"name":"@r-hannuschka/ngx-fileupload","version":"3.0.1","description":"angular file upload library with progressbar, upload queues and validation.","repository":{"url":"git+https://github.com/r-hannuschka/ngx-fileupload.git","type":"git"},"license":"MIT","keywords":["ngx","angular 8","file","upload","fileupload","progressbar","upload queue","queue"],"peerDependencies":{"@angular/common":"^8.0.1","@angular/core":"^8.0.1"},"author":{"name":"Ralf Hannuschka","url":"https://github.com/r-hannuschka"},"bugs":{"url":"https://github.com/r-hannuschka/ngx-fileupload/issues"},"homepage":"https://github.com/r-hannuschka/ngx-fileupload#readme","main":"bundles/r-hannuschka-ngx-fileupload.umd.js","module":"fesm5/r-hannuschka-ngx-fileupload.js","es2015":"fesm2015/r-hannuschka-ngx-fileupload.js","esm5":"esm5/r-hannuschka-ngx-fileupload.js","esm2015":"esm2015/r-hannuschka-ngx-fileupload.js","fesm5":"fesm5/r-hannuschka-ngx-fileupload.js","fesm2015":"fesm2015/r-hannuschka-ngx-fileupload.js","typings":"r-hannuschka-ngx-fileupload.d.ts","metadata":"r-hannuschka-ngx-fileupload.metadata.json","sideEffects":false,"dependencies":{"tslib":"^1.9.0"},"_id":"@r-hannuschka/ngx-fileupload@3.0.1","_nodeVersion":"10.17.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-YzxnsYDnaGF3fWfmPO86K4NNlXtzdx/JgBwYIjA2S5Lln6ysOG140Weq+HyR2YZI4Ho9wicjv1BUjY8J2zeqLA==","shasum":"e873f3808d61a8c3d512e5f4a8490ff6e3da4337","tarball":"https://registry.npmjs.org/@r-hannuschka/ngx-fileupload/-/ngx-fileupload-3.0.1.tgz","fileCount":83,"unpackedSize":1346170,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdteFkCRA9TVsSAnZWagAAWOwP/Ay/OMG87yKO5jigovYE\nmDAWJAyilZ8U92kc/VfFDoTu3PqPqvqoMvtl9jdkZYiIp9SKkzLBRBHssMZF\nTDXUlzuVuYVMpMeFpzDwT4fGwPr2IthTUlWQsqaMAIDbrGZpxJ63jBcSizHk\nt53DR5VTV3ugBeJArLDgjxeaDfDfvxDxM+eEg8yTMwFaRCygx55GnL9Neql2\nZA9zgGskzErChpECZf0DwLvU/fJkBo7bMlVN8EOUujhYbIe80iwHpCMwtZT5\nZCj9/RsHmMbuR+ZOSVBt5JlPQMW9pdQcTjf6NRuYMsCqkdsEL/F7mz1UGl1W\n3Ulq4qVn+Zf3sc8WYtgMRcaExwguL47U0aqq5qbOzE3AlOSC2Bqnk7ba4Yyb\nSYM4olv8RLCk9jeGPcj3u7MsEdDU7VxUWwYImvWA04mkB+evEm5VOPTSHTYs\ne2E/kIUbNoAcvufPELjx9zVvIGY8HsfJ6Zuj9wzVNyCxZyeo5vq3TUhP+xSg\nNLUrHUQbAb9MB/fKaXlrPJ+0owF/vrQSjnZpY+7TnPHLlXc7JWKzLmT2pSNz\ndsRTx7krNrQbVAj0qi0I+WUUIsdMRBX8/UZTeS9uJAu6v2Si3w8ANoQYAOYF\nKdCgZfFrxval3XYYXtC5eVIYoQeqmmMEADc1EAMZpdIrw5qZMsp87GjFD8Ok\nJcEG\r\n=R8J2\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCjvGvjd3oVpQ/e5aveX+O0ml39WpkXQA7pPVjeN+JnsAIgYHWlvyF1Cd7xmgE4wqjjX9f4vDnclNsv8e7wvAWBl2M="}]},"maintainers":[{"name":"r-hannuschka","email":"r.hannuschka@gmail.com"}],"_npmUser":{"name":"r-hannuschka","email":"r.hannuschka@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ngx-fileupload_3.0.1_1572200804114_0.9964676302923361"},"_hasShrinkwrap":false,"deprecated":"Package has been moved and is no longer maintained, use @ngx-file-upload/core and @ngx-file-upload/ui packages."},"3.1.0":{"name":"@r-hannuschka/ngx-fileupload","version":"3.1.0","description":"Angular 8+ async file upload library with progressbar, upload queue and validation.","repository":{"url":"git+https://github.com/r-hannuschka/ngx-fileupload.git","type":"git"},"license":"MIT","keywords":["ngx","async","angular","angular 8","file","upload","fileupload","progressbar","upload queue","queue"],"peerDependencies":{"@angular/common":"^8.0.1","@angular/core":"^8.0.1"},"author":{"name":"Ralf Hannuschka","url":"https://github.com/r-hannuschka"},"bugs":{"url":"https://github.com/r-hannuschka/ngx-fileupload/issues"},"homepage":"https://github.com/r-hannuschka/ngx-fileupload#readme","main":"bundles/r-hannuschka-ngx-fileupload.umd.js","module":"fesm5/r-hannuschka-ngx-fileupload.js","es2015":"fesm2015/r-hannuschka-ngx-fileupload.js","esm5":"esm5/r-hannuschka-ngx-fileupload.js","esm2015":"esm2015/r-hannuschka-ngx-fileupload.js","fesm5":"fesm5/r-hannuschka-ngx-fileupload.js","fesm2015":"fesm2015/r-hannuschka-ngx-fileupload.js","typings":"r-hannuschka-ngx-fileupload.d.ts","metadata":"r-hannuschka-ngx-fileupload.metadata.json","sideEffects":false,"dependencies":{"tslib":"^1.9.0"},"_id":"@r-hannuschka/ngx-fileupload@3.1.0","_nodeVersion":"10.17.0","_npmVersion":"6.12.1","dist":{"integrity":"sha512-P+qRmm27ChukSx9efpS9mCPS2h7ngzwSv8EVPpN6e7LoYByjSshghunPH4ngGUVZrI+RX4DhW+BCCDqaDYdyJA==","shasum":"b1de471e8803eeb911a1ce41ce21089db4484346","tarball":"https://registry.npmjs.org/@r-hannuschka/ngx-fileupload/-/ngx-fileupload-3.1.0.tgz","fileCount":89,"unpackedSize":1589025,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdvMstCRA9TVsSAnZWagAAuaUP+wfpKW21HhUVfiJ9SYul\nDMiec2uirxxKwwuCV+PZf9f2mFgcgd0vuVNW1+w+gG1ETnDMkG9nBqcmJPQW\nHDmJu/It5hn6o+Zqpc9O1CxfzSukPSsUZhyMwIuoGgxQzwgeZxlY3zlgSc9w\njcfn/D7/E9V6pK0e7B45IsO/aXn13e+ornhQQbgZttKYTDwv2wa/MhZ4MT7i\nKjykJ5Ij293ERs9DojWJkS6picxeX7Ly3qgOoHIJdrHAHA/R0WY/azN0WfH5\nwXTvGOqqGnqZjl+6HVsXntdUsNSGuXbUM8OQm2LLcIKa3w4kYziY3SQI9djC\nLu8AFM+ZuS7j8RSlrrSdUESKv9vBik0OkA38WMJA3DOLJtWdPNDsmmjgrVMf\nC88ZvjoGK6EsjzYJp43KOW2aTtj+pfuUX58KlFgyYxlwx7gFbPWXwJtmNGQU\np+d38QInFrNivrnhYb537M60rxVwYmU3mI6A30NgZX0hKpplYpFL/L5YUs5C\npzUREYSFR0mzpFsFIXqoq0YQt34qNBUUilP6TAS0CcPXmt2M0/coyjx0AgJI\non26r2EpQMMVutHeDx9RDS4gTotwA5mdLbSlg54hQQ0QRyqGaoIjAwMSdr4v\nyNAa4sVtpgMLdlb5XsKKS8Ohk5eH4FsDXt/VQHiMZ57TxuX3rxZ+y6bZqGNs\nzzqy\r\n=x88/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDOoGV3FUCokWJ2OX1ShMbXOmYq3FUlvCCYHOA2FFuj4AiEA0U7HnQJJjTZkR7NGsX9maEH2tQyx4af1QUWyWDbySIc="}]},"maintainers":[{"name":"r-hannuschka","email":"r.hannuschka@gmail.com"}],"_npmUser":{"name":"r-hannuschka","email":"r.hannuschka@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ngx-fileupload_3.1.0_1572653869214_0.5436735819082175"},"_hasShrinkwrap":false,"deprecated":"Package has been moved and is no longer maintained, use @ngx-file-upload/core and @ngx-file-upload/ui packages."},"3.2.0":{"name":"@r-hannuschka/ngx-fileupload","version":"3.2.0","description":"Angular 8+ async file upload library with progressbar, upload queue and validation.","repository":{"url":"git+https://github.com/r-hannuschka/ngx-fileupload.git","type":"git"},"license":"MIT","keywords":["ngx","async","angular","angular 8","file","upload","fileupload","progressbar","upload queue","queue"],"peerDependencies":{"@angular/common":"^8.0.1","@angular/core":"^8.0.1"},"author":{"name":"Ralf Hannuschka","url":"https://github.com/r-hannuschka"},"bugs":{"url":"https://github.com/r-hannuschka/ngx-fileupload/issues"},"homepage":"https://github.com/r-hannuschka/ngx-fileupload#readme","main":"bundles/r-hannuschka-ngx-fileupload.umd.js","module":"fesm5/r-hannuschka-ngx-fileupload.js","es2015":"fesm2015/r-hannuschka-ngx-fileupload.js","esm5":"esm5/r-hannuschka-ngx-fileupload.js","esm2015":"esm2015/r-hannuschka-ngx-fileupload.js","fesm5":"fesm5/r-hannuschka-ngx-fileupload.js","fesm2015":"fesm2015/r-hannuschka-ngx-fileupload.js","typings":"r-hannuschka-ngx-fileupload.d.ts","metadata":"r-hannuschka-ngx-fileupload.metadata.json","sideEffects":false,"dependencies":{"tslib":"^1.9.0"},"_id":"@r-hannuschka/ngx-fileupload@3.2.0","_nodeVersion":"10.17.0","_npmVersion":"6.12.1","dist":{"integrity":"sha512-YUs6uEPVQBWlONg451yS02irRk7/4JZs3JEVdRdYhdwsnCZ41ZJp0XskIXqKAV+21C+q+kdhXYsyU1BtvVEwfA==","shasum":"300c14bda788bb16bd4290f3310e133eab73b5fc","tarball":"https://registry.npmjs.org/@r-hannuschka/ngx-fileupload/-/ngx-fileupload-3.2.0.tgz","fileCount":95,"unpackedSize":1615884,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdwhPtCRA9TVsSAnZWagAAAPsP/j2zA1C8wZHat6UJYK3e\njZ5EatXZSSlS8li24snzbdD4KZtp++nx8/XLMsrARhANaXCQOLp/8voe8dQ8\nOTy4gwE4kTdS2ZzmgSk/WiOM+DCc4KEYpm+l6ibijnHc+vDW7FVU2psMRPB5\nXs4JDYOXJKdRnT0JRvmaTAwFv51AYAqaIRyL/g1E82Kr6lV5zhStXiYg7RWN\nNRj4El0jGmUxARtXA4db9AnecwxNYKkL40A9aPQmKKM+AL0UGTJ0Lv1We8DP\n7z2wDRG7rmCaWU0gh6Ed5FWYAxP5tDdiUpPvhOjZIOxkXSqk8iNz8gdRnnq+\nLTHJAemmIHqeBZlgZOVIdh2EuRvheqPmoevJtEIl88skfMTIPuMVJVISzcj0\nyDtRr2kFMOfCahLMQByAiX5iVXAJOiZmL8s8mocQsb7gjYT+Xi2T2vSPGJ7A\nmXsrV1YHipG2QiYNtZGcijOEAi3N6Z+D56dQ4kTQADUnnJlf39aXLAdnH9kI\n/db7pJnIz1PFhOhpPJDe8fAEkx0vY4jG3o2xh5/zhvRkUAmFARaa+5X2SiL8\nTnGNJiEqY5dov97jeOEYQGMVkdfusKGGh+CfGDwNTUXRF1MRp975KTx8syJn\nGu1enAEPywOOEfRzvWIlwLUwMHcOD4+qlN499PIDiHgsrc9qlfLPqoGxxPXm\nVX87\r\n=wIGE\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAK8BjLJIRYihpxz3e/ewwfI8+/0QpW3ZUWjYekqcWYsAiAd/v0kjGJSLarS+YV9xuRJIcZ0bwziNl6iZTnkNBzj0A=="}]},"maintainers":[{"name":"r-hannuschka","email":"r.hannuschka@gmail.com"}],"_npmUser":{"name":"r-hannuschka","email":"r.hannuschka@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ngx-fileupload_3.2.0_1573000172715_0.5849708787454682"},"_hasShrinkwrap":false,"deprecated":"Package has been moved and is no longer maintained, use @ngx-file-upload/core and @ngx-file-upload/ui packages."},"3.2.1":{"name":"@r-hannuschka/ngx-fileupload","version":"3.2.1","description":"Angular 8+ async file upload library with progressbar, upload queue and validation.","repository":{"url":"git+https://github.com/r-hannuschka/ngx-fileupload.git","type":"git"},"license":"MIT","keywords":["ngx","async","angular","angular 8","file","upload","fileupload","progressbar","upload queue","queue"],"peerDependencies":{"@angular/common":"^8.0.1","@angular/core":"^8.0.1"},"author":{"name":"Ralf Hannuschka","url":"https://github.com/r-hannuschka"},"bugs":{"url":"https://github.com/r-hannuschka/ngx-fileupload/issues"},"homepage":"https://github.com/r-hannuschka/ngx-fileupload#readme","main":"bundles/r-hannuschka-ngx-fileupload.umd.js","module":"fesm5/r-hannuschka-ngx-fileupload.js","es2015":"fesm2015/r-hannuschka-ngx-fileupload.js","esm5":"esm5/r-hannuschka-ngx-fileupload.js","esm2015":"esm2015/r-hannuschka-ngx-fileupload.js","fesm5":"fesm5/r-hannuschka-ngx-fileupload.js","fesm2015":"fesm2015/r-hannuschka-ngx-fileupload.js","typings":"r-hannuschka-ngx-fileupload.d.ts","metadata":"r-hannuschka-ngx-fileupload.metadata.json","sideEffects":false,"dependencies":{"tslib":"^1.9.0"},"_id":"@r-hannuschka/ngx-fileupload@3.2.1","_nodeVersion":"10.17.0","_npmVersion":"6.12.1","dist":{"integrity":"sha512-aPa9UL1LYQZ88uYg6rporfECzG5iWXtxgmADFcDNAY/6EyKvbkxydiDyOEArS37NLsoD0pS6L6AMCUlW8m0dWg==","shasum":"87923ece2ce76bdd14164a01ee2bfd14bfccf3c2","tarball":"https://registry.npmjs.org/@r-hannuschka/ngx-fileupload/-/ngx-fileupload-3.2.1.tgz","fileCount":95,"unpackedSize":1633928,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdww2wCRA9TVsSAnZWagAAgEEQAIgc5GmTKsyxcrBqWTSn\nIaMurwOZlMv/39YWJA//FIo1y4TokXH0ZXCfwp3aI0lqLJqbkR+jwet9oY1Y\nJgvi1neYnq81pXAx+lURFDPcEq8xlagY9B2kfxmpc5Guqh3iDujI+rf/AZsD\nHMzxZQylrqaCVXNuxG2vQbYliLgL4KY/d2xz2l4n7JqoZZSMfM/inZxwtiK8\nMF4KNrZLrlpHfcw2qSHsHLAag47m1cB6kQVuWPinGGln6phWiba+28X8y82/\nUKyd+ulaanuUXMLz1G6tmHFYcTjk2Q00bFl/kw2HQWg6ZoHkOPiXDw5W4Tsh\nAN3xV9NI+CFf6noFyHitqaWZ6QLcH/Tw76W1H8iOW7quRCuBFcuzSeLe5YJE\nTorl0QASdx4Cg/wOwmTllnMzv2qiXcR8BS2v607g89fgQ0LkktTsBBMwXtp9\nTXgvtiyQPye7lXYHE8R3aUKsKS2JFfpawU2s5JHeNwXPmwQpsCorWIbC0Fbj\nZxa2+FR9PbDoYWPYs7IGRizXDYBCOacdIN0St4uPOZcPWanowfDmXaBPqx+N\nDXJou0XH2sqVQV5kzAKgXImtLuk4YUzLlpcuwGXRgjV5iSyVKNmAjranSsTZ\nm+ySoG8kab1f7maJQsBIUDUv4X6dj4duLXJleTf5WQbr/L7ED/VkRcLPXFOQ\n8QTP\r\n=CBef\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHh+ytPgZZfvtuOpS0sS6z0Y3rNPJJgcklkv3Xv+kNRQAiEA9GhT6pjzyJ4TIN2uzm9XjJOYsB1gMVD24BWOqbDNsRM="}]},"maintainers":[{"name":"r-hannuschka","email":"r.hannuschka@gmail.com"}],"_npmUser":{"name":"r-hannuschka","email":"r.hannuschka@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ngx-fileupload_3.2.1_1573064111489_0.7828181519581909"},"_hasShrinkwrap":false,"deprecated":"Package has been moved and is no longer maintained, use @ngx-file-upload/core and @ngx-file-upload/ui packages."},"3.2.2":{"name":"@r-hannuschka/ngx-fileupload","version":"3.2.2","description":"Angular 8+ async file upload library with progressbar, upload queue and validation.","repository":{"url":"git+https://github.com/r-hannuschka/ngx-fileupload.git","type":"git"},"license":"MIT","keywords":["ngx","async","angular","angular 8","file","upload","fileupload","progressbar","upload queue","queue"],"peerDependencies":{"@angular/common":"^8.0.1","@angular/core":"^8.0.1"},"author":{"name":"Ralf Hannuschka","url":"https://github.com/r-hannuschka"},"bugs":{"url":"https://github.com/r-hannuschka/ngx-fileupload/issues"},"homepage":"https://github.com/r-hannuschka/ngx-fileupload#readme","main":"bundles/r-hannuschka-ngx-fileupload.umd.js","module":"fesm5/r-hannuschka-ngx-fileupload.js","es2015":"fesm2015/r-hannuschka-ngx-fileupload.js","esm5":"esm5/r-hannuschka-ngx-fileupload.js","esm2015":"esm2015/r-hannuschka-ngx-fileupload.js","fesm5":"fesm5/r-hannuschka-ngx-fileupload.js","fesm2015":"fesm2015/r-hannuschka-ngx-fileupload.js","typings":"r-hannuschka-ngx-fileupload.d.ts","metadata":"r-hannuschka-ngx-fileupload.metadata.json","sideEffects":false,"dependencies":{"tslib":"^1.9.0"},"_id":"@r-hannuschka/ngx-fileupload@3.2.2","_nodeVersion":"10.17.0","_npmVersion":"6.13.0","dist":{"integrity":"sha512-yki+2hp2Ow3O7pdgxOjY62e+c0+AdclZXxpkosCW3HZ1PKn3+15KzzccZ01YJL5U5daVENPAZ/768KHGIqHJ6A==","shasum":"950ae45e2d50bf5ef184e8446fb2838a297176f6","tarball":"https://registry.npmjs.org/@r-hannuschka/ngx-fileupload/-/ngx-fileupload-3.2.2.tgz","fileCount":95,"unpackedSize":1633945,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdxSohCRA9TVsSAnZWagAAuuAP/2CdTqn45PpI1R0tGSWY\nl75+RQQliwy+DPsbb70SS7ymAiw9YEs+QnBITCeViKh3eA6hjEBH7WQn5YiB\nwqwhsxpXMHUaGiXgFc+GgWD6LQ7gH1Kr04Eqj5cJRTmQwwscG5tuaJTBxjom\nkyyCeHkT8RlAxTpmTlouhB1bQZoBvQO52Y3iFgX9bS/41vf2iaw/VoBaA6OW\n8Ldjgl4RKcRN4/3rtTSHCnZlhLGX0KpPvQxUtJm+O/OLqsUikkqEPuqIkg0a\nEWdci1X7GlXZ66OYXK6a3Kp86ey5oUV/QdDpILB7j0pvQ38DgJe1e/XvW2tF\nViH+fdmo4VZTGgINCdcE9WDeLZeJJPmtUeGEYwhwXi0JPs+fSdTmAoTHHzaj\neGqf1GP7QD0jiBV+MRRZzCsdN37oT9uod3a02w+LTrwpMDr6SLsYEVDngkGF\nWQyIS10exDRgt/yS6Z8fXCIsJnBiL9ZhfzMeojqrjF6QBY+0lCoI1LCcH2PK\n3oui1BjRUAzJ9/YnLTVbJquJcrLKkt9hQuoA95fIgZm95clMmEPQPrGh6dFq\npjeUptaStsQ54i/STwe+2p1F8y4s/0sgtZEatrJiGwHGuK7ReuPVB035iwLo\nWoZ9CIvThKIt8Us62SmC+TYuZIS/DYzmBiCYJzragtPIhsSoYHp46g0cY0rI\nqRSQ\r\n=YQnd\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEoeylnb5RW7Ei5Hve/1X0s8LWdCLVkvkNjNQZbwA0HpAiADKdQ7C5sJRpDy/dawzaihUW0cgx4C4LQaUfpvsPmB1w=="}]},"maintainers":[{"name":"r-hannuschka","email":"r.hannuschka@gmail.com"}],"_npmUser":{"name":"r-hannuschka","email":"r.hannuschka@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ngx-fileupload_3.2.2_1573202464662_0.8914877148452163"},"_hasShrinkwrap":false,"deprecated":"Package has been moved and is no longer maintained, use @ngx-file-upload/core and @ngx-file-upload/ui packages."},"3.2.3":{"name":"@r-hannuschka/ngx-fileupload","version":"3.2.3","description":"Angular 8+ async file upload library with progressbar, upload queue and validation.","repository":{"url":"https://r-hannuschka.github.io/ngx-fileupload","type":"git"},"license":"MIT","keywords":["ngx","async","angular","angular 8","file","upload","fileupload","progressbar","upload queue","queue"],"peerDependencies":{"@angular/common":"^8.0.1","@angular/core":"^8.0.1"},"author":{"name":"Ralf Hannuschka","url":"https://github.com/r-hannuschka"},"bugs":{"url":"https://github.com/r-hannuschka/ngx-fileupload/issues"},"homepage":"https://github.com/r-hannuschka/ngx-fileupload#readme","main":"bundles/r-hannuschka-ngx-fileupload.umd.js","module":"fesm5/r-hannuschka-ngx-fileupload.js","es2015":"fesm2015/r-hannuschka-ngx-fileupload.js","esm5":"esm5/r-hannuschka-ngx-fileupload.js","esm2015":"esm2015/r-hannuschka-ngx-fileupload.js","fesm5":"fesm5/r-hannuschka-ngx-fileupload.js","fesm2015":"fesm2015/r-hannuschka-ngx-fileupload.js","typings":"r-hannuschka-ngx-fileupload.d.ts","metadata":"r-hannuschka-ngx-fileupload.metadata.json","sideEffects":false,"dependencies":{"tslib":"^1.9.0"},"_id":"@r-hannuschka/ngx-fileupload@3.2.3","_nodeVersion":"10.17.0","_npmVersion":"6.13.0","dist":{"integrity":"sha512-XYlkTOaW9iz5Z5+pMfjN8DbEEL5yH5xK7AE7ukfe7CDW9piQsbPWiFSiLGAet6ql9OW7yVjvYpD5ABc2zhMy5w==","shasum":"895a465b7fcdc788b2101a68bf05866a31dc9176","tarball":"https://registry.npmjs.org/@r-hannuschka/ngx-fileupload/-/ngx-fileupload-3.2.3.tgz","fileCount":95,"unpackedSize":1634109,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdxS+rCRA9TVsSAnZWagAAuy8P/RK9H0YTFGixa7j+pgLg\nrYHRu7HtrDpkHUFDjKPCZcegnHgeyLMpcmjTrW9j6QJbjLcw7cOog/X3JtW5\n3H71jV0jTbPV+z2EJ0qZvqeXekxxR3e1kEMgByWsbFwHYnW+MjkfzYKQ2Ua3\nyaaiH6BKgDQ9OHp+KJGzDCLzDYQOGwOaJPReSbAXYwCt9cnVjnsGAm3SvB1Y\nnJY2+J74v0dVi5soGLLxx+VpnOlF3EPfnI9u9dH7zYO7u9/sjxTG4A4RNLVf\neGgFLSg/3GC0qG9zRAvVwtJqjxZW0FSrtrmgDfxHrxhN1s62MD2WL73mi8ua\nTkaNNetryuy5ypB4HmGKhH3DO41BiVs9WrBzhZhfToisiREeQlcRNhPOIWoD\nRzz0QQUQ9ASPxNAT7O4Y0AOI3ssYBBH7+azr/flf88AGh8nsoN2uo+XeRtHq\nblnzV7ClM1LzpQthaLYNUxR8nuIFeK04T7ZF2UMA972c4Nr/2g0E/6FJ18WR\nvQd8lYwImZiX0p18a5DOVUm62N1eW76j8yCdcxQkKvn0vpkh6X+r6tHnKdJC\nzgRUWIIy8tJviB2HXo2X6nNyoi+4TA/LZTqKdf2Lg6pdCpZnHY8q3p2c+vYY\nBvinkYGfcEvrooduRZSsiVFOioVGoLI678d1FLxawZUroQ74NQU+r3AUAg3U\nHmo+\r\n=79Jg\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCijMcC5HllbUsxaRkJkghxokmiJ2O4tfrCV3O2acku8wIgSxIGW2E7TGn8l4QTU5EJCLF964u+Ww2rdQGF2juIkGY="}]},"maintainers":[{"name":"r-hannuschka","email":"r.hannuschka@gmail.com"}],"_npmUser":{"name":"r-hannuschka","email":"r.hannuschka@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ngx-fileupload_3.2.3_1573203883255_0.3763879706333668"},"_hasShrinkwrap":false,"deprecated":"Package has been moved and is no longer maintained, use @ngx-file-upload/core and @ngx-file-upload/ui packages."},"3.2.4":{"name":"@r-hannuschka/ngx-fileupload","version":"3.2.4","description":"Angular 8+ async file upload library with progressbar, upload queue and validation.","repository":{"url":"git+https://github.com/r-hannuschka/ngx-fileupload.git","type":"git"},"license":"MIT","keywords":["ngx","async","angular","angular 8","file","upload","fileupload","progressbar","upload queue","queue"],"peerDependencies":{"@angular/common":"^8.0.1","@angular/core":"^8.0.1"},"author":{"name":"Ralf Hannuschka","url":"https://github.com/r-hannuschka"},"bugs":{"url":"https://github.com/r-hannuschka/ngx-fileupload/issues"},"homepage":"https://r-hannuschka.github.io/ngx-fileupload","_id":"@r-hannuschka/ngx-fileupload@3.2.4","_nodeVersion":"10.17.0","_npmVersion":"6.13.0","dist":{"integrity":"sha512-qsFNFSx7FKjqMzJYMT2HyYfaZNTcMgwazng8cBITM894huSs0N5cBCTpStLIVnGrg2Z74XcImzdEhDIiYMwZvg==","shasum":"641d6ac35c901176dc96303dd1415d829936c3d9","tarball":"https://registry.npmjs.org/@r-hannuschka/ngx-fileupload/-/ngx-fileupload-3.2.4.tgz","fileCount":64,"unpackedSize":129799,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdxTs2CRA9TVsSAnZWagAAaCIP/3UKA37X+B7zp89f2XCI\nDFMRQhv2x4vHAq1zmH0urCXm2xN5BSMB+g1X5ep99rjwTcdqBT6F3YLitQq1\naRYTpVXbHNQWjUN5i4nDDimHdRu432i8bBvjzfT4Ng0bf1Hz69wUp0CvNVtg\n5ar8hVb8PtNOmG4smgcDIU4OYl4u93/gKEkaVfNluKLGOikBIrhjlfvYoyu6\nHLF8HJBFzKvqn9A/Cj/KGu1hKeTWm+lNQECVPOYn+2Nt5RgvlT2DgwrGAcOr\n4WIYuiNPmce4ggmkez6avJ94FbbkoTPKeU2BHZUk9mzWH/5Cg+KSm6yDuqCg\nTDxvuPfA4792ZxvOwKRb3EvOvGpam5/MUrTMngOUwqrfLvqGLKwQbEsFudZz\noCbkRbpNYS+VDm0DjBkagOyXJjDWotkeQGgei3Y4xUBAzZXa4/LV5zb4xV5j\nAT7FGtpmYSoXSjqEZvdmk1k6ILw/GwBl+aFRt1RCsqtym+PPelIK7+pRp+p/\nSd5tZVqdkYfcP9bJOS8YMfgY0fxWThDyXvU+PUoOaP11LhTtvK9wQczYv0o+\nYiQH2aLghdkShbzYy26prCZyoffZ+yXljMyCy/yeIh/JZhivxzoDHVAsmEVf\nPtQRlwHtL5c7bf3baWtIhNJiNjO2oJ1PlVRBIHhOGRaE2NxH//DM6I4z3ORN\n3QZO\r\n=OLHX\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAyiwQtrlVEtKugahmQ2s2t868Vblov1WVWMgYr+axTWAiEA+h4slX2mZG/AK1l9+cHaL0jlqg/8NZPCigV93sJMmP0="}]},"maintainers":[{"name":"r-hannuschka","email":"r.hannuschka@gmail.com"}],"_npmUser":{"name":"r-hannuschka","email":"r.hannuschka@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ngx-fileupload_3.2.4_1573206838388_0.809340465843996"},"_hasShrinkwrap":false,"deprecated":"Package has been moved and is no longer maintained, use @ngx-file-upload/core and @ngx-file-upload/ui packages."},"3.3.0":{"name":"@r-hannuschka/ngx-fileupload","version":"3.3.0","description":"Angular 8+ async file upload library with progressbar, upload queue and validation.","repository":{"url":"git+https://github.com/r-hannuschka/ngx-fileupload.git","type":"git"},"license":"MIT","keywords":["ngx","async","angular","angular 8","file","upload","fileupload","progressbar","upload queue","queue"],"peerDependencies":{"@angular/common":"^8.0.1","@angular/core":"^8.0.1"},"author":{"name":"Ralf Hannuschka","url":"https://github.com/r-hannuschka"},"bugs":{"url":"https://github.com/r-hannuschka/ngx-fileupload/issues"},"homepage":"https://r-hannuschka.github.io/ngx-fileupload","main":"bundles/r-hannuschka-ngx-fileupload.umd.js","module":"fesm5/r-hannuschka-ngx-fileupload.js","es2015":"fesm2015/r-hannuschka-ngx-fileupload.js","esm5":"esm5/r-hannuschka-ngx-fileupload.js","esm2015":"esm2015/r-hannuschka-ngx-fileupload.js","fesm5":"fesm5/r-hannuschka-ngx-fileupload.js","fesm2015":"fesm2015/r-hannuschka-ngx-fileupload.js","typings":"r-hannuschka-ngx-fileupload.d.ts","metadata":"r-hannuschka-ngx-fileupload.metadata.json","sideEffects":false,"dependencies":{"tslib":"^1.9.0"},"_id":"@r-hannuschka/ngx-fileupload@3.3.0","_nodeVersion":"10.17.0","_npmVersion":"6.13.0","dist":{"integrity":"sha512-ijYSeytGIVsC9ZwDdexiZyx3c4tKknGg+6ZFu7rocTZuuZavvqjVVA+565R/JHaWNoAJB2SpbP1dIIQaJofKBQ==","shasum":"05aa0ac4badf9089e571c33785cac626866c6315","tarball":"https://registry.npmjs.org/@r-hannuschka/ngx-fileupload/-/ngx-fileupload-3.3.0.tgz","fileCount":95,"unpackedSize":1613640,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdyw4SCRA9TVsSAnZWagAALI0P/jO7egpsF0uxI38hO3Kw\n5LVCzRGEqHNWvuQA3oIZpY40UCdMNOWsjUXC7MQ+SAw44AcZHT3AOe1g+h+M\njN6Exxk/pLC3e0LfaezKS1jjyuDYG8jn7LUv5fSea6dJeGL4IGTfX6gIZE6H\nqJ3O0gk/VT5/HnjE2SmRIXjXYiaGhOVI/HEKfV5HozSUqkw+I26CUzOSLfg5\n7y378y9D4eOa4ti82TdvttC8G1ac+LSV2NIhRNeorOWupsdETzSrR6CNX1fp\nIIolK1zPxxqM9ORm3/U3Q5t5FibA8xBnIPks1sOVWZlUTQ0rciogz4L85yGx\nKhsdMBD2lIJ8Knzv/1XsRjxHIUahbhgqBCmFBO0iRDFcOD52wRe4Si35Q51A\n51NuWEPZsQXJUXzKEITdzhZcdR9WOtZlzAqKvDNPv558LRQSHh9bZClNVB17\n3RhVJQ9mB+oBPNDUkhJn2bBt/G/gfhQPkZnbZ2Zdz1SmBrexl7j5MD/sa4SD\nXtqX+zj5uhbERmXnUflYujMoY2Ui3x4vi06Q7hFwLzlrL7VVHV0rCjzMdfa+\n1fRtj2nGbMXQ2uiDoDK7M6NDd/GwyoavUnNVelFMhERvttVgPBy+jPtSpr/M\n/YEbrci7skJhAUvlI60O6QymgVHbA68QK1wc7lPgAaEUkEohnAu8H5E+s1O7\nWnm+\r\n=DebQ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFj1GvZ3ZXkEWMWAgoWEfbQ6RoYd/4pvaKmMVzBS0i2FAiBAFAAB6JH++1B7fUqTe33fE4M9RpFDQMzO3bllD9/u7A=="}]},"maintainers":[{"name":"r-hannuschka","email":"r.hannuschka@gmail.com"}],"_npmUser":{"name":"r-hannuschka","email":"r.hannuschka@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ngx-fileupload_3.3.0_1573588498465_0.3453593712419505"},"_hasShrinkwrap":false,"deprecated":"Package has been moved and is no longer maintained, use @ngx-file-upload/core and @ngx-file-upload/ui packages."},"3.4.0":{"name":"@r-hannuschka/ngx-fileupload","version":"3.4.0","description":"Angular 8+ async file upload library with progressbar, upload queue and validation.","repository":{"url":"git+https://github.com/r-hannuschka/ngx-fileupload.git","type":"git"},"license":"MIT","keywords":["ngx","async","angular","angular 8","file","upload","fileupload","progressbar","upload queue","queue"],"peerDependencies":{"@angular/common":"^8.0.1","@angular/core":"^8.0.1"},"author":{"name":"Ralf Hannuschka","url":"https://github.com/r-hannuschka"},"bugs":{"url":"https://github.com/r-hannuschka/ngx-fileupload/issues"},"homepage":"https://r-hannuschka.github.io/ngx-fileupload","main":"bundles/r-hannuschka-ngx-fileupload.umd.js","module":"fesm5/r-hannuschka-ngx-fileupload.js","es2015":"fesm2015/r-hannuschka-ngx-fileupload.js","esm5":"esm5/r-hannuschka-ngx-fileupload.js","esm2015":"esm2015/r-hannuschka-ngx-fileupload.js","fesm5":"fesm5/r-hannuschka-ngx-fileupload.js","fesm2015":"fesm2015/r-hannuschka-ngx-fileupload.js","typings":"r-hannuschka-ngx-fileupload.d.ts","metadata":"r-hannuschka-ngx-fileupload.metadata.json","sideEffects":false,"dependencies":{"tslib":"^1.9.0"},"_id":"@r-hannuschka/ngx-fileupload@3.4.0","_nodeVersion":"10.17.0","_npmVersion":"6.13.0","dist":{"integrity":"sha512-4fOEdoMg6sX9PWcwUMf5iWA6NwYvAzTuXTB5DTddTNMhzb5GqukNWTakFeXNzXqkgZj8zBIz0kkzlEPZKU+9kA==","shasum":"e8a1f810a2a2388e7e0916b41ff16057577e7e0d","tarball":"https://registry.npmjs.org/@r-hannuschka/ngx-fileupload/-/ngx-fileupload-3.4.0.tgz","fileCount":92,"unpackedSize":1545819,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd2ZenCRA9TVsSAnZWagAANZsP/3eNEku3eRCjeI/ImtdO\nj+JPKftDnkWD6hv/SNShMZH2bZbLISl2/0ddsu5yZNQWx5/+jRV3+GhWA0+4\nRuxvvOmedEbn7M325ri8wWU+UHiE10uMjNX6cZAj4HHSuorImtytU70kxeSm\njyTuHkLBckRa+TBkR5NmRzdoMbA/8Vgrok4buPyNSjiWmjcx10fMg4hCm7ka\nLTD9vz9hY3J0hGJzFzVY6TQSjssY4Uv4n3/97/91/6Qd7J3eFdsBQGNr1bvj\nTDoZ34mA5AE/ySxexn9V6+hdlNypUrGh2h9xAl2+VJxxq+ToSHeW7AvnVNxm\nTMXWvXTkP7dqTe5k3Y615+e3XlE3kDIYOW/X2XeBChSp5Z4QSIhJ/BX5D7TG\nwGFLoCawNLj1z8vlfag+tjzeMxkCAJDg0ImW6Xbi0y5dcXIQDlsvSR7B270T\nqdxgYpIdVFuOI7tp1SsQpeG1gAyDOLR1MwWo9c20PqjyxlMozW2DmxqtCcDQ\nKRyFB5d4YFnatHxPthJKkCmgKFbQIePgQlHr8McuTnsN0CeAy4Eb1UXgR2Tt\nBbU9Z/w1EAefNLB9vDfxPGsVzvHdd8Iwr2KQw3NKVc94DrWiH3WnEZlWsVDB\n4aR5Q0q/YKdQJHA4f1NI2oTgvvdYQkl8c2YUYgp1XvpV/44TOK1Ka4IJlUYs\ntMjU\r\n=Oaq3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDIxCiAYZd7RZKZULXWeehQKKj2yb2RBG17Ex1mZPPuNAIgGvEQE5PrZpILlg6O+u5o7AdKsjmbeNa4gZxNS0xiCTg="}]},"maintainers":[{"name":"r-hannuschka","email":"r.hannuschka@gmail.com"}],"_npmUser":{"name":"r-hannuschka","email":"r.hannuschka@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ngx-fileupload_3.4.0_1574541222863_0.08390208085838724"},"_hasShrinkwrap":false,"deprecated":"Package has been moved and is no longer maintained, use @ngx-file-upload/core and @ngx-file-upload/ui packages."},"3.4.1":{"name":"@r-hannuschka/ngx-fileupload","version":"3.4.1","description":"Angular 8+ async file upload library with progressbar, upload queue and validation.","repository":{"url":"git+https://github.com/r-hannuschka/ngx-fileupload.git","type":"git"},"license":"MIT","keywords":["ngx","async","angular","angular 8","file","upload","fileupload","progressbar","upload queue","queue"],"peerDependencies":{"@angular/common":"^8.0.1","@angular/core":"^8.0.1"},"author":{"name":"Ralf Hannuschka","url":"https://github.com/r-hannuschka"},"bugs":{"url":"https://github.com/r-hannuschka/ngx-fileupload/issues"},"homepage":"https://r-hannuschka.github.io/ngx-fileupload","main":"bundles/r-hannuschka-ngx-fileupload.umd.js","module":"fesm5/r-hannuschka-ngx-fileupload.js","es2015":"fesm2015/r-hannuschka-ngx-fileupload.js","esm5":"esm5/r-hannuschka-ngx-fileupload.js","esm2015":"esm2015/r-hannuschka-ngx-fileupload.js","fesm5":"fesm5/r-hannuschka-ngx-fileupload.js","fesm2015":"fesm2015/r-hannuschka-ngx-fileupload.js","typings":"r-hannuschka-ngx-fileupload.d.ts","metadata":"r-hannuschka-ngx-fileupload.metadata.json","sideEffects":false,"dependencies":{"tslib":"^1.9.0"},"_id":"@r-hannuschka/ngx-fileupload@3.4.1","_nodeVersion":"10.17.0","_npmVersion":"6.13.0","dist":{"integrity":"sha512-SvWK4/8bXgSSBhpR+/t8mA2YhRxGdtL86I2KH3rqZWEXB900PmHrJ+LHi3mBTjJk0/rNlMt/LLx8sIRoOD/JZg==","shasum":"e9f5471b8fe7ab7eb6e10fae57a2d369eab78d2a","tarball":"https://registry.npmjs.org/@r-hannuschka/ngx-fileupload/-/ngx-fileupload-3.4.1.tgz","fileCount":92,"unpackedSize":1540517,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd2s0BCRA9TVsSAnZWagAAl/MP/jqAi8ZTz0vK7QFLLgju\n9ivFXE78IdlBT/TvnXiDG0dWC7P+8FdvmgAP0BpC1uvD5nDyDJCNkxjzm7Xz\nGHxbRJvuoQ7fiApj3e7CY60otW/d8ueqSd7ugAikMCWbD343nXqzZhMJsbei\nXS3JmjGcT1LDAIk88iG662KA1M07WdNakzdOwikzfhZy+w5NVg17EubLp2X0\nNtrhT/gnx8y9ic8eUDFVtqqwrgmAWR5xfbt0KYKpFW4dQ3Yu8+MTQs/Uf6Q2\nL1O3/hJbpySiYJcrwageF56/24kMRU9tmNXcXwmsaWDTDLDMZMzEdVD27cIV\nBAQo3drntuhHFAI+0gHoKLi5qaMeWjwN19cSKUQ2EqEdZYZzmPJyiA45tf1g\n0lkaW+0k7eYH0c7+lffhGfCkoUZD8LeHzNryREOnbs+ZjvYDizemaJwdGYd2\nyI2tx4FFz8bEp2O5o4zVOuqKtomg9h83jE8tui5iwbCTmZRp8brd64ww2qby\n2cDYXwzgyQJFSIrFFntjC9O3+Cx8CQUmykbVL5EU54uOieFE0oOyRQI8XW+W\nOhLFI09kfqX+LUrfOq7XCjernX17tHBojrKmOy9LfhUUddsZLnaE1s1YtiV6\nsEi5kv5c1QYM62oGnJ9hWm0hUQfay/LONyGMxxW/q+lAkSMAE4/JkK3f1FCh\nWz2H\r\n=/Dm1\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFiFhbtkAnFvPS5YBbRwnAeMS5aG3AE3ZTk+4HH/UnLYAiBisP0y5TY9JFgZeCqhb1mc3BzQJRCeCPunI4PeDeaWRg=="}]},"maintainers":[{"name":"r-hannuschka","email":"r.hannuschka@gmail.com"}],"_npmUser":{"name":"r-hannuschka","email":"r.hannuschka@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ngx-fileupload_3.4.1_1574620416712_0.601721450931356"},"_hasShrinkwrap":false,"deprecated":"Package has been moved and is no longer maintained, use @ngx-file-upload/core and @ngx-file-upload/ui packages."},"3.4.2":{"name":"@r-hannuschka/ngx-fileupload","version":"3.4.2","description":"Angular 8+ async file upload library with progressbar, upload queue and validation.","repository":{"url":"git+https://github.com/r-hannuschka/ngx-fileupload.git","type":"git"},"license":"MIT","keywords":["ngx","async","angular","angular 8","file","upload","fileupload","progressbar","upload queue","queue"],"peerDependencies":{"@angular/common":"^8.0.1","@angular/core":"^8.0.1"},"author":{"name":"Ralf Hannuschka","url":"https://github.com/r-hannuschka"},"bugs":{"url":"https://github.com/r-hannuschka/ngx-fileupload/issues"},"homepage":"https://r-hannuschka.github.io/ngx-fileupload","main":"bundles/r-hannuschka-ngx-fileupload.umd.js","module":"fesm5/r-hannuschka-ngx-fileupload.js","es2015":"fesm2015/r-hannuschka-ngx-fileupload.js","esm5":"esm5/r-hannuschka-ngx-fileupload.js","esm2015":"esm2015/r-hannuschka-ngx-fileupload.js","fesm5":"fesm5/r-hannuschka-ngx-fileupload.js","fesm2015":"fesm2015/r-hannuschka-ngx-fileupload.js","typings":"r-hannuschka-ngx-fileupload.d.ts","metadata":"r-hannuschka-ngx-fileupload.metadata.json","sideEffects":false,"dependencies":{"tslib":"^1.9.0"},"_id":"@r-hannuschka/ngx-fileupload@3.4.2","_nodeVersion":"10.17.0","_npmVersion":"6.13.0","dist":{"integrity":"sha512-tE3IuS02Lr7zonQKL+WWtOKRTrYW/q3ZQoQHSSjKTplGeW5BD4l/w5EIOhYSmk0YdvJCia2aL/hl7UVTWdLLBg==","shasum":"2975f2f8ee295ec3533e2442d1d35f4785b8f8c1","tarball":"https://registry.npmjs.org/@r-hannuschka/ngx-fileupload/-/ngx-fileupload-3.4.2.tgz","fileCount":92,"unpackedSize":1540568,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd3FkbCRA9TVsSAnZWagAA6SEP/0El1bguK7ya+M3ABzrv\n4xFUpWAtwDXgHT/WaVko/QbIeiVgs5JglEsK2kG4O5jRvtVhORWCnMVx3fWb\n7T9ZGKeiG4xuyoXjPijXNe4BXlKgqHy01NmBsHwMPD56U8PK9AW27agewbDc\ndVgMKwkZcyF4Ta0uKx4p0wMDGAWMeuooJ3oolwQAZI9uTRCHC0rU2scXaYTB\nd2ax8ycpSBN3Ssd+xdInxvcJ3XV5MYrDwpGgLjKfQewJjFBfoTyfaLWL6D5V\nNMeN1Mv0B87P55//gQFV7B4XQvd+ZJM5aBzBUyPHrJ166ALd5IKSZo9Zad6Y\n+3nhh3U4cZbzvgWWoPDOytbgzDHNQEVWrhq5VUbIyHE/BbAKT2x2mOTa/7Uq\nzRtNojyCS23X1qs2afts9ZuPqiatd8r5XzYyX5DOKJgTWjxljZbYgRc3umTG\n6Vuie5Jbmp6oAk2bfl/WCYb+a0+cdKRAP1uI0c0Qe7cEkcxqgjjonK774dAj\nHkvNmWlnYGr+sUrR8DUi3LL6EwXzMha0wK4oQqSFKjY4KZioVGXGtf39kGF9\nb50F9GESM5GahOWdx76vxd3fRcRQntGKDx96lkzkZSpEjble7pPQKIpbPlOK\ntuyDTefRagMZT9dbbjWP0WUUQI/WX0FhKWdXt7D21ejbn97IwxFCMKab2dNi\nHPK9\r\n=z/dt\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCQh+G/y7quX+2PfPr6I93FWQO24LAk4KIkiP7fZ5FaMgIgXqC56VFUxTuy7JGY+0yEgNqbQGLF4U6Ph8EKwzmvumA="}]},"maintainers":[{"name":"r-hannuschka","email":"r.hannuschka@gmail.com"}],"_npmUser":{"name":"r-hannuschka","email":"r.hannuschka@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ngx-fileupload_3.4.2_1574721819209_0.2976502568438075"},"_hasShrinkwrap":false,"deprecated":"Package has been moved and is no longer maintained, use @ngx-file-upload/core and @ngx-file-upload/ui packages."},"3.4.3":{"name":"@r-hannuschka/ngx-fileupload","version":"3.4.3","description":"Angular 8+ async file upload library with progressbar, upload queue and validation.","repository":{"url":"git+https://github.com/r-hannuschka/ngx-fileupload.git","type":"git"},"license":"MIT","keywords":["ngx","async","angular","angular 8","file","upload","fileupload","progressbar","upload queue","queue"],"peerDependencies":{"@angular/common":"^8.0.1","@angular/core":"^8.0.1"},"author":{"name":"Ralf Hannuschka","url":"https://github.com/r-hannuschka"},"bugs":{"url":"https://github.com/r-hannuschka/ngx-fileupload/issues"},"homepage":"https://r-hannuschka.github.io/ngx-fileupload","main":"bundles/r-hannuschka-ngx-fileupload.umd.js","module":"fesm5/r-hannuschka-ngx-fileupload.js","es2015":"fesm2015/r-hannuschka-ngx-fileupload.js","esm5":"esm5/r-hannuschka-ngx-fileupload.js","esm2015":"esm2015/r-hannuschka-ngx-fileupload.js","fesm5":"fesm5/r-hannuschka-ngx-fileupload.js","fesm2015":"fesm2015/r-hannuschka-ngx-fileupload.js","typings":"r-hannuschka-ngx-fileupload.d.ts","metadata":"r-hannuschka-ngx-fileupload.metadata.json","sideEffects":false,"dependencies":{"tslib":"^1.9.0"},"_id":"@r-hannuschka/ngx-fileupload@3.4.3","_nodeVersion":"10.17.0","_npmVersion":"6.13.0","dist":{"integrity":"sha512-VOmfNZOy8JZF8lKoLcRQLFp9/UAmi4bt5IQAvgh9qlc8mVWAOg3WlGSnOxIhfj3/v7AYxHowSDcTLrbk3BKYQA==","shasum":"8b149de5071d59fd057cf350d7b7dfe041ab5a05","tarball":"https://registry.npmjs.org/@r-hannuschka/ngx-fileupload/-/ngx-fileupload-3.4.3.tgz","fileCount":92,"unpackedSize":1561863,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd4qvsCRA9TVsSAnZWagAAMhkQAI+6ighl5gtPAwSlqDJ7\n3rJHIqq0AiGMNlhbivFu/hU1iI6iDszuMC9XTpUCYpn8Jqg5MFyIx21UCjTP\nxEBcxiXxCZDkk/TmO4lsnbfe3a7riq+4O10M+FqGD4RmdliJ4Fi1tTZY+hFr\nxJQcpXnoGJU7lSmEVY/QynVSdsMLffKLv1P1eRtH+7NWgXZ0RJkM2DTqiWc4\nsB1KeZ6AilaaMpj25tWeiIRkT5zZ6TGUHFC3AjJpByzt3ldC2dUXL7BIanLP\naT89VEs9+5dIRkWtdN1M6ydDrvpOKf/lFYQeMctzH7gSwgCB/cpEMGo78HOW\nCih2f2RRkwiQKN5U6Oiq4iFhSJ9B3vb+6SuZ6uPMmcCiV6s7ga3YJnwTTPM2\n6yXaE28IPlRfJscoScnxICxr4NqieID7KjtWo4CbBu2wY3F+7NR0fCK5bPnr\nuBBEEqshaNYf5SYvD1E7tMJ3teNhtYerJ4I5X05em7Yj9Dl4TreurMSRRi+k\nnnD6CYffI3ufbFM/GS2wNIXlrIlxiz/1SkrAGfuv6HXEOOjrF1jUHFOXe9sk\ntlmGYExTq1Tv2VsXVqOw+KstN3qqoclmyWkj/Sm/PxmZyD6CvnMy4f3ssUoB\nATIfEknLtQlkQQXWUDn3hcfotzZ38cxtL0clyVhZ4GSZbMVMXzt95pj9gUXH\ndccd\r\n=NZaw\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFinclEzYkFLJZnYqVLXawseogXLM3kG+bFs7K7BuaY+AiB/OkHthLyyA7vAKHoGDDTw0bpjoBGUrIDck3czhF1Dvw=="}]},"maintainers":[{"name":"r-hannuschka","email":"r.hannuschka@gmail.com"}],"_npmUser":{"name":"r-hannuschka","email":"r.hannuschka@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ngx-fileupload_3.4.3_1575136235516_0.0513930860635341"},"_hasShrinkwrap":false,"deprecated":"Package has been moved and is no longer maintained, use @ngx-file-upload/core and @ngx-file-upload/ui packages."}},"time":{"created":"2019-06-28T23:16:12.702Z","0.0.1":"2019-06-28T23:16:12.867Z","modified":"2022-04-06T17:48:24.813Z","0.1.0":"2019-06-29T20:14:42.624Z","0.1.1":"2019-06-30T12:12:05.618Z","0.2.0":"2019-06-30T17:45:26.138Z","0.2.1":"2019-06-30T19:15:15.637Z","0.3.0":"2019-07-01T22:03:02.844Z","0.4.0-beta.0":"2019-07-02T18:49:26.496Z","0.4.0-beta.1":"2019-07-02T18:57:18.425Z","0.4.0-beta.2":"2019-07-02T20:40:42.806Z","0.4.0":"2019-07-03T16:42:03.367Z","0.5.0-beta.1":"2019-07-04T17:36:59.016Z","1.0.0":"2019-07-09T11:18:59.826Z","1.0.1":"2019-07-09T21:29:10.859Z","1.0.2":"2019-07-11T17:10:36.745Z","1.0.3":"2019-07-15T09:24:58.706Z","1.0.4":"2019-07-24T11:54:42.004Z","2.0.0-beta.0":"2019-09-06T11:31:36.137Z","2.0.0":"2019-09-08T16:46:24.091Z","2.0.1":"2019-10-05T10:32:42.529Z","2.1.1":"2019-10-11T12:35:04.873Z","3.0.0":"2019-10-27T16:26:03.754Z","3.0.1":"2019-10-27T18:26:44.317Z","3.1.0":"2019-11-02T00:17:49.399Z","3.2.0":"2019-11-06T00:29:32.893Z","3.2.1":"2019-11-06T18:15:11.634Z","3.2.2":"2019-11-08T08:41:04.836Z","3.2.3":"2019-11-08T09:04:43.414Z","3.2.4":"2019-11-08T09:53:58.490Z","3.3.0":"2019-11-12T19:54:58.601Z","3.4.0":"2019-11-23T20:33:43.064Z","3.4.1":"2019-11-24T18:33:36.975Z","3.4.2":"2019-11-25T22:43:39.382Z","3.4.3":"2019-11-30T17:50:35.713Z"},"maintainers":[{"name":"r-hannuschka","email":"r.hannuschka@gmail.com"}],"description":"Angular 8+ async file upload library with progressbar, upload queue and validation.","homepage":"https://r-hannuschka.github.io/ngx-fileupload","keywords":["ngx","async","angular","angular 8","file","upload","fileupload","progressbar","upload queue","queue"],"repository":{"url":"git+https://github.com/r-hannuschka/ngx-fileupload.git","type":"git"},"author":{"name":"Ralf Hannuschka","url":"https://github.com/r-hannuschka"},"bugs":{"url":"https://github.com/r-hannuschka/ngx-fileupload/issues"},"license":"MIT","readme":"# NgxFileupload\n\n[![npm](https://img.shields.io/npm/v/@r-hannuschka/ngx-fileupload.svg?maxAge=2592000?style=plastic)](https://www.npmjs.com/package/@r-hannuschka/ngx-fileupload)\n![](https://github.com/r-hannuschka/ngx-fileupload/workflows/ngx-fileupload/badge.svg?branch=master)\n[![Codacy Badge](https://api.codacy.com/project/badge/Grade/dc2f1a553c31471a95184d397bf72eb3)](https://www.codacy.com/app/r-hannuschka/ngx-fileupload?utm_source=github.com&amp;utm_medium=referral&amp;utm_content=r-hannuschka/ngx-fileupload&amp;utm_campaign=Badge_Grade)\n[![DeepScan grade](https://deepscan.io/api/teams/6017/projects/7879/branches/86957/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=6017&pid=7879&bid=86957)\n[![codecov](https://codecov.io/gh/r-hannuschka/ngx-fileupload/branch/master/graph/badge.svg)](https://codecov.io/gh/r-hannuschka/ngx-fileupload)\n[![dependencies Status](https://david-dm.org/r-hannuschka/ngx-fileupload/status.svg?path=src)](https://david-dm.org/r-hannuschka/ngx-fileupload?path=src)\n\nAngular 8+ async fileupload with progressbar\n\n[![ngx file upload demo on youtube](https://github.com/r-hannuschka/ngx-fileupload/blob/master/docs/ngx-fileupload.png?raw=true)](http://www.youtube.com/watch?v=KpHKw0AEOqg)\n___\n\n## Installation\n\nnpm\n\n```bash\nnpm i --save @r-hannuschka/ngx-fileupload\n```\n\n## Usage\n\n```html\n<ngx-fileupload [url]=\"'http://localhost:3000/upload'\"></ngx-fileupload>\n```\n\n## Demo\n\nWatch [Demo](https://r-hannuschka.github.io/ngx-fileupload/#/) to see ngx fileupload in action, customizing views and add validations.\n\n## Docs\n\nTo get more detailed informations please check out the docs\n\n- [API](https://github.com/r-hannuschka/ngx-fileupload/blob/master/docs/api.md)\n- [File Browser](https://github.com/r-hannuschka/ngx-fileupload/blob/master/docs/upload-directive.md)\n- [NgxFileUploadFactory](https://github.com/r-hannuschka/ngx-fileupload/blob/master/docs/factory.md)\n- [Pipes](./docs/pipes.md)\n- [Upload Component](https://github.com/r-hannuschka/ngx-fileupload/blob/master/docs/upload-component.md)\n- [Upload Item](https://github.com/r-hannuschka/ngx-fileupload/blob/master/docs/upload-item.md)\n- [Upload Storage](https://github.com/r-hannuschka/ngx-fileupload/blob/master/docs/upload.storage.md)\n- [Validation](https://github.com/r-hannuschka/ngx-fileupload/blob/master/docs/validation.md)\n\n\n## Features \n\n### Version 3.0+\n\n- **Upload Storage**\n\n    Uploads will not longer store in ViewComponents this was a big mistake which leads to the problem that all uploads have to been stopped if the view has been left. So we deicide create a Storage which holds all Upload Requests, so it is very easy to create a new **InjectionToken** and inject your UploadStorage in any view you want. You can even leave the view and return later and see your uploads again.\n\n- **Upload Queue**\n\n    The Upload Queue is part of the storage and controls which upload could start and which should pending until we got a free space. So you can add 50 Files start them all but by default the queue will only allow 5 uploads on the same time, if one upload is completed, canceled or removed it will grab next from queue and starts it.\n\n    This will only happens for Upload Requests which was started (upload all or start them one by one), so no File would uploaded if you just put them into the list.\n\n- **Seperate View from Bussiness Logic**\n\n    One other big change we completly seperate the view from bussiness logic, so you can allways build a complete own view just use the core classes (UploadStore, UploadQueue, UploadRequest, Validation) to create your own fileupload component.\n\n    You dont have create a complete own view if you want to customize one view, you can allways just use the NgxFileUpload UI and customize them.\n\n### Version 2.0+\n\n- **Validation**\n\n    We completly reworked the validation concept, so now validators are not Providers anymore and built in the Compositor Design Pattern. So you can create multiple validators and put them together into groups and combine multiple groups in one group.\n\n### Version 1.0+\n\n- **Async Uploads**\n\n    All files will uploaded in a seperat request, so you can control them seperate (cancel, start ) and get informations about them\n\n- **Full Customizeable**\n\n    Even if we provide a default view you can allways create a own view, inject a custom template to ngx-fileupload or ngx-fileupload-item to bring up a complete new view for every upload request or just add ngxFileUpload Directive to any component which should be used as FileBrowser\n\nTo get more detailed informations please check out the docs\n\n___\n\n## Development\n\n```bash\ngit clone https://github.com/r-hannuschka/ngx-fileupload\ncd ngx-fileupload\\src\nnpm i\n\n# run simple express server for minimized rest api\n# listen on localhost:3000\nnode src\\server\\upload-server.js\n\n# start webpack server (angular app)\n# listen on localhost:4200\nnpm start\n```\n\n## Tests\n\n```bash\n# end to end tests\nnpm run e2e\n```\n\n## Roadmap\n\n- ~~reimplement e2e tests~~\n- reimplement unit tests\n- ~~better state management for uploads~~\n- ~~add option to limit processing max uploads at once~~\n\n## Credits\n\nAll icon fonts was created with [IconMoon App](https://icomoon.io/app/#/select)\n\nSpecial thanks for code reviews, great improvements and ideas to\n\n||||  \n|:-:|:-:|:-:|\n|[![alt Konrad Mattheis](https://avatars2.githubusercontent.com/u/1100969?s=60&v=4)](https://github.com/konne)<br />Konrad Mattheis| [<img src=\"https://avatars3.githubusercontent.com/u/17725886?s=60&v=4\" width=60 alt=\"Thomas Haenig\" />](https://github.com/thomashaenig)<br />Thomas Haenig| [![alt Alexander Görlich](https://avatars0.githubusercontent.com/u/13659581?s=60&v=4)](https://github.com/AlexanderGoerlich)  <br />Alexander Görlich|\n\n## Author\n\nRalf Hannuschka [Github](https://github.com/r-hannuschka)\n\n## Other Modules\n\n- [ngx-responsivemenu](https://github.com/r-hannuschka/ngx-responsivemenu)\n\n","readmeFilename":"README.md"}