{"_id":"@anyvado/ngx-custom-validators","_rev":"9-427426d08f7873001d6896ffe297273f","name":"@anyvado/ngx-custom-validators","dist-tags":{"latest":"11.0.10"},"versions":{"11.0.1":{"name":"@anyvado/ngx-custom-validators","version":"11.0.1","description":"Angular custom directives for validation","scripts":{"ng":"ng","start":"ng serve","build":"ng-packagr","test":"ng test","lint":"ng lint","e2e":"ng e2e","publish":"npm publish ./dist"},"repository":{"type":"git","url":"git+https://github.com/rsaenen/ngx-custom-validators.git"},"keywords":["angular","angular 10","directive","reactive","template","forms","validate","validation","validators","custom"],"author":{"name":"Ralf Saenen","email":"ralf.saenen@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/rsaenen/ngx-custom-validators/issues"},"homepage":"https://github.com/rsaenen/ngx-custom-validators#readme","private":false,"peerDependencies":{"@angular/common":"^16.0.0","@angular/core":"^16.0.0","@angular/forms":"^16.0.0"},"dependencies":{"@angular/common":"^16.0.0","@angular/compiler":"^16.0.0","@angular/core":"^16.0.0","@angular/forms":"^16.0.0","@angular/platform-browser":"^16.0.0","@angular/platform-browser-dynamic":"^16.0.0","moment":"^2.28.0","rxjs":"~7.8.0","tslib":"^2.3.0","zone.js":"~0.13.0"},"devDependencies":{"@angular-devkit/build-angular":"^16.0.0","@angular/cli":"^16.0.0","@angular/compiler-cli":"^16.0.0","@types/jasmine":"~4.3.0","jasmine-core":"~4.6.0","karma":"~6.4.0","karma-chrome-launcher":"~3.2.0","karma-coverage":"~2.2.0","karma-jasmine":"~5.1.0","karma-jasmine-html-reporter":"~2.0.0","typescript":"~5.0.2","ng-packagr":"^16.0.0"},"gitHead":"1e9077a859dc3e1342096d99d467e7659b37df82","_id":"@anyvado/ngx-custom-validators@11.0.1","_nodeVersion":"18.12.0","_npmVersion":"9.6.6","dist":{"integrity":"sha512-S50XJ/kb34CAZBiem7B7gYEXRJqcqvEWtJm4EcR4A4n2jYdnkgkpP5dhtHOAj7OaNKIvruvB9mP2lY0WaFtiaA==","shasum":"a591e4505e175c4b40620868290dadd068c29956","tarball":"https://registry.npmjs.org/@anyvado/ngx-custom-validators/-/ngx-custom-validators-11.0.1.tgz","fileCount":791,"unpackedSize":97924836,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCw3c/e5nX/fAv03Y3vFJxtYEjhkOGcwAV1msLuIgA1cwIhAIBJvMrpdGKVhcdde+Vc7bpw71kM3ko7DKqog6UDQkHA"}]},"_npmUser":{"name":"daniil_tikhonov","email":"den.tikhonov.93@gmail.com"},"directories":{},"maintainers":[{"name":"daniil_tikhonov","email":"den.tikhonov.93@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ngx-custom-validators_11.0.1_1683550986004_0.5261484786501005"},"_hasShrinkwrap":false},"11.0.2":{"name":"@anyvado/ngx-custom-validators","version":"11.0.2","description":"Angular custom directives for validation","scripts":{"ng":"ng","start":"ng serve","build":"ng-packagr","test":"ng test","lint":"ng lint","e2e":"ng e2e","publish":"npm publish ./dist"},"repository":{"type":"git","url":"git+https://github.com/rsaenen/ngx-custom-validators.git"},"keywords":["angular","angular 10","directive","reactive","template","forms","validate","validation","validators","custom"],"author":{"name":"Ralf Saenen","email":"ralf.saenen@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/rsaenen/ngx-custom-validators/issues"},"homepage":"https://github.com/rsaenen/ngx-custom-validators#readme","private":false,"peerDependencies":{"@angular/common":"^16.0.0","@angular/core":"^16.0.0","@angular/forms":"^16.0.0"},"dependencies":{"@angular/common":"^16.0.0","@angular/compiler":"^16.0.0","@angular/core":"^16.0.0","@angular/forms":"^16.0.0","@angular/platform-browser":"^16.0.0","@angular/platform-browser-dynamic":"^16.0.0","moment":"^2.28.0","rxjs":"~7.8.0","tslib":"^2.3.0","zone.js":"~0.13.0"},"devDependencies":{"@angular-devkit/build-angular":"^16.0.0","@angular/cli":"^16.0.0","@angular/compiler-cli":"^16.0.0","@types/jasmine":"~4.3.0","jasmine-core":"~4.6.0","karma":"~6.4.0","karma-chrome-launcher":"~3.2.0","karma-coverage":"~2.2.0","karma-jasmine":"~5.1.0","karma-jasmine-html-reporter":"~2.0.0","typescript":"~5.0.2","ng-packagr":"^16.0.0"},"gitHead":"1e9077a859dc3e1342096d99d467e7659b37df82","_id":"@anyvado/ngx-custom-validators@11.0.2","_nodeVersion":"18.12.0","_npmVersion":"9.6.6","dist":{"integrity":"sha512-1mps67u6cx8kAanDTTCsvo5qLulYqgwA6KOnTEOEBp7d3pj2bNuqFRjzd00HLe44OqhLuoWoaRWj3WACGFG8TQ==","shasum":"3c60e1dea1d57f337403803d63f22923811c5365","tarball":"https://registry.npmjs.org/@anyvado/ngx-custom-validators/-/ngx-custom-validators-11.0.2.tgz","fileCount":791,"unpackedSize":97924836,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDYbRZd1fcTZSqY82GxfSl6Athod+aKf1nGRhnolx1iDQIgaVpTZGv7XFmwQqVxL8pfLRogJpe92dqrQMdsgrOIiy4="}]},"_npmUser":{"name":"daniil_tikhonov","email":"den.tikhonov.93@gmail.com"},"directories":{},"maintainers":[{"name":"daniil_tikhonov","email":"den.tikhonov.93@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ngx-custom-validators_11.0.2_1683551047593_0.8272276044938627"},"_hasShrinkwrap":false},"11.0.5":{"name":"@anyvado/ngx-custom-validators","version":"11.0.5","description":"Angular custom directives for validation","scripts":{"ng":"ng","start":"ng serve","build":"ng-packagr","test":"ng test","lint":"ng lint","e2e":"ng e2e","publish":"npm publish ./dist"},"repository":{"type":"git","url":"git+https://github.com/rsaenen/ngx-custom-validators.git"},"keywords":["angular","angular 10","directive","reactive","template","forms","validate","validation","validators","custom"],"author":{"name":"Ralf Saenen","email":"ralf.saenen@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/rsaenen/ngx-custom-validators/issues"},"homepage":"https://github.com/rsaenen/ngx-custom-validators#readme","private":false,"peerDependencies":{"@angular/common":"^16.0.0","@angular/core":"^16.0.0","@angular/forms":"^16.0.0"},"dependencies":{"@angular/common":"^16.0.0","@angular/compiler":"^16.0.0","@angular/core":"^16.0.0","@angular/forms":"^16.0.0","@angular/platform-browser":"^16.0.0","@angular/platform-browser-dynamic":"^16.0.0","moment":"^2.28.0","rxjs":"~7.8.0","tslib":"^2.3.0","zone.js":"~0.13.0"},"devDependencies":{"@angular-devkit/build-angular":"^16.0.0","@angular/cli":"^16.0.0","@angular/compiler-cli":"^16.0.0","@types/jasmine":"~4.3.0","jasmine-core":"~4.6.0","karma":"~6.4.0","karma-chrome-launcher":"~3.2.0","karma-coverage":"~2.2.0","karma-jasmine":"~5.1.0","karma-jasmine-html-reporter":"~2.0.0","typescript":"~5.0.2","ng-packagr":"^16.0.0"},"gitHead":"1e9077a859dc3e1342096d99d467e7659b37df82","_id":"@anyvado/ngx-custom-validators@11.0.5","_nodeVersion":"18.12.0","_npmVersion":"9.6.6","dist":{"integrity":"sha512-o4Z7vOhyC/94k6NoG5atbCFoxBoknWtOErdHzOseYIsuizhFchpPcyIuuyCf5E6af9MPEvc5Rcl6RncEr/loXQ==","shasum":"385e74d814b386a2f1d1260da02d7950d665951e","tarball":"https://registry.npmjs.org/@anyvado/ngx-custom-validators/-/ngx-custom-validators-11.0.5.tgz","fileCount":791,"unpackedSize":97924836,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCA0bpUf1JtWJvSYmj2Kh6bTG5ivxjbZqtPEtSKRX+PygIgDs1qNxPT+vQI6UDmlg2AS2pPHVMPYCoIO69TU0GcGYo="}]},"_npmUser":{"name":"daniil_tikhonov","email":"den.tikhonov.93@gmail.com"},"directories":{},"maintainers":[{"name":"daniil_tikhonov","email":"den.tikhonov.93@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ngx-custom-validators_11.0.5_1683551446659_0.020566888041301024"},"_hasShrinkwrap":false},"11.0.3":{"name":"@anyvado/ngx-custom-validators","version":"11.0.3","description":"Angular custom directives for validation","scripts":{"ng":"ng","start":"ng serve","build":"ng-packagr","test":"ng test","lint":"ng lint","e2e":"ng e2e","publish":"npm publish ./dist"},"repository":{"type":"git","url":"git+https://github.com/rsaenen/ngx-custom-validators.git"},"keywords":["angular","angular 10","directive","reactive","template","forms","validate","validation","validators","custom"],"author":{"name":"Ralf Saenen","email":"ralf.saenen@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/rsaenen/ngx-custom-validators/issues"},"homepage":"https://github.com/rsaenen/ngx-custom-validators#readme","private":false,"peerDependencies":{"@angular/common":"^16.0.0","@angular/core":"^16.0.0","@angular/forms":"^16.0.0"},"dependencies":{"@angular/common":"^16.0.0","@angular/compiler":"^16.0.0","@angular/core":"^16.0.0","@angular/forms":"^16.0.0","@angular/platform-browser":"^16.0.0","@angular/platform-browser-dynamic":"^16.0.0","moment":"^2.28.0","rxjs":"~7.8.0","tslib":"^2.3.0","zone.js":"~0.13.0"},"devDependencies":{"@angular-devkit/build-angular":"^16.0.0","@angular/cli":"^16.0.0","@angular/compiler-cli":"^16.0.0","@types/jasmine":"~4.3.0","jasmine-core":"~4.6.0","karma":"~6.4.0","karma-chrome-launcher":"~3.2.0","karma-coverage":"~2.2.0","karma-jasmine":"~5.1.0","karma-jasmine-html-reporter":"~2.0.0","typescript":"~5.0.2","ng-packagr":"^16.0.0"},"gitHead":"1e9077a859dc3e1342096d99d467e7659b37df82","_id":"@anyvado/ngx-custom-validators@11.0.3","_nodeVersion":"18.12.0","_npmVersion":"9.6.6","dist":{"integrity":"sha512-IWIO8JcFtG4/CE5R3dT9rslB9sE3ipcNAbEer7eklKDaW58tGF4UzQ/ZkLf2SRDpVCQklZb0LIOc34VcFvDLtA==","shasum":"ff44740719e94462da95bd7ec3e683d52a7edd4d","tarball":"https://registry.npmjs.org/@anyvado/ngx-custom-validators/-/ngx-custom-validators-11.0.3.tgz","fileCount":791,"unpackedSize":97924836,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEuP6RIoB1/cMz/u4CPsEWPXN/RPOP9pTKA+vCXVori9AiA2z4+fer5jCyXGDdOf/4s2tlOpbHBiMnewGQ+SWdSA/w=="}]},"_npmUser":{"name":"daniil_tikhonov","email":"den.tikhonov.93@gmail.com"},"directories":{},"maintainers":[{"name":"daniil_tikhonov","email":"den.tikhonov.93@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ngx-custom-validators_11.0.3_1683551534240_0.4700665382419089"},"_hasShrinkwrap":false},"11.0.4":{"name":"@anyvado/ngx-custom-validators","version":"11.0.4","description":"Angular custom directives for validation","scripts":{"ng":"ng","start":"ng serve","build":"ng-packagr","test":"ng test","lint":"ng lint","e2e":"ng e2e","publish":"npm publish ./dist"},"repository":{"type":"git","url":"git+https://github.com/rsaenen/ngx-custom-validators.git"},"keywords":["angular","angular 10","directive","reactive","template","forms","validate","validation","validators","custom"],"author":{"name":"Ralf Saenen","email":"ralf.saenen@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/rsaenen/ngx-custom-validators/issues"},"homepage":"https://github.com/rsaenen/ngx-custom-validators#readme","private":false,"peerDependencies":{"@angular/common":"^16.0.0","@angular/core":"^16.0.0","@angular/forms":"^16.0.0"},"dependencies":{"@angular/common":"^16.0.0","@angular/compiler":"^16.0.0","@angular/core":"^16.0.0","@angular/forms":"^16.0.0","@angular/platform-browser":"^16.0.0","@angular/platform-browser-dynamic":"^16.0.0","moment":"^2.28.0","rxjs":"~7.8.0","tslib":"^2.3.0","zone.js":"~0.13.0"},"devDependencies":{"@angular-devkit/build-angular":"^16.0.0","@angular/cli":"^16.0.0","@angular/compiler-cli":"^16.0.0","@types/jasmine":"~4.3.0","jasmine-core":"~4.6.0","karma":"~6.4.0","karma-chrome-launcher":"~3.2.0","karma-coverage":"~2.2.0","karma-jasmine":"~5.1.0","karma-jasmine-html-reporter":"~2.0.0","typescript":"~5.0.2","ng-packagr":"^16.0.0"},"gitHead":"1e9077a859dc3e1342096d99d467e7659b37df82","_id":"@anyvado/ngx-custom-validators@11.0.4","_nodeVersion":"18.12.0","_npmVersion":"9.6.6","dist":{"integrity":"sha512-8Wp38Her6p01sL31NR/Z1lTXerUTx6naymFH6kLVaXaiXRuQCWvN6ugopZw/Jez6T/iPr1KK7EtBvf3+vvrmEQ==","shasum":"2483f2087f4a27dea68faa02ec937d2c68d87e68","tarball":"https://registry.npmjs.org/@anyvado/ngx-custom-validators/-/ngx-custom-validators-11.0.4.tgz","fileCount":791,"unpackedSize":97924836,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDfXNYUC3dUK4qLgVizWzJS3PWVGezNJrCksaymWzsylAiB/CZahExCpAhzBBVihr8pbadwmlLOgXM+wBWYGjeu+QQ=="}]},"_npmUser":{"name":"daniil_tikhonov","email":"den.tikhonov.93@gmail.com"},"directories":{},"maintainers":[{"name":"daniil_tikhonov","email":"den.tikhonov.93@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ngx-custom-validators_11.0.4_1683551947926_0.4006416667795589"},"_hasShrinkwrap":false},"11.0.6":{"name":"@anyvado/ngx-custom-validators","version":"11.0.6","description":"Angular custom directives for validation","scripts":{"ng":"ng","start":"ng serve","build":"ng-packagr","test":"ng test","lint":"ng lint","e2e":"ng e2e","publish":"npm publish ./dist"},"repository":{"type":"git","url":"git+https://github.com/rsaenen/ngx-custom-validators.git"},"keywords":["angular","angular 10","directive","reactive","template","forms","validate","validation","validators","custom"],"author":{"name":"Ralf Saenen","email":"ralf.saenen@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/rsaenen/ngx-custom-validators/issues"},"homepage":"https://github.com/rsaenen/ngx-custom-validators#readme","private":false,"peerDependencies":{"@angular/common":"^16.0.0","@angular/core":"^16.0.0","@angular/forms":"^16.0.0"},"dependencies":{"@angular/common":"^16.0.0","@angular/compiler":"^16.0.0","@angular/core":"^16.0.0","@angular/forms":"^16.0.0","@angular/platform-browser":"^16.0.0","@angular/platform-browser-dynamic":"^16.0.0","moment":"^2.28.0","rxjs":"~7.8.0","tslib":"^2.3.0","zone.js":"~0.13.0"},"devDependencies":{"@angular-devkit/build-angular":"^16.0.0","@angular/cli":"^16.0.0","@angular/compiler-cli":"^16.0.0","@types/jasmine":"~4.3.0","jasmine-core":"~4.6.0","karma":"~6.4.0","karma-chrome-launcher":"~3.2.0","karma-coverage":"~2.2.0","karma-jasmine":"~5.1.0","karma-jasmine-html-reporter":"~2.0.0","typescript":"~5.0.2","ng-packagr":"^16.0.0"},"gitHead":"1e9077a859dc3e1342096d99d467e7659b37df82","_id":"@anyvado/ngx-custom-validators@11.0.6","_nodeVersion":"18.12.0","_npmVersion":"9.6.6","dist":{"integrity":"sha512-0SKvGsqNizt0yrVkcipTb7h6rnGxxXEUvCTUfsmUm73yvPpyiNtLybqJmEb1JIGc+wLU7Yxf+xG5vNvuCSoBdw==","shasum":"b6edab4e1bb254c10e9516db9b5985619059b281","tarball":"https://registry.npmjs.org/@anyvado/ngx-custom-validators/-/ngx-custom-validators-11.0.6.tgz","fileCount":791,"unpackedSize":97925348,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICo7GdLhUk1rRK6qVEhdTqIQMIS/T7FpnNfoAVuIhEElAiEA2Hz399L51ryBnkvGVzBUlVE2BmzLdj3ftSb9C1zUaDo="}]},"_npmUser":{"name":"daniil_tikhonov","email":"den.tikhonov.93@gmail.com"},"directories":{},"maintainers":[{"name":"daniil_tikhonov","email":"den.tikhonov.93@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ngx-custom-validators_11.0.6_1683552567390_0.1333988146678231"},"_hasShrinkwrap":false},"11.0.7":{"name":"@anyvado/ngx-custom-validators","version":"11.0.7","description":"Angular custom directives for validation","scripts":{"ng":"ng","start":"ng serve","build":"ng build --configuration production","test":"ng test","lint":"ng lint","e2e":"ng e2e","publish":"npm publish ./dist/ngx-custom-validators"},"repository":{"type":"git","url":"git+https://github.com/rsaenen/ngx-custom-validators.git"},"keywords":["angular","angular 10","directive","reactive","template","forms","validate","validation","validators","custom"],"author":{"name":"Ralf Saenen","email":"ralf.saenen@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/rsaenen/ngx-custom-validators/issues"},"homepage":"https://github.com/rsaenen/ngx-custom-validators#readme","private":false,"peerDependencies":{"@angular/common":"^16.0.0","@angular/core":"^16.0.0","@angular/forms":"^16.0.0"},"dependencies":{"@angular/common":"^16.0.0","@angular/compiler":"^16.0.0","@angular/core":"^16.0.0","@angular/forms":"^16.0.0","@angular/platform-browser":"^16.0.0","@angular/platform-browser-dynamic":"^16.0.0","moment":"^2.28.0","rxjs":"~7.8.0","tslib":"^2.3.0","zone.js":"~0.13.0"},"devDependencies":{"@angular-devkit/build-angular":"^16.0.0","@angular-devkit/core":"^16.0.0","@angular/cli":"^16.0.0","@angular/compiler-cli":"^16.0.0","@angular/language-service":"^16.0.0","@types/jasmine":"~4.3.0","@types/jasminewd2":"~2.0.6","jasmine-core":"~4.6.0","karma":"~6.4.0","karma-chrome-launcher":"~3.2.0","karma-coverage":"~2.2.0","karma-jasmine":"~5.1.0","karma-jasmine-html-reporter":"~2.0.0","ng-packagr":"^16.0.0","protractor":"~7.0.0","ts-node":"~9.0.0","tslint":"~6.1.3","typescript":"~5.0.2"},"gitHead":"1e9077a859dc3e1342096d99d467e7659b37df82","_id":"@anyvado/ngx-custom-validators@11.0.7","_nodeVersion":"18.12.0","_npmVersion":"9.6.6","dist":{"integrity":"sha512-EvNf4G4i7zAy2+cfl9FqDb7IkTT3ThVbLW1eniaiIt+DuGFcNvwG4Hg2FD12HN5aDWhxQWXPUYrVK692wwHhpQ==","shasum":"bf73a5424b1aab3cfc4cac6d2c923e52f6aad74e","tarball":"https://registry.npmjs.org/@anyvado/ngx-custom-validators/-/ngx-custom-validators-11.0.7.tgz","fileCount":796,"unpackedSize":99823784,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGWrtwmXEb9u/ytquYxQjreVU22H++b+SaH9MBtsS5zsAiEAkjgD86x/hKMznE2paocaqFl/NqL/SLkHOnC5/IYwJVs="}]},"_npmUser":{"name":"daniil_tikhonov","email":"den.tikhonov.93@gmail.com"},"directories":{},"maintainers":[{"name":"daniil_tikhonov","email":"den.tikhonov.93@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ngx-custom-validators_11.0.7_1683553963796_0.3298560455334001"},"_hasShrinkwrap":false},"11.0.8":{"name":"@anyvado/ngx-custom-validators","version":"11.0.8","description":"Angular custom directives for validation","scripts":{"ng":"ng","start":"ng serve","build":"ng build --configuration production","test":"ng test","lint":"ng lint","e2e":"ng e2e","publish":"npm publish ./dist/ngx-custom-validators"},"repository":{"type":"git","url":"git+https://github.com/rsaenen/ngx-custom-validators.git"},"keywords":["angular","angular 10","directive","reactive","template","forms","validate","validation","validators","custom"],"author":{"name":"Ralf Saenen","email":"ralf.saenen@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/rsaenen/ngx-custom-validators/issues"},"homepage":"https://github.com/rsaenen/ngx-custom-validators#readme","private":false,"peerDependencies":{"@angular/common":"^16.0.0","@angular/core":"^16.0.0","@angular/forms":"^16.0.0"},"dependencies":{"@angular/common":"^16.0.0","@angular/compiler":"^16.0.0","@angular/core":"^16.0.0","@angular/forms":"^16.0.0","@angular/platform-browser":"^16.0.0","@angular/platform-browser-dynamic":"^16.0.0","moment":"^2.28.0","rxjs":"~7.8.0","tslib":"^2.3.0","zone.js":"~0.13.0"},"devDependencies":{"@angular-devkit/build-angular":"^16.0.0","@angular-devkit/core":"^16.0.0","@angular/cli":"^16.0.0","@angular/compiler-cli":"^16.0.0","@angular/language-service":"^16.0.0","@types/jasmine":"~4.3.0","@types/jasminewd2":"~2.0.6","jasmine-core":"~4.6.0","karma":"~6.4.0","karma-chrome-launcher":"~3.2.0","karma-coverage":"~2.2.0","karma-jasmine":"~5.1.0","karma-jasmine-html-reporter":"~2.0.0","ng-packagr":"^16.0.0","protractor":"~7.0.0","ts-node":"~9.0.0","tslint":"~6.1.3","typescript":"~5.0.2"},"gitHead":"1e9077a859dc3e1342096d99d467e7659b37df82","_id":"@anyvado/ngx-custom-validators@11.0.8","_nodeVersion":"18.12.0","_npmVersion":"9.6.6","dist":{"integrity":"sha512-NMGdze9PMYzhiYFTO4wFOVh36BrzEosnEc7c1YUotgfQUSoe0mjpKLBSecQSlG7CvilvNQsyAQYE0ch3SeQunw==","shasum":"479a908b89a2baa29bf4af332df888c41cfb4dae","tarball":"https://registry.npmjs.org/@anyvado/ngx-custom-validators/-/ngx-custom-validators-11.0.8.tgz","fileCount":796,"unpackedSize":99823016,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFyWFSw1+0r4NSS1xpXKfvt17sb9HIqDZM4WnpCkeRo1AiEAggFRgoBHaah4QFuKFc8ihyTQBf0Pv0TMu1yn3Y+Z4PY="}]},"_npmUser":{"name":"daniil_tikhonov","email":"den.tikhonov.93@gmail.com"},"directories":{},"maintainers":[{"name":"daniil_tikhonov","email":"den.tikhonov.93@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ngx-custom-validators_11.0.8_1683554273111_0.09135607279382607"},"_hasShrinkwrap":false},"11.0.9":{"name":"@anyvado/ngx-custom-validators","version":"11.0.9","description":"Angular custom directives for validation","scripts":{"ng":"ng","start":"ng serve","build":"ng build --configuration production","test":"ng test","lint":"ng lint","e2e":"ng e2e","publish":"npm publish ./dist/ngx-custom-validators"},"repository":{"type":"git","url":"git+https://github.com/rsaenen/ngx-custom-validators.git"},"keywords":["angular","angular 10","directive","reactive","template","forms","validate","validation","validators","custom"],"author":{"name":"Ralf Saenen","email":"ralf.saenen@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/rsaenen/ngx-custom-validators/issues"},"homepage":"https://github.com/rsaenen/ngx-custom-validators#readme","private":false,"peerDependencies":{"@angular/common":"^16.0.0","@angular/core":"^16.0.0","@angular/forms":"^16.0.0"},"dependencies":{"@angular/common":"^16.0.0","@angular/compiler":"^16.0.0","@angular/core":"^16.0.0","@angular/forms":"^16.0.0","@angular/platform-browser":"^16.0.0","@angular/platform-browser-dynamic":"^16.0.0","moment":"^2.28.0","rxjs":"~7.8.0","tslib":"^2.3.0","zone.js":"~0.13.0"},"devDependencies":{"@angular-devkit/build-angular":"^16.0.0","@angular-devkit/core":"^16.0.0","@angular/cli":"^16.0.0","@angular/compiler-cli":"^16.0.0","@angular/language-service":"^16.0.0","@types/jasmine":"~4.3.0","@types/jasminewd2":"~2.0.6","jasmine-core":"~4.6.0","karma":"~6.4.0","karma-chrome-launcher":"~3.2.0","karma-coverage":"~2.2.0","karma-jasmine":"~5.1.0","karma-jasmine-html-reporter":"~2.0.0","ng-packagr":"^16.0.0","protractor":"~7.0.0","ts-node":"~9.0.0","tslint":"~6.1.3","typescript":"~5.0.2"},"gitHead":"1e9077a859dc3e1342096d99d467e7659b37df82","_id":"@anyvado/ngx-custom-validators@11.0.9","_nodeVersion":"18.12.0","_npmVersion":"9.6.6","dist":{"integrity":"sha512-w2z57iF/e70XaeOqlaCgmeC3whlbZHQ92j99jG2IgitYsHLPCUzXJOyHeVGdwN3jM9jDR76iMJXOssJsleAyLw==","shasum":"04e8c5cba5ecfcdccf9d1de723fb419ad16db49d","tarball":"https://registry.npmjs.org/@anyvado/ngx-custom-validators/-/ngx-custom-validators-11.0.9.tgz","fileCount":801,"unpackedSize":102028764,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCKeT8cgeQP2Ar52C3GhnicUTCTqst8/Rg/t/sBmUeq+QIgR/JjGuUUkqm7foU5O7eMTbw7U/lRMSywyOpFtyCXabM="}]},"_npmUser":{"name":"daniil_tikhonov","email":"den.tikhonov.93@gmail.com"},"directories":{},"maintainers":[{"name":"daniil_tikhonov","email":"den.tikhonov.93@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ngx-custom-validators_11.0.9_1683555184897_0.6683970160814623"},"_hasShrinkwrap":false},"11.0.10":{"name":"@anyvado/ngx-custom-validators","version":"11.0.10","description":"Angular custom directives for validation","repository":{"type":"git","url":"git+https://github.com/rsaenen/ngx-custom-validators.git"},"keywords":["angular","angular 10","directive","reactive","template","forms","validate","validation","validators","custom"],"author":{"name":"Ralf Saenen","email":"ralf.saenen@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/rsaenen/ngx-custom-validators/issues"},"homepage":"https://github.com/rsaenen/ngx-custom-validators#readme","private":false,"peerDependencies":{"@angular/common":"^16.0.0","@angular/core":"^16.0.0","@angular/forms":"^16.0.0"},"dependencies":{"@angular/common":"^16.0.0","@angular/compiler":"^16.0.0","@angular/core":"^16.0.0","@angular/forms":"^16.0.0","@angular/platform-browser":"^16.0.0","@angular/platform-browser-dynamic":"^16.0.0","moment":"^2.28.0","rxjs":"~7.8.0","tslib":"^2.3.0","zone.js":"~0.13.0"},"module":"fesm2022/anyvado-ngx-custom-validators.mjs","typings":"index.d.ts","exports":{"./package.json":{"default":"./package.json"},".":{"types":"./index.d.ts","esm2022":"./esm2022/anyvado-ngx-custom-validators.mjs","esm":"./esm2022/anyvado-ngx-custom-validators.mjs","default":"./fesm2022/anyvado-ngx-custom-validators.mjs"}},"sideEffects":false,"gitHead":"1e9077a859dc3e1342096d99d467e7659b37df82","_id":"@anyvado/ngx-custom-validators@11.0.10","_nodeVersion":"18.12.0","_npmVersion":"9.6.6","dist":{"integrity":"sha512-GW+5M3//ww1TdtfO6BwXcIKiyZCBQlzpdEgfEH+7yM9k9lTqGAjOdh/BtKnxWUFFz8ABuYTFP3XvJhHIP+tIYQ==","shasum":"b45067751afc7ba3399c146353b9046870916b6d","tarball":"https://registry.npmjs.org/@anyvado/ngx-custom-validators/-/ngx-custom-validators-11.0.10.tgz","fileCount":190,"unpackedSize":480395,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDSIRuAxOq6XeFsn+7Q3nowFkZWv1GV0W3EJuaD/LE5fgIhAIJm+M39J/xAIOnS0Hi8m5qj/Wrrar4xSz017ubwxeBb"}]},"_npmUser":{"name":"daniil_tikhonov","email":"den.tikhonov.93@gmail.com"},"directories":{},"maintainers":[{"name":"daniil_tikhonov","email":"den.tikhonov.93@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ngx-custom-validators_11.0.10_1683555237738_0.9351632941519372"},"_hasShrinkwrap":false}},"time":{"created":"2023-05-08T13:03:05.940Z","11.0.1":"2023-05-08T13:03:06.470Z","modified":"2023-05-08T14:13:58.164Z","11.0.2":"2023-05-08T13:04:08.113Z","11.0.5":"2023-05-08T13:10:47.503Z","11.0.3":"2023-05-08T13:12:14.834Z","11.0.4":"2023-05-08T13:19:08.377Z","11.0.6":"2023-05-08T13:29:27.898Z","11.0.7":"2023-05-08T13:52:44.279Z","11.0.8":"2023-05-08T13:57:53.616Z","11.0.9":"2023-05-08T14:13:05.436Z","11.0.10":"2023-05-08T14:13:58.054Z"},"maintainers":[{"name":"daniil_tikhonov","email":"den.tikhonov.93@gmail.com"}],"description":"Angular custom directives for validation","homepage":"https://github.com/rsaenen/ngx-custom-validators#readme","keywords":["angular","angular 10","directive","reactive","template","forms","validate","validation","validators","custom"],"repository":{"type":"git","url":"git+https://github.com/rsaenen/ngx-custom-validators.git"},"author":{"name":"Ralf Saenen","email":"ralf.saenen@gmail.com"},"bugs":{"url":"https://github.com/rsaenen/ngx-custom-validators/issues"},"license":"MIT","readme":"# Description\r\n\r\nAngular Custom Validators, forked from [ng2-validation](https://github.com/yuyang041060120/ng2-validation).\r\nDirectives for form validation (template or model driven).\r\n\r\n# Installation\r\n\r\n```bash\r\nnpm i ngx-custom-validators --save\r\n```\r\n\r\n# Validators\r\n\r\n## Angular built-in validators\r\n\r\n- maxlength\r\n- minlength\r\n- pattern\r\n- required\r\n\r\n## Custom validators\r\n\r\n- array length\r\n- base64\r\n- credit card\r\n- date\r\n- date ISO\r\n- digits\r\n- email\r\n- equal\r\n- included in\r\n- not included in\r\n- not equal\r\n- equal to\r\n- not equal to\r\n- greater than\r\n- greater than or equal\r\n- json\r\n- less than\r\n- less than or equal\r\n- max\r\n- max date\r\n- min\r\n- min date\r\n- not equal\r\n- not equal to\r\n- number\r\n- property\r\n- range\r\n- range length\r\n- url\r\n- uuid\r\n\r\n# Usage\r\n\r\nThe paramater of each validator (if it has) can be accessible in the template with `reason`.\r\n```html\r\n<input type=\"number\" [(ngModel)]=\"model.field\" name=\"field\" #field=\"ngModel\" [gt]=\"10\">\r\n<!-- Will display : error message and must be greater than 10 -->\r\n<p *ngIf=\"field.errors?.gt\">error message and must be greater than {{ field.errors?.reason }}</p>\r\n``` \r\n\r\n## Template driven\r\n\r\nimport `FormsModule` and `CustomFormsModule` in *app.module.ts*\r\n\r\n```typescript\r\nimport { NgModule } from '@angular/core';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { CustomFormsModule } from 'ngx-custom-validators';\r\n\r\nimport { AppComponent } from './app.component';\r\n\r\n@NgModule({\r\n    imports: [BrowserModule, FormsModule, CustomFormsModule],\r\n    declarations: [AppComponent],\r\n    bootstrap: [AppComponent]\r\n})\r\nexport class AppModule {\r\n}\r\n```\r\n\r\n### range length - rangeLength\r\n\r\n```html\r\n<input type=\"text\" [(ngModel)]=\"model.field\" name=\"field\" #field=\"ngModel\" [rangeLength]=\"[5, 9]\">\r\n<p *ngIf=\"field.errors?.rangeLength\">error message</p>\r\n```\r\n\r\n### min\r\n\r\n```html\r\n<input type=\"number\" [(ngModel)]=\"model.field\" name=\"field\" #field=\"ngModel\" [min]=\"10\">\r\n<p *ngIf=\"field.errors?.min\">error message</p>\r\n```\r\n\r\n### greater than - gt\r\n\r\n```html\r\n<input type=\"number\" [(ngModel)]=\"model.field\" name=\"field\" #field=\"ngModel\" [gt]=\"10\">\r\n<p *ngIf=\"field.errors?.gt\">error message</p>\r\n```\r\n\r\n### greater than or equal - gte\r\n\r\n```html\r\n<input type=\"number\" [(ngModel)]=\"model.field\" name=\"field\" #field=\"ngModel\" [gte]=\"10\">\r\n<p *ngIf=\"field.errors?.gte\">error message</p>\r\n```\r\n\r\n### max\r\n\r\n```html\r\n<input type=\"number\" [(ngModel)]=\"model.field\" name=\"field\" #field=\"ngModel\" [max]=\"20\">\r\n<p *ngIf=\"field.errors?.max\">error message</p>\r\n```\r\n\r\n### less than - lt\r\n\r\n```html\r\n<input type=\"number\" [(ngModel)]=\"model.field\" name=\"field\" #field=\"ngModel\" [lt]=\"20\">\r\n<p *ngIf=\"field.errors?.lt\">error message</p>\r\n```\r\n\r\n### less than or equal - lte\r\n\r\n```html\r\n<input type=\"number\" [(ngModel)]=\"model.field\" name=\"field\" #field=\"ngModel\" [lte]=\"20\">\r\n<p *ngIf=\"field.errors?.lte\">error message</p>\r\n```\r\n\r\n### range\r\n\r\n```html\r\n<input type=\"number\" [(ngModel)]=\"model.field\" name=\"field\" #field=\"ngModel\" [range]=\"[10, 20]\">\r\n<p *ngIf=\"field.errors?.range\">error message</p>\r\n```\r\n\r\n### digits\r\n\r\n```html\r\n<input type=\"text\" [(ngModel)]=\"model.field\" name=\"field\" #field=\"ngModel\" digits>\r\n<p *ngIf=\"field.errors?.digits\">error message</p>\r\n```\r\n\r\n### number\r\n\r\n```html\r\n<input type=\"text\" [(ngModel)]=\"model.field\" name=\"field\" #field=\"ngModel\" number>\r\n<p *ngIf=\"field.errors?.number\">error message</p>\r\n```\r\n\r\n### url\r\n\r\n```html\r\n<input type=\"text\" [(ngModel)]=\"model.field\" name=\"field\" #field=\"ngModel\" url>\r\n<p *ngIf=\"field.errors?.url\">error message</p>\r\n```\r\n\r\n### email\r\n\r\n```html\r\n<input type=\"text\" [(ngModel)]=\"model.field\" name=\"field\" #field=\"ngModel\" ngvemail>\r\n<p *ngIf=\"field.errors?.email\">error message</p>\r\n```\r\n\r\n### date\r\n\r\n```html\r\n<input type=\"text\" [(ngModel)]=\"model.field\" name=\"field\" #field=\"ngModel\" date>\r\n<p *ngIf=\"field.errors?.date\">error message</p>\r\n```\r\n\r\n### min date - minDate\r\n\r\n```html\r\n<input type=\"text\" [(ngModel)]=\"model.field\" name=\"field\" #field=\"ngModel\" minDate=\"2016-09-09\">\r\n<p *ngIf=\"field.errors?.minDate\">error message</p>\r\n```\r\n\r\n```html\r\n<input type=\"text\" [(ngModel)]=\"model.field\" name=\"field\" #field=\"ngModel\" [minDate]=\"myOtherField\">\r\n<p *ngIf=\"field.errors?.minDate\">error message</p>\r\n```\r\n\r\n### max date - maxDate\r\n\r\n```html\r\n<input type=\"text\" [(ngModel)]=\"model.field\" name=\"field\" #field=\"ngModel\" maxDate=\"2016-09-09\">\r\n<p *ngIf=\"field.errors?.maxDate\">error message</p>\r\n```\r\n\r\n```html\r\n<input type=\"text\" [(ngModel)]=\"model.field\" name=\"field\" #field=\"ngModel\" [maxDate]=\"myOtherField\">\r\n<p *ngIf=\"field.errors?.maxDate\">error message</p>\r\n```\r\n\r\n### date ISO - dateISO\r\n\r\n```html\r\n<input type=\"text\" [(ngModel)]=\"model.field\" name=\"field\" #field=\"ngModel\" dateISO>\r\n<p *ngIf=\"field.errors?.dateISO\">error message</p>\r\n```\r\n\r\n### credit card - creditCard\r\n\r\n```html\r\n<input type=\"text\" [(ngModel)]=\"model.field\" name=\"field\" #field=\"ngModel\" creditCard>\r\n<p *ngIf=\"field.errors?.creditCard\">error message</p>\r\n```\r\n\r\n### json\r\n\r\n```html\r\n<input type=\"text\" [(ngModel)]=\"model.field\" name=\"field\" #field=\"ngModel\" json>\r\n<p *ngIf=\"field.errors?.json\">error message</p>\r\n```\r\n\r\n### base64\r\n\r\n```html\r\n<input type=\"text\" [(ngModel)]=\"model.field\" name=\"field\" #field=\"ngModel\" base64>\r\n<p *ngIf=\"field.errors?.base64\">error message</p>\r\n```\r\n\r\n### uuid\r\n\r\n```html\r\n<input type=\"text\" [(ngModel)]=\"model.field\" name=\"field\" #field=\"ngModel\" [uuid]=\"'all'\">\r\n<p *ngIf=\"field.errors?.uuid\">error message</p>\r\n```\r\n\r\n*default*: all\r\n\r\n**support**\r\n\r\n- 3\r\n- 4\r\n- 5\r\n- all\r\n\r\n### equal\r\n\r\n```html\r\n<input type=\"text\" [(ngModel)]=\"model.field\" name=\"field\" #field=\"ngModel\" [equal]=\"'xxx'\">\r\n<p *ngIf=\"field.errors?.equal\">error message</p>\r\n```\r\n\r\n### not equal - notEqual\r\n\r\n```html\r\n<input type=\"text\" [(ngModel)]=\"model.field\" name=\"field\" #field=\"ngModel\" [notEqual]=\"'xxx'\">\r\n<p *ngIf=\"field.errors?.notEqual\">error message</p>\r\n```\r\n\r\n### equal to - equalTo\r\n\r\n```html\r\n<input type=\"password\" ngModel name=\"password\" #password=\"ngModel\" required>\r\n<p *ngIf=\"password.errors?.required\">required error</p>\r\n<input type=\"password\" ngModel name=\"certainPassword\" #certainPassword=\"ngModel\" [equalTo]=\"password\">\r\n<p *ngIf=\"certainPassword.errors?.equalTo\">equalTo error</p>\r\n```\r\n\r\n### not equal to - notEqualTo\r\n\r\n```html\r\n<input type=\"text\" ngModel name=\"password\" #password=\"ngModel\" required>\r\n<p *ngIf=\"password.errors?.required\">required error</p>\r\n<input type=\"password\" ngModel name=\"certainPassword\" #certainPassword=\"ngModel\" [notEqualTo]=\"password\">\r\n<p *ngIf=\"certainPassword.errors?.equalTo\">equalTo error</p>\r\n```\r\n\r\n### property\r\n\r\n```typescript\r\npublic obj = { id: 1 } // OK\r\npublic obj = { name: 'baguette' } // KO\r\n```\r\n\r\n```html\r\n<input type=\"text\" ngModel name=\"obj\" #obj=\"ngModel\" property=\"id\">\r\n<!-- For multiple properties check -->\r\n<input type=\"text\" ngModel name=\"obj\" #obj=\"ngModel\" property=\"id,value,name\">\r\n<p *ngIf=\"obj.errors?.property\">property error</p>\r\n```\r\n\r\n### array length - ArrayLength\r\n```typescript\r\npublic arr = [{ name: 'baguette' }, { name: 'croisant' }] // OK\r\npublic arr = [{ name: 'baguette' }] // KO\r\n```\r\n\r\n```html\r\n<input type=\"text\" ngModel name=\"arr\" #arr=\"ngModel\" arrayLength=\"2\">\r\n<p *ngIf=\"arr.errors?.arrayLength\">arrayLength error</p>\r\n```\r\n\r\n## Model driven\r\n\r\nimport `ReactiveFormsModule` in *app.module.ts*\r\n\r\n```typescript\r\nimport { NgModule } from '@angular/core';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\n\r\nimport { AppComponent } from './app.component';\r\n\r\n@NgModule({\r\n    imports: [BrowserModule, ReactiveFormsModule],\r\n    declarations: [AppComponent],\r\n    bootstrap: [AppComponent]\r\n})\r\nexport class AppModule {\r\n}\r\n```\r\n\r\nimport `CustomValidators` in *app.component.ts*\r\n\r\n```typescript\r\nimport { Component } from '@angular/core';\r\nimport { FormGroup, FormControl } from '@angular/forms';\r\nimport { CustomValidators } from 'ngx-custom-validators';\r\n\r\n@Component({\r\n    selector: 'app',\r\n    template: require('./app.html')\r\n})\r\nexport class AppComponent {\r\n    form: FormGroup;\r\n\r\n    constructor() {\r\n        this.form = new FormGroup({\r\n            field: new FormControl('', CustomValidators.range([5, 9]))\r\n        });\r\n    }\r\n}\r\n```\r\n\r\n```html\r\n<input type=\"text\" formControlName=\"field\">\r\n<p *ngIf=\"demoForm.from.controls.field.errors?.rangeLength\">error message</p>\r\n```\r\n\r\n### range length - rangeLenght\r\n\r\n```typescript\r\nnew FormControl('', CustomValidators.rangeLength([5, 9]))\r\n```\r\n\r\n### min\r\n\r\n```typescript\r\nnew FormControl('', CustomValidators.min(10))\r\n```\r\n\r\n### greater than - gt\r\n\r\n```typescript\r\nnew FormControl('', CustomValidators.gt(10))\r\n```\r\n\r\n### max\r\n\r\n```typescript\r\nnew FormControl('', CustomValidators.max(20))\r\n```\r\n\r\n### less than - lt\r\n\r\n```typescript\r\nnew FormControl('', CustomValidators.lt(20))\r\n```\r\n\r\n### range\r\n\r\n```typescript\r\nnew FormControl('', CustomValidators.range([10, 20]))\r\n```\r\n\r\n### digits\r\n\r\n```typescript\r\nnew FormControl('', CustomValidators.digits)\r\n```\r\n\r\n### number\r\n\r\n```typescript\r\nnew FormControl('', CustomValidators.number)\r\n```\r\n\r\n### url\r\n\r\n```typescript\r\nnew FormControl('', CustomValidators.url)\r\n```\r\n\r\n### email\r\n\r\n```typescript\r\nnew FormControl('', CustomValidators.email)\r\n```\r\n\r\n### date\r\n\r\n```typescript\r\nnew FormControl('', CustomValidators.date)\r\n```\r\n\r\n### min date - minDate\r\n\r\n```typescript\r\nnew FormControl('', CustomValidators.minDate('2016-09-09'))\r\n```\r\n\r\n### max date - maxDate\r\n\r\n```typescript\r\nnew FormControl('', CustomValidators.maxDate('2016-09-09'))\r\n```\r\n\r\n### date ISO - dateISO\r\n\r\n```typescript\r\nnew FormControl('', CustomValidators.dateISO)\r\n```\r\n\r\n### credit card - creditCard\r\n\r\n```typescript\r\nnew FormControl('', CustomValidators.creditCard)\r\n```\r\n\r\n### json\r\n\r\n```typescript\r\nnew FormControl('', CustomValidators.json)\r\n```\r\n\r\n### base64\r\n\r\n```typescript\r\nnew FormControl('', CustomValidators.base64)\r\n```\r\n\r\n### uuid\r\n\r\n```typescript\r\nnew FormControl('', CustomValidators.uuid('3'))\r\n```\r\n\r\n### equal\r\n\r\n```typescript\r\nnew FormControl('', CustomValidators.equal('xxx'))\r\n```\r\n\r\n### not equal - notEqual\r\n\r\n```typescript\r\nnew FormControl('', CustomValidators.notEqual('xxx'))\r\n```\r\n\r\n### equal to - equalTo\r\n\r\n```typescript\r\nlet password = new FormControl('', Validators.required);\r\nlet certainPassword = new FormControl('', CustomValidators.equalTo(password));\r\n\r\nthis.form = new FormGroup({\r\n  password: password,\r\n  certainPassword: certainPassword\r\n});\r\n```\r\n\r\n```html\r\n<form [formGroup]=\"form\">\r\n  <input type=\"password\" formControlName=\"password\">\r\n  <p *ngIf=\"form.controls.password.errors?.required\">required error</p>\r\n  <input type=\"password\" formControlName=\"certainPassword\">\r\n  <p *ngIf=\"form.controls.certainPassword.errors?.equalTo\">equalTo error</p>\r\n</form>\r\n```\r\n\r\n### not equal to - notEqualTo\r\n\r\n```typescript\r\nlet password = new FormControl('', Validators.required);\r\nlet certainPassword = new FormControl('', CustomValidators.notEqualTo(password));\r\n\r\nthis.form = new FormGroup({\r\n  password: password,\r\n  certainPassword: certainPassword\r\n});\r\n```\r\n\r\n```html\r\n<form [formGroup]=\"form\">\r\n  <input type=\"password\" formControlName=\"password\">\r\n  <p *ngIf=\"form.controls.password.errors?.required\">required error</p>\r\n  <input type=\"password\" formControlName=\"certainPassword\">\r\n  <p *ngIf=\"form.controls.certainPassword.errors?.notEqualTo\">notEqualTo error</p>\r\n</form>\r\n```\r\n\r\n### property\r\n```typescript\r\npublic obj = { id: 1 };\r\n\r\nthis.form = new FormGroup({\r\n  obj: new FormControl('', CustomValidators.property('id'))\r\n  // For multiple properties check\r\n  obj: new FormControl('', CustomValidators.property('id,value,name'))\r\n});\r\n```\r\n\r\n```html\r\n<form [formGroup]=\"form\">\r\n  <input type=\"text\" formControlName=\"obj\">\r\n  <p *ngIf=\"form.controls.obj.errors?.property\">property error</p>\r\n</form>\r\n```\r\n\r\n### array length - ArrayLength\r\n```typescript\r\npublic arr = [{ name: 'baguette' }, { name: 'croisant' }]\r\nthis.form = new FormGroup({\r\n  arr: new FormControl('', CustomValidators.arrayLength(2))\r\n});\r\n```\r\n\r\n```html\r\n<form [formGroup]=\"form\">\r\n  <input type=\"text\" formControlName=\"arr\">\r\n  <p *ngIf=\"arr.errors?.arrayLength\">arrayLength error</p>\r\n</form>\r\n```\r\n\r\n### included in array - includedIn\r\n```typescript\r\npublic arr = [{ name: 'baguette' }, { name: 'croisant' }]\r\nthis.form = new FormGroup({\r\n  arr: new FormControl('bread', CustomValidators.includedIn(arr))\r\n});\r\n```\r\n\r\n```html\r\n<form [formGroup]=\"form\">\r\n  <input type=\"text\" formControlName=\"arr\">\r\n  <p *ngIf=\"arr.errors?.includedIn\">includedIn error</p>\r\n</form>\r\n```\r\n\r\n### not included in array - notIncludedIn\r\n```typescript\r\npublic arr = [{ name: 'baguette' }, { name: 'croisant' }]\r\nthis.form = new FormGroup({\r\n  arr: new FormControl('baguette', CustomValidators.notIncludedIn(arr))\r\n});\r\n```\r\n\r\n```html\r\n<form [formGroup]=\"form\">\r\n  <input type=\"text\" formControlName=\"arr\">\r\n  <p *ngIf=\"arr.errors?.notIncludedIn\">notIncludedIn error</p>\r\n</form>\r\n```\r\n\r\n### not matching a regular expression - notMatching (negate pattern)\r\n```typescript\r\npublic pattern = /a+bc/\r\nthis.form = new FormGroup({\r\n  p: new FormControl('aabc', CustomValidators.notIncludedIn(pattern))\r\n});\r\n```\r\n\r\n```html\r\n<form [formGroup]=\"form\">\r\n  <input type=\"text\" formControlName=\"p\">\r\n  <p *ngIf=\"arr.errors?.notMatching\">notMatching error</p>\r\n</form>\r\n```\r\n\r\n# For developpers\r\nTo run the projet : `npm start`\r\nDon't forget to run `npm test` and `npm lint` before each pull request. Thanks !\r\n","readmeFilename":"README.md"}