{"_id":"@ahmedtamseer/tn-form-error","_rev":"5-5a52afd6de1741e4645e685cea3aba62","name":"@ahmedtamseer/tn-form-error","dist-tags":{"latest":"1.0.4"},"versions":{"1.0.0":{"name":"@ahmedtamseer/tn-form-error","version":"1.0.0","description":"Angular package for validating both reactive and template driven forms","peerDependencies":{"@angular/common":"^10.0.2","@angular/core":"^10.0.2"},"keywords":["angular","form-validation","validation","reactive form","template driven form","rxjs"],"author":{"name":"Ahamed Thamseer"},"license":"MIT","bugs":{"url":"https://github.com/ahmedtamseer/angular-tn-form-error/issues"},"dependencies":{"tslib":"^2.0.0"},"repository":{"type":"git","url":"git+https://github.com/ahmedtamseer/angular-tn-form-error.git"},"homepage":"https://github.com/ahmedtamseer/angular-tn-form-error.git#readme","main":"bundles/tn-form-error.umd.js","module":"fesm2015/tn-form-error.js","es2015":"fesm2015/tn-form-error.js","esm2015":"esm2015/tn-form-error.js","fesm2015":"fesm2015/tn-form-error.js","typings":"tn-form-error.d.ts","metadata":"tn-form-error.metadata.json","sideEffects":false,"directories":{"lib":"lib"},"scripts":{"test":"npm run test:node"},"_id":"@ahmedtamseer/tn-form-error@1.0.0","_nodeVersion":"14.3.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-aJ55Wt2kRHEKIpIqnsaJ9S/qD6mxhIS+4RATTy+spXn05B6mrvfni/2grGiQ/uHCseGHI7CnAC+ZJVD1+7xABQ==","shasum":"2d2945815e953c842923651bc8466bfb43f68ff1","tarball":"https://registry.npmjs.org/@ahmedtamseer/tn-form-error/-/tn-form-error-1.0.0.tgz","fileCount":19,"unpackedSize":95849,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfA2XHCRA9TVsSAnZWagAAtnEP/jSHW4/PxH6e2yPMcQMM\nRLc2iovzgWR8OBSh7uZ5zpcvhSWXY1g+5v4+SdGdCWjeoaDjj8cm0SzTmK7Y\n/1wUO/4iNK2XkkvLEvatToimuW1bkitEFRfeg0b/agi3rlyMjhL0/yrFO+8k\nao0VG5UdgI9DiVXy6Qg4+X23GZ/Don8ubQwM0tJ1A+C8A3AKBN9N32afRxdJ\naGacRp7fyZ+YCh/0OlBERuTk1W5Ry0WXRBVtu1gHbZhGSeoi+O9ia+ttO5Pz\nXWekp0ZakKlg1+V/eqKEY3CuL7kMMj/FftDrhssshMw+M7ckXsBEgLqGzcuC\nK9kLdgPH6Cp75Vco39A8ZWwjxwzCO1LU5xGqbf/6M5jXDPWrgU/1lR4D/wU5\nUha4BblrdonSFsLfpEGKvLB9FDXXI85f0E2pJ3iHFLklyCzPO+MUGg3Pw+cO\nt2H9mbr7OZw4C6TF3aaY1q1NzEFurL1foF8bQxDShpLyc2MypcRj9fJF1E2/\nRu9DsTc969T5cthNkFjRkfquUhSMUoIP+PunF5amFueikU/doGh6DQViIIkt\nBmSMX1jv/BW8vUm7FdodVyCqiCWUp32S/ieAsUfmCyrYsx9TmFwO4FIyd5U3\npPr4GzTMRALgnfHxFvRcMICvzidIsXO5sTrReg9m0aX7oDtJVcpMQRilweVD\nq3iG\r\n=Sasu\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCna6Y9a4EMS+0gErLDQ2P/OOIUfEbN76FQbMfF7zuZmwIgStCfx+i25mPS9ZdBM9YkENwi+hHTEjfnv9BlIekITsg="}]},"maintainers":[{"name":"tn-ahmed","email":"ahmedtamseer3@gmail.com"}],"_npmUser":{"name":"tn-ahmed","email":"ahmedtamseer3@gmail.com"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tn-form-error_1.0.0_1594058183211_0.4137232547009946"},"_hasShrinkwrap":false},"1.0.1":{"name":"@ahmedtamseer/tn-form-error","version":"1.0.1","description":"Angular package for validating both reactive and template driven forms","peerDependencies":{"@angular/common":"^10.0.2","@angular/core":"^10.0.2"},"keywords":["angular","form-validation","validation","reactive form","template driven form","rxjs"],"author":{"name":"Ahamed Thamseer"},"license":"MIT","bugs":{"url":"https://github.com/ahmedtamseer/tn-form-error/issues"},"dependencies":{"tslib":"^2.0.0"},"repository":{"type":"git","url":"git+https://github.com/ahmedtamseer/tn-form-error.git"},"homepage":"https://github.com/ahmedtamseer/tn-form-error.git#readme","main":"bundles/tn-form-error.umd.js","module":"fesm2015/tn-form-error.js","es2015":"fesm2015/tn-form-error.js","esm2015":"esm2015/tn-form-error.js","fesm2015":"fesm2015/tn-form-error.js","typings":"tn-form-error.d.ts","metadata":"tn-form-error.metadata.json","sideEffects":false,"directories":{"lib":"lib"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_id":"@ahmedtamseer/tn-form-error@1.0.1","_nodeVersion":"14.3.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-PnO4DEoh5sgDkP1pnE80lmbwwTkkBpSaYY+cWGt1WdGv4mYkS52CSEXvIZ315G81cTeMisCGrBNs1RKMdiiSiQ==","shasum":"6896489f15433af6ad229b66e3364ed93f949bda","tarball":"https://registry.npmjs.org/@ahmedtamseer/tn-form-error/-/tn-form-error-1.0.1.tgz","fileCount":20,"unpackedSize":117884,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfA4ZUCRA9TVsSAnZWagAAHIQP/Rl3KkM3h3TG3qBnH098\nQleK8X5Q8IDy0IGrbG9B2QKulvbXXBhqQyUWugi9FxXBHPSfSVzbV1wdi3g1\nXOykBRuy2QX3TBWjWcGz5tmU9jK6EKjbxj+0/wz/W+jAXcX0GqogKqZbwQOH\n7GMJjNoUXYdCX1y3wrLqRMrp5k/xhsiBfNy7c1ScPPZrA8/Hfd7kT6M4IqZT\na/hpl5AVvwZ/ZZVtSbvHsUCnEIoLAEZahiETVEzu8as/SPupOAWWdRFSb2nd\nmCpTiSuvxAV0xXHPaZq8q61mu+eJ2f6iCQI/Q5DgrXksbHY+lzEpDXCTmXI4\nrJ7EY35zF40j3oEdJieYPBawZ19pIBffsmhDBZac1DlADtw4epvcN4ZzTmUV\n9oKBBGVoE4YDi6uj/a1COnVcV1Ad4zy0w8P7+RWVbPjmJGHfsTkJSyQbz/l0\neb5TOoxoPpdMFU3atc8SFVLhEhFxzG7f5WRGL1Av5ccY2AdonNoXkHtLkwXl\nKYLApRAjcoSaWLEnMDNxTxFT7iWI4I5YFl2UYOYENPA3fJeZsbIgWcXQ+2VQ\ngHcRi+AH2NNh6pZZy6+V/dficK2tNToQ2FED+XTtPBxacsbIlMtSUCylQ7oW\nxenfEFsDeESV05mqWvRBjXPwnxZC22eovoj5YxItPlNDnXFaP85g7KaATaIT\nBhtn\r\n=P8AM\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDRn+9QOb5hPD7W2EDK1zzsYtsfZYcLZXPmFag3XlRUzwIhAI5bvujveyCj4ECzAI6xHb9TRz7gESPk/KJB+gOzThX/"}]},"maintainers":[{"name":"tn-ahmed","email":"ahmedtamseer3@gmail.com"}],"_npmUser":{"name":"tn-ahmed","email":"ahmedtamseer3@gmail.com"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tn-form-error_1.0.1_1594066516146_0.3059854851996602"},"_hasShrinkwrap":false},"1.0.2":{"name":"@ahmedtamseer/tn-form-error","version":"1.0.2","description":"Angular package for validating both reactive and template driven forms","peerDependencies":{"@angular/common":"^10.0.0","@angular/core":"^10.0.0"},"keywords":["angular","form-validation","validation","reactive form","template driven form","rxjs"],"author":{"name":"Ahamed Thamseer"},"license":"MIT","bugs":{"url":"https://github.com/ahmedtamseer/tn-form-error/issues"},"dependencies":{"tslib":"^2.0.0"},"schematics":"./schematics/collection.json","repository":{"type":"git","url":"git+https://github.com/ahmedtamseer/tn-form-error.git"},"homepage":"https://github.com/ahmedtamseer/tn-form-error.git#readme","main":"bundles/tn-form-error.umd.js","module":"fesm2015/tn-form-error.js","es2015":"fesm2015/tn-form-error.js","esm2015":"esm2015/tn-form-error.js","fesm2015":"fesm2015/tn-form-error.js","typings":"tn-form-error.d.ts","metadata":"tn-form-error.metadata.json","sideEffects":false,"directories":{"lib":"lib"},"devDependencies":{},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_id":"@ahmedtamseer/tn-form-error@1.0.2","_nodeVersion":"14.3.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-KmFXRGU0so2A2q3wMJvt7vaduWfV13dnCmFP8jUwhtI4rUb9NV8bge1+6IHDAHa1eQUPXv6uKDyNYs+9bGrv0w==","shasum":"cdefb1dc9c981dbe9c525ce02db265271e5cccdb","tarball":"https://registry.npmjs.org/@ahmedtamseer/tn-form-error/-/tn-form-error-1.0.2.tgz","fileCount":20,"unpackedSize":117978,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfA5DuCRA9TVsSAnZWagAAv38P/RnmlPyki+CW3d4vov6n\nzQSx2Pg/nVVhNBc+FCPA+K3iZaJbC0QNXGNefACbcM/BmqKXOTJbBvCnHVDX\nGGRx5v027+UH2ADBfycYFTf4iFtN5Z+m0ZqqIgiV7T/QIrB6YvVfC9LHs/YA\nPYqFIBRJxCqn7udsYcvtUDsxKiMj2TIg4YjqFd9Kxoe0+R4bIJ3hFSdMYagL\nl1Wkg6485p4Xmjs2lf22AqeFcDZ+IKNG7uKiozEFswjVP3j4DQyuQXlI4Bz8\n/S2To6e1cDoJOOuuNZxux82akmKhR+2p7hLQI1bzXzWwfwGntohKOf6B2IGM\nyrI6nBulRiAuJXvtAv7vohUUN+jgqC1mL1JDMAjfA6t7dyBA0V9UwFWKmnLi\nIG/Kl5teJHJh/UOpxrQ9fYHpWRkr282s8vyHYsCF5DUKNWpz68uN2iipmgc0\nLk0MBG/eAitJJoigbhdjQQJ6j7sQA7gcpxtMAvC2yJCgSD/g20joaGyE6HSk\nloHlLh5QBh/eiNFvKnyor9hAqor9dcDV2Gtnokf2ZhrG8XI/Vn2enl3AINax\nl00GfVX7cy6pya/Pa94dMMsO4a4pMDn/4/wagyIHQHVjc/H3CPnXyjzmqzBJ\nkhmMKKvx9t3ZLyKUmwgoUKhN9ifSjgjHM37KemwMQH34X5HAy6U7ouWTzg32\nkFQ2\r\n=kEU9\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIA5ImESOELpmIv9TzWIqAWg4J3Auxg8Wi9VTe7kJRhn+AiB2Rp5CJa9HdhU5ZZTGFI84ENeDMAzo9NYcMTtafxLh6w=="}]},"maintainers":[{"name":"tn-ahmed","email":"ahmedtamseer3@gmail.com"}],"_npmUser":{"name":"tn-ahmed","email":"ahmedtamseer3@gmail.com"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tn-form-error_1.0.2_1594069230478_0.15587634534304917"},"_hasShrinkwrap":false},"1.0.3":{"name":"@ahmedtamseer/tn-form-error","version":"1.0.3","description":"Angular package for validating both reactive and template driven forms","peerDependencies":{"@angular/common":"^10.0.0","@angular/core":"^10.0.0"},"keywords":["angular","form-validation","validation","reactive form","template driven form","rxjs"],"author":{"name":"Ahamed Thamseer"},"license":"MIT","bugs":{"url":"https://github.com/ahmedtamseer/tn-form-error/issues"},"dependencies":{"tslib":"^2.0.0"},"schematics":"./schematics/collection.json","repository":{"type":"git","url":"git+https://github.com/ahmedtamseer/tn-form-error.git"},"homepage":"https://github.com/ahmedtamseer/tn-form-error.git#readme","main":"bundles/tn-form-error.umd.js","module":"fesm2015/tn-form-error.js","es2015":"fesm2015/tn-form-error.js","esm2015":"esm2015/tn-form-error.js","fesm2015":"fesm2015/tn-form-error.js","typings":"tn-form-error.d.ts","metadata":"tn-form-error.metadata.json","sideEffects":false,"directories":{"lib":"lib"},"devDependencies":{},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_id":"@ahmedtamseer/tn-form-error@1.0.3","_nodeVersion":"14.3.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-Tv0CFw+n3pBRjIX8R4/zyonpk/QmapCBppZ7YXd1LTPEycgaI0Ybdt7KO0B8CCI8bw281cJ2/N5PEZku57AfHA==","shasum":"00d5e30885f8f5026a36722c9b564b739e9ef23b","tarball":"https://registry.npmjs.org/@ahmedtamseer/tn-form-error/-/tn-form-error-1.0.3.tgz","fileCount":24,"unpackedSize":119715,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfA62oCRA9TVsSAnZWagAASvMP+wVpqE3kbzC7PatGIj9q\nYH7s8pwq/USe3etEiEp4GOPsdzzra3jKZyFzFgvcYGI2qzCTOvWF7lzqZlA5\n4la/WixeHDiBNXvM3vkepywyLXHq2UmtPYOm/sQiDG+eyCcvBEz2vahYeslA\nLTRbKdlyqjlYBxYPxdlEXqwoqSUiZ6BVC912knhuNROxt6XXSCq+sLCH5cem\nsGEpCeEzeNuXzi0hrYZkLhBYiGi0BAf73ZIM986aFGsA3MNBfshd3Y8z2gW6\nDm9wNkFO9+XJOBmTfwGoYxcv5LTmzaIPeP/nj9n4CQVAhgnMKPps0JyXLeEA\nC9iwwHGXghkyq6lkeBJQLjUkSf4blA4jSxZ474UPqv7ZMFWOKyAK3RmxUpzU\nAwK2YZvP5J2/thgI3sXcaB9vUV/wzDQGx48KSKX4ADZ1DHfYejdIS5f3UYcC\nGR6oSAWziegjbtlh65t/9/EdK+ko3dmtSNS5ufkwcrupeRlIxAiexjMEEWGa\nr4JIGMmQ0HFBuQqcxG4uX2xqxXtHfQsdDybNfqb8CcyTgO/fIzx+ZtXM1ryt\nSHommQx1PureuIrKuGmdgEtGPpP+HkqTmoyiggVmExNN/F/o1MYAbVWVjkG+\nDDFOOKTYMtTCG5u/cLok4l1txWHCgNb2yAry0/1gKrf2WpHrYI2SdBhKPNx8\ns3BV\r\n=kJ20\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCMU/s+KKfQc/quyLaPUkGODgQcrFK4Rr2PFZMB4kQ1DQIgYpmqWvUzijIwBXfmJESDJUHPoa+FCF71QWncUlHXVII="}]},"maintainers":[{"name":"tn-ahmed","email":"ahmedtamseer3@gmail.com"}],"_npmUser":{"name":"tn-ahmed","email":"ahmedtamseer3@gmail.com"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tn-form-error_1.0.3_1594076584391_0.35663556131044305"},"_hasShrinkwrap":false},"1.0.4":{"name":"@ahmedtamseer/tn-form-error","version":"1.0.4","author":{"name":"Ahamed Thamseer - ahmedtamseer3@gmail.com"},"description":"Angular package for validating both reactive and template driven forms","peerDependencies":{"@angular/common":"^10.0.0","@angular/core":"^10.0.0"},"keywords":["angular","form-validation","validation","reactive form","template driven form","rxjs"],"license":"MIT","bugs":{"url":"https://github.com/ahmedtamseer/tn-form-error/issues"},"dependencies":{"tslib":"^2.0.0"},"schematics":"./schematics/collection.json","repository":{"type":"git","url":"git+https://github.com/ahmedtamseer/tn-form-error.git"},"homepage":"https://github.com/ahmedtamseer/tn-form-error.git#readme","main":"bundles/tn-form-error.umd.js","module":"fesm2015/tn-form-error.js","es2015":"fesm2015/tn-form-error.js","esm2015":"esm2015/tn-form-error.js","fesm2015":"fesm2015/tn-form-error.js","typings":"tn-form-error.d.ts","metadata":"tn-form-error.metadata.json","sideEffects":false,"directories":{"lib":"lib"},"devDependencies":{},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_id":"@ahmedtamseer/tn-form-error@1.0.4","_nodeVersion":"14.3.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-XPWyHo+vJkGfiOSJNtdFT4ICp0HBxzwf/nF8a8HNWylVl8nT2SJnKQ18wy13+Rsy8qjPlK5hAazvszJdn5fr0A==","shasum":"ccb9814aa4dee8fbeed756dc99d41bcbe2059646","tarball":"https://registry.npmjs.org/@ahmedtamseer/tn-form-error/-/tn-form-error-1.0.4.tgz","fileCount":24,"unpackedSize":119688,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfBMnuCRA9TVsSAnZWagAA+uAP/3s/o27ZgY2WHfbTZI9o\nwNFVdQm9wFaSVrVAMJXrbpmGgGoc9zPx7FoWMqqpclKAjmOFVP43RwsE+1NR\n7kkjXaZPjDiwPAyHA6RWE8X6JLDaeJR1iB3LcluAMBHxAxxzUF6p3z8gmahV\nYEYEi284hmNfTiNifnlIVnKufGTT7xE5X5UeNET2lVf4CzBKYY0+WGt1ke7L\nQS0Il7WkwjfWjEdZbwafAU1zIxfiBLcDMaVXhYdm9K7AGvI5NmOIEvm1Jbpg\ntanuM0dYyb1Ny6L2gbFWvs3UNAwf5ASutEXOTi3cvb/NkdBiW9fHPUefM/zj\n8hK5/HEGZl77vQmzWA3XI9wP3VJnO9DGIEobgd47sS3i7R6TIg2FSjYJ9Bu5\n3r+DUdv4XbUet3b+GftCHfgsLNt57dKvyT+f8q6A9jPVJhZCX5uW4Z+eeLjG\nrLbqKa4lrQGHwIOfNXf3ykZc0r8bCldEAU0VP3y9W4R4q17LNnjmRnNK7cY6\nVwzztFH+HG2oL3ZTJN6FdZINofAlpuuTJCsbIwEmrVMLcHKGxS8EbYQChAjF\neupKhiIK/pi2QJecFNtRHG9oZr5Vtnz50cJi16gDaGgShtDCnSMJ95tPCxd2\ntKPWO15rb8yPM7DjBL0o2AL6p5NZ6W1OIX5jWqVew+ytsNNrimxqnpzY9XCo\nqnHG\r\n=z1BR\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCTvYEuNNU3SPssfwQqsPifo0hMHJkq3dnoyCyAzXF24wIhANdHmvyraoCB4TrrXOiUWlT7giJJ/QPPl2d+nHOe/nDk"}]},"maintainers":[{"name":"tn-ahmed","email":"ahmedtamseer3@gmail.com"}],"_npmUser":{"name":"tn-ahmed","email":"ahmedtamseer3@gmail.com"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tn-form-error_1.0.4_1594149357532_0.007774791210609422"},"_hasShrinkwrap":false}},"time":{"created":"2020-07-06T17:56:20.403Z","1.0.0":"2020-07-06T17:56:23.377Z","modified":"2022-04-04T12:13:32.156Z","1.0.1":"2020-07-06T20:15:16.248Z","1.0.2":"2020-07-06T21:00:30.642Z","1.0.3":"2020-07-06T23:03:04.557Z","1.0.4":"2020-07-07T19:15:57.706Z"},"maintainers":[{"name":"tn-ahmed","email":"ahmedtamseer3@gmail.com"}],"description":"Angular package for validating both reactive and template driven forms","homepage":"https://github.com/ahmedtamseer/tn-form-error.git#readme","keywords":["angular","form-validation","validation","reactive form","template driven form","rxjs"],"repository":{"type":"git","url":"git+https://github.com/ahmedtamseer/tn-form-error.git"},"author":{"name":"Ahamed Thamseer - ahmedtamseer3@gmail.com"},"bugs":{"url":"https://github.com/ahmedtamseer/tn-form-error/issues"},"license":"MIT","readme":"# TnFormError\nThe [Angular](https://angular.io/) library for [Form Validation](https://angular.io/guide/form-validation/).\n\n```bash\nng add @ahmedtamseer/tn-form-error\n```\n\n## What is TnFormError?\n\nTnFormError is angular package for validating both reactive and template driven forms.\n\n## Quickstart\n\n### 1. Create a new project\n\n```bash\nnpm install -g @angular/cli\nng new <project-name>\ncd <project-name>\n```\n\nThe Angular CLI's `new` command will set up the latest Angular build in a new project structure.\n\n### 2. Install Angular Form Error\n\n```bash\nng add @ahmedtamseer/tn-form-error\n```\n\nNow that you have a new project setup, install Angular Form Error from npm.\n\n### 3. Setup `@NgModule` for the `TnFormErrorModule`\n\nOpen `/src/app/app.module.ts`, inject the TnFormErrorModule.\n\n```ts\nimport { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\nimport { AppComponent } from './app.component';\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms';\nimport { TnFormErrorModule } from '@ahmedtamseer/tn-form-error';\n\n@NgModule({\n  declarations: [\n    AppComponent\n  ],\n  imports: [\n    BrowserModule,\n    ReactiveFormsModule,\n    FormsModule,\n    TnFormErrorModule\n  ],\n  providers: [],\n  bootstrap: [AppComponent]\n})\nexport class AppModule { }\n```\n\n### 4. Use it in your component\n\n```ts\nimport { Component } from '@angular/core';\nimport { FormGroup, FormControl, Validators } from '@angular/forms';\n\n@Component({\n  selector: 'app-root',\n  template: `\n  <form [formGroup]=\"demoForm\">\n    <div>\n        <label for=\"name\">Name</label>\n        <input type=\"text\" formControlName=\"name\" name=\"name\" placeholder=\"Name validator\">\n        <tn-form-error [control]=\"demoForm.controls.name\" [field]=\"'Name'\"></tn-form-error>\n    </div>\n  </form>\n  `\n})\nexport class MyApp {\n\n  demoForm: FormGroup;\n\n  constructor() {\n      this.demoForm = new FormGroup({\n      name: new FormControl('', [Validators.required])\n    });\n  }\n}\n```\n\n### 5. Use TnFormErrorService service for validation\n\n```ts\nimport { Component } from '@angular/core';\nimport { FormGroup, FormControl, Validators } from '@angular/forms';\n\nimport { TnFormErrorService } from '@ahmedtamseer/tn-form-error';\n\n@Component({\n  selector: 'app-root',\n  template: `\n  <form [formGroup]=\"demoForm\">\n    <div>\n        <label for=\"name\">Name</label>\n        <input type=\"text\" formControlName=\"name\" name=\"name\" placeholder=\"Name validator\">\n        <tn-form-error [control]=\"demoForm.controls.name\" [field]=\"'Name'\"></tn-form-error>\n    </div>\n  </form>\n  `\n})\nexport class MyApp {\n\n  demoForm: FormGroup;\n\n  constructor(\n      private tnFormErrorService: TnFormErrorService\n  ) {\n      this.demoForm = new FormGroup({\n      name: new FormControl('', [this.tnFormErrorService.nameValidator])\n    });\n  }\n}\n```\n\n### 6. Run your app locally\n\n```bash\nng serve\n```\n\n## Resources\n\n[Stackblitz Template](https://stackblitz.com/edit/angular-tn-form-error) - A demo app which shows how to use package for Reactive and Template Driven form.\n\n## Developer Guide\n\n### <tn-form-error [control]=\"formControl|ngModel\"></tn-form-error>\n\n| attribute   | purpose            |\n| ---------|--------------------|\n| `[control]` | Formcontrol or a ngModel. Required |\n| `[field]` | String. Default value is 'Field'. Ex:- if you pass `[field]=\"'Name'\"` error message will be `Name is required` else `Field is required`  |\n| `[class]` | String. List of classes separated by space. By default is displayed in red color. Ex:- `[class]=\"'bg-danger text-white'\"` |\n| `[msg]` | String. Default is package generated message. You can display custom message. Ex:- `[msg]=\"This is custom message\"` |\n\n\n### TnFormErrorService\n\n| method   | purpose            |\n| ---------|--------------------|\n| `.emailValidator` | To validate email. Email should have min of 5 characters |\n| `.nameValidator` | To validate name. Name should contain atleast 2 characters and should not contain any special character other than a space |\n| `.numberValidator` | To validate interge number. Number should contain numbers |\n| `.usMobileValidator` | To validate US mobile number. Ex:- (123) 123 1234, (123) 123-1234 or 1231231234 |\n| `.inMobileValidator` | To validate IN mobile number. Ex:- (91) 9841-11-11-11, (91) 9841111111, 9841-11-11-11, 9841-111111, 9841 11 11 11 or 9841111111 |\n| `.yearValidator` | To validate year. Ex:- 1900 or 2100 |\n| `.fullDateValidator` | To validate full date dd mm yyyy. Ex:- 20 10 1900 or 20-9-1900 |\n| `.passwordValidator` | To validate Password. Password should contain min of 8 character, must have atleast one uppercase letter, one lowercase letter, one number and one special character. Ex:- exampleTn@1_2 |\n\n","readmeFilename":"README.md"}