{"_id":"@calvinnl/ng2-validation","_rev":"7-f8436757e6f4d09d137fdeb564926c44","name":"@calvinnl/ng2-validation","dist-tags":{"latest":"4.2.6"},"versions":{"4.2.0":{"name":"@calvinnl/ng2-validation","version":"4.2.0","description":"angular2 validation","main":"dist/index.js","typings":"dist/index.d.ts","scripts":{"test":"karma start ./karma.conf.js","dev":"webpack-dev-server --port 4001 --watch","example":"webpack --optimize-minimize","ngc":"ngx ngc","prerollup":"rimraf bundles","rollup":"rollup -c","prebuild":"rimraf dist","build":"npm run ngc && npm run rollup","prepublish":"npm run build"},"repository":{"type":"git","url":"git+https://github.com/yuyang041060120/angular2-validate.git"},"keywords":["angular2","validate","validation"],"author":{"name":"yuyang041060120","email":"yuyang041060120@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/yuyang041060120/angular2-validate/issues"},"homepage":"https://github.com/yuyang041060120/angular2-validate#readme","devDependencies":{"@angular/common":"^14.2.12","@angular/compiler":"^14.2.12","@angular/core":"^14.2.12","@angular/forms":"^14.2.12","@angular/platform-browser":"^14.2.12","@angular/platform-browser-dynamic":"^14.2.12","@types/jasmine":"~3.6.0","@types/node":"^7.0.12","bootstrap":"^3.3.7","core-js":"^2.4.1","jasmine-core":"^2.4.1","jasmine-data-provider":"^2.2.0","karma":"~6.3.2","karma-jasmine":"^1.0.2","karma-phantomjs-launcher":"^1.0.1","karma-sourcemap-loader":"^0.3.7","karma-webpack":"^2.0.3","less":"^2.7.2","less-loader":"^4.0.2","phantomjs-prebuilt":"^2.1.7","raw-loader":"^0.5.1","reflect-metadata":"^0.1.3","rimraf":"^4.1.1","rollup":"^0.41.4","rollup-plugin-typescript":"^0.8.1","rxjs":"^7.5.6","ts-loader":"^2.0.3","typescript":"4.6.4","webpack":"^2.3.2","webpack-dev-server":"^2.4.2","zone.js":"~0.11.4"},"dependencies":{"libphonenumber-js":"^1.10.18"},"gitHead":"e886418bf72dc06d3a95d5aea19d4b21db84a4d1","_id":"@calvinnl/ng2-validation@4.2.0","_nodeVersion":"18.13.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-r7g2nOhR+QGWNBSNCRzEy8qdcaXcgAM8QaBxfu0QZs0cZ9oUd3KN7nk4fKsR9tZkPlJG9f7zCGVmu4b9609f2Q==","shasum":"3a4793419f13ffe5acdc83632242af9fd2432625","tarball":"https://registry.npmjs.org/@calvinnl/ng2-validation/-/ng2-validation-4.2.0.tgz","fileCount":7,"unpackedSize":118788,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICQ/gKetgYjAif6fm4prqIt/J21l4oI3VCY7y8OFltz4AiBfGQuF5ZetRQehqIIeKrcGlMI7et/UZb+YwW498W45IA=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj19PjACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrgRw//UPQFc21XP+XpEWSU6WpRTvu7Pk3/z77YuQpAItyp41yOeGu0\r\n8lRQ6DH0m8G0pRKSN3SN6yR1zHRHdB3lemi001rYqqbbkr8BxJuBXmlfJDjP\r\nHBg8UoBg9Rs/6lVu5ALM6FYMjA2sQQB7NpQ3XJ5E+QeHZAXXg6LRT90kEknu\r\ne92NLMbW0Ej6yFOFQ7Do6NNLnzEWt5/Kmt78Hh+GghW3IhWWnBIKtz9B7lzL\r\n/X9A7azXEnmUdnyGYxraWfMNHefnOnjFq4JjEOdY7EIjnRnAfn1iZkulY0ig\r\nt5zwYdxXEKwUjRzsRaipDkwG3sjlXQ8QJUkQ84hjud+jMc6RU2z0KlbRhdkW\r\npUuUSGDmHhOnhgi/+AsB/XFOzy+PgBBBAnO5LMcjDbOfB4nJKU9TwVEfLe2A\r\nbzbXFa85wc2eVJ9tp1Q0OtSIyXVNnekXMh3kqEJlzgucwsPPQ4gXRK7lcaWn\r\nuGeXCDv7nKKeTliPt5vFRNcAO56Kpc6kerOB4FAb1quroYu4H0lxFEdePe/8\r\nKLWZY8hu7SVR95caCUVCDRd66kzzJ25Ewg1gOdbq5uycgnk3H3W2hJ2FHHGM\r\nNwGzjgqmCYaisE/jgtvO/zeYv3CnJVvYtVarYUVavBR2PDMn95+qEKZ1IrNa\r\nQFjuOfk0GHWt3L1uK64Ln6elUFYY9IgrX78=\r\n=EUnY\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"calvinnl","email":"calvin@heren01.nl"},"directories":{},"maintainers":[{"name":"calvinnl","email":"calvin@heren01.nl"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng2-validation_4.2.0_1675088867175_0.03509732877826299"},"_hasShrinkwrap":false},"4.2.1":{"name":"@calvinnl/ng2-validation","version":"4.2.1","description":"angular2 validation","main":"dist/index.js","typings":"dist/index.d.ts","scripts":{"test":"karma start ./karma.conf.js","dev":"webpack-dev-server --port 4001 --watch","example":"webpack --optimize-minimize","ngc":"ngx ngc","prerollup":"rimraf bundles","rollup":"rollup -c","prebuild":"rimraf dist","build":"npm run ngc && npm run rollup","prepublish":"npm run build"},"repository":{"type":"git","url":"git+https://github.com/yuyang041060120/angular2-validate.git"},"keywords":["angular2","validate","validation"],"author":{"name":"yuyang041060120","email":"yuyang041060120@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/yuyang041060120/angular2-validate/issues"},"homepage":"https://github.com/yuyang041060120/angular2-validate#readme","devDependencies":{"@angular/common":"^14.2.12","@angular/compiler":"^14.2.12","@angular/core":"^14.2.12","@angular/forms":"^14.2.12","@angular/platform-browser":"^14.2.12","@angular/platform-browser-dynamic":"^14.2.12","@types/jasmine":"~3.6.0","@types/node":"^7.0.12","bootstrap":"^3.3.7","core-js":"^2.4.1","jasmine-core":"^2.4.1","jasmine-data-provider":"^2.2.0","karma":"~6.3.2","karma-jasmine":"^1.0.2","karma-phantomjs-launcher":"^1.0.1","karma-sourcemap-loader":"^0.3.7","karma-webpack":"^2.0.3","less":"^2.7.2","less-loader":"^4.0.2","phantomjs-prebuilt":"^2.1.7","raw-loader":"^0.5.1","reflect-metadata":"^0.1.3","rimraf":"^4.1.1","rollup":"^0.41.4","rollup-plugin-typescript":"^0.8.1","rxjs":"^7.5.6","ts-loader":"^2.0.3","typescript":"4.6.4","webpack":"^2.3.2","webpack-dev-server":"^2.4.2","zone.js":"~0.11.4"},"dependencies":{"libphonenumber-js":"^1.10.18"},"gitHead":"f1bcf61a7ad6bc6fd4d1e5e0643f2d7629d72201","_id":"@calvinnl/ng2-validation@4.2.1","_nodeVersion":"18.13.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-ecs8l/Rd5tUETGW6aYO5nOGUaS6zAuLkraFBHYu2TQghlXorxTmy5MZir5SbohmRKaCnUqKw3bw7YwdNP5Vx4Q==","shasum":"b0ac8917cbaff593003af61c6e77e42b9018288f","tarball":"https://registry.npmjs.org/@calvinnl/ng2-validation/-/ng2-validation-4.2.1.tgz","fileCount":7,"unpackedSize":118788,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGZOgtYxAvDOW4wqlKV28Q+gXfjGLTn2faEEy3XnGBqLAiEAgXVHpnWXPE9ViHDHheeeRDrMUgWsgvUX/Bh7w6nSDFA="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj19P2ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrQPhAAjkbf7kvSSRH3SMCsmi9vXh+T4Q0CwXDJCKooTuxQOq3UbTP9\r\nLz0l11HTmIGqX9Ba+CCqYQeWGPk57Q+BdJFf/APoCyKKG/WW5n9lTqkK04Gr\r\nYUOuSrL58Jv3bXCNn1A+TKBrPpdEgzfNUPJVDVS6E3v21DiwDj2PXLYGm3Rf\r\n139o5R3UBuTvKubrmNqv9ycpbrL8fSVqceKu5D32d9dUSNggPtm3kfwQGtif\r\nDjkWUoZWuEqhk/InBn2S76PiymT6qzW/gaPHAW09ugaw+RRsj+3ffJt3bqwf\r\n2H0RivfuAvNBFylqTApJJB3rBEHCNQcU93DW/c3ZXZiVBJ2pzZVARQIaF7jM\r\nmdjb5eqRNQ14yUIml41THzJqvro7Hlx8tZBkuDr13cw8Egf8vE51lqAmLPaW\r\nbvK8B/mXPqqSb1VMnqYAkhpE4al0M2B/F7t/8xTEuBI52OHAJ0nNQJFHcw9I\r\nfTipJSTfoTI70SS/u4D4t3HpplfzygpgHOGSd4iWewSzoMb8VxiLXQcsQoP7\r\nKhriJ9rWj+6aojLsDdLv7mZElka4OR8NqqMkSDvyXHfsMvDst4ZPVnvx9LJC\r\nym63CKMetNFiZUMCi0vRl4VAu7BVpaxwT6/JkrBgTrlPh+up2gdDHjs+AIOS\r\nG2X/MzNpKRJ7VIsrDg7VKy7rgpgCnCOtSTE=\r\n=vq4M\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"calvinnl","email":"calvin@heren01.nl"},"directories":{},"maintainers":[{"name":"calvinnl","email":"calvin@heren01.nl"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng2-validation_4.2.1_1675088885809_0.4601512297898027"},"_hasShrinkwrap":false},"4.2.2":{"name":"@calvinnl/ng2-validation","version":"4.2.2","description":"angular2 validation","main":"dist/index.js","typings":"dist/index.d.ts","scripts":{"test":"karma start ./karma.conf.js","dev":"webpack-dev-server --port 4001 --watch","example":"webpack --optimize-minimize","ngc":"ngc","prerollup":"rimraf bundles","rollup":"rollup -c","prebuild":"rimraf dist","build":"npm run ngc && npm run rollup","prepublish":"npm run build"},"repository":{"type":"git","url":"git+https://gitlab.com/heren01-public/ng2-validation.git"},"keywords":["angular2","validate","validation"],"author":{"name":"Calvin","email":"calvin@heren01.nl"},"license":"MIT","bugs":{"url":"https://github.com/yuyang041060120/angular2-validate/issues"},"homepage":"https://github.com/yuyang041060120/angular2-validate#readme","devDependencies":{"@angular/common":"^14.2.12","@angular/compiler":"^14.2.12","@angular/compiler-cli":"^14.2.12","@angular/core":"^14.2.12","@angular/forms":"^14.2.12","@angular/platform-browser":"^14.2.12","@angular/platform-browser-dynamic":"^14.2.12","@types/jasmine":"~3.6.0","@types/node":"^7.0.12","bootstrap":"^3.3.7","core-js":"^2.4.1","jasmine-core":"^2.4.1","jasmine-data-provider":"^2.2.0","karma":"~6.3.2","karma-jasmine":"^1.0.2","karma-phantomjs-launcher":"^1.0.1","karma-sourcemap-loader":"^0.3.7","karma-webpack":"^2.0.3","less":"^2.7.2","less-loader":"^4.0.2","phantomjs-prebuilt":"^2.1.7","raw-loader":"^0.5.1","reflect-metadata":"^0.1.3","rimraf":"^4.1.1","rollup":"^0.41.4","rollup-plugin-typescript":"^0.8.1","rxjs":"^7.5.6","ts-loader":"^2.0.3","typescript":"4.6.4","webpack":"^2.3.2","webpack-dev-server":"^2.4.2","zone.js":"~0.11.4"},"dependencies":{"libphonenumber-js":"^1.10.18"},"gitHead":"ef7819f9f7d4ff822e773faadc9f56e24334313b","_id":"@calvinnl/ng2-validation@4.2.2","_nodeVersion":"18.13.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-QdYeGLbIWdd+ITbjTBn0p6x2pZTtK2UoVt0bvSZIyIZtBf477Bi2Mk98nT9G9VlLPELrKW0dRbzJ398E6PED1g==","shasum":"2f31d9032c9a9562cb29b518f73f9df473eac9d5","tarball":"https://registry.npmjs.org/@calvinnl/ng2-validation/-/ng2-validation-4.2.2.tgz","fileCount":238,"unpackedSize":280118,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICdDZhK8UlRN6GxCqhD/KHkf7zvWpqf5lgDlUkWGU7ZLAiEA0qOexeNv+qFIQriv61nx+mC0XFaJWKcV94adciT8vnA="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj19xBACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoikhAAojs2VN51owDZ6NctvU+/wLxhVnPXv+e636tkidyHr53b9kSp\r\ni/d2oFWEd7AfrDnckWsFurecyjLnLKk4sb0VzPztXcYFMO0BuzpofOpgw/Ay\r\nGXWJOVScoy8j7yYYbRt+OxSYNvM7vkHOnJfSL1L/9MKNFSD7MTLAjUJKqfFy\r\nL6hLoCFkvCb64omnFVQZWVIOo5tBq3HqoP0QZkOnOBYgIoRd9c59TYtlNgT3\r\nOKyNj7lh1Rfy63TthMaZvW+wAsV8SBsq46tVKjjZBz2Z0jk2q4YPGPVydpg4\r\nsrMtGBg/BKPq0JuyIqxuWJ2pSs7PDoTdC/K8NyJ4y87VU1Fgk676f+qSR6+j\r\nAA2WrETQ57H/CRBH4IeStCq9idS81O8OTvALU07VZoa9RlUBlRgvmhr0jWnK\r\nkxR4D4OtCYxDGWpfBuc+scM8L8RlkxVaerWkNTqHJQDsW+g6gg/QvN1SoXBz\r\n7rkgD6kVHdS0IyCGx9fPsghV1ur3GADj9Z/kVNq117W2fM+V0UahgtBmGb4E\r\ne9cqjT8ZudANtwDF+3D2Q+CEGkgWXCW+i4xlEmM/E9Rcm83yssWnxzIidmDu\r\nMD7hjfZASL9+Ka4V0tAiklxAYB5sZHP40bIYdaceeV6n+1J7IZ97OmRlyX1I\r\nhkmgDu97fHVHoA4HxwzzNcCfJTIm6xp5r60=\r\n=hPGF\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"calvinnl","email":"calvin@heren01.nl"},"directories":{},"maintainers":[{"name":"calvinnl","email":"calvin@heren01.nl"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng2-validation_4.2.2_1675091009046_0.33154875172378695"},"_hasShrinkwrap":false},"4.2.3":{"name":"@calvinnl/ng2-validation","version":"4.2.3","type":"module","description":"angular2 validation","main":"dist/index.js","typings":"dist/index.d.ts","scripts":{"test":"karma start ./karma.conf.js","dev":"webpack-dev-server --port 4001 --watch","example":"webpack --optimize-minimize","ngc":"ngc","prerollup":"rimraf bundles","rollup":"rollup -c","prebuild":"rimraf dist","build":"npm run ngc && npm run rollup","prepublish":"npm run build"},"repository":{"type":"git","url":"git+https://gitlab.com/heren01-public/ng2-validation.git"},"keywords":["angular2","validate","validation"],"author":{"name":"Calvin","email":"calvin@heren01.nl"},"license":"MIT","bugs":{"url":"https://github.com/yuyang041060120/angular2-validate/issues"},"homepage":"https://github.com/yuyang041060120/angular2-validate#readme","devDependencies":{"@angular/common":"^14.2.12","@angular/compiler":"^14.2.12","@angular/compiler-cli":"^14.2.12","@angular/core":"^14.2.12","@angular/forms":"^14.2.12","@angular/platform-browser":"^14.2.12","@angular/platform-browser-dynamic":"^14.2.12","@types/jasmine":"~3.6.0","@types/node":"^7.0.12","bootstrap":"^3.3.7","core-js":"^2.4.1","jasmine-core":"^2.4.1","jasmine-data-provider":"^2.2.0","karma":"~6.3.2","karma-jasmine":"^1.0.2","karma-phantomjs-launcher":"^1.0.1","karma-sourcemap-loader":"^0.3.7","karma-webpack":"^2.0.3","less":"^2.7.2","less-loader":"^4.0.2","phantomjs-prebuilt":"^2.1.7","raw-loader":"^0.5.1","reflect-metadata":"^0.1.3","rimraf":"^4.1.1","rollup":"^0.41.4","rollup-plugin-typescript":"^0.8.1","rxjs":"^7.5.6","ts-loader":"^2.0.3","typescript":"4.6.4","webpack":"^2.3.2","webpack-dev-server":"^2.4.2","zone.js":"~0.11.4"},"dependencies":{"libphonenumber-js":"^1.10.18"},"gitHead":"1e05e601ad10036de451ea581848d5d36725977d","_id":"@calvinnl/ng2-validation@4.2.3","_nodeVersion":"18.13.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-q7Vp/VUPZi3WHFI2203eypDnipdLcQGMFOLyGEoNMak0Lu3oisMGUHtBxu7E/4eT5aSWsocJ2ewamhEKf19bdw==","shasum":"9e9c1a2fd13e16c2812cd57886e22409019fe22d","tarball":"https://registry.npmjs.org/@calvinnl/ng2-validation/-/ng2-validation-4.2.3.tgz","fileCount":238,"unpackedSize":280138,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIH+Es80H/PZz9fkdsO/OSRwcHanXlyzy94YI+dHykQtIAiBvG0gfnq1Mc2PMP3KQ7afHIVl71n74zzDi+GiTFh9Ipg=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj1+o5ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoMZRAAjE4EwKpHO+XGMgri9Z4gDtycqxnkIlBdD8y+zuIgwvYINAFI\r\nB4OdKTyjZ2BbXAoAhtiZcAGivhrQd9i9XuDeqi5aVnNDFlL3X4brmN5jzHJC\r\ndsv6PqrZQGdNFsVqkuiW8xdWYVRN6aQhWvLcAPakkcEdcE+B7AJnAffrskv7\r\nWCB7P8xSlYCMtrsDMEL6I25USkiLYMOpJtwhytlGskUoDl1e/9mRfGJE5gJ/\r\n8ObCC+tfcQhxIyoGlWAfhdk5lEmMM8aNN8Bn1zzLe8iFO+hbX2V+zvnm0y06\r\nInD2odUs2vUlZsPvhKe/XLHbY9P/9A/KKv3G+SdXjUdYnPYXZMyTUp+XRFKw\r\nsRAVF1hYXFa7Vk673IMalGQgDtgEa/20P499WsKTP0DYeyQzvzm+CuLSCYsY\r\nKEd8z9I1P/fXBMBqXUfzfSAE1U1duYchOntxjbiMm7p7TB7triQ/TjBa88gJ\r\nWy7aPwaA8OznIzClqwT0SrsCPT8n9OUyzk+cQPcj4xZgATWKYKqg7W/zgv1i\r\nJkGhlXYgIEv5XeDUHSD38Zlf85nGimKMimgidf1pd0WZ4V2nLAf97TAlqmFq\r\n6TY6lzSngTZtk5Za+Ws2W5qWXuGq+S9Ggp3Lzdooiwf1GPqkGMHj8itkdJcI\r\njFCG5l6nAt2RAzbB//Us9g7CSE0Ug/eZ6mw=\r\n=hD/v\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"calvinnl","email":"calvin@heren01.nl"},"directories":{},"maintainers":[{"name":"calvinnl","email":"calvin@heren01.nl"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng2-validation_4.2.3_1675094585145_0.4809398063790673"},"_hasShrinkwrap":false},"4.2.4":{"name":"@calvinnl/ng2-validation","version":"4.2.4","type":"module","description":"angular2 validation","exports":"./dist/index.js","typings":"dist/index.d.ts","scripts":{"test":"karma start ./karma.conf.js","dev":"webpack-dev-server --port 4001 --watch","example":"webpack --optimize-minimize","ngc":"ngc","prerollup":"rimraf bundles","rollup":"rollup -c","prebuild":"rimraf dist","build":"npm run ngc && npm run rollup","prepublish":"npm run build"},"repository":{"type":"git","url":"git+https://gitlab.com/heren01-public/ng2-validation.git"},"keywords":["angular2","validate","validation"],"author":{"name":"Calvin","email":"calvin@heren01.nl"},"license":"MIT","bugs":{"url":"https://github.com/yuyang041060120/angular2-validate/issues"},"homepage":"https://github.com/yuyang041060120/angular2-validate#readme","devDependencies":{"@angular/common":"^14.2.12","@angular/compiler":"^14.2.12","@angular/compiler-cli":"^14.2.12","@angular/core":"^14.2.12","@angular/forms":"^14.2.12","@angular/platform-browser":"^14.2.12","@angular/platform-browser-dynamic":"^14.2.12","@types/jasmine":"~3.6.0","@types/node":"^7.0.12","bootstrap":"^3.3.7","core-js":"^2.4.1","jasmine-core":"^2.4.1","jasmine-data-provider":"^2.2.0","karma":"~6.3.2","karma-jasmine":"^1.0.2","karma-phantomjs-launcher":"^1.0.1","karma-sourcemap-loader":"^0.3.7","karma-webpack":"^2.0.3","less":"^2.7.2","less-loader":"^4.0.2","phantomjs-prebuilt":"^2.1.7","raw-loader":"^0.5.1","reflect-metadata":"^0.1.3","rimraf":"^4.1.1","rollup":"^0.41.4","rollup-plugin-typescript":"^0.8.1","rxjs":"^7.5.6","ts-loader":"^2.0.3","typescript":"4.6.4","webpack":"^2.3.2","webpack-dev-server":"^2.4.2","zone.js":"~0.11.4"},"dependencies":{"libphonenumber-js":"^1.10.18"},"gitHead":"5e8f0fcc8e89d2c71ef56022a42fce2d60b4ca29","_id":"@calvinnl/ng2-validation@4.2.4","_nodeVersion":"18.13.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-U2l0kPYXjZsOz40bd02DxdkinMldW74+e6pwAvH7XxNuYe+agtkOZYa23f5yQ/uwasByRkXleFqwWfCNY09+GA==","shasum":"8517577f5719ca43fb04da9be7ec12af970da3b2","tarball":"https://registry.npmjs.org/@calvinnl/ng2-validation/-/ng2-validation-4.2.4.tgz","fileCount":238,"unpackedSize":280143,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDgKDLWRfq+VsvmEs8q5EyPFdjiRJ2c5baAPL1VxRo+jQIhALwDuWyhojeASUAOTTgAxyti8z7XX1ki2cMw5iKERCHj"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj1+z7ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpUxw/8CY8U2qjb5tXYNtAz+Fx+5Rnbn/mpmbH2VjxjzpiaXW3e9biG\r\nbrTaguh5/bHMegb14Ard8o+7Q6FrIIBCFMwxvD8ZhKnFs5QMGQsZAlGHjidD\r\nUqbpz1ls0QXzA3T6D3SEMGjYKvc/8MJdewAFvBe/Tn3wu4OKC1cICPdghAfQ\r\n8Kz+X25wm4Hwx+BebPp4oJQ94l2Mu+vWEO63g4gWMEULw6bMKPTg3KUo7kFM\r\n4TtL16hLr99NVqyjL81e6lJ/MhFgxAGc2nYj0UWZKgcdWMZO3k9UoHRH6Zet\r\nnALagt55m7t16sY9Hygn6PMVJWA8pWT4KupMHFAyKx0CmGn93MJY0TP/eNS9\r\nGcxH6USMnDuutkjFibUWV9Jv4rsKnQ2YILIYpu0heqmpXNqojrqnq39hkwXU\r\nUiRTINx9fCfZq7q9Ls2+HiE5X11CT+CWiUl6wcBqoNjbF0r290ShwMfEwPA4\r\nG2uLih4NGUE5czIcvH5CdDsrveR5QlQ3H+IAJzl/YJPKukfTcpgnz6EDH30J\r\nzS6h7jHCs5tQGwzjUlSgkb9nBvFB0BRMl5jZ3Hm+0quyn9DrX1dE9z9bVb2E\r\nqSrrMfTH7Y7hM1uonEdqFVIAkTnGRkb8S3fRUsKNNhzXXUObRpWYMYBR79VA\r\n9Z28Us3p2TWIUYvvwyUz7wLat9TbgbQn2WQ=\r\n=GhOd\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"calvinnl","email":"calvin@heren01.nl"},"directories":{},"maintainers":[{"name":"calvinnl","email":"calvin@heren01.nl"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng2-validation_4.2.4_1675095291102_0.17829132340375975"},"_hasShrinkwrap":false},"4.2.5":{"name":"@calvinnl/ng2-validation","version":"4.2.5","type":"module","description":"angular2 validation","exports":"./dist/index.js","typings":"dist/index.d.ts","scripts":{"test":"karma start ./karma.conf.js","dev":"webpack-dev-server --port 4001 --watch","example":"webpack --optimize-minimize","ngc":"ngc","prerollup":"rimraf bundles","rollup":"rollup -c","prebuild":"rimraf dist","build":"npm run ngc && npm run rollup","prepublish":"npm run build"},"repository":{"type":"git","url":"git+https://gitlab.com/heren01-public/ng2-validation.git"},"keywords":["angular2","validate","validation"],"author":{"name":"Calvin","email":"calvin@heren01.nl"},"license":"MIT","bugs":{"url":"https://github.com/yuyang041060120/angular2-validate/issues"},"homepage":"https://github.com/yuyang041060120/angular2-validate#readme","devDependencies":{"@angular/common":"^14.2.12","@angular/compiler":"^14.2.12","@angular/compiler-cli":"^14.2.12","@angular/core":"^14.2.12","@angular/forms":"^14.2.12","@angular/platform-browser":"^14.2.12","@angular/platform-browser-dynamic":"^14.2.12","@types/jasmine":"~3.6.0","@types/node":"^7.0.12","bootstrap":"^3.3.7","core-js":"^2.4.1","jasmine-core":"^2.4.1","jasmine-data-provider":"^2.2.0","karma":"~6.3.2","karma-jasmine":"^1.0.2","karma-phantomjs-launcher":"^1.0.1","karma-sourcemap-loader":"^0.3.7","karma-webpack":"^2.0.3","less":"^2.7.2","less-loader":"^4.0.2","phantomjs-prebuilt":"^2.1.7","raw-loader":"^0.5.1","reflect-metadata":"^0.1.3","rimraf":"^4.1.1","rollup":"^0.41.4","rollup-plugin-typescript":"^0.8.1","rxjs":"^7.5.6","ts-loader":"^2.0.3","typescript":"4.6.4","webpack":"^2.3.2","webpack-dev-server":"^2.4.2","zone.js":"~0.11.4"},"dependencies":{"libphonenumber-js":"^1.10.18"},"gitHead":"8da2afb1d6b9542047318460de091fb1a58bd3f6","_id":"@calvinnl/ng2-validation@4.2.5","_nodeVersion":"18.13.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-qf3xdYoBqMM5NlOh2N5n4Um4uKNpowscURRSnp49aK+ojLKYekegPH0TxfFuLN6VIsMn+1Y2cE+zIhq3ZGu/Rg==","shasum":"3a9f043edddb724ba520c1f6f9ddd023739a6060","tarball":"https://registry.npmjs.org/@calvinnl/ng2-validation/-/ng2-validation-4.2.5.tgz","fileCount":238,"unpackedSize":280143,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGO+Q364bIBM98BS/cskM/Gn+ayzCBOAKCpL1WVogpHrAiBNvL2lVW1sGkUpGA0qkFStrXnIYxK7yut6PsOkS/c0gQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj1+5ZACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrrXw//a7+ZGkJ43ARgmjTkkMmQOKUBF+1mYLRWhksgSqQNXeUiOH5R\r\nZcAcZWkv8HXnTlzerPj+DoF/uVu8X7UPtPCju0bmqrG8t+9l1s9KBQtbN6Ig\r\n+xL5+7VpyYHqfDmS+hK2BxUcCqn6K+kj+p3sYVyq2ESkfCCt6CALTy88qt6+\r\noufgbZ6C5Ts6ggmuRSjtQ/98SvObfY3A74E0iL7cAqc42wB47LYzTOHLp/e4\r\nB97YKwLS520HthYZSOsH1kommrch8o1qU9gSdzPFuw3eY1IF8GaZkdVUSSju\r\n4+LefYARF4kyGtjIV3CTu42HoIIcIk12QVJVUvjEUz4f5FQWpi9tRExns15y\r\nTHuWsjT0Q+aw5Iuw4E2w4eqMqEnTVvmBGPUWumpVeTUowyTccbH/H7SUAd8a\r\n0+UinQisxUAgrksmH4mkzTDzDWcRog37X5pO78MkmCvc4RZ+eAtlxq1XR4v0\r\n0DlKqJXAgf/JvWClGsstezl19t3WI3aMa6IHP5ztqoeHToW56K9QBsCS8zg/\r\nV+/Rc0MLARF7ObkbbMQO6qOBOQ6uR93Q+wQOnw8nXFnb8A1es3eiLYTvrAtG\r\ncd7kBjqKqyk1kC6J6HkRqc5sHVvIDcrgVdsxo/31bHLMpM1zTOxtgzaco3Az\r\n9QyweBKGakDLw9+sl2/JInS96C0ZMCO1oR0=\r\n=pwoh\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"calvinnl","email":"calvin@heren01.nl"},"directories":{},"maintainers":[{"name":"calvinnl","email":"calvin@heren01.nl"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng2-validation_4.2.5_1675095641248_0.07784473520792057"},"_hasShrinkwrap":false},"4.2.6":{"name":"@calvinnl/ng2-validation","version":"4.2.6","type":"module","description":"angular2 validation","exports":"./dist/index.js","typings":"dist/index.d.ts","scripts":{"test":"karma start ./karma.conf.js","dev":"webpack-dev-server --port 4001 --watch","example":"webpack --optimize-minimize","ngc":"ngc","prerollup":"rimraf bundles","rollup":"rollup -c","prebuild":"rimraf dist","build":"npm run ngc && npm run rollup","prepublish":"npm run build"},"repository":{"type":"git","url":"git+https://gitlab.com/heren01-public/ng2-validation.git"},"keywords":["angular2","validate","validation"],"author":{"name":"Calvin","email":"calvin@heren01.nl"},"license":"MIT","bugs":{"url":"https://github.com/yuyang041060120/angular2-validate/issues"},"homepage":"https://github.com/yuyang041060120/angular2-validate#readme","devDependencies":{"@angular/common":"^14.2.12","@angular/compiler":"^14.2.12","@angular/compiler-cli":"^14.2.12","@angular/core":"^14.2.12","@angular/forms":"^14.2.12","@angular/platform-browser":"^14.2.12","@angular/platform-browser-dynamic":"^14.2.12","@types/jasmine":"~3.6.0","@types/node":"^7.0.12","bootstrap":"^3.3.7","core-js":"^2.4.1","jasmine-core":"^2.4.1","jasmine-data-provider":"^2.2.0","karma":"~6.3.2","karma-jasmine":"^1.0.2","karma-phantomjs-launcher":"^1.0.1","karma-sourcemap-loader":"^0.3.7","karma-webpack":"^2.0.3","less":"^2.7.2","less-loader":"^4.0.2","phantomjs-prebuilt":"^2.1.7","raw-loader":"^0.5.1","reflect-metadata":"^0.1.3","rimraf":"^4.1.1","rollup":"^0.41.4","rollup-plugin-typescript":"^0.8.1","rxjs":"^7.5.6","ts-loader":"^2.0.3","typescript":"4.6.4","webpack":"^2.3.2","webpack-dev-server":"^2.4.2","zone.js":"~0.11.4"},"dependencies":{"libphonenumber-js":"^1.10.18"},"gitHead":"7c7659aa5206b1bf94ad88c329c9a910e608785d","_id":"@calvinnl/ng2-validation@4.2.6","_nodeVersion":"18.13.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-X3XnLKrOO9XFKZkyjn2BRVhVLJM6inQNIZnsu1+hh2NOaBhy2n4ZByZ1hm/+qgjwd+K1SVKK1SH4e2Kffo4+Ew==","shasum":"c8b747d333d65efe72aaa3776d8094efc3860e1c","tarball":"https://registry.npmjs.org/@calvinnl/ng2-validation/-/ng2-validation-4.2.6.tgz","fileCount":238,"unpackedSize":237704,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCTgsOOq489eTWET6QchG1NXo4uOTDveTHwybgurdidBgIgH3NEocP/QBGGRMNiDxVXeTW6DwGErUuyJiSxUFbmEgs="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj1/B4ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpxwg//WbQYCVJg/m1KkoMbsxbeXNQlcKIG7a60oMA2LDKyzkqIHJqn\r\n2mvfhzahl5NPPEIadPkTB+C95rqFN0gZ8KTFvt+25vbj1ypsdmQuu2dlZ83H\r\nVfQGAUf12HCa6OOMZ9gY8lmOefJd1lDVD3OJVXN86Nje2VQoPllcORbaG5/a\r\n5fmXxRfd9J0LZG/rAIwYFM+x55ZpHLvIjrr3Yzsg8vKVEBnmOVpu8sb1DuKw\r\n9fCcNU4v5lelxoGKrm647rjdFVbuwGCXPfbVx0bguqcIs80q+xb133Vd64wH\r\nHyn/Cg98l0KK6zp3vi0wcKzbXNunyDbdYpt2S8NNzdMtv05zrdFdc9DZYXbA\r\nQyKXSAI37oS+RjVg+t9M9Iyei0jRay1pXAP7HP3xZ6Db/bJ9N0BUbesD7Gr8\r\nqW0O1Cr+0S3cPfBRpQ1CNtkMJXiiRm2CFyYBCdq+j+bzB6X+rb/xIQJkBMvE\r\ne2vpE4YOauYHdFa1IqLW6w4dpiis/IndFT+JsWgRyqcIX3awZZXU+vm5+OBp\r\nHU35+4Gs+QMzX10X3XcRUGeTjKOf2tZfRT+xgzw4Ef0KSBMGbTM1+rouq74N\r\nvQuR5g07sutVXR0mjLNlAHa4zF1a4jkSy5UMy9LK0z3Z7as3AEUkf4a+AD21\r\nlTp2r15qphaPlvcVo9qmpaZRgnd1XNSP4ns=\r\n=oENB\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"calvinnl","email":"calvin@heren01.nl"},"directories":{},"maintainers":[{"name":"calvinnl","email":"calvin@heren01.nl"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ng2-validation_4.2.6_1675096184399_0.23459937964030786"},"_hasShrinkwrap":false}},"time":{"created":"2023-01-30T14:27:47.174Z","4.2.0":"2023-01-30T14:27:47.315Z","modified":"2023-01-30T16:29:44.700Z","4.2.1":"2023-01-30T14:28:06.026Z","4.2.2":"2023-01-30T15:03:29.257Z","4.2.3":"2023-01-30T16:03:05.319Z","4.2.4":"2023-01-30T16:14:51.323Z","4.2.5":"2023-01-30T16:20:41.450Z","4.2.6":"2023-01-30T16:29:44.622Z"},"maintainers":[{"name":"calvinnl","email":"calvin@heren01.nl"}],"description":"angular2 validation","homepage":"https://github.com/yuyang041060120/angular2-validate#readme","keywords":["angular2","validate","validation"],"repository":{"type":"git","url":"git+https://gitlab.com/heren01-public/ng2-validation.git"},"author":{"name":"Calvin","email":"calvin@heren01.nl"},"bugs":{"url":"https://github.com/yuyang041060120/angular2-validate/issues"},"license":"MIT","readme":"> Deprecated, you can fork and publish yours.\r\n\r\n# Description\r\n\r\nAngular2 custom validation, inspired by jQuery validation.\r\n\r\n# Install\r\n\r\n```bash\r\nnpm install ng2-validation --save\r\n```\r\n# Systemjs\r\n\r\n```bash\r\n'ng2-validation': 'npm:ng2-validation/bundles/ng2-validation.umd.js'\r\n```\r\n\r\n# Validators\r\n\r\n## angular2 built-in validators\r\n\r\n- required\r\n- minlength\r\n- maxlength\r\n- pattern\r\n\r\n## custom validators\r\n\r\n- rangeLength\r\n- min\r\n- gt\r\n- gte\r\n- max\r\n- lt\r\n- lte\r\n- range\r\n- digits\r\n- number\r\n- url\r\n- email\r\n- date\r\n- minDate\r\n- maxDate\r\n- dateISO\r\n- creditCard\r\n- json\r\n- base64\r\n- phone\r\n- uuid\r\n- equal\r\n- notEqual\r\n- equalTo\r\n- notEqualTo\r\n\r\n# Usage\r\n\r\n## template driven\r\n\r\nimport `FormsModule` and `CustomFormsModule` in *app.module.ts*\r\n\r\n```javascript\r\nimport { NgModule } from '@angular/core';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { CustomFormsModule } from 'ng2-validation'\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### 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### 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### 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### 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### 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\" email/>\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### 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### 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### 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### 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### phone\r\n\r\n```html\r\n<input type=\"text\" [(ngModel)]=\"model.field\" name=\"field\" #field=\"ngModel\" phone=\"CN\"/>\r\n<p *ngIf=\"field.errors?.phone\">error message</p>\r\n```\r\n\r\ndetails see [libphonenumber](https://github.com/halt-hammerzeit/libphonenumber-js)\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### equal\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### 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### 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## model driven\r\n\r\nimport `ReactiveFormsModule` in *app.module.ts*\r\n\r\n```javascript\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```javascript\r\nimport { Component } from '@angular/core';\r\nimport { FormGroup, FormControl } from '@angular/forms';\r\nimport { CustomValidators } from 'ng2-validation';\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### rangeLength\r\n\r\n```javascript\r\nnew FormControl('', CustomValidators.rangeLength([5, 9]))\r\n```\r\n\r\n### min\r\n\r\n```javascript\r\nnew FormControl('', CustomValidators.min(10))\r\n```\r\n\r\n### gt\r\n\r\n```javascript\r\nnew FormControl('', CustomValidators.gt(10))\r\n```\r\n\r\n### max\r\n\r\n```javascript\r\nnew FormControl('', CustomValidators.max(20))\r\n```\r\n\r\n### lt\r\n\r\n```javascript\r\nnew FormControl('', CustomValidators.lt(20))\r\n```\r\n\r\n### range\r\n\r\n```javascript\r\nnew FormControl('', CustomValidators.range([10, 20]))\r\n```\r\n\r\n### digits\r\n\r\n```javascript\r\nnew FormControl('', CustomValidators.digits)\r\n```\r\n\r\n### number\r\n\r\n```javascript\r\nnew FormControl('', CustomValidators.number)\r\n```\r\n\r\n### url\r\n\r\n```javascript\r\nnew FormControl('', CustomValidators.url)\r\n```\r\n\r\n### email\r\n\r\n```javascript\r\nnew FormControl('', CustomValidators.email)\r\n```\r\n\r\n### date\r\n\r\n```javascript\r\nnew FormControl('', CustomValidators.date)\r\n```\r\n\r\n### minDate\r\n\r\n```javascript\r\nnew FormControl('', CustomValidators.minDate('2016-09-09'))\r\n```\r\n\r\n### maxDate\r\n\r\n```javascript\r\nnew FormControl('', CustomValidators.maxDate('2016-09-09'))\r\n```\r\n\r\n### dateISO\r\n\r\n```javascript\r\nnew FormControl('', CustomValidators.dateISO)\r\n```\r\n\r\n### creditCard\r\n\r\n```javascript\r\nnew FormControl('', CustomValidators.creditCard)\r\n```\r\n\r\n### json\r\n\r\n```javascript\r\nnew FormControl('', CustomValidators.json)\r\n```\r\n\r\n### base64\r\n\r\n```javascript\r\nnew FormControl('', CustomValidators.base64)\r\n```\r\n\r\n### phone\r\n\r\n```javascript\r\nnew FormControl('', CustomValidators.phone('zh-CN'))\r\n```\r\n\r\n### uuid\r\n\r\n```javascript\r\nnew FormControl('', CustomValidators.uuid('3'))\r\n```\r\n\r\n### equal\r\n\r\n```javascript\r\nnew FormControl('', CustomValidators.equal('xxx'))\r\n```\r\n\r\n### notEqual\r\n\r\n```javascript\r\nnew FormControl('', CustomValidators.notEqual('xxx'))\r\n```\r\n\r\n### equalTo\r\n\r\n```javascript\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### notEqualTo\r\n\r\n```javascript\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# License\r\n\r\nMIT\r\n","readmeFilename":"README.md"}