{"_id":"react-form-lib","_rev":"50-9dae050640aee8b109819c7c920bb41b","time":{"1.0.0":"2020-06-04T16:07:35.234Z","1.0.1":"2020-06-04T16:07:35.234Z","1.0.10":"2020-06-04T16:07:35.234Z","1.0.11":"2020-06-04T16:07:35.234Z","1.0.12":"2020-06-04T16:07:35.234Z","1.0.13":"2020-06-04T16:07:35.234Z","1.0.14":"2020-06-04T16:07:35.234Z","1.0.16":"2020-06-04T16:07:35.234Z","1.0.17":"2020-06-04T16:07:35.234Z","1.0.18":"2020-06-04T16:07:35.234Z","1.0.19":"2020-06-04T16:07:35.234Z","1.0.2":"2020-06-04T16:07:35.234Z","1.0.20":"2020-06-04T16:07:35.234Z","1.0.21":"2020-06-04T16:07:35.234Z","1.0.22":"2020-06-04T16:07:35.234Z","1.0.23":"2020-06-04T16:07:35.234Z","1.0.24":"2020-06-04T16:07:35.234Z","1.0.25":"2020-06-04T16:07:35.234Z","1.0.26":"2020-06-04T16:07:35.234Z","1.0.27":"2020-06-04T16:07:35.234Z","1.0.28":"2020-06-04T16:07:35.234Z","1.0.29":"2020-06-04T16:07:35.234Z","1.0.3":"2020-06-04T16:07:35.234Z","1.0.30":"2020-06-04T16:07:35.234Z","1.0.31":"2020-06-04T16:07:35.234Z","1.0.32":"2020-06-04T16:07:35.234Z","1.0.33":"2020-06-04T16:07:35.234Z","1.0.34":"2020-06-04T16:07:35.234Z","1.0.35":"2020-06-04T16:07:35.234Z","1.0.36":"2020-06-04T16:07:35.234Z","1.0.37":"2020-06-04T16:07:35.234Z","1.0.4":"2020-06-04T16:07:35.234Z","1.0.40":"2020-06-04T16:07:35.234Z","1.0.5":"2020-06-04T16:07:35.234Z","1.0.6":"2020-06-04T16:07:35.234Z","1.0.7":"2020-06-04T16:07:35.234Z","1.0.8":"2020-06-04T16:07:35.234Z","1.0.9":"2020-06-04T16:07:35.234Z","created":"2020-06-05T16:09:05.482Z","1.1.0":"2020-06-05T16:09:05.680Z","modified":"2022-06-30T14:24:50.970Z","1.1.1":"2020-06-09T13:15:10.589Z","1.2.0":"2020-06-22T10:18:10.783Z","1.2.1":"2020-06-22T10:27:08.694Z","1.2.2":"2021-03-16T19:15:34.110Z","1.2.3":"2021-03-16T19:41:32.660Z","1.2.4":"2021-03-17T13:05:00.441Z","2.0.0":"2022-06-30T14:24:50.890Z"},"name":"react-form-lib","dist-tags":{"latest":"2.0.0"},"versions":{"1.1.0":{"name":"react-form-lib","version":"1.1.0","description":"React lib to facilitate form integration ","main":"lib/index.js","scripts":{"start":"webpack-dev-server --env.development --progress --colors --hot --open","build":"webpack --env.production --progress","prepare":"npm run build","test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://zb2oby@bitbucket.org/zb2oby/react-form-lib.git"},"author":{"name":"François Boubée"},"license":"ISC","homepage":"https://bitbucket.org/zb2oby/react-form-lib#readme","devDependencies":{"@babel/core":"^7.10.2","@babel/plugin-proposal-class-properties":"^7.10.1","@babel/plugin-proposal-export-default-from":"^7.10.1","@babel/preset-env":"^7.10.2","@babel/preset-react":"^7.10.1","babel-loader":"^8.1.0","css-loader":"^3.5.3","events":"^3.0.0","flux":"^3.1.3","react":"^16.13.1","react-dom":"^16.13.1","style-loader":"^1.2.1","html-webpack-plugin":"^4.3.0","webpack":"^4.43.0","webpack-cli":"^3.3.11","webpack-dev-server":"^3.11.0"},"peerDependencies":{"react":"^16.13.1","react-dom":"^16.13.1"},"gitHead":"106fd01d6bab76d91df44066bde3549624830fe5","_id":"react-form-lib@1.1.0","_nodeVersion":"12.14.1","_npmVersion":"6.13.6","dist":{"integrity":"sha512-BslFOnFRhqYdbavqqnQtwK0m5x2U44u4644vugBaX50jJ9cFdKWCf1Loeg7a+YDby+Pcj3G/hMMgmTrLa0vCeA==","shasum":"9f763f601e18e8febd86c72c0442e18a7fe87d2a","tarball":"https://registry.npmjs.org/react-form-lib/-/react-form-lib-1.1.0.tgz","fileCount":3,"unpackedSize":28524,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe2m4iCRA9TVsSAnZWagAA9p4P/35xMywZPi/icIYOSjYf\nA5dtnq5loSIKV6BzBdO5uadLR866tZf73sjAL9aJ+qtue8kFDqRxu0U/IpVN\nLM2xIZnMSf+96QNoma+pmQM73ow0lQxJEVQoHd6MxopqHvIESGILvHcsEJUf\nzWyFTKf9yY6AMPTOHENPTjTmcRXnA1B9qOhrUAsAT2yLGxQfwveNUV3xxhcW\nE3vA9S5e1aXZvGV/oyBqaZ63a2lxn++cWs/4g1MDDg1K+qIR+0aGA2J2ylGW\nmpvjaaN2dTSLbDyK+/36ZlNW2C65ofD7GGG67KmvVhO8EbYa08VnmaPAjbcT\nVkFooaS61etRwExpnZTHH/z57Wl7FQgD3eemDsxMDkKBJ46VkLIGkXsJORo/\nl0UQbWdYoE/GbpnvFVqYKUsFLAGI/l4a1KnjiXT2cn7OPVy25o1/yB6SwNZM\nPOM81jBw0sgBKS8zlHPws6SYCxZe/ynpL2JI0xXZT1PPWtclkmP/GFYySzli\nw7KpgF8AlQmzNjCWJ91p6R+3TA/azYAmE5k/3wA+8HMgAytLtLMIRmVNPVGc\n5LS5U7hNcq9i57RKM/iNj1n8iHyw0VvkPBCjzxPPZV7cLAVebaTcFgFlI8PS\nSyZlBhNvau2qGibFXXPkHaL4dFzi+joA5fOhvFyxByQnDoHgZXSlb2W3KQ+3\ndGoV\r\n=+RXP\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHjnOm7EJbsehaaI5z53Kd6tMziuEUja7F19eHp8sBtEAiBaSPqWCyB+fw72xeOjKqA4zGQT2bYZtoFSYblIuGEzbQ=="}]},"maintainers":[{"name":"zb2oby","email":"f.boubee@gmail.com"}],"_npmUser":{"name":"zb2oby","email":"f.boubee@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-form-lib_1.1.0_1591373345483_0.06569230388544889"},"_hasShrinkwrap":false},"1.1.1":{"name":"react-form-lib","version":"1.1.1","description":"React lib to facilitate form integration ","main":"lib/index.js","scripts":{"start":"webpack-dev-server --env.development --progress --colors --hot --open","build":"webpack --env.production --progress","prepare":"npm run build","test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://zb2oby@bitbucket.org/zb2oby/react-form-lib.git"},"author":{"name":"François Boubée"},"license":"ISC","homepage":"https://bitbucket.org/zb2oby/react-form-lib#readme","devDependencies":{"@babel/core":"^7.10.2","@babel/plugin-proposal-class-properties":"^7.10.1","@babel/plugin-proposal-export-default-from":"^7.10.1","@babel/preset-env":"^7.10.2","@babel/preset-react":"^7.10.1","babel-loader":"^8.1.0","css-loader":"^3.5.3","events":"^3.0.0","flux":"^3.1.3","react":"^16.13.1","react-dom":"^16.13.1","style-loader":"^1.2.1","html-webpack-plugin":"^4.3.0","webpack":"^4.43.0","webpack-cli":"^3.3.11","webpack-dev-server":"^3.11.0"},"peerDependencies":{"react":"^16.13.1","react-dom":"^16.13.1"},"gitHead":"37e4adaa88bdbee28340dbd07e11fd38a39f8422","_id":"react-form-lib@1.1.1","_nodeVersion":"12.14.1","_npmVersion":"6.13.6","dist":{"integrity":"sha512-B1KKhId7dAW4wuDXP/yK3MO+/7UN0mcDwszft/CxFkAk6PAOZo9d7aU/79szjbj7jrgyw1RnzPcto00kRCfvOw==","shasum":"eaf61747bbf347040321692b073e93c4b4718314","tarball":"https://registry.npmjs.org/react-form-lib/-/react-form-lib-1.1.1.tgz","fileCount":3,"unpackedSize":31742,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe34tfCRA9TVsSAnZWagAAYQgQAIf0FXvbuWJRhzCj2qLX\nHHgjQuz7ZJCVe8Z+97WWTRoKjt0gbLS06G10RpeLZYZmgfPSbauSIUeHDNQe\nB4gL8LNA7lFQlEHWQJvqD6qI1+kHlYaQvz4fQl+zyzcc24OuHN2oqzrtzte/\n0yI6DDspRYhBALrgnB0RlVJvgbUlGeqVLbyg5Kt4wy9W8E275MDzJC1jQjSY\nLylG1H2uIuPUB3fvcduEVAu2rn44omeaXpng7KixgVGlACU00+57Y1wfLURZ\nZExDs3nirw6lj8JPHBvFkomKyUPxOXdIOivvZmLmxIRnNjbOdoNFsnCJz86+\nAtD7a4J6w9BMJCMF/+9O1xA5im7WwHr1ryDqEWRk6SOk/yMT4kHwA9WjjVtm\nEu9CS+W+Lh266Fho1TTI0cQBUBCigBgkuhtr0he6SQ3Fw0Lg+qL80m8mEdiV\nY7cGgQTlRUErdD5TvRyp8UoxrxiccwYg7bmEe8tUU6SrHQ4mY4688mdgBiab\nJW/l4S5rOdgpGfKy6+d+V5wwu3nw1mdygX2orsu/VXy3BbWmXxnM6/YNMbrl\nuzVMj6SPhZQzUi8lgZyjcphaV3m8sYJFv+QnZw3h6izX0uJLl6vg7xLd9Isd\nMOIYRtdNryxZ1UPV+TDWzefh+B0lXF2hQUlweG6hi9i2NXYoKZL6AdeK2QX3\nM+pO\r\n=omRu\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICOpDlheb1LGsEFatD1Ez4SUtQr01HDp59wM5D1HXMiOAiBc+3HLeWx98N4/1AIUdIJQwL/9EpgdwQuY5nTSKyQ9ng=="}]},"maintainers":[{"name":"zb2oby","email":"f.boubee@gmail.com"}],"_npmUser":{"name":"zb2oby","email":"f.boubee@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-form-lib_1.1.1_1591708510347_0.10707195896345523"},"_hasShrinkwrap":false},"1.2.0":{"name":"react-form-lib","version":"1.2.0","description":"React lib to facilitate form integration ","main":"lib/index.js","scripts":{"start":"webpack-dev-server --env.development --progress --colors --hot --open","build":"webpack --env.production --progress","prepare":"npm run build","test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://zb2oby@bitbucket.org/zb2oby/react-form-lib.git"},"author":{"name":"François Boubée"},"license":"ISC","homepage":"https://bitbucket.org/zb2oby/react-form-lib#readme","devDependencies":{"@babel/core":"^7.10.2","@babel/plugin-proposal-class-properties":"^7.10.1","@babel/plugin-proposal-export-default-from":"^7.10.1","@babel/preset-env":"^7.10.2","@babel/preset-react":"^7.10.1","babel-loader":"^8.1.0","css-loader":"^3.5.3","events":"^3.0.0","flux":"^3.1.3","react":"^16.13.1","react-dom":"^16.13.1","style-loader":"^1.2.1","html-webpack-plugin":"^4.3.0","webpack":"^4.43.0","webpack-cli":"^3.3.11","webpack-dev-server":"^3.11.0"},"peerDependencies":{"react":"^16.13.1","react-dom":"^16.13.1"},"gitHead":"f3a85df87cef63d91e5881dac1b107e3616c12d5","_id":"react-form-lib@1.2.0","_nodeVersion":"12.14.1","_npmVersion":"6.13.6","dist":{"integrity":"sha512-n8Buendrv085bxKyHYLg7DLGhuP9zFTGfc2Jdh7ANXakQ2N3wx1uEd35dUO+REWWB/ESRqILoMS3/9gRrZM4LA==","shasum":"4d7037171a79d517fa66941797e8177dd9629f73","tarball":"https://registry.npmjs.org/react-form-lib/-/react-form-lib-1.2.0.tgz","fileCount":3,"unpackedSize":32598,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe8IVjCRA9TVsSAnZWagAAfNAP/iOvby1+lzw4+FvPTf+s\nJXKjPnpq2Yo5NRpexuIxpHNH+j41FFd/E66NIIj3l5MX1hjTXTI26KVM/fdz\nphWveZLLMCMyYmjaRT7NGQkg+XkqFHTNzHu4k9pLYOMSENWjJpzgDIFf6uXh\naEnFvuUAM959z+cdbBqrt1YwuHm/20mg5QN/TMvCP2Ej3slry6RiTVaXyyvr\nOhppBxvKtRH27cWT6IFs/JsksYNCX7gfEchD2EsXtliFdyBqgHL/1RZA/iyY\nFPQ523LFzYpVp1Ex3jMMN85KjLLNMTgOhbJyeLWL1jNjQPgndQyhlAECz4Uf\niekivufLuZSvChOP8ij4DjLeLKrvW1FwDB+qLcw88Hj4G6D7icLYf0IGcxd5\npc3c0W5YiTIjBnFj4k8jFm81dSc6J0itKHoc1U0CI7Nqn2bKYLkd0TRkNC+T\nmJaM6KnKyzCNHdpHJaUe/xjIzDp86zzCtnu6+2DJUA3CrbJfrqqu+MLKiiEV\nZZRXh6eRC4LKNwJCGcFUzUWlGJ1KHKnVq2WeYPJAAu0KOs6b44xrKdfj6h/b\nY5MKYSWCFxaN4Z/rYrmscC3ySyF+9jfCvdeymWeE3FEeOb8eztI1B7IZoRVd\nJ9bl5iJVDRhO/LYSArwTLmXG3EbrqOaMu6bfB81Vm9b0utGFZQwkiDS3/hdx\nOTey\r\n=HcEc\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCKDXoAbV5m69gVbeRL75JTSTdBDQ/gyHb7hzcFP1u8vQIgI2UF42DNToIft8r7rVGTrSLBf+RGc/upmSS6Rlfd1NA="}]},"maintainers":[{"name":"zb2oby","email":"f.boubee@gmail.com"}],"_npmUser":{"name":"zb2oby","email":"f.boubee@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-form-lib_1.2.0_1592821090621_0.5632801871356699"},"_hasShrinkwrap":false},"1.2.1":{"name":"react-form-lib","version":"1.2.1","description":"React lib to facilitate form integration ","main":"lib/index.js","scripts":{"start":"webpack-dev-server --env.development --progress --colors --hot --open","build":"webpack --env.production --progress","prepare":"npm run build","test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://zb2oby@bitbucket.org/zb2oby/react-form-lib.git"},"author":{"name":"François Boubée"},"license":"ISC","homepage":"https://bitbucket.org/zb2oby/react-form-lib#readme","devDependencies":{"@babel/core":"^7.10.2","@babel/plugin-proposal-class-properties":"^7.10.1","@babel/plugin-proposal-export-default-from":"^7.10.1","@babel/preset-env":"^7.10.2","@babel/preset-react":"^7.10.1","babel-loader":"^8.1.0","css-loader":"^3.5.3","events":"^3.0.0","flux":"^3.1.3","react":"^16.13.1","react-dom":"^16.13.1","style-loader":"^1.2.1","html-webpack-plugin":"^4.3.0","webpack":"^4.43.0","webpack-cli":"^3.3.11","webpack-dev-server":"^3.11.0"},"peerDependencies":{"react":"^16.13.1","react-dom":"^16.13.1"},"gitHead":"0848fe1fb7a30102d77981132e373a70e995116f","_id":"react-form-lib@1.2.1","_nodeVersion":"12.14.1","_npmVersion":"6.13.6","dist":{"integrity":"sha512-6vVLt/qS/JDnPdjUXiZG70ol+sFkLZaTK+dzd8ISH1H4AfSIRo31y4TjgfNVoNjyLd2dGJ7GnBUpG/VdGykhZg==","shasum":"4831b22b84b3aca4c30e81c264587d5ab4367ba2","tarball":"https://registry.npmjs.org/react-form-lib/-/react-form-lib-1.2.1.tgz","fileCount":3,"unpackedSize":31702,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe8Id9CRA9TVsSAnZWagAA+ocP/imENTJXcCUZvnN8b18o\n8ym602VziNb6XmrqAYfFe2bKXoeY35C78E82XN8jKy9OJRpdPwHnGRdnjQDr\nc0fSMHVXsoEakcOUuxbpTBvIAv2pXb7Nr5Hm6ulQQmWIvqA6gZogDOkb73B8\nmbLl2aCp7Efs5dtUKluzMm8jgyYoNJEsY9h5CQchR4jdxunNmedreOFZfcD6\nOC0Ow0McjXGKghsAGkyTI5dkSHN3VbB+AYf9Wd+8p+Nq9Zlfv/RNSYPmiuEz\nPwWDnEUzSM0o7CwJ3DiLOyXqHwppUW8oWwyGVslIOsgOW71cVOKgyJqNcw35\nYizP+F/p1ZVmw3PES2zqSrDzc35nItRGVw+GbCxcXCjWLc3dbQOjh1MIhkDo\nVGVpd4S+6wd6bH4Mr0El2WJfHrlI+tEWQqDQwNwUlXSOwHqyXhuVHlxibS6T\nWkyZVGrwRYu0AmjHBfA+Ftd4MRuyTulFhN4EVCYQ10xd1OhngZuFk8SrtD7I\nJVwi4gdMcUJg7TlryV+rn0I3+K2s/6f+7jioXOtZowT80Aomes7FMzrhezEK\np0WNL5jUhxBU6h9qNsrk3pFFrQUKUvcJhQjkG0ekRagLqR4rA81ZrWr6qWhy\nsOSH8vc0hYN3eaw3ZwJ8tCDOsDGmfOuJytuay7fe56FAMSc5f5TwP7fGLVZI\nDesQ\r\n=QPEJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGn/6QNixxDScwxSxWMy2SB+M5+WZ6OcpP2CZHT9m6tAAiEAqG2Zu/u1VUVurGBrQLtl4nDAuNgsP5CVevo/OqVu71U="}]},"maintainers":[{"name":"zb2oby","email":"f.boubee@gmail.com"}],"_npmUser":{"name":"zb2oby","email":"f.boubee@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-form-lib_1.2.1_1592821628517_0.931740430385293"},"_hasShrinkwrap":false},"1.2.3":{"name":"react-form-lib","version":"1.2.3","description":"React lib to facilitate form integration ","main":"lib/index.js","scripts":{"start":"webpack-dev-server --env.development --progress --colors --hot --open","build":"webpack --env.production --progress","prepare":"npm run build","test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://zb2oby@bitbucket.org/zb2oby/react-form-lib.git"},"author":{"name":"François Boubée"},"license":"ISC","homepage":"https://bitbucket.org/zb2oby/react-form-lib#readme","devDependencies":{"@babel/core":"^7.10.2","@babel/plugin-proposal-class-properties":"^7.10.1","@babel/plugin-proposal-export-default-from":"^7.10.1","@babel/preset-env":"^7.10.2","@babel/preset-react":"^7.10.1","babel-loader":"^8.1.0","css-loader":"^3.5.3","events":"^3.0.0","flux":"^3.1.3","html-webpack-plugin":"^4.3.0","react":"^16.13.1","react-dom":"^16.13.1","style-loader":"^1.2.1","webpack":"^4.43.0","webpack-cli":"^3.3.11","webpack-dev-server":"^3.11.0"},"peerDependencies":{"react":"^16.13.1","react-dom":"^16.13.1"},"gitHead":"b22128ec7086fca7d8f79f4979c64fd35aa00497","_id":"react-form-lib@1.2.3","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-raYi3lLXyW6DiG4ywTGCx5P5foX3CbziUG0kpEhApVm14Dp2H+j8F/cH9qgR4OMt/SIP9EBT9KApH/U8QI/VGQ==","shasum":"dcd5883aa52d1de96b8b2de52ceb29b59848942f","tarball":"https://registry.npmjs.org/react-form-lib/-/react-form-lib-1.2.3.tgz","fileCount":3,"unpackedSize":28510,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgUQntCRA9TVsSAnZWagAA3FcP/1nFiMTQ3a1HSxF5XQ2+\nTNhLzI2l9oSexGG7d7cESE6OQP4DTna113GZDqK07FGefON28Ljyr5sOHDDc\nHy4l6FS1IqxG14fRIn9WDV4m4ZVDAaR3KSvOdRakGurFXGC6S5qs3FYju8hd\nBuMPFUWChDd4P8Ccp3MMb51/iw+62hlHQY6vgii+vc6FmBKELzC7ejgv3Wz/\nDBWpRZVrA3LTuQ3d/2LG7+5IPuhOpLJjsRJIeotScWSGk2vTU6N6RERGy49S\nMhQvRT1OrFxwtGy0Pw+PsTSa5phVHcCUGm9Z03AI1n2Ixfo1tpOBDlOhWppu\nstwTFNaKMKcS0PqDwvEunW81zOrgBZRtjGzG5pjjigjZqMuS7O+BI/qtjzMl\noM+Q3H7mWRQ7dCEzdUQYSSZgHR49eIBuH2NtL6taOz7Dlhk7nanzKgPyI+ND\n7t/xWg6HuV4KoWrnaugqVqvwFI+4dfrdvx/BN25G2P5K+sHQI+F1NAUoExCe\n2urRr6GKOqbVazta+fGTEq4oPKG4x46xELuQ791t5uLHh9LsxMBhUdum1enB\n+hqgriXThIB2afP6i6oc6RJg05T7PmU6aWrQco70NGUN4jPdXsQdWhfix3dy\n+cIN/tKPUYMHMQBr4vlHOIfsnB1OYRnrSX6gD7Rtz2+q7qjOg1F4YDHcuQPJ\nJTQv\r\n=1T3P\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIC8ydCMKC+1wW9EceSoahh2AD5NlIB0UiAU3qYDW8ITNAiA6MV4G+7E/0qlwU+yctfPwqXPWpq7oWz21hndWjWBbVw=="}]},"_npmUser":{"name":"zb2oby","email":"f.boubee@gmail.com"},"directories":{},"maintainers":[{"name":"zb2oby","email":"f.boubee@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-form-lib_1.2.3_1615923692490_0.916771213211002"},"_hasShrinkwrap":false},"1.2.4":{"name":"react-form-lib","version":"1.2.4","description":"React lib to facilitate form integration ","main":"lib/index.js","scripts":{"start":"webpack-dev-server --env.development --progress --colors --hot --open","build":"webpack --env.production --progress","prepare":"npm run build","test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://zb2oby@bitbucket.org/zb2oby/react-form-lib.git"},"author":{"name":"François Boubée"},"license":"ISC","homepage":"https://bitbucket.org/zb2oby/react-form-lib#readme","devDependencies":{"@babel/core":"^7.10.2","@babel/plugin-proposal-class-properties":"^7.10.1","@babel/plugin-proposal-export-default-from":"^7.10.1","@babel/preset-env":"^7.10.2","@babel/preset-react":"^7.10.1","babel-loader":"^8.1.0","css-loader":"^3.5.3","events":"^3.0.0","flux":"^3.1.3","html-webpack-plugin":"^4.3.0","react":"^16.13.1","react-dom":"^16.13.1","style-loader":"^1.2.1","webpack":"^4.43.0","webpack-cli":"^3.3.11","webpack-dev-server":"^3.11.0"},"peerDependencies":{"react":"^16.13.1","react-dom":"^16.13.1"},"gitHead":"bef1bc406036daf6c0ca01edee1ff57ad506001a","_id":"react-form-lib@1.2.4","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-qYVGrF6DOB8PqKqlXlNEKnVszrAaWk5X2fuHGXnFP+8vGRg2VhFD69xjfjc7ZZrElgVjF9AuysY2/CN/FKsvRg==","shasum":"01877ffa419f344409b0830ef06a786bd7e58429","tarball":"https://registry.npmjs.org/react-form-lib/-/react-form-lib-1.2.4.tgz","fileCount":3,"unpackedSize":28560,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgUf58CRA9TVsSAnZWagAAqgUQAIbGN5Ccww3WyRP3qHUD\n0USzAeVDtYOuJIYlCtxVu42TtHqZA1cVOYbQSJLh9k0Fg/fsj73uPqBjizE8\nwoVj/cRFGU/mvDnbJWkeVEbU3vSu1AbZNZbgTZL5VrdwMI/lMUcJGAs/Aoo/\nqodJ5zPwWk8qN1I4TmSirHpiCAQvudWNqY0VYwi2vGPX8pHuhb9+FLba6w13\nqNM+AJKhFSnclE48qJH/rObGNkegdw7P5gv+BMtz3WQQ6gH1JKLxay7PWKuX\nEt7h9GBDxb1/Ysz2/QK40XJtqB+wbanrpYRtcK1DA4LfQiQQPBLuTtlVGx+H\ntEzYr0oU0lv6kFRvqUMINeyh93iVE8+Wsq2legfkCOdkvaqw5k5cjBAxiQqa\nKci4qYbTLjlrXMHpHth3ChX2URK/w8VdiqCyPqtgeKif5RxdWbisPsXPIR2M\nZLfXynobbJvjpGRiV35PhUdAE4Eq2ioDzKZ30j/3HdU3i2xx0a7ILoVsPedv\nRxdzqK+KBvNdr6KEFo7uczqR4Zlu+9XG2dVgVMiNbCHHK1wkhYyw6/SeD/TS\nn2W22Z24TsZoGWZrMf//PmSU/Wwcs/AVjNyKTxLfd/Y/tkyLk+tvH2iaU66m\nzMMhjx4FrqsXdtGeeM6ydHG7yO3/9Sw0N1sKmaHS/KNQrkeg15XBZJ6FSePv\nP2vL\r\n=7lBH\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC7lTXeylbtU7McpZ08wM3AQyeIs9Dkb/pUr+lx0H+dawIgRzjmX9WswWma44dpDHddO0v/CH2+X3AW3dx3GgrfjwA="}]},"_npmUser":{"name":"zb2oby","email":"f.boubee@gmail.com"},"directories":{},"maintainers":[{"name":"zb2oby","email":"f.boubee@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-form-lib_1.2.4_1615986300275_0.19406730120509574"},"_hasShrinkwrap":false},"2.0.0":{"name":"react-form-lib","version":"2.0.0","description":"React lib to facilitate form integration ","main":"lib/index.js","scripts":{"start":"webpack-dev-server --env development --progress --color --hot --open","build":"webpack --env production --progress","prepare":"npm run build","test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://zb2oby@bitbucket.org/zb2oby/react-form-lib.git"},"author":{"name":"François Boubée"},"license":"ISC","homepage":"https://bitbucket.org/zb2oby/react-form-lib#readme","devDependencies":{"@babel/core":"^7.18.6","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-export-default-from":"^7.18.6","@babel/preset-env":"^7.18.6","@babel/preset-react":"^7.18.6","babel-loader":"^8.2.5","css-loader":"^6.7.1","events":"^3.3.0","flux":"^4.0.3","html-webpack-plugin":"^5.5.0","react":"^17.0.0","react-dom":"^17.0.0","sass":"^1.53.0","sass-loader":"^13.0.2","style-loader":"^3.3.1","webpack":"^5.73.0","webpack-cli":"^4.10.0","webpack-dev-server":"^4.9.2"},"peerDependencies":{"react":"^17.0.0","react-dom":"^17.0.0"},"gitHead":"e1557a603bd4aa16dc8645360b4a1e27a9e50dc8","_id":"react-form-lib@2.0.0","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-4Jcbx8DJY/kCSOsLPqmQfV2meRlVk2ec3JN8UgucnrnKzRokDmIEtZrqC5zmRxxI45ROdIPcGE+2omJCGv0WLQ==","shasum":"e914893875887b2230b9e1d000aaeb9761a97598","tarball":"https://registry.npmjs.org/react-form-lib/-/react-form-lib-2.0.0.tgz","fileCount":3,"unpackedSize":31513,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFKTmi6E19rV2ttobsaHqE8/XG+lGnRG4L5f8xTntKPjAiEAt2wqs4Tv/p5OVuIFUUrP88b5Y99nyPNMuDO2II5ezM4="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJivbIyACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpRdw//e/vQU/KgttcDhPiT4NrIN/TW88f5fc8b60cHs15/yLZ0Yqx3\r\nJoXFwUyJSboK2ECY8199UVlsPDaJSDe6UlSKVCKh92/Fr6DdlwEQlaibOXpc\r\nlWkCAH4eXX5gQi4O9aoJ4vp/JgCNler3Upajgfykv3efChQkv2NM+V3ALtMn\r\n9Yxr3uE8HTj5WLfgmfJmi1kuzrxHng92rWnxDUF9ELpN9qcqG1jrSR+goUUd\r\nCFkDIm2O+3XnyBYi39Bs9EparJ19HNJoyqXGNeb1JHmDFPjqx2C/LZbspcEf\r\nBxzXHEAnnGxkhT51eDw5z1v8VLIaLhLKR+xzY1UgGVEkRWOIyO7mHeehA+zY\r\nepwvRDnn0U1l7WIdunHYlWPpvVNq4fb3fGxhe/LQw73XHTYmPtQZj3pk9XdC\r\nDlHZ/oo6ERMad8GFr38dJesL9pYkrH8uL4+ko0hYp2YoK+vO39tqIpXNImkq\r\nTJRGJuUjXFKhP4g8i+ExBp0GQoC7NJf8wF/WCHAri9GLbnWWtSrQFdLz6cz1\r\nk1tklZVJOQmDYsILQytwZTD1x5HRPNfahJlrkUNximwjKRwzvGwv8280tTBj\r\n7l5lvUzjEU/wXbG1/m+hAwthpBbA2I/7xkn+Hd+edi5iJfjlHWMwK0CBC1Vp\r\nP3M/UQYKN7jzAYJclxuKeVI3p1UEtUcJIcI=\r\n=Iet+\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"zb2oby","email":"f.boubee@gmail.com"},"directories":{},"maintainers":[{"name":"zb2oby","email":"f.boubee@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-form-lib_2.0.0_1656599090704_0.9639632977465755"},"_hasShrinkwrap":false}},"maintainers":[{"name":"zb2oby","email":"f.boubee@gmail.com"}],"description":"React lib to facilitate form integration ","homepage":"https://bitbucket.org/zb2oby/react-form-lib#readme","repository":{"type":"git","url":"git+https://zb2oby@bitbucket.org/zb2oby/react-form-lib.git"},"author":{"name":"François Boubée"},"license":"ISC","readme":"# react-form-lib - Facilitate React form integration and validation\r\n\r\nReact-form-lib is a Form framework which provides auto-validated components  \r\nWith react-form-lib create forms faster in a simple and sementic way.  \r\nAvoid validation complexity by externalize and modularize all your business or technical form's validation rules in one place,  \r\ninject rules in the form and let the framework validate automatically\r\n\r\n\r\n## Features\r\n\r\n- Easy to maintain validation rules\r\n- Easy to implement click-stream with native show/hide capability\r\n- Semantic form integration and illimited DOM depth\r\n- Some basic form components (Select, RadioList, Label, ErrorMsg)\r\n- Label and ErrorMsg customization. you can pass custom component in place of default provided components\r\n- Support HTML5 form components (input...)\r\n\r\n## Install\r\n\r\n`npm install --save react-form-lib`\r\n\r\n## API\r\n\r\n### &lt;Form />\r\nThe Form wrapper component\r\n\r\n- The component accepts the following props:\r\n\r\n|         Name          | Type     | Description                                                                                                                         |\r\n| :------------------- | :------- | :---------------------------------------------------------------------------------------------------------------------------------- |\r\n|     **`validationRules?`**     | `Object` | A formatted Object which contains all business validation rules by field names                                                                           |\r\n|     **`customLabel?`**     | `Component` | React component to customize input labels. Inherit `labelParams` props from FormItems |\r\n|     **`customError?`**     | `Component` | React component to customize input errors. Inherit `error` props from FormItems |\r\n\r\n\r\n- How to format validationRules : (replace <> by \"name\" of field (see example))\r\n```js\r\nconst myRules = {\r\n    <name_of_file_to_validate>: [\r\n        {\r\n          key: string | unique,\r\n          message: string,\r\n          isValid: function\r\n        },\r\n        ...\r\n    ],\r\n    <name_of_another_field_to_validate>: [\r\n        {...},\r\n        ...\r\n    ],\r\n    ...\r\n}\r\n\r\n```\r\n- Schema for each rule in **`validationRules`**\r\n\r\n|         Name          | Type     | Description                                                                                                                         |\r\n| :------------------- | :------- | :---------------------------------------------------------------------------------------------------------------------------------- |\r\n|     **`key`**     | `Object` | Unique key for this rule |\r\n|     **`message`**     | `string` | Message returned if validation failed |\r\n|     **`isValid`**     | `function` | function which got next field value and existing others form data, as param and return boolean |\r\n\r\n- NOTE : for the message of fields marked as **`required`** (see FormItem props), You can add a simple rule with the name **`customGlobalRequiredMessage`** which contain only a message to override default required message\r\n```js\r\nEXAMPLE \r\nrules = {\r\n    customGlobalRequiredMessage: {message: 'myCustom required Message which will appear if my formItem is marked as required and is empty'}\r\n}\r\n```\r\n\r\n### &lt;FormItem />\r\nThis component is a child of the Form component\r\n- The component accepts the following props:\r\n\r\n|         Name          | Type     | Description                                                                                                                         |\r\n| :------------------- | :------- | :---------------------------------------------------------------------------------------------------------------------------------- |\r\n|     **`name`**     | `string` | The schema name of the data of the field (The one which has to be used for validationRules and schema persistence)|\r\n| **`type`** | `string` | Reference the type of the field passed as child. Takes only `text` or `radio` or `select` or `submit` or `reset` |\r\n|    **`required?`**    | `boolean` | Define if field is required (add red star to label and validate if filled or not with message (or customRequiredMessage => see **`validationRules`** notes) |\r\n|     **`initialValue?`**     | `?` | Initial or Default field value|\r\n|  **`validationTrigger?`**  | `string` | Define when field validation is triggered. takes only `onChange` for now|\r\n|     **`inputSubInfo?`**     | `?` | String or Component to add subinfo under input field|\r\n|   **`labelParams?`**    | `Object`  | The label params of the field (see schema below)|\r\n|     **`show?`**     | `function` | Function which got all values stored in Form and return `boolean` to add some logic for show/hide field. |\r\n|    **`className?`**    | `string`   | className for field wrapper|\r\n| **`callBackAction?`** | `function`  | Function which got all values stored in Form called after **`validationTrigger`** is triggered.|\r\n|    **`resetAfterSubmit?`**    | `boolean` | Only on FormItem of type 'submit'. if **`callBackAction`** Promise is resolved, reset the form|\r\n\r\n- Schema of  **`labelParams?`** object\r\n\r\n|         Name          | Type     | Description                                                                                                                         |\r\n| :------------------- | :------- | :---------------------------------------------------------------------------------------------------------------------------------- |\r\n|     **`text`**     | `string` | The label of the field |\r\n|     **`subLabel?`**     | `?` | String or Component to add subinfo under label text |\r\n|     **`inlinePosition?`**     | `boolean` | Determine if label is on `inline` position with field or `block` position|\r\n|     **`fixedWidth?`**     | `number` | fix the width of the label |\r\n\r\n\r\n### &lt;Select /> AND &lt;RadioList />\r\n\r\nThese components are both child of FormItem \r\n- They accepts only one props:\r\n\r\n|         Name          | Type     | Description                                                                                                                         |\r\n| :------------------- | :------- | :---------------------------------------------------------------------------------------------------------------------------------- |\r\n|     **`className`**     | `string` | className for component |\r\n|     **`dataSet`**     | `array` | An array of {label, value} objects |\r\n|     **`name`**     | `string` | inherited from FormItem |\r\n|     **`onChange`**     | `function` | inherited from FormItem |\r\n|     **`placeHolder?`**     | `string` | only for Select : add first disabled option in select |\r\n|     **`value`**     | `string` | inherited from Form : default value |\r\n\r\n\r\n- Schema of dataSet\r\n```\r\n[\r\n  {\r\n      label: string,\r\n      value: string\r\n  },\r\n  {...}\r\n]\r\n```\r\n\r\n\r\n### &lt;Label />\r\n\r\nThis components is the built in component to display input labels\r\n- It accepts these props:\r\n\r\n|         Name          | Type     | Description                                                                                                                         |\r\n| :------------------- | :------- | :---------------------------------------------------------------------------------------------------------------------------------- |\r\n|     **`label`**     | `string` | content of label |\r\n|     **`required?`**     | `boolean` | default false : display red star if true |\r\n|     **`subLabel?`**     | `string` | Add a small text under label |\r\n\r\n### &lt;ErrorMsg />\r\n\r\nThis components is the built in component to display input errors\r\n- It accepts this props:\r\n\r\n|         Name          | Type     | Description                                                                                                                         |\r\n| :------------------- | :------- | :---------------------------------------------------------------------------------------------------------------------------------- |\r\n|     **`error`**     | `string` | content of error |\r\n\r\n\r\n\r\n## Example\r\n\r\n- Here the full example with various use cases.\r\n```js\r\nimport React, {useState} from 'react'\r\nimport {Form, FormItem, Select, RadioList, ErrorMsg} from \"../src\";\r\nimport \"./App.scss\";\r\n\r\nconst enumMrMrs = [\r\n    {label: \"Mr\", value: \"Mr\"}, {label: \"Mrs\", value: \"Mrs\"}\r\n];\r\nconst personTypes = [\r\n    {label: \"Parent1\", value: \"1\"},\r\n    {label: \"Parent2\", value: \"2\"}\r\n];\r\n\r\nfunction isNotEmpty(v) {\r\n    return v !== undefined && v !== \"\" && v !== null && v.length !== 0 && v !== [];\r\n}\r\n\r\n\r\n// You can put these rules in external file and import it\r\n/*All rules have to respect this format to be parsed by validation method in Form.\r\nfor each field you want to be validated you have to reference his exact \"name\" props in this array\r\nthen for each entry you have to put a \"key\" property (what you want : unique), a \"message\" property as an Error message to display after validation\r\nand a \"isValid\" property that is a function which takes the value of the field and do whatever you want to return a boolean\r\nYou can put more than one rule per field reference.*/\r\nconst rules = {\r\n    customGlobalRequiredMessage: \"is empty. Please fill it.\",\r\n    maidenName: [\r\n        {\r\n            key: \"maidenname_invalid\",\r\n            message: \"This name is not allowed\",\r\n            isValid: (nextVal) => (nextVal !== \"test\")\r\n        },\r\n        {\r\n            key: \"maidenname_empty\",\r\n            message: \"Maiden name is required if you are a girl. Please fill it.\",\r\n            isValid: (nextVal, values) => (values.title === '' || values.title === 'Mr' || (values.title === 'Mrs' && isNotEmpty(nextVal)))\r\n        }\r\n    ],\r\n    lastName: [\r\n        {\r\n            key: \"lastname_empty\",\r\n            message: \"Last name can't contains numbers.\",\r\n                isValid: (nextVal) => (nextVal.match(/^[a-zA-Z]+$/))\r\n        },\r\n\r\n    ],\r\n    firstName: [\r\n        {\r\n            key: \"lastname_nonempty_but_firstname_empty\",\r\n            message: \"FirstName has to contain more than 1 charachter.\",\r\n            isValid: (nextVal) => (nextVal.match(/^([A-Za-z]{2,})$/))\r\n        }\r\n    ],\r\n};\r\n\r\nconst App = () => {\r\n\r\n    const [persistOk, setPersistOk] = useState(false);\r\n    const [apiErr, setApiErr] = useState(null);\r\n    const [dataStore, setDataStore] = useState({});\r\n\r\n    const persist = (data) => {\r\n\r\n        //simulate api call\r\n        let prom = new Promise((resolve, reject) => {\r\n            // comment the resolve method call and uncomment the reject method call to simulate Service error and test ErrorMsg component\r\n            resolve(setDataStore({data: data}))\r\n            //reject(\"PERSISTENCE_MOCK_ERR_CODE\")\r\n\r\n        });\r\n\r\n        return prom.then(() => {\r\n            setPersistOk(true)\r\n        })\r\n        .catch((err) => {\r\n            setApiErr(err)\r\n            return Promise.reject(err)\r\n        })\r\n    };\r\n\r\n\r\n    let customLabel = null;\r\n    let customError = null;\r\n\r\n    // uncomment these lines to test custom component for input label and input errors\r\n    /*customLabel = (props) => <div style={{color: 'violet'}}>My Custom Label : {props && props.labelParams.text}</div>\r\n    customError = (props) => <div style={{color: 'orange'}}>My Custom Error : {props && props.error}</div>*/\r\n\r\n\r\n    const inputInfoExample = <label style={{display: 'block'}}>inputSubInfo</label>\r\n\r\n    const myLabelWithGlobalParams = ({...myCustomParams}) => {\r\n        return {...myCustomParams, inlinePosition:true, fixedWidth: 200}\r\n    }\r\n\r\n    return (\r\n        <>\r\n            <div className={`${persistOk ? 'filter-active' : \"\"} prf_container inline-block`}>\r\n                {apiErr && <ErrorMsg error={`An error occured ! ${apiErr}`}/>}\r\n                <Form validationRules={rules} customLabel={customLabel} customError={customError} >\r\n                    <FormItem\r\n                        name=\"person\"\r\n                        type={\"select\"}\r\n                        labelParams={myLabelWithGlobalParams({text:\"Person\"})}\r\n                        className={\"prf_form-item\"}\r\n                    >\r\n                        <Select dataSet={personTypes} placeHolder={\"Select a type\"} className={\"prf_select prf_input\"}/>\r\n                    </FormItem>\r\n                    <FormItem\r\n                        name=\"title\"\r\n                        type={\"radio\"}\r\n                        labelParams={myLabelWithGlobalParams({text:\"Title civility\"})}\r\n                        className={\"prf_form-item\"}\r\n                    >\r\n                        <RadioList dataSet={enumMrMrs} />\r\n                    </FormItem>\r\n                    <div className={\"prf-divider\"}/>\r\n                    <FormItem\r\n                        name=\"maidenName\"\r\n                        type={\"text\"}\r\n                        initialValue={\"initial name\"}\r\n                        validationTrigger={'onChange'}\r\n                        inputSubInfo={inputInfoExample}\r\n                        labelParams={myLabelWithGlobalParams({text: \"Maiden name\", subLabel: \"Name 'test' is not allowed\"})}\r\n                        className={\"prf_form-item\"}\r\n                    >\r\n                        <input className=\"prf_input\" />\r\n                    </FormItem>\r\n                    <FormItem\r\n                        name=\"lastName\"\r\n                        type={\"text\"}\r\n                        required={true}\r\n                        labelParams={myLabelWithGlobalParams({text: \"Last name\"})}\r\n                        className={\"prf_form-item\"}\r\n                    >\r\n                        <input className=\"prf_input\" />\r\n                    </FormItem>\r\n                    <FormItem\r\n                        name=\"firstName\"\r\n                        type={\"text\"}\r\n                        required={true}\r\n                        labelParams={myLabelWithGlobalParams({text: \"First name\"})}\r\n                        show={(values) => (values && values.lastName !== \"\")}\r\n                        className={\"prf_form-item\"}\r\n                    >\r\n                        <input className=\"prf_input\" />\r\n                    </FormItem>\r\n                    <div className={\"prf-btn-toolbar\"}>{/*Here example of wrapper for FormItem inside Form*/}\r\n                        <FormItem\r\n                            type={\"submit\"}\r\n                            callBackAction={persist}\r\n                            resetAfterSubmit={true} //if callBackAction Promise is resolved form will be reseted\r\n                            className={\"inline-block\"}\r\n                        >\r\n                            <button className=\"prf-btn prf-btn--primary\" type={\"button\"}>Submit</button>\r\n                        </FormItem>\r\n                        <FormItem\r\n                            callBackAction={() => setApiErr(null)}\r\n                            type={\"reset\"}\r\n                            className={\"inline-block\"}\r\n                        >\r\n                            <button className=\"prf-btn prf-btn--primary\" type={\"button\"}>Reset</button>\r\n                        </FormItem>\r\n                    </div>\r\n                </Form>\r\n                {persistOk && <div className={`modal`}><div className={\"modal-message\"}>Data saved correctly <pre>dataStore = {JSON.stringify(dataStore.data, null, 4)}</pre></div><button onClick={() => (setPersistOk(false))} className=\"prf-btn prf-btn--primary\" type={\"button\"}>OK</button></div>}\r\n            </div>\r\n        </>\r\n    )\r\n\r\n\r\n}\r\n\r\nexport default App;\r\n\r\n```\r\n\r\n## Running locally\r\n\r\ngo in project folder and run following commands\r\n\r\n`npm install`\r\n\r\n`npm start`\r\n","readmeFilename":"README.md"}