{"_id":"bamboosnaketool","_rev":"69-6fcf9a02e1a749af0ab94d87a5a357c3","name":"bamboosnaketool","dist-tags":{"latest":"1.3.10"},"versions":{"1.0.0":{"name":"bamboosnaketool","version":"1.0.0","description":"is cool tool","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"ISC","_id":"bamboosnaketool@1.0.0","_nodeVersion":"12.9.0","_npmVersion":"6.10.2","dist":{"integrity":"sha512-DSopkZjh7+ESADEQtON3+BJsqknazWlCLvuzQorxqb5L9rrBSWIZhVGdtaeO32EFAyL+TzsOOjep+a0t5FiPFQ==","shasum":"dcddc4032d1c2822afb999e5e0cc01c56f1a17c8","tarball":"https://registry.npmjs.org/bamboosnaketool/-/bamboosnaketool-1.0.0.tgz","fileCount":4,"unpackedSize":6654,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgoibxCRA9TVsSAnZWagAAijsP+gN6wHv7n35r1fc2PMy+\nKEd885rbVUUcB6sAtSP6YZwHxduE/pkQ3d9BzDwXlB1ZVAOewnF1ENZV2NJh\n/zo7dEDftuh7cMG3xHYopMxLcimHouuOuOQNiDrN5soZ2oKEshEJTmPpwZWV\nnm57LqU4RQFHu/V2rG4/GNc3bx1TO/upASgwJpig5h5AU1Y4Is7nV6nx7Vbv\nsZVp3U6cOz53W7O1EdO4XOwrfbboiAXsYymKWMMTOlrPBBVCUXtzGH5/pFjv\nSJePcde7EBTWw1Aq5JUpaYVoNmQ6g4thallTwYnBYKo6LxhCgCfC33iVTXQX\n8SBT9WHEKzf3olFpSZs9kgyqdTJGeGZGcKyxP3yO37CUIHTS0qmG1Ga+1oxc\ne2JoUmgSDxaz8979D95qo5/atvPgrFTVGEjGAxlYiIWSQbNJTD/q1n9/fuCb\nCkGIyefWiswm74Hus8KkNtYiINEhQCXIemtdLnj60gWFp4iSWa7IjGdthDsA\n+AFRUedOybNJdnjRuddbFdh56LhpTNEhlUCTLAyQ2jmh/fqe1MqfEPcfRe4m\nJvyjgc3ZpPHn5l6Fsw5z2crCbhRJlFq48m0fUryjJ2nbVF8gij4F64SEcp1/\nsYF3qmTyHZwQeidugabIuZdTsQFLzzR1AasPHimp9ENvPGobix0vfxupEPjv\n05ka\r\n=eO25\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDg8W6OUoFJLxBDFhc6x8wumgFTpyEXo1nlUnZ2QRi2swIhAOWN9QcT3Z/zh4kZ+T93JakS0HLJRW3m4ajE61Ls83Pu"}]},"_npmUser":{"name":"liuyunqi","email":"283373960@qq.com"},"directories":{},"maintainers":[{"name":"liuyunqi","email":"283373960@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bamboosnaketool_1.0.0_1621239536585_0.6579471102117447"},"_hasShrinkwrap":false},"1.0.1":{"name":"bamboosnaketool","version":"1.0.1","description":"is cool tool","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":{"name":"liuyunqi","email":"283373960@qq.com"},"license":"ISC","_id":"bamboosnaketool@1.0.1","_nodeVersion":"12.9.0","_npmVersion":"6.10.2","dist":{"integrity":"sha512-Vd96aTGFXbr3tMXVsQXq7C6GXdAzj/5lnQuVjElR+Ntnu3xzGJ9pZgx9AlzhWE3dMBNryAATBr/lTSF1xuTdvQ==","shasum":"fc173dfb89a568ba8bd870b2aebf17d58b20af42","tarball":"https://registry.npmjs.org/bamboosnaketool/-/bamboosnaketool-1.0.1.tgz","fileCount":33,"unpackedSize":90230,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgojJICRA9TVsSAnZWagAASpQP/iTJWz+gZ/uQwNN8i3vu\nFTo8jJF+bHfMY4bL4oy4JmgX3eP5LS4gyPjDRA5t6iVNYphJqtxSJe01jytR\nm0RUhHO+ndCriX4RDGzr3ZtyWcSo/rnW6dmR8XccsnL2xeBownTkKRZUBZfc\ns2AVeOTA+UmaMYD7H7WIgThWg6Ac4efQjGwB3gSgjvtQjsaECLdlWYbCt/QR\nn7iKAxhUULCTWBeoKe6niZAgYAARG+yTmE0tr7wGskCTfVg2Y1poKuuaC+fc\n0LXMsuC6ZrmXPdGQEIQomsKgqSQUarxZtOm+wTJqVDVoOKiJxLt33pSTRQ0n\nDpjiDpg7jIpgDVgAIOS429CJ1hM+EVsFJYsU2C+uIvpTfKBX80JIYhAn1vy2\nXx85mlQi+IHD7CEF4P4DPxwNGlb3Gb9pWr17e5RJ74FEnDISI+yPxtYcyiVC\nxWIMKMrboIDqF8XM6PO+jRaIzDc9FeNMxileREYs4eZArkZ6VIt6sR/vw8JT\n9V6udXNQQkT/YXiIbEYTQxd0MXV8XZ5us7gBCBCixNo+YrLtLqcPaapS0w7I\naWLzuQxupgPIwYbvZRKJQUZUtmoHX+g+xPnbtqSYfr2R4NN35R7uWyp8Z6hy\nmDoEIKtLoorsJ9TjtlrW6BixK+aBexDjss/FokecEp7UCE0IOe5x/RfnPhjY\ndKaU\r\n=ibol\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDG1t5TcNfCRiM4VnYpb1amUyiZyjYXxvnxXnn/g5SzYAIhAOWvsED30asVLWaabTSTCOvDUZV7b0byROWQAG3tN6jw"}]},"_npmUser":{"name":"liuyunqi","email":"283373960@qq.com"},"directories":{},"maintainers":[{"name":"liuyunqi","email":"283373960@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bamboosnaketool_1.0.1_1621242439855_0.9688243639406122"},"_hasShrinkwrap":false},"1.0.2":{"name":"bamboosnaketool","version":"1.0.2","description":"is cool tool Function and some Components.","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":{"name":"liuyunqi","email":"283373960@qq.com"},"license":"ISC","_id":"bamboosnaketool@1.0.2","_nodeVersion":"12.9.0","_npmVersion":"6.10.2","dist":{"integrity":"sha512-HkgkvAEAeOCzNV31HsfwLBRtmMlW4KtOkAlkyn3a5qoJ/nOKTbWum7FBYt6KHqyj4QCI6T23pYxGoAIrMUSDbw==","shasum":"b18f1a7fdad078ae846c81bcb57886ad3896336f","tarball":"https://registry.npmjs.org/bamboosnaketool/-/bamboosnaketool-1.0.2.tgz","fileCount":31,"unpackedSize":86558,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgojpVCRA9TVsSAnZWagAAfwAP/idWd6bN7wA/zWpNHHVD\nbPkx93/5NGTegkyVCTQt3n1BWJdfdUx0Kvi68lskHRYoqlE15MFWdCNLmFl2\nx0aes64l6Lx5vQwkx9nIVxz/SFKxufpqGDKt92XcQgrmLSZwMbslqg2T1zuf\nHiHy4OkSnzJ5HQPMP9nmjeOJAjcCL3EKkw9CrYl0k80tp6zMjuBY2q9QY3sg\nmTfLnunqDG6EYVby9IE09p9NRJfJSi/zFCzoMUW7VRhc9SRvlesYub7z6rVH\nWgF4YaSnm+4A7eGum4hRnJLswREckNh+LA14kynAc2FZsYRdOmvCEPYXRkga\n6MJBjEXPjRLyPksoE3S+FFmaXfihZR7KPB2/Dxbvkk/+7D/VfQU8ln5RaD/8\nQpJjSUMcjicjrebOkp8Upm8BT7EH7XFxWRpg6sY0rCnIGtFA+vcWlBMCKvbm\nNvuyT10q4Ktxc/1flktyzE7mAfay9cDW5J6gtbIGDxJIBCmqhGaFZdVQLLJT\n8GXLhWzxTg5IWPgOYqqiGZPtLdG6ll8j8HEqetwD7+nalEYiy8aBIHEFAAV2\nl1V8hblnn2eZnTtdOoxgQ7qXOjIE77DdFeeuGO3fqzlMTGN3wDstQc+3eP0i\nH4GQyPOMZwMMlIXw9m4Vvq3ye6CY/jOWfjRm9H2SPoFVYToDcW897j1ZT02i\nH6yJ\r\n=tD5I\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCMzZv8tie5zdJ7B3EAc34RN/87K41wwByCiMwrYz/rggIhAJwI55+EVtnMbPKWBNzWmAHwiNOHYz9yOTA02s6v7E6O"}]},"_npmUser":{"name":"liuyunqi","email":"283373960@qq.com"},"directories":{},"maintainers":[{"name":"liuyunqi","email":"283373960@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bamboosnaketool_1.0.2_1621244501198_0.7445842267644291"},"_hasShrinkwrap":false},"1.0.3":{"name":"bamboosnaketool","version":"1.0.3","description":"is cool tool Function and some Components.","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":{"name":"liuyunqi","email":"283373960@qq.com"},"license":"ISC","_id":"bamboosnaketool@1.0.3","_nodeVersion":"12.9.0","_npmVersion":"6.10.2","dist":{"integrity":"sha512-TJd6S3mPICrT9EukG1RFjAr97+k/8q8rF+EHY4vZnSpAMAdH+09WY9DmCQKzZxKdit5y+/zv/LgaXSCt+RG4og==","shasum":"f8a91ed9d49f650ae1ba08ef68b0efcc535d3c70","tarball":"https://registry.npmjs.org/bamboosnaketool/-/bamboosnaketool-1.0.3.tgz","fileCount":31,"unpackedSize":87233,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgq3cSCRA9TVsSAnZWagAAUY0P/0FCFIqWi3lmSTYNpThh\n8W+iWnfRQHUw1RXZPIYR7poTkit+KjDO+hhGb47mRm3Crw2lnEac41sLW/qX\nwAOVVmbUw671FGlXsvOWM+D93i53FmUUNnIMKKYr7UxwBYYtw6ZeNl7BGfj+\nopnYvCIdpyEltKyMihcaPrg+Y/Y9bonlQpSdzh27/kXl+ncOPT/1VwZKWUEs\nOVAYs0/0F/fQ+Hf5vhamjBn8BXj9brZFj0S6d+C4MBcwP0O7rNDB6rIzEAeO\nTQROZexaOza6wK+5mloUT9snNONo9JS6pZ8ahX7E6CDI44zRbhU8l8byyomB\nQIDbkTbyaxr5Qe2ZGF9+2E5PSYnSYzZ9hqY3HI9g6iBEKUbFOJsZHD8IfpWC\nUXXY6c6OlUfnZ7PGPCKRkv+Ocl6eYGZ2MLB6ocZVgg20ihEqVJqC0NDlWkWo\nhCiRhqam0J4E4367bdr4OgutEjGf0neSLRN1x4H1awxT0NgqoyAzDWDtqiU/\npMs3P8FMN010f+ZNAnFVaGlCpcS4/bIY4k/4XvOFQRbmsUf2KSwQxoFrCg4D\nUAMeri/u3FTXLADTGvYhA5jdMHESQ0f5+2wiesiztOBr1+/Y6dcaRY3yt94W\nzlDxv2BvYrghfnWz401D7pevfSJd01+o5q8zv9OG3uVCzOCJngFKfTfJw/KW\nX97s\r\n=eDex\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDtBTAQ2FjSrU0RTleBIinMAeHlooEZQL+s+MdBwwoGHgIgcdGYONeKYBVx9JqzKTXlnFha1n2hBMqLLEf6BL+zeEU="}]},"_npmUser":{"name":"liuyunqi","email":"283373960@qq.com"},"directories":{},"maintainers":[{"name":"liuyunqi","email":"283373960@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bamboosnaketool_1.0.3_1621849874078_0.45926635836062024"},"_hasShrinkwrap":false},"1.0.4":{"name":"bamboosnaketool","version":"1.0.4","description":"is cool tool Function and some Components.","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":{"name":"liuyunqi","email":"283373960@qq.com"},"license":"ISC","_id":"bamboosnaketool@1.0.4","_nodeVersion":"12.9.0","_npmVersion":"6.10.2","dist":{"integrity":"sha512-wQDh9TvyP004b/vv39CiHfdD4bIT5F2uqC0BA6P2RdhOKFy/SC3M8rvB9Xjg7nhZw+AirPZeL3/+gBHwl5Csxg==","shasum":"2c493ce4893958f68e72bc4cc17db0501c433936","tarball":"https://registry.npmjs.org/bamboosnaketool/-/bamboosnaketool-1.0.4.tgz","fileCount":30,"unpackedSize":94980,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgtfxuCRA9TVsSAnZWagAAu98QAKIHd4wxjyg4ZFPcRjO8\n4P+tytCPQq/3FOu4u/uSOIVxy4pMV3b6KHELLMD51yXmNhB0NE5dyqG2eir6\nhrGAzkwguN0TEPg359pjJ916uF8oNtlgtqjZJJj8NkxgOuJ/+9MOKvQR1G4F\nwUuKSxhP2mZRHNd32Xx1VwjUrvOd4r08ug9u7nnK4dw/J5vJDFPhUQC3JrOz\ntdti0AN/DQqmF7h8fbh79s1HM6hmm9RkQqgVFqBJnx66WDRrgffT+FCikVsY\nX0Er6t3ROk+3huDtGxmgZcg+uwvAX+VKVAB3c+qSjhMwg1E12OgvqpCLZWFa\nVs/pJUPUqNJ3iXPim9SlcUkM9+RCTyAEQQpSD58VvtwauwnKI0pgqIZuZlHQ\nv9U8Yl0RrdX6399Iy8FWAWaj7bm/l2Ewtai0H+uuESrGNkUe9DZ5BGfcWa/x\nsKNUIBIGQg7a3AFbSOF9ClyLFg3vVOM14vr5xFMR2WP4PV/UDJ0AtUydhwBS\nKgSSwJhUCdonyI4W69EXl3QLTjDJLMeGUuqrJIEJCiBRWWgSYuOB/+YhcGLj\nPGqrAkQOSXE7jxum7N6Zh6PfyBXnk5ILjbrIBNEhLgBWUrAcyRXhZ/6BkZ5Q\nT/xg4EBhl5V6ZNlRJ5XTrhUfjA2mdXaciLGrFCQqwVJhfumguscoF6u1e5wD\nsGLG\r\n=0ZiR\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEDgIVeFiUbuIwBLeGwvWZXD37+V+7c70z2cz4nKWj9BAiAGP1bj9pDaZ1EGyXnagTgIhthRuluCBktYSHy76+yDpg=="}]},"_npmUser":{"name":"liuyunqi","email":"283373960@qq.com"},"directories":{},"maintainers":[{"name":"liuyunqi","email":"283373960@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bamboosnaketool_1.0.4_1622539373839_0.7382308380480336"},"_hasShrinkwrap":false},"1.0.5":{"name":"bamboosnaketool","version":"1.0.5","description":"is cool tool Function and some Components.","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":{"name":"liuyunqi","email":"283373960@qq.com"},"license":"ISC","_id":"bamboosnaketool@1.0.5","_nodeVersion":"12.9.0","_npmVersion":"6.10.2","dist":{"integrity":"sha512-gvXj43iS9XPazH7QSjt25EcHpnqE/ovJJD2EYG4KtBg3kYJcNzK+qPx8oWSLUjWkLtDymLv/kcZ/QM+ADhl03w==","shasum":"62524872880299e927ef40d49ba2f1b75235173b","tarball":"https://registry.npmjs.org/bamboosnaketool/-/bamboosnaketool-1.0.5.tgz","fileCount":30,"unpackedSize":95086,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgtf+HCRA9TVsSAnZWagAAu3cP/AhPLexdKITdipdWhc1B\n8b3r5Pdo52RScfgmqhcRFirkPSRB2kcRhDwmsaUoEhksog3wIcJHAMsruGzQ\nFMyTTg2kjgTlh32UaAcygp/qJ0eIwo9JH93y9f8zJge07R0T0N9S+gJ0Ork6\nqYdQNct1CHM9onV4ns0hEhn8jyGeaOM8hoTLfHlstwOAcY7YTve5W/MZWalG\nS9xVfpwLW71+89/033dhAeNzYx90rWXMpmqdLJ+QItMh2UqGHe67OVEvhQIf\nIFhJQfvHmAdOmyt1R2gLmqhm2kaHM+NT7YFz2KTGkiHHut3Zbd6E+C3YCBAx\nK0CGPUKVaaul7IVd40/0V9GBFHAMuAEfHXn6Eu4CcMIIWVqdQ2XLV1YhToaA\ns6XAtIQZT58/UyCqSxLMgPYEeb0v7R/BqyWSOjidXh0fjMTSJuvI6dU4+oSN\nU8d9hCEaBKfgXai8IGWKHzvo5RGI/gHEoMk/VyU5iw1IQbC/aZudd2gcBR+U\n4lOPTf+xYM2xxq7sYbSTWLrili3yoJe117qOVKU13NLSO1Zwwzp8oOb8FMdA\nN9LDAXVm0j3Q2bToYCPFMymOQ64UQPByDVTWDQL5vce1eloT1f/ry3Rp0FZ6\nEonttCFmNbijxV9VyUCQCM0VMeIOXywr2FXdhibIpGQ2M8iLgJjjPSMen5ti\ncS2T\r\n=arpY\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCjEYkrPtZrS/meqMDXdFaYEwxumgrJHds2JLDneRUD0gIhAINiSJKZwtP8yAGPdzPvX0FrxjXzJzsvGEs2icCfUKEX"}]},"_npmUser":{"name":"liuyunqi","email":"283373960@qq.com"},"directories":{},"maintainers":[{"name":"liuyunqi","email":"283373960@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bamboosnaketool_1.0.5_1622540166925_0.9951712345657495"},"_hasShrinkwrap":false},"1.0.6":{"name":"bamboosnaketool","version":"1.0.6","description":"is cool tool Function and some Components.","main":"index.js","types":"lib/index.d.ts","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":{"name":"liuyunqi","email":"283373960@qq.com"},"license":"ISC","_id":"bamboosnaketool@1.0.6","_nodeVersion":"12.9.0","_npmVersion":"6.10.2","dist":{"integrity":"sha512-m6PpLKEBqiqd9e7chTavWHhQm8vXDNXZx/zlgmwEL3NO7270oNXBuAa+WS9u40t8LIBNzn/LhjRIJfJGFb3lvw==","shasum":"50379b4347a78cddc59ebc04aeb1ee58b48dc47e","tarball":"https://registry.npmjs.org/bamboosnaketool/-/bamboosnaketool-1.0.6.tgz","fileCount":31,"unpackedSize":95186,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgtuKRCRA9TVsSAnZWagAA7KgP/12vMevUVeN3xKq9lNz2\nL19JEBNsf/TaxVH9xJpFGrr7Zpv4bE+Phg8DzEaTT0h0oavxG7h0RWuSA5MP\nJV9TtjNBVGvbsSFaNA0zixpvZ6ICgM2DhBc2TwdvmjPCa0200MlCaEhU4Sev\nogx3tRXnjA2OSFDPvNE1qHtyYjpDfD4AJrlgE45s6vMrsP4npoueAOjuMyue\n/OJN6HeSyEVnAdADC/FWLy9aeuZD+DA1bfUZIRiKOGHZmHlJJaiJsTnihpi5\n8W+8obYK1IZm6n6zOqqsYjrpF3cRDhMXSniuqn7KlEZTFkRrEquk+u/0Qajq\nR36r4Uz82mzqJvt3518bm78OgK5JC7iTbReBiu8Qrzp9OT377C1lCsPMsFtT\nYtA7Uvi1ohE8qujjo+9R3Ym+mYe/ROjeL5Msh45y8J8VLP19Q7RqUTyTZkrb\nuP9+ct8o1ks8WwsDcem/yKcfcoqE9x0A6nGGAYVC1DJ/crb3ax2AVI93qgd2\nrZkqoI4WZKcgPmVpjM9UGin4j7nYt9VKmpJ5PG/Dn6A7N+E43GHB65OkpfMl\ngtzE1Huonkmm6WmnaPnlfe3VMjv+rARBCeA5rFglN/UUhwjBw1RHR6LxxPUg\n1K5AkKzz4VdfyvfTfYI4re/WtJdyQzMXEE4LxMU43gvqa3KoA61NxSWblnrU\nwuON\r\n=cZdD\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICZFuzfpNOz2U1SkAR+c9avnbr0Mu8Kkn8r4NmRFLYNtAiEArz2gSbvn0fK+9V+aeB7EjtUOBrNnCQXxsJfoeaLV0HA="}]},"_npmUser":{"name":"liuyunqi","email":"283373960@qq.com"},"directories":{},"maintainers":[{"name":"liuyunqi","email":"283373960@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bamboosnaketool_1.0.6_1622598288476_0.4777291299378663"},"_hasShrinkwrap":false},"1.0.7":{"name":"bamboosnaketool","version":"1.0.7","description":"is cool tool Function and some Components.","main":"index.js","types":"lib/index.d.ts","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":{"name":"liuyunqi","email":"283373960@qq.com"},"license":"ISC","dependencies":{"xlsx":"^0.16.9"},"_id":"bamboosnaketool@1.0.7","_nodeVersion":"12.9.0","_npmVersion":"6.10.2","dist":{"integrity":"sha512-OGuQKHHBqpNuZPBN9axXaKDZv/613lXub3G3wMBFEQwUMVahjIrZjrAkxVadCjGiJ9AoXu2nwtob0Q4mC7lsQg==","shasum":"6b384163f3e433642a4a6876ac2713c4ebecd4ac","tarball":"https://registry.npmjs.org/bamboosnaketool/-/bamboosnaketool-1.0.7.tgz","fileCount":32,"unpackedSize":95285,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgtuaXCRA9TVsSAnZWagAAE4EP/Avsb2eAmX20WIKfr6AD\nz7B/TL0+sSX7Cdh24MKcG9r1xjZCZt4EIBx7EltM7LEPNLLLQ+iphH00hVwr\ngaOVjNpqJxNqhR2b2YJimjm7Rsy8POsNF+H2Qke7/kaxLNlEZQxEbBWEo3wF\nyo1hwZ2PhbPgGeAlo0wzlMOm5FoKdEICD2ciaZpKqf3zI15pkn3c6GiSWbhw\na7FBdoVxrMla1S22C+VDEd6HMwSmkvsCOrP0olJRS9C4v72/tWJpDhf2U+LO\nJMOOlbvvopblvkEMLETIv7bc+oohKBnik5jIeXjh8vrlKAfDskCf27qZdXqO\nUeDfGBHx1fEMyeKJYUIhhmKjC85uyrcrVasfv5fYoK2J4jcjwHssCb1ifdSI\n3UdvbO9O6G7oPaU5IcAZpnmAywbGcCMSVvQcifjt5fVwGMxnlddJ4VO23yrH\nOl+KCq7hwPqMCWiLlX8bPsOptCN8GF3NyxTLxhQMYASyglgj+LlQXzKNRIiB\nKs01ZnY+IHj603QZxsO7oLQaDLcQQ8HEOvRnLXvpF675OMdc9FmHNb4+GGVW\nrTMACEIV8t+OVivr8Gy+CZWl5i5M3ic85MrVKVXkiZqv08hFgw7xD/IE94jI\nGdlNhAOLvoD0P6LNffr5iDceDThh5Pp1BYyMP7luEbolFr5GIsMfC/TpjbBv\nTmQM\r\n=mxCP\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCrhJ4RrwDAawMc5Gau3LELjueerC4gXAYmrcS6PRmNoQIgJ0zRtpgu5R5jdCUDyPyiOJ0u00TOFoEXhPQp2VX6jB8="}]},"_npmUser":{"name":"liuyunqi","email":"283373960@qq.com"},"directories":{},"maintainers":[{"name":"liuyunqi","email":"283373960@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bamboosnaketool_1.0.7_1622599318834_0.49103537490648175"},"_hasShrinkwrap":false},"1.0.8":{"name":"bamboosnaketool","version":"1.0.8","description":"is cool tool Function and some Components.","main":"index.js","types":"index.d.ts","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":{"name":"liuyunqi","email":"283373960@qq.com"},"license":"ISC","dependencies":{"xlsx":"^0.16.9"},"_id":"bamboosnaketool@1.0.8","_nodeVersion":"12.9.0","_npmVersion":"6.10.2","dist":{"integrity":"sha512-FSB4zUEApBxuhyzZ9JYEudnoZRhsjXlNH1Vz22dGlwotdZnnHfg3wZTWsNmGv9DOduGDHmD7vq67f9iicGRrcw==","shasum":"ef515b9913ff600937a1f6046e5f9715dc7ef69d","tarball":"https://registry.npmjs.org/bamboosnaketool/-/bamboosnaketool-1.0.8.tgz","fileCount":32,"unpackedSize":95281,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgtuv7CRA9TVsSAnZWagAAiewP/0xlLm3YqGE7ecQNd0hy\n7eq9O73A1XtQ1ewcrdmQl7WQIPg843M11Nm76p4wiyDOhIKiDQ5Bvsb0Hk96\nBNRBhiwTlisCutaBKQCRXMTiKNi8LKHuhOB60XEvlYrfYdoI07gCF05uFc76\nK+qcvcohp6MATBttHmE3VDWvIzMrOoMVErQMbB+M/WgULzipV5rnOTPW+cd9\nATHkKSFXk1Z44BzwF+soQoQyBLtNthmaML/37QOnlCejeiQ+S3tzvxAE2n1D\n0rvkfV4GqLBhQjWZ07cVe//1WWbK6NRflXzOHLzYnWrNpLdPuWxA0+dOf3tr\njHBRcj5ZZblYU0iMZEmlje6nUqqcF1ZptsiF0hn4j5KWWPELmHuVuJA097hN\n7NJbOl8GpqkgkI6M18GDgbZoNcB8FRqBxt+sxsAO34KR+Q5lVIppOhURC+n+\npnvXxkvC9sfcoBQ8oAsGQ9feyEs388KHr8CX1fxYFqvOIt/vsMcFuIqwCaK2\n8Bf1p52lJOQfW9iane7ueu0FNumcjK+ou6FanCnq8tpRlE86p/W4+qxgsj1/\n0RyNRTzoq8g4RrcmtkOUVzmYi64H/wTp1XQqgdonnxZLc7yrEcJEun//EsR+\nXfiFwfx+NiS8PuwYV/A2HB+OCdapC2CCJ4I/EYgzb0llL0mOnK4JU6XgbXVm\nK8rN\r\n=uuG3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDt0wE5Fb6Ar+Pahw+FXTbYmArty4+HZmHgEu+WPWvWSwIhAKUNX29Zr0cTaMOQVQc+DBl+5Dif9+5W52vxbQS1zzfM"}]},"_npmUser":{"name":"liuyunqi","email":"283373960@qq.com"},"directories":{},"maintainers":[{"name":"liuyunqi","email":"283373960@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bamboosnaketool_1.0.8_1622600699260_0.5006668204732412"},"_hasShrinkwrap":false},"1.0.9":{"name":"bamboosnaketool","version":"1.0.9","description":"is cool tool Function and some Components.","main":"index.js","types":"index.d.ts","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":{"name":"liuyunqi","email":"283373960@qq.com"},"license":"ISC","dependencies":{"xlsx":"^0.16.9"},"_id":"bamboosnaketool@1.0.9","_nodeVersion":"12.9.0","_npmVersion":"6.10.2","dist":{"integrity":"sha512-UpuMBE83NjQVWU/Y0tG265PJe3SBJJjUcM/VoHrE7oDOsuc/Teo2xayKKuPYS0EcFp/dsqQUwRj+k/TeNMGd+A==","shasum":"8eefb0dab2bf3eb66f22d7921b39e50f70cdcfe6","tarball":"https://registry.npmjs.org/bamboosnaketool/-/bamboosnaketool-1.0.9.tgz","fileCount":32,"unpackedSize":95284,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgtu2GCRA9TVsSAnZWagAAViAP/AzPVXdfB6544X3rdR2L\nHNWNdd8XiSCKwy8NtoNX3a+wSg30gB3IS8+GsTlfN0vGea7SHjnjOOHlop/k\nilIHgwFCUNJcw4qy3H/QX+BLVr9Igw+DmuKzyurZRsQqCj3hqk9/lyS6S/Of\nNuQM/MVv32EJR0W18NomKkubYZtgz85Y9CpJBZE1nCb5EtJrVRZbxBHED2nn\ntCRamZV+pMjzMY57GWiV1dyIXRSRVMLUqAWV8j+dpacItNif1/ij2dgMSDO0\n2M8dJSwOIdKXm+/5Cf50BitOTFWM8F2UOO0V+xHtWoaDAmQLgEnjaQlqeLKC\nLjmw7xF84soESyAby9r9SpUD70iMnPedPpC2usofJnPm7RvOFVU3cdipBqDf\nnKjTnuB844++wIeGDH3BlvS2Q+9w2FoPOeYCmzpm/o4HNWpf7/VV+/9uvoAU\nzGWDJ5mEggfMvB56biJTkIl73/IzHjnvAoBY7HHDLhqbEeSeED7sh/SzJqcz\nlJMLNUrg2xDgBDj/I8Nnvz687P7AUa4lCDsEWrvjbMS8b/4i5iU/35B20E5F\n+jKR69mOFB3hpJc3d/0qwikIO8oZZe2snYfaNGPqSr7Pp9aGA8ZBX6mMaQf1\nf67AGYLO9ItWDuMkF8pkrZev/8cja9TKvU77XzCD9lDy4hkQya9tv1pFJMlD\nY1J/\r\n=6m2e\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDKXfnsJfJGg4KK+akzomDNevK5G4m1IjJEOQJYyxVj3AiEA6Veh8FwDAZoAUCKeCw304I2SjxV9s+xYPYHfYHUlKkM="}]},"_npmUser":{"name":"liuyunqi","email":"283373960@qq.com"},"directories":{},"maintainers":[{"name":"liuyunqi","email":"283373960@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bamboosnaketool_1.0.9_1622601094406_0.4390131170560061"},"_hasShrinkwrap":false},"1.10.0":{"name":"bamboosnaketool","version":"1.10.0","description":"is cool tool Function and some Components.","main":"index.js","types":"index.d.ts","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":{"name":"liuyunqi","email":"283373960@qq.com"},"license":"ISC","dependencies":{"xlsx":"^0.16.9"},"_id":"bamboosnaketool@1.10.0","_nodeVersion":"12.9.0","_npmVersion":"6.10.2","dist":{"integrity":"sha512-j6zlR5apGDxMAnoVmKNaH0oT9NFGX2PGnsimQWrTFq/nQe3sezMMdTpPIKvsvGEgWruNe+j2oTvk2gxIXtuIyw==","shasum":"42ff4f59adf7b59188c2ada395431008ce5170a0","tarball":"https://registry.npmjs.org/bamboosnaketool/-/bamboosnaketool-1.10.0.tgz","fileCount":32,"unpackedSize":95357,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgtu66CRA9TVsSAnZWagAAzCUQAJoXbl3HtPfGDWgiLF66\nPyeXpbv7fps+VrREzmFd1m3uCLX8myrQwGjJxRm8V9lzxMXJBOD4U/gmrCge\nyoQtC1vodAi3KLZvSPYJsWerLMM473DWptaQSUOtpTyO3gLQh02JB8/IIqty\nBq4cEEII7Z+liRqx0mKkDGqNgXecRLjHeaTfEhdm0A0r/abaea03i0Gyk3IC\nH2/V7j81+EUJcSd8PSqdpYwWNeZGHeSzSEiDd2yX2PffVBWMrbcFspigPo8d\nGc7mqPJRLBIyGS+TK0flsI87IRHR7RypZqe4UxGwoa49wV+KfnRv8xWWHGF9\nI6UN4mX2c3fTvavgvlmdpSphn2mHh+MhyT8D/vZsjgZE7RhXaNJMIg+hcm+4\nrWFHzAORx66B5rppdslNJGJ/qOx4zXl+aUsEfbZ5ZRVk9Dv3ZsIlgtBL9vud\nv9Qh9/yMcmU/EE5lrw3H/VdwMOXtdSs1X3Reb03LyR0ImZMJZCzOtxq+pb/1\n9XDj0sRKeLVyOQTJKnwewWJH3Vd9rk2tidVGcv0vYFhWUl2NG4f0CoADyGJf\n3No1VqHUFJZ5xsIjfh+I04sZLNQCC6X8aVIw87M7CFsfvCg2tgPlPR3VH/+t\nMErPWZYNeReHUorEB2+ZVfhQarVzdFjhb9LekLSaSU0b1EUlUWPjDW8WFEHL\n3phC\r\n=rwPc\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDBTRWogIhmqAgHdMhINefjzDDScZNbMe9MPMOrNRwobQIhAOHlpdrxRtVIyck8jSnWJUTX9HFpH6EsoaRp7Zd9wy1o"}]},"_npmUser":{"name":"liuyunqi","email":"283373960@qq.com"},"directories":{},"maintainers":[{"name":"liuyunqi","email":"283373960@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bamboosnaketool_1.10.0_1622601401953_0.48947545821212346"},"_hasShrinkwrap":false},"1.10.1":{"name":"bamboosnaketool","version":"1.10.1","description":"is cool tool Function and some Components.","main":"index.js","types":"index.d.ts","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":{"name":"liuyunqi","email":"283373960@qq.com"},"license":"ISC","dependencies":{"xlsx":"^0.16.9"},"_id":"bamboosnaketool@1.10.1","_nodeVersion":"12.9.0","_npmVersion":"6.10.2","dist":{"integrity":"sha512-u6EEpn5NBQWXr77El50NxElxoaZeqh/2UVXyxGuyy6gKz/cgQ1FthTmEzfED+lJLziVcoA3bdnBl0sAWSut2Ag==","shasum":"8e444482f08e4e78a41668957721adadd04a7665","tarball":"https://registry.npmjs.org/bamboosnaketool/-/bamboosnaketool-1.10.1.tgz","fileCount":38,"unpackedSize":106860,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg0Zl8CRA9TVsSAnZWagAA9XsP/jGI4GmMu0WL7ttvuWtD\nVz5fSQiAEBT5m9qscEu8jJK1qJfmI8LUQP751SOT/MVJkvGuhNDWajuklqHQ\nk8VId6shjWBdyoxU/l/PMuvNKESVvqBwmdlnYzQ/ZHSKaKPSiUCFeXPy0UAR\nP/Dnbn/+TcjyYi7uMgXAXP1Dy44Nd8GA03PPQmv3mKbmEnv/9M26e+/2danE\nvg5c1zMrS4eqzS0z7bdZ8MP3gfazk9WUAgy0LKimhAlKiGNrHAT33scwKs3K\naL+VVGR3SCkKXRQH0yzsbQBm5iJL4hk4VTBSxpVCKnsScRyMoa/Ynglx6KNT\nJ2licR/mEv2QvE5Wqtb7jyzPcIeFcrIw8Ft+wtQ0iHaZV0cN7uJlP6TwbN+5\n4E3B5MBsHnehxk37srMCjrwjXW1gJZrISjXyv6kZ94m2IEC0xZlBEpLLUvR/\nOeGIRvCtotIOOBE1LkxMCmQrK11GjfkzJxGni5sC+Logz/JuhKa0DrYI++Eg\nVV+nqFHwIg2UliMZY1nA8WlYbKqr5L/MIoTxgGCa1i4FG1639QED40LfdLMa\nrPkWiKGDFbMw8YNr76zgnx29X/KiI8Fz6Uqc3OZwS/99LxwdJJtH91KSoJgG\n4tZowV/R8dHjG3Bxt5BUKGrx0vXdFpreOniSyOXgFWdYOLOIaMx0rCrQ94WB\nKCsm\r\n=0t7W\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCd+DJIF8SfvbIWTkXkxB5jksSkgmsc/NkEW2OJLV8dUAIgKRu4nNdEQhHIPp76gfePdMxdg/gi77UD1rHR4fE2crw="}]},"_npmUser":{"name":"liuyunqi","email":"283373960@qq.com"},"directories":{},"maintainers":[{"name":"liuyunqi","email":"283373960@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bamboosnaketool_1.10.1_1624349051338_0.5581608926679114"},"_hasShrinkwrap":false},"1.10.2":{"name":"bamboosnaketool","version":"1.10.2","description":"is cool tool Function and some Components.","main":"index.js","types":"index.d.ts","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":{"name":"liuyunqi","email":"283373960@qq.com"},"license":"ISC","dependencies":{"xlsx":"^0.16.9"},"_id":"bamboosnaketool@1.10.2","_nodeVersion":"12.9.0","_npmVersion":"6.10.2","dist":{"integrity":"sha512-xaH+FWzTlIPYONrpttkLziqcTAFZ1LAUuiq+u28aFxWWyYU78aQsY/JFLXgVuv7IOqh3/sm/hjBE44XjhP8yKA==","shasum":"8406ac41614e7293cae10b633e11644e0e87afd1","tarball":"https://registry.npmjs.org/bamboosnaketool/-/bamboosnaketool-1.10.2.tgz","fileCount":38,"unpackedSize":107022,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg3S5qCRA9TVsSAnZWagAAShYQAIY66acx5L79ldHYRu+v\np7UM998QwAI+mbDJVE/S5zvEZMImIKqVuME8MmqCzI7yLAIsttM7le2QfSvr\nCpmC0nKlGxyEl8g/2FsBVOzEmaUl+yJAO+yJB/W+EgOZNXCmOdSjELDlFj6Q\nGF+DteL7b3ZDZgH5M1RHXWFOdXBBlNVgKNnj09PQnuNA2LW3lzxbMd1mDNBG\n8cLBZ/65i1IuGJMMN7DfhzGFDndJx2vczQaKLGtwmoOveK4kOah2ZREC+wEw\n5Amb4yeH1zx0uEydVhWpnc1evccP+d/jXUHTmVq5if9kc42MGFUbyFJvjkr6\n1LMx/3uj+Q3AVfK/7XhaKMzn3ugx2hsgKKe8+SX6Je50Zv7rl9WpTsCa7Pj4\niNcl/jSNg8N8clbOw9LRKnSmTK3pzxIRUVQFzbYwQGtJBbDKT77Tx1KupDmh\nHVeZ73k8NtpMRMGAdA+B3R+zKEtJR8HS3v/W6XNgLpKkBSjj8p2O0vJo8fgQ\nkkHZ5EOcSwEzyv3Jrp+urnZ6taFb9Z2rG9wKqdl9FueKWiLuBjxenMtfBAN2\noXKzFKpZg+cSPkYdOVfsqmIv/OTp8zvxtSY+Z3FB1Z8x0Vt0X6iFMUXxwW7e\nI6OnEEhLe5rKxQgwmSx5dep8rz4Ujj/xE/800hOPRUwvOEqmv5ceoyC/11mT\nm7w0\r\n=bc5A\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCR687pb0zC968t2q3y9aKmv6traZ1sdyDghvFrRdO9HAIgMdkV25MqQpji+yhC/aGUh/5oLXSnRa5G4NhECsYS0tc="}]},"_npmUser":{"name":"liuyunqi","email":"283373960@qq.com"},"directories":{},"maintainers":[{"name":"liuyunqi","email":"283373960@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bamboosnaketool_1.10.2_1625108074073_0.1368003592609588"},"_hasShrinkwrap":false},"1.10.3":{"name":"bamboosnaketool","version":"1.10.3","description":"is cool tool Function and some Components.","main":"index.js","types":"index.d.ts","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":{"name":"liuyunqi","email":"283373960@qq.com"},"license":"ISC","dependencies":{"xlsx":"^0.16.9"},"_id":"bamboosnaketool@1.10.3","_nodeVersion":"12.9.0","_npmVersion":"6.10.2","dist":{"integrity":"sha512-f6hc+YmfAz+KBBcxikZYiE0mRrZD4fOkylit1oSPv5oU26t25jOP2Ps1m8dehUiBeTfPHAjhYcMrz1Z8mTW3fg==","shasum":"ab160b0f236617d44404625028998fbeceb872eb","tarball":"https://registry.npmjs.org/bamboosnaketool/-/bamboosnaketool-1.10.3.tgz","fileCount":38,"unpackedSize":107013,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg3S9DCRA9TVsSAnZWagAAdCoQAIRyrx2+KC3tax7eoBCQ\nuIaKpfmYvPVb1ZSP7GR0Gf0dQt8kPfB03Sx96UX2KbM/fVJXbL+AFiMVSJCD\nA10yndqD5YCsxeOrlHyeQ6u/hcuHH4+wtV7ZfiuR0DkyzMAnRkxQ720mZ6gi\nQGjQuhUVVniKKa4B/A4d2SqCmEUG9kVOw9zuWhb8T6ked7dO3f9satkBRTcr\nSrk4dx7zW3zqYpObEYa49yUCTvxdFj4UUjZNNv+BhS4qTiyc5NsbUmrsYlAs\nWX/J/2p1QqOR9HjY6F5xT2QttiBA4Z82bKSlGFQZ0R70PjHeNACdgGcttIsq\n2lPg8sOckoEAKGabioSAH5WKfld/oiT8vfQtR3XmM075/u38RFnGld1GVP/I\nGH9j0OhlL+Py/Un+VHEjei16aAuWlKS0y9Yox94MiIiOlbSh8HTSgUcYfEVK\nzbgeZ6hy+04ucYy1dC0yBHu7NIXZX+tguwVgabFj4iXNx7dsGq7sqPXRlcfh\nWJ+7bYE2CMqRQaR4maFYnA7tUmPIukrkCh7mEDoYoLIR42ZS35jan5RW9WQG\nnEXHM3kNfPfjSaiymMsFueX2J8DIosMYkZgwBYFQAfoGqFbMHxM82Qt4ss9w\nCLI0wWtW68T80hggYTVfmtjpOdTqVpc/rv8GwxLs2iAOSRKxovrdhP+vLu+V\ne5no\r\n=dna+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC4OziTPMot5zSwxGmJKhtueT/uk6abV11StnhSbdowbAIgBGcOJi3lPfTBz6OsZyqMfdjlsNMnU46K6EZdz4oBL0Q="}]},"_npmUser":{"name":"liuyunqi","email":"283373960@qq.com"},"directories":{},"maintainers":[{"name":"liuyunqi","email":"283373960@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bamboosnaketool_1.10.3_1625108290838_0.10731429445137075"},"_hasShrinkwrap":false},"1.10.4":{"name":"bamboosnaketool","version":"1.10.4","description":"is cool tool Function and some Components.","main":"index.js","types":"index.d.ts","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":{"name":"liuyunqi","email":"283373960@qq.com"},"license":"ISC","dependencies":{"xlsx":"^0.16.9"},"_id":"bamboosnaketool@1.10.4","_nodeVersion":"12.9.0","_npmVersion":"6.10.2","dist":{"integrity":"sha512-AEU/CxyZPrNJrImKOIkyTmq5q0he+36oUgwjgZJs5ghgpNLgLnr7uEHigwGWyj1wFGHl3dBj6/aw28/ZIzaDZg==","shasum":"51b253817e033a208098976553567a620a370201","tarball":"https://registry.npmjs.org/bamboosnaketool/-/bamboosnaketool-1.10.4.tgz","fileCount":39,"unpackedSize":110164,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg4rFdCRA9TVsSAnZWagAAhZAP/jgbq4BwG3B3IvuF9d8U\nvD6wlDHnp4VcKpYwfPacwTx5qARBTPJtmud9Jj8e2ySfRu5NaDXyC5NwBwHi\n8E7FmYzh/C8Pnz3d5C1En0K3aKuXe0wE7qzmIEWWnWrFr7zIThW3QSrJjgnb\nsp9aLoKSXTh+3pm2zqjm8NZnRXcSD7OiwXH0eOzNmKO4DTXN5SKOmOdZ/6Ir\nRV68InzXUJE4ZujeAOaiBbRTGhLC0+c0KabtgA7fu7SxQ2WinXCzHowoID0z\nWSAL4zclLHpXDkwbh5d4A17VWacIuxiv7p/UOJiSBt3DU5HQKabkWgTVvFqA\n5DJw02r62MHnQusICXztobksnZi1KUQTvWx4SNnuf3TbwBkULtQTuVDZZSyv\nEb7BZkKH5JJ5NJPGqhmIcTZUjKxU3cQsgWQCRNI2Az+4x45RSCPlAi2DoRyC\nF9xFuq6QJGSOW9xreMVoExFaA4LN1fpKjZ6GJUZhtxJvKioTdrTPpetIbS2X\nt9h/4G0ZpLlNbB65RymlR1JoG/lxhwNgUCay7s2TGbYd3rMk6xT2EW5EmT5b\noaI/rHpqSxjDylNa2/zRkCK5JXL4heKzxuJlgJMqa72gCgJBNrERTiEe9Wzu\nOgdkFbeTlzlcAABgz/SKam+6sv3/rfTAGW3HGvn8aClUdHjhmafIVSCqABu3\nxG8q\r\n=TmR/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEIlr/k+BXnzBy59YkkhImYjK41BSfWeOJRDdJ8HDcgKAiA6wfdNnmwOurD4OY5YP6stvdk3EYEo0K6FCLYs9e0X8w=="}]},"_npmUser":{"name":"liuyunqi","email":"283373960@qq.com"},"directories":{},"maintainers":[{"name":"liuyunqi","email":"283373960@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bamboosnaketool_1.10.4_1625469276962_0.8627862483657496"},"_hasShrinkwrap":false},"1.10.5":{"name":"bamboosnaketool","version":"1.10.5","description":"is cool tool Function and some Components.","main":"index.js","types":"index.d.ts","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":{"name":"liuyunqi","email":"283373960@qq.com"},"license":"ISC","dependencies":{"xlsx":"^0.16.9"},"_id":"bamboosnaketool@1.10.5","_nodeVersion":"12.9.0","_npmVersion":"6.10.2","dist":{"integrity":"sha512-GbiSILCLLsFBrP6DRSU69oj4geWq+dTTWT0rBTZs2K08J3F+WOpoyGDnl7TmKMiyAp4Jm8RpBLxGf9Oa1DVltA==","shasum":"da5822378584e88e53c29ab3530d300f44482e99","tarball":"https://registry.npmjs.org/bamboosnaketool/-/bamboosnaketool-1.10.5.tgz","fileCount":41,"unpackedSize":118898,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg5FRACRA9TVsSAnZWagAAxHIP/iq1tHtfSdaziARrBNpk\n8KC/M8QuwgOaTS0pi7nm99aYQRJfEhW5A4ERrFBZb2JYpPezUYBr/mnCV9ec\nEuurc0qW+u/jo4zjaFtN+EKpAY3+JJM/36LWnH8bWhdObnYjQ1wBwBHOX5ch\ntqMEpvPE9CJLrrzgnNzaEw7PDr9z87ImZVCU73Bb+Ak63n1TDsAXEEw89T50\neP1WRnxqCdtKMYdzEc4OHQA1ztWOBI65qK8je3bQFrSTXUkXO/JCevnk5kFw\nzL0XybwJPHfH/9KVtF+JEdP+NbvA/HzzwZgH8dh5ByjLan9gA+9rXgL4Zy9s\n8OVpPmDIPkd6TfvQk3p1/7EN9Y8fv+kEt9dwBB5jP1Emi48p7aOqB9p2szcQ\nWVyUUCC3KKEQ1VSGtlkuikK5SObKs5SQhSzEZjfxLPmCDIIf9bzkbg1QCBqq\nw86jm94P5ZeusIhyz6Yl9EF5YwJSPme1UrwRLYbKm/XBN44OhPnQH3K9zaUI\nrFEx2W6k6bvORXScyK4GLSPr52Cuk25834PX3S+t0E0TpSh6AJc7L35VryZ9\n7cXmw5NONdFsgxy9FPQODVvT1aPqciB/09ASFGCQNNuAqoU/uI2sKwVXfwvW\nC6AO+ZWhzLjgPgnAqy5fGXDlaiNPtYuiRsGcpenF/h7P/16WLqQR67Bxmcvq\nb034\r\n=OH4w\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCImf4JQqAhgTEBgLK5/WZqzhTUjvjeoRPOT1lmKX2GdQIgO5qvxQCoav627S2uxcXwvPc1FJtVfKk62ae0AEuTc8c="}]},"_npmUser":{"name":"liuyunqi","email":"283373960@qq.com"},"directories":{},"maintainers":[{"name":"liuyunqi","email":"283373960@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bamboosnaketool_1.10.5_1625576511586_0.9726566869122306"},"_hasShrinkwrap":false},"1.10.6":{"name":"bamboosnaketool","version":"1.10.6","description":"is cool tool Function and some Components.","main":"index.js","types":"index.d.ts","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":{"name":"liuyunqi","email":"283373960@qq.com"},"license":"ISC","dependencies":{"xlsx":"^0.16.9"},"_id":"bamboosnaketool@1.10.6","_nodeVersion":"12.9.0","_npmVersion":"6.10.2","dist":{"integrity":"sha512-ZY+kkAjotuvX7yqS+tiVifqk0RWTg33Pv7Ii6w1huMGmSdMRi/IhfB7m5ZfGfBnoBWDLzRPQ9TCkFoE/m8pfIQ==","shasum":"fe7553cada8e9c257f44c7db7b1b6544037914bf","tarball":"https://registry.npmjs.org/bamboosnaketool/-/bamboosnaketool-1.10.6.tgz","fileCount":41,"unpackedSize":123718,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhDQYuCRA9TVsSAnZWagAA6GIP/0bk4YcxlLnrv4tN9VTZ\niRNZHoAkYBxr2a+2HYpSFV8CR8TwoBouog8dTM3KB05I3t+M4tD90MAbvIvC\n3/XubghirxOuM7UUvE3RRbSAcbzuUx9L3hjTRH82DEeouLOrRkA/Bbg5wa/8\nnG3HcIR/GPOkYR2qVNGNVQJpZQ8DSZ2TFGZ8QwpgiHFT328JJwhIZ7rO4Ya8\nANQMoqQxPmMvxDENpAaypDgsL0CuPaO+rRW6lw0oNfyTmERerb6/7hFL56Su\nYafn78KnRkinbBHDjzKtEx/hG3x+0Zrv1hKznfY06rE/Id8LazvtLOTatBLs\nFMwt47BjTnb9EPd855TS9J5VDmvoSqCGYliVOIcAEOKegtwoe/ns8KwZCGap\nLLkHlwduigbgmameb7SDzo4ZykLmpaQ5uXBMCTeGsg4iDRePvSa1DzqxTUKb\nLReoo/kLeKHnjFqRV96FQWSv4z7rLrXEOkNGu3o4TO75019RrhYdd7Z+evRk\n67MS1bBPyZJQsC9F3mX/po+/qKp4g4VclRJL2oh7zforivurfGKTo5yetnWe\naEv+NM3YuznrSQtNpRMtGewSrboImOwYRLZe+muR4oHrjrGMsw/nB6/TdL38\n5fjXK2G4lkk4YXvRHqj5aW6AWD1UkIHwkxospifH+06rbmzH9bjYPL1bLh1n\n98j5\r\n=Cf63\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEuuWeUtOn1pKfMX62En7kvvBT3sUSSSbCqIm36VvxQjAiABZGNbqPp09fY4Z/w5Bv/L8HMTVGVG+/54nni2dt84Ng=="}]},"_npmUser":{"name":"liuyunqi","email":"283373960@qq.com"},"directories":{},"maintainers":[{"name":"liuyunqi","email":"283373960@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bamboosnaketool_1.10.6_1628243502757_0.030585828367576173"},"_hasShrinkwrap":false},"1.10.7":{"name":"bamboosnaketool","version":"1.10.7","description":"is cool tool Function and some Components.","main":"index.js","types":"index.d.ts","scripts":{"build":"tsc"},"author":{"name":"liuyunqi","email":"283373960@qq.com"},"license":"ISC","dependencies":{"xlsx":"^0.16.9"},"_id":"bamboosnaketool@1.10.7","_nodeVersion":"12.9.0","_npmVersion":"6.10.2","dist":{"integrity":"sha512-9fl3j6Qc9fHpeLewANaUnm1y/loopf3BQjbJMStnvc2mvSt5NMmuuCElTQHG194IY+WahlEnsjfvWyOaz2n9uQ==","shasum":"c334d2b593504768c2f5428d7ad67ceabe50c864","tarball":"https://registry.npmjs.org/bamboosnaketool/-/bamboosnaketool-1.10.7.tgz","fileCount":71,"unpackedSize":194356,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhGy4cCRA9TVsSAnZWagAAzZsP/jyzgB5LtrqV+B2SEGOL\nQbUPoFT5a+c6s4fCikYgkV0FG1JEm4XqEvKlcQAg5eX25vPYTHD75l3RFNfc\nOU3YjsgO/iXP712WkARivlSGlptOpn5SpalTi/k7fdq9EIq7nadV5FWQnqac\nQ505QHe8aRU819cCGH/4kaL6BqkhasWF8GR97wQ5H68p6QTY8fNKgj/aYQgC\n+q0g50gtTtU3+C0uznR5cNiMMtwYe47MdA2weq0Tdy8+LaP/MRJ+nJ609a9M\nowUJrMMU3ESYKYsTFOBsimqqZbCoCN2ehw71qrtCYTVpEzCmaZ0dy2vxXKTt\ncmW6K6TaAsYhtA2DtfKbXejbQQie4qg0SPVpGuM3oKnT+XlUyKyx+G+ixxhj\nwryRDkiUg1GWrogbOEwwKI9kbutazIKYg1CtCcxhkp/ckqTtDe1ig1mnc5yH\nMGPl+IHax9N/r7JtgS9xEmaZd7RFrGYdHPxze32oXi39QYY5Ck1RjzVfJwzV\nmveGfLkZixjMbbrNzEYoVBXXtv17mu/ld2UOwXv4t/TqlG14s4ltvCCVCXy9\nyT/xfoOax17iW9C9DeAusUAttcanBVikfPVOs0DR7NLx26Ve4+AhUQ0LqaLE\nSsANrzsojlTVutaEzaHlzS/WIj1hCSqD9vRgPYyDKCGYCfw1k5Lg9AnteZ6r\nY7Ru\r\n=RT9j\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGFFOebeQmxFnaeBmJhfsMy6qhyiY+wqeJoJHiF8e82iAiA8wxYf2vIy/FxCHcSa/l++iED9lEn4Zz+opjH3B+8CrQ=="}]},"_npmUser":{"name":"liuyunqi","email":"283373960@qq.com"},"directories":{},"maintainers":[{"name":"liuyunqi","email":"283373960@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bamboosnaketool_1.10.7_1629171228139_0.037229756869910924"},"_hasShrinkwrap":false},"1.10.8":{"name":"bamboosnaketool","version":"1.10.8","description":"is cool tool Function and some Components.","main":"index.js","types":"index.d.ts","scripts":{"build":"tsc"},"author":{"name":"liuyunqi","email":"283373960@qq.com"},"license":"ISC","dependencies":{"xlsx":"^0.16.9"},"_id":"bamboosnaketool@1.10.8","_nodeVersion":"12.9.0","_npmVersion":"6.10.2","dist":{"integrity":"sha512-Sg3Pq5hv8SHSjaTY9/v1P133uNh2NetBDrM/8WHfXK+hSj5zNA3zpeZWpScNeNpHA5S1wv0mSUDL5Q5CGUSBxg==","shasum":"39108ce8c76fa153e0e116637796e5f3470dd3d1","tarball":"https://registry.npmjs.org/bamboosnaketool/-/bamboosnaketool-1.10.8.tgz","fileCount":72,"unpackedSize":196615,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhJij4CRA9TVsSAnZWagAA2JgP/jvjDBjiVITlmDH7+2ho\nem02nayqpPJAsGUCVqMvrXl1rxwz8TZyAesjMXZLz9sDw6gp4GS9lighpERj\ncTUZ/8dLAv2Z53d/uykHUklNP85TUGdMfnrKUclwWG7cGcuAx8oYDgzQA3KS\n1LCtgqQpjJzOCbFYbxZRP0PzaXbQldHINp02eF3ZJUuAe+uZKBbDnV2vFaI+\nWy2rU+HM6OOHgdbQQHTSw0Ocb2bagmZXcIDdDogDlGQKVA/qqTsIE/xCnp56\n4nUPzcrpw5c5nsWCogebFq4gtT2C/p9B/THkU4pVgY2Icx3K+XDXpTlqSMRn\nlSvKKxG03ZczbKjZkQtc7lF0BsoqoBpyf3di6LFo/YinJhMwnJCLN8TKjnVq\n5dI4MrlezB5Guf7wzZzHjul5U981IPTE7i7/Mlaabe8cx2+kfgLZu1pCHgP2\nrr0DzeoKvEPjYJVrHACkMeClpoW54koFkpoS9BbK7z6ihrMOQEftJMlFj7An\nHF27Q6AoWPl97MXlTbR37OwfGWAhjQhdJL6Ej/LFd2IXdOVYl7gs4Xi+FZd3\n2/u/Fbvnedf7V66WiyoaeWVPdYqppBne9m9RoRWCVfFtWxvMUH9n7FmyqP0z\nRQzwwuKQQryMNJV+tnrdvwoHoV+rSsELsm0lvSY9ZFb72qoGdXwYyZEhEhRj\n51gX\r\n=EXUj\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCC2PNZBg9wrIh62nQvFcPJWcfZ/xmZgkuDdDmhLAm3XwIhAMkP5HnjOluFjqF0Tpgjc7mn90T5dXOJHPYx0Ziaj3eK"}]},"_npmUser":{"name":"liuyunqi","email":"283373960@qq.com"},"directories":{},"maintainers":[{"name":"liuyunqi","email":"283373960@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bamboosnaketool_1.10.8_1629890808478_0.033934008756749234"},"_hasShrinkwrap":false},"1.10.9":{"name":"bamboosnaketool","version":"1.10.9","description":"is cool tool Function and some Components.","main":"index.js","types":"index.d.ts","scripts":{"build":"tsc"},"author":{"name":"liuyunqi","email":"283373960@qq.com"},"license":"ISC","dependencies":{"xlsx":"^0.16.9"},"_id":"bamboosnaketool@1.10.9","_nodeVersion":"12.9.0","_npmVersion":"6.10.2","dist":{"integrity":"sha512-smaNGfMcEj4pxx7QE/xRnLskrs4EFdwu7izpkd6vC9gEivtqRWzPdf2seFasrbyYqQjzHuKOjrNt12F2SuUFWg==","shasum":"f127aa4cf4ad5f2d9eaccb3e028a8caace279e21","tarball":"https://registry.npmjs.org/bamboosnaketool/-/bamboosnaketool-1.10.9.tgz","fileCount":72,"unpackedSize":197254,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDthTXmLOChkrgRomIn9zN+0OfHRLxhboVPcSxYWYds9QIhAMXVOk8h3HMXsqaapYFMF4OZhG32dXMGc7OerWjw9kyV"}]},"_npmUser":{"name":"liuyunqi","email":"283373960@qq.com"},"directories":{},"maintainers":[{"name":"liuyunqi","email":"283373960@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bamboosnaketool_1.10.9_1634019234734_0.8595230731745391"},"_hasShrinkwrap":false},"1.10.10":{"name":"bamboosnaketool","version":"1.10.10","description":"is cool tool Function and some Components.","main":"index.js","types":"index.d.ts","scripts":{"build":"tsc"},"author":{"name":"liuyunqi","email":"283373960@qq.com"},"license":"ISC","dependencies":{"xlsx":"^0.16.9"},"_id":"bamboosnaketool@1.10.10","_nodeVersion":"12.9.0","_npmVersion":"6.10.2","dist":{"integrity":"sha512-o6vcafJ/X/dq14N9Ukm/MG1Hs+s4nDIOAeWN1+lNzw6GisxaV0jI102jSuyae1WnjXunpn26z6LL7GKjKnKywg==","shasum":"b837d06f0a7ac0e4835d643de2e0072c187de3eb","tarball":"https://registry.npmjs.org/bamboosnaketool/-/bamboosnaketool-1.10.10.tgz","fileCount":72,"unpackedSize":199647,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID3RON1HW8ybQlb9O4SgR+zrv0Fz1cU+O88Bw/3Q8qS3AiBHC0zH87ZGfYjLxXHuT1X9VOQKIAkVFZLGkNLOVUwMvg=="}]},"_npmUser":{"name":"liuyunqi","email":"283373960@qq.com"},"directories":{},"maintainers":[{"name":"liuyunqi","email":"283373960@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bamboosnaketool_1.10.10_1634112021739_0.9640674786962844"},"_hasShrinkwrap":false},"1.10.11":{"name":"bamboosnaketool","version":"1.10.11","description":"is cool tool Function and some Components.","main":"index.js","types":"index.d.ts","scripts":{"build":"tsc"},"author":{"name":"liuyunqi","email":"283373960@qq.com"},"license":"ISC","dependencies":{"umi":"^3.2.14","xlsx":"^0.16.9","antd":"^4.5.4","react":"^16.12.0","react-document-title":"^2.0.3","react-dom":"^16.12.0"},"_id":"bamboosnaketool@1.10.11","_nodeVersion":"12.9.0","_npmVersion":"6.10.2","dist":{"integrity":"sha512-SaAD0ytl8oQtjH/wx8i7En5jqxP8jFznQ3FTkCjo9Fm13uTmPesnD9ga/8rEsfzDNVXEkpQaVv3Wj+5p4u6Big==","shasum":"5c184947a9ebdde73087c9bf0d3ac8a3c8ffedcc","tarball":"https://registry.npmjs.org/bamboosnaketool/-/bamboosnaketool-1.10.11.tgz","fileCount":72,"unpackedSize":199876,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIH5s0fa91jf6DA33lNbuQ7/8B+Xg0vhBm8No4QfrTWbrAiEA5Bxy1EkBQvWHZHUf3piLgVIiAtbdQJsxfzM8hxc9yOQ="}]},"_npmUser":{"name":"liuyunqi","email":"283373960@qq.com"},"directories":{},"maintainers":[{"name":"liuyunqi","email":"283373960@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bamboosnaketool_1.10.11_1634894539996_0.9271511906834584"},"_hasShrinkwrap":false},"1.10.12":{"name":"bamboosnaketool","version":"1.10.12","description":"is cool tool Function and some Components.","main":"index.js","types":"index.d.ts","scripts":{"build":"tsc"},"author":{"name":"liuyunqi","email":"283373960@qq.com"},"license":"ISC","dependencies":{"umi":"^3.2.14","xlsx":"^0.16.9","antd":"^4.5.4","react":"^16.12.0","react-document-title":"^2.0.3","react-dom":"^16.12.0"},"_id":"bamboosnaketool@1.10.12","_nodeVersion":"12.9.0","_npmVersion":"6.10.2","dist":{"integrity":"sha512-1gKeVClJO+MFaB1OS1c6tHpK91u8a+2sAt3iJjj7e919wIqAZ8rDrrCsqmVT0otjMYqFJ1cxRoum/SxRCiDN1g==","shasum":"5f784c97e72cab8b3cae73fbf3d01b4c4c56f8b3","tarball":"https://registry.npmjs.org/bamboosnaketool/-/bamboosnaketool-1.10.12.tgz","fileCount":72,"unpackedSize":200428,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCOj/FOkHCmQA3dXWeOsMd/18W6dc7gP5DdfEHlTbD9VwIhALNFMuM4xGthcC+DL6b0+jvjiL3Bh++j6suEm/k52YhL"}]},"_npmUser":{"name":"liuyunqi","email":"283373960@qq.com"},"directories":{},"maintainers":[{"name":"liuyunqi","email":"283373960@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bamboosnaketool_1.10.12_1635324902634_0.842706737952295"},"_hasShrinkwrap":false},"1.10.13":{"name":"bamboosnaketool","version":"1.10.13","description":"is cool tool Function and some Components.","main":"index.js","types":"index.d.ts","scripts":{"build":"tsc"},"author":{"name":"liuyunqi","email":"283373960@qq.com"},"license":"ISC","dependencies":{"umi":"^3.2.14","xlsx":"^0.16.9","antd":"^4.5.4","react":"^16.12.0","react-document-title":"^2.0.3","react-dom":"^16.12.0"},"_id":"bamboosnaketool@1.10.13","_nodeVersion":"12.9.0","_npmVersion":"6.10.2","dist":{"integrity":"sha512-fKPaBW6nXNuir4Juzkm21OoTQW3R4uK7+Gt2Gr2ZClMu7FVxh7KAiuXDREJnIy8sYU9WDscL37QHFfd/bC8KkQ==","shasum":"84312a22e1b2d4aacb4d9c4a38d4d46d6596371b","tarball":"https://registry.npmjs.org/bamboosnaketool/-/bamboosnaketool-1.10.13.tgz","fileCount":72,"unpackedSize":200509,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDSlHKOsxLwf+sdpNtXj1OF4giREjpXs6qDt3gGnCUHHgIhAI/9fbaYqlXYToib2RYBQF2Gssx3DiL48G7uF3DaxgbD"}]},"_npmUser":{"name":"liuyunqi","email":"283373960@qq.com"},"directories":{},"maintainers":[{"name":"liuyunqi","email":"283373960@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bamboosnaketool_1.10.13_1635474442515_0.7473589933388369"},"_hasShrinkwrap":false},"1.10.14":{"name":"bamboosnaketool","version":"1.10.14","description":"is cool tool Function and some Components.","main":"index.js","types":"index.d.ts","scripts":{"build":"tsc"},"author":{"name":"liuyunqi","email":"283373960@qq.com"},"license":"ISC","dependencies":{"umi":"^3.2.14","xlsx":"^0.16.9","antd":"^4.5.4","react":"^16.12.0","react-document-title":"^2.0.3","react-dom":"^16.12.0"},"_id":"bamboosnaketool@1.10.14","_nodeVersion":"12.9.0","_npmVersion":"6.10.2","dist":{"integrity":"sha512-jJihCja9goFcDDHVJ8exUDNkQpy3spRxuCJrzxbnmlSqEGNdjZguGm6kDzi4Db561sTwDZvHoDcGQhnXx+IJmg==","shasum":"999be0203334c8f1a8b152b2f0f24205664d93b6","tarball":"https://registry.npmjs.org/bamboosnaketool/-/bamboosnaketool-1.10.14.tgz","fileCount":72,"unpackedSize":200525,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCA2gM9bwHQdcVWUw8jiW4xkAxyxb90Xu/eH8lLxO3hVwIgDP9+ZOHRYKRSEJyii73CFGWZaUtktS3IeCVMMwLY2kw="}]},"_npmUser":{"name":"liuyunqi","email":"283373960@qq.com"},"directories":{},"maintainers":[{"name":"liuyunqi","email":"283373960@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bamboosnaketool_1.10.14_1635475698771_0.3462951860154302"},"_hasShrinkwrap":false},"1.10.15":{"name":"bamboosnaketool","version":"1.10.15","description":"is cool tool Function and some Components.","main":"index.js","types":"index.d.ts","scripts":{"build":"tsc"},"author":{"name":"liuyunqi","email":"283373960@qq.com"},"license":"ISC","dependencies":{"umi":"^3.2.14","xlsx":"^0.16.9","antd":"^4.5.4","react":"^16.12.0","react-document-title":"^2.0.3","react-dom":"^16.12.0"},"_id":"bamboosnaketool@1.10.15","_nodeVersion":"12.9.0","_npmVersion":"6.10.2","dist":{"integrity":"sha512-NS7e6q+tar3jF2MDcBVmp0hayX+jRKJYwXseYuUAxJPRU5t1fcVV8d5lsaf2KxhRkd9Vvap+DhqkrnckREpTzA==","shasum":"5eb8298b8bfa76a25cb7fc0e84d5d92eb6d826a9","tarball":"https://registry.npmjs.org/bamboosnaketool/-/bamboosnaketool-1.10.15.tgz","fileCount":72,"unpackedSize":200406,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIB9I7Q2Vm/6vQJHmf7veesbpc5Xl9CyWeib4ELj7f4HKAiEAiCgKUz0iSRCzE8MKWOfQEcJ07WUxZyGevbJQbqzLfXI="}]},"_npmUser":{"name":"liuyunqi","email":"283373960@qq.com"},"directories":{},"maintainers":[{"name":"liuyunqi","email":"283373960@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bamboosnaketool_1.10.15_1637054660914_0.36702613692767416"},"_hasShrinkwrap":false},"1.10.16":{"name":"bamboosnaketool","version":"1.10.16","description":"is cool tool Function and some Components.","main":"index.js","types":"index.d.ts","scripts":{"build":"tsc"},"author":{"name":"liuyunqi","email":"283373960@qq.com"},"license":"ISC","dependencies":{"umi":"^3.2.14","xlsx":"^0.16.9","antd":"4.5.4","react":"^16.12.0","react-document-title":"^2.0.3","react-dom":"^16.12.0"},"_id":"bamboosnaketool@1.10.16","_nodeVersion":"12.9.0","_npmVersion":"6.10.2","dist":{"integrity":"sha512-NMlVBTOAWxyW5AgEV9sUFo4UNWiy23HQhPHNgzWTWZdKHq0MyILgYEdCm70yCZhUgzvUPHg6nfie2cUGuBtFUQ==","shasum":"09e1622cb0228d72a43e8c6cf30353c26f082558","tarball":"https://registry.npmjs.org/bamboosnaketool/-/bamboosnaketool-1.10.16.tgz","fileCount":72,"unpackedSize":200502,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhlf3ICRA9TVsSAnZWagAAd3kQAJ7sEOntNvK7iEE0w4DE\nAZuPlyQqgc+E3oPcQbE68oo5j0I7kt1CF2hS3/hd+nDqD2xUPQz/0n+3DQpk\nSGN/CSj2Ap9WXubhAZ5UD2KD+oDwagldXjYFMObm2Pb2aRcQvYjPnk7wo8GG\n5sk+NoGcZz5ixE5ZklD21CW6Pubj53KDneJGtlHRaeGKNbnsT+SJSdxW1qev\nMywiBABYkdlj9ExLBo+WjpxaIbJT6G9+gf+ztceX23KjuArWx/BxHMzxk2qh\n5C9C3VmM/99PwNzu+3FIJhYmz4x7U+rMkfcJYQVkVYM06nUjSk1NDyYUdkKf\nTFsLerkcOmKa8OlfBYW92dBfehBsILi7k8syTa+6u88vRXmff4XEy8KqTv8e\ne6cNvKdDlIrg2IzokJ5XiSWVyrLuH4bVpAdFSbvqOYmTQYxpm+3FLTwMRcwN\nhxqE/k2G2C4Td0sMi0VTmBQs706PLOl4Zarljd/90jrPI3UzS5lHG4rHPZJc\nW7zo4LL+oRkcntod+WzNqF3sVeGj0eHYLhzCTlYs1TO+9IwXD/G4LyET6+fH\nAU9gcaDdi2rnhwxlgLpIEq5zrnkyiyl6Q3tS6hmG78fq6IoF1DDM8kTDU4tM\nc4ZK2qRMYFuofTijLgA85PHhCnMMrCDclJceZzKiVYi5yi6OrgIv7+0J5WwF\n2edt\r\n=hRek\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCxNB1FQquqqvtBlt026o6K7cbU3HKujt6cTdwqwlLFmgIgMs/u5po21CYPdnMDDLJsDyNv2DT8MjdtOxdLTSrNC4Q="}]},"_npmUser":{"name":"liuyunqi","email":"283373960@qq.com"},"directories":{},"maintainers":[{"name":"liuyunqi","email":"283373960@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bamboosnaketool_1.10.16_1637219784147_0.4235750512004026"},"_hasShrinkwrap":false},"1.10.17":{"name":"bamboosnaketool","version":"1.10.17","description":"is cool tool Function and some Components.","main":"index.js","types":"index.d.ts","scripts":{"build":"tsc"},"author":{"name":"liuyunqi","email":"283373960@qq.com"},"license":"ISC","dependencies":{"umi":"^3.2.14","xlsx":"^0.16.9","antd":"4.5.4","react":"^16.12.0","react-document-title":"^2.0.3","react-dom":"^16.12.0"},"_id":"bamboosnaketool@1.10.17","_nodeVersion":"12.9.0","_npmVersion":"6.10.2","dist":{"integrity":"sha512-HXvyOCoG2ByGjslGxC9cYREASKZQuS0iRW2QBpkmLQ1IR0FAKhQqPUg482iv3uUr+B4kElGpXekq0oe7xbIz5w==","shasum":"0f449b3d10d028a8eb127d20d11e1a9f1c727f55","tarball":"https://registry.npmjs.org/bamboosnaketool/-/bamboosnaketool-1.10.17.tgz","fileCount":78,"unpackedSize":201492,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhmvanCRA9TVsSAnZWagAAlsoQAI1J7sYyTYP1/sZmdPkd\nkdjTHOwWwOA+uQq+k8+yLI+T8POiFH8XNN1jhTGHgGHlxTkauImU9Bf2mK55\nT+3DRA1PqAfnhGcqhrLbMsI/kob6YuvsWWvJrTz2bElztKdpxCBRt9k+JYjk\nQUkOEI+NmrzVl4q7GQNomqiJPtv0XF8hv95a8q6HtaIiHaspru24gP9uBHrC\nEINcEnqR7AWVcc7D1RD3xOpto4yPF+eiEyznpYa1oUH2tJTmAgPpwE4i6vEo\nHD5ZVVkcO6gFT0SKZMfUPZwX1pkDgtOnykAQo3Q94yw5pj4hp9z4CPNHylOK\nkWgB9vqYSX/SS2nn8M2l/19EKmf3yZhb0so/cYLpVh4koDkjZ4PueEte88oT\nr1laWQKk/Oq1QfA7mp3uabtuyUK43K23vS9Torr0vXEYHB3loJwmwx3tJE1M\n0mhYWUEaPn4usCzfXwbWwdVGc116i/TifrgxA2yzjaAy6buEPnHqHJx94NpB\nD09AF96tRdSi5GbAS36t2meuyaPVdD17n6ld/RWJK5RP23djsr2Y2vISh8mj\nkGoYZMxAJFZCq5N232I3MJ9pB2bDnvSmww07xR6k43T3htlJexX7Y8zfV67P\nue0NbVJbG2zxhuKx0zBRZRr7jkEYUpnst8SEO9Sa4UNp0orrIxTcJjpbj3uQ\nh6yb\r\n=fyR1\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDBdJ5ao6QO2Sa7XX0zD5m/UoyQQ7sCnEI0aH94ydrUhAIgcK6soXvnoHd2rJyach/a+hFrGOKkosMnL3fll1AFxgA="}]},"_npmUser":{"name":"liuyunqi","email":"283373960@qq.com"},"directories":{},"maintainers":[{"name":"liuyunqi","email":"283373960@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bamboosnaketool_1.10.17_1637545638835_0.9170055705659936"},"_hasShrinkwrap":false},"1.10.18":{"name":"bamboosnaketool","version":"1.10.18","description":"is cool tool Function and some Components.","main":"index.js","types":"index.d.ts","scripts":{"build":"tsc"},"author":{"name":"liuyunqi","email":"283373960@qq.com"},"license":"ISC","dependencies":{"umi":"^3.2.14","xlsx":"^0.16.9","antd":"4.5.4","react":"^16.12.0","react-document-title":"^2.0.3","react-dom":"^16.12.0"},"_id":"bamboosnaketool@1.10.18","_nodeVersion":"12.9.0","_npmVersion":"6.10.2","dist":{"integrity":"sha512-pACI4dIor9Y8Egf6ZCB53XNAsxkgsCF6V8v/GdfULJ2Ye+Zto9PnQHUoIIZVvAgv2RHjaRIvByLojsp4/yQ7qw==","shasum":"e791ef921b45d0a4a8413da1f74081d095a2a421","tarball":"https://registry.npmjs.org/bamboosnaketool/-/bamboosnaketool-1.10.18.tgz","fileCount":80,"unpackedSize":204053,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhmyiKCRA9TVsSAnZWagAAUxAP/R1ipclyEHer2OpHPzZk\nDBomllX7MxoeqRAQCf2J2SrU0g5nHlCI7Ag1hlP5/J6KxZvCidTmaCkeweZC\n8Cr5a+cp06ZcK860cYByN40KVsYG64DErRLUq8qRqlNVD40zfGrbNRKZlDHw\n1CESoX3+MWti2fZvBHAiSwoaOLW2ozkzvvBfVJw5gzqQG7WP92E8o6B0YuOG\nMJFruewAlBRnogH+IRCc/LAQmPQiEvbfu1u8mzqq7fo4ua8ORIXntxLbzCaG\nJNyB6MTPdjzHmQJg/0dkeIWzIH/SEXyzTwGEAATesp2uXddFhhZaCi/txzcV\nMqyDQA7dRI4kD3pbl6McWnUv/MXUTR+4OapFQhQzHjEDY0y5+AZT6R4s/wtP\nf2k8SXYMXSzb8J7dDEFWuWhNLXVp1524LLm7YVSJ2VlNCISmNEq1LSnqZG8W\nlwZJB0sOsKs5b+Ti/J7ZlAUsxcqEHAIE9K8I2+Rg2++WDvdkjGpCwR4qA7/h\nmZDI31NEQ+pe2auK/hCfJOSy7d656RCkddDAEpE4IIU6b3BMOGaccxxgvy6b\n6mw2GDvRweRm6FjrZYTlcThur5ZknmzRYtK4KbNFcuD9+wh4c0bxlTi4LmFK\nQ23UOhByc9MrIk23kWI+v+CeomeYf61AzPeOgfTTVjKazhWW/cycOy3dkF4m\nrCPt\r\n=pte4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDLxllzwiyxVIVJziUckNd4FGAuk+Bc6GPxf9mvm3ijPQIgJufL2Wr84gPZmLGhLMXCnnNvjbDxHlV6+VCZTYVc65s="}]},"_npmUser":{"name":"liuyunqi","email":"283373960@qq.com"},"directories":{},"maintainers":[{"name":"liuyunqi","email":"283373960@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bamboosnaketool_1.10.18_1637558410771_0.3509049744113608"},"_hasShrinkwrap":false},"1.10.19":{"name":"bamboosnaketool","version":"1.10.19","description":"is cool tool Function and some Components.","main":"index.js","types":"index.d.ts","scripts":{"build":"tsc"},"author":{"name":"liuyunqi","email":"283373960@qq.com"},"license":"ISC","dependencies":{"umi":"^3.2.14","xlsx":"^0.16.9","antd":"4.5.4","react":"^16.12.0","react-document-title":"^2.0.3","react-dom":"^16.12.0"},"_id":"bamboosnaketool@1.10.19","_nodeVersion":"12.9.0","_npmVersion":"6.10.2","dist":{"integrity":"sha512-metoi55xPVmwUESwbTY/vjvfLTNAEBCpdCSpGSvX4PUsSntq6HqFOfvs2GZtbIIRY44EsaBkO4pCr2JHajtubw==","shasum":"7799edc58dbca2787364feffea69c50a04d0a9e2","tarball":"https://registry.npmjs.org/bamboosnaketool/-/bamboosnaketool-1.10.19.tgz","fileCount":80,"unpackedSize":204064,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhmy1aCRA9TVsSAnZWagAA2H4P/iQF7ZBCp7jHLCBNdSn2\nNOCluqa/5C7dSKsSaNc3weyHEXv9lbRPxgbDskRj1rhWGRnoqrx9VsB6e6zN\nrM/dQOxEoRuFfXjoIcy4+ItcIAXGJ9BZuKV/RJJxCEUcQ9s+DGVFv1LrvEU7\nAabaEvIRKV0vbilS6vOpn6qN2/wJC4nqAHyyAW8Q0Hkm3F4/FpCqAe5chQAP\ni0u9OjBKm4Yw66g9VWanXtNPVsnmlgkIHgWrM0otXPHk0qajbNOhWmFrEOkB\nWW4muVFw7h2q5fibfcapTgbmPtOzTdEVx5ncS6F42q2qzuCkkkl2tap1ke9U\nxg7XZz5HfCt1yY2ul6lC/l8EA5dHI4YJ488xS6FHY3V9oTUvAgBq06dmDMtg\n+fKLrVvWQemnzf5mqk9yapXxibLMBPUJs9fE8qSjZxdOmMtHwtw6t0ArCd5r\nAulrx07z7yX6Z4J6d9+PZ9eg5cp9SNpyTBlIIxjqQybBMC6pQtFprSc4E5/x\ns/8/pWvXHeqi5MaD697Q0dBMfJ815wf5ggqoRSqgg5l/F7yCzEyVnqG+QGND\nTtVYj4MIR8hfLGhhsV6pDPDfsbtletDGyFo+sP4VCKn3j79ZjBvp/H7oKRvT\nQuLv1UdMDOwRYrL7B3/5Z46wUNS1VVf65g+JHx94Fe0NqRFugDi5z0XoAoNd\nWAWS\r\n=091T\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDecnGcwMb20PzsFoWzun6yxjxcMcVOcGnXHUo1Sk/JCgIgaezkc44in1gfA8sRvf6OEGtsKuHnMy1jN0uZPDyJkZ4="}]},"_npmUser":{"name":"liuyunqi","email":"283373960@qq.com"},"directories":{},"maintainers":[{"name":"liuyunqi","email":"283373960@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bamboosnaketool_1.10.19_1637559642483_0.4349391800042448"},"_hasShrinkwrap":false},"1.10.20":{"name":"bamboosnaketool","version":"1.10.20","description":"is cool tool Function and some Components.","main":"index.js","types":"index.d.ts","scripts":{"build":"tsc"},"author":{"name":"liuyunqi","email":"283373960@qq.com"},"license":"ISC","dependencies":{"umi":"^3.2.14","xlsx":"^0.16.9","antd":"4.5.4","react":"^16.12.0","react-document-title":"^2.0.3","react-dom":"^16.12.0","echarts":"^5.1.1"},"_id":"bamboosnaketool@1.10.20","_nodeVersion":"12.9.0","_npmVersion":"6.10.2","dist":{"integrity":"sha512-6nq4/OnAIS1mg1Ld/THUzj/Z6WR3jOAm/KktdJ8vxGi+rocowHlT3TpUU279eAUbqbSAt+c9xNrt/e8wTunvtg==","shasum":"c41579e0a868988895fac418c0c8fc29f35bafac","tarball":"https://registry.npmjs.org/bamboosnaketool/-/bamboosnaketool-1.10.20.tgz","fileCount":80,"unpackedSize":204072,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhm0eKCRA9TVsSAnZWagAAsjEP/iKaaviQ0RkYd3Vx5g25\nb+AaVT0vj40dP5PHRccGU8uZUhn3Zs0sVP/4NoNRw46F9RLNxA3ZsW8DPRrl\n2f1MGtUOMmBjh9XYRyM16aUYvDmAE+0pO0dBYmznkHCXbflCMUX34W6bgIyL\nUl3mAVE4zA5hh9RTy+FiNBDmHz6LK4h06djAYfEUAuiim95zrnBFyG7GDanC\nw6K8V3eHwawwTgB3vE88C43s8rc3gZ4sMdKZO0cpZD8vdTiVS+8/1UBNnSY5\ns214ei24GXcUp78TZd7eSA6nRaritnB+jrFXgN7CrMB7Pilv054S7B/gXh8h\nw2B9dk3qHvnHRLfFb6Yn8tV8XypQa+27sk9x56rffzO5gIruyqaprkDB76eX\nIww+NVvcZtHi3ZoWbDV+OjicSOeIaYZKcw8/1o+X3I17n7grEtEL+58lt/dz\nIuna1377QAdFbORKf3YU7Bi4Xl9l7X1xptnmTQ2n5QylrrDu69Mh5OwEpnrm\n3d4Qa0k3MwfMTDuyOOvhbY5mFo2b2yDzkACJVD+o2ARd/NbqA+dOgpahTqiL\n2Nxx8ZhKHhpkxfQisfVRQGP+iq/UkKWxubZy479LgnU4EdZ6MUlaqMIyqN2l\naJdhXA5b0UqgLP6tEpoct50yLq61dMHDc0SJSehUHie7IET8/h9Kf24IZFNc\nDqhp\r\n=wBE3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCjl50VZ09bCh8t9G3OMgIsRTFM6gC7cXfNGQp7UIfeHgIhAMHFvFGjbrE3USu4+/PZJ3S6DtV1IOQppnyKRBfB4RFo"}]},"_npmUser":{"name":"liuyunqi","email":"283373960@qq.com"},"directories":{},"maintainers":[{"name":"liuyunqi","email":"283373960@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bamboosnaketool_1.10.20_1637566345830_0.5654120833785785"},"_hasShrinkwrap":false},"1.10.21":{"name":"bamboosnaketool","version":"1.10.21","description":"Cool tool features and some components.","main":"index.js","types":"index.d.ts","scripts":{"build":"tsc"},"author":{"name":"liuyunqi","email":"283373960@qq.com"},"license":"ISC","dependencies":{"umi":"^3.2.14","xlsx":"^0.16.9","antd":"4.5.4","react":"^16.12.0","react-document-title":"^2.0.3","react-dom":"^16.12.0","echarts":"^5.1.1"},"_id":"bamboosnaketool@1.10.21","_nodeVersion":"12.9.0","_npmVersion":"6.10.2","dist":{"integrity":"sha512-nYUov8GMrvnt4O9c9C+qvyCummIAATx6YS5BRgCrxPr24kybRDs1Ju4HdxYA2rlp+JdpffUXubj6zJTXInsFXA==","shasum":"ca3a2ce3e3aade9f55d796c4c62f46edf3677430","tarball":"https://registry.npmjs.org/bamboosnaketool/-/bamboosnaketool-1.10.21.tgz","fileCount":83,"unpackedSize":232224,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhm2GmCRA9TVsSAnZWagAArgAQAJHn70fePy25/gdkI9TR\niPKreQ0/GJeIS7cSCPJb5UIehND7Pv6HXtqU7Gg7vLActvu9GI+1YSJohXMX\nn4PYTwqxEjy9si8cD7Eu1iDfxeLKmiejLafyOcisSqtiWLbXOHUqEpS7ffxj\nRrW6hs0wEvL9u+gaj9seXeHZVTjz5NfGlHnEHaIbv3ijocp7mY+mgrQ48Ijv\nG63+Seqdd+S5b26I6hjH3uVHTGw7PxaszYgFLfrf0DVZvuk9sU8bsCoXfnfR\nSJJEkrujbGxHB0dywJNNXpQ6HmkQt5LplNHjllUl3hgVkGNr9O4CObtv9PNI\nmHCY0TT0HhYHMt62zinmXXN39mqYi9kGzLD8fX64jo80H6XE+qxNFKzBzc8I\nszEiotChMMTUTQR23DGPqw1X0PVMDHBuvvRgjXJJKd2J9LE9jJjRVV9rSbkY\n4W7boTpHIiVXsqdQRSH609mM4LqM5nyx46qqg5HvZNE9sfrzlBkmimBN96br\nohCaskX43F6DfQiiFj/ZDEVFn7ocYkjGWSQR9HIvHTY2Ek6LwDhApGIZ5M8h\noD/H550rtEKHjRoGW6Ndbxsv+Zl12jMCUNgNRIYYQ6gylrXruyUVVwk1oShe\nJIlbpPa5EAdNWMlTSuFZVTSANwqLu+kvrBq/nSnhWzwDESsA5m54WFoDSzSp\ntEKA\r\n=M4NG\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBXSt2UIv8je5oRzAMVWuD1sUkYvUCyqIUlwySK87GfVAiBb0xHPCCHjFr/03JGGPRv7z4h0OQqwWfk6mRxaIqmluA=="}]},"_npmUser":{"name":"liuyunqi","email":"283373960@qq.com"},"directories":{},"maintainers":[{"name":"liuyunqi","email":"283373960@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bamboosnaketool_1.10.21_1637573030099_0.20862223793346035"},"_hasShrinkwrap":false},"1.10.22":{"name":"bamboosnaketool","version":"1.10.22","description":"Cool tool features and some components.","main":"index.js","types":"index.d.ts","scripts":{"build":"tsc"},"author":{"name":"liuyunqi","email":"283373960@qq.com"},"license":"ISC","dependencies":{"umi":"^3.2.14","xlsx":"^0.16.9","antd":"4.5.4","react":"^16.12.0","react-document-title":"^2.0.3","react-dom":"^16.12.0","echarts":"^5.1.1"},"_id":"bamboosnaketool@1.10.22","_nodeVersion":"12.9.0","_npmVersion":"6.10.2","dist":{"integrity":"sha512-Fwpr0Rg6vPxZQUVLJMziXqxp2cgKUmx8q8Not0UkJV53hJxDDmTZJv9dK1s/b36+SRhvzuTVFPI6sZmjt/5iyw==","shasum":"0129fe49893f03798e947de8b5ef94d59b78adbd","tarball":"https://registry.npmjs.org/bamboosnaketool/-/bamboosnaketool-1.10.22.tgz","fileCount":83,"unpackedSize":245117,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhnergCRA9TVsSAnZWagAAVhcP/RFdnje4w8j2u8I9ckcT\n6vaGRIdxqGXJZ3CKy89zQ/xeFWddEfzXOkJFTLhMhtFsqfT2DhGTvTQI5jHj\n54P4RQyVwS1JpMqw/E8y91HBRS6/65K+ImqbgOu3w+x3ejfuZT4q+5Y7MIli\nXoZAz60uNzid0pQRh2IsElROnjDvnhUvtoaYjZ9acRJrsP4URVBVFBpT5mFP\ntTrl5+2rsV+552GiOPSQsJUwJZ4Xe/Qd8zeKA9A090ktvIOUHndl4Dc5QqfE\nrUGxSdQyyTI1i/sEjpXqr+vcB6wcCiflWCCGWS243gVhBruyejIYcAUzOOPs\ny67hei3pWZfMXZUw48rRN405xAceIq9bu03Zak5SOZWO3NFSZTcV2VD4XL1p\nZlO65hPQ+TWzI3/3I6FMYUWY9ABM+01P8doKMwAZMyuw4s0vN+PEERtktCVV\ngIijSSrpKsA8fkLaaD+qyN1Hp/Q0CfuuDk34o9s9OvdcRrYqBo+BznqguMeI\nFzwcY7D6YK6dTqyxS2dFOAGEmdmWDWUGJ58CZxzIbIoV1An1MQUkqjN7XUWe\nmLpu8dVWhOzdpQqA658aBrggVmo7GVjuygpRFr/R74XfnpJ4lyO/+ZzlTrwY\nAEo4O6WJ9TV798Sa+ZV01W9vaa3n86N8aBZ61m/xfGftEciExjqcLQ0GQISt\n+HQE\r\n=Rmlx\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC5eKDmyo1l6FiJLPrPvEXixDk6FMS5E6ahO3Mak8KV1AIgauf2QF6vL2GLzAFlUJEPvdfOGqMXpSKqBD1pzja4DkI="}]},"_npmUser":{"name":"liuyunqi","email":"283373960@qq.com"},"directories":{},"maintainers":[{"name":"liuyunqi","email":"283373960@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bamboosnaketool_1.10.22_1637739232289_0.4286724771976482"},"_hasShrinkwrap":false},"1.10.23":{"name":"bamboosnaketool","version":"1.10.23","description":"Cool tool features and some components.","main":"index.js","types":"index.d.ts","scripts":{"build":"tsc"},"author":{"name":"liuyunqi","email":"283373960@qq.com"},"license":"ISC","dependencies":{"umi":"^3.2.14","xlsx":"^0.16.9","antd":"4.5.4","react":"^16.12.0","react-document-title":"^2.0.3","react-dom":"^16.12.0","echarts":"^5.1.1"},"_id":"bamboosnaketool@1.10.23","_nodeVersion":"12.9.0","_npmVersion":"6.10.2","dist":{"integrity":"sha512-8rUsXajNZulMCK4wwpZS2Y1ffCKnisrtVK59xHOdIH50C17c9uMBf2ajknl+99RTmUdy8DCbsxPWyCsHvx6/NQ==","shasum":"6940ca8e3a23a60c0391997e00522bd000f5f191","tarball":"https://registry.npmjs.org/bamboosnaketool/-/bamboosnaketool-1.10.23.tgz","fileCount":84,"unpackedSize":245165,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhngPRCRA9TVsSAnZWagAAxZAQAJGoi02jIans+eIT8s00\nVDrooIDl5OlJ1MCKLOSnibhMSLuab8F5XayRY1IOXmGVSVUmL6dJG5QoR3Ce\naAjQHszDxu50xD7wKiL2+/29VZENr4Y/BNTHtR8Zaq1HR6MSvoRy/ZDb8t68\niNokkeeNfnimIAAiCkSjJHCoDIgzVjm4x53+BGDqoag9uYbQ5QASMwy4oHFW\npoH+f1zNBzXTSOSaSuYZhxKyLxxpadQZJD6CDPQv1Aj+LpvxN1Ya3aKXh6JA\n0R36/UV4FFxk2ZGPcENYBD8Kad/oq7L0ZXjcqzaoeSwPvOfLy/V1D4n9w0vH\nt+n07PGGowtDuMiokIzZcPeMcSw+o5eyjr0cLnjBYI9DPo4U8cpM/J1g79h9\nNfaqvP4wIsidkW0v6W+7Tf3zZfvUXlkoXY7BdvT+SH6tmTm0bBk/MOzqLiKA\nVWMWMUt6htiXXhSNMlH5Shl0+SbSUddktPYJUhqV0X/z7cIJX6jZEuKJaYDQ\nR7W8zTP2tOr42oLOHTys4r+o6eOwKQyuKGj8wHUOG3HPLE4s0BlyyqZJBj3g\nbVboCbz8zHkmX3Yc/z8RwJPScVY8DE3kTsC22AdzO9NY4dekaFW410DNkW5y\nzyHVsTNIw02AwxevIfvzxow19vFhfe91k9z6SdoY7TyLDK1d0SS8zjvaGra9\nMJv0\r\n=VtdD\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC9hoQAJXA8wgQvhHDIBP1vNig2Mk/qQOpSdAlmsXEPDwIgRQHGsFbgwhC+BK1H777ZhwlDmyspJDOIYskpezEjr74="}]},"_npmUser":{"name":"liuyunqi","email":"283373960@qq.com"},"directories":{},"maintainers":[{"name":"liuyunqi","email":"283373960@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bamboosnaketool_1.10.23_1637745617217_0.8161387835714848"},"_hasShrinkwrap":false},"1.10.24":{"name":"bamboosnaketool","version":"1.10.24","description":"Cool tool features and some components.","main":"index.js","types":"index.d.ts","scripts":{"build":"tsc"},"author":{"name":"liuyunqi","email":"283373960@qq.com"},"license":"ISC","dependencies":{"umi":"^3.2.14","xlsx":"^0.16.9","antd":"4.5.4","react":"^16.12.0","react-document-title":"^2.0.3","react-dom":"^16.12.0","echarts":"^5.1.1"},"_id":"bamboosnaketool@1.10.24","_nodeVersion":"12.9.0","_npmVersion":"6.10.2","dist":{"integrity":"sha512-ar1stfRu5Jbey3PPMBCPFSOuLp/af7qrLHKFBWCVOynFVpI6rctAqcZ8AIKOrxs2bozYEm1SypWt2W0Lwb0m+A==","shasum":"b3d127dead8d119d2ab4d480e2d8028ae4862f44","tarball":"https://registry.npmjs.org/bamboosnaketool/-/bamboosnaketool-1.10.24.tgz","fileCount":87,"unpackedSize":261591,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhn1AhCRA9TVsSAnZWagAA/hgQAI5NsYTs01UgyGVc6OLf\nwmEf9Z4rz0RA/RTwt8HA9YbC0+H+IP5n/iK1zy9Lm2/7FBzrmwVQcWzCOV9S\np0bLVCwFONJ+2GL+KMWjGlg2V3oLvfaPkTeLbF66ROWzfvdS8rpapMYyBGRQ\n1RNCiF7G1zEQtMtPZOTv3FlEul8N/MxbPlRsIGm2zORjvrR7m2icrXPdak2H\nP5aUthpoWeFPA4N8CqDrg+MfNgNsL1SntygMG2fvjjsLmt0FriuA6btgz0Tp\nqt7ywK3eOCND0mN+rAKNcj2mnvm5kGQ16y4tG+sPQwlV/CMwgngn8K3RNFFh\nBAMnUqZm3EFzJyr+gVLxLFROd3a827tRlfUmwx0j0H7mFIMtptiPamQIetsK\no5xPOHw81EDtMqUemhrvyueBOwcdQze2gsmt1lsig9C2qq3oU7WcjFVFQzDS\n/wZu97pW2hm3k462LJQRebFDKQQuQlLt2hJU1nA2OPHn5XOkaJf69Ydm+nSU\nE/7gqNBqGRIa2cmBJFkAzPb569VJ/TVgcYcIHp/B65btqvJqw0UhRjDRk332\ns8OE6L6Nt278NskxnV+pQdUBackfUDNnVmoiwHYVjB6F8Qst8E02oBBjI/Ug\nG7xxkOERiX7KIFrYVZumIFM7pqZ1xKvWnnE/EdtFJywibN/N4ceh0V8oLr0L\n6bsK\r\n=SjIX\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBYGmiSDq8IUAyitjl500ClJcrCYGMk0Pbg+AhNbJZ5iAiEA4AJgaHw4IZAsRS3st/Sdk2K2XTvDEh/7SN4Fqe8MZSk="}]},"_npmUser":{"name":"liuyunqi","email":"283373960@qq.com"},"directories":{},"maintainers":[{"name":"liuyunqi","email":"283373960@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bamboosnaketool_1.10.24_1637830688845_0.38593755954252806"},"_hasShrinkwrap":false},"1.10.25":{"name":"bamboosnaketool","version":"1.10.25","description":"Cool tool features and some components.","main":"index.js","types":"index.d.ts","scripts":{"build":"tsc"},"author":{"name":"liuyunqi","email":"283373960@qq.com"},"license":"ISC","dependencies":{"umi":"^3.2.14","xlsx":"^0.16.9","antd":"4.15.6","react":"^16.12.0","react-document-title":"^2.0.3","react-dom":"^16.12.0","echarts":"^5.1.1"},"_id":"bamboosnaketool@1.10.25","_nodeVersion":"12.9.0","_npmVersion":"6.10.2","dist":{"integrity":"sha512-4FaMO/GBdpOGUFBzMODN6Q/NcPEfNfa1iI4a36miDtd9LzBtgJYyWCiLDRFqyzuFLzex8xnqL4rSP5ZkVBZ6NA==","shasum":"07d87c749c08821595d53a7a0e5b3aa9b4286226","tarball":"https://registry.npmjs.org/bamboosnaketool/-/bamboosnaketool-1.10.25.tgz","fileCount":95,"unpackedSize":305562,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhpKPNCRA9TVsSAnZWagAA1soP/3d5gF9kQPwxGKjF2XC1\n98mcTiCdYmVKUbak83bNq2Y7R4PBv87lQHkj0k0sfVWw79JK0FQL2IWZw4a4\nJ23EoWkq6+LIzj6n9MTUW3vm8FYHk8lE46lidxSZCw0nwr762HK1eBSdOrNb\nCPJ+oyBQh9JoHb3Krvs2877sP7ZxrL6Ph17zMnL8GXcyV7Jf25yAyEQEoFzu\nDgjiwjh9MZnusKj6uzQ2lh4qMVAZzwicEBRo0tH6WYn2oUQdTPm7AZTpOBD0\nokOpCyFFs5XiD+OjDoY4bhuWeH8ZtM/AdWI90h/FGaHm6gKOcU2i69y5uyU4\nhCUGusu4fEmZfmzOdBcHpQiDEy7TrOzUxSq8QoccLR8+zcCPdZUgReMF+AFl\nG4YqtL4nU/DulldBVJ7cAl8wGLWurUu1xHGBNawx/DchSR5UDGAbebhCykJB\nS2x5VljBJKVBjd9gXVx76rLJI0Ev1/hueBpv5rG4hdmPKgpBLc9BqlRCFxJ/\nUD3p3w4jIFEIM/cBmkAMiE+R58jBpyocP59l8PeLEBgpY3VAIb3yww/ovcY8\niuG7aYj0WDplzbNekX3D56P2VYKbYNsVkFqDQkXmjIr4ixyAvQ2kV6ZT0C0O\nCJazpFdfkBxf740bGRi4vlAsMGc/8WMqurb8M9y3dGo7g1Jzcxo7lXXvjai/\n+olh\r\n=jUBF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDcRP2HYHg+cVY/+ed4q3BMfLzjQ+8hoJ1etfrC4wofCQIgffH0shjok7hSpI7DTFsRwk1nuHWrGZCN3kNWjEWwCDU="}]},"_npmUser":{"name":"liuyunqi","email":"283373960@qq.com"},"directories":{},"maintainers":[{"name":"liuyunqi","email":"283373960@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bamboosnaketool_1.10.25_1638179789027_0.7884021472853266"},"_hasShrinkwrap":false},"1.10.26":{"name":"bamboosnaketool","version":"1.10.26","description":"Cool tool features and some components.","main":"index.js","types":"index.d.ts","scripts":{"build":"tsc"},"author":{"name":"liuyunqi","email":"283373960@qq.com"},"license":"ISC","dependencies":{"umi":"^3.2.14","xlsx":"^0.16.9","antd":"4.15.6","react":"^16.12.0","react-document-title":"^2.0.3","react-dom":"^16.12.0","echarts":"^5.1.1"},"_id":"bamboosnaketool@1.10.26","_nodeVersion":"12.9.0","_npmVersion":"6.10.2","dist":{"integrity":"sha512-u0tnIyDeyzQlUGYF+rf8hnda8WnZOYaq10F9oISuobbgXbNhKKeaPmlSqxvFq+phkjipeBsi24naXe4ATVOVWQ==","shasum":"9d74ccfc15a5eb9165a2cc1a962e626213bafd59","tarball":"https://registry.npmjs.org/bamboosnaketool/-/bamboosnaketool-1.10.26.tgz","fileCount":95,"unpackedSize":305769,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhpsW5CRA9TVsSAnZWagAAoJgP/0vAicySyRi/A4dQtTUF\n8kDA9ikzU57z7SQa3imImRLSXTRTw2RmuVcrBHNBIK814LWGh40gcwVbxucQ\n938fWI07PTGZ4AYue49qzxHvEleZYya8gPdAR2wBcW36NKlIGLUQl0yazmCe\n81/4FlrA+O0HMU9qCltCYnG41uQGXLsuttHX4yag3Tdv4okQXPMQYjyUUQCQ\nSMULJfbDlSICIy9FoQhR6FirDlUAhckiL5hJRqIyUI5S2i3FvK+0ciiIrIZa\nfc483RG4q0fq3fmOvELuwDVOcpC/+4azUIfcGGjdufGZao6TQBeXVTU9anCW\nDULKyUHC9cckNKDHjq9yvOQiZkoYA+8Gp9sgFkHbkOWzUld1qRa5AvkO2RI2\n2zxGsu76ChUWBwRAP4zofUeqQ6IXYioUITIizErspPvff7qg0YG95aNZFEjK\nJi48OWxiTbJl83bHQwtK/p/wUoQIMQm2m9Eeghj+z1rr8ZsSEUK/3228wo4A\nsO6hEUoCIvedkctVfTJxvX+N860/Xb+Fvk0yg9QVFDD/TzPaNSM3Qvuq0uXg\n5rpcSzul1zbTxhPpK/+3C/nWR49PZMiS1wcDsgFfpIwxMJA+4iXRl2XXa/7R\nnb4njXzPUE6jBk6lcLSlUDQm2ySVmZhf76vmBN7ryzjsxSVkR9DDpsnbaw60\nS67U\r\n=DUN0\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEBp8xxhkNegpEk71YNz1U+ukePW0IM8D6no28YGIbhzAiEArvFwbB0sVu6QNPHjhfMAV3sVhJFzNuzW3UJlhwS+UnE="}]},"_npmUser":{"name":"liuyunqi","email":"283373960@qq.com"},"directories":{},"maintainers":[{"name":"liuyunqi","email":"283373960@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bamboosnaketool_1.10.26_1638319545135_0.28244388587771163"},"_hasShrinkwrap":false},"1.10.27":{"name":"bamboosnaketool","version":"1.10.27","description":"Cool tool features and some components.","main":"index.js","scripts":{"build":"tsc"},"author":{"name":"liuyunqi","email":"283373960@qq.com"},"license":"ISC","dependencies":{"umi":"^3.2.14","xlsx":"^0.16.9","antd":"4.15.6","react":"^16.12.0","react-document-title":"^2.0.3","react-dom":"^16.12.0","echarts":"^5.1.1"},"_id":"bamboosnaketool@1.10.27","_nodeVersion":"12.9.0","_npmVersion":"6.10.2","dist":{"integrity":"sha512-CTLKXFvvpAhPOCl7fwMIoSjt9ktmaU67fx9cLJbiAWFvXjnWvChSqd/FhxNGUG9m6JEVdg6LGtdLGzag4ZR7wQ==","shasum":"8555f8588028c10cab1d817d368e7850361aea47","tarball":"https://registry.npmjs.org/bamboosnaketool/-/bamboosnaketool-1.10.27.tgz","fileCount":91,"unpackedSize":284309,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhpxeLCRA9TVsSAnZWagAAi6oP/3ZLiv9QrqRpEzDPBJuv\nr8WZiQ4eN6/06B9k52X6UNPHd+c0q/zZgEw2tWKrV3eW9cFL8b/Wt7/UFTcn\n4VMWFUEWvVOfY9cOe+/Scx3D6ongA3B1cekLCXoD7rcfl6Ag39lZqFez8kYU\n4lJPMVsKkIrkZThpIuN8AUgwIkgNjeGUfFR1RLXN7RSUtUPI6Um4MzyWh1rS\nccEO4ZdUpbot84nL5ZngIJLZe2VmgojQ4P2kSVc2dVd3ZOlQzUky59omT5al\nlF/eQCG2BmqspSBCudg9of9/fZmDw+QW5cM1Wowljhk94ISQ5D1PuQjJg7S3\nCFqk0CLQG/jpLRGUBNNVxHvAl1lujOsp7KiuPtAG1er482M7YNLZo0xDMCwG\n6iSts+H6iSlYyDzDusKqhgokRxm+W9JmupuT1iILtUSrnw0w9S5cFiG+IT7f\nOIWCVdJdHNeo/nRWxCK82TNSfojRealHIrsrPEmyC7vZeYN0eFU9FCdy6Z5w\nlqpSnZU4QJaLLOE59JvnklIuk5FX5n7KYHqX5S46c6DQ4uS/Uj8bitSSBs/y\nLi4auASTsXC6dS9cK3e05i8UCLmOdH5h3HhMqaBSndjvPasWY9p98OybR8Wv\nrr56qT8JGo0f6HVsy9gzhZZuL3ZNLJeFbO0rHz4BIGiR5qxYf0oo7DYj9XUz\nJIJ6\r\n=nYBY\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDbTbMGzj4k7Ddv46V4UsmSWJDolXM+hcuU5RzQbJuWfQIhAM/AqPAx8z6GWNg8DfVRKjLu4WfLeyTtUye4SBQ9tuCi"}]},"_npmUser":{"name":"liuyunqi","email":"283373960@qq.com"},"directories":{},"maintainers":[{"name":"liuyunqi","email":"283373960@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bamboosnaketool_1.10.27_1638340491673_0.39029057955868174"},"_hasShrinkwrap":false},"1.10.28":{"name":"bamboosnaketool","version":"1.10.28","description":"Cool tool features and some components.","main":"index.js","scripts":{"build":"tsc"},"author":{"name":"liuyunqi","email":"283373960@qq.com"},"license":"ISC","dependencies":{"umi":"^3.2.14","xlsx":"^0.16.9","antd":"4.15.6","react":"^16.12.0","react-document-title":"^2.0.3","react-dom":"^16.12.0","echarts":"^5.1.1"},"_id":"bamboosnaketool@1.10.28","_nodeVersion":"12.9.0","_npmVersion":"6.10.2","dist":{"integrity":"sha512-G2aYdzY19I6EZn5/yhij5sCP1hC7b4eAYDKn+6vSSi5XMBm7XwXRgxMI9ZTBLqksY/dcJTHO5sRroSZ7Zvoylw==","shasum":"0c0b1c24f441bbbd71dd7a13a1c4e5bfd408e144","tarball":"https://registry.npmjs.org/bamboosnaketool/-/bamboosnaketool-1.10.28.tgz","fileCount":92,"unpackedSize":304173,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhpzafCRA9TVsSAnZWagAApxAP/06nlpbbJYz0Y9NRXXqG\n3FMfwG6rWCRDmrK/PEVi8tO++3H5ciCSW+S0k3gLviSAm4HBc+RllN9k9PNI\nyQF+moS9Nax8JHqWMEHN2ZhpAXcQE2RP5g29idfYq9G0NYd5nzd8VL28qv3p\n+hvJWQZ7GwCqn4gO//TOewMs27v/fpMsmjmUMZFRTfVIwfd2UAwk2VO/eOWK\nyooXH1huS7nvZN3IijYHTeHQafL/2IYcUNLKPfXWbpMc7Wayzm73CkzUHxde\nxs0mwHlI5v0sD1tgKz4QaSiCrygYKIj/IoDyVXNdD/uNkiePbcAuIZAfyDbK\n5+cxPbBHAqDSiaEY3vvO1BJSrlY6SC9N4Y1+L9MxogQZMQ5/Kt9e7TbtI9xp\nPEJRnTi2LA3GwHHfkfvmm8aRoKwnOHRiiare82I8S8rV4D6swg5LuJBgY5nB\n2coCYhv2iv3JWVPdGh6S0S845pzmggR1OfVBpHW1hAv3Vrx1yt7kiVvdaq0q\nDUZcqbrFpOsVUly2JuIZ30xUqZpZ0vZSBL77ie8y28k4PhASEPsdkhlMD+P0\n1CMllWdRyjAksAT9iM0AUQDptKiI7ht2vcGuiiDD+T93enZfQWKzHbBNsy2F\nhekTQ38Df0+IHicpGgtUAYlackg8G7gUU8fpS+YMImok7sFc6jm7yySxtkWC\njq2P\r\n=IZb/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIA/WYinbf1t1KnYc166rskiLJEjvELY4V+VhCO5PAxhSAiEAht3ZhKzk7GeOmZnFwqjvsXikictTB2rK/Oasikdh+GY="}]},"_npmUser":{"name":"liuyunqi","email":"283373960@qq.com"},"directories":{},"maintainers":[{"name":"liuyunqi","email":"283373960@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bamboosnaketool_1.10.28_1638348446956_0.2032457684981599"},"_hasShrinkwrap":false},"1.10.29":{"name":"bamboosnaketool","version":"1.10.29","description":"Cool tool features and some components.","main":"index.js","scripts":{"build":"tsc"},"author":{"name":"liuyunqi","email":"283373960@qq.com"},"license":"ISC","dependencies":{"umi":"^3.2.14","xlsx":"^0.16.9","antd":"4.15.6","react":"^16.12.0","react-document-title":"^2.0.3","react-dom":"^16.12.0","echarts":"^5.1.1"},"_id":"bamboosnaketool@1.10.29","_nodeVersion":"12.9.0","_npmVersion":"6.10.2","dist":{"integrity":"sha512-ch+NG76pNUcVxrI0JPAkgTVgELonxYfaJQRfKPZKKmcCyO55dbHzBCBXqc2ZF9rxSvI0ve3SlN9E6P+Pfq/O7Q==","shasum":"47e48f81b5e85b27849938903ddca8b5a3bcff32","tarball":"https://registry.npmjs.org/bamboosnaketool/-/bamboosnaketool-1.10.29.tgz","fileCount":92,"unpackedSize":306125,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhrczaCRA9TVsSAnZWagAAP9gP/1wO+h3iB7auS86qaEfO\nQXHEQ9pmnjh8bV6y4nqavAjPFd1syzXZ+FbqBRpFvuAZBJ8T7Dh/ZxwKb7Jp\nyd52HI3vwiG+yKczoM/zI9PFMBb4r5m8+p/H5kkcmEwmhYPsuxMtYlP2W2wH\nPHAePnjkAT1QkZrSqLwoBJlDMFh9oxaS6mC8oVit0cJ1VuKsOFSL8GCRDDFZ\n7+h0adW1ub/UyYfD5Y7fpL0h8gbHq0rZxSwkMvdHknp2xc3ntQoC6dsjjsJY\nCsNFA3UE5Tz1CPS5TNBeHqQqgQZ4tMLehQONkUTdtsnE6ej+rT3cZwtaV6/o\n4oeJOdWjgpWsdPk/Es4py2n9lteQ1G4OQNhOscNK6Q8gIFa95xy23jW3jtPZ\nDfkZTghkzPK9cNjubWgpS6XUnPYnqTQ5XQNPoy/i18ryP8WKnmQ2GJsi6e2c\n9JlbC4Pnw/zPzvxh1ObNUUkvF2MxCCZqQKuy6+pCJNXQa4ppA2nAnpZUYHN/\nq+xlOYs+/8RqmYvR8nEu2RD7u5q5S31Y+VZlwiYbJkKxSSfFtW8kgKbxs48m\nx9HNiw615PFY1HqnUWm7i1+P20aDpJm+kWPwJqGORFbviCD8UQwHsew6Ja3q\nZaL7UaYYOlB/F8t6Wb1M8LjkRaggNw5hd63CQbnMj0OHV4iH9K0K7qMOioBV\ntDBq\r\n=hGW4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIB2rKoa7V1MutJxxHkeaXrXp9Ulzg4erqlg69UQOMaVTAiEAykM1DKkYDSJvch2IItBt0vDRHfqIfTcz1C2Y5Z0kVYA="}]},"_npmUser":{"name":"liuyunqi","email":"283373960@qq.com"},"directories":{},"maintainers":[{"name":"liuyunqi","email":"283373960@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bamboosnaketool_1.10.29_1638780121970_0.8077417075034266"},"_hasShrinkwrap":false},"1.10.30":{"name":"bamboosnaketool","version":"1.10.30","description":"Cool tool features and some components.","main":"index.js","scripts":{"build":"tsc"},"author":{"name":"liuyunqi","email":"283373960@qq.com"},"license":"ISC","dependencies":{"umi":"^3.2.14","xlsx":"^0.16.9","antd":"4.15.6","react":"^16.12.0","react-document-title":"^2.0.3","react-dom":"^16.12.0","echarts":"^5.1.1"},"_id":"bamboosnaketool@1.10.30","_nodeVersion":"12.9.0","_npmVersion":"6.10.2","dist":{"integrity":"sha512-6W5D4sC9R5ltqIpAphyBgh3g+xr7tXX47+O/6xQhLcfZXAj4UtwwIr0Fd3OpFvmC8EtAOryeBRflU4xLjsWcUQ==","shasum":"3338ab8544f92cda85e9895ecc58962c49c63484","tarball":"https://registry.npmjs.org/bamboosnaketool/-/bamboosnaketool-1.10.30.tgz","fileCount":92,"unpackedSize":306895,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhrdCbCRA9TVsSAnZWagAAfnsP/0WuVqkDXi2q0+jpvpOq\nH8d8ptceSzsY3p7yrjufcF52yqKWToadvTQ6zsS1pykh5C+bwqt787PY5Xek\nCV1/8aCw4VBGTBb/C68dFquNTP9b9KuHs2YEj0e7lAcDWsaYVAH2JejPyDKz\nqyPOLvKYTx0VuyNsf9mm5eM1kI3PyC0EvwUi0Z7WL8SOblp1hJ/yYhP8CLvv\npEKDKF6GQcJLiXC/2opHCESNWUFJwqb1D3dT7JyxkYDWKruiTcHBe5fvIJNu\nw8dWRj0MpQ/AMZDymLsxu9j8DY0h2wBO6Xu356rCQkAygikCGyBfKWolfoAA\nwLyi2MtMOjs5jFIW8RLXNsmwz0U17rql/k8aXDAt3xu7dRA3RuB5Zie75TdG\nm+DcZtHa6ccGdT/koKicexddK/tMm3IhKqzKCZmlXDD1HDEcyHXft3G05fTJ\nbRaSD2wpTzzI5nwfI7zbcjtnbtpps2vsm/ucDg4aFuqT9k8BjD3LYI/sI6D1\nM4uucNHVBjcGRdgbmpnQ9mOT7UZgelMYnX0C7G9Qqlor1vtY4QsTex1ENZYd\nDfkkt6f9cWtNPZ5LFuzf/3aHDHs5MFcsDHsqVroT8To36gRby6gwC0YHB+T2\ndPmUj1dE9Mt2FfuThIDFQ2A/eRiFToS+0xJs+3E5nmYIqqjcxwem8g0Nv7cf\nuZ45\r\n=5Pno\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDLuix1tN92V6qRHmmNhkRnLSaJT4/dpJDq0R8zybZAGAiBtVKjKpLw+e0Jl8mX3pU+6FAFJzBXD45FWkHFTm4QRRg=="}]},"_npmUser":{"name":"liuyunqi","email":"283373960@qq.com"},"directories":{},"maintainers":[{"name":"liuyunqi","email":"283373960@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bamboosnaketool_1.10.30_1638781083678_0.13012259623962108"},"_hasShrinkwrap":false},"1.10.31":{"name":"bamboosnaketool","version":"1.10.31","description":"Cool tool features and some components.","main":"index.js","scripts":{"build":"tsc"},"author":{"name":"liuyunqi","email":"283373960@qq.com"},"license":"ISC","dependencies":{"umi":"^3.2.14","xlsx":"^0.16.9","antd":"4.15.6","react":"^16.12.0","react-document-title":"^2.0.3","react-dom":"^16.12.0","echarts":"^5.1.1"},"_id":"bamboosnaketool@1.10.31","_nodeVersion":"12.9.0","_npmVersion":"6.10.2","dist":{"integrity":"sha512-l0DsHmnZeeV/jBcGRVukxwtSCoA0D2ZSSrXxdDnQboTtDQ+thPGOJ9eDPjpgC3Sy6R5m3UrKEK1ij329VvUz2w==","shasum":"3c24700e69b7d8c14fec7c265fd5f96190c5cc3f","tarball":"https://registry.npmjs.org/bamboosnaketool/-/bamboosnaketool-1.10.31.tgz","fileCount":92,"unpackedSize":306587,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhrwzsCRA9TVsSAnZWagAAHL0P/1q9hTThBd61pZuswZso\nBrz/QBkmaUxDnMj+ZzoFqfbtk253d6pHqUNUIzeMuqNke+UY/0M6f+RQS35z\nKyDbT/7r57/LdLJ7uB7x6V3+Mp6RXZ/CI5UZC44+lNQcSPSivCOIUMmQHa+c\nL+qHYEqQHLoMbyKy9rX7dZGFZgf/P9vrDSKPNBW1dJaB4ZWnUEwhi31jYpqo\nUhsB6t8Hj1GI8TIGXL9S6aWokGT1Y3y11NUlKZVt8z3lIvgCxn2fr04YDfgj\nE0mxRA9JzOr6HiSBeY5q5pPGZIGJ+6/WIo7r1U9agf/zsCZu62jU68Epn7y4\nc2ztgxc9v4YfypFc95N+3/BEYmRhnrL9lyh/eJF+ULBcfC/0p+wmURwh6pP9\niQYox/YgaUdvF5aIkqI8bfulV1vI1fI5qC34rjw25RbukXblpjiXO4fuGaRq\nFs0708t6geJ+GFF3n4pZeZgEqcjavPs8rfw73kcyaEVWSj2w2JMFOrnjKoZi\nimu/kSej12t8ZsnObG50SzdqFX/R37qKVohaXP9jyBy6TDmrODvHC1jjphuR\nVTzOnCq3tGgIuhf6W/UNFk/Q5UqhUBvz6IYa4CQ5BPQ5HZTTUdQbgWH0l1Vd\nGSGGXrHK588lTAQHGOuypx6wStdQKLUSrTRzmpzRhj6swH6X0qgBiPI/ZCPM\nE7SQ\r\n=MQsG\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIG9TQVXr80vmPaOSP+wlKHvXVN1NgFO8OPhDeUCB60YXAiAqaWd+/fTWZqj6eu74aO/SUy6TZQqFbvTfw3uElQ5u7Q=="}]},"_npmUser":{"name":"liuyunqi","email":"283373960@qq.com"},"directories":{},"maintainers":[{"name":"liuyunqi","email":"283373960@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bamboosnaketool_1.10.31_1638862060519_0.6004309962135539"},"_hasShrinkwrap":false},"1.10.32":{"name":"bamboosnaketool","version":"1.10.32","description":"Cool tool features and some components.","main":"index.js","scripts":{"build":"tsc"},"author":{"name":"liuyunqi","email":"283373960@qq.com"},"license":"ISC","dependencies":{"umi":"^3.2.14","xlsx":"^0.16.9","antd":"4.15.6","react":"^16.12.0","react-document-title":"^2.0.3","react-dom":"^16.12.0","echarts":"^5.1.1"},"_id":"bamboosnaketool@1.10.32","_nodeVersion":"12.9.0","_npmVersion":"6.10.2","dist":{"integrity":"sha512-/uh2oa6/iFWzWqeJpr/ocTsNzUkuIMMlhN4+awiJp4ygthd/7XMF1qWuSFsWsrbVYJsTob42Skyhb+UTcfYdhg==","shasum":"6370bbbae346dff96f38bf88b8de296aef445ccb","tarball":"https://registry.npmjs.org/bamboosnaketool/-/bamboosnaketool-1.10.32.tgz","fileCount":92,"unpackedSize":306732,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhr0jGCRA9TVsSAnZWagAAYykQAKHHqiKk8IgscmD1pE8x\np7IC2dSh5Kn9UDaQv7kemeR8cDMPAZ6Sy7wWNTf0lfgrPFAV7PsWDeGtcRMI\nauthJ+0jH/DF+mxuzWzL4FwKVspRDAHE9LRvWwu4zNhy/IEJFo+2YYde/i/o\npjQCIyMtMtxtT+R746CBbO568dmkp1yP0T0IeyGwvFFKDxfhd/gHG0ofd1SE\njIcVhA/1HlFFx5G6D1zKD/Y+SM4YxzpFe013dFpO6N3NYF0cC/0AZj6xcZGq\nXZJEyKK6j40jZaJNrTCqPgRyTsWLYOR/FaEttt4168JqYFBc4y/LmgXIN+0v\nXwmni4rk+LVaNe/l1knU4kYRxCwNzxhlgFi+RTYHXfST6qQh4rSmcScZ/byP\n03yicQyuBX+Wi6PvsUqZlUnE48nrdkAqN+xfcZPX6ejq3nRJVtUsRmnE8J26\nwOfPVDXqMdlyvjEw+Zu5Lj/GSwTCIFDnOxuU0sFMHKCx+Mu/uBboS31+exPj\nTreoLDF445NgJ9bvJHlecIzdLDFDAHCgOdZ274spM3476MJ8Jrw2RQlZuzuN\nTjfglFmSIsLLFZ2+357c4WDVY1ab9V6DUskagNVIm0c1HqZPtruz8uBxJ4u3\nk5DVe5g7NagTEmTbqZuMfVgrgbJLGZM9R3TnEV5H5lbCQGHhaV9OQjZ04aOQ\nVcUo\r\n=NzXL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIB72UoBj4dV4JXeBXxGJs5jj0DEuTkD7Haf+lT6qwRJNAiBZar5zj5eKM0pmBtGrHF3V4S74pSQaJ2prtuzHTBdbuQ=="}]},"_npmUser":{"name":"liuyunqi","email":"283373960@qq.com"},"directories":{},"maintainers":[{"name":"liuyunqi","email":"283373960@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bamboosnaketool_1.10.32_1638877381871_0.4949708643503956"},"_hasShrinkwrap":false},"1.12.0":{"name":"bamboosnaketool","version":"1.12.0","description":"Cool tool features and some components.","main":"index.js","scripts":{"build":"tsc"},"author":{"name":"liuyunqi","email":"283373960@qq.com"},"license":"ISC","dependencies":{"umi":"^3.2.14","xlsx":"^0.16.9","antd":"4.15.6","react":"^16.12.0","react-document-title":"^2.0.3","react-dom":"^16.12.0","echarts":"^5.1.1"},"_id":"bamboosnaketool@1.12.0","_nodeVersion":"12.9.0","_npmVersion":"6.10.2","dist":{"integrity":"sha512-kO13jViS+OGEzXTBXDNeN8r5yEQD2zLMQx8wne3C9Sou6MRwVJHDb8eb2hI5QmkkfrL0YMHKV8WEB+cBlddSfg==","shasum":"11798724563c22d450ab48448350fc1c4c72a03e","tarball":"https://registry.npmjs.org/bamboosnaketool/-/bamboosnaketool-1.12.0.tgz","fileCount":93,"unpackedSize":314493,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhsxWyCRA9TVsSAnZWagAArn8P/35m2HbjH1Xg0Ekb+zwA\nk84yG4hplJn8lTOZedmtPNfvGKaB7Rxs2/FgWasv3vfO5ccoAvJPS82d7aRS\ndA3FLg7DMTsWCHw2hG0tnyHtHYhP65N1Lb06fpRMqxVw0c9ZVS/MnJS0dMLU\nyVKUqFos9RV35W4X2/Sinaode4+8uO/nRzZy7xomSDj0JZuIaXMlOtmBMoRi\nA13tE7LaKyxBUg+A6X1rg4IdWqzb223Bmne1i30UTdDFKO2FBsMlAK5sXM3/\nwh8VDqUZRK9cJZ5J5P+lNkJKG/AMJng3rHb0aAkYIngdVr39xx65iYuTXM8c\nF8QfBW1wyet10MKw2G76uN6/oECleoGk0GfnLdQbXI6sNrxH2j2g7/mJVv/o\nqdapF1hRV2xUWeZ0asqyJMtk2roYyd5gvDlW7dmIOfjPNk2jYP6vRVj/h8+E\neC7fop2pTly8V5sr9nO9GBS65URsWx14k34J1XG15SgrzyhzxC9D6QFa9Syq\n1VFv2N4j+Syx0ia0Mo5AqtYN6NTtRvAQmCktxh3RM7MtvVJVGOIjKfqn9D7g\nvkfyu7rBOFMSO5TtFWEockeOBlz2bpReGElqCjVpb2uQ+9Pi1ODeEuBzE6Yy\nZe7BQKxS0PfBBIc4k8Zz2j6yfj1CR8GxMd8+LcPfNQxZQ0xKmVqB0PMQ1CcE\nfqJq\r\n=DrDB\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHfxzIjdbJnfWV5YGLpxWdDDBzlCaoM3gPv4pQol3K5dAiB9J60oNssL3obke/0Vut01Ci0B14BPyYa+JZS0C+5arQ=="}]},"_npmUser":{"name":"liuyunqi","email":"283373960@qq.com"},"directories":{},"maintainers":[{"name":"liuyunqi","email":"283373960@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bamboosnaketool_1.12.0_1639126450418_0.021484546616586497"},"_hasShrinkwrap":false},"1.12.1":{"name":"bamboosnaketool","version":"1.12.1","description":"Cool tool features and some components.","main":"index.js","scripts":{"build":"tsc"},"author":{"name":"liuyunqi","email":"283373960@qq.com"},"license":"ISC","dependencies":{"umi":"^3.2.14","xlsx":"^0.16.9","antd":"4.15.6","react":"^16.12.0","react-document-title":"^2.0.3","react-dom":"^16.12.0","echarts":"^5.1.1"},"_id":"bamboosnaketool@1.12.1","_nodeVersion":"12.9.0","_npmVersion":"6.10.2","dist":{"integrity":"sha512-uyTxpLVmqEDMVf7JxOmpwYfosV6xDiapqBBUh560Cq+toOo+QEmV1+b+w8U53kbvVvVWw9MEWagC6wyEzVvOpw==","shasum":"3cbbf7fbbe4ce7c007b4224d6c9c6c67eef43c6b","tarball":"https://registry.npmjs.org/bamboosnaketool/-/bamboosnaketool-1.12.1.tgz","fileCount":93,"unpackedSize":317009,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhsx5ICRA9TVsSAnZWagAAW60P/AhGaSldDfhmJkJpVAGp\n6uwJ2vGm7Ihe/xVZFBbwGof8C255sUO7SAwlg4ouwvWYtLCJnbDSP1M2maiH\nZ2+B/ZsVn2wmQ7UDd1jBBw1z7mAGMbWDChElEreAwRhd4PhFVnIHdLsi1b9T\nplk61QP/zhCH4ObA2jd2TysUwRKxe6pOC5dJYc3oUEGOIXb7y+46BO7lgKMA\nHftGp8RTYHzYwb5+109lMlJ02Ny9hN6ZzzqEnQIOQpiEcyb9zx4v6rxfCWCo\nRLejLB6r4nd+oATXU7fuUL76gX2+WZX7Vska4q3x2OKBcPIYqKen0xyLfoo/\nnuGm1cwZQ2BedjkBMnM27N7lHM09pnxqpAs8pvrWAPY2hh8lKKBvhoiDeR1P\nFnisChW/Z9vMcebzCNY+1NVWJEKu4qvovxF+UCsFoh8BYdEWjNEAcKF1Kle+\nC8av2/z7V3mHSoDiQPMrGyUR/53qIzxaU7qKq8v6YD1VIAFuZsFPzTx60h1A\ncMNVp6+Mm1mGViSEqRH2rV6/4g2Xw3eYZHL8+tKRczEdwNTJCR2rKtU3Jz9S\nPjQ/OsjN81v6rgjPqK2kCQtUXS2rqmIm00HotNSFyejDpjhWKpOgwyaQtdPg\nLca2+jFRt11KFUudYWz5AFwX1kqGMM/Ar7o1uzQmHCXdHmhHl1RechumxT7h\nix/J\r\n=4kbS\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC6YeZTXGI5C90aYaM23K3HB24yIk8IBlmhsr9NY5CZAQIhAIFI2cYsQMZlrRlpSgJoEllQUbKdm64ABwOKcOfa3qPY"}]},"_npmUser":{"name":"liuyunqi","email":"283373960@qq.com"},"directories":{},"maintainers":[{"name":"liuyunqi","email":"283373960@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bamboosnaketool_1.12.1_1639128648514_0.48908996450418063"},"_hasShrinkwrap":false},"1.12.2":{"name":"bamboosnaketool","version":"1.12.2","description":"Cool tool features and some components.","main":"index.js","scripts":{"build":"tsc"},"author":{"name":"liuyunqi","email":"283373960@qq.com"},"license":"ISC","dependencies":{"umi":"^3.2.14","xlsx":"^0.16.9","antd":"4.15.6","react":"^16.12.0","react-document-title":"^2.0.3","react-dom":"^16.12.0","echarts":"^5.1.1"},"_id":"bamboosnaketool@1.12.2","_nodeVersion":"12.9.0","_npmVersion":"6.10.2","dist":{"integrity":"sha512-HF9uKtfmVrjDEtdj1R8LJwh8+y9vCmwnjqn9PiQ6iGbmBQf82FeQqyw3HEIH40sClWYIMIO/R2jDHANFdfGpkA==","shasum":"c5624fff259747cdbdaaaa35abd1c6cca9599b92","tarball":"https://registry.npmjs.org/bamboosnaketool/-/bamboosnaketool-1.12.2.tgz","fileCount":94,"unpackedSize":331891,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhuBNACRA9TVsSAnZWagAA7vsQAIk91Ha02ZwYBclJ2uxn\nnCY8ahZg5vKOvSVQRiLyXxsIdawHwgGOtFlgzlXhFxJGABUugBjZWkbaw1C/\n9Tl665eN5vp3Erq/q/1JWs/t363mdPuLqw2E6ahaSxWXuGmnrKonJhr5pDso\npcNXvkYNlwAsF/gfblKPvssCi6CVQ03dL5De0zcxzuaPpzP4qvwAGdgD03QD\nckw1lWNlot6PLR4/tpf+WcDZF+GjFAN1QtG64yGD3fm85VbMSwkzT12a4lbr\nbyyuwxs/b510fZRyZddo+tUBMkxTMRCIJYBpDMLjDLJkGeoldZJ1YY8PJR/8\nKQ6r3hWJb4c8iTdlj+yYMUg353/DeDPKciwsg3zWwmk1hFZrFM9BQuHbMZXn\nbHZLKvfyC0th29eL2Lg7L89WvwdPAl6fs/+Wsu9iA468f5MiS+6UjnLkUxfZ\nVxQpbCo7EZbFxFL0xvIPBCT+RUjl3X3eNI614V2DxcZ+HL+ITSle2t0cI1tq\n1XqhXHYBMe9Vd5F6GzDhge2ke4/jZm4YmpUaBsv80QkhmFc9axLvaS8FT9yO\nDadVUPEkxIbsj3EY6UxIrNG5OJPEcOZOjT72ouCK8RLmRTDD42QLXIKHRikT\nLjrQGfIlr5YSMTOTjPm1w25qmc+tneOKkdZGQyYfD9vv5boNiPl+jZeLlfGx\nlkJL\r\n=r/x5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCB7mHmN7eDm9TsiB3sYicRHU7fgjAEAfcuJD2KCiiU4AIhAJh88dKeBVD3zJoGgFnZgIA3wiBkcFfsMpDmuObppsUf"}]},"_npmUser":{"name":"liuyunqi","email":"283373960@qq.com"},"directories":{},"maintainers":[{"name":"liuyunqi","email":"283373960@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bamboosnaketool_1.12.2_1639453504518_0.3944321771443877"},"_hasShrinkwrap":false},"1.12.3":{"name":"bamboosnaketool","version":"1.12.3","description":"Cool tool features and some components.","main":"index.js","scripts":{"build":"tsc"},"author":{"name":"liuyunqi","email":"283373960@qq.com"},"license":"ISC","dependencies":{"umi":"^3.2.14","xlsx":"^0.16.9","antd":"4.15.6","react":"^16.12.0","react-document-title":"^2.0.3","react-dom":"^16.12.0","echarts":"^5.1.1"},"_id":"bamboosnaketool@1.12.3","_nodeVersion":"12.9.0","_npmVersion":"6.10.2","dist":{"integrity":"sha512-EaSctlqCrAGWaszChiDSmybcP9QknQzcMCdNxkiUfLs6g5BHKM+P6oAl+UNo/aoAC0GuDnEvnB4VzVn+caedbQ==","shasum":"1ed9a0e1353b2eb84513859ebb24ecedf2319fdb","tarball":"https://registry.npmjs.org/bamboosnaketool/-/bamboosnaketool-1.12.3.tgz","fileCount":95,"unpackedSize":353973,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhuVRhCRA9TVsSAnZWagAAyNwP/i7cJ2zdRIa39+f+O4Ci\nb6LrRQq9a2QEzShUlk6Z+GUNWDdphaESezUTqY/5BN7pk+FXVHgUAfMwqVgs\n47Kr8/u0R6Epf5Hpv8H4O2DR+jPqIXqCVLqxNvoJQh3QMQ/ZIHmxUkaf1PgJ\na2iX0oY87vjx7zQPtzVZLdwyz9qiZwpAvCVNrMfMVLABnO7lCaCWkzt3V/9R\ndffMInp3jyNFfgP4i7FnhGegyo2HApBRGGI/OX8DUslLbpuYw/QVH4OVOdpb\nhv5OPJdfBp19mxTWK+hDHwu5w4T/6Rf8oU9vR+hd1gf4nlRFYgGKp9R4tvn2\n85vhmKWlyvQn6XzModkrcJTx5RxWzW37ima4ATC0IdZxxHDZIlhc8ClZ1HD+\n/el0zirGYnU3ayhGYjCg3fg/VpoT3GUafZEE04as73bGFDUjpzsWsEDD6tnQ\ntJF4npjh3m78Pfv4kfavRvX3YDyUntN00zlQfTKT6v4V+nmcI69fjDNzG3lK\n43hf8CQYoHRPFdAKgl9As0qtOElA7djC8OtRag4IGiJq3YqoJjAKrAG0Y8YY\nNB/cYw3KByoH8BDEcPhh2OaHPbTKtBVE7A+BMyeSMgJnKVx5nsvBb/i8jMLs\nbRc7DKc+E3+LPMW6FvIY+bOjL3hmLuPIiO1R26QPOsXJu48vO0m4rjDBZRLk\nNGse\r\n=wFk1\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC/MelWz4uTzZk591otuy8qPH54qdphNT8hsvjEP5A83wIhAMsB2teyWqCS6JcsiNnSQCYGRHzeg5Shpxzpk3y+d2G0"}]},"_npmUser":{"name":"liuyunqi","email":"283373960@qq.com"},"directories":{},"maintainers":[{"name":"liuyunqi","email":"283373960@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bamboosnaketool_1.12.3_1639535713822_0.2046335619973887"},"_hasShrinkwrap":false},"1.12.4":{"name":"bamboosnaketool","version":"1.12.4","description":"Cool tool features and some components.","main":"index.js","scripts":{"build":"tsc"},"author":{"name":"liuyunqi","email":"283373960@qq.com"},"license":"ISC","dependencies":{"umi":"^3.2.14","xlsx":"^0.16.9","antd":"4.15.6","react":"^16.12.0","react-document-title":"^2.0.3","react-dom":"^16.12.0","echarts":"^5.1.1"},"_id":"bamboosnaketool@1.12.4","_nodeVersion":"12.9.0","_npmVersion":"6.10.2","dist":{"integrity":"sha512-0x8NOOvm8Tc7H2rzWyJGhuAGvR+p6Lr5Dhlbkq6sykBRPJgnZY9n6WhFNjvoBeAFFYyobQNNngn2dDhlwwyEyg==","shasum":"df7e7522b6c935e511d6edfbabe23bad909db9fd","tarball":"https://registry.npmjs.org/bamboosnaketool/-/bamboosnaketool-1.12.4.tgz","fileCount":95,"unpackedSize":356149,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhuaGgCRA9TVsSAnZWagAAigQQAKIEm930YZS9Y5tRdoqI\n7wr7ZDcS+2bSeyLEqNrpdhNF1DXaicOTwWP2IweE06givN+I2+mSXwRWBwCo\n77SR6AcfyYmsvCsZD8rwySMmDLrhnYUAV5T62VaolfgLSqjweaH6kYq943JC\niIlKwFXdl2fc3auih/f3l559nuUkmoaJdVP0j8Q7nEGnlx0fLSLIn1u6Nt4c\nU2E4w2qxs+HUReBii9XFBH0s0t2wE6xptYSCBBGotz8QVpW4U2AMBBEpwQFv\nTvWzzdrTsrkInDaAPXFNDSlsZXBfsALcLBHFhfYUwGb6pY6xKKCQm9M5XNJD\naNZ+UFn7kp6iRhEz+u1JFILqy/xqFhoo143i6Gb/4iR4586qoaYAwol3Jvpi\nBPPBflxdsD8yAaB8HPzWEcuoj9TBg795hRl2UfyiUvfdpOxZP9XTSlgFOTDH\npAy/SfidUa95U+nv2EJ/UkgXTiY9DLnRnJxMP/UC6t1pEU8/BFqvwCf3jdAG\nmNkHYF72HXNKCnayYAIrekYTK5Wt0fpvgT3t9IC5h32w9+goGHAag/jDkNvW\nVIPPLB0hGr8wVaZoDyuLF43O1W9x3BaTwBYyZ6//o7mdY017XY62q5T816jX\nc1m5SXZ1ko117tXvAj9s+vTzkuak+0tssYJ2aVHX66EzvlwJ+weGrGI2+E2v\nnlwv\r\n=ftmU\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQChzO6zSDofjpSN5W0m4F+ENOZrUILn4NrBs7oS9hM73wIhAInthzL7GpidnMtrNpZtDNc1VhAgK13UZ4P7CF+okDhE"}]},"_npmUser":{"name":"liuyunqi","email":"283373960@qq.com"},"directories":{},"maintainers":[{"name":"liuyunqi","email":"283373960@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bamboosnaketool_1.12.4_1639555488814_0.2916647107269794"},"_hasShrinkwrap":false},"1.12.5":{"name":"bamboosnaketool","version":"1.12.5","description":"Cool tool features and some components.","main":"index.js","scripts":{"build":"tsc"},"author":{"name":"liuyunqi","email":"283373960@qq.com"},"license":"ISC","dependencies":{"umi":"^3.2.14","xlsx":"^0.16.9","antd":"4.15.6","react":"^16.12.0","react-document-title":"^2.0.3","react-dom":"^16.12.0","echarts":"^5.1.1"},"_id":"bamboosnaketool@1.12.5","_nodeVersion":"12.9.0","_npmVersion":"6.10.2","dist":{"integrity":"sha512-g2LptEbbNfB1UjJAmc38q/xR5kZP/JrbbdoHNA2W2avuo76myV34xTV5LV2MCQ+DzMK2uk72/k1jwV0VjdsRqA==","shasum":"2b48235bb0cc077ec29945e94c2ea9382f4c04a4","tarball":"https://registry.npmjs.org/bamboosnaketool/-/bamboosnaketool-1.12.5.tgz","fileCount":95,"unpackedSize":356301,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhvEuMCRA9TVsSAnZWagAA/U4P/ixizhxWRF8mxqYI9zJv\nDJeWyXw9IbVSkxDtTCPQy0tXcmU1LVDhMVrOcxq2e9ov/6X+a7ocXl9pdh3q\nbiaL0unE6er4LfmuCh5EcHNx0yDmw3hRD3GVXlGl2R92UWGkiibwi+Y6I34i\nN1sd0e4hT1bxL5n6r/wPsE4WlLTC+Fy508hR1thJrROSqgfNBGj4KCvA4CGt\nqYfZByPaAlir0J7XzQQOmlXlPh0EQMXDPSv30H0SVsPblQXDA9/7bq6CXQRi\nCs/oj9KoOMZ3d5cHDmu4d0liz25Jq42RwZ93mMRJAJd1YlELQ2K2N2XGj2eh\n/FGS4qwgeVXIulcIpr/Tg74pTdxW7gCQkIrHZXk6F6tB/y7LpVzJJrD3kPpi\nb0sbWf4BHt6n6a8GbrngEpSnYGbCM4TsuBR1ilsYsUmVV1Tk9kzoqdIiOR5k\nIiCtOP8g6eG8gsHnkd3P/c/3hWyH1D/cL84xNNkVuDastaYVB6lXTYQ1jZHM\nC06k3NB+KHtIkXYaxA8CN3cR/7YjMKBKS3UXQoi7TUe6JJGC7vKqLcgbmlF5\nVlrZ3Yu+LQTCGxrua36EMstb/XtP0sOrZHwvfMgJLFjCfAWzgRQms2BIIlQj\n3tnkXCFyZizRBdDEpr9ijzM2HM5xlmfbOelMiupRTM0p124GTbqzFR9m26r7\nPKef\r\n=c3Kz\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD4PLjVE5PNd6rJ/MgTM4dRzwE5hlcf4BnSRj7fsAch1gIhAOKzeLySa/mt4ShWj7odATo/zYHqHoqAlwHpK8LdB7Lq"}]},"_npmUser":{"name":"liuyunqi","email":"283373960@qq.com"},"directories":{},"maintainers":[{"name":"liuyunqi","email":"283373960@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bamboosnaketool_1.12.5_1639730060569_0.20161776885223515"},"_hasShrinkwrap":false},"1.2.0":{"name":"bamboosnaketool","version":"1.2.0","description":"Cool tool features and some components.","main":"index.js","scripts":{"build":"tsc"},"author":{"name":"liuyunqi","email":"283373960@qq.com"},"license":"ISC","dependencies":{"umi":"^3.2.14","xlsx":"^0.16.9","antd":"4.15.6","react":"^16.12.0","react-document-title":"^2.0.3","react-dom":"^16.12.0","echarts":"^5.1.1"},"_id":"bamboosnaketool@1.2.0","_nodeVersion":"12.9.0","_npmVersion":"6.10.2","dist":{"integrity":"sha512-i11wITW/Us3rRvEZi1u7akaSTes5lF6ezENvP3mpWxN+krjJaUgkc2GjMngI06kV4BJI3hbQHMbc3WNMSkk+fA==","shasum":"0d0b1384e79a0eb976e6128462cabbdc06c60dc8","tarball":"https://registry.npmjs.org/bamboosnaketool/-/bamboosnaketool-1.2.0.tgz","fileCount":95,"unpackedSize":372627,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhwcaPCRA9TVsSAnZWagAAJvYP/09DNu1PLszDiJ33ez/j\nBRrrW35cyHK79C+FWhJ7sE9/47MQPyrAfqFvHplQl7prvAsp6nalOuptr3Cs\nzF8IMYAvZSQOYKET0vNR2MxWq067miWStPJyVJXZ1/73cLq58K6QuWdTEJXr\n7+HSh3u0GdsbEaSXwdBbNTBpRJLsWyHczZ/tRDabzPE56/pyyD/C1ScsA//t\nMMDPyq20BI8qVaDjTaHj8yl98dcIe4CbER+b/ngWRpWEaI0ApLFYoy3R6gPw\nlbmXzva/XVuP6OX3mGTpE5ce9JWoAWI0dV26n6/KKHWCi6hvWMc4rq0s9DAS\n5nXNvREoOABJQj4yVdj1Tcht5CBdBEyVGR/8MoBVWHEvS0ITspM7ZxnZTep8\ned3cRq8d9yoicvvmSi6/4jgPmFYOgEaMRBXiQKyyOXKoWVheeZOXtYm5pFhC\na+LKjewRPjQkNAAmVskto3flXTc9YiY+w1vwue2N1FYitayBb3cENBbHgT8Y\n95e3wJbOXLf5WToqkEo/SQ3W0SUgrrDHTRF71TRPG6r3wj3vl8/aIRKb/WrW\nYw9ecsolZm/ev3Nk9fQuckzwkBE7N+UzWno5gIkJda5MT80EnmwCfafBtOpF\nHTtHSyh+cixlVynCg7DOlQA3Ijtfs+7ndxo/MNxCJanL8//yUvLWhAp8vHo1\n9y1V\r\n=Db27\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCxOotTZCG6w4WiaRHLRHOKLrxphaXOz+p0UtG/WV5pNwIgfz221jnCY2uzOpOwvQ2PUjGS+BUs9RnAjvKuemtVRAc="}]},"_npmUser":{"name":"liuyunqi","email":"283373960@qq.com"},"directories":{},"maintainers":[{"name":"liuyunqi","email":"283373960@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bamboosnaketool_1.2.0_1640089231465_0.4275910505914171"},"_hasShrinkwrap":false},"1.2.1":{"name":"bamboosnaketool","version":"1.2.1","description":"Cool tool features and some components.","main":"index.js","scripts":{"build":"tsc"},"author":{"name":"liuyunqi","email":"283373960@qq.com"},"license":"ISC","dependencies":{"umi":"^3.2.14","xlsx":"^0.16.9","antd":"4.15.6","react":"^16.12.0","react-document-title":"^2.0.3","react-dom":"^16.12.0","echarts":"^5.1.1"},"_id":"bamboosnaketool@1.2.1","_nodeVersion":"12.9.0","_npmVersion":"6.10.2","dist":{"integrity":"sha512-ywh0Y2dPvRwm88kOVF24Y2xoYmqeNYQdryNYkyVXW3ejl3f6vfowP7IWLAEKEpq7em39dz5X4TOAx6xLbx8kkQ==","shasum":"d9d49dddbad42984d2aa0bd89cef3d6f4652666e","tarball":"https://registry.npmjs.org/bamboosnaketool/-/bamboosnaketool-1.2.1.tgz","fileCount":95,"unpackedSize":372730,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhwnLNCRA9TVsSAnZWagAA6dgP/i777Elf+JC2S4m3S2jK\nKtPuhsIVKdIOfFBBFi6BERmQi/hpE+rvxYZDknF5BjWFLWazmpika0k5GsRR\n8XYvSeCdugp1Vo5sauNqOwZzSm7bDTfXaGqWdnOfJ6YWH2m03HV3xMmwaSxu\nsmBfhZG7D/RQp/Ar8kyMbBaySPJAi/rJGijYK0DIBhBeKHT3t2X6g5KysoIv\nxUORSrl88fDRZBt2rlD4ssbv2ltXZL6M9sTZO21z6c9ikguGuQ1S+juPUPVp\nafucF/YGyIXrRxB/r9y25gYKu+0e8+CLJB2KQqKwXzhyQCZOGbwY3lqNigIc\ngAm3YLRmWueSZ8fgMHT6m0WscW3iNKWXztCjhjxnpR/ZwL9sKSkbQin8Tv+D\nUFvQYIFQHfxQt/GVuJ6/NdH4qO9DZ6S3cGhHr4OeAEzFQ2Q+VFabuS1+s5UT\nU4igyBDSb6h9TE+wOBDlt1eS15997a/krZVthQ6Z+Y9hEfdB9/MQTDV0roeO\nbAHuoYUWizSWeuSQromqY4x2NoLWE4ZzxStylI+JDsarFRUuAUqsFDzL7Kl1\nd+a/sCE/+uf5cdXH4Z3O9FScj3gFp2NNc/RE09tHoPbnU5wOGLVTjHOti1n4\nRuA2joE8SB081coHSlEouSettbhzgfrK2qgSLdM8ERaJdRzuIwyFMX6KgSi9\n69uu\r\n=9YRu\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAwoGfGAxIX4d+P5bodIrQO81m9Y5AlFhLg8JG//PCfRAiBjIFwHeePHGi+XPlfLr2ilAfAEJzOACBcqx91Sg8cW6Q=="}]},"_npmUser":{"name":"liuyunqi","email":"283373960@qq.com"},"directories":{},"maintainers":[{"name":"liuyunqi","email":"283373960@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bamboosnaketool_1.2.1_1640133325140_0.5862821219339587"},"_hasShrinkwrap":false},"1.2.2":{"name":"bamboosnaketool","version":"1.2.2","description":"Cool tool features and some components.","main":"index.js","scripts":{"build":"tsc"},"author":{"name":"liuyunqi","email":"283373960@qq.com"},"license":"ISC","dependencies":{"umi":"^3.2.14","xlsx":"^0.16.9","antd":"4.15.6","react":"^16.12.0","react-document-title":"^2.0.3","react-dom":"^16.12.0","echarts":"^5.1.1"},"_id":"bamboosnaketool@1.2.2","_nodeVersion":"12.9.0","_npmVersion":"6.10.2","dist":{"integrity":"sha512-YOAbYQkf0JxJYtaMPs6zS7i/jD0p8E54FZISkmpwwG8gZLIoWkF2x6muWZueTCmNPUpIvE9J+HUn5j1LfexFIg==","shasum":"74e0864e097aeaf538c44e66e4eeb057efe7da35","tarball":"https://registry.npmjs.org/bamboosnaketool/-/bamboosnaketool-1.2.2.tgz","fileCount":95,"unpackedSize":374983,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhzXzsCRA9TVsSAnZWagAApj0QAKFlYFtpRn5Gh25qT6T5\nqscXQTqy4E+O2U5XUhzQX/KOyCnKkQKLEjPU2T6hJa9gjM3Y8s4/N9rptveW\nVQgHX6XM/etPsyTkXY6NHaQ+Tm8ypMTN4EfezIEEv8lWI+g042NbHAlwXZ+3\nEx38oQc1Niut4ZhvD9he+cKnwHKFbPfNGCZRKg+2dJ8cG55G+7Tf3Ife4W30\nJj0e9AR46khULrtaL8yjHLoibkDVpYRcG2XnFZ7PTh+ctJnCj9PogOpEOb8s\nyLeKhVDipjVK7D7m0oZWWzGvaYRhq3HbeChkfeXvD8/w3n54jx8yaKoW+i0E\nxuWYYy5hAquVtznAJr39tsqOCmRaO8cKfpIo4+jnuiAXFJNApBTTBo13Zvs7\nVBHpZ8dwZQjaNMCmgnBd+E6BVDLztF3qfgkEfDMbNN6p9EnDIkPKIzqz0j2o\nYNcpkW3Vz2w2022m4IU3VP+z/bq0MoTcEnZ7puWcla1BiSRB0QGRjxw9Xv+A\nMhdXG7LdqkA56O/xz4kbu4ibND8J8m+t2pT7nVg5n0RANFGFY8XQKzDu+08t\nE+t6VqE1fCOEbBDGItHbVozrnyRLI5qHj2brg1RcrLm2aGuZ7bp8mDUbQlJw\np3c3FqMdgBFqGo25m6lcI4lkgT8I0prOPXjwaaZjibH/nnqOCRkc8Mz7vTnQ\njBlu\r\n=XGRR\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDgVNyWtFIywUBL+Q4aNalf7GcukU+XRhOTf4wtNmMVBAIhAJIyX0xNZ98e8770TwmWHT4YUAgHZo0N8yTbo1lBs/7Z"}]},"_npmUser":{"name":"liuyunqi","email":"283373960@qq.com"},"directories":{},"maintainers":[{"name":"liuyunqi","email":"283373960@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bamboosnaketool_1.2.2_1640856812297_0.36754204033224513"},"_hasShrinkwrap":false},"1.2.3":{"name":"bamboosnaketool","version":"1.2.3","description":"Cool tool features and some components.","main":"index.js","scripts":{"build":"tsc"},"author":{"name":"liuyunqi","email":"283373960@qq.com"},"license":"ISC","dependencies":{"umi":"^3.2.14","xlsx":"^0.16.9","antd":"4.15.6","react":"^16.12.0","react-document-title":"^2.0.3","react-dom":"^16.12.0","echarts":"^5.1.1"},"_id":"bamboosnaketool@1.2.3","_nodeVersion":"12.9.0","_npmVersion":"6.10.2","dist":{"integrity":"sha512-w2upwHESK/lOGEVQlAReJXIWMDYuolQ7evEU3EGGgj3CLbpjJEkJQuvwSxvqgBg3KWbmWBmwKjrlujhEHoW3yg==","shasum":"be24fc1775cfe117a2cffe22913d570e5f31e21d","tarball":"https://registry.npmjs.org/bamboosnaketool/-/bamboosnaketool-1.2.3.tgz","fileCount":95,"unpackedSize":375529,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhzniICRA9TVsSAnZWagAARtIQAIXvaknm9cPexChOy2iM\nfddxDtsnfWJ8b+BbwsFReUao57A1SoSFYZgZYvk+t32fwe9NPuyJB0dODyWB\nYI5K12Jl2bl9SZyxvuJfJSzlpdpRRWRxg1LGIXMv4FPt6qTWsuCzlzXYCTdG\n+5wmtxPmNtLMvQOGGlMXPGl5zSFHaqmMaLix2IZIF0gfJgvvN7I/AVLW8BiH\nSa4vMp9fdq17yjFvMx0mOnnkAbFGMi4xaOnQOR4EiXPEDmV4ps0pthWez4sz\njG5kVQS75+qPEJqKw9FmZf1C3P+yBpwcmJii+FblRDiqIj6wyIIFQuglAy0Y\ndnJwrxAZW7IyizeT9FFWqWh/bWzKd3Z/CinyI3xLIy4rHPhLkds5iEZpQLFF\nWL60i3TvFX22z9Ml7h1nMFdBXkKRE6pNyYvgyq5FjhMzM8CBnvNiD+QQtimP\no3tyIvozSvDtIwmXtjTHXXOUi9w6mjv0nFYEFqV3l7xhfATmxks1gQDTzmMI\n/41ucV6kVrOJ8QQi/zCb+ygtlBJcZwmZP16pakeaJx9VDxR5Ifv5bBfziRjm\nkNkNgvg0hEbpy0gUHcubWcRFsSkqXLAGck28W4izXN9cBZc0EYgRNjxvkPwt\nPcsT9Igz/JwXsTp8cE+7/IC8kgkKAxCNUYVi72oi5bHfhwzMh0tZYalvSMuT\nBZgr\r\n=SGvf\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIF/rt4LUC0F8BTy6q4syYaEPSiSKA6Nj6L3w3FxngNUeAiA623PbFbdppaRexQmcOV+8ohUHw3dKwVt5++AFz7Kc9g=="}]},"_npmUser":{"name":"liuyunqi","email":"283373960@qq.com"},"directories":{},"maintainers":[{"name":"liuyunqi","email":"283373960@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bamboosnaketool_1.2.3_1640921224149_0.3148550379184125"},"_hasShrinkwrap":false},"1.2.4":{"name":"bamboosnaketool","version":"1.2.4","description":"Cool tool features and some components.","main":"index.js","scripts":{"build":"tsc"},"author":{"name":"liuyunqi","email":"283373960@qq.com"},"license":"ISC","dependencies":{"umi":"^3.2.14","xlsx":"^0.16.9","antd":"4.15.6","react":"^16.12.0","react-document-title":"^2.0.3","react-dom":"^16.12.0","echarts":"^5.1.1"},"_id":"bamboosnaketool@1.2.4","_nodeVersion":"12.9.0","_npmVersion":"6.10.2","dist":{"integrity":"sha512-sYbuC5ZEpMDkeC0KAq+FHPj0L/P79ljd3AzQGomO1qNJ7+SoPziknWFUZ4BP974DU2f64y/e9lzVTXgrBPYe4w==","shasum":"8df7481b8e7bf5e76f1b25525950be36245dddd2","tarball":"https://registry.npmjs.org/bamboosnaketool/-/bamboosnaketool-1.2.4.tgz","fileCount":95,"unpackedSize":375812,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh0/8NCRA9TVsSAnZWagAABBYP+QGcSTyHuHpWzwkAdicU\nxdLTpnpiK5LqDMoHFxUZw4I0DoeplfqBqME3TZCMGPETrC6JHz0H9sOKESkB\naH3ZCstJU9h/lP5TqCW50K/Fs20wuIbCoPEqXTAjnQymoFcJzTgQGqKl56nW\nvHT4jaajbArVX41L6LRtE9ZU2253s7W1E5uMaGqrOdA5WZw8qTYoaZRX+HW/\nv+Vs/+9fh0ruLQKPqphxbv8YgfLSBy8wIToC6WmF5A94PW/bIvcizBY9J3iZ\ndV5/6CUnOblSu6HOVAsAjz4c/DjekQNDCeJcSVyH9WwxgAIev9dc90xlISvz\nyqD08LVkhOGM2h+1kuIkgAo76BznPYbGnKGy77TW34TCBZdAQLI6VhOVA8rd\npr/RPXy8gSgH9YjkijVIhtC2LKLW4UH4gH/ZWAtWnbQU8sGJqLymoYuvrnFb\np8dCmn7IFab9LZyhEDT89y/gop5ExE54zMQ7MZ9wcX8ZrzZbzPJwzyTvScoI\nMjUg1PLho8JGXQLuQ8QTD3WlrVSxi6Lli5N1RW2dXN1ntHxmrXVuFAgPqtSf\nUAaKkToMV4LaPtZ2UFyDP8wCip1Zty4s76hXpIcCYDSzzBmN347944UVi0os\nTC5+a9YKush1ikJhb+xTgFcX9MArY1NisbVA0c3Hg6tInpx+KysQ+ElRex0w\n37Iw\r\n=MuCw\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD7QFYXPhGKHAmIAVmiomq8Pwn7agPYKlD2LG8l4IrTXgIgVQNVcN+16M+4do/OqnmwK6xu2gBC5ekMnACONmBy5Iw="}]},"_npmUser":{"name":"liuyunqi","email":"283373960@qq.com"},"directories":{},"maintainers":[{"name":"liuyunqi","email":"283373960@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bamboosnaketool_1.2.4_1641283341581_0.8486642114480438"},"_hasShrinkwrap":false},"1.2.5":{"name":"bamboosnaketool","version":"1.2.5","description":"Cool tool features and some components.","main":"index.js","scripts":{"build":"tsc"},"author":{"name":"liuyunqi","email":"283373960@qq.com"},"license":"ISC","dependencies":{"umi":"^3.2.14","xlsx":"^0.16.9","antd":"4.15.6","react":"^16.12.0","react-document-title":"^2.0.3","react-dom":"^16.12.0","echarts":"^5.1.1"},"_id":"bamboosnaketool@1.2.5","_nodeVersion":"12.9.0","_npmVersion":"6.10.2","dist":{"integrity":"sha512-7Ez2MnyOKvd6tp/2uwl+7XdXAlWepZcPkRp28fyXs8SQQHFfqf9rTNzgggF4pNKZBYRPOPj9D3H6G0LYFDdabg==","shasum":"dccb9797c2059793cf99a230373f5de8e25d4de7","tarball":"https://registry.npmjs.org/bamboosnaketool/-/bamboosnaketool-1.2.5.tgz","fileCount":95,"unpackedSize":379157,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh33ybCRA9TVsSAnZWagAAtOcQAIZi5e9WaWGiZO6livDa\n/Xnw2dByyU+yU7dJuEvs4knx5+t9UgKqS26kMRgTgoMM5C2+hhOkK1HYhFoC\nt/msrklCCzRQFconfz+6235GW6DMw4gmG7rGQbj9ifHybFoKL6xw/kx6+iD8\nniuFq7dwbjEWD4i75cZDrdEb3hsU8V5zFGBVXe1dVeyb1OleTV5pGZuOCkAL\nmydhNsDg4LalIyy22ocRbjTrg5d0jW9s90JOR+jG7eQHpwhoQMCHNleugm1g\nKFuXkjBr9gVIhMrDBe6BN8xROjauYARaf0Xpu5pB9D3w9WI3ja4PON7b9ZZF\nQ6E3OSj6CQwUuQNE4+6nSMBLKz4nNHn5kKRnLVI9V/9T7pgg/qjB+oguvwoF\nZlTFsqIuxcHnmA2xU3cIbiFH6yJSUFEGbBPI/1DhlsnDqDDj7oyzS34R+VyU\nawCXZM4j1jpyxeIX15zz+uRIPGpTrMVSEDQDCTQc3loSnn1S/ITJdO8WgtMl\nTjOg595vBIfbZHUIlUMKUn5FNPThk5TgXfuqpmSCRI7xuvG61mYJx8JG3vBU\nW/zzqLTE3B6dnMJrI72GOzfKoa6SD1qIE30+/qeyLjpgrwSCHcQBVcdngIE6\nmKIYehn6IKJvyZVClyPosqal8tSCOK56Au00RhUlKSRc53t9/xfUWIvFTlvG\nwBj+\r\n=pkao\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAESQSJJHaSCyxw8rvmeL73PaS7CrHbP2rHhlmS16T7EAiBAwnooP0ylZfaV6eDeWKvewC+qE1XTlvTh9UvM1/tYZQ=="}]},"_npmUser":{"name":"liuyunqi","email":"283373960@qq.com"},"directories":{},"maintainers":[{"name":"liuyunqi","email":"283373960@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bamboosnaketool_1.2.5_1642036379378_0.9699378311435634"},"_hasShrinkwrap":false},"1.2.6":{"name":"bamboosnaketool","version":"1.2.6","description":"Cool tool features and some components.","main":"index.js","scripts":{"build":"tsc"},"author":{"name":"liuyunqi","email":"283373960@qq.com"},"license":"ISC","dependencies":{"umi":"^3.2.14","xlsx":"^0.16.9","antd":"4.15.6","react":"^16.12.0","react-document-title":"^2.0.3","react-dom":"^16.12.0","echarts":"^5.1.1"},"_id":"bamboosnaketool@1.2.6","_nodeVersion":"12.9.0","_npmVersion":"6.10.2","dist":{"integrity":"sha512-cDPc4E98s4/x+9eN0MdbPwmFn9XzHbbJG7wLJQsRKMVB1oMgdmy02b4W12JWJsTs9hYmV0Jy1drEILVVWaHT8g==","shasum":"ff592a284477f092a93c0affcdf42862882a87cc","tarball":"https://registry.npmjs.org/bamboosnaketool/-/bamboosnaketool-1.2.6.tgz","fileCount":95,"unpackedSize":384974,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh5oHTCRA9TVsSAnZWagAArDwP/iSUFtRzIaFLZcIlxS1G\n9/1ZyP0/75KZJai0cGUbrqklmL4szDL9y0I/oLLQFq+B4jrO9clj6pAjV9ZP\nhEOOYM5JT/7KH8P6m5e6lIRsEOp23t63x+H4JzazjuIsjaQYompr0aAYXTQu\nHAqbmHDTGtRfk9vOQSBEJWykv2OrkHcBF6/qlhXSKlJueS/fUbBFGoc7SUME\naJxHjrx2QZC2ghs94jBoRNTdU/pYfY1gIVKXA/eizKAh+qSGc3WPqv6pqDKg\n8WfM6hXcR3j0Wl7ho1wgedwBTAZ9iDam1S/N98+mXm5HExwZlULnkebb7XKb\nj46T8iWgt17HjqjHXa/daQbTW68neJORQRhpniCmAbojcd/6cFo/lRVFGdsV\nvbFIu95vFY6TOxL7n/JJ0yjJpPQYYkZblNnu6xdF+GgfgHPYmsloKw+akbds\nO5fJNfS204j34EnSxpFmzARDlSUJid5C7ZTIfLAM3INO6EXHs6K5NvjTP9Cq\n0xBhTreZKymKwkKJsnW9dnOydGFmSKxTdBO0B3hrmgJohw2hpfBzRlz8nzEz\nkuRN12QN1kQoMAQtyQocDOt/qDGJ5LA84MlbqCOejdCmvqKB6/B/U1DhvHwd\n3GDhVLtqVZBMP6YFYhK7IsIhdcK9mH613BisLx+JFKuq00ldIgMbSsfYGYgd\nKTaL\r\n=IxEn\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFiXWuIRbsga8usVkG8YTCB+kwbcGh4RADdTBKfF2dCEAiB7EuRG43imE+00AYLkbUjMnTEP+pTXb4Srj0E7XWOx3Q=="}]},"_npmUser":{"name":"liuyunqi","email":"283373960@qq.com"},"directories":{},"maintainers":[{"name":"liuyunqi","email":"283373960@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bamboosnaketool_1.2.6_1642496467337_0.9485055244383158"},"_hasShrinkwrap":false},"1.2.7":{"name":"bamboosnaketool","version":"1.2.7","description":"Cool tool features and some components.","main":"index.js","scripts":{"build":"tsc"},"author":{"name":"liuyunqi","email":"283373960@qq.com"},"license":"ISC","dependencies":{"umi":"^3.2.14","xlsx":"^0.16.9","antd":"4.15.6","react":"^16.12.0","react-document-title":"^2.0.3","react-dom":"^16.12.0","echarts":"^5.1.1"},"_id":"bamboosnaketool@1.2.7","_nodeVersion":"12.9.0","_npmVersion":"6.10.2","dist":{"integrity":"sha512-d3SdRo+nWi4FMW/LkJcSL+sCxIpNOlwNDoFm+9WBlJiUd8dqzgnfAeMSsT1k5QS1U8YIsh0JdmTxq1CoNzrbDw==","shasum":"323da43e5a053263b6608e42f2490787dd45c67a","tarball":"https://registry.npmjs.org/bamboosnaketool/-/bamboosnaketool-1.2.7.tgz","fileCount":95,"unpackedSize":394747,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiJ/i4ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoVSg//bF/dR79+CjLA0AbKxOyLNPzvjCQqvE3XIZSdBsCy+JxqTi+I\r\nOtOx234btK791yIHNGTsstbtUZRQtg2PKK3NhELifAi0lf0EAggVObpTC9Pz\r\nZ0igDyHtEi9BCXhpS0igopMH3h6vU3hBcZOJuIi+eQOHnUkPJpxtplV49Hhd\r\njrj5UFKNAb4tJOQQbw/Th9NIK0a6F+Xy+3yS1hYxmHWm+WT9Iz/Z+XLs22cn\r\ne0rL/D7Vn670mIi/YlQeDuvXBA736+/qAHrjJdUxEwV2H+KL+2lGwWxjZGDU\r\nTglHUZEGCvpMjADUVEK12hpaclmlggAavJMIdx4itpQQNR/63Cjaf8ifnRd/\r\n9s0Pg8MUCdFkdi/uK4THdcEeZr7isJ0BOY/8Nr9tPP4FFbju9hNqv/0/X0PS\r\nWPDe/R4Oi21jOO1ghQLLia+P1AnJu14HS0Q46HOCGvCkWVBcgexAzJg2A+2h\r\n9m2buHOIdhD6cLjQCXwAwne0sQhl5ch52r4eiodthAHc2Bf1p87uoJEEqkPD\r\nqxm9i7nYPO2CXY52UNHiq8uTFyuWKyMIX1ZQOw3OXGiBTu/2lxJ9VUAAFjxV\r\nRLAXHJHfiyBk/aafxtWhjfeGCCs6rpDWVzDD+DMENLytjbaaFoVYdPYWSRvt\r\nSWdLWFIWxcXqUI2HLdYSNKcnDw+TM0Vz2ak=\r\n=2vco\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIC8aPxo+zc/XK2xVhoFd6fArRflC/MxTotAu+rx6vDMQAiATNFKjQhsKiZBLe12K5whTwPbzMPBerJ5QekpOEzaXog=="}]},"_npmUser":{"name":"liuyunqi","email":"283373960@qq.com"},"directories":{},"maintainers":[{"name":"liuyunqi","email":"283373960@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bamboosnaketool_1.2.7_1646786744204_0.36784581084909873"},"_hasShrinkwrap":false},"1.2.8":{"name":"bamboosnaketool","version":"1.2.8","description":"Cool tool features and some components.","main":"index.js","scripts":{"build":"tsc"},"author":{"name":"liuyunqi","email":"283373960@qq.com"},"license":"ISC","dependencies":{"umi":"^3.2.14","xlsx":"^0.16.9","antd":"4.15.6","react":"^16.12.0","react-document-title":"^2.0.3","react-dom":"^16.12.0","echarts":"^5.1.1"},"_id":"bamboosnaketool@1.2.8","_nodeVersion":"12.9.0","_npmVersion":"6.10.2","dist":{"integrity":"sha512-FljShWkwGOF+TzvqfZHc7EltmvMsTFDdhN4X9YzN69RTGe12RzDeexV7RcWB6rZ+sqhMsA7UNcIWaTr4RVUBQQ==","shasum":"8fa3420ea8d3d99e462b699ac81fef449e2040e2","tarball":"https://registry.npmjs.org/bamboosnaketool/-/bamboosnaketool-1.2.8.tgz","fileCount":95,"unpackedSize":387769,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiKWyHACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr4Pg//eUznpz4LPVNQqI7KabP9+xABYhrCwhxPAtyVcSejLziKIA3P\r\n/qR9+goH46vnYLsvpBUcPJkHqwi5aWmu1oAgJijin/hbgUFozcvgKAESG1XS\r\nRF5nEDaY1OA/SX7pK/jQbPzBFnc4HM5zvnncElQJ81dHDpeY3C1hr7BqQA47\r\nzBHQeFtQ/nEkAyWkD1HH2A/k++xjzaSEdQz9paPW260aaDPex45jdgrRFJyO\r\nDIBPWPyAmUpitxGn4yiZSvF2wOhujkeRlWY0QFo+b4X1UKBhgOMwxKj01mB2\r\n9sgT80OjiG0pNZNswyt4dJGvyHziBI75cdPyN6gn5Dz4pMq26l2ntIZWcC8T\r\nsA6TgQd+84f+P3HKlVz/UtD12sqSy5NtnVK51QA78dcukjmxpZzsChkS+mXu\r\nOk1RB2RKuodVd2TA6bV5iPD0uGEyXUDC68tZlU3ecyyqXErLqRhYqTxisQUN\r\nx6g8Hs70hdFhDxGD0RqB0f39I//GxpNLDmMlcerxTXLk223Jnkq8MbPUQBdJ\r\nCSnzzkfgpr28zaxXNbT+ZcFsUI2DpOQGDsK/r5n9cUaZRHAzejcU/lkpdy/3\r\nQtbZnmeGyLsYlRxVlIahEuASycRxSc0PqMlIbFJRyt2qRzhBIVEg3pc4zVjS\r\nLh5r3WNtw+4xpR8cDOLuG12NHwJ5TV6A+ug=\r\n=jjg0\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFKTde5acdCSb7N3l4msB2HdxJxUq+ZPvTBEY1wIqRsxAiBPe1B2db8p96oX5HPOocsoNZtuwUH60pKAvQnid7UyrA=="}]},"_npmUser":{"name":"liuyunqi","email":"283373960@qq.com"},"directories":{},"maintainers":[{"name":"liuyunqi","email":"283373960@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bamboosnaketool_1.2.8_1646881927278_0.031230613315586853"},"_hasShrinkwrap":false},"1.2.9":{"name":"bamboosnaketool","version":"1.2.9","description":"Cool tool features and some components.","main":"index.js","scripts":{"build":"tsc"},"author":{"name":"liuyunqi","email":"283373960@qq.com"},"license":"ISC","dependencies":{"umi":"^3.2.14","xlsx":"^0.16.9","antd":"4.15.6","react":"^16.12.0","react-document-title":"^2.0.3","react-dom":"^16.12.0","echarts":"^5.1.1"},"_id":"bamboosnaketool@1.2.9","_nodeVersion":"12.9.0","_npmVersion":"6.10.2","dist":{"integrity":"sha512-M2nvjSKhhKEO2HEAi1rdx87n88R7BqsMW03aRLpZhDRFYfJtRiWFxFlULoF7u4tCGv/4RzIjhZFr6KhLgiUhQw==","shasum":"394fa09add9cbc7077443755dfeb423c2ae361ba","tarball":"https://registry.npmjs.org/bamboosnaketool/-/bamboosnaketool-1.2.9.tgz","fileCount":95,"unpackedSize":387797,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiKq8oACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqhZA//Xu4ZuaI8fEh3CJtNp3qLpUQCM2MZYvHWOvc73jWJKMmP/uFW\r\n/oRsHSY9Mvqh7AlnU1BAALTRW6st+CPiPbT5CgqGj44trWa0TFYaG/+2fDU0\r\nAXdj4/fH4aI0Ji0X3glPKI8OhQk+qFI2Tp/X1b+O8M9RDURmsv6c/27w2b6w\r\nhseCMY7cFu9k2j6rPdkzHkMv5pIJ6COqNSOOY34EMqR+6EhQvjL8VBgtrvA0\r\nrAros1O+PdtkhtIo8Jz+5uy15k0dw9ieBfViGU8mgB0ovet6m1RZFzPGwik2\r\nSIdeyjur78fMChO1HFnjj7avIDrx+I1U+ZPtt5rf6z4r9WUNknK/qCWz/AR2\r\nmk+p+BtfR4zQEN50d1L8ZxHC4hT9fK3l2rle9JkyzQbGu8Fi9nsXGwZS5LaX\r\nlHQxfmslKrbEQ60VlJa2ZTLtLqWVQdzvUS/U0ZbtrBLVnAnnT0IoP31yYO65\r\nCQpkKcf6Ox2BJgs8R+5jhwH8gxDHynfl1X29e6X1fZ5h2iaDPeqiwZ2F3+Jw\r\nyKvkdpdA5LpNAO//nbZkDylGJLMXmKGKGu1xhKqQYpDareGQQJI5av//iv1q\r\nhMes03YIPe1QBkG9i/W7CCVHWk1si5R8kAdrb55TDVtTHTWacW8kI7eZzXe9\r\nYkVN81Uq1gu8aY5obVP41woo+PFYE9xeqNM=\r\n=USbS\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHXKVBjMqUHZUmK4f2yDvrfeBbc+JezqiShCEE6ZwpOVAiEA63lzgtNOkRBBpyURKFvJmVEY8fqXsbixJnvZtQJuEaw="}]},"_npmUser":{"name":"liuyunqi","email":"283373960@qq.com"},"directories":{},"maintainers":[{"name":"liuyunqi","email":"283373960@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bamboosnaketool_1.2.9_1646964519932_0.6612445770365454"},"_hasShrinkwrap":false},"1.3.0":{"name":"bamboosnaketool","version":"1.3.0","description":"Cool tool features and some components.","main":"index.js","scripts":{"build":"tsc"},"author":{"name":"liuyunqi","email":"283373960@qq.com"},"license":"ISC","dependencies":{"umi":"^3.2.14","xlsx":"^0.16.9","antd":"4.15.6","react":"^16.12.0","react-document-title":"^2.0.3","react-dom":"^16.12.0","echarts":"^5.1.1"},"_id":"bamboosnaketool@1.3.0","_nodeVersion":"12.9.0","_npmVersion":"6.10.2","dist":{"integrity":"sha512-u5lt9cY8gFxutiVOvSdgGKgHsXBUxTqXtfqnZI0vKJ2mIQwyugNQ+mcUiiyJut4tRrSi1VzCp9C8cCMQEjsMEw==","shasum":"09183286a37a657055ea4aa94f07d183f5c77dd0","tarball":"https://registry.npmjs.org/bamboosnaketool/-/bamboosnaketool-1.3.0.tgz","fileCount":95,"unpackedSize":387904,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiLvbyACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpVgg//bD/pcPJhmEDcrT1gil6maWr8TgOq8nYzrQwm17OoFD14Sdfk\r\nuLERNWCqMVfqzhd8aP7639kP2X8T3dBVyiiBTISMh7084lJ9ljHsb/+d3mzU\r\npyBTtYGn8nYYvZ42fdLwE9W0BCszOWolaO7l3Y7Haecfms3Wo3PXfh4lH4pI\r\nyltdVWmWekw2/jVe8pMkIiWz0KWoiQCMq2D+Iy42qurpx3E0G6QDr3wVzja6\r\nMJd5Vs80MZdchSIDdqJXi+oSKG9CefyYygyEWipnN8ym2fnrxn0utGEpufAk\r\nIXQ52TszmE5R1len9Ryb+g9LmoDs9qLCOpacVrEszswjbYjsawd84YLTxtV1\r\nLC8gXq1BtFUgeroCAsrL3SYkBdAHuOYRk/ollrHdDZrpj6P25eTmm6bhqAou\r\nqOsgIwMz9yKbMrrbkRBUXcy3c8FKXQHlLiR9RtP/GHCVZXjZnqUCORU+Zoex\r\nPjXCfuhNtNOMF2gL7dgScGg6cjykBCB/wPYOh5otvEvnUOhBRxGUiPP8lm7p\r\ndkmijvZ+bj0ELKLwYjji+VdG6Q/xVBImkabqzVJlo/iC3n3brBX48ZRhqDIR\r\no3DWQzzZUF5T6f7p1qppBqSQydloBXnQDZgQhy5zHTj1RQN3FbGoxLfTvL88\r\nFwZZIsxmVxQDaGr1sZab3BUlG9+WX85IuHg=\r\n=v7Fc\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCAMXXB+6xWF4RCzO/NLPiV7vy90ESUHQamSx4tbuUQGgIgWXd7eejrLJACphbKEDzcIdVSrCGI1IWyrkjQ5yiRr2E="}]},"_npmUser":{"name":"liuyunqi","email":"283373960@qq.com"},"directories":{},"maintainers":[{"name":"liuyunqi","email":"283373960@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bamboosnaketool_1.3.0_1647245041919_0.28055477992467903"},"_hasShrinkwrap":false},"1.3.2":{"name":"bamboosnaketool","version":"1.3.2","description":"Cool tool features and some components.","main":"index.js","scripts":{"build":"tsc"},"author":{"name":"liuyunqi","email":"283373960@qq.com"},"license":"ISC","dependencies":{"umi":"^3.2.14","xlsx":"^0.16.9","antd":"4.15.6","react":"^16.12.0","react-document-title":"^2.0.3","react-dom":"^16.12.0","echarts":"^5.1.1"},"_id":"bamboosnaketool@1.3.2","_nodeVersion":"12.9.0","_npmVersion":"6.10.2","dist":{"integrity":"sha512-qCdl6NEO4Vhib41ayCr0+FeRDIN2+F7ELGlGSS2cD6Weamh4SjQ5IugWIpt+8p6sQ6DNvHP1wL+EflWhkCl+3g==","shasum":"08fd2fa6cac1b87e2af53273d3c505ffd5c86811","tarball":"https://registry.npmjs.org/bamboosnaketool/-/bamboosnaketool-1.3.2.tgz","fileCount":99,"unpackedSize":412001,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiOnoAACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo63Q//efEsPJJRItY6ruSF1nEMVRVyiBoK0mMEVX0ePtVCQ8N8Er4H\r\nH57Y8P4518MKIYDpxHwXkj9Op12IguqqCw163qHO5PLHbaFu0WIhmBzRKCAh\r\n9+a3QSRa8IyoFIcS4ENQkByhTw1ADL6/c4WlwXFx65WD2IzPUVHKyULujr65\r\n2lidu6WO2BXCJuBeviX8e8yVgVnKaYmxzpuGwE/3zZLkh2UBdsJizL/EYwW/\r\nbC8yYlYdmvK8Nzexez4NESRaFtz5r1LAMydy7f3bfDCuP6Rhaev1d/5zUj3B\r\nhhagpbjsTUG6m+hOZLV6JdLxMovCITsk9C6gvaBYNMI8VVuhoAYQf4kqpuJx\r\n55iRgyvrZ0rTA3qbi+l9FuTWL6nkYAv62BJ4cPDJbvozbyYjM6UJn06y+/f2\r\nkKzK0Ab7A/8dbpuKrngOGIB21JNpiK+dx96a2+xbiA5yiBA25VboW3u1fB7/\r\nyDHFVR7VeAI1i+9Nw0noPfYU4lqHr98iKJlWOyenhGO/0IBhOgT+euJsfWih\r\n7NNg2HZ3/um6kAp+MmQVqPxqjOm2D7y/yrPpM8Dpopi4yfrZRVJS8BRWU8mp\r\nd8I9Y1+Baf+HXjz8kF/2aXAGJ3YKw6KI6q0O91CW70fiHaHXZkh0hH/OrvqI\r\ndFOsh3MZgQswsov6w4soMd1adgQepymDOgQ=\r\n=dtS1\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDxREatmUI8BJWWiNUE7RQZqv+gGrJAz5ZavcbSun2HJAIgYB5XOi/sRo/HIZQbF26g39/6pfQTsCPZEi77U3AJxFo="}]},"_npmUser":{"name":"liuyunqi","email":"283373960@qq.com"},"directories":{},"maintainers":[{"name":"liuyunqi","email":"283373960@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bamboosnaketool_1.3.2_1647999488530_0.5238473293620796"},"_hasShrinkwrap":false},"1.3.3":{"name":"bamboosnaketool","version":"1.3.3","description":"Cool tool features and some components.","main":"index.js","scripts":{"build":"tsc"},"author":{"name":"liuyunqi","email":"283373960@qq.com"},"license":"ISC","dependencies":{"umi":"^3.2.14","xlsx":"^0.16.9","antd":"4.15.6","react":"^16.12.0","react-document-title":"^2.0.3","react-dom":"^16.12.0","echarts":"^5.1.1"},"_id":"bamboosnaketool@1.3.3","_nodeVersion":"12.9.0","_npmVersion":"6.10.2","dist":{"integrity":"sha512-O0j5SxCptr0zxtz3gukqEEQvC+vzzC6eOqGHsWN/7alpDwJqkZ3FrQ7zdbKlBzuHcjvmMYz4DCA4F360y8wHWw==","shasum":"6d3da30fed9b48d9f296a2eb5074ff6c804f34f0","tarball":"https://registry.npmjs.org/bamboosnaketool/-/bamboosnaketool-1.3.3.tgz","fileCount":99,"unpackedSize":412039,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiOoHuACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo9bg//U0cvhcnJ1YLV+eSG9TfEg/FC7gNfhoTsxRHSJKzG8WY037lJ\r\nx+0jIb29t7uYyM6WtIY9lkadDwQgoRRg9bKNNBYt1Ild6bSNFztJOrEeaX+X\r\nCZc1UYAzl/NMDGv3GV2cJKtZEW0/YRZnfeLWkW8PEA9mzWVo4kW7q8/cQ3kx\r\nSzsiuVND3WTZzMJw8GU08AMfoRvvkUkRP441b1jcUMR0onQLmw9bNrZz0yWp\r\ndafiLPFqVEp1h9F0/FCMX5T1zTIJElyXMc35FPAXNocjPKJ9iNH1CJx2oOHZ\r\n35mhDXBZynICWi4sw+jsE529rLLWJGllFX9WDNACJVbXkwcLZik4c7DeResE\r\n241+PXTsVnKKc5WWv7WSUABjx4y4t6hwHMC8mt5HtJPfr18XuO1xeb8f37kq\r\n05UTUhOwihGyTdjFmPUEOJ+p1gyzBJZIDnWCSOjAco+YrYeTsG+OouWAjEk3\r\n2rsXxgYTJ3X5yfFL8lU0Kr7nWNfDxfDCnxNguovk7wv/RWw18x4zKcxyPFMr\r\n5B4p/w6tWIkvr5uyTL0e0V0OwPLc58sNOekTefy0SBWinujDqX5KqBa3uJ4m\r\n9b3Aknh83pdQm7Ikh04+/iHFPPrVQOIii8OI5MVDJYiwmIbzqbOVYerJMRuK\r\nhsL4bxnfO6OG/pbuPETmRl+oiMWBnsISKGg=\r\n=Js6V\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBQP7sC6sP02Q3wym5ueXZM7Llq4Af4xSLEbIf8a94VGAiBiN8j7u2AINwHXNOBHv1kBoFiVbonz56vGzGqoYsg2dQ=="}]},"_npmUser":{"name":"liuyunqi","email":"283373960@qq.com"},"directories":{},"maintainers":[{"name":"liuyunqi","email":"283373960@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bamboosnaketool_1.3.3_1648001518035_0.6671921181143579"},"_hasShrinkwrap":false},"1.3.4":{"name":"bamboosnaketool","version":"1.3.4","description":"Cool tool features and some components.","main":"index.js","scripts":{"build":"tsc"},"author":{"name":"liuyunqi","email":"283373960@qq.com"},"license":"ISC","dependencies":{"umi":"^3.2.14","xlsx":"^0.16.9","antd":"4.15.6","react":"^16.12.0","react-document-title":"^2.0.3","react-dom":"^16.12.0","echarts":"^5.1.1"},"_id":"bamboosnaketool@1.3.4","_nodeVersion":"12.9.0","_npmVersion":"6.10.2","dist":{"integrity":"sha512-fn1Dy0/aKT9TUQuauIUTMVXTBgMlObrDtOZiqGjVvs46qpmdIyrymRDv/e48aqXCbfexiOA2blhDJbSi1jWDOA==","shasum":"82fa1f81da3cd195bc9a43591153b87cd0dad057","tarball":"https://registry.npmjs.org/bamboosnaketool/-/bamboosnaketool-1.3.4.tgz","fileCount":99,"unpackedSize":412114,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiOoaNACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqoEA/+LBKbeKPfOA1pV9Tr5mA0LLUDgRxfMDMKbW7HiubvsmGBc9Iu\r\nVzdH5xxkZ3vNvMhYo7cxTPQRSDc1bhL4H2lTjvZWkUot4TGEGjDKeMhn+oGc\r\nS4HzK0tAN/KrlGuvSYZzY4EgadcnQDSFmM7L6bYAWoAQZDLTln3w/ye+049o\r\nnuwF39p9ALAieG00+A/+GarucQ6R9dS8PQeFZBjGKxSi3Xp8j3Ax7zrR/XUD\r\n+Gc7iTgXpwgX/jpABuxJMmqYCDkWJw1pJ2VC7G6Ht6LszuANCZDsCxGYiZQB\r\n1VdFYp/VuRqfKQ2hXdZETq/0VwAywrxOx2nG5duhES0D+7UQpCzd/p9dBzlK\r\nIfObK5eTfhxwTpvnpANMr11V6TdvIfU59rOuGgIHN7Qy8oKB3xXdY22K/ew8\r\nocZB+P8F6UxdNy+NF18TXBAPgZ6hdN9qVYCY/zOTP5CdcBfppO5S9OHPtBzy\r\naJwGOwKiw1lP6EVKeZXShGRqv1lqOsdvHhKLYEllSbV+7UDXqZYvyzcfifp/\r\nAfFAg1aMVRrTLXTbjUcDWTyh2Rcoajcfg1gWZR3g0jnc+i5ygT3ZpJshkurU\r\nNEITvTn94pIHQwXGKZrdtTewBD5P44OoeDmVn4LX9Jbpwqb4iCoB8NVMJA/i\r\nHu+Xk3TUz1khRLE2ItYFC4X+xoJulnbSgGU=\r\n=pIm2\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDboIDde2EiADEm+inbaqaNsBBi+DMH7JvIt3SnMLjSOAiEA+Cqw/cVhzIVcQqE7yXY7tRhUeoO1YbJDRcelOSIISsY="}]},"_npmUser":{"name":"liuyunqi","email":"283373960@qq.com"},"directories":{},"maintainers":[{"name":"liuyunqi","email":"283373960@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bamboosnaketool_1.3.4_1648002701129_0.6748634309595045"},"_hasShrinkwrap":false},"1.3.5":{"name":"bamboosnaketool","version":"1.3.5","description":"Cool tool features and some components.","main":"index.js","scripts":{"build":"tsc"},"author":{"name":"liuyunqi","email":"283373960@qq.com"},"license":"ISC","dependencies":{"umi":"^3.2.14","xlsx":"^0.16.9","antd":"4.15.6","react":"^16.12.0","react-document-title":"^2.0.3","react-dom":"^16.12.0","echarts":"^5.1.1"},"_id":"bamboosnaketool@1.3.5","_nodeVersion":"12.9.0","_npmVersion":"6.10.2","dist":{"integrity":"sha512-bLJiv3VtyyyE6euEjgVZInBjg3tCUqNj+TqErMHe6vBHZ3P7hpNwNs9KILE/N167dxf2Wawtaur5qQooFnZJ6g==","shasum":"37c4e5cb7562a87dfad11a4664e60904ba97ef62","tarball":"https://registry.npmjs.org/bamboosnaketool/-/bamboosnaketool-1.3.5.tgz","fileCount":99,"unpackedSize":412974,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiOs0pACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo6Fg//VMHl2orCGtckhaGWnZ474pKn2s5HsqeImwuyBc7ebLfCYqSA\r\njV6wD/TNqd3FFvpSaKuKdrqjFWIvQbZMCN4ybjTn2ioXWWmO/t6s6RxBljFe\r\nfpcKRTeydbD3raJWAzLJ/qgKvyKNaA+Et2/HWtlHRAdVkG5Rsn34fHq+7NLf\r\nEyw9sgClFtkTw28SBQZFoVQoeR5zrZk2176aal/uE7rnBMJuTjgYAOT1K6OR\r\nBKpNhnSxUC8xqhDUJkMDh3fmdr6H/QUnf9acy3NwfK+UbRfsfXHogHSV507y\r\ngwObMPU0qafvHO/KVkEzFoPVfPz3p8HlbHlUfgWjmpZtqhlxyiwDgq2lVtxV\r\nDiTtUoEnHVCyYBKewH/plMSVnjdAi2Rz76po3fzrFgqAiYdV32pghzuC3tb7\r\nurVlFJPoAuPneMOB3H2NPnhs4CqBoWf7R6O0BIMG4PoDBtPhufWj7UGsTZP9\r\nuf2w48TQOgIieD7y3R/Gd63Rxb2V/eL4FLlaiqKvxVwSihkppfuWxMqagkCF\r\nwJTehjARmxzoqKQWtRkqvl6VAJIWgNNPxmyCoyYKnFzEEJJE+joE20R+X5up\r\nYipSTSJSkIlWta82vljJnCiVphuJKuGEdJhBB75aLWsQWlobT3BM4x6WXLU/\r\nuljUtntPJ32LmIDNl1fI6fABwFjP3qKgsFs=\r\n=UIKW\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFVuO/U5hH0ZK781MRtTkeuqXHJ2dA7567faTWTKCCLCAiEAnIRb6it8L40aOAnuEGPizOQEja9SPFw9rOH/gDzeBuU="}]},"_npmUser":{"name":"liuyunqi","email":"283373960@qq.com"},"directories":{},"maintainers":[{"name":"liuyunqi","email":"283373960@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bamboosnaketool_1.3.5_1648020776375_0.8815610216703331"},"_hasShrinkwrap":false},"1.3.6":{"name":"bamboosnaketool","version":"1.3.6","description":"Cool tool features and some components.","main":"index.js","scripts":{"build":"tsc"},"author":{"name":"liuyunqi","email":"283373960@qq.com"},"license":"ISC","dependencies":{"umi":"^3.2.14","xlsx":"^0.16.9","antd":"4.15.6","react":"^16.12.0","react-document-title":"^2.0.3","react-dom":"^16.12.0","echarts":"^5.1.1"},"_id":"bamboosnaketool@1.3.6","_nodeVersion":"12.9.0","_npmVersion":"6.10.2","dist":{"integrity":"sha512-a2gLNw1fs94LxiyxqeI9SuTSayBLotv3LN+2Or/M65YaDdysAPg8t/bM/DYNgRR+5RQdLuGondGtVCg2TWRCuQ==","shasum":"ee8039ad5c0e5aa1e9534ffed4776ba02c1b66b6","tarball":"https://registry.npmjs.org/bamboosnaketool/-/bamboosnaketool-1.3.6.tgz","fileCount":99,"unpackedSize":412810,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiOuEvACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq/3A/9Fmpn+V0FLO4gGlOlDb7vfkYQLZvuSatFCTXOhqap/7+ffDSh\r\nZBLajEQViPTFiD910bIj7p3SAdkoRHAMAgsdjycPajz5ud8ltg8X2irqydws\r\nvrMQI0hFpCFhHA6iI2YOYGyQUiPTU3XtaTN2zq6TuYrYBzh1ZUSH+zNVRMjD\r\nUwMlgCMlzqXbij5KM5CX+u+KT31P0dKIv8pEUrZVRGOe262/QJZ9RUXORecV\r\nvhvPGR1kBANIkpQWO3xQImt197NkJF8F8sY1CDUtzSMlqh6PuBun4e5zBio3\r\nJbkzIcqG8+CzHxLOXt7ScOHNDZ66sptIHXyr58O5aMht87ayN00su6m9K3Zv\r\n3DuKr6FHjvYdhcRpr5m0CnanRkD+L7U9Uv82Gej5o4RnMfl1slHs3gx93Q/d\r\nAvmup8aA8NlWqE0HY60MBURrVNSDKdqOdPt+HFOFMHpgmmUSlknm3rv8F9LD\r\nYCHgcGsxVzvB+Ns46bXWo1lOEQOhKecENu5p91pywsiUNbiU7+S+UyJiSGYf\r\ndp0+hmIvvKKV/80RxVe+JWSPjxH0tgu7gG0YGGaWt7XS/8knSHzU8Jcf261D\r\no9Rn4RUPcZ37itHFj7ZW0hT/7wbKyJBM+C/w1vGpN6f1SAC08C9KwWmAgwk8\r\n3wHq8o89Lw5vAbRpFtjS/6jmFkT5xkPnbRo=\r\n=yvtN\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIF7B0j3Ht2wXM4DJpNJQ1YSIL4qRbba7+Y4uNm+luAfFAiEA2hO28Kbsv60fOCahSb4RTSpxGtj7DSInc7DgeZhuTwc="}]},"_npmUser":{"name":"liuyunqi","email":"283373960@qq.com"},"directories":{},"maintainers":[{"name":"liuyunqi","email":"283373960@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bamboosnaketool_1.3.6_1648025903430_0.3840282574527003"},"_hasShrinkwrap":false},"1.3.7":{"name":"bamboosnaketool","version":"1.3.7","description":"Cool tool features and some components.","main":"index.js","scripts":{"build":"tsc"},"author":{"name":"liuyunqi","email":"283373960@qq.com"},"license":"ISC","dependencies":{"umi":"^3.2.14","xlsx":"^0.16.9","antd":"4.15.6","react":"^16.12.0","react-document-title":"^2.0.3","react-dom":"^16.12.0","echarts":"^5.1.1"},"_id":"bamboosnaketool@1.3.7","_nodeVersion":"12.9.0","_npmVersion":"6.10.2","dist":{"integrity":"sha512-2F+7yfZCzRWmwlKMFY25eC0tCbgwayIrN3fxg+XJoEXeUf+9Jylrp2tW/TMisjrsVhLvnKQ9nNoIs0c+yQx8fQ==","shasum":"357f8350c9cd7a42840562a2d290e00ba36edeb3","tarball":"https://registry.npmjs.org/bamboosnaketool/-/bamboosnaketool-1.3.7.tgz","fileCount":99,"unpackedSize":413449,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiPE3+ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoXVg/+Ln4SdZa8eDdWoHCOqFZPlTJFCAJh9pg46szesa5Ba+KOILC2\r\nKlGfHElDx+MeSlNOl6E89zOEKotAIYLlzjDF29gB/Nt910H3zjESRz6bAj5W\r\nxVnhqypnffQbl9ypDwRRZD0YyQeU32SHomV4N7CuMRdoiEBFbCLBt70gv0lm\r\n8AbVdoBK4AeE2R9uMi0IVaDoKPXN0G+Khg+JYfUm29IHcnuIbuZdbPgb5H+B\r\nai1qn5X0a7I60Yfgs2UofOLyPEk+J9kWsMkOX/B4WH7DHI479Gezg9oU15a0\r\nh3qPw+PhXuLPLyeaTApW3OqgKpa5rjWZpV+mTZG6BTK6GCr/NanF3N2Hdm8b\r\nSNzLLPxSMwkYEwR/9Nrcmu4am23xYrUPQ/wgQXPyMN6H3CsxBkCdHBxrgD9x\r\nKYL919T/E7/vPZ+0dtlY9MDswG5QIAM8qpsoUGuURqSK6BO2VwIq6isrnFcS\r\nTLRMLSiuPTtM8rbYV5Q1JhVDGboLbxkSYof9OpCvrVTJnmmmR5LZLSq93fpG\r\nll8qEXUenIpAEnYqzj4Sq8ZzRXKadjuTspV+t7ZHpSkenfJ3+ifsY1PcriYw\r\n8I7OqzHuer18RR8sxr+JcyNdVcPDNhLwlMN2ApzxD4TQTGPvGNB9UtpYgk2R\r\nnTkTo6Zg6XrahrhFNPFWwi6RQDg6jnSmlQs=\r\n=M0dT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC0u06XFUUJocxYy/Umsy+yLgn6jBDjT6dsQbe7ITz6mAIgXpweGdr2H10eXfadl+NxNhtOvJ/V7OA5GKxw5czSqbc="}]},"_npmUser":{"name":"liuyunqi","email":"283373960@qq.com"},"directories":{},"maintainers":[{"name":"liuyunqi","email":"283373960@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bamboosnaketool_1.3.7_1648119294372_0.59697401446356"},"_hasShrinkwrap":false},"1.3.8":{"name":"bamboosnaketool","version":"1.3.8","description":"Cool tool features and some components.","main":"index.js","scripts":{"build":"tsc"},"author":{"name":"liuyunqi","email":"283373960@qq.com"},"license":"ISC","dependencies":{"umi":"^3.2.14","xlsx":"^0.16.9","antd":"4.15.6","react":"^16.12.0","react-document-title":"^2.0.3","react-dom":"^16.12.0","echarts":"^5.1.1"},"_id":"bamboosnaketool@1.3.8","_nodeVersion":"12.9.0","_npmVersion":"6.10.2","dist":{"integrity":"sha512-FZN126uoDAo2npBEUad7nnTnV8N9/3NIPqz232wbYKCl63zJUljIl49+zAjL8EVlvLFcPHfPA2RR1r8mra8d6A==","shasum":"b0bc3b91000ec00c262f3382b8ccea660642d2be","tarball":"https://registry.npmjs.org/bamboosnaketool/-/bamboosnaketool-1.3.8.tgz","fileCount":99,"unpackedSize":413586,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiPmVvACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqPJQ//RMirOy1IaLQk5Wg6kIW/q7TDWS1uIP+RtuO1bzlzurA2dWn2\r\nvoktPopQQm/FegELf1ocAVFrsu+NrQsQJqkIyHPsabe501jeK3mcO7koqcss\r\nEZ9+AeszzkV40cHP9sYqE6IK3XORHUvduBXq1JnT0c8UbTrwHWABJax8ui4I\r\nfJYx3IDHvmPXiDstPYwj6XkaalA5XEidrqw6iNQ8h1+4A6ZC3iWtnbKzUuvk\r\nn3rJZYnbnNNo8CutjHykAzX40uZ6kmnLMPgmwcr56nQU1pJ6Uatx8pO2m043\r\n05/0sY9D+eJWwMv5Lk3cP50TE+X7994AMAovn0h4QDyj6p/80X+U7emr2owb\r\nm5YtqbGuJEM0LBeeF8FUjjlD5m5lEVlerz/EfYogBRHHYwVJvsCJxIq1DiKk\r\nNnAQx8FKwwxM/Iv+wqOeot6TlbzshW0kRr0nhi2CzPUoE3hftgJxltJXluWE\r\nTP1jTjrESMV9gdTYx/GOZNi4O6kPhPuFf7TZrDzemxBWrnT1HhN2L87TcAFt\r\npVhJqaOlDW7Hq5QQwxH70jjsgYu4qU8oK29axQI7wjrsFIVKBpTqzx7AMnpb\r\nXF+HqSgTuuW+YethyKPoO6PvlYcaQ0LpXFYWKEzCOOGfu97FKXHmyifoIx82\r\nhKaOWT2LjQOBzu76vGoyexLSYl4T+1r463Y=\r\n=FdAn\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCr9pH069gyVkNYAjtpF6rOLvaiwZP296RHFfkG4vJVZAIgF1B1msbY8Z2kMbJ0Q2+PcnKTl4jm7u8NesDfuqLaD38="}]},"_npmUser":{"name":"liuyunqi","email":"283373960@qq.com"},"directories":{},"maintainers":[{"name":"liuyunqi","email":"283373960@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bamboosnaketool_1.3.8_1648256367605_0.3444683330118743"},"_hasShrinkwrap":false},"1.3.9":{"name":"bamboosnaketool","version":"1.3.9","description":"Cool tool features and some components.","main":"index.js","scripts":{"build":"tsc"},"author":{"name":"liuyunqi","email":"283373960@qq.com"},"license":"ISC","dependencies":{"umi":"^3.2.14","xlsx":"^0.16.9","antd":"4.15.6","react":"^16.12.0","react-document-title":"^2.0.3","react-dom":"^16.12.0","echarts":"^5.1.1"},"_id":"bamboosnaketool@1.3.9","_nodeVersion":"12.9.0","_npmVersion":"6.10.2","dist":{"integrity":"sha512-9DfA2F2Z1HmLpJNN4p4W024rwSdiZbVzZUCrGKGaiaQI4mN8kcEoWk/hEdVZPqxLyYZn+VtH2jo59RNOh00wRw==","shasum":"097ea3311d1bf220f123a12e6a1d5ea55a8e380e","tarball":"https://registry.npmjs.org/bamboosnaketool/-/bamboosnaketool-1.3.9.tgz","fileCount":99,"unpackedSize":414593,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCK3lAgYYmMY5hdhe/EbXl2e2qlVSpuHXnhakk/NTd1cAIgCWiL8oI9sggnT2HEETuvGgkRM18xyHxlJFwdMWzYaSg="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiTt6hACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqvdQ/9H3Uv1LEtkati4duLl15yOEjgyhGHdvuGzJ6qfgKDLI4ur9nC\r\nfZnm6aQ5H/NlRU1fAeRTY7jB6jmL67dYgD6yaidc0Mb9k6qBfgezorly/NWt\r\nIMSc1A81a11gwyFhOXDcg5mPJ96utgCf0XJxdgjvO7QOh08C2ENhgTM2AbJh\r\nWlhQjd4kWythkfIu3nNRDvkPa2HUgMXlEJaXk8dE0ABGp0Wi814oClhbBmM/\r\nT7ONW/ZTO1ohZKBqkOFsRKnTU8SoCxUC4Whr7tyaHGOGWxfG2Kh0FSu/hXkL\r\nGh2Ag2ucK4BWoba2k19xOyr8ZczpMI6Qo875iCDEUCDblBOgTgEuYSCsZyfp\r\nrAe+zmysyyTTMJC4/7RFJ2BhumsOZoGGM7GNxEplfKpgoW+gjliJTUGXgiJW\r\n2W7K2FEzd+05TRYoiYQ0/Lvg8On+Q0NVHBEJpe3RE0QOStYee+mTaqjexaxS\r\n5cvlOOFSGEBfJBTNwj3kvSbyf26RBh5alzPf2QzGly33oGSb/NpHhuIDUpZs\r\nzwC3t1zCEdUEcjWhneYU5XLB5f5FyRvbuRLfp8xfPJmBts26OixrfWyvuwhq\r\nmqnJ80Cv62pIHXKcOXkToWM4X5DJ3bCLbb40sBTlWKPowT/EwVDXSd56adQy\r\nl/wWeaqVPY/sCEAkE40FchTf7ECrWhBWnJU=\r\n=5UOO\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"liuyunqi","email":"283373960@qq.com"},"directories":{},"maintainers":[{"name":"liuyunqi","email":"283373960@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bamboosnaketool_1.3.9_1649335969040_0.7007435207982369"},"_hasShrinkwrap":false},"1.3.10":{"name":"bamboosnaketool","version":"1.3.10","description":"Cool tool features and some components.","main":"index.js","scripts":{"build":"tsc"},"author":{"name":"liuyunqi","email":"283373960@qq.com"},"license":"ISC","dependencies":{"umi":"^3.2.14","xlsx":"^0.16.9","antd":"4.15.6","react":"^16.12.0","react-document-title":"^2.0.3","react-dom":"^16.12.0","echarts":"^5.1.1"},"_id":"bamboosnaketool@1.3.10","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-Ek01UpJzR1jFQtcpIWllI+71AnHnKnL46+7pPDjq3Fdv6HIuPCDMjAFd7aAnUmBMoKt9gzj1z7xULjGMiJZhog==","shasum":"43878d526a2005d7a72537eb946549438e652ab6","tarball":"https://registry.npmjs.org/bamboosnaketool/-/bamboosnaketool-1.3.10.tgz","fileCount":99,"unpackedSize":420402,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICMMi2DGeIkhD8VefgfeAIdtm7ihCfKhkCWefubssXxAAiBQ0lwN6KIFPKimCxAwuXn4CBfUA0ifhFYYNLqfrBm2Jg=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiYKycACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpDjA/+PbXMaoZAmDDK5xiVHYB1YG7scjvhdWlJFGbdCxJhZKhM/vsA\r\nXhfy3qlT6yASe3sxbB8x47lj1jtf7QSSO0EK0vdj5YV84AQL2RnOPsSzPKRW\r\nY4yYGQ2/pstPlj6paE1CYicwTpHDXyj7+62qtLWxB82e4FkomWLPhqJxMYJ5\r\nyGTzKSutlQD10b8htfkz8WGCAbGxA2GiOskaP9TQJwv9DyZwlTlLBrkzwLeU\r\n+GqzAJGyFbDjyK1P1TUI2Fjaoj/XtZ0uvnZngDvpb8B9/NfrwcsEWLzVgOR2\r\nCNbto/CSKW2LVOQYzE1eAEoeABDhnqZbhXn+hjjsHvjZy4JZuWY20mrdgpsh\r\ni+U85Xxt8cMGb1A1dD5QFQrCHNvbGY0ZjMD8EqYc3daKOW73IyTx+DuPJh1Z\r\njIwTDmIoco1yIqDXQcrkajgwSsZvIrOETgjOf99Sa2Csy0Guegn0TJUgiDPq\r\n2rwLbHUpgegc9gwd/aAAlvdpjAiWdqFl8ThoUQGbZueu5NSsvOjKfJ4ecISN\r\nPufEfef9XG3ko/QO0OvM2V7oqNFFQGtH4ZyXr20YQTxZC7qlEYC4eGMbb8oc\r\nOCf6bs01S3jp9NsoA7osmkaZxQhgCmuUwejTwXh+ut3GejL1RAN7bGvX32wR\r\nKTiM2k+9XtYotXgONuuaO9bV/QbkQwkYnFQ=\r\n=w3xv\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"liuyunqi","email":"283373960@qq.com"},"directories":{},"maintainers":[{"name":"liuyunqi","email":"283373960@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/bamboosnaketool_1.3.10_1650502812628_0.3187192345034249"},"_hasShrinkwrap":false}},"time":{"created":"2021-05-17T08:18:56.583Z","1.0.0":"2021-05-17T08:18:56.692Z","modified":"2022-04-21T01:00:12.879Z","1.0.1":"2021-05-17T09:07:20.034Z","1.0.2":"2021-05-17T09:41:41.324Z","1.0.3":"2021-05-24T09:51:14.245Z","1.0.4":"2021-06-01T09:22:53.949Z","1.0.5":"2021-06-01T09:36:07.034Z","1.0.6":"2021-06-02T01:44:48.641Z","1.0.7":"2021-06-02T02:01:59.003Z","1.0.8":"2021-06-02T02:24:59.417Z","1.0.9":"2021-06-02T02:31:34.542Z","1.10.0":"2021-06-02T02:36:42.085Z","1.10.1":"2021-06-22T08:04:11.653Z","1.10.2":"2021-07-01T02:54:34.233Z","1.10.3":"2021-07-01T02:58:10.976Z","1.10.4":"2021-07-05T07:14:37.217Z","1.10.5":"2021-07-06T13:01:51.758Z","1.10.6":"2021-08-06T09:51:42.881Z","1.10.7":"2021-08-17T03:33:48.306Z","1.10.8":"2021-08-25T11:26:48.633Z","1.10.9":"2021-10-12T06:13:54.991Z","1.10.10":"2021-10-13T08:00:21.891Z","1.10.11":"2021-10-22T09:22:20.158Z","1.10.12":"2021-10-27T08:55:02.810Z","1.10.13":"2021-10-29T02:27:22.708Z","1.10.14":"2021-10-29T02:48:18.910Z","1.10.15":"2021-11-16T09:24:21.139Z","1.10.16":"2021-11-18T07:16:24.337Z","1.10.17":"2021-11-22T01:47:19.045Z","1.10.18":"2021-11-22T05:20:10.945Z","1.10.19":"2021-11-22T05:40:42.681Z","1.10.20":"2021-11-22T07:32:26.015Z","1.10.21":"2021-11-22T09:23:50.216Z","1.10.22":"2021-11-24T07:33:52.432Z","1.10.23":"2021-11-24T09:20:17.387Z","1.10.24":"2021-11-25T08:58:09.028Z","1.10.25":"2021-11-29T09:56:29.234Z","1.10.26":"2021-12-01T00:45:45.281Z","1.10.27":"2021-12-01T06:34:51.884Z","1.10.28":"2021-12-01T08:47:27.197Z","1.10.29":"2021-12-06T08:42:02.108Z","1.10.30":"2021-12-06T08:58:03.819Z","1.10.31":"2021-12-07T07:27:40.733Z","1.10.32":"2021-12-07T11:43:02.044Z","1.12.0":"2021-12-10T08:54:10.561Z","1.12.1":"2021-12-10T09:30:48.684Z","1.12.2":"2021-12-14T03:45:04.660Z","1.12.3":"2021-12-15T02:35:13.979Z","1.12.4":"2021-12-15T08:04:48.956Z","1.12.5":"2021-12-17T08:34:20.742Z","1.2.0":"2021-12-21T12:20:31.626Z","1.2.1":"2021-12-22T00:35:25.279Z","1.2.2":"2021-12-30T09:33:32.447Z","1.2.3":"2021-12-31T03:27:04.262Z","1.2.4":"2022-01-04T08:02:21.741Z","1.2.5":"2022-01-13T01:12:59.575Z","1.2.6":"2022-01-18T09:01:07.566Z","1.2.7":"2022-03-09T00:45:44.426Z","1.2.8":"2022-03-10T03:12:07.459Z","1.2.9":"2022-03-11T02:08:40.129Z","1.3.0":"2022-03-14T08:04:02.099Z","1.3.2":"2022-03-23T01:38:08.672Z","1.3.3":"2022-03-23T02:11:58.203Z","1.3.4":"2022-03-23T02:31:41.355Z","1.3.5":"2022-03-23T07:32:57.054Z","1.3.6":"2022-03-23T08:58:23.587Z","1.3.7":"2022-03-24T10:54:54.537Z","1.3.8":"2022-03-26T00:59:27.801Z","1.3.9":"2022-04-07T12:52:49.167Z","1.3.10":"2022-04-21T01:00:12.790Z"},"maintainers":[{"name":"liuyunqi","email":"283373960@qq.com"}],"description":"Cool tool features and some components.","license":"ISC","readme":"---\r\n\r\n---\r\n\r\n# bamboosnaketool\r\n\r\n\r\n### 快速上手 - 安装\r\n\r\n```shell\r\nnpm install bamboosnaketool\r\n\r\n// the github project url\r\nhttps://github.com/liuyunqi/BambooSnake-ReactAntd\r\n```\r\n\r\n\r\n\r\n### 简单介绍\r\n\r\n技术栈React + Antd-UI，内置常用的基础工具函数、通用组件、业务组件/函数。统一规范，减少重复开发提升交付质量效率，聚焦内容实现。\r\n\r\n`（如果为支持firefox-v5.0~5.3版，依赖antd的版本需锁死在v4.15.6，目前发现主要是table表格的支持，低版本position-Fixed会失效。）`\r\n\r\n`推荐使用Typora的.md文档查看工具打开本地modules内的README.md文件，会有明确的模块目录分栏及内容段落，极大提高可读性。`\r\n\r\n\r\n\r\n### 基本依赖\r\n\r\n```typescript\r\nimport Bamboo, { enumDataMode as _enumDataMode } from 'bamboosnaketool';\r\nimport { Utiles, Components } from 'bamboosnaketool';\r\n\r\n// 包含大量的工具函数 及 组件模块\r\nconst { AccessorOverdue, dateTransformer: _dateTransformer, CollectionElementCtrl, Table } = Bamboo;\r\nconst { Table: { default: KTTable } } = Components;\r\n\r\n// 例: 转换日期 - 完整型\r\nlet xsdate = _dateTransformer(new Date(), _enumDataMode.FULL);\r\n\r\n// 例：表格组件 - KTTable （可任意自定义模块名称）\r\n<KTTable/>\r\n\r\n```\r\n\r\n\r\n\r\n\r\n#### 工具函数/ 小工具合集\r\n\r\n内置基本工具函数。\r\n\r\n```typescript\r\n// Date对象 转换为 时间字符串(多种款)\r\ndateTransformer = (dt: Date, viewMode?: enumDataMode): string\r\n\r\n// 嵌套层级字符替换数据转换函数\r\n/*\r\n  desc: 将对象数组数据进行无限递归转换，替换数据原字段为自定义字段。（且可选是否移除原字段数据）\r\n\r\n  @data: [{...}, ...],  // 源数据\r\n  @tranConf: {          // 转换字段配置\r\n    O:N,                // 【O】:old，转换目标字段。【N】:new，更新的定义字段。\r\n    ...\r\n  },\r\n  @options:             // 相关配置\r\n*/\r\nrecursionDataKeyNameTransform = <T>(data: T[], tranConf: recursionDataKeyTransformConf = { isChildrenKey: 'children' }, options: recursionDataKeyTransformOpt = {\r\n  needDeleteBefore: true\r\n}): T[]\r\n```\r\n\r\n\r\n```typescript\r\nimport Bamboo from 'bamboosnaketool';\r\nconst { dateTransformer, mergeUrl, ArrayVeidooTransfrom } = Bamboo;\r\n\r\n// 日期转换器 - dateTransformer\r\ndateTransformer = (dt: Date | number, viewMode?: enumDataMode): string;\r\n\r\n// 路径合并, 去除拼接处 多或少的 '/'\r\nmergeUrl = (arr: string[]): string;\r\n\r\n// 一维数组转二维切割\r\nArrayVeidooTransfrom = (list: any[], mo: number) :array[];\r\n```\r\n\r\n\r\n\r\n##### RegExpValidator - 校验器\r\n\r\n###### 基本使用\r\n\r\n针对{}对象进行校验。\r\n\r\n```typescript\r\nimport Bamboo from 'bamboosnaketool';\r\n\r\nconst { RegExpValidator, RegExpType } = Bamboo;\r\n\r\n// 初始化配置\r\nconst creatValidtor = new Validtor({\r\n  regConfig: [\r\n    {\r\n      key: 'name',\r\n      type: RegExpType.CN,\r\n      name: '姓名',\r\n      require: true\r\n    }, {\r\n      key: 'phone',\r\n      type: RegExpType.PHONE,\r\n      name: '手机',\r\n      require: true\r\n    }, {\r\n      key: 'enCode',\r\n      type: RegExpType.EN,\r\n      name: '英文代号',\r\n      require: true\r\n    }\r\n  ]\r\n});\r\n\r\n\r\n// 执行校验数据\r\nlet validResult = creatValidtor.exceValid({\r\n  name: '刘德华2',\r\n  phone: '18163741749',\r\n  enCode: 'code'\r\n});\r\n\r\nconsole.log(validResult);\r\n\r\n// 验证结果 - 执行后的 console - validResult\r\n{\t// 如果 - 校验失败\r\n    validErrors: [\r\n      {\r\n        key: \"name\"\r\n        msg: \"仅允许中文汉字\"\r\n        name: \"姓名\"\r\n        require: true\r\n        type: 0\r\n        value: \"刘德华2\"\r\n       }\r\n    ],\r\n    validPassState: false\r\n}\r\n\r\n{\t// 如果 - 校验成功\r\n    validErrors: [],\r\n    validPassState: true\r\n}\r\n```\r\n\r\n###### 多项联合校验\r\n\r\n支持多重联合校验，下例中分别写了CN/EN/PHONE，当然你甚至可以写更多；\r\n\r\n```typescript\r\n// 初始化配置 - 多重联合校验\r\nconst creatValidtor = new Validtor({\r\n  regConfig: [\r\n    {\r\n      key: 'name',\r\n      type: [\r\n          RegExpType.CN,\r\n          RegExpType.EN,\r\n          RegExpType.PHONE\r\n      ],\r\n      name: '姓名',\r\n      require: true\r\n    }\r\n  ]\r\n});\r\n```\r\n\r\n###### 便捷调用\r\n\r\n同时支持单数据快捷校验，无需实例化直接调用。\r\n\r\n```typescript\r\nimport Bamboo from 'bamboosnaketool';\r\n\r\nconst { RegExpValidator, RegExpType } = Bamboo;\r\n\r\n// 单数据的便捷校验\r\nlet singleValid = Validtor.exceOnce('', RegExpType.CN);\t\t\t\t\t\t\t// 单项校验\r\nlet multiSingleValid = Validtor.exceOnce('', [ RegExpType.CN, RegExpType.IP]);\t// 多项校验\r\n\r\n// 分别的打印结果\r\n/* is singleValid\r\n{\r\n\tvalidErrors: \"仅允许中文汉字\"\r\n\tvalidPassState: false\r\n}\r\n*/\r\n\r\n/* is multiSingleValid\r\n{\r\n\tvalidErrors: {type: 'CN', msg: '仅允许中文汉字'},\r\n\t\t\t\t {type: 'IP', msg: '必须是正确ip格式'}\r\n\tvalidPassState: false\r\n}\r\n*/\r\n```\r\n\r\n###### 配置项说明\r\n\r\n可支持的内置校验类型。\r\n\r\n```typescript\r\n\r\n// 校验单元格配置格式\r\ninterface RegExpValidatorConfItem {\r\n  key: string;            // 关键key\r\n  type: RegExpType | RegExpType[];   // 校验内置类型\r\n  name: string;           // 校验项名称\r\n  require?: boolean;      // 是否必填\r\n}\r\n\r\nexport enum RegExpType {\r\n  CN,                   // 中文\r\n  EN,                   // 英文字母\r\n  EN_NUMBER,            // 任意英文+数字\r\n  DECIMAL,              // 小数浮点数类型\r\n  INTEGER,              // 整数类型 - 正负都可以\r\n  POSITIVE_INTEGER,     // 整数类型 - 正数\r\n  UP_ZERO_INTEGER,      // 0+正数 (<=0)\r\n  UP_ONE_INTEGER,       // 1+正数 (<=1)\r\n  NUMBER,               // 数字类型\r\n  EMAIL,                // 电子邮箱\r\n  PHONE,                // 手机 18165221849\r\n  TEL,                  // 电话 0731-5632575\r\n  PHONE_TEL,            // 手机 + 电话\r\n  POSTCODE,             // 邮政编码\r\n  HTTP,                 // http (支持 - :post,www,ip,http,https)\r\n  IP,                   // ip地址\r\n  IDENTITY_CARD,        // 身份证\r\n  SYMBOL_CN,          \t// 全角\r\n  SYMBOL_EN           \t// 半角\r\n}\r\n```\r\n\r\n返回格式\r\n\r\n```\r\n// 校验返回格式\r\ninterface RegExpValidatorErrorResponse {\r\n  validPassState: boolean;\t\t\t\t\t// 校验结果状态\r\n  validErrors: RegExpValidatorErrorItem[];\t// 校验错误项集合\r\n}\r\n```\r\n\r\n\r\n\r\n##### CollectionElementCtrl - HTML元素集合控制器\r\n\r\n###### 基本使用\r\n\r\n针对元素对象集合进行遍历操作。\r\n\r\n内置索引记录器，可以通过使用指令对其进行遍历，对遍历目标元素进行 Attr 属性赋值（如class、style），对非当前active元素进行清理值。\r\n\r\n支持对目标元素进行class/ style的配置自定义。\r\n\r\n```typescript\r\nimport Bamboo from 'bamboosnaketool';\r\n\r\nconst { CollectionElementCtrl } = Bamboo;\r\n\r\n// 元素集合操作\r\nconst $CollectionElementCtrl = new CollectionElementCtrl({\r\n  collectionsElements: [],\t// dom对象集合 （可初始化设置/ 通过.setCollectionsElements()插入调用）\r\n  indexRecord: 0,\t\t\t// 行索引 - rowIndex\r\n  columnIndex: 4,\t\t\t// 列索引 - 锁定单元格\r\n  needFoucusHTMLElementInput: true\t// 是否聚焦input - 是否需要检查当前 纵及列<td>单元格内是否包含input\r\n});\r\n\r\n```\r\n\r\n###### 组合使用\r\n\r\n可结合 **Bamboo.KeywordsContrl** 的键盘事件组件搭配使用。（如：操作表格，通过键盘（上下左右）指令在表格的row及td中的元素进行操作。）\r\n\r\n演示表格行通过 ↑ ↓ 键盘来做到行来回选中效果。\r\n\r\n```typescript\r\n\r\nconst TableScanRef = React.createRef<HTMLDivElement>(); // TABLE - 表格 (用于控制-rowSelected)\r\n\r\n// 获取Element集合\r\nconst tbody = (TableRef.current as HTMLDivElement).children[0].querySelector('.ant-table-tbody');\r\nlet trNodes: HTMLTableRowElement[] = [];\r\ntbody?.querySelectorAll('tr').forEach((trElement: HTMLTableRowElement, index: number) => {\r\n    if (index > 0) {\r\n        trNodes.push(trElement);\r\n    }\r\n});\r\n\r\n// 装载DOM元素集合到 组件内\r\n$CollectionElementCtrl.setCollectionsElements(trNodes);\r\n\r\n// print 是 Bamboo.KeywordsContrl 事件回调里的按键标识\r\nif (print === 'top') {\r\n    $CollectionElementCtrl.reduce();\r\n} else if (print === 'bottom') {\r\n    $CollectionElementCtrl.addition();\r\n}\r\n```\r\n\r\n\r\n\r\n##### AccessorOverdue - 存取器 - 过期限制 （save data to localSession）：\r\n\r\n###### 基本使用\r\n\r\n让存储在 localStorage/ sessionStorage 的数据具备过期能力，满足一些需要数据失效的应用场景。\r\n\r\n```typescript\r\nimport Bamboo from 'bamboosnaketool';\r\nconst { AccessorOverdue } = Bamboo;\r\n\r\n// 创建实例\r\nconst xAccessorOverdue = new AccessorOverdue({  // 过期存储\r\n  overdueTimeSecond: 3600     // 设置过期时间 - 单位-秒\r\n});\r\n\r\n/* 默认的配置 component default optiosn [可选]\r\n\r\n{\r\n  projectAlias: 'baseToolAccessOverdue',                            // 命名空间\r\n  saveObject: accessOverdue_saveObjectEnum.sessionStorage,          // 存储对象 'sessionStorage' | 'localStorage'\r\n  overdueTimeSecond: 60                                             // 过期时间 - 1 = 1s (单位/秒)\r\n}\r\n*/\r\n\r\n// 写入存储\r\nxAccessorOverdue.setItem('mockKey', {name: '我是需要保持的数据'});\r\n\r\n// 提取存储\r\nxAccessorOverdue.getItem('mockKey');\t\t// 根据 [配置项-过期时间] 判断是否过期\r\nxAccessorOverdue.getItem('mockKey', 1);\t\t// 根据本次形参 - 判断是否过期 (单位/秒 = 1s过期)\r\n\r\n// 指定删除\r\nxAccessorOverdue.removeItem('mockKey');\t\t\t// 删除一项\r\nxAccessorOverdue.removeItem(['mockKey', 'mockKey1', 'mockKey2']);\t// 删除多选\r\n\r\n```\r\n\r\n配置项中，projectAlias 有效防止命名冲突，saveObject可以指定存储的方式。\r\n\r\n###### 提取返回\r\n\r\n不管isInvalid状态是否过期，数据永远是会保留返回。\r\n\r\n```typescript\r\n// 执行 .getItem('mockKey')\r\n{\r\n  isInvalid: boolean;\t\t\t// 是否已过期 - (true-无效已过期、false有效)\r\n  value: any;\t\t\t\t\t// setItem 之前存储的数据内容\r\n}\r\n```\r\n\r\n###### 配置项说明\r\n\r\n```typescript\r\n// 配置props - options\r\nexport interface accessOverdue_defaultOption {\r\n  projectAlias?: string;\r\n  saveObject?: accessOverdue_saveObjectEnum;\r\n  overdueTimeSecond?: number;\r\n}\r\n\r\nexport enum accessOverdue_saveObjectEnum {\r\n  sessionStorage = 'sessionStorage',\r\n  localStorage = 'localStorage'\r\n}\r\n\r\n// 实例可调用的api\r\n{\r\n  setItem (key: string, data: any): void        // 写入存储\r\n  getItem (key: string, overdueTimeSecond?: number): { isInvalid: boolean, value: { creatertime: number, value: any }}  // 提取存储\r\n  removeItem (keys: string | string[]): void    // 指定删除\r\n}\r\n```\r\n\r\n\r\n\r\n##### Debounced / Throttle - 防抖/ 节流 （control event frequency）：\r\n\r\n防止高频触发、开销；\r\n防抖 - 短暂时间内的多次执行，以最后一次执行为触发；\r\n节流 - 一段周期内只执行一次；\r\n\r\n```typescript\r\nimport Bamboo from 'bamboosnaketool';\r\nconst { Debounced, Throttle } = Bamboo;\r\n\r\n// 防抖 - 创建实例\r\nconst debounced = new Debounced().use((fn: Function) => {\r\n  typeof fn === 'function' && fn();\r\n}, 500);\r\n\r\n// 调用-防抖\r\ndebounced(() => {\r\n  // u can do any things...\r\n});\r\n\r\n// 实例可调用的api\r\n{\r\n  /**\r\n   * @param func 需要包装的函数\r\n   * @param delay 延迟时间，单位ms\r\n   * @param immediate 是否默认执行一次(第一次不延迟)\r\n   */\r\n  use = (func: Function, delay: number, immediate: boolean = false): Function\r\n}\r\n\r\n---------------------------[ 不华丽且低调的分割线 ]----------------------------------\r\n\r\n// 节流 - 创建实例\r\nconst throttle = new Throttle().use((fn: Function) => {\r\n  typeof fn === 'function' && fn();\r\n}, 500);\r\n\r\n// 调用\r\ndestroy();     // 销毁\r\nopen();        // 开启\r\nclose();       // 关闭\r\n\r\n{\r\n  /**\r\n   * @param func 需要包装的函数\r\n   * @param delay 延迟时间，单位ms\r\n   * @param immediate 是否默认执行一次(第一次不延迟)\r\n   */\r\n  use = (func: Function, delay: number, immediate: boolean = false): Function\r\n}\r\n\r\n```\r\n\r\n\r\n\r\n##### KeywordsContrl - 键盘事件捕捉器\r\n\r\n方便快捷的获取按键捕捉及回调事件。\r\n\r\n```typescript\r\nimport Bamboo from 'bamboosnaketool';\r\n\r\nconst { KeywordsContrl } = Bamboo;\r\n\r\n// 键盘事件\r\nconst $keywordsContrl = new KeywordsContrl();\r\n\r\n// 按键事件回调\r\n$keywordsContrl.allEventCallback = (eventName, data) => {\r\n    const { keyCode, print } = data;\r\n    \r\n    // keyCode if enter -> 13\r\n    // print if up -> 'top | bottom | enter ... keywordsContrl_eventType'\r\n}\r\n\r\n// 事件类型定义\r\nexport enum keywordsContrl_eventType {\r\n  prev = 'prev',\r\n  next = 'next',\r\n  top  = 'top',\r\n  right = 'right',\r\n  bottom = 'bottom',\r\n  left = 'left',\r\n  delete = 'delete',\r\n  enter = 'enter',\r\n  focus = 'focus',\r\n  blur = 'blur',\r\n  tableIsReady = 'tableIsReady',\r\n  init = 'init'\r\n}\r\n```\r\n\r\n\r\n\r\n##### CreatTableHtmlElement - 打印模板表格\r\n\r\n适用于生成表格相关的纸质打印单据。\r\n\r\n此组件会很方便快速构造一个表格，并将数据渲染在表格内，有需要时可以达成纸质分页及各处自定义内容插槽（为了更符合单据的各种样式），同时支持尺寸自定义。\r\n\r\n###### 基本使用\r\n\r\n下列示例仅根据 [ 表头配置 + 数据 ] 就能快速生成一个表格。\r\n\r\n```typescript\r\nimport { CreatTableHtmlElement } from 'bamboosnaketool';\r\n\r\n// 配置表头 width 29.7cm\r\nconst printColumns = [\r\n  {\r\n    key: 'mainBarcode',\r\n    name: '条码',\r\n    width: 3\r\n  }, {\r\n    key: 'goodsName',\r\n    name: '品名、剂型号、规格、生产企业',\r\n    width: 5.5\r\n  }, {\r\n    key: 'permitHolder',\r\n    name: '上市许可持有人',\r\n    width: 3.7\r\n  }\r\n];\r\n\r\n// 模拟数据\r\nconst mockDatas = [\r\n  { mainBarcode: '98500001', goodsName: '阿莫西林-5g*20/盒-江苏制药六厂', permitHolder: '刘备'  },\r\n  { mainBarcode: '98500002', goodsName: '云南白药牙膏250g/支-云南利民制药厂', permitHolder: '孙权'  },\r\n  { mainBarcode: '98500003', goodsName: '天然养生枸杞 500g/罐-六元堂股份药业', permitHolder: '曹操'  },\r\n  // more...\r\n];\r\n\r\nlet TABLEhtml = CreatTableHtmlElement(printColumns, mockDatas)();\r\n\r\n```\r\n\r\n可以自定义尺寸属性，如示例\r\n\r\n```typescript\r\nlet options = {\r\n  cssUnit: 'cm',\t\t// 内置默认是 'px'，这里的单位会影响 printColumns[ item.width ]\r\n  ...\t\t\t\t\t// ’欧佛阔斯‘，还有很多其他的属性\r\n};\r\nlet TABLEhtml = CreatTableHtmlElement(printColumns, mockDatas, options)(/** 有需的话可配置插槽对象 **/);\r\n```\r\n\r\n\r\n\r\n###### 插槽 Slot\r\n\r\n该组件中插槽其实是满足打印需求非常关键的一个功能，因为很多实际应用场景下，需要打印的纸质单据并不是内容仅有表格，可能会有下列罗列情况：\r\n\r\n1.打印多张，但第一张有个额外的小表格或一段前言声明之类的（那么第一张纸由于被其他内容占据可能表格被裁切高度只能有50%高，而后面其他页都是100%全高）；\r\n\r\n2.打印多张，需要在每一张都盖上 印章；\r\n\r\n3.打印的每一张，内容表格的前后都需要添加一些内容（可能是一个元素结构，也可能是一段文本内容）；\r\n\r\n不再多举例，下面我们看看如何达成这些需求：\r\n\r\n```typescript\r\nimport { CreatTableHtmlElement, CreatTableHtmlElement_InnterSlotModeEnum } from 'bamboosnaketool';\r\n\r\n// 复制一份上述示例，增加插槽内容演示\r\nlet TABLEhtml = CreatTableHtmlElement(printColumns, mockDatas, options)(\r\n    {\r\n      slotInner: [            // 表格集合组插槽 - 每个表格单元中的内容\r\n        {\r\n          mode: CreatTableHtmlElement_InnterSlotModeEnum.ONLY_FIRST_BEFORE,\r\n          HTMLtext: '仅第一个表格前方渲染的内容'\r\n        },\r\n        {\r\n          mode: CreatTableHtmlElement_InnterSlotModeEnum.ONLY_LAST_BEFORE,\r\n          HTMLtext: '仅最后一个表格的前方渲染的内容'\r\n        }，\r\n        // has more...\r\n      ],\r\n      // 表格集合组外部插槽\r\n      slotStamp: `<img src=\"${setimageDataUrl}\" style=\"position: absolute; right: 1.5cm; bottom: 1.5cm; width: 4cm; height: 4cm;\"/>`,\r\n      slotBefore: '开端xxx内容',\r\n      slotAfter: '落款xxxx内容',\r\n});\r\n```\r\n\r\n\r\n\r\n###### 打印单据示例\r\n\r\n下面是一个带有表头的单据打印需求场景（由于无法上图）\r\n\r\n```typescript\r\nimport CreatTableHtmlElement, { CreatTableHtmlElement_InnterSlotModeEnum } from 'bamboosnaketool';\r\n\r\nlet setimageDataUrl = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA......';\r\n\r\nlet title = {\r\n    billName: '大标题XXXXX单据',\r\n    storeName: '香樟东路门店',\r\n    billCode: '90000816',\r\n    shippingDate: '2021-10-21 19:58:23'\r\n};\r\nlet deliveryHTMLtext = `\r\n  <div style=\"margin-bottom: 0.5cm;\">\r\n    <h3 style=\"text-align: left; height: 0.8cm; line-height: 0.8cm;\">${ title.billName }</h3>\r\n    <div style=\"display: flex;\">\r\n      <div style=\"flex: 1;\">\r\n        <span>收货门店：${title.storeName}</span>\r\n      </div>\r\n      <div style=\"flex: 1;\">\r\n        <span>单据编号：${title.billCode}</span>\r\n      </div>\r\n      <div style=\"flex: 1;\">\r\n        <span>开票日期：${title.shippingDate}</span>\r\n      </div>\r\n    </div>\r\n  </div>\r\n`;\r\n\r\nlet TABLEhtml = CreatTableHtmlElement(printColumns, list.map(item => {\r\n  item['supplierState'] = '合格';\r\n  return item;\r\n}), {\r\n  pageLimit: 14,\r\n  cssUnit: 'cm',          // 单位 px/ pt/ cm...\r\n  pagerPhysicsWidth: '29.7cm',\r\n  tableHeight: '20.4cm',\r\n  tablePaddingTop: '1cm',           // 内部padding-top\r\n  tablePaddingBottom: '1cm',        // 内部padding-bottom\r\n  tableSpace: '0',\r\n  tableBorderWidth: '0.01cm',\r\n  tableTHPadding: '0.06cm',\r\n  tableTDPadding: '0.2cm 0.1cm',\r\n  tableFontSize: '0.2cm',\r\n\r\n  valueBoxHeight: '0.36cm',       // 高度\r\n  // valueBoxMaxHeight: '0.72cm',    // 最大高度\r\n  valueBoxMaxHeight: '1.08cm',    // 最大高度\r\n  valueBoxLineHeight: '0.36cm',   // 行高  h 1/2\r\n  valueBoxLineClamp: '2',         // 最大显示行数\r\n})({\r\n  slotInner: [{\r\n    mode: CreatTableHtmlElement_InnterSlotModeEnum.ONLY_FIRST_BEFORE,\r\n    HTMLtext: deliveryHTMLtext\r\n  }],\r\n  slotStamp: `<img src=\"${setimageDataUrl}\" style=\"position: absolute; right: 1.5cm; bottom: 1.5cm; width: 4cm; height: 4cm;\"/>`\r\n});\r\n\r\n```\r\n\r\n\r\n\r\n###### 打印应用\r\n\r\n创建一个新窗口文档，将已生成好的表格插入。\r\n\r\n```typescript\r\n// 打开弹窗打印执行\r\nconst openWindowPrint = (TITLE: string, HTMtext: string, options = {}) => {\r\n  try {\r\n    let wind = window.open('', '_blank');\r\n    (wind as Window).document.body.innerHTML = creatPrintDocumentWrapper(TITLE, HTMtext, options);\r\n    (wind as Window).print();\r\n  } catch (err) {\r\n    // 发生错误时进行交互提示\r\n    /*\r\n    Modal.error({\r\n      title: '发生错误',\r\n      content: '打开打印弹窗失败，当前游览器可能弹窗已被阻止，通过【设置 - 允许弹窗]】后再重试打印。'\r\n    });\r\n    */\r\n  }\r\n}\r\n\r\n\r\n/**\r\n * 新建文档包裹容器\r\n * @param title    新建文档标题\r\n * @param HTMLdom  新建文档元素内容\r\n * @param options  配置项\r\n */\r\n\r\ninterface creatPrintDocumentWrapper_options {\r\n  htmlWidth?: string;        // 文档整宽 (例：21cm)\r\n  page_sizeMode?: 'A4';      // 尺寸标准名\r\n  page_composeType?: 'landscape' | 'portrait'; // landscape 横版 / portrait 竖版\r\n}\r\n\r\nconst creatPrintDocumentWrapper = (title: string = 'Print Document', HTMLdom: string, options: creatPrintDocumentWrapper_options = {}) => {\r\n\r\n  let defOpts: creatPrintDocumentWrapper_options = {\r\n    htmlWidth: '21cm',                      // 文档整宽\r\n    page_sizeMode: 'A4',                    // 尺寸标准名\r\n    page_composeType: 'portrait',           // landscape 横版 / portrait 竖版\r\n    ...options\r\n  };\r\n\r\n  return `\r\n    <!DOCTYPE html>\r\n    <html lang=\\\"en\\\">\r\n      <head>\r\n        <meta charset=\\\"UTF-8\\\">\r\n        <title>${ title }</title>\r\n      </head>\r\n      <style>\r\n        @page {\r\n          size: ${defOpts.page_sizeMode} ${defOpts.page_composeType};\r\n        }\r\n        * {\r\n          margin: 0;\r\n          padding: 0;\r\n        }\r\n        html {\r\n          width: ${defOpts.htmlWidth};\r\n          font-size: 0.3cm;\r\n        }\r\n        body {\r\n          margin: 0;\r\n        }\r\n      </style>\r\n      <body>\r\n        ${ HTMLdom }\r\n      </body>\r\n    </html>\r\n  `;\r\n}\r\n```\r\n\r\n\r\n\r\n###### 结构关系\r\n\r\n特别准备了这一部分，因为对组件构成的关系理解对使用组件到实际应用场景非常关键，由于用不了图片进行关系示意，所以相互结构关系的理解非常重要，我尝试将它说清楚一些。\r\n\r\n我们先列出构成文档的参与者，按文档流的形式 由上至下。\r\n\r\n```tex\r\n[顶部插槽]start\r\n[内容插槽组：\r\n  [\r\n    [第一个表格\r\n       [首个前]\r\n       [每个前]\r\n       [表格]\r\n       [每个后]\r\n       [首个后]\r\n       [印章]\r\n    ],\r\n    [第二个表格（也许）\r\n       [每个前]\r\n       [表格]\r\n       [每个后]\r\n       [印章]\r\n    ],\r\n    [ 也许中间有若干个表格 ....],\r\n    [最后一个表格\r\n       [末尾前]\r\n       [每个前]\r\n       [表格]\r\n       [每个后]\r\n       [末尾后]\r\n       [印章]\r\n    ],\r\n  ]\r\n]\r\n[底部插槽]end\r\n```\r\n\r\n上述假设了完整的配置结构组成了一个大篇幅，可能会存在分页，原则上每个页面内容在纵向填充是尽可能饱满（不浪费打印纸）。\r\n\r\n分页情况：\r\n\r\n首页会顶部插槽+第一个表格的组成；\r\n\r\n中间的每个页面表格+前后填充饱满；\r\n\r\n末尾页表格+底部插槽内容；\r\n\r\n\r\n\r\n###### 配置项说明\r\n\r\n```typescript\r\n// 表格列配置\r\nexport interface CreatTableHtmlElement_columnsConf {\r\n  key: string,\r\n  name: string,\r\n  width?: string | number,\r\n  align?: string\r\n}\r\n\r\n// 每个单元表格 - 插槽配置 CreatTableHtmlElement_concatSlot.slotInner \r\ninterface CreatTableHtmlElement_slotInnerInter {\r\n  HTMLtext: string;\r\n  mode: CreatTableHtmlElement_InnterSlotModeEnum;\r\n}\r\n\r\n// 全插槽配置\r\nexport interface CreatTableHtmlElement_concatSlot {\r\n  slotBefore?: string;                    // 插入总结构的头始\r\n  slotAfter?: string;                     // 插入总结构内的末尾\r\n  slotStamp?: string;                     // 插入公章\r\n  slotInner?: [] | CreatTableHtmlElement_slotInnerInter[];      // 插入 table-item 内的具体位置\r\n}\r\n\r\n// 每个单元表格 - 插槽类型 slotInner集合的mode类型\r\nexport enum CreatTableHtmlElement_InnterSlotModeEnum {    // 插入模式 - 可能插入多个或单个于  table-item DIV 中\r\n  ONLY_FIRST_BEFORE = 'ONLY_FIRST_BEFORE', // 仅首个 - 表格之前插入\r\n  ONLY_FIRST_AFTER = 'ONLY_FIRST_AFTER',   // 仅首个 - 表格之后插入\r\n  ONLY_LAST_BEFORE = 'ONLY_LAST_BEFORE',   // 仅末尾 - 表格之前插入\r\n  ONLY_LAST_AFTER = 'ONLY_LAST_AFTER',     // 仅末尾 - 表格之后插入\r\n  EVERY_BEFORE = 'EVERY_BEFORE',           // 每个之前\r\n  EVERY_AFTER = 'EVERY_AFTER',             // 每个之后\r\n  UNDO = 'UNDO',                           // 无动作\r\n};\r\n\r\n// 组件配置项\r\nexport interface CreatTableHtmlElement_options {\r\n  pageLimit?: number;                 // 是否需要区别表格 - 数据总长度超出单页时将创建多个表格(便于打印)\r\n  cssUnit?: 'px' | 'pt' | 'cm';       // 尺寸单位，影响内部style配置及column.width\r\n\r\n  pagerPhysicsWidth?: string;         // 纸张横向尺寸\r\n  tableHeight?: string;               // 是否限制 - 单个表格容器高度\r\n\r\n  tablePaddingTop?: string;           // 表格单元内边距 padding-top\r\n  tablePaddingBottom?: string;        // 表格单元内边距 padding-bottom\r\n  tableSpace?: string;                // 表格单元 margin-top\r\n  tableBorderColor?: string;          // 表格边框色\r\n  tableBorderWidth?: string;          // 表格边框线宽\r\n  tableZebraColor?: string;           // 表头thead - 背景色\r\n  tableTHPadding?: string;            // 表头thead - 内边距 padding\r\n  tableTDPadding?: string;            // 表格td 内边距 padding\r\n  tableFontSize?: string;             // 表格th、td - 字体大小\r\n\r\n  valueBoxHeight?: string;            // 高度\r\n  valueBoxMaxHeight?: string;         // 最大高度\r\n  valueBoxLineHeight?: string;        // 行高  h 1/2\r\n  valueBoxLineClamp?: string;         // 最大显示行数\r\n}\r\n\r\n```\r\n\r\n\r\n\r\n#### 公共组件\r\n\r\nReact、antd-UI\r\n\r\n组件：\r\n\r\n##### Table - 表格组件：(github - public)\r\n\r\n内置pagination分页、支持表格列单元格自定义模板渲染、ACTIONS操作栏多功能渲染等；\r\n\r\n\r\n目前表格使用 antd-UI ，表格组件封装了 Table-antd 和 Pagination-antd；\r\n\r\n###### 基本使用\r\n\r\n```typescript\r\n// 使用bamboo表格组件\r\nimport Bamboo from 'bamboosnaketool';\r\nconst { Table: BamTable } = Bamboo;\r\n\r\nreturn (\r\n    <BamTable dataSource={ dataSourceList } columns={ columns } rowKey={ 'id' } ALLEVENTCallback={ tableLLEVENTCallback }/>\r\n)\r\n```\r\n\r\n\r\n\r\n###### lib - 页面模块组成\r\n\r\n目前开发作者习惯性的文件方式搭配。`假设有一个页面模块demoPage`\r\n\r\n```typescript\r\nsrc <\r\n    demoPage <\r\n    \tindex.tsx;\t\t\t// 页面模块\r\n\t\tindex.less;\t\t\t// 页面样式\r\n\t\tcolumns.ts;\t\t\t// 根据key生成的export对象,该对象符合 antd-column-item 及 结合组件内部封装的新属性\r\n\t\tcolumns.d.ts;\t\t// key - tableCloumn 前端枚举 - 页面中如有用到关键字段推荐从这里统一使用\r\n```\r\n\r\n\r\n\r\n###### column - 列头配置\r\n\r\n推荐方式为独立的 列头配置文件 和 列头.d。\r\n\r\n基础的列头配置如下（类似antd的常规使用格式），如果是涉及到内置组件的后面会详细提及。\r\n\r\n```typescript\r\n// 根目录\r\n...,\r\nmock,\r\npages --> homePage --> [ index.tsx, index.less, columns.ts, columns.d.ts ],\r\n...otherlibs\r\n\r\n```\r\n\r\n```javascript\r\n// columns.ts\r\n\r\nimport { ColumnsType } from 'antd/es/table';\r\nimport { columnItemDecorator, Table_ColumnsTypeMine } from 'bamboosnaketool';\r\nimport { keys } from './columns.d';\r\n\r\n// 字段配置\r\nconst originalConfMax = (\r\n  columnItemDecorator\r\n)({\r\n  [keys.mainbarCode]: { name: '商品条码' },\r\n  [keys.goodCode]: { name: '商品编码' }\r\n}, keys);\r\n\r\n/*\r\noriginalConfMax =  // 生成后的数据格式为：type is Object\r\n{\r\n  mainbarCode:{\r\n    dataIndex: \"mainbarCode\",\r\n    key: \"mainbarCode\",\r\n    name: \"商品条码\",\r\n    title: \"商品条码\"\r\n  },\r\n  ...\r\n}\r\ncolumnItemDecorator 是数据装饰的函数，通过编码人员简单的columnitem配置就能生产完整的数据，数据符合antd的api及bamboo组件封装props要求，且写少做多。\r\n*/\r\n\r\n// 将其导出\r\nexport const column_ALL: Table_ColumnsTypeMine = [\r\n  originalConfMax[keys.goodName],\r\n  originalConfMax[keys.mainbarCode]\r\n];\r\n\r\n```\r\n\r\n```javascript\r\n// columns.d.ts\r\n\r\n// ts 字段枚举配置\r\nexport enum keys {\r\n  mainbarCode = 'mainbarCode',      // 商品条码\r\n  goodCode = 'goodCode',            // 商品条码\r\n  ...\r\n}\r\n```\r\n\r\ncolumns.d.ts 的<kbd>keys</kbd>是枚举对象，键值对形式，其中【键】命名后不可更改，【值】则根据实际数据字段自由更改（建议项目中任何使用该字段时都引用 keys ）。\r\n\r\n这里之所以使用<kbd>columns.ts</kbd>和<kbd>columns.d.ts</kbd>构成方式，而不直接定义在index.tsx里是因为有以下几种应用情况：\r\n\r\n1. keys 适用于导入提供其他相关模块引用，做到字段易维护统一；（比如页面的逻辑、mock模拟数据、等）\r\n\r\n2. column.ts 内可通过函数生成单或多个配置内容，适用于某页面有多个tabs切换多表格场景；\r\n\r\n   \r\n\r\ncolumnItemDecorator 是执行 ’编译‘ 配置的关键函数，如涉及特殊情况需要在其他页面配置也是可以的，如下代码。\r\n\r\n1.下面变量如 hasModelPredict, billRunStatus 可以是 useState/ Props，可以在任何地方嵌入任何变量作为条件进行逻辑约束；\r\n\r\n2.condition 中使用了 evalString 方式，这种方式非常灵活，可以支持非常繁琐复杂的判断逻辑；\r\n\r\n\r\n\r\n```typescript\r\nimport { keys } from 'somePageModule';\r\nimport Bamboo, {\r\n    Table_ColumnCustomType, columnItemDecorator\r\n} from 'bamboosnaketool';\r\n\r\nconst columnFactory = (\r\n    columnItemDecorator\r\n)({\r\n    [keys.forecastCount]: {\r\n        name: '预测数量',\r\n        width: 80,\r\n        condition: [\r\n            // 条件满足 ->> 开启模型预测 + 且模型运行已完成 + 预测数量有值\r\n            `${Boolean(\r\n                (hasModelPredict && billRunStatus) &&\r\n                (\r\n                    billRunStatus === ENUM_InitiativeBillRunModelStatus.MODEL_RUN_SUCCESS ||\r\n                    billRunStatus === ENUM_InitiativeBillRunModelStatus.DELIVERY_CREAT_ING ||\r\n                    billRunStatus === ENUM_InitiativeBillRunModelStatus.DELIVERY_CREAT_FAIL ||\r\n                    billRunStatus === ENUM_InitiativeBillRunModelStatus.DELIVERY_CREAT_SUCCESS\r\n                )\r\n            )} && record['${[keys.forecastCount]}']!==undefined`,\r\n            {\r\n                customType: Table_ColumnCustomType.LINKBUTTON,\r\n                optionsApi: {\r\n                    style: { width: 56 },\r\n                    maxLength: 4\r\n                }\r\n            },\r\n            {\t// 其实该处整个{}对象配置可以省略，组件内部会默认使用 NORMALRENDER 渲染正常文本显示。\r\n                customType: Table_ColumnCustomType.NORMALRENDER,  // 默认渲染普通文本 - 该处可不设\r\n            }\r\n        ]\r\n    }\r\n});\r\n\r\nlet setOverColumns = columnCombo.map((icloum: any, index: number) => {\r\n    if (icloum.key === keys.forecastCount) {\r\n        return columnFactory[keys.forecastCount];\r\n    }\r\n    return icloum;\r\n});\r\n```\r\n\r\n\r\n\r\n###### operation - 操作栏配置\r\n\r\n（多功能配置ACTIONS）\r\n\r\n操作栏支持多种可调配的交互操作方式，如下：\r\n\r\n点击回调、点击模态框弹窗（Modal）、点击确认气泡框（Popconfirm）、隐藏、隐藏且占位、禁用锁定、仅某一条符合某条件、多渲染模式同时并存、仅图标、图标+文字、悬停是否显示title、仅图标锁定。\r\n\r\n```typescript\r\n// 配置单个操作对象的大致包含\r\n{\r\n    text: '查看明细',\t  // 文本\r\n    eventType,\t\t\t// 事件交互方式\r\n    eventSubstance,\t\t// 对应各个eventType的不同格式配置\r\n    condition,\t\t\t// 显示方式\r\n    viewMode \t\t\t// 渲染方式\r\n}\r\n```\r\n\r\n\r\n\r\n下面内容过于丰富，为便于理解，这里系统的归纳下：\r\n\r\n\r\n\r\n**事件交互方式：**\r\n\r\n{ ..., eventType: [?] }\r\n\r\n通过内置的枚举进行模式选择。（默认方式：CALLBACK）\r\n\r\n| 对象                           | 名称       | 说明                                                         |\r\n| ------------------------------ | ---------- | ------------------------------------------------------------ |\r\n| Table_enumEventType.CALLBACK   | 函数回调   | 触发会响应绑定的函数进行事件响应。                           |\r\n| Table_enumEventType.MODALBOX   | 模态框     | 可自定义模态框内容文本，并绑定弹窗 confrim/cancel 事件函数。 |\r\n| Table_enumEventType.POPCONFIRM | 气泡确认框 | 点击目标文字会在点击附近出现气泡确认框再次确认。<br />功能与模态框类似可自定义文本内容及事件绑定。 |\r\n\r\n**物料：**\r\n\r\n{ ..., eventSubstance: [?] }\r\n\r\n配套对应不同 eventType , 配置完全不同； \r\n\r\n| 对象                           | 名称       | 配置格式                                                     | 说明 |\r\n| ------------------------------ | ---------- | ------------------------------------------------------------ | ---- |\r\n| Table_enumEventType.CALLBACK   | 函数回调   | ( record: any ) => void;                                     | -    |\r\n| Table_enumEventType.MODALBOX   | 模态框     | {<br />    title: (string \\| JSX.html), <br />    content: (string \\| JSX.html), <br />    ok: Function,<br />    cancel: Function<br />} | -    |\r\n| Table_enumEventType.POPCONFIRM | 气泡确认框 | 与 [模态框] 一致。↑↑↑                                        | -    |\r\n\r\n**显示方式：**\r\n\r\n{..., condition: {  [?key]: boolean | evalString  }}\r\n\r\n渲染条件允许配置多个，内含 { hide, transparent, locked }, 优先级按此序列；条件书写为 eval(string), 内置关键字为 'record';  \r\n\r\n| 对象        | 名称     | 优先级权重 | 说明                                 |\r\n| ----------- | -------- | ---------- | ------------------------------------ |\r\n| hide        | 隐藏     | 1（最高）  | 条件成立则不显示，不干涉元素布局占位 |\r\n| transparent | 占位隐藏 | 2          | 条件成立则不显示，干涉元素布局占位   |\r\n| locked      | 锁定     | 3          | 条件成立则禁用置灰                   |\r\n\r\n**渲染方式：**\r\n\r\n{ ..., viewMode: [?] }\r\n\r\n渲染显示模式有三种，文字/ icon, { <kbd>Table_enumViewMode.DEFAULT</kbd>, <kbd>Table_enumViewMode.ICON</kbd>, <kbd>Table_enumViewMode.ICONTEXT</kbd> }。\r\n\r\n| 对象                        | 名称       | 说明                       |\r\n| --------------------------- | ---------- | -------------------------- |\r\n| Table_enumViewMode.DEFAULT  | 默认       | 只显示文本                 |\r\n| Table_enumViewMode.ICON     | 仅图标     | 只显示自定义配置的图标     |\r\n| Table_enumViewMode.ICONTEXT | 图标兼文本 | 同时显示图标和文本的组合体 |\r\n\r\n\r\n\r\n代码参考如下：\r\n\r\n```javascript\r\n// tableMock.tsx \r\nimport { HomeOutlined } from '@ant-design/icons';\r\nimport { Table_enumEventType, Table_enumViewMode, Table_sActions as ActionInterface } from 'bamboosnaketool';\r\n\r\n\r\n// 这是一个配置好的 操作栏 - ACTIONS\r\nexport const setActionsTestMock : ActionInterface[] = [\r\n  // 事件交互\r\n  {\r\n    text: '点击回调',\r\n    condition: {\r\n      hide: `['2', '3'].includes(record.key)`\r\n    },\r\n    eventType: Table_enumEventType.CALLBACK,\r\n    eventSubstance(record: RowProps) {\r\n      alert('can run xxx function event.');\r\n    }\r\n  }, {\r\n    text: '模态框',\r\n    condition: {\r\n      hide: `['2', '3'].includes(record.key)`\r\n    },\r\n    eventType: Table_enumEventType.MODALBOX,\r\n    eventSubstance: {\r\n      title: '模态框标题',\r\n      content: (\r\n      <div>\r\n        这是一段询问的内容，吧啦吧啦。。。\r\n      </div>),\r\n      ok(record) {\r\n        alert('ok')\r\n      },\r\n      cancel() {\r\n        alert('cancel')\r\n      }\r\n    }\r\n  }, {\r\n    text: '气泡确认框',\r\n    condition: {\r\n      hide: `['2', '3'].includes(record.key)`\r\n    },\r\n    eventType: Table_enumEventType.POPCONFIRM,\r\n    eventSubstance: {\r\n      title: '气泡标题',\r\n      content: '嗯哼？',\r\n      ok(record) {\r\n        alert('ok')\r\n      },\r\n      cancel() {\r\n        alert('cancel')\r\n      }\r\n    }\r\n  },\r\n\r\n  // 按鈕狀態\r\n  {\r\n    text: '隐藏且占位',\r\n    condition: {\r\n      transparent: `true`,\r\n      hide: `['1', '3'].includes(record.key)`\r\n    },\r\n    eventType: Table_enumEventType.CALLBACK,\r\n    eventSubstance(record: RowProps) {\r\n      alert('can run xxx function event.');\r\n    }\r\n  },\r\n  {\r\n    text: '显示图标',\r\n    icon: <HomeOutlined/>,\r\n    condition: {\r\n      hide: `['1', '2'].includes(record.key)`\r\n    },\r\n    eventType: Table_enumEventType.CALLBACK,\r\n    eventSubstance() {\r\n\r\n    },\r\n    viewMode: Table_enumViewMode.ICONTEXT\r\n  }\r\n  ....    /* 还有非常多种 */\r\n]\r\n\r\n```\r\n\r\n上述还有非常多种，具体可以参考 `后期补全，示例文件删了`。（同时你可以使用该文件内的数据生成示例参考，datasource、columns、actions 都是齐全的）\r\n\r\n<b>eventType</b> : 事件响应模式 { <kbd>Table_enumEventType.CALLBACK</kbd>,<kbd> Table_enumEventType.MODALBOX</kbd>, <kbd>Table_enumEventType.POPCONFIRM</kbd> }；  \r\n<b>eventSubstance</b> : 配套对应不同 eventType , 配置完全不同；  \r\n<b>condition</b> : 渲染条件，内含 { hide, transparent, locked }, 优先级按此序列；条件书写为 eval(string), 内置关键字为 'record';  \r\n<b>viewMode</b> : 渲染显示模式，文字/ icon, { <kbd>Table_enumViewMode.DEFAULT</kbd>, <kbd>Table_enumViewMode.ICON</kbd>, <kbd>Table_enumViewMode.ICONTEXT</kbd> }。\r\n\r\n\r\n\r\n将配置完成的 [操作栏] 数据与 [column] 数据进行数组合并。 \r\n\r\n```javascript\r\n\r\nimport { setActionsTestMock } from '../tableMock.tsx';\r\nimport { ColumnRender_operationAction } from 'bamboosnaketool';\r\n\r\nexport const setColumns = [\r\n  {\r\n    title: '创建人',\r\n    dataIndex: 'str3',\r\n    key: 'str3',\r\n  },\r\n  {\r\n    title: '操作',\r\n    key: 'action',\r\n    render: (text: string, record: any, index: number) => {\r\n\r\n      let setActionsTest = setActionsTestMock;\r\n\r\n      // if 条件变更 setActions ...\r\n      return ColumnRender_operationAction(text, record, index, setActionsTest);\r\n    }\r\n  }\r\n];\r\n\r\n```\r\n\r\n更多细节建议利用mock数据做一个例子，并花30分逐个尝试并理解为最佳。这里就没有逐一全部写清楚了。\r\n\r\n\r\n\r\n\r\n###### column-Item - 配置定制化模板\r\n\r\n支持表格单元格渲染，输入框类型、货币格式转换、时间戳转字符串、进度条（节状、直条、或任意款式）、高亮link内容等错综复杂的万象需求...，都可按照目前组件提供的内置模板模式达成。\r\n\r\n配置示例：\r\n\r\n```javascript\r\n\r\n// 这里就写局部结构，完整内容参考已上述过的【列头配置】\r\n{\r\n  [keys.salesForecast]: {\r\n    name: '链接文本',             // 其实这里是  列头名称，为方便理解这个改为了 ’示例模板名称‘\r\n    condition: [\r\n      'record.id !== \"3\"',\r\n      {\r\n        customType: Table_ColumnCustomType.LINKBUTTON,\r\n        customSettings: {\r\n          style: {\r\n            fontWeight: 'bold'\r\n          }\r\n        }\r\n      }\r\n    ]\r\n  },\r\n\r\n  [keys.replenishNumber]: {\r\n    name: '输入框',               // 其实这里是  列头名称，为方便理解这个改为了 ’示例模板名称‘\r\n    condition: [\r\n      'record.id !== \"3\"',\r\n      {\r\n        customType: Table_ColumnCustomType.INPUT,\r\n        optionsApi: {\r\n          style: { width: 56 },\r\n          maxLength: 4\r\n        }\r\n      },\r\n      {                                                   // 其实该处整个{}对象配置可以省略，组件内部会默认使用 NORMALRENDER 渲染正常文本显示。\r\n        customType: Table_ColumnCustomType.NORMALRENDER,  // 默认渲染普通文本 - 该处可不设\r\n      }\r\n    ]\r\n  }\r\n}\r\n\r\n```\r\n\r\n上述代码示例中出现了三个组件内置模板，Table_ColumnCustomType { LINKBUTTON, INPUT, NORMALRENDER }。\r\n\r\n<b>optionsApi</b> 为antd-api，这里的设置参数全部是直接 setProps 到 antd-DOM 上的。根据不同的组件查看官方具体的api。\r\n<b>customSettings</b> 设置一些自定义的dom属性，比如 customSettings.style， 这些最终也会以 setProps 方式应用到 DOM 的行间样式属性中；\r\n\r\n为了方便理解，从概念上 <b>optionsApi</b> 可看作【setApis】，<b>customSettings</b>可看作【setPropertys】。\r\n\r\n\r\n\r\n###### 渲染条件 condition\r\n\r\n这里condition（条件）要特别说下，它决定了每个列配置的最终渲染结果，根据条件满足与否执行A/ B；`类似if else 无限递归`\r\n\r\ncondition本身是数组，参考概念格式为 condition = [ boolean, A, B ] 或 [ boolean, A ] 。\r\n\r\n```\r\nc[0] 是布尔类型，成功则执行A，否则执行B；  \r\nA/B  是一个单个模板完整的配置方案；  \r\nB 非必填，不填时则渲染默认模板 Table_ColumnCustomType.NORMALRENDER（默认文本显示）;  \r\n\r\nc[0]：书写可以是 true/ false/ 表达式， 或 eval(string)，string数据关键字为 'record';\r\n```\r\n\r\n\r\n\r\n同时为<b>满足相对复杂的业务需求</b>，这里支持无限层级的类似  if else 嵌套，代码如下：\r\n\r\n```javascript\r\n\r\n// 类似 if else 方式\r\n{\r\n  name: '补货数量',\r\n  condition: [\r\n    true,\r\n    {\r\n      customType: Table_ColumnCustomType.INPUT,\r\n      optionsApi: {\r\n        style: { width: 56 },\r\n        maxLength: 4\r\n      }\r\n    },{\r\n      customType: Table_ColumnCustomType.TEXT,\r\n      optionsApi: {\r\n        style: { width: 56 },\r\n        maxLength: 4\r\n      }\r\n    }\r\n  ]\r\n}\r\n\r\n// 伪代码理解\r\n// [false, 3, [false, 5, [true, 18]]]    - 结果：18\r\n// [true, 996, [true, 42, [false, 23]]]  - 结果：996\r\n// [false, 5]\t\t\t\t\t\t     - 结果：由于未设置B，则指向默认Table_ColumnCustomType.NORMALRENDER，或优先外部配置的 isItemRender\r\n\r\n\r\n// 递归无限层级\r\n{\r\n  name: '补货数量',\r\n  condition: [\r\n    true,\r\n    {\r\n      customType: Table_ColumnCustomType.INPUT,\r\n      optionsApi: {\r\n        style: { width: 56 },\r\n        maxLength: 4\r\n      }\r\n    },[\r\n      true,\r\n      {\r\n        customType: Table_ColumnCustomType.TEXT,\r\n        optionsApi: {\r\n          style: { width: 56 },\r\n          maxLength: 4\r\n        }\r\n      }, [ 无限层级... ]\r\n    ]\r\n  ]\r\n}\r\n\r\n```\r\n\r\n###### 模板 template\r\n\r\n目前使用的模板都是内置的。在 ./template.tsx 中。\r\n需要新增则需要扩展  Table_ColumnCustomType 类型名称 及 对应的 render 函数。  \r\n\r\n理想的最优解为之后迭代，让今后使用者能够外部定义追加扩展模板及模板类型名称。  \r\n\r\n\r\n\r\n###### 表格事件 eventHandle\r\n\r\n通过配置表格组件Props - ALLEVENTCallback, 传入一个方法，该方法仅会响应 template 模板事件。  \r\n\r\n```javascript\r\n\r\n// 全表格事件回调捕捉函数\r\nconst tableLLEVENTCallback: ALLEVENTCallbackType = (TYPE, data) => {\r\n\r\n  // 输入框 - 每次输入\r\n  if (TYPE === Enum_ALLEVENT.INPUT_onChange) {\r\n    const { e, record, columnItem, index } = data;\r\n    let key = columnItem.key;\r\n    let value = e.target.value;\r\n    \r\n    //...\r\n  }\r\n  // 输入框 - 回车 / 失焦\r\n  else if (TYPE === Enum_ALLEVENT.INPUT_onPressEnter || TYPE === Enum_ALLEVENT.INPUT_onBlur) {\r\n\r\n  }\r\n  // 点击 预测销量\r\n  else if (TYPE === Enum_ALLEVENT.LINKBUTTON_onClick) {\r\n    // do anything...\r\n  }\r\n}\r\n\r\n```\r\n\r\n顺便提一嘴，操作栏 ACTION 的事件回调函数为 <b>eventSubstance</b>。在配置 ACTION-item 时被一并配置，根据ACTION类型不同会有所不同。\r\n\r\n###### Props Api\r\n\r\n```javascript\r\n\r\ninterface IProps  {\r\n  dispatch: Dispatch;\r\n\r\n  columns: ColumnsType<ColumnsTypeMine>;   // 表格列头\r\n  dataSource: any[];                       // 表格数据\r\n  rowKey?: string | undefined;             // 自定义关键参数 default: id\r\n  isShowPagination?: boolean;              // 是否显示分页组件\r\n  defaultFirstPage?: number | undefined;   // 默认开始页码\r\n  pageCurrent?: number | undefined;        // 当前页码\r\n  pageTotal?: number | undefined;          // 总页码数\r\n  pageLimit?: number | undefined;          // 单页数据数量\r\n  pageSizeOptions?: string[] | undefined;  // 单页数量变更\r\n\r\n  onPaginationChange?: ((page: number, pageSize: number) => void) | undefined;   \t\t// 分页组件事件回调\r\n  onPaginationShowSizeChange?: ((current: number, size: number) => void) | undefined;\t// 是否显示分页组件\r\n  ALLEVENTCallback?: ALLEVENTCallbackType; // 公共回调函数 (可用于解决column-render组合任何组件的无限触发事件回调)\r\n\r\n  reloadApiTable?: TableProps<any>;        // antd - table - api\r\n  reloadApiPagination?: PaginationProps;   // antd - pagination- api\r\n}\r\n\r\n```\r\n\r\n\r\n\r\n###### TS报错\r\n\r\n参数声明 isItemRender 是 [boolean, ColumnCustomType]，但如果直接写成 isItemRender: [true, ColumnCustomType.TEXTLINESINGLE]，会造成props报错，原因是TS自动解析为 联合类型，而不是索引指定类型；\r\n\r\n```typescript\r\nimport Bamboo from 'bamboosnaketool';\r\nconst { Table: BamTable } = Bamboo;\r\n// 这样指定个声明可以解决TS报错误识别问题\r\n// 如不额外将 setIsItemRender 拿出来做TS会自动认为 [true, ColumnCustomType.TEXTLINESINGLE] 是 (boolean | ColumnCustomType)[]，fuok！\r\nconst setIsItemRender: [boolean, ColumnCustomType] = [true, ColumnCustomType.TEXTLINESINGLE];\r\n\r\n// table setProps - FAST\r\nconst setTableProps = {\r\n  dataSource: dataSourceList,\r\n  columns: saColumns,\r\n  isItemRender: setIsItemRender,\r\n  // isItemRender: [true, ColumnCustomType.TEXTLINESINGLE]\r\n}\r\n\r\n// render\r\n<BamTable { ...setTableProps } />\r\n```\r\n\r\n解决其它含antd@type 的报错解决。页面调用时由于TS默认会识别 ‘small’ | ‘checkbox’ 为 string 类型。\r\n\r\n```typescript\r\nimport { SizeType } from 'antd/lib/config-provider/SizeContext.d';\r\nimport { RowSelectionType } from 'antd/lib/table/interface.d';\r\nimport Bamboo from 'bamboosnaketool';\r\nconst { Table: BamTable } = Bamboo;\r\n\r\nconst sizeType: SizeType = 'small';\r\nconst rowSelectionType: RowSelectionType = 'checkbox';\r\n\r\n/* 或亦可如此，更爲简洁\r\n{ \r\n\tsize: ('small' as SizeType),\r\n\trowSelection: {\r\n\t\ttype: 'checkbox' as RowSelectionType\r\n\t}\r\n}\r\n*/\r\n\r\n// table setProps - FAST\r\nconst setTableProps = {\r\n  dataSource: dataSourceList,\r\n  columns: saColumns,\r\n  reloadApiTable: {\r\n      size: sizeType,\r\n      rowSelection: {\r\n        type: rowSelectionType,\r\n        onChange: (selectedRowKeys: React.Key[], selectedRows: any[]) => {\r\n          setCheckeds(prev => {\r\n            return [...selectedRowKeys]\r\n          });\r\n        },\r\n        getCheckboxProps: (record: any) => ({\r\n          // disabled: record.name === 'Disabled User', // Column configuration not to be checked\r\n          name: record.name,\r\n        }),\r\n      }\r\n  }\r\n}\r\n\r\n// render\r\n<BamTable { ...setTableProps } />\r\n\r\n```\r\n\r\n\r\n\r\n\r\n\r\n##### TreeAbundant - 丰富的树组件 （Tabs + Tree）：\r\n\r\n使用antd的 tree + tabs 组件拼搭的封装组件。\r\n\r\n###### 基本使用\r\n\r\n```typescript\r\nimport Bamboo, { Components } from 'bamboosnaketool';\r\n\r\nconst { TreeAbundant, TreeAbundant_enumEVENTTYPE, TreeAbundant_eventHandle } = Bamboo;\r\n\r\n// 丰富树组件 - 全事件回调\r\nconst treeAbundant_eventHandle: TreeAbundant_eventHandle = (TYPE, data) => {\r\n  if (TreeAbundant_enumEVENTTYPE.RADIO_CHANGE === TYPE) {\r\n    let value = data;\r\n  } else if (TreeAbundant_enumEVENTTYPE.TREE_CHECKED === TYPE) {\r\n    let { checkedKeysValue, checkedNodes } = data;\r\n  }\r\n}\r\n\r\n// 门店-丰富树props配置\r\nconst setTreeAbund = {\r\n  treeDataSource: storeTreeDatasource,        // 树状嵌套数组数据\r\n  defaultTreeExpandedKeys: storeTreeDatasource.length > 0 ? [storeTreeDatasource[0].key] : [],   // 默认展开yf首层级\r\n  effectTreeCheckedKeys: storeConfrimCodes,   // array\r\n  isShowTabs: false,                          // 是否显示tabs\r\n  eventHandle: treeAbundant_eventHandle\r\n};\r\n\r\n// render ...\r\n<TreeAbundant { ...setTreeAbund }/>\r\n\r\n```\r\n\r\n*为确保同步更新，<kbd>effectTreeCheckedKeys</kbd>必须始终配置，如果有没配置则填入空数组“[]”。\r\n\r\napi参考\r\n```typescript\r\ninterface IProps  {\r\n  dispatch: Dispatch;\r\n  \r\n  treeDataSource: any[];                    // tree组件数据\r\n  eventHandle: intfEventHandle;             // 公共回调事件\r\n  effectTreeCheckedKeys: React.Key[];       // 再次定义多选 (default: 'key')\r\n\r\n  dataNodeKeyConf?: intfDataNodeKeyConf;    // 关键字段自定义配置 [title, key, children]\r\n  isShowTabs?: boolean;                     // tab选项卡 - 是否显示\r\n  tabsItems?: intfTabsItem[];               // tab选项卡渲染数据  [{ label: string, value: string }, ...]\r\n  defaultRadioValue?: string;               // 默认radioValue\r\n  defaultTreeExpandedKeys?: React.Key[];    // 设置默认展开 (default: 'key')\r\n  defaultTreeCheckedKeys?: React.Key[];     // 设置默认多选 (default: 'key')\r\n  defaultSelectedKeys?: React.Key[];        // 设置默认选中 (default: 'key')\r\n  treeOptiosApis?: TreeProps;               // 树组件 apis - antd\r\n\r\n  mainStyle?: React.CSSProperties;          // 主结构样式自定义\r\n  tabBoxStyle?: React.CSSProperties;        // tab容器结构样式自定义\r\n  treeBoxStyle?: React.CSSProperties;       // 树容器结构样式自定义\r\n}\r\n```\r\n\r\n\r\n\r\n##### TableColumnsLayer - 表格列显示/隐藏组件\r\n\r\n###### 功能\r\n1. 动态变动表格列数据；\r\n2. 支持列数据存储/取赋值；\r\n3. 支持列数据拖动排序；\r\n\r\n###### 基本使用\r\n1. 给定表格列数据，此列数据需要可以变动\r\n``` typescript\r\nimport Bamboo, { Utiles, Components } from 'bamboosnaketool';\r\nimport initColumn from './columns';\t\t\t// 附属xx页面模块的表格配置\r\n\r\nconst { default: TableColumnsLayer } = Components;\r\nconst [ columns, setColumns ] = useState(initColumn);  // 声明\r\n\r\n// 定义列变动通知方法\r\nconst onColumnChange = (data:any, close:any) => {\r\n\t// 选择的列数据\r\n\tlet { columns, width } = data;\r\n\r\n\t// 如果操作列单独拿出来的，需要手动放进去\r\n\tsetColumns([...columns, ACTION_OPERATION]);\r\n\r\n\t// 关闭列选择弹出窗\r\n\tclose();\r\n}\r\n\r\n// JSX中渲染注册触发事件按钮，及参数配置项\r\n<TableColumnsLayer columns={ columns } onChange={ onColumnChange }>\r\n\t<Button type=\"primary\" ghost>\r\n\t  列选择\r\n\t</Button>\r\n</TableColumnsLayer>\r\n```\r\n\r\n###### 配置项\r\n| 配置项   | 类型 | 说明                                                                                | 默认值 |\r\n| ----------- | ------ | ------------------------------------------------------------------------------------- | ------ |\r\n| columns     | 数组 | 表格的列数据                                                                    | 必填 |\r\n| onChange    | 函数 | 回调函数，会回调给用户2个参数，一个data(包含columns和width)，一个是关闭弹出窗口的方法 | 必填 |\r\n| table       | ref    | 默认插件会自己去找table，用户也可以传入table的ref，这样会更加准确 | 非必填 |\r\n| needStorage | 布尔值 | 是否存储此次操作的列数据，如果存储，下次进来会读取存储中的数据 | false  |\r\n\r\n###### 注意事项\r\n1. 未传入ref，组件会自己去找，多个表格的情况有可能会出错，最好把表格的ref传入\r\n2. 如果操作列没有放到column，而是后面加入，那么回调方法中回调的列数据不包含操作列，需要手动把列数据放入，否则可能会出现操作列不见的情况\r\n\r\n\r\n\r\n##### FileUploadExcelToData - 上传文件组件\r\n\r\n内置生成一个button按钮，点击该按钮后弹窗windows-fileSelectWindow（windows系统自带文件选择窗口）；\r\n可以配置一些导入数量的相关数量限制tips阻断；\r\n\r\n###### 基本使用\r\n\r\n```javascript\r\nimport Bamboo, { Components, FileUploadExcelToData_callback } from 'bamboosnaketool';\r\n\r\nconst { FileUploadExcelToData } = Bamboo;\r\n// 或 const { FileUploadExcelToData } = Components;\r\n\r\nconst excelAnaylsDataDispose: FileUploadExcelToData_callback = (\r\n    data,\r\n    options\r\n) => {\r\n    const { file, onSuccess, onError } = options;\r\n}\r\n/*\r\nimport { UploadRequestOption } from 'rc-upload/lib/interface';\r\n(\r\n    data: { jsonData: any[], excelColumns: string[] },\r\n    options: UploadRequestOption\r\n) => any\r\n*/\r\n\r\n// 文件上传props\r\nconst fileExcelUploadProps = {\r\n    isLoading: isLoadingImportExcel,\r\n    isDisabled: isLockEdit,\r\n    buttonText: '上传文件',\r\n    singleUploadMaxLength: 100000,\r\n    slowMaybeMaxLength: 100000,\r\n    callback: excelAnaylsDataDispose,\r\n    uploadApiOptions: {\r\n        multiple: false,\r\n        maxCount: 1\r\n    },\r\n    buttonApiOptions: {\r\n        icon: <UploadOutlined />\r\n    }\r\n};\r\n\r\n// render...\r\n<FileUploadExcelToData { ...fileExcelUploadProps } />\r\n    \r\n// 前置拦截功能待未来实现 （比如点击不是直接选择文件，而是判断条件）\r\n```\r\n\r\n###### 功能\r\n\r\n校验导入的文件类型MIME是否正确；\r\n\r\n将导入文件的二进制类型转换为可读JSON数据对象；\r\n\r\n对超出预设数量的导入操作进行拦截/提示；\r\n\r\n自定义按钮；\r\n\r\n\r\n\r\n###### 配置项说明\r\n\r\n| 配置项                | 类型                                                         | 说明                                                    | 默认值                                                       | 必填 |\r\n| --------------------- | ------------------------------------------------------------ | ------------------------------------------------------- | ------------------------------------------------------------ | ---- |\r\n| isDisabled            | boolean                                                      | 是否禁用                                                | false                                                        | 否   |\r\n| isLoading             | boolean                                                      | 是否是载入状态                                          | false                                                        | 否   |\r\n| fileTypeStr           | {<br />    override: boolean;  // 是否覆盖<br />    names: string[];   // 文件类型编码<br />} | 文件类型编码,MIME                                       | { false, [] }                                                | 否   |\r\n| singleUploadMaxLength | number                                                       | 单次上传最大数量，超过限制时候会msg.warn + 逻辑阻断；   | 3000                                                         | 否   |\r\n| slowMaybeMaxLength    | number                                                       | 执行时可能较慢提示，modal.confrim，确认后再执行         | 2000                                                         | 否   |\r\n| buttonText            | string                                                       | 按钮文本                                                | \"导入\"                                                       | 否   |\r\n| callback              | function                                                     |                                                         | null                                                         | 否   |\r\n| uploadApiOptions      | { ...antd-options }                                          | antd-Upload，的相关再定义api。（不要覆盖customRequest） | {}                                                           | 否   |\r\n| buttonApiOptions      | { ...antd-options }                                          | antd-Button，的相关再定义api。                          | { type: 'primary', ghost: true, title: '选择一份excel文件' } | 否   |\r\n\r\n###### \r\n\r\n##### ImportFileExcelDataVerifyTool - Excel导入数据校验与转换\r\n\r\n场景：想把excel的中文列头转成英文字段并且拿到转换后的数组，key是excel的列头中文，toKey是需要将原来的中文列头转成什么字段，type表示列值的类型，如果设置了type，那么转换后的数据类型会转成设置的type类型，类型枚举可使用ExcelType，目前包括的枚举(STRING, NUMBER, BOOLEAN, DATETIME, DATE, TIME, FLOAT)\r\n\r\n###### 基本使用\r\n\r\n``` javascript\r\nimport Bamboo, { Utiles, Components } from 'bamboosnaketool';\r\nconst { ImportFileExcelDataVerifyTool } = Bamboo; \r\nconst { ExcelRule } = Utiles;\r\n\r\nnew importFileExcelDataVerifyTool({\r\n  file: ev.target.files[0], //file对象 必传\r\n  columns: [\r\n    { \r\n      key: \"列名比如商品编码\", \r\n      type: ExcelType.STRING, //数据类型，用于转换数据，具体类型可以查看ExcelType枚举\r\n      toKey: \"把列头字段转换成的字段比如goodCode\", \r\n    },\r\n  ],\r\n})\r\n.valid() // 开始进行数据校验 必须有\r\n.then((res)=>{\r\n  // 没有任何错误，将返回数据\r\n  // res 为 { total: 总行数, data: 数据数组 }\r\n  console.log(res);\r\n})\r\n```\r\n\r\n###### 设置预警值\r\n场景：有限定用户excel数据量大小，并且需要告知用户数据量已经超出询问用户是否继续导入\r\n``` javascript\r\nimport Bamboo, { Utiles, Components } from 'bamboosnaketool';\r\nconst { ImportFileExcelDataVerifyTool } = Bamboo; \r\nconst { ExcelRule } = Utiles;\r\n\r\nnew importFileExcelDataVerifyTool({\r\n  file: ev.target.files[0], //file对象 必传\r\n  columns: [\r\n    { \r\n      key: \"列名比如商品编码\", \r\n      type: 'string|number|boolean|float', //数据类型，用于转换数据\r\n      toKey: \"把列头字段转换成的字段比如goodCode\", \r\n    },\r\n  ],\r\n})\r\n.warn((msg, confirm, cancel)=>{\r\n  //配置了warn字段必须加\r\n  // confirm() // 调用此函数表示继续操作\r\n  // cancel() // 此函数表示取消操作\r\n})\r\n.valid() // 开始进行数据校验 必须有\r\n.then((res)=>{\r\n  // 没有任何错误，将返回数据\r\n  // res 为 { total: 总行数, data: 数据数组 }\r\n  console.log(res);\r\n})\r\n```\r\n###### 设置起始行\r\n场景：需要从指定的excel行开始读取数据，可以设置startIndex配置，默认从第一行开始\r\n``` javascript\r\nimport Bamboo, { Utiles, Components } from 'bamboosnaketool';\r\n\r\nconst { ImportFileExcelDataVerifyTool } = Bamboo; \r\nconst { ExcelRule } = Utiles;\r\n\r\nimportFileExcelDataVerifyTool({\r\n  startIndex:0, //开始行数\r\n  file: ev.target.files[0], //file对象 必传\r\n  columns: [\r\n    { \r\n      key: \"列名比如商品编码\", \r\n    },\r\n  ],\r\n})\r\n.valid()\r\n.then((res)=>{\r\n  // 没有任何错误，将返回数据\r\n  // res 为 { total: 总行数, data: 数据数组 }\r\n  console.log(res);\r\n})\r\n```\r\n\r\n###### 验证\r\n场景：需要对上传的excel数据字段值进行校验，插件本身提供内置的验证，具体可使用插件暴露出的ExcelRule枚举查看，如果想要自己定义验证，可以使用ExcelRule.Customer，然后定义valid回调函数，回调函数会传入读取到的行数据（注：如果定义了转换的key，那么读取到的行数据中的列字段是经过转换的，不是excel显示的中文），回调函数如果返回true，表示验证通过，验证结束后，错误的验证消息会通过catch方法来进行捕捉，错误的消息可以通过配置msg字段来提示，如果不配置插件会使用自己定义的消息提示，一般来说如果使用了内置的验证会提示内置的验证提示，比如使用身份证号验证将默认提示xxx必须是身份证号，没有的内置验证将提示xxx格式错误\r\n``` javascript\r\nimport Bamboo, { Utiles, Components } from 'bamboosnaketool';\r\nconst { ImportFileExcelDataVerifyTool } = Bamboo; \r\nconst { ExcelRule } = Utiles;\r\n\r\nnew importFileExcelDataVerifyTool({\r\n  file: ev.target.files[0], //file对象 必传\r\n  columns: [\r\n    { \r\n      key: \"列名比如商品编码\", \r\n      toKey: \"把列头字段转换成的字段比如goodCode\", \r\n      rules:[\r\n        {type:ExcelRule.CUSTOMER, valid:(row)=>{return row.goodCode=='a'}, msg:'自定义错误消息'}, //自定义校验\r\n        {type:ExcelRule.NUMBER, msg:'商品编码必须是数字'}, //使用内部校验规则 可以使用 ExcelRule枚举提供的校验规则\r\n      ]\r\n    },\r\n  ],\r\n})\r\n.valid() // 开始进行数据校验 必须有\r\n.then((res)=>{\r\n  // 没有任何错误，将返回数据\r\n  // res 为 { total: 总行数, data: 数据数组 }\r\n  console.log(res);\r\n}).catch((error)=>{ \r\n\r\n  // 1.校验规则错误 2.interceptor设置的函数返回false\r\n  console.log(error); // {msg:}\r\n})\r\n\r\n```\r\n\r\n###### 手动添加数据\r\n场景：1. 需要在行数据上添加字段 2. 想要遍历指定字段然后中断读取操作 可以使用interceptor方法，此方法会回调给用户行数据和验证过后的错误消息，此函数如果返回false则表示中断excel读取操作，如果返回false此函数会触发catch回调\r\n``` javascript\r\n\r\nnew importFileExcelDataVerifyTool({\r\n  file: ev.target.files[0], //file对象 必传\r\n  columns: [\r\n    { \r\n      key: \"列名比如商品编码\", \r\n      type: 'string|number|boolean|float', //数据类型，用于转换数据\r\n      toKey: \"把列头字段转换成的字段比如goodCode\", \r\n    },\r\n  ],\r\n})\r\n.interceptor((rowData:any, err:[])=>{\r\n  // 此方法不是必需要要有的，如果有数据转换或者要在行数据里面加些字段可以使用\r\n  // 使用interceptor来进行数据装换， data为行数据\r\n  rowData.field = Math.random();\r\n  console.log(rowData);\r\n\r\n  // return false直接中断操作抛出异常\r\n  return true;\r\n})\r\n.valid() // 开始进行数据校验 必须有\r\n.then((res)=>{\r\n  // 没有任何错误，将返回数据\r\n  // res 为 { total: 总行数, data: 数据数组 }\r\n  console.log(res);\r\n}).catch((error)=>{ \r\n\r\n  // 1.校验规则错误 2.interceptor设置的函数返回false\r\n  console.log(error); // {msg:}\r\n})\r\n```\r\n\r\n###### 配置项说明\r\n| 配置项     | 类型    | 说明                                                                                                                                                                                                                                                                                                                             | 默认                                                                                                                     |\r\n| ------------- | --------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- |\r\n| file          | file对象 | file对象                                                                                                                                                                                                                                                                                                                         | 必填                                                                                                                     |\r\n| sheet         | 数字    | excel中如果有多个工作簿，可以通过sheet配置项来配置读取第几个工作簿的数据                                                                                                                                                                                                                            | 0                                                                                                                          |\r\n| isDebugger    | 布尔    | 是否显示警告在控制台中                                                                                                                                                                                                                                                                                                  | false                                                                                                                      |\r\n| mimeType      | 数组    | 设置可以读取的文件类型，默认                                                                                                                                                                                                                                                                                         | [\"application/vnd.ms-excel\", \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\", ] |\r\n| max           | 数字    | 最大行数                                                                                                                                                                                                                                                                                                                       | 500                                                                                                                        |\r\n| warn          | 数字    | 预警行数                                                                                                                                                                                                                                                                                                                       | 500                                                                                                                        |\r\n| columns       | 数组    | 配置excel列                                                                                                                                                                                                                                                                                                                     | 必填                                                                                                                     |\r\n| columns.key   | 字符串 | 列名比如商品编码                                                                                                                                                                                                                                                                                                           |                                                                                                                            |\r\n| columns.type  | ExcelType | 列名类型，描述此列数值的类型                                                                                                                                                                                                                                                                                         |                                                                                                                            |\r\n| columns.toKey | 字符串 | 重命名key，比如key为商品编码，toKey为goodCode，那么导出的数据就是{goodCode:''}这种形式                                                                                                                                                                                                                  |                                                                                                                            |\r\n| columns.rules | 数组    | rules:[{type:ExcelRule.CUSTOMER, valid:(row)=>{return row.goodCode=='a'}, msg:'自定义错误消息'},{type:ExcelRule.NUMBER, msg:'商品编码必须是数字'}] 注：msg可以为空，如果为空则会采用插件自带的提示 验证类型的可使用ExcelRule的枚举类型|                                                                                                                            |\r\n\r\n\r\n###### 方法说明\r\n| 方法      | 说明                                                                                                                        |\r\n| ----------- | ----------------------------------------------------------------------------------------------------------------------------- |\r\n| valid       | 校验方法，必须调用                                                                                                   |\r\n| warn        | 配置了warn字段必须调用，会有三个参数回调给用户(msg, confirm, cancel) msg为消息，confirm为用户继续操作，cancel表示取消数据读取 |\r\n| interceptor | 此方法会回调给用户当前行数据和错误消息，如果用户在此方法中返回false，会中断读取数据操作，并且会调用catch抛出异常 |\r\n| then        | 数据读取完成无错误会回调给用户一个对象，{ total: 总行数, data: 数据数组 }                          |\r\n| catch       | 数据读取中如果有校验错误或者在intercepotor里返回false都会触发此方法，并回调给用户一个对象{type:'error', msg:['错误消息']} |\r\n\r\n\r\n\r\n###### 枚举类型\r\n| 类型    | 说明     |\r\n| --------- | ---------- |\r\n| ExcelRule | 内置规则枚举(NUMBER整数验证 MOBILE手机号验证 IDCARD身份证验证 NUMERIC小数验证 NOT_EMPTY非空验证 CUSTOMER自定义验证) |\r\n| ExcelType | 列类型枚举(STRING字符串 NUMBER整数数值包括负数 FLOAT小数 BOOLEAN布尔类型 DATETIME年月日时分秒格式 DATE年月日格式 TIME时分秒格式) |\r\n\r\n\r\n\r\n##### FreeCustomRowLine - 增减行自由定义配置组件\r\n\r\n支持能预先自由配置各种元素组合的单行模板（文字/ antd组件/ 自定义元素...）。\r\n根据配置的单行模板，能够去生成n行该模板的独立数据控制，排序样式，单元素填值时的基础校验，最终生成表单数据。\r\n同时支持单行的删除。（未来会支持 up down调序）。\r\n\r\n###### 基本使用\r\n\r\n如下述示例，组成的是支持`整单满[?]元，赠送[x?],[number?]`的设置项；\r\n\r\n```javascript\r\nimport Bamboo, { FreeCustomRowLine, FreeCustomRowLine_EVENTTYPE, FreeCustomRowLine_ELEMENTTEMP } from 'bamboosnaketool';\r\nconst { FreeCustomRowLine } = Bamboo;\r\n\r\n// 配置增减行\r\nconst freeCustomRowLineConfProps = {\r\n  templateRow: [\r\n    {\r\n        elementTEMP: FreeCustomRowLine_ELEMENTTEMP.INNERHTML,\r\n        style: { width: 38, marginRight: 8 }\r\n    },\r\n    '整单满',\r\n    {\r\n      elementTEMP: FreeCustomRowLine_ELEMENTTEMP.INPUTNUMBER,\r\n      placeholder: '价格',\r\n      maxLength: 8,\r\n      style: { width: 100, marginLeft: 4, marginRight: 4 },\r\n      apiOptions: {\r\n        min: 0\r\n      }\r\n    },\r\n    '元，赠送',\r\n    {\r\n      elementTEMP: FreeCustomRowLine_ELEMENTTEMP.INPUT,\r\n      placeholder: '搜索商品',\r\n      maxLength: 10,\r\n      style: { width: 200, marginLeft: 4, marginRight: 4 }\r\n    },\r\n    '，',\r\n    {\r\n      elementTEMP: FreeCustomRowLine_ELEMENTTEMP.INPUTNUMBER,\r\n      placeholder: '数量',\r\n      maxLength: 4,\r\n      style: { width: 90, marginLeft: 4, marginRight: 4 },\r\n      apiOptions: {\r\n        min: 0\r\n      }\r\n    }\r\n  ],\r\n  callback: (TYPE: EVENTTYPE, data: any) => {\r\n    console.log(TYPE, data)\r\n  }\r\n};\r\n\r\n// render...\r\n<FreeCustomRowLine {...freeCustomRowLineConfProps} />\r\n```\r\n\r\n如何简单理解上述呢？templateRow 是确定单行模板的如下：\r\n\r\n```javascript\r\n// 支持类型\r\n{\r\n    templateRow: [ string文本 | 内置模板对象 | JSX.Element ]\r\n}\r\n```\r\n\r\n最终组件内部会平铺该数组内的所有内容组成完整的单行预模板；\r\n\r\n\r\n\r\n###### 初始化插入数据\r\n\r\n支持通过数据对组件进行首次初始化的渲染生成。\r\n\r\n下面的配置会初始化生成下列文本（由于无法附图，文字描述）：\r\n\r\n条件1：整单满 [inputNumber] 元，赠送 [input-autocomplate] ，数量 [inputNumber] 责任人 [select]，备注：[input]  (删除、锁定、向上移动、向下移动)\r\n\r\n```typescript\r\nimport Bamboo, { FreeCustomRowLine_ELEMENTTEMP } from 'bamboosnaketool';\r\n\r\nconst __awardLineMockDatas = [\r\n  [\r\n    { \"value\": `<span style=\"padding: 1px 5px; color: #fff; background-color: #FF7157; display: inline-block\">类型</span>` },\r\n    { \"value\": 128, disabled: true },\r\n    {\r\n      \"value\": \"异步2\",\r\n      \"valueId\": \"async2\",\r\n      \"options\": [\r\n        { \"value\": \"async1\", \"label\": \"异步1\" },\r\n        { \"value\": \"async2\", \"label\": \"异步2\" },\r\n        { \"value\": \"async3\", \"label\": \"异步3\" }\r\n      ]\r\n    },\r\n    { \"value\": 1 },\r\n    { \"value\": \"选项1\", \"valueId\": \"a1\" },\r\n    { \"value\": \"撒大大\" }\r\n  ]\r\n];\r\n\r\n// 配置增减行\r\nconst shoppingAwardGiftConfProps = {\r\n  datasource: __awardLineMockDatas,\r\n  templateRow: [\r\n      {\r\n        elementTEMP: FreeCustomRowLine_ELEMENTTEMP.INNERHTML,\r\n        style: { width: 38, marginRight: 8 }\r\n      },\r\n      '整单满',\r\n      {\r\n        stamp: 'PRICE',\r\n        elementTEMP: ELEMENTTEMP.INPUTNUMBER,\r\n        placeholder: '价格',\r\n        maxLength: 8,\r\n        style: { width: 100, marginLeft: 4, marginRight: 4 },\r\n        apiOptions: {\r\n          min: 0\r\n        }\r\n      },\r\n      '元，赠送',\r\n      {\r\n        stamp: 'SEARCH_GOODS',\r\n        elementTEMP: ELEMENTTEMP.AUTOCOMPLETE,\r\n        placeholder: '搜索商品',\r\n        maxLength: 10,\r\n        style: { width: 200, marginLeft: 4, marginRight: 4 }\r\n      },\r\n      '，数量',\r\n      {\r\n        stamp: 'NUMBER',\r\n        elementTEMP: ELEMENTTEMP.INPUTNUMBER,\r\n        placeholder: '数量',\r\n        maxLength: 4,\r\n        style: { width: 90, marginLeft: 4, marginRight: 4 },\r\n        apiOptions: {\r\n          min: 0\r\n        }\r\n      },\r\n      '责任人',\r\n      {\r\n        stamp: 'PRINCIPAL',\r\n        elementTEMP: ELEMENTTEMP.SELECT,\r\n        placeholder: '选择性',\r\n        style: { width: 90, marginLeft: 4, marginRight: 4 },\r\n        options: [\r\n          { value: 'fzr1', label: '吴亦凡' },\r\n          { value: 'fzr2', label: '鹿晗' },\r\n          { value: 'fzr3', label: '黄子韬' }\r\n        ],\r\n        apiOptions: {}\r\n      },\r\n      '，备注：',\r\n      {\r\n        stamp: 'REMARK',\r\n        elementTEMP: ELEMENTTEMP.INPUT,\r\n        placeholder: '请输入备注内容',\r\n        maxLength: 10,\r\n        style: { width: 200, marginLeft: 4, marginRight: 4 }\r\n      }\r\n  ]\r\n}\r\n```\r\n\r\n\r\n\r\n###### 顶部按钮组\r\n\r\n组件内置了顶部按钮组 ，该组可配置 [新增一行]、 [重置]、[自定义];\r\n\r\n其中 [新增一行]、 [重置]为内置，组件Props { showAddButton, showResetButton } 为 true 时显示，否则隐藏；\r\n\r\n同时也支持配置多个自定义按钮，通过配置后可以更灵活的实现应用。\r\n\r\n```typescript\r\n// 可通过配置属性 customManaButtons 实现\r\nimport Bamboo, { FreeCustomRowLine_ManaButton } from 'bamboosnaketool';\r\nimport { PlusOutlined, DeleteOutlined } from '@ant-design/icons';\r\nlet freeCustomRowLineConfProps = {\r\n    ...,\r\n    customManaButtons: [\r\n    \t{\r\n    \t\ttext: '自定义按钮1',\r\n    \t\ttype: FreeCustomRowLine_ManaButton.CUSTOM,\r\n    \t\tstamp: 'ANY_NAME_1',\r\n    \t\tstyle: {\r\n    \t\t\tcolor: 'red'\r\n\t\t\t},\r\n    \t\tapiOptions: {\r\n                icon: <PlusOutlined/>\r\n            }\r\n\t\t},\r\n        {\r\n    \t\ttext: '自定义按钮2',\r\n    \t\ttype: FreeCustomRowLine_ManaButton.CUSTOM,\r\n    \t\tstamp: 'ANY_NAME_2',\r\n    \t\tstyle: {\r\n    \t\t\tcolor: 'yellow'\r\n\t\t\t},\r\n    \t\tapiOptions: {\r\n                icon: <DeleteOutlined/>\r\n            }\r\n\t\t}\r\n    ]\r\n}\r\n\r\n// render...\r\n<FreeCustomRowLine {...freeCustomRowLineConfProps} />\r\n\r\n```\r\n\r\n```typescript\r\n// 事件响应回调 - 顶部按钮组\r\n\r\nimport Bamboo, { FreeCustomRowLine_ManaButtonProps } from 'bamboosnaketool';\r\nlet freeCustomRowLineConfProps = {\r\n    ...,\r\n    buttonsCallback: (TYPE: FreeCustomRowLine_ManaButton, data?: Pick<FreeCustomRowLine_ManaButtonProps, 'stamp'>) => {\r\n        if (TYPE === FreeCustomRowLine_ManaButton.CUSTOM) {\r\n            // 这里使用配置的stamp值进行多个自定义按钮情况的区别\r\n            let stamp = data?.stamp;\r\n            // do somethings ...\r\n        }\r\n    }\r\n};\r\n```\r\n\r\n\r\n\r\n###### 选项的构成 - options\r\n\r\n我们把配置项中 templateRow 里的每一个索引内容称之为 '单元'。\r\n\r\noptions配置合法字段使用 { value: any, label: string };\r\n\r\n那么单元目前除String文本外，就都是antd的封装组件了，其中 autocomplate、selecet都会是涉及到多选的options选项，那么这个怎么配？\r\n\r\n下拉选项首先我们分为两种 **初始配置** 和 **异步设置** 的，这两者带来的方式上也是不一样的，初始配置的只需配置一次覆盖所有生成行，异步设置的可以支持到 每一行的都不一样；\r\n\r\n初始配置：适合固定的选择内容，比如每行都需要指定的选择 '负责人'，而关联这次数据的的所有负责人池一共8人，那么原则上所有行的下拉负责人选项都可以是一致的；\r\n\r\n异步配置：适合非固定选择内容，比如每行都需要模糊搜索到某个指定的内容，然后从模糊匹配到的下拉结果中选出一项，那么每一行最终选中的对象可能都不一致；\r\n\r\n（!!!异步配置优先级高于初始配置，故异步配置动作是后置于初始配置，最终数据的渲染显示会是异步配置动作为准）\r\n\r\n\r\n\r\n**初始配置\r\n\r\n```typescript\r\n// 方式一  -  初始配置\r\nconst shoppingAwardGiftConfProps = {\r\n  templateRow: [\r\n    '选择责任人',\r\n    {\r\n      stamp: 'PRINCIPAL',\r\n      elementTEMP: ELEMENTTEMP.SELECT,\r\n      placeholder: '请选择负责人',\r\n      style: { width: 90, marginLeft: 4, marginRight: 4 },\r\n      options: [\r\n        { value: 'fzr1', label: '吴亦凡' },\r\n        { value: 'fzr2', label: '鹿晗' },\r\n        { value: 'fzr3', label: '黄子韬' }\r\n      ],\r\n      apiOptions: {}\r\n    }\r\n ],\r\n // other - config\r\n}\r\n```\r\n\r\n**异步配置\r\n\r\n异步的数据插入是根据行的，需要在回调内进行插入。\r\n\r\n下面模拟在INPUT框输入后，模拟请求获取XX数据，使用内置函数options进行插入。\r\n\r\n（!!!函数 slotFn ，在部分回调事件中不存在，只在具体行被操作后的响应动作存在，这是一个闭包函数，内置包裹了当前操作的rowIndex行索引和rItemIndex单元索引，直接对其进行数据操作插入即可）\r\n\r\n```typescript\r\nimport { FreeCustomRowLine_EVENTTYPE, FreeCustomRowLine_callBackProps } from 'bamboosnaketool';\r\n\r\n// 方式二  -  异步配置\r\nconst shoppingAwardGiftConfProps = {\r\n  templateRow: [\r\n    '选择商品',\r\n    {\r\n        stamp: 'SEARCH_GOODS',\r\n        elementTEMP: ELEMENTTEMP.AUTOCOMPLETE,\r\n        placeholder: '搜索商品',\r\n        maxLength: 10,\r\n        style: { width: 200, marginLeft: 4, marginRight: 4 }\r\n    }\r\n ],\r\n callback: (TYPE: FreeCustomRowLine_EVENTTYPE, data: FreeCustomRowLine_callBackProps) => {\r\n     \r\n     const { stamp, slotFn } = data;\r\n     \r\n     if (TYPE === FreeCustomRowLine_EVENTTYPE.INPUT) {\r\n         if (stamp === 'SEARCH_GOODS') {\r\n          let arr = [\r\n            { value: 'async1', label: '异步1'},\r\n            { value: 'async2', label: '异步2'},\r\n            { value: 'async3', label: '异步3'}\r\n          ];\r\n          slotFn && slotFn({ options: arr });\r\n        }\r\n     }\r\n }\r\n // other - config\r\n}\r\n```\r\n\r\n\r\n\r\n###### 内置模板\r\n\r\n演示内置模板单元的使用；\r\n\r\n```javascript\r\n[\r\n\t...,\r\n    {\r\n      elementTEMP: FreeCustomRowLine_ELEMENTTEMP.INPUTNUMBER,\r\n      placeholder: '数量',\r\n      maxLength: 4,\r\n      style: { width: 90, marginLeft: 4, marginRight: 4 },\r\n      apiOptions: {\r\n         min: 0\r\n      }\r\n    }\r\n]\r\n\r\n// 内置的模板 elementTEMP 作为它的type类型指定，可通过枚举 ELEMENTTEMP 来选取指定 （完整的单模板内容参考下面#完整参数类型）\r\n// 目前支持 几种应用场景\r\n// 普通输入框、纯数字输入框、支持搜索下拉的自动完成输入框、和普通文本SPAN标签元素，如下\r\nenum FreeCustomRowLine_ELEMENTTEMP {\r\n  INPUT,             // 输入框 - 普通\r\n  INPUTNUMBER,       // 输入框 - 数字\r\n  AUTOCOMPLETE,      // 输入框 - 自动完成\r\n  SELECT,            // 下拉选择项\r\n  SPAN,              // 文本内容\r\n  INNERHTML          // 元素方式\r\n}\r\n\r\n// 根据对元素类型的规范理解使用 [placeholder/ maxLength/ value ]；\r\n// [style] 为通用类型，可对样式进行实际展示需要微调；\r\n// apiOptions - 是antd的内置API支持，这些单元模板枚举完整的对应了antd的实际组件，具体可参考官方文档；\r\n\r\n```\r\n\r\n###### 配置按钮\r\n\r\n配置单行模板后缀（右侧）的控制按钮组。\r\n\r\n支持删除一行，锁定一行（貌似没有需求会用到，暂未开发），向上移动一行，向下移动一行，\r\n\r\n```javascript\r\nimport { FreeCustomRowLine_LINEBUTTONS } from 'bamboosnaketool';\r\n\r\n// 默认仅显示[删除]按钮，目前完整按钮包含4个 [ 删除/ 锁定行/ 向上移动/ 向下移动 ]\r\n{\r\n  lineButtons: [\r\n  \t [ true,  { type: FreeCustomRowLine_LINEBUTTONS.DELETE }],\r\n  \t [ false, { type: FreeCustomRowLine_LINEBUTTONS.LOCK }],\r\n  \t [ false, { type: FreeCustomRowLine_LINEBUTTONS.MOVE_UP }],\r\n  \t [ false, { type: FreeCustomRowLine_LINEBUTTONS.MOVE_DOWN }]\r\n  ],\r\n  // ...\r\n}\r\n// 为 true 则显示反之隐藏，渲染顺序会根据当前配置内的数组排序为准\r\n\r\n// 按钮会默认赋值内置的中文文本名称，也可以对text属性进行自定义，例↓：\r\n[ true, { type: FreeCustomRowLine_LINEBUTTONS.DELETE, text: '剔除' }]\r\n\r\n// 如需隐藏文本名称，可使用 hideText 配置如下：\r\n[ true, { type: FreeCustomRowLine_LINEBUTTONS.DELETE, hideText: true }]\r\n    \r\n// 如何给按钮配置icon，且能同时结合 hideText 达到效果  (apiOptions - 参考antd组件api)\r\nimport { DeleteOutlined } from '@ant-design/icons';\r\n[ true, { type: FreeCustomRowLine_LINEBUTTONS.DELETE, hideText: true, apiOtions: { icon: <DeleteOutlined>} }]\r\n\r\n```\r\n\r\n\r\n\r\n###### 禁用\r\n\r\n对单元进行禁用属性设置。（仅对支持disabled的对象有效）\r\n\r\n方式有两种：渲染数据内 / 初始配置； \r\n\r\n{ disabled: true }\r\n\r\n\r\n\r\n###### 回调响应\r\n\r\n所有事件的响应都会**callback**统一抛出，可根据返回的行号几行内单元号进行具体的需求操作。\r\n\r\n```javascript\r\nimport { FreeCustomRowLine_callBackProps } from 'bamboosnaketool';\r\nconst freeCustomRowLineConfProps = {\r\n  templateRow: [\r\n    ...\r\n  ],\r\n  callback: (TYPE: FreeCustomRowLine_EVENTTYPE, data: FreeCustomRowLine_callBackProps) => {\r\n    const { allLineDatas, rowIndex, valIndex, value, slotFn?, prevAllLineDatas?, stamp? } = data;\r\n    console.log(TYPE, data);\r\n  }\r\n};\r\n\r\n// 回调响应事件类型\r\nexport enum FreeCustomRowLine_EVENTTYPE {\r\n  INIT  ='INIT',        // 初始化\r\n  INPUT = 'INPUT',      // 输入响应\r\n  SELECT = 'SELECT',    // 选中\r\n  ADD   = 'ADD',        // 新增一行\r\n  DELETE = 'DELETE',    // 删除一行\r\n  FOCUS = 'FOCUS',      // INPUT类型聚焦\r\n  BLUR  = 'BLUR'        // INPUT类型失焦\r\n}\r\n\r\n// 响应回调返回的data数据\r\ndata = {\r\n  allLineDatas,\t\t// 完整的数据\r\n  rowIndex,\t\t\t// 行的下标\r\n  valIndex,         // 单行内的下标\r\n  value,\t\t\t// 响应 value / id\r\n  slotFn,           // 行数据设置函数 - 闭包(直接设参，内置精确索引)\r\n  stamp\t\t\t\t// 印章 - 可用户多一种途径区别单元类型\r\n}\r\n\r\n```\r\n\r\n\r\n\r\n###### 完整参数类型\r\n\r\n```javascript\r\n// 控件模板类型(antd)\r\nexport enum FreeCustomRowLine_ELEMENTTEMP {\r\n  INPUT,             // 输入框 - 普通\r\n  INPUTNUMBER,       // 输入框 - 数字\r\n  AUTOCOMPLETE,      // 输入框 - 自动完成\r\n  SELECT,            // 下拉选择项\r\n  SPAN,              // 文本内容\r\n  INNERHTML          // 元素方式\r\n}\r\n\r\n// 模板单item配置\r\nexport interface templateRowItemConf {\r\n  elementTEMP: FreeCustomRowLine_ELEMENTTEMP; // 模板类型\r\n  stamp?: string;                    // 印记 - 可用于回调事件做单元区别（多提供一种定位单元手动，处index定位外）\r\n  text?: string;                            // 文本\r\n  value?: string | number;                  // inputValue -  仅input [select/ input/ textarea/ ...]类型支持\r\n  options?: any[];                          // select-options / autocomplate-options (仅支持antd - select/ autocomplate 组件)\r\n  disabled?: boolean;                       // 是否禁用该单元\r\n  style?: CSSStyleDeclaration | {};         // 样式\r\n  placeholder?: string;                     // 框内描述      - 仅input类型支持\r\n  maxLength?: string | number;              // 最大输入长度  -  仅input类型支持\r\n  apiOptions?: {[x:string]: any}            // antd-ui api\r\n}\r\n\r\n// 完整单行描述\r\nexport type templateRows = Array<templateRowItemConf | string | JSX.Element>\r\n\r\n// 回调响应事件类型\r\nexport enum FreeCustomRowLine_EVENTT","readmeFilename":"README.md","author":{"name":"liuyunqi","email":"283373960@qq.com"}}