@uiw/doc 4.12.2 → 4.13.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/web/CONTRIBUTORS.svg +3 -3
- package/web/asset-manifest.json +290 -290
- package/web/index.html +1 -1
- package/web/static/css/1181.cc97fb71.chunk.css +2 -0
- package/web/static/css/1181.cc97fb71.chunk.css.map +1 -0
- package/web/static/css/1689.cc97fb71.chunk.css +2 -0
- package/web/static/css/1689.cc97fb71.chunk.css.map +1 -0
- package/web/static/css/1773.cc97fb71.chunk.css +2 -0
- package/web/static/css/1773.cc97fb71.chunk.css.map +1 -0
- package/web/static/css/200.cc97fb71.chunk.css +2 -0
- package/web/static/css/200.cc97fb71.chunk.css.map +1 -0
- package/web/static/css/2092.cc97fb71.chunk.css +2 -0
- package/web/static/css/2092.cc97fb71.chunk.css.map +1 -0
- package/web/static/css/2208.cc97fb71.chunk.css +2 -0
- package/web/static/css/2208.cc97fb71.chunk.css.map +1 -0
- package/web/static/css/226.cc97fb71.chunk.css +2 -0
- package/web/static/css/226.cc97fb71.chunk.css.map +1 -0
- package/web/static/css/2326.cc97fb71.chunk.css +2 -0
- package/web/static/css/2326.cc97fb71.chunk.css.map +1 -0
- package/web/static/css/2476.cc97fb71.chunk.css +2 -0
- package/web/static/css/2476.cc97fb71.chunk.css.map +1 -0
- package/web/static/css/2618.cc97fb71.chunk.css +2 -0
- package/web/static/css/2618.cc97fb71.chunk.css.map +1 -0
- package/web/static/css/2739.cc97fb71.chunk.css +2 -0
- package/web/static/css/2739.cc97fb71.chunk.css.map +1 -0
- package/web/static/css/280.cc97fb71.chunk.css +2 -0
- package/web/static/css/280.cc97fb71.chunk.css.map +1 -0
- package/web/static/css/2848.cc97fb71.chunk.css +2 -0
- package/web/static/css/2848.cc97fb71.chunk.css.map +1 -0
- package/web/static/css/2855.cc97fb71.chunk.css +2 -0
- package/web/static/css/2855.cc97fb71.chunk.css.map +1 -0
- package/web/static/css/2867.cc97fb71.chunk.css +2 -0
- package/web/static/css/2867.cc97fb71.chunk.css.map +1 -0
- package/web/static/css/2937.cc97fb71.chunk.css +2 -0
- package/web/static/css/2937.cc97fb71.chunk.css.map +1 -0
- package/web/static/css/3153.cc97fb71.chunk.css +2 -0
- package/web/static/css/3153.cc97fb71.chunk.css.map +1 -0
- package/web/static/css/3410.cc97fb71.chunk.css +2 -0
- package/web/static/css/3410.cc97fb71.chunk.css.map +1 -0
- package/web/static/css/3882.cc97fb71.chunk.css +2 -0
- package/web/static/css/3882.cc97fb71.chunk.css.map +1 -0
- package/web/static/css/3972.cc97fb71.chunk.css +2 -0
- package/web/static/css/3972.cc97fb71.chunk.css.map +1 -0
- package/web/static/css/4045.cc97fb71.chunk.css +2 -0
- package/web/static/css/4045.cc97fb71.chunk.css.map +1 -0
- package/web/static/css/4234.cc97fb71.chunk.css +2 -0
- package/web/static/css/4234.cc97fb71.chunk.css.map +1 -0
- package/web/static/css/4255.cc97fb71.chunk.css +2 -0
- package/web/static/css/4255.cc97fb71.chunk.css.map +1 -0
- package/web/static/css/455.cc97fb71.chunk.css +2 -0
- package/web/static/css/455.cc97fb71.chunk.css.map +1 -0
- package/web/static/css/492.cc97fb71.chunk.css +2 -0
- package/web/static/css/492.cc97fb71.chunk.css.map +1 -0
- package/web/static/css/4960.cc97fb71.chunk.css +2 -0
- package/web/static/css/4960.cc97fb71.chunk.css.map +1 -0
- package/web/static/css/5001.cc97fb71.chunk.css +2 -0
- package/web/static/css/5001.cc97fb71.chunk.css.map +1 -0
- package/web/static/css/5080.cc97fb71.chunk.css +2 -0
- package/web/static/css/5080.cc97fb71.chunk.css.map +1 -0
- package/web/static/css/5329.cc97fb71.chunk.css +2 -0
- package/web/static/css/5329.cc97fb71.chunk.css.map +1 -0
- package/web/static/css/5374.cc97fb71.chunk.css +2 -0
- package/web/static/css/5374.cc97fb71.chunk.css.map +1 -0
- package/web/static/css/5407.cc97fb71.chunk.css +2 -0
- package/web/static/css/5407.cc97fb71.chunk.css.map +1 -0
- package/web/static/css/5475.cc97fb71.chunk.css +2 -0
- package/web/static/css/5475.cc97fb71.chunk.css.map +1 -0
- package/web/static/css/5523.cc97fb71.chunk.css +2 -0
- package/web/static/css/5523.cc97fb71.chunk.css.map +1 -0
- package/web/static/css/5576.cc97fb71.chunk.css +2 -0
- package/web/static/css/5576.cc97fb71.chunk.css.map +1 -0
- package/web/static/css/5609.cc97fb71.chunk.css +2 -0
- package/web/static/css/5609.cc97fb71.chunk.css.map +1 -0
- package/web/static/css/5630.cc97fb71.chunk.css +2 -0
- package/web/static/css/5630.cc97fb71.chunk.css.map +1 -0
- package/web/static/css/581.cc97fb71.chunk.css +2 -0
- package/web/static/css/581.cc97fb71.chunk.css.map +1 -0
- package/web/static/css/6216.cc97fb71.chunk.css +2 -0
- package/web/static/css/6216.cc97fb71.chunk.css.map +1 -0
- package/web/static/css/6221.cc97fb71.chunk.css +2 -0
- package/web/static/css/6221.cc97fb71.chunk.css.map +1 -0
- package/web/static/css/627.cc97fb71.chunk.css +2 -0
- package/web/static/css/627.cc97fb71.chunk.css.map +1 -0
- package/web/static/css/6315.cc97fb71.chunk.css +2 -0
- package/web/static/css/6315.cc97fb71.chunk.css.map +1 -0
- package/web/static/css/6319.cc97fb71.chunk.css +2 -0
- package/web/static/css/6319.cc97fb71.chunk.css.map +1 -0
- package/web/static/css/6421.cc97fb71.chunk.css +2 -0
- package/web/static/css/6421.cc97fb71.chunk.css.map +1 -0
- package/web/static/css/6436.cc97fb71.chunk.css +2 -0
- package/web/static/css/6436.cc97fb71.chunk.css.map +1 -0
- package/web/static/css/6623.cc97fb71.chunk.css +2 -0
- package/web/static/css/6623.cc97fb71.chunk.css.map +1 -0
- package/web/static/css/6660.cc97fb71.chunk.css +2 -0
- package/web/static/css/6660.cc97fb71.chunk.css.map +1 -0
- package/web/static/css/6889.cc97fb71.chunk.css +2 -0
- package/web/static/css/6889.cc97fb71.chunk.css.map +1 -0
- package/web/static/css/6956.cc97fb71.chunk.css +2 -0
- package/web/static/css/6956.cc97fb71.chunk.css.map +1 -0
- package/web/static/css/7213.cc97fb71.chunk.css +2 -0
- package/web/static/css/7213.cc97fb71.chunk.css.map +1 -0
- package/web/static/css/7491.cc97fb71.chunk.css +2 -0
- package/web/static/css/7491.cc97fb71.chunk.css.map +1 -0
- package/web/static/css/751.cc97fb71.chunk.css +2 -0
- package/web/static/css/751.cc97fb71.chunk.css.map +1 -0
- package/web/static/css/7712.cc97fb71.chunk.css +2 -0
- package/web/static/css/7712.cc97fb71.chunk.css.map +1 -0
- package/web/static/css/7858.cc97fb71.chunk.css +2 -0
- package/web/static/css/7858.cc97fb71.chunk.css.map +1 -0
- package/web/static/css/7898.cc97fb71.chunk.css +2 -0
- package/web/static/css/7898.cc97fb71.chunk.css.map +1 -0
- package/web/static/css/8131.cc97fb71.chunk.css +2 -0
- package/web/static/css/8131.cc97fb71.chunk.css.map +1 -0
- package/web/static/css/8200.cc97fb71.chunk.css +2 -0
- package/web/static/css/8200.cc97fb71.chunk.css.map +1 -0
- package/web/static/css/8471.cc97fb71.chunk.css +2 -0
- package/web/static/css/8471.cc97fb71.chunk.css.map +1 -0
- package/web/static/css/8804.cc97fb71.chunk.css +2 -0
- package/web/static/css/8804.cc97fb71.chunk.css.map +1 -0
- package/web/static/css/8913.2fc8f29c.chunk.css +2 -0
- package/web/static/css/8913.2fc8f29c.chunk.css.map +1 -0
- package/web/static/css/9126.cc97fb71.chunk.css +2 -0
- package/web/static/css/9126.cc97fb71.chunk.css.map +1 -0
- package/web/static/css/9331.cc97fb71.chunk.css +2 -0
- package/web/static/css/9331.cc97fb71.chunk.css.map +1 -0
- package/web/static/css/9421.cc97fb71.chunk.css +2 -0
- package/web/static/css/9421.cc97fb71.chunk.css.map +1 -0
- package/web/static/css/9574.cc97fb71.chunk.css +2 -0
- package/web/static/css/9574.cc97fb71.chunk.css.map +1 -0
- package/web/static/css/9636.cc97fb71.chunk.css +2 -0
- package/web/static/css/9636.cc97fb71.chunk.css.map +1 -0
- package/web/static/css/9762.cc97fb71.chunk.css +2 -0
- package/web/static/css/9762.cc97fb71.chunk.css.map +1 -0
- package/web/static/css/9767.cc97fb71.chunk.css +2 -0
- package/web/static/css/9767.cc97fb71.chunk.css.map +1 -0
- package/web/static/css/9777.cc97fb71.chunk.css +2 -0
- package/web/static/css/9777.cc97fb71.chunk.css.map +1 -0
- package/web/static/css/9871.cc97fb71.chunk.css +2 -0
- package/web/static/css/9871.cc97fb71.chunk.css.map +1 -0
- package/web/static/css/main.ed0f162d.css +10 -0
- package/web/static/css/main.ed0f162d.css.map +1 -0
- package/web/static/js/{1181.a4e136ed.chunk.js → 1181.04f18676.chunk.js} +2 -2
- package/web/static/js/{1181.a4e136ed.chunk.js.map → 1181.04f18676.chunk.js.map} +1 -1
- package/web/static/js/{1689.7948256d.chunk.js → 1689.2762e851.chunk.js} +2 -2
- package/web/static/js/{1689.7948256d.chunk.js.map → 1689.2762e851.chunk.js.map} +1 -1
- package/web/static/js/{1773.81281c87.chunk.js → 1773.70bc3c86.chunk.js} +2 -2
- package/web/static/js/{1773.81281c87.chunk.js.map → 1773.70bc3c86.chunk.js.map} +1 -1
- package/web/static/js/{200.38df68ff.chunk.js → 200.d5a57a0b.chunk.js} +2 -2
- package/web/static/js/{200.38df68ff.chunk.js.map → 200.d5a57a0b.chunk.js.map} +1 -1
- package/web/static/js/{2092.687ce5dd.chunk.js → 2092.7f48d97a.chunk.js} +2 -2
- package/web/static/js/{2092.687ce5dd.chunk.js.map → 2092.7f48d97a.chunk.js.map} +1 -1
- package/web/static/js/{2208.76dc4a23.chunk.js → 2208.bfb04965.chunk.js} +2 -2
- package/web/static/js/{2208.76dc4a23.chunk.js.map → 2208.bfb04965.chunk.js.map} +1 -1
- package/web/static/js/{226.d45dd164.chunk.js → 226.6a30fefc.chunk.js} +2 -2
- package/web/static/js/{226.d45dd164.chunk.js.map → 226.6a30fefc.chunk.js.map} +1 -1
- package/web/static/js/{2326.ff7ee739.chunk.js → 2326.5b5e6089.chunk.js} +2 -2
- package/web/static/js/{2326.ff7ee739.chunk.js.map → 2326.5b5e6089.chunk.js.map} +1 -1
- package/web/static/js/{2476.f15bbd3e.chunk.js → 2476.7945e2f2.chunk.js} +2 -2
- package/web/static/js/{2476.f15bbd3e.chunk.js.map → 2476.7945e2f2.chunk.js.map} +1 -1
- package/web/static/js/{2618.adf157a1.chunk.js → 2618.a4b0094e.chunk.js} +2 -2
- package/web/static/js/{2618.adf157a1.chunk.js.map → 2618.a4b0094e.chunk.js.map} +1 -1
- package/web/static/js/{2739.5d80ad30.chunk.js → 2739.8ae3d250.chunk.js} +2 -2
- package/web/static/js/{2739.5d80ad30.chunk.js.map → 2739.8ae3d250.chunk.js.map} +1 -1
- package/web/static/js/{280.b0605a39.chunk.js → 280.2c6a39d1.chunk.js} +2 -2
- package/web/static/js/{280.b0605a39.chunk.js.map → 280.2c6a39d1.chunk.js.map} +1 -1
- package/web/static/js/{2848.0646737c.chunk.js → 2848.d0299bbe.chunk.js} +2 -2
- package/web/static/js/{2848.0646737c.chunk.js.map → 2848.d0299bbe.chunk.js.map} +1 -1
- package/web/static/js/{2855.81a8ad12.chunk.js → 2855.0ddb3b84.chunk.js} +2 -2
- package/web/static/js/{2855.81a8ad12.chunk.js.map → 2855.0ddb3b84.chunk.js.map} +1 -1
- package/web/static/js/{2867.35ca4c44.chunk.js → 2867.45b7bbad.chunk.js} +2 -2
- package/web/static/js/{2867.35ca4c44.chunk.js.map → 2867.45b7bbad.chunk.js.map} +1 -1
- package/web/static/js/{2937.94f91537.chunk.js → 2937.72c1a9c5.chunk.js} +2 -2
- package/web/static/js/{2937.94f91537.chunk.js.map → 2937.72c1a9c5.chunk.js.map} +1 -1
- package/web/static/js/{3153.cb1a3310.chunk.js → 3153.c354b3d5.chunk.js} +2 -2
- package/web/static/js/{3153.cb1a3310.chunk.js.map → 3153.c354b3d5.chunk.js.map} +1 -1
- package/web/static/js/{3410.64427e15.chunk.js → 3410.d5d0af47.chunk.js} +2 -2
- package/web/static/js/{3410.64427e15.chunk.js.map → 3410.d5d0af47.chunk.js.map} +1 -1
- package/web/static/js/3561.1c93f9e1.chunk.js +3 -0
- package/web/static/js/{8090.ed60bf9b.chunk.js.LICENSE.txt → 3561.1c93f9e1.chunk.js.LICENSE.txt} +0 -0
- package/web/static/js/3561.1c93f9e1.chunk.js.map +1 -0
- package/web/static/js/{3882.60e1c8dd.chunk.js → 3882.ba7ab665.chunk.js} +2 -2
- package/web/static/js/{3882.60e1c8dd.chunk.js.map → 3882.ba7ab665.chunk.js.map} +1 -1
- package/web/static/js/{3972.de13130a.chunk.js → 3972.61290ddc.chunk.js} +2 -2
- package/web/static/js/{3972.de13130a.chunk.js.map → 3972.61290ddc.chunk.js.map} +1 -1
- package/web/static/js/{4045.f60bb8b6.chunk.js → 4045.9d59a5f5.chunk.js} +2 -2
- package/web/static/js/{4045.f60bb8b6.chunk.js.map → 4045.9d59a5f5.chunk.js.map} +1 -1
- package/web/static/js/{4234.3f7f9515.chunk.js → 4234.2822529c.chunk.js} +2 -2
- package/web/static/js/{4234.3f7f9515.chunk.js.map → 4234.2822529c.chunk.js.map} +1 -1
- package/web/static/js/{4255.af5d4d84.chunk.js → 4255.2391ca41.chunk.js} +2 -2
- package/web/static/js/{4255.af5d4d84.chunk.js.map → 4255.2391ca41.chunk.js.map} +1 -1
- package/web/static/js/{455.902c1058.chunk.js → 455.c6373db5.chunk.js} +2 -2
- package/web/static/js/{455.902c1058.chunk.js.map → 455.c6373db5.chunk.js.map} +1 -1
- package/web/static/js/{4877.578a0d95.chunk.js → 4877.ea4e48af.chunk.js} +2 -2
- package/web/static/js/{4877.578a0d95.chunk.js.map → 4877.ea4e48af.chunk.js.map} +1 -1
- package/web/static/js/{492.e850f1fb.chunk.js → 492.47ca7cbf.chunk.js} +2 -2
- package/web/static/js/{492.e850f1fb.chunk.js.map → 492.47ca7cbf.chunk.js.map} +1 -1
- package/web/static/js/{4960.2437edb5.chunk.js → 4960.4b52fbe5.chunk.js} +2 -2
- package/web/static/js/{4960.2437edb5.chunk.js.map → 4960.4b52fbe5.chunk.js.map} +1 -1
- package/web/static/js/{5001.5daf2796.chunk.js → 5001.3abadda3.chunk.js} +2 -2
- package/web/static/js/{5001.5daf2796.chunk.js.map → 5001.3abadda3.chunk.js.map} +1 -1
- package/web/static/js/{5080.ee9eaece.chunk.js → 5080.676201d3.chunk.js} +2 -2
- package/web/static/js/{5080.ee9eaece.chunk.js.map → 5080.676201d3.chunk.js.map} +1 -1
- package/web/static/js/{5329.30dd2c4c.chunk.js → 5329.2f1635b0.chunk.js} +2 -2
- package/web/static/js/{5329.30dd2c4c.chunk.js.map → 5329.2f1635b0.chunk.js.map} +1 -1
- package/web/static/js/{5374.02099454.chunk.js → 5374.49733922.chunk.js} +2 -2
- package/web/static/js/{5374.02099454.chunk.js.map → 5374.49733922.chunk.js.map} +1 -1
- package/web/static/js/{5407.dc875989.chunk.js → 5407.5c016d0c.chunk.js} +2 -2
- package/web/static/js/{5407.dc875989.chunk.js.map → 5407.5c016d0c.chunk.js.map} +1 -1
- package/web/static/js/{5475.08f3cc8c.chunk.js → 5475.f586f3b0.chunk.js} +2 -2
- package/web/static/js/{5475.08f3cc8c.chunk.js.map → 5475.f586f3b0.chunk.js.map} +1 -1
- package/web/static/js/{5523.a7ee9e30.chunk.js → 5523.66c3ed7c.chunk.js} +2 -2
- package/web/static/js/{5523.a7ee9e30.chunk.js.map → 5523.66c3ed7c.chunk.js.map} +1 -1
- package/web/static/js/{5576.bbfaf999.chunk.js → 5576.33ea816b.chunk.js} +2 -2
- package/web/static/js/{5576.bbfaf999.chunk.js.map → 5576.33ea816b.chunk.js.map} +1 -1
- package/web/static/js/{5609.426d8e5b.chunk.js → 5609.b7130b71.chunk.js} +2 -2
- package/web/static/js/5609.b7130b71.chunk.js.map +1 -0
- package/web/static/js/{5630.f27b567a.chunk.js → 5630.ddc66a16.chunk.js} +2 -2
- package/web/static/js/{5630.f27b567a.chunk.js.map → 5630.ddc66a16.chunk.js.map} +1 -1
- package/web/static/js/{581.264f67be.chunk.js → 581.90621994.chunk.js} +2 -2
- package/web/static/js/{581.264f67be.chunk.js.map → 581.90621994.chunk.js.map} +1 -1
- package/web/static/js/{6216.93b30f41.chunk.js → 6216.180d7a17.chunk.js} +2 -2
- package/web/static/js/{6216.93b30f41.chunk.js.map → 6216.180d7a17.chunk.js.map} +1 -1
- package/web/static/js/{6221.0b909b28.chunk.js → 6221.01a2779e.chunk.js} +2 -2
- package/web/static/js/{6221.0b909b28.chunk.js.map → 6221.01a2779e.chunk.js.map} +1 -1
- package/web/static/js/{627.7abc7758.chunk.js → 627.acb355d3.chunk.js} +2 -2
- package/web/static/js/{627.7abc7758.chunk.js.map → 627.acb355d3.chunk.js.map} +1 -1
- package/web/static/js/{6315.5a722a81.chunk.js → 6315.4b82eca4.chunk.js} +2 -2
- package/web/static/js/{6315.5a722a81.chunk.js.map → 6315.4b82eca4.chunk.js.map} +1 -1
- package/web/static/js/{6319.6a3ee525.chunk.js → 6319.b4316107.chunk.js} +2 -2
- package/web/static/js/{6319.6a3ee525.chunk.js.map → 6319.b4316107.chunk.js.map} +1 -1
- package/web/static/js/{6421.4eb74d59.chunk.js → 6421.27b4c645.chunk.js} +2 -2
- package/web/static/js/{6421.4eb74d59.chunk.js.map → 6421.27b4c645.chunk.js.map} +1 -1
- package/web/static/js/{6436.ab730989.chunk.js → 6436.f9f8d420.chunk.js} +2 -2
- package/web/static/js/{6436.ab730989.chunk.js.map → 6436.f9f8d420.chunk.js.map} +1 -1
- package/web/static/js/{6566.3c91cbc8.chunk.js → 6566.5503166a.chunk.js} +2 -2
- package/web/static/js/{6566.3c91cbc8.chunk.js.map → 6566.5503166a.chunk.js.map} +1 -1
- package/web/static/js/{6623.d0d13abe.chunk.js → 6623.cf061c3e.chunk.js} +2 -2
- package/web/static/js/{6623.d0d13abe.chunk.js.map → 6623.cf061c3e.chunk.js.map} +1 -1
- package/web/static/js/{6660.4f803e55.chunk.js → 6660.cd859a1a.chunk.js} +2 -2
- package/web/static/js/{6660.4f803e55.chunk.js.map → 6660.cd859a1a.chunk.js.map} +1 -1
- package/web/static/js/6869.38330ca9.chunk.js +2 -0
- package/web/static/js/6869.38330ca9.chunk.js.map +1 -0
- package/web/static/js/{6889.19f9c313.chunk.js → 6889.ed8f240c.chunk.js} +2 -2
- package/web/static/js/{6889.19f9c313.chunk.js.map → 6889.ed8f240c.chunk.js.map} +1 -1
- package/web/static/js/{6956.011c753c.chunk.js → 6956.373c91a3.chunk.js} +2 -2
- package/web/static/js/{6956.011c753c.chunk.js.map → 6956.373c91a3.chunk.js.map} +1 -1
- package/web/static/js/{7213.5faca4d7.chunk.js → 7213.d5ae367d.chunk.js} +2 -2
- package/web/static/js/{7213.5faca4d7.chunk.js.map → 7213.d5ae367d.chunk.js.map} +1 -1
- package/web/static/js/7217.1be488ae.chunk.js +2 -0
- package/web/static/js/7217.1be488ae.chunk.js.map +1 -0
- package/web/static/js/7313.18ac2eb2.chunk.js +2 -0
- package/web/static/js/7313.18ac2eb2.chunk.js.map +1 -0
- package/web/static/js/{7491.61d9e36a.chunk.js → 7491.b2911100.chunk.js} +2 -2
- package/web/static/js/{7491.61d9e36a.chunk.js.map → 7491.b2911100.chunk.js.map} +1 -1
- package/web/static/js/{751.f1e39665.chunk.js → 751.0807c32c.chunk.js} +2 -2
- package/web/static/js/751.0807c32c.chunk.js.map +1 -0
- package/web/static/js/{7712.ceb152fe.chunk.js → 7712.3d195b56.chunk.js} +2 -2
- package/web/static/js/{7712.ceb152fe.chunk.js.map → 7712.3d195b56.chunk.js.map} +1 -1
- package/web/static/js/{7858.0b4a36cb.chunk.js → 7858.2b64eed2.chunk.js} +2 -2
- package/web/static/js/{7858.0b4a36cb.chunk.js.map → 7858.2b64eed2.chunk.js.map} +1 -1
- package/web/static/js/{7898.4d9e4ad0.chunk.js → 7898.7ad51028.chunk.js} +2 -2
- package/web/static/js/{7898.4d9e4ad0.chunk.js.map → 7898.7ad51028.chunk.js.map} +1 -1
- package/web/static/js/{8131.627caee3.chunk.js → 8131.d3fab736.chunk.js} +2 -2
- package/web/static/js/{8131.627caee3.chunk.js.map → 8131.d3fab736.chunk.js.map} +1 -1
- package/web/static/js/{8200.e1531031.chunk.js → 8200.9471041e.chunk.js} +2 -2
- package/web/static/js/{8200.e1531031.chunk.js.map → 8200.9471041e.chunk.js.map} +1 -1
- package/web/static/js/{8471.c02223a0.chunk.js → 8471.4345a110.chunk.js} +2 -2
- package/web/static/js/{8471.c02223a0.chunk.js.map → 8471.4345a110.chunk.js.map} +1 -1
- package/web/static/js/{8804.5424b4ca.chunk.js → 8804.bea2a7b0.chunk.js} +2 -2
- package/web/static/js/{8804.5424b4ca.chunk.js.map → 8804.bea2a7b0.chunk.js.map} +1 -1
- package/web/static/js/{8913.ea392129.chunk.js → 8913.18615c75.chunk.js} +2 -2
- package/web/static/js/{8913.ea392129.chunk.js.map → 8913.18615c75.chunk.js.map} +1 -1
- package/web/static/js/{9126.c0ca2634.chunk.js → 9126.732f4d56.chunk.js} +2 -2
- package/web/static/js/{9126.c0ca2634.chunk.js.map → 9126.732f4d56.chunk.js.map} +1 -1
- package/web/static/js/{9331.9ce63cb4.chunk.js → 9331.f7b559cf.chunk.js} +2 -2
- package/web/static/js/{9331.9ce63cb4.chunk.js.map → 9331.f7b559cf.chunk.js.map} +1 -1
- package/web/static/js/{9421.3c6f9f4c.chunk.js → 9421.15a9391f.chunk.js} +2 -2
- package/web/static/js/{9421.3c6f9f4c.chunk.js.map → 9421.15a9391f.chunk.js.map} +1 -1
- package/web/static/js/{9574.64786e0f.chunk.js → 9574.cc6ec2a4.chunk.js} +2 -2
- package/web/static/js/{9574.64786e0f.chunk.js.map → 9574.cc6ec2a4.chunk.js.map} +1 -1
- package/web/static/js/{9636.901de3cb.chunk.js → 9636.004d3c49.chunk.js} +2 -2
- package/web/static/js/{9636.901de3cb.chunk.js.map → 9636.004d3c49.chunk.js.map} +1 -1
- package/web/static/js/{9762.a392071c.chunk.js → 9762.d3f5bf16.chunk.js} +2 -2
- package/web/static/js/{9762.a392071c.chunk.js.map → 9762.d3f5bf16.chunk.js.map} +1 -1
- package/web/static/js/{9767.c03d5639.chunk.js → 9767.eb2c6ae6.chunk.js} +2 -2
- package/web/static/js/{9767.c03d5639.chunk.js.map → 9767.eb2c6ae6.chunk.js.map} +1 -1
- package/web/static/js/{9777.23cb02e0.chunk.js → 9777.40075961.chunk.js} +2 -2
- package/web/static/js/{9777.23cb02e0.chunk.js.map → 9777.40075961.chunk.js.map} +1 -1
- package/web/static/js/{9871.eb7047a2.chunk.js → 9871.a375a870.chunk.js} +2 -2
- package/web/static/js/{9871.eb7047a2.chunk.js.map → 9871.a375a870.chunk.js.map} +1 -1
- package/web/static/js/main.ad8e8e78.js +2 -0
- package/web/static/js/main.ad8e8e78.js.map +1 -0
- package/web/static/css/1181.b2357048.chunk.css +0 -2
- package/web/static/css/1181.b2357048.chunk.css.map +0 -1
- package/web/static/css/1689.b2357048.chunk.css +0 -2
- package/web/static/css/1689.b2357048.chunk.css.map +0 -1
- package/web/static/css/1773.b2357048.chunk.css +0 -2
- package/web/static/css/1773.b2357048.chunk.css.map +0 -1
- package/web/static/css/200.b2357048.chunk.css +0 -2
- package/web/static/css/200.b2357048.chunk.css.map +0 -1
- package/web/static/css/2092.b2357048.chunk.css +0 -2
- package/web/static/css/2092.b2357048.chunk.css.map +0 -1
- package/web/static/css/2208.b2357048.chunk.css +0 -2
- package/web/static/css/2208.b2357048.chunk.css.map +0 -1
- package/web/static/css/226.b2357048.chunk.css +0 -2
- package/web/static/css/226.b2357048.chunk.css.map +0 -1
- package/web/static/css/2326.b2357048.chunk.css +0 -2
- package/web/static/css/2326.b2357048.chunk.css.map +0 -1
- package/web/static/css/2476.b2357048.chunk.css +0 -2
- package/web/static/css/2476.b2357048.chunk.css.map +0 -1
- package/web/static/css/2618.b2357048.chunk.css +0 -2
- package/web/static/css/2618.b2357048.chunk.css.map +0 -1
- package/web/static/css/2739.b2357048.chunk.css +0 -2
- package/web/static/css/2739.b2357048.chunk.css.map +0 -1
- package/web/static/css/280.b2357048.chunk.css +0 -2
- package/web/static/css/280.b2357048.chunk.css.map +0 -1
- package/web/static/css/2848.b2357048.chunk.css +0 -2
- package/web/static/css/2848.b2357048.chunk.css.map +0 -1
- package/web/static/css/2855.b2357048.chunk.css +0 -2
- package/web/static/css/2855.b2357048.chunk.css.map +0 -1
- package/web/static/css/2867.b2357048.chunk.css +0 -2
- package/web/static/css/2867.b2357048.chunk.css.map +0 -1
- package/web/static/css/2937.b2357048.chunk.css +0 -2
- package/web/static/css/2937.b2357048.chunk.css.map +0 -1
- package/web/static/css/3153.b2357048.chunk.css +0 -2
- package/web/static/css/3153.b2357048.chunk.css.map +0 -1
- package/web/static/css/3410.b2357048.chunk.css +0 -2
- package/web/static/css/3410.b2357048.chunk.css.map +0 -1
- package/web/static/css/3882.b2357048.chunk.css +0 -2
- package/web/static/css/3882.b2357048.chunk.css.map +0 -1
- package/web/static/css/3972.b2357048.chunk.css +0 -2
- package/web/static/css/3972.b2357048.chunk.css.map +0 -1
- package/web/static/css/4045.b2357048.chunk.css +0 -2
- package/web/static/css/4045.b2357048.chunk.css.map +0 -1
- package/web/static/css/4234.b2357048.chunk.css +0 -2
- package/web/static/css/4234.b2357048.chunk.css.map +0 -1
- package/web/static/css/4255.b2357048.chunk.css +0 -2
- package/web/static/css/4255.b2357048.chunk.css.map +0 -1
- package/web/static/css/455.b2357048.chunk.css +0 -2
- package/web/static/css/455.b2357048.chunk.css.map +0 -1
- package/web/static/css/492.b2357048.chunk.css +0 -2
- package/web/static/css/492.b2357048.chunk.css.map +0 -1
- package/web/static/css/4960.b2357048.chunk.css +0 -2
- package/web/static/css/4960.b2357048.chunk.css.map +0 -1
- package/web/static/css/5001.b2357048.chunk.css +0 -2
- package/web/static/css/5001.b2357048.chunk.css.map +0 -1
- package/web/static/css/5080.b2357048.chunk.css +0 -2
- package/web/static/css/5080.b2357048.chunk.css.map +0 -1
- package/web/static/css/5329.b2357048.chunk.css +0 -2
- package/web/static/css/5329.b2357048.chunk.css.map +0 -1
- package/web/static/css/5374.b2357048.chunk.css +0 -2
- package/web/static/css/5374.b2357048.chunk.css.map +0 -1
- package/web/static/css/5407.b2357048.chunk.css +0 -2
- package/web/static/css/5407.b2357048.chunk.css.map +0 -1
- package/web/static/css/5475.b2357048.chunk.css +0 -2
- package/web/static/css/5475.b2357048.chunk.css.map +0 -1
- package/web/static/css/5523.b2357048.chunk.css +0 -2
- package/web/static/css/5523.b2357048.chunk.css.map +0 -1
- package/web/static/css/5576.b2357048.chunk.css +0 -2
- package/web/static/css/5576.b2357048.chunk.css.map +0 -1
- package/web/static/css/5609.b2357048.chunk.css +0 -2
- package/web/static/css/5609.b2357048.chunk.css.map +0 -1
- package/web/static/css/5630.b2357048.chunk.css +0 -2
- package/web/static/css/5630.b2357048.chunk.css.map +0 -1
- package/web/static/css/581.b2357048.chunk.css +0 -2
- package/web/static/css/581.b2357048.chunk.css.map +0 -1
- package/web/static/css/6216.b2357048.chunk.css +0 -2
- package/web/static/css/6216.b2357048.chunk.css.map +0 -1
- package/web/static/css/6221.b2357048.chunk.css +0 -2
- package/web/static/css/6221.b2357048.chunk.css.map +0 -1
- package/web/static/css/627.b2357048.chunk.css +0 -2
- package/web/static/css/627.b2357048.chunk.css.map +0 -1
- package/web/static/css/6315.b2357048.chunk.css +0 -2
- package/web/static/css/6315.b2357048.chunk.css.map +0 -1
- package/web/static/css/6319.b2357048.chunk.css +0 -2
- package/web/static/css/6319.b2357048.chunk.css.map +0 -1
- package/web/static/css/6421.b2357048.chunk.css +0 -2
- package/web/static/css/6421.b2357048.chunk.css.map +0 -1
- package/web/static/css/6436.b2357048.chunk.css +0 -2
- package/web/static/css/6436.b2357048.chunk.css.map +0 -1
- package/web/static/css/6623.b2357048.chunk.css +0 -2
- package/web/static/css/6623.b2357048.chunk.css.map +0 -1
- package/web/static/css/6660.b2357048.chunk.css +0 -2
- package/web/static/css/6660.b2357048.chunk.css.map +0 -1
- package/web/static/css/6889.b2357048.chunk.css +0 -2
- package/web/static/css/6889.b2357048.chunk.css.map +0 -1
- package/web/static/css/6956.b2357048.chunk.css +0 -2
- package/web/static/css/6956.b2357048.chunk.css.map +0 -1
- package/web/static/css/7213.b2357048.chunk.css +0 -2
- package/web/static/css/7213.b2357048.chunk.css.map +0 -1
- package/web/static/css/7491.b2357048.chunk.css +0 -2
- package/web/static/css/7491.b2357048.chunk.css.map +0 -1
- package/web/static/css/751.b2357048.chunk.css +0 -2
- package/web/static/css/751.b2357048.chunk.css.map +0 -1
- package/web/static/css/7712.b2357048.chunk.css +0 -2
- package/web/static/css/7712.b2357048.chunk.css.map +0 -1
- package/web/static/css/7858.b2357048.chunk.css +0 -2
- package/web/static/css/7858.b2357048.chunk.css.map +0 -1
- package/web/static/css/7898.b2357048.chunk.css +0 -2
- package/web/static/css/7898.b2357048.chunk.css.map +0 -1
- package/web/static/css/8131.b2357048.chunk.css +0 -2
- package/web/static/css/8131.b2357048.chunk.css.map +0 -1
- package/web/static/css/8200.b2357048.chunk.css +0 -2
- package/web/static/css/8200.b2357048.chunk.css.map +0 -1
- package/web/static/css/8471.b2357048.chunk.css +0 -2
- package/web/static/css/8471.b2357048.chunk.css.map +0 -1
- package/web/static/css/8804.b2357048.chunk.css +0 -2
- package/web/static/css/8804.b2357048.chunk.css.map +0 -1
- package/web/static/css/8913.2a644fcc.chunk.css +0 -2
- package/web/static/css/8913.2a644fcc.chunk.css.map +0 -1
- package/web/static/css/9126.b2357048.chunk.css +0 -2
- package/web/static/css/9126.b2357048.chunk.css.map +0 -1
- package/web/static/css/9331.b2357048.chunk.css +0 -2
- package/web/static/css/9331.b2357048.chunk.css.map +0 -1
- package/web/static/css/9421.b2357048.chunk.css +0 -2
- package/web/static/css/9421.b2357048.chunk.css.map +0 -1
- package/web/static/css/9574.b2357048.chunk.css +0 -2
- package/web/static/css/9574.b2357048.chunk.css.map +0 -1
- package/web/static/css/9636.b2357048.chunk.css +0 -2
- package/web/static/css/9636.b2357048.chunk.css.map +0 -1
- package/web/static/css/9762.b2357048.chunk.css +0 -2
- package/web/static/css/9762.b2357048.chunk.css.map +0 -1
- package/web/static/css/9767.b2357048.chunk.css +0 -2
- package/web/static/css/9767.b2357048.chunk.css.map +0 -1
- package/web/static/css/9777.b2357048.chunk.css +0 -2
- package/web/static/css/9777.b2357048.chunk.css.map +0 -1
- package/web/static/css/9871.b2357048.chunk.css +0 -2
- package/web/static/css/9871.b2357048.chunk.css.map +0 -1
- package/web/static/css/main.dc552a00.css +0 -10
- package/web/static/css/main.dc552a00.css.map +0 -1
- package/web/static/js/5609.426d8e5b.chunk.js.map +0 -1
- package/web/static/js/6869.6df90f7d.chunk.js +0 -2
- package/web/static/js/6869.6df90f7d.chunk.js.map +0 -1
- package/web/static/js/7217.1cd6fbd5.chunk.js +0 -2
- package/web/static/js/7217.1cd6fbd5.chunk.js.map +0 -1
- package/web/static/js/7313.afa8589a.chunk.js +0 -2
- package/web/static/js/7313.afa8589a.chunk.js.map +0 -1
- package/web/static/js/751.f1e39665.chunk.js.map +0 -1
- package/web/static/js/8090.ed60bf9b.chunk.js +0 -3
- package/web/static/js/8090.ed60bf9b.chunk.js.map +0 -1
- package/web/static/js/main.bd858105.js +0 -2
- package/web/static/js/main.bd858105.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"static/js/6436.ab730989.chunk.js","mappings":"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","sources":["../../node_modules/@babel/standalone|sync|nonrecursive","components/Markdown/Code.tsx","components/Markdown/Footer.tsx","webpack://website/./src/components/Markdown/index.module.less?6e49","components/Markdown/index.tsx","routes/components/colors/index.tsx"],"sourcesContent":["function webpackEmptyContext(req) {\n\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\te.code = 'MODULE_NOT_FOUND';\n\tthrow e;\n}\nwebpackEmptyContext.keys = function() { return []; };\nwebpackEmptyContext.resolve = webpackEmptyContext;\nwebpackEmptyContext.id = 84934;\nmodule.exports = webpackEmptyContext;","import CodePreview, { CodePreviewProps } from '@uiw/react-code-preview';\n\nexport interface CodeProps extends CodePreviewProps {\n code: string;\n version: string;\n codePen: boolean;\n codeSandbox?: boolean;\n dependencies: any;\n}\n\nexport default function Code({ version, dependencies, codePen, codeSandbox, ...other }: CodeProps) {\n const props: CodePreviewProps = { ...other };\n if (codePen) {\n props.codePenOption = {\n title: `uiw${version} - demo`,\n includeModule: ['uiw'],\n js: (props.code || '').replace('_mount_', 'document.getElementById(\"container\")'),\n html: '<div id=\"container\" style=\"padding: 24px\"></div>',\n css_external: `https://unpkg.com/uiw@${version}/dist/uiw.min.css`,\n js_external: `https://unpkg.com/react@17.x/umd/react.development.js;https://unpkg.com/react-dom@17.x/umd/react-dom.development.js;https://unpkg.com/classnames@2.2.6/index.js;https://unpkg.com/uiw@${version}/dist/uiw.min.js;https://unpkg.com/@uiw/codepen-require-polyfill@1.1.3/index.js`,\n };\n }\n if (codeSandbox) {\n props.codeSandboxOption = {\n files: {\n 'sandbox.config.json': {\n content: `{\n \"template\": \"node\",\n \"container\": {\n \"startScript\": \"start\",\n \"node\": \"14\"\n }\n }`,\n },\n 'public/index.html': {\n content: `<div id=\"container\"></div>`,\n },\n 'src/index.js': {\n content: (props.code || '').replace('_mount_', 'document.getElementById(\"container\")'),\n },\n '.kktrc.js': {\n content: `import lessModules from \"@kkt/less-modules\";\\nexport default (conf, env, options) => {\\nconf = lessModules(conf, env, options);\\nreturn conf;\\n};`,\n },\n 'package.json': {\n content: {\n name: 'uiw-demo',\n description: `uiw v${version} - demo`,\n dependencies: {\n react: '^17.0.2',\n 'react-dom': '^17.0.2',\n uiw: 'latest',\n },\n devDependencies: {\n '@kkt/less-modules': '~7.1.1',\n kkt: '~7.1.5',\n },\n license: 'MIT',\n scripts: {\n start: 'kkt start',\n build: 'kkt build',\n test: 'kkt test --env=jsdom',\n },\n browserslist: ['>0.2%', 'not dead', 'not ie <= 11', 'not op_mini all'],\n },\n },\n },\n };\n }\n return <CodePreview {...props} dependencies={dependencies} style={{ marginBottom: 0 }} />;\n}\n","import React, { Fragment } from 'react';\nimport { Divider } from 'uiw';\n\nexport type FooterProps = {\n path?: string;\n};\n\nexport default function (props: FooterProps = {}) {\n const { path } = props;\n const url = /^http/.test(path || '') ? path : `https://github.com/uiwjs/uiw/blob/master/${path}`;\n return (\n <Fragment>\n 犯了错误还是想对文件做出贡献?\n {url && (\n <a href={url} target=\"_blank\" rel=\"noopener noreferrer\">\n 在Github上编辑本页!\n </a>\n )}\n <br />\n <a href=\"https://github.com/uiwjs/uiw/issues\" target=\"_blank\" rel=\"noopener noreferrer\">\n 反馈建议\n </a>\n <Divider type=\"vertical\" />\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/uiwjs/uiw/issues/new\">\n 提交bug\n </a>\n <Divider type=\"vertical\" />\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/uiwjs/uiw\">\n Github\n </a>\n <Divider type=\"vertical\" />\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/kktjs/kkt\">\n kkt\n </a>\n <Divider type=\"vertical\" />\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/kktjs/kkt-ssr\">\n @kkt/ssr\n </a>\n <Divider type=\"vertical\" />\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"http://uiw.gitee.io\">\n 国内镜像\n </a>\n </Fragment>\n );\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"docinfo\":\"index_docinfo__3Vx8S\",\"markdown\":\"index_markdown__hcQCp\"};","import { useEffect, useState } from 'react';\nimport MarkdownPreview from '@uiw/react-markdown-preview';\nimport pkg from 'uiw/package.json';\nimport Code from './Code';\nimport Footer from './Footer';\nimport styles from './index.module.less';\n\nexport type CreatePageProps<T> = {\n dependencies?: T;\n path: string;\n renderPage?: () => Promise<string>;\n};\n\nconst getCodeStr = (data: any[] = [], code: string = '') => {\n data.forEach((node) => {\n if (node.type === 'text') {\n code += node.value;\n } else if (node.children && Array.isArray(node.children)) {\n code += getCodeStr(node.children);\n }\n });\n return code;\n};\n\nexport default function CreatePage<T>(props: CreatePageProps<T>) {\n const { renderPage, dependencies, path } = props;\n const [mdStr, setMdStr] = useState('');\n\n const version = pkg.version || '2.0.0';\n useEffect(() => {\n if (renderPage) {\n renderPage()\n .then((str) => {\n setMdStr(str);\n })\n .catch(() => {});\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n if (!mdStr) {\n return null;\n }\n\n return (\n <div>\n <MarkdownPreview\n source={mdStr}\n className={styles.markdown}\n components={{\n /**\n * bordered 边框\n * bgWhite 设置代码预览背景白色,否则为格子背景。\n * noCode 不显示代码编辑器。\n * noPreview 不显示代码预览效果。\n * noScroll 预览区域不显示滚动条。\n * codePen 显示 Codepen 按钮,要特别注意 包导入的问题,实例中的 import 主要用于 Codepen 使用。\n */\n code: ({ inline, node, ...props }) => {\n const { noPreview, bordered, noScroll, bgWhite, noCode, codePen, codeSandbox } = props as any;\n if (inline) {\n return <code {...props} />;\n }\n const config = {\n noPreview,\n bordered,\n noScroll,\n bgWhite,\n noCode,\n codePen,\n codeSandbox,\n } as any;\n if (Object.keys(config).filter((name) => config[name] !== undefined).length === 0) {\n return <code {...props} />;\n }\n return (\n <Code\n version={version}\n code={getCodeStr(node.children)}\n dependencies={dependencies}\n {...{ noPreview, bordered, noScroll, bgWhite, noCode, codePen, codeSandbox }}\n />\n );\n },\n }}\n />\n <div className={styles.docinfo}>\n <Footer path={path} />\n </div>\n </div>\n );\n}\n","import React from 'react';\nimport Markdown from '../../../components/Markdown';\n\nexport default function Page() {\n return (\n <Markdown\n path=\"https://github.com/uiwjs/uiw/tree/master/website/src/routes/components/colors/README.md\"\n renderPage={async () => {\n const md = await import('./README.md');\n return md.default || md;\n }}\n />\n );\n}\n"],"names":["webpackEmptyContext","req","e","Error","code","keys","resolve","id","module","exports","Code","version","dependencies","codePen","codeSandbox","other","props","codePenOption","title","includeModule","js","replace","html","css_external","js_external","codeSandboxOption","files","content","name","description","react","uiw","devDependencies","kkt","license","scripts","start","build","test","browserslist","style","marginBottom","path","url","Fragment","href","target","rel","type","getCodeStr","data","forEach","node","value","children","Array","isArray","CreatePage","renderPage","useState","mdStr","setMdStr","pkg","useEffect","then","str","catch","source","className","styles","components","inline","noPreview","bordered","noScroll","bgWhite","noCode","config","Object","filter","undefined","length","Footer","Page","md","default"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"static/js/6436.f9f8d420.chunk.js","mappings":"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","sources":["../../node_modules/@babel/standalone|sync|nonrecursive","components/Markdown/Code.tsx","components/Markdown/Footer.tsx","webpack://website/./src/components/Markdown/index.module.less?6e49","components/Markdown/index.tsx","routes/components/colors/index.tsx"],"sourcesContent":["function webpackEmptyContext(req) {\n\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\te.code = 'MODULE_NOT_FOUND';\n\tthrow e;\n}\nwebpackEmptyContext.keys = function() { return []; };\nwebpackEmptyContext.resolve = webpackEmptyContext;\nwebpackEmptyContext.id = 84934;\nmodule.exports = webpackEmptyContext;","import CodePreview, { CodePreviewProps } from '@uiw/react-code-preview';\n\nexport interface CodeProps extends CodePreviewProps {\n code: string;\n version: string;\n codePen: boolean;\n codeSandbox?: boolean;\n dependencies: any;\n}\n\nexport default function Code({ version, dependencies, codePen, codeSandbox, ...other }: CodeProps) {\n const props: CodePreviewProps = { ...other };\n if (codePen) {\n props.codePenOption = {\n title: `uiw${version} - demo`,\n includeModule: ['uiw'],\n js: (props.code || '').replace('_mount_', 'document.getElementById(\"container\")'),\n html: '<div id=\"container\" style=\"padding: 24px\"></div>',\n css_external: `https://unpkg.com/uiw@${version}/dist/uiw.min.css`,\n js_external: `https://unpkg.com/react@17.x/umd/react.development.js;https://unpkg.com/react-dom@17.x/umd/react-dom.development.js;https://unpkg.com/classnames@2.2.6/index.js;https://unpkg.com/uiw@${version}/dist/uiw.min.js;https://unpkg.com/@uiw/codepen-require-polyfill@1.1.3/index.js`,\n };\n }\n if (codeSandbox) {\n props.codeSandboxOption = {\n files: {\n 'sandbox.config.json': {\n content: `{\n \"template\": \"node\",\n \"container\": {\n \"startScript\": \"start\",\n \"node\": \"14\"\n }\n }`,\n },\n 'public/index.html': {\n content: `<div id=\"container\"></div>`,\n },\n 'src/index.js': {\n content: (props.code || '').replace('_mount_', 'document.getElementById(\"container\")'),\n },\n '.kktrc.js': {\n content: `import lessModules from \"@kkt/less-modules\";\\nexport default (conf, env, options) => {\\nconf = lessModules(conf, env, options);\\nreturn conf;\\n};`,\n },\n 'package.json': {\n content: {\n name: 'uiw-demo',\n description: `uiw v${version} - demo`,\n dependencies: {\n react: '^17.0.2',\n 'react-dom': '^17.0.2',\n uiw: 'latest',\n },\n devDependencies: {\n '@kkt/less-modules': '~7.1.1',\n kkt: '~7.1.5',\n },\n license: 'MIT',\n scripts: {\n start: 'kkt start',\n build: 'kkt build',\n test: 'kkt test --env=jsdom',\n },\n browserslist: ['>0.2%', 'not dead', 'not ie <= 11', 'not op_mini all'],\n },\n },\n },\n };\n }\n return <CodePreview {...props} dependencies={dependencies} style={{ marginBottom: 0 }} />;\n}\n","import React, { Fragment } from 'react';\nimport { Divider } from 'uiw';\n\nexport type FooterProps = {\n path?: string;\n};\n\nexport default function (props: FooterProps = {}) {\n const { path } = props;\n const url = /^http/.test(path || '') ? path : `https://github.com/uiwjs/uiw/blob/master/${path}`;\n return (\n <Fragment>\n 犯了错误还是想对文件做出贡献?\n {url && (\n <a href={url} target=\"_blank\" rel=\"noopener noreferrer\">\n 在Github上编辑本页!\n </a>\n )}\n <br />\n <a href=\"https://github.com/uiwjs/uiw/issues\" target=\"_blank\" rel=\"noopener noreferrer\">\n 反馈建议\n </a>\n <Divider type=\"vertical\" />\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/uiwjs/uiw/issues/new\">\n 提交bug\n </a>\n <Divider type=\"vertical\" />\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/uiwjs/uiw\">\n Github\n </a>\n <Divider type=\"vertical\" />\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/kktjs/kkt\">\n kkt\n </a>\n <Divider type=\"vertical\" />\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/kktjs/kkt-ssr\">\n @kkt/ssr\n </a>\n <Divider type=\"vertical\" />\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"http://uiw.gitee.io\">\n 国内镜像\n </a>\n </Fragment>\n );\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"docinfo\":\"index_docinfo__3Vx8S\",\"markdown\":\"index_markdown__hcQCp\"};","import { useEffect, useState } from 'react';\nimport MarkdownPreview from '@uiw/react-markdown-preview';\nimport pkg from 'uiw/package.json';\nimport Code from './Code';\nimport Footer from './Footer';\nimport styles from './index.module.less';\n\nexport type CreatePageProps<T> = {\n dependencies?: T;\n path: string;\n renderPage?: () => Promise<string>;\n};\n\nconst getCodeStr = (data: any[] = [], code: string = '') => {\n data.forEach((node) => {\n if (node.type === 'text') {\n code += node.value;\n } else if (node.children && Array.isArray(node.children)) {\n code += getCodeStr(node.children);\n }\n });\n return code;\n};\n\nexport default function CreatePage<T>(props: CreatePageProps<T>) {\n const { renderPage, dependencies, path } = props;\n const [mdStr, setMdStr] = useState('');\n\n const version = pkg.version || '2.0.0';\n useEffect(() => {\n if (renderPage) {\n renderPage()\n .then((str) => {\n setMdStr(str);\n })\n .catch(() => {});\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n if (!mdStr) {\n return null;\n }\n\n return (\n <div>\n <MarkdownPreview\n source={mdStr}\n className={styles.markdown}\n components={{\n /**\n * bordered 边框\n * bgWhite 设置代码预览背景白色,否则为格子背景。\n * noCode 不显示代码编辑器。\n * noPreview 不显示代码预览效果。\n * noScroll 预览区域不显示滚动条。\n * codePen 显示 Codepen 按钮,要特别注意 包导入的问题,实例中的 import 主要用于 Codepen 使用。\n */\n code: ({ inline, node, ...props }) => {\n const { noPreview, bordered, noScroll, bgWhite, noCode, codePen, codeSandbox } = props as any;\n if (inline) {\n return <code {...props} />;\n }\n const config = {\n noPreview,\n bordered,\n noScroll,\n bgWhite,\n noCode,\n codePen,\n codeSandbox,\n } as any;\n if (Object.keys(config).filter((name) => config[name] !== undefined).length === 0) {\n return <code {...props} />;\n }\n return (\n <Code\n version={version}\n code={getCodeStr(node.children)}\n dependencies={dependencies}\n {...{ noPreview, bordered, noScroll, bgWhite, noCode, codePen, codeSandbox }}\n />\n );\n },\n }}\n />\n <div className={styles.docinfo}>\n <Footer path={path} />\n </div>\n </div>\n );\n}\n","import React from 'react';\nimport Markdown from '../../../components/Markdown';\n\nexport default function Page() {\n return (\n <Markdown\n path=\"https://github.com/uiwjs/uiw/tree/master/website/src/routes/components/colors/README.md\"\n renderPage={async () => {\n const md = await import('./README.md');\n return md.default || md;\n }}\n />\n );\n}\n"],"names":["webpackEmptyContext","req","e","Error","code","keys","resolve","id","module","exports","Code","version","dependencies","codePen","codeSandbox","other","props","codePenOption","title","includeModule","js","replace","html","css_external","js_external","codeSandboxOption","files","content","name","description","react","uiw","devDependencies","kkt","license","scripts","start","build","test","browserslist","style","marginBottom","path","url","Fragment","href","target","rel","type","getCodeStr","data","forEach","node","value","children","Array","isArray","CreatePage","renderPage","useState","mdStr","setMdStr","pkg","useEffect","then","str","catch","source","className","styles","components","inline","noPreview","bordered","noScroll","bgWhite","noCode","config","Object","filter","undefined","length","Footer","Page","md","default"],"sourceRoot":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[6566],{36566:function(n,e,t){t.r(e),e.default="Form \u8868\u5355\n===\n\n[](https://uiwjs.github.io/npm-unpkg/#/pkg/@uiw/react-form/file/README.md)\n[](https://www.npmjs.com/package/@uiw/react-form)\n[](https://npmjs.com/@uiw/react-form)\n\n\u7531\u8f93\u5165\u6846\u3001\u9009\u62e9\u5668\u3001\u5355\u9009\u6846\u3001\u591a\u9009\u6846\u7b49\u63a7\u4ef6\u7ec4\u6210\uff0c\u7528\u4ee5\u6536\u96c6\u3001\u6821\u9a8c\u3001\u63d0\u4ea4\u6570\u636e\u3002\n\n```jsx\nimport { Form, FormItem } from 'uiw';\n// or\nimport { Form, FormItem } from '@uiw/react-form';\n```\n\n### \u57fa\u672c\u7528\u6cd5\n\n\x3c!--rehype:bgWhite=true&codeSandbox=true&codePen=true--\x3e\n```jsx\n\nimport React, { useState, useRef } from \"react\";\nimport ReactDOM from 'react-dom';\nimport { Form, Input, Row, Col, Slider, Button, Notify } from 'uiw';\n\nfunction Demo() {\n const form = useRef()\n\n const onSubmit = () => {\n form.current.onSubmit()\n }\n const resetForm = () => {\n form.current.resetForm()\n }\n const getFieldValues = () => {\n console.log('getFieldValues', form.current.getFieldValues())\n }\n\n return (\n <div>\n <Form\n ref={form}\n onChange={({ initial, current }) => {\n console.log('onChange', initial, current);\n }}\n onSubmit={({ initial, current }) => {\n if (current.name === initial.name) {\n Notify.error({\n title: '\u63d0\u4ea4\u5931\u8d25\uff01',\n description: `\u8868\u5355\u63d0\u4ea4\u5185\u5bb9\u4e3a\u7a7a\uff01`,\n });\n } else {\n Notify.success({\n title: '\u63d0\u4ea4\u6210\u529f\uff01',\n description: `\u59d3\u540d\u4e3a\uff1a${current.name}\uff0c\u63d0\u4ea4\u5b8c\u6210\uff0c\u5c06\u81ea\u52a8\u586b\u5145\u521d\u59cb\u5316\u503c\uff01`,\n });\n }\n }}\n fields={{\n name: {\n label: '\u59d3\u540d',\n children: <Input placeholder=\"\u8bf7\u8f93\u5165\u59d3\u540d\" />\n },\n }}\n >\n {({ fields, state, canSubmit }) => {\n return (\n <div>\n <Row>\n <Col style={{ maxWidth: 300 }}>{fields.name}</Col>\n </Row>\n <Row>\n <Col>\n <Button disabled={!canSubmit()} type=\"primary\" htmlType=\"submit\">\u63d0\u4ea4</Button>\n </Col>\n </Row>\n <Row>\n <Col>\n {JSON.stringify(state.current)}\n </Col>\n </Row>\n </div>\n )\n }}\n </Form>\n <Button type=\"primary\" onClick={onSubmit} >submit</Button>\n <Button type=\"primary\" onClick={resetForm}>resetForm</Button>\n <Button type=\"primary\" onClick={getFieldValues}>getValues</Button>\n </div>\n )\n}\nReactDOM.render(<Demo />, _mount_);\n```\n\n### \u81ea\u5b9a\u4e49\u6821\u9a8c\n\n\u4e00\u822c\u6821\u9a8c\u53ef\u4e0d\u9700\u5f15\u5165\u5916\u90e8\u5305\u89e3\u51b3\uff0c\u5982\u679c\u9047\u5230\u5927\u578b\u5de5\u7a0b\u8868\u5355\u6bd4\u8f83\u591a\u7684\u5730\u65b9\u63a8\u8350\u4f7f\u7528 [jquense/yup](https://github.com/jquense/yup)\n\n\x3c!--rehype:bgWhite=true&codeSandbox=true&codePen=true--\x3e\n```jsx\nimport ReactDOM from 'react-dom';\nimport { Form, Input, Notify, Checkbox, Switch, RadioGroup, Radio, Textarea, Row, Col, Button } from 'uiw';\n\nconst Demo = () => (\n <Form\n onSubmit={({initial, current}) => {\n const errorObj = {};\n if (current.userName.startsWith('u')) {\n errorObj.userName = `\u59d3\u540d ${current.userName} \u4e0d\u80fd\u4ee5 \u2018u\u2019 \u5f00\u5934`;\n }\n if (!current.checkboxOne) {\n errorObj.checkboxOne = '\u4e00\u4e2a\u591a\u9009\u6761\u4ef6 \u4e3a\u5fc5\u586b';\n }\n if (!current.terms) {\n errorObj.terms = '\u5fc5\u987b\u7edf\u4e00\u670d\u52a1\u6761\u6b3e';\n }\n if(Object.keys(errorObj).length > 0) {\n const err = new Error();\n err.filed = errorObj;\n throw err;\n }\n Notify.success({\n title: '\u63d0\u4ea4\u6210\u529f\uff01',\n description: `\u59d3\u540d\u4e3a\uff1a${current.userName}\uff0c\u63d0\u4ea4\u5b8c\u6210\uff0c\u5c06\u81ea\u52a8\u586b\u5145\u521d\u59cb\u5316\u503c\uff01`,\n });\n }}\n onSubmitError={(error) => {\n if (error.filed) {\n return { ...error.filed };\n }\n return null;\n }}\n fields={{\n userName: {\n initialValue: 'uiw',\n label: '\u59d3\u540d',\n children: <Input type=\"text\" />,\n help: '\u4ee5\u201cu\u201d\u5f00\u5934\u7684\u540d\u5b57\u5c06\u5728\u6b64\u5904\u663e\u793a\u9519\u8bef\u4fe1\u606f'\n },\n age: {\n initialValue: '9',\n label: '\u5e74\u9f84',\n children: <Input type=\"number\" />\n },\n checkbox: {\n initialValue: ['\u56db\u5ddd\u83dc'],\n label: '\u9009\u62e9\u4f60\u60f3\u5403\u7684\u83dc',\n children: (\n <Checkbox.Group>\n <div>\u83dc\u7cfb</div>\n <Checkbox value=\"\u56db\u5ddd\u83dc\">\u56db\u5ddd\u83dc</Checkbox>\n <Checkbox value=\"\u6e56\u5317\u83dc\">\u6e56\u5317\u83dc</Checkbox>\n <Checkbox value=\"\u897f\u5317\u83dc\">\u897f\u5317\u83dc</Checkbox>\n <Checkbox value=\"\u65b0\u7586\u83dc\">\u65b0\u7586\u83dc</Checkbox>\n <Checkbox value=\"\u4e1c\u5317\u83dc\">\u4e1c\u5317\u83dc</Checkbox>\n <div style={{ marginTop: 10 }}>\u5bb6\u5e38\u83dc</div>\n <Checkbox value=\"\u7ea2\u70e7\u6b66\u660c\u9c7c\">\u7ea2\u70e7\u6b66\u660c\u9c7c</Checkbox>\n <Checkbox value=\"\u9ebb\u5a46\u8c46\u8150\">\u9ebb\u5a46\u8c46\u8150</Checkbox>\n <Checkbox value=\"\u5317\u4eac\u70e4\u9e2d\">\u5317\u4eac\u70e4\u9e2d</Checkbox>\n </Checkbox.Group>\n )\n },\n checkboxOne: {\n inline: true,\n label: '\u4e00\u4e2a\u591a\u9009\u6761\u4ef6',\n children: <Checkbox value=\"1\">\u56db\u5ddd\u83dc</Checkbox>\n },\n switch: {\n inline: true,\n initialValue: true,\n label: '\u5f00\u542f',\n children: <Switch size=\"small\" />\n },\n radioGroup: {\n inline: true,\n initialValue: '\u7537',\n label: '\u5355\u9009',\n children: (\n <RadioGroup name=\"other\">\n <Radio value=\"\u7537\">\u7537</Radio>\n <Radio value=\"\u5973\">\u5973</Radio>\n <Radio value=\"\u4eba\u5996\" disabled>\u4eba\u5996</Radio>\n <Radio value=\"\u672a\u77e5\">\u672a\u77e5</Radio>\n </RadioGroup>\n )\n },\n textarea: {\n initialValue: '',\n label: '\u591a\u884c\u6587\u672c\u8f93\u5165\u6846',\n children: <Textarea placeholder=\"\u8bf7\u8f93\u5165\u5185\u5bb9\" />\n },\n terms: {\n validator: (currentValue) => {\n return !currentValue ? '\u5fc5\u987b\u7edf\u4e00\u670d\u52a1\u6761\u6b3e' : null;\n },\n style: { marginBottom: 0 },\n children: <Checkbox value=\"1\">\u5df2\u9605\u8bfb\u5e76\u540c\u610f<a href=\"#\">\u670d\u52a1\u6761\u6b3e</a></Checkbox>\n }\n }}\n >\n {({ fields, state, canSubmit, resetForm }) => {\n console.log('fields:--\x3e', state);\n return (\n <div style={{ maxWidth: 500 }}>\n <Row gutter={10}>\n <Col>{fields.userName}</Col>\n <Col>{fields.age}</Col>\n </Row>\n <Row gutter={10}>\n <Col>{fields.checkbox}</Col>\n <Col>{fields.checkboxOne}</Col>\n </Row>\n <Row gutter={10}>\n <Col>{fields.radioGroup}</Col>\n </Row>\n <Row gutter={10}>\n <Col>{fields.switch}</Col>\n </Row>\n <Row gutter={10}>\n <Col>{fields.textarea}</Col>\n </Row>\n <Row gutter={10}>\n <Col style={{ padding: '5px 0 10px 0' }}>\n {fields.terms}\n </Col>\n </Row>\n <Row gutter={10}>\n <Col fixed>\n <Button disabled={!canSubmit()} type=\"primary\" htmlType=\"submit\">\u63d0\u4ea4</Button>\n <Button type=\"light\" onClick={resetForm}>\u91cd\u7f6e\u8868\u5355</Button>\n </Col>\n </Row>\n <Row>\n <Col>\n <pre style={{ padding: '10px 0 0 10px' }}>\n {JSON.stringify(state.current, null, 2)}\n </pre>\n </Col>\n </Row>\n </div>\n )\n }}\n </Form>\n)\nReactDOM.render(<Demo />, _mount_);\n```\n\n### \u6c34\u5e73\u767b\u5f55\u680f\n\n\x3c!--rehype:bgWhite=true&codeSandbox=true&codePen=true--\x3e\n```jsx\nimport ReactDOM from 'react-dom';\nimport { Form, Input, Row, Col, Notify, Button } from 'uiw';\n\nconst Demo = () => (\n <div>\n <Form\n onSubmit={({initial, current}) => {\n const errorObj = {};\n if (!current.username) {\n errorObj.username = '\u7528\u6237\u540d\u4e0d\u80fd\u4e3a\u7a7a\uff01';\n }\n if (!current.password) {\n errorObj.password = '\u5bc6\u7801\u4e0d\u80fd\u4e3a\u7a7a\uff01';\n }\n if(Object.keys(errorObj).length > 0) {\n const err = new Error();\n err.filed = errorObj;\n Notify.error({ title: '\u63d0\u4ea4\u5931\u8d25\uff01', description: '\u8bf7\u786e\u8ba4\u63d0\u4ea4\u8868\u5355\u662f\u5426\u6b63\u786e\uff01' });\n throw err;\n }\n console.log('--\x3e>', initial, current);\n Notify.success({ title: '\u63d0\u4ea4\u6210\u529f\uff01', description: '\u606d\u559c\u4f60\u767b\u5f55\u6210\u529f\uff01' });\n }}\n onSubmitError={(error) => {\n if (error.filed) {\n return { ...error.filed };\n }\n return null;\n }}\n fields={{\n username: {\n labelClassName: 'fieldLabel',\n labelFor: 'username-inline',\n children: <Input preIcon=\"user\" id=\"username-inline\" />\n },\n password: {\n labelClassName: 'fieldLabel',\n labelFor: 'password-inline',\n children: <Input preIcon=\"lock\" id=\"password-inline\" type=\"password\" />\n },\n }}\n >\n {({ fields, state, canSubmit, resetForm }) => {\n console.log('fields:', state);\n return (\n <div>\n <Row gutter={10}>\n <Col fixed>{fields.username}</Col>\n <Col fixed>{fields.password}</Col>\n </Row>\n <Row gutter={10}>\n <Col>\n <Button disabled={!canSubmit()} type=\"primary\" htmlType=\"submit\">\u63d0\u4ea4</Button>\n <Button type=\"danger\" onClick={resetForm}>\u91cd\u7f6e\u8868\u5355</Button>\n </Col>\n </Row>\n </div>\n )\n }}\n </Form>\n </div>\n);\nReactDOM.render(<Demo />, _mount_);\n```\n\n## \u767b\u5f55\n\n\x3c!--rehype:bgWhite=true&codeSandbox=true&codePen=true--\x3e\n```jsx\nimport ReactDOM from 'react-dom';\nimport { Form, Input, Row, Col, Checkbox, Notify, Button } from 'uiw';\n\nconst Demo = () => (\n <div>\n <Form\n onSubmit={({initial, current}) => {\n console.log('--\x3e>', initial, current);\n }}\n fields={{\n username: {\n labelClassName: 'fieldLabel',\n labelStyle: { width: 60 },\n labelFor: 'username',\n children: <Input preIcon=\"user\" id=\"username\" />\n },\n password: {\n labelClassName: 'fieldLabel',\n labelStyle: { width: 60 },\n labelFor: 'password',\n children: <Input preIcon=\"lock\" id=\"password\" type=\"password\" />\n },\n terms: {\n validator: (currentValue) => !currentValue ? '\u5fc5\u987b\u7edf\u4e00\u670d\u52a1\u6761\u6b3e' : null,\n children: <Checkbox value=\"1\">\u5df2\u9605\u8bfb\u5e76\u540c\u610f</Checkbox>\n }\n }}\n >\n {({ fields, state, canSubmit }) => {\n console.log('fields:', state);\n return (\n <div>\n <Row>\n <Col fixed>{fields.username}</Col>\n </Row>\n <Row>\n <Col fixed>{fields.password}</Col>\n </Row>\n <Row>\n <Col fixed align=\"middle\">{fields.terms}</Col>\n <Col fixed style={{ marginTop: -4 }}><a href=\"#\">\u670d\u52a1\u6761\u6b3e</a></Col>\n </Row>\n <Row>\n <Col fixed>\n <Button disabled={!canSubmit()} type=\"primary\" htmlType=\"submit\">\u63d0\u4ea4</Button>\n </Col>\n </Row>\n </div>\n )\n }}\n </Form>\n </div>\n)\nReactDOM.render(<Demo />, _mount_);\n```\n\n### \u8868\u5355\u63d0\u4ea4\n\n\x3c!--rehype:bgWhite=true&codeSandbox=true&codePen=true--\x3e\n```jsx\nimport ReactDOM from 'react-dom';\nimport { Form, Input, Select, Row, Col, Button } from 'uiw';\n\nconst Demo = () => (\n <div>\n <Form\n onSubmit={({initial, current}) => {\n console.log('--\x3e>', initial, current);\n }}\n fields={{\n firstName: {\n labelClassName: 'fieldLabel',\n labelStyle: { width: 60 },\n inline: true,\n label: '\u59d3\u6c0f',\n children: <Input />\n },\n lastName: {\n labelClassName: 'fieldLabel',\n labelStyle: { width: 60 },\n initialValue: '\u5148\u751f',\n inline: true,\n label: '\u540d\u5b57',\n children: <Input />\n },\n email: {\n labelClassName: 'fieldLabel',\n labelStyle: { width: 60 },\n validator: (currentValue) => {\n return currentValue && currentValue.length < 2 ? 'Password must be 8+ characters' : null;\n },\n inline: true,\n label: 'Email',\n children: <Input />\n },\n select: {\n labelClassName: 'fieldLabel',\n labelStyle: { width: 60 },\n inline: true,\n label: '\u9009\u62e9\u5668',\n children: (\n <Select>\n <Select.Option>Choose an item...</Select.Option>\n <Select.Option value=\"1\">One</Select.Option>\n <Select.Option value=\"2\">Two</Select.Option>\n <Select.Option value=\"3\">Three</Select.Option>\n <Select.Option value=\"4\">Four</Select.Option>\n </Select>\n ),\n },\n }}\n >\n {({ fields, state, canSubmit }) => {\n console.log('fields:', state);\n return (\n <div>\n <Row gutter={10} style={{ marginBottom: 10 }}>\n <Col>{fields.firstName}</Col>\n <Col>{fields.lastName}</Col>\n </Row>\n <Row gutter={10}>\n <Col>{fields.email}</Col>\n <Col>{fields.select}</Col>\n </Row>\n <Row gutter={10}>\n <Col />\n <Col fixed align=\"bottom\"><Button disabled={!canSubmit()} type=\"primary\" htmlType=\"submit\">\u63d0\u4ea4</Button></Col>\n </Row>\n </div>\n )\n }}\n </Form>\n </div>\n)\nReactDOM.render(<Demo />, _mount_);\n```\n\n\n### \u81ea\u5b9a\u4e49\u63a7\u4ef6\u5e94\u7528\n\n\u4e0b\u9762\u5b9e\u4f8b\u662f\u5728 [`<Form />`](#/components/form) \u8868\u5355\u7ec4\u4ef6\u4e2d\uff0c\u5e94\u7528\u81ea\u5b9a\u4e49 `<CustomSelect />` \u63a7\u4ef6\u7ec4\u4ef6\u3002\n\n> \u26a0\ufe0f \u6ce8\u610f\uff0c\u81ea\u5b9a\u4e49\u63a7\u4ef6\u9700\u8981\u4e24\u4e2a\u5fc5\u8981\u7684 `props` \u53c2\u6570\uff0c`value` \u548c `onChange`\n\x3c!--rehype:style=border-left: 8px solid #ffe564;background-color: #ffe56440;padding: 12px 16px;--\x3e\n\n- `value` \u7528\u4e8e\u503c\u4f20\u9012\uff0c\n- `onChange(value)` \u7528\u4e8e\u503c\u53d8\u66f4\u9700\u8981\u6267\u884c\u7684\u56de\u8c03\u51fd\u6570\uff0c\u56de\u8c03\u51fd\u6570\u7b2c\u4e00\u4e2a\u53c2\u6570\u5fc5\u987b\u662f `value`\u3002\n\n\x3c!--rehype:bgWhite=true&codeSandbox=true&codePen=true--\x3e\n```jsx\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport { Form, Row, Col, Dropdown, Menu, Icon, Button, Notify } from 'uiw';\n\n// \u81ea\u5b9a\u4e49\u7ec4\u4ef6\nfunction CustomSelect(props) {\n const { option = [], onChange } = props;\n const [value, setValue] = React.useState(props.value);\n const [isOpen, setIsOpen] = React.useState(false);\n\n React.useEffect(() => {\n if (value !== props.value) {\n setValue(props.value);\n }\n }, [props.value]);\n const label = option.find(item => value === item.value);\n return (\n <Dropdown\n trigger=\"click\"\n onVisibleChange={(open) => setIsOpen(open)}\n isOpen={isOpen}\n menu={\n <Menu bordered style={{ minWidth: 120 }}>\n {option.map((item, idx) => (\n <Menu.Item active={value === item.value} key={idx} text={item.label}\n onClick={() => {\n setValue(item.value);\n setIsOpen(false)\n onChange && onChange(item.value);\n }}\n />\n ))}\n </Menu>\n }\n >\n <Button\n style={{\n boxShadow: 'inset 0 0 0 1px rgba(16, 22, 26, 0.2), inset 0 -1px 0 rgba(16, 22, 26, 0.1)'\n }}\n type=\"link\"\n >\n {label.label}<Icon type={isOpen ? 'up' : 'down'} />\n </Button>\n </Dropdown>\n );\n}\n\n// \u81ea\u5b9a\u4e49\u7ec4\u4ef6\u5e94\u7528\u5b9e\u4f8b\nconst Demo = () => (\n <div>\n <Form\n onSubmitError={(error) => {\n if (error.filed) {\n return { ...error.filed };\n }\n return null;\n }}\n onSubmit={({initial, current}) => {\n console.log('~~~', current);\n const errorObj = {};\n if (!current.select) {\n errorObj.select = '\u5185\u5bb9\u4e3a\u7a7a\uff0c\u8bf7\u8f93\u5165\u5185\u5bb9';\n }\n if(Object.keys(errorObj).length > 0) {\n const err = new Error();\n err.filed = errorObj;\n Notify.error({ title: '\u63d0\u4ea4\u5931\u8d25\uff01', description: '\u8bf7\u786e\u8ba4\u63d0\u4ea4\u8868\u5355\u662f\u5426\u6b63\u786e\uff01' });\n throw err;\n }\n Notify.success({\n title: '\u63d0\u4ea4\u6210\u529f\uff01',\n description: `\u8868\u5355\u63d0\u4ea4\u6210\u529f\uff0c\u5185\u5bb9\u4e3a\uff1a${current.select}\uff0c\u5c06\u81ea\u52a8\u586b\u5145\u521d\u59cb\u5316\u503c\uff01`,\n });\n }}\n fields={{\n select: {\n initialValue: 0,\n children: (\n <CustomSelect option={[\n { label: '\u8bf7\u9009\u62e9', value: 0 },\n { label: '\u7ecf\u6d4e\u8231', value: 1 },\n { label: '\u8c6a\u534e\u7ecf\u6d4e\u8231', value: 2 },\n { label: '\u5546\u52a1\u8231', value: 3 },\n { label: '\u5934\u7b49\u8231', value: 4 },\n ]} />\n )\n },\n }}\n >\n {({ fields, state, canSubmit }) => {\n return (\n <div>\n <Row>\n <Col style={{ maxWidth: 300 }}>{fields.select}</Col>\n </Row>\n <Row>\n <Col fixed>\n <Button disabled={!canSubmit()} type=\"primary\" htmlType=\"submit\">\u63d0\u4ea4</Button>\n </Col>\n </Row>\n </div>\n )\n }}\n </Form>\n </div>\n)\nReactDOM.render(<Demo />, _mount_);\n```\n\n### FormItem \u7ad6\u6392\n\n\u5bf9\u7ec4\u4ef6 `FormItem` \u7ad6\u6392\u5c55\u793a\u793a\u4f8b\u3002\n\n> \u26a0\ufe0f \u6ce8\u610f\uff1a`FormItem` \u7ec4\u4ef6\u53ea\u5728 `Form` \u7ec4\u4ef6\u4e2d\u4f7f\u7528\uff0c\u5728 `@v4.10.4+` \u4ee5\u4e0a\u7248\u672c\u53ef\u4ee5\u5f53\u666e\u901a `form` \u4f7f\u7528\u3002\n\x3c!--rehype:style=border-left: 8px solid #ffe564;background-color: #ffe56440;padding: 12px 16px;--\x3e\n\n\x3c!--rehype:bgWhite=true&codeSandbox=true&codePen=true--\x3e\n```jsx\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport { Form, FormItem, Button } from 'uiw';\n\nconst Demo = () => {\n const [formData, setFormData] = React.useState({});\n const handleSubmit = (_, e) => {\n e && e.preventDefault();\n const fData = new FormData(e.target);\n const data = {};\n fData.forEach((value, key) => { data[key] = value; });\n setFormData(data);\n }\n return (\n <Form onSubmit={handleSubmit} onReset={() => setFormData({})}>\n <FormItem\n label=\"\u53ef\u9009\u5b57\u6bb5\"\n labelFor=\"item-basic-input\"\n help={<span>\u5728\u4e0a\u9762\u7684\u5b57\u6bb5\u4e2d\u8f93\u5165\u4e00\u4e2a\u503c</span>}\n >\n <Input id=\"item-basic-input\" name=\"basic\" type=\"text\"/>\n </FormItem>\n <FormItem\n label=\"\u7528\u6237\u540d\"\n labelFor=\"item-username-input\"\n help={(!formData.username || formData.username.length < 8) ? \"\u7528\u6237\u540d\u957f\u5ea6\u81f3\u5c11\u4e3a8\u4e2a\u5b57\u7b26\u4e32\u3002\" : \"\u7528\u6237\u540d\u6b63\u786e \u221a \"}\n hasError={(!formData.username || formData.username.length < 8)}\n >\n <Input id=\"item-username-input\" name=\"username\" type=\"text\"/>\n </FormItem>\n <FormItem>\n <Button type=\"success\" htmlType=\"submit\"> Submit </Button>\n <Button type=\"light\" htmlType=\"reset\"> Reset </Button>\n </FormItem>\n <pre>\n {JSON.stringify(formData, null, 2)}\n </pre>\n </Form>\n );\n}\nReactDOM.render(<Demo />, _mount_);\n```\n\n### FormItem \u6a2a\u6392\n\n\u5bf9\u7ec4\u4ef6 `FormItem` \u6a2a\u6392\u5c55\u793a\u793a\u4f8b\u3002\n\n> \u26a0\ufe0f \u6ce8\u610f\uff1a`FormItem` \u7ec4\u4ef6\u53ea\u5728 `Form` \u7ec4\u4ef6\u4e2d\u4f7f\u7528\uff0c\u5728 `@v4.10.4+` \u4ee5\u4e0a\u7248\u672c\u53ef\u4ee5\u5f53\u666e\u901a `form` \u4f7f\u7528\u3002\n\x3c!--rehype:style=border-left: 8px solid #ffe564;background-color: #ffe56440;padding: 12px 16px;--\x3e\n\n\x3c!--rehype:bgWhite=true&codeSandbox=true&codePen=true--\x3e\n```jsx\nimport ReactDOM from 'react-dom';\nimport { Form, FormItem } from 'uiw';\n\nconst Demo = () => (\n <Form>\n <FormItem\n inline={true}\n label=\"\u53ef\u9009\u5b57\u6bb5\"\n labelFor=\"basic-input-inline\"\n help={<span>\u5728\u4e0a\u9762\u7684\u5b57\u6bb5\u4e2d\u8f93\u5165\u4e00\u4e2a\u503c</span>}\n onChange={() => {\n console.log('TEST::');\n }}\n >\n <Input id=\"basic-input-inline\" name=\"basic\" type=\"text\"/>\n </FormItem>\n <FormItem\n inline={true}\n label=\"\u7528\u6237\u540d\"\n labelFor=\"username-input-inline\"\n labelClassName=\"username\"\n help=\"\u7528\u6237\u540d\u957f\u5ea6\u81f3\u5c11\u4e3a8\u4e2a\u5b57\u7b26\u4e32\u3002\"\n hasError={true}\n >\n <Input id=\"username-input-inline\" name=\"username\" type=\"text\"/>\n </FormItem>\n </Form>\n)\nReactDOM.render(<Demo />, _mount_);\n```\n\n## Form\n\n| \u53c2\u6570 | \u8bf4\u660e | \u7c7b\u578b | \u9ed8\u8ba4\u503c |\n|--------- |-------- |--------- |-------- |\n| fields | \u8bbe\u7f6e\u5b57\u6bb5 | object | - |\n| children | \u56de\u8c03 {`fields`, `state`, `canSubmit`, `resetForm`} | function | - |\n| onSubmit | \u63d0\u4ea4\u8868\u5355\u65f6\u8c03\u7528 | `(state: FormSubmitProps, event: React.FormEvent) => any` | - |\n| afterSubmit `@3.0.0+` | \u63d0\u4ea4\u56de\u8c03 {`initial`, `current`} | function({ initial, current }) | - |\n| onChange | \u8868\u5355\u53d1\u751f\u6539\u53d8\u56de\u8c03\u51fd\u6570 {`initial`, `current`} | function({ initial, current }) | - |\n| onSubmitError | \u8c03\u7528 `onSubmit` \u629b\u51fa\u7684\u4efb\u4f55\u9519\u8bef\u3002\u4ece\u5b57\u6bb5\u540d\u79f0\u8fd4\u56de\u5bf9\u8c61\u6620\u5c04\u3002 | function | - |\n| resetOnSubmit | \u5728 `onSubmit` \u6210\u529f\u540e\u5c06\u8868\u5355\u91cd\u7f6e\u4e3a\u5176\u521d\u59cb\u72b6\u6001\u3002| bool | `true` |\n\n```js\n// => fields props\n{\n firstName: {\n initialValue: '\u738b',\n inline: true,\n label: '\u59d3',\n labelClassName: 'fieldLabel',\n labelStyle: { width: 60 },\n // \u9a8c\u8bc1\uff0c\u901a\u8fc7 `canSubmit()` \u65b9\u6cd5\u83b7\u5f97\uff0c\u63d0\u4ea4\u6309\u94ae\u662f\u5426\u88ab\u7981\u7528\n validator: (currentValue) => {},\n help: '\u5e2e\u52a9\u63d0\u793a\u4fe1\u606f\uff01',\n children: <Input type=\"number\" />\n },\n}\n```\n\n## FormItem\n\n| \u53c2\u6570 | \u8bf4\u660e | \u7c7b\u578b | \u9ed8\u8ba4\u503c |\n|--------- |-------- |--------- |-------- |\n| label | \u8868\u5355\u6807\u9898\u5c55\u793a | string | - |\n| labelClassName | \u8868\u5355\u6807\u9898\u6837\u5f0f\u540d\u79f0 | string | - |\n| labelStyle | \u8868\u5355\u6807\u9898\u6837\u5f0f | object | - |\n| labelFor | \u5217\u7684\u5bbd\u5ea6\u76f8\u5bf9\u4e8e\u540c\u4e00\u7f51\u683c\u4e2d\u5176\u4ed6\u5217\u7684\u6bd4\u7387 | number | - |\n| help | \u63d0\u793a\u4fe1\u606f | ReactNode | - |\n| hasError | \u5982\u679c\u4e3atrue\uff0c\u5219\u5e94\u7528\u9519\u8befCSS\u3002\u8f6c\u52a8\u8fb9\u6846\u5e76\u5e2e\u52a9\u6587\u5b57\u53d8\u7ea2\u3002 | number | - |\n"}}]);
|
|
2
|
-
//# sourceMappingURL=6566.
|
|
1
|
+
"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[6566],{36566:function(n,e,t){t.r(e),e.default="Form \u8868\u5355\n===\n\n[](https://uiwjs.github.io/npm-unpkg/#/pkg/@uiw/react-form/file/README.md)\n[](https://www.npmjs.com/package/@uiw/react-form)\n[](https://npmjs.com/@uiw/react-form)\n\n\u7531\u8f93\u5165\u6846\u3001\u9009\u62e9\u5668\u3001\u5355\u9009\u6846\u3001\u591a\u9009\u6846\u7b49\u63a7\u4ef6\u7ec4\u6210\uff0c\u7528\u4ee5\u6536\u96c6\u3001\u6821\u9a8c\u3001\u63d0\u4ea4\u6570\u636e\u3002\n\n```jsx\nimport { Form, FormItem } from 'uiw';\n// or\nimport { Form, FormItem } from '@uiw/react-form';\n```\n\n### \u57fa\u672c\u7528\u6cd5\n\n\x3c!--rehype:bgWhite=true&codeSandbox=true&codePen=true--\x3e\n```jsx\n\nimport React, { useState, useRef } from \"react\";\nimport ReactDOM from 'react-dom';\nimport { Form, Input, Row, Col, Slider, Button, Notify } from 'uiw';\n\nfunction Demo() {\n const form = useRef()\n\n const onSubmit = () => {\n form.current.onSubmit()\n }\n const resetForm = () => {\n form.current.resetForm()\n }\n const getFieldValues = () => {\n console.log('getFieldValues', form.current.getFieldValues())\n }\n\n return (\n <div>\n <Form\n ref={form}\n onChange={({ initial, current }) => {\n console.log('onChange', initial, current);\n }}\n onSubmit={({ initial, current }) => {\n if (current.name === initial.name) {\n Notify.error({\n title: '\u63d0\u4ea4\u5931\u8d25\uff01',\n description: `\u8868\u5355\u63d0\u4ea4\u5185\u5bb9\u4e3a\u7a7a\uff01`,\n });\n } else {\n Notify.success({\n title: '\u63d0\u4ea4\u6210\u529f\uff01',\n description: `\u59d3\u540d\u4e3a\uff1a${current.name}\uff0c\u63d0\u4ea4\u5b8c\u6210\uff0c\u5c06\u81ea\u52a8\u586b\u5145\u521d\u59cb\u5316\u503c\uff01`,\n });\n }\n }}\n fields={{\n name: {\n label: '\u59d3\u540d',\n children: <Input placeholder=\"\u8bf7\u8f93\u5165\u59d3\u540d\" />\n },\n }}\n >\n {({ fields, state, canSubmit }) => {\n return (\n <div>\n <Row>\n <Col style={{ maxWidth: 300 }}>{fields.name}</Col>\n </Row>\n <Row>\n <Col>\n <Button disabled={!canSubmit()} type=\"primary\" htmlType=\"submit\">\u63d0\u4ea4</Button>\n </Col>\n </Row>\n <Row>\n <Col>\n {JSON.stringify(state.current)}\n </Col>\n </Row>\n </div>\n )\n }}\n </Form>\n <Button type=\"primary\" onClick={onSubmit} >submit</Button>\n <Button type=\"primary\" onClick={resetForm}>resetForm</Button>\n <Button type=\"primary\" onClick={getFieldValues}>getValues</Button>\n </div>\n )\n}\nReactDOM.render(<Demo />, _mount_);\n```\n\n### \u81ea\u5b9a\u4e49\u6821\u9a8c\n\n\u4e00\u822c\u6821\u9a8c\u53ef\u4e0d\u9700\u5f15\u5165\u5916\u90e8\u5305\u89e3\u51b3\uff0c\u5982\u679c\u9047\u5230\u5927\u578b\u5de5\u7a0b\u8868\u5355\u6bd4\u8f83\u591a\u7684\u5730\u65b9\u63a8\u8350\u4f7f\u7528 [jquense/yup](https://github.com/jquense/yup)\n\n\x3c!--rehype:bgWhite=true&codeSandbox=true&codePen=true--\x3e\n```jsx\nimport ReactDOM from 'react-dom';\nimport { Form, Input, Notify, Checkbox, Switch, RadioGroup, Radio, Textarea, Row, Col, Button } from 'uiw';\n\nconst Demo = () => (\n <Form\n onSubmit={({initial, current}) => {\n const errorObj = {};\n if (current.userName.startsWith('u')) {\n errorObj.userName = `\u59d3\u540d ${current.userName} \u4e0d\u80fd\u4ee5 \u2018u\u2019 \u5f00\u5934`;\n }\n if (!current.checkboxOne) {\n errorObj.checkboxOne = '\u4e00\u4e2a\u591a\u9009\u6761\u4ef6 \u4e3a\u5fc5\u586b';\n }\n if (!current.terms) {\n errorObj.terms = '\u5fc5\u987b\u7edf\u4e00\u670d\u52a1\u6761\u6b3e';\n }\n if(Object.keys(errorObj).length > 0) {\n const err = new Error();\n err.filed = errorObj;\n throw err;\n }\n Notify.success({\n title: '\u63d0\u4ea4\u6210\u529f\uff01',\n description: `\u59d3\u540d\u4e3a\uff1a${current.userName}\uff0c\u63d0\u4ea4\u5b8c\u6210\uff0c\u5c06\u81ea\u52a8\u586b\u5145\u521d\u59cb\u5316\u503c\uff01`,\n });\n }}\n onSubmitError={(error) => {\n if (error.filed) {\n return { ...error.filed };\n }\n return null;\n }}\n fields={{\n userName: {\n initialValue: 'uiw',\n label: '\u59d3\u540d',\n children: <Input type=\"text\" />,\n help: '\u4ee5\u201cu\u201d\u5f00\u5934\u7684\u540d\u5b57\u5c06\u5728\u6b64\u5904\u663e\u793a\u9519\u8bef\u4fe1\u606f'\n },\n age: {\n initialValue: '9',\n label: '\u5e74\u9f84',\n children: <Input type=\"number\" />\n },\n checkbox: {\n initialValue: ['\u56db\u5ddd\u83dc'],\n label: '\u9009\u62e9\u4f60\u60f3\u5403\u7684\u83dc',\n children: (\n <Checkbox.Group>\n <div>\u83dc\u7cfb</div>\n <Checkbox value=\"\u56db\u5ddd\u83dc\">\u56db\u5ddd\u83dc</Checkbox>\n <Checkbox value=\"\u6e56\u5317\u83dc\">\u6e56\u5317\u83dc</Checkbox>\n <Checkbox value=\"\u897f\u5317\u83dc\">\u897f\u5317\u83dc</Checkbox>\n <Checkbox value=\"\u65b0\u7586\u83dc\">\u65b0\u7586\u83dc</Checkbox>\n <Checkbox value=\"\u4e1c\u5317\u83dc\">\u4e1c\u5317\u83dc</Checkbox>\n <div style={{ marginTop: 10 }}>\u5bb6\u5e38\u83dc</div>\n <Checkbox value=\"\u7ea2\u70e7\u6b66\u660c\u9c7c\">\u7ea2\u70e7\u6b66\u660c\u9c7c</Checkbox>\n <Checkbox value=\"\u9ebb\u5a46\u8c46\u8150\">\u9ebb\u5a46\u8c46\u8150</Checkbox>\n <Checkbox value=\"\u5317\u4eac\u70e4\u9e2d\">\u5317\u4eac\u70e4\u9e2d</Checkbox>\n </Checkbox.Group>\n )\n },\n checkboxOne: {\n inline: true,\n label: '\u4e00\u4e2a\u591a\u9009\u6761\u4ef6',\n children: <Checkbox value=\"1\">\u56db\u5ddd\u83dc</Checkbox>\n },\n switch: {\n inline: true,\n initialValue: true,\n label: '\u5f00\u542f',\n children: <Switch size=\"small\" />\n },\n radioGroup: {\n inline: true,\n initialValue: '\u7537',\n label: '\u5355\u9009',\n children: (\n <RadioGroup name=\"other\">\n <Radio value=\"\u7537\">\u7537</Radio>\n <Radio value=\"\u5973\">\u5973</Radio>\n <Radio value=\"\u4eba\u5996\" disabled>\u4eba\u5996</Radio>\n <Radio value=\"\u672a\u77e5\">\u672a\u77e5</Radio>\n </RadioGroup>\n )\n },\n textarea: {\n initialValue: '',\n label: '\u591a\u884c\u6587\u672c\u8f93\u5165\u6846',\n children: <Textarea placeholder=\"\u8bf7\u8f93\u5165\u5185\u5bb9\" />\n },\n terms: {\n validator: (currentValue) => {\n return !currentValue ? '\u5fc5\u987b\u7edf\u4e00\u670d\u52a1\u6761\u6b3e' : null;\n },\n style: { marginBottom: 0 },\n children: <Checkbox value=\"1\">\u5df2\u9605\u8bfb\u5e76\u540c\u610f<a href=\"#\">\u670d\u52a1\u6761\u6b3e</a></Checkbox>\n }\n }}\n >\n {({ fields, state, canSubmit, resetForm }) => {\n console.log('fields:--\x3e', state);\n return (\n <div style={{ maxWidth: 500 }}>\n <Row gutter={10}>\n <Col>{fields.userName}</Col>\n <Col>{fields.age}</Col>\n </Row>\n <Row gutter={10}>\n <Col>{fields.checkbox}</Col>\n <Col>{fields.checkboxOne}</Col>\n </Row>\n <Row gutter={10}>\n <Col>{fields.radioGroup}</Col>\n </Row>\n <Row gutter={10}>\n <Col>{fields.switch}</Col>\n </Row>\n <Row gutter={10}>\n <Col>{fields.textarea}</Col>\n </Row>\n <Row gutter={10}>\n <Col style={{ padding: '5px 0 10px 0' }}>\n {fields.terms}\n </Col>\n </Row>\n <Row gutter={10}>\n <Col fixed>\n <Button disabled={!canSubmit()} type=\"primary\" htmlType=\"submit\">\u63d0\u4ea4</Button>\n <Button type=\"light\" onClick={resetForm}>\u91cd\u7f6e\u8868\u5355</Button>\n </Col>\n </Row>\n <Row>\n <Col>\n <pre style={{ padding: '10px 0 0 10px' }}>\n {JSON.stringify(state.current, null, 2)}\n </pre>\n </Col>\n </Row>\n </div>\n )\n }}\n </Form>\n)\nReactDOM.render(<Demo />, _mount_);\n```\n\n### \u6c34\u5e73\u767b\u5f55\u680f\n\n\x3c!--rehype:bgWhite=true&codeSandbox=true&codePen=true--\x3e\n```jsx\nimport ReactDOM from 'react-dom';\nimport { Form, Input, Row, Col, Notify, Button } from 'uiw';\n\nconst Demo = () => (\n <div>\n <Form\n onSubmit={({initial, current}) => {\n const errorObj = {};\n if (!current.username) {\n errorObj.username = '\u7528\u6237\u540d\u4e0d\u80fd\u4e3a\u7a7a\uff01';\n }\n if (!current.password) {\n errorObj.password = '\u5bc6\u7801\u4e0d\u80fd\u4e3a\u7a7a\uff01';\n }\n if(Object.keys(errorObj).length > 0) {\n const err = new Error();\n err.filed = errorObj;\n Notify.error({ title: '\u63d0\u4ea4\u5931\u8d25\uff01', description: '\u8bf7\u786e\u8ba4\u63d0\u4ea4\u8868\u5355\u662f\u5426\u6b63\u786e\uff01' });\n throw err;\n }\n console.log('--\x3e>', initial, current);\n Notify.success({ title: '\u63d0\u4ea4\u6210\u529f\uff01', description: '\u606d\u559c\u4f60\u767b\u5f55\u6210\u529f\uff01' });\n }}\n onSubmitError={(error) => {\n if (error.filed) {\n return { ...error.filed };\n }\n return null;\n }}\n fields={{\n username: {\n labelClassName: 'fieldLabel',\n labelFor: 'username-inline',\n children: <Input preIcon=\"user\" id=\"username-inline\" />\n },\n password: {\n labelClassName: 'fieldLabel',\n labelFor: 'password-inline',\n children: <Input preIcon=\"lock\" id=\"password-inline\" type=\"password\" />\n },\n }}\n >\n {({ fields, state, canSubmit, resetForm }) => {\n console.log('fields:', state);\n return (\n <div>\n <Row gutter={10}>\n <Col fixed>{fields.username}</Col>\n <Col fixed>{fields.password}</Col>\n </Row>\n <Row gutter={10}>\n <Col>\n <Button disabled={!canSubmit()} type=\"primary\" htmlType=\"submit\">\u63d0\u4ea4</Button>\n <Button type=\"danger\" onClick={resetForm}>\u91cd\u7f6e\u8868\u5355</Button>\n </Col>\n </Row>\n </div>\n )\n }}\n </Form>\n </div>\n);\nReactDOM.render(<Demo />, _mount_);\n```\n\n## \u767b\u5f55\n\n\x3c!--rehype:bgWhite=true&codeSandbox=true&codePen=true--\x3e\n```jsx\nimport ReactDOM from 'react-dom';\nimport { Form, Input, Row, Col, Checkbox, Notify, Button } from 'uiw';\n\nconst Demo = () => (\n <div>\n <Form\n onSubmit={({initial, current}) => {\n console.log('--\x3e>', initial, current);\n }}\n fields={{\n username: {\n labelClassName: 'fieldLabel',\n labelStyle: { width: 60 },\n labelFor: 'username',\n children: <Input preIcon=\"user\" id=\"username\" />\n },\n password: {\n labelClassName: 'fieldLabel',\n labelStyle: { width: 60 },\n labelFor: 'password',\n children: <Input preIcon=\"lock\" id=\"password\" type=\"password\" />\n },\n terms: {\n validator: (currentValue) => !currentValue ? '\u5fc5\u987b\u7edf\u4e00\u670d\u52a1\u6761\u6b3e' : null,\n children: <Checkbox value=\"1\">\u5df2\u9605\u8bfb\u5e76\u540c\u610f</Checkbox>\n }\n }}\n >\n {({ fields, state, canSubmit }) => {\n console.log('fields:', state);\n return (\n <div>\n <Row>\n <Col fixed>{fields.username}</Col>\n </Row>\n <Row>\n <Col fixed>{fields.password}</Col>\n </Row>\n <Row>\n <Col fixed align=\"middle\">{fields.terms}</Col>\n <Col fixed style={{ marginTop: -4 }}><a href=\"#\">\u670d\u52a1\u6761\u6b3e</a></Col>\n </Row>\n <Row>\n <Col fixed>\n <Button disabled={!canSubmit()} type=\"primary\" htmlType=\"submit\">\u63d0\u4ea4</Button>\n </Col>\n </Row>\n </div>\n )\n }}\n </Form>\n </div>\n)\nReactDOM.render(<Demo />, _mount_);\n```\n\n### \u8868\u5355\u63d0\u4ea4\n\n\x3c!--rehype:bgWhite=true&codeSandbox=true&codePen=true--\x3e\n```jsx\nimport ReactDOM from 'react-dom';\nimport { Form, Input, Select, Row, Col, Button } from 'uiw';\n\nconst Demo = () => (\n <div>\n <Form\n onSubmit={({initial, current}) => {\n console.log('--\x3e>', initial, current);\n }}\n fields={{\n firstName: {\n labelClassName: 'fieldLabel',\n labelStyle: { width: 60 },\n inline: true,\n label: '\u59d3\u6c0f',\n children: <Input />\n },\n lastName: {\n labelClassName: 'fieldLabel',\n labelStyle: { width: 60 },\n initialValue: '\u5148\u751f',\n inline: true,\n label: '\u540d\u5b57',\n children: <Input />\n },\n email: {\n labelClassName: 'fieldLabel',\n labelStyle: { width: 60 },\n validator: (currentValue) => {\n return currentValue && currentValue.length < 2 ? 'Password must be 8+ characters' : null;\n },\n inline: true,\n label: 'Email',\n children: <Input />\n },\n select: {\n labelClassName: 'fieldLabel',\n labelStyle: { width: 60 },\n inline: true,\n label: '\u9009\u62e9\u5668',\n children: (\n <Select>\n <Select.Option>Choose an item...</Select.Option>\n <Select.Option value=\"1\">One</Select.Option>\n <Select.Option value=\"2\">Two</Select.Option>\n <Select.Option value=\"3\">Three</Select.Option>\n <Select.Option value=\"4\">Four</Select.Option>\n </Select>\n ),\n },\n }}\n >\n {({ fields, state, canSubmit }) => {\n console.log('fields:', state);\n return (\n <div>\n <Row gutter={10} style={{ marginBottom: 10 }}>\n <Col>{fields.firstName}</Col>\n <Col>{fields.lastName}</Col>\n </Row>\n <Row gutter={10}>\n <Col>{fields.email}</Col>\n <Col>{fields.select}</Col>\n </Row>\n <Row gutter={10}>\n <Col />\n <Col fixed align=\"bottom\"><Button disabled={!canSubmit()} type=\"primary\" htmlType=\"submit\">\u63d0\u4ea4</Button></Col>\n </Row>\n </div>\n )\n }}\n </Form>\n </div>\n)\nReactDOM.render(<Demo />, _mount_);\n```\n\n\n### \u81ea\u5b9a\u4e49\u63a7\u4ef6\u5e94\u7528\n\n\u4e0b\u9762\u5b9e\u4f8b\u662f\u5728 [`<Form />`](#/components/form) \u8868\u5355\u7ec4\u4ef6\u4e2d\uff0c\u5e94\u7528\u81ea\u5b9a\u4e49 `<CustomSelect />` \u63a7\u4ef6\u7ec4\u4ef6\u3002\n\n> \u26a0\ufe0f \u6ce8\u610f\uff0c\u81ea\u5b9a\u4e49\u63a7\u4ef6\u9700\u8981\u4e24\u4e2a\u5fc5\u8981\u7684 `props` \u53c2\u6570\uff0c`value` \u548c `onChange`\n\x3c!--rehype:style=border-left: 8px solid #ffe564;background-color: #ffe56440;padding: 12px 16px;--\x3e\n\n- `value` \u7528\u4e8e\u503c\u4f20\u9012\uff0c\n- `onChange(value)` \u7528\u4e8e\u503c\u53d8\u66f4\u9700\u8981\u6267\u884c\u7684\u56de\u8c03\u51fd\u6570\uff0c\u56de\u8c03\u51fd\u6570\u7b2c\u4e00\u4e2a\u53c2\u6570\u5fc5\u987b\u662f `value`\u3002\n\n\x3c!--rehype:bgWhite=true&codeSandbox=true&codePen=true--\x3e\n```jsx\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport { Form, Row, Col, Dropdown, Menu, Icon, Button, Notify } from 'uiw';\n\n// \u81ea\u5b9a\u4e49\u7ec4\u4ef6\nfunction CustomSelect(props) {\n const { option = [], onChange } = props;\n const [value, setValue] = React.useState(props.value);\n const [isOpen, setIsOpen] = React.useState(false);\n\n React.useEffect(() => {\n if (value !== props.value) {\n setValue(props.value);\n }\n }, [props.value]);\n const label = option.find(item => value === item.value);\n return (\n <Dropdown\n trigger=\"click\"\n onVisibleChange={(open) => setIsOpen(open)}\n isOpen={isOpen}\n menu={\n <Menu bordered style={{ minWidth: 120 }}>\n {option.map((item, idx) => (\n <Menu.Item active={value === item.value} key={idx} text={item.label}\n onClick={() => {\n setValue(item.value);\n setIsOpen(false)\n onChange && onChange(item.value);\n }}\n />\n ))}\n </Menu>\n }\n >\n <Button\n style={{\n boxShadow: 'inset 0 0 0 1px rgba(16, 22, 26, 0.2), inset 0 -1px 0 rgba(16, 22, 26, 0.1)'\n }}\n type=\"link\"\n >\n {label.label}<Icon type={isOpen ? 'up' : 'down'} />\n </Button>\n </Dropdown>\n );\n}\n\n// \u81ea\u5b9a\u4e49\u7ec4\u4ef6\u5e94\u7528\u5b9e\u4f8b\nconst Demo = () => (\n <div>\n <Form\n onSubmitError={(error) => {\n if (error.filed) {\n return { ...error.filed };\n }\n return null;\n }}\n onSubmit={({initial, current}) => {\n console.log('~~~', current);\n const errorObj = {};\n if (!current.select) {\n errorObj.select = '\u5185\u5bb9\u4e3a\u7a7a\uff0c\u8bf7\u8f93\u5165\u5185\u5bb9';\n }\n if(Object.keys(errorObj).length > 0) {\n const err = new Error();\n err.filed = errorObj;\n Notify.error({ title: '\u63d0\u4ea4\u5931\u8d25\uff01', description: '\u8bf7\u786e\u8ba4\u63d0\u4ea4\u8868\u5355\u662f\u5426\u6b63\u786e\uff01' });\n throw err;\n }\n Notify.success({\n title: '\u63d0\u4ea4\u6210\u529f\uff01',\n description: `\u8868\u5355\u63d0\u4ea4\u6210\u529f\uff0c\u5185\u5bb9\u4e3a\uff1a${current.select}\uff0c\u5c06\u81ea\u52a8\u586b\u5145\u521d\u59cb\u5316\u503c\uff01`,\n });\n }}\n fields={{\n select: {\n initialValue: 0,\n children: (\n <CustomSelect option={[\n { label: '\u8bf7\u9009\u62e9', value: 0 },\n { label: '\u7ecf\u6d4e\u8231', value: 1 },\n { label: '\u8c6a\u534e\u7ecf\u6d4e\u8231', value: 2 },\n { label: '\u5546\u52a1\u8231', value: 3 },\n { label: '\u5934\u7b49\u8231', value: 4 },\n ]} />\n )\n },\n }}\n >\n {({ fields, state, canSubmit }) => {\n return (\n <div>\n <Row>\n <Col style={{ maxWidth: 300 }}>{fields.select}</Col>\n </Row>\n <Row>\n <Col fixed>\n <Button disabled={!canSubmit()} type=\"primary\" htmlType=\"submit\">\u63d0\u4ea4</Button>\n </Col>\n </Row>\n </div>\n )\n }}\n </Form>\n </div>\n)\nReactDOM.render(<Demo />, _mount_);\n```\n\n### FormItem \u7ad6\u6392\n\n\u5bf9\u7ec4\u4ef6 `FormItem` \u7ad6\u6392\u5c55\u793a\u793a\u4f8b\u3002\n\n> \u26a0\ufe0f \u6ce8\u610f\uff1a`FormItem` \u7ec4\u4ef6\u53ea\u5728 `Form` \u7ec4\u4ef6\u4e2d\u4f7f\u7528\uff0c\u5728 `@v4.10.4+` \u4ee5\u4e0a\u7248\u672c\u53ef\u4ee5\u5f53\u666e\u901a `form` \u4f7f\u7528\u3002\n\x3c!--rehype:style=border-left: 8px solid #ffe564;background-color: #ffe56440;padding: 12px 16px;--\x3e\n\n\x3c!--rehype:bgWhite=true&codeSandbox=true&codePen=true--\x3e\n```jsx\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport { Form, FormItem, Button } from 'uiw';\n\nconst Demo = () => {\n const [formData, setFormData] = React.useState({});\n const handleSubmit = (_, e) => {\n e && e.preventDefault();\n const fData = new FormData(e.target);\n const data = {};\n fData.forEach((value, key) => { data[key] = value; });\n setFormData(data);\n }\n return (\n <Form onSubmit={handleSubmit} onReset={() => setFormData({})}>\n <FormItem\n label=\"\u53ef\u9009\u5b57\u6bb5\"\n labelFor=\"item-basic-input\"\n help={<span>\u5728\u4e0a\u9762\u7684\u5b57\u6bb5\u4e2d\u8f93\u5165\u4e00\u4e2a\u503c</span>}\n >\n <Input id=\"item-basic-input\" name=\"basic\" type=\"text\"/>\n </FormItem>\n <FormItem\n label=\"\u7528\u6237\u540d\"\n labelFor=\"item-username-input\"\n help={(!formData.username || formData.username.length < 8) ? \"\u7528\u6237\u540d\u957f\u5ea6\u81f3\u5c11\u4e3a8\u4e2a\u5b57\u7b26\u4e32\u3002\" : \"\u7528\u6237\u540d\u6b63\u786e \u221a \"}\n hasError={(!formData.username || formData.username.length < 8)}\n >\n <Input id=\"item-username-input\" name=\"username\" type=\"text\"/>\n </FormItem>\n <FormItem>\n <Button type=\"success\" htmlType=\"submit\"> Submit </Button>\n <Button type=\"light\" htmlType=\"reset\"> Reset </Button>\n </FormItem>\n <pre>\n {JSON.stringify(formData, null, 2)}\n </pre>\n </Form>\n );\n}\nReactDOM.render(<Demo />, _mount_);\n```\n\n### FormItem \u6a2a\u6392\n\n\u5bf9\u7ec4\u4ef6 `FormItem` \u6a2a\u6392\u5c55\u793a\u793a\u4f8b\u3002\n\n> \u26a0\ufe0f \u6ce8\u610f\uff1a`FormItem` \u7ec4\u4ef6\u53ea\u5728 `Form` \u7ec4\u4ef6\u4e2d\u4f7f\u7528\uff0c\u5728 `@v4.10.4+` \u4ee5\u4e0a\u7248\u672c\u53ef\u4ee5\u5f53\u666e\u901a `form` \u4f7f\u7528\u3002\n\x3c!--rehype:style=border-left: 8px solid #ffe564;background-color: #ffe56440;padding: 12px 16px;--\x3e\n\n\x3c!--rehype:bgWhite=true&codeSandbox=true&codePen=true--\x3e\n```jsx\nimport ReactDOM from 'react-dom';\nimport { Form, FormItem } from 'uiw';\n\nconst Demo = () => (\n <Form>\n <FormItem\n inline={true}\n label=\"\u53ef\u9009\u5b57\u6bb5\"\n labelFor=\"basic-input-inline\"\n help={<span>\u5728\u4e0a\u9762\u7684\u5b57\u6bb5\u4e2d\u8f93\u5165\u4e00\u4e2a\u503c</span>}\n onChange={() => {\n console.log('TEST::');\n }}\n >\n <Input id=\"basic-input-inline\" name=\"basic\" type=\"text\"/>\n </FormItem>\n <FormItem\n inline={true}\n label=\"\u7528\u6237\u540d\"\n labelFor=\"username-input-inline\"\n labelClassName=\"username\"\n help=\"\u7528\u6237\u540d\u957f\u5ea6\u81f3\u5c11\u4e3a8\u4e2a\u5b57\u7b26\u4e32\u3002\"\n hasError={true}\n >\n <Input id=\"username-input-inline\" name=\"username\" type=\"text\"/>\n </FormItem>\n </Form>\n)\nReactDOM.render(<Demo />, _mount_);\n```\n\n## Form\n\n| \u53c2\u6570 | \u8bf4\u660e | \u7c7b\u578b | \u9ed8\u8ba4\u503c |\n|--------- |-------- |--------- |-------- |\n| fields | \u8bbe\u7f6e\u5b57\u6bb5 | object | - |\n| children | \u56de\u8c03 {`fields`, `state`, `canSubmit`, `resetForm`} | function | - |\n| onSubmit | \u63d0\u4ea4\u8868\u5355\u65f6\u8c03\u7528 | `(state: FormSubmitProps, event: React.FormEvent) => any` | - |\n| afterSubmit `@3.0.0+` | \u63d0\u4ea4\u56de\u8c03 {`initial`, `current`} | function({ initial, current }) | - |\n| onChange | \u8868\u5355\u53d1\u751f\u6539\u53d8\u56de\u8c03\u51fd\u6570 {`initial`, `current`} | function({ initial, current }) | - |\n| onSubmitError | \u8c03\u7528 `onSubmit` \u629b\u51fa\u7684\u4efb\u4f55\u9519\u8bef\u3002\u4ece\u5b57\u6bb5\u540d\u79f0\u8fd4\u56de\u5bf9\u8c61\u6620\u5c04\u3002 | function | - |\n| resetOnSubmit | \u5728 `onSubmit` \u6210\u529f\u540e\u5c06\u8868\u5355\u91cd\u7f6e\u4e3a\u5176\u521d\u59cb\u72b6\u6001\u3002| bool | `true` |\n\n```js\n// => fields props\n{\n firstName: {\n initialValue: '\u738b',\n inline: true,\n label: '\u59d3',\n labelClassName: 'fieldLabel',\n labelStyle: { width: 60 },\n // \u9a8c\u8bc1\uff0c\u901a\u8fc7 `canSubmit()` \u65b9\u6cd5\u83b7\u5f97\uff0c\u63d0\u4ea4\u6309\u94ae\u662f\u5426\u88ab\u7981\u7528\n validator: (currentValue) => {},\n help: '\u5e2e\u52a9\u63d0\u793a\u4fe1\u606f\uff01',\n children: <Input type=\"number\" />\n },\n}\n```\n\n## FormItem\n\n| \u53c2\u6570 | \u8bf4\u660e | \u7c7b\u578b | \u9ed8\u8ba4\u503c |\n|--------- |-------- |--------- |-------- |\n| label | \u8868\u5355\u6807\u9898\u5c55\u793a | string | - |\n| required | \u8868\u5355\u662f\u5426\u5fc5\u586b\u6807\u8bc6 | boolean | - |\n| labelClassName | \u8868\u5355\u6807\u9898\u6837\u5f0f\u540d\u79f0 | string | - |\n| labelStyle | \u8868\u5355\u6807\u9898\u6837\u5f0f | object | - |\n| labelFor | \u5217\u7684\u5bbd\u5ea6\u76f8\u5bf9\u4e8e\u540c\u4e00\u7f51\u683c\u4e2d\u5176\u4ed6\u5217\u7684\u6bd4\u7387 | number | - |\n| help | \u63d0\u793a\u4fe1\u606f | ReactNode | - |\n| hasError | \u5982\u679c\u4e3atrue\uff0c\u5219\u5e94\u7528\u9519\u8befCSS\u3002\u8f6c\u52a8\u8fb9\u6846\u5e76\u5e2e\u52a9\u6587\u5b57\u53d8\u7ea2\u3002 | number | - |\n"}}]);
|
|
2
|
+
//# sourceMappingURL=6566.5503166a.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"static/js/6566.3c91cbc8.chunk.js","mappings":"gHAAA","sources":["../../packages/react-form/README.md"],"sourcesContent":["export default \"Form 表单\\n===\\n\\n[](https://uiwjs.github.io/npm-unpkg/#/pkg/@uiw/react-form/file/README.md)\\n[](https://www.npmjs.com/package/@uiw/react-form)\\n[](https://npmjs.com/@uiw/react-form)\\n\\n由输入框、选择器、单选框、多选框等控件组成,用以收集、校验、提交数据。\\n\\n```jsx\\nimport { Form, FormItem } from 'uiw';\\n// or\\nimport { Form, FormItem } from '@uiw/react-form';\\n```\\n\\n### 基本用法\\n\\n<!--rehype:bgWhite=true&codeSandbox=true&codePen=true-->\\n```jsx\\n\\nimport React, { useState, useRef } from \\\"react\\\";\\nimport ReactDOM from 'react-dom';\\nimport { Form, Input, Row, Col, Slider, Button, Notify } from 'uiw';\\n\\nfunction Demo() {\\n const form = useRef()\\n\\n const onSubmit = () => {\\n form.current.onSubmit()\\n }\\n const resetForm = () => {\\n form.current.resetForm()\\n }\\n const getFieldValues = () => {\\n console.log('getFieldValues', form.current.getFieldValues())\\n }\\n\\n return (\\n <div>\\n <Form\\n ref={form}\\n onChange={({ initial, current }) => {\\n console.log('onChange', initial, current);\\n }}\\n onSubmit={({ initial, current }) => {\\n if (current.name === initial.name) {\\n Notify.error({\\n title: '提交失败!',\\n description: `表单提交内容为空!`,\\n });\\n } else {\\n Notify.success({\\n title: '提交成功!',\\n description: `姓名为:${current.name},提交完成,将自动填充初始化值!`,\\n });\\n }\\n }}\\n fields={{\\n name: {\\n label: '姓名',\\n children: <Input placeholder=\\\"请输入姓名\\\" />\\n },\\n }}\\n >\\n {({ fields, state, canSubmit }) => {\\n return (\\n <div>\\n <Row>\\n <Col style={{ maxWidth: 300 }}>{fields.name}</Col>\\n </Row>\\n <Row>\\n <Col>\\n <Button disabled={!canSubmit()} type=\\\"primary\\\" htmlType=\\\"submit\\\">提交</Button>\\n </Col>\\n </Row>\\n <Row>\\n <Col>\\n {JSON.stringify(state.current)}\\n </Col>\\n </Row>\\n </div>\\n )\\n }}\\n </Form>\\n <Button type=\\\"primary\\\" onClick={onSubmit} >submit</Button>\\n <Button type=\\\"primary\\\" onClick={resetForm}>resetForm</Button>\\n <Button type=\\\"primary\\\" onClick={getFieldValues}>getValues</Button>\\n </div>\\n )\\n}\\nReactDOM.render(<Demo />, _mount_);\\n```\\n\\n### 自定义校验\\n\\n一般校验可不需引入外部包解决,如果遇到大型工程表单比较多的地方推荐使用 [jquense/yup](https://github.com/jquense/yup)\\n\\n<!--rehype:bgWhite=true&codeSandbox=true&codePen=true-->\\n```jsx\\nimport ReactDOM from 'react-dom';\\nimport { Form, Input, Notify, Checkbox, Switch, RadioGroup, Radio, Textarea, Row, Col, Button } from 'uiw';\\n\\nconst Demo = () => (\\n <Form\\n onSubmit={({initial, current}) => {\\n const errorObj = {};\\n if (current.userName.startsWith('u')) {\\n errorObj.userName = `姓名 ${current.userName} 不能以 ‘u’ 开头`;\\n }\\n if (!current.checkboxOne) {\\n errorObj.checkboxOne = '一个多选条件 为必填';\\n }\\n if (!current.terms) {\\n errorObj.terms = '必须统一服务条款';\\n }\\n if(Object.keys(errorObj).length > 0) {\\n const err = new Error();\\n err.filed = errorObj;\\n throw err;\\n }\\n Notify.success({\\n title: '提交成功!',\\n description: `姓名为:${current.userName},提交完成,将自动填充初始化值!`,\\n });\\n }}\\n onSubmitError={(error) => {\\n if (error.filed) {\\n return { ...error.filed };\\n }\\n return null;\\n }}\\n fields={{\\n userName: {\\n initialValue: 'uiw',\\n label: '姓名',\\n children: <Input type=\\\"text\\\" />,\\n help: '以“u”开头的名字将在此处显示错误信息'\\n },\\n age: {\\n initialValue: '9',\\n label: '年龄',\\n children: <Input type=\\\"number\\\" />\\n },\\n checkbox: {\\n initialValue: ['四川菜'],\\n label: '选择你想吃的菜',\\n children: (\\n <Checkbox.Group>\\n <div>菜系</div>\\n <Checkbox value=\\\"四川菜\\\">四川菜</Checkbox>\\n <Checkbox value=\\\"湖北菜\\\">湖北菜</Checkbox>\\n <Checkbox value=\\\"西北菜\\\">西北菜</Checkbox>\\n <Checkbox value=\\\"新疆菜\\\">新疆菜</Checkbox>\\n <Checkbox value=\\\"东北菜\\\">东北菜</Checkbox>\\n <div style={{ marginTop: 10 }}>家常菜</div>\\n <Checkbox value=\\\"红烧武昌鱼\\\">红烧武昌鱼</Checkbox>\\n <Checkbox value=\\\"麻婆豆腐\\\">麻婆豆腐</Checkbox>\\n <Checkbox value=\\\"北京烤鸭\\\">北京烤鸭</Checkbox>\\n </Checkbox.Group>\\n )\\n },\\n checkboxOne: {\\n inline: true,\\n label: '一个多选条件',\\n children: <Checkbox value=\\\"1\\\">四川菜</Checkbox>\\n },\\n switch: {\\n inline: true,\\n initialValue: true,\\n label: '开启',\\n children: <Switch size=\\\"small\\\" />\\n },\\n radioGroup: {\\n inline: true,\\n initialValue: '男',\\n label: '单选',\\n children: (\\n <RadioGroup name=\\\"other\\\">\\n <Radio value=\\\"男\\\">男</Radio>\\n <Radio value=\\\"女\\\">女</Radio>\\n <Radio value=\\\"人妖\\\" disabled>人妖</Radio>\\n <Radio value=\\\"未知\\\">未知</Radio>\\n </RadioGroup>\\n )\\n },\\n textarea: {\\n initialValue: '',\\n label: '多行文本输入框',\\n children: <Textarea placeholder=\\\"请输入内容\\\" />\\n },\\n terms: {\\n validator: (currentValue) => {\\n return !currentValue ? '必须统一服务条款' : null;\\n },\\n style: { marginBottom: 0 },\\n children: <Checkbox value=\\\"1\\\">已阅读并同意<a href=\\\"#\\\">服务条款</a></Checkbox>\\n }\\n }}\\n >\\n {({ fields, state, canSubmit, resetForm }) => {\\n console.log('fields:-->', state);\\n return (\\n <div style={{ maxWidth: 500 }}>\\n <Row gutter={10}>\\n <Col>{fields.userName}</Col>\\n <Col>{fields.age}</Col>\\n </Row>\\n <Row gutter={10}>\\n <Col>{fields.checkbox}</Col>\\n <Col>{fields.checkboxOne}</Col>\\n </Row>\\n <Row gutter={10}>\\n <Col>{fields.radioGroup}</Col>\\n </Row>\\n <Row gutter={10}>\\n <Col>{fields.switch}</Col>\\n </Row>\\n <Row gutter={10}>\\n <Col>{fields.textarea}</Col>\\n </Row>\\n <Row gutter={10}>\\n <Col style={{ padding: '5px 0 10px 0' }}>\\n {fields.terms}\\n </Col>\\n </Row>\\n <Row gutter={10}>\\n <Col fixed>\\n <Button disabled={!canSubmit()} type=\\\"primary\\\" htmlType=\\\"submit\\\">提交</Button>\\n <Button type=\\\"light\\\" onClick={resetForm}>重置表单</Button>\\n </Col>\\n </Row>\\n <Row>\\n <Col>\\n <pre style={{ padding: '10px 0 0 10px' }}>\\n {JSON.stringify(state.current, null, 2)}\\n </pre>\\n </Col>\\n </Row>\\n </div>\\n )\\n }}\\n </Form>\\n)\\nReactDOM.render(<Demo />, _mount_);\\n```\\n\\n### 水平登录栏\\n\\n<!--rehype:bgWhite=true&codeSandbox=true&codePen=true-->\\n```jsx\\nimport ReactDOM from 'react-dom';\\nimport { Form, Input, Row, Col, Notify, Button } from 'uiw';\\n\\nconst Demo = () => (\\n <div>\\n <Form\\n onSubmit={({initial, current}) => {\\n const errorObj = {};\\n if (!current.username) {\\n errorObj.username = '用户名不能为空!';\\n }\\n if (!current.password) {\\n errorObj.password = '密码不能为空!';\\n }\\n if(Object.keys(errorObj).length > 0) {\\n const err = new Error();\\n err.filed = errorObj;\\n Notify.error({ title: '提交失败!', description: '请确认提交表单是否正确!' });\\n throw err;\\n }\\n console.log('-->>', initial, current);\\n Notify.success({ title: '提交成功!', description: '恭喜你登录成功!' });\\n }}\\n onSubmitError={(error) => {\\n if (error.filed) {\\n return { ...error.filed };\\n }\\n return null;\\n }}\\n fields={{\\n username: {\\n labelClassName: 'fieldLabel',\\n labelFor: 'username-inline',\\n children: <Input preIcon=\\\"user\\\" id=\\\"username-inline\\\" />\\n },\\n password: {\\n labelClassName: 'fieldLabel',\\n labelFor: 'password-inline',\\n children: <Input preIcon=\\\"lock\\\" id=\\\"password-inline\\\" type=\\\"password\\\" />\\n },\\n }}\\n >\\n {({ fields, state, canSubmit, resetForm }) => {\\n console.log('fields:', state);\\n return (\\n <div>\\n <Row gutter={10}>\\n <Col fixed>{fields.username}</Col>\\n <Col fixed>{fields.password}</Col>\\n </Row>\\n <Row gutter={10}>\\n <Col>\\n <Button disabled={!canSubmit()} type=\\\"primary\\\" htmlType=\\\"submit\\\">提交</Button>\\n <Button type=\\\"danger\\\" onClick={resetForm}>重置表单</Button>\\n </Col>\\n </Row>\\n </div>\\n )\\n }}\\n </Form>\\n </div>\\n);\\nReactDOM.render(<Demo />, _mount_);\\n```\\n\\n## 登录\\n\\n<!--rehype:bgWhite=true&codeSandbox=true&codePen=true-->\\n```jsx\\nimport ReactDOM from 'react-dom';\\nimport { Form, Input, Row, Col, Checkbox, Notify, Button } from 'uiw';\\n\\nconst Demo = () => (\\n <div>\\n <Form\\n onSubmit={({initial, current}) => {\\n console.log('-->>', initial, current);\\n }}\\n fields={{\\n username: {\\n labelClassName: 'fieldLabel',\\n labelStyle: { width: 60 },\\n labelFor: 'username',\\n children: <Input preIcon=\\\"user\\\" id=\\\"username\\\" />\\n },\\n password: {\\n labelClassName: 'fieldLabel',\\n labelStyle: { width: 60 },\\n labelFor: 'password',\\n children: <Input preIcon=\\\"lock\\\" id=\\\"password\\\" type=\\\"password\\\" />\\n },\\n terms: {\\n validator: (currentValue) => !currentValue ? '必须统一服务条款' : null,\\n children: <Checkbox value=\\\"1\\\">已阅读并同意</Checkbox>\\n }\\n }}\\n >\\n {({ fields, state, canSubmit }) => {\\n console.log('fields:', state);\\n return (\\n <div>\\n <Row>\\n <Col fixed>{fields.username}</Col>\\n </Row>\\n <Row>\\n <Col fixed>{fields.password}</Col>\\n </Row>\\n <Row>\\n <Col fixed align=\\\"middle\\\">{fields.terms}</Col>\\n <Col fixed style={{ marginTop: -4 }}><a href=\\\"#\\\">服务条款</a></Col>\\n </Row>\\n <Row>\\n <Col fixed>\\n <Button disabled={!canSubmit()} type=\\\"primary\\\" htmlType=\\\"submit\\\">提交</Button>\\n </Col>\\n </Row>\\n </div>\\n )\\n }}\\n </Form>\\n </div>\\n)\\nReactDOM.render(<Demo />, _mount_);\\n```\\n\\n### 表单提交\\n\\n<!--rehype:bgWhite=true&codeSandbox=true&codePen=true-->\\n```jsx\\nimport ReactDOM from 'react-dom';\\nimport { Form, Input, Select, Row, Col, Button } from 'uiw';\\n\\nconst Demo = () => (\\n <div>\\n <Form\\n onSubmit={({initial, current}) => {\\n console.log('-->>', initial, current);\\n }}\\n fields={{\\n firstName: {\\n labelClassName: 'fieldLabel',\\n labelStyle: { width: 60 },\\n inline: true,\\n label: '姓氏',\\n children: <Input />\\n },\\n lastName: {\\n labelClassName: 'fieldLabel',\\n labelStyle: { width: 60 },\\n initialValue: '先生',\\n inline: true,\\n label: '名字',\\n children: <Input />\\n },\\n email: {\\n labelClassName: 'fieldLabel',\\n labelStyle: { width: 60 },\\n validator: (currentValue) => {\\n return currentValue && currentValue.length < 2 ? 'Password must be 8+ characters' : null;\\n },\\n inline: true,\\n label: 'Email',\\n children: <Input />\\n },\\n select: {\\n labelClassName: 'fieldLabel',\\n labelStyle: { width: 60 },\\n inline: true,\\n label: '选择器',\\n children: (\\n <Select>\\n <Select.Option>Choose an item...</Select.Option>\\n <Select.Option value=\\\"1\\\">One</Select.Option>\\n <Select.Option value=\\\"2\\\">Two</Select.Option>\\n <Select.Option value=\\\"3\\\">Three</Select.Option>\\n <Select.Option value=\\\"4\\\">Four</Select.Option>\\n </Select>\\n ),\\n },\\n }}\\n >\\n {({ fields, state, canSubmit }) => {\\n console.log('fields:', state);\\n return (\\n <div>\\n <Row gutter={10} style={{ marginBottom: 10 }}>\\n <Col>{fields.firstName}</Col>\\n <Col>{fields.lastName}</Col>\\n </Row>\\n <Row gutter={10}>\\n <Col>{fields.email}</Col>\\n <Col>{fields.select}</Col>\\n </Row>\\n <Row gutter={10}>\\n <Col />\\n <Col fixed align=\\\"bottom\\\"><Button disabled={!canSubmit()} type=\\\"primary\\\" htmlType=\\\"submit\\\">提交</Button></Col>\\n </Row>\\n </div>\\n )\\n }}\\n </Form>\\n </div>\\n)\\nReactDOM.render(<Demo />, _mount_);\\n```\\n\\n\\n### 自定义控件应用\\n\\n下面实例是在 [`<Form />`](#/components/form) 表单组件中,应用自定义 `<CustomSelect />` 控件组件。\\n\\n> ⚠️ 注意,自定义控件需要两个必要的 `props` 参数,`value` 和 `onChange`\\n<!--rehype:style=border-left: 8px solid #ffe564;background-color: #ffe56440;padding: 12px 16px;-->\\n\\n- `value` 用于值传递,\\n- `onChange(value)` 用于值变更需要执行的回调函数,回调函数第一个参数必须是 `value`。\\n\\n<!--rehype:bgWhite=true&codeSandbox=true&codePen=true-->\\n```jsx\\nimport React from 'react';\\nimport ReactDOM from 'react-dom';\\nimport { Form, Row, Col, Dropdown, Menu, Icon, Button, Notify } from 'uiw';\\n\\n// 自定义组件\\nfunction CustomSelect(props) {\\n const { option = [], onChange } = props;\\n const [value, setValue] = React.useState(props.value);\\n const [isOpen, setIsOpen] = React.useState(false);\\n\\n React.useEffect(() => {\\n if (value !== props.value) {\\n setValue(props.value);\\n }\\n }, [props.value]);\\n const label = option.find(item => value === item.value);\\n return (\\n <Dropdown\\n trigger=\\\"click\\\"\\n onVisibleChange={(open) => setIsOpen(open)}\\n isOpen={isOpen}\\n menu={\\n <Menu bordered style={{ minWidth: 120 }}>\\n {option.map((item, idx) => (\\n <Menu.Item active={value === item.value} key={idx} text={item.label}\\n onClick={() => {\\n setValue(item.value);\\n setIsOpen(false)\\n onChange && onChange(item.value);\\n }}\\n />\\n ))}\\n </Menu>\\n }\\n >\\n <Button\\n style={{\\n boxShadow: 'inset 0 0 0 1px rgba(16, 22, 26, 0.2), inset 0 -1px 0 rgba(16, 22, 26, 0.1)'\\n }}\\n type=\\\"link\\\"\\n >\\n {label.label}<Icon type={isOpen ? 'up' : 'down'} />\\n </Button>\\n </Dropdown>\\n );\\n}\\n\\n// 自定义组件应用实例\\nconst Demo = () => (\\n <div>\\n <Form\\n onSubmitError={(error) => {\\n if (error.filed) {\\n return { ...error.filed };\\n }\\n return null;\\n }}\\n onSubmit={({initial, current}) => {\\n console.log('~~~', current);\\n const errorObj = {};\\n if (!current.select) {\\n errorObj.select = '内容为空,请输入内容';\\n }\\n if(Object.keys(errorObj).length > 0) {\\n const err = new Error();\\n err.filed = errorObj;\\n Notify.error({ title: '提交失败!', description: '请确认提交表单是否正确!' });\\n throw err;\\n }\\n Notify.success({\\n title: '提交成功!',\\n description: `表单提交成功,内容为:${current.select},将自动填充初始化值!`,\\n });\\n }}\\n fields={{\\n select: {\\n initialValue: 0,\\n children: (\\n <CustomSelect option={[\\n { label: '请选择', value: 0 },\\n { label: '经济舱', value: 1 },\\n { label: '豪华经济舱', value: 2 },\\n { label: '商务舱', value: 3 },\\n { label: '头等舱', value: 4 },\\n ]} />\\n )\\n },\\n }}\\n >\\n {({ fields, state, canSubmit }) => {\\n return (\\n <div>\\n <Row>\\n <Col style={{ maxWidth: 300 }}>{fields.select}</Col>\\n </Row>\\n <Row>\\n <Col fixed>\\n <Button disabled={!canSubmit()} type=\\\"primary\\\" htmlType=\\\"submit\\\">提交</Button>\\n </Col>\\n </Row>\\n </div>\\n )\\n }}\\n </Form>\\n </div>\\n)\\nReactDOM.render(<Demo />, _mount_);\\n```\\n\\n### FormItem 竖排\\n\\n对组件 `FormItem` 竖排展示示例。\\n\\n> ⚠️ 注意:`FormItem` 组件只在 `Form` 组件中使用,在 `@v4.10.4+` 以上版本可以当普通 `form` 使用。\\n<!--rehype:style=border-left: 8px solid #ffe564;background-color: #ffe56440;padding: 12px 16px;-->\\n\\n<!--rehype:bgWhite=true&codeSandbox=true&codePen=true-->\\n```jsx\\nimport React from 'react';\\nimport ReactDOM from 'react-dom';\\nimport { Form, FormItem, Button } from 'uiw';\\n\\nconst Demo = () => {\\n const [formData, setFormData] = React.useState({});\\n const handleSubmit = (_, e) => {\\n e && e.preventDefault();\\n const fData = new FormData(e.target);\\n const data = {};\\n fData.forEach((value, key) => { data[key] = value; });\\n setFormData(data);\\n }\\n return (\\n <Form onSubmit={handleSubmit} onReset={() => setFormData({})}>\\n <FormItem\\n label=\\\"可选字段\\\"\\n labelFor=\\\"item-basic-input\\\"\\n help={<span>在上面的字段中输入一个值</span>}\\n >\\n <Input id=\\\"item-basic-input\\\" name=\\\"basic\\\" type=\\\"text\\\"/>\\n </FormItem>\\n <FormItem\\n label=\\\"用户名\\\"\\n labelFor=\\\"item-username-input\\\"\\n help={(!formData.username || formData.username.length < 8) ? \\\"用户名长度至少为8个字符串。\\\" : \\\"用户名正确 √ \\\"}\\n hasError={(!formData.username || formData.username.length < 8)}\\n >\\n <Input id=\\\"item-username-input\\\" name=\\\"username\\\" type=\\\"text\\\"/>\\n </FormItem>\\n <FormItem>\\n <Button type=\\\"success\\\" htmlType=\\\"submit\\\"> Submit </Button>\\n <Button type=\\\"light\\\" htmlType=\\\"reset\\\"> Reset </Button>\\n </FormItem>\\n <pre>\\n {JSON.stringify(formData, null, 2)}\\n </pre>\\n </Form>\\n );\\n}\\nReactDOM.render(<Demo />, _mount_);\\n```\\n\\n### FormItem 横排\\n\\n对组件 `FormItem` 横排展示示例。\\n\\n> ⚠️ 注意:`FormItem` 组件只在 `Form` 组件中使用,在 `@v4.10.4+` 以上版本可以当普通 `form` 使用。\\n<!--rehype:style=border-left: 8px solid #ffe564;background-color: #ffe56440;padding: 12px 16px;-->\\n\\n<!--rehype:bgWhite=true&codeSandbox=true&codePen=true-->\\n```jsx\\nimport ReactDOM from 'react-dom';\\nimport { Form, FormItem } from 'uiw';\\n\\nconst Demo = () => (\\n <Form>\\n <FormItem\\n inline={true}\\n label=\\\"可选字段\\\"\\n labelFor=\\\"basic-input-inline\\\"\\n help={<span>在上面的字段中输入一个值</span>}\\n onChange={() => {\\n console.log('TEST::');\\n }}\\n >\\n <Input id=\\\"basic-input-inline\\\" name=\\\"basic\\\" type=\\\"text\\\"/>\\n </FormItem>\\n <FormItem\\n inline={true}\\n label=\\\"用户名\\\"\\n labelFor=\\\"username-input-inline\\\"\\n labelClassName=\\\"username\\\"\\n help=\\\"用户名长度至少为8个字符串。\\\"\\n hasError={true}\\n >\\n <Input id=\\\"username-input-inline\\\" name=\\\"username\\\" type=\\\"text\\\"/>\\n </FormItem>\\n </Form>\\n)\\nReactDOM.render(<Demo />, _mount_);\\n```\\n\\n## Form\\n\\n| 参数 | 说明 | 类型 | 默认值 |\\n|--------- |-------- |--------- |-------- |\\n| fields | 设置字段 | object | - |\\n| children | 回调 {`fields`, `state`, `canSubmit`, `resetForm`} | function | - |\\n| onSubmit | 提交表单时调用 | `(state: FormSubmitProps, event: React.FormEvent) => any` | - |\\n| afterSubmit `@3.0.0+` | 提交回调 {`initial`, `current`} | function({ initial, current }) | - |\\n| onChange | 表单发生改变回调函数 {`initial`, `current`} | function({ initial, current }) | - |\\n| onSubmitError | 调用 `onSubmit` 抛出的任何错误。从字段名称返回对象映射。 | function | - |\\n| resetOnSubmit | 在 `onSubmit` 成功后将表单重置为其初始状态。| bool | `true` |\\n\\n```js\\n// => fields props\\n{\\n firstName: {\\n initialValue: '王',\\n inline: true,\\n label: '姓',\\n labelClassName: 'fieldLabel',\\n labelStyle: { width: 60 },\\n // 验证,通过 `canSubmit()` 方法获得,提交按钮是否被禁用\\n validator: (currentValue) => {},\\n help: '帮助提示信息!',\\n children: <Input type=\\\"number\\\" />\\n },\\n}\\n```\\n\\n## FormItem\\n\\n| 参数 | 说明 | 类型 | 默认值 |\\n|--------- |-------- |--------- |-------- |\\n| label | 表单标题展示 | string | - |\\n| labelClassName | 表单标题样式名称 | string | - |\\n| labelStyle | 表单标题样式 | object | - |\\n| labelFor | 列的宽度相对于同一网格中其他列的比率 | number | - |\\n| help | 提示信息 | ReactNode | - |\\n| hasError | 如果为true,则应用错误CSS。转动边框并帮助文字变红。 | number | - |\\n\";"],"names":[],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"static/js/6566.5503166a.chunk.js","mappings":"gHAAA","sources":["../../packages/react-form/README.md"],"sourcesContent":["export default \"Form 表单\\n===\\n\\n[](https://uiwjs.github.io/npm-unpkg/#/pkg/@uiw/react-form/file/README.md)\\n[](https://www.npmjs.com/package/@uiw/react-form)\\n[](https://npmjs.com/@uiw/react-form)\\n\\n由输入框、选择器、单选框、多选框等控件组成,用以收集、校验、提交数据。\\n\\n```jsx\\nimport { Form, FormItem } from 'uiw';\\n// or\\nimport { Form, FormItem } from '@uiw/react-form';\\n```\\n\\n### 基本用法\\n\\n<!--rehype:bgWhite=true&codeSandbox=true&codePen=true-->\\n```jsx\\n\\nimport React, { useState, useRef } from \\\"react\\\";\\nimport ReactDOM from 'react-dom';\\nimport { Form, Input, Row, Col, Slider, Button, Notify } from 'uiw';\\n\\nfunction Demo() {\\n const form = useRef()\\n\\n const onSubmit = () => {\\n form.current.onSubmit()\\n }\\n const resetForm = () => {\\n form.current.resetForm()\\n }\\n const getFieldValues = () => {\\n console.log('getFieldValues', form.current.getFieldValues())\\n }\\n\\n return (\\n <div>\\n <Form\\n ref={form}\\n onChange={({ initial, current }) => {\\n console.log('onChange', initial, current);\\n }}\\n onSubmit={({ initial, current }) => {\\n if (current.name === initial.name) {\\n Notify.error({\\n title: '提交失败!',\\n description: `表单提交内容为空!`,\\n });\\n } else {\\n Notify.success({\\n title: '提交成功!',\\n description: `姓名为:${current.name},提交完成,将自动填充初始化值!`,\\n });\\n }\\n }}\\n fields={{\\n name: {\\n label: '姓名',\\n children: <Input placeholder=\\\"请输入姓名\\\" />\\n },\\n }}\\n >\\n {({ fields, state, canSubmit }) => {\\n return (\\n <div>\\n <Row>\\n <Col style={{ maxWidth: 300 }}>{fields.name}</Col>\\n </Row>\\n <Row>\\n <Col>\\n <Button disabled={!canSubmit()} type=\\\"primary\\\" htmlType=\\\"submit\\\">提交</Button>\\n </Col>\\n </Row>\\n <Row>\\n <Col>\\n {JSON.stringify(state.current)}\\n </Col>\\n </Row>\\n </div>\\n )\\n }}\\n </Form>\\n <Button type=\\\"primary\\\" onClick={onSubmit} >submit</Button>\\n <Button type=\\\"primary\\\" onClick={resetForm}>resetForm</Button>\\n <Button type=\\\"primary\\\" onClick={getFieldValues}>getValues</Button>\\n </div>\\n )\\n}\\nReactDOM.render(<Demo />, _mount_);\\n```\\n\\n### 自定义校验\\n\\n一般校验可不需引入外部包解决,如果遇到大型工程表单比较多的地方推荐使用 [jquense/yup](https://github.com/jquense/yup)\\n\\n<!--rehype:bgWhite=true&codeSandbox=true&codePen=true-->\\n```jsx\\nimport ReactDOM from 'react-dom';\\nimport { Form, Input, Notify, Checkbox, Switch, RadioGroup, Radio, Textarea, Row, Col, Button } from 'uiw';\\n\\nconst Demo = () => (\\n <Form\\n onSubmit={({initial, current}) => {\\n const errorObj = {};\\n if (current.userName.startsWith('u')) {\\n errorObj.userName = `姓名 ${current.userName} 不能以 ‘u’ 开头`;\\n }\\n if (!current.checkboxOne) {\\n errorObj.checkboxOne = '一个多选条件 为必填';\\n }\\n if (!current.terms) {\\n errorObj.terms = '必须统一服务条款';\\n }\\n if(Object.keys(errorObj).length > 0) {\\n const err = new Error();\\n err.filed = errorObj;\\n throw err;\\n }\\n Notify.success({\\n title: '提交成功!',\\n description: `姓名为:${current.userName},提交完成,将自动填充初始化值!`,\\n });\\n }}\\n onSubmitError={(error) => {\\n if (error.filed) {\\n return { ...error.filed };\\n }\\n return null;\\n }}\\n fields={{\\n userName: {\\n initialValue: 'uiw',\\n label: '姓名',\\n children: <Input type=\\\"text\\\" />,\\n help: '以“u”开头的名字将在此处显示错误信息'\\n },\\n age: {\\n initialValue: '9',\\n label: '年龄',\\n children: <Input type=\\\"number\\\" />\\n },\\n checkbox: {\\n initialValue: ['四川菜'],\\n label: '选择你想吃的菜',\\n children: (\\n <Checkbox.Group>\\n <div>菜系</div>\\n <Checkbox value=\\\"四川菜\\\">四川菜</Checkbox>\\n <Checkbox value=\\\"湖北菜\\\">湖北菜</Checkbox>\\n <Checkbox value=\\\"西北菜\\\">西北菜</Checkbox>\\n <Checkbox value=\\\"新疆菜\\\">新疆菜</Checkbox>\\n <Checkbox value=\\\"东北菜\\\">东北菜</Checkbox>\\n <div style={{ marginTop: 10 }}>家常菜</div>\\n <Checkbox value=\\\"红烧武昌鱼\\\">红烧武昌鱼</Checkbox>\\n <Checkbox value=\\\"麻婆豆腐\\\">麻婆豆腐</Checkbox>\\n <Checkbox value=\\\"北京烤鸭\\\">北京烤鸭</Checkbox>\\n </Checkbox.Group>\\n )\\n },\\n checkboxOne: {\\n inline: true,\\n label: '一个多选条件',\\n children: <Checkbox value=\\\"1\\\">四川菜</Checkbox>\\n },\\n switch: {\\n inline: true,\\n initialValue: true,\\n label: '开启',\\n children: <Switch size=\\\"small\\\" />\\n },\\n radioGroup: {\\n inline: true,\\n initialValue: '男',\\n label: '单选',\\n children: (\\n <RadioGroup name=\\\"other\\\">\\n <Radio value=\\\"男\\\">男</Radio>\\n <Radio value=\\\"女\\\">女</Radio>\\n <Radio value=\\\"人妖\\\" disabled>人妖</Radio>\\n <Radio value=\\\"未知\\\">未知</Radio>\\n </RadioGroup>\\n )\\n },\\n textarea: {\\n initialValue: '',\\n label: '多行文本输入框',\\n children: <Textarea placeholder=\\\"请输入内容\\\" />\\n },\\n terms: {\\n validator: (currentValue) => {\\n return !currentValue ? '必须统一服务条款' : null;\\n },\\n style: { marginBottom: 0 },\\n children: <Checkbox value=\\\"1\\\">已阅读并同意<a href=\\\"#\\\">服务条款</a></Checkbox>\\n }\\n }}\\n >\\n {({ fields, state, canSubmit, resetForm }) => {\\n console.log('fields:-->', state);\\n return (\\n <div style={{ maxWidth: 500 }}>\\n <Row gutter={10}>\\n <Col>{fields.userName}</Col>\\n <Col>{fields.age}</Col>\\n </Row>\\n <Row gutter={10}>\\n <Col>{fields.checkbox}</Col>\\n <Col>{fields.checkboxOne}</Col>\\n </Row>\\n <Row gutter={10}>\\n <Col>{fields.radioGroup}</Col>\\n </Row>\\n <Row gutter={10}>\\n <Col>{fields.switch}</Col>\\n </Row>\\n <Row gutter={10}>\\n <Col>{fields.textarea}</Col>\\n </Row>\\n <Row gutter={10}>\\n <Col style={{ padding: '5px 0 10px 0' }}>\\n {fields.terms}\\n </Col>\\n </Row>\\n <Row gutter={10}>\\n <Col fixed>\\n <Button disabled={!canSubmit()} type=\\\"primary\\\" htmlType=\\\"submit\\\">提交</Button>\\n <Button type=\\\"light\\\" onClick={resetForm}>重置表单</Button>\\n </Col>\\n </Row>\\n <Row>\\n <Col>\\n <pre style={{ padding: '10px 0 0 10px' }}>\\n {JSON.stringify(state.current, null, 2)}\\n </pre>\\n </Col>\\n </Row>\\n </div>\\n )\\n }}\\n </Form>\\n)\\nReactDOM.render(<Demo />, _mount_);\\n```\\n\\n### 水平登录栏\\n\\n<!--rehype:bgWhite=true&codeSandbox=true&codePen=true-->\\n```jsx\\nimport ReactDOM from 'react-dom';\\nimport { Form, Input, Row, Col, Notify, Button } from 'uiw';\\n\\nconst Demo = () => (\\n <div>\\n <Form\\n onSubmit={({initial, current}) => {\\n const errorObj = {};\\n if (!current.username) {\\n errorObj.username = '用户名不能为空!';\\n }\\n if (!current.password) {\\n errorObj.password = '密码不能为空!';\\n }\\n if(Object.keys(errorObj).length > 0) {\\n const err = new Error();\\n err.filed = errorObj;\\n Notify.error({ title: '提交失败!', description: '请确认提交表单是否正确!' });\\n throw err;\\n }\\n console.log('-->>', initial, current);\\n Notify.success({ title: '提交成功!', description: '恭喜你登录成功!' });\\n }}\\n onSubmitError={(error) => {\\n if (error.filed) {\\n return { ...error.filed };\\n }\\n return null;\\n }}\\n fields={{\\n username: {\\n labelClassName: 'fieldLabel',\\n labelFor: 'username-inline',\\n children: <Input preIcon=\\\"user\\\" id=\\\"username-inline\\\" />\\n },\\n password: {\\n labelClassName: 'fieldLabel',\\n labelFor: 'password-inline',\\n children: <Input preIcon=\\\"lock\\\" id=\\\"password-inline\\\" type=\\\"password\\\" />\\n },\\n }}\\n >\\n {({ fields, state, canSubmit, resetForm }) => {\\n console.log('fields:', state);\\n return (\\n <div>\\n <Row gutter={10}>\\n <Col fixed>{fields.username}</Col>\\n <Col fixed>{fields.password}</Col>\\n </Row>\\n <Row gutter={10}>\\n <Col>\\n <Button disabled={!canSubmit()} type=\\\"primary\\\" htmlType=\\\"submit\\\">提交</Button>\\n <Button type=\\\"danger\\\" onClick={resetForm}>重置表单</Button>\\n </Col>\\n </Row>\\n </div>\\n )\\n }}\\n </Form>\\n </div>\\n);\\nReactDOM.render(<Demo />, _mount_);\\n```\\n\\n## 登录\\n\\n<!--rehype:bgWhite=true&codeSandbox=true&codePen=true-->\\n```jsx\\nimport ReactDOM from 'react-dom';\\nimport { Form, Input, Row, Col, Checkbox, Notify, Button } from 'uiw';\\n\\nconst Demo = () => (\\n <div>\\n <Form\\n onSubmit={({initial, current}) => {\\n console.log('-->>', initial, current);\\n }}\\n fields={{\\n username: {\\n labelClassName: 'fieldLabel',\\n labelStyle: { width: 60 },\\n labelFor: 'username',\\n children: <Input preIcon=\\\"user\\\" id=\\\"username\\\" />\\n },\\n password: {\\n labelClassName: 'fieldLabel',\\n labelStyle: { width: 60 },\\n labelFor: 'password',\\n children: <Input preIcon=\\\"lock\\\" id=\\\"password\\\" type=\\\"password\\\" />\\n },\\n terms: {\\n validator: (currentValue) => !currentValue ? '必须统一服务条款' : null,\\n children: <Checkbox value=\\\"1\\\">已阅读并同意</Checkbox>\\n }\\n }}\\n >\\n {({ fields, state, canSubmit }) => {\\n console.log('fields:', state);\\n return (\\n <div>\\n <Row>\\n <Col fixed>{fields.username}</Col>\\n </Row>\\n <Row>\\n <Col fixed>{fields.password}</Col>\\n </Row>\\n <Row>\\n <Col fixed align=\\\"middle\\\">{fields.terms}</Col>\\n <Col fixed style={{ marginTop: -4 }}><a href=\\\"#\\\">服务条款</a></Col>\\n </Row>\\n <Row>\\n <Col fixed>\\n <Button disabled={!canSubmit()} type=\\\"primary\\\" htmlType=\\\"submit\\\">提交</Button>\\n </Col>\\n </Row>\\n </div>\\n )\\n }}\\n </Form>\\n </div>\\n)\\nReactDOM.render(<Demo />, _mount_);\\n```\\n\\n### 表单提交\\n\\n<!--rehype:bgWhite=true&codeSandbox=true&codePen=true-->\\n```jsx\\nimport ReactDOM from 'react-dom';\\nimport { Form, Input, Select, Row, Col, Button } from 'uiw';\\n\\nconst Demo = () => (\\n <div>\\n <Form\\n onSubmit={({initial, current}) => {\\n console.log('-->>', initial, current);\\n }}\\n fields={{\\n firstName: {\\n labelClassName: 'fieldLabel',\\n labelStyle: { width: 60 },\\n inline: true,\\n label: '姓氏',\\n children: <Input />\\n },\\n lastName: {\\n labelClassName: 'fieldLabel',\\n labelStyle: { width: 60 },\\n initialValue: '先生',\\n inline: true,\\n label: '名字',\\n children: <Input />\\n },\\n email: {\\n labelClassName: 'fieldLabel',\\n labelStyle: { width: 60 },\\n validator: (currentValue) => {\\n return currentValue && currentValue.length < 2 ? 'Password must be 8+ characters' : null;\\n },\\n inline: true,\\n label: 'Email',\\n children: <Input />\\n },\\n select: {\\n labelClassName: 'fieldLabel',\\n labelStyle: { width: 60 },\\n inline: true,\\n label: '选择器',\\n children: (\\n <Select>\\n <Select.Option>Choose an item...</Select.Option>\\n <Select.Option value=\\\"1\\\">One</Select.Option>\\n <Select.Option value=\\\"2\\\">Two</Select.Option>\\n <Select.Option value=\\\"3\\\">Three</Select.Option>\\n <Select.Option value=\\\"4\\\">Four</Select.Option>\\n </Select>\\n ),\\n },\\n }}\\n >\\n {({ fields, state, canSubmit }) => {\\n console.log('fields:', state);\\n return (\\n <div>\\n <Row gutter={10} style={{ marginBottom: 10 }}>\\n <Col>{fields.firstName}</Col>\\n <Col>{fields.lastName}</Col>\\n </Row>\\n <Row gutter={10}>\\n <Col>{fields.email}</Col>\\n <Col>{fields.select}</Col>\\n </Row>\\n <Row gutter={10}>\\n <Col />\\n <Col fixed align=\\\"bottom\\\"><Button disabled={!canSubmit()} type=\\\"primary\\\" htmlType=\\\"submit\\\">提交</Button></Col>\\n </Row>\\n </div>\\n )\\n }}\\n </Form>\\n </div>\\n)\\nReactDOM.render(<Demo />, _mount_);\\n```\\n\\n\\n### 自定义控件应用\\n\\n下面实例是在 [`<Form />`](#/components/form) 表单组件中,应用自定义 `<CustomSelect />` 控件组件。\\n\\n> ⚠️ 注意,自定义控件需要两个必要的 `props` 参数,`value` 和 `onChange`\\n<!--rehype:style=border-left: 8px solid #ffe564;background-color: #ffe56440;padding: 12px 16px;-->\\n\\n- `value` 用于值传递,\\n- `onChange(value)` 用于值变更需要执行的回调函数,回调函数第一个参数必须是 `value`。\\n\\n<!--rehype:bgWhite=true&codeSandbox=true&codePen=true-->\\n```jsx\\nimport React from 'react';\\nimport ReactDOM from 'react-dom';\\nimport { Form, Row, Col, Dropdown, Menu, Icon, Button, Notify } from 'uiw';\\n\\n// 自定义组件\\nfunction CustomSelect(props) {\\n const { option = [], onChange } = props;\\n const [value, setValue] = React.useState(props.value);\\n const [isOpen, setIsOpen] = React.useState(false);\\n\\n React.useEffect(() => {\\n if (value !== props.value) {\\n setValue(props.value);\\n }\\n }, [props.value]);\\n const label = option.find(item => value === item.value);\\n return (\\n <Dropdown\\n trigger=\\\"click\\\"\\n onVisibleChange={(open) => setIsOpen(open)}\\n isOpen={isOpen}\\n menu={\\n <Menu bordered style={{ minWidth: 120 }}>\\n {option.map((item, idx) => (\\n <Menu.Item active={value === item.value} key={idx} text={item.label}\\n onClick={() => {\\n setValue(item.value);\\n setIsOpen(false)\\n onChange && onChange(item.value);\\n }}\\n />\\n ))}\\n </Menu>\\n }\\n >\\n <Button\\n style={{\\n boxShadow: 'inset 0 0 0 1px rgba(16, 22, 26, 0.2), inset 0 -1px 0 rgba(16, 22, 26, 0.1)'\\n }}\\n type=\\\"link\\\"\\n >\\n {label.label}<Icon type={isOpen ? 'up' : 'down'} />\\n </Button>\\n </Dropdown>\\n );\\n}\\n\\n// 自定义组件应用实例\\nconst Demo = () => (\\n <div>\\n <Form\\n onSubmitError={(error) => {\\n if (error.filed) {\\n return { ...error.filed };\\n }\\n return null;\\n }}\\n onSubmit={({initial, current}) => {\\n console.log('~~~', current);\\n const errorObj = {};\\n if (!current.select) {\\n errorObj.select = '内容为空,请输入内容';\\n }\\n if(Object.keys(errorObj).length > 0) {\\n const err = new Error();\\n err.filed = errorObj;\\n Notify.error({ title: '提交失败!', description: '请确认提交表单是否正确!' });\\n throw err;\\n }\\n Notify.success({\\n title: '提交成功!',\\n description: `表单提交成功,内容为:${current.select},将自动填充初始化值!`,\\n });\\n }}\\n fields={{\\n select: {\\n initialValue: 0,\\n children: (\\n <CustomSelect option={[\\n { label: '请选择', value: 0 },\\n { label: '经济舱', value: 1 },\\n { label: '豪华经济舱', value: 2 },\\n { label: '商务舱', value: 3 },\\n { label: '头等舱', value: 4 },\\n ]} />\\n )\\n },\\n }}\\n >\\n {({ fields, state, canSubmit }) => {\\n return (\\n <div>\\n <Row>\\n <Col style={{ maxWidth: 300 }}>{fields.select}</Col>\\n </Row>\\n <Row>\\n <Col fixed>\\n <Button disabled={!canSubmit()} type=\\\"primary\\\" htmlType=\\\"submit\\\">提交</Button>\\n </Col>\\n </Row>\\n </div>\\n )\\n }}\\n </Form>\\n </div>\\n)\\nReactDOM.render(<Demo />, _mount_);\\n```\\n\\n### FormItem 竖排\\n\\n对组件 `FormItem` 竖排展示示例。\\n\\n> ⚠️ 注意:`FormItem` 组件只在 `Form` 组件中使用,在 `@v4.10.4+` 以上版本可以当普通 `form` 使用。\\n<!--rehype:style=border-left: 8px solid #ffe564;background-color: #ffe56440;padding: 12px 16px;-->\\n\\n<!--rehype:bgWhite=true&codeSandbox=true&codePen=true-->\\n```jsx\\nimport React from 'react';\\nimport ReactDOM from 'react-dom';\\nimport { Form, FormItem, Button } from 'uiw';\\n\\nconst Demo = () => {\\n const [formData, setFormData] = React.useState({});\\n const handleSubmit = (_, e) => {\\n e && e.preventDefault();\\n const fData = new FormData(e.target);\\n const data = {};\\n fData.forEach((value, key) => { data[key] = value; });\\n setFormData(data);\\n }\\n return (\\n <Form onSubmit={handleSubmit} onReset={() => setFormData({})}>\\n <FormItem\\n label=\\\"可选字段\\\"\\n labelFor=\\\"item-basic-input\\\"\\n help={<span>在上面的字段中输入一个值</span>}\\n >\\n <Input id=\\\"item-basic-input\\\" name=\\\"basic\\\" type=\\\"text\\\"/>\\n </FormItem>\\n <FormItem\\n label=\\\"用户名\\\"\\n labelFor=\\\"item-username-input\\\"\\n help={(!formData.username || formData.username.length < 8) ? \\\"用户名长度至少为8个字符串。\\\" : \\\"用户名正确 √ \\\"}\\n hasError={(!formData.username || formData.username.length < 8)}\\n >\\n <Input id=\\\"item-username-input\\\" name=\\\"username\\\" type=\\\"text\\\"/>\\n </FormItem>\\n <FormItem>\\n <Button type=\\\"success\\\" htmlType=\\\"submit\\\"> Submit </Button>\\n <Button type=\\\"light\\\" htmlType=\\\"reset\\\"> Reset </Button>\\n </FormItem>\\n <pre>\\n {JSON.stringify(formData, null, 2)}\\n </pre>\\n </Form>\\n );\\n}\\nReactDOM.render(<Demo />, _mount_);\\n```\\n\\n### FormItem 横排\\n\\n对组件 `FormItem` 横排展示示例。\\n\\n> ⚠️ 注意:`FormItem` 组件只在 `Form` 组件中使用,在 `@v4.10.4+` 以上版本可以当普通 `form` 使用。\\n<!--rehype:style=border-left: 8px solid #ffe564;background-color: #ffe56440;padding: 12px 16px;-->\\n\\n<!--rehype:bgWhite=true&codeSandbox=true&codePen=true-->\\n```jsx\\nimport ReactDOM from 'react-dom';\\nimport { Form, FormItem } from 'uiw';\\n\\nconst Demo = () => (\\n <Form>\\n <FormItem\\n inline={true}\\n label=\\\"可选字段\\\"\\n labelFor=\\\"basic-input-inline\\\"\\n help={<span>在上面的字段中输入一个值</span>}\\n onChange={() => {\\n console.log('TEST::');\\n }}\\n >\\n <Input id=\\\"basic-input-inline\\\" name=\\\"basic\\\" type=\\\"text\\\"/>\\n </FormItem>\\n <FormItem\\n inline={true}\\n label=\\\"用户名\\\"\\n labelFor=\\\"username-input-inline\\\"\\n labelClassName=\\\"username\\\"\\n help=\\\"用户名长度至少为8个字符串。\\\"\\n hasError={true}\\n >\\n <Input id=\\\"username-input-inline\\\" name=\\\"username\\\" type=\\\"text\\\"/>\\n </FormItem>\\n </Form>\\n)\\nReactDOM.render(<Demo />, _mount_);\\n```\\n\\n## Form\\n\\n| 参数 | 说明 | 类型 | 默认值 |\\n|--------- |-------- |--------- |-------- |\\n| fields | 设置字段 | object | - |\\n| children | 回调 {`fields`, `state`, `canSubmit`, `resetForm`} | function | - |\\n| onSubmit | 提交表单时调用 | `(state: FormSubmitProps, event: React.FormEvent) => any` | - |\\n| afterSubmit `@3.0.0+` | 提交回调 {`initial`, `current`} | function({ initial, current }) | - |\\n| onChange | 表单发生改变回调函数 {`initial`, `current`} | function({ initial, current }) | - |\\n| onSubmitError | 调用 `onSubmit` 抛出的任何错误。从字段名称返回对象映射。 | function | - |\\n| resetOnSubmit | 在 `onSubmit` 成功后将表单重置为其初始状态。| bool | `true` |\\n\\n```js\\n// => fields props\\n{\\n firstName: {\\n initialValue: '王',\\n inline: true,\\n label: '姓',\\n labelClassName: 'fieldLabel',\\n labelStyle: { width: 60 },\\n // 验证,通过 `canSubmit()` 方法获得,提交按钮是否被禁用\\n validator: (currentValue) => {},\\n help: '帮助提示信息!',\\n children: <Input type=\\\"number\\\" />\\n },\\n}\\n```\\n\\n## FormItem\\n\\n| 参数 | 说明 | 类型 | 默认值 |\\n|--------- |-------- |--------- |-------- |\\n| label | 表单标题展示 | string | - |\\n| required | 表单是否必填标识 | boolean | - |\\n| labelClassName | 表单标题样式名称 | string | - |\\n| labelStyle | 表单标题样式 | object | - |\\n| labelFor | 列的宽度相对于同一网格中其他列的比率 | number | - |\\n| help | 提示信息 | ReactNode | - |\\n| hasError | 如果为true,则应用错误CSS。转动边框并帮助文字变红。 | number | - |\\n\";"],"names":[],"sourceRoot":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[6623],{84934:function(e){function n(e){var n=new Error("Cannot find module '"+e+"'");throw n.code="MODULE_NOT_FOUND",n}n.keys=function(){return[]},n.resolve=n,n.id=84934,e.exports=n},86082:function(e,n,t){"use strict";t.d(n,{Z:function(){return v}});var r=t(50189),o=t(53782),i=t(11026),s=t(41473),c=t(
|
|
2
|
-
//# sourceMappingURL=6623.
|
|
1
|
+
(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[6623],{84934:function(e){function n(e){var n=new Error("Cannot find module '"+e+"'");throw n.code="MODULE_NOT_FOUND",n}n.keys=function(){return[]},n.resolve=n,n.id=84934,e.exports=n},86082:function(e,n,t){"use strict";t.d(n,{Z:function(){return v}});var r=t(50189),o=t(53782),i=t(11026),s=t(41473),c=t(64496),d=t(75752),a=t(2642),u=t(69286),l=["version","dependencies","codePen","codeSandbox"];function p(e){var n=e.version,t=e.dependencies,i=e.codePen,s=e.codeSandbox,c=(0,o.Z)(e,l),d=(0,r.Z)({},c);return i&&(d.codePenOption={title:"uiw".concat(n," - demo"),includeModule:["uiw"],js:(d.code||"").replace("_mount_",'document.getElementById("container")'),html:'<div id="container" style="padding: 24px"></div>',css_external:"https://unpkg.com/uiw@".concat(n,"/dist/uiw.min.css"),js_external:"https://unpkg.com/react@17.x/umd/react.development.js;https://unpkg.com/react-dom@17.x/umd/react-dom.development.js;https://unpkg.com/classnames@2.2.6/index.js;https://unpkg.com/uiw@".concat(n,"/dist/uiw.min.js;https://unpkg.com/@uiw/codepen-require-polyfill@1.1.3/index.js")}),s&&(d.codeSandboxOption={files:{"sandbox.config.json":{content:'{\n "template": "node",\n "container": {\n "startScript": "start",\n "node": "14"\n }\n }'},"public/index.html":{content:'<div id="container"></div>'},"src/index.js":{content:(d.code||"").replace("_mount_",'document.getElementById("container")')},".kktrc.js":{content:'import lessModules from "@kkt/less-modules";\nexport default (conf, env, options) => {\nconf = lessModules(conf, env, options);\nreturn conf;\n};'},"package.json":{content:{name:"uiw-demo",description:"uiw v".concat(n," - demo"),dependencies:{react:"^17.0.2","react-dom":"^17.0.2",uiw:"latest"},devDependencies:{"@kkt/less-modules":"~7.1.1",kkt:"~7.1.5"},license:"MIT",scripts:{start:"kkt start",build:"kkt build",test:"kkt test --env=jsdom"},browserslist:[">0.2%","not dead","not ie <= 11","not op_mini all"]}}}}),(0,u.jsx)(a.Z,(0,r.Z)((0,r.Z)({},d),{},{dependencies:t,style:{marginBottom:0}}))}var h=t(31996);function f(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.path,t=/^http/.test(n||"")?n:"https://github.com/uiwjs/uiw/blob/master/".concat(n);return(0,u.jsxs)(s.Fragment,{children:["\u72af\u4e86\u9519\u8bef\u8fd8\u662f\u60f3\u5bf9\u6587\u4ef6\u505a\u51fa\u8d21\u732e\uff1f",t&&(0,u.jsx)("a",{href:t,target:"_blank",rel:"noopener noreferrer",children:"\u5728Github\u4e0a\u7f16\u8f91\u672c\u9875\uff01"}),(0,u.jsx)("br",{}),(0,u.jsx)("a",{href:"https://github.com/uiwjs/uiw/issues",target:"_blank",rel:"noopener noreferrer",children:"\u53cd\u9988\u5efa\u8bae"}),(0,u.jsx)(h.iz,{type:"vertical"}),(0,u.jsx)("a",{target:"_blank",rel:"noopener noreferrer",href:"https://github.com/uiwjs/uiw/issues/new",children:"\u63d0\u4ea4bug"}),(0,u.jsx)(h.iz,{type:"vertical"}),(0,u.jsx)("a",{target:"_blank",rel:"noopener noreferrer",href:"https://github.com/uiwjs/uiw",children:"Github"}),(0,u.jsx)(h.iz,{type:"vertical"}),(0,u.jsx)("a",{target:"_blank",rel:"noopener noreferrer",href:"https://github.com/kktjs/kkt",children:"kkt"}),(0,u.jsx)(h.iz,{type:"vertical"}),(0,u.jsx)("a",{target:"_blank",rel:"noopener noreferrer",href:"https://github.com/kktjs/kkt-ssr",children:"@kkt/ssr"}),(0,u.jsx)(h.iz,{type:"vertical"}),(0,u.jsx)("a",{target:"_blank",rel:"noopener noreferrer",href:"http://uiw.gitee.io",children:"\u56fd\u5185\u955c\u50cf"})]})}var m="index_docinfo__3Vx8S",k="index_markdown__hcQCp",x=["inline","node"],b=function e(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return n.forEach((function(n){"text"===n.type?t+=n.value:n.children&&Array.isArray(n.children)&&(t+=e(n.children))})),t};function v(e){var n=e.renderPage,t=e.dependencies,a=e.path,l=(0,s.useState)(""),h=(0,i.Z)(l,2),v=h[0],j=h[1],g=d.i8||"2.0.0";return(0,s.useEffect)((function(){n&&n().then((function(e){j(e)})).catch((function(){}))}),[]),v?(0,u.jsxs)("div",{children:[(0,u.jsx)(c.Z,{source:v,className:k,components:{code:function(e){var n=e.inline,i=e.node,s=(0,o.Z)(e,x),c=s,d=c.noPreview,a=c.bordered,l=c.noScroll,h=c.bgWhite,f=c.noCode,m=c.codePen,k=c.codeSandbox;if(n)return(0,u.jsx)("code",(0,r.Z)({},s));var v={noPreview:d,bordered:a,noScroll:l,bgWhite:h,noCode:f,codePen:m,codeSandbox:k};return 0===Object.keys(v).filter((function(e){return void 0!==v[e]})).length?(0,u.jsx)("code",(0,r.Z)({},s)):(0,u.jsx)(p,{version:g,code:b(i.children),dependencies:t,noPreview:d,bordered:a,noScroll:l,bgWhite:h,noCode:f,codePen:m,codeSandbox:k})}}}),(0,u.jsx)("div",{className:m,children:(0,u.jsx)(f,{path:a})})]}):null}},20605:function(e,n,t){"use strict";t.r(n),t.d(n,{default:function(){return a}});var r=t(27791),o=t(57135),i=t.n(o),s=(t(41473),t(31996)),c=t(86082),d=t(69286);function a(){return(0,d.jsx)(c.Z,{path:"https://github.com/uiwjs/uiw/tree/master/packages/react-input/README.md",dependencies:{Divider:s.iz,Input:s.II,Form:s.l0,Notify:s.gU,Button:s.zx,Tag:s.Vp,Row:s.X2,Col:s.JX},renderPage:(0,r.Z)(i().mark((function e(){var n;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t.e(5146).then(t.bind(t,5146));case 2:return n=e.sent,e.abrupt("return",n.default||n);case 4:case"end":return e.stop()}}),e)})))})}}}]);
|
|
2
|
+
//# sourceMappingURL=6623.cf061c3e.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"static/js/6623.d0d13abe.chunk.js","mappings":"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","sources":["../../node_modules/@babel/standalone|sync|nonrecursive","components/Markdown/Code.tsx","components/Markdown/Footer.tsx","webpack://website/./src/components/Markdown/index.module.less?6e49","components/Markdown/index.tsx","routes/components/input/index.tsx"],"sourcesContent":["function webpackEmptyContext(req) {\n\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\te.code = 'MODULE_NOT_FOUND';\n\tthrow e;\n}\nwebpackEmptyContext.keys = function() { return []; };\nwebpackEmptyContext.resolve = webpackEmptyContext;\nwebpackEmptyContext.id = 84934;\nmodule.exports = webpackEmptyContext;","import CodePreview, { CodePreviewProps } from '@uiw/react-code-preview';\n\nexport interface CodeProps extends CodePreviewProps {\n code: string;\n version: string;\n codePen: boolean;\n codeSandbox?: boolean;\n dependencies: any;\n}\n\nexport default function Code({ version, dependencies, codePen, codeSandbox, ...other }: CodeProps) {\n const props: CodePreviewProps = { ...other };\n if (codePen) {\n props.codePenOption = {\n title: `uiw${version} - demo`,\n includeModule: ['uiw'],\n js: (props.code || '').replace('_mount_', 'document.getElementById(\"container\")'),\n html: '<div id=\"container\" style=\"padding: 24px\"></div>',\n css_external: `https://unpkg.com/uiw@${version}/dist/uiw.min.css`,\n js_external: `https://unpkg.com/react@17.x/umd/react.development.js;https://unpkg.com/react-dom@17.x/umd/react-dom.development.js;https://unpkg.com/classnames@2.2.6/index.js;https://unpkg.com/uiw@${version}/dist/uiw.min.js;https://unpkg.com/@uiw/codepen-require-polyfill@1.1.3/index.js`,\n };\n }\n if (codeSandbox) {\n props.codeSandboxOption = {\n files: {\n 'sandbox.config.json': {\n content: `{\n \"template\": \"node\",\n \"container\": {\n \"startScript\": \"start\",\n \"node\": \"14\"\n }\n }`,\n },\n 'public/index.html': {\n content: `<div id=\"container\"></div>`,\n },\n 'src/index.js': {\n content: (props.code || '').replace('_mount_', 'document.getElementById(\"container\")'),\n },\n '.kktrc.js': {\n content: `import lessModules from \"@kkt/less-modules\";\\nexport default (conf, env, options) => {\\nconf = lessModules(conf, env, options);\\nreturn conf;\\n};`,\n },\n 'package.json': {\n content: {\n name: 'uiw-demo',\n description: `uiw v${version} - demo`,\n dependencies: {\n react: '^17.0.2',\n 'react-dom': '^17.0.2',\n uiw: 'latest',\n },\n devDependencies: {\n '@kkt/less-modules': '~7.1.1',\n kkt: '~7.1.5',\n },\n license: 'MIT',\n scripts: {\n start: 'kkt start',\n build: 'kkt build',\n test: 'kkt test --env=jsdom',\n },\n browserslist: ['>0.2%', 'not dead', 'not ie <= 11', 'not op_mini all'],\n },\n },\n },\n };\n }\n return <CodePreview {...props} dependencies={dependencies} style={{ marginBottom: 0 }} />;\n}\n","import React, { Fragment } from 'react';\nimport { Divider } from 'uiw';\n\nexport type FooterProps = {\n path?: string;\n};\n\nexport default function (props: FooterProps = {}) {\n const { path } = props;\n const url = /^http/.test(path || '') ? path : `https://github.com/uiwjs/uiw/blob/master/${path}`;\n return (\n <Fragment>\n 犯了错误还是想对文件做出贡献?\n {url && (\n <a href={url} target=\"_blank\" rel=\"noopener noreferrer\">\n 在Github上编辑本页!\n </a>\n )}\n <br />\n <a href=\"https://github.com/uiwjs/uiw/issues\" target=\"_blank\" rel=\"noopener noreferrer\">\n 反馈建议\n </a>\n <Divider type=\"vertical\" />\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/uiwjs/uiw/issues/new\">\n 提交bug\n </a>\n <Divider type=\"vertical\" />\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/uiwjs/uiw\">\n Github\n </a>\n <Divider type=\"vertical\" />\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/kktjs/kkt\">\n kkt\n </a>\n <Divider type=\"vertical\" />\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/kktjs/kkt-ssr\">\n @kkt/ssr\n </a>\n <Divider type=\"vertical\" />\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"http://uiw.gitee.io\">\n 国内镜像\n </a>\n </Fragment>\n );\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"docinfo\":\"index_docinfo__3Vx8S\",\"markdown\":\"index_markdown__hcQCp\"};","import { useEffect, useState } from 'react';\nimport MarkdownPreview from '@uiw/react-markdown-preview';\nimport pkg from 'uiw/package.json';\nimport Code from './Code';\nimport Footer from './Footer';\nimport styles from './index.module.less';\n\nexport type CreatePageProps<T> = {\n dependencies?: T;\n path: string;\n renderPage?: () => Promise<string>;\n};\n\nconst getCodeStr = (data: any[] = [], code: string = '') => {\n data.forEach((node) => {\n if (node.type === 'text') {\n code += node.value;\n } else if (node.children && Array.isArray(node.children)) {\n code += getCodeStr(node.children);\n }\n });\n return code;\n};\n\nexport default function CreatePage<T>(props: CreatePageProps<T>) {\n const { renderPage, dependencies, path } = props;\n const [mdStr, setMdStr] = useState('');\n\n const version = pkg.version || '2.0.0';\n useEffect(() => {\n if (renderPage) {\n renderPage()\n .then((str) => {\n setMdStr(str);\n })\n .catch(() => {});\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n if (!mdStr) {\n return null;\n }\n\n return (\n <div>\n <MarkdownPreview\n source={mdStr}\n className={styles.markdown}\n components={{\n /**\n * bordered 边框\n * bgWhite 设置代码预览背景白色,否则为格子背景。\n * noCode 不显示代码编辑器。\n * noPreview 不显示代码预览效果。\n * noScroll 预览区域不显示滚动条。\n * codePen 显示 Codepen 按钮,要特别注意 包导入的问题,实例中的 import 主要用于 Codepen 使用。\n */\n code: ({ inline, node, ...props }) => {\n const { noPreview, bordered, noScroll, bgWhite, noCode, codePen, codeSandbox } = props as any;\n if (inline) {\n return <code {...props} />;\n }\n const config = {\n noPreview,\n bordered,\n noScroll,\n bgWhite,\n noCode,\n codePen,\n codeSandbox,\n } as any;\n if (Object.keys(config).filter((name) => config[name] !== undefined).length === 0) {\n return <code {...props} />;\n }\n return (\n <Code\n version={version}\n code={getCodeStr(node.children)}\n dependencies={dependencies}\n {...{ noPreview, bordered, noScroll, bgWhite, noCode, codePen, codeSandbox }}\n />\n );\n },\n }}\n />\n <div className={styles.docinfo}>\n <Footer path={path} />\n </div>\n </div>\n );\n}\n","import React from 'react';\nimport { Divider, Input, Form, Notify, Button, Tag, Row, Col } from 'uiw';\nimport Markdown from '../../../components/Markdown';\n\nexport default function Page() {\n return (\n <Markdown\n path=\"https://github.com/uiwjs/uiw/tree/master/packages/react-input/README.md\"\n dependencies={{ Divider, Input, Form, Notify, Button, Tag, Row, Col }}\n renderPage={async () => {\n const md = await import('uiw/node_modules/@uiw/react-input/README.md');\n return md.default || md;\n }}\n />\n );\n}\n"],"names":["webpackEmptyContext","req","e","Error","code","keys","resolve","id","module","exports","Code","version","dependencies","codePen","codeSandbox","other","props","codePenOption","title","includeModule","js","replace","html","css_external","js_external","codeSandboxOption","files","content","name","description","react","uiw","devDependencies","kkt","license","scripts","start","build","test","browserslist","style","marginBottom","path","url","Fragment","href","target","rel","type","getCodeStr","data","forEach","node","value","children","Array","isArray","CreatePage","renderPage","useState","mdStr","setMdStr","pkg","useEffect","then","str","catch","source","className","styles","components","inline","noPreview","bordered","noScroll","bgWhite","noCode","config","Object","filter","undefined","length","Footer","Page","Divider","Input","Form","Notify","Button","Tag","Row","Col","md","default"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"static/js/6623.cf061c3e.chunk.js","mappings":"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","sources":["../../node_modules/@babel/standalone|sync|nonrecursive","components/Markdown/Code.tsx","components/Markdown/Footer.tsx","webpack://website/./src/components/Markdown/index.module.less?6e49","components/Markdown/index.tsx","routes/components/input/index.tsx"],"sourcesContent":["function webpackEmptyContext(req) {\n\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\te.code = 'MODULE_NOT_FOUND';\n\tthrow e;\n}\nwebpackEmptyContext.keys = function() { return []; };\nwebpackEmptyContext.resolve = webpackEmptyContext;\nwebpackEmptyContext.id = 84934;\nmodule.exports = webpackEmptyContext;","import CodePreview, { CodePreviewProps } from '@uiw/react-code-preview';\n\nexport interface CodeProps extends CodePreviewProps {\n code: string;\n version: string;\n codePen: boolean;\n codeSandbox?: boolean;\n dependencies: any;\n}\n\nexport default function Code({ version, dependencies, codePen, codeSandbox, ...other }: CodeProps) {\n const props: CodePreviewProps = { ...other };\n if (codePen) {\n props.codePenOption = {\n title: `uiw${version} - demo`,\n includeModule: ['uiw'],\n js: (props.code || '').replace('_mount_', 'document.getElementById(\"container\")'),\n html: '<div id=\"container\" style=\"padding: 24px\"></div>',\n css_external: `https://unpkg.com/uiw@${version}/dist/uiw.min.css`,\n js_external: `https://unpkg.com/react@17.x/umd/react.development.js;https://unpkg.com/react-dom@17.x/umd/react-dom.development.js;https://unpkg.com/classnames@2.2.6/index.js;https://unpkg.com/uiw@${version}/dist/uiw.min.js;https://unpkg.com/@uiw/codepen-require-polyfill@1.1.3/index.js`,\n };\n }\n if (codeSandbox) {\n props.codeSandboxOption = {\n files: {\n 'sandbox.config.json': {\n content: `{\n \"template\": \"node\",\n \"container\": {\n \"startScript\": \"start\",\n \"node\": \"14\"\n }\n }`,\n },\n 'public/index.html': {\n content: `<div id=\"container\"></div>`,\n },\n 'src/index.js': {\n content: (props.code || '').replace('_mount_', 'document.getElementById(\"container\")'),\n },\n '.kktrc.js': {\n content: `import lessModules from \"@kkt/less-modules\";\\nexport default (conf, env, options) => {\\nconf = lessModules(conf, env, options);\\nreturn conf;\\n};`,\n },\n 'package.json': {\n content: {\n name: 'uiw-demo',\n description: `uiw v${version} - demo`,\n dependencies: {\n react: '^17.0.2',\n 'react-dom': '^17.0.2',\n uiw: 'latest',\n },\n devDependencies: {\n '@kkt/less-modules': '~7.1.1',\n kkt: '~7.1.5',\n },\n license: 'MIT',\n scripts: {\n start: 'kkt start',\n build: 'kkt build',\n test: 'kkt test --env=jsdom',\n },\n browserslist: ['>0.2%', 'not dead', 'not ie <= 11', 'not op_mini all'],\n },\n },\n },\n };\n }\n return <CodePreview {...props} dependencies={dependencies} style={{ marginBottom: 0 }} />;\n}\n","import React, { Fragment } from 'react';\nimport { Divider } from 'uiw';\n\nexport type FooterProps = {\n path?: string;\n};\n\nexport default function (props: FooterProps = {}) {\n const { path } = props;\n const url = /^http/.test(path || '') ? path : `https://github.com/uiwjs/uiw/blob/master/${path}`;\n return (\n <Fragment>\n 犯了错误还是想对文件做出贡献?\n {url && (\n <a href={url} target=\"_blank\" rel=\"noopener noreferrer\">\n 在Github上编辑本页!\n </a>\n )}\n <br />\n <a href=\"https://github.com/uiwjs/uiw/issues\" target=\"_blank\" rel=\"noopener noreferrer\">\n 反馈建议\n </a>\n <Divider type=\"vertical\" />\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/uiwjs/uiw/issues/new\">\n 提交bug\n </a>\n <Divider type=\"vertical\" />\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/uiwjs/uiw\">\n Github\n </a>\n <Divider type=\"vertical\" />\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/kktjs/kkt\">\n kkt\n </a>\n <Divider type=\"vertical\" />\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/kktjs/kkt-ssr\">\n @kkt/ssr\n </a>\n <Divider type=\"vertical\" />\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"http://uiw.gitee.io\">\n 国内镜像\n </a>\n </Fragment>\n );\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"docinfo\":\"index_docinfo__3Vx8S\",\"markdown\":\"index_markdown__hcQCp\"};","import { useEffect, useState } from 'react';\nimport MarkdownPreview from '@uiw/react-markdown-preview';\nimport pkg from 'uiw/package.json';\nimport Code from './Code';\nimport Footer from './Footer';\nimport styles from './index.module.less';\n\nexport type CreatePageProps<T> = {\n dependencies?: T;\n path: string;\n renderPage?: () => Promise<string>;\n};\n\nconst getCodeStr = (data: any[] = [], code: string = '') => {\n data.forEach((node) => {\n if (node.type === 'text') {\n code += node.value;\n } else if (node.children && Array.isArray(node.children)) {\n code += getCodeStr(node.children);\n }\n });\n return code;\n};\n\nexport default function CreatePage<T>(props: CreatePageProps<T>) {\n const { renderPage, dependencies, path } = props;\n const [mdStr, setMdStr] = useState('');\n\n const version = pkg.version || '2.0.0';\n useEffect(() => {\n if (renderPage) {\n renderPage()\n .then((str) => {\n setMdStr(str);\n })\n .catch(() => {});\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n if (!mdStr) {\n return null;\n }\n\n return (\n <div>\n <MarkdownPreview\n source={mdStr}\n className={styles.markdown}\n components={{\n /**\n * bordered 边框\n * bgWhite 设置代码预览背景白色,否则为格子背景。\n * noCode 不显示代码编辑器。\n * noPreview 不显示代码预览效果。\n * noScroll 预览区域不显示滚动条。\n * codePen 显示 Codepen 按钮,要特别注意 包导入的问题,实例中的 import 主要用于 Codepen 使用。\n */\n code: ({ inline, node, ...props }) => {\n const { noPreview, bordered, noScroll, bgWhite, noCode, codePen, codeSandbox } = props as any;\n if (inline) {\n return <code {...props} />;\n }\n const config = {\n noPreview,\n bordered,\n noScroll,\n bgWhite,\n noCode,\n codePen,\n codeSandbox,\n } as any;\n if (Object.keys(config).filter((name) => config[name] !== undefined).length === 0) {\n return <code {...props} />;\n }\n return (\n <Code\n version={version}\n code={getCodeStr(node.children)}\n dependencies={dependencies}\n {...{ noPreview, bordered, noScroll, bgWhite, noCode, codePen, codeSandbox }}\n />\n );\n },\n }}\n />\n <div className={styles.docinfo}>\n <Footer path={path} />\n </div>\n </div>\n );\n}\n","import React from 'react';\nimport { Divider, Input, Form, Notify, Button, Tag, Row, Col } from 'uiw';\nimport Markdown from '../../../components/Markdown';\n\nexport default function Page() {\n return (\n <Markdown\n path=\"https://github.com/uiwjs/uiw/tree/master/packages/react-input/README.md\"\n dependencies={{ Divider, Input, Form, Notify, Button, Tag, Row, Col }}\n renderPage={async () => {\n const md = await import('uiw/node_modules/@uiw/react-input/README.md');\n return md.default || md;\n }}\n />\n );\n}\n"],"names":["webpackEmptyContext","req","e","Error","code","keys","resolve","id","module","exports","Code","version","dependencies","codePen","codeSandbox","other","props","codePenOption","title","includeModule","js","replace","html","css_external","js_external","codeSandboxOption","files","content","name","description","react","uiw","devDependencies","kkt","license","scripts","start","build","test","browserslist","style","marginBottom","path","url","Fragment","href","target","rel","type","getCodeStr","data","forEach","node","value","children","Array","isArray","CreatePage","renderPage","useState","mdStr","setMdStr","pkg","useEffect","then","str","catch","source","className","styles","components","inline","noPreview","bordered","noScroll","bgWhite","noCode","config","Object","filter","undefined","length","Footer","Page","Divider","Input","Form","Notify","Button","Tag","Row","Col","md","default"],"sourceRoot":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[6660],{84934:function(e){function n(e){var n=new Error("Cannot find module '"+e+"'");throw n.code="MODULE_NOT_FOUND",n}n.keys=function(){return[]},n.resolve=n,n.id=84934,e.exports=n},86082:function(e,n,t){"use strict";t.d(n,{Z:function(){return j}});var r=t(50189),o=t(53782),i=t(11026),s=t(41473),c=t(
|
|
2
|
-
//# sourceMappingURL=6660.
|
|
1
|
+
(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[6660],{84934:function(e){function n(e){var n=new Error("Cannot find module '"+e+"'");throw n.code="MODULE_NOT_FOUND",n}n.keys=function(){return[]},n.resolve=n,n.id=84934,e.exports=n},86082:function(e,n,t){"use strict";t.d(n,{Z:function(){return j}});var r=t(50189),o=t(53782),i=t(11026),s=t(41473),c=t(64496),d=t(75752),a=t(2642),u=t(69286),l=["version","dependencies","codePen","codeSandbox"];function p(e){var n=e.version,t=e.dependencies,i=e.codePen,s=e.codeSandbox,c=(0,o.Z)(e,l),d=(0,r.Z)({},c);return i&&(d.codePenOption={title:"uiw".concat(n," - demo"),includeModule:["uiw"],js:(d.code||"").replace("_mount_",'document.getElementById("container")'),html:'<div id="container" style="padding: 24px"></div>',css_external:"https://unpkg.com/uiw@".concat(n,"/dist/uiw.min.css"),js_external:"https://unpkg.com/react@17.x/umd/react.development.js;https://unpkg.com/react-dom@17.x/umd/react-dom.development.js;https://unpkg.com/classnames@2.2.6/index.js;https://unpkg.com/uiw@".concat(n,"/dist/uiw.min.js;https://unpkg.com/@uiw/codepen-require-polyfill@1.1.3/index.js")}),s&&(d.codeSandboxOption={files:{"sandbox.config.json":{content:'{\n "template": "node",\n "container": {\n "startScript": "start",\n "node": "14"\n }\n }'},"public/index.html":{content:'<div id="container"></div>'},"src/index.js":{content:(d.code||"").replace("_mount_",'document.getElementById("container")')},".kktrc.js":{content:'import lessModules from "@kkt/less-modules";\nexport default (conf, env, options) => {\nconf = lessModules(conf, env, options);\nreturn conf;\n};'},"package.json":{content:{name:"uiw-demo",description:"uiw v".concat(n," - demo"),dependencies:{react:"^17.0.2","react-dom":"^17.0.2",uiw:"latest"},devDependencies:{"@kkt/less-modules":"~7.1.1",kkt:"~7.1.5"},license:"MIT",scripts:{start:"kkt start",build:"kkt build",test:"kkt test --env=jsdom"},browserslist:[">0.2%","not dead","not ie <= 11","not op_mini all"]}}}}),(0,u.jsx)(a.Z,(0,r.Z)((0,r.Z)({},d),{},{dependencies:t,style:{marginBottom:0}}))}var h=t(31996);function f(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.path,t=/^http/.test(n||"")?n:"https://github.com/uiwjs/uiw/blob/master/".concat(n);return(0,u.jsxs)(s.Fragment,{children:["\u72af\u4e86\u9519\u8bef\u8fd8\u662f\u60f3\u5bf9\u6587\u4ef6\u505a\u51fa\u8d21\u732e\uff1f",t&&(0,u.jsx)("a",{href:t,target:"_blank",rel:"noopener noreferrer",children:"\u5728Github\u4e0a\u7f16\u8f91\u672c\u9875\uff01"}),(0,u.jsx)("br",{}),(0,u.jsx)("a",{href:"https://github.com/uiwjs/uiw/issues",target:"_blank",rel:"noopener noreferrer",children:"\u53cd\u9988\u5efa\u8bae"}),(0,u.jsx)(h.iz,{type:"vertical"}),(0,u.jsx)("a",{target:"_blank",rel:"noopener noreferrer",href:"https://github.com/uiwjs/uiw/issues/new",children:"\u63d0\u4ea4bug"}),(0,u.jsx)(h.iz,{type:"vertical"}),(0,u.jsx)("a",{target:"_blank",rel:"noopener noreferrer",href:"https://github.com/uiwjs/uiw",children:"Github"}),(0,u.jsx)(h.iz,{type:"vertical"}),(0,u.jsx)("a",{target:"_blank",rel:"noopener noreferrer",href:"https://github.com/kktjs/kkt",children:"kkt"}),(0,u.jsx)(h.iz,{type:"vertical"}),(0,u.jsx)("a",{target:"_blank",rel:"noopener noreferrer",href:"https://github.com/kktjs/kkt-ssr",children:"@kkt/ssr"}),(0,u.jsx)(h.iz,{type:"vertical"}),(0,u.jsx)("a",{target:"_blank",rel:"noopener noreferrer",href:"http://uiw.gitee.io",children:"\u56fd\u5185\u955c\u50cf"})]})}var m="index_docinfo__3Vx8S",x="index_markdown__hcQCp",k=["inline","node"],b=function e(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return n.forEach((function(n){"text"===n.type?t+=n.value:n.children&&Array.isArray(n.children)&&(t+=e(n.children))})),t};function j(e){var n=e.renderPage,t=e.dependencies,a=e.path,l=(0,s.useState)(""),h=(0,i.Z)(l,2),j=h[0],v=h[1],g=d.i8||"2.0.0";return(0,s.useEffect)((function(){n&&n().then((function(e){v(e)})).catch((function(){}))}),[]),j?(0,u.jsxs)("div",{children:[(0,u.jsx)(c.Z,{source:j,className:x,components:{code:function(e){var n=e.inline,i=e.node,s=(0,o.Z)(e,k),c=s,d=c.noPreview,a=c.bordered,l=c.noScroll,h=c.bgWhite,f=c.noCode,m=c.codePen,x=c.codeSandbox;if(n)return(0,u.jsx)("code",(0,r.Z)({},s));var j={noPreview:d,bordered:a,noScroll:l,bgWhite:h,noCode:f,codePen:m,codeSandbox:x};return 0===Object.keys(j).filter((function(e){return void 0!==j[e]})).length?(0,u.jsx)("code",(0,r.Z)({},s)):(0,u.jsx)(p,{version:g,code:b(i.children),dependencies:t,noPreview:d,bordered:a,noScroll:l,bgWhite:h,noCode:f,codePen:m,codeSandbox:x})}}}),(0,u.jsx)("div",{className:m,children:(0,u.jsx)(f,{path:a})})]}):null}},53929:function(e,n,t){"use strict";t.r(n),t.d(n,{default:function(){return a}});var r=t(27791),o=t(57135),i=t.n(o),s=(t(41473),t(31996)),c=t(86082),d=t(69286);function a(){return(0,d.jsx)(c.Z,{path:"https://github.com/uiwjs/uiw/tree/master/packages/react-affix/README.md",dependencies:{Affix:s.D_,Button:s.zx},renderPage:(0,r.Z)(i().mark((function e(){var n;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t.e(5253).then(t.bind(t,45253));case 2:return n=e.sent,e.abrupt("return",n.default||n);case 4:case"end":return e.stop()}}),e)})))})}}}]);
|
|
2
|
+
//# sourceMappingURL=6660.cd859a1a.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"static/js/6660.4f803e55.chunk.js","mappings":"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","sources":["../../node_modules/@babel/standalone|sync|nonrecursive","components/Markdown/Code.tsx","components/Markdown/Footer.tsx","webpack://website/./src/components/Markdown/index.module.less?6e49","components/Markdown/index.tsx","routes/components/affix/index.tsx"],"sourcesContent":["function webpackEmptyContext(req) {\n\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\te.code = 'MODULE_NOT_FOUND';\n\tthrow e;\n}\nwebpackEmptyContext.keys = function() { return []; };\nwebpackEmptyContext.resolve = webpackEmptyContext;\nwebpackEmptyContext.id = 84934;\nmodule.exports = webpackEmptyContext;","import CodePreview, { CodePreviewProps } from '@uiw/react-code-preview';\n\nexport interface CodeProps extends CodePreviewProps {\n code: string;\n version: string;\n codePen: boolean;\n codeSandbox?: boolean;\n dependencies: any;\n}\n\nexport default function Code({ version, dependencies, codePen, codeSandbox, ...other }: CodeProps) {\n const props: CodePreviewProps = { ...other };\n if (codePen) {\n props.codePenOption = {\n title: `uiw${version} - demo`,\n includeModule: ['uiw'],\n js: (props.code || '').replace('_mount_', 'document.getElementById(\"container\")'),\n html: '<div id=\"container\" style=\"padding: 24px\"></div>',\n css_external: `https://unpkg.com/uiw@${version}/dist/uiw.min.css`,\n js_external: `https://unpkg.com/react@17.x/umd/react.development.js;https://unpkg.com/react-dom@17.x/umd/react-dom.development.js;https://unpkg.com/classnames@2.2.6/index.js;https://unpkg.com/uiw@${version}/dist/uiw.min.js;https://unpkg.com/@uiw/codepen-require-polyfill@1.1.3/index.js`,\n };\n }\n if (codeSandbox) {\n props.codeSandboxOption = {\n files: {\n 'sandbox.config.json': {\n content: `{\n \"template\": \"node\",\n \"container\": {\n \"startScript\": \"start\",\n \"node\": \"14\"\n }\n }`,\n },\n 'public/index.html': {\n content: `<div id=\"container\"></div>`,\n },\n 'src/index.js': {\n content: (props.code || '').replace('_mount_', 'document.getElementById(\"container\")'),\n },\n '.kktrc.js': {\n content: `import lessModules from \"@kkt/less-modules\";\\nexport default (conf, env, options) => {\\nconf = lessModules(conf, env, options);\\nreturn conf;\\n};`,\n },\n 'package.json': {\n content: {\n name: 'uiw-demo',\n description: `uiw v${version} - demo`,\n dependencies: {\n react: '^17.0.2',\n 'react-dom': '^17.0.2',\n uiw: 'latest',\n },\n devDependencies: {\n '@kkt/less-modules': '~7.1.1',\n kkt: '~7.1.5',\n },\n license: 'MIT',\n scripts: {\n start: 'kkt start',\n build: 'kkt build',\n test: 'kkt test --env=jsdom',\n },\n browserslist: ['>0.2%', 'not dead', 'not ie <= 11', 'not op_mini all'],\n },\n },\n },\n };\n }\n return <CodePreview {...props} dependencies={dependencies} style={{ marginBottom: 0 }} />;\n}\n","import React, { Fragment } from 'react';\nimport { Divider } from 'uiw';\n\nexport type FooterProps = {\n path?: string;\n};\n\nexport default function (props: FooterProps = {}) {\n const { path } = props;\n const url = /^http/.test(path || '') ? path : `https://github.com/uiwjs/uiw/blob/master/${path}`;\n return (\n <Fragment>\n 犯了错误还是想对文件做出贡献?\n {url && (\n <a href={url} target=\"_blank\" rel=\"noopener noreferrer\">\n 在Github上编辑本页!\n </a>\n )}\n <br />\n <a href=\"https://github.com/uiwjs/uiw/issues\" target=\"_blank\" rel=\"noopener noreferrer\">\n 反馈建议\n </a>\n <Divider type=\"vertical\" />\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/uiwjs/uiw/issues/new\">\n 提交bug\n </a>\n <Divider type=\"vertical\" />\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/uiwjs/uiw\">\n Github\n </a>\n <Divider type=\"vertical\" />\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/kktjs/kkt\">\n kkt\n </a>\n <Divider type=\"vertical\" />\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/kktjs/kkt-ssr\">\n @kkt/ssr\n </a>\n <Divider type=\"vertical\" />\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"http://uiw.gitee.io\">\n 国内镜像\n </a>\n </Fragment>\n );\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"docinfo\":\"index_docinfo__3Vx8S\",\"markdown\":\"index_markdown__hcQCp\"};","import { useEffect, useState } from 'react';\nimport MarkdownPreview from '@uiw/react-markdown-preview';\nimport pkg from 'uiw/package.json';\nimport Code from './Code';\nimport Footer from './Footer';\nimport styles from './index.module.less';\n\nexport type CreatePageProps<T> = {\n dependencies?: T;\n path: string;\n renderPage?: () => Promise<string>;\n};\n\nconst getCodeStr = (data: any[] = [], code: string = '') => {\n data.forEach((node) => {\n if (node.type === 'text') {\n code += node.value;\n } else if (node.children && Array.isArray(node.children)) {\n code += getCodeStr(node.children);\n }\n });\n return code;\n};\n\nexport default function CreatePage<T>(props: CreatePageProps<T>) {\n const { renderPage, dependencies, path } = props;\n const [mdStr, setMdStr] = useState('');\n\n const version = pkg.version || '2.0.0';\n useEffect(() => {\n if (renderPage) {\n renderPage()\n .then((str) => {\n setMdStr(str);\n })\n .catch(() => {});\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n if (!mdStr) {\n return null;\n }\n\n return (\n <div>\n <MarkdownPreview\n source={mdStr}\n className={styles.markdown}\n components={{\n /**\n * bordered 边框\n * bgWhite 设置代码预览背景白色,否则为格子背景。\n * noCode 不显示代码编辑器。\n * noPreview 不显示代码预览效果。\n * noScroll 预览区域不显示滚动条。\n * codePen 显示 Codepen 按钮,要特别注意 包导入的问题,实例中的 import 主要用于 Codepen 使用。\n */\n code: ({ inline, node, ...props }) => {\n const { noPreview, bordered, noScroll, bgWhite, noCode, codePen, codeSandbox } = props as any;\n if (inline) {\n return <code {...props} />;\n }\n const config = {\n noPreview,\n bordered,\n noScroll,\n bgWhite,\n noCode,\n codePen,\n codeSandbox,\n } as any;\n if (Object.keys(config).filter((name) => config[name] !== undefined).length === 0) {\n return <code {...props} />;\n }\n return (\n <Code\n version={version}\n code={getCodeStr(node.children)}\n dependencies={dependencies}\n {...{ noPreview, bordered, noScroll, bgWhite, noCode, codePen, codeSandbox }}\n />\n );\n },\n }}\n />\n <div className={styles.docinfo}>\n <Footer path={path} />\n </div>\n </div>\n );\n}\n","import React from 'react';\nimport { Affix, Button } from 'uiw';\nimport Markdown from '../../../components/Markdown';\n\nexport default function Page() {\n return (\n <Markdown\n path=\"https://github.com/uiwjs/uiw/tree/master/packages/react-affix/README.md\"\n dependencies={{ Affix, Button }}\n renderPage={async () => {\n const md = await import('uiw/node_modules/@uiw/react-affix/README.md');\n return md.default || md;\n }}\n />\n );\n}\n"],"names":["webpackEmptyContext","req","e","Error","code","keys","resolve","id","module","exports","Code","version","dependencies","codePen","codeSandbox","other","props","codePenOption","title","includeModule","js","replace","html","css_external","js_external","codeSandboxOption","files","content","name","description","react","uiw","devDependencies","kkt","license","scripts","start","build","test","browserslist","style","marginBottom","path","url","Fragment","href","target","rel","type","getCodeStr","data","forEach","node","value","children","Array","isArray","CreatePage","renderPage","useState","mdStr","setMdStr","pkg","useEffect","then","str","catch","source","className","styles","components","inline","noPreview","bordered","noScroll","bgWhite","noCode","config","Object","filter","undefined","length","Footer","Page","Affix","Button","md","default"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"static/js/6660.cd859a1a.chunk.js","mappings":"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","sources":["../../node_modules/@babel/standalone|sync|nonrecursive","components/Markdown/Code.tsx","components/Markdown/Footer.tsx","webpack://website/./src/components/Markdown/index.module.less?6e49","components/Markdown/index.tsx","routes/components/affix/index.tsx"],"sourcesContent":["function webpackEmptyContext(req) {\n\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\te.code = 'MODULE_NOT_FOUND';\n\tthrow e;\n}\nwebpackEmptyContext.keys = function() { return []; };\nwebpackEmptyContext.resolve = webpackEmptyContext;\nwebpackEmptyContext.id = 84934;\nmodule.exports = webpackEmptyContext;","import CodePreview, { CodePreviewProps } from '@uiw/react-code-preview';\n\nexport interface CodeProps extends CodePreviewProps {\n code: string;\n version: string;\n codePen: boolean;\n codeSandbox?: boolean;\n dependencies: any;\n}\n\nexport default function Code({ version, dependencies, codePen, codeSandbox, ...other }: CodeProps) {\n const props: CodePreviewProps = { ...other };\n if (codePen) {\n props.codePenOption = {\n title: `uiw${version} - demo`,\n includeModule: ['uiw'],\n js: (props.code || '').replace('_mount_', 'document.getElementById(\"container\")'),\n html: '<div id=\"container\" style=\"padding: 24px\"></div>',\n css_external: `https://unpkg.com/uiw@${version}/dist/uiw.min.css`,\n js_external: `https://unpkg.com/react@17.x/umd/react.development.js;https://unpkg.com/react-dom@17.x/umd/react-dom.development.js;https://unpkg.com/classnames@2.2.6/index.js;https://unpkg.com/uiw@${version}/dist/uiw.min.js;https://unpkg.com/@uiw/codepen-require-polyfill@1.1.3/index.js`,\n };\n }\n if (codeSandbox) {\n props.codeSandboxOption = {\n files: {\n 'sandbox.config.json': {\n content: `{\n \"template\": \"node\",\n \"container\": {\n \"startScript\": \"start\",\n \"node\": \"14\"\n }\n }`,\n },\n 'public/index.html': {\n content: `<div id=\"container\"></div>`,\n },\n 'src/index.js': {\n content: (props.code || '').replace('_mount_', 'document.getElementById(\"container\")'),\n },\n '.kktrc.js': {\n content: `import lessModules from \"@kkt/less-modules\";\\nexport default (conf, env, options) => {\\nconf = lessModules(conf, env, options);\\nreturn conf;\\n};`,\n },\n 'package.json': {\n content: {\n name: 'uiw-demo',\n description: `uiw v${version} - demo`,\n dependencies: {\n react: '^17.0.2',\n 'react-dom': '^17.0.2',\n uiw: 'latest',\n },\n devDependencies: {\n '@kkt/less-modules': '~7.1.1',\n kkt: '~7.1.5',\n },\n license: 'MIT',\n scripts: {\n start: 'kkt start',\n build: 'kkt build',\n test: 'kkt test --env=jsdom',\n },\n browserslist: ['>0.2%', 'not dead', 'not ie <= 11', 'not op_mini all'],\n },\n },\n },\n };\n }\n return <CodePreview {...props} dependencies={dependencies} style={{ marginBottom: 0 }} />;\n}\n","import React, { Fragment } from 'react';\nimport { Divider } from 'uiw';\n\nexport type FooterProps = {\n path?: string;\n};\n\nexport default function (props: FooterProps = {}) {\n const { path } = props;\n const url = /^http/.test(path || '') ? path : `https://github.com/uiwjs/uiw/blob/master/${path}`;\n return (\n <Fragment>\n 犯了错误还是想对文件做出贡献?\n {url && (\n <a href={url} target=\"_blank\" rel=\"noopener noreferrer\">\n 在Github上编辑本页!\n </a>\n )}\n <br />\n <a href=\"https://github.com/uiwjs/uiw/issues\" target=\"_blank\" rel=\"noopener noreferrer\">\n 反馈建议\n </a>\n <Divider type=\"vertical\" />\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/uiwjs/uiw/issues/new\">\n 提交bug\n </a>\n <Divider type=\"vertical\" />\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/uiwjs/uiw\">\n Github\n </a>\n <Divider type=\"vertical\" />\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/kktjs/kkt\">\n kkt\n </a>\n <Divider type=\"vertical\" />\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/kktjs/kkt-ssr\">\n @kkt/ssr\n </a>\n <Divider type=\"vertical\" />\n <a target=\"_blank\" rel=\"noopener noreferrer\" href=\"http://uiw.gitee.io\">\n 国内镜像\n </a>\n </Fragment>\n );\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"docinfo\":\"index_docinfo__3Vx8S\",\"markdown\":\"index_markdown__hcQCp\"};","import { useEffect, useState } from 'react';\nimport MarkdownPreview from '@uiw/react-markdown-preview';\nimport pkg from 'uiw/package.json';\nimport Code from './Code';\nimport Footer from './Footer';\nimport styles from './index.module.less';\n\nexport type CreatePageProps<T> = {\n dependencies?: T;\n path: string;\n renderPage?: () => Promise<string>;\n};\n\nconst getCodeStr = (data: any[] = [], code: string = '') => {\n data.forEach((node) => {\n if (node.type === 'text') {\n code += node.value;\n } else if (node.children && Array.isArray(node.children)) {\n code += getCodeStr(node.children);\n }\n });\n return code;\n};\n\nexport default function CreatePage<T>(props: CreatePageProps<T>) {\n const { renderPage, dependencies, path } = props;\n const [mdStr, setMdStr] = useState('');\n\n const version = pkg.version || '2.0.0';\n useEffect(() => {\n if (renderPage) {\n renderPage()\n .then((str) => {\n setMdStr(str);\n })\n .catch(() => {});\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n if (!mdStr) {\n return null;\n }\n\n return (\n <div>\n <MarkdownPreview\n source={mdStr}\n className={styles.markdown}\n components={{\n /**\n * bordered 边框\n * bgWhite 设置代码预览背景白色,否则为格子背景。\n * noCode 不显示代码编辑器。\n * noPreview 不显示代码预览效果。\n * noScroll 预览区域不显示滚动条。\n * codePen 显示 Codepen 按钮,要特别注意 包导入的问题,实例中的 import 主要用于 Codepen 使用。\n */\n code: ({ inline, node, ...props }) => {\n const { noPreview, bordered, noScroll, bgWhite, noCode, codePen, codeSandbox } = props as any;\n if (inline) {\n return <code {...props} />;\n }\n const config = {\n noPreview,\n bordered,\n noScroll,\n bgWhite,\n noCode,\n codePen,\n codeSandbox,\n } as any;\n if (Object.keys(config).filter((name) => config[name] !== undefined).length === 0) {\n return <code {...props} />;\n }\n return (\n <Code\n version={version}\n code={getCodeStr(node.children)}\n dependencies={dependencies}\n {...{ noPreview, bordered, noScroll, bgWhite, noCode, codePen, codeSandbox }}\n />\n );\n },\n }}\n />\n <div className={styles.docinfo}>\n <Footer path={path} />\n </div>\n </div>\n );\n}\n","import React from 'react';\nimport { Affix, Button } from 'uiw';\nimport Markdown from '../../../components/Markdown';\n\nexport default function Page() {\n return (\n <Markdown\n path=\"https://github.com/uiwjs/uiw/tree/master/packages/react-affix/README.md\"\n dependencies={{ Affix, Button }}\n renderPage={async () => {\n const md = await import('uiw/node_modules/@uiw/react-affix/README.md');\n return md.default || md;\n }}\n />\n );\n}\n"],"names":["webpackEmptyContext","req","e","Error","code","keys","resolve","id","module","exports","Code","version","dependencies","codePen","codeSandbox","other","props","codePenOption","title","includeModule","js","replace","html","css_external","js_external","codeSandboxOption","files","content","name","description","react","uiw","devDependencies","kkt","license","scripts","start","build","test","browserslist","style","marginBottom","path","url","Fragment","href","target","rel","type","getCodeStr","data","forEach","node","value","children","Array","isArray","CreatePage","renderPage","useState","mdStr","setMdStr","pkg","useEffect","then","str","catch","source","className","styles","components","inline","noPreview","bordered","noScroll","bgWhite","noCode","config","Object","filter","undefined","length","Footer","Page","Affix","Button","md","default"],"sourceRoot":""}
|