diff --git a/asset-manifest.json b/asset-manifest.json deleted file mode 100644 index 8e31c0d49..000000000 --- a/asset-manifest.json +++ /dev/null @@ -1,485 +0,0 @@ -{ - "./static/js/0.34fa008a.chunk.js": "/react/build/./static/js/0.34fa008a.chunk.js", - "./static/js/1.4eee6ded.chunk.js": "/react/build/./static/js/1.4eee6ded.chunk.js", - "./static/js/2.a51e9f4f.chunk.js": "/react/build/./static/js/2.a51e9f4f.chunk.js", - "./static/js/3.3fafc57b.chunk.js": "/react/build/./static/js/3.3fafc57b.chunk.js", - "./static/js/4.335b1902.chunk.js": "/react/build/./static/js/4.335b1902.chunk.js", - "./static/js/5.e7c3a06c.chunk.js": "/react/build/./static/js/5.e7c3a06c.chunk.js", - "./static/js/6.6336358f.chunk.js": "/react/build/./static/js/6.6336358f.chunk.js", - "./static/js/7.d6e6f968.chunk.js": "/react/build/./static/js/7.d6e6f968.chunk.js", - "./static/js/8.4717141c.chunk.js": "/react/build/./static/js/8.4717141c.chunk.js", - "static/css/9.4580c46d.chunk.css": "/react/build/static/css/9.4580c46d.chunk.css", - "./static/js/9.7609e756.chunk.js": "/react/build/./static/js/9.7609e756.chunk.js", - "./static/js/10.e6e54e5b.chunk.js": "/react/build/./static/js/10.e6e54e5b.chunk.js", - "./static/js/11.70e9713a.chunk.js": "/react/build/./static/js/11.70e9713a.chunk.js", - "static/css/12.3634cedd.chunk.css": "/react/build/static/css/12.3634cedd.chunk.css", - "./static/js/12.9d1fe6c6.chunk.js": "/react/build/./static/js/12.9d1fe6c6.chunk.js", - "./static/js/13.95ae4e64.chunk.js": "/react/build/./static/js/13.95ae4e64.chunk.js", - "./static/js/14.d9a6740f.chunk.js": "/react/build/./static/js/14.d9a6740f.chunk.js", - "static/css/15.d23100bf.chunk.css": "/react/build/static/css/15.d23100bf.chunk.css", - "./static/js/15.221f1a54.chunk.js": "/react/build/./static/js/15.221f1a54.chunk.js", - "./static/js/16.82fc6757.chunk.js": "/react/build/./static/js/16.82fc6757.chunk.js", - "./static/js/17.256141af.chunk.js": "/react/build/./static/js/17.256141af.chunk.js", - "static/css/18.71841e44.chunk.css": "/react/build/static/css/18.71841e44.chunk.css", - "./static/js/18.ec9215da.chunk.js": "/react/build/./static/js/18.ec9215da.chunk.js", - "./static/js/19.855faff3.chunk.js": "/react/build/./static/js/19.855faff3.chunk.js", - "./static/js/20.9e601607.chunk.js": "/react/build/./static/js/20.9e601607.chunk.js", - "./static/js/21.e1ab047a.chunk.js": "/react/build/./static/js/21.e1ab047a.chunk.js", - "static/css/22.1305617c.chunk.css": "/react/build/static/css/22.1305617c.chunk.css", - "./static/js/22.a2643015.chunk.js": "/react/build/./static/js/22.a2643015.chunk.js", - "./static/js/23.a523ad44.chunk.js": "/react/build/./static/js/23.a523ad44.chunk.js", - "static/css/24.182305e7.chunk.css": "/react/build/static/css/24.182305e7.chunk.css", - "./static/js/24.91bf37b7.chunk.js": "/react/build/./static/js/24.91bf37b7.chunk.js", - "static/css/25.b974e0fe.chunk.css": "/react/build/static/css/25.b974e0fe.chunk.css", - "./static/js/25.23bbbf09.chunk.js": "/react/build/./static/js/25.23bbbf09.chunk.js", - "./static/js/26.8761cded.chunk.js": "/react/build/./static/js/26.8761cded.chunk.js", - "./static/js/27.c9e387b5.chunk.js": "/react/build/./static/js/27.c9e387b5.chunk.js", - "./static/js/28.06e2211b.chunk.js": "/react/build/./static/js/28.06e2211b.chunk.js", - "./static/js/29.3e8ac0f4.chunk.js": "/react/build/./static/js/29.3e8ac0f4.chunk.js", - "./static/js/30.017ae9d3.chunk.js": "/react/build/./static/js/30.017ae9d3.chunk.js", - "static/css/31.70ca0113.chunk.css": "/react/build/static/css/31.70ca0113.chunk.css", - "./static/js/31.a94985ef.chunk.js": "/react/build/./static/js/31.a94985ef.chunk.js", - "static/css/32.e8a90923.chunk.css": "/react/build/static/css/32.e8a90923.chunk.css", - "./static/js/32.ad33e833.chunk.js": "/react/build/./static/js/32.ad33e833.chunk.js", - "static/css/33.78a1ba5d.chunk.css": "/react/build/static/css/33.78a1ba5d.chunk.css", - "./static/js/33.bc2c6722.chunk.js": "/react/build/./static/js/33.bc2c6722.chunk.js", - "static/css/34.1a46f84b.chunk.css": "/react/build/static/css/34.1a46f84b.chunk.css", - "./static/js/34.043e9acd.chunk.js": "/react/build/./static/js/34.043e9acd.chunk.js", - "static/css/35.b1394162.chunk.css": "/react/build/static/css/35.b1394162.chunk.css", - "./static/js/35.fa6d3ae4.chunk.js": "/react/build/./static/js/35.fa6d3ae4.chunk.js", - "static/css/36.c61ae118.chunk.css": "/react/build/static/css/36.c61ae118.chunk.css", - "./static/js/36.2752244b.chunk.js": "/react/build/./static/js/36.2752244b.chunk.js", - "static/css/37.f8ae6fb4.chunk.css": "/react/build/static/css/37.f8ae6fb4.chunk.css", - "./static/js/37.e7636629.chunk.js": "/react/build/./static/js/37.e7636629.chunk.js", - "static/css/38.d8e7c711.chunk.css": "/react/build/static/css/38.d8e7c711.chunk.css", - "./static/js/38.092e2bce.chunk.js": "/react/build/./static/js/38.092e2bce.chunk.js", - "./static/js/39.f2d850cd.chunk.js": "/react/build/./static/js/39.f2d850cd.chunk.js", - "static/css/40.31982fd4.chunk.css": "/react/build/static/css/40.31982fd4.chunk.css", - "./static/js/40.eedb27f5.chunk.js": "/react/build/./static/js/40.eedb27f5.chunk.js", - "static/css/41.9521d95c.chunk.css": "/react/build/static/css/41.9521d95c.chunk.css", - "./static/js/41.0cad4263.chunk.js": "/react/build/./static/js/41.0cad4263.chunk.js", - "static/css/42.b50c4c29.chunk.css": "/react/build/static/css/42.b50c4c29.chunk.css", - "./static/js/42.35f00d12.chunk.js": "/react/build/./static/js/42.35f00d12.chunk.js", - "static/css/43.0b1cfd5c.chunk.css": "/react/build/static/css/43.0b1cfd5c.chunk.css", - "./static/js/43.316a3332.chunk.js": "/react/build/./static/js/43.316a3332.chunk.js", - "static/css/44.182305e7.chunk.css": "/react/build/static/css/44.182305e7.chunk.css", - "./static/js/44.c1655e48.chunk.js": "/react/build/./static/js/44.c1655e48.chunk.js", - "static/css/45.45cf481e.chunk.css": "/react/build/static/css/45.45cf481e.chunk.css", - "./static/js/45.314f2b29.chunk.js": "/react/build/./static/js/45.314f2b29.chunk.js", - "static/css/46.71841e44.chunk.css": "/react/build/static/css/46.71841e44.chunk.css", - "./static/js/46.fec2c138.chunk.js": "/react/build/./static/js/46.fec2c138.chunk.js", - "static/css/47.71841e44.chunk.css": "/react/build/static/css/47.71841e44.chunk.css", - "./static/js/47.2752fbad.chunk.js": "/react/build/./static/js/47.2752fbad.chunk.js", - "static/css/48.71841e44.chunk.css": "/react/build/static/css/48.71841e44.chunk.css", - "./static/js/48.69f4a54b.chunk.js": "/react/build/./static/js/48.69f4a54b.chunk.js", - "static/css/49.71841e44.chunk.css": "/react/build/static/css/49.71841e44.chunk.css", - "./static/js/49.fb9a3a47.chunk.js": "/react/build/./static/js/49.fb9a3a47.chunk.js", - "static/css/50.71841e44.chunk.css": "/react/build/static/css/50.71841e44.chunk.css", - "./static/js/50.7c5c82e9.chunk.js": "/react/build/./static/js/50.7c5c82e9.chunk.js", - "static/css/51.aa1aedbe.chunk.css": "/react/build/static/css/51.aa1aedbe.chunk.css", - "./static/js/51.576d95ae.chunk.js": "/react/build/./static/js/51.576d95ae.chunk.js", - "static/css/52.23e457c6.chunk.css": "/react/build/static/css/52.23e457c6.chunk.css", - "./static/js/52.3a309240.chunk.js": "/react/build/./static/js/52.3a309240.chunk.js", - "static/css/53.f8ce57b7.chunk.css": "/react/build/static/css/53.f8ce57b7.chunk.css", - "./static/js/53.4f7bd715.chunk.js": "/react/build/./static/js/53.4f7bd715.chunk.js", - "static/css/54.58e88442.chunk.css": "/react/build/static/css/54.58e88442.chunk.css", - "./static/js/54.2c3e8985.chunk.js": "/react/build/./static/js/54.2c3e8985.chunk.js", - "static/css/55.a1819630.chunk.css": "/react/build/static/css/55.a1819630.chunk.css", - "./static/js/55.73c1f462.chunk.js": "/react/build/./static/js/55.73c1f462.chunk.js", - "./static/js/56.ec9bc156.chunk.js": "/react/build/./static/js/56.ec9bc156.chunk.js", - "static/css/57.6436558f.chunk.css": "/react/build/static/css/57.6436558f.chunk.css", - "./static/js/57.65840853.chunk.js": "/react/build/./static/js/57.65840853.chunk.js", - "static/css/58.182305e7.chunk.css": "/react/build/static/css/58.182305e7.chunk.css", - "./static/js/58.6aee3793.chunk.js": "/react/build/./static/js/58.6aee3793.chunk.js", - "static/css/59.182305e7.chunk.css": "/react/build/static/css/59.182305e7.chunk.css", - "./static/js/59.7fc04500.chunk.js": "/react/build/./static/js/59.7fc04500.chunk.js", - "static/css/60.f7de5d73.chunk.css": "/react/build/static/css/60.f7de5d73.chunk.css", - "./static/js/60.34c85001.chunk.js": "/react/build/./static/js/60.34c85001.chunk.js", - "static/css/61.182305e7.chunk.css": "/react/build/static/css/61.182305e7.chunk.css", - "./static/js/61.c3927ab7.chunk.js": "/react/build/./static/js/61.c3927ab7.chunk.js", - "./static/js/62.56afca91.chunk.js": "/react/build/./static/js/62.56afca91.chunk.js", - "static/css/63.fd083902.chunk.css": "/react/build/static/css/63.fd083902.chunk.css", - "./static/js/63.0e84dbf6.chunk.js": "/react/build/./static/js/63.0e84dbf6.chunk.js", - "./static/js/64.9ff8c26d.chunk.js": "/react/build/./static/js/64.9ff8c26d.chunk.js", - "static/css/65.080d6958.chunk.css": "/react/build/static/css/65.080d6958.chunk.css", - "./static/js/65.7f8de10f.chunk.js": "/react/build/./static/js/65.7f8de10f.chunk.js", - "./static/js/66.a928838f.chunk.js": "/react/build/./static/js/66.a928838f.chunk.js", - "./static/js/67.578f84ef.chunk.js": "/react/build/./static/js/67.578f84ef.chunk.js", - "static/css/68.7b8a6eb0.chunk.css": "/react/build/static/css/68.7b8a6eb0.chunk.css", - "./static/js/68.b45257fc.chunk.js": "/react/build/./static/js/68.b45257fc.chunk.js", - "./static/js/69.7b8165b1.chunk.js": "/react/build/./static/js/69.7b8165b1.chunk.js", - "static/css/70.2b4fa75d.chunk.css": "/react/build/static/css/70.2b4fa75d.chunk.css", - "./static/js/70.c9b33f4e.chunk.js": "/react/build/./static/js/70.c9b33f4e.chunk.js", - "static/css/71.31982fd4.chunk.css": "/react/build/static/css/71.31982fd4.chunk.css", - "./static/js/71.354fdffa.chunk.js": "/react/build/./static/js/71.354fdffa.chunk.js", - "./static/js/72.2e7f8a16.chunk.js": "/react/build/./static/js/72.2e7f8a16.chunk.js", - "static/css/73.0d02db5b.chunk.css": "/react/build/static/css/73.0d02db5b.chunk.css", - "./static/js/73.1a3f6c5e.chunk.js": "/react/build/./static/js/73.1a3f6c5e.chunk.js", - "./static/js/74.a80bf9ab.chunk.js": "/react/build/./static/js/74.a80bf9ab.chunk.js", - "static/css/75.31982fd4.chunk.css": "/react/build/static/css/75.31982fd4.chunk.css", - "./static/js/75.27d3f681.chunk.js": "/react/build/./static/js/75.27d3f681.chunk.js", - "./static/js/76.305031f2.chunk.js": "/react/build/./static/js/76.305031f2.chunk.js", - "static/css/77.fd3fa2e9.chunk.css": "/react/build/static/css/77.fd3fa2e9.chunk.css", - "./static/js/77.51425811.chunk.js": "/react/build/./static/js/77.51425811.chunk.js", - "static/css/78.60ef55b6.chunk.css": "/react/build/static/css/78.60ef55b6.chunk.css", - "./static/js/78.509374a7.chunk.js": "/react/build/./static/js/78.509374a7.chunk.js", - "static/css/79.b0e2171d.chunk.css": "/react/build/static/css/79.b0e2171d.chunk.css", - "./static/js/79.adf0aee6.chunk.js": "/react/build/./static/js/79.adf0aee6.chunk.js", - "static/css/80.0f05a488.chunk.css": "/react/build/static/css/80.0f05a488.chunk.css", - "./static/js/80.51e9a144.chunk.js": "/react/build/./static/js/80.51e9a144.chunk.js", - "static/css/81.f8baad43.chunk.css": "/react/build/static/css/81.f8baad43.chunk.css", - "./static/js/81.d361cd6c.chunk.js": "/react/build/./static/js/81.d361cd6c.chunk.js", - "static/css/82.d23100bf.chunk.css": "/react/build/static/css/82.d23100bf.chunk.css", - "./static/js/82.9ffc6c81.chunk.js": "/react/build/./static/js/82.9ffc6c81.chunk.js", - "static/css/83.adba6539.chunk.css": "/react/build/static/css/83.adba6539.chunk.css", - "./static/js/83.e9f4eba2.chunk.js": "/react/build/./static/js/83.e9f4eba2.chunk.js", - "./static/js/84.eea12776.chunk.js": "/react/build/./static/js/84.eea12776.chunk.js", - "static/css/85.33abeff1.chunk.css": "/react/build/static/css/85.33abeff1.chunk.css", - "./static/js/85.90e015a2.chunk.js": "/react/build/./static/js/85.90e015a2.chunk.js", - "static/css/86.ce6407ca.chunk.css": "/react/build/static/css/86.ce6407ca.chunk.css", - "./static/js/86.1e605b3f.chunk.js": "/react/build/./static/js/86.1e605b3f.chunk.js", - "./static/js/87.04bcc0e2.chunk.js": "/react/build/./static/js/87.04bcc0e2.chunk.js", - "static/css/88.632d7855.chunk.css": "/react/build/static/css/88.632d7855.chunk.css", - "./static/js/88.5c3ca964.chunk.js": "/react/build/./static/js/88.5c3ca964.chunk.js", - "static/css/89.9d206204.chunk.css": "/react/build/static/css/89.9d206204.chunk.css", - "./static/js/89.13a9f841.chunk.js": "/react/build/./static/js/89.13a9f841.chunk.js", - "./static/js/90.3a913fa1.chunk.js": "/react/build/./static/js/90.3a913fa1.chunk.js", - "static/css/91.ea97577b.chunk.css": "/react/build/static/css/91.ea97577b.chunk.css", - "./static/js/91.437fc2d1.chunk.js": "/react/build/./static/js/91.437fc2d1.chunk.js", - "./static/js/92.9d3d608b.chunk.js": "/react/build/./static/js/92.9d3d608b.chunk.js", - "static/css/93.b2109eb4.chunk.css": "/react/build/static/css/93.b2109eb4.chunk.css", - "./static/js/93.78fff09c.chunk.js": "/react/build/./static/js/93.78fff09c.chunk.js", - "static/css/94.ddd123f8.chunk.css": "/react/build/static/css/94.ddd123f8.chunk.css", - "./static/js/94.db965e3e.chunk.js": "/react/build/./static/js/94.db965e3e.chunk.js", - "static/css/95.93dc5ff6.chunk.css": "/react/build/static/css/95.93dc5ff6.chunk.css", - "./static/js/95.b83ae957.chunk.js": "/react/build/./static/js/95.b83ae957.chunk.js", - "static/css/96.3edde0c7.chunk.css": "/react/build/static/css/96.3edde0c7.chunk.css", - "./static/js/96.e576abde.chunk.js": "/react/build/./static/js/96.e576abde.chunk.js", - "static/css/97.78d24cb4.chunk.css": "/react/build/static/css/97.78d24cb4.chunk.css", - "./static/js/97.ee3fd9ff.chunk.js": "/react/build/./static/js/97.ee3fd9ff.chunk.js", - "./static/js/98.0279f785.chunk.js": "/react/build/./static/js/98.0279f785.chunk.js", - "static/css/99.4054f41b.chunk.css": "/react/build/static/css/99.4054f41b.chunk.css", - "./static/js/99.1d9ed8b6.chunk.js": "/react/build/./static/js/99.1d9ed8b6.chunk.js", - "./static/js/100.e2119b38.chunk.js": "/react/build/./static/js/100.e2119b38.chunk.js", - "static/css/101.06ee28b8.chunk.css": "/react/build/static/css/101.06ee28b8.chunk.css", - "./static/js/101.688edfee.chunk.js": "/react/build/./static/js/101.688edfee.chunk.js", - "static/css/102.15253a67.chunk.css": "/react/build/static/css/102.15253a67.chunk.css", - "./static/js/102.5e7845ec.chunk.js": "/react/build/./static/js/102.5e7845ec.chunk.js", - "./static/js/103.c53a68c4.chunk.js": "/react/build/./static/js/103.c53a68c4.chunk.js", - "static/css/104.fd3fa2e9.chunk.css": "/react/build/static/css/104.fd3fa2e9.chunk.css", - "./static/js/104.cf8ec763.chunk.js": "/react/build/./static/js/104.cf8ec763.chunk.js", - "./static/js/105.0ac1820e.chunk.js": "/react/build/./static/js/105.0ac1820e.chunk.js", - "static/css/106.2646da34.chunk.css": "/react/build/static/css/106.2646da34.chunk.css", - "./static/js/106.c134d4e8.chunk.js": "/react/build/./static/js/106.c134d4e8.chunk.js", - "./static/js/107.06df551d.chunk.js": "/react/build/./static/js/107.06df551d.chunk.js", - "./static/js/108.e23857df.chunk.js": "/react/build/./static/js/108.e23857df.chunk.js", - "./static/js/109.63d9710b.chunk.js": "/react/build/./static/js/109.63d9710b.chunk.js", - "static/css/110.3598c90d.chunk.css": "/react/build/static/css/110.3598c90d.chunk.css", - "./static/js/110.2b7c6734.chunk.js": "/react/build/./static/js/110.2b7c6734.chunk.js", - "./static/js/111.b98e9fe2.chunk.js": "/react/build/./static/js/111.b98e9fe2.chunk.js", - "static/css/112.b6f629c2.chunk.css": "/react/build/static/css/112.b6f629c2.chunk.css", - "./static/js/112.b9b92442.chunk.js": "/react/build/./static/js/112.b9b92442.chunk.js", - "static/css/113.9d206204.chunk.css": "/react/build/static/css/113.9d206204.chunk.css", - "./static/js/113.10a5bbb2.chunk.js": "/react/build/./static/js/113.10a5bbb2.chunk.js", - "static/css/114.ebddf6de.chunk.css": "/react/build/static/css/114.ebddf6de.chunk.css", - "./static/js/114.88ae9a6c.chunk.js": "/react/build/./static/js/114.88ae9a6c.chunk.js", - "static/css/115.e2a8a600.chunk.css": "/react/build/static/css/115.e2a8a600.chunk.css", - "./static/js/115.4ff6791b.chunk.js": "/react/build/./static/js/115.4ff6791b.chunk.js", - "static/css/116.9d206204.chunk.css": "/react/build/static/css/116.9d206204.chunk.css", - "./static/js/116.888f1a15.chunk.js": "/react/build/./static/js/116.888f1a15.chunk.js", - "static/css/117.9d206204.chunk.css": "/react/build/static/css/117.9d206204.chunk.css", - "./static/js/117.7b18afd9.chunk.js": "/react/build/./static/js/117.7b18afd9.chunk.js", - "static/css/118.35b1feac.chunk.css": "/react/build/static/css/118.35b1feac.chunk.css", - "./static/js/118.d130b5d1.chunk.js": "/react/build/./static/js/118.d130b5d1.chunk.js", - "static/css/119.cdd78914.chunk.css": "/react/build/static/css/119.cdd78914.chunk.css", - "./static/js/119.d2281458.chunk.js": "/react/build/./static/js/119.d2281458.chunk.js", - "static/css/120.142cff28.chunk.css": "/react/build/static/css/120.142cff28.chunk.css", - "./static/js/120.90826596.chunk.js": "/react/build/./static/js/120.90826596.chunk.js", - "static/css/121.11a04942.chunk.css": "/react/build/static/css/121.11a04942.chunk.css", - "./static/js/121.beefc4b7.chunk.js": "/react/build/./static/js/121.beefc4b7.chunk.js", - "./static/js/122.5a0aca6f.chunk.js": "/react/build/./static/js/122.5a0aca6f.chunk.js", - "./static/js/123.7bd5e54b.chunk.js": "/react/build/./static/js/123.7bd5e54b.chunk.js", - "./static/js/124.b84ea499.chunk.js": "/react/build/./static/js/124.b84ea499.chunk.js", - "static/css/125.15253a67.chunk.css": "/react/build/static/css/125.15253a67.chunk.css", - "./static/js/125.5d4319dd.chunk.js": "/react/build/./static/js/125.5d4319dd.chunk.js", - "static/css/126.8a2a0d50.chunk.css": "/react/build/static/css/126.8a2a0d50.chunk.css", - "./static/js/126.bc2490ea.chunk.js": "/react/build/./static/js/126.bc2490ea.chunk.js", - "./static/js/127.2d8966e0.chunk.js": "/react/build/./static/js/127.2d8966e0.chunk.js", - "static/css/128.adba6539.chunk.css": "/react/build/static/css/128.adba6539.chunk.css", - "./static/js/128.979535c0.chunk.js": "/react/build/./static/js/128.979535c0.chunk.js", - "static/css/129.182305e7.chunk.css": "/react/build/static/css/129.182305e7.chunk.css", - "./static/js/129.97ec778f.chunk.js": "/react/build/./static/js/129.97ec778f.chunk.js", - "./static/js/130.e1f0eb6d.chunk.js": "/react/build/./static/js/130.e1f0eb6d.chunk.js", - "static/css/131.fd5c069f.chunk.css": "/react/build/static/css/131.fd5c069f.chunk.css", - "./static/js/131.7a40379e.chunk.js": "/react/build/./static/js/131.7a40379e.chunk.js", - "static/css/132.cbc5dafa.chunk.css": "/react/build/static/css/132.cbc5dafa.chunk.css", - "./static/js/132.d283d987.chunk.js": "/react/build/./static/js/132.d283d987.chunk.js", - "static/css/133.2f409942.chunk.css": "/react/build/static/css/133.2f409942.chunk.css", - "./static/js/133.9f14ae5c.chunk.js": "/react/build/./static/js/133.9f14ae5c.chunk.js", - "./static/js/134.e5a7dcb4.chunk.js": "/react/build/./static/js/134.e5a7dcb4.chunk.js", - "./static/js/135.9ffb885d.chunk.js": "/react/build/./static/js/135.9ffb885d.chunk.js", - "./static/js/136.57c2deb1.chunk.js": "/react/build/./static/js/136.57c2deb1.chunk.js", - "./static/js/137.78edca3c.chunk.js": "/react/build/./static/js/137.78edca3c.chunk.js", - "./static/js/138.a44ca9bc.chunk.js": "/react/build/./static/js/138.a44ca9bc.chunk.js", - "static/css/139.c0242127.chunk.css": "/react/build/static/css/139.c0242127.chunk.css", - "./static/js/139.9319da64.chunk.js": "/react/build/./static/js/139.9319da64.chunk.js", - "static/css/140.775a0135.chunk.css": "/react/build/static/css/140.775a0135.chunk.css", - "./static/js/140.589b7b1c.chunk.js": "/react/build/./static/js/140.589b7b1c.chunk.js", - "static/css/141.188a7db8.chunk.css": "/react/build/static/css/141.188a7db8.chunk.css", - "./static/js/141.89d6d151.chunk.js": "/react/build/./static/js/141.89d6d151.chunk.js", - "static/css/142.9df86194.chunk.css": "/react/build/static/css/142.9df86194.chunk.css", - "./static/js/142.ab62c67d.chunk.js": "/react/build/./static/js/142.ab62c67d.chunk.js", - "static/css/143.182305e7.chunk.css": "/react/build/static/css/143.182305e7.chunk.css", - "./static/js/143.8280830d.chunk.js": "/react/build/./static/js/143.8280830d.chunk.js", - "static/css/144.182305e7.chunk.css": "/react/build/static/css/144.182305e7.chunk.css", - "./static/js/144.776d734d.chunk.js": "/react/build/./static/js/144.776d734d.chunk.js", - "static/css/145.182305e7.chunk.css": "/react/build/static/css/145.182305e7.chunk.css", - "./static/js/145.e5987f55.chunk.js": "/react/build/./static/js/145.e5987f55.chunk.js", - "static/css/146.1e103c31.chunk.css": "/react/build/static/css/146.1e103c31.chunk.css", - "./static/js/146.ea71f605.chunk.js": "/react/build/./static/js/146.ea71f605.chunk.js", - "static/css/147.f2060fe7.chunk.css": "/react/build/static/css/147.f2060fe7.chunk.css", - "./static/js/147.9ac43341.chunk.js": "/react/build/./static/js/147.9ac43341.chunk.js", - "static/css/148.f9d1b577.chunk.css": "/react/build/static/css/148.f9d1b577.chunk.css", - "./static/js/148.bae93b29.chunk.js": "/react/build/./static/js/148.bae93b29.chunk.js", - "./static/js/149.8469cc84.chunk.js": "/react/build/./static/js/149.8469cc84.chunk.js", - "./static/js/150.565a3966.chunk.js": "/react/build/./static/js/150.565a3966.chunk.js", - "static/css/151.09d927dd.chunk.css": "/react/build/static/css/151.09d927dd.chunk.css", - "./static/js/151.e2caad90.chunk.js": "/react/build/./static/js/151.e2caad90.chunk.js", - "static/css/152.9d206204.chunk.css": "/react/build/static/css/152.9d206204.chunk.css", - "./static/js/152.d5f13d22.chunk.js": "/react/build/./static/js/152.d5f13d22.chunk.js", - "./static/js/153.977410cf.chunk.js": "/react/build/./static/js/153.977410cf.chunk.js", - "./static/js/154.f9ef284b.chunk.js": "/react/build/./static/js/154.f9ef284b.chunk.js", - "./static/js/155.589fe3d7.chunk.js": "/react/build/./static/js/155.589fe3d7.chunk.js", - "./static/js/156.3edc3387.chunk.js": "/react/build/./static/js/156.3edc3387.chunk.js", - "./static/js/157.0c0ecbd9.chunk.js": "/react/build/./static/js/157.0c0ecbd9.chunk.js", - "./static/js/158.40b36057.chunk.js": "/react/build/./static/js/158.40b36057.chunk.js", - "./static/js/159.01061eeb.chunk.js": "/react/build/./static/js/159.01061eeb.chunk.js", - "./static/js/160.6f4a785b.chunk.js": "/react/build/./static/js/160.6f4a785b.chunk.js", - "./static/js/161.abb71f69.chunk.js": "/react/build/./static/js/161.abb71f69.chunk.js", - "./static/js/162.921fd738.chunk.js": "/react/build/./static/js/162.921fd738.chunk.js", - "./static/js/163.291c6c71.chunk.js": "/react/build/./static/js/163.291c6c71.chunk.js", - "./static/js/164.4fda48d8.chunk.js": "/react/build/./static/js/164.4fda48d8.chunk.js", - "./static/js/165.43fea246.chunk.js": "/react/build/./static/js/165.43fea246.chunk.js", - "./static/js/166.98f7a664.chunk.js": "/react/build/./static/js/166.98f7a664.chunk.js", - "./static/js/167.df8917dc.chunk.js": "/react/build/./static/js/167.df8917dc.chunk.js", - "./static/js/168.de9ea03d.chunk.js": "/react/build/./static/js/168.de9ea03d.chunk.js", - "./static/js/169.90e77040.chunk.js": "/react/build/./static/js/169.90e77040.chunk.js", - "./static/js/170.a16e4e0a.chunk.js": "/react/build/./static/js/170.a16e4e0a.chunk.js", - "./static/js/171.7e67e57c.chunk.js": "/react/build/./static/js/171.7e67e57c.chunk.js", - "./static/js/172.5f72ab95.chunk.js": "/react/build/./static/js/172.5f72ab95.chunk.js", - "./static/js/173.17dcf518.chunk.js": "/react/build/./static/js/173.17dcf518.chunk.js", - "./static/js/174.89d0583c.chunk.js": "/react/build/./static/js/174.89d0583c.chunk.js", - "./static/js/175.832fa942.chunk.js": "/react/build/./static/js/175.832fa942.chunk.js", - "./static/js/176.eb60e4a5.chunk.js": "/react/build/./static/js/176.eb60e4a5.chunk.js", - "./static/js/177.9246ed0f.chunk.js": "/react/build/./static/js/177.9246ed0f.chunk.js", - "./static/js/178.25233bfa.chunk.js": "/react/build/./static/js/178.25233bfa.chunk.js", - "./static/js/179.23be0142.chunk.js": "/react/build/./static/js/179.23be0142.chunk.js", - "./static/js/180.5d11f1a7.chunk.js": "/react/build/./static/js/180.5d11f1a7.chunk.js", - "./static/js/181.79880cb3.chunk.js": "/react/build/./static/js/181.79880cb3.chunk.js", - "./static/js/182.67f55261.chunk.js": "/react/build/./static/js/182.67f55261.chunk.js", - "./static/js/183.851d7210.chunk.js": "/react/build/./static/js/183.851d7210.chunk.js", - "./static/js/184.02146860.chunk.js": "/react/build/./static/js/184.02146860.chunk.js", - "./static/js/185.8383d838.chunk.js": "/react/build/./static/js/185.8383d838.chunk.js", - "./static/js/186.21f98652.chunk.js": "/react/build/./static/js/186.21f98652.chunk.js", - "./static/js/187.2fead581.chunk.js": "/react/build/./static/js/187.2fead581.chunk.js", - "./static/js/188.0c077d79.chunk.js": "/react/build/./static/js/188.0c077d79.chunk.js", - "./static/js/189.12afa5e0.chunk.js": "/react/build/./static/js/189.12afa5e0.chunk.js", - "./static/js/190.427e4bce.chunk.js": "/react/build/./static/js/190.427e4bce.chunk.js", - "./static/js/191.3bc68443.chunk.js": "/react/build/./static/js/191.3bc68443.chunk.js", - "./static/js/192.7a7877c7.chunk.js": "/react/build/./static/js/192.7a7877c7.chunk.js", - "./static/js/193.1affba86.chunk.js": "/react/build/./static/js/193.1affba86.chunk.js", - "./static/js/194.be084f15.chunk.js": "/react/build/./static/js/194.be084f15.chunk.js", - "./static/js/195.a264dc08.chunk.js": "/react/build/./static/js/195.a264dc08.chunk.js", - "./static/js/196.7e5bd1dd.chunk.js": "/react/build/./static/js/196.7e5bd1dd.chunk.js", - "./static/js/197.a3acc310.chunk.js": "/react/build/./static/js/197.a3acc310.chunk.js", - "./static/js/198.cb49da57.chunk.js": "/react/build/./static/js/198.cb49da57.chunk.js", - "./static/js/199.6ecc7253.chunk.js": "/react/build/./static/js/199.6ecc7253.chunk.js", - "./static/js/200.6cdc7ff5.chunk.js": "/react/build/./static/js/200.6cdc7ff5.chunk.js", - "./static/js/201.f0e1a41b.chunk.js": "/react/build/./static/js/201.f0e1a41b.chunk.js", - "./static/js/202.320bf42f.chunk.js": "/react/build/./static/js/202.320bf42f.chunk.js", - "./static/js/203.a841667a.chunk.js": "/react/build/./static/js/203.a841667a.chunk.js", - "./static/js/204.0024e97d.chunk.js": "/react/build/./static/js/204.0024e97d.chunk.js", - "./static/js/205.ee668e94.chunk.js": "/react/build/./static/js/205.ee668e94.chunk.js", - "./static/js/206.7ba676f3.chunk.js": "/react/build/./static/js/206.7ba676f3.chunk.js", - "./static/js/207.1ef730b6.chunk.js": "/react/build/./static/js/207.1ef730b6.chunk.js", - "./static/js/208.d42e3a12.chunk.js": "/react/build/./static/js/208.d42e3a12.chunk.js", - "./static/js/209.16a32344.chunk.js": "/react/build/./static/js/209.16a32344.chunk.js", - "./static/js/210.012fc614.chunk.js": "/react/build/./static/js/210.012fc614.chunk.js", - "./static/js/211.34d672ae.chunk.js": "/react/build/./static/js/211.34d672ae.chunk.js", - "./static/js/212.3561639d.chunk.js": "/react/build/./static/js/212.3561639d.chunk.js", - "./static/js/213.df7a6934.chunk.js": "/react/build/./static/js/213.df7a6934.chunk.js", - "./static/js/214.c4f377d9.chunk.js": "/react/build/./static/js/214.c4f377d9.chunk.js", - "./static/js/215.1433c2f6.chunk.js": "/react/build/./static/js/215.1433c2f6.chunk.js", - "./static/js/216.9bdeebfa.chunk.js": "/react/build/./static/js/216.9bdeebfa.chunk.js", - "./static/js/217.7700a84a.chunk.js": "/react/build/./static/js/217.7700a84a.chunk.js", - "./static/js/218.3535b462.chunk.js": "/react/build/./static/js/218.3535b462.chunk.js", - "main.css": "/react/build/static/css/main.79ecd38a.chunk.css", - "main.js": "/react/build/./static/js/main.452d1016.chunk.js", - "runtime~main.js": "/react/build/./static/js/runtime~main.be9f4840.js", - "./static/js/13.95ae4e64.chunk.js.LICENSE.txt": "/react/build/./static/js/13.95ae4e64.chunk.js.LICENSE.txt", - "./static/js/133.9f14ae5c.chunk.js.LICENSE.txt": "/react/build/./static/js/133.9f14ae5c.chunk.js.LICENSE.txt", - "./static/js/170.a16e4e0a.chunk.js.LICENSE.txt": "/react/build/./static/js/170.a16e4e0a.chunk.js.LICENSE.txt", - "./static/js/213.df7a6934.chunk.js.LICENSE.txt": "/react/build/./static/js/213.df7a6934.chunk.js.LICENSE.txt", - "./static/js/35.fa6d3ae4.chunk.js.LICENSE.txt": "/react/build/./static/js/35.fa6d3ae4.chunk.js.LICENSE.txt", - "./static/js/37.e7636629.chunk.js.LICENSE.txt": "/react/build/./static/js/37.e7636629.chunk.js.LICENSE.txt", - "./static/js/6.6336358f.chunk.js.LICENSE.txt": "/react/build/./static/js/6.6336358f.chunk.js.LICENSE.txt", - "./static/js/9.7609e756.chunk.js.LICENSE.txt": "/react/build/./static/js/9.7609e756.chunk.js.LICENSE.txt", - "./static/js/main.452d1016.chunk.js.LICENSE.txt": "/react/build/./static/js/main.452d1016.chunk.js.LICENSE.txt", - "css.worker.js": "/react/build/css.worker.js", - "editor.worker.js": "/react/build/editor.worker.js", - "html.worker.js": "/react/build/html.worker.js", - "index.html": "/react/build/index.html", - "json.worker.js": "/react/build/json.worker.js", - "static/media/Index.scss": "/react/build/static/media/typebg.b2b0ea32.png", - "static/media/2-2-1.png": "/react/build/static/media/2-2-1.afd0f2f5.png", - "static/media/2-2-2.png": "/react/build/static/media/2-2-2.26bc3301.png", - "static/media/2-2-3.png": "/react/build/static/media/2-2-3.6d6ce99c.png", - "static/media/2-2-head.png": "/react/build/static/media/2-2-head.5e69dbb2.png", - "static/media/2-3-1.png": "/react/build/static/media/2-3-1.bcb33d47.png", - "static/media/2-3-2.png": "/react/build/static/media/2-3-2.57ef08ae.png", - "static/media/2-3-3.png": "/react/build/static/media/2-3-3.52733627.png", - "static/media/2-3-4.png": "/react/build/static/media/2-3-4.339b2f1c.png", - "static/media/2-6-1.png": "/react/build/static/media/2-6-1.302b729e.png", - "static/media/2-6-2.png": "/react/build/static/media/2-6-2.b262b91e.png", - "static/media/3-1.png": "/react/build/static/media/3-1.9fdda521.png", - "static/media/3-2.png": "/react/build/static/media/3-2.47050941.png", - "static/media/3-3.png": "/react/build/static/media/3-3.c767aae7.png", - "static/media/3-4.png": "/react/build/static/media/3-4.92820cbc.png", - "static/media/34@2x.png": "/react/build/static/media/34@2x.ed8e5910.png", - "static/media/35@2x.png": "/react/build/static/media/35@2x.33462edc.png", - "static/media/36@2x.png": "/react/build/static/media/36@2x.8f54f5ba.png", - "static/media/37@2x.png": "/react/build/static/media/37@2x.97a40a2a.png", - "static/media/38@2x.png": "/react/build/static/media/38@2x.f072fe68.png", - "static/media/39@2x.png": "/react/build/static/media/39@2x.ee1af05a.png", - "static/media/4-1.png": "/react/build/static/media/4-1.79fa159d.png", - "static/media/4-2.png": "/react/build/static/media/4-2.9c066e75.png", - "static/media/4-3.png": "/react/build/static/media/4-3.a1487a5b.png", - "static/media/4-4.png": "/react/build/static/media/4-4.5eb40734.png", - "static/media/40@2x.png": "/react/build/static/media/40@2x.f10a55e2.png", - "static/media/42@2x.png": "/react/build/static/media/42@2x.25d6b5fd.png", - "static/media/44@2x.png": "/react/build/static/media/44@2x.1374baf9.png", - "static/media/46@2x.png": "/react/build/static/media/46@2x.e272d43e.png", - "static/media/48@2x.png": "/react/build/static/media/48@2x.3bde4de9.png", - "static/media/49.png": "/react/build/static/media/49.b03e6efe.png", - "static/media/50@2x.png": "/react/build/static/media/50@2x.69b76634.png", - "static/media/52@2x.png": "/react/build/static/media/52@2x.41805cbb.png", - "static/media/55@2x.png": "/react/build/static/media/55@2x.83486b73.png", - "static/media/57@2x.png": "/react/build/static/media/57@2x.8dc6b0b8.png", - "static/media/59@2x.png": "/react/build/static/media/59@2x.b0884ef0.png", - "static/media/61@2x.png": "/react/build/static/media/61@2x.99d3cc3e.png", - "static/media/63@2x.png": "/react/build/static/media/63@2x.49f389b9.png", - "static/media/65@2x.png": "/react/build/static/media/65@2x.ef33e2f9.png", - "static/media/67@2x.png": "/react/build/static/media/67@2x.4a4f4b6c.png", - "static/media/69@2x.png": "/react/build/static/media/69@2x.379c6a82.png", - "static/media/BJHKHT.png": "/react/build/static/media/BJHKHT.f065403a.png", - "static/media/CEC.png": "/react/build/static/media/CEC.3b748059.png", - "static/media/GFKJ.png": "/react/build/static/media/GFKJ.eb30c414.png", - "static/media/HSKY.png": "/react/build/static/media/HSKY.2e76ba44.png", - "static/media/ISCAS.png": "/react/build/static/media/ISCAS.851fcfda.png", - "static/media/KYRJLM.png": "/react/build/static/media/KYRJLM.2d659e5c.png", - "static/media/katex.min.css": "/react/build/static/media/KaTeX_Typewriter-Regular.d3c8e68f.woff", - "static/media/LC.png": "/react/build/static/media/LC.f247fdb8.png", - "static/media/LSLM.png": "/react/build/static/media/LSLM.99387946.png", - "static/media/ML.png": "/react/build/static/media/ML.08d278e2.png", - "static/media/NJDX.png": "/react/build/static/media/NJDX.bb34b326.png", - "static/media/QH.png": "/react/build/static/media/QH.b57a0131.png", - "static/media/SHJT.png": "/react/build/static/media/SHJT.426bf0c7.png", - "static/media/TX.png": "/react/build/static/media/TX.b703476c.png", - "static/media/WXYJY.png": "/react/build/static/media/WXYJY.21e40191.png", - "static/media/XH.png": "/react/build/static/media/XH.a0a88f17.png", - "static/media/XJY.png": "/react/build/static/media/XJY.b4c57bf1.png", - "static/media/YKD.png": "/react/build/static/media/YKD.4f7e2766.png", - "static/media/ZC.png": "/react/build/static/media/ZC.ad056aa5.png", - "static/media/achievements.png": "/react/build/static/media/achievements.f20b7e39.png", - "static/media/index.scss": "/react/build/static/media/time-bg.f61a7e5f.png", - "static/media/ball.png": "/react/build/static/media/ball.24214b6e.png", - "static/media/banner-interim.png": "/react/build/static/media/banner-interim.c50ff667.png", - "static/media/AboutUs.scss": "/react/build/static/media/joinUs.26ec28cd.png", - "static/media/banner.png": "/react/build/static/media/banner.f7da2db1.png", - "static/media/banner_list.jpg": "/react/build/static/media/banner_list.e02c5e16.jpg", - "static/media/beijing.png": "/react/build/static/media/beijing.bfcd5b0e.png", - "static/media/LoginRegisterPage.scss": "/react/build/static/media/rightBg.55f14f0c.png", - "static/media/bgPng.png": "/react/build/static/media/bgPng.ed010245.png", - "static/media/ccf_logo.png": "/react/build/static/media/ccf_logo.a54fdc70.png", - "static/media/ccf_logo1.png": "/react/build/static/media/ccf_logo1.be10ead7.png", - "static/media/codeafter.png": "/react/build/static/media/codeafter.c3088c74.png", - "static/media/computer.png": "/react/build/static/media/computer.4fe86b12.png", - "static/media/devops.png": "/react/build/static/media/devops.39983f5b.png", - "static/media/earth.png": "/react/build/static/media/earth.050b1435.png", - "static/media/fun1.png": "/react/build/static/media/fun1.c99ffa49.png", - "static/media/fun2.png": "/react/build/static/media/fun2.12f22bca.png", - "static/media/fun3.png": "/react/build/static/media/fun3.75c280e6.png", - "static/media/fun4.png": "/react/build/static/media/fun4.f499794e.png", - "static/media/fun5.png": "/react/build/static/media/fun5.96b44942.png", - "static/media/gitee1.svg": "/react/build/static/media/gitee1.0c13ef7b.svg", - "static/media/github2.svg": "/react/build/static/media/github2.7d5cc0ba.svg", - "static/media/gitlink1.png": "/react/build/static/media/gitlink1.4bf0ed96.png", - "static/media/gitlink2.png": "/react/build/static/media/gitlink2.0ec0ec22.png", - "static/media/head.png": "/react/build/static/media/head.52aa3fc8.png", - "static/media/help.png": "/react/build/static/media/help.0bfb2587.png", - "static/media/help_bg.png": "/react/build/static/media/help_bg.d2bb4c18.png", - "static/media/huake.png": "/react/build/static/media/huake.63b6a34d.png", - "static/media/huawei.png": "/react/build/static/media/huawei.73ec7c22.png", - "static/media/ideLogo.svg": "/react/build/static/media/ideLogo.0dca8d76.svg", - "static/media/Teaching.scss": "/react/build/static/media/image22.d4d77f6c.svg", - "static/media/img1.png": "/react/build/static/media/img1.fc155528.png", - "static/media/img10.png": "/react/build/static/media/img10.64149a3d.png", - "static/media/img15.png": "/react/build/static/media/img15.87a3556c.png", - "static/media/img16.png": "/react/build/static/media/img16.32badab9.png", - "static/media/img17.png": "/react/build/static/media/img17.c25d5edc.png", - "static/media/img18.png": "/react/build/static/media/img18.4963efc1.png", - "static/media/img2.png": "/react/build/static/media/img2.ae303051.png", - "static/media/img3.png": "/react/build/static/media/img3.cee3ac5b.png", - "static/media/img4.png": "/react/build/static/media/img4.53c937cb.png", - "static/media/img5.png": "/react/build/static/media/img5.ca3a2287.png", - "static/media/img6.png": "/react/build/static/media/img6.8f81bf78.png", - "static/media/img7.png": "/react/build/static/media/img7.e4a68e6e.png", - "static/media/img8.png": "/react/build/static/media/img8.10500e00.png", - "static/media/img9.png": "/react/build/static/media/img9.d25372ba.png", - "static/media/introduce.png": "/react/build/static/media/introduce.30b50cda.png", - "static/media/jijinhui.png": "/react/build/static/media/jijinhui.041fb524.png", - "static/media/lightspot1.png": "/react/build/static/media/lightspot1.9214f0ae.png", - "static/media/lightspot2.png": "/react/build/static/media/lightspot2.b7053786.png", - "static/media/lightspot3.png": "/react/build/static/media/lightspot3.2f8af8da.png", - "static/media/lightspot4.png": "/react/build/static/media/lightspot4.93769763.png", - "static/media/logo.png": "/react/build/static/media/logo.62af9fee.png", - "static/media/logo.svg": "/react/build/static/media/logo.f0d4927b.svg", - "static/media/logo1.png": "/react/build/static/media/logo1.ec3c2e67.png", - "static/media/logo2.png": "/react/build/static/media/logo2.b04c07f2.png", - "static/media/mulan.png": "/react/build/static/media/mulan.690d2289.png", - "static/media/TPMIndex.css": "/react/build/static/media/nps2.d5d0b666.png", - "static/media/qqChat.png": "/react/build/static/media/qqChat.9e56cc22.png", - "static/media/resultBanner.png": "/react/build/static/media/resultBanner.152068bc.png", - "static/media/resultBanner2.png": "/react/build/static/media/resultBanner2.c3095c5d.png", - "static/media/resultBanner3.png": "/react/build/static/media/resultBanner3.e11193de.png", - "static/media/slick-theme.css": "/react/build/static/media/slick.c94f7671.ttf", - "static/media/sponsor11.png": "/react/build/static/media/sponsor11.5e9da48d.png", - "static/media/sponsor21.png": "/react/build/static/media/sponsor21.8a655acc.png", - "static/media/sponsor22.png": "/react/build/static/media/sponsor22.96e2b643.png", - "static/media/sponsor31.png": "/react/build/static/media/sponsor31.0fd95bcb.png", - "static/media/sponsor33.png": "/react/build/static/media/sponsor33.27be3b2d.png", - "static/media/studentProject.png": "/react/build/static/media/studentProject.cd6d6c4f.png", - "static/media/subtitle.png": "/react/build/static/media/subtitle.5019e086.png", - "static/media/teacher-img.png": "/react/build/static/media/teacher-img.e0e2a9bf.png", - "static/media/teacher1.png": "/react/build/static/media/teacher1.ee492a9b.png", - "static/media/teacher10.png": "/react/build/static/media/teacher10.9298db29.png", - "static/media/teacher11.png": "/react/build/static/media/teacher11.8a0d8669.png", - "static/media/teacher12.png": "/react/build/static/media/teacher12.47e02224.png", - "static/media/teacher13.png": "/react/build/static/media/teacher13.f7886e36.png", - "static/media/teacher14.png": "/react/build/static/media/teacher14.83b48396.png", - "static/media/teacher15.png": "/react/build/static/media/teacher15.5d777604.png", - "static/media/teacher2.png": "/react/build/static/media/teacher2.b2b9919d.png", - "static/media/teacher3.png": "/react/build/static/media/teacher3.20cb800b.png", - "static/media/teacher4.png": "/react/build/static/media/teacher4.c15a0bda.png", - "static/media/teacher5.png": "/react/build/static/media/teacher5.9397d078.png", - "static/media/teacher6.png": "/react/build/static/media/teacher6.06b6f465.png", - "static/media/teacher7.png": "/react/build/static/media/teacher7.4102dcc1.png", - "static/media/teacher8.png": "/react/build/static/media/teacher8.5d3f117e.png", - "static/media/teacher9.png": "/react/build/static/media/teacher9.69b0adae.png", - "static/media/xigongye.png": "/react/build/static/media/xigongye.d51231d3.png", - "static/media/xiuos.png": "/react/build/static/media/xiuos.67682257.png", - "static/media/xjy.png": "/react/build/static/media/xjy.6e62f4d6.png", - "static/media/浙江大学.png": "/react/build/static/media/浙江大学.3c545e69.png", - "ts.worker.js": "/react/build/ts.worker.js", - "ts.worker.js.LICENSE.txt": "/react/build/ts.worker.js.LICENSE.txt" -} \ No newline at end of file diff --git a/css/edu-purge.css b/css/edu-purge.css deleted file mode 100644 index 407693a1f..000000000 --- a/css/edu-purge.css +++ /dev/null @@ -1,6720 +0,0 @@ -@charset "utf-8"; -/* 头部 */ -.header { - width: 100%; - height: 51px; - min-width: 1200px; - background: rgb(23, 22, 22); -} - -/*.edu-dropdown:hover .edu-dropdown-menu{ display: block;}*/ -.animate { - -webkit-transition: all .3s; - -moz-transition: all .3s; - -ms-transition: all .3s; - -ms-transition: all .3s; - transition: all .3s; - backface-visibility: hidden; - -webkit-backface-visibility: hidden; - /* Chrome and Safari */ - -moz-backface-visibility: hidden; - /* Firefox */ - -ms-backface-visibility: hidden; - /* Internet Explorer */ -} - -/* 底部 */ -.footer { - width: 100%; - height: 100px; - background-color: #fff; -} - -.footer_con-p { - color: #888; - margin-top: 10px; -} - -.inner-footer_con { - width: 1200px; - margin: 0 auto; -} - -/************布局 byLB****************/ - -/************讨论区20170321 byLB****************/ -.panel-inner-fourm { - padding: 20px; - border-bottom: 1px solid #eee; -} - -.panel-inner-fourm:hover { - background: #EFF9FD; -} - -a.panel-list-title, -.panel-list-title { - display: inline-block; - font-size: 16px; - color: #333; - font-weight: normal; - max-width: 82%; -} - -a:hover.panel-list-title { - color: #FF7500; -} - -.panel-list-img { - width: 60px; - height: 60px; - border-radius: 100px; -} - -a.panel-name-small { - display: inline-block; - max-width: 100px; - color: #29bd8b; - font-size: 12px; -} - -.panel-lightgrey, -.panel-lightgrey span { - font-size: 12px; - color: #888; -} - -/*班级讨论区panel 2017/07/20 cs*/ - -/* 回复评论 */ -.panel-comment_item { - width: 100%; -} - -.panel-comment_item .t_area { - color: #888; -} - -.comment_item_cont { - padding: 15px; - border-bottom: 1px solid #e3e3e3; -} - -.comment_item_cont .J_Comment_Face { - height: 50px -} - -.comment_item_cont .J_Comment_Face img { - width: 50px; - height: 50px; - border-radius: 100px; -} - -.panel-comment_item .t_content { - width: 93%; - margin-left: 15px; -} - -.panel-comment_item a.content-username { - font-size: 14px; - margin-right: 15px; - display: inline-block; - max-width: 100px; - color: #888888 -} - -.J_Comment_Info { - height: 20px; - line-height: 22px; -} - -/*.panel-comment_item a:hover.content-username{color:#FF7500;}*/ - -.panel-comment_item .comment_orig_content { - margin: 10px 0; - color: #999; -} - -.panel-comment_item .comment_orig_content .comment_orig_content { - margin-top: 0; - color: #666; -} - -.panel-comment_item .comment_content { - color: #666; -} - -.comment_content img { - max-width: 100% -} - -.orig_reply { - font-size: 12px; -} - -.homepagePostReplyPortrait a img { - border-radius: 100px; -} - -/* 表格 */ - -/* 滑动条 */ - -/* 翻页 */ - -/* 翻页*/ - -/* 个人主页翻页 */ -.pages_user_show a:hover, -.pages_user_show a.active { - background-color: #FC7033; - ; - color: #fff; - border: 1px solid #FC7033; -} - -.pages_user_show a { - display: inline-block; - border: 1px solid #d1d1d1; - color: #888; - float: left; - text-align: center; - padding: 3px 10px; - line-height: 1.9; - margin: 0 5px; -} - -.pages_user_show li { - float: left; - list-style-type: none; -} - -.pages_user_show ul li { - list-style-type: none !important; -} - -.pages_user_show ul li a { - color: #888 -} - -/* 小翻页 */ - -/* 搜索*/ - -/* 表单*/ - -.panel-form-label { - display: inline-block; - width: 10%; - min-width: 90px; - text-align: right; - line-height: 40px; - font-weight: normal; -} - -.panel-box-sizing { - -moz-box-sizing: border-box; - /*Firefox3.5+*/ - -webkit-box-sizing: border-box; - /*Safari3.2+*/ - -o-box-sizing: border-box; - /*Opera9.6*/ - -ms-box-sizing: border-box; - /*IE8*/ - box-sizing: border-box; - border-radius: 3px; -} - -input.task-form-80, -textarea.task-form-80, -select.task-form-80, -.task-form-80 { - padding: 5px; - width: 80%; - box-sizing: border-box -} - -input.task-form-100, -textarea.task-form-100, -select.task-form-100, -.task-form-100 { - padding: 5px; - width: 100%; -} - -input.task-height-40, -textarea.task-height-40, -.task-height-40, -select.task-height-40 { - height: 40px; -} - -input.task-height-150, -textarea.task-height-150, -.task-height-150 { - height: 150px; -} - -/*头像下拉弹框*/ - -/*滑块验证*/ - -.handler_bg { - background: #fff url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3hpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDIxIDc5LjE1NTc3MiwgMjAxNC8wMS8xMy0xOTo0NDowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo0ZDhlNWY5My05NmI0LTRlNWQtOGFjYi03ZTY4OGYyMTU2ZTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NTEyNTVEMURGMkVFMTFFNEI5NDBCMjQ2M0ExMDQ1OUYiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NTEyNTVEMUNGMkVFMTFFNEI5NDBCMjQ2M0ExMDQ1OUYiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTQgKE1hY2ludG9zaCkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo2MTc5NzNmZS02OTQxLTQyOTYtYTIwNi02NDI2YTNkOWU5YmUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NGQ4ZTVmOTMtOTZiNC00ZTVkLThhY2ItN2U2ODhmMjE1NmU2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+YiRG4AAAALFJREFUeNpi/P//PwMlgImBQkA9A+bOnfsIiBOxKcInh+yCaCDuByoswaIOpxwjciACFegBqZ1AvBSIS5OTk/8TkmNEjwWgQiUgtQuIjwAxUF3yX3xyGIEIFLwHpKyAWB+I1xGSwxULIGf9A7mQkBwTlhBXAFLHgPgqEAcTkmNCU6AL9d8WII4HOvk3ITkWJAXWUMlOoGQHmsE45ViQ2KuBuASoYC4Wf+OUYxz6mQkgwAAN9mIrUReCXgAAAABJRU5ErkJggg==") no-repeat center; -} - -.handler_ok_bg { - background: #fff url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3hpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDIxIDc5LjE1NTc3MiwgMjAxNC8wMS8xMy0xOTo0NDowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo0ZDhlNWY5My05NmI0LTRlNWQtOGFjYi03ZTY4OGYyMTU2ZTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NDlBRDI3NjVGMkQ2MTFFNEI5NDBCMjQ2M0ExMDQ1OUYiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NDlBRDI3NjRGMkQ2MTFFNEI5NDBCMjQ2M0ExMDQ1OUYiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTQgKE1hY2ludG9zaCkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDphNWEzMWNhMC1hYmViLTQxNWEtYTEwZS04Y2U5NzRlN2Q4YTEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NGQ4ZTVmOTMtOTZiNC00ZTVkLThhY2ItN2U2ODhmMjE1NmU2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+k+sHwwAAASZJREFUeNpi/P//PwMyKD8uZw+kUoDYEYgloMIvgHg/EM/ptHx0EFk9I8wAoEZ+IDUPiIMY8IN1QJwENOgj3ACo5gNAbMBAHLgAxA4gQ5igAnNJ0MwAVTsX7IKyY7L2UNuJAf+AmAmJ78AEDTBiwGYg5gbifCSxFCZoaBMCy4A4GOjnH0D6DpK4IxNSVIHAfSDOAeLraJrjgJp/AwPbHMhejiQnwYRmUzNQ4VQgDQqXK0ia/0I17wJiPmQNTNBEAgMlQIWiQA2vgWw7QppBekGxsAjIiEUSBNnsBDWEAY9mEFgMMgBk00E0iZtA7AHEctDQ58MRuA6wlLgGFMoMpIG1QFeGwAIxGZo8GUhIysmwQGSAZgwHaEZhICIzOaBkJkqyM0CAAQDGx279Jf50AAAAAABJRU5ErkJggg==") no-repeat center; -} - - -/*新建新增*/ -/*.edu-con-top{ padding:10px 0; background:#fff; border-bottom:1px solid #eee;font-size:16px; }*/ -/*.edu-con-top h2{ font-size:16px;}*/ -/*.edu-con-bg01{ width: 100%; background:#fff;}*/ -/*.edu-con-top .color-grey{ color:#666!important;}*/ - -/*附件上传的样式*/ - -/*作业描述、帖子内容*/ - -/*数据为空公共页面*/ -img.edu-nodata-img { - width: 200px; - margin: 50px auto 20px; - display: block; -} - -.edu-nodata-p { - font-size: 16px; - text-align: center; - color: #888; - border-bottom: none !important; -} - -/* new tab */ - -/*阴影*/ -.user_bg_shadow { - -webkit-box-shadow: 0 0 8px 0 rgba(142, 142, 142, .1); - -moz-box-shadow: 0 0 8px 0 rgba(142, 142, 142, .1); - box-shadow: 0 0 8px 0 rgba(142, 142, 142, .1); -} - -/*四边阴影*/ - -/*没有上边阴影*/ -/*阴影+边框*/ - -/*新增的公用样式*/ - -/*input框移出后没有内容将边框阴影变为红色*/ - -/*设置input框的placehoder的字体颜色*/ -input::-webkit-input-placeholder, -textarea::-webkit-input-placeholder { - color: #cccccc -} - -input::-moz-placeholder, -textarea::-moz-placeholder { - color: #cccccc; -} - -input::-moz-placeholder, -textarea::-moz-placeholder { - color: #cccccc; -} - -input::-ms-input-placeholder, -textarea::-ms-input-placeholder { - color: #cccccc; -} - -/*班级讨论区置顶的样式*/ -.btn-cir { - display: inline-block; - padding: 0px 5px; - border-radius: 25px; - line-height: 20px; - font-size: 12px; -} - -.btn-cir:hover { - background: #fff; - color: #333333 -} - -.all_work_border { - border: 1px solid #4c515d; -} - -/*TPI全部任务的数量需要加一个边框*/ - -.btn-cir-red { - background: red; - color: #fff; - font-weight: normal; -} - -.btn-cir-red:hover { - background: red; -} - -.btn-cir-orange { - background: #ff7500; - color: #fff; - font-weight: normal; - border: 1px solid #ff7500 -} - -.btn-top { - display: inline-block; - padding: 0px 5px; - line-height: 20px; - font-size: 12px; - border-radius: 3px; -} - -.btn-cir-big { - background: #999; - color: #fff; - display: inline-block; - padding: 0px 10px; - border-radius: 25px; - line-height: 25px; - height: 25px; - font-size: 12px; -} - -/*圆形绿色背景---------22*/ -.panel-inner-icon { - width: 22px; - height: 22px; - line-height: 22px; - border-radius: 50%; - background: #29bd8b; - display: block; - text-align: center -} - -.panel-inner-icon { - width: 22px; - height: 22px; - line-height: 22px; - border-radius: 50%; - background: #29bd8b; - display: block; - text-align: center -} - -/*圆形绿色背景------------------18*/ - -/*---------------块右上角的三角形,颜色为浅橙色*/ - -/* colorbox -*******************************************************************************/ -/* - Colorbox Core Style: - The following CSS is consistent between example themes and should not be altered. -*/ - -/* - User Style: - Change the following styles to modify the appearance of Colorbox. They are - ordered & tabbed in a way that represents the nesting of the generated HTML. -*/ - -/* these elements are buttons, and may need to have additional styles reset to avoid unwanted base styles */ - -/* avoid outlines on :active (mouseclick), but preserve outlines on :focus (tabbed navigating) */ - -/*-----下拉框--------*/ - -/*课程、实训的条状样式*/ - -/*-----课程名称下拉框--------*/ - -/*-----试卷提交状态--------*/ - -/*评阅状态*/ - -/*个人主页头部认证圆形背景*/ - -/*试卷答题倒计时*/ - -@keyframes ball-scale { - 0% { - width: 0px; - height: 0px - } - - 100% { - width: 80px; - height: 80px - } -} - -/*-------------------个人主页关注和粉丝列表改版 以及TPM合作者部分改版 2018/01/15-------------------------*/ - -/*选择实训的弹框*/ -.shixun_work_div { - overflow-y: auto; - max-height: 90px; -}html { - height: 100%; -} - -.w20_center { - width: 20px; - text-align: center; -} - -/*左侧导航*/ - -.user-info { - width: 80px; - height: 100px; - padding-top: 15px; -} - -a.user-info-img { - display: block; - width: 50px; - height: 50px; - margin: 0 auto; -} - -a.user-info-img img { - border-radius: 100px; - border: 2px solid #666; -} - -a.user-info-img img:hover { - border: 2px solid #888; -} - -a.user-info-name { - display: block; - font-size: 16px; - color: #fff; - max-width: 100px; - margin: 10px auto; - text-align: center; - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; -} - -.leftnav-box { - width: 80px; - height: 60px; - background: #292b3a; - padding: 10px 0; - margin-bottom: 2px; -} - -a.leftnav-box-inner { - display: block; - width: 77px; - border-left: 3px solid #292b3a; - background: #292b3a; - text-align: center; - padding: 10px 0; - color: #575f6c; -} - -a:hover.leftnav-box-inner, -a.leftnav-active { - border-left: 3px solid #3498db; - color: #fff !important; -} - -a:hover.leftnav-box-inner .btn-cir { - background: #fff; - color: #333333 -} - - - -/*右侧头部*/ - - -/* tab */ - -#tab_nav { - height: 42px; - background: #fff; - border-bottom: 1px solid #EEEEEE -} - -#tab_nav li { - float: left; - padding: 0 30px; - text-align: center; - height: 40px; - line-height: 40px; -} - -#tab_nav li a { - font-size: 14px; -} - -.tab_hover { - border-bottom: 2px solid #3498db; - background: #fff; - color: #3498db -} - -/*.tab_hover_setting{background:#FC7033;}*/ -.tab_hover a { - color: #3498db !important; -} - -/*.tab_hover_setting a{color:#fff;}*/ -.undis { - display: none; -} - -.dis { - display: block; -} - -.tab-info {} - -.info-partly { - display: block; - box-flex: 1; - flex: 1; - -webkit-flex: 1; - position: relative; -} - -/* 弹框 */ -.task-popup-text-center { - text-align: center; - color: #333; -} - -.task-popup-title { - border-bottom: 1px solid #eee; - padding: 10px 15px; -} - -.task-popup-submit { - margin: 0 auto 15px; - width: 120px; -} - -/* TPM */ - - -.panel-form-label { - display: inline-block; - width: 10%; - min-width: 90px; - text-align: right; - line-height: 40px; - color: #666; -} - -.panel-box-sizing { - -moz-box-sizing: border-box; - /*Firefox3.5+*/ - -webkit-box-sizing: border-box; - /*Safari3.2+*/ - -o-box-sizing: border-box; - /*Opera9.6*/ - -ms-box-sizing: border-box; - /*IE8*/ - box-sizing: border-box; -} - -.mb20 { - margin-bottom: 20px; -} - -/* TPi全屏展示css */ - -/* 左右版TPI 20170410byLB */ -#game_task_pass img { - cursor: pointer -} - -.-fit { - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; -} - -.-layout-v { - display: flex; - flex-direction: column; - -webkit-flex-direction: column; -} - -.page--leftnav { - position: fixed; - top: 0; - left: 0; - right: 0; - z-index: 9001; - width: 80px; - height: 100%; - background: #282c37; -} - -.page--body { - position: relative; - margin-top: 54px; -} - -.-flex { - box-flex: 1; - flex: 1; - -webkit-flex: 1; -} - -/*.-flex-auto{flex-basis:100%;}*/ -.split-panel.-fit { - position: absolute; -} - -.split-panel { - position: relative; - overflow: hidden; - min-height: 200px; - height: 100%; -} - -.-stretch { - align-items: stretch; -} - -.-layout { - display: flex; -} - -.split-panel--first { - overflow: hidden; -} - -.-relative { - position: relative; -} - -.-bg-white { - background-color: #eee; -} - -.-vertical { - flex-direction: column; - box-flex-direction: column; - -webkit-flex-direction: column; -} - -.-layout-h { - display: flex; - flex-direction: row; - box-flex-direction: row; - -webkit-flex-direction: row; -} - -.-horizontal { - flex-direction: row-reverse; - box-flex-direction: row-reverse; - -webkit-flex-direction: row-reverse; -} - -.-scroll { - overflow: auto; -} - -/*王昌------------拖拽增加样式---------------修改*/ -.-flex-basic40 { - width: 40%; - box-flex: auto; - flex: auto; - -webkit-flex: auto; -} - -.-flex-basic50 { - width: 60%; - box-flex: auto; - flex: auto; - -webkit-flex: auto; -} - -.b-label { - width: 4px; - cursor: ew-resize; - background: #2b2b2b; -} - -.h-center { - height: 4px; - cursor: ns-resize; - background: #333; -} - -.-changebg { - height: 3px; -} - -.-bg-weightblack { - background: #000; -} - -.-flex-basic70 { - box-flex: 4 9 auto; - flex: 4 9 auto; - -webkit-flex: 4 9 auto; - height: 70%; -} - -/*---------------------------------------------*/ -.-flex-basic60 { - box-flex: 2 1 auto; - flex: 2 1 auto; - -webkit-flex: 2 1 auto; - height: 30%; -} - -.-header-title { - max-width: 500px; - font-weight: normal; -} - -.-header-right { - background: #333; - border-radius: 25px; - padding: 5px 15px; - height: 30px; - position: absolute; - right: 10px; - line-height: 30px; -} - -.-bg-black { - background: #2b2b2b; - color: #f4f1ed; -} - -.-bg-darkblack { - background: #1D1D1D; - color: #fff; -} - -#blacktab_nav { - height: 40px; - background: #292929; -} - -#blacktab_nav li { - float: left; - padding: 0px 50px; - text-align: center; - height: 40px; - line-height: 40px; -} - -#blacktab_nav .add-webssh { - position: relative; -} - -#blacktab_nav .add-webssh span { - position: absolute; - top: 0; - right: 5px; - color: #fff; - cursor: pointer; -} - -#blacktab_nav li a { - font-size: 14px; -} - -#blacktab_nav li.code-file-tab { - padding: 0px; - width: 120px; - box-sizing: border-box; - padding: 0px 15px; -} - -.code-flie-list { - display: none; - position: absolute; - z-index: 5; - top: 40px; - background: #515151; - width: 300px; - left: 0px; - color: #fff; -} - -.blue-line { - border-left: 3px solid #199ED8 !important; - padding-left: 5px; -} - -.codefile-all { - max-height: 122px; - overflow-y: auto; - overflow-x: hidden; -} - -.codefile-all p { - text-align: left; - cursor: pointer; - height: 22px; - line-height: 22px; - margin-bottom: 3px; - padding-left: 5px; - border-left: 3px solid #515151; - width: 273px; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; -} - -.codefile-all p:hover { - background: #CCCCCC; - color: #333; -} - -.blacktab_hover a { - color: #fff; -} - -.-task-ces-top { - padding: 5px 15px; - background: #515151; - color: #bfbfbf; -} - -.-task-ces-info-left { - display: inline-block; - width: 100px; - text-align: right; -} - -.page--over { - position: fixed; - top: 0; - left: 80px; - right: 0; - z-index: 8000; - height: 100%; - color: #fff; -} - -.-task-list-inner { - background: #EFF2F7; - margin: 10px; - padding: 5px; -} - -.-task-list-title { - font-size: 14px; - color: #666; - word-wrap: break-word; - font-weight: normal; - max-width: 80%; -} - -.greytab-inner { - background: #fff; -} - -.blacktab-inner { - background: #333; -} - -.task-padding16 { - padding: 16px; -} - -/* TPM统计 20170321byLB */ - -/* 实训首页 20170330byLB */ - -/*.task-index-head-top{ padding:30px;background:#FFA65E;}*/ - -@keyframes bounce-down { - 25% { - transform: translateY(-10px); - } - - 50%, - 100% { - transform: translateY(0); - } -} - -/* 伸展型搜索 20170330byLB */ - -a.shixun-task-btn { - display: inline-block; - font-weight: bold; - border: none; - padding: 0 12px; - color: #666; - letter-spacing: 1px; - text-align: center; - font-size: 14px; - height: 30px; - line-height: 30px; - border-radius: 3px; -} - -.loading-center { - text-align: center; - align-items: center; - justify-content: center; -} - -.center { - vertical-align: middle; - text-align: center; -} - -/*实训--技能勋章*/ - -/* 合作者 20170516byLB */ - - -/* 实训首页的搜索 */ - -/*更多和收起*/ - -.searchFor { - width: auto; -} - -.searchFor .searchCon { - width: 250px; - border-bottom: 1px solid #cccccc; - float: left; - height: 30px; -} - -.searchFor .searchCon input { - border: none; - outline: none; - height: 29px; - width: 91%; -} - -.searchFor .search_close { - font-size: 18px; - float: right; - color: #666; - height: 29px; - line-height: 29px; - cursor: pointer; -} - -.tab_color { - color: #bfbfbf !important; -} - -/*_game_show.html.erb页面新增的一个tab*/ - -.comment-input { - width: 100%; - margin: 10px; - margin-right: 17px; -} - -.comment-input textarea { - border: none !important; - width: 100%; - outline: none; - height: 30px; - border-radius: 4px; - padding-left: 5px; - float: left -} - -/*-------新建阶段添加选项部分----------*/ -.option-item { - border: 1px solid #e2e2e2; -} - -.option-item { - display: block; - width: 38px; - height: 38px; - text-align: center; - line-height: 38px; - border-radius: 4px -} - -.check-option-bg { - background: #FF7500; - color: #ffffff !important; - border: 1px solid #FF7500 -} - -.position-delete { - position: absolute; - right: -22px; - top: 12px; - cursor: pointer -} - -/*--------TPI的答案选项卡------*/ - -/*.card:hover{background: #3f3f3f;}*/ - -.-center { - align-items: center; - min-height: 66px; -} - -.markdown { - letter-spacing: 0; - line-height: 1.6; - word-wrap: break-word; - word-break: break-word; -} - -.markdown code { - padding: 0; - line-height: 23px; - margin: 0; - font-family: "微软雅黑", "宋体"; -} - - -/*模拟实战---加载等待*/ - -.load { - width: auto; - top: 50%; - margin-top: -100px; - position: relative; -} - -/*#ajax-indicator-base span{ - color:#fff; - background-position: 0% 40%; - background-repeat: no-repeat; - */ -/*background-image: url(/images/loading.gif);*/ -/* - padding-left: 26px; - vertical-align: bottom; - z-index:999; -}*/ - -.empty { - background: #494A4C; - display: inline; - margin: 0 2px; - padding: 0 3px; -} - -/*二次回复的提示语的样式*/ - -/*选择题tab切换*/ - -/*---------------------试卷----------------------*/ - -/*作业问答*/ - -/*更新提示*/ -.update_back_main { - display: none; - position: fixed; - left: 0px; - top: 0px; - background: rgba(0, 0, 0, 0.3); - width: 100%; - z-index: 7001; - height: 100%; -} - -.tip-panel-animate-left { - position: absolute; - z-index: 9000; - left: 80px; - top: 290px; - background: #FFFFff; - width: 430px; - height: 140px; - border-radius: 3px; -} - -.tip-panel-animate { - position: absolute; - z-index: 10001; - right: 4px; - top: 40px; - background: #FFFFff; - width: 430px; - height: 140px; - border-radius: 3px; - display: none -} - -.tip-operator-btn { - width: 100%; - border-top: 1px solid #eee; - height: 40px; - position: absolute; - right: 0px; - bottom: 0px; - text-align: center; -} - -.tip-operator-btn a, -.tip-operator-btn span { - height: 100%; - text-align: center; - line-height: 40px; - width: 50% -} - -.tip-operator-btn a:hover, -.tip-operator-btn span:hover { - background-color: #f9f9f9 -} - -.tip-operator-btn a:first-child, -.tip-operator-btn span:first-child { - border-right: 1px solid #eee; - width: 49.5% -} - -.animate-tip { - animation: rightToleft 1s; -} - -.animate-tip-hide { - animation: leftToright 1s; -} - -@keyframes rightToleft { - from { - right: -400px; - } - - to { - right: 4px; - } -} - -@keyframes leftToright { - from { - right: 4px; - } - - to { - right: -420px; - } -} - -@keyframes rightToleft-l { - from { - left: -400px; - } - - to { - left: 80px; - } -} - -@keyframes leftToright-l { - from { - left: 80px; - } - - to { - left: -420px; - } -} - -/*----------实训TPI图片查看效果--------------*/ -.photo_display { - box-sizing: border-box; - width: 100%; - position: fixed; - top: 0px; - left: 0px; - padding-top: 64px; - padding-left: 80px; - background: rgba(0, 0, 0, 0); - height: 100%; - z-index: 100 -} - -.photo_display .task-popup { - width: 100% !important; - height: 100% !important; -} - -#picture-content img { - max-width: 100%; - height: 400px; - display: block; - margin: 0px auto; - margin-bottom: 20px; -} - -/*-------------学员统计 通关排行榜------------*/ - - -/*-----------实训配置、评测脚本-------------*/ -@font-face { - font-family: "iconfont"; /* Project id 2340181 */ - src: url('iconfont.woff2?t=1631773579834') format('woff2'), - url('iconfont.woff?t=1631773579834') format('woff'), - url('iconfont.ttf?t=1631773579834') format('truetype'); -} -html body { - font-size: 14px; - line-height: 2.0; - background: #fafafa; - font-family: "iconfont"; - color: #05101a; - height: 100%; - position: relative; - padding-right: 0px!important; -} - -html, -body { - height: 100%; -} - -body, -h2, -h3, -h4, -h6, -hr, -p, -blockquote, -dd, -ul, -ol, -li, -pre, -form, -fieldset, -legend, -button, -input, -textarea, -th, -td, -span { - margin: 0; - padding: 0; - margin-bottom: 0px!important; -} - -table, -input, -textarea, -select, -button { - outline: none; - border-radius: 3px; - font-family: "微软雅黑", "宋体"; - font-size: 14px; - line-height: 1.9; - border: 1px solid #eaeaea; - background: #FFFFff; - color: #05101A; -} - -textarea { - resize: none; -} - -/*设置input框的placehoder的字体颜色*/ -input::-webkit-input-placeholder, -textarea::-webkit-input-placeholder { - color: #cccccc -} - -input::-moz-placeholder, -textarea::-moz-placeholder { - color: #cccccc; -} - -input::-moz-placeholder, -textarea::-moz-placeholder { - color: #cccccc; -} - -input::-ms-input-placeholder, -textarea::-ms-input-placeholder { - color: #cccccc; -} - -div, -img, -tr, -td, -table { - border: 0; -} - -a:link,a:visited{ - text-decoration: none; - color: #05101a; -} - - -ol, -ul, -li { - list-style-type: none; -} - -select:disabled, -input:disabled { - background-color: #EEEEEE; -} - -/*万能清除浮动*/ -.clearfix:after { - clear: both; - content: "."; - display: block; - font-size: 0; - height: 0; - line-height: 0; - visibility: hidden; -} - -.clearfix { - clear: both; - zoom: 1 -} - -.cl { - clear: both; - overflow: hidden; -} - -/*通用浮动*/ -.fl { - float: left !important; -} - -.fr { - float: right !important; -} - -/*pre标签换行*/ -.break-word { - word-break: break-all; - word-wrap: break-word; -} - -.break-word-firefox { - white-space: pre-wrap !important; - word-break: break-all; -} - -/*文字左右两端对齐*/ -.justify { - text-align: justify -} - -.indent { - text-indent: 2em; -} - -.edu-max-h200 { - height: 200px; - overflow: auto; -} - -.edu-h270 { - height: 270px; -} - -.edu-position { - position: relative; -} - -a.edu-txt-w100, -.edu-txt-w100 { - width: 100px; - display: inline-block; - text-align: center -} - -a.edu-txt-w80, -.edu-txt-w80 { - width: 80px; - display: inline-block; - text-align: center -} - -/*超过隐藏*/ - -.task-hide { - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; -} - -.task-hide-2 { - overflow: hidden; - text-overflow: ellipsis; - display: -webkit-box; - -webkit-box-orient: vertical; - -webkit-line-clamp: 2; -} - -/*隐藏*/ -.none { - display: none!important; -} - -.block { - display: block; -} - -.boxsizing { - box-sizing: border-box -} - - -/*字体icon均为18px*/ -.iconfont { - font-size: 18px !important; -} - -/*通用文字大小样式*/ -.font-n { - font-weight: normal !important; -} - -.font-bd { - font-weight: bold; -} - -.font-n { - font-weight: normal; -} - -.font-12 { - font-size: 12px !important; -} - -.font-13 { - font-size: 13px !important; -} - -.font-14 { - font-size: 14px !important; -} - -.font-15 { - font-size: 15px !important; -} - -.font-16 { - font-size: 16px !important; -} -.weight400{ - font-weight: 400; -} -.weight500{ - font-weight: 500; -} -.weight{ - font-weight: bold; -} -.font-17 { - font-size: 17px !important; -} - -.font-18 { - font-size: 18px !important; -} - -.font-20 { - font-size: 20px !important; -} - -.font-22 { - font-size: 22px !important; -} - -.font-25 { - font-size: 25px !important; -} -.font-26 { - font-size: 26px !important; -} - -.font-24 { - font-size: 24px !important; -} - -.font-28 { - font-size: 28px !important; -} - -.font-30 { - font-size: 30px !important; -} - -.font-32 { - font-size: 32px !important; -} - -.font-36 { - font-size: 36px !important; -} - -.font-40 { - font-size: 40px !important; -} -.font-50 { - font-size: 50px !important; -} -.font-80 { - font-size: 80px !important; -} -.color-grey-b{color: #bbb !important} - -/*a标签的下划线*/ -a.decoration { - text-decoration: underline -} - -/*表单*/ -.panel-form-label { - display: inline-block; - width: 10%; - min-width: 90px; - text-align: right; - line-height: 40px; - font-weight: normal; -} - -/*通用内外边距*/ - -.mt1 { - margin-top: 1px; -} - -.mt2 { - margin-top: 2px; -} - -.mt3 { - margin-top: 3px; -} - -.mt4 { - margin-top: 4px; -} - -.mt5 { - margin-top: 5px !important; -} - -.mt6 { - margin-top: 6px; -} - -.mt7 { - margin-top: 7px !important; -} - -.mt8 { - margin-top: 8px !important; -} - -.mt9 { - margin-top: 9px; -} - -.mt10 { - margin-top: 10px !important; -} - -.mt12 { - margin-top: 12px; -} - -.mt13 { - margin-top: 13px; -} - -.mt14 { - margin-top: 14px; -} - -.mt15 { - margin-top: 15px !important; -} - -.mt16 { - margin-top: 16px; -} - -.mt17 { - margin-top: 17px; -} - -.mt18 { - margin-top: 18px; -} - -.mt20 { - margin-top: 20px !important; -} - -.mt22 { - margin-top: 22px !important; -} - -.mt23 { - margin-top: 23px !important; -} - -.mt24 { - margin-top: 24px !important; -} - -.mt25 { - margin-top: 25px; -} - -.mt28 { - margin-top: 28px; -} - -.mt30 { - margin-top: 30px !important; -} - -.mt34 { - margin-top: 34px !important; -} - -.mt35 { - margin-top: 35px !important; -} - -.mt36 { - margin-top: 36px !important; -} - -.mt40 { - margin-top: 40px; -} - -.mt45 { - margin-top: 45px; -} - -.mt50 { - margin-top: 50px; -} - -.mt56 { - margin-top: 56px; -} - -.mt60 { - margin-top: 60px; -} - -.mt70 { - margin-top: 70px; -} - -.mt80 { - margin-top: 80px; -} - -.mt100 { - margin-top: 100px; -} - -.mb0 { - margin-bottom: 0px !important; -} - -.mb3 { - margin-bottom: 3px; -} - -.mb5 { - margin-bottom: 5px; -} - -.mb7 { - margin-bottom: 7px; -} - -.mb10 { - margin-bottom: 10px; -} - -.mb12 { - margin-bottom: 12px; -} - -.mb13 { - margin-bottom: 13px; -} - -.mb14 { - margin-bottom: 14px; -} - -.mb15 { - margin-bottom: 15px!important; -} - -.mb16 { - margin-bottom: 16px; -} - -.mb20 { - margin-bottom: 20px !important; -} - -.mb25 { - margin-bottom: 25px; -} - -.mb26 { - margin-bottom: 26px; -} - -.mb30 { - margin-bottom: 30px !important; -} - -.mb40 { - margin-bottom: 40px !important; -} - -.mb50 { - margin-bottom: 50px !important; -} - -.mb60 { - margin-bottom: 60px !important; -} - -.mb70 { - margin-bottom: 70px !important; -} - -.mb80 { - margin-bottom: 80px !important; -} - -.mb100 { - margin-bottom: 100px !important; -} - -.ml-3 { - margin-left: -3px; -} - -.ml1 { - margin-left: 1px; -} - -.ml2 { - margin-left: 2px; -} - -.ml3 { - margin-left: 3px; -} - -.ml4 { - margin-left: 4px; -} - -.ml5 { - margin-left: 5px; -} - -.ml6 { - margin-left: 6px; -} - -.ml10 { - margin-left: 10px; -} - -.ml12 { - margin-left: 12px !important; -} - -.ml13 { - margin-left: 13px !important; -} - -.ml15 { - margin-left: 15px; -} - -.ml18 { - margin-left: 18px; -} - -.ml20 { - margin-left: 20px; -} - -.ml22 { - margin-left: 22px; -} - -.ml25 { - margin-left: 25px; -} - -.ml30 { - margin-left: 30px; -} - -.ml33 { - margin-left: 33px; -} - -.ml35 { - margin-left: 35px; -} - -.ml40 { - margin-left: 40px; -} - -.ml50 { - margin-left: 50px; -} - -.ml60 { - margin-left: 60px; -} - -.ml80 { - margin-left: 80px; -} - -.ml85 { - margin-left: 85px; -} - -.ml180 { - margin-left: 180px; -} - -.mr3 { - margin-right: 3px -} - -.mr4 { - margin-right: 4px -} - -.mr5 { - margin-right: 5px; -} - -.mr8 { - margin-right: 8px; -} - -.mr10 { - margin-right: 10px; -} - -.mr12 { - margin-right: 12px !important; -} - -.mr15 { - margin-right: 15px; -} - -.mr18 { - margin-right: 18px; -} - -.mr20 { - margin-right: 20px; -} - -.mr25 { - margin-right: 25px; -} - -.mr30 { - margin-right: 30px; -} - -.mr35 { - margin-right: 35px; -} - -.mr40 { - margin-right: 40px; -} - -.mr50 { - margin-right: 50px; -} - -.mr60 { - margin-right: 60px; -} - -.mr70 { - margin-right: 70px; -} - -.mr80 { - margin-right: 80px; -} - -.mr90 { - margin-right: 90px; -} - -.ml61 { - margin-left: 61px; -} - -.pt5 { - padding-top: 5px !important; -} - -.pt10 { - padding-top: 10px; -} - -.pt15 { - padding-top: 15px; -} - -.pt20 { - padding-top: 20px !important; -} - -.pt25 { - padding-top: 25px; -} - -.pt30 { - padding-top: 30px; -} - -.pt35 { - padding-top: 35px; -} - -.pt37 { - padding-top: 37px; -} - -.pt40 { - padding-top: 40px; -} - -.pt50 { - padding-top: 50px; -} - -.pt60 { - padding-top: 60px; -} - -.pt80 { - padding-top: 80px; -} - -.pb5 { - padding-bottom: 5px !important; -} - -.pb10 { - padding-bottom: 10px; -} - -.pb15 { - padding-bottom: 15px; -} - -.pb20 { - padding-bottom: 20px; -} - -.pb25 { - padding-bottom: 20px; -} - -.pb25 { - padding-bottom: 20px; -} - -.pb28 { - padding-bottom: 28px; -} - -.pb30 { - padding-bottom: 30px; -} - -.pb40 { - padding-bottom: 40px; -} - -.pb47 { - padding-bottom: 47px; -} - -.pb50 { - padding-bottom: 50px; -} - -.pb60 { - padding-bottom: 60px; -} - -.pb100 { - padding-bottom: 100px; -} - -.pr5 { - padding-right: 5px; -} - -.pr10 { - padding-right: 10px; -} - -.pr15 { - padding-right: 15px; -} - -.pr20 { - padding-right: 20px !important; -} - -.pr30 { - padding-right: 30px !important; -} - -.pr35 { - padding-right: 35px !important; -} - -.pl0 { - padding-left: 0px !important; -} - -.pl5 { - padding-left: 5px; -} - -.pl8 { - padding-left: 8px; -} - -.pl10 { - padding-left: 10px; -} - -.pl15 { - padding-left: 15px; -} - -.pl20 { - padding-left: 20px; -} - -.pl25 { - padding-left: 25px; -} - -.pl28 { - padding-left: 28px; -} - -.pl30 { - padding-left: 30px !important; -} - -.pl33 { - padding-left: 33px -} - -.pl35 { - padding-left: 35px; -} - -.pl40 { - padding-left: 40px; -} - -.pl50 { - padding-left: 50px; -} - -.pl60 { - padding-left: 60px; -} - -.pr5 { - padding-right: 5px; -} - -.pr10 { - padding-right: 10px; -} - -.pr15 { - padding-right: 15px; -} - -.pr20 { - padding-right: 20px !important; -} - -.pr25 { - padding-right: 25px !important; -} - -.pr30 { - padding-right: 30px !important; -} - -.pr40 { - padding-right: 40px; -} - -.padding5-10 { - padding: 5px 10px; - box-sizing: border-box -} - -.padding5-20 { - padding: 5px 20px; - box-sizing: border-box -} - -.padding10 { - padding: 10px; - box-sizing: border-box -} - -.padding15 { - padding: 15px; - box-sizing: border-box -} - -.padding20 { - padding: 20px; - box-sizing: border-box -} - -.padding10-20 { - padding: 10px 20px; - box-sizing: border-box -} - -.padding10-15 { - padding: 10px 15px; - box-sizing: border-box -} - -.padding10-30 { - padding: 10px 30px; - box-sizing: border-box -} - -.padding20-30 { - padding: 20px 30px; - box-sizing: border-box -} - -.padding30 { - padding: 30px; - box-sizing: border-box -} - -.padding30-20 { - padding: 30px 20px; - box-sizing: border-box -} - -.padding40 { - padding: 40px; - box-sizing: border-box -} - -.padding40-30 { - padding: 40px 30px; - box-sizing: border-box -} - -.padding40-20 { - padding: 40px 20px; - box-sizing: border-box -} - -/*行高*/ -.lineh-12 { - line-height: 12px !important; -} - -.lineh-15 { - line-height: 15px !important; -} - -.lineh-17 { - line-height: 17px !important; -} - -.lineh-20 { - line-height: 20px !important; -} - -.lineh-24 { - line-height: 24px !important; -} - -.lineh-25 { - line-height: 25px !important; -} - -.lineh-30 { - line-height: 30px !important; -} - -.lineh-35 { - line-height: 35px !important; -} - -.lineh-40 { - line-height: 40px !important; -} - -/*pre标签换行*/ -.break_word { - word-break: break-all; - word-wrap: break-word; -} - -.break_word_firefox { - white-space: pre-wrap !important; - word-break: break-all; -} - -/*定位*/ -.pr { - position: relative -} - -.df { - display: flex; - display: -webkit-flex; - display: -ms-flex; -} - -.flex1 { - flex: 1; -} - -/*去掉IE input框输入时自带的清除按钮*/ -input::-ms-clear { - display: none; -} - -/*自定义滚动条宽度*/ -::-webkit-scrollbar { - width: 7px; - height: 10px; - background-color: #F5F5F5; -} - -.ant-modal-close{ - top:8px!important; -} - -.newContainer { - min-height: 100%; - height: auto !important; - height: 100%; - /*IE6不识别min-height*/ - position: relative; -} - -.educontent { - width: 1200px; - margin: 0px auto; - box-sizing: border-box -} - -/*中间部分宽度固定为1200*/ -.newMain { - margin: 0 auto; - min-width: 1200px; -} - - -/*高度*/ - -/*文本位置*/ -.edu-txt-center { - text-align: center !important; -} - -.edu-txt-left { - text-align: left !important; -} - -.edu-txt-right { - text-align: right !important; -} - -/*背景颜色*/ -.edu-back-white { - background-color: #FFFFff; -} - -.edu-back-greyf5 { - background-color: #f5f5f5 !important; -} - -.edu-back-skyblue { - background: #F4FAFF; -} - -.edu-back-blue { - background-color: #459be6 !important; -} - -.edu-bg-light-blue { - background: #f7f9fd; - padding: 5px; -} - -/*发送实训弹框*/ -/*常用字体*/ -/*红色*/ -.color-red { - color: #FF0000 !important; -} - -/*白色*/ -.color-white { - color: #ffffff !important; -} - -/*黑色*/ -.color-dark { - color: #05101a !important; -} - -.color-ooo { - color: #000 !important; -} - -/*灰色*/ -.color-grey-name { - color: #1A0B00 !important; -} - -.color-grey-3 { - color: #333 !important; -} - -.color-grey-eb { - color: #EBEBEB !important; -} - -.color-grey-c { - color: #ccc !important; -} -a.hoverLine:hover{ - text-decoration: underline; -} -.color-grey-cd { - color: #cdcdcd !important; -} -.color-grey-d { - color: #ddd; -} - - -.color-grey-9 { - color: #999 !important; -} - -a:hover{ - color: #6684FE; -} - -.color-grey-98 { - color: #989898 !important; -} - -.color-grey-8 { - color: #888 !important; -} - -.color-grey-6 { - color: #666 !important; -} - -.color-grey-B2 { - color: #B2B2B2 !important; -} - -.color-grey-B3 { - color: #B3B3B3 !important; -} - -.color-grey-B4 { - color: #B4B4B4 !important; -} - -.color-grey-74 { - color: #747A7F !important; -} - - -a.color-grey-name:hover, -a.color-dark:hover, -a.color-grey-6:hover, -a.color-grey-3:hover,a.color-ooo:hover { - color: #2A61FF !important; -} - -/*蓝色*/ -.color-blue { - color: #2A61FF !important; -} -.color-blue-file { - color: #4598FA!important; -} -/* 绿色 */ -/*主*/ -.color-blue_4C { - color: #4CACFF !important; -} - - -/*橙色*/ -.color-orange { - color: #ff6800 !important; -} - -/*辅助文字*/ -.color-orange-tip { - color: #FF954C !important; -} - -/*提示文字*/ -.color-orange-tips { - color: #FF8204 !important; -} - -/*提示文字*/ -a.color-orange:hover, -a.color-orange-tip:hover { - color: #F06200 !important; -} - -/*黄色*/ -.color-yellow { - color: #EFC003 !important; -} - -.color-yellow-ff { - color: #FFA800 !important -} - -/*绿色*/ -.color-green { - color: #29BD8B !important; -} - -a.color-green:hover { - color: #28AC7F !important; -} - -/*红色*/ - -/*圆角*/ -.radius { - border-radius: 50%; -} - -.radius4 { - border-radius: 4px; -} - - -/*绿色圆形--例如:实训路径详情的编辑icon的背景*/ -.ring-green { - width: 18px; - height: 18px; - display: block; - border-radius: 50%; - background-color: #29BD8B; - text-align: center; -} - -.ring-op-green { - width: 18px; - height: 18px; - display: block; - border-radius: 50%; - background-color: rgba(41, 189, 139, 0.6); - text-align: center; -} - -.ring-grey { - width: 18px; - height: 18px; - line-height: 18px; - display: block; - border-radius: 50%; - background-color: rgba(204, 204, 204, 0.5); - text-align: center; -} - -.ring-blue { - width: 18px; - height: 18px; - display: block; - border-radius: 50%; - background-color: #4CACFF; - text-align: center; -} - -/*左侧label内容右对齐*/ - - -/*输入框样式---------宽度为百分比*/ - -.input-flex-35 { - flex: 1; - height: 35px; - padding: 5px; - box-sizing: border-box; -} - -.input-flex-40 { - flex: 1; - height: 40px; - padding: 5px; - box-sizing: border-box; -} - -.input-100-45 { - width: 100%; - height: 45px; - padding: 5px; - box-sizing: border-box; -} - -.input-60-40 { - width: 60%; - height: 40px; - padding: 5px; - box-sizing: border-box; -} - -/*输入框为灰色背景,获取焦点时背景变白色*/ -.greyInput { - background-color: #F5F5F5; - outline: none -} - -.greyInput:focus { - background-color: #fff; - border: 1px solid #ddd; -} - -/*输入框样式---------宽度为固定长度*/ - -.winput-240-40 { - width: 240px; - height: 40px; - padding: 5px; - box-sizing: border-box; -} - -.winput-120-35 { - width: 120px; - height: 35px; - padding: 5px; - box-sizing: border-box; -} - -/*输入框样式---------高度固定*/ - -.winput-100-130 { - width: 100%; - height: 130px; - padding: 5px; - box-sizing: border-box; -} - -.winput-100-150 { - width: 100%; - height: 150px; - padding: 5px; - box-sizing: border-box; -} - -/*百分比宽度*/ -.width100 { - width: 100% !important; -} - -.width89 { - width: 89%; -} -.width50 { - width: 50%; -} -.width40 { - width: 40%; -} -.width45 { - width: 45%; -} -.width10 { - width: 10%; -} -.width20 { - width: 20%; -} - -.width15 { - width: 15%; -} - -/*固定大小的宽度*/ - -a.edu-txt-w100, -.edu-txt-w100 { - width: 100px; - display: inline-block; - text-align: center -} - -a.edu-txt-w80, -.edu-txt-w80 { - width: 80px; - display: inline-block; - text-align: center -} - -/*最小高度*/ - -.minH-440 { - min-height: 440px; -} - -.minH-500 { - min-height: 500px; -} - -.minH-560 { - min-height: 560px; -} -.minH-650{ - min-height: 650px; -} -.minH-670{ - min-height: 670px; -} - -/*超出高度出现滚动条--纵向*/ - -.over210 { - height: 210px; - overflow-y: auto -} - -.over280 { - height: 280px; - overflow-y: auto -} - -/*---------------tab公用边框-----------------*/ - -.bor-bottom-greyE { - border-bottom: 1px solid #EEEEEE !important; -} - -.bor-left-greyE { - border-left: 1px solid #EEEEEE !important; -} - -.bor-top-greyE { - border-top: 1px solid #EEEEEE !important; -} - -/*---------------边框-----------------*/ - -.bor-grey-e { - border: 1px solid #eee; -} - -.bor-red { - border: 1px solid #db0505 !important; -} - -a.decoration { - text-decoration: underline !important; -} - -/*下拉菜单*/ -.edu-menu-panel { - position: relative; - cursor: pointer -} - -.edu-menu-list { - position: absolute; - padding: 5px 0px; - box-shadow: 0 2px 8px 0 rgba(0, 0, 0, .2); - display: none; - width: 120px; - background: #FFFFff; - right: -5px; - border-radius: 0px 0px 4px 4px; - color: #05101a; - font-size: 14px; - z-index: 9 -} - -.edu-menu-list li { - width: 100%; - padding: 0px 15px; - box-sizing: border-box; - height: 35px; - line-height: 35px; - cursor: pointer; -} - -.edu-menu-list li a { - width: 100%; - height: 100%; - display: block; - color: #323232; -} - -.edu-menu-panel:hover i, -.edu-menu-panel:hover { - color: #4cacff; -} - -.edu-menu-panel:hover .edu-menu-list { - display: block -} - -.edu-menu-list li:hover { - background: #4CACFF; -} - -.edu-menu-list li:hover a { - color: #fff !important; -} - -.ul-leftline:after { - position: absolute; - top: 0px; - content: ""; - width: 1px; - background-color: #eee; - height: 100%; - right: 0px; -} - -.overPart { - width: 240px; - height: 30px; - position: absolute; - right: 0; - top: -27px; - background: transparent; -} - -/*滑块验证*/ - -.handler_bg { - background: #fff url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3hpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDIxIDc5LjE1NTc3MiwgMjAxNC8wMS8xMy0xOTo0NDowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo0ZDhlNWY5My05NmI0LTRlNWQtOGFjYi03ZTY4OGYyMTU2ZTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NTEyNTVEMURGMkVFMTFFNEI5NDBCMjQ2M0ExMDQ1OUYiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NTEyNTVEMUNGMkVFMTFFNEI5NDBCMjQ2M0ExMDQ1OUYiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTQgKE1hY2ludG9zaCkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo2MTc5NzNmZS02OTQxLTQyOTYtYTIwNi02NDI2YTNkOWU5YmUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NGQ4ZTVmOTMtOTZiNC00ZTVkLThhY2ItN2U2ODhmMjE1NmU2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+YiRG4AAAALFJREFUeNpi/P//PwMlgImBQkA9A+bOnfsIiBOxKcInh+yCaCDuByoswaIOpxwjciACFegBqZ1AvBSIS5OTk/8TkmNEjwWgQiUgtQuIjwAxUF3yX3xyGIEIFLwHpKyAWB+I1xGSwxULIGf9A7mQkBwTlhBXAFLHgPgqEAcTkmNCU6AL9d8WII4HOvk3ITkWJAXWUMlOoGQHmsE45ViQ2KuBuASoYC4Wf+OUYxz6mQkgwAAN9mIrUReCXgAAAABJRU5ErkJggg==") no-repeat center; -} - -.handler_ok_bg { - background: #fff url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3hpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDIxIDc5LjE1NTc3MiwgMjAxNC8wMS8xMy0xOTo0NDowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo0ZDhlNWY5My05NmI0LTRlNWQtOGFjYi03ZTY4OGYyMTU2ZTYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NDlBRDI3NjVGMkQ2MTFFNEI5NDBCMjQ2M0ExMDQ1OUYiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NDlBRDI3NjRGMkQ2MTFFNEI5NDBCMjQ2M0ExMDQ1OUYiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTQgKE1hY2ludG9zaCkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDphNWEzMWNhMC1hYmViLTQxNWEtYTEwZS04Y2U5NzRlN2Q4YTEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NGQ4ZTVmOTMtOTZiNC00ZTVkLThhY2ItN2U2ODhmMjE1NmU2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+k+sHwwAAASZJREFUeNpi/P//PwMyKD8uZw+kUoDYEYgloMIvgHg/EM/ptHx0EFk9I8wAoEZ+IDUPiIMY8IN1QJwENOgj3ACo5gNAbMBAHLgAxA4gQ5igAnNJ0MwAVTsX7IKyY7L2UNuJAf+AmAmJ78AEDTBiwGYg5gbifCSxFCZoaBMCy4A4GOjnH0D6DpK4IxNSVIHAfSDOAeLraJrjgJp/AwPbHMhejiQnwYRmUzNQ4VQgDQqXK0ia/0I17wJiPmQNTNBEAgMlQIWiQA2vgWw7QppBekGxsAjIiEUSBNnsBDWEAY9mEFgMMgBk00E0iZtA7AHEctDQ58MRuA6wlLgGFMoMpIG1QFeGwAIxGZo8GUhIysmwQGSAZgwHaEZhICIzOaBkJkqyM0CAAQDGx279Jf50AAAAAABJRU5ErkJggg==") no-repeat center; -} - -/*tip公共样式的设置:*/ -.-task-title { - opacity: 0; - position: absolute; - left: 0; - top: 0; - display: none; - z-index: 100000; -} - -/*1*/ -.data-tip-down, -.data-tip-left, -.data-tip-right, -.data-tip-top { - position: relative; - box-shadow: 0px 0px 8px #000; - background: #000; - color: #fff; - max-width: 300px; - /*2*/ - word-wrap: break-word; - text-align: center; - border-radius: 4px; - padding: 0 10px; - border: 1px solid #000; - display: none; -} - -/*3*/ -.data-tip-down:after, -.data-tip-down:before, -.data-tip-left:before, -.data-tip-right:before, -.data-tip-left:after, -.data-tip-right:after, -.data-tip-top:after, -.data-tip-top:before { - /*4*/ - position: absolute; - content: ''; - width: 0; - height: 0; -} - -/*5*/ -.data-tip-down:after, -.data-tip-down:before { - left: 45%; - top: -10px; - /*6*/ - border-left: 5px solid transparent; - border-right: 5px solid transparent; - border-bottom: 10px solid #000; -} - -/*7*/ -.data-tip-down:before { - top: -11px; - border-bottom: 10px solid #000; -} - -/*8*/ -.data-tip-left:after, -.data-tip-left:before { - left: -10px; - top: 50%; - margin-top: -5px; - /*9*/ - border-top: 5px solid transparent; - border-bottom: 5px solid transparent; - border-right: 10px solid #000; -} - -/*10*/ -.data-tip-left:before { - left: -12px; - border-right: 10px solid #000; -} - -/*11*/ -.data-tip-right:after, -.data-tip-right:before { - right: -10px; - top: 50%; - margin-top: -5px; - /*12*/ - border-top: 5px solid transparent; - border-bottom: 5px solid transparent; - border-left: 10px solid #000; -} - -/*13*/ -.data-tip-right:before { - right: -10px; - border-left: 10px solid #000; -} - -/*14*/ -.data-tip-top:after, -.data-tip-top:before { - left: 45%; - bottom: -10px; - border-left: 5px solid transparent; - border-right: 5px solid transparent; - border-top: 10px solid #000; -} - -.data-tip-top:before { - bottom: -11px; -} - - -/*左右两栏排列、固定左右宽度----------ul*/ - - - -/* table--------------------------------*/ - -/* table-1底部边框 */ -.edu-pop-table { - width: 100%; - border: 1px solid #eee; - border-bottom: none; - background: #fff; - color: #888; - cursor: default -} - -.edu-pop-table tr { - height: 40px; -} - -.edu-txt-center { - text-align: center; -} - -.edu-txt-left { - text-align: left; -} - -.edu-txt-right { - text-align: right; -} - -.edu-pop-table tr th { - color: #333; - border-bottom: 1px solid #eee; -} - -.edu-pop-table tr td { - border-bottom: 1px solid #eee; -} - -/*th行有背景颜色且table无边框*/ -.edu-pop-table.head-color thead tr { - background: #fafbfb -} - -.edu-pop-table.head-color { - border: none -} - -.edu-pop-table.head-color tr:last-child td { - border: none -} - -/*--表格行间隔背景颜色-*/ -.edu-pop-table.interval-td { - border-bottom: 1px solid #eee; -} - -.edu-pop-table.interval-td thead tr { - background: #fafbfb -} - -.edu-pop-table.interval-td tbody tr:nth-child(even) { - background: #fafbfb -} - -.edu-pop-table.interval-td tbody tr td { - border: none -} - -/*--表格行间隔背景颜色(th也没有边框)-*/ - -/*--表格行移入背景颜色-*/ - -/*悬浮颜色为天蓝色*/ - -/*悬浮颜色为浅橙色*/ -/* table-2全边框 */ -.edu-pop-table-all { - width: 100%; - border: 1px solid #eee; - background: #fff; - color: #888; - border-collapse: collapse -} - -.edu-pop-table-all tr { - height: 30px; -} - -.edu-pop-table-all tr th { - color: #333; - border: 1px solid #eee; -} - -.edu-pop-table-all tr td { - border: 1px solid #eee; - padding: 5px -} - -/*table无边框、无背景颜色*/ - -/*数据为空公共页面*/ -img.edu-nodata-img { - width: 300px; - margin: 50px auto 20px; - display: block; - width: 128px; -} - -/* 不能加 padding-left: 18px; 会影响其他地方的居中 */ -.edu-nodata-p { - font-size: 20px; - text-align: center; - color: #999; - border-bottom: none !important; - box-sizing: border-box; -} - -/*输入为空或者错误的提示*/ - -.notice { - height: 25px; - margin-left: 150px; -} - -/*列表里菜单icon移入*/ -.edu-position-hide { - position: absolute; - top: 15px; - left: -20px; - box-shadow: 0px 2px 8px rgba(146, 153, 169, 0.5); - background: #fff; - z-index: 1001; - padding: 5px 0; - z-index: 999999; -} - -.edu-position-hide li a { - display: inline-block; - height: 30px; - width: 100px; - line-height: 30px; - text-align: center; - font-size: 12px !important; -} - -.edu-position-hide li a:hover { - background: #F1F1F1; - color: #05101A; -} - -.edu-position-hidebox i { - color: #bcbcbc; -} - -.edu-position-hidebox i:hover { - color: #4CACFF; -} - -.edu-position-hidebox a { - color: #05101A; -} - -.edu-position-hidebox:hover .edu-position-hide { - display: block; -} - -/*搜索(灰色背景、点击变白色)*/ - -/*-------------------------------------------公用按钮:以white-btn(或者edu-default-btn无padding)为基础,宽度和高度可以用padding填充,颜色用edu-color-btn,begin-----------------------------------------*/ -/*按钮*/ -/*默认按钮*/ -/*长条形按钮*/ - -/*正常按钮*/ -.white-btn { - text-align: center; - cursor: pointer; - display: inline-block; - padding: 0px 8px; - border: 1px solid #ccc; - color: #666; - letter-spacing: 1px; - font-size: 14px; - height: 26px; - line-height: 26px; - border-radius: 3px; -} - -a.white-btn.orange-btn { - border: 1px solid #FF7500; - color: #FF7500 !important; -} - -a.white-btn.orange-btn:hover { - border: 1px solid #F06200; - color: #F06200 !important; -} - -.defalutGreyBorder { - display: block; - padding: 0px 10px; - border: 1px solid #ccc; - height: 30px; - line-height: 30px; - border-radius: 4px; -} - -a.task-btn { - cursor: pointer; - display: inline-block; - border: none; - padding: 0 12px; - color: #fff; - background: #CDCDCD !important; - letter-spacing: 1px; - text-align: center; - font-size: 14px; - height: 30px; - line-height: 30px; - border-radius: 2px; - font-weight: 400; -} - -/*最新按钮:以个人主页为例-------------因高度和宽度都已经固定,后续不再支持使用,*/ -.user_default_btn { - cursor: pointer; - font-size: 14px; - display: block; - width: 120px; - text-align: center; - height: 40px; - line-height: 40px !important; - border-radius: 4px; - box-sizing: border-box -} - -.user_orange_btn { - color: #fff !important; - background-color: #FF6800; -} - -/*橙色签到按钮*/ -.user_orange_btn:hover { - background-color: #F06200; -} - -.user_grey_btn { - color: #fff !important; - background-color: #CCCCCC; - cursor: default -} - -/*灰色已经签到按钮*/ -.user_private_btn { - color: #646464 !important; - background-color: #fff; - border: 1px solid #989898 -} - -/*灰色私信、互相关注按钮*/ -.user_private_btn:hover { - color: #B2B2B2 !important; - border: 1px solid #B2B2B2; -} - -.btn_auto { - border-radius: 5px; - background: #fff; - padding: 0px 18px; -} - -/*可共用按钮,需添加padding或者边框*/ -.edu-default-btn { - display: block; - border-radius: 4px; -} - -a.edu-greenback-btn { - padding: 0px 10px; - background: #29BD8B; - color: #fff !important; - border: 1px solid #29BD8B; -} - -a.edu-greenback-btn:hover { - background-color: #28AC7F; -} - -a.edu-blueback-btn { - padding: 0px 10px; - background: #4CACFF; - color: #fff !important; - border: 1px solid #4CACFF; -} - -a.edu-blueline-btn { - padding: 0px 10px; - color: #4CACFF !important; - border: 1px solid #4CACFF; -} - -a.edu-blueback-btn:hover { - background-color: #459BE6; -} - -a.edu-blueline-btn:hover { - border: 1px solid #459BE6; - color: #459BE6 !important; -} - -a.edu-orangeback-btn { - background-color: #ff7500; - color: #fff !important; - border: 1px solid #FF7500 -} - -a.edu-orangeback-btn:hover { - background-color: #F06200; -} - -a.edu-orangeline-btn { - color: #FF7500 !important; - border: 1px solid #FF7500 -} - -a.edu-orangeline-btn:hover { - color: #F06200 !important; - border: 1px solid #F06200 -} - -a.edu-greyline-btn { - padding: 0px 10px; - background: #fff; - color: #666 !important; - border: 1px solid #eaeaea; - line-height: 33px; - height: 33px; -} - -a.edu-greyline-btn:hover { - border: 1px solid #B2B2B2; - color: #B2B2B2 !important; -} - -/*新建页面的提交和取消按钮*/ -.defalutCancelbtn { - display: block; - border: 1px solid #CDCDCD; - background-color: #fafafa; - color: #999 !important; - width: 120px; - text-align: center; - height: 30px; - line-height: 30px; - border-radius: 2px; - width: 130px; - height: 40px; - background: rgba(77, 124, 254, 0); - border: 1px solid rgba(76, 172, 255, 1); - border-radius: 4px; - line-height: 40px; - font-size: 16px; - font-family: MicrosoftYaHei; - font-weight: 400; - color: rgba(76, 172, 255, 1) !important; -} - -.defalutCancelbtn:hover { - border: 1px solid #B2B2B2; - color: #B2B2B2 !important; -} - -.defalutSubmitbtn { - display: block; - border: 1px solid #4CACFF; - background-color: #4CACFF; - color: #fff !important; - width: 120px; - text-align: center; - line-height: 40px; - border-radius: 2px; - width: 130px; - height: 40px; - background: rgba(76, 172, 255, 1); - border-radius: 4px; - font-size: 16px; - font-family: MicrosoftYaHei; - font-weight: 400; - color: rgba(255, 255, 255, 1); -} - -/*删除按钮*/ -.delectshixuncdbtn { - display: block; - border: 1px solid #CDCDCD; - background-color: #fafafa; - color: #999 !important; - width: 120px; - text-align: center; - height: 30px; - line-height: 30px; - border-radius: 2px; - width: 130px; - height: 40px; - background: rgba(77, 124, 254, 0); - border-radius: 4px; - line-height: 40px; - font-size: 16px; - font-family: MicrosoftYaHei; - font-weight: 400; -} - -.defalutSubmitbtn:hover { - background-color: #459BE6; - border: 1px solid #459BE6; -} - -/*-------------------------------------------公用按钮:以white-btn(或者edu-default-btn无padding)为基础,宽度和高度可以用padding填充,颜色用edu-color-btn,end-----------------------------------------*/ - -/*可点击按钮---蓝色*/ - -a.task-btn-orange { - background: #4CACFF !important; - color: #fff !important; -} - -a:hover.task-btn-orange { - background: #459BE6; -} - -/*可点击按钮---蓝色---蓝色边框*/ -.user_blue_btn { - border: 1px solid #4CACFF; - color: #4CACFF !important; -} - -/*可点击按钮---蓝色---蓝色背景*/ -a.user_bluebg_btn { - background-color: #4CACFF; - color: #fff; -} - -/*.user_white_btn{border: 1px solid #ffffff;color: #ffffff!important;}*/ - -.pointer { - cursor: pointer -} - -.cdefault { - cursor: default!important; -} - - -/*md编辑器恢复被覆盖样式*/ -.new_li .markdown-body ul>li, -.markdown-body ul>li { - list-style-type: disc !important; - margin-bottom: 0 !important; -} - -.new_li .markdown-body ol>li, -.markdown-body ol>li { - list-style-type: decimal !important; -} - -.new_li li { - margin-bottom: 0 !important; -} - -.markdown-body p { - font-size: 16px !important; -} - -/*搜索框*/ - -/* 弹框 */ - -.task-popup { - width: 30%; - background: #fff; - border: 1px solid #e8e8e8; - border-radius: 10px; -} - -.task-popup-text-center { - text-align: center; - color: #333; -} - -.task-popup-title { - border-bottom: 1px solid #eee; - padding: 0px 15px; - text-align: center; - box-sizing: border-box; - line-height: 70px; - height: 70px; - border-radius: 10px 10px 0px 0px; - font-size: 16px; - font-weight: bold; -} - -.task-popup-content { - padding: 15px; -} - -.task-popup-submit { - margin: 0px auto 15px; - width: 160px; -} - -.task-popup-sure { - margin: 0px auto 15px; - width: 54px; -} - -.task-popup-OK { - margin: 15px auto; - text-align: center -} - -#closeIcon { - position: absolute; - color: #fefefe -} - -/* 模板弹框 20170407byLB */ - -.task_popup_con { - padding: 20px; -} - -/* 模板弹框 20161013byLB */ - - -/*提示条*/ -.alert { - padding: 10px; - border: 1px solid transparent; - text-align: center; -} - -.alert-orange { - background-color: #fff9e9; - border-color: #f6d0b1; - color: #ee4a20; -} - -/* 个人主页翻页 */ -.pages_user_show a:hover, -.pages_user_show li.active a { - background-color: #4CACFF; - color: #fff; - border: 1px solid #4CACFF; -} - -.pages_user_show a { - border-radius: 2px; - display: inline-block; - border: 1px solid #d1d1d1; - background-color: #fff; - color: #888; - float: left; - text-align: center; - padding: 2px 10px; - line-height: 1.9; - margin: 0 5px; -} - -.pages_user_show li { - float: left; - list-style-type: none; -} - -.pages_user_show ul li { - list-style-type: none !important; -} - -.pages_user_show ul li a { - color: #888 -} - -/* 小翻页 */ - -/*左右排版结构:参考个人主页的经验值和金币等页面*/ -.leftPanel { - width: 22%; - float: left; -} - -.leftPanel li.nav { - padding: 10px 0px; - box-sizing: border-box; -} - -.leftPanel li.nav a { - padding-left: 40px; - display: block; - width: 100%; - box-sizing: border-box; - border-left: 2px solid #fff; - height: 24px; - line-height: 24px; -} - -.leftPanel li.nav.active a { - border-left: 2px solid #4CACFF; -} - -.rightPanel { - width: 78%; - float: right; -} - -/*个人主页,认证的圆圈*/ -.ringauto { - width: 20px; - height: 20px; - line-height: 20px; - text-align: center; - border-radius: 50%; - background-color: #F4FAFF; - margin-right: 5px; -} - - -/***** loading ******/ -/*****载入中******/ -#ajax-indicator { - position: absolute; - /* fixed not supported by IE*/ - background-color: #eee; - border: 1px solid #bbb; - top: 35%; - left: 40%; - width: 20%; - /*height:5%;*/ - font-weight: bold; - text-align: center; - padding: 0.6em; - z-index: 100000; - opacity: 0.5; -} - -html>body #ajax-indicator { - position: fixed; -} - -#ajax-indicator span { - color: #fff; - color: #333333; - background-position: 0% 40%; - background-repeat: no-repeat; - background-image: url(/images/loading.gif); - padding-left: 26px; - vertical-align: bottom; - z-index: 100000; -} - -/*最新、最热*/ -.bestChoose.active { - color: #4CACFF; -} - - -/*实训路径选择实训*/ -.edu-filter-cir-grey { - color: #666 !important; - width: auto; - padding: 0px 15px; - font-size: 14px !important; - text-align: center; - background: #f3f3f3; - border-radius: 10px; - display: block; - height: 25px; - line-height: 25px; -} - -.edu-filter-cir-grey:hover { - background: #4cacff; - color: #ffffff !important; -} - -.edu-filter-cir-grey.active { - background: #4cacff; - color: #ffffff !important; - font-size: 14px !important; -} - - -.with10 { - width: 10%; - box-sizing: border-box -} - -.with13 { - width: 13%; - box-sizing: border-box -} - -.with14 { - width: 14%; - box-sizing: border-box -} - -.with15 { - width: 15%; - box-sizing: border-box -} - -.with20 { - width: 20%; - box-sizing: border-box -} - -.with22 { - width: 22%; - box-sizing: border-box -} - -.with23 { - width: 23%; - box-sizing: border-box -} - -.with25 { - width: 25%; - box-sizing: border-box -} - -.with30 { - width: 30%; - box-sizing: border-box -} - -.with35 { - width: 35%; - box-sizing: border-box -} - -.with40 { - width: 40%; - box-sizing: border-box -} - -.with45 { - width: 45%; - box-sizing: border-box -} - -.with49 { - width: 49%; - box-sizing: border-box -} - -.with50 { - width: 50%; - box-sizing: border-box -} - -.with52 { - width: 52%; - box-sizing: border-box -} - -.with48 { - width: 48%; - box-sizing: border-box -} - -.with60 { - width: 60%; - box-sizing: border-box -} - -.with65 { - width: 65%; - box-sizing: border-box -} - -.with70 { - width: 70%; - box-sizing: border-box -} - -.with75 { - width: 75%; - box-sizing: border-box -} - -.with78 { - width: 78%; - box-sizing: border-box -} - -.with80 { - width: 80%; - box-sizing: border-box -} - -.with100 { - width: 100%; -} - -.transform-90 { - transform: rotate(-90deg); - -ms-transform: rotate(-90deg); - /* IE 9 */ - -moz-transform: rotate(-90deg); - /* Firefox */ - -webkit-transform: rotate(-90deg); - /* Safari 和 Chrome */ - -o-transform: rotate(-90deg); -} - -/*置顶*/ -.btn-cir { - display: inline-block; - padding: 0px 5px; - border-radius: 25px; - line-height: 20px; - font-size: 12px; -} - -.btn-cir-red { - background: red; - color: #fff; - font-weight: normal; - cursor: default -} - -.btn-cir-red:hover { - background: red; - color: #fff !important; -} - -/*动态标签*/ -.edu-filter-btn { - cursor: default; - display: inline-block; - padding: 0px 9px; - color: #666; - background: #fff; - text-align: center; - border-radius: 10px; - font-size: 12px; - height: 18px; - line-height: 18px; -} - -/*提交中、评阅中*/ -.edu-filter-btn-red { - border: 1px solid #DD1717; - color: #DD1717; -} - -/*已截止、未开启补交*/ -.edu-filter-btn-green { - border: 1px solid #29BD8B; - color: #29BD8B !important; -} - -/*申诉中、已开启补交*/ - -/*申诉中*/ - -/*未发布*/ - -/*已结束*/ -/*动态按钮*/ -.edu-activity-orange { - background-color: #FF6800; - color: #fff !important; - cursor: pointer; - border: 1px solid #ff6800; -} - -/*修改作品、补交作品、立即补交、补交附件*/ -.edu-activity-blue { - background-color: #4CACFF; - color: #fff !important; - cursor: pointer; - border: 1px solid #4CACFF; -} - -/*开始实战、开始答题、继续答题、继续实战、提交作品*/ - -/*匿评作品*/ -.edu-activity-green { - background-color: #29BD8B; - color: #fff !important; - cursor: pointer; - border: 1px solid #29BD8B; -} - -/*查看作品、查看实战、查看答题*/ - -/*取消关联*/ -/*课堂设置页面*/ - -/*-----下拉框--------*/ - -/*.ant-modal-header{*/ -/*border-radius: 10px;*/ -/*}*/ - -.color656565 { - color: #656565; -} - -.colorC8161D { - color: #C8161D; -} - -.bor-reds { - border: 1px solid #FF0000 !important; - border-radius: 4px; - border-top-left-radius: 4px; - border-top-right-radius: 4px; - border-bottom-right-radius: 4px; - border-bottom-left-radius: 4px; -} - -/*中间部分宽度固定为1200*/ - -.footer_con-p { - color: #898989 !important; -} - -.markdown-body { - text-align: justify; - word-break: break-all; - width:100%; -} - -.RightPaneDrawer .ant-drawer-content { - background: #070f1a; - overflow: hidden !important; -} - -.deletebuttom { - border: transparent; -} - -.RightPaneDrawer .jupyter_data_list { - max-height: 340px; -}/*头部导航条样式---2018-03-19--by-cs*/ - -.privateTag{ - display: block; - padding:0px 6px; - border-radius: 12px; - border:1px solid #2FC25B; - height: 18px; - line-height: 18px; - font-size: 12px; - margin-left: 10px; - color: #2FC25B; -} -.privateTag.red{ - color: #FF6832; - border:1px solid #FF6832; -} -.head-nav { - text-align: center; - height: 58px; - box-sizing: border-box; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - flex: 1; -} - -.head-nav ul#header-nav { - position: absolute; - top: 0px; - z-index: 3; - height: 58px; - box-sizing: border-box; -} - -.head-nav ul#header-nav li { - float: left; - height: 58px; - line-height: 58px; - cursor: pointer; - position: relative; - font-size: 16px; - padding-right:40px; -} - -.head-nav ul#header-nav li a { - display: block; - height: 100%; - width: 100%; - color: #fff; - font-size: 16px; -} - -.head-nav ul#header-nav li a:hover,.head-nav ul#header-nav li.active a { - color: #5091FF; -} - -.head-nav ul#header-nav li:last-child { - margin-right: 0px -} - - -.head-nav ul#header-nav li p:hover { - color: #cccccc; -} - -.head-nav ul#header-nav li p { - display: block; - height: 100%; - width: 100%; - color: #fff -} - -/* .head-nav ul#header-nav li.active div ul li a { - color: #000 !important; -} */ - -/* .head-nav ul#header-nav li.active div ul li a:hover { - color: #FFF !important; -} - -.head-nav ul#header-nav li.active ul li a { - color: #000 !important; -} */ - -/* .head-nav ul#header-nav li.active ul li a:hover { - color: #FFF !important; -} */ - -/* .head-nav ul#header-nav li.active:after { - content: ''; - position: absolute; - left: 0px; - top: auto; - bottom: 10px; - right: auto; - height: 2px; - width: 32px; - background-color: #459be5; -} */ - -.head-right { - box-sizing: border-box; - height: 60px; - display: flex; - align-items: center; -} - -/* tpm*/ -.educontent .icon { - padding-left: 0px !important; - padding-top: 0px !important; - padding-bottom: 0px !important; -} - -em.vertical-line { - display: inline-block; - width: 2px; - background: #999; - height: 10px -} - -/*.newslight{position: absolute;display: block;background: #FF6800;border-radius:30px;left: 25px;top: 13px;padding:0px 2px;color: #fff;font-size: 11px;*/ -/*height: 16px;line-height: 15px;min-width: 12px;text-align: center;}*/ - -.newslight { - display: block; - width: 5px; - height: 5px; - border-radius: 50%; - left: 25px; - top: 3px; - position: absolute; - background: #FF6800; -} - -.rateTrangle { - display: block; - border-width: 8px; - position: absolute; - top: -8px; - left: 35px; - border-style: dashed solid dashed dashed; - border-color: transparent transparent #fff transparent; - font-size: 0; - line-height: 0; - z-index: 2 -} - -#commentsStar { - height: 30px; - padding-top: 7px; - box-sizing: border-box; -} - -/*----------------------------------首页查询输入框*/ -.search-all { - width: 216px; - margin: 0px auto; - position: relative; - background-color: #24292D; -} - -.search-all .search-clear { - font-size: 14px; - display: inline-block; - width: 50px; - text-align: center; - color: #656565; - line-height: 60px; - cursor: pointer -} - -/* 右侧内容宽度变化的话,需要调整posi-search right的值*/ - - -.footercon { - border-bottom: 1px solid #47494d; -} - -.inner-footernav { - width: 560px; - margin: 0px auto -} - -.inner-footernav li { - float: left; - height: 50px; - width: 80px; - text-align: center -} - -.inner-footernav li a { - width: 100%; - text-align: center; - line-height: 50px; - color: #888 -} - -.inner-footer_con { - width: 1200px; - margin: 0 auto; -} - -.intermediatecenter { - width: 100%; - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; -} - -.footer_con-p { - color: #888; - margin-top: 10px; -} - -/*banner图*/ -.banner { - width: 100%; - height: 345px; - position: relative; - overflow: hidden; - border-radius: 10px; -} - -.banner .img { - position: absolute; - left: 0px; - top: 0px; -} - -.banner .img li { - float: left; - width: 1200px; - height: 345px; -} - -.banner .img li a { - display: block; - width: 100%; - height: 100% -} - -.banner .img li img { - width: 100%; - height: 345px; -} - -.banner .num { - position: absolute; - width: 100%; - bottom: 30px; - left: 0px; - text-align: center; - font-size: 0px; -} - -.banner .num li { - width: 7px; - height: 7px; - background: rgba(225, 225, 225, 0.3); - border-radius: 50%; - display: inline-block; - margin: 0 5px; - cursor: pointer; -} - -.banner .num li.on { - width: 12px; - border-radius: 8px; -} - -/*更多*/ -.moreitem { - position: absolute; - right: 5px; - top: 35px; - height: 15px; - color: #656565 -} - -/*块状列表*/ -.square-list { - width: 100%; - box-sizing: border-box; - margin-top: 20px; - flex-wrap: wrap; - display: flex; -} - -.square-Item { - position: relative; - width: 280px; - margin-right: 26px; - margin-bottom: 26px; - float: left; - border-radius: 6px; - background-color: #fff; - box-shadow: 0px 0px 12px rgba(0, 0, 0, 0.1); -} - -.square-Item:hover { - /*bottom: 3px;*/ - box-shadow: 0px 0px 12px rgba(0, 0, 0, 0.3); -} - -.square-Item:hover .closeSquare { - display: block -} - -.square-Item:nth-child(4n+0) { - margin-right: 0px; -} - -.square-Item .square-img { - display: block; - width: 100% -} - -.square-Item .square-img img { - width: 100%; - border-radius: 6px 6px 0px 0px; - vertical-align: bottom; - height: 210px; -} - -.square-main { - padding: 15px 20px; - box-sizing: border-box; -} - -.course-bottom { - height: 48px; - padding: 10px 0px; - box-sizing: border-box -} - -.squareIconSpan { - line-height: 25px -} - -/*块状列表(小)---列如实训路径详情选择实训*/ -.square-Item.smallSquare { - width: 32%; - margin-right: 1.33%; - margin-bottom: 10px; - min-height: 210px; - border: none; -} - -.square-Item.smallSquare:hover { - bottom: 0px; - box-shadow: 0px 0px 12px rgba(0, 0, 0, 0.1); -} - -.smallSquare:nth-child(3n+0) { - margin-right: 0px; -} - -.partimg { - height: 180px; - width: 100%; - border-radius: 6px 6px 0px 0px; -} - -/*块状列表上面的绿色标签*/ -.tag-green { - position: absolute; - left: 10px; - bottom: 90px; -} - -.tag-green .tag-name { - display: block; - width: auto; - /*background-image: url("/images/educoder/tag1.png");*/ - background: rgba(000, 000, 000, 0.56); - border: 1px solid rgba(255, 255, 255, 0.56); - border-radius: 3px; - font-size: 12px; - /*opacity: 0.56;*/ - background-size: 100% 100%; - padding: 0px 8px; - color: #fff; - float: left; -} - -.tag-orange { - position: absolute; - right: 0px; - top: 12px; -} - -.tag-orange .tag-name { - display: block; - width: auto; - background-color: #FF6800; - background-size: 100% 100%; - padding: 0px 8px; - color: #fff; - float: left; - height: 28px; - line-height: 28px; - border-top-left-radius: 4px; - border-bottom-left-radius: 4px; -} - -/*发送至弹框里的下拉框*/ - -/*门户左侧导航栏*/ -.user_navlist { - position: absolute; - left: 0px; - width: 160px; - top: 0px; - height: 100%; -} - -.user_navlist_black { - position: relative; - width: 100%; - height: 100%; - border-radius: 8px 0px 0px 8px; - background: rgba(0, 0, 0, 0.8); -} - -.user_navlist_white { - position: absolute; - left: 160px; - background: #FFFFff; - width: 622px; - min-height: 345px; - top: 0px; - z-index: 1; - display: none; - padding: 0px 30px; - box-sizing: border-box; - box-shadow: 0px 0px 10px rgba(76, 76, 76, 0.2); - z-index: 99 -} - -.user_navlist_white a { - color: #989898; - margin-right: 15px; - font-size: 14px; - display: block; - float: left; - height: 30px; - line-height: 30px; -} - -.user_navlist_white a:hover { - color: #4cacff -} - -.headIcon { - height: 100%; - box-sizing: border-box; - margin: 0px !important; -} - -.black_nav_list { - padding: 4px 0px; - box-sizing: border-box; - height: 100%; -} - -.black_nav_list li { - line-height: 40px; - height: 40px; - color: #fff; - cursor: pointer; -} - -.black_nav_span { - display: block; - margin: 0px 20px; - border-bottom: 1px solid #4B4B4B; - padding-left: 8px; - color: #FAFAFA -} - -.welcome_shixun_index:last-child .black_nav_span { - border-bottom: none -} - -.black_nav_list li:hover { - background: #fff; -} - -.black_nav_list li:hover .black_nav_span { - color: #05101A !important; -} - -.black_nav_list li:hover>a { - color: #4cacff !important; -} - -.black_nav_list li:hover .user_navlist_white { - display: block -} - -.navlistpanel-line { - border-bottom: 1px solid #EBEBEB; -} - -.navlistpanel-line:last-child { - border-bottom: none; -} - -.little-title { - width: 100%; - height: 20px; - line-height: 20px; - color: #05101a; - font-size: 15px; - margin-bottom: 8px; -} - -/*排行榜*/ -.ranking { - text-align: center; - margin-top: 40px -} - -.grade { - width: auto; - display: inline-block; -} - -.grade li { - float: left; - margin: 0px 10px; - width: 60px; -} - -.ranking a img { - width: 60px; - height: 60px; - border-radius: 50%; - box-shadow: 0px 0px 12px rgba(0, 0, 0, 0.2); -} - -.mentor-ranking { - background-color: #EFEFEF; - background-size: 100% 100%; -} - -.huangguan { - position: absolute; - top: -30px; - left: 13px; -} - -/*消息盒子*/ - -/* - colorbox - User Style: - Change the following styles to modify the appearance of Colorbox. They are - ordered & tabbed in a way that represents the nesting of the generated HTML. -*/ - -/* these elements are buttons, and may need to have additional styles reset to avoid unwanted base styles */ - -/* avoid outlines on :active (mouseclick), but preserve outlines on :focus (tabbed navigating) */ - -/*-----------------------------登录-------------------------------*/ - -#log_reg_content { - border-radius: 5px; - background: #FFFFff; - width: 100%; - text-align: center; - position: absolute; - top: 165px; - left: 0px; - padding: 40px 30px; - box-sizing: border-box -} - -.log_nav { - border-bottom: 1px solid #eaeaea; -} - -.log_nav li { - float: left; - text-align: center; - font-size: 16px; - padding-bottom: 15px; - /*margin: 0px 20px;*/ - cursor: pointer; -} - -.log_nav li.active { - border-bottom: 2px solid #459be5; -} - -.log-botton { - width: 100%; - text-align: center; - color: #FFFFff !important; - display: block; - background: #cbcbcb; - height: 45px; - line-height: 45px; - border-radius: 4px; - letter-spacing: 2px; - cursor: pointer -} - -.log-botton:hover { - color: #FFFFff !important; -} - -.log-botton.active { - background: #4cacff; -} - -.gain-code { - width: 48%; - display: block; - float: right; - height: 45px; - line-height: 45px; - text-align: center; - background: #CBCBCB; - color: #FFFFff !important; - border-radius: 4px; - cursor: pointer -} - -.gain-code:hover { - color: #FFFFff !important; -} - -/*-----------------------------注册、找回密码、绑定邮箱----------------------------*/ - -/*----------------------------用户资料完善、认证等页面-----------------*/ - -/*提交、保存*/ - -/*选择文件*/ - -/*更换照片*/ - -/*账号安全*/ - -/*----------------------------试用申请弹框--------------------------*/ - -/*-----------------------------个人主页页面-begin-------------------------*/ -.user-main-half { - width: 100%; - height: 465px; - background: #fff; - margin-bottom: 20px; - position: relative -} - -.user-headImg { - width: 100%; - height: 160px; - background-image: url("/images/educoder/userhead.jpg"); - position: absolute; - width: 100%; - left: 0px; - top: 0px -} - -.user-headCon { - position: absolute; - width: 100%; - left: 0px; - top: 0px; - min-height: 465px; -} - -.inline { - width: auto; - display: inline-block; -} - -.headtab { - width: 188px; - height: 60px; - text-align: center -} - -.headtab span, -.headtab a { - display: block; - width: 100%; - text-align: center; -} - -.headtab span { - color: #989898; - font-size: 14px; -} - -.headtab a { - color: #fff; - font-size: 24px; -} - -.headphoto { - text-align: center; - background: #FFFFff; - width: 115px; - height: 115px; - padding: 3px; - border-radius: 50%; - position: relative; - float: left; - margin-top: 19px; - box-sizing: border-box -} - -.headphoto img { - width: 109px; - border-radius: 50%; - height: 109px; -} - -.headphoto-black { - display: none; - cursor: pointer; - position: absolute; - top: 3px; - left: 3px; - width: 109px; - height: 109px; - text-align: center; - line-height: 112px; - border-radius: 50%; - background-color: rgba(0, 0, 0, 0.3); - color: #fff; -} - -.myName { - display: block; - width: auto; - color: #05101A; - font-size: 24px; - height: 28px; - line-height: 28px; - margin-top: 5px -} - -.mypost { - color: #686868; - font-size: 14px; - display: block; - width: auto; - height: 20px; - line-height: 20px; -} - -.mysign-span { - margin: 0 auto; - color: #05101A; - font-size: 14px; - display: block; - width: 280px; - cursor: pointer; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; -} - -.mysign-input { - margin: 0 auto; - color: #05101A; - font-size: 14px; - width: 280px; - height: 28px; - border: none; - outline: none; - text-align: center -} - -.v-h-line { - display: block; - width: 1px; - height: 40px; - background-color: #999; - margin-top: 12px; -} - - -/*我的实训、进度条*/ -.user-bar { - position: relative; - width: 100%; - height: 8px; - background-color: #CDCDCD; - border-radius: 4px; -} - -.user-bar p { - position: absolute; - left: 0px; - top: 0px; - height: 100%; - background-color: #4CACFF; - border-radius: 4px; -} - -/*我的课堂和我的项目,公开梯形*/ -.publicpart { - position: absolute; - left: 1px; - top: 1px; - width: 0; - height: 0; - border-left: 80px solid #4cacff; - border-bottom: 80px solid transparent; - z-index: 1; -} - -.publicpart.orangeBlack { - border-left: 80px solid #FF6800; -} - -.smalltrangle { - display: block; - position: absolute; - left: 1px; - top: 1px; - border-left: 25px solid #fff; - border-bottom: 25px solid transparent; - z-index: 2; -} - -.publicword { - transform: rotate(-45deg); - text-align: center; - color: #FFF; - font-size: 14px; - display: block; - position: absolute; - width: 50px; - left: 0px; - z-index: 3; - top: 15px; -} - -.closeSquare { - position: absolute; - width: 100%; - left: 0px; - top: 0px; - text-align: center; - background-color: rgba(0, 0, 0, .5); - height: 100%; - z-index: 5; - display: none; - cursor: default -} - -.substance { - padding: 40px 40px 0px 40px; - box-sizing: border-box; - text-align: center; - border-bottom: 1px solid #EAEAEA; - min-height: 241px; -} - -.subName { - line-height: 20px; - height: 40px; - text-align: center; - color: #1A0B00; - display: -webkit-box; - -webkit-box-orient: vertical; - -webkit-line-clamp: 2; - overflow: hidden; -} - -/*题库以及资料*/ -.secondNav li { - color: #676767; - margin: 0px 20px; - float: left -} - -.secondNav li a:hover { - color: #4CACFF -} - -.secondNav li.active a { - color: #4CACFF -} - -/*题库*/ -.dataBank_Item { - margin-bottom: 3px; - width: 100%; - border-bottom: 1px solid #EEEEEE; - padding: 17px 37px 17px 20px; - box-sizing: border-box; - background: #fff; - display: flex; - cursor: pointer -} - -.dataBank_Item:hover { - box-shadow: 0px 0px 15px rgba(76, 76, 76, 0.2) -} - -.dataBank_Item:last-child { - border: none; -} - -.dataItemLeft { - margin-right: 20px; - width: 20px; -} - -.dataItemRight { - flex: 1; -} - -.dataTitle { - color: #05101A; - display: block; - float: left; - max-width: 400px; - white-space: nowrap; - text-overflow: ellipsis; - overflow: hidden; -} - -.itembottom span.bottomspan { - display: block; - width: 200px; - text-align: left -} - -.search_course_list { - height: 150px; - overflow-y: auto -} - -.search_course_list li { - height: 30px; -} - -/*资料*/ -.userdata { - width: 622px; - margin: 0px auto; - background: #fff; - margin-bottom: 80px; - padding: 40px; - box-sizing: border-box; - border-radius: 4px -} - -/*发送题库的筛选*/ - - - -/*-------------------------------精选实训-------------------------------*/ -.shaiTitle { - display: block; - padding-right: 20px; -} - -.shaiContent li.shaiItem.active { - background-color: #4CACFF !important; - color: #fff !important; -} - -.shaiContent li.shaiItem { - padding: 3px 15px; - float: left; - border-radius: 4px; - color: #4C4C4C; - cursor: pointer; - margin-right: 15px; - display: block -} - -.shaiContent li.shaiItem:hover { - background-color: #4CACFF !important; - color: #fff !important; -} - -.shaiAllItem { - max-width: 1138px; -} - -.subshaicontent { - display: none; - box-sizing: border-box; - position: absolute; - width: 100%; - top: 33px; - left: 0px; - background-color: #fff; - box-shadow: 0px 1px 4px rgba(76, 76, 76, 0.2); - padding: 0px 20px; - z-index: 99999; - border-radius: 4px; - max-height: 800px; - overflow-y: auto -} - -.subshaicontent-part { - border-bottom: 1px solid #eee; -} - -.subshaicontent-part:last-child { - border-bottom: none; -} - -.subshaicontent a:hover, -.subshaicontent a.active { - color: #4CACFF -} - -.subshaicontent a { - float: left; - margin-right: 20px; - color: #999; - cursor: pointer -} - - -.search-new { - width: 248px; - height: 32px; - position: relative; -} - -.search-span { - display: block; - position: absolute; - width: 100%; - height: 100%; - left: 0px; - top: 0px; - background-color: #F4F4F4; - border: 1px solid #EAEAEA; - border-radius: 4px; - z-index: 1 -} - -.search-new-input { - height: 32px; - padding-left: 5px; - width: 225px; - border: none; - box-sizing: border-box; - background: none; - outline: none; - position: absolute; - left: 0px; - top: 1px; - z-index: 2 -} - -.search-new img, -.search-new a { - cursor: pointer; - position: absolute; - right: 2px; - top: 2px; - z-index: 2 -} - -.search-new a { - top: 0px -} - -.search-new-input:focus+.search-span { - background-color: #fff; -} - -.controlblue { - width: 0px; - height: 15px; - background-color: #4CACFF; - border-radius: 7px; - position: absolute; - left: 0px; - top: 0px; - z-index: 1 -} - -.controlring { - width: 13px; - height: 13px; - border-radius: 50%; - background-color: #fff; - position: absolute; - left: 1px; - top: 1px; - z-index: 2 -} - -/*庞门用于实训,站酷黑用于路径*/ -@font-face { - font-family: 'panmen-webfont'; - src: url('../fonts/panmen-webfont.ttf'); -} - -/*TPM*/ -.shixunDetail_top { - width: 100%; - background-image: url("/images/educoder/shixun-detail.jpg"); - height: 240px; - justify-content: center; - align-items: center; - display: -webkit-flex; - background-size: cover; - background-position: center; - background-repeat: no-repeat; -} - -.task-item { - margin-top: 30px; - padding-bottom: 30px; - border-bottom: 1px solid #eee -} - -.task-item:last-child { - border-bottom: none; -} - -.recomments { - margin-bottom: 20px; -} - -.recomments:first-child { - margin-top: 0px; -} - -.recomments:last-child { - margin-bottom: 0px; - border: none; - padding-bottom: 0px; -} - -.url-input { - border: none; - padding: 0px; - font-size: 12px; - color: #999; - outline: none -} - -.TPMtaskName { - max-width: 500px -} - -/*任务*/ -.recomment-name { - max-width: 222px; - display: block -} - -.task-colspan { - min-width: 25%; - text-align: left; - display: block; - float: left; - color: #999; -} - -/*新建任务*/ -.challenge_nav { - padding: 20px 20px 0px 20px; - border-bottom: 1px solid #eee; -} - -.challenge_nav li { - width: auto; - float: left; - margin-right: 20px; - position: relative -} - -.challenge_nav li.active:after { - position: absolute; - content: ''; - width: 76%; - background-color: #4CACFF; - height: 3px; - border-radius: 2px; - left: 25%; - bottom: 0px; -} - -.challenge_nav li a { - display: block; - width: 100%; - padding-bottom: 20px; -} - -.add_choose_type { - width: 60px; - height: 20px; - line-height: 19px; - border-radius: 2px; - background-color: #eaeaea; - color: #999 !important; - display: block; - float: left; - text-align: center; - margin-top: 4px; -} - - - -.task_tag_span { - float: left; - padding: 0px 10px; - background-color: #eee; - color: #999; - border-radius: 2px; - margin-right: 10px; - margin-bottom: 8px; -} - -.task_tag_span span { - float: left; -} - -.task_tag_span a { - font-size: 18px; - margin-left: 5px; - float: left; - line-height: 28px; - height: 28px; - cursor: pointer -} - -.task_tag_span a:hover { - color: #666 !important; -} - -.show_content_grey { - padding: 10px 15px; - background-color: #F4F4F4; - color: #05101A; - text-align: justify; - word-break: break-all; - border-radius: 4px; - width: 100%; - box-sizing: border-box -} - -.empty { - background: #494A4C; - display: inline; - margin: 0 2px; - padding: 0 3px; -} - -/*选择题*/ -.option-item { - border: 1px solid #e2e2e2; -} - -.option-item { - display: block; - width: 38px; - height: 38px; - text-align: center; - line-height: 38px; - border-radius: 4px; - cursor: pointer -} - -.check-option-bg { - background: #FF7500; - color: #ffffff !important; - border: 1px solid #FF7500 -} - -.position-delete { - position: absolute; - right: -22px; - top: 12px; - cursor: pointer -} - -.position-delete:hover i { - color: #4cacff !important; -} - -/*排行榜*/ -.rankings li { - line-height: 40px; - height: 40px; -} - -.rankingindex { - width: 24px; - text-align: center; -} - -/*合作者*/ -.collaborators-item { - border-bottom: 1px solid #eee; - cursor: default; - padding-top: 30px; - padding-left: 20px -} - -.collaborators-item:last-child { - border-bottom: none; -} - -.upload_select_box { - width: 100%; - box-sizing: border-box; - height: 240px; - overflow-y: auto; - padding: 10px; - background: #F4FAFF; - color: #333; -} - -/*配置*/ - -/*版本库*/ - -.pullreques_name { - width: 120px; - text-align: left; - margin-right: 10px -} - -.pullreques_pull_txt { - display: block; - margin-left: 10px; - max-width: 640px; - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; -} - -.versionFileList li { - border-bottom: 1px solid #eee; -} - -.versionFileList li:last-child { - border-bottom: none; -} - -/*项目版本库--旧版*/ - -/* 提交记录详情------文本变更样式 */ - -.old { - background: #ffecec; -} - -.old:hover { - background: #fffaf1; -} - -.new { - background: #eaffea; -} - -.new:hover { - background: #fffaf1; -} - - -/*-------------------------------实训路径-------------------------------*/ - -.pathNavLine { - position: absolute; - bottom: -8px; - width: 100%; -} - -.path-nav li { - float: left; - padding: 0px 30px; - height: 42px; -} - -.path-nav li a { - color: #fff; - font-size: 16px; - display: block; - height: 40px; -} - -.path-nav li.active a { - border-bottom: 3px solid #4CACFF; - color: #4CACFF; -} - -/*---实训路径详情----*/ -.subhead { - width: 100%; - margin-bottom: 40px; - background-size: 100% 100%; - background-image: url("/images/educoder/path-detail.jpg"); - height: 240px; - justify-content: center; - align-items: center; - display: -webkit-flex; - background-size: cover; - background-position: center; - background-repeat: no-repeat; -} - -.subhead_content { - width: 1200px; - margin: 0px auto; -} - -.pathInfo li { - text-align: center; - float: left; - margin-right: 30px; -} - -.pathInfo li span { - display: block; -} - -.produce-content { - padding: 40px 20px; - background-color: #fff; - box-sizing: border-box -} - -.lesson-saved-list-item { - border-bottom: 1px solid #EBEBEB; - padding: 37px 0px -} - -.title-line { - padding: 0px 20px; -} - -.paragraph { - height: 50px; - padding: 10px 20px 10px 47px; - box-sizing: border-box -} - -.paragraph:hover { - background-color: #F0F8FF; -} - -.lesson-saved-list-item:last-child { - border: none; -} - -.click_add { - text-align: center; - height: 90px; - line-height: 90px; - background-color: #fff; - border-top: 1px solid #EBEBEB; - cursor: pointer -} - -.mustlearn { - padding: 40px 25px; -} - -.teacherTeam { - padding: 40px 25px 0px 25px; -} - -.teacherTeamItem { - border-bottom: 1px solid #EAEAEA; - padding: 40px 0px; -} - -.teacherTeamItem:first-child { - padding-top: 0px !important; -} - -.teacherTeamItem:last-child { - border: none; -} - -.addTeamMember { - height: 70px; - text-align: center; - line-height: 70px; -} - -.adding-stage-item { - padding: 0px 20px 20px 50px; - position: relative -} - -.colseThispart { - position: absolute; - right: -6px; - top: -6px; - z-index: 2; - line-height: 15px; -} - -.progressRing { - display: block; - width: 16px; - height: 16px; - float: left; - position: relative; - z-index: 1; -} - -.progressRing-over { - color: #459BE6; - position: absolute; - top: -10px; -} - -.progressRing-part { - color: #B3DCFF; - position: absolute; - top: -10px; -} - -.myProgressNav { - width: 100%; - position: relative; - height: 10px; - border-radius: 5px; - background-color: #EAEAEA; -} - -.myProgressGreen { - position: absolute; - top: 0px; - left: 0px; - border-radius: 5px; - height: 100%; - background-color: #29BD8B -} - -.lesson-saved-list-item .title-line .edit:hover, -.lesson-saved-list-item .title-line .delete:hover { - color: #ff7500 !important; -} - -li.li-width63 { - width: 63%; - text-align: left -} - -/*-----------------------------在线课堂动态----------------------------------*/ -.courseHead { - width: 100%; - margin-bottom: 40px; - background-size: 100% 100%; - background-image: url("/images/educoder/courtailsbdpicture.jpg"); - height: 240px; - justify-content: center; - align-items: center; - display: -webkit-flex; - background-size: cover; - background-position: center; - background-repeat: no-repeat; -} - -.invite-tip { - position: absolute; - top: -5px; - right: 140px; - color: #fff; - box-sizing: border-box; - width: 170px; - text-align: center; - border-radius: 2px; - background-color: rgba(5, 16, 26, 0.6); - z-index: 5000; -} - -.inviteTipbtn a { - font-size: 14px; - width: 100%; - height: 30px; - line-height: 30px; - display: block; - color: #747A7F; - background-color: rgba(5, 16, 26, 0.4) -} - -.inviteTipbtn a:hover { - color: #4cacff !important; -} - -.top-black-trangle { - display: block; - border-width: 8px; - position: absolute; - top: -16px; - right: 4px; - border-style: dashed solid dashed dashed; - border-color: transparent transparent rgba(5, 16, 26, 0.6) transparent; - font-size: 0; - line-height: 0; -} - -/*动态*/ - -.loadMore { - width: 100%; - background-color: #fff; - color: #4cacff !important; - text-align: center; - display: block; - letter-spacing: 1px; - box-sizing: border-box; - height: 110px; - line-height: 110px; -} - -/*课堂设置*/ - -.activity-left-name { - display: block; - max-width: 126px; - float: left; -} - -/*帖子列表*/ -.panel-inner-fourm { - padding: 15px 20px; - border-bottom: 1px solid #eee; -} - -.panel-inner-fourm:hover { - background: #EFF9FD; -} - -/*---------------------------------我的粉丝和我的关注-------------------*/ - -/*如何获得金币弹框*/ - -/*课堂资源列表*/ - -.resources { - width: 100% !important; - padding: 15px; - float: left; - box-sizing: border-box; - border-top: 1px solid #EEEEEE -} - -.resources:last-child { - border-bottom: none; -} - -/*资源标签*/ -#sourceTag li { - font-size: 12px; - color: #4E7A9B; - background-color: #E5F3FF; - padding: 0px 4px; - height: 20px; - line-height: 20px; - margin-left: 5px; - display: inline-block; - cursor: pointer -} - -#sourceTag li a { - color: #4e7a9b !important; -} - -#sourceTag li.active { - background-color: #4CACFF; - color: #fff; -} - -#sourceTag li.active a { - background-color: #4CACFF; - color: #fff !important; -} - -/*---------------------------------消息页----------------------------------*/ -.new-info { - height: 18px; - min-width: 18px; - line-height: 18px; - padding: 0px 2px; - box-sizing: border-box; - text-align: center; - background-color: #ff6800; - color: #fff; - border-radius: 30px; - display: block; - position: absolute; - right: 40px; - top: 13px; - font-size: 12px; -} - -.ridingNav li { - float: left; - margin: 0px 20px; - color: #999; - font-size: 16px; - height: 60px; - line-height: 60px; - position: relative; -} - -.ridingNav li a { - display: block; - width: 100%; - height: 100%; - color: #999999; -} - -.ridingNav li.active a { - color: #05101A; -} - -.ridingNav li.active:after { - content: ''; - position: absolute; - bottom: 0px; - width: 100%; - height: 2px; - border-radius: 1px; - background-color: #05101A; -} - -.new-point { - display: block; - width: 4px; - height: 4px; - border-radius: 50%; - background-color: #ff6800; -} - -.ridinglist:hover { - background-color: #F5F5F5; -} - -.ridinglist .ridinglist-sub { - border-bottom: 1px solid #F5F5F5; - padding: 25px 0px; - cursor: pointer; -} - -.ridinglist:last-child .ridinglist-sub { - border-bottom: none; -} - -/*私信*/ -.private-item { - padding: 30px 30px 30px 25px; - border-bottom: 1px solid #F5F5F5; - cursor: pointer -} - -.private-item:hover { - background-color: #f5f5f5; -} - -.private-item:last-child { - border-bottom: none; -} - -.writeLetter_Info { - position: relative; - width: 100%; - height: 260px; - background-color: #F6F6F6; - cursor: default; - border-radius: 3px; -} - -.writeLetter_text { - width: 100%; - border: none; - background-color: #F6F6F6; - outline: none; - height: 100%; - padding: 5px 5px 30px 5px; - border: 1px solid #EAEAEA; - box-sizing: border-box; - resize: none; -} - -.longchar { - position: absolute; - background-color: #F6F6F6; - bottom: 1px; - color: #999999; - right: 10px; -} - -.writeLetter_text:focus+.longchar { - background-color: #fff; -} - -.recently_person { - position: absolute; - width: 100%; - top: 35px; - max-height: 300px; - overflow-y: auto; - border-radius: 4px; - box-shadow: 0px 1px 6px rgba(76, 76, 76, 0.2); - left: 0px; - z-index: 1; - background-color: #fff; - cursor: pointer; - display: none -} - -.recently_item { - padding: 10px 20px; -} - -.recently_name { - float: left; - line-height: 48px; - display: block -} - -.recently_item:hover { - background-color: #F9F9F9; -} - -/*私信对话框*/ -.private-list { - min-height: 660px; - max-height: 831px; - overflow-y: auto; - overflow-x: hidden; -} - -.private-list .private-part { - padding-left: 20px; - cursor: pointer -} - -.private-part:hover { - background-color: #F5F5F5; -} - -.private-part.active { - background-color: #F5F5F5; -} - -.privatePartName { - max-width: 70px; - float: left -} - -.newLetter { - display: block; - width: 4px; - height: 4px; - background-color: #FF6800; - border-radius: 50%; - float: right -} - -.part-line { - padding: 30px 20px 30px 0px; - border-bottom: 1px solid #f5f5f5; -} - -.private-part:last-child .part-line { - border: none; -} - -.dialogPanel { - padding: 0px 20px; - height: 545px; - overflow-y: auto -} - -.letter-time { - width: auto; - padding: 0px 10px; - background-color: #999; - color: #fff; - border-radius: 10px; - height: 20px; - line-height: 20px; -} - -.OtherSide, -.ThisSide { - margin-top: 30px; -} - -.OtherSide-info .trangle { - position: absolute; - left: -5px; - top: 10px; - width: 0; - height: 0px; - border-top: 6px solid transparent; - border-right: 5px solid #f5f5f5; - border-bottom: 6px solid transparent -} - -.OtherSide-info .sms { - max-width: 300px; - padding: 10px 15px; - box-sizing: border-box; - background-color: #F5F5F5; - color: #666; - border-radius: 6px; - text-align: justify -} - -.OtherSide-info .sms img { - max-width: 80px; - cursor: pointer -} - -.ThisSide-info .sms p { - line-height: 20px; -} - -.sms { - min-height: 48px; -} - -.ThisSide .trangle { - position: absolute; - right: -5px; - top: 10px; - width: 0; - height: 0px; - border-top: 6px solid transparent; - border-left: 5px solid #4CACFF; - border-bottom: 6px solid transparent -} - -.ThisSide-info .sms { - max-width: 300px; - padding: 10px 15px; - box-sizing: border-box; - background-color: #4CACFF; - color: #fff; - border-radius: 6px; - text-align: justify -} - -.ThisSide-info .sms p { - line-height: 20px; -} - -.ThisSide-info .sms img { - max-width: 80px; - cursor: pointer -} - - -/*-------------------竞赛----------------------*/ - -.action { - color: rgb(5, 16, 26); -} - -/*开源标注组*/ - -/*.partTime.active .time{color:#ff3232; }*/ - -.announcement { - padding: 20px 0px; - border-bottom: 1px solid #eee; -} - -.announcement:last-child { - border-bottom: none; -} - -.part { - width: 540px; - margin: 0px auto 10px; - background-color: rgba(25, 27, 32, .6) -} - -/*报名入口页*/ - -/*弹框*/ - -/*东北赛区*/ - -/*主页、列表页*/ - -/*竞赛报名弹框*/ - -/*ccf*/ - - -/*全国赛*/ - - -/*排行榜*/ - -/*竞赛列表页*/ - - -/*顶部按钮*/ -.both { - clear: both; -} - -.left { - float: left; -} - -.right { - float: right; -} - -/*顶部top容器*/ - -/*顶部center容器*/ - - - - - - - -/*面向学院管理员的综合统计页面*/ - -.statistics_position { - position: absolute; - bottom: 22px; - left: 0px; - width: 100%; - left: 0px; -} - -ul.count_ul li { - width: 300px; - position: relative; - float: left -} - -ul.count_ul li span:first-child { - display: block; - width: 100%; - color: #989898; - margin-bottom: 20px; -} - -ul.count_ul li span:last-child { - display: block; - width: 100%; - color: #fff; - font-size: 24px; - line-height: 20px; -} - -ul.count_ul li:not(:last-child):after { - position: absolute; - content: ''; - width: 1px; - height: 36px; - background-color: #999999; - right: 0px; - top: 16px; -} - -.static_shadow { - box-shadow: 0px 0px 9px rgba(174, 175, 177, 0.2); -} - -/*路径的合作团队增加使用情况统计页面*/ -.subject_statistics_top { - height: 240px; - width: 100%; - position: relative; - background-image: url('/images/educoder/subject_statistics.jpg'); - background-size: 100% 100%; -} - - -/*------------------------------职业路径begin-----------------------------*/ -/*新建页*/ - -/*详情页*/ - -/*--课程介绍--*/ - -/*--内容安排--*/ - - - -/*------------------------------职业路径end-----------------------------*/ - - -/*智慧课堂-------------------------------资源详情列表页面改版*/ - -#course_list { - overflow-y: auto; - background: #FFF; -} - -.popup_tip_box { - right: -160px; - top: 55px; -} - -.homepagePostSetting { - display: none; -} - -.nodata { - text-align: center; - background-color: transparent; - border-color: transparent; - color: #000; -} - -#attachments_fields span { - font-size: 12px; - color: #CCC; -} - -.ml20mr20Color { - color: #676767; -} - -/* .width100{ - width: 92%; - padding: 0px 0px 0px 25px; -} */ - -.color-dark-grey { - color: #999 !important; -} - -.colorFFF { - color: #FFF !important; -} - -.left { - float: left; -} - -.cancellation { - position: absolute; - top: 62px; - left: 177px; - color: #FFF !important; -} - -.tabeltext-alignleft { - text-align: center; -} - -.newshixun_tab_div { - padding: 0px 22px 0px -5px; - max-height: 90px; - overflow-y: auto; -} - - -/*在线课堂作业*/ - -.newcolor-orange { - color: #FF6800; -} - -.color4CACFF { - color: #4CACFF !important; - font-size: 16px; -} - -.color979797 { - font-size: 14px; - color: #979797 !important; - padding-left: 2%; -} - -.marginTop { - margin-right: 33%; - margin-top: 20px; -} - -/*选择实训弹框*/ - -/*选择实训弹窗*/ - -.shixuns_count { - color: #05101A; - font-size: 14px; -} - -#shixun_search_form_div { - margin-top: 20px; - margin-bottom: 20px !important; -} - -.editormd-html-preview { - width: 100% !important; - color: #323232 !important; -} - -.mt4 { - margin-top: 4px; -} - - -/*毕业设计*/ - - -/*----------------------------超级管理员------------------------------------*/ - -/*工程认证*/ - -/*合作伙伴*/ - - -/* 兼容(小屏幕)手机浏览器 */ - -.newMain, -.newFooter { - max-width: unset; -} - -.educontentTop { - width: 1178px !important; -} - -.inner-footer_con { - width: auto; -} - -.careershover { - margin-right: 30px !important; -} - -.careershover ul li a { - color: #000 !important; -} - -.careershover ul li { - height: 35px !important; - line-height: 35px !important; -} - -.edu-menu-listnew { - width: 165px !important; - top: 60px; - left: -42px; -} - -.edu-menu-listnew li a { - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - color: #000 !important; -} - -.edu-menu-listnew li a:hover { - color: #fff !important; -} - - -/*工程认证*/ -/*首页*/ - -.ListTableLine>p { - margin-bottom: 0px; - padding: 0px 30px; - background-color: #F5F5F5; - line-height: 40px; - height: 56px; - padding-top: 8px; - box-sizing: border-box; -} - -.ListTableLine>p span { - float: left; - color: #666; - box-sizing: border-box -} - -.ListTableLine li { - min-height: 48px; - padding: 10px 0px; - box-sizing: border-box; - margin: 0px 30px; - border-bottom: 1px solid #eaeaea; -} - -.ListTableLine li>span { - float: left; - box-sizing: border-box; -} - -.ListTableLine .column-1 { - width: 100px; - text-align: left; - padding-left: 5px; - box-sizing: border-box -} - -.ListTableLine .column-1 { - width: 100px; - text-align: left; - padding-left: 5px; - box-sizing: border-box -} - -.ListTableLine .column-2 { - width: 180px; - text-align: center; - padding-left: 5px; - box-sizing: border-box -} - -.ListTableLine .column-3 { - width: 330px; - text-align: left; - padding-left: 5px; - box-sizing: border-box -} - -.ListTableLine .column-4 { - width: 400px; - text-align: left; - padding-left: 5px; - box-sizing: border-box -} - -/*具体学年*/ - -/*培养目标*/ -#traningNav { - padding: 30px 30px 0px 0px; -} - -#traningNav>li { - float: left; - padding: 0px 30px 30px 30px; - font-size: 16px; -} - -#traningNav>li>a, -#traningNav li>i { - color: #666 !important; - position: relative -} - -#traningNav>li.active>a, -#traningNav li.active>i { - color: #05101A !important; -} - -#traningNav>li.active>a:after { - content: ''; - position: absolute; - width: 64px; - left: 50%; - margin-left: -32px; - height: 2px; - background-color: #05101A; - bottom: -35px; -} - -/*毕业要求VS培养目标*/ - -.gaugeOutfit { - position: relative; - height: 70px; - width: 120px; - background: linear-gradient(30deg, transparent 49.5%, #eee 50%, #eee 50%, transparent 50.5%); -} - -.gaugeOutfit span:first-child { - position: absolute; - left: 8px; - top: 46px; -} - -.gaugeOutfit span:last-child { - position: absolute; - right: 8px; - top: 14px; -} - -.sustainLine td:not(:first-child):hover { - background-color: rgba(41, 189, 139, 0.1); - cursor: pointer -} - -/*毕业要求VS课程体系*/ - -/*课程目标VS毕业要求指标点*/ - - -/*众包*/ - -.packinput .ant-input { - height: 50px; - width: 749px; - border-color: #E1EDF8 !important; -} - -.packinput { - width: 749px; -} - - -.packinput .ant-input-group-addon .ant-btn { - width: 140px !important; - font-size: 18px; - height: 50px; - background: rgba(76, 172, 255, 1); -} - -.setissues { - width: 280px; - height: 50px; - background: rgba(76, 172, 255, 1); - border-radius: 4px; - margin-left: 15px; -} - -.pagetype li { - color: #8F8F8F !important; -} - -.mbf10 { - margin-bottom: -10px; -} - -.PackageIndexNEIBanner { - width: 1200px; - height: 110px; - background: rgba(255, 255, 255, 1); - box-shadow: 0px 2px 6px 0px rgba(125, 125, 125, 0.26); - border-radius: 8px; -} - -.padding110 { - padding: 39px 110px 0px; - box-sizing: border-box; -} - -.borderccc { - border: 1px solid #ccc; -} - -.input-100-40s { - width: 100%; - padding: 5px; - box-sizing: border-box; -} - -.fafafas { - background-color: #fafafa !important; - height: 40px; -} - -.fafafas:focus { - background-color: #fff !important; -} - -.fafas .ant-input { - background-color: #fafafa !important; - height: 40px; -} - -.fafas .ant-input:focus { - background-color: #fff !important; -} - -.fafas .ant-input-group-addon .ant-btn { - width: 140px !important; - font-size: 14px; - height: 40px; - background: rgba(76, 172, 255, 1); -} - -.newFormbox .upload_filename { - line-height: 32px; -} - -.newFormbox .attachment span { - line-height: 23px; -} - -.newFormbox .attachment .remove-upload { - line-height: 28px; -} - -.newFormbox .attachment .icon-fujian { - font-size: 14px !important; - line-height: 14px; - margin-top: 9px; -} - -.newFormbox { - height: 20px -} - -.defalutCancelbtns { - display: block; - border: 1px solid #4CACFF !important; - background-color: #fff; - color: #4CACFF !important; - width: 130px; - height: 40px; - text-align: center; - line-height: 40px; - border-radius: 4px; -} - -.defalutSubmitbtns { - background-color: #4CACFF; - height: 40px; -} - -.defalutSubmitbtnmodels { - width: 127px; - height: 30px; - background-color: #4CACFF; -} - -.padding200 { - padding: 115px 200px 215px 200px; -} - -.fontcircle { - font-size: 80px; - display: inherit; -} - -.sumbtongs { - font-size: 24px; - display: inherit; - text-align: center; -} - -.terraces { - font-size: 16px; - display: inherit; - text-align: center; - color: #999; -} - -.padding251 { - padding: 0px 245px; -} - -.ml17 { - margin-left: 17px; -} - -.project-package-items { - display: -webkit-flex; - display: flex; - flex-direction: row; - margin: 0px !important; - padding: 20px; - background: white; - margin-bottom: 0px !important; - box-shadow: none !important; -} - -.publicpart.orangeGreen { - border-left: 80px solid #29BD8B; -} - -.publicwords { - left: 3px; - top: 18px; -} - -.project-packages-list .project-package-items .item-image { - width: 100px !important; -} - -.height185 { - height: 185px; -} - -.ContacttheTA { - width: 80px; - height: 26px; - font-size: 14px; - line-height: 26px; - display: block; - border: 1px solid #4CACFF !important; - background-color: #fff; - color: #4CACFF !important; - text-align: center; - border-radius: 4px; -} - -.ContacttheTAs { - width: 80px; - height: 26px; - font-size: 14px; - line-height: 24px; - /*display: block;*/ - border: 1px solid #fff !important; - background-color: #4CACFF; - color: #fff !important; - text-align: center; - border-radius: 4px; -} - -.ml28 { - margin-left: 28px; -} - -.longboxs { - font-size: 16px; - font-family: MicrosoftYaHei-Bold; - font-weight: bold; - color: rgba(5, 16, 26, 1); - border-left: 4px solid rgba(76, 172, 255, 1); - padding-left: 10px; - margin-bottom: 20px; -} - -.padding020 { - padding: 0px 20px 20px; -} - -.mtf3 { - margin-top: -3px; -} - -.task-btn-nebules { - background: #fff !important; - color: #4CACFF !important; - border: 1px solid #4CACFF !important; - margin-left: 20px; - cursor: pointer; - display: inline-block; - padding: 0 12px; - letter-spacing: 1px; - text-align: center; - font-size: 14px; - height: 30px; - line-height: 30px; - border-radius: 2px; -} - -.packageabsolute { - position: absolute; - right: -16px; - top: -7px; -} - -.relativef { - position: relative; -} - -.homehove:hover .ptext { - color: #4CACFF !important; -} - -.homehove:hover .ContacttheTAs { - display: block; -} - -.topsj { - position: absolute; - top: -6px; -} - -.bottomsj { - position: absolute; - bottom: -6px; -} - -.pagenoedits { - margin-left: 20px; - color: #ccc; -} - -.pagemancenter { - text-align: center; -} - -.ml0 { - margin-left: 0px; -} - -.tabelcli { - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - max-width: 850px; - display: table-cell; -} - -.mtf10 { - margin-top: -10px; -} - -.padding26 { - padding: 26px; - box-sizing: border-box; -} - -.pd26 { - padding: 26px; -} - -.pd30a0 { - padding: 30px 30px 16px 30px; -} - -.shaiContent li.shaiItem:hover span { - color: #fff !important; -} - -.shaiContent li.shaiItem:hover i.iconfont { - color: #4CACFF !important -} - -.detail_for_paragraph p { - white-space: pre-wrap; -} - -.square-main p { - margin-bottom: 0 !important; -} - - - - -.markdown-body { - text-align: justify; - word-break: break-all; -} - -.RightPaneDrawer .ant-drawer-content { - background: #070f1a; - overflow: hidden !important; -} - -.deletebuttom { - border: transparent; -} - -.RightPaneDrawer .jupyter_data_list { - max-height: 340px; -} - -.ant-btn-primary { - text-shadow: none !important; - box-shadow: none !important; -} - -.ant-notification { - z-index: 10001 !important; -} -input.ant-input-lg::placeholder{ -font-size: 14px !important; -} -p{ - margin-bottom: 0px!important; -} -.toprightNum{ - position: absolute; - right: 0px; - top:4px; - color: #999; -} -.ant-input, .ant-input .ant-input-suffix{ - background-color: #fff!important; -} -.has-error .ant-input{ - background-color: #FEF1F0!important; -} \ No newline at end of file diff --git a/css/iconfont.css b/css/iconfont.css deleted file mode 100644 index 39ebe18fe..000000000 --- a/css/iconfont.css +++ /dev/null @@ -1,3331 +0,0 @@ -@font-face { - font-family: "iconfont"; /* Project id 2340181 */ - src: url('iconfont.woff2?t=1653550272457') format('woff2'), - url('iconfont.woff?t=1653550272457') format('woff'), - url('iconfont.ttf?t=1653550272457') format('truetype'); -} - -.iconfont { - font-family: "iconfont" !important; - font-size: 16px; - font-style: normal; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -.icon-tuichuicon:before { - content: "\e936"; -} - -.icon-bangzhuzhongxinicon1:before { - content: "\e935"; -} - -.icon-ketixiangqingicon:before { - content: "\e92b"; -} - -.icon-bianjiicon:before { - content: "\e92c"; -} - -.icon-baomingxiangqingicon:before { - content: "\e92d"; -} - -.icon-sousuo4:before { - content: "\e92e"; -} - -.icon-quxiaoshenqingicon:before { - content: "\e92f"; -} - -.icon-xiala3:before { - content: "\e930"; -} - -.icon-tianjia_tianchong:before { - content: "\e931"; -} - -.icon-a-shanchu2:before { - content: "\e932"; -} - -.icon-shanchuicon3:before { - content: "\e933"; -} - -.icon-shenqingketiicon:before { - content: "\e934"; -} - -.icon-weixin:before { - content: "\e92a"; -} - -.icon-zanwushuju:before { - content: "\e928"; -} - -.icon-fuwuicon:before { - content: "\e929"; -} - -.icon-personal-center:before { - content: "\e927"; -} - -.icon-bangzhuzhongxinicon:before { - content: "\e926"; -} - -.icon-kaiyuanxiangmu:before { - content: "\e91d"; -} - -.icon-luntanjiaoliu:before { - content: "\e91e"; -} - -.icon-wangzhanpeizhi:before { - content: "\e91f"; -} - -.icon-weixuanze-chuangkekongjian:before { - content: "\e920"; -} - -.icon-tubiao:before { - content: "\e921"; -} - -.icon-gonggaofabu:before { - content: "\e922"; -} - -.icon-jingsaihuodong:before { - content: "\e923"; -} - -.icon-yonghuguanli:before { - content: "\e924"; -} - -.icon-shenpi:before { - content: "\e925"; -} - -.icon-zhuanli1:before { - content: "\e918"; -} - -.icon-daimaicon:before { - content: "\e91c"; -} - -.icon-jiangxiangicon:before { - content: "\e916"; -} - -.icon-shuju:before { - content: "\e917"; -} - -.icon-wendang:before { - content: "\e919"; -} - -.icon-lunwen:before { - content: "\e91a"; -} - -.icon-zhuanli:before { - content: "\e91b"; -} - -.icon-gailan1:before { - content: "\e914"; -} - -.icon-tuandui:before { - content: "\e915"; -} - -.icon-icon2:before { - content: "\e912"; -} - -.icon-a-21:before { - content: "\e913"; -} - -.icon-a-2:before { - content: "\e90f"; -} - -.icon-a-3:before { - content: "\e910"; -} - -.icon-icon1:before { - content: "\e911"; -} - -.icon-ioon:before { - content: "\e90e"; -} - -.icon-shanchu_tc_icon1:before { - content: "\e90c"; -} - -.icon-zhuanjiaicon:before { - content: "\e90d"; -} - -.icon-shengming:before { - content: "\e90b"; -} - -.icon-chenggong1:before { - content: "\e907"; -} - -.icon-a-bitian2x1:before { - content: "\e908"; -} - -.icon-xiala1:before { - content: "\e909"; -} - -.icon-xiala2:before { - content: "\e90a"; -} - -.icon-jiantou1:before { - content: "\e905"; -} - -.icon-zhangjieicon:before { - content: "\e8fe"; -} - -.icon-chengyuan1:before { - content: "\e903"; -} - -.icon-a-shangchuan2x:before { - content: "\e8f9"; -} - -.icon-shanchu7:before { - content: "\e8fa"; -} - -.icon-zuohuabeifen:before { - content: "\e8fb"; -} - -.icon-a-bianji11:before { - content: "\e8f4"; -} - -.icon-a-bitian2x:before { - content: "\e8f5"; -} - -.icon-a-zuohua2x:before { - content: "\e8f7"; -} - -.icon-lianjie3:before { - content: "\e8f8"; -} - -.icon-zhishitupu:before { - content: "\e8fc"; -} - -.icon-jisuanji1:before { - content: "\e8fd"; -} - -.icon-dianzi1:before { - content: "\e8ff"; -} - -.icon-junshililun1:before { - content: "\e900"; -} - -.icon-ruanjiangongcheng1:before { - content: "\e901"; -} - -.icon-yixue1:before { - content: "\e902"; -} - -.icon-tongxin1:before { - content: "\e904"; -} - -.icon-zhengcefagui1:before { - content: "\e906"; -} - -.icon-dashuju:before { - content: "\e8f3"; -} - -.icon-rengongzhineng:before { - content: "\e8f6"; -} - -.icon-a-shuangyinhao12x:before { - content: "\e8f2"; -} - -.icon-dingbu:before { - content: "\e8ee"; -} - -.icon-bangzhu1:before { - content: "\e8ef"; -} - -.icon-yijianfankui2:before { - content: "\e8f0"; -} - -.icon-fenxiang:before { - content: "\e8f1"; -} - -.icon-dizhi:before { - content: "\e8eb"; -} - -.icon-youxiang1:before { - content: "\e8ec"; -} - -.icon-dianhuaicon:before { - content: "\e8ed"; -} - -.icon-tianjiaicon:before { - content: "\e8e8"; -} - -.icon-lingshengicon:before { - content: "\e8ea"; -} - -.icon-gengduoicon:before { - content: "\e8e5"; -} - -.icon-shijianicon:before { - content: "\e8e7"; -} - -.icon-mimaicon:before { - content: "\e8e1"; -} - -.icon-gouicon:before { - content: "\e8e2"; -} - -.icon-zhankaiicon:before { - content: "\e8e3"; -} - -.icon-wenjian7:before { - content: "\e8e0"; -} - -.icon-xiangyoujiantou:before { - content: "\e8de"; -} - -.icon-xiangzuojiantou:before { - content: "\e8df"; -} - -.icon-a-liulanicon2x:before { - content: "\e8dd"; -} - -.icon-wenjianicon:before { - content: "\e8dc"; -} - -.icon-a-yuanquan2x:before { - content: "\e8db"; -} - -.icon-xiangmubiaoqian:before { - content: "\e8da"; -} - -.icon-icon:before { - content: "\e8ce"; -} - -.icon-tar:before { - content: "\e8cf"; -} - -.icon-a-fuzhi2:before { - content: "\e8d0"; -} - -.icon-fujian1:before { - content: "\e8d1"; -} - -.icon-a-bianji1:before { - content: "\e8d2"; -} - -.icon-banbenicon:before { - content: "\e8d3"; -} - -.icon-shanchuicon2:before { - content: "\e8d4"; -} - -.icon-a-lajitong_icon3x:before { - content: "\e8d5"; -} - -.icon-xialaanniu2:before { - content: "\e8d6"; -} - -.icon-xiazai-icon:before { - content: "\e8d7"; -} - -.icon-master_icon1:before { - content: "\e8d8"; -} - -.icon-shangchuanicon:before { - content: "\e8d9"; -} - -.icon-gerenziliao1:before { - content: "\e8c7"; -} - -.icon-lichengbeiicon:before { - content: "\e885"; -} - -.icon-cangkushezhiicon:before { - content: "\e889"; -} - -.icon-dongtaiicon:before { - content: "\e88a"; -} - -.icon-gongzuoliuicon:before { - content: "\e88b"; -} - -.icon-yixiuicon1:before { - content: "\e89b"; -} - -.icon-a-wikiicon1:before { - content: "\e8c6"; -} - -.icon-daimakuicon1:before { - content: "\e8c5"; -} - -.icon-wodetongzhi:before { - content: "\e8c8"; -} - -.icon-tongzhiguanli:before { - content: "\e8c9"; -} - -.icon-xuanzhong3:before { - content: "\e8ca"; -} - -.icon-xitongtongzhiicon:before { - content: "\e8cb"; -} - -.icon-xiaoxi2:before { - content: "\e8cc"; -} - -.icon-sshmiyue:before { - content: "\e8cd"; -} - -.icon-gerenziliao:before { - content: "\e8c4"; -} - -.icon-xinshouzhiyin:before { - content: "\e8e4"; -} - -.icon-xinjianxiangmu:before { - content: "\e8e6"; -} - -.icon-jiaruketang1:before { - content: "\e8e9"; -} - -.icon-xiangmugonggao:before { - content: "\e8c2"; -} - -.icon-chengguo:before { - content: "\e8c3"; -} - -.icon-chengjiaogonggao:before { - content: "\e8c0"; -} - -.icon-jishuzichan:before { - content: "\e8c1"; -} - -.icon-feibiaogonggao:before { - content: "\e8bc"; -} - -.icon-zhongbiaogonggao:before { - content: "\e8bd"; -} - -.icon-gengzhenggonggao:before { - content: "\e8be"; -} - -.icon-zhaobiaogonggao:before { - content: "\e8bf"; -} - -.icon-wenjian6:before { - content: "\e8ba"; -} - -.icon-wenjianjia4:before { - content: "\e8bb"; -} - -.icon-quxiaoguanzhu:before { - content: "\e89a"; -} - -.icon-dianzan_icon:before { - content: "\e8a2"; -} - -.icon-wenjian5:before { - content: "\e896"; -} - -.icon-wenjianjia3:before { - content: "\e8a9"; -} - -.icon-fuzhiicon:before { - content: "\e886"; -} - -.icon-zhuye-fill:before { - content: "\e876"; -} - -.icon-daimakuicon:before { - content: "\e884"; -} - -.icon-xinjian2:before { - content: "\e8b0"; -} - -.icon-xieyiicon:before { - content: "\e870"; -} - -.icon-neicunicon:before { - content: "\e891"; -} - -.icon-zishuwenjian_icon:before { - content: "\e8a6"; -} - -.icon-biaoqianicon:before { - content: "\e882"; -} - -.icon-a-bianji:before { - content: "\e883"; -} - -.icon-lianjieicon:before { - content: "\e887"; -} - -.icon-hebingqingqiuicon:before { - content: "\e888"; -} - -.icon-morendianzan_icon:before { - content: "\e88e"; -} - -.icon-muluicon:before { - content: "\e894"; -} - -.icon-a-shezhi:before { - content: "\e899"; -} - -.icon-tijiaoicon:before { - content: "\e89e"; -} - -.icon-morenguanzhu_ICON:before { - content: "\e89f"; -} - -.icon-xialaanniu1:before { - content: "\e8a4"; -} - -.icon-zuohuaicon:before { - content: "\e8b5"; -} - -.icon-master_icon:before { - content: "\e8b6"; -} - -.icon-morenfuke_icon:before { - content: "\e8b7"; -} - -.icon-a-wikiicon:before { - content: "\e8b8"; -} - -.icon-yixiuicon:before { - content: "\e8b9"; -} - -.icon-suofang:before { - content: "\e87f"; -} - -.icon-fangdaicon:before { - content: "\e881"; -} - -.icon-sousuo_icon1:before { - content: "\e873"; -} - -.icon-huanying_icon:before { - content: "\e878"; -} - -.icon-wenjianjia2:before { - content: "\e879"; -} - -.icon-shanchuicon1:before { - content: "\e87a"; -} - -.icon-qingqiuicon:before { - content: "\e871"; -} - -.icon-xiangyingicon:before { - content: "\e87c"; -} - -.icon-duoxuanxuanzhong:before { - content: "\e88f"; -} - -.icon-cuowuicon:before { - content: "\e890"; -} - -.icon-chenggongicon:before { - content: "\e892"; -} - -.icon-weixuanzhongxiangyingicon:before { - content: "\e893"; -} - -.icon-bitianicon:before { - content: "\e895"; -} - -.icon-weixuanzhongxiangmubiaoqianicon:before { - content: "\e897"; -} - -.icon-liebiaoicon:before { - content: "\e898"; -} - -.icon-xiezuozheguanliicon:before { - content: "\e8a1"; -} - -.icon-xuanzhongfenzhiicon:before { - content: "\e8a3"; -} - -.icon-xuanzhongjibenshezhiicon:before { - content: "\e8a5"; -} - -.icon-xuanzhongxiangmubiaoqianicon:before { - content: "\e8aa"; -} - -.icon-a-xuanzhongwebhookicon:before { - content: "\e8af"; -} - -.icon-shanchu_tc_icon:before { - content: "\e88c"; -} - -.icon-wiki_icon:before { - content: "\e88d"; -} - -.icon-daorumoban_icon:before { - content: "\e86f"; -} - -.icon-cuowu:before { - content: "\e872"; -} - -.icon-gengduo_icon:before { - content: "\e874"; -} - -.icon-fucengguanbi_icon:before { - content: "\e875"; -} - -.icon-shanchuicon:before { - content: "\e877"; -} - -.icon-sousuo_shanchuicon:before { - content: "\e87b"; -} - -.icon-sousuo_icon:before { - content: "\e87d"; -} - -.icon-wendangyulan_icon:before { - content: "\e87e"; -} - -.icon-xialaanniu:before { - content: "\e880"; -} - -.icon-erciqueren_icon:before { - content: "\e867"; -} - -.icon-xuanzhongssh_icon:before { - content: "\e868"; -} - -.icon-weixuanzhonganquanshezhi_icon:before { - content: "\e869"; -} - -.icon-weixuanzhongssh_icon:before { - content: "\e86a"; -} - -.icon-xuanzhonganquanshezhi_icon:before { - content: "\e86b"; -} - -.icon-shanchu_icon:before { - content: "\e86c"; -} - -.icon-liebiaossh_icon:before { - content: "\e86e"; -} - -.icon-file-submodule:before { - content: "\e866"; -} - -.icon-nv1:before { - content: "\e864"; -} - -.icon-nan1:before { - content: "\e865"; -} - -.icon-youxiang:before { - content: "\e8b2"; -} - -.icon-danwei:before { - content: "\e8a7"; -} - -.icon-daibanshixiang:before { - content: "\e8a8"; -} - -.icon-gailan:before { - content: "\e8ab"; -} - -.icon-nan:before { - content: "\e8ac"; -} - -.icon-nv:before { - content: "\e8ad"; -} - -.icon-gongzuoliu1:before { - content: "\e8ae"; -} - -.icon-shujutongji:before { - content: "\e8b1"; -} - -.icon-xiangmu:before { - content: "\e8b3"; -} - -.icon-zuzhi:before { - content: "\e8b4"; -} - -.icon-arrowRight:before { - content: "\e863"; -} - -.icon-jiantouloukong-zuo:before { - content: "\e861"; -} - -.icon-jiantouloukong-you:before { - content: "\e862"; -} - -.icon-fenxiang1:before { - content: "\e89c"; -} - -.icon-huidaodingbu1:before { - content: "\e89d"; -} - -.icon-bangzhu:before { - content: "\e8a0"; -} - -.icon-tijiao:before { - content: "\e860"; -} - -.icon-dataBase:before { - content: "\e85a"; -} - -.icon-wenjian4:before { - content: "\e85b"; -} - -.icon-lianjie2:before { - content: "\e85c"; -} - -.icon-fenzhi2:before { - content: "\e85d"; -} - -.icon-fenzhi-3:before { - content: "\e85e"; -} - -.icon-tianping:before { - content: "\e85f"; -} - -.icon-chexiao:before { - content: "\e657"; -} - -.icon-shanchu_Hover:before { - content: "\e6e9"; -} - -.icon-duoguanlianyufankui:before { - content: "\e7fb"; -} - -.icon-wenjianjia:before { - content: "\e640"; -} - -.icon-xiayi_moren:before { - content: "\e6ea"; -} - -.icon-xiangmuguanli:before { - content: "\e7fc"; -} - -.icon-expand:before { - content: "\e6db"; -} - -.icon-bianji_moren:before { - content: "\e6eb"; -} - -.icon-ziyuanpaihanghetuijian:before { - content: "\e7ff"; -} - -.icon-compress:before { - content: "\e65e"; -} - -.icon-huifuchushidaima:before { - content: "\e6ec"; -} - -.icon-zhiliangjiance:before { - content: "\e801"; -} - -.icon-yincangbiyan:before { - content: "\e61d"; -} - -.icon-zaicizairu:before { - content: "\e6ed"; -} - -.icon-you1:before { - content: "\e802"; -} - -.icon-kaisuo:before { - content: "\e61e"; -} - -.icon-kaiguan:before { - content: "\e6ef"; -} - -.icon-xialajiantou:before { - content: "\e803"; -} - -.icon-guansuo:before { - content: "\e61f"; -} - -.icon-mulu:before { - content: "\e6f0"; -} - -.icon-zuo1:before { - content: "\e804"; -} - -.icon-tpixiaoxitixing:before { - content: "\e624"; -} - -.icon-suoxiao1:before { - content: "\e6f2"; -} - -.icon-jingsaihuodong1:before { - content: "\e805"; -} - -.icon-dianzan:before { - content: "\e634"; -} - -.icon-kuoda:before { - content: "\e6f3"; -} - -.icon-guanbi1:before { - content: "\e806"; -} - -.icon-dianzan-xian:before { - content: "\e635"; -} - -.icon-shezhi3:before { - content: "\e6f4"; -} - -.icon-kaiqishexiangtou:before { - content: "\e807"; -} - -.icon-fanhuishangcidaima:before { - content: "\e637"; -} - -.icon-yincang2:before { - content: "\e6f5"; -} - -.icon-kaiqifangqieping:before { - content: "\e808"; -} - -.icon-zhongzhi:before { - content: "\e638"; -} - -.icon-xiaoxi11:before { - content: "\e6f6"; -} - -.icon-xiugai:before { - content: "\e80a"; -} - -.icon-zhengyan:before { - content: "\e649"; -} - -.icon-bianzu1:before { - content: "\e6f7"; -} - -.icon-shanchu4:before { - content: "\e80b"; -} - -.icon-shanchu:before { - content: "\e61c"; -} - -.icon-xianshimima:before { - content: "\e6f9"; -} - -.icon-xinjianfenzu:before { - content: "\e80c"; -} - -.icon-jiangli:before { - content: "\e61b"; -} - -.icon-yincangmima:before { - content: "\e6fa"; -} - -.icon-xuanzhong2:before { - content: "\e80d"; -} - -.icon-xinjian:before { - content: "\e619"; -} - -.icon-fuzhi2:before { - content: "\e6fb"; -} - -.icon-fabu1:before { - content: "\e80e"; -} - -.icon-xiaoxilingdang:before { - content: "\e641"; -} - -.icon-xingzhuangjiehe:before { - content: "\e6fc"; -} - -.icon-xuanyong:before { - content: "\e80f"; -} - -.icon-sousuo:before { - content: "\e643"; -} - -.icon-xingzhuangjiehebeifen:before { - content: "\e6fd"; -} - -.icon-chexiaofenzu1:before { - content: "\e810"; -} - -.icon-tianjiafangda:before { - content: "\e645"; -} - -.icon-shangchuan:before { - content: "\e6fe"; -} - -.icon-shanchu22:before { - content: "\e811"; -} - -.icon-fenzhi:before { - content: "\e610"; -} - -.icon-tiaozhan:before { - content: "\e6ff"; -} - -.icon-chexiaogongkai:before { - content: "\e812"; -} - -.icon-wangzhikelong:before { - content: "\e612"; -} - -.icon-youhua:before { - content: "\e702"; -} - -.icon-jiexi1:before { - content: "\e813"; -} - -.icon-xiazai:before { - content: "\e613"; -} - -.icon-jiesuo:before { - content: "\e703"; -} - -.icon-chexiaogongxiang1:before { - content: "\e814"; -} - -.icon-daima:before { - content: "\e615"; -} - -.icon-suo1:before { - content: "\e704"; -} - -.icon-chexiaofabu:before { - content: "\e815"; -} - -.icon-tijiaojilu:before { - content: "\e616"; -} - -.icon-bianzu11:before { - content: "\e706"; -} - -.icon-bianji21:before { - content: "\e816"; -} - -.icon-xuanzeti:before { - content: "\e617"; -} - -.icon-biji:before { - content: "\e70a"; -} - -.icon-xinzengshiti:before { - content: "\e809"; -} - -.icon-bianji:before { - content: "\e618"; -} - -.icon-jiantou9:before { - content: "\e700"; -} - -.icon-sousuo1:before { - content: "\e817"; -} - -.icon-xiangshang:before { - content: "\e61a"; -} - -.icon-changyongtubiao-xianxingdaochu-zhuanqu-:before { - content: "\e74c"; -} - -.icon-kaoshishichang:before { - content: "\e818"; -} - -.icon-shanchudiao:before { - content: "\e620"; -} - -.icon-suoxiao2:before { - content: "\e701"; -} - -.icon-fanhuishijuan:before { - content: "\e819"; -} - -.icon-shangshengpaixu:before { - content: "\e621"; -} - -.icon-fangda:before { - content: "\e707"; -} - -.icon-guge:before { - content: "\e81a"; -} - -.icon-banbenku:before { - content: "\e622"; -} - -.icon-bianji2:before { - content: "\e709"; -} - -.icon-huohu:before { - content: "\e81b"; -} - -.icon-issue:before { - content: "\e623"; -} - -.icon-gongkai:before { - content: "\e70b"; -} - -.icon-IP:before { - content: "\e81c"; -} - -.icon-shangchuantupian:before { - content: "\e625"; -} - -.icon-jiexi:before { - content: "\e70c"; -} - -.icon-IPbangding:before { - content: "\e81d"; -} - -.icon-ceping:before { - content: "\e626"; -} - -.icon-shanchu1:before { - content: "\e70d"; -} - -.icon-shixunfabu:before { - content: "\e81e"; -} - -.icon-qqzaixianzixun:before { - content: "\e628"; -} - -.icon-shitilan:before { - content: "\e70e"; -} - -.icon-shijiankechengfabu:before { - content: "\e81f"; -} - -.icon-erweima:before { - content: "\e629"; -} - -.icon-jianhao:before { - content: "\e70f"; -} - -.icon-kechengxuexi:before { - content: "\e820"; -} - -.icon-yijianfankui:before { - content: "\e62a"; -} - -.icon-fuzhi3:before { - content: "\e710"; -} - -.icon-jiaoxueanli:before { - content: "\e821"; -} - -.icon-youxiangrenzheng:before { - content: "\e62b"; -} - -.icon-bianzu2:before { - content: "\e711"; -} - -.icon-chakan:before { - content: "\e822"; -} - -.icon-shoujirenzheng:before { - content: "\e62c"; -} - -.icon-zuoyoutuodong:before { - content: "\e712"; -} - -.icon-shanchu5:before { - content: "\e823"; -} - -.icon-zhiyerenzheng:before { - content: "\e62d"; -} - -.icon-shangxiatuodong:before { - content: "\e713"; -} - -.icon-ren:before { - content: "\e824"; -} - -.icon-shenfenrenzheng:before { - content: "\e62e"; -} - -.icon-shijuan1:before { - content: "\e714"; -} - -.icon-wenjian2:before { - content: "\e825"; -} - -.icon-pingfen:before { - content: "\e62f"; -} - -.icon-shanchu2:before { - content: "\e715"; -} - -.icon-lajitong1:before { - content: "\e826"; -} - -.icon-pingfen-xian:before { - content: "\e630"; -} - -.icon-jianqu:before { - content: "\e716"; -} - -.icon-kongbai:before { - content: "\e827"; -} - -.icon-zuoye:before { - content: "\e631"; -} - -.icon-jiashang:before { - content: "\e717"; -} - -.icon-changjianwenti:before { - content: "\e828"; -} - -.icon-tishicuowu:before { - content: "\e632"; -} - -.icon-jianqu1:before { - content: "\e718"; -} - -.icon-chexiaofabu1:before { - content: "\e829"; -} - -.icon-ziyuan:before { - content: "\e633"; -} - -.icon-jiashang1:before { - content: "\e719"; -} - -.icon-fasongzhi:before { - content: "\e82a"; -} - -.icon-tishi:before { - content: "\e636"; -} - -.icon-guolvqi:before { - content: "\e71b"; -} - -.icon-chexiaogongkai1:before { - content: "\e82b"; -} - -.icon-chengyuan:before { - content: "\e63a"; -} - -.icon-chushihua:before { - content: "\e71c"; -} - -.icon-fabu2:before { - content: "\e82c"; -} - -.icon-xuanzhuan:before { - content: "\e63d"; -} - -.icon-ceshiji:before { - content: "\e71e"; -} - -.icon-daimacangku:before { - content: "\e82d"; -} - -.icon-shixun:before { - content: "\e63e"; -} - -.icon-dianjiliang:before { - content: "\e71f"; -} - -.icon-erweima1:before { - content: "\e82e"; -} - -.icon-suoxiao:before { - content: "\e63f"; -} - -.icon-bofang1:before { - content: "\e720"; -} - -.icon-Fock:before { - content: "\e82f"; -} - -.icon-xiajiantou:before { - content: "\e642"; -} - -.icon-jinggao2:before { - content: "\e721"; -} - -.icon-fuzhilianjie:before { - content: "\e830"; -} - -.icon-gouxuan:before { - content: "\e644"; -} - -.icon-lubiaosignpost3:before { - content: "\e722"; -} - -.icon-huidaodingbu:before { - content: "\e831"; -} - -.icon-liulanyan:before { - content: "\e646"; -} - -.icon-rili:before { - content: "\e756"; -} - -.icon-jibenxinxi1:before { - content: "\e832"; -} - -.icon-jingyan:before { - content: "\e647"; -} - -.icon-bianji3:before { - content: "\e723"; -} - -.icon-pingfen-yibanfen:before { - content: "\e833"; -} - -.icon-shixunguanqia:before { - content: "\e648"; -} - -.icon-yiguanbi:before { - content: "\e724"; -} - -.icon-guankashu:before { - content: "\e834"; -} - -.icon-fabu:before { - content: "\e64a"; -} - -.icon-yiguanbi1:before { - content: "\e725"; -} - -.icon-shanchu6:before { - content: "\e835"; -} - -.icon-xiangxiayidong:before { - content: "\e64b"; -} - -.icon-lajitong:before { - content: "\e726"; -} - -.icon-pingfen1:before { - content: "\e836"; -} - -.icon-xiangshangyidong:before { - content: "\e64c"; -} - -.icon-weibiaoti1:before { - content: "\e728"; -} - -.icon-shezhi5:before { - content: "\e837"; -} - -.icon-guanbi:before { - content: "\e64d"; -} - -.icon-bofang2:before { - content: "\e729"; -} - -.icon-QQ1:before { - content: "\e838"; -} - -.icon-huifu1:before { - content: "\e64e"; -} - -.icon-bianji4:before { - content: "\e72a"; -} - -.icon-shoucangerji:before { - content: "\e839"; -} - -.icon-wenjian:before { - content: "\e64f"; -} - -.icon-bangding:before { - content: "\e72b"; -} - -.icon-shoucangyiji:before { - content: "\e83a"; -} - -.icon-gonggao:before { - content: "\e63b"; -} - -.icon-xuanze:before { - content: "\e72c"; -} - -.icon-shixunshu:before { - content: "\e83b"; -} - -.icon-zhankai:before { - content: "\e650"; -} - -.icon-shanchu3:before { - content: "\e72d"; -} - -.icon-shanchu23:before { - content: "\e83c"; -} - -.icon-shousuo:before { - content: "\e651"; -} - -.icon-bianji5:before { - content: "\e72e"; -} - -.icon-hezuochengyuan:before { - content: "\e83d"; -} - -.icon-zuojiantou:before { - content: "\e652"; -} - -.icon-shangyi:before { - content: "\e72f"; -} - -.icon-shixunti:before { - content: "\e83e"; -} - -.icon-youjiantou:before { - content: "\e653"; -} - -.icon-xiayi:before { - content: "\e730"; -} - -.icon-xiaowenhao:before { - content: "\e83f"; -} - -.icon-shangjiantou:before { - content: "\e654"; -} - -.icon-shangyi1:before { - content: "\e731"; -} - -.icon-wenjian3:before { - content: "\e840"; -} - -.icon-bianjidaibeijing:before { - content: "\e655"; -} - -.icon-xiayi1:before { - content: "\e732"; -} - -.icon-xiugai1:before { - content: "\e841"; -} - -.icon-bofang:before { - content: "\e656"; -} - -.icon-yidong:before { - content: "\e734"; -} - -.icon-shiyanhuanjing:before { - content: "\e842"; -} - -.icon-wancheng:before { - content: "\e658"; -} - -.icon-qiandao-:before { - content: "\e735"; -} - -.icon-wenjian11:before { - content: "\e843"; -} - -.icon-fenzuzuoye:before { - content: "\e65d"; -} - -.icon-xiajiantou2:before { - content: "\e737"; -} - -.icon-sousuo3:before { - content: "\e844"; -} - -.icon-putongzuoye:before { - content: "\e65c"; -} - -.icon-qiandao-1:before { - content: "\e736"; -} - -.icon-suoshukecheng:before { - content: "\e845"; -} - -.icon-wenjuan:before { - content: "\e659"; -} - -.icon-tongji1:before { - content: "\e738"; -} - -.icon-shenqinggongkai:before { - content: "\e846"; -} - -.icon-taolun:before { - content: "\e65a"; -} - -.icon-fanhui:before { - content: "\e739"; -} - -.icon-shijianshezhi:before { - content: "\e847"; -} - -.icon-fenban:before { - content: "\e65f"; -} - -.icon-jubushuaxinjiantou:before { - content: "\e73a"; -} - -.icon-renwuguanka:before { - content: "\e848"; -} - -.icon-dongtai:before { - content: "\e660"; -} - -.icon-gongsidizhi:before { - content: "\e73b"; -} - -.icon-xuanzeti1:before { - content: "\e849"; -} - -.icon-shijuan:before { - content: "\e65b"; -} - -.icon-gongsijieshao:before { - content: "\e73c"; -} - -.icon-yijianfankui1:before { - content: "\e84a"; -} - -.icon-caidan:before { - content: "\e661"; -} - -.icon-zhiweiyaoqiu:before { - content: "\e73d"; -} - -.icon-tuijianshixun:before { - content: "\e84b"; -} - -.icon-chengyuanguanli:before { - content: "\e662"; -} - -.icon-fabuzhiwei:before { - content: "\e73e"; -} - -.icon-xiala:before { - content: "\e84c"; -} - -.icon-xiangxiayi:before { - content: "\e663"; -} - -.icon-upload:before { - content: "\e76b"; -} - -.icon-xuexirenshu:before { - content: "\e84d"; -} - -.icon-xiangshangyi:before { - content: "\e664"; -} - -.icon-zhicheng:before { - content: "\e73f"; -} - -.icon-xuexijindu:before { - content: "\e84e"; -} - -.icon-gengduo:before { - content: "\e665"; -} - -.icon-wentiliebiao:before { - content: "\e741"; -} - -.icon-editUnder:before { - content: "\e84f"; -} - -.icon-xueyuanguanliyuan:before { - content: "\e666"; -} - -.icon-tupian:before { - content: "\e742"; -} - -.icon-structure:before { - content: "\e850"; -} - -.icon-kongxing:before { - content: "\e667"; -} - -.icon-huifu:before { - content: "\e743"; -} - -.icon-arrange:before { - content: "\e851"; -} - -.icon-shixing:before { - content: "\e668"; -} - -.icon-xinjianjianliwodejianli:before { - content: "\e744"; -} - -.icon-initialize:before { - content: "\e852"; -} - -.icon-xiajiang:before { - content: "\e669"; -} - -.icon-zhiding1:before { - content: "\e745"; -} - -.icon-unit:before { - content: "\e853"; -} - -.icon-sanjiaoxing-up:before { - content: "\e78f"; -} - -.icon-quxiaozhiding:before { - content: "\e746"; -} - -.icon-model:before { - content: "\e854"; -} - -.icon-sanjiaoxing-down:before { - content: "\e791"; -} - -.icon-hangneigongshi:before { - content: "\e747"; -} - -.icon-sure:before { - content: "\e855"; -} - -.icon-xiazai18:before { - content: "\e627"; -} - -.icon-duohanggongshi:before { - content: "\e748"; -} - -.icon-add:before { - content: "\e856"; -} - -.icon-mail:before { - content: "\e66a"; -} - -.icon-bianji2X:before { - content: "\e749"; -} - -.icon-newStage:before { - content: "\e857"; -} - -.icon-weibiaoti-:before { - content: "\e60d"; -} - -.icon-shezhi4:before { - content: "\e74e"; -} - -.icon-zaibianji:before { - content: "\e858"; -} - -.icon-htmal5icon19:before { - content: "\e66b"; -} - -.icon-fuzhi4:before { - content: "\e74a"; -} - -.icon-yunhang:before { - content: "\e859"; -} - -.icon-xinzengtishi:before { - content: "\e66c"; -} - -.icon-xuanzhong:before { - content: "\e74b"; -} - -.icon-wanchenggouxuan:before { - content: "\e66e"; -} - -.icon-weixuanzhong:before { - content: "\e74d"; -} - -.icon-shezhi:before { - content: "\e66f"; -} - -.icon-xiangmuleixing:before { - content: "\e750"; -} - -.icon-youjiang:before { - content: "\e792"; -} - -.icon-xiangmuleibie:before { - content: "\e751"; -} - -.icon-fujian:before { - content: "\e670"; -} - -.icon-ziyuan1:before { - content: "\e752"; -} - -.icon-qizhi:before { - content: "\e699"; -} - -.icon-fenzhi1:before { - content: "\e753"; -} - -.icon-31:before { - content: "\e6b2"; -} - -.icon-biaoqian3:before { - content: "\e754"; -} - -.icon-wenhao:before { - content: "\e680"; -} - -.icon-fahangban:before { - content: "\e755"; -} - -.icon-weibiaoti12:before { - content: "\e671"; -} - -.icon-gongxianzhe:before { - content: "\e757"; -} - -.icon-biyezhuanhuan:before { - content: "\e6f1"; -} - -.icon-cangku:before { - content: "\e758"; -} - -.icon-suo:before { - content: "\e6c9"; -} - -.icon-fuzhi5:before { - content: "\e759"; -} - -.icon-triangle:before { - content: "\e600"; -} - -.icon-xiazai2:before { - content: "\e75a"; -} - -.icon-tianjia:before { - content: "\e672"; -} - -.icon-wenjia:before { - content: "\e75b"; -} - -.icon-roundaddfill:before { - content: "\e6d8"; -} - -.icon-wenjianjia1:before { - content: "\e75c"; -} - -.icon-roundclose:before { - content: "\e673"; -} - -.icon-ZIP:before { - content: "\e75d"; -} - -.icon-zuobiao:before { - content: "\e674"; -} - -.icon-TAR:before { - content: "\e75e"; -} - -.icon-yinhangqia:before { - content: "\e675"; -} - -.icon-daochu3x:before { - content: "\e75f"; -} - -.icon-gengduo1:before { - content: "\e7f9"; -} - -.icon-lijijiezhi3x:before { - content: "\e760"; -} - -.icon-jia:before { - content: "\e605"; -} - -.icon-bianjishijuan3x:before { - content: "\e761"; -} - -.icon-weizhi:before { - content: "\e676"; -} - -.icon-dahuizhongzuo3x:before { - content: "\e762"; -} - -.icon-fork:before { - content: "\e6b3"; -} - -.icon-filedone2X:before { - content: "\e764"; -} - -.icon-css3:before { - content: "\ea8b"; -} - -.icon-filesync3x:before { - content: "\e766"; -} - -.icon-html5:before { - content: "\eb10"; -} - -.icon-bianzu19xia3x:before { - content: "\e767"; -} - -.icon-linux:before { - content: "\e765"; -} - -.icon-bianzu193x:before { - content: "\e768"; -} - -.icon-dashujucunchu:before { - content: "\e678"; -} - -.icon-Search3x:before { - content: "\e769"; -} - -.icon-VPN:before { - content: "\e601"; -} - -.icon-bianzu19:before { - content: "\e76a"; -} - -.icon-jquery:before { - content: "\e67a"; -} - -.icon-xuanzhongkuang:before { - content: "\e76c"; -} - -.icon-docker:before { - content: "\e67b"; -} - -.icon-weixuankuang:before { - content: "\e76d"; -} - -.icon-python:before { - content: "\e67c"; -} - -.icon-check-square-fill3x:before { - content: "\e76e"; -} - -.icon-php:before { - content: "\e67d"; -} - -.icon-play-square-fill3x:before { - content: "\e76f"; -} - -.icon-java:before { - content: "\f1d7"; -} - -.icon-huabanfuben:before { - content: "\eb7b"; -} - -.icon-mysql:before { - content: "\ec6d"; -} - -.icon-zhongqingdianxinicon10:before { - content: "\e770"; -} - -.icon-phpkaifa:before { - content: "\e67e"; -} - -.icon-leftarrow:before { - content: "\e771"; -} - -.icon-SQLserver:before { - content: "\e705"; -} - -.icon-xinjian1:before { - content: "\e772"; -} - -.icon-mongodb1:before { - content: "\e60b"; -} - -.icon-jingxiang:before { - content: "\e773"; -} - -.icon-luyou:before { - content: "\e677"; -} - -.icon-shixunxiangqing:before { - content: "\e775"; -} - -.icon-zhinengjiankongtixi:before { - content: "\e6b4"; -} - -.icon-lijifabu:before { - content: "\e776"; -} - -.icon-daimapeizhir:before { - content: "\e727"; -} - -.icon-kaiqizhong:before { - content: "\e777"; -} - -.icon-timefill:before { - content: "\e679"; -} - -.icon-daochu:before { - content: "\e778"; -} - -.icon-default:before { - content: "\e67f"; -} - -.icon-yijiandianping:before { - content: "\e779"; -} - -.icon-zhongzhi1:before { - content: "\e609"; -} - -.icon-chakanshixunbaogao:before { - content: "\e77a"; -} - -.icon-reset:before { - content: "\e7fe"; -} - -.icon-tijiaozongjie:before { - content: "\e77b"; -} - -.icon-vs:before { - content: "\e682"; -} - -.icon-daimachazhong:before { - content: "\e77c"; -} - -.icon-base:before { - content: "\e683"; -} - -.icon-bianjizuoye:before { - content: "\e77d"; -} - -.icon-dengluIpjiankong:before { - content: "\e684"; -} - -.icon-lijijiezhi:before { - content: "\e77e"; -} - -.icon-itsm-liuchengguanli:before { - content: "\e685"; -} - -.icon-hebingqingqiu:before { - content: "\e7f2"; -} - -.icon-net:before { - content: "\e607"; -} - -.icon-zuzhichengyuan:before { - content: "\e774"; -} - -.icon-mstest:before { - content: "\e686"; -} - -.icon-zuzhixiangmu:before { - content: "\e77f"; -} - -.icon-qq:before { - content: "\e687"; -} - -.icon-gonggaolan:before { - content: "\e780"; -} - -.icon-csdn:before { - content: "\e602"; -} - -.icon-shixunzuoye:before { - content: "\e781"; -} - -.icon-weibo:before { - content: "\e688"; -} - -.icon-fenzuzuoye1:before { - content: "\e783"; -} - -.icon-weixin2:before { - content: "\e603"; -} - -.icon-biyezuoye:before { - content: "\e784"; -} - -.icon-StackOverflow:before { - content: "\e689"; -} - -.icon-kaoshishijuan:before { - content: "\e785"; -} - -.icon-linkedin:before { - content: "\e60c"; -} - -.icon-kaoshiwenjuan:before { - content: "\e786"; -} - -.icon-github:before { - content: "\e763"; -} - -.icon-xuexiziyuan:before { - content: "\e787"; -} - -.icon-shijian:before { - content: "\e69c"; -} - -.icon-shipinzhibo:before { - content: "\e788"; -} - -.icon-zhongzhi2:before { - content: "\e68a"; -} - -.icon-taolun1:before { - content: "\e789"; -} - -.icon-congshulianjie:before { - content: "\e6ee"; -} - -.icon-fenban1:before { - content: "\e78a"; -} - -.icon-trustie:before { - content: "\e681"; -} - -.icon-qiandao:before { - content: "\e78b"; -} - -.icon-chenggong:before { - content: "\e68b"; -} - -.icon-tongji2:before { - content: "\e78c"; -} - -.icon-shixundaibeijing:before { - content: "\e68c"; -} - -.icon-bianji6:before { - content: "\e78d"; -} - -.icon-zhiliangfenxi:before { - content: "\e68d"; -} - -.icon-wenjian1:before { - content: "\e78e"; -} - -.icon-shezhi1:before { - content: "\e71d"; -} - -.icon-gengxinchengji:before { - content: "\e790"; -} - -.icon-pdf:before { - content: "\e740"; -} - -.icon-gongzuoliu:before { - content: "\e793"; -} - -.icon-shangchuantupian1:before { - content: "\e7fd"; -} - -.icon-weitongguo:before { - content: "\e794"; -} - -.icon-tianjiadaohang:before { - content: "\e604"; -} - -.icon-yitongguo:before { - content: "\e795"; -} - -.icon-zhangjie1:before { - content: "\e68e"; -} - -.icon-yunhangzhong:before { - content: "\e796"; -} - -.icon-fuzhi:before { - content: "\e68f"; -} - -.icon-zhunbeizhong:before { - content: "\e797"; -} - -.icon-sandian:before { - content: "\e6f8"; -} - -.icon-HOME:before { - content: "\e798"; -} - -.icon-biaoqian:before { - content: "\e74f"; -} - -.icon-MAILINGLIST:before { - content: "\e799"; -} - -.icon-tishi1:before { - content: "\e690"; -} - -.icon-EDISTATEMENT:before { - content: "\e79a"; -} - -.icon-tianjiachengyuan:before { - content: "\e69a"; -} - -.icon-CONDUCTSAFETY:before { - content: "\e79b"; -} - -.icon-edit:before { - content: "\e691"; -} - -.icon-HISTORY:before { - content: "\e79c"; -} - -.icon-xiazai1:before { - content: "\e6ac"; -} - -.icon-PROCEEDINGS:before { - content: "\e79d"; -} - -.icon-moban:before { - content: "\e692"; -} - -.icon-BIBLIOGRAPHIES:before { - content: "\e79e"; -} - -.icon-renzhengxinxi:before { - content: "\e693"; -} - -.icon-INFLUENTIALPAPERS:before { - content: "\e79f"; -} - -.icon-jibenxinxi:before { - content: "\e694"; -} - -.icon-ORGANIZINGICSE-MOU:before { - content: "\e7a0"; -} - -.icon-anquanshezhi:before { - content: "\e606"; -} - -.icon-STEERINGCOMMITTEE:before { - content: "\e7a1"; -} - -.icon-xianshi:before { - content: "\e695"; -} - -.icon-FINALREPORTS:before { - content: "\e7a2"; -} - -.icon-yincang:before { - content: "\e6a0"; -} - -.icon-SPONSORS:before { - content: "\e7a3"; -} - -.icon-cuban2shangchuanyunduan:before { - content: "\e86d"; -} - -.icon-CONTACTS:before { - content: "\e7a4"; -} - -.icon-kehuliuyan:before { - content: "\e71a"; -} - -.icon-Lastupdated:before { - content: "\e7a5"; -} - -.icon-laba:before { - content: "\e608"; -} - -.icon-shixunzuoye1:before { - content: "\e7a6"; -} - -.icon-yincang1:before { - content: "\e9b5"; -} - -.icon-putongzuoye1:before { - content: "\e782"; -} - -.icon-jinggao:before { - content: "\e696"; -} - -.icon-xuexiziyuan1:before { - content: "\e7a8"; -} - -.icon-yinhangqia1:before { - content: "\e697"; -} - -.icon-kaoshiwenjuan1:before { - content: "\e7a7"; -} - -.icon-shezhi2:before { - content: "\e698"; -} - -.icon-kaoshishijuan1:before { - content: "\e7a9"; -} - -.icon-mingpian:before { - content: "\e69b"; -} - -.icon-shipinzhibo1:before { - content: "\e7aa"; -} - -.icon-shouji:before { - content: "\e69d"; -} - -.icon-taolun2:before { - content: "\e7ab"; -} - -.icon-kong:before { - content: "\e69f"; -} - -.icon-fenban2:before { - content: "\e7ac"; -} - -.icon-paixu1:before { - content: "\e6aa"; -} - -.icon-qiandao1:before { - content: "\e7ad"; -} - -.icon-yonghujiaose_wushuju:before { - content: "\e69e"; -} - -.icon-tongji3:before { - content: "\e7ae"; -} - -.icon-renzhengshangjia:before { - content: "\e6ab"; -} - -.icon-biyezuoye1:before { - content: "\e7af"; -} - -.icon-shenfenzhenghaomaguizheng:before { - content: "\e6ad"; -} - -.icon-fenzuzuoye2:before { - content: "\e7b0"; -} - -.icon-bianji1:before { - content: "\e6a1"; -} - -.icon-mobanguanli2:before { - content: "\e7b1"; -} - -.icon-xiaoxi1:before { - content: "\e6a4"; -} - -.icon-duigou1:before { - content: "\e7b2"; -} - -.icon-Page-1:before { - content: "\e6ae"; -} - -.icon-lianjie1:before { - content: "\e7b5"; -} - -.icon-Page-3:before { - content: "\e6af"; -} - -.icon-zhangjie:before { - content: "\e7b6"; -} - -.icon-Page:before { - content: "\e6b0"; -} - -.icon-shangchuanshipin1:before { - content: "\e7b7"; -} - -.icon-yemian:before { - content: "\e6b1"; -} - -.icon-shizhong:before { - content: "\e7b8"; -} - -.icon-bianzu:before { - content: "\e6b5"; -} - -.icon-fangzuobi:before { - content: "\e7b9"; -} - -.icon-kecheng:before { - content: "\e60a"; -} - -.icon-fangda2:before { - content: "\e7ba"; -} - -.icon-xuexizhongxin:before { - content: "\e6b6"; -} - -.icon-shipin:before { - content: "\e7b4"; -} - -.icon-wuquanxian:before { - content: "\e6a2"; -} - -.icon-shixun2:before { - content: "\e7be"; -} - -.icon-yunweijiankong:before { - content: "\e6a3"; -} - -.icon-ziyongshijuan:before { - content: "\e7b3"; -} - -.icon-gongyiliucheng:before { - content: "\e6a5"; -} - -.icon-yigongkaishijuan:before { - content: "\e7bb"; -} - -.icon-zhiliangkongzhi:before { - content: "\e6a6"; -} - -.icon-jiantou:before { - content: "\e7bc"; -} - -.icon-shebeiguanli:before { - content: "\e6a7"; -} - -.icon-bianchengyuyan:before { - content: "\e7bd"; -} - -.icon-shengmingzhouqi:before { - content: "\e6a8"; -} - -.icon-you:before { - content: "\e7bf"; -} - -.icon-menu_date:before { - content: "\e6a9"; -} - -.icon-zuo:before { - content: "\e7c0"; -} - -.icon-menu_people:before { - content: "\e6b7"; -} - -.icon-oschina:before { - content: "\e7c1"; -} - -.icon-menu_voucher:before { - content: "\e6b8"; -} - -.icon-yonghu:before { - content: "\e7c2"; -} - -.icon-menu_events:before { - content: "\e6b9"; -} - -.icon-QQ:before { - content: "\e7c3"; -} - -.icon-menu_map:before { - content: "\e6ba"; -} - -.icon-guangbiao:before { - content: "\e7c4"; -} - -.icon-huodong:before { - content: "\e6bb"; -} - -.icon-sousuo2:before { - content: "\e7c6"; -} - -.icon-danxuanxuanzhong1:before { - content: "\e6bd"; -} - -.icon-shoucang3:before { - content: "\e7c7"; -} - -.icon-gongcheng:before { - content: "\e60f"; -} - -.icon-shanchu21:before { - content: "\e7c8"; -} - -.icon-shequ:before { - content: "\e6bc"; -} - -.icon-jingshi1:before { - content: "\e7c9"; -} - -.icon-healthmode:before { - content: "\e60e"; -} - -.icon-chexiaofenzu:before { - content: "\e7ca"; -} - -.icon-nenghaofenxix:before { - content: "\e6be"; -} - -.icon-chexiaogongxiang:before { - content: "\e7cb"; -} - -.icon-lianjie:before { - content: "\e7db"; -} - -.icon-xuanzhong1:before { - content: "\e7cc"; -} - -.icon-detectionx:before { - content: "\e6c1"; -} - -.icon-vncshixunjiemian-shouqi:before { - content: "\e7cd"; -} - -.icon-communityx:before { - content: "\e6c2"; -} - -.icon-vncshixunjiemian-zhankai:before { - content: "\e7cf"; -} - -.icon-hostingx2:before { - content: "\e6c3"; -} - -.icon-vncshixunjiemian-gongjulan:before { - content: "\e7d0"; -} - -.icon-projectx:before { - content: "\e6c4"; -} - -.icon-shiyanhuanjingdaojishi:before { - content: "\e7d1"; -} - -.icon-fuzhi1:before { - content: "\e800"; -} - -.icon-fuzhibanbenkudizhi1:before { - content: "\e7d3"; -} - -.icon-zhuye:before { - content: "\e6d3"; -} - -.icon-quanping:before { - content: "\e7d2"; -} - -.icon-tongji:before { - content: "\e6bf"; -} - -.icon-tuichuquanping:before { - content: "\e7d4"; -} - -.icon-weibiaoti105:before { - content: "\e6c0"; -} - -.icon-zhongzhishixun:before { - content: "\e7d5"; -} - -.icon-guanzhu:before { - content: "\e6c5"; -} - -.icon-fuzhiniantie:before { - content: "\e7d6"; -} - -.icon-bokeyuan:before { - content: "\e6c6"; -} - -.icon-gongxiangzhuomian:before { - content: "\e7d7"; -} - -.icon-liulan:before { - content: "\e6c7"; -} - -.icon-guankacaidan:before { - content: "\e7ce"; -} - -.icon-pinglun:before { - content: "\e6c8"; -} - -.icon-weikaishexiangtou1:before { - content: "\e7d8"; -} - -.icon-bangdingshoujihao:before { - content: "\e6ca"; -} - -.icon-jinbi:before { - content: "\e7c5"; -} - -.icon-biaoqian1:before { - content: "\e6ce"; -} - -.icon-daimaku:before { - content: "\e7d9"; -} - -.icon-jilu:before { - content: "\e6cf"; -} - -.icon-forc:before { - content: "\e7da"; -} - -.icon-shu:before { - content: "\e6d0"; -} - -.icon-dianzan3:before { - content: "\e7dd"; -} - -.icon-tuijian:before { - content: "\e6d1"; -} - -.icon-lichengbei:before { - content: "\e7de"; -} - -.icon-chuangjianzhe:before { - content: "\e6d2"; -} - -.icon-quxiaodianzan:before { - content: "\e7df"; -} - -.icon-jinzhi:before { - content: "\e6d4"; -} - -.icon-fork2:before { - content: "\e7e0"; -} - -.icon-wancheng1:before { - content: "\e6cb"; -} - -.icon-hebingqingqiu1:before { - content: "\e7e1"; -} - -.icon-shangjiantou-tianchong:before { - content: "\e733"; -} - -.icon-renwu:before { - content: "\e7e2"; -} - -.icon-shenglvehao:before { - content: "\e708"; -} - -.icon-tongzhi:before { - content: "\e7e3"; -} - -.icon-qiyezhanghao:before { - content: "\e6cc"; -} - -.icon-shiyongwendang:before { - content: "\e7e5"; -} - -.icon-gerenzhanghao:before { - content: "\e6cd"; -} - -.icon-canyuchengyuan:before { - content: "\e7e6"; -} - -.icon-jiazaishibai1:before { - content: "\e6d6"; -} - -.icon-xiangmujianjie:before { - content: "\e7e7"; -} - -.icon-leixing:before { - content: "\e6d5"; -} - -.icon-zhuye1:before { - content: "\e7e4"; -} - -.icon-biaoqianjiantou:before { - content: "\e6d7"; -} - -.icon-tianxiedisanfangmuke:before { - content: "\e7e8"; -} - -.icon-zhiding:before { - content: "\e6d9"; -} - -.icon-chengguorongyu:before { - content: "\e7e9"; -} - -.icon-wenti:before { - content: "\e7dc"; -} - -.icon-tupian1:before { - content: "\e7ea"; -} - -.icon-chuangjianzhe1:before { - content: "\e6da"; -} - -.icon-rili1:before { - content: "\e7eb"; -} - -.icon-shu1:before { - content: "\e6dc"; -} - -.icon-fanhui1:before { - content: "\e7ec"; -} - -.icon-biaoqian2:before { - content: "\e6dd"; -} - -.icon-tishi3:before { - content: "\e7ed"; -} - -.icon-jilu1:before { - content: "\e6de"; -} - -.icon-zuoyechazhong1:before { - content: "\e7ef"; -} - -.icon-tuijian1:before { - content: "\e6df"; -} - -.icon-gongchengjiaoyu1:before { - content: "\e7f0"; -} - -.icon-jinggao1:before { - content: "\e6e0"; -} - -.icon-fanzhuanketang1:before { - content: "\e7f4"; -} - -.icon-dianzan2:before { - content: "\e6e1"; -} - -.icon-shixunkecheng1:before { - content: "\e7f5"; -} - -.icon-pinglun1:before { - content: "\e6e2"; -} - -.icon-quntibiaozhu:before { - content: "\e7ee"; -} - -.icon-duigou:before { - content: "\e6e3"; -} - -.icon-biaozhuyindao:before { - content: "\e7f1"; -} - -.icon-liwu:before { - content: "\e611"; -} - -.icon-tishi2:before { - content: "\e6e4"; -} - -.icon-fankuixiuzheng:before { - content: "\e7f3"; -} - -.icon-dianzaned:before { - content: "\e639"; -} - -.icon-bianji_Hover:before { - content: "\e6e5"; -} - -.icon-taishiganzhi:before { - content: "\e7f6"; -} - -.icon-dianzan11:before { - content: "\e66d"; -} - -.icon-shangyi_Hover:before { - content: "\e6e6"; -} - -.icon-duoweipinggu:before { - content: "\e7f7"; -} - -.icon-gift:before { - content: "\e63c"; -} - -.icon-shanchu_moren:before { - content: "\e6e7"; -} - -.icon-daimatuoguan:before { - content: "\e7f8"; -} - -.icon-xiaoxi:before { - content: "\e614"; -} - -.icon-xiayi_Hover:before { - content: "\e6e8"; -} - -.icon-jiaoliushequ:before { - content: "\e7fa"; -} - diff --git a/css/iconfont.js b/css/iconfont.js deleted file mode 100644 index 0b03f5640..000000000 --- a/css/iconfont.js +++ /dev/null @@ -1 +0,0 @@ -!function(a){var l,c,h,i,o,z='',t=(t=document.getElementsByTagName("script"))[t.length-1].getAttribute("data-injectcss"),p=function(a,l){l.parentNode.insertBefore(a,l)};if(t&&!a.__iconfont__svg__cssinject__){a.__iconfont__svg__cssinject__=!0;try{document.write("")}catch(a){console&&console.log(a)}}function v(){o||(o=!0,h())}function m(){try{i.documentElement.doScroll("left")}catch(a){return void setTimeout(m,50)}v()}l=function(){var a,l=document.createElement("div");l.innerHTML=z,z=null,(l=l.getElementsByTagName("svg")[0])&&(l.setAttribute("aria-hidden","true"),l.style.position="absolute",l.style.width=0,l.style.height=0,l.style.overflow="hidden",l=l,(a=document.body).firstChild?p(l,a.firstChild):a.appendChild(l))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(l,0):(c=function(){document.removeEventListener("DOMContentLoaded",c,!1),l()},document.addEventListener("DOMContentLoaded",c,!1)):document.attachEvent&&(h=l,i=a.document,o=!1,m(),i.onreadystatechange=function(){"complete"==i.readyState&&(i.onreadystatechange=null,v())})}(window); \ No newline at end of file diff --git a/css/iconfont.json b/css/iconfont.json deleted file mode 100644 index 9dc3ea5e5..000000000 --- a/css/iconfont.json +++ /dev/null @@ -1,5812 +0,0 @@ -{ - "id": "2340181", - "name": "newForge", - "font_family": "iconfont", - "css_prefix_text": "icon-", - "description": "", - "glyphs": [ - { - "icon_id": "29934961", - "name": "退出icon", - "font_class": "tuichuicon", - "unicode": "e936", - "unicode_decimal": 59702 - }, - { - "icon_id": "29811507", - "name": "帮助中心icon", - "font_class": "bangzhuzhongxinicon1", - "unicode": "e935", - "unicode_decimal": 59701 - }, - { - "icon_id": "29701613", - "name": "课题详情icon", - "font_class": "ketixiangqingicon", - "unicode": "e92b", - "unicode_decimal": 59691 - }, - { - "icon_id": "29701614", - "name": "编辑icon", - "font_class": "bianjiicon", - "unicode": "e92c", - "unicode_decimal": 59692 - }, - { - "icon_id": "29701615", - "name": "报名详情icon", - "font_class": "baomingxiangqingicon", - "unicode": "e92d", - "unicode_decimal": 59693 - }, - { - "icon_id": "29701616", - "name": "搜索", - "font_class": "sousuo4", - "unicode": "e92e", - "unicode_decimal": 59694 - }, - { - "icon_id": "29701617", - "name": "取消申请icon", - "font_class": "quxiaoshenqingicon", - "unicode": "e92f", - "unicode_decimal": 59695 - }, - { - "icon_id": "29701618", - "name": "下拉", - "font_class": "xiala3", - "unicode": "e930", - "unicode_decimal": 59696 - }, - { - "icon_id": "29701619", - "name": "添加_填充", - "font_class": "tianjia_tianchong", - "unicode": "e931", - "unicode_decimal": 59697 - }, - { - "icon_id": "29701620", - "name": "删除 (2)", - "font_class": "a-shanchu2", - "unicode": "e932", - "unicode_decimal": 59698 - }, - { - "icon_id": "29701621", - "name": "删除icon", - "font_class": "shanchuicon3", - "unicode": "e933", - "unicode_decimal": 59699 - }, - { - "icon_id": "29701622", - "name": "申请课题icon", - "font_class": "shenqingketiicon", - "unicode": "e934", - "unicode_decimal": 59700 - }, - { - "icon_id": "29665762", - "name": "微信", - "font_class": "weixin", - "unicode": "e92a", - "unicode_decimal": 59690 - }, - { - "icon_id": "29467269", - "name": "暂无数据", - "font_class": "zanwushuju", - "unicode": "e928", - "unicode_decimal": 59688 - }, - { - "icon_id": "29467272", - "name": "服务icon", - "font_class": "fuwuicon", - "unicode": "e929", - "unicode_decimal": 59689 - }, - { - "icon_id": "29206429", - "name": "personal-center", - "font_class": "personal-center", - "unicode": "e927", - "unicode_decimal": 59687 - }, - { - "icon_id": "28888753", - "name": "帮助中心icon", - "font_class": "bangzhuzhongxinicon", - "unicode": "e926", - "unicode_decimal": 59686 - }, - { - "icon_id": "28163416", - "name": "开源项目", - "font_class": "kaiyuanxiangmu", - "unicode": "e91d", - "unicode_decimal": 59677 - }, - { - "icon_id": "28163417", - "name": "论坛交流", - "font_class": "luntanjiaoliu", - "unicode": "e91e", - "unicode_decimal": 59678 - }, - { - "icon_id": "28163418", - "name": "网站配置", - "font_class": "wangzhanpeizhi", - "unicode": "e91f", - "unicode_decimal": 59679 - }, - { - "icon_id": "28163419", - "name": "未选择-创客空间", - "font_class": "weixuanze-chuangkekongjian", - "unicode": "e920", - "unicode_decimal": 59680 - }, - { - "icon_id": "28163420", - "name": "图标", - "font_class": "tubiao", - "unicode": "e921", - "unicode_decimal": 59681 - }, - { - "icon_id": "28163421", - "name": "公告发布", - "font_class": "gonggaofabu", - "unicode": "e922", - "unicode_decimal": 59682 - }, - { - "icon_id": "28163422", - "name": "竞赛活动", - "font_class": "jingsaihuodong", - "unicode": "e923", - "unicode_decimal": 59683 - }, - { - "icon_id": "28163423", - "name": "用户管理", - "font_class": "yonghuguanli", - "unicode": "e924", - "unicode_decimal": 59684 - }, - { - "icon_id": "28163424", - "name": "审批", - "font_class": "shenpi", - "unicode": "e925", - "unicode_decimal": 59685 - }, - { - "icon_id": "22773568", - "name": "专利", - "font_class": "zhuanli1", - "unicode": "e918", - "unicode_decimal": 59672 - }, - { - "icon_id": "27680124", - "name": "代码icon", - "font_class": "daimaicon", - "unicode": "e91c", - "unicode_decimal": 59676 - }, - { - "icon_id": "27664463", - "name": "奖项icon", - "font_class": "jiangxiangicon", - "unicode": "e916", - "unicode_decimal": 59670 - }, - { - "icon_id": "27664464", - "name": "数据", - "font_class": "shuju", - "unicode": "e917", - "unicode_decimal": 59671 - }, - { - "icon_id": "27664466", - "name": "文档", - "font_class": "wendang", - "unicode": "e919", - "unicode_decimal": 59673 - }, - { - "icon_id": "27664467", - "name": "论文", - "font_class": "lunwen", - "unicode": "e91a", - "unicode_decimal": 59674 - }, - { - "icon_id": "27664468", - "name": "专利", - "font_class": "zhuanli", - "unicode": "e91b", - "unicode_decimal": 59675 - }, - { - "icon_id": "27664392", - "name": "概览", - "font_class": "gailan1", - "unicode": "e914", - "unicode_decimal": 59668 - }, - { - "icon_id": "27664393", - "name": "团队", - "font_class": "tuandui", - "unicode": "e915", - "unicode_decimal": 59669 - }, - { - "icon_id": "27299393", - "name": "icon", - "font_class": "icon2", - "unicode": "e912", - "unicode_decimal": 59666 - }, - { - "icon_id": "27299394", - "name": "2", - "font_class": "a-21", - "unicode": "e913", - "unicode_decimal": 59667 - }, - { - "icon_id": "27200759", - "name": "2", - "font_class": "a-2", - "unicode": "e90f", - "unicode_decimal": 59663 - }, - { - "icon_id": "27200760", - "name": "3", - "font_class": "a-3", - "unicode": "e910", - "unicode_decimal": 59664 - }, - { - "icon_id": "27200761", - "name": "icon", - "font_class": "icon1", - "unicode": "e911", - "unicode_decimal": 59665 - }, - { - "icon_id": "27041503", - "name": "ioon", - "font_class": "ioon", - "unicode": "e90e", - "unicode_decimal": 59662 - }, - { - "icon_id": "26470602", - "name": "shanchu_tc_icon", - "font_class": "shanchu_tc_icon1", - "unicode": "e90c", - "unicode_decimal": 59660 - }, - { - "icon_id": "26470603", - "name": "专家icon", - "font_class": "zhuanjiaicon", - "unicode": "e90d", - "unicode_decimal": 59661 - }, - { - "icon_id": "12505154", - "name": "声明", - "font_class": "shengming", - "unicode": "e90b", - "unicode_decimal": 59659 - }, - { - "icon_id": "26470597", - "name": "成功", - "font_class": "chenggong1", - "unicode": "e907", - "unicode_decimal": 59655 - }, - { - "icon_id": "26470599", - "name": "必填@2x", - "font_class": "a-bitian2x1", - "unicode": "e908", - "unicode_decimal": 59656 - }, - { - "icon_id": "26470600", - "name": "下拉", - "font_class": "xiala1", - "unicode": "e909", - "unicode_decimal": 59657 - }, - { - "icon_id": "26470601", - "name": "下拉2", - "font_class": "xiala2", - "unicode": "e90a", - "unicode_decimal": 59658 - }, - { - "icon_id": "26363219", - "name": "箭头", - "font_class": "jiantou1", - "unicode": "e905", - "unicode_decimal": 59653 - }, - { - "icon_id": "26359564", - "name": "章节icon ", - "font_class": "zhangjieicon", - "unicode": "e8fe", - "unicode_decimal": 59646 - }, - { - "icon_id": "26359565", - "name": "成员", - "font_class": "chengyuan1", - "unicode": "e903", - "unicode_decimal": 59651 - }, - { - "icon_id": "26325702", - "name": "上传@2x", - "font_class": "a-shangchuan2x", - "unicode": "e8f9", - "unicode_decimal": 59641 - }, - { - "icon_id": "26325703", - "name": "删除 ", - "font_class": "shanchu7", - "unicode": "e8fa", - "unicode_decimal": 59642 - }, - { - "icon_id": "26325704", - "name": "左滑备份", - "font_class": "zuohuabeifen", - "unicode": "e8fb", - "unicode_decimal": 59643 - }, - { - "icon_id": "26325698", - "name": "编辑 (1)", - "font_class": "a-bianji11", - "unicode": "e8f4", - "unicode_decimal": 59636 - }, - { - "icon_id": "26325699", - "name": "必填@2x", - "font_class": "a-bitian2x", - "unicode": "e8f5", - "unicode_decimal": 59637 - }, - { - "icon_id": "26325700", - "name": "左滑@2x", - "font_class": "a-zuohua2x", - "unicode": "e8f7", - "unicode_decimal": 59639 - }, - { - "icon_id": "26325701", - "name": "链接", - "font_class": "lianjie3", - "unicode": "e8f8", - "unicode_decimal": 59640 - }, - { - "icon_id": "25748537", - "name": "知识图谱", - "font_class": "zhishitupu", - "unicode": "e8fc", - "unicode_decimal": 59644 - }, - { - "icon_id": "25748551", - "name": "计算机", - "font_class": "jisuanji1", - "unicode": "e8fd", - "unicode_decimal": 59645 - }, - { - "icon_id": "25748553", - "name": "电子", - "font_class": "dianzi1", - "unicode": "e8ff", - "unicode_decimal": 59647 - }, - { - "icon_id": "25748554", - "name": "军事理论", - "font_class": "junshililun1", - "unicode": "e900", - "unicode_decimal": 59648 - }, - { - "icon_id": "25748555", - "name": "软件工程", - "font_class": "ruanjiangongcheng1", - "unicode": "e901", - "unicode_decimal": 59649 - }, - { - "icon_id": "25748556", - "name": "医学", - "font_class": "yixue1", - "unicode": "e902", - "unicode_decimal": 59650 - }, - { - "icon_id": "25748558", - "name": "通信", - "font_class": "tongxin1", - "unicode": "e904", - "unicode_decimal": 59652 - }, - { - "icon_id": "25748560", - "name": "政策法规", - "font_class": "zhengcefagui1", - "unicode": "e906", - "unicode_decimal": 59654 - }, - { - "icon_id": "25748528", - "name": "大数据", - "font_class": "dashuju", - "unicode": "e8f3", - "unicode_decimal": 59635 - }, - { - "icon_id": "25748531", - "name": "人工智能", - "font_class": "rengongzhineng", - "unicode": "e8f6", - "unicode_decimal": 59638 - }, - { - "icon_id": "25733167", - "name": "双引号(1)@2x", - "font_class": "a-shuangyinhao12x", - "unicode": "e8f2", - "unicode_decimal": 59634 - }, - { - "icon_id": "25701947", - "name": "顶部", - "font_class": "dingbu", - "unicode": "e8ee", - "unicode_decimal": 59630 - }, - { - "icon_id": "25701948", - "name": "帮助", - "font_class": "bangzhu1", - "unicode": "e8ef", - "unicode_decimal": 59631 - }, - { - "icon_id": "25701949", - "name": "意见反馈", - "font_class": "yijianfankui2", - "unicode": "e8f0", - "unicode_decimal": 59632 - }, - { - "icon_id": "25701950", - "name": "分享", - "font_class": "fenxiang", - "unicode": "e8f1", - "unicode_decimal": 59633 - }, - { - "icon_id": "25580217", - "name": "地址", - "font_class": "dizhi", - "unicode": "e8eb", - "unicode_decimal": 59627 - }, - { - "icon_id": "25580218", - "name": "邮箱", - "font_class": "youxiang1", - "unicode": "e8ec", - "unicode_decimal": 59628 - }, - { - "icon_id": "25580219", - "name": "电话icon", - "font_class": "dianhuaicon", - "unicode": "e8ed", - "unicode_decimal": 59629 - }, - { - "icon_id": "25284174", - "name": "添加icon", - "font_class": "tianjiaicon", - "unicode": "e8e8", - "unicode_decimal": 59624 - }, - { - "icon_id": "25284175", - "name": "铃声icon", - "font_class": "lingshengicon", - "unicode": "e8ea", - "unicode_decimal": 59626 - }, - { - "icon_id": "25204490", - "name": "更多icon", - "font_class": "gengduoicon", - "unicode": "e8e5", - "unicode_decimal": 59621 - }, - { - "icon_id": "25204491", - "name": "时间icon", - "font_class": "shijianicon", - "unicode": "e8e7", - "unicode_decimal": 59623 - }, - { - "icon_id": "25188228", - "name": "密码icon", - "font_class": "mimaicon", - "unicode": "e8e1", - "unicode_decimal": 59617 - }, - { - "icon_id": "25188229", - "name": "钩icon", - "font_class": "gouicon", - "unicode": "e8e2", - "unicode_decimal": 59618 - }, - { - "icon_id": "25188230", - "name": "展开icon", - "font_class": "zhankaiicon", - "unicode": "e8e3", - "unicode_decimal": 59619 - }, - { - "icon_id": "24656750", - "name": "文件", - "font_class": "wenjian7", - "unicode": "e8e0", - "unicode_decimal": 59616 - }, - { - "icon_id": "630094", - "name": "向右箭头", - "font_class": "xiangyoujiantou", - "unicode": "e8de", - "unicode_decimal": 59614 - }, - { - "icon_id": "630095", - "name": "向左箭头", - "font_class": "xiangzuojiantou", - "unicode": "e8df", - "unicode_decimal": 59615 - }, - { - "icon_id": "24600282", - "name": "浏览icon@2x", - "font_class": "a-liulanicon2x", - "unicode": "e8dd", - "unicode_decimal": 59613 - }, - { - "icon_id": "24567893", - "name": "文件icon", - "font_class": "wenjianicon", - "unicode": "e8dc", - "unicode_decimal": 59612 - }, - { - "icon_id": "24527422", - "name": "圆圈@2x", - "font_class": "a-yuanquan2x", - "unicode": "e8db", - "unicode_decimal": 59611 - }, - { - "icon_id": "24378423", - "name": "项目标签", - "font_class": "xiangmubiaoqian", - "unicode": "e8da", - "unicode_decimal": 59610 - }, - { - "icon_id": "24368060", - "name": "icon", - "font_class": "icon", - "unicode": "e8ce", - "unicode_decimal": 59598 - }, - { - "icon_id": "24368061", - "name": "tar", - "font_class": "tar", - "unicode": "e8cf", - "unicode_decimal": 59599 - }, - { - "icon_id": "24289113", - "name": "复制 (2)", - "font_class": "a-fuzhi2", - "unicode": "e8d0", - "unicode_decimal": 59600 - }, - { - "icon_id": "24289114", - "name": "附件", - "font_class": "fujian1", - "unicode": "e8d1", - "unicode_decimal": 59601 - }, - { - "icon_id": "24289115", - "name": "编 辑", - "font_class": "a-bianji1", - "unicode": "e8d2", - "unicode_decimal": 59602 - }, - { - "icon_id": "24289116", - "name": "版本icon", - "font_class": "banbenicon", - "unicode": "e8d3", - "unicode_decimal": 59603 - }, - { - "icon_id": "24289117", - "name": "删除icon", - "font_class": "shanchuicon2", - "unicode": "e8d4", - "unicode_decimal": 59604 - }, - { - "icon_id": "24289118", - "name": "垃圾桶_icon@3x", - "font_class": "a-lajitong_icon3x", - "unicode": "e8d5", - "unicode_decimal": 59605 - }, - { - "icon_id": "24289119", - "name": "下拉按钮", - "font_class": "xialaanniu2", - "unicode": "e8d6", - "unicode_decimal": 59606 - }, - { - "icon_id": "24289120", - "name": "下载-icon", - "font_class": "xiazai-icon", - "unicode": "e8d7", - "unicode_decimal": 59607 - }, - { - "icon_id": "24289121", - "name": "master_icon", - "font_class": "master_icon1", - "unicode": "e8d8", - "unicode_decimal": 59608 - }, - { - "icon_id": "24289122", - "name": "上传icon", - "font_class": "shangchuanicon", - "unicode": "e8d9", - "unicode_decimal": 59609 - }, - { - "icon_id": "24059956", - "name": "个人资料", - "font_class": "gerenziliao1", - "unicode": "e8c7", - "unicode_decimal": 59591 - }, - { - "icon_id": "24059409", - "name": "里程碑icon", - "font_class": "lichengbeiicon", - "unicode": "e885", - "unicode_decimal": 59525 - }, - { - "icon_id": "24059410", - "name": "仓库设置icon", - "font_class": "cangkushezhiicon", - "unicode": "e889", - "unicode_decimal": 59529 - }, - { - "icon_id": "24059411", - "name": "动态icon", - "font_class": "dongtaiicon", - "unicode": "e88a", - "unicode_decimal": 59530 - }, - { - "icon_id": "24059412", - "name": "工作流icon", - "font_class": "gongzuoliuicon", - "unicode": "e88b", - "unicode_decimal": 59531 - }, - { - "icon_id": "24059413", - "name": "易修icon", - "font_class": "yixiuicon1", - "unicode": "e89b", - "unicode_decimal": 59547 - }, - { - "icon_id": "24059414", - "name": "wiki icon", - "font_class": "a-wikiicon1", - "unicode": "e8c6", - "unicode_decimal": 59590 - }, - { - "icon_id": "24047186", - "name": "代码库icon", - "font_class": "daimakuicon1", - "unicode": "e8c5", - "unicode_decimal": 59589 - }, - { - "icon_id": "24047189", - "name": "我的通知", - "font_class": "wodetongzhi", - "unicode": "e8c8", - "unicode_decimal": 59592 - }, - { - "icon_id": "24047190", - "name": "通知管理", - "font_class": "tongzhiguanli", - "unicode": "e8c9", - "unicode_decimal": 59593 - }, - { - "icon_id": "24047191", - "name": "选中", - "font_class": "xuanzhong3", - "unicode": "e8ca", - "unicode_decimal": 59594 - }, - { - "icon_id": "24047192", - "name": "系统通知icon", - "font_class": "xitongtongzhiicon", - "unicode": "e8cb", - "unicode_decimal": 59595 - }, - { - "icon_id": "24047193", - "name": "消息", - "font_class": "xiaoxi2", - "unicode": "e8cc", - "unicode_decimal": 59596 - }, - { - "icon_id": "24047194", - "name": "ssh密钥", - "font_class": "sshmiyue", - "unicode": "e8cd", - "unicode_decimal": 59597 - }, - { - "icon_id": "24014152", - "name": "个人资料", - "font_class": "gerenziliao", - "unicode": "e8c4", - "unicode_decimal": 59588 - }, - { - "icon_id": "23655968", - "name": "新手指引", - "font_class": "xinshouzhiyin", - "unicode": "e8e4", - "unicode_decimal": 59620 - }, - { - "icon_id": "23655969", - "name": "新建项目", - "font_class": "xinjianxiangmu", - "unicode": "e8e6", - "unicode_decimal": 59622 - }, - { - "icon_id": "23658111", - "name": "加入课堂", - "font_class": "jiaruketang1", - "unicode": "e8e9", - "unicode_decimal": 59625 - }, - { - "icon_id": "23791639", - "name": "项目公告", - "font_class": "xiangmugonggao", - "unicode": "e8c2", - "unicode_decimal": 59586 - }, - { - "icon_id": "23791640", - "name": "成果", - "font_class": "chengguo", - "unicode": "e8c3", - "unicode_decimal": 59587 - }, - { - "icon_id": "23791410", - "name": "成交公告", - "font_class": "chengjiaogonggao", - "unicode": "e8c0", - "unicode_decimal": 59584 - }, - { - "icon_id": "23791411", - "name": "技术资产", - "font_class": "jishuzichan", - "unicode": "e8c1", - "unicode_decimal": 59585 - }, - { - "icon_id": "23790928", - "name": "废标公告", - "font_class": "feibiaogonggao", - "unicode": "e8bc", - "unicode_decimal": 59580 - }, - { - "icon_id": "23790929", - "name": "中标公告", - "font_class": "zhongbiaogonggao", - "unicode": "e8bd", - "unicode_decimal": 59581 - }, - { - "icon_id": "23790930", - "name": "更正公告", - "font_class": "gengzhenggonggao", - "unicode": "e8be", - "unicode_decimal": 59582 - }, - { - "icon_id": "23790931", - "name": "招标公告", - "font_class": "zhaobiaogonggao", - "unicode": "e8bf", - "unicode_decimal": 59583 - }, - { - "icon_id": "23732532", - "name": "文件", - "font_class": "wenjian6", - "unicode": "e8ba", - "unicode_decimal": 59578 - }, - { - "icon_id": "23732533", - "name": "文件夹", - "font_class": "wenjianjia4", - "unicode": "e8bb", - "unicode_decimal": 59579 - }, - { - "icon_id": "23642443", - "name": "取消关注", - "font_class": "quxiaoguanzhu", - "unicode": "e89a", - "unicode_decimal": 59546 - }, - { - "icon_id": "23642444", - "name": "点赞_icon", - "font_class": "dianzan_icon", - "unicode": "e8a2", - "unicode_decimal": 59554 - }, - { - "icon_id": "23639530", - "name": "文件", - "font_class": "wenjian5", - "unicode": "e896", - "unicode_decimal": 59542 - }, - { - "icon_id": "23639533", - "name": "文件夹", - "font_class": "wenjianjia3", - "unicode": "e8a9", - "unicode_decimal": 59561 - }, - { - "icon_id": "23639440", - "name": "复制icon", - "font_class": "fuzhiicon", - "unicode": "e886", - "unicode_decimal": 59526 - }, - { - "icon_id": "23639422", - "name": "主页-fill", - "font_class": "zhuye-fill", - "unicode": "e876", - "unicode_decimal": 59510 - }, - { - "icon_id": "23639423", - "name": "代码库icon", - "font_class": "daimakuicon", - "unicode": "e884", - "unicode_decimal": 59524 - }, - { - "icon_id": "23572260", - "name": "新建", - "font_class": "xinjian2", - "unicode": "e8b0", - "unicode_decimal": 59568 - }, - { - "icon_id": "23567674", - "name": "协议icon", - "font_class": "xieyiicon", - "unicode": "e870", - "unicode_decimal": 59504 - }, - { - "icon_id": "23567675", - "name": "内存icon", - "font_class": "neicunicon", - "unicode": "e891", - "unicode_decimal": 59537 - }, - { - "icon_id": "23567676", - "name": "自述文件_icon", - "font_class": "zishuwenjian_icon", - "unicode": "e8a6", - "unicode_decimal": 59558 - }, - { - "icon_id": "23472253", - "name": "标签icon", - "font_class": "biaoqianicon", - "unicode": "e882", - "unicode_decimal": 59522 - }, - { - "icon_id": "23472254", - "name": "编 辑", - "font_class": "a-bianji", - "unicode": "e883", - "unicode_decimal": 59523 - }, - { - "icon_id": "23472258", - "name": "链接icon", - "font_class": "lianjieicon", - "unicode": "e887", - "unicode_decimal": 59527 - }, - { - "icon_id": "23472259", - "name": "合并请求icon", - "font_class": "hebingqingqiuicon", - "unicode": "e888", - "unicode_decimal": 59528 - }, - { - "icon_id": "23472263", - "name": "默认点赞_icon", - "font_class": "morendianzan_icon", - "unicode": "e88e", - "unicode_decimal": 59534 - }, - { - "icon_id": "23472265", - "name": "目录icon", - "font_class": "muluicon", - "unicode": "e894", - "unicode_decimal": 59540 - }, - { - "icon_id": "23472267", - "name": "设 置", - "font_class": "a-shezhi", - "unicode": "e899", - "unicode_decimal": 59545 - }, - { - "icon_id": "23472269", - "name": "提交icon", - "font_class": "tijiaoicon", - "unicode": "e89e", - "unicode_decimal": 59550 - }, - { - "icon_id": "23472270", - "name": "默认关注_ICON", - "font_class": "morenguanzhu_ICON", - "unicode": "e89f", - "unicode_decimal": 59551 - }, - { - "icon_id": "23472272", - "name": "下拉按钮", - "font_class": "xialaanniu1", - "unicode": "e8a4", - "unicode_decimal": 59556 - }, - { - "icon_id": "23472276", - "name": "左滑icon", - "font_class": "zuohuaicon", - "unicode": "e8b5", - "unicode_decimal": 59573 - }, - { - "icon_id": "23472277", - "name": "master_icon", - "font_class": "master_icon", - "unicode": "e8b6", - "unicode_decimal": 59574 - }, - { - "icon_id": "23472278", - "name": "默认复刻_icon", - "font_class": "morenfuke_icon", - "unicode": "e8b7", - "unicode_decimal": 59575 - }, - { - "icon_id": "23472279", - "name": "wiki icon", - "font_class": "a-wikiicon", - "unicode": "e8b8", - "unicode_decimal": 59576 - }, - { - "icon_id": "23472280", - "name": "易修icon", - "font_class": "yixiuicon", - "unicode": "e8b9", - "unicode_decimal": 59577 - }, - { - "icon_id": "23436350", - "name": "缩放", - "font_class": "suofang", - "unicode": "e87f", - "unicode_decimal": 59519 - }, - { - "icon_id": "23436351", - "name": "放大icon", - "font_class": "fangdaicon", - "unicode": "e881", - "unicode_decimal": 59521 - }, - { - "icon_id": "23384231", - "name": "搜索_icon", - "font_class": "sousuo_icon1", - "unicode": "e873", - "unicode_decimal": 59507 - }, - { - "icon_id": "23384232", - "name": "欢迎_icon", - "font_class": "huanying_icon", - "unicode": "e878", - "unicode_decimal": 59512 - }, - { - "icon_id": "23384233", - "name": "文件夹", - "font_class": "wenjianjia2", - "unicode": "e879", - "unicode_decimal": 59513 - }, - { - "icon_id": "23384234", - "name": "删除icon", - "font_class": "shanchuicon1", - "unicode": "e87a", - "unicode_decimal": 59514 - }, - { - "icon_id": "23261798", - "name": "请求icon", - "font_class": "qingqiuicon", - "unicode": "e871", - "unicode_decimal": 59505 - }, - { - "icon_id": "23261799", - "name": "响应icon", - "font_class": "xiangyingicon", - "unicode": "e87c", - "unicode_decimal": 59516 - }, - { - "icon_id": "23144143", - "name": "多选选中", - "font_class": "duoxuanxuanzhong", - "unicode": "e88f", - "unicode_decimal": 59535 - }, - { - "icon_id": "23144144", - "name": "错误icon", - "font_class": "cuowuicon", - "unicode": "e890", - "unicode_decimal": 59536 - }, - { - "icon_id": "23144146", - "name": "成功icon", - "font_class": "chenggongicon", - "unicode": "e892", - "unicode_decimal": 59538 - }, - { - "icon_id": "23144147", - "name": "未选中响应icon", - "font_class": "weixuanzhongxiangyingicon", - "unicode": "e893", - "unicode_decimal": 59539 - }, - { - "icon_id": "23144149", - "name": "必填icon", - "font_class": "bitianicon", - "unicode": "e895", - "unicode_decimal": 59541 - }, - { - "icon_id": "23144151", - "name": "未选中项目标签icon", - "font_class": "weixuanzhongxiangmubiaoqianicon", - "unicode": "e897", - "unicode_decimal": 59543 - }, - { - "icon_id": "23144152", - "name": "列表icon", - "font_class": "liebiaoicon", - "unicode": "e898", - "unicode_decimal": 59544 - }, - { - "icon_id": "23144158", - "name": "协作者管理icon", - "font_class": "xiezuozheguanliicon", - "unicode": "e8a1", - "unicode_decimal": 59553 - }, - { - "icon_id": "23144160", - "name": "选中分支icon", - "font_class": "xuanzhongfenzhiicon", - "unicode": "e8a3", - "unicode_decimal": 59555 - }, - { - "icon_id": "23144162", - "name": "选中基本设置icon", - "font_class": "xuanzhongjibenshezhiicon", - "unicode": "e8a5", - "unicode_decimal": 59557 - }, - { - "icon_id": "23144165", - "name": "选中项目标签icon", - "font_class": "xuanzhongxiangmubiaoqianicon", - "unicode": "e8aa", - "unicode_decimal": 59562 - }, - { - "icon_id": "23144167", - "name": "选中webhook icon", - "font_class": "a-xuanzhongwebhookicon", - "unicode": "e8af", - "unicode_decimal": 59567 - }, - { - "icon_id": "23046290", - "name": "shanchu_tc_icon", - "font_class": "shanchu_tc_icon", - "unicode": "e88c", - "unicode_decimal": 59532 - }, - { - "icon_id": "23046293", - "name": "wiki_icon", - "font_class": "wiki_icon", - "unicode": "e88d", - "unicode_decimal": 59533 - }, - { - "icon_id": "23046244", - "name": "导入模版_icon", - "font_class": "daorumoban_icon", - "unicode": "e86f", - "unicode_decimal": 59503 - }, - { - "icon_id": "23046252", - "name": "错误", - "font_class": "cuowu", - "unicode": "e872", - "unicode_decimal": 59506 - }, - { - "icon_id": "23046255", - "name": "更多_icon", - "font_class": "gengduo_icon", - "unicode": "e874", - "unicode_decimal": 59508 - }, - { - "icon_id": "23046258", - "name": "复层关闭_icon", - "font_class": "fucengguanbi_icon", - "unicode": "e875", - "unicode_decimal": 59509 - }, - { - "icon_id": "23046268", - "name": "删除icon", - "font_class": "shanchuicon", - "unicode": "e877", - "unicode_decimal": 59511 - }, - { - "icon_id": "23046273", - "name": "搜索_删除icon", - "font_class": "sousuo_shanchuicon", - "unicode": "e87b", - "unicode_decimal": 59515 - }, - { - "icon_id": "23046275", - "name": "搜索_icon", - "font_class": "sousuo_icon", - "unicode": "e87d", - "unicode_decimal": 59517 - }, - { - "icon_id": "23046276", - "name": "文档预览_icon", - "font_class": "wendangyulan_icon", - "unicode": "e87e", - "unicode_decimal": 59518 - }, - { - "icon_id": "23046278", - "name": "下拉按钮", - "font_class": "xialaanniu", - "unicode": "e880", - "unicode_decimal": 59520 - }, - { - "icon_id": "22906287", - "name": "二次确认_icon", - "font_class": "erciqueren_icon", - "unicode": "e867", - "unicode_decimal": 59495 - }, - { - "icon_id": "22906288", - "name": "选中ssh_icon", - "font_class": "xuanzhongssh_icon", - "unicode": "e868", - "unicode_decimal": 59496 - }, - { - "icon_id": "22906289", - "name": "未选中安全设置_icon", - "font_class": "weixuanzhonganquanshezhi_icon", - "unicode": "e869", - "unicode_decimal": 59497 - }, - { - "icon_id": "22906290", - "name": "未选中ssh_icon", - "font_class": "weixuanzhongssh_icon", - "unicode": "e86a", - "unicode_decimal": 59498 - }, - { - "icon_id": "22906291", - "name": "选中安全设置_icon", - "font_class": "xuanzhonganquanshezhi_icon", - "unicode": "e86b", - "unicode_decimal": 59499 - }, - { - "icon_id": "22906292", - "name": "删除_icon", - "font_class": "shanchu_icon", - "unicode": "e86c", - "unicode_decimal": 59500 - }, - { - "icon_id": "22906293", - "name": "列表ssh_icon", - "font_class": "liebiaossh_icon", - "unicode": "e86e", - "unicode_decimal": 59502 - }, - { - "icon_id": "17575494", - "name": "file-submodule", - "font_class": "file-submodule", - "unicode": "e866", - "unicode_decimal": 59494 - }, - { - "icon_id": "7539612", - "name": "nv", - "font_class": "nv1", - "unicode": "e864", - "unicode_decimal": 59492 - }, - { - "icon_id": "7539613", - "name": "nan", - "font_class": "nan1", - "unicode": "e865", - "unicode_decimal": 59493 - }, - { - "icon_id": "21936935", - "name": "邮箱", - "font_class": "youxiang", - "unicode": "e8b2", - "unicode_decimal": 59570 - }, - { - "icon_id": "21936924", - "name": "单位", - "font_class": "danwei", - "unicode": "e8a7", - "unicode_decimal": 59559 - }, - { - "icon_id": "21936925", - "name": "待办事项", - "font_class": "daibanshixiang", - "unicode": "e8a8", - "unicode_decimal": 59560 - }, - { - "icon_id": "21936928", - "name": "概览", - "font_class": "gailan", - "unicode": "e8ab", - "unicode_decimal": 59563 - }, - { - "icon_id": "21936929", - "name": "男", - "font_class": "nan", - "unicode": "e8ac", - "unicode_decimal": 59564 - }, - { - "icon_id": "21936930", - "name": "女", - "font_class": "nv", - "unicode": "e8ad", - "unicode_decimal": 59565 - }, - { - "icon_id": "21936931", - "name": "工作流", - "font_class": "gongzuoliu1", - "unicode": "e8ae", - "unicode_decimal": 59566 - }, - { - "icon_id": "21936934", - "name": "数据统计", - "font_class": "shujutongji", - "unicode": "e8b1", - "unicode_decimal": 59569 - }, - { - "icon_id": "21936936", - "name": "项目", - "font_class": "xiangmu", - "unicode": "e8b3", - "unicode_decimal": 59571 - }, - { - "icon_id": "21936937", - "name": "组织", - "font_class": "zuzhi", - "unicode": "e8b4", - "unicode_decimal": 59572 - }, - { - "icon_id": "14835599", - "name": "右箭头", - "font_class": "arrowRight", - "unicode": "e863", - "unicode_decimal": 59491 - }, - { - "icon_id": "21151489", - "name": "箭头镂空-左", - "font_class": "jiantouloukong-zuo", - "unicode": "e861", - "unicode_decimal": 59489 - }, - { - "icon_id": "21151557", - "name": "箭头镂空-右", - "font_class": "jiantouloukong-you", - "unicode": "e862", - "unicode_decimal": 59490 - }, - { - "icon_id": "21568989", - "name": "分享", - "font_class": "fenxiang1", - "unicode": "e89c", - "unicode_decimal": 59548 - }, - { - "icon_id": "21568990", - "name": "回到顶部", - "font_class": "huidaodingbu1", - "unicode": "e89d", - "unicode_decimal": 59549 - }, - { - "icon_id": "21568993", - "name": "帮助", - "font_class": "bangzhu", - "unicode": "e8a0", - "unicode_decimal": 59552 - }, - { - "icon_id": "991344", - "name": "提交", - "font_class": "tijiao", - "unicode": "e860", - "unicode_decimal": 59488 - }, - { - "icon_id": "1852052", - "name": "数据库", - "font_class": "dataBase", - "unicode": "e85a", - "unicode_decimal": 59482 - }, - { - "icon_id": "4165948", - "name": "文件", - "font_class": "wenjian4", - "unicode": "e85b", - "unicode_decimal": 59483 - }, - { - "icon_id": "17165148", - "name": "链接", - "font_class": "lianjie2", - "unicode": "e85c", - "unicode_decimal": 59484 - }, - { - "icon_id": "17463741", - "name": "分支", - "font_class": "fenzhi2", - "unicode": "e85d", - "unicode_decimal": 59485 - }, - { - "icon_id": "17972521", - "name": "分支-3", - "font_class": "fenzhi-3", - "unicode": "e85e", - "unicode_decimal": 59486 - }, - { - "icon_id": "18682391", - "name": "天平", - "font_class": "tianping", - "unicode": "e85f", - "unicode_decimal": 59487 - }, - { - "icon_id": "1770896", - "name": "撤销", - "font_class": "chexiao", - "unicode": "e657", - "unicode_decimal": 58967 - }, - { - "icon_id": "12039527", - "name": "删除_Hover", - "font_class": "shanchu_Hover", - "unicode": "e6e9", - "unicode_decimal": 59113 - }, - { - "icon_id": "17756499", - "name": "多关联与反馈", - "font_class": "duoguanlianyufankui", - "unicode": "e7fb", - "unicode_decimal": 59387 - }, - { - "icon_id": "4187234", - "name": "文件夹", - "font_class": "wenjianjia", - "unicode": "e640", - "unicode_decimal": 58944 - }, - { - "icon_id": "12039528", - "name": "下移_默认", - "font_class": "xiayi_moren", - "unicode": "e6ea", - "unicode_decimal": 59114 - }, - { - "icon_id": "17756500", - "name": "项目管理", - "font_class": "xiangmuguanli", - "unicode": "e7fc", - "unicode_decimal": 59388 - }, - { - "icon_id": "929277", - "name": "expand", - "font_class": "expand", - "unicode": "e6db", - "unicode_decimal": 59099 - }, - { - "icon_id": "12039529", - "name": "编辑_默认", - "font_class": "bianji_moren", - "unicode": "e6eb", - "unicode_decimal": 59115 - }, - { - "icon_id": "17756816", - "name": "资源排行和推荐", - "font_class": "ziyuanpaihanghetuijian", - "unicode": "e7ff", - "unicode_decimal": 59391 - }, - { - "icon_id": "1261493", - "name": "compress", - "font_class": "compress", - "unicode": "e65e", - "unicode_decimal": 58974 - }, - { - "icon_id": "12040163", - "name": "恢复初始代码", - "font_class": "huifuchushidaima", - "unicode": "e6ec", - "unicode_decimal": 59116 - }, - { - "icon_id": "17756817", - "name": "质量检测", - "font_class": "zhiliangjiance", - "unicode": "e801", - "unicode_decimal": 59393 - }, - { - "icon_id": "4734950", - "name": "隐藏闭眼", - "font_class": "yincangbiyan", - "unicode": "e61d", - "unicode_decimal": 58909 - }, - { - "icon_id": "12040164", - "name": "再次载入", - "font_class": "zaicizairu", - "unicode": "e6ed", - "unicode_decimal": 59117 - }, - { - "icon_id": "17758698", - "name": "右", - "font_class": "you1", - "unicode": "e802", - "unicode_decimal": 59394 - }, - { - "icon_id": "4734951", - "name": "开锁", - "font_class": "kaisuo", - "unicode": "e61e", - "unicode_decimal": 58910 - }, - { - "icon_id": "12040165", - "name": "开关", - "font_class": "kaiguan", - "unicode": "e6ef", - "unicode_decimal": 59119 - }, - { - "icon_id": "17758699", - "name": "下拉箭头", - "font_class": "xialajiantou", - "unicode": "e803", - "unicode_decimal": 59395 - }, - { - "icon_id": "4734952", - "name": "关锁", - "font_class": "guansuo", - "unicode": "e61f", - "unicode_decimal": 58911 - }, - { - "icon_id": "12040167", - "name": "目录", - "font_class": "mulu", - "unicode": "e6f0", - "unicode_decimal": 59120 - }, - { - "icon_id": "17758700", - "name": "左", - "font_class": "zuo1", - "unicode": "e804", - "unicode_decimal": 59396 - }, - { - "icon_id": "4734957", - "name": "tpi消息提醒", - "font_class": "tpixiaoxitixing", - "unicode": "e624", - "unicode_decimal": 58916 - }, - { - "icon_id": "12040168", - "name": "缩小", - "font_class": "suoxiao1", - "unicode": "e6f2", - "unicode_decimal": 59122 - }, - { - "icon_id": "17760202", - "name": "竞赛活动1", - "font_class": "jingsaihuodong1", - "unicode": "e805", - "unicode_decimal": 59397 - }, - { - "icon_id": "4734973", - "name": "点赞", - "font_class": "dianzan", - "unicode": "e634", - "unicode_decimal": 58932 - }, - { - "icon_id": "12040169", - "name": "扩大", - "font_class": "kuoda", - "unicode": "e6f3", - "unicode_decimal": 59123 - }, - { - "icon_id": "17896710", - "name": "关闭", - "font_class": "guanbi1", - "unicode": "e806", - "unicode_decimal": 59398 - }, - { - "icon_id": "4734974", - "name": "点赞-线", - "font_class": "dianzan-xian", - "unicode": "e635", - "unicode_decimal": 58933 - }, - { - "icon_id": "12040170", - "name": "设置", - "font_class": "shezhi3", - "unicode": "e6f4", - "unicode_decimal": 59124 - }, - { - "icon_id": "17896711", - "name": "开启摄像头", - "font_class": "kaiqishexiangtou", - "unicode": "e807", - "unicode_decimal": 59399 - }, - { - "icon_id": "4734976", - "name": "返回上次代码", - "font_class": "fanhuishangcidaima", - "unicode": "e637", - "unicode_decimal": 58935 - }, - { - "icon_id": "12053135", - "name": "隐藏", - "font_class": "yincang2", - "unicode": "e6f5", - "unicode_decimal": 59125 - }, - { - "icon_id": "17896712", - "name": "开启防切屏", - "font_class": "kaiqifangqieping", - "unicode": "e808", - "unicode_decimal": 59400 - }, - { - "icon_id": "4734977", - "name": "重置", - "font_class": "zhongzhi", - "unicode": "e638", - "unicode_decimal": 58936 - }, - { - "icon_id": "12074711", - "name": "消息", - "font_class": "xiaoxi11", - "unicode": "e6f6", - "unicode_decimal": 59126 - }, - { - "icon_id": "17905055", - "name": "修改", - "font_class": "xiugai", - "unicode": "e80a", - "unicode_decimal": 59402 - }, - { - "icon_id": "4738423", - "name": "睁眼", - "font_class": "zhengyan", - "unicode": "e649", - "unicode_decimal": 58953 - }, - { - "icon_id": "12098941", - "name": "金币", - "font_class": "bianzu1", - "unicode": "e6f7", - "unicode_decimal": 59127 - }, - { - "icon_id": "17905056", - "name": "删除", - "font_class": "shanchu4", - "unicode": "e80b", - "unicode_decimal": 59403 - }, - { - "icon_id": "4734949", - "name": "删除", - "font_class": "shanchu", - "unicode": "e61c", - "unicode_decimal": 58908 - }, - { - "icon_id": "12107631", - "name": "显示密码", - "font_class": "xianshimima", - "unicode": "e6f9", - "unicode_decimal": 59129 - }, - { - "icon_id": "17905057", - "name": "新建分组", - "font_class": "xinjianfenzu", - "unicode": "e80c", - "unicode_decimal": 59404 - }, - { - "icon_id": "4734948", - "name": "奖励", - "font_class": "jiangli", - "unicode": "e61b", - "unicode_decimal": 58907 - }, - { - "icon_id": "12107632", - "name": "隐藏密码", - "font_class": "yincangmima", - "unicode": "e6fa", - "unicode_decimal": 59130 - }, - { - "icon_id": "17905058", - "name": "选中", - "font_class": "xuanzhong2", - "unicode": "e80d", - "unicode_decimal": 59405 - }, - { - "icon_id": "4734946", - "name": "新建", - "font_class": "xinjian", - "unicode": "e619", - "unicode_decimal": 58905 - }, - { - "icon_id": "12107887", - "name": "复制", - "font_class": "fuzhi2", - "unicode": "e6fb", - "unicode_decimal": 59131 - }, - { - "icon_id": "17905059", - "name": "发布", - "font_class": "fabu1", - "unicode": "e80e", - "unicode_decimal": 59406 - }, - { - "icon_id": "4734986", - "name": "消息铃铛", - "font_class": "xiaoxilingdang", - "unicode": "e641", - "unicode_decimal": 58945 - }, - { - "icon_id": "12108608", - "name": "文件", - "font_class": "xingzhuangjiehe", - "unicode": "e6fc", - "unicode_decimal": 59132 - }, - { - "icon_id": "17905060", - "name": "选用", - "font_class": "xuanyong", - "unicode": "e80f", - "unicode_decimal": 59407 - }, - { - "icon_id": "4734988", - "name": "搜索", - "font_class": "sousuo", - "unicode": "e643", - "unicode_decimal": 58947 - }, - { - "icon_id": "12108609", - "name": "文件夹", - "font_class": "xingzhuangjiehebeifen", - "unicode": "e6fd", - "unicode_decimal": 59133 - }, - { - "icon_id": "17905061", - "name": "撤销分组", - "font_class": "chexiaofenzu1", - "unicode": "e810", - "unicode_decimal": 59408 - }, - { - "icon_id": "4734990", - "name": "添加 放大", - "font_class": "tianjiafangda", - "unicode": "e645", - "unicode_decimal": 58949 - }, - { - "icon_id": "12108648", - "name": "上传", - "font_class": "shangchuan", - "unicode": "e6fe", - "unicode_decimal": 59134 - }, - { - "icon_id": "17905062", - "name": "删除2", - "font_class": "shanchu22", - "unicode": "e811", - "unicode_decimal": 59409 - }, - { - "icon_id": "4734937", - "name": "分支", - "font_class": "fenzhi", - "unicode": "e610", - "unicode_decimal": 58896 - }, - { - "icon_id": "12126798", - "name": "挑战", - "font_class": "tiaozhan", - "unicode": "e6ff", - "unicode_decimal": 59135 - }, - { - "icon_id": "17905063", - "name": "撤销公开", - "font_class": "chexiaogongkai", - "unicode": "e812", - "unicode_decimal": 59410 - }, - { - "icon_id": "4734938", - "name": "网址克隆", - "font_class": "wangzhikelong", - "unicode": "e612", - "unicode_decimal": 58898 - }, - { - "icon_id": "12300795", - "name": "右滑", - "font_class": "youhua", - "unicode": "e702", - "unicode_decimal": 59138 - }, - { - "icon_id": "17905064", - "name": "解析", - "font_class": "jiexi1", - "unicode": "e813", - "unicode_decimal": 59411 - }, - { - "icon_id": "4734939", - "name": "下载", - "font_class": "xiazai", - "unicode": "e613", - "unicode_decimal": 58899 - }, - { - "icon_id": "12300843", - "name": "解锁", - "font_class": "jiesuo", - "unicode": "e703", - "unicode_decimal": 59139 - }, - { - "icon_id": "17905065", - "name": "撤销共享", - "font_class": "chexiaogongxiang1", - "unicode": "e814", - "unicode_decimal": 59412 - }, - { - "icon_id": "4734940", - "name": "代码", - "font_class": "daima", - "unicode": "e615", - "unicode_decimal": 58901 - }, - { - "icon_id": "12300844", - "name": "锁", - "font_class": "suo1", - "unicode": "e704", - "unicode_decimal": 59140 - }, - { - "icon_id": "17905066", - "name": "撤销发布", - "font_class": "chexiaofabu", - "unicode": "e815", - "unicode_decimal": 59413 - }, - { - "icon_id": "4734941", - "name": "提交记录", - "font_class": "tijiaojilu", - "unicode": "e616", - "unicode_decimal": 58902 - }, - { - "icon_id": "12319671", - "name": "搜索", - "font_class": "bianzu11", - "unicode": "e706", - "unicode_decimal": 59142 - }, - { - "icon_id": "17905068", - "name": "编辑2", - "font_class": "bianji21", - "unicode": "e816", - "unicode_decimal": 59414 - }, - { - "icon_id": "4734942", - "name": "选择题", - "font_class": "xuanzeti", - "unicode": "e617", - "unicode_decimal": 58903 - }, - { - "icon_id": "12364938", - "name": "笔记", - "font_class": "biji", - "unicode": "e70a", - "unicode_decimal": 59146 - }, - { - "icon_id": "17920060", - "name": "新增试题", - "font_class": "xinzengshiti", - "unicode": "e809", - "unicode_decimal": 59401 - }, - { - "icon_id": "4734943", - "name": "编辑", - "font_class": "bianji", - "unicode": "e618", - "unicode_decimal": 58904 - }, - { - "icon_id": "1110411", - "name": "下箭头", - "font_class": "jiantou9", - "unicode": "e700", - "unicode_decimal": 59136 - }, - { - "icon_id": "17926467", - "name": "搜索", - "font_class": "sousuo1", - "unicode": "e817", - "unicode_decimal": 59415 - }, - { - "icon_id": "4734944", - "name": "向上", - "font_class": "xiangshang", - "unicode": "e61a", - "unicode_decimal": 58906 - }, - { - "icon_id": "10809887", - "name": "向上 箭头", - "font_class": "changyongtubiao-xianxingdaochu-zhuanqu-", - "unicode": "e74c", - "unicode_decimal": 59212 - }, - { - "icon_id": "17930472", - "name": "考试时长", - "font_class": "kaoshishichang", - "unicode": "e818", - "unicode_decimal": 59416 - }, - { - "icon_id": "4734945", - "name": "删除掉", - "font_class": "shanchudiao", - "unicode": "e620", - "unicode_decimal": 58912 - }, - { - "icon_id": "12403050", - "name": "缩小", - "font_class": "suoxiao2", - "unicode": "e701", - "unicode_decimal": 59137 - }, - { - "icon_id": "17930476", - "name": "返回试卷", - "font_class": "fanhuishijuan", - "unicode": "e819", - "unicode_decimal": 59417 - }, - { - "icon_id": "4734947", - "name": "上升排序", - "font_class": "shangshengpaixu", - "unicode": "e621", - "unicode_decimal": 58913 - }, - { - "icon_id": "12403054", - "name": "放大", - "font_class": "fangda", - "unicode": "e707", - "unicode_decimal": 59143 - }, - { - "icon_id": "18072709", - "name": "谷歌", - "font_class": "guge", - "unicode": "e81a", - "unicode_decimal": 59418 - }, - { - "icon_id": "4734953", - "name": "版本库", - "font_class": "banbenku", - "unicode": "e622", - "unicode_decimal": 58914 - }, - { - "icon_id": "12491363", - "name": "编辑", - "font_class": "bianji2", - "unicode": "e709", - "unicode_decimal": 59145 - }, - { - "icon_id": "18072710", - "name": "火狐", - "font_class": "huohu", - "unicode": "e81b", - "unicode_decimal": 59419 - }, - { - "icon_id": "4734954", - "name": "issue", - "font_class": "issue", - "unicode": "e623", - "unicode_decimal": 58915 - }, - { - "icon_id": "12491366", - "name": "公开", - "font_class": "gongkai", - "unicode": "e70b", - "unicode_decimal": 59147 - }, - { - "icon_id": "18136646", - "name": "IP", - "font_class": "IP", - "unicode": "e81c", - "unicode_decimal": 59420 - }, - { - "icon_id": "4734955", - "name": "上传图片", - "font_class": "shangchuantupian", - "unicode": "e625", - "unicode_decimal": 58917 - }, - { - "icon_id": "12491369", - "name": "解析", - "font_class": "jiexi", - "unicode": "e70c", - "unicode_decimal": 59148 - }, - { - "icon_id": "18136647", - "name": "IP绑定", - "font_class": "IPbangding", - "unicode": "e81d", - "unicode_decimal": 59421 - }, - { - "icon_id": "4734956", - "name": "测评", - "font_class": "ceping", - "unicode": "e626", - "unicode_decimal": 58918 - }, - { - "icon_id": "12491370", - "name": "删除", - "font_class": "shanchu1", - "unicode": "e70d", - "unicode_decimal": 59149 - }, - { - "icon_id": "18684753", - "name": "实训发布", - "font_class": "shixunfabu", - "unicode": "e81e", - "unicode_decimal": 59422 - }, - { - "icon_id": "4734958", - "name": "qq在线咨询", - "font_class": "qqzaixianzixun", - "unicode": "e628", - "unicode_decimal": 58920 - }, - { - "icon_id": "12491850", - "name": "试题栏", - "font_class": "shitilan", - "unicode": "e70e", - "unicode_decimal": 59150 - }, - { - "icon_id": "18684754", - "name": "实践课程发布", - "font_class": "shijiankechengfabu", - "unicode": "e81f", - "unicode_decimal": 59423 - }, - { - "icon_id": "4734959", - "name": "二维码", - "font_class": "erweima", - "unicode": "e629", - "unicode_decimal": 58921 - }, - { - "icon_id": "7556166", - "name": "减号", - "font_class": "jianhao", - "unicode": "e70f", - "unicode_decimal": 59151 - }, - { - "icon_id": "18686772", - "name": "课程学习", - "font_class": "kechengxuexi", - "unicode": "e820", - "unicode_decimal": 59424 - }, - { - "icon_id": "4734960", - "name": "意见反馈", - "font_class": "yijianfankui", - "unicode": "e62a", - "unicode_decimal": 58922 - }, - { - "icon_id": "12568379", - "name": "复制", - "font_class": "fuzhi3", - "unicode": "e710", - "unicode_decimal": 59152 - }, - { - "icon_id": "18708737", - "name": "教学案例", - "font_class": "jiaoxueanli", - "unicode": "e821", - "unicode_decimal": 59425 - }, - { - "icon_id": "4734961", - "name": "邮箱认证", - "font_class": "youxiangrenzheng", - "unicode": "e62b", - "unicode_decimal": 58923 - }, - { - "icon_id": "12608142", - "name": "编组", - "font_class": "bianzu2", - "unicode": "e711", - "unicode_decimal": 59153 - }, - { - "icon_id": "18767154", - "name": "查看", - "font_class": "chakan", - "unicode": "e822", - "unicode_decimal": 59426 - }, - { - "icon_id": "4734962", - "name": "手机认证", - "font_class": "shoujirenzheng", - "unicode": "e62c", - "unicode_decimal": 58924 - }, - { - "icon_id": "12608146", - "name": "左右拖动", - "font_class": "zuoyoutuodong", - "unicode": "e712", - "unicode_decimal": 59154 - }, - { - "icon_id": "18767308", - "name": "删除", - "font_class": "shanchu5", - "unicode": "e823", - "unicode_decimal": 59427 - }, - { - "icon_id": "4734963", - "name": "职业认证", - "font_class": "zhiyerenzheng", - "unicode": "e62d", - "unicode_decimal": 58925 - }, - { - "icon_id": "12608147", - "name": "上下拖动", - "font_class": "shangxiatuodong", - "unicode": "e713", - "unicode_decimal": 59155 - }, - { - "icon_id": "18767311", - "name": "人", - "font_class": "ren", - "unicode": "e824", - "unicode_decimal": 59428 - }, - { - "icon_id": "4734964", - "name": "身份认证", - "font_class": "shenfenrenzheng", - "unicode": "e62e", - "unicode_decimal": 58926 - }, - { - "icon_id": "12621166", - "name": "试卷", - "font_class": "shijuan1", - "unicode": "e714", - "unicode_decimal": 59156 - }, - { - "icon_id": "18767317", - "name": "文件", - "font_class": "wenjian2", - "unicode": "e825", - "unicode_decimal": 59429 - }, - { - "icon_id": "4734965", - "name": "评分", - "font_class": "pingfen", - "unicode": "e62f", - "unicode_decimal": 58927 - }, - { - "icon_id": "12621173", - "name": "删除", - "font_class": "shanchu2", - "unicode": "e715", - "unicode_decimal": 59157 - }, - { - "icon_id": "18767336", - "name": "垃圾桶", - "font_class": "lajitong1", - "unicode": "e826", - "unicode_decimal": 59430 - }, - { - "icon_id": "4734966", - "name": "评分-线", - "font_class": "pingfen-xian", - "unicode": "e630", - "unicode_decimal": 58928 - }, - { - "icon_id": "12621174", - "name": "减去", - "font_class": "jianqu", - "unicode": "e716", - "unicode_decimal": 59158 - }, - { - "icon_id": "18961342", - "name": "空白", - "font_class": "kongbai", - "unicode": "e827", - "unicode_decimal": 59431 - }, - { - "icon_id": "4734967", - "name": "作业", - "font_class": "zuoye", - "unicode": "e631", - "unicode_decimal": 58929 - }, - { - "icon_id": "12621177", - "name": "加上", - "font_class": "jiashang", - "unicode": "e717", - "unicode_decimal": 59159 - }, - { - "icon_id": "19190157", - "name": "changjianwenti", - "font_class": "changjianwenti", - "unicode": "e828", - "unicode_decimal": 59432 - }, - { - "icon_id": "4734968", - "name": "提示错误", - "font_class": "tishicuowu", - "unicode": "e632", - "unicode_decimal": 58930 - }, - { - "icon_id": "12621395", - "name": "减去2", - "font_class": "jianqu1", - "unicode": "e718", - "unicode_decimal": 59160 - }, - { - "icon_id": "19190158", - "name": "chexiaofabu", - "font_class": "chexiaofabu1", - "unicode": "e829", - "unicode_decimal": 59433 - }, - { - "icon_id": "4734969", - "name": "资源", - "font_class": "ziyuan", - "unicode": "e633", - "unicode_decimal": 58931 - }, - { - "icon_id": "12621396", - "name": "加上2", - "font_class": "jiashang1", - "unicode": "e719", - "unicode_decimal": 59161 - }, - { - "icon_id": "19190159", - "name": "fasongzhi", - "font_class": "fasongzhi", - "unicode": "e82a", - "unicode_decimal": 59434 - }, - { - "icon_id": "4734970", - "name": "提示", - "font_class": "tishi", - "unicode": "e636", - "unicode_decimal": 58934 - }, - { - "icon_id": "5327531", - "name": "过滤器", - "font_class": "guolvqi", - "unicode": "e71b", - "unicode_decimal": 59163 - }, - { - "icon_id": "19190160", - "name": "chexiaogongkai", - "font_class": "chexiaogongkai1", - "unicode": "e82b", - "unicode_decimal": 59435 - }, - { - "icon_id": "4734971", - "name": "成员", - "font_class": "chengyuan", - "unicode": "e63a", - "unicode_decimal": 58938 - }, - { - "icon_id": "12826208", - "name": "初始化", - "font_class": "chushihua", - "unicode": "e71c", - "unicode_decimal": 59164 - }, - { - "icon_id": "19190161", - "name": "fabu", - "font_class": "fabu2", - "unicode": "e82c", - "unicode_decimal": 59436 - }, - { - "icon_id": "4734978", - "name": "旋转", - "font_class": "xuanzhuan", - "unicode": "e63d", - "unicode_decimal": 58941 - }, - { - "icon_id": "12826211", - "name": "测试集", - "font_class": "ceshiji", - "unicode": "e71e", - "unicode_decimal": 59166 - }, - { - "icon_id": "19190162", - "name": "daimacangku", - "font_class": "daimacangku", - "unicode": "e82d", - "unicode_decimal": 59437 - }, - { - "icon_id": "4734979", - "name": "实训", - "font_class": "shixun", - "unicode": "e63e", - "unicode_decimal": 58942 - }, - { - "icon_id": "12958915", - "name": "点击量", - "font_class": "dianjiliang", - "unicode": "e71f", - "unicode_decimal": 59167 - }, - { - "icon_id": "19190163", - "name": "erweima", - "font_class": "erweima1", - "unicode": "e82e", - "unicode_decimal": 59438 - }, - { - "icon_id": "4734981", - "name": "缩小", - "font_class": "suoxiao", - "unicode": "e63f", - "unicode_decimal": 58943 - }, - { - "icon_id": "12958937", - "name": "播放", - "font_class": "bofang1", - "unicode": "e720", - "unicode_decimal": 59168 - }, - { - "icon_id": "19190164", - "name": "Fock", - "font_class": "Fock", - "unicode": "e82f", - "unicode_decimal": 59439 - }, - { - "icon_id": "4734982", - "name": "下箭头", - "font_class": "xiajiantou", - "unicode": "e642", - "unicode_decimal": 58946 - }, - { - "icon_id": "347633", - "name": "警告", - "font_class": "jinggao2", - "unicode": "e721", - "unicode_decimal": 59169 - }, - { - "icon_id": "19190165", - "name": "fuzhilianjie", - "font_class": "fuzhilianjie", - "unicode": "e830", - "unicode_decimal": 59440 - }, - { - "icon_id": "4734983", - "name": "勾选", - "font_class": "gouxuan", - "unicode": "e644", - "unicode_decimal": 58948 - }, - { - "icon_id": "609479", - "name": "路标", - "font_class": "lubiaosignpost3", - "unicode": "e722", - "unicode_decimal": 59170 - }, - { - "icon_id": "19190166", - "name": "huidaodingbu", - "font_class": "huidaodingbu", - "unicode": "e831", - "unicode_decimal": 59441 - }, - { - "icon_id": "4734984", - "name": "浏览眼", - "font_class": "liulanyan", - "unicode": "e646", - "unicode_decimal": 58950 - }, - { - "icon_id": "1654853", - "name": "日历", - "font_class": "rili", - "unicode": "e756", - "unicode_decimal": 59222 - }, - { - "icon_id": "19190167", - "name": "jibenxinxi", - "font_class": "jibenxinxi1", - "unicode": "e832", - "unicode_decimal": 59442 - }, - { - "icon_id": "4734985", - "name": "经验", - "font_class": "jingyan", - "unicode": "e647", - "unicode_decimal": 58951 - }, - { - "icon_id": "7212156", - "name": "编辑", - "font_class": "bianji3", - "unicode": "e723", - "unicode_decimal": 59171 - }, - { - "icon_id": "19190168", - "name": "pingfen-yibanfen", - "font_class": "pingfen-yibanfen", - "unicode": "e833", - "unicode_decimal": 59443 - }, - { - "icon_id": "4734987", - "name": "实训关卡", - "font_class": "shixunguanqia", - "unicode": "e648", - "unicode_decimal": 58952 - }, - { - "icon_id": "8453350", - "name": "已关闭", - "font_class": "yiguanbi", - "unicode": "e724", - "unicode_decimal": 59172 - }, - { - "icon_id": "19190169", - "name": "guankashu", - "font_class": "guankashu", - "unicode": "e834", - "unicode_decimal": 59444 - }, - { - "icon_id": "4734989", - "name": "发布", - "font_class": "fabu", - "unicode": "e64a", - "unicode_decimal": 58954 - }, - { - "icon_id": "10730535", - "name": "已关闭", - "font_class": "yiguanbi1", - "unicode": "e725", - "unicode_decimal": 59173 - }, - { - "icon_id": "19190170", - "name": "shanchu", - "font_class": "shanchu6", - "unicode": "e835", - "unicode_decimal": 59445 - }, - { - "icon_id": "4734991", - "name": "向下移动", - "font_class": "xiangxiayidong", - "unicode": "e64b", - "unicode_decimal": 58955 - }, - { - "icon_id": "12770896", - "name": "垃圾桶", - "font_class": "lajitong", - "unicode": "e726", - "unicode_decimal": 59174 - }, - { - "icon_id": "19190171", - "name": "pingfen", - "font_class": "pingfen1", - "unicode": "e836", - "unicode_decimal": 59446 - }, - { - "icon_id": "4734992", - "name": "向上移动", - "font_class": "xiangshangyidong", - "unicode": "e64c", - "unicode_decimal": 58956 - }, - { - "icon_id": "98473", - "name": "笔", - "font_class": "weibiaoti1", - "unicode": "e728", - "unicode_decimal": 59176 - }, - { - "icon_id": "19190172", - "name": "shezhi", - "font_class": "shezhi5", - "unicode": "e837", - "unicode_decimal": 59447 - }, - { - "icon_id": "4734994", - "name": "关闭", - "font_class": "guanbi", - "unicode": "e64d", - "unicode_decimal": 58957 - }, - { - "icon_id": "13097093", - "name": "播放", - "font_class": "bofang2", - "unicode": "e729", - "unicode_decimal": 59177 - }, - { - "icon_id": "19190173", - "name": "QQ", - "font_class": "QQ1", - "unicode": "e838", - "unicode_decimal": 59448 - }, - { - "icon_id": "4769329", - "name": "回复", - "font_class": "huifu1", - "unicode": "e64e", - "unicode_decimal": 58958 - }, - { - "icon_id": "2077714", - "name": "编辑", - "font_class": "bianji4", - "unicode": "e72a", - "unicode_decimal": 59178 - }, - { - "icon_id": "19190174", - "name": "shoucangerji", - "font_class": "shoucangerji", - "unicode": "e839", - "unicode_decimal": 59449 - }, - { - "icon_id": "4779517", - "name": "文件", - "font_class": "wenjian", - "unicode": "e64f", - "unicode_decimal": 58959 - }, - { - "icon_id": "10199180", - "name": "绑定", - "font_class": "bangding", - "unicode": "e72b", - "unicode_decimal": 59179 - }, - { - "icon_id": "19190175", - "name": "shoucangyiji", - "font_class": "shoucangyiji", - "unicode": "e83a", - "unicode_decimal": 59450 - }, - { - "icon_id": "4734972", - "name": "公告", - "font_class": "gonggao", - "unicode": "e63b", - "unicode_decimal": 58939 - }, - { - "icon_id": "13183780", - "name": "选择", - "font_class": "xuanze", - "unicode": "e72c", - "unicode_decimal": 59180 - }, - { - "icon_id": "19190176", - "name": "shixunshu", - "font_class": "shixunshu", - "unicode": "e83b", - "unicode_decimal": 59451 - }, - { - "icon_id": "4780701", - "name": "展开", - "font_class": "zhankai", - "unicode": "e650", - "unicode_decimal": 58960 - }, - { - "icon_id": "13247168", - "name": "删除", - "font_class": "shanchu3", - "unicode": "e72d", - "unicode_decimal": 59181 - }, - { - "icon_id": "19190177", - "name": "shanchu2", - "font_class": "shanchu23", - "unicode": "e83c", - "unicode_decimal": 59452 - }, - { - "icon_id": "4780702", - "name": "收缩", - "font_class": "shousuo", - "unicode": "e651", - "unicode_decimal": 58961 - }, - { - "icon_id": "13247173", - "name": "编辑", - "font_class": "bianji5", - "unicode": "e72e", - "unicode_decimal": 59182 - }, - { - "icon_id": "19190178", - "name": "hezuochengyuan", - "font_class": "hezuochengyuan", - "unicode": "e83d", - "unicode_decimal": 59453 - }, - { - "icon_id": "4807118", - "name": "左键头", - "font_class": "zuojiantou", - "unicode": "e652", - "unicode_decimal": 58962 - }, - { - "icon_id": "13247175", - "name": "上移", - "font_class": "shangyi", - "unicode": "e72f", - "unicode_decimal": 59183 - }, - { - "icon_id": "19190179", - "name": "shixunti", - "font_class": "shixunti", - "unicode": "e83e", - "unicode_decimal": 59454 - }, - { - "icon_id": "4807119", - "name": "右键头", - "font_class": "youjiantou", - "unicode": "e653", - "unicode_decimal": 58963 - }, - { - "icon_id": "13247178", - "name": "下移", - "font_class": "xiayi", - "unicode": "e730", - "unicode_decimal": 59184 - }, - { - "icon_id": "19190180", - "name": "xiaowenhao", - "font_class": "xiaowenhao", - "unicode": "e83f", - "unicode_decimal": 59455 - }, - { - "icon_id": "4807120", - "name": "上键头", - "font_class": "shangjiantou", - "unicode": "e654", - "unicode_decimal": 58964 - }, - { - "icon_id": "13247261", - "name": "上移2", - "font_class": "shangyi1", - "unicode": "e731", - "unicode_decimal": 59185 - }, - { - "icon_id": "19190181", - "name": "wenjian", - "font_class": "wenjian3", - "unicode": "e840", - "unicode_decimal": 59456 - }, - { - "icon_id": "4835183", - "name": "编辑带背景", - "font_class": "bianjidaibeijing", - "unicode": "e655", - "unicode_decimal": 58965 - }, - { - "icon_id": "13247262", - "name": "下移2", - "font_class": "xiayi1", - "unicode": "e732", - "unicode_decimal": 59186 - }, - { - "icon_id": "19190182", - "name": "xiugai1", - "font_class": "xiugai1", - "unicode": "e841", - "unicode_decimal": 59457 - }, - { - "icon_id": "4835184", - "name": "播放", - "font_class": "bofang", - "unicode": "e656", - "unicode_decimal": 58966 - }, - { - "icon_id": "13353315", - "name": "移动", - "font_class": "yidong", - "unicode": "e734", - "unicode_decimal": 59188 - }, - { - "icon_id": "19190183", - "name": "shiyanhuanjing", - "font_class": "shiyanhuanjing", - "unicode": "e842", - "unicode_decimal": 59458 - }, - { - "icon_id": "4835185", - "name": "完成", - "font_class": "wancheng", - "unicode": "e658", - "unicode_decimal": 58968 - }, - { - "icon_id": "13427273", - "name": "签到-01", - "font_class": "qiandao-", - "unicode": "e735", - "unicode_decimal": 59189 - }, - { - "icon_id": "19190184", - "name": "wenjian1", - "font_class": "wenjian11", - "unicode": "e843", - "unicode_decimal": 59459 - }, - { - "icon_id": "5030348", - "name": "分组作业", - "font_class": "fenzuzuoye", - "unicode": "e65d", - "unicode_decimal": 58973 - }, - { - "icon_id": "13428658", - "name": "下箭头", - "font_class": "xiajiantou2", - "unicode": "e737", - "unicode_decimal": 59191 - }, - { - "icon_id": "19190185", - "name": "sousuo", - "font_class": "sousuo3", - "unicode": "e844", - "unicode_decimal": 59460 - }, - { - "icon_id": "5030654", - "name": "普通作业", - "font_class": "putongzuoye", - "unicode": "e65c", - "unicode_decimal": 58972 - }, - { - "icon_id": "13428689", - "name": "签到-02", - "font_class": "qiandao-1", - "unicode": "e736", - "unicode_decimal": 59190 - }, - { - "icon_id": "19190186", - "name": "suoshukecheng", - "font_class": "suoshukecheng", - "unicode": "e845", - "unicode_decimal": 59461 - }, - { - "icon_id": "5044767", - "name": "问卷", - "font_class": "wenjuan", - "unicode": "e659", - "unicode_decimal": 58969 - }, - { - "icon_id": "13458287", - "name": "统计", - "font_class": "tongji1", - "unicode": "e738", - "unicode_decimal": 59192 - }, - { - "icon_id": "19190187", - "name": "shenqinggongkai", - "font_class": "shenqinggongkai", - "unicode": "e846", - "unicode_decimal": 59462 - }, - { - "icon_id": "5044768", - "name": "讨论", - "font_class": "taolun", - "unicode": "e65a", - "unicode_decimal": 58970 - }, - { - "icon_id": "13458315", - "name": "返回", - "font_class": "fanhui", - "unicode": "e739", - "unicode_decimal": 59193 - }, - { - "icon_id": "19190188", - "name": "shijianshezhi", - "font_class": "shijianshezhi", - "unicode": "e847", - "unicode_decimal": 59463 - }, - { - "icon_id": "5044770", - "name": "分班", - "font_class": "fenban", - "unicode": "e65f", - "unicode_decimal": 58975 - }, - { - "icon_id": "13515025", - "name": "局部刷新键头", - "font_class": "jubushuaxinjiantou", - "unicode": "e73a", - "unicode_decimal": 59194 - }, - { - "icon_id": "19190189", - "name": "renwuguanka", - "font_class": "renwuguanka", - "unicode": "e848", - "unicode_decimal": 59464 - }, - { - "icon_id": "5044775", - "name": "动态", - "font_class": "dongtai", - "unicode": "e660", - "unicode_decimal": 58976 - }, - { - "icon_id": "13839888", - "name": "公司地址", - "font_class": "gongsidizhi", - "unicode": "e73b", - "unicode_decimal": 59195 - }, - { - "icon_id": "19190190", - "name": "xuanzeti", - "font_class": "xuanzeti1", - "unicode": "e849", - "unicode_decimal": 59465 - }, - { - "icon_id": "5045030", - "name": "试卷", - "font_class": "shijuan", - "unicode": "e65b", - "unicode_decimal": 58971 - }, - { - "icon_id": "13839892", - "name": "公司介绍", - "font_class": "gongsijieshao", - "unicode": "e73c", - "unicode_decimal": 59196 - }, - { - "icon_id": "19190191", - "name": "yijianfankui", - "font_class": "yijianfankui1", - "unicode": "e84a", - "unicode_decimal": 59466 - }, - { - "icon_id": "5051277", - "name": "菜单", - "font_class": "caidan", - "unicode": "e661", - "unicode_decimal": 58977 - }, - { - "icon_id": "13839895", - "name": "职位要求", - "font_class": "zhiweiyaoqiu", - "unicode": "e73d", - "unicode_decimal": 59197 - }, - { - "icon_id": "19190192", - "name": "tuijianshixun", - "font_class": "tuijianshixun", - "unicode": "e84b", - "unicode_decimal": 59467 - }, - { - "icon_id": "5052642", - "name": "成员管理", - "font_class": "chengyuanguanli", - "unicode": "e662", - "unicode_decimal": 58978 - }, - { - "icon_id": "13839898", - "name": "发布职位", - "font_class": "fabuzhiwei", - "unicode": "e73e", - "unicode_decimal": 59198 - }, - { - "icon_id": "19190193", - "name": "xiala", - "font_class": "xiala", - "unicode": "e84c", - "unicode_decimal": 59468 - }, - { - "icon_id": "5068519", - "name": "向下移", - "font_class": "xiangxiayi", - "unicode": "e663", - "unicode_decimal": 58979 - }, - { - "icon_id": "11488156", - "name": "upload", - "font_class": "upload", - "unicode": "e76b", - "unicode_decimal": 59243 - }, - { - "icon_id": "19190194", - "name": "xuexirenshu", - "font_class": "xuexirenshu", - "unicode": "e84d", - "unicode_decimal": 59469 - }, - { - "icon_id": "5068520", - "name": "向上移", - "font_class": "xiangshangyi", - "unicode": "e664", - "unicode_decimal": 58980 - }, - { - "icon_id": "14101755", - "name": "职称", - "font_class": "zhicheng", - "unicode": "e73f", - "unicode_decimal": 59199 - }, - { - "icon_id": "19190195", - "name": "xuexijindu", - "font_class": "xuexijindu", - "unicode": "e84e", - "unicode_decimal": 59470 - }, - { - "icon_id": "5111347", - "name": "更多", - "font_class": "gengduo", - "unicode": "e665", - "unicode_decimal": 58981 - }, - { - "icon_id": "14102400", - "name": "问题列表", - "font_class": "wentiliebiao", - "unicode": "e741", - "unicode_decimal": 59201 - }, - { - "icon_id": "19235590", - "name": "编辑", - "font_class": "editUnder", - "unicode": "e84f", - "unicode_decimal": 59471 - }, - { - "icon_id": "5148158", - "name": "学院管理员", - "font_class": "xueyuanguanliyuan", - "unicode": "e666", - "unicode_decimal": 58982 - }, - { - "icon_id": "14102491", - "name": "图片", - "font_class": "tupian", - "unicode": "e742", - "unicode_decimal": 59202 - }, - { - "icon_id": "19235659", - "name": "structure", - "font_class": "structure", - "unicode": "e850", - "unicode_decimal": 59472 - }, - { - "icon_id": "5196483", - "name": "空星", - "font_class": "kongxing", - "unicode": "e667", - "unicode_decimal": 58983 - }, - { - "icon_id": "14108259", - "name": "回复", - "font_class": "huifu", - "unicode": "e743", - "unicode_decimal": 59203 - }, - { - "icon_id": "19235756", - "name": "部署-01", - "font_class": "arrange", - "unicode": "e851", - "unicode_decimal": 59473 - }, - { - "icon_id": "5196487", - "name": "实星", - "font_class": "shixing", - "unicode": "e668", - "unicode_decimal": 58984 - }, - { - "icon_id": "14240818", - "name": "新建简历、我的简历", - "font_class": "xinjianjianliwodejianli", - "unicode": "e744", - "unicode_decimal": 59204 - }, - { - "icon_id": "19235771", - "name": " initialize", - "font_class": "initialize", - "unicode": "e852", - "unicode_decimal": 59474 - }, - { - "icon_id": "5242367", - "name": "下降", - "font_class": "xiajiang", - "unicode": "e669", - "unicode_decimal": 58985 - }, - { - "icon_id": "14269490", - "name": "置顶", - "font_class": "zhiding1", - "unicode": "e745", - "unicode_decimal": 59205 - }, - { - "icon_id": "19235869", - "name": "unit", - "font_class": "unit", - "unicode": "e853", - "unicode_decimal": 59475 - }, - { - "icon_id": "1113422", - "name": "三角形-up", - "font_class": "sanjiaoxing-up", - "unicode": "e78f", - "unicode_decimal": 59279 - }, - { - "icon_id": "14269491", - "name": "取消置顶", - "font_class": "quxiaozhiding", - "unicode": "e746", - "unicode_decimal": 59206 - }, - { - "icon_id": "19235920", - "name": "model", - "font_class": "model", - "unicode": "e854", - "unicode_decimal": 59476 - }, - { - "icon_id": "1113424", - "name": "三角形-down", - "font_class": "sanjiaoxing-down", - "unicode": "e791", - "unicode_decimal": 59281 - }, - { - "icon_id": "14364804", - "name": "行内公式", - "font_class": "hangneigongshi", - "unicode": "e747", - "unicode_decimal": 59207 - }, - { - "icon_id": "19235935", - "name": "确认-01", - "font_class": "sure", - "unicode": "e855", - "unicode_decimal": 59477 - }, - { - "icon_id": "720976", - "name": "坐标", - "font_class": "xiazai18", - "unicode": "e627", - "unicode_decimal": 58919 - }, - { - "icon_id": "14364807", - "name": "多行公式", - "font_class": "duohanggongshi", - "unicode": "e748", - "unicode_decimal": 59208 - }, - { - "icon_id": "19235976", - "name": "添加", - "font_class": "add", - "unicode": "e856", - "unicode_decimal": 59478 - }, - { - "icon_id": "1241465", - "name": "邮件", - "font_class": "mail", - "unicode": "e66a", - "unicode_decimal": 58986 - }, - { - "icon_id": "14476133", - "name": "编辑-优化icon", - "font_class": "bianji2X", - "unicode": "e749", - "unicode_decimal": 59209 - }, - { - "icon_id": "19235993", - "name": "newstage", - "font_class": "newStage", - "unicode": "e857", - "unicode_decimal": 59479 - }, - { - "icon_id": "3764006", - "name": "电话", - "font_class": "weibiaoti-", - "unicode": "e60d", - "unicode_decimal": 58893 - }, - { - "icon_id": "14484287", - "name": "设置", - "font_class": "shezhi4", - "unicode": "e74e", - "unicode_decimal": 59214 - }, - { - "icon_id": "19248283", - "name": "再编辑", - "font_class": "zaibianji", - "unicode": "e858", - "unicode_decimal": 59480 - }, - { - "icon_id": "400088", - "name": "关闭", - "font_class": "htmal5icon19", - "unicode": "e66b", - "unicode_decimal": 58987 - }, - { - "icon_id": "14484580", - "name": "复制", - "font_class": "fuzhi4", - "unicode": "e74a", - "unicode_decimal": 59210 - }, - { - "icon_id": "19248301", - "name": "运行", - "font_class": "yunhang", - "unicode": "e859", - "unicode_decimal": 59481 - }, - { - "icon_id": "5480167", - "name": "新增提示", - "font_class": "xinzengtishi", - "unicode": "e66c", - "unicode_decimal": 58988 - }, - { - "icon_id": "14514445", - "name": "选中", - "font_class": "xuanzhong", - "unicode": "e74b", - "unicode_decimal": 59211 - }, - { - "icon_id": "5480235", - "name": "完成勾选", - "font_class": "wanchenggouxuan", - "unicode": "e66e", - "unicode_decimal": 58990 - }, - { - "icon_id": "14514446", - "name": "未选中", - "font_class": "weixuanzhong", - "unicode": "e74d", - "unicode_decimal": 59213 - }, - { - "icon_id": "715974", - "name": "设置", - "font_class": "shezhi", - "unicode": "e66f", - "unicode_decimal": 58991 - }, - { - "icon_id": "14599229", - "name": "项目类型", - "font_class": "xiangmuleixing", - "unicode": "e750", - "unicode_decimal": 59216 - }, - { - "icon_id": "5669524", - "name": "下降", - "font_class": "youjiang", - "unicode": "e792", - "unicode_decimal": 59282 - }, - { - "icon_id": "14599181", - "name": "项目类别", - "font_class": "xiangmuleibie", - "unicode": "e751", - "unicode_decimal": 59217 - }, - { - "icon_id": "826201", - "name": "附件", - "font_class": "fujian", - "unicode": "e670", - "unicode_decimal": 58992 - }, - { - "icon_id": "1687276", - "name": "点赞", - "font_class": "ziyuan1", - "unicode": "e752", - "unicode_decimal": 59218 - }, - { - "icon_id": "2367774", - "name": "旗帜", - "font_class": "qizhi", - "unicode": "e699", - "unicode_decimal": 59033 - }, - { - "icon_id": "14706413", - "name": "分支", - "font_class": "fenzhi1", - "unicode": "e753", - "unicode_decimal": 59219 - }, - { - "icon_id": "392172", - "name": "钻石", - "font_class": "31", - "unicode": "e6b2", - "unicode_decimal": 59058 - }, - { - "icon_id": "14706416", - "name": "标签", - "font_class": "biaoqian3", - "unicode": "e754", - "unicode_decimal": 59220 - }, - { - "icon_id": "845852", - "name": "问号", - "font_class": "wenhao", - "unicode": "e680", - "unicode_decimal": 59008 - }, - { - "icon_id": "14706420", - "name": "发行版", - "font_class": "fahangban", - "unicode": "e755", - "unicode_decimal": 59221 - }, - { - "icon_id": "593484", - "name": "菜单", - "font_class": "weibiaoti12", - "unicode": "e671", - "unicode_decimal": 58993 - }, - { - "icon_id": "14706421", - "name": "贡献者", - "font_class": "gongxianzhe", - "unicode": "e757", - "unicode_decimal": 59223 - }, - { - "icon_id": "4736792", - "name": "毕业 [转换]", - "font_class": "biyezhuanhuan", - "unicode": "e6f1", - "unicode_decimal": 59121 - }, - { - "icon_id": "14706430", - "name": "仓库", - "font_class": "cangku", - "unicode": "e758", - "unicode_decimal": 59224 - }, - { - "icon_id": "1606757", - "name": "锁", - "font_class": "suo", - "unicode": "e6c9", - "unicode_decimal": 59081 - }, - { - "icon_id": "14706480", - "name": "复制", - "font_class": "fuzhi5", - "unicode": "e759", - "unicode_decimal": 59225 - }, - { - "icon_id": "2365578", - "name": "三角形", - "font_class": "triangle", - "unicode": "e600", - "unicode_decimal": 58880 - }, - { - "icon_id": "14706484", - "name": "下载", - "font_class": "xiazai2", - "unicode": "e75a", - "unicode_decimal": 59226 - }, - { - "icon_id": "5057140", - "name": "添加", - "font_class": "tianjia", - "unicode": "e672", - "unicode_decimal": 58994 - }, - { - "icon_id": "14706563", - "name": "文件", - "font_class": "wenjia", - "unicode": "e75b", - "unicode_decimal": 59227 - }, - { - "icon_id": "38744", - "name": "round_add_fill", - "font_class": "roundaddfill", - "unicode": "e6d8", - "unicode_decimal": 59096 - }, - { - "icon_id": "14706564", - "name": "文件夹", - "font_class": "wenjianjia1", - "unicode": "e75c", - "unicode_decimal": 59228 - }, - { - "icon_id": "29944", - "name": "round_close", - "font_class": "roundclose", - "unicode": "e673", - "unicode_decimal": 58995 - }, - { - "icon_id": "14776044", - "name": "ZIP", - "font_class": "ZIP", - "unicode": "e75d", - "unicode_decimal": 59229 - }, - { - "icon_id": "913780", - "name": "坐标", - "font_class": "zuobiao", - "unicode": "e674", - "unicode_decimal": 58996 - }, - { - "icon_id": "14776069", - "name": "TAR", - "font_class": "TAR", - "unicode": "e75e", - "unicode_decimal": 59230 - }, - { - "icon_id": "4019861", - "name": "银行卡", - "font_class": "yinhangqia", - "unicode": "e675", - "unicode_decimal": 58997 - }, - { - "icon_id": "14775518", - "name": "导出", - "font_class": "daochu3x", - "unicode": "e75f", - "unicode_decimal": 59231 - }, - { - "icon_id": "5291605", - "name": "更多", - "font_class": "gengduo1", - "unicode": "e7f9", - "unicode_decimal": 59385 - }, - { - "icon_id": "14775519", - "name": "立即截止", - "font_class": "lijijiezhi3x", - "unicode": "e760", - "unicode_decimal": 59232 - }, - { - "icon_id": "2629328", - "name": "加 ", - "font_class": "jia", - "unicode": "e605", - "unicode_decimal": 58885 - }, - { - "icon_id": "14775520", - "name": "编辑试卷", - "font_class": "bianjishijuan3x", - "unicode": "e761", - "unicode_decimal": 59233 - }, - { - "icon_id": "3866700", - "name": "位置", - "font_class": "weizhi", - "unicode": "e676", - "unicode_decimal": 58998 - }, - { - "icon_id": "14775521", - "name": "打回重做", - "font_class": "dahuizhongzuo3x", - "unicode": "e762", - "unicode_decimal": 59234 - }, - { - "icon_id": "5872571", - "name": "fork", - "font_class": "fork", - "unicode": "e6b3", - "unicode_decimal": 59059 - }, - { - "icon_id": "14775567", - "name": "集中批量批阅", - "font_class": "filedone2X", - "unicode": "e764", - "unicode_decimal": 59236 - }, - { - "icon_id": "348426", - "name": "css3", - "font_class": "css3", - "unicode": "ea8b", - "unicode_decimal": 60043 - }, - { - "icon_id": "14775587", - "name": "组内顺序批阅", - "font_class": "filesync3x", - "unicode": "e766", - "unicode_decimal": 59238 - }, - { - "icon_id": "348560", - "name": "html5", - "font_class": "html5", - "unicode": "eb10", - "unicode_decimal": 60176 - }, - { - "icon_id": "14775664", - "name": "筛选-下", - "font_class": "bianzu19xia3x", - "unicode": "e767", - "unicode_decimal": 59239 - }, - { - "icon_id": "836716", - "name": "linux", - "font_class": "linux", - "unicode": "e765", - "unicode_decimal": 59237 - }, - { - "icon_id": "14775724", - "name": "筛选-上", - "font_class": "bianzu193x", - "unicode": "e768", - "unicode_decimal": 59240 - }, - { - "icon_id": "1881547", - "name": "大数据存储", - "font_class": "dashujucunchu", - "unicode": "e678", - "unicode_decimal": 59000 - }, - { - "icon_id": "14776461", - "name": "搜索", - "font_class": "Search3x", - "unicode": "e769", - "unicode_decimal": 59241 - }, - { - "icon_id": "2584358", - "name": "VPN", - "font_class": "VPN", - "unicode": "e601", - "unicode_decimal": 58881 - }, - { - "icon_id": "14788714", - "name": "筛选-默认", - "font_class": "bianzu19", - "unicode": "e76a", - "unicode_decimal": 59242 - }, - { - "icon_id": "3876414", - "name": "jquery", - "font_class": "jquery", - "unicode": "e67a", - "unicode_decimal": 59002 - }, - { - "icon_id": "14812518", - "name": "选中框", - "font_class": "xuanzhongkuang", - "unicode": "e76c", - "unicode_decimal": 59244 - }, - { - "icon_id": "3876424", - "name": "docker", - "font_class": "docker", - "unicode": "e67b", - "unicode_decimal": 59003 - }, - { - "icon_id": "14812519", - "name": "未选框", - "font_class": "weixuankuang", - "unicode": "e76d", - "unicode_decimal": 59245 - }, - { - "icon_id": "3876458", - "name": "python", - "font_class": "python", - "unicode": "e67c", - "unicode_decimal": 59004 - }, - { - "icon_id": "14818827", - "name": "选中购", - "font_class": "check-square-fill3x", - "unicode": "e76e", - "unicode_decimal": 59246 - }, - { - "icon_id": "3876486", - "name": "php", - "font_class": "php", - "unicode": "e67d", - "unicode_decimal": 59005 - }, - { - "icon_id": "14818833", - "name": "展开", - "font_class": "play-square-fill3x", - "unicode": "e76f", - "unicode_decimal": 59247 - }, - { - "icon_id": "5634728", - "name": "java", - "font_class": "java", - "unicode": "f1d7", - "unicode_decimal": 61911 - }, - { - "icon_id": "12099623", - "name": "设置", - "font_class": "huabanfuben", - "unicode": "eb7b", - "unicode_decimal": 60283 - }, - { - "icon_id": "5961392", - "name": "mysql", - "font_class": "mysql", - "unicode": "ec6d", - "unicode_decimal": 60525 - }, - { - "icon_id": "338692", - "name": "显示器", - "font_class": "zhongqingdianxinicon10", - "unicode": "e770", - "unicode_decimal": 59248 - }, - { - "icon_id": "776044", - "name": "PHP开发", - "font_class": "phpkaifa", - "unicode": "e67e", - "unicode_decimal": 59006 - }, - { - "icon_id": "11488063", - "name": "left arrow", - "font_class": "leftarrow", - "unicode": "e771", - "unicode_decimal": 59249 - }, - { - "icon_id": "4239271", - "name": "SQL server", - "font_class": "SQLserver", - "unicode": "e705", - "unicode_decimal": 59141 - }, - { - "icon_id": "15097291", - "name": "新建", - "font_class": "xinjian1", - "unicode": "e772", - "unicode_decimal": 59250 - }, - { - "icon_id": "6359951", - "name": "mongodb", - "font_class": "mongodb1", - "unicode": "e60b", - "unicode_decimal": 58891 - }, - { - "icon_id": "15115208", - "name": "镜像", - "font_class": "jingxiang", - "unicode": "e773", - "unicode_decimal": 59251 - }, - { - "icon_id": "986702", - "name": "路由", - "font_class": "luyou", - "unicode": "e677", - "unicode_decimal": 58999 - }, - { - "icon_id": "15226856", - "name": "实训详情", - "font_class": "shixunxiangqing", - "unicode": "e775", - "unicode_decimal": 59253 - }, - { - "icon_id": "5430942", - "name": "智能监控体系", - "font_class": "zhinengjiankongtixi", - "unicode": "e6b4", - "unicode_decimal": 59060 - }, - { - "icon_id": "15226857", - "name": "立即发布", - "font_class": "lijifabu", - "unicode": "e776", - "unicode_decimal": 59254 - }, - { - "icon_id": "1283976", - "name": "代码配置r", - "font_class": "daimapeizhir", - "unicode": "e727", - "unicode_decimal": 59175 - }, - { - "icon_id": "15226858", - "name": "开启中", - "font_class": "kaiqizhong", - "unicode": "e777", - "unicode_decimal": 59255 - }, - { - "icon_id": "29949", - "name": "time_fill", - "font_class": "timefill", - "unicode": "e679", - "unicode_decimal": 59001 - }, - { - "icon_id": "15226859", - "name": "导出", - "font_class": "daochu", - "unicode": "e778", - "unicode_decimal": 59256 - }, - { - "icon_id": "1679994", - "name": "减", - "font_class": "default", - "unicode": "e67f", - "unicode_decimal": 59007 - }, - { - "icon_id": "15226860", - "name": "一键点评", - "font_class": "yijiandianping", - "unicode": "e779", - "unicode_decimal": 59257 - }, - { - "icon_id": "959394", - "name": "重置", - "font_class": "zhongzhi1", - "unicode": "e609", - "unicode_decimal": 58889 - }, - { - "icon_id": "15226861", - "name": "查看实训报告", - "font_class": "chakanshixunbaogao", - "unicode": "e77a", - "unicode_decimal": 59258 - }, - { - "icon_id": "5127482", - "name": "reset", - "font_class": "reset", - "unicode": "e7fe", - "unicode_decimal": 59390 - }, - { - "icon_id": "15226862", - "name": "提交总结", - "font_class": "tijiaozongjie", - "unicode": "e77b", - "unicode_decimal": 59259 - }, - { - "icon_id": "562997", - "name": "vs", - "font_class": "vs", - "unicode": "e682", - "unicode_decimal": 59010 - }, - { - "icon_id": "15226863", - "name": "代码查重", - "font_class": "daimachazhong", - "unicode": "e77c", - "unicode_decimal": 59260 - }, - { - "icon_id": "3330922", - "name": "base", - "font_class": "base", - "unicode": "e683", - "unicode_decimal": 59011 - }, - { - "icon_id": "15226864", - "name": "编辑作业", - "font_class": "bianjizuoye", - "unicode": "e77d", - "unicode_decimal": 59261 - }, - { - "icon_id": "4479935", - "name": "登录Ip监控", - "font_class": "dengluIpjiankong", - "unicode": "e684", - "unicode_decimal": 59012 - }, - { - "icon_id": "15226865", - "name": "立即截止", - "font_class": "lijijiezhi", - "unicode": "e77e", - "unicode_decimal": 59262 - }, - { - "icon_id": "4489857", - "name": "itsm3-流程管理", - "font_class": "itsm-liuchengguanli", - "unicode": "e685", - "unicode_decimal": 59013 - }, - { - "icon_id": "14332762", - "name": "合并请求", - "font_class": "hebingqingqiu", - "unicode": "e7f2", - "unicode_decimal": 59378 - }, - { - "icon_id": "1328121", - "name": "net", - "font_class": "net", - "unicode": "e607", - "unicode_decimal": 58887 - }, - { - "icon_id": "15465923", - "name": "组织成员", - "font_class": "zuzhichengyuan", - "unicode": "e774", - "unicode_decimal": 59252 - }, - { - "icon_id": "1966078", - "name": "mstest", - "font_class": "mstest", - "unicode": "e686", - "unicode_decimal": 59014 - }, - { - "icon_id": "15465934", - "name": "组织项目", - "font_class": "zuzhixiangmu", - "unicode": "e77f", - "unicode_decimal": 59263 - }, - { - "icon_id": "1792712", - "name": "qq", - "font_class": "qq", - "unicode": "e687", - "unicode_decimal": 59015 - }, - { - "icon_id": "15590860", - "name": "公告栏", - "font_class": "gonggaolan", - "unicode": "e780", - "unicode_decimal": 59264 - }, - { - "icon_id": "2405900", - "name": "CSDN", - "font_class": "csdn", - "unicode": "e602", - "unicode_decimal": 58882 - }, - { - "icon_id": "15590913", - "name": "实训作业", - "font_class": "shixunzuoye", - "unicode": "e781", - "unicode_decimal": 59265 - }, - { - "icon_id": "2709989", - "name": "微博", - "font_class": "weibo", - "unicode": "e688", - "unicode_decimal": 59016 - }, - { - "icon_id": "15590919", - "name": "分组作业", - "font_class": "fenzuzuoye1", - "unicode": "e783", - "unicode_decimal": 59267 - }, - { - "icon_id": "3471155", - "name": "微信", - "font_class": "weixin2", - "unicode": "e603", - "unicode_decimal": 58883 - }, - { - "icon_id": "15590922", - "name": "毕业作业", - "font_class": "biyezuoye", - "unicode": "e784", - "unicode_decimal": 59268 - }, - { - "icon_id": "3580617", - "name": "Stack Overflow", - "font_class": "StackOverflow", - "unicode": "e689", - "unicode_decimal": 59017 - }, - { - "icon_id": "15590984", - "name": "考试试卷", - "font_class": "kaoshishijuan", - "unicode": "e785", - "unicode_decimal": 59269 - }, - { - "icon_id": "4058832", - "name": "linkedin", - "font_class": "linkedin", - "unicode": "e60c", - "unicode_decimal": 58892 - }, - { - "icon_id": "15591132", - "name": "考试问卷", - "font_class": "kaoshiwenjuan", - "unicode": "e786", - "unicode_decimal": 59270 - }, - { - "icon_id": "6252982", - "name": "github", - "font_class": "github", - "unicode": "e763", - "unicode_decimal": 59235 - }, - { - "icon_id": "15591155", - "name": "学习资源", - "font_class": "xuexiziyuan", - "unicode": "e787", - "unicode_decimal": 59271 - }, - { - "icon_id": "712283", - "name": "时间", - "font_class": "shijian", - "unicode": "e69c", - "unicode_decimal": 59036 - }, - { - "icon_id": "15591161", - "name": "视频直播", - "font_class": "shipinzhibo", - "unicode": "e788", - "unicode_decimal": 59272 - }, - { - "icon_id": "3592482", - "name": "重置", - "font_class": "zhongzhi2", - "unicode": "e68a", - "unicode_decimal": 59018 - }, - { - "icon_id": "15591163", - "name": "讨论", - "font_class": "taolun1", - "unicode": "e789", - "unicode_decimal": 59273 - }, - { - "icon_id": "5379378", - "name": "20从属连接", - "font_class": "congshulianjie", - "unicode": "e6ee", - "unicode_decimal": 59118 - }, - { - "icon_id": "15591165", - "name": "分班", - "font_class": "fenban1", - "unicode": "e78a", - "unicode_decimal": 59274 - }, - { - "icon_id": "6879322", - "name": "trustie", - "font_class": "trustie", - "unicode": "e681", - "unicode_decimal": 59009 - }, - { - "icon_id": "15591167", - "name": "签到", - "font_class": "qiandao", - "unicode": "e78b", - "unicode_decimal": 59275 - }, - { - "icon_id": "3216521", - "name": "成功", - "font_class": "chenggong", - "unicode": "e68b", - "unicode_decimal": 59019 - }, - { - "icon_id": "15591171", - "name": "统计", - "font_class": "tongji2", - "unicode": "e78c", - "unicode_decimal": 59276 - }, - { - "icon_id": "7395703", - "name": "实训带背景", - "font_class": "shixundaibeijing", - "unicode": "e68c", - "unicode_decimal": 59020 - }, - { - "icon_id": "15605133", - "name": "编辑", - "font_class": "bianji6", - "unicode": "e78d", - "unicode_decimal": 59277 - }, - { - "icon_id": "4320360", - "name": "质量分析", - "font_class": "zhiliangfenxi", - "unicode": "e68d", - "unicode_decimal": 59021 - }, - { - "icon_id": "15605136", - "name": "文件", - "font_class": "wenjian1", - "unicode": "e78e", - "unicode_decimal": 59278 - }, - { - "icon_id": "3182660", - "name": "设置", - "font_class": "shezhi1", - "unicode": "e71d", - "unicode_decimal": 59165 - }, - { - "icon_id": "15689245", - "name": "更新成绩", - "font_class": "gengxinchengji", - "unicode": "e790", - "unicode_decimal": 59280 - }, - { - "icon_id": "622431", - "name": "pdf", - "font_class": "pdf", - "unicode": "e740", - "unicode_decimal": 59200 - }, - { - "icon_id": "15762732", - "name": "工作流", - "font_class": "gongzuoliu", - "unicode": "e793", - "unicode_decimal": 59283 - }, - { - "icon_id": "4333787", - "name": "上传图片", - "font_class": "shangchuantupian1", - "unicode": "e7fd", - "unicode_decimal": 59389 - }, - { - "icon_id": "15792796", - "name": "未通过", - "font_class": "weitongguo", - "unicode": "e794", - "unicode_decimal": 59284 - }, - { - "icon_id": "7913929", - "name": "添加导航", - "font_class": "tianjiadaohang", - "unicode": "e604", - "unicode_decimal": 58884 - }, - { - "icon_id": "15792803", - "name": "已通过", - "font_class": "yitongguo", - "unicode": "e795", - "unicode_decimal": 59285 - }, - { - "icon_id": "394097", - "name": "章节", - "font_class": "zhangjie1", - "unicode": "e68e", - "unicode_decimal": 59022 - }, - { - "icon_id": "15792805", - "name": "运行中", - "font_class": "yunhangzhong", - "unicode": "e796", - "unicode_decimal": 59286 - }, - { - "icon_id": "1025289", - "name": "复制", - "font_class": "fuzhi", - "unicode": "e68f", - "unicode_decimal": 59023 - }, - { - "icon_id": "15792809", - "name": "准备中", - "font_class": "zhunbeizhong", - "unicode": "e797", - "unicode_decimal": 59287 - }, - { - "icon_id": "3250316", - "name": "三点", - "font_class": "sandian", - "unicode": "e6f8", - "unicode_decimal": 59128 - }, - { - "icon_id": "15852665", - "name": "HOME", - "font_class": "HOME", - "unicode": "e798", - "unicode_decimal": 59288 - }, - { - "icon_id": "1820861", - "name": "标签", - "font_class": "biaoqian", - "unicode": "e74f", - "unicode_decimal": 59215 - }, - { - "icon_id": "15852666", - "name": "MAILING LIST", - "font_class": "MAILINGLIST", - "unicode": "e799", - "unicode_decimal": 59289 - }, - { - "icon_id": "1301376", - "name": "提示", - "font_class": "tishi1", - "unicode": "e690", - "unicode_decimal": 59024 - }, - { - "icon_id": "15852667", - "name": "EDI STATEMENT", - "font_class": "EDISTATEMENT", - "unicode": "e79a", - "unicode_decimal": 59290 - }, - { - "icon_id": "2065962", - "name": "添加成员", - "font_class": "tianjiachengyuan", - "unicode": "e69a", - "unicode_decimal": 59034 - }, - { - "icon_id": "15852669", - "name": "CONDUCT & SAFETY", - "font_class": "CONDUCTSAFETY", - "unicode": "e79b", - "unicode_decimal": 59291 - }, - { - "icon_id": "1471592", - "name": "edit", - "font_class": "edit", - "unicode": "e691", - "unicode_decimal": 59025 - }, - { - "icon_id": "15852670", - "name": "HISTORY", - "font_class": "HISTORY", - "unicode": "e79c", - "unicode_decimal": 59292 - }, - { - "icon_id": "1770008", - "name": "下载", - "font_class": "xiazai1", - "unicode": "e6ac", - "unicode_decimal": 59052 - }, - { - "icon_id": "15852671", - "name": "PROCEEDINGS", - "font_class": "PROCEEDINGS", - "unicode": "e79d", - "unicode_decimal": 59293 - }, - { - "icon_id": "2471377", - "name": "模板", - "font_class": "moban", - "unicode": "e692", - "unicode_decimal": 59026 - }, - { - "icon_id": "15852672", - "name": "BIBLIOGRAPHIES", - "font_class": "BIBLIOGRAPHIES", - "unicode": "e79e", - "unicode_decimal": 59294 - }, - { - "icon_id": "1118044", - "name": "认证信息", - "font_class": "renzhengxinxi", - "unicode": "e693", - "unicode_decimal": 59027 - }, - { - "icon_id": "15852673", - "name": "INFLUENTIAL PAPERS", - "font_class": "INFLUENTIALPAPERS", - "unicode": "e79f", - "unicode_decimal": 59295 - }, - { - "icon_id": "3295983", - "name": "gs-beixiao-icon-基本信息", - "font_class": "jibenxinxi", - "unicode": "e694", - "unicode_decimal": 59028 - }, - { - "icon_id": "15852674", - "name": "ORGANIZING ICSE - MOU", - "font_class": "ORGANIZINGICSE-MOU", - "unicode": "e7a0", - "unicode_decimal": 59296 - }, - { - "icon_id": "6576426", - "name": "安全设置", - "font_class": "anquanshezhi", - "unicode": "e606", - "unicode_decimal": 58886 - }, - { - "icon_id": "15852675", - "name": "STEERING COMMITTEE", - "font_class": "STEERINGCOMMITTEE", - "unicode": "e7a1", - "unicode_decimal": 59297 - }, - { - "icon_id": "1472537", - "name": "显示", - "font_class": "xianshi", - "unicode": "e695", - "unicode_decimal": 59029 - }, - { - "icon_id": "15852676", - "name": "FINAL REPORTS", - "font_class": "FINALREPORTS", - "unicode": "e7a2", - "unicode_decimal": 59298 - }, - { - "icon_id": "3738942", - "name": "隐藏", - "font_class": "yincang", - "unicode": "e6a0", - "unicode_decimal": 59040 - }, - { - "icon_id": "15852677", - "name": "SPONSORS", - "font_class": "SPONSORS", - "unicode": "e7a3", - "unicode_decimal": 59299 - }, - { - "icon_id": "209734", - "name": "粗版2_上传云端", - "font_class": "cuban2shangchuanyunduan", - "unicode": "e86d", - "unicode_decimal": 59501 - }, - { - "icon_id": "15852678", - "name": "CONTACTS", - "font_class": "CONTACTS", - "unicode": "e7a4", - "unicode_decimal": 59300 - }, - { - "icon_id": "6018156", - "name": "客户留言", - "font_class": "kehuliuyan", - "unicode": "e71a", - "unicode_decimal": 59162 - }, - { - "icon_id": "15852679", - "name": "Last updated", - "font_class": "Lastupdated", - "unicode": "e7a5", - "unicode_decimal": 59301 - }, - { - "icon_id": "1941293", - "name": "喇叭", - "font_class": "laba", - "unicode": "e608", - "unicode_decimal": 58888 - }, - { - "icon_id": "16766394", - "name": "实训作业", - "font_class": "shixunzuoye1", - "unicode": "e7a6", - "unicode_decimal": 59302 - }, - { - "icon_id": "2323314", - "name": "隐藏", - "font_class": "yincang1", - "unicode": "e9b5", - "unicode_decimal": 59829 - }, - { - "icon_id": "16767292", - "name": "普通作业", - "font_class": "putongzuoye1", - "unicode": "e782", - "unicode_decimal": 59266 - }, - { - "icon_id": "7637642", - "name": "警告", - "font_class": "jinggao", - "unicode": "e696", - "unicode_decimal": 59030 - }, - { - "icon_id": "16768917", - "name": "学习资源", - "font_class": "xuexiziyuan1", - "unicode": "e7a8", - "unicode_decimal": 59304 - }, - { - "icon_id": "2668434", - "name": "银行卡", - "font_class": "yinhangqia1", - "unicode": "e697", - "unicode_decimal": 59031 - }, - { - "icon_id": "16771320", - "name": "考试问卷", - "font_class": "kaoshiwenjuan1", - "unicode": "e7a7", - "unicode_decimal": 59303 - }, - { - "icon_id": "5037778", - "name": "设置", - "font_class": "shezhi2", - "unicode": "e698", - "unicode_decimal": 59032 - }, - { - "icon_id": "16771321", - "name": "考试试卷", - "font_class": "kaoshishijuan1", - "unicode": "e7a9", - "unicode_decimal": 59305 - }, - { - "icon_id": "5921996", - "name": "名片", - "font_class": "mingpian", - "unicode": "e69b", - "unicode_decimal": 59035 - }, - { - "icon_id": "16771324", - "name": "视频直播", - "font_class": "shipinzhibo1", - "unicode": "e7aa", - "unicode_decimal": 59306 - }, - { - "icon_id": "5383113", - "name": "手机", - "font_class": "shouji", - "unicode": "e69d", - "unicode_decimal": 59037 - }, - { - "icon_id": "16771329", - "name": "讨论", - "font_class": "taolun2", - "unicode": "e7ab", - "unicode_decimal": 59307 - }, - { - "icon_id": "2800857", - "name": "无", - "font_class": "kong", - "unicode": "e69f", - "unicode_decimal": 59039 - }, - { - "icon_id": "16771338", - "name": "分班", - "font_class": "fenban2", - "unicode": "e7ac", - "unicode_decimal": 59308 - }, - { - "icon_id": "9977539", - "name": "排序", - "font_class": "paixu1", - "unicode": "e6aa", - "unicode_decimal": 59050 - }, - { - "icon_id": "16771339", - "name": "签到", - "font_class": "qiandao1", - "unicode": "e7ad", - "unicode_decimal": 59309 - }, - { - "icon_id": "2423301", - "name": "用户、角色_无数据", - "font_class": "yonghujiaose_wushuju", - "unicode": "e69e", - "unicode_decimal": 59038 - }, - { - "icon_id": "16771343", - "name": "统计", - "font_class": "tongji3", - "unicode": "e7ae", - "unicode_decimal": 59310 - }, - { - "icon_id": "10371563", - "name": "职业认证", - "font_class": "renzhengshangjia", - "unicode": "e6ab", - "unicode_decimal": 59051 - }, - { - "icon_id": "16771344", - "name": "毕业作业", - "font_class": "biyezuoye1", - "unicode": "e7af", - "unicode_decimal": 59311 - }, - { - "icon_id": "10371564", - "name": "实名认证", - "font_class": "shenfenzhenghaomaguizheng", - "unicode": "e6ad", - "unicode_decimal": 59053 - }, - { - "icon_id": "16771348", - "name": "分组作业", - "font_class": "fenzuzuoye2", - "unicode": "e7b0", - "unicode_decimal": 59312 - }, - { - "icon_id": "9751215", - "name": "编辑", - "font_class": "bianji1", - "unicode": "e6a1", - "unicode_decimal": 59041 - }, - { - "icon_id": "16771382", - "name": "模版管理2", - "font_class": "mobanguanli2", - "unicode": "e7b1", - "unicode_decimal": 59313 - }, - { - "icon_id": "1703520", - "name": "消息", - "font_class": "xiaoxi1", - "unicode": "e6a4", - "unicode_decimal": 59044 - }, - { - "icon_id": "16922942", - "name": "对勾", - "font_class": "duigou1", - "unicode": "e7b2", - "unicode_decimal": 59314 - }, - { - "icon_id": "10383001", - "name": "Page-1 (2)", - "font_class": "Page-1", - "unicode": "e6ae", - "unicode_decimal": 59054 - }, - { - "icon_id": "16922946", - "name": "链接 (1)", - "font_class": "lianjie1", - "unicode": "e7b5", - "unicode_decimal": 59317 - }, - { - "icon_id": "10383218", - "name": "Page-3", - "font_class": "Page-3", - "unicode": "e6af", - "unicode_decimal": 59055 - }, - { - "icon_id": "16922947", - "name": "章节", - "font_class": "zhangjie", - "unicode": "e7b6", - "unicode_decimal": 59318 - }, - { - "icon_id": "10383219", - "name": "Page2", - "font_class": "Page", - "unicode": "e6b0", - "unicode_decimal": 59056 - }, - { - "icon_id": "16923000", - "name": "上传视频 (1)", - "font_class": "shangchuanshipin1", - "unicode": "e7b7", - "unicode_decimal": 59319 - }, - { - "icon_id": "10440637", - "name": "身份认证", - "font_class": "yemian", - "unicode": "e6b1", - "unicode_decimal": 59057 - }, - { - "icon_id": "17027771", - "name": "闹钟", - "font_class": "shizhong", - "unicode": "e7b8", - "unicode_decimal": 59320 - }, - { - "icon_id": "10440717", - "name": "实名认证", - "font_class": "bianzu", - "unicode": "e6b5", - "unicode_decimal": 59061 - }, - { - "icon_id": "17060439", - "name": "开启防作弊", - "font_class": "fangzuobi", - "unicode": "e7b9", - "unicode_decimal": 59321 - }, - { - "icon_id": "2959158", - "name": "课程", - "font_class": "kecheng", - "unicode": "e60a", - "unicode_decimal": 58890 - }, - { - "icon_id": "17060498", - "name": "放大", - "font_class": "fangda2", - "unicode": "e7ba", - "unicode_decimal": 59322 - }, - { - "icon_id": "10484724", - "name": "学习中心", - "font_class": "xuexizhongxin", - "unicode": "e6b6", - "unicode_decimal": 59062 - }, - { - "icon_id": "17077771", - "name": "视频", - "font_class": "shipin", - "unicode": "e7b4", - "unicode_decimal": 59316 - }, - { - "icon_id": "6897671", - "name": "无权限", - "font_class": "wuquanxian", - "unicode": "e6a2", - "unicode_decimal": 59042 - }, - { - "icon_id": "17077772", - "name": "实训", - "font_class": "shixun2", - "unicode": "e7be", - "unicode_decimal": 59326 - }, - { - "icon_id": "9219273", - "name": "yunweijiankong", - "font_class": "yunweijiankong", - "unicode": "e6a3", - "unicode_decimal": 59043 - }, - { - "icon_id": "17078373", - "name": "自用试卷", - "font_class": "ziyongshijuan", - "unicode": "e7b3", - "unicode_decimal": 59315 - }, - { - "icon_id": "9238635", - "name": "gongyiliucheng", - "font_class": "gongyiliucheng", - "unicode": "e6a5", - "unicode_decimal": 59045 - }, - { - "icon_id": "17078374", - "name": "已公开试卷", - "font_class": "yigongkaishijuan", - "unicode": "e7bb", - "unicode_decimal": 59323 - }, - { - "icon_id": "9247438", - "name": "zhiliangkongzhi", - "font_class": "zhiliangkongzhi", - "unicode": "e6a6", - "unicode_decimal": 59046 - }, - { - "icon_id": "4550494", - "name": "箭头", - "font_class": "jiantou", - "unicode": "e7bc", - "unicode_decimal": 59324 - }, - { - "icon_id": "9247680", - "name": "shebeiguanli", - "font_class": "shebeiguanli", - "unicode": "e6a7", - "unicode_decimal": 59047 - }, - { - "icon_id": "17126010", - "name": "编程语言", - "font_class": "bianchengyuyan", - "unicode": "e7bd", - "unicode_decimal": 59325 - }, - { - "icon_id": "9255551", - "name": "shengmingzhouqi", - "font_class": "shengmingzhouqi", - "unicode": "e6a8", - "unicode_decimal": 59048 - }, - { - "icon_id": "17189615", - "name": "右", - "font_class": "you", - "unicode": "e7bf", - "unicode_decimal": 59327 - }, - { - "icon_id": "10610561", - "name": "menu_5date1", - "font_class": "menu_date", - "unicode": "e6a9", - "unicode_decimal": 59049 - }, - { - "icon_id": "17189616", - "name": "左", - "font_class": "zuo", - "unicode": "e7c0", - "unicode_decimal": 59328 - }, - { - "icon_id": "10610574", - "name": "menu_people1", - "font_class": "menu_people", - "unicode": "e6b7", - "unicode_decimal": 59063 - }, - { - "icon_id": "12703761", - "name": "oschina", - "font_class": "oschina", - "unicode": "e7c1", - "unicode_decimal": 59329 - }, - { - "icon_id": "10610051", - "name": "menu_3voucher", - "font_class": "menu_voucher", - "unicode": "e6b8", - "unicode_decimal": 59064 - }, - { - "icon_id": "675739", - "name": "用户", - "font_class": "yonghu", - "unicode": "e7c2", - "unicode_decimal": 59330 - }, - { - "icon_id": "10610055", - "name": "menu_3events", - "font_class": "menu_events", - "unicode": "e6b9", - "unicode_decimal": 59065 - }, - { - "icon_id": "17215358", - "name": "QQ", - "font_class": "QQ", - "unicode": "e7c3", - "unicode_decimal": 59331 - }, - { - "icon_id": "10610061", - "name": "menu_4map", - "font_class": "menu_map", - "unicode": "e6ba", - "unicode_decimal": 59066 - }, - { - "icon_id": "17272329", - "name": "光标", - "font_class": "guangbiao", - "unicode": "e7c4", - "unicode_decimal": 59332 - }, - { - "icon_id": "3634968", - "name": "活动", - "font_class": "huodong", - "unicode": "e6bb", - "unicode_decimal": 59067 - }, - { - "icon_id": "17320656", - "name": "搜索", - "font_class": "sousuo2", - "unicode": "e7c6", - "unicode_decimal": 59334 - }, - { - "icon_id": "695129", - "name": "单选 选中", - "font_class": "danxuanxuanzhong1", - "unicode": "e6bd", - "unicode_decimal": 59069 - }, - { - "icon_id": "17338062", - "name": "收藏", - "font_class": "shoucang3", - "unicode": "e7c7", - "unicode_decimal": 59335 - }, - { - "icon_id": "7587940", - "name": "工程", - "font_class": "gongcheng", - "unicode": "e60f", - "unicode_decimal": 58895 - }, - { - "icon_id": "17338109", - "name": "删除", - "font_class": "shanchu21", - "unicode": "e7c8", - "unicode_decimal": 59336 - }, - { - "icon_id": "425651", - "name": "社区", - "font_class": "shequ", - "unicode": "e6bc", - "unicode_decimal": 59068 - }, - { - "icon_id": "17347836", - "name": "警示", - "font_class": "jingshi1", - "unicode": "e7c9", - "unicode_decimal": 59337 - }, - { - "icon_id": "11222372", - "name": "healthmode", - "font_class": "healthmode", - "unicode": "e60e", - "unicode_decimal": 58894 - }, - { - "icon_id": "17393121", - "name": "撤销分组", - "font_class": "chexiaofenzu", - "unicode": "e7ca", - "unicode_decimal": 59338 - }, - { - "icon_id": "11230822", - "name": "nenghaofenxi@1x", - "font_class": "nenghaofenxix", - "unicode": "e6be", - "unicode_decimal": 59070 - }, - { - "icon_id": "17393122", - "name": "撤销共享", - "font_class": "chexiaogongxiang", - "unicode": "e7cb", - "unicode_decimal": 59339 - }, - { - "icon_id": "4553727", - "name": "链接", - "font_class": "lianjie", - "unicode": "e7db", - "unicode_decimal": 59355 - }, - { - "icon_id": "17393123", - "name": "选中", - "font_class": "xuanzhong1", - "unicode": "e7cc", - "unicode_decimal": 59340 - }, - { - "icon_id": "11408531", - "name": "detection@1x", - "font_class": "detectionx", - "unicode": "e6c1", - "unicode_decimal": 59073 - }, - { - "icon_id": "17399289", - "name": "vnc实训界面-收起", - "font_class": "vncshixunjiemian-shouqi", - "unicode": "e7cd", - "unicode_decimal": 59341 - }, - { - "icon_id": "11409495", - "name": "community@1x", - "font_class": "communityx", - "unicode": "e6c2", - "unicode_decimal": 59074 - }, - { - "icon_id": "17399816", - "name": "vnc实训界面-展开", - "font_class": "vncshixunjiemian-zhankai", - "unicode": "e7cf", - "unicode_decimal": 59343 - }, - { - "icon_id": "11409771", - "name": "hosting@1x", - "font_class": "hostingx2", - "unicode": "e6c3", - "unicode_decimal": 59075 - }, - { - "icon_id": "17399931", - "name": "vnc实训界面-工具栏", - "font_class": "vncshixunjiemian-gongjulan", - "unicode": "e7d0", - "unicode_decimal": 59344 - }, - { - "icon_id": "11410432", - "name": "project@1x", - "font_class": "projectx", - "unicode": "e6c4", - "unicode_decimal": 59076 - }, - { - "icon_id": "17400088", - "name": "实验环境倒计时", - "font_class": "shiyanhuanjingdaojishi", - "unicode": "e7d1", - "unicode_decimal": 59345 - }, - { - "icon_id": "5255211", - "name": "复制", - "font_class": "fuzhi1", - "unicode": "e800", - "unicode_decimal": 59392 - }, - { - "icon_id": "17415080", - "name": "复制版本库地址", - "font_class": "fuzhibanbenkudizhi1", - "unicode": "e7d3", - "unicode_decimal": 59347 - }, - { - "icon_id": "8361866", - "name": "主页", - "font_class": "zhuye", - "unicode": "e6d3", - "unicode_decimal": 59091 - }, - { - "icon_id": "17415856", - "name": "全屏", - "font_class": "quanping", - "unicode": "e7d2", - "unicode_decimal": 59346 - }, - { - "icon_id": "10527626", - "name": "统计", - "font_class": "tongji", - "unicode": "e6bf", - "unicode_decimal": 59071 - }, - { - "icon_id": "17415865", - "name": "退出全屏", - "font_class": "tuichuquanping", - "unicode": "e7d4", - "unicode_decimal": 59348 - }, - { - "icon_id": "1214792", - "name": "关注", - "font_class": "weibiaoti105", - "unicode": "e6c0", - "unicode_decimal": 59072 - }, - { - "icon_id": "17416333", - "name": "重置实训", - "font_class": "zhongzhishixun", - "unicode": "e7d5", - "unicode_decimal": 59349 - }, - { - "icon_id": "1901672", - "name": "关注", - "font_class": "guanzhu", - "unicode": "e6c5", - "unicode_decimal": 59077 - }, - { - "icon_id": "17416337", - "name": "复制粘贴", - "font_class": "fuzhiniantie", - "unicode": "e7d6", - "unicode_decimal": 59350 - }, - { - "icon_id": "3315084", - "name": "博客园", - "font_class": "bokeyuan", - "unicode": "e6c6", - "unicode_decimal": 59078 - }, - { - "icon_id": "17416342", - "name": "共享桌面", - "font_class": "gongxiangzhuomian", - "unicode": "e7d7", - "unicode_decimal": 59351 - }, - { - "icon_id": "978358", - "name": "浏览", - "font_class": "liulan", - "unicode": "e6c7", - "unicode_decimal": 59079 - }, - { - "icon_id": "17435144", - "name": "关卡菜单", - "font_class": "guankacaidan", - "unicode": "e7ce", - "unicode_decimal": 59342 - }, - { - "icon_id": "7501072", - "name": "评论", - "font_class": "pinglun", - "unicode": "e6c8", - "unicode_decimal": 59080 - }, - { - "icon_id": "17468131", - "name": "未开摄像头", - "font_class": "weikaishexiangtou1", - "unicode": "e7d8", - "unicode_decimal": 59352 - }, - { - "icon_id": "11965901", - "name": "绑定手机号", - "font_class": "bangdingshoujihao", - "unicode": "e6ca", - "unicode_decimal": 59082 - }, - { - "icon_id": "17481990", - "name": "金币", - "font_class": "jinbi", - "unicode": "e7c5", - "unicode_decimal": 59333 - }, - { - "icon_id": "12028723", - "name": "标签", - "font_class": "biaoqian1", - "unicode": "e6ce", - "unicode_decimal": 59086 - }, - { - "icon_id": "17541348", - "name": "代码库", - "font_class": "daimaku", - "unicode": "e7d9", - "unicode_decimal": 59353 - }, - { - "icon_id": "12028724", - "name": "记录", - "font_class": "jilu", - "unicode": "e6cf", - "unicode_decimal": 59087 - }, - { - "icon_id": "17541349", - "name": "forc", - "font_class": "forc", - "unicode": "e7da", - "unicode_decimal": 59354 - }, - { - "icon_id": "12028725", - "name": "书", - "font_class": "shu", - "unicode": "e6d0", - "unicode_decimal": 59088 - }, - { - "icon_id": "17541350", - "name": "点赞", - "font_class": "dianzan3", - "unicode": "e7dd", - "unicode_decimal": 59357 - }, - { - "icon_id": "12028726", - "name": "推荐", - "font_class": "tuijian", - "unicode": "e6d1", - "unicode_decimal": 59089 - }, - { - "icon_id": "17541351", - "name": "里程碑", - "font_class": "lichengbei", - "unicode": "e7de", - "unicode_decimal": 59358 - }, - { - "icon_id": "12028727", - "name": "创建者", - "font_class": "chuangjianzhe", - "unicode": "e6d2", - "unicode_decimal": 59090 - }, - { - "icon_id": "17541352", - "name": "取消点赞", - "font_class": "quxiaodianzan", - "unicode": "e7df", - "unicode_decimal": 59359 - }, - { - "icon_id": "496400", - "name": "禁止", - "font_class": "jinzhi", - "unicode": "e6d4", - "unicode_decimal": 59092 - }, - { - "icon_id": "17541353", - "name": "fork2", - "font_class": "fork2", - "unicode": "e7e0", - "unicode_decimal": 59360 - }, - { - "icon_id": "12126824", - "name": "完成", - "font_class": "wancheng1", - "unicode": "e6cb", - "unicode_decimal": 59083 - }, - { - "icon_id": "17541354", - "name": "合并请求", - "font_class": "hebingqingqiu1", - "unicode": "e7e1", - "unicode_decimal": 59361 - }, - { - "icon_id": "8349119", - "name": "上箭头-填充", - "font_class": "shangjiantou-tianchong", - "unicode": "e733", - "unicode_decimal": 59187 - }, - { - "icon_id": "17541355", - "name": "任务", - "font_class": "renwu", - "unicode": "e7e2", - "unicode_decimal": 59362 - }, - { - "icon_id": "9974429", - "name": "省略号", - "font_class": "shenglvehao", - "unicode": "e708", - "unicode_decimal": 59144 - }, - { - "icon_id": "17541356", - "name": "通知", - "font_class": "tongzhi", - "unicode": "e7e3", - "unicode_decimal": 59363 - }, - { - "icon_id": "12300755", - "name": "企业账号", - "font_class": "qiyezhanghao", - "unicode": "e6cc", - "unicode_decimal": 59084 - }, - { - "icon_id": "17542253", - "name": "使用文档", - "font_class": "shiyongwendang", - "unicode": "e7e5", - "unicode_decimal": 59365 - }, - { - "icon_id": "12300756", - "name": "个人账号", - "font_class": "gerenzhanghao", - "unicode": "e6cd", - "unicode_decimal": 59085 - }, - { - "icon_id": "17542254", - "name": "参与成员", - "font_class": "canyuchengyuan", - "unicode": "e7e6", - "unicode_decimal": 59366 - }, - { - "icon_id": "12301512", - "name": "加载失败", - "font_class": "jiazaishibai1", - "unicode": "e6d6", - "unicode_decimal": 59094 - }, - { - "icon_id": "17542255", - "name": "项目简介", - "font_class": "xiangmujianjie", - "unicode": "e7e7", - "unicode_decimal": 59367 - }, - { - "icon_id": "12345165", - "name": "类型", - "font_class": "leixing", - "unicode": "e6d5", - "unicode_decimal": 59093 - }, - { - "icon_id": "17567215", - "name": "主页", - "font_class": "zhuye1", - "unicode": "e7e4", - "unicode_decimal": 59364 - }, - { - "icon_id": "12345541", - "name": "标签尖头", - "font_class": "biaoqianjiantou", - "unicode": "e6d7", - "unicode_decimal": 59095 - }, - { - "icon_id": "17574366", - "name": "填写第三方慕课", - "font_class": "tianxiedisanfangmuke", - "unicode": "e7e8", - "unicode_decimal": 59368 - }, - { - "icon_id": "12371179", - "name": "置顶", - "font_class": "zhiding", - "unicode": "e6d9", - "unicode_decimal": 59097 - }, - { - "icon_id": "17586904", - "name": "成果荣誉", - "font_class": "chengguorongyu", - "unicode": "e7e9", - "unicode_decimal": 59369 - }, - { - "icon_id": "3911796", - "name": "SDK问题", - "font_class": "wenti", - "unicode": "e7dc", - "unicode_decimal": 59356 - }, - { - "icon_id": "17692954", - "name": "图片", - "font_class": "tupian1", - "unicode": "e7ea", - "unicode_decimal": 59370 - }, - { - "icon_id": "12029022", - "name": "创建者", - "font_class": "chuangjianzhe1", - "unicode": "e6da", - "unicode_decimal": 59098 - }, - { - "icon_id": "17714233", - "name": "日历", - "font_class": "rili1", - "unicode": "e7eb", - "unicode_decimal": 59371 - }, - { - "icon_id": "12029023", - "name": "书", - "font_class": "shu1", - "unicode": "e6dc", - "unicode_decimal": 59100 - }, - { - "icon_id": "17714235", - "name": "返回", - "font_class": "fanhui1", - "unicode": "e7ec", - "unicode_decimal": 59372 - }, - { - "icon_id": "12029024", - "name": "标签", - "font_class": "biaoqian2", - "unicode": "e6dd", - "unicode_decimal": 59101 - }, - { - "icon_id": "17720589", - "name": "提示", - "font_class": "tishi3", - "unicode": "e7ed", - "unicode_decimal": 59373 - }, - { - "icon_id": "12029025", - "name": "记录", - "font_class": "jilu1", - "unicode": "e6de", - "unicode_decimal": 59102 - }, - { - "icon_id": "17747311", - "name": "作业查重1", - "font_class": "zuoyechazhong1", - "unicode": "e7ef", - "unicode_decimal": 59375 - }, - { - "icon_id": "12029026", - "name": "推荐", - "font_class": "tuijian1", - "unicode": "e6df", - "unicode_decimal": 59103 - }, - { - "icon_id": "17747312", - "name": "工程教育1", - "font_class": "gongchengjiaoyu1", - "unicode": "e7f0", - "unicode_decimal": 59376 - }, - { - "icon_id": "12031268", - "name": "警告", - "font_class": "jinggao1", - "unicode": "e6e0", - "unicode_decimal": 59104 - }, - { - "icon_id": "17747315", - "name": "翻转课堂1", - "font_class": "fanzhuanketang1", - "unicode": "e7f4", - "unicode_decimal": 59380 - }, - { - "icon_id": "12031648", - "name": "点赞", - "font_class": "dianzan2", - "unicode": "e6e1", - "unicode_decimal": 59105 - }, - { - "icon_id": "17747316", - "name": "实训课程1", - "font_class": "shixunkecheng1", - "unicode": "e7f5", - "unicode_decimal": 59381 - }, - { - "icon_id": "12031742", - "name": "评论", - "font_class": "pinglun1", - "unicode": "e6e2", - "unicode_decimal": 59106 - }, - { - "icon_id": "17756491", - "name": "群体标注", - "font_class": "quntibiaozhu", - "unicode": "e7ee", - "unicode_decimal": 59374 - }, - { - "icon_id": "12033031", - "name": "对勾", - "font_class": "duigou", - "unicode": "e6e3", - "unicode_decimal": 59107 - }, - { - "icon_id": "17756492", - "name": "标注引导", - "font_class": "biaozhuyindao", - "unicode": "e7f1", - "unicode_decimal": 59377 - }, - { - "icon_id": "736502", - "name": "礼物", - "font_class": "liwu", - "unicode": "e611", - "unicode_decimal": 58897 - }, - { - "icon_id": "12039315", - "name": "提示", - "font_class": "tishi2", - "unicode": "e6e4", - "unicode_decimal": 59108 - }, - { - "icon_id": "17756493", - "name": "反馈修正", - "font_class": "fankuixiuzheng", - "unicode": "e7f3", - "unicode_decimal": 59379 - }, - { - "icon_id": "1004630", - "name": "点赞2", - "font_class": "dianzaned", - "unicode": "e639", - "unicode_decimal": 58937 - }, - { - "icon_id": "12039523", - "name": "编辑_Hover", - "font_class": "bianji_Hover", - "unicode": "e6e5", - "unicode_decimal": 59109 - }, - { - "icon_id": "17756494", - "name": "态势感知", - "font_class": "taishiganzhi", - "unicode": "e7f6", - "unicode_decimal": 59382 - }, - { - "icon_id": "1071052", - "name": "点赞1", - "font_class": "dianzan11", - "unicode": "e66d", - "unicode_decimal": 58989 - }, - { - "icon_id": "12039524", - "name": "上移_Hover", - "font_class": "shangyi_Hover", - "unicode": "e6e6", - "unicode_decimal": 59110 - }, - { - "icon_id": "17756496", - "name": "多维评估", - "font_class": "duoweipinggu", - "unicode": "e7f7", - "unicode_decimal": 59383 - }, - { - "icon_id": "1221889", - "name": "礼物", - "font_class": "gift", - "unicode": "e63c", - "unicode_decimal": 58940 - }, - { - "icon_id": "12039525", - "name": "删除_默认", - "font_class": "shanchu_moren", - "unicode": "e6e7", - "unicode_decimal": 59111 - }, - { - "icon_id": "17756497", - "name": "代码托管", - "font_class": "daimatuoguan", - "unicode": "e7f8", - "unicode_decimal": 59384 - }, - { - "icon_id": "1240507", - "name": "消息", - "font_class": "xiaoxi", - "unicode": "e614", - "unicode_decimal": 58900 - }, - { - "icon_id": "12039526", - "name": "下移_Hover", - "font_class": "xiayi_Hover", - "unicode": "e6e8", - "unicode_decimal": 59112 - }, - { - "icon_id": "17756498", - "name": "交流社区", - "font_class": "jiaoliushequ", - "unicode": "e7fa", - "unicode_decimal": 59386 - } - ] -} diff --git a/css/iconfont.ttf b/css/iconfont.ttf deleted file mode 100644 index 5ea5e9206..000000000 Binary files a/css/iconfont.ttf and /dev/null differ diff --git a/css/iconfont.woff b/css/iconfont.woff deleted file mode 100644 index 6b8a4f2ee..000000000 Binary files a/css/iconfont.woff and /dev/null differ diff --git a/css/iconfont.woff2 b/css/iconfont.woff2 deleted file mode 100644 index ce5758a2e..000000000 Binary files a/css/iconfont.woff2 and /dev/null differ diff --git a/index.html b/index.html deleted file mode 100644 index 23401bf9b..000000000 --- a/index.html +++ /dev/null @@ -1 +0,0 @@ -
\ No newline at end of file diff --git a/js/editormd/editormd.min.js b/js/editormd/editormd.min.js deleted file mode 100755 index 89aaf1bc7..000000000 --- a/js/editormd/editormd.min.js +++ /dev/null @@ -1,4439 +0,0 @@ -/* - * Editor.md - * - * @file editormd.js - * @version v1.5.0 - * @description Open source online markdown editor. - * @license MIT License - * @author Pandao - * {@link https://github.com/pandao/editor.md} - * @updateTime 2015-06-09 - */ - -; (function (factory) { - "use strict"; - - // CommonJS/Node.js - if (typeof require === "function" && typeof exports === "object" && typeof module === "object") { - module.exports = factory; - } - else if (typeof define === "function") // AMD/CMD/Sea.js - { - if (define.amd) // for Require.js - { - /* Require.js define replace */ - } - else { - define(["../../../../editormd/examples/js/jquery.min"], factory); // for Sea.js - } - } - else { - window.editormd = factory(); - } - -}(function () { - - /* Require.js assignment replace */ - - "use strict"; - - var $ = (typeof (jQuery) !== "undefined") ? jQuery : Zepto; - - if (typeof ($) === "undefined") { - return; - } - - /** - * editormd - * - * @param {String} id 编辑器的ID - * @param {Object} options 配置选项 Key/Value - * @returns {Object} editormd 返回editormd对象 - */ - - var editormd = function (id, options) { - return new editormd.fn.init(id, options); - }; - - editormd.title = editormd.$name = "Editor.md"; - editormd.version = "1.5.0"; - editormd.homePage = "https://pandao.github.io/editor.md/"; - editormd.classPrefix = "editormd-"; - - editormd.toolbarModes = { - full: [ - "undo", "redo", "|", - "bold", "del", "italic", "quote", "ucwords", "uppercase", "lowercase", "|", - "h1", "h2", "h3", "h4", "h5", "h6", "|", - "list-ul", "list-ol", "hr", "|", - "link", "reference-link", "image", "code", "preformatted-text", "code-block", "table", "datetime", "emoji", "html-entities", "pagebreak", "|", - "goto-line", "watch", "preview", "fullscreen", "clear", "search", "|", - "help", "info" - ], - simple: [ - "undo", "redo", "|", - "bold", "del", "italic", "quote", "uppercase", "lowercase", "|", - "h1", "h2", "h3", "h4", "h5", "h6", "|", - "list-ul", "list-ol", "hr", "|", - "watch", "preview", "fullscreen", "|", - "help", "info" - ], - mini: [ - "undo", "redo", "|", - "watch", "preview", "|", - "help", "info" - ] - }; - - editormd.defaults = { - mode: "gfm", //gfm or markdown - name: "", // Form element name - value: "", // value for CodeMirror, if mode not gfm/markdown - theme: "", // Editor.md self themes, before v1.5.0 is CodeMirror theme, default empty - editorTheme: "default", // Editor area, this is CodeMirror theme at v1.5.0 - previewTheme: "", // Preview area theme, default empty - markdown: "", // Markdown source code - appendMarkdown: "", // if in init textarea value not empty, append markdown to textarea - width: "100%", - height: "100%", - path: "./lib/", // Dependents module file directory - pluginPath: "", // If this empty, default use settings.path + "../plugins/" - delay: 300, // Delay parse markdown to html, Uint : ms - autoLoadModules: true, // Automatic load dependent module files - watch: true, - placeholder: "Enjoy Markdown! coding now...", - gotoLine: true, - codeFold: false, - autoHeight: false, - autoFocus: true, - autoCloseTags: true, - searchReplace: true, - syncScrolling: true, // true | false | "single", default true - readOnly: false, - tabSize: 4, - indentUnit: 4, - lineNumbers: true, - lineWrapping: true, - autoCloseBrackets: true, - showTrailingSpace: true, - matchBrackets: true, - indentWithTabs: true, - styleSelectedText: true, - matchWordHighlight: true, // options: true, false, "onselected" - styleActiveLine: true, // Highlight the current line - dialogLockScreen: true, - dialogShowMask: true, - dialogDraggable: true, - dialogMaskBgColor: "#fff", - dialogMaskOpacity: 0.1, - fontSize: "13px", - saveHTMLToTextarea: false, - disabledKeyMaps: [], - - onload: function () { }, - onresize: function () { }, - onchange: function () { }, - onwatch: null, - onunwatch: null, - onpreviewing: function () { }, - onpreviewed: function () { }, - onfullscreen: function () { }, - onfullscreenExit: function () { }, - onscroll: function () { }, - onpreviewscroll: function () { }, - - imageUpload: false, - imageFormats: ["jpg", "jpeg", "gif", "png", "bmp", "webp"], - imageUploadURL: "", - crossDomainUpload: false, - uploadCallbackURL: "", - - toc: true, // Table of contents - tocm: false, // Using [TOCM], auto create ToC dropdown menu - tocTitle: "", // for ToC dropdown menu btn - tocDropdown: false, - tocContainer: "", - tocStartLevel: 1, // Said from H1 to create ToC - htmlDecode: "style,iframe|on*", // Open the HTML tag identification - pageBreak: true, // Enable parse page break [========] - atLink: true, // for @link - emailLink: true, // for email address auto link - taskList: false, // Enable Github Flavored Markdown task lists - emoji: false, // :emoji: , Support Github emoji, Twitter Emoji (Twemoji); - // Support FontAwesome icon emoji :fa-xxx: > Using fontAwesome icon web fonts; - // Support Editor.md logo icon emoji :editormd-logo: :editormd-logo-1x: > 1~8x; - tex: false, // TeX(LaTeX), based on KaTeX - flowChart: false, // flowChart.js only support IE9+ - sequenceDiagram: false, // sequenceDiagram.js only support IE9+ - previewCodeHighlight: true, - - toolbar: true, // show/hide toolbar - toolbarAutoFixed: true, // on window scroll auto fixed position - toolbarIcons: "full", - toolbarTitles: {}, - toolbarHandlers: { - ucwords: function () { - return editormd.toolbarHandlers.ucwords; - }, - lowercase: function () { - return editormd.toolbarHandlers.lowercase; - } - }, - toolbarCustomIcons: { // using html tag create toolbar icon, unused default tag. - lowercase: "a", - "ucwords": "Aa" - }, - toolbarIconsClass: { - undo: "fa-undo", - redo: "fa-repeat", - bold: "fa-bold", - del: "fa-strikethrough", - italic: "fa-italic", - quote: "fa-quote-left", - uppercase: "fa-font", - h1: editormd.classPrefix + "bold", - h2: editormd.classPrefix + "bold", - h3: editormd.classPrefix + "bold", - h4: editormd.classPrefix + "bold", - h5: editormd.classPrefix + "bold", - h6: editormd.classPrefix + "bold", - "list-ul": "fa-list-ul", - "list-ol": "fa-list-ol", - hr: "fa-minus", - link: "fa-link", - "reference-link": "fa-anchor", - image: "fa-picture-o", - code: "fa-code", - "preformatted-text": "fa-file-code-o", - "code-block": "fa-file-code-o", - table: "fa-table", - datetime: "fa-clock-o", - emoji: "fa-smile-o", - "html-entities": "fa-copyright", - pagebreak: "fa-newspaper-o", - "goto-line": "fa-terminal", // fa-crosshairs - watch: "fa-eye-slash", - unwatch: "fa-eye", - preview: "fa-desktop", - search: "fa-search", - fullscreen: "fa-arrows-alt", - clear: "fa-eraser", - help: "fa-question-circle", - info: "fa-info-circle" - }, - toolbarIconTexts: {}, - - lang: { - name: "zh-cn", - description: "开源在线Markdown编辑器
Open source online Markdown editor.", - tocTitle: "目录", - toolbar: { - undo: "撤销(Ctrl+Z)", - redo: "重做(Ctrl+Y)", - bold: "粗体", - del: "删除线", - italic: "斜体", - quote: "引用", - ucwords: "将每个单词首字母转成大写", - uppercase: "将所选转换成大写", - lowercase: "将所选转换成小写", - h1: "标题1", - h2: "标题2", - h3: "标题3", - h4: "标题4", - h5: "标题5", - h6: "标题6", - "list-ul": "无序列表", - "list-ol": "有序列表", - hr: "横线", - link: "链接", - "reference-link": "引用链接", - image: "添加图片", - code: "行内代码", - "preformatted-text": "预格式文本 / 代码块(缩进风格)", - "code-block": "代码块(多语言风格)", - table: "添加表格", - datetime: "日期时间", - emoji: "Emoji表情", - "html-entities": "HTML实体字符", - pagebreak: "插入分页符", - "goto-line": "跳转到行", - watch: "关闭实时预览", - unwatch: "开启实时预览", - preview: "全窗口预览HTML(按 Shift + ESC还原)", - fullscreen: "全屏(按ESC还原)", - clear: "清空", - search: "搜索", - help: "使用帮助", - info: "关于" + editormd.title - }, - buttons: { - enter: "确定", - cancel: "取消", - close: "关闭" - }, - dialog: { - link: { - title: "添加链接", - url: "链接地址", - urlTitle: "链接标题", - urlEmpty: "错误:请填写链接地址。" - }, - referenceLink: { - title: "添加引用链接", - name: "引用名称", - url: "链接地址", - urlId: "链接ID", - urlTitle: "链接标题", - nameEmpty: "错误:引用链接的名称不能为空。", - idEmpty: "错误:请填写引用链接的ID。", - urlEmpty: "错误:请填写引用链接的URL地址。" - }, - image: { - title: "添加图片", - url: "图片地址", - link: "图片链接", - alt: "图片描述", - uploadButton: "本地上传", - imageURLEmpty: "错误:图片地址不能为空。", - uploadFileEmpty: "错误:上传的图片不能为空。", - formatNotAllowed: "错误:只允许上传图片文件,允许上传的图片文件格式有:" - }, - preformattedText: { - title: "添加预格式文本或代码块", - emptyAlert: "错误:请填写预格式文本或代码的内容。" - }, - codeBlock: { - title: "添加代码块", - selectLabel: "代码语言:", - selectDefaultText: "请选择代码语言", - otherLanguage: "其他语言", - unselectedLanguageAlert: "错误:请选择代码所属的语言类型。", - codeEmptyAlert: "错误:请填写代码内容。" - }, - htmlEntities: { - title: "HTML 实体字符" - }, - help: { - title: "使用帮助" - } - } - } - }; - - editormd.classNames = { - tex: editormd.classPrefix + "tex" - }; - - editormd.dialogZindex = 99999; - - editormd.$katex = null; - editormd.$marked = null; - editormd.$CodeMirror = null; - editormd.$prettyPrint = null; - - var timer, flowchartTimer; - editormd.prototype = editormd.fn = { - state: { - watching: false, - loaded: false, - preview: false, - fullscreen: false - }, - - /** - * 构造函数/实例初始化 - * Constructor / instance initialization - * - * @param {String} id 编辑器的ID - * @param {Object} [options={}] 配置选项 Key/Value - * @returns {editormd} 返回editormd的实例对象 - */ - - init: function (id, options) { - - options = options || {}; - - if (typeof id === "object") { - options = id; - } - - var _this = this; - var classPrefix = this.classPrefix = editormd.classPrefix; - var defaultConfig = {} - $.each(editormd.defaults, function (k, v) { - defaultConfig[k] = v; - }) - var settings = this.settings = $.extend(true, {}, defaultConfig, options); - - id = (typeof id === "object") ? settings.id : id; - - var editor = this.editor = $("#" + id); - - this.id = id; - this.lang = settings.lang; - - var classNames = this.classNames = { - textarea: { - html: classPrefix + "html-textarea", - markdown: classPrefix + "markdown-textarea" - } - }; - - settings.pluginPath = (settings.pluginPath === "") ? settings.path + "../plugins/" : settings.pluginPath; - - this.state.watching = (settings.watch) ? true : false; - - if (!editor.hasClass("editormd")) { - editor.addClass("editormd"); - } - - editor.css({ - width: (typeof settings.width === "number") ? settings.width + "px" : settings.width, - height: (typeof settings.height === "number") ? settings.height + "px" : settings.height - }); - - if (settings.autoHeight) { - editor.css("height", "auto"); - } - - var markdownTextarea = this.markdownTextarea = editor.children("textarea"); - - if (markdownTextarea.length < 1) { - editor.append(""); - markdownTextarea = this.markdownTextarea = editor.children("textarea"); - } - - markdownTextarea.addClass(classNames.textarea.markdown).attr("placeholder", settings.placeholder); - - if (typeof markdownTextarea.attr("name") === "undefined" || markdownTextarea.attr("name") === "") { - markdownTextarea.attr("name", (settings.name !== "") ? settings.name : id + "-markdown-doc"); - } - - var appendElements = [ - (!settings.readOnly) ? "" : "", - ((settings.saveHTMLToTextarea) ? "" : ""), - "
", - "
", - "
" - ].join("\n"); - - editor.append(appendElements).addClass(classPrefix + "vertical"); - - if (settings.theme !== "") { - editor.addClass(classPrefix + "theme-" + settings.theme); - } - - this.mask = editor.children("." + classPrefix + "mask"); - this.containerMask = editor.children("." + classPrefix + "container-mask"); - - if (settings.markdown !== "") { - markdownTextarea.val(settings.markdown); - } - - if (settings.appendMarkdown !== "") { - markdownTextarea.val(markdownTextarea.val() + settings.appendMarkdown); - } - - this.htmlTextarea = editor.children("." + classNames.textarea.html); - this.preview = editor.children("." + classPrefix + "preview"); - this.previewContainer = this.preview.children("." + classPrefix + "preview-container"); - - if (settings.previewTheme !== "") { - this.preview.addClass(classPrefix + "preview-theme-" + settings.previewTheme); - } - - if (typeof define === "function" && define.amd) { - if (typeof katex !== "undefined") { - editormd.$katex = katex; - } - - if (settings.searchReplace && !settings.readOnly) { - editormd.loadCSS(settings.path + "codemirror/addon/dialog/dialog"); - editormd.loadCSS(settings.path + "codemirror/addon/search/matchesonscrollbar"); - } - } - - if ((typeof define === "function" && define.amd) || !settings.autoLoadModules) { - if (typeof CodeMirror !== "undefined") { - editormd.$CodeMirror = CodeMirror; - } - - if (typeof marked !== "undefined") { - editormd.$marked = marked; - } - - this.setCodeMirror().setToolbar().loadedDisplay(); - } - else { - this.loadQueues(); - } - - return this; - }, - - /** - * 所需组件加载队列 - * Required components loading queue - * - * @returns {editormd} 返回editormd的实例对象 - */ - - loadQueues: function () { - var _this = this; - var settings = this.settings; - var loadPath = settings.path; - - var loadFlowChartOrSequenceDiagram = function () { - - if (editormd.isIE8) { - _this.loadedDisplay(); - - return; - } - - if (settings.flowChart || settings.sequenceDiagram) { - editormd.loadScript(loadPath + "raphael.min", function () { - - editormd.loadScript(loadPath + "underscore.min", function () { - - if (!settings.flowChart && settings.sequenceDiagram) { - editormd.loadScript(loadPath + "sequence-diagram.min", function () { - _this.loadedDisplay(); - }); - } - else if (settings.flowChart && !settings.sequenceDiagram) { - editormd.loadScript(loadPath + "flowchart.min", function () { - editormd.loadScript(loadPath + "jquery.flowchart.min", function () { - _this.loadedDisplay(); - }); - }); - } - else if (settings.flowChart && settings.sequenceDiagram) { - editormd.loadScript(loadPath + "flowchart.min", function () { - editormd.loadScript(loadPath + "jquery.flowchart.min", function () { - editormd.loadScript(loadPath + "sequence-diagram.min", function () { - _this.loadedDisplay(); - }); - }); - }); - } - }); - - }); - } - else { - _this.loadedDisplay(); - } - }; - - // codemirror 已经加载了 - // editormd.loadCSS(loadPath + "codemirror/codemirror.min"); - - if (settings.searchReplace && !settings.readOnly) { - editormd.loadCSS(loadPath + "codemirror/addon/dialog/dialog"); - editormd.loadCSS(loadPath + "codemirror/addon/search/matchesonscrollbar"); - } - - if (settings.codeFold) { - editormd.loadCSS(loadPath + "codemirror/addon/fold/foldgutter"); - } - - // codemirror 已经加载了,codemirror会有插件,重复加载会使得之前加载的插件失效 - - // editormd.loadScript(loadPath + "codemirror/codemirror.min", function() { - editormd.$CodeMirror = CodeMirror; - - editormd.loadScript(loadPath + "codemirror/modes.min", function () { - - editormd.loadScript(loadPath + "codemirror/addons.min", function () { - - _this.setCodeMirror(); - - if (settings.mode !== "gfm" && settings.mode !== "markdown") { - _this.loadedDisplay(); - - return false; - } - - _this.setToolbar(); - - // 此处影响公式加载 - editormd.loadScript(loadPath + "marked.min", function () { - - editormd.$marked = marked; - - if (settings.previewCodeHighlight) { - editormd.loadScript(loadPath + "prettify.min", function () { - loadFlowChartOrSequenceDiagram(); - }); - } - else { - loadFlowChartOrSequenceDiagram(); - } - - }); - - }); - - }); - - // }); - - return this; - }, - - /** - * 设置 Editor.md 的整体主题,主要是工具栏 - * Setting Editor.md theme - * - * @returns {editormd} 返回editormd的实例对象 - */ - - setTheme: function (theme) { - var editor = this.editor; - var oldTheme = this.settings.theme; - var themePrefix = this.classPrefix + "theme-"; - - editor.removeClass(themePrefix + oldTheme).addClass(themePrefix + theme); - - this.settings.theme = theme; - - return this; - }, - - /** - * 设置 CodeMirror(编辑区)的主题 - * Setting CodeMirror (Editor area) theme - * - * @returns {editormd} 返回editormd的实例对象 - */ - - setEditorTheme: function (theme) { - var settings = this.settings; - settings.editorTheme = theme; - - if (theme !== "default") { - editormd.loadCSS(settings.path + "codemirror/theme/" + settings.editorTheme); - } - - this.cm.setOption("theme", theme); - - return this; - }, - - /** - * setEditorTheme() 的别名 - * setEditorTheme() alias - * - * @returns {editormd} 返回editormd的实例对象 - */ - - setCodeMirrorTheme: function (theme) { - this.setEditorTheme(theme); - - return this; - }, - - /** - * 设置 Editor.md 的主题 - * Setting Editor.md theme - * - * @returns {editormd} 返回editormd的实例对象 - */ - - setPreviewTheme: function (theme) { - var preview = this.preview; - var oldTheme = this.settings.previewTheme; - var themePrefix = this.classPrefix + "preview-theme-"; - - preview.removeClass(themePrefix + oldTheme).addClass(themePrefix + theme); - - this.settings.previewTheme = theme; - - return this; - }, - - /** - * 配置和初始化CodeMirror组件 - * CodeMirror initialization - * - * @returns {editormd} 返回editormd的实例对象 - */ - - setCodeMirror: function () { - var settings = this.settings; - var editor = this.editor; - - if (settings.editorTheme !== "default") { - editormd.loadCSS(settings.path + "codemirror/theme/" + settings.editorTheme); - } - - var codeMirrorConfig = { - mode: settings.mode, - theme: settings.editorTheme, - tabSize: settings.tabSize, - dragDrop: false, - autofocus: settings.autoFocus, - autoCloseTags: settings.autoCloseTags, - readOnly: (settings.readOnly) ? "nocursor" : false, - indentUnit: settings.indentUnit, - lineNumbers: settings.lineNumbers, - lineWrapping: settings.lineWrapping, - extraKeys: { - "Ctrl-Q": function (cm) { - cm.foldCode(cm.getCursor()); - } - }, - foldGutter: settings.codeFold, - gutters: ["CodeMirror-linenumbers", "CodeMirror-foldgutter"], - matchBrackets: settings.matchBrackets, - indentWithTabs: settings.indentWithTabs, - styleActiveLine: settings.styleActiveLine, - styleSelectedText: settings.styleSelectedText, - autoCloseBrackets: settings.autoCloseBrackets, - showTrailingSpace: settings.showTrailingSpace, - highlightSelectionMatches: ((!settings.matchWordHighlight) ? false : { showToken: (settings.matchWordHighlight === "onselected") ? false : /\w/ }) - }; - - this.codeEditor = this.cm = editormd.$CodeMirror.fromTextArea(this.markdownTextarea[0], codeMirrorConfig); - this.codeMirror = this.cmElement = editor.children(".CodeMirror"); - - if (settings.value !== "") { - this.cm.setValue(settings.value); - } - - this.codeMirror.css({ - fontSize: settings.fontSize, - width: (!settings.watch) ? "100%" : "50%" - }); - - if (settings.autoHeight) { - this.codeMirror.css("height", "auto"); - this.cm.setOption("viewportMargin", Infinity); - } - - if (!settings.lineNumbers) { - this.codeMirror.find(".CodeMirror-gutters").css("border-right", "none"); - } - - return this; - }, - - /** - * 获取CodeMirror的配置选项 - * Get CodeMirror setting options - * - * @returns {Mixed} return CodeMirror setting option value - */ - - getCodeMirrorOption: function (key) { - return this.cm.getOption(key); - }, - - /** - * 配置和重配置CodeMirror的选项 - * CodeMirror setting options / resettings - * - * @returns {editormd} 返回editormd的实例对象 - */ - - setCodeMirrorOption: function (key, value) { - - this.cm.setOption(key, value); - - return this; - }, - - /** - * 添加 CodeMirror 键盘快捷键 - * Add CodeMirror keyboard shortcuts key map - * - * @returns {editormd} 返回editormd的实例对象 - */ - - addKeyMap: function (map, bottom) { - this.cm.addKeyMap(map, bottom); - - return this; - }, - - /** - * 移除 CodeMirror 键盘快捷键 - * Remove CodeMirror keyboard shortcuts key map - * - * @returns {editormd} 返回editormd的实例对象 - */ - - removeKeyMap: function (map) { - this.cm.removeKeyMap(map); - - return this; - }, - - /** - * 跳转到指定的行 - * Goto CodeMirror line - * - * @param {String|Intiger} line line number or "first"|"last" - * @returns {editormd} 返回editormd的实例对象 - */ - - gotoLine: function (line) { - - var settings = this.settings; - - if (!settings.gotoLine) { - return this; - } - - var cm = this.cm; - var editor = this.editor; - var count = cm.lineCount(); - var preview = this.preview; - - if (typeof line === "string") { - if (line === "last") { - line = count; - } - - if (line === "first") { - line = 1; - } - } - - if (typeof line !== "number") { - alert("Error: The line number must be an integer."); - return this; - } - - line = parseInt(line) - 1; - - if (line > count) { - alert("Error: The line number range 1-" + count); - - return this; - } - - cm.setCursor({ line: line, ch: 0 }); - - var scrollInfo = cm.getScrollInfo(); - var clientHeight = scrollInfo.clientHeight; - var coords = cm.charCoords({ line: line, ch: 0 }, "local"); - - cm.scrollTo(null, (coords.top + coords.bottom - clientHeight) / 2); - - if (settings.watch) { - var cmScroll = this.codeMirror.find(".CodeMirror-scroll")[0]; - var height = $(cmScroll).height(); - var scrollTop = cmScroll.scrollTop; - var percent = (scrollTop / cmScroll.scrollHeight); - - if (scrollTop === 0) { - preview.scrollTop(0); - } - else if (scrollTop + height >= cmScroll.scrollHeight - 16) { - preview.scrollTop(preview[0].scrollHeight); - } - else { - preview.scrollTop(preview[0].scrollHeight * percent); - } - } - - cm.focus(); - - return this; - }, - - /** - * 扩展当前实例对象,可同时设置多个或者只设置一个 - * Extend editormd instance object, can mutil setting. - * - * @returns {editormd} this(editormd instance object.) - */ - - extend: function () { - if (typeof arguments[1] !== "undefined") { - if (typeof arguments[1] === "function") { - arguments[1] = $.proxy(arguments[1], this); - } - - this[arguments[0]] = arguments[1]; - } - - if (typeof arguments[0] === "object" && typeof arguments[0].length === "undefined") { - $.extend(true, this, arguments[0]); - } - - return this; - }, - - /** - * 设置或扩展当前实例对象,单个设置 - * Extend editormd instance object, one by one - * - * @param {String|Object} key option key - * @param {String|Object} value option value - * @returns {editormd} this(editormd instance object.) - */ - - set: function (key, value) { - - if (typeof value !== "undefined" && typeof value === "function") { - value = $.proxy(value, this); - } - - this[key] = value; - - return this; - }, - - /** - * 重新配置 - * Resetting editor options - * - * @param {String|Object} key option key - * @param {String|Object} value option value - * @returns {editormd} this(editormd instance object.) - */ - - config: function (key, value) { - var settings = this.settings; - - if (typeof key === "object") { - settings = $.extend(true, settings, key); - } - - if (typeof key === "string") { - settings[key] = value; - } - - this.settings = settings; - this.recreate(); - - return this; - }, - - /** - * 注册事件处理方法 - * Bind editor event handle - * - * @param {String} eventType event type - * @param {Function} callback 回调函数 - * @returns {editormd} this(editormd instance object.) - */ - - on: function (eventType, callback) { - var settings = this.settings; - - if (typeof settings["on" + eventType] !== "undefined") { - settings["on" + eventType] = $.proxy(callback, this); - } - - return this; - }, - - /** - * 解除事件处理方法 - * Unbind editor event handle - * - * @param {String} eventType event type - * @returns {editormd} this(editormd instance object.) - */ - - off: function (eventType) { - var settings = this.settings; - - if (typeof settings["on" + eventType] !== "undefined") { - settings["on" + eventType] = function () { }; - } - - return this; - }, - - /** - * 显示工具栏 - * Display toolbar - * - * @param {Function} [callback=function(){}] 回调函数 - * @returns {editormd} 返回editormd的实例对象 - */ - - showToolbar: function (callback) { - var settings = this.settings; - - if (settings.readOnly) { - return this; - } - - if (settings.toolbar && (this.toolbar.length < 1 || this.toolbar.find("." + this.classPrefix + "menu").html() === "")) { - this.setToolbar(); - } - - settings.toolbar = true; - - this.toolbar.show(); - this.resize(); - - $.proxy(callback || function () { }, this)(); - - return this; - }, - - /** - * 隐藏工具栏 - * Hide toolbar - * - * @param {Function} [callback=function(){}] 回调函数 - * @returns {editormd} this(editormd instance object.) - */ - - hideToolbar: function (callback) { - var settings = this.settings; - - settings.toolbar = false; - this.toolbar.hide(); - this.resize(); - - $.proxy(callback || function () { }, this)(); - - return this; - }, - - /** - * 页面滚动时工具栏的固定定位 - * Set toolbar in window scroll auto fixed position - * - * @returns {editormd} 返回editormd的实例对象 - */ - - setToolbarAutoFixed: function (fixed) { - - var state = this.state; - var editor = this.editor; - var toolbar = this.toolbar; - var settings = this.settings; - - if (typeof fixed !== "undefined") { - settings.toolbarAutoFixed = fixed; - } - - var autoFixedHandle = function () { - var $window = $(window); - var top = $window.scrollTop(); - - if (!settings.toolbarAutoFixed) { - return false; - } - - if (top - editor.offset().top > 10 && top < editor.height()) { - toolbar.css({ - position: "fixed", - width: editor.width() + "px", - left: ($window.width() - editor.width()) / 2 + "px" - }); - } - else { - toolbar.css({ - position: "absolute", - width: "100%", - left: 0 - }); - } - }; - - if (!state.fullscreen && !state.preview && settings.toolbar && settings.toolbarAutoFixed) { - $(window).bind("scroll", autoFixedHandle); - } - - return this; - }, - - /** - * 配置和初始化工具栏 - * Set toolbar and Initialization - * - * @returns {editormd} 返回editormd的实例对象 - */ - - setToolbar: function () { - var settings = this.settings; - - if (settings.readOnly) { - return this; - } - - var editor = this.editor; - var preview = this.preview; - var classPrefix = this.classPrefix; - - var toolbar = this.toolbar = editor.children("." + classPrefix + "toolbar"); - - if (settings.toolbar && toolbar.length < 1) { - var toolbarHTML = "
"; - - editor.append(toolbarHTML); - toolbar = this.toolbar = editor.children("." + classPrefix + "toolbar"); - } - - if (!settings.toolbar) { - toolbar.hide(); - - return this; - } - - toolbar.show(); - - var icons = (typeof settings.toolbarIcons === "function") ? settings.toolbarIcons(this) - : ((typeof settings.toolbarIcons === "string") ? editormd.toolbarModes[settings.toolbarIcons] : settings.toolbarIcons); - - var toolbarMenu = toolbar.find("." + this.classPrefix + "menu"), menu = ""; - var pullRight = false; - - for (var i = 0, len = icons.length; i < len; i++) { - var name = icons[i]; - - if (name === "||") { - pullRight = true; - } - else if (name === "|") { - menu += "
  • |
  • "; - } - else { - var isHeader = (/h(\d)/.test(name)); - var index = name; - - if (name === "watch" && !settings.watch) { - index = "unwatch"; - } - - var title = settings.lang.toolbar[index]; - var iconTexts = settings.toolbarIconTexts[index]; - var iconClass = settings.toolbarIconsClass[index]; - - title = (typeof title === "undefined") ? "" : title; - iconTexts = (typeof iconTexts === "undefined") ? "" : iconTexts; - iconClass = (typeof iconClass === "undefined") ? "" : iconClass; - - var menuItem = pullRight ? "
  • " : "
  • "; - - if (typeof settings.toolbarCustomIcons[name] !== "undefined" && typeof settings.toolbarCustomIcons[name] !== "function") { - menuItem += settings.toolbarCustomIcons[name]; - } - else { - menuItem += ""; - menuItem += "" + ((isHeader) ? name.toUpperCase() : ((iconClass === "") ? iconTexts : "")) + ""; - menuItem += ""; - } - - menuItem += "
  • "; - - menu = pullRight ? menuItem + menu : menu + menuItem; - } - } - - toolbarMenu.html(menu); - - toolbarMenu.find("[title=\"Lowercase\"]").attr("title", settings.lang.toolbar.lowercase); - toolbarMenu.find("[title=\"ucwords\"]").attr("title", settings.lang.toolbar.ucwords); - - this.setToolbarHandler(); - this.setToolbarAutoFixed(); - - return this; - }, - - /** - * 工具栏图标事件处理对象序列 - * Get toolbar icons event handlers - * - * @param {Object} cm CodeMirror的实例对象 - * @param {String} name 要获取的事件处理器名称 - * @returns {Object} 返回处理对象序列 - */ - - dialogLockScreen: function () { - $.proxy(editormd.dialogLockScreen, this)(); - - return this; - }, - - dialogShowMask: function (dialog) { - $.proxy(editormd.dialogShowMask, this)(dialog); - - return this; - }, - - getToolbarHandles: function (name) { - var toolbarHandlers = this.toolbarHandlers = editormd.toolbarHandlers; - - return (name && typeof toolbarIconHandlers[name] !== "undefined") ? toolbarHandlers[name] : toolbarHandlers; - }, - - /** - * 工具栏图标事件处理器 - * Bind toolbar icons event handle - * - * @returns {editormd} 返回editormd的实例对象 - */ - - setToolbarHandler: function () { - var _this = this; - var settings = this.settings; - - if (!settings.toolbar || settings.readOnly) { - return this; - } - - var toolbar = this.toolbar; - var cm = this.cm; - var classPrefix = this.classPrefix; - var toolbarIcons = this.toolbarIcons = toolbar.find("." + classPrefix + "menu > li > a"); - var toolbarIconHandlers = this.getToolbarHandles(); - - toolbarIcons.bind(editormd.mouseOrTouch("click", "touchend"), function (event) { - - var icon = $(this).children(".fa"); - var name = icon.attr("name"); - var cursor = cm.getCursor(); - var selection = cm.getSelection(); - - if (name === "") { - return; - } - - _this.activeIcon = icon; - - if (typeof toolbarIconHandlers[name] !== "undefined") { - $.proxy(toolbarIconHandlers[name], _this)(cm); - } - else { - if (typeof settings.toolbarHandlers[name] !== "undefined") { - $.proxy(settings.toolbarHandlers[name], _this)(cm, icon, cursor, selection); - } - } - - if (name !== "link" && name !== "reference-link" && name !== "image" && name !== "code-block" && - name !== "preformatted-text" && name !== "watch" && name !== "preview" && name !== "search" && name !== "fullscreen" && name !== "info") { - cm.focus(); - } - - return false; - - }); - - return this; - }, - - /** - * 动态创建对话框 - * Creating custom dialogs - * - * @param {Object} options 配置项键值对 Key/Value - * @returns {dialog} 返回创建的dialog的jQuery实例对象 - */ - - createDialog: function (options) { - return $.proxy(editormd.createDialog, this)(options); - }, - - /** - * 创建关于Editor.md的对话框 - * Create about Editor.md dialog - * - * @returns {editormd} 返回editormd的实例对象 - */ - - createInfoDialog: function () { - var _this = this; - var editor = this.editor; - var classPrefix = this.classPrefix; - - var infoDialogHTML = [ - "
    ", - "
    ", - "

    " + editormd.title + "v" + editormd.version + "

    ", - "

    " + this.lang.description + "

    ", - "

    " + editormd.homePage + "

    ", - "

    Copyright © 2015 Pandao, The MIT License.

    ", - "
    ", - "", - "
    " - ].join("\n"); - - editor.append(infoDialogHTML); - - var infoDialog = this.infoDialog = editor.children("." + classPrefix + "dialog-info"); - - infoDialog.find("." + classPrefix + "dialog-close").bind(editormd.mouseOrTouch("click", "touchend"), function () { - _this.hideInfoDialog(); - }); - - infoDialog.css("border", (editormd.isIE8) ? "1px solid #ddd" : "").css("z-index", editormd.dialogZindex).show(); - - this.infoDialogPosition(); - - return this; - }, - - /** - * 关于Editor.md对话居中定位 - * Editor.md dialog position handle - * - * @returns {editormd} 返回editormd的实例对象 - */ - - infoDialogPosition: function () { - var infoDialog = this.infoDialog; - - var _infoDialogPosition = function () { - infoDialog.css({ - top: ($(window).height() - infoDialog.height()) / 2 + "px", - left: ($(window).width() - infoDialog.width()) / 2 + "px" - }); - }; - - _infoDialogPosition(); - - $(window).resize(_infoDialogPosition); - - return this; - }, - - /** - * 显示关于Editor.md - * Display about Editor.md dialog - * - * @returns {editormd} 返回editormd的实例对象 - */ - - showInfoDialog: function () { - - $("html,body").css("overflow-x", "hidden"); - - var _this = this; - var editor = this.editor; - var settings = this.settings; - var infoDialog = this.infoDialog = editor.children("." + this.classPrefix + "dialog-info"); - - if (infoDialog.length < 1) { - this.createInfoDialog(); - } - - this.lockScreen(true); - - this.mask.css({ - opacity: settings.dialogMaskOpacity, - backgroundColor: settings.dialogMaskBgColor - }).show(); - - infoDialog.css("z-index", editormd.dialogZindex).show(); - - this.infoDialogPosition(); - - return this; - }, - - /** - * 隐藏关于Editor.md - * Hide about Editor.md dialog - * - * @returns {editormd} 返回editormd的实例对象 - */ - - hideInfoDialog: function () { - $("html,body").css("overflow-x", ""); - this.infoDialog.hide(); - this.mask.hide(); - this.lockScreen(false); - - return this; - }, - - /** - * 锁屏 - * lock screen - * - * @param {Boolean} lock Boolean 布尔值,是否锁屏 - * @returns {editormd} 返回editormd的实例对象 - */ - - lockScreen: function (lock) { - editormd.lockScreen(lock); - this.resize(); - - return this; - }, - - /** - * 编辑器界面重建,用于动态语言包或模块加载等 - * Recreate editor - * - * @returns {editormd} 返回editormd的实例对象 - */ - - recreate: function () { - var _this = this; - var editor = this.editor; - var settings = this.settings; - - this.codeMirror.remove(); - - this.setCodeMirror(); - - if (!settings.readOnly) { - if (editor.find(".editormd-dialog").length > 0) { - editor.find(".editormd-dialog").remove(); - } - - if (settings.toolbar) { - this.getToolbarHandles(); - this.setToolbar(); - } - } - - this.loadedDisplay(true); - - return this; - }, - - /** - * 高亮预览HTML的pre代码部分 - * highlight of preview codes - * - * @returns {editormd} 返回editormd的实例对象 - */ - - previewCodeHighlight: function () { - var settings = this.settings; - var previewContainer = this.previewContainer; - - if (settings.previewCodeHighlight) { - previewContainer.find("pre").addClass("prettyprint linenums"); - - if (typeof prettyPrint !== "undefined") { - prettyPrint(); - } - } - - return this; - }, - - /** - * 解析TeX(KaTeX)科学公式 - * TeX(KaTeX) Renderer - * - * @returns {editormd} 返回editormd的实例对象 - */ - - katexRender: function () { - - if (timer === null) { - return this; - } - this.previewContainer.find("." + editormd.classNames.tex).each(function () { - var tex = $(this); - editormd.$katex.render(tex.text(), tex[0]); - - tex.find(".katex").css("font-size", "1.6em"); - }); - - return this; - }, - - /** - * 解析和渲染流程图及时序图 - * FlowChart and SequenceDiagram Renderer - * - * @returns {editormd} 返回editormd的实例对象 - */ - - flowChartAndSequenceDiagramRender: function () { - var $this = this; - var settings = this.settings; - var previewContainer = this.previewContainer; - - if (editormd.isIE8) { - return this; - } - - if (settings.flowChart) { - if (flowchartTimer === null) { - return this; - } - - previewContainer.find(".flowchart").flowChart(); - } - - if (settings.sequenceDiagram) { - previewContainer.find(".sequence-diagram").sequenceDiagram({ theme: "simple" }); - } - - var preview = $this.preview; - var codeMirror = $this.codeMirror; - var codeView = codeMirror.find(".CodeMirror-scroll"); - - var height = codeView.height(); - var scrollTop = codeView.scrollTop(); - var percent = (scrollTop / codeView[0].scrollHeight); - var tocHeight = 0; - - preview.find(".markdown-toc-list").each(function () { - tocHeight += $(this).height(); - }); - - var tocMenuHeight = preview.find(".editormd-toc-menu").height(); - tocMenuHeight = (!tocMenuHeight) ? 0 : tocMenuHeight; - - if (scrollTop === 0) { - preview.scrollTop(0); - } - else if (scrollTop + height >= codeView[0].scrollHeight - 16) { - preview.scrollTop(preview[0].scrollHeight); - } - else { - preview.scrollTop((preview[0].scrollHeight + tocHeight + tocMenuHeight) * percent); - } - - return this; - }, - - /** - * 注册键盘快捷键处理 - * Register CodeMirror keyMaps (keyboard shortcuts). - * - * @param {Object} keyMap KeyMap key/value {"(Ctrl/Shift/Alt)-Key" : function(){}} - * @returns {editormd} return this - */ - - registerKeyMaps: function (keyMap) { - - var _this = this; - var cm = this.cm; - var settings = this.settings; - var toolbarHandlers = editormd.toolbarHandlers; - var disabledKeyMaps = settings.disabledKeyMaps; - - keyMap = keyMap || null; - - if (keyMap) { - for (var i in keyMap) { - if ($.inArray(i, disabledKeyMaps) < 0) { - var map = {}; - map[i] = keyMap[i]; - - cm.addKeyMap(keyMap); - } - } - } - else { - for (var k in editormd.keyMaps) { - var _keyMap = editormd.keyMaps[k]; - var handle = (typeof _keyMap === "string") ? $.proxy(toolbarHandlers[_keyMap], _this) : $.proxy(_keyMap, _this); - - if ($.inArray(k, ["F9", "F10", "F11"]) < 0 && $.inArray(k, disabledKeyMaps) < 0) { - var _map = {}; - _map[k] = handle; - - cm.addKeyMap(_map); - } - } - - $(window).keydown(function (event) { - - var keymaps = { - "120": "F9", - "121": "F10", - "122": "F11" - }; - - if ($.inArray(keymaps[event.keyCode], disabledKeyMaps) < 0) { - switch (event.keyCode) { - case 120: - $.proxy(toolbarHandlers["watch"], _this)(); - return false; - break; - - case 121: - $.proxy(toolbarHandlers["preview"], _this)(); - return false; - break; - - case 122: - $.proxy(toolbarHandlers["fullscreen"], _this)(); - return false; - break; - - default: - break; - } - } - }); - } - - return this; - }, - - /** - * 绑定同步滚动 - * - * @returns {editormd} return this - */ - - bindScrollEvent: function () { - - var _this = this; - var preview = this.preview; - var settings = this.settings; - var codeMirror = this.codeMirror; - var mouseOrTouch = editormd.mouseOrTouch; - - if (!settings.syncScrolling) { - return this; - } - - var cmBindScroll = function () { - codeMirror.find(".CodeMirror-scroll").bind(mouseOrTouch("scroll", "touchmove"), function (event) { - var height = $(this).height(); - var scrollTop = $(this).scrollTop(); - var percent = (scrollTop / $(this)[0].scrollHeight); - - var tocHeight = 0; - - preview.find(".markdown-toc-list").each(function () { - tocHeight += $(this).height(); - }); - - var tocMenuHeight = preview.find(".editormd-toc-menu").height(); - tocMenuHeight = (!tocMenuHeight) ? 0 : tocMenuHeight; - - if (scrollTop === 0) { - preview.scrollTop(0); - } - else if (scrollTop + height >= $(this)[0].scrollHeight - 16) { - preview.scrollTop(preview[0].scrollHeight); - } - else { - preview.scrollTop((preview[0].scrollHeight + tocHeight + tocMenuHeight) * percent); - } - - $.proxy(settings.onscroll, _this)(event); - }); - }; - - var cmUnbindScroll = function () { - codeMirror.find(".CodeMirror-scroll").unbind(mouseOrTouch("scroll", "touchmove")); - }; - - var previewBindScroll = function () { - - preview.bind(mouseOrTouch("scroll", "touchmove"), function (event) { - var height = $(this).height(); - var scrollTop = $(this).scrollTop(); - var percent = (scrollTop / $(this)[0].scrollHeight); - var codeView = codeMirror.find(".CodeMirror-scroll"); - - if (scrollTop === 0) { - codeView.scrollTop(0); - } - else if (scrollTop + height >= $(this)[0].scrollHeight) { - codeView.scrollTop(codeView[0].scrollHeight); - } - else { - codeView.scrollTop(codeView[0].scrollHeight * percent); - } - - $.proxy(settings.onpreviewscroll, _this)(event); - }); - - }; - - var previewUnbindScroll = function () { - preview.unbind(mouseOrTouch("scroll", "touchmove")); - }; - - codeMirror.bind({ - mouseover: cmBindScroll, - mouseout: cmUnbindScroll, - touchstart: cmBindScroll, - touchend: cmUnbindScroll - }); - - if (settings.syncScrolling === "single") { - return this; - } - - preview.bind({ - mouseover: previewBindScroll, - mouseout: previewUnbindScroll, - touchstart: previewBindScroll, - touchend: previewUnbindScroll - }); - - return this; - }, - - bindChangeEvent: function () { - - var _this = this; - var cm = this.cm; - var settings = this.settings; - - if (!settings.syncScrolling) { - return this; - } - - cm.on("change", function (_cm, changeObj) { - - if (settings.watch) { - _this.previewContainer.css("padding", settings.autoHeight ? "20px 20px 50px 40px" : "20px"); - } - - timer = setTimeout(function () { - clearTimeout(timer); - _this.save(); - timer = null; - }, settings.delay); - }); - - return this; - }, - - /** - * 加载队列完成之后的显示处理 - * Display handle of the module queues loaded after. - * - * @param {Boolean} recreate 是否为重建编辑器 - * @returns {editormd} 返回editormd的实例对象 - */ - - loadedDisplay: function (recreate) { - - recreate = recreate || false; - - var _this = this; - var editor = this.editor; - var preview = this.preview; - var settings = this.settings; - - this.containerMask.hide(); - - this.save(); - - if (settings.watch) { - preview.show(); - } - - editor.data("oldWidth", editor.width()).data("oldHeight", editor.height()); // 为了兼容Zepto - - this.resize(); - this.registerKeyMaps(); - - $(window).resize(function () { - _this.resize(); - }); - - this.bindScrollEvent().bindChangeEvent(); - - if (!recreate) { - // TODO url完善 - settings.imageUploadURL && initEditormdPasteUpload(this, settings.imageUploadURL) - $.proxy(settings.onload, this)(); - } - - this.state.loaded = true; - - return this; - }, - - /** - * 设置编辑器的宽度 - * Set editor width - * - * @param {Number|String} width 编辑器宽度值 - * @returns {editormd} 返回editormd的实例对象 - */ - - width: function (width) { - - this.editor.css("width", (typeof width === "number") ? width + "px" : width); - this.resize(); - - return this; - }, - - /** - * 设置编辑器的高度 - * Set editor height - * - * @param {Number|String} height 编辑器高度值 - * @returns {editormd} 返回editormd的实例对象 - */ - - height: function (height) { - - this.editor.css("height", (typeof height === "number") ? height + "px" : height); - this.resize(); - - return this; - }, - - /** - * 调整编辑器的尺寸和布局 - * Resize editor layout - * - * @param {Number|String} [width=null] 编辑器宽度值 - * @param {Number|String} [height=null] 编辑器高度值 - * @returns {editormd} 返回editormd的实例对象 - */ - - resize: function (width, height) { - - width = width || null; - height = height || null; - - var state = this.state; - var editor = this.editor; - var preview = this.preview; - var toolbar = this.toolbar; - var settings = this.settings; - var codeMirror = this.codeMirror; - - if (width) { - editor.css("width", (typeof width === "number") ? width + "px" : width); - } - - if (settings.autoHeight && !state.fullscreen && !state.preview) { - editor.css("height", "auto"); - codeMirror.css("height", "auto"); - } - else { - if (height) { - editor.css("height", (typeof height === "number") ? height + "px" : height); - } - - if (state.fullscreen) { - editor.height($(window).height()); - } - - if (settings.toolbar && !settings.readOnly) { - codeMirror.css("margin-top", toolbar.height() + 1).height(editor.height() - toolbar.height()); - } - else { - codeMirror.css("margin-top", 0).height(editor.height()); - } - } - - if (settings.watch) { - codeMirror.width(editor.width() / 2); - preview.width((!state.preview) ? editor.width() / 2 : editor.width()); - - this.previewContainer.css("padding", settings.autoHeight ? "20px 20px 50px 40px" : "20px"); - - if (settings.toolbar && !settings.readOnly) { - preview.css("top", toolbar.height() + 1); - } - else { - preview.css("top", 0); - } - - if (settings.autoHeight && !state.fullscreen && !state.preview) { - preview.height(""); - } - else { - var previewHeight = (settings.toolbar && !settings.readOnly) ? editor.height() - toolbar.height() : editor.height(); - - preview.height(previewHeight); - } - } - else { - codeMirror.width(editor.width()); - preview.hide(); - } - - if (state.loaded) { - $.proxy(settings.onresize, this)(); - } - - return this; - }, - - /** - * 解析和保存Markdown代码 - * Parse & Saving Markdown source code - * - * @returns {editormd} 返回editormd的实例对象 - */ - - save: function () { - - if (timer === null) { - return this; - } - - var _this = this; - var state = this.state; - var settings = this.settings; - var cm = this.cm; - var cmValue = cm.getValue(); - var previewContainer = this.previewContainer; - - if (settings.mode !== "gfm" && settings.mode !== "markdown") { - this.markdownTextarea.val(cmValue); - - return this; - } - - var marked = editormd.$marked; - var markdownToC = this.markdownToC = []; - var rendererOptions = this.markedRendererOptions = { - toc: settings.toc, - tocm: settings.tocm, - tocStartLevel: settings.tocStartLevel, - pageBreak: settings.pageBreak, - taskList: settings.taskList, - emoji: settings.emoji, - tex: settings.tex, - atLink: settings.atLink, // for @link - emailLink: settings.emailLink, // for mail address auto link - flowChart: settings.flowChart, - sequenceDiagram: settings.sequenceDiagram, - previewCodeHighlight: settings.previewCodeHighlight, - }; - - var markedOptions = this.markedOptions = { - renderer: editormd.markedRenderer(markdownToC, rendererOptions), - gfm: true, - tables: true, - breaks: true, - pedantic: false, - sanitize: (settings.htmlDecode) ? false : true, // 关闭忽略HTML标签,即开启识别HTML标签,默认为false - smartLists: true, - smartypants: true - }; - - marked.setOptions(markedOptions); - - var newMarkdownDoc = editormd.$marked(cmValue, markedOptions); - - //console.info("cmValue", cmValue, newMarkdownDoc); - - newMarkdownDoc = editormd.filterHTMLTags(newMarkdownDoc, settings.htmlDecode); - - //console.error("cmValue", cmValue, newMarkdownDoc); - - this.markdownTextarea.text(cmValue); - - cm.save(); - - if (settings.saveHTMLToTextarea) { - this.htmlTextarea.text(newMarkdownDoc); - } - - if (settings.watch || (!settings.watch && state.preview)) { - previewContainer.html(newMarkdownDoc); - - this.previewCodeHighlight(); - - if (settings.toc) { - var tocContainer = (settings.tocContainer === "") ? previewContainer : $(settings.tocContainer); - var tocMenu = tocContainer.find("." + this.classPrefix + "toc-menu"); - - tocContainer.attr("previewContainer", (settings.tocContainer === "") ? "true" : "false"); - - if (settings.tocContainer !== "" && tocMenu.length > 0) { - tocMenu.remove(); - } - - editormd.markdownToCRenderer(markdownToC, tocContainer, settings.tocDropdown, settings.tocStartLevel); - - if (settings.tocDropdown || tocContainer.find("." + this.classPrefix + "toc-menu").length > 0) { - editormd.tocDropdownMenu(tocContainer, (settings.tocTitle !== "") ? settings.tocTitle : this.lang.tocTitle); - } - - if (settings.tocContainer !== "") { - previewContainer.find(".markdown-toc").css("border", "none"); - } - } - - if (settings.tex) { - if (!editormd.kaTeXLoaded && settings.autoLoadModules) { - editormd.loadKaTeX(function () { - editormd.$katex = katex; - editormd.kaTeXLoaded = true; - _this.katexRender(); - }); - } - else { - editormd.$katex = katex; - this.katexRender(); - } - } - - if (settings.flowChart || settings.sequenceDiagram) { - flowchartTimer = setTimeout(function () { - clearTimeout(flowchartTimer); - _this.flowChartAndSequenceDiagramRender(); - flowchartTimer = null; - }, 10); - } - - if (state.loaded) { - $.proxy(settings.onchange, this)(); - } - } - - return this; - }, - - /** - * 聚焦光标位置 - * Focusing the cursor position - * - * @returns {editormd} 返回editormd的实例对象 - */ - - focus: function () { - this.cm.focus(); - - return this; - }, - - /** - * 设置光标的位置 - * Set cursor position - * - * @param {Object} cursor 要设置的光标位置键值对象,例:{line:1, ch:0} - * @returns {editormd} 返回editormd的实例对象 - */ - - setCursor: function (cursor) { - this.cm.setCursor(cursor); - - return this; - }, - - /** - * 获取当前光标的位置 - * Get the current position of the cursor - * - * @returns {Cursor} 返回一个光标Cursor对象 - */ - - getCursor: function () { - return this.cm.getCursor(); - }, - - /** - * 设置光标选中的范围 - * Set cursor selected ranges - * - * @param {Object} from 开始位置的光标键值对象,例:{line:1, ch:0} - * @param {Object} to 结束位置的光标键值对象,例:{line:1, ch:0} - * @returns {editormd} 返回editormd的实例对象 - */ - - setSelection: function (from, to) { - - this.cm.setSelection(from, to); - - return this; - }, - - /** - * 获取光标选中的文本 - * Get the texts from cursor selected - * - * @returns {String} 返回选中文本的字符串形式 - */ - - getSelection: function () { - return this.cm.getSelection(); - }, - - /** - * 设置光标选中的文本范围 - * Set the cursor selection ranges - * - * @param {Array} ranges cursor selection ranges array - * @returns {Array} return this - */ - - setSelections: function (ranges) { - this.cm.setSelections(ranges); - - return this; - }, - - /** - * 获取光标选中的文本范围 - * Get the cursor selection ranges - * - * @returns {Array} return selection ranges array - */ - - getSelections: function () { - return this.cm.getSelections(); - }, - - /** - * 替换当前光标选中的文本或在当前光标处插入新字符 - * Replace the text at the current cursor selected or insert a new character at the current cursor position - * - * @param {String} value 要插入的字符值 - * @returns {editormd} 返回editormd的实例对象 - */ - - replaceSelection: function (value) { - this.cm.replaceSelection(value); - - return this; - }, - - /** - * 在当前光标处插入新字符 - * Insert a new character at the current cursor position - * - * 同replaceSelection()方法 - * With the replaceSelection() method - * - * @param {String} value 要插入的字符值 - * @returns {editormd} 返回editormd的实例对象 - */ - - insertValue: function (value) { - this.replaceSelection(value); - - return this; - }, - - /** - * 追加markdown - * append Markdown to editor - * - * @param {String} md 要追加的markdown源文档 - * @returns {editormd} 返回editormd的实例对象 - */ - - appendMarkdown: function (md) { - var settings = this.settings; - var cm = this.cm; - - cm.setValue(cm.getValue() + md); - - return this; - }, - - /** - * 设置和传入编辑器的markdown源文档 - * Set Markdown source document - * - * @param {String} md 要传入的markdown源文档 - * @returns {editormd} 返回editormd的实例对象 - */ - - setMarkdown: function (md) { - this.cm.setValue(md || this.settings.markdown); - - return this; - }, - - /** - * 获取编辑器的markdown源文档 - * Set Editor.md markdown/CodeMirror value - * - * @returns {editormd} 返回editormd的实例对象 - */ - - getMarkdown: function () { - return this.cm.getValue(); - }, - - /** - * 获取编辑器的源文档 - * Get CodeMirror value - * - * @returns {editormd} 返回editormd的实例对象 - */ - - getValue: function () { - return this.cm.getValue(); - }, - - /** - * 设置编辑器的源文档 - * Set CodeMirror value - * - * @param {String} value set code/value/string/text - * @returns {editormd} 返回editormd的实例对象 - */ - - setValue: function (value) { - this.cm.setValue(value); - - return this; - }, - - /** - * 清空编辑器 - * Empty CodeMirror editor container - * - * @returns {editormd} 返回editormd的实例对象 - */ - - clear: function () { - this.cm.setValue(""); - - return this; - }, - - /** - * 获取解析后存放在Textarea的HTML源码 - * Get parsed html code from Textarea - * - * @returns {String} 返回HTML源码 - */ - - getHTML: function () { - if (!this.settings.saveHTMLToTextarea) { - alert("Error: settings.saveHTMLToTextarea == false"); - - return false; - } - - return this.htmlTextarea.val(); - }, - - /** - * getHTML()的别名 - * getHTML (alias) - * - * @returns {String} Return html code 返回HTML源码 - */ - - getTextareaSavedHTML: function () { - return this.getHTML(); - }, - - /** - * 获取预览窗口的HTML源码 - * Get html from preview container - * - * @returns {editormd} 返回editormd的实例对象 - */ - - getPreviewedHTML: function () { - if (!this.settings.watch) { - alert("Error: settings.watch == false"); - - return false; - } - - return this.previewContainer.html(); - }, - - /** - * 开启实时预览 - * Enable real-time watching - * - * @returns {editormd} 返回editormd的实例对象 - */ - - watch: function (callback) { - var settings = this.settings; - - if ($.inArray(settings.mode, ["gfm", "markdown"]) < 0) { - return this; - } - - this.state.watching = settings.watch = true; - this.preview.show(); - - if (this.toolbar) { - var watchIcon = settings.toolbarIconsClass.watch; - var unWatchIcon = settings.toolbarIconsClass.unwatch; - - var icon = this.toolbar.find(".fa[name=watch]"); - icon.parent().attr("title", settings.lang.toolbar.watch); - icon.removeClass(unWatchIcon).addClass(watchIcon); - } - - this.codeMirror.css("border-right", "1px solid #ddd").width(this.editor.width() / 2); - - timer = 0; - - this.save().resize(); - - if (!settings.onwatch) { - settings.onwatch = callback || function () { }; - } - - $.proxy(settings.onwatch, this)(); - - return this; - }, - - /** - * 关闭实时预览 - * Disable real-time watching - * - * @returns {editormd} 返回editormd的实例对象 - */ - - unwatch: function (callback) { - var settings = this.settings; - this.state.watching = settings.watch = false; - this.preview.hide(); - - if (this.toolbar) { - var watchIcon = settings.toolbarIconsClass.watch; - var unWatchIcon = settings.toolbarIconsClass.unwatch; - - var icon = this.toolbar.find(".fa[name=watch]"); - icon.parent().attr("title", settings.lang.toolbar.unwatch); - icon.removeClass(watchIcon).addClass(unWatchIcon); - } - - this.codeMirror.css("border-right", "none").width(this.editor.width()); - - this.resize(); - - if (!settings.onunwatch) { - settings.onunwatch = callback || function () { }; - } - - $.proxy(settings.onunwatch, this)(); - - return this; - }, - - /** - * 显示编辑器 - * Show editor - * - * @param {Function} [callback=function()] 回调函数 - * @returns {editormd} 返回editormd的实例对象 - */ - - show: function (callback) { - callback = callback || function () { }; - - var _this = this; - this.editor.show(0, function () { - $.proxy(callback, _this)(); - }); - - return this; - }, - - /** - * 隐藏编辑器 - * Hide editor - * - * @param {Function} [callback=function()] 回调函数 - * @returns {editormd} 返回editormd的实例对象 - */ - - hide: function (callback) { - callback = callback || function () { }; - - var _this = this; - this.editor.hide(0, function () { - $.proxy(callback, _this)(); - }); - - return this; - }, - - /** - * 隐藏编辑器部分,只预览HTML - * Enter preview html state - * - * @returns {editormd} 返回editormd的实例对象 - */ - - previewing: function () { - - var _this = this; - var editor = this.editor; - var preview = this.preview; - var toolbar = this.toolbar; - var settings = this.settings; - var codeMirror = this.codeMirror; - var previewContainer = this.previewContainer; - - if ($.inArray(settings.mode, ["gfm", "markdown"]) < 0) { - return this; - } - - if (settings.toolbar && toolbar) { - toolbar.toggle(); - toolbar.find(".fa[name=preview]").toggleClass("active"); - } - - codeMirror.toggle(); - - var escHandle = function (event) { - if (event.shiftKey && event.keyCode === 27) { - _this.previewed(); - } - }; - - if (codeMirror.css("display") === "none") // 为了兼容Zepto,而不使用codeMirror.is(":hidden") - { - // this.state.preview = true; - - if (this.state.fullscreen) { - preview.css("background", "#fff"); - } - - editor.find("." + this.classPrefix + "preview-close-btn").show().bind(editormd.mouseOrTouch("click", "touchend"), function () { - _this.previewed(); - }); - - if (!settings.watch) { - this.save(); - } - else { - previewContainer.css("padding", ""); - } - - previewContainer.addClass(this.classPrefix + "preview-active"); - - preview.show().css({ - position: "", - top: 0, - width: editor.width(), - height: (settings.autoHeight && !this.state.fullscreen) ? "auto" : editor.height() - }); - - if (this.state.loaded) { - $.proxy(settings.onpreviewing, this)(); - } - - $(window).bind("keyup", escHandle); - } - else { - $(window).unbind("keyup", escHandle); - this.previewed(); - } - }, - - /** - * 显示编辑器部分,退出只预览HTML - * Exit preview html state - * - * @returns {editormd} 返回editormd的实例对象 - */ - - previewed: function () { - - var editor = this.editor; - var preview = this.preview; - var toolbar = this.toolbar; - var settings = this.settings; - var previewContainer = this.previewContainer; - var previewCloseBtn = editor.find("." + this.classPrefix + "preview-close-btn"); - - this.state.preview = false; - - this.codeMirror.show(); - - if (settings.toolbar) { - toolbar.show(); - } - - preview[(settings.watch) ? "show" : "hide"](); - - previewCloseBtn.hide().unbind(editormd.mouseOrTouch("click", "touchend")); - - previewContainer.removeClass(this.classPrefix + "preview-active"); - - if (settings.watch) { - previewContainer.css("padding", "20px"); - } - - preview.css({ - background: null, - position: "absolute", - width: editor.width() / 2, - height: (settings.autoHeight && !this.state.fullscreen) ? "auto" : editor.height() - toolbar.height(), - top: (settings.toolbar) ? toolbar.height() : 0 - }); - - if (this.state.loaded) { - $.proxy(settings.onpreviewed, this)(); - } - - return this; - }, - - /** - * 编辑器全屏显示 - * Fullscreen show - * - * @returns {editormd} 返回editormd的实例对象 - */ - - fullscreen: function () { - - var _this = this; - var state = this.state; - var editor = this.editor; - var preview = this.preview; - var toolbar = this.toolbar; - var settings = this.settings; - var fullscreenClass = this.classPrefix + "fullscreen"; - - if (toolbar) { - toolbar.find(".fa[name=fullscreen]").parent().toggleClass("active"); - } - - var escHandle = function (event) { - if (!event.shiftKey && event.keyCode === 27) { - if (state.fullscreen) { - _this.fullscreenExit(); - } - } - }; - - if (!editor.hasClass(fullscreenClass)) { - state.fullscreen = true; - - $("html,body").css("overflow", "hidden"); - - editor.css({ - width: $(window).width(), - height: $(window).height() - }).addClass(fullscreenClass); - - this.resize(); - - $.proxy(settings.onfullscreen, this)(); - - $(window).bind("keyup", escHandle); - } - else { - $(window).unbind("keyup", escHandle); - this.fullscreenExit(); - } - - return this; - }, - - /** - * 编辑器退出全屏显示 - * Exit fullscreen state - * - * @returns {editormd} 返回editormd的实例对象 - */ - - fullscreenExit: function () { - - var editor = this.editor; - var settings = this.settings; - var toolbar = this.toolbar; - var fullscreenClass = this.classPrefix + "fullscreen"; - - this.state.fullscreen = false; - - if (toolbar) { - toolbar.find(".fa[name=fullscreen]").parent().removeClass("active"); - } - - $("html,body").css("overflow", ""); - - editor.css({ - width: editor.data("oldWidth"), - height: editor.data("oldHeight") - }).removeClass(fullscreenClass); - - this.resize(); - - $.proxy(settings.onfullscreenExit, this)(); - - return this; - }, - - /** - * 加载并执行插件 - * Load and execute the plugin - * - * @param {String} name plugin name / function name - * @param {String} path plugin load path - * @returns {editormd} 返回editormd的实例对象 - */ - - executePlugin: function (name, path) { - - var _this = this; - var cm = this.cm; - var settings = this.settings; - - path = settings.pluginPath + path; - - if (typeof define === "function") { - if (typeof this[name] === "undefined") { - alert("Error: " + name + " plugin is not found, you are not load this plugin."); - - return this; - } - - this[name](cm); - - return this; - } - - if ($.inArray(path, editormd.loadFiles.plugin) < 0) { - editormd.loadPlugin(path, function () { - editormd.loadPlugins[name] = _this[name]; - _this[name](cm); - }); - } - else { - $.proxy(editormd.loadPlugins[name], this)(cm); - } - - return this; - }, - - /** - * 搜索替换 - * Search & replace - * - * @param {String} command CodeMirror serach commands, "find, fintNext, fintPrev, clearSearch, replace, replaceAll" - * @returns {editormd} return this - */ - - search: function (command) { - var settings = this.settings; - - if (!settings.searchReplace) { - alert("Error: settings.searchReplace == false"); - return this; - } - - if (!settings.readOnly) { - this.cm.execCommand(command || "find"); - } - - return this; - }, - - searchReplace: function () { - this.search("replace"); - - return this; - }, - - searchReplaceAll: function () { - this.search("replaceAll"); - - return this; - } - }; - - editormd.fn.init.prototype = editormd.fn; - - /** - * 锁屏 - * lock screen when dialog opening - * - * @returns {void} - */ - - editormd.dialogLockScreen = function () { - var settings = this.settings || { dialogLockScreen: true }; - - if (settings.dialogLockScreen) { - $("html,body").css("overflow", "hidden"); - this.resize(); - } - }; - - /** - * 显示透明背景层 - * Display mask layer when dialog opening - * - * @param {Object} dialog dialog jQuery object - * @returns {void} - */ - - editormd.dialogShowMask = function (dialog) { - var editor = this.editor; - var settings = this.settings || { dialogShowMask: true }; - - dialog.css({ - top: ($(window).height() - dialog.height()) / 2 + "px", - left: ($(window).width() - dialog.width()) / 2 + "px" - }); - - if (settings.dialogShowMask) { - editor.children("." + this.classPrefix + "mask").css("z-index", parseInt(dialog.css("z-index")) - 1).show(); - } - }; - - editormd.toolbarHandlers = { - undo: function () { - this.cm.undo(); - }, - - redo: function () { - this.cm.redo(); - }, - - bold: function () { - var cm = this.cm; - var cursor = cm.getCursor(); - var selection = cm.getSelection(); - - cm.replaceSelection("**" + selection + "**"); - - if (selection === "") { - cm.setCursor(cursor.line, cursor.ch + 2); - } - }, - - del: function () { - var cm = this.cm; - var cursor = cm.getCursor(); - var selection = cm.getSelection(); - - cm.replaceSelection("~~" + selection + "~~"); - - if (selection === "") { - cm.setCursor(cursor.line, cursor.ch + 2); - } - }, - - italic: function () { - var cm = this.cm; - var cursor = cm.getCursor(); - var selection = cm.getSelection(); - - cm.replaceSelection("*" + selection + "*"); - - if (selection === "") { - cm.setCursor(cursor.line, cursor.ch + 1); - } - }, - - quote: function () { - var cm = this.cm; - var cursor = cm.getCursor(); - var selection = cm.getSelection(); - - if (cursor.ch !== 0) { - cm.setCursor(cursor.line, 0); - cm.replaceSelection("> " + selection); - cm.setCursor(cursor.line, cursor.ch + 2); - } - else { - cm.replaceSelection("> " + selection); - } - - //cm.replaceSelection("> " + selection); - //cm.setCursor(cursor.line, (selection === "") ? cursor.ch + 2 : cursor.ch + selection.length + 2); - }, - - ucfirst: function () { - var cm = this.cm; - var selection = cm.getSelection(); - var selections = cm.listSelections(); - - cm.replaceSelection(editormd.firstUpperCase(selection)); - cm.setSelections(selections); - }, - - ucwords: function () { - var cm = this.cm; - var selection = cm.getSelection(); - var selections = cm.listSelections(); - - cm.replaceSelection(editormd.wordsFirstUpperCase(selection)); - cm.setSelections(selections); - }, - - uppercase: function () { - var cm = this.cm; - var selection = cm.getSelection(); - var selections = cm.listSelections(); - - cm.replaceSelection(selection.toUpperCase()); - cm.setSelections(selections); - }, - - lowercase: function () { - var cm = this.cm; - var cursor = cm.getCursor(); - var selection = cm.getSelection(); - var selections = cm.listSelections(); - - cm.replaceSelection(selection.toLowerCase()); - cm.setSelections(selections); - }, - - h1: function () { - var cm = this.cm; - var cursor = cm.getCursor(); - var selection = cm.getSelection(); - - if (cursor.ch !== 0) { - cm.setCursor(cursor.line, 0); - cm.replaceSelection("# " + selection); - cm.setCursor(cursor.line, cursor.ch + 2); - } - else { - cm.replaceSelection("# " + selection); - } - }, - - h2: function () { - var cm = this.cm; - var cursor = cm.getCursor(); - var selection = cm.getSelection(); - - if (cursor.ch !== 0) { - cm.setCursor(cursor.line, 0); - cm.replaceSelection("## " + selection); - cm.setCursor(cursor.line, cursor.ch + 3); - } - else { - cm.replaceSelection("## " + selection); - } - }, - - h3: function () { - var cm = this.cm; - var cursor = cm.getCursor(); - var selection = cm.getSelection(); - - if (cursor.ch !== 0) { - cm.setCursor(cursor.line, 0); - cm.replaceSelection("### " + selection); - cm.setCursor(cursor.line, cursor.ch + 4); - } - else { - cm.replaceSelection("### " + selection); - } - }, - - h4: function () { - var cm = this.cm; - var cursor = cm.getCursor(); - var selection = cm.getSelection(); - - if (cursor.ch !== 0) { - cm.setCursor(cursor.line, 0); - cm.replaceSelection("#### " + selection); - cm.setCursor(cursor.line, cursor.ch + 5); - } - else { - cm.replaceSelection("#### " + selection); - } - }, - - h5: function () { - var cm = this.cm; - var cursor = cm.getCursor(); - var selection = cm.getSelection(); - - if (cursor.ch !== 0) { - cm.setCursor(cursor.line, 0); - cm.replaceSelection("##### " + selection); - cm.setCursor(cursor.line, cursor.ch + 6); - } - else { - cm.replaceSelection("##### " + selection); - } - }, - - h6: function () { - var cm = this.cm; - var cursor = cm.getCursor(); - var selection = cm.getSelection(); - - if (cursor.ch !== 0) { - cm.setCursor(cursor.line, 0); - cm.replaceSelection("###### " + selection); - cm.setCursor(cursor.line, cursor.ch + 7); - } - else { - cm.replaceSelection("###### " + selection); - } - }, - - "list-ul": function () { - var cm = this.cm; - var cursor = cm.getCursor(); - var selection = cm.getSelection(); - - if (selection === "") { - cm.replaceSelection("- " + selection); - } - else { - var selectionText = selection.split("\n"); - - for (var i = 0, len = selectionText.length; i < len; i++) { - selectionText[i] = (selectionText[i] === "") ? "" : "- " + selectionText[i]; - } - - cm.replaceSelection(selectionText.join("\n")); - } - }, - - "list-ol": function () { - var cm = this.cm; - var cursor = cm.getCursor(); - var selection = cm.getSelection(); - - if (selection === "") { - cm.replaceSelection("1. " + selection); - } - else { - var selectionText = selection.split("\n"); - - for (var i = 0, len = selectionText.length; i < len; i++) { - selectionText[i] = (selectionText[i] === "") ? "" : (i + 1) + ". " + selectionText[i]; - } - - cm.replaceSelection(selectionText.join("\n")); - } - }, - - hr: function () { - var cm = this.cm; - var cursor = cm.getCursor(); - var selection = cm.getSelection(); - - cm.replaceSelection(((cursor.ch !== 0) ? "\n\n" : "\n") + "------------\n\n"); - }, - - tex: function () { - if (!this.settings.tex) { - alert("settings.tex === false"); - return this; - } - - var cm = this.cm; - var cursor = cm.getCursor(); - var selection = cm.getSelection(); - - cm.replaceSelection("$$" + selection + "$$"); - - if (selection === "") { - cm.setCursor(cursor.line, cursor.ch + 2); - } - }, - - link: function () { - this.executePlugin("linkDialog", "link-dialog/link-dialog"); - }, - - "reference-link": function () { - this.executePlugin("referenceLinkDialog", "reference-link-dialog/reference-link-dialog"); - }, - - pagebreak: function () { - if (!this.settings.pageBreak) { - alert("settings.pageBreak === false"); - return this; - } - - var cm = this.cm; - var selection = cm.getSelection(); - - cm.replaceSelection("\r\n[========]\r\n"); - }, - - image: function () { - this.executePlugin("imageDialog", "image-dialog/image-dialog"); - }, - - code: function () { - var cm = this.cm; - var cursor = cm.getCursor(); - var selection = cm.getSelection(); - - cm.replaceSelection("`" + selection + "`"); - - if (selection === "") { - cm.setCursor(cursor.line, cursor.ch + 1); - } - }, - - "code-block": function () { - this.executePlugin("codeBlockDialog", "code-block-dialog/code-block-dialog"); - }, - - "preformatted-text": function () { - this.executePlugin("preformattedTextDialog", "preformatted-text-dialog/preformatted-text-dialog"); - }, - - table: function () { - this.executePlugin("tableDialog", "table-dialog/table-dialog"); - }, - - datetime: function () { - var cm = this.cm; - var selection = cm.getSelection(); - var date = new Date(); - var langName = this.settings.lang.name; - var datefmt = editormd.dateFormat() + " " + editormd.dateFormat((langName === "zh-cn" || langName === "zh-tw") ? "cn-week-day" : "week-day"); - - cm.replaceSelection(datefmt); - }, - - emoji: function () { - this.executePlugin("emojiDialog", "emoji-dialog/emoji-dialog"); - }, - - "html-entities": function () { - this.executePlugin("htmlEntitiesDialog", "html-entities-dialog/html-entities-dialog"); - }, - - "goto-line": function () { - this.executePlugin("gotoLineDialog", "goto-line-dialog/goto-line-dialog"); - }, - - watch: function () { - this[this.settings.watch ? "unwatch" : "watch"](); - }, - - preview: function () { - this.previewing(); - }, - - fullscreen: function () { - this.fullscreen(); - }, - - clear: function () { - this.clear(); - }, - - search: function () { - this.search(); - }, - - help: function () { - this.executePlugin("helpDialog", "help-dialog/help-dialog"); - }, - - info: function () { - this.showInfoDialog(); - } - }; - - editormd.keyMaps = { - "Ctrl-1": "h1", - "Ctrl-2": "h2", - "Ctrl-3": "h3", - "Ctrl-4": "h4", - "Ctrl-5": "h5", - "Ctrl-6": "h6", - "Ctrl-B": "bold", // if this is string == editormd.toolbarHandlers.xxxx - "Ctrl-D": "datetime", - - "Ctrl-E": function () { // emoji - var cm = this.cm; - var cursor = cm.getCursor(); - var selection = cm.getSelection(); - - if (!this.settings.emoji) { - alert("Error: settings.emoji == false"); - return; - } - - cm.replaceSelection(":" + selection + ":"); - - if (selection === "") { - cm.setCursor(cursor.line, cursor.ch + 1); - } - }, - "Ctrl-Alt-G": "goto-line", - "Ctrl-H": "hr", - "Ctrl-I": "italic", - "Ctrl-K": "code", - - "Ctrl-L": function () { - var cm = this.cm; - var cursor = cm.getCursor(); - var selection = cm.getSelection(); - - var title = (selection === "") ? "" : " \"" + selection + "\""; - - cm.replaceSelection("[" + selection + "](" + title + ")"); - - if (selection === "") { - cm.setCursor(cursor.line, cursor.ch + 1); - } - }, - "Ctrl-U": "list-ul", - - "Shift-Ctrl-A": function () { - var cm = this.cm; - var cursor = cm.getCursor(); - var selection = cm.getSelection(); - - if (!this.settings.atLink) { - alert("Error: settings.atLink == false"); - return; - } - - cm.replaceSelection("@" + selection); - - if (selection === "") { - cm.setCursor(cursor.line, cursor.ch + 1); - } - }, - - "Shift-Ctrl-C": "code", - "Shift-Ctrl-Q": "quote", - "Shift-Ctrl-S": "del", - "Shift-Ctrl-K": "tex", // KaTeX - - "Shift-Alt-C": function () { - var cm = this.cm; - var cursor = cm.getCursor(); - var selection = cm.getSelection(); - - cm.replaceSelection(["```", selection, "```"].join("\n")); - - if (selection === "") { - cm.setCursor(cursor.line, cursor.ch + 3); - } - }, - - "Shift-Ctrl-Alt-C": "code-block", - "Shift-Ctrl-H": "html-entities", - "Shift-Alt-H": "help", - "Shift-Ctrl-E": "emoji", - "Shift-Ctrl-U": "uppercase", - "Shift-Alt-U": "ucwords", - "Shift-Ctrl-Alt-U": "ucfirst", - "Shift-Alt-L": "lowercase", - - "Shift-Ctrl-I": function () { - var cm = this.cm; - var cursor = cm.getCursor(); - var selection = cm.getSelection(); - - var title = (selection === "") ? "" : " \"" + selection + "\""; - - cm.replaceSelection("![" + selection + "](" + title + ")"); - - if (selection === "") { - cm.setCursor(cursor.line, cursor.ch + 4); - } - }, - - "Shift-Ctrl-Alt-I": "image", - "Shift-Ctrl-L": "link", - "Shift-Ctrl-O": "list-ol", - "Shift-Ctrl-P": "preformatted-text", - "Shift-Ctrl-T": "table", - "Shift-Alt-P": "pagebreak", - "F9": "watch", - "F10": "preview", - "F11": "fullscreen", - }; - - /** - * 清除字符串两边的空格 - * Clear the space of strings both sides. - * - * @param {String} str string - * @returns {String} trimed string - */ - - var trim = function (str) { - return (!String.prototype.trim) ? str.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, "") : str.trim(); - }; - - editormd.trim = trim; - - /** - * 所有单词首字母大写 - * Words first to uppercase - * - * @param {String} str string - * @returns {String} string - */ - - var ucwords = function (str) { - return str.toLowerCase().replace(/\b(\w)|\s(\w)/g, function ($1) { - return $1.toUpperCase(); - }); - }; - - editormd.ucwords = editormd.wordsFirstUpperCase = ucwords; - - /** - * 字符串首字母大写 - * Only string first char to uppercase - * - * @param {String} str string - * @returns {String} string - */ - - var firstUpperCase = function (str) { - return str.toLowerCase().replace(/\b(\w)/, function ($1) { - return $1.toUpperCase(); - }); - }; - - var ucfirst = firstUpperCase; - - editormd.firstUpperCase = editormd.ucfirst = firstUpperCase; - - editormd.urls = { - atLinkBase: "https://github.com/" - }; - - editormd.regexs = { - atLink: /@(\w+)/g, - email: /(\w+)@(\w+)\.(\w+)\.?(\w+)?/g, - emailLink: /(mailto:)?([\w\.\_]+)@(\w+)\.(\w+)\.?(\w+)?/g, - emoji: /:([\w\+-]+):/g, - emojiDatetime: /(\d{2}:\d{2}:\d{2})/g, - twemoji: /:(tw-([\w]+)-?(\w+)?):/g, - fontAwesome: /:(fa-([\w]+)(-(\w+)){0,}):/g, - editormdLogo: /:(editormd-logo-?(\w+)?):/g, - pageBreak: /^\[[=]{8,}\]$/ - }; - - // Emoji graphics files url path - editormd.emoji = { - // path : "http://www.emoji-cheat-sheet.com/graphics/emojis/", - path: "/editormd/emoji/", - - ext: ".png" - }; - - // Twitter Emoji (Twemoji) graphics files url path - editormd.twemoji = { - path: "http://twemoji.maxcdn.com/36x36/", - ext: ".png" - }; - - /** - * 自定义marked的解析器 - * Custom Marked renderer rules - * - * @param {Array} markdownToC 传入用于接收TOC的数组 - * @returns {Renderer} markedRenderer 返回marked的Renderer自定义对象 - */ - - editormd.markedRenderer = function (markdownToC, options) { - var defaults = { - toc: true, // Table of contents - tocm: false, - tocStartLevel: 1, // Said from H1 to create ToC - pageBreak: true, - atLink: true, // for @link - emailLink: true, // for mail address auto link - taskList: false, // Enable Github Flavored Markdown task lists - emoji: false, // :emoji: , Support Twemoji, fontAwesome, Editor.md logo emojis. - tex: false, // TeX(LaTeX), based on KaTeX - flowChart: false, // flowChart.js only support IE9+ - sequenceDiagram: false, // sequenceDiagram.js only support IE9+ - }; - - var settings = $.extend(defaults, options || {}); - var marked = editormd.$marked; - var markedRenderer = new marked.Renderer(); - markdownToC = markdownToC || []; - - var regexs = editormd.regexs; - var atLinkReg = regexs.atLink; - var emojiReg = regexs.emoji; - var emailReg = regexs.email; - var emailLinkReg = regexs.emailLink; - var twemojiReg = regexs.twemoji; - var faIconReg = regexs.fontAwesome; - var editormdLogoReg = regexs.editormdLogo; - var pageBreakReg = regexs.pageBreak; - - markedRenderer.emoji = function (text) { - - text = text.replace(editormd.regexs.emojiDatetime, function ($1) { - return $1.replace(/:/g, ":"); - }); - - var matchs = text.match(emojiReg); - - if (!matchs || !settings.emoji) { - return text; - } - - for (var i = 0, len = matchs.length; i < len; i++) { - if (matchs[i] === ":+1:") { - matchs[i] = ":\\+1:"; - } - - text = text.replace(new RegExp(matchs[i]), function ($1, $2) { - var faMatchs = $1.match(faIconReg); - var name = $1.replace(/:/g, ""); - - if (faMatchs) { - for (var fa = 0, len1 = faMatchs.length; fa < len1; fa++) { - var faName = faMatchs[fa].replace(/:/g, ""); - - return ""; - } - } - else { - var emdlogoMathcs = $1.match(editormdLogoReg); - var twemojiMatchs = $1.match(twemojiReg); - - if (emdlogoMathcs) { - for (var x = 0, len2 = emdlogoMathcs.length; x < len2; x++) { - var logoName = emdlogoMathcs[x].replace(/:/g, ""); - return ""; - } - } - else if (twemojiMatchs) { - for (var t = 0, len3 = twemojiMatchs.length; t < len3; t++) { - var twe = twemojiMatchs[t].replace(/:/g, "").replace("tw-", ""); - return "\"twemoji-""; - } - } - else { - var src = (name === "+1") ? "plus1" : name; - src = (src === "black_large_square") ? "black_square" : src; - src = (src === "moon") ? "waxing_gibbous_moon" : src; - - return "\":""; - } - } - }); - } - - return text; - }; - - markedRenderer.atLink = function (text) { - - if (atLinkReg.test(text)) { - if (settings.atLink) { - text = text.replace(emailReg, function ($1, $2, $3, $4) { - return $1.replace(/@/g, "_#_@_#_"); - }); - // " + editormd.urls.atLinkBase + "" + $2 + " - text = text.replace(atLinkReg, function ($1, $2) { - return " " + $1 + " "; - }).replace(/_#_@_#_/g, "@"); - } - - if (settings.emailLink) { - text = text.replace(emailLinkReg, function ($1, $2, $3, $4, $5) { - return (!$2 && $.inArray($5, "jpg|jpeg|png|gif|webp|ico|icon|pdf".split("|")) < 0) ? "" + $1 + "" : $1; - }); - } - - return text; - } - - return text; - }; - - markedRenderer.link = function (href, title, text) { - - if (this.options.sanitize) { - try { - var prot = decodeURIComponent(unescape(href)).replace(/[^\w:]/g, "").toLowerCase(); - } catch (e) { - return ""; - } - - if (prot.indexOf("javascript:") === 0) { - return ""; - } - } - - var out = "" + text.replace(/@/g, "@") + ""; - } - - if (title) { - out += " title=\"" + title + "\""; - } - - out += ">" + text + ""; - - return out; - }; - - markedRenderer.heading = function (text, level, raw) { - - var linkText = text; - var hasLinkReg = /\s*\]*)\>(.*)\<\/a\>\s*/; - var getLinkTextReg = /\s*\]+)\>([^\>]*)\<\/a\>\s*/g; - - if (hasLinkReg.test(text)) { - var tempText = []; - text = text.split(/\]+)\>([^\>]*)\<\/a\>/); - - for (var i = 0, len = text.length; i < len; i++) { - tempText.push(text[i].replace(/\s*href\=\"(.*)\"\s*/g, "")); - } - - text = tempText.join(" "); - } - - text = trim(text); - - var escapedText = text.toLowerCase().replace(/[^\w]+/g, "-"); - var toc = { - text: text, - level: level, - slug: escapedText - }; - - var isChinese = /^[\u4e00-\u9fa5]+$/.test(text); - var id = (isChinese) ? escape(text).replace(/\%/g, "") : text.toLowerCase().replace(/[^\w]+/g, "-"); - - markdownToC.push(toc); - - var headingHTML = ""; - - headingHTML += ""; - headingHTML += ""; - headingHTML += (hasLinkReg) ? this.atLink(this.emoji(linkText)) : this.atLink(this.emoji(text)); - headingHTML += ""; - - return headingHTML; - }; - - markedRenderer.pageBreak = function (text) { - if (pageBreakReg.test(text) && settings.pageBreak) { - text = "
    "; - } - - return text; - }; - - markedRenderer.paragraph = function (text) { - var isTeXInline = /\$\$(.*)\$\$/g.test(text); - var isTeXLine = /^\$\$(.*)\$\$$/.test(text); - var isTeXAddClass = (isTeXLine) ? " class=\"" + editormd.classNames.tex + "\"" : ""; - var isToC = (settings.tocm) ? /^(\[TOC\]|\[TOCM\])$/.test(text) : /^\[TOC\]$/.test(text); - var isToCMenu = /^\[TOCM\]$/.test(text); - - if (!isTeXLine && isTeXInline) { - text = text.replace(/(\$\$([^\$]*)\$\$)+/g, function ($1, $2) { - return "" + $2.replace(/\$/g, "") + ""; - }); - } - else { - text = (isTeXLine) ? text.replace(/\$/g, "") : text; - } - - var tocHTML = "
    " + text + "
    "; - - return (isToC) ? ((isToCMenu) ? "
    " + tocHTML + "

    " : tocHTML) - : ((pageBreakReg.test(text)) ? this.pageBreak(text) : "" + this.atLink(this.emoji(text)) + "

    \n"); - }; - - markedRenderer.code = function (code, lang, escaped) { - - if (lang === "seq" || lang === "sequence") { - return "
    " + code + "
    "; - } - else if (lang === "flow") { - return "
    " + code + "
    "; - } - else if (lang === "math" || lang === "latex" || lang === "katex") { - return "

    " + code + "

    "; - } - else { - - return marked.Renderer.prototype.code.apply(this, arguments); - } - }; - - markedRenderer.tablecell = function (content, flags) { - var type = (flags.header) ? "th" : "td"; - var tag = (flags.align) ? "<" + type + " style=\"text-align:" + flags.align + "\">" : "<" + type + ">"; - - return tag + this.atLink(this.emoji(content)) + "\n"; - }; - - markedRenderer.listitem = function (text) { - if (settings.taskList && /^\s*\[[x\s]\]\s*/.test(text)) { - text = text.replace(/^\s*\[\s\]\s*/, " ") - .replace(/^\s*\[x\]\s*/, " "); - - return "
  • " + this.atLink(this.emoji(text)) + "
  • "; - } - else { - return "
  • " + this.atLink(this.emoji(text)) + "
  • "; - } - }; - - return markedRenderer; - }; - - /** - * - * 生成TOC(Table of Contents) - * Creating ToC (Table of Contents) - * - * @param {Array} toc 从marked获取的TOC数组列表 - * @param {Element} container 插入TOC的容器元素 - * @param {Integer} startLevel Hx 起始层级 - * @returns {Object} tocContainer 返回ToC列表容器层的jQuery对象元素 - */ - - editormd.markdownToCRenderer = function (toc, container, tocDropdown, startLevel) { - - var html = ""; - var lastLevel = 0; - var classPrefix = this.classPrefix; - - startLevel = startLevel || 1; - - for (var i = 0, len = toc.length; i < len; i++) { - var text = toc[i].text; - var level = toc[i].level; - - if (level < startLevel) { - continue; - } - - if (level > lastLevel) { - html += ""; - } - else if (level < lastLevel) { - html += (new Array(lastLevel - level + 2)).join(""); - } - else { - html += ""; - } - - html += "
  • " + text + "
      "; - lastLevel = level; - } - - var tocContainer = container.find(".markdown-toc"); - - if ((tocContainer.length < 1 && container.attr("previewContainer") === "false")) { - var tocHTML = "
      "; - - tocHTML = (tocDropdown) ? "
      " + tocHTML + "
      " : tocHTML; - - container.html(tocHTML); - - tocContainer = container.find(".markdown-toc"); - } - - if (tocDropdown) { - tocContainer.wrap("

      "); - } - - tocContainer.html("
        ").children(".markdown-toc-list").html(html.replace(/\r?\n?\\<\/ul\>/g, "")); - - return tocContainer; - }; - - /** - * - * 生成TOC下拉菜单 - * Creating ToC dropdown menu - * - * @param {Object} container 插入TOC的容器jQuery对象元素 - * @param {String} tocTitle ToC title - * @returns {Object} return toc-menu object - */ - - editormd.tocDropdownMenu = function (container, tocTitle) { - - tocTitle = tocTitle || "Table of Contents"; - - var zindex = 400; - var tocMenus = container.find("." + this.classPrefix + "toc-menu"); - - tocMenus.each(function () { - var $this = $(this); - var toc = $this.children(".markdown-toc"); - var icon = ""; - var btn = "" + icon + tocTitle + ""; - var menu = toc.children("ul"); - var list = menu.find("li"); - - toc.append(btn); - - list.first().before("
      • " + tocTitle + " " + icon + "

      • "); - - $this.mouseover(function () { - menu.show(); - - list.each(function () { - var li = $(this); - var ul = li.children("ul"); - - if (ul.html() === "") { - ul.remove(); - } - - if (ul.length > 0 && ul.html() !== "") { - var firstA = li.children("a").first(); - - if (firstA.children(".fa").length < 1) { - firstA.append($(icon).css({ float: "right", paddingTop: "4px" })); - } - } - - li.mouseover(function () { - ul.css("z-index", zindex).show(); - zindex += 1; - }).mouseleave(function () { - ul.hide(); - }); - }); - }).mouseleave(function () { - menu.hide(); - }); - }); - - return tocMenus; - }; - - /** - * 简单地过滤指定的HTML标签 - * Filter custom html tags - * - * @param {String} html 要过滤HTML - * @param {String} filters 要过滤的标签 - * @returns {String} html 返回过滤的HTML - */ - - editormd.filterHTMLTags = function (html, filters) { - - if (typeof html !== "string") { - html = new String(html); - } - - if (typeof filters !== "string") { - return html; - } - - var expression = filters.split("|"); - var filterTags = expression[0].split(","); - var attrs = expression[1]; - - for (var i = 0, len = filterTags.length; i < len; i++) { - var tag = filterTags[i]; - - html = html.replace(new RegExp("\<\s*" + tag + "\s*([^\>]*)\>([^\>]*)\<\s*\/" + tag + "\s*\>", "igm"), ""); - } - - //return html; - - if (typeof attrs !== "undefined") { - var htmlTagRegex = /\<(\w+)\s*([^\>]*)\>([^\>]*)\<\/(\w+)\>/ig; - - if (attrs === "*") { - html = html.replace(htmlTagRegex, function ($1, $2, $3, $4, $5) { - return "<" + $2 + ">" + $4 + ""; - }); - } - else if (attrs === "on*") { - html = html.replace(htmlTagRegex, function ($1, $2, $3, $4, $5) { - var el = $("<" + $2 + ">" + $4 + ""); - var _attrs = $($1)[0].attributes; - var $attrs = {}; - - $.each(_attrs, function (i, e) { - if (e.nodeName !== '"') $attrs[e.nodeName] = e.nodeValue; - }); - - $.each($attrs, function (i) { - if (i.indexOf("on") === 0) { - delete $attrs[i]; - } - }); - - el.attr($attrs); - - var text = (typeof el[1] !== "undefined") ? $(el[1]).text() : ""; - - return el[0].outerHTML + text; - }); - } - else { - html = html.replace(htmlTagRegex, function ($1, $2, $3, $4) { - var filterAttrs = attrs.split(","); - var el = $($1); - el.html($4); - - $.each(filterAttrs, function (i) { - el.attr(filterAttrs[i], null); - }); - - return el[0].outerHTML; - }); - } - } - - return html; - }; - - /** - * 将Markdown文档解析为HTML用于前台显示 - * Parse Markdown to HTML for Font-end preview. - * - * @param {String} id 用于显示HTML的对象ID - * @param {Object} [options={}] 配置选项,可选 - * @returns {Object} div 返回jQuery对象元素 - */ - - editormd.markdownToHTML = function (id, options) { - var defaults = { - gfm: true, - toc: true, - tocm: false, - tocStartLevel: 1, - tocTitle: "目录", - tocDropdown: false, - tocContainer: "", - markdown: "", - markdownSourceCode: false, - htmlDecode: false, - autoLoadKaTeX: true, - pageBreak: true, - atLink: true, // for @link - emailLink: true, // for mail address auto link - tex: false, - taskList: false, // Github Flavored Markdown task lists - emoji: false, - flowChart: false, - sequenceDiagram: false, - previewCodeHighlight: true - }; - - editormd.$marked = marked; - - var div = $("#" + id); - var settings = div.settings = $.extend(true, defaults, options || {}); - var saveTo = div.find("textarea"); - - if (saveTo.length < 1) { - div.append(""); - saveTo = div.find("textarea"); - } - - var markdownDoc = (settings.markdown === "") ? saveTo.val() : settings.markdown; - var markdownToC = []; - - var rendererOptions = { - toc: settings.toc, - tocm: settings.tocm, - tocStartLevel: settings.tocStartLevel, - taskList: settings.taskList, - emoji: settings.emoji, - tex: settings.tex, - pageBreak: settings.pageBreak, - atLink: settings.atLink, // for @link - emailLink: settings.emailLink, // for mail address auto link - flowChart: settings.flowChart, - sequenceDiagram: settings.sequenceDiagram, - previewCodeHighlight: settings.previewCodeHighlight, - }; - - var markedOptions = { - renderer: editormd.markedRenderer(markdownToC, rendererOptions), - gfm: settings.gfm, - tables: true, - breaks: true, - pedantic: false, - sanitize: (settings.htmlDecode) ? false : true, // 是否忽略HTML标签,即是否开启HTML标签解析,为了安全性,默认不开启 - smartLists: true, - smartypants: true - }; - - markdownDoc = new String(markdownDoc); - - var markdownParsed = marked(markdownDoc, markedOptions); - - markdownParsed = editormd.filterHTMLTags(markdownParsed, settings.htmlDecode); - - if (settings.markdownSourceCode) { - saveTo.text(markdownDoc); - } else { - saveTo.remove(); - } - - div.addClass("markdown-body " + this.classPrefix + "html-preview").append(markdownParsed); - - var tocContainer = (settings.tocContainer !== "") ? $(settings.tocContainer) : div; - - if (settings.tocContainer !== "") { - tocContainer.attr("previewContainer", false); - } - - if (settings.toc) { - div.tocContainer = this.markdownToCRenderer(markdownToC, tocContainer, settings.tocDropdown, settings.tocStartLevel); - - if (settings.tocDropdown || div.find("." + this.classPrefix + "toc-menu").length > 0) { - this.tocDropdownMenu(div, settings.tocTitle); - } - - if (settings.tocContainer !== "") { - div.find(".editormd-toc-menu, .editormd-markdown-toc").remove(); - } - } - - if (settings.previewCodeHighlight) { - div.find("pre").addClass("prettyprint linenums"); - prettyPrint(); - } - - if (!editormd.isIE8) { - if (settings.flowChart) { - div.find(".flowchart").flowChart(); - } - - if (settings.sequenceDiagram) { - div.find(".sequence-diagram").sequenceDiagram({ theme: "simple" }); - } - } - - if (settings.tex) { - var katexHandle = function () { - div.find("." + editormd.classNames.tex).each(function () { - var tex = $(this); - katex.render(tex.text(), tex[0]); - tex.find(".katex").css("font-size", "1.6em"); - }); - }; - - if (settings.autoLoadKaTeX && !editormd.$katex && !editormd.kaTeXLoaded) { - this.loadKaTeX(function () { - editormd.$katex = katex; - editormd.kaTeXLoaded = true; - katexHandle(); - }); - } - else { - katexHandle(); - } - } - - div.getMarkdown = function () { - return saveTo.val(); - }; - - return div; - }; - - // Editor.md themes, change toolbar themes etc. - // added @1.5.0 - editormd.themes = ["default", "dark"]; - - // Preview area themes - // added @1.5.0 - editormd.previewThemes = ["default", "dark"]; - - // CodeMirror / editor area themes - // @1.5.0 rename -> editorThemes, old version -> themes - editormd.editorThemes = [ - "default", "3024-day", "3024-night", - "ambiance", "ambiance-mobile", - "base16-dark", "base16-light", "blackboard", - "cobalt", - "eclipse", "elegant", "erlang-dark", - "lesser-dark", - "mbo", "mdn-like", "midnight", "monokai", - "neat", "neo", "night", - "paraiso-dark", "paraiso-light", "pastel-on-dark", - "rubyblue", - "solarized", - "the-matrix", "tomorrow-night-eighties", "twilight", - "vibrant-ink", - "xq-dark", "xq-light" - ]; - - editormd.loadPlugins = {}; - - editormd.loadFiles = { - js: [], - css: [], - plugin: [] - }; - - /** - * 动态加载Editor.md插件,但不立即执行 - * Load editor.md plugins - * - * @param {String} fileName 插件文件路径 - * @param {Function} [callback=function()] 加载成功后执行的回调函数 - * @param {String} [into="head"] 嵌入页面的位置 - */ - - editormd.loadPlugin = function (fileName, callback, into) { - callback = callback || function () { }; - - this.loadScript(fileName, function () { - editormd.loadFiles.plugin.push(fileName); - callback(); - }, into); - }; - - /** - * 动态加载CSS文件的方法 - * Load css file method - * - * @param {String} fileName CSS文件名 - * @param {Function} [callback=function()] 加载成功后执行的回调函数 - * @param {String} [into="head"] 嵌入页面的位置 - */ - - editormd.loadCSS = function (fileName, callback, into) { - into = into || "head"; - callback = callback || function () { }; - - var css = document.createElement("link"); - css.type = "text/css"; - css.rel = "stylesheet"; - css.onload = css.onreadystatechange = function () { - editormd.loadFiles.css.push(fileName); - callback(); - }; - - css.href = fileName + ".css"; - - if (into === "head") { - document.getElementsByTagName("head")[0].appendChild(css); - } else { - document.body.appendChild(css); - } - }; - - editormd.isIE = (navigator.appName == "Microsoft Internet Explorer"); - editormd.isIE8 = (editormd.isIE && navigator.appVersion.match(/8./i) == "8."); - - /** - * 动态加载JS文件的方法 - * Load javascript file method - * - * @param {String} fileName JS文件名 - * @param {Function} [callback=function()] 加载成功后执行的回调函数 - * @param {String} [into="head"] 嵌入页面的位置 - */ - - editormd.loadScript = function (fileName, callback, into) { - - into = into || "head"; - callback = callback || function () { }; - - var script = null; - script = document.createElement("script"); - script.id = fileName.replace(/[\./]+/g, "-"); - script.type = "text/javascript"; - script.src = fileName + ".js"; - - if (editormd.isIE8) { - script.onreadystatechange = function () { - if (script.readyState) { - if (script.readyState === "loaded" || script.readyState === "complete") { - script.onreadystatechange = null; - editormd.loadFiles.js.push(fileName); - callback(); - } - } - }; - } - else { - script.onload = function () { - editormd.loadFiles.js.push(fileName); - callback(); - }; - } - - if (into === "head") { - document.getElementsByTagName("head")[0].appendChild(script); - } else { - document.body.appendChild(script); - } - }; - - // 使用国外的CDN,加载速度有时会很慢,或者自定义URL - // You can custom KaTeX load url. - editormd.katexURL = { - css: "/katex/katex.min", - js: "/katex/katex.min" - }; - - editormd.kaTeXLoaded = false; - - /** - * 加载KaTeX文件 - * load KaTeX files - * - * @param {Function} [callback=function()] 加载成功后执行的回调函数 - */ - - editormd.loadKaTeX = function (callback) { - editormd.loadCSS(editormd.katexURL.css, function () { - editormd.loadScript(editormd.katexURL.js, callback || function () { }); - }); - }; - - /** - * 锁屏 - * lock screen - * - * @param {Boolean} lock Boolean 布尔值,是否锁屏 - * @returns {void} - */ - - editormd.lockScreen = function (lock) { - $("html,body").css("overflow", (lock) ? "hidden" : ""); - }; - - /** - * 动态创建对话框 - * Creating custom dialogs - * - * @param {Object} options 配置项键值对 Key/Value - * @returns {dialog} 返回创建的dialog的jQuery实例对象 - */ - - editormd.createDialog = function (options) { - var defaults = { - name: "", - width: 420, - height: 240, - title: "", - drag: true, - closed: true, - content: "", - mask: true, - maskStyle: { - backgroundColor: "#fff", - opacity: 0.1 - }, - lockScreen: true, - footer: true, - buttons: false - }; - - options = $.extend(true, defaults, options); - - var $this = this; - var editor = this.editor; - var classPrefix = editormd.classPrefix; - var guid = (new Date()).getTime(); - var dialogName = ((options.name === "") ? classPrefix + "dialog-" + guid : options.name); - var mouseOrTouch = editormd.mouseOrTouch; - - var html = "
        "; - - if (options.title !== "") { - html += "
        "; - html += "" + options.title + ""; - html += "
        "; - } - - if (options.closed) { - html += ""; - } - - html += "
        " + options.content; - - if (options.footer || typeof options.footer === "string") { - html += "
        " + ((typeof options.footer === "boolean") ? "" : options.footer) + "
        "; - } - - html += "
        "; - - html += "
        "; - html += "
        "; - html += "
        "; - - editor.append(html); - - var dialog = editor.find("." + dialogName); - - dialog.lockScreen = function (lock) { - if (options.lockScreen) { - $("html,body").css("overflow", (lock) ? "hidden" : ""); - $this.resize(); - } - - return dialog; - }; - - dialog.showMask = function () { - if (options.mask) { - editor.find("." + classPrefix + "mask").css(options.maskStyle).css("z-index", editormd.dialogZindex - 1).show(); - } - return dialog; - }; - - dialog.hideMask = function () { - if (options.mask) { - editor.find("." + classPrefix + "mask").hide(); - } - - return dialog; - }; - - dialog.loading = function (show) { - var loading = dialog.find("." + classPrefix + "dialog-mask"); - loading[(show) ? "show" : "hide"](); - - return dialog; - }; - - dialog.lockScreen(true).showMask(); - - dialog.show().css({ - zIndex: editormd.dialogZindex, - border: (editormd.isIE8) ? "1px solid #ddd" : "", - width: (typeof options.width === "number") ? options.width + "px" : options.width, - height: (typeof options.height === "number") ? options.height + "px" : options.height - }); - - var dialogPosition = function () { - dialog.css({ - top: ($(window).height() - dialog.height()) / 2 + "px", - left: ($(window).width() - dialog.width()) / 2 + "px" - }); - }; - - dialogPosition(); - - $(window).resize(dialogPosition); - - dialog.children("." + classPrefix + "dialog-close").bind(mouseOrTouch("click", "touchend"), function () { - dialog.hide().lockScreen(false).hideMask(); - }); - - if (typeof options.buttons === "object") { - var footer = dialog.footer = dialog.find("." + classPrefix + "dialog-footer"); - - for (var key in options.buttons) { - var btn = options.buttons[key]; - var btnClassName = classPrefix + key + "-btn"; - - footer.append(""); - btn[1] = $.proxy(btn[1], dialog); - footer.children("." + btnClassName).bind(mouseOrTouch("click", "touchend"), btn[1]); - } - } - - if (options.title !== "" && options.drag) { - var posX, posY; - var dialogHeader = dialog.children("." + classPrefix + "dialog-header"); - - if (!options.mask) { - dialogHeader.bind(mouseOrTouch("click", "touchend"), function () { - editormd.dialogZindex += 2; - dialog.css("z-index", editormd.dialogZindex); - }); - } - - dialogHeader.mousedown(function (e) { - e = e || window.event; //IE - posX = e.clientX - parseInt(dialog[0].style.left); - posY = e.clientY - parseInt(dialog[0].style.top); - - document.onmousemove = moveAction; - }); - - var userCanSelect = function (obj) { - obj.removeClass(classPrefix + "user-unselect").off("selectstart"); - }; - - var userUnselect = function (obj) { - obj.addClass(classPrefix + "user-unselect").on("selectstart", function (event) { // selectstart for IE - return false; - }); - }; - - var moveAction = function (e) { - e = e || window.event; //IE - - var left, top, nowLeft = parseInt(dialog[0].style.left), nowTop = parseInt(dialog[0].style.top); - - if (nowLeft >= 0) { - if (nowLeft + dialog.width() <= $(window).width()) { - left = e.clientX - posX; - } else { - left = $(window).width() - dialog.width(); - document.onmousemove = null; - } - } else { - left = 0; - document.onmousemove = null; - } - - if (nowTop >= 0) { - top = e.clientY - posY; - } else { - top = 0; - document.onmousemove = null; - } - - - document.onselectstart = function () { - return false; - }; - - userUnselect($("body")); - userUnselect(dialog); - dialog[0].style.left = left + "px"; - dialog[0].style.top = top + "px"; - }; - - document.onmouseup = function () { - userCanSelect($("body")); - userCanSelect(dialog); - - document.onselectstart = null; - document.onmousemove = null; - }; - - dialogHeader.touchDraggable = function () { - var offset = null; - var start = function (e) { - var orig = e.originalEvent; - var pos = $(this).parent().position(); - - offset = { - x: orig.changedTouches[0].pageX - pos.left, - y: orig.changedTouches[0].pageY - pos.top - }; - }; - - var move = function (e) { - e.preventDefault(); - var orig = e.originalEvent; - - $(this).parent().css({ - top: orig.changedTouches[0].pageY - offset.y, - left: orig.changedTouches[0].pageX - offset.x - }); - }; - - this.bind("touchstart", start).bind("touchmove", move); - }; - - dialogHeader.touchDraggable(); - } - - editormd.dialogZindex += 2; - $("body").removeAttr("style"); - return dialog; - }; - - /** - * 鼠标和触摸事件的判断/选择方法 - * MouseEvent or TouchEvent type switch - * - * @param {String} [mouseEventType="click"] 供选择的鼠标事件 - * @param {String} [touchEventType="touchend"] 供选择的触摸事件 - * @returns {String} EventType 返回事件类型名称 - */ - - editormd.mouseOrTouch = function (mouseEventType, touchEventType) { - mouseEventType = mouseEventType || "click"; - touchEventType = touchEventType || "touchend"; - - var eventType = mouseEventType; - - try { - document.createEvent("TouchEvent"); - eventType = touchEventType; - } catch (e) { } - - return eventType; - }; - - /** - * 日期时间的格式化方法 - * Datetime format method - * - * @param {String} [format=""] 日期时间的格式,类似PHP的格式 - * @returns {String} datefmt 返回格式化后的日期时间字符串 - */ - - editormd.dateFormat = function (format) { - format = format || ""; - - var addZero = function (d) { - return (d < 10) ? "0" + d : d; - }; - - var date = new Date(); - var year = date.getFullYear(); - var year2 = year.toString().slice(2, 4); - var month = addZero(date.getMonth() + 1); - var day = addZero(date.getDate()); - var weekDay = date.getDay(); - var hour = addZero(date.getHours()); - var min = addZero(date.getMinutes()); - var second = addZero(date.getSeconds()); - var ms = addZero(date.getMilliseconds()); - var datefmt = ""; - - var ymd = year2 + "-" + month + "-" + day; - var fymd = year + "-" + month + "-" + day; - var hms = hour + ":" + min + ":" + second; - - switch (format) { - case "UNIX Time": - datefmt = date.getTime(); - break; - - case "UTC": - datefmt = date.toUTCString(); - break; - - case "yy": - datefmt = year2; - break; - - case "year": - case "yyyy": - datefmt = year; - break; - - case "month": - case "mm": - datefmt = month; - break; - - case "cn-week-day": - case "cn-wd": - var cnWeekDays = ["日", "一", "二", "三", "四", "五", "六"]; - datefmt = "星期" + cnWeekDays[weekDay]; - break; - - case "week-day": - case "wd": - var weekDays = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]; - datefmt = weekDays[weekDay]; - break; - - case "day": - case "dd": - datefmt = day; - break; - - case "hour": - case "hh": - datefmt = hour; - break; - - case "min": - case "ii": - datefmt = min; - break; - - case "second": - case "ss": - datefmt = second; - break; - - case "ms": - datefmt = ms; - break; - - case "yy-mm-dd": - datefmt = ymd; - break; - - case "yyyy-mm-dd": - datefmt = fymd; - break; - - case "yyyy-mm-dd h:i:s ms": - case "full + ms": - datefmt = fymd + " " + hms + " " + ms; - break; - - case "full": - case "yyyy-mm-dd h:i:s": - default: - datefmt = fymd + " " + hms; - break; - } - - return datefmt; - }; - - return editormd; - -})); - -/** - cm paste事件上传图片的封装 - event : paste事件的event - action: 图片上传url - callback: 图片上传xhr回调 - */ -window._whenPasterDoUpload = function (event, action, callback) { - var clipboardData = event.clipboardData, - i = 0, items, item, types; - if (clipboardData) { - items = clipboardData.items; - if (!items) - return; - item = items[0]; - // 保存在剪贴板中的数据类型 - types = clipboardData.types || []; - - for (; i < types.length; i++) { - if (types[i] === 'Files') { - item = items[i]; - break; - } - } - // 判断是否为图片数据 - if (item && item.kind === 'file' && item.type.match(/^image\//i)) { - // 读取该图片 - var file = item.getAsFile(); - var oMyForm = new FormData(); - oMyForm.append("editormd-image-file", file); - oMyForm.append("file_param_name", "editormd-image-file"); - oMyForm.append("byxhr", "true"); - var xhr = new window.XMLHttpRequest(); - xhr.addEventListener("load", - function (_xhr) { - var response = _xhr.target, json = JSON.parse(response.responseText); - - if (json.success === 1) { - callback && callback(json) - // input.value=json.url; - } - else { - callback && callback(json) - console.log(json.message); - } - }, false); - xhr.addEventListener("error", function () { console.error("error"); }, false); - xhr.open("POST", action); - xhr.send(oMyForm); - } - } -} -function initEditormdPasteUpload(editormd, url, callback) { - editormd.cm.getInputField().addEventListener("paste", function (event) { - _whenPasterDoUpload(event, url, function (resJson) { - // TODO 插入图片url到cm - if (resJson.id) { - editormd.cm.replaceSelection("![](/api/attachments/" + resJson.id + ")") - } - }); - }) -} \ No newline at end of file diff --git a/js/react-dom.development.js b/js/react-dom.development.js deleted file mode 100644 index 24b86831f..000000000 --- a/js/react-dom.development.js +++ /dev/null @@ -1,25147 +0,0 @@ -/** @license React v16.14.0 - * react-dom.development.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -'use strict'; - -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('react')) : - typeof define === 'function' && define.amd ? define(['exports', 'react'], factory) : - (global = global || self, factory(global.ReactDOM = {}, global.React)); -}(this, (function (exports, React) { 'use strict'; - - var ReactSharedInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED; // Prevent newer renderers from RTE when used with older react package versions. - // Current owner and dispatcher used to share the same ref, - // but PR #14548 split them out to better support the react-debug-tools package. - - if (!ReactSharedInternals.hasOwnProperty('ReactCurrentDispatcher')) { - ReactSharedInternals.ReactCurrentDispatcher = { - current: null - }; - } - - if (!ReactSharedInternals.hasOwnProperty('ReactCurrentBatchConfig')) { - ReactSharedInternals.ReactCurrentBatchConfig = { - suspense: null - }; - } - - // by calls to these methods by a Babel plugin. - // - // In PROD (or in packages without access to React internals), - // they are left as they are instead. - - function warn(format) { - { - for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { - args[_key - 1] = arguments[_key]; - } - - printWarning('warn', format, args); - } - } - function error(format) { - { - for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) { - args[_key2 - 1] = arguments[_key2]; - } - - printWarning('error', format, args); - } - } - - function printWarning(level, format, args) { - // When changing this logic, you might want to also - // update consoleWithStackDev.www.js as well. - { - var hasExistingStack = args.length > 0 && typeof args[args.length - 1] === 'string' && args[args.length - 1].indexOf('\n in') === 0; - - if (!hasExistingStack) { - var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame; - var stack = ReactDebugCurrentFrame.getStackAddendum(); - - if (stack !== '') { - format += '%s'; - args = args.concat([stack]); - } - } - - var argsWithFormat = args.map(function (item) { - return '' + item; - }); // Careful: RN currently depends on this prefix - - argsWithFormat.unshift('Warning: ' + format); // We intentionally don't use spread (or .apply) directly because it - // breaks IE9: https://github.com/facebook/react/issues/13610 - // eslint-disable-next-line react-internal/no-production-logging - - Function.prototype.apply.call(console[level], console, argsWithFormat); - - try { - // --- Welcome to debugging React --- - // This error was thrown as a convenience so that you can use this stack - // to find the callsite that caused this warning to fire. - var argIndex = 0; - var message = 'Warning: ' + format.replace(/%s/g, function () { - return args[argIndex++]; - }); - throw new Error(message); - } catch (x) {} - } - } - - if (!React) { - { - throw Error( "ReactDOM was loaded before React. Make sure you load the React package before loading ReactDOM." ); - } - } - - var invokeGuardedCallbackImpl = function (name, func, context, a, b, c, d, e, f) { - var funcArgs = Array.prototype.slice.call(arguments, 3); - - try { - func.apply(context, funcArgs); - } catch (error) { - this.onError(error); - } - }; - - { - // In DEV mode, we swap out invokeGuardedCallback for a special version - // that plays more nicely with the browser's DevTools. The idea is to preserve - // "Pause on exceptions" behavior. Because React wraps all user-provided - // functions in invokeGuardedCallback, and the production version of - // invokeGuardedCallback uses a try-catch, all user exceptions are treated - // like caught exceptions, and the DevTools won't pause unless the developer - // takes the extra step of enabling pause on caught exceptions. This is - // unintuitive, though, because even though React has caught the error, from - // the developer's perspective, the error is uncaught. - // - // To preserve the expected "Pause on exceptions" behavior, we don't use a - // try-catch in DEV. Instead, we synchronously dispatch a fake event to a fake - // DOM node, and call the user-provided callback from inside an event handler - // for that fake event. If the callback throws, the error is "captured" using - // a global event handler. But because the error happens in a different - // event loop context, it does not interrupt the normal program flow. - // Effectively, this gives us try-catch behavior without actually using - // try-catch. Neat! - // Check that the browser supports the APIs we need to implement our special - // DEV version of invokeGuardedCallback - if (typeof window !== 'undefined' && typeof window.dispatchEvent === 'function' && typeof document !== 'undefined' && typeof document.createEvent === 'function') { - var fakeNode = document.createElement('react'); - - var invokeGuardedCallbackDev = function (name, func, context, a, b, c, d, e, f) { - // If document doesn't exist we know for sure we will crash in this method - // when we call document.createEvent(). However this can cause confusing - // errors: https://github.com/facebookincubator/create-react-app/issues/3482 - // So we preemptively throw with a better message instead. - if (!(typeof document !== 'undefined')) { - { - throw Error( "The `document` global was defined when React was initialized, but is not defined anymore. This can happen in a test environment if a component schedules an update from an asynchronous callback, but the test has already finished running. To solve this, you can either unmount the component at the end of your test (and ensure that any asynchronous operations get canceled in `componentWillUnmount`), or you can change the test itself to be asynchronous." ); - } - } - - var evt = document.createEvent('Event'); // Keeps track of whether the user-provided callback threw an error. We - // set this to true at the beginning, then set it to false right after - // calling the function. If the function errors, `didError` will never be - // set to false. This strategy works even if the browser is flaky and - // fails to call our global error handler, because it doesn't rely on - // the error event at all. - - var didError = true; // Keeps track of the value of window.event so that we can reset it - // during the callback to let user code access window.event in the - // browsers that support it. - - var windowEvent = window.event; // Keeps track of the descriptor of window.event to restore it after event - // dispatching: https://github.com/facebook/react/issues/13688 - - var windowEventDescriptor = Object.getOwnPropertyDescriptor(window, 'event'); // Create an event handler for our fake event. We will synchronously - // dispatch our fake event using `dispatchEvent`. Inside the handler, we - // call the user-provided callback. - - var funcArgs = Array.prototype.slice.call(arguments, 3); - - function callCallback() { - // We immediately remove the callback from event listeners so that - // nested `invokeGuardedCallback` calls do not clash. Otherwise, a - // nested call would trigger the fake event handlers of any call higher - // in the stack. - fakeNode.removeEventListener(evtType, callCallback, false); // We check for window.hasOwnProperty('event') to prevent the - // window.event assignment in both IE <= 10 as they throw an error - // "Member not found" in strict mode, and in Firefox which does not - // support window.event. - - if (typeof window.event !== 'undefined' && window.hasOwnProperty('event')) { - window.event = windowEvent; - } - - func.apply(context, funcArgs); - didError = false; - } // Create a global error event handler. We use this to capture the value - // that was thrown. It's possible that this error handler will fire more - // than once; for example, if non-React code also calls `dispatchEvent` - // and a handler for that event throws. We should be resilient to most of - // those cases. Even if our error event handler fires more than once, the - // last error event is always used. If the callback actually does error, - // we know that the last error event is the correct one, because it's not - // possible for anything else to have happened in between our callback - // erroring and the code that follows the `dispatchEvent` call below. If - // the callback doesn't error, but the error event was fired, we know to - // ignore it because `didError` will be false, as described above. - - - var error; // Use this to track whether the error event is ever called. - - var didSetError = false; - var isCrossOriginError = false; - - function handleWindowError(event) { - error = event.error; - didSetError = true; - - if (error === null && event.colno === 0 && event.lineno === 0) { - isCrossOriginError = true; - } - - if (event.defaultPrevented) { - // Some other error handler has prevented default. - // Browsers silence the error report if this happens. - // We'll remember this to later decide whether to log it or not. - if (error != null && typeof error === 'object') { - try { - error._suppressLogging = true; - } catch (inner) {// Ignore. - } - } - } - } // Create a fake event type. - - - var evtType = "react-" + (name ? name : 'invokeguardedcallback'); // Attach our event handlers - - window.addEventListener('error', handleWindowError); - fakeNode.addEventListener(evtType, callCallback, false); // Synchronously dispatch our fake event. If the user-provided function - // errors, it will trigger our global error handler. - - evt.initEvent(evtType, false, false); - fakeNode.dispatchEvent(evt); - - if (windowEventDescriptor) { - Object.defineProperty(window, 'event', windowEventDescriptor); - } - - if (didError) { - if (!didSetError) { - // The callback errored, but the error event never fired. - error = new Error('An error was thrown inside one of your components, but React ' + "doesn't know what it was. This is likely due to browser " + 'flakiness. React does its best to preserve the "Pause on ' + 'exceptions" behavior of the DevTools, which requires some ' + "DEV-mode only tricks. It's possible that these don't work in " + 'your browser. Try triggering the error in production mode, ' + 'or switching to a modern browser. If you suspect that this is ' + 'actually an issue with React, please file an issue.'); - } else if (isCrossOriginError) { - error = new Error("A cross-origin error was thrown. React doesn't have access to " + 'the actual error object in development. ' + 'See https://fb.me/react-crossorigin-error for more information.'); - } - - this.onError(error); - } // Remove our event listeners - - - window.removeEventListener('error', handleWindowError); - }; - - invokeGuardedCallbackImpl = invokeGuardedCallbackDev; - } - } - - var invokeGuardedCallbackImpl$1 = invokeGuardedCallbackImpl; - - var hasError = false; - var caughtError = null; // Used by event system to capture/rethrow the first error. - - var hasRethrowError = false; - var rethrowError = null; - var reporter = { - onError: function (error) { - hasError = true; - caughtError = error; - } - }; - /** - * Call a function while guarding against errors that happens within it. - * Returns an error if it throws, otherwise null. - * - * In production, this is implemented using a try-catch. The reason we don't - * use a try-catch directly is so that we can swap out a different - * implementation in DEV mode. - * - * @param {String} name of the guard to use for logging or debugging - * @param {Function} func The function to invoke - * @param {*} context The context to use when calling the function - * @param {...*} args Arguments for function - */ - - function invokeGuardedCallback(name, func, context, a, b, c, d, e, f) { - hasError = false; - caughtError = null; - invokeGuardedCallbackImpl$1.apply(reporter, arguments); - } - /** - * Same as invokeGuardedCallback, but instead of returning an error, it stores - * it in a global so it can be rethrown by `rethrowCaughtError` later. - * TODO: See if caughtError and rethrowError can be unified. - * - * @param {String} name of the guard to use for logging or debugging - * @param {Function} func The function to invoke - * @param {*} context The context to use when calling the function - * @param {...*} args Arguments for function - */ - - function invokeGuardedCallbackAndCatchFirstError(name, func, context, a, b, c, d, e, f) { - invokeGuardedCallback.apply(this, arguments); - - if (hasError) { - var error = clearCaughtError(); - - if (!hasRethrowError) { - hasRethrowError = true; - rethrowError = error; - } - } - } - /** - * During execution of guarded functions we will capture the first error which - * we will rethrow to be handled by the top level error handler. - */ - - function rethrowCaughtError() { - if (hasRethrowError) { - var error = rethrowError; - hasRethrowError = false; - rethrowError = null; - throw error; - } - } - function hasCaughtError() { - return hasError; - } - function clearCaughtError() { - if (hasError) { - var error = caughtError; - hasError = false; - caughtError = null; - return error; - } else { - { - { - throw Error( "clearCaughtError was called but no error was captured. This error is likely caused by a bug in React. Please file an issue." ); - } - } - } - } - - var getFiberCurrentPropsFromNode = null; - var getInstanceFromNode = null; - var getNodeFromInstance = null; - function setComponentTree(getFiberCurrentPropsFromNodeImpl, getInstanceFromNodeImpl, getNodeFromInstanceImpl) { - getFiberCurrentPropsFromNode = getFiberCurrentPropsFromNodeImpl; - getInstanceFromNode = getInstanceFromNodeImpl; - getNodeFromInstance = getNodeFromInstanceImpl; - - { - if (!getNodeFromInstance || !getInstanceFromNode) { - error('EventPluginUtils.setComponentTree(...): Injected ' + 'module is missing getNodeFromInstance or getInstanceFromNode.'); - } - } - } - var validateEventDispatches; - - { - validateEventDispatches = function (event) { - var dispatchListeners = event._dispatchListeners; - var dispatchInstances = event._dispatchInstances; - var listenersIsArr = Array.isArray(dispatchListeners); - var listenersLen = listenersIsArr ? dispatchListeners.length : dispatchListeners ? 1 : 0; - var instancesIsArr = Array.isArray(dispatchInstances); - var instancesLen = instancesIsArr ? dispatchInstances.length : dispatchInstances ? 1 : 0; - - if (instancesIsArr !== listenersIsArr || instancesLen !== listenersLen) { - error('EventPluginUtils: Invalid `event`.'); - } - }; - } - /** - * Dispatch the event to the listener. - * @param {SyntheticEvent} event SyntheticEvent to handle - * @param {function} listener Application-level callback - * @param {*} inst Internal component instance - */ - - - function executeDispatch(event, listener, inst) { - var type = event.type || 'unknown-event'; - event.currentTarget = getNodeFromInstance(inst); - invokeGuardedCallbackAndCatchFirstError(type, listener, undefined, event); - event.currentTarget = null; - } - /** - * Standard/simple iteration through an event's collected dispatches. - */ - - function executeDispatchesInOrder(event) { - var dispatchListeners = event._dispatchListeners; - var dispatchInstances = event._dispatchInstances; - - { - validateEventDispatches(event); - } - - if (Array.isArray(dispatchListeners)) { - for (var i = 0; i < dispatchListeners.length; i++) { - if (event.isPropagationStopped()) { - break; - } // Listeners and Instances are two parallel arrays that are always in sync. - - - executeDispatch(event, dispatchListeners[i], dispatchInstances[i]); - } - } else if (dispatchListeners) { - executeDispatch(event, dispatchListeners, dispatchInstances); - } - - event._dispatchListeners = null; - event._dispatchInstances = null; - } - - var FunctionComponent = 0; - var ClassComponent = 1; - var IndeterminateComponent = 2; // Before we know whether it is function or class - - var HostRoot = 3; // Root of a host tree. Could be nested inside another node. - - var HostPortal = 4; // A subtree. Could be an entry point to a different renderer. - - var HostComponent = 5; - var HostText = 6; - var Fragment = 7; - var Mode = 8; - var ContextConsumer = 9; - var ContextProvider = 10; - var ForwardRef = 11; - var Profiler = 12; - var SuspenseComponent = 13; - var MemoComponent = 14; - var SimpleMemoComponent = 15; - var LazyComponent = 16; - var IncompleteClassComponent = 17; - var DehydratedFragment = 18; - var SuspenseListComponent = 19; - var FundamentalComponent = 20; - var ScopeComponent = 21; - var Block = 22; - - /** - * Injectable ordering of event plugins. - */ - var eventPluginOrder = null; - /** - * Injectable mapping from names to event plugin modules. - */ - - var namesToPlugins = {}; - /** - * Recomputes the plugin list using the injected plugins and plugin ordering. - * - * @private - */ - - function recomputePluginOrdering() { - if (!eventPluginOrder) { - // Wait until an `eventPluginOrder` is injected. - return; - } - - for (var pluginName in namesToPlugins) { - var pluginModule = namesToPlugins[pluginName]; - var pluginIndex = eventPluginOrder.indexOf(pluginName); - - if (!(pluginIndex > -1)) { - { - throw Error( "EventPluginRegistry: Cannot inject event plugins that do not exist in the plugin ordering, `" + pluginName + "`." ); - } - } - - if (plugins[pluginIndex]) { - continue; - } - - if (!pluginModule.extractEvents) { - { - throw Error( "EventPluginRegistry: Event plugins must implement an `extractEvents` method, but `" + pluginName + "` does not." ); - } - } - - plugins[pluginIndex] = pluginModule; - var publishedEvents = pluginModule.eventTypes; - - for (var eventName in publishedEvents) { - if (!publishEventForPlugin(publishedEvents[eventName], pluginModule, eventName)) { - { - throw Error( "EventPluginRegistry: Failed to publish event `" + eventName + "` for plugin `" + pluginName + "`." ); - } - } - } - } - } - /** - * Publishes an event so that it can be dispatched by the supplied plugin. - * - * @param {object} dispatchConfig Dispatch configuration for the event. - * @param {object} PluginModule Plugin publishing the event. - * @return {boolean} True if the event was successfully published. - * @private - */ - - - function publishEventForPlugin(dispatchConfig, pluginModule, eventName) { - if (!!eventNameDispatchConfigs.hasOwnProperty(eventName)) { - { - throw Error( "EventPluginRegistry: More than one plugin attempted to publish the same event name, `" + eventName + "`." ); - } - } - - eventNameDispatchConfigs[eventName] = dispatchConfig; - var phasedRegistrationNames = dispatchConfig.phasedRegistrationNames; - - if (phasedRegistrationNames) { - for (var phaseName in phasedRegistrationNames) { - if (phasedRegistrationNames.hasOwnProperty(phaseName)) { - var phasedRegistrationName = phasedRegistrationNames[phaseName]; - publishRegistrationName(phasedRegistrationName, pluginModule, eventName); - } - } - - return true; - } else if (dispatchConfig.registrationName) { - publishRegistrationName(dispatchConfig.registrationName, pluginModule, eventName); - return true; - } - - return false; - } - /** - * Publishes a registration name that is used to identify dispatched events. - * - * @param {string} registrationName Registration name to add. - * @param {object} PluginModule Plugin publishing the event. - * @private - */ - - - function publishRegistrationName(registrationName, pluginModule, eventName) { - if (!!registrationNameModules[registrationName]) { - { - throw Error( "EventPluginRegistry: More than one plugin attempted to publish the same registration name, `" + registrationName + "`." ); - } - } - - registrationNameModules[registrationName] = pluginModule; - registrationNameDependencies[registrationName] = pluginModule.eventTypes[eventName].dependencies; - - { - var lowerCasedName = registrationName.toLowerCase(); - possibleRegistrationNames[lowerCasedName] = registrationName; - - if (registrationName === 'onDoubleClick') { - possibleRegistrationNames.ondblclick = registrationName; - } - } - } - /** - * Registers plugins so that they can extract and dispatch events. - */ - - /** - * Ordered list of injected plugins. - */ - - - var plugins = []; - /** - * Mapping from event name to dispatch config - */ - - var eventNameDispatchConfigs = {}; - /** - * Mapping from registration name to plugin module - */ - - var registrationNameModules = {}; - /** - * Mapping from registration name to event name - */ - - var registrationNameDependencies = {}; - /** - * Mapping from lowercase registration names to the properly cased version, - * used to warn in the case of missing event handlers. Available - * only in true. - * @type {Object} - */ - - var possibleRegistrationNames = {} ; // Trust the developer to only use possibleRegistrationNames in true - - /** - * Injects an ordering of plugins (by plugin name). This allows the ordering - * to be decoupled from injection of the actual plugins so that ordering is - * always deterministic regardless of packaging, on-the-fly injection, etc. - * - * @param {array} InjectedEventPluginOrder - * @internal - */ - - function injectEventPluginOrder(injectedEventPluginOrder) { - if (!!eventPluginOrder) { - { - throw Error( "EventPluginRegistry: Cannot inject event plugin ordering more than once. You are likely trying to load more than one copy of React." ); - } - } // Clone the ordering so it cannot be dynamically mutated. - - - eventPluginOrder = Array.prototype.slice.call(injectedEventPluginOrder); - recomputePluginOrdering(); - } - /** - * Injects plugins to be used by plugin event system. The plugin names must be - * in the ordering injected by `injectEventPluginOrder`. - * - * Plugins can be injected as part of page initialization or on-the-fly. - * - * @param {object} injectedNamesToPlugins Map from names to plugin modules. - * @internal - */ - - function injectEventPluginsByName(injectedNamesToPlugins) { - var isOrderingDirty = false; - - for (var pluginName in injectedNamesToPlugins) { - if (!injectedNamesToPlugins.hasOwnProperty(pluginName)) { - continue; - } - - var pluginModule = injectedNamesToPlugins[pluginName]; - - if (!namesToPlugins.hasOwnProperty(pluginName) || namesToPlugins[pluginName] !== pluginModule) { - if (!!namesToPlugins[pluginName]) { - { - throw Error( "EventPluginRegistry: Cannot inject two different event plugins using the same name, `" + pluginName + "`." ); - } - } - - namesToPlugins[pluginName] = pluginModule; - isOrderingDirty = true; - } - } - - if (isOrderingDirty) { - recomputePluginOrdering(); - } - } - - var canUseDOM = !!(typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined'); - - var ReactInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED; - var _assign = ReactInternals.assign; - - var PLUGIN_EVENT_SYSTEM = 1; - var IS_REPLAYED = 1 << 5; - var IS_FIRST_ANCESTOR = 1 << 6; - - var restoreImpl = null; - var restoreTarget = null; - var restoreQueue = null; - - function restoreStateOfTarget(target) { - // We perform this translation at the end of the event loop so that we - // always receive the correct fiber here - var internalInstance = getInstanceFromNode(target); - - if (!internalInstance) { - // Unmounted - return; - } - - if (!(typeof restoreImpl === 'function')) { - { - throw Error( "setRestoreImplementation() needs to be called to handle a target for controlled events. This error is likely caused by a bug in React. Please file an issue." ); - } - } - - var stateNode = internalInstance.stateNode; // Guard against Fiber being unmounted. - - if (stateNode) { - var _props = getFiberCurrentPropsFromNode(stateNode); - - restoreImpl(internalInstance.stateNode, internalInstance.type, _props); - } - } - - function setRestoreImplementation(impl) { - restoreImpl = impl; - } - function enqueueStateRestore(target) { - if (restoreTarget) { - if (restoreQueue) { - restoreQueue.push(target); - } else { - restoreQueue = [target]; - } - } else { - restoreTarget = target; - } - } - function needsStateRestore() { - return restoreTarget !== null || restoreQueue !== null; - } - function restoreStateIfNeeded() { - if (!restoreTarget) { - return; - } - - var target = restoreTarget; - var queuedTargets = restoreQueue; - restoreTarget = null; - restoreQueue = null; - restoreStateOfTarget(target); - - if (queuedTargets) { - for (var i = 0; i < queuedTargets.length; i++) { - restoreStateOfTarget(queuedTargets[i]); - } - } - } - - var enableProfilerTimer = true; // Trace which interactions trigger each commit. - - var enableDeprecatedFlareAPI = false; // Experimental Host Component support. - - var enableFundamentalAPI = false; // Experimental Scope support. - var warnAboutStringRefs = false; - - // the renderer. Such as when we're dispatching events or if third party - // libraries need to call batchedUpdates. Eventually, this API will go away when - // everything is batched by default. We'll then have a similar API to opt-out of - // scheduled work and instead do synchronous work. - // Defaults - - var batchedUpdatesImpl = function (fn, bookkeeping) { - return fn(bookkeeping); - }; - - var discreteUpdatesImpl = function (fn, a, b, c, d) { - return fn(a, b, c, d); - }; - - var flushDiscreteUpdatesImpl = function () {}; - - var batchedEventUpdatesImpl = batchedUpdatesImpl; - var isInsideEventHandler = false; - var isBatchingEventUpdates = false; - - function finishEventHandler() { - // Here we wait until all updates have propagated, which is important - // when using controlled components within layers: - // https://github.com/facebook/react/issues/1698 - // Then we restore state of any controlled component. - var controlledComponentsHavePendingUpdates = needsStateRestore(); - - if (controlledComponentsHavePendingUpdates) { - // If a controlled event was fired, we may need to restore the state of - // the DOM node back to the controlled value. This is necessary when React - // bails out of the update without touching the DOM. - flushDiscreteUpdatesImpl(); - restoreStateIfNeeded(); - } - } - - function batchedUpdates(fn, bookkeeping) { - if (isInsideEventHandler) { - // If we are currently inside another batch, we need to wait until it - // fully completes before restoring state. - return fn(bookkeeping); - } - - isInsideEventHandler = true; - - try { - return batchedUpdatesImpl(fn, bookkeeping); - } finally { - isInsideEventHandler = false; - finishEventHandler(); - } - } - function batchedEventUpdates(fn, a, b) { - if (isBatchingEventUpdates) { - // If we are currently inside another batch, we need to wait until it - // fully completes before restoring state. - return fn(a, b); - } - - isBatchingEventUpdates = true; - - try { - return batchedEventUpdatesImpl(fn, a, b); - } finally { - isBatchingEventUpdates = false; - finishEventHandler(); - } - } // This is for the React Flare event system - function discreteUpdates(fn, a, b, c, d) { - var prevIsInsideEventHandler = isInsideEventHandler; - isInsideEventHandler = true; - - try { - return discreteUpdatesImpl(fn, a, b, c, d); - } finally { - isInsideEventHandler = prevIsInsideEventHandler; - - if (!isInsideEventHandler) { - finishEventHandler(); - } - } - } - function flushDiscreteUpdatesIfNeeded(timeStamp) { - // event.timeStamp isn't overly reliable due to inconsistencies in - // how different browsers have historically provided the time stamp. - // Some browsers provide high-resolution time stamps for all events, - // some provide low-resolution time stamps for all events. FF < 52 - // even mixes both time stamps together. Some browsers even report - // negative time stamps or time stamps that are 0 (iOS9) in some cases. - // Given we are only comparing two time stamps with equality (!==), - // we are safe from the resolution differences. If the time stamp is 0 - // we bail-out of preventing the flush, which can affect semantics, - // such as if an earlier flush removes or adds event listeners that - // are fired in the subsequent flush. However, this is the same - // behaviour as we had before this change, so the risks are low. - if (!isInsideEventHandler && (!enableDeprecatedFlareAPI )) { - flushDiscreteUpdatesImpl(); - } - } - function setBatchingImplementation(_batchedUpdatesImpl, _discreteUpdatesImpl, _flushDiscreteUpdatesImpl, _batchedEventUpdatesImpl) { - batchedUpdatesImpl = _batchedUpdatesImpl; - discreteUpdatesImpl = _discreteUpdatesImpl; - flushDiscreteUpdatesImpl = _flushDiscreteUpdatesImpl; - batchedEventUpdatesImpl = _batchedEventUpdatesImpl; - } - - var DiscreteEvent = 0; - var UserBlockingEvent = 1; - var ContinuousEvent = 2; - - var ReactInternals$1 = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED; - var _ReactInternals$Sched = ReactInternals$1.Scheduler, - unstable_cancelCallback = _ReactInternals$Sched.unstable_cancelCallback, - unstable_now = _ReactInternals$Sched.unstable_now, - unstable_scheduleCallback = _ReactInternals$Sched.unstable_scheduleCallback, - unstable_shouldYield = _ReactInternals$Sched.unstable_shouldYield, - unstable_requestPaint = _ReactInternals$Sched.unstable_requestPaint, - unstable_getFirstCallbackNode = _ReactInternals$Sched.unstable_getFirstCallbackNode, - unstable_runWithPriority = _ReactInternals$Sched.unstable_runWithPriority, - unstable_next = _ReactInternals$Sched.unstable_next, - unstable_continueExecution = _ReactInternals$Sched.unstable_continueExecution, - unstable_pauseExecution = _ReactInternals$Sched.unstable_pauseExecution, - unstable_getCurrentPriorityLevel = _ReactInternals$Sched.unstable_getCurrentPriorityLevel, - unstable_ImmediatePriority = _ReactInternals$Sched.unstable_ImmediatePriority, - unstable_UserBlockingPriority = _ReactInternals$Sched.unstable_UserBlockingPriority, - unstable_NormalPriority = _ReactInternals$Sched.unstable_NormalPriority, - unstable_LowPriority = _ReactInternals$Sched.unstable_LowPriority, - unstable_IdlePriority = _ReactInternals$Sched.unstable_IdlePriority, - unstable_forceFrameRate = _ReactInternals$Sched.unstable_forceFrameRate, - unstable_flushAllWithoutAsserting = _ReactInternals$Sched.unstable_flushAllWithoutAsserting; - - // A reserved attribute. - // It is handled by React separately and shouldn't be written to the DOM. - var RESERVED = 0; // A simple string attribute. - // Attributes that aren't in the whitelist are presumed to have this type. - - var STRING = 1; // A string attribute that accepts booleans in React. In HTML, these are called - // "enumerated" attributes with "true" and "false" as possible values. - // When true, it should be set to a "true" string. - // When false, it should be set to a "false" string. - - var BOOLEANISH_STRING = 2; // A real boolean attribute. - // When true, it should be present (set either to an empty string or its name). - // When false, it should be omitted. - - var BOOLEAN = 3; // An attribute that can be used as a flag as well as with a value. - // When true, it should be present (set either to an empty string or its name). - // When false, it should be omitted. - // For any other value, should be present with that value. - - var OVERLOADED_BOOLEAN = 4; // An attribute that must be numeric or parse as a numeric. - // When falsy, it should be removed. - - var NUMERIC = 5; // An attribute that must be positive numeric or parse as a positive numeric. - // When falsy, it should be removed. - - var POSITIVE_NUMERIC = 6; - - /* eslint-disable max-len */ - var ATTRIBUTE_NAME_START_CHAR = ":A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD"; - /* eslint-enable max-len */ - - var ATTRIBUTE_NAME_CHAR = ATTRIBUTE_NAME_START_CHAR + "\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040"; - var ROOT_ATTRIBUTE_NAME = 'data-reactroot'; - var VALID_ATTRIBUTE_NAME_REGEX = new RegExp('^[' + ATTRIBUTE_NAME_START_CHAR + '][' + ATTRIBUTE_NAME_CHAR + ']*$'); - var hasOwnProperty = Object.prototype.hasOwnProperty; - var illegalAttributeNameCache = {}; - var validatedAttributeNameCache = {}; - function isAttributeNameSafe(attributeName) { - if (hasOwnProperty.call(validatedAttributeNameCache, attributeName)) { - return true; - } - - if (hasOwnProperty.call(illegalAttributeNameCache, attributeName)) { - return false; - } - - if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName)) { - validatedAttributeNameCache[attributeName] = true; - return true; - } - - illegalAttributeNameCache[attributeName] = true; - - { - error('Invalid attribute name: `%s`', attributeName); - } - - return false; - } - function shouldIgnoreAttribute(name, propertyInfo, isCustomComponentTag) { - if (propertyInfo !== null) { - return propertyInfo.type === RESERVED; - } - - if (isCustomComponentTag) { - return false; - } - - if (name.length > 2 && (name[0] === 'o' || name[0] === 'O') && (name[1] === 'n' || name[1] === 'N')) { - return true; - } - - return false; - } - function shouldRemoveAttributeWithWarning(name, value, propertyInfo, isCustomComponentTag) { - if (propertyInfo !== null && propertyInfo.type === RESERVED) { - return false; - } - - switch (typeof value) { - case 'function': // $FlowIssue symbol is perfectly valid here - - case 'symbol': - // eslint-disable-line - return true; - - case 'boolean': - { - if (isCustomComponentTag) { - return false; - } - - if (propertyInfo !== null) { - return !propertyInfo.acceptsBooleans; - } else { - var prefix = name.toLowerCase().slice(0, 5); - return prefix !== 'data-' && prefix !== 'aria-'; - } - } - - default: - return false; - } - } - function shouldRemoveAttribute(name, value, propertyInfo, isCustomComponentTag) { - if (value === null || typeof value === 'undefined') { - return true; - } - - if (shouldRemoveAttributeWithWarning(name, value, propertyInfo, isCustomComponentTag)) { - return true; - } - - if (isCustomComponentTag) { - return false; - } - - if (propertyInfo !== null) { - switch (propertyInfo.type) { - case BOOLEAN: - return !value; - - case OVERLOADED_BOOLEAN: - return value === false; - - case NUMERIC: - return isNaN(value); - - case POSITIVE_NUMERIC: - return isNaN(value) || value < 1; - } - } - - return false; - } - function getPropertyInfo(name) { - return properties.hasOwnProperty(name) ? properties[name] : null; - } - - function PropertyInfoRecord(name, type, mustUseProperty, attributeName, attributeNamespace, sanitizeURL) { - this.acceptsBooleans = type === BOOLEANISH_STRING || type === BOOLEAN || type === OVERLOADED_BOOLEAN; - this.attributeName = attributeName; - this.attributeNamespace = attributeNamespace; - this.mustUseProperty = mustUseProperty; - this.propertyName = name; - this.type = type; - this.sanitizeURL = sanitizeURL; - } // When adding attributes to this list, be sure to also add them to - // the `possibleStandardNames` module to ensure casing and incorrect - // name warnings. - - - var properties = {}; // These props are reserved by React. They shouldn't be written to the DOM. - - var reservedProps = ['children', 'dangerouslySetInnerHTML', // TODO: This prevents the assignment of defaultValue to regular - // elements (not just inputs). Now that ReactDOMInput assigns to the - // defaultValue property -- do we need this? - 'defaultValue', 'defaultChecked', 'innerHTML', 'suppressContentEditableWarning', 'suppressHydrationWarning', 'style']; - - reservedProps.forEach(function (name) { - properties[name] = new PropertyInfoRecord(name, RESERVED, false, // mustUseProperty - name, // attributeName - null, // attributeNamespace - false); - }); // A few React string attributes have a different name. - // This is a mapping from React prop names to the attribute names. - - [['acceptCharset', 'accept-charset'], ['className', 'class'], ['htmlFor', 'for'], ['httpEquiv', 'http-equiv']].forEach(function (_ref) { - var name = _ref[0], - attributeName = _ref[1]; - properties[name] = new PropertyInfoRecord(name, STRING, false, // mustUseProperty - attributeName, // attributeName - null, // attributeNamespace - false); - }); // These are "enumerated" HTML attributes that accept "true" and "false". - // In React, we let users pass `true` and `false` even though technically - // these aren't boolean attributes (they are coerced to strings). - - ['contentEditable', 'draggable', 'spellCheck', 'value'].forEach(function (name) { - properties[name] = new PropertyInfoRecord(name, BOOLEANISH_STRING, false, // mustUseProperty - name.toLowerCase(), // attributeName - null, // attributeNamespace - false); - }); // These are "enumerated" SVG attributes that accept "true" and "false". - // In React, we let users pass `true` and `false` even though technically - // these aren't boolean attributes (they are coerced to strings). - // Since these are SVG attributes, their attribute names are case-sensitive. - - ['autoReverse', 'externalResourcesRequired', 'focusable', 'preserveAlpha'].forEach(function (name) { - properties[name] = new PropertyInfoRecord(name, BOOLEANISH_STRING, false, // mustUseProperty - name, // attributeName - null, // attributeNamespace - false); - }); // These are HTML boolean attributes. - - ['allowFullScreen', 'async', // Note: there is a special case that prevents it from being written to the DOM - // on the client side because the browsers are inconsistent. Instead we call focus(). - 'autoFocus', 'autoPlay', 'controls', 'default', 'defer', 'disabled', 'disablePictureInPicture', 'formNoValidate', 'hidden', 'loop', 'noModule', 'noValidate', 'open', 'playsInline', 'readOnly', 'required', 'reversed', 'scoped', 'seamless', // Microdata - 'itemScope'].forEach(function (name) { - properties[name] = new PropertyInfoRecord(name, BOOLEAN, false, // mustUseProperty - name.toLowerCase(), // attributeName - null, // attributeNamespace - false); - }); // These are the few React props that we set as DOM properties - // rather than attributes. These are all booleans. - - ['checked', // Note: `option.selected` is not updated if `select.multiple` is - // disabled with `removeAttribute`. We have special logic for handling this. - 'multiple', 'muted', 'selected' // NOTE: if you add a camelCased prop to this list, - // you'll need to set attributeName to name.toLowerCase() - // instead in the assignment below. - ].forEach(function (name) { - properties[name] = new PropertyInfoRecord(name, BOOLEAN, true, // mustUseProperty - name, // attributeName - null, // attributeNamespace - false); - }); // These are HTML attributes that are "overloaded booleans": they behave like - // booleans, but can also accept a string value. - - ['capture', 'download' // NOTE: if you add a camelCased prop to this list, - // you'll need to set attributeName to name.toLowerCase() - // instead in the assignment below. - ].forEach(function (name) { - properties[name] = new PropertyInfoRecord(name, OVERLOADED_BOOLEAN, false, // mustUseProperty - name, // attributeName - null, // attributeNamespace - false); - }); // These are HTML attributes that must be positive numbers. - - ['cols', 'rows', 'size', 'span' // NOTE: if you add a camelCased prop to this list, - // you'll need to set attributeName to name.toLowerCase() - // instead in the assignment below. - ].forEach(function (name) { - properties[name] = new PropertyInfoRecord(name, POSITIVE_NUMERIC, false, // mustUseProperty - name, // attributeName - null, // attributeNamespace - false); - }); // These are HTML attributes that must be numbers. - - ['rowSpan', 'start'].forEach(function (name) { - properties[name] = new PropertyInfoRecord(name, NUMERIC, false, // mustUseProperty - name.toLowerCase(), // attributeName - null, // attributeNamespace - false); - }); - var CAMELIZE = /[\-\:]([a-z])/g; - - var capitalize = function (token) { - return token[1].toUpperCase(); - }; // This is a list of all SVG attributes that need special casing, namespacing, - // or boolean value assignment. Regular attributes that just accept strings - // and have the same names are omitted, just like in the HTML whitelist. - // Some of these attributes can be hard to find. This list was created by - // scraping the MDN documentation. - - - ['accent-height', 'alignment-baseline', 'arabic-form', 'baseline-shift', 'cap-height', 'clip-path', 'clip-rule', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'dominant-baseline', 'enable-background', 'fill-opacity', 'fill-rule', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'glyph-name', 'glyph-orientation-horizontal', 'glyph-orientation-vertical', 'horiz-adv-x', 'horiz-origin-x', 'image-rendering', 'letter-spacing', 'lighting-color', 'marker-end', 'marker-mid', 'marker-start', 'overline-position', 'overline-thickness', 'paint-order', 'panose-1', 'pointer-events', 'rendering-intent', 'shape-rendering', 'stop-color', 'stop-opacity', 'strikethrough-position', 'strikethrough-thickness', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke-width', 'text-anchor', 'text-decoration', 'text-rendering', 'underline-position', 'underline-thickness', 'unicode-bidi', 'unicode-range', 'units-per-em', 'v-alphabetic', 'v-hanging', 'v-ideographic', 'v-mathematical', 'vector-effect', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'word-spacing', 'writing-mode', 'xmlns:xlink', 'x-height' // NOTE: if you add a camelCased prop to this list, - // you'll need to set attributeName to name.toLowerCase() - // instead in the assignment below. - ].forEach(function (attributeName) { - var name = attributeName.replace(CAMELIZE, capitalize); - properties[name] = new PropertyInfoRecord(name, STRING, false, // mustUseProperty - attributeName, null, // attributeNamespace - false); - }); // String SVG attributes with the xlink namespace. - - ['xlink:actuate', 'xlink:arcrole', 'xlink:role', 'xlink:show', 'xlink:title', 'xlink:type' // NOTE: if you add a camelCased prop to this list, - // you'll need to set attributeName to name.toLowerCase() - // instead in the assignment below. - ].forEach(function (attributeName) { - var name = attributeName.replace(CAMELIZE, capitalize); - properties[name] = new PropertyInfoRecord(name, STRING, false, // mustUseProperty - attributeName, 'http://www.w3.org/1999/xlink', false); - }); // String SVG attributes with the xml namespace. - - ['xml:base', 'xml:lang', 'xml:space' // NOTE: if you add a camelCased prop to this list, - // you'll need to set attributeName to name.toLowerCase() - // instead in the assignment below. - ].forEach(function (attributeName) { - var name = attributeName.replace(CAMELIZE, capitalize); - properties[name] = new PropertyInfoRecord(name, STRING, false, // mustUseProperty - attributeName, 'http://www.w3.org/XML/1998/namespace', false); - }); // These attribute exists both in HTML and SVG. - // The attribute name is case-sensitive in SVG so we can't just use - // the React name like we do for attributes that exist only in HTML. - - ['tabIndex', 'crossOrigin'].forEach(function (attributeName) { - properties[attributeName] = new PropertyInfoRecord(attributeName, STRING, false, // mustUseProperty - attributeName.toLowerCase(), // attributeName - null, // attributeNamespace - false); - }); // These attributes accept URLs. These must not allow javascript: URLS. - // These will also need to accept Trusted Types object in the future. - - var xlinkHref = 'xlinkHref'; - properties[xlinkHref] = new PropertyInfoRecord('xlinkHref', STRING, false, // mustUseProperty - 'xlink:href', 'http://www.w3.org/1999/xlink', true); - ['src', 'href', 'action', 'formAction'].forEach(function (attributeName) { - properties[attributeName] = new PropertyInfoRecord(attributeName, STRING, false, // mustUseProperty - attributeName.toLowerCase(), // attributeName - null, // attributeNamespace - true); - }); - - var ReactDebugCurrentFrame = null; - - { - ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame; - } // A javascript: URL can contain leading C0 control or \u0020 SPACE, - // and any newline or tab are filtered out as if they're not part of the URL. - // https://url.spec.whatwg.org/#url-parsing - // Tab or newline are defined as \r\n\t: - // https://infra.spec.whatwg.org/#ascii-tab-or-newline - // A C0 control is a code point in the range \u0000 NULL to \u001F - // INFORMATION SEPARATOR ONE, inclusive: - // https://infra.spec.whatwg.org/#c0-control-or-space - - /* eslint-disable max-len */ - - - var isJavaScriptProtocol = /^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*\:/i; - var didWarn = false; - - function sanitizeURL(url) { - { - if (!didWarn && isJavaScriptProtocol.test(url)) { - didWarn = true; - - error('A future version of React will block javascript: URLs as a security precaution. ' + 'Use event handlers instead if you can. If you need to generate unsafe HTML try ' + 'using dangerouslySetInnerHTML instead. React was passed %s.', JSON.stringify(url)); - } - } - } - - /** - * Get the value for a property on a node. Only used in DEV for SSR validation. - * The "expected" argument is used as a hint of what the expected value is. - * Some properties have multiple equivalent values. - */ - function getValueForProperty(node, name, expected, propertyInfo) { - { - if (propertyInfo.mustUseProperty) { - var propertyName = propertyInfo.propertyName; - return node[propertyName]; - } else { - if ( propertyInfo.sanitizeURL) { - // If we haven't fully disabled javascript: URLs, and if - // the hydration is successful of a javascript: URL, we - // still want to warn on the client. - sanitizeURL('' + expected); - } - - var attributeName = propertyInfo.attributeName; - var stringValue = null; - - if (propertyInfo.type === OVERLOADED_BOOLEAN) { - if (node.hasAttribute(attributeName)) { - var value = node.getAttribute(attributeName); - - if (value === '') { - return true; - } - - if (shouldRemoveAttribute(name, expected, propertyInfo, false)) { - return value; - } - - if (value === '' + expected) { - return expected; - } - - return value; - } - } else if (node.hasAttribute(attributeName)) { - if (shouldRemoveAttribute(name, expected, propertyInfo, false)) { - // We had an attribute but shouldn't have had one, so read it - // for the error message. - return node.getAttribute(attributeName); - } - - if (propertyInfo.type === BOOLEAN) { - // If this was a boolean, it doesn't matter what the value is - // the fact that we have it is the same as the expected. - return expected; - } // Even if this property uses a namespace we use getAttribute - // because we assume its namespaced name is the same as our config. - // To use getAttributeNS we need the local name which we don't have - // in our config atm. - - - stringValue = node.getAttribute(attributeName); - } - - if (shouldRemoveAttribute(name, expected, propertyInfo, false)) { - return stringValue === null ? expected : stringValue; - } else if (stringValue === '' + expected) { - return expected; - } else { - return stringValue; - } - } - } - } - /** - * Get the value for a attribute on a node. Only used in DEV for SSR validation. - * The third argument is used as a hint of what the expected value is. Some - * attributes have multiple equivalent values. - */ - - function getValueForAttribute(node, name, expected) { - { - if (!isAttributeNameSafe(name)) { - return; - } - - if (!node.hasAttribute(name)) { - return expected === undefined ? undefined : null; - } - - var value = node.getAttribute(name); - - if (value === '' + expected) { - return expected; - } - - return value; - } - } - /** - * Sets the value for a property on a node. - * - * @param {DOMElement} node - * @param {string} name - * @param {*} value - */ - - function setValueForProperty(node, name, value, isCustomComponentTag) { - var propertyInfo = getPropertyInfo(name); - - if (shouldIgnoreAttribute(name, propertyInfo, isCustomComponentTag)) { - return; - } - - if (shouldRemoveAttribute(name, value, propertyInfo, isCustomComponentTag)) { - value = null; - } // If the prop isn't in the special list, treat it as a simple attribute. - - - if (isCustomComponentTag || propertyInfo === null) { - if (isAttributeNameSafe(name)) { - var _attributeName = name; - - if (value === null) { - node.removeAttribute(_attributeName); - } else { - node.setAttribute(_attributeName, '' + value); - } - } - - return; - } - - var mustUseProperty = propertyInfo.mustUseProperty; - - if (mustUseProperty) { - var propertyName = propertyInfo.propertyName; - - if (value === null) { - var type = propertyInfo.type; - node[propertyName] = type === BOOLEAN ? false : ''; - } else { - // Contrary to `setAttribute`, object properties are properly - // `toString`ed by IE8/9. - node[propertyName] = value; - } - - return; - } // The rest are treated as attributes with special cases. - - - var attributeName = propertyInfo.attributeName, - attributeNamespace = propertyInfo.attributeNamespace; - - if (value === null) { - node.removeAttribute(attributeName); - } else { - var _type = propertyInfo.type; - var attributeValue; - - if (_type === BOOLEAN || _type === OVERLOADED_BOOLEAN && value === true) { - // If attribute type is boolean, we know for sure it won't be an execution sink - // and we won't require Trusted Type here. - attributeValue = ''; - } else { - // `setAttribute` with objects becomes only `[object]` in IE8/9, - // ('' + value) makes it output the correct toString()-value. - { - attributeValue = '' + value; - } - - if (propertyInfo.sanitizeURL) { - sanitizeURL(attributeValue.toString()); - } - } - - if (attributeNamespace) { - node.setAttributeNS(attributeNamespace, attributeName, attributeValue); - } else { - node.setAttribute(attributeName, attributeValue); - } - } - } - - var BEFORE_SLASH_RE = /^(.*)[\\\/]/; - function describeComponentFrame (name, source, ownerName) { - var sourceInfo = ''; - - if (source) { - var path = source.fileName; - var fileName = path.replace(BEFORE_SLASH_RE, ''); - - { - // In DEV, include code for a common special case: - // prefer "folder/index.js" instead of just "index.js". - if (/^index\./.test(fileName)) { - var match = path.match(BEFORE_SLASH_RE); - - if (match) { - var pathBeforeSlash = match[1]; - - if (pathBeforeSlash) { - var folderName = pathBeforeSlash.replace(BEFORE_SLASH_RE, ''); - fileName = folderName + '/' + fileName; - } - } - } - } - - sourceInfo = ' (at ' + fileName + ':' + source.lineNumber + ')'; - } else if (ownerName) { - sourceInfo = ' (created by ' + ownerName + ')'; - } - - return '\n in ' + (name || 'Unknown') + sourceInfo; - } - - // The Symbol used to tag the ReactElement-like types. If there is no native Symbol - // nor polyfill, then a plain number is used for performance. - var hasSymbol = typeof Symbol === 'function' && Symbol.for; - var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7; - var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca; - var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb; - var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc; - var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2; - var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd; - var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary - var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf; - var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0; - var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1; - var REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8; - var REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3; - var REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4; - var REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9; - var MAYBE_ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator; - var FAUX_ITERATOR_SYMBOL = '@@iterator'; - function getIteratorFn(maybeIterable) { - if (maybeIterable === null || typeof maybeIterable !== 'object') { - return null; - } - - var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]; - - if (typeof maybeIterator === 'function') { - return maybeIterator; - } - - return null; - } - - var Uninitialized = -1; - var Pending = 0; - var Resolved = 1; - var Rejected = 2; - function refineResolvedLazyComponent(lazyComponent) { - return lazyComponent._status === Resolved ? lazyComponent._result : null; - } - function initializeLazyComponentType(lazyComponent) { - if (lazyComponent._status === Uninitialized) { - lazyComponent._status = Pending; - var ctor = lazyComponent._ctor; - var thenable = ctor(); - lazyComponent._result = thenable; - thenable.then(function (moduleObject) { - if (lazyComponent._status === Pending) { - var defaultExport = moduleObject.default; - - { - if (defaultExport === undefined) { - error('lazy: Expected the result of a dynamic import() call. ' + 'Instead received: %s\n\nYour code should look like: \n ' + "const MyComponent = lazy(() => import('./MyComponent'))", moduleObject); - } - } - - lazyComponent._status = Resolved; - lazyComponent._result = defaultExport; - } - }, function (error) { - if (lazyComponent._status === Pending) { - lazyComponent._status = Rejected; - lazyComponent._result = error; - } - }); - } - } - - function getWrappedName(outerType, innerType, wrapperName) { - var functionName = innerType.displayName || innerType.name || ''; - return outerType.displayName || (functionName !== '' ? wrapperName + "(" + functionName + ")" : wrapperName); - } - - function getComponentName(type) { - if (type == null) { - // Host root, text node or just invalid type. - return null; - } - - { - if (typeof type.tag === 'number') { - error('Received an unexpected object in getComponentName(). ' + 'This is likely a bug in React. Please file an issue.'); - } - } - - if (typeof type === 'function') { - return type.displayName || type.name || null; - } - - if (typeof type === 'string') { - return type; - } - - switch (type) { - case REACT_FRAGMENT_TYPE: - return 'Fragment'; - - case REACT_PORTAL_TYPE: - return 'Portal'; - - case REACT_PROFILER_TYPE: - return "Profiler"; - - case REACT_STRICT_MODE_TYPE: - return 'StrictMode'; - - case REACT_SUSPENSE_TYPE: - return 'Suspense'; - - case REACT_SUSPENSE_LIST_TYPE: - return 'SuspenseList'; - } - - if (typeof type === 'object') { - switch (type.$$typeof) { - case REACT_CONTEXT_TYPE: - return 'Context.Consumer'; - - case REACT_PROVIDER_TYPE: - return 'Context.Provider'; - - case REACT_FORWARD_REF_TYPE: - return getWrappedName(type, type.render, 'ForwardRef'); - - case REACT_MEMO_TYPE: - return getComponentName(type.type); - - case REACT_BLOCK_TYPE: - return getComponentName(type.render); - - case REACT_LAZY_TYPE: - { - var thenable = type; - var resolvedThenable = refineResolvedLazyComponent(thenable); - - if (resolvedThenable) { - return getComponentName(resolvedThenable); - } - - break; - } - } - } - - return null; - } - - var ReactDebugCurrentFrame$1 = ReactSharedInternals.ReactDebugCurrentFrame; - - function describeFiber(fiber) { - switch (fiber.tag) { - case HostRoot: - case HostPortal: - case HostText: - case Fragment: - case ContextProvider: - case ContextConsumer: - return ''; - - default: - var owner = fiber._debugOwner; - var source = fiber._debugSource; - var name = getComponentName(fiber.type); - var ownerName = null; - - if (owner) { - ownerName = getComponentName(owner.type); - } - - return describeComponentFrame(name, source, ownerName); - } - } - - function getStackByFiberInDevAndProd(workInProgress) { - var info = ''; - var node = workInProgress; - - do { - info += describeFiber(node); - node = node.return; - } while (node); - - return info; - } - var current = null; - var isRendering = false; - function getCurrentFiberOwnerNameInDevOrNull() { - { - if (current === null) { - return null; - } - - var owner = current._debugOwner; - - if (owner !== null && typeof owner !== 'undefined') { - return getComponentName(owner.type); - } - } - - return null; - } - function getCurrentFiberStackInDev() { - { - if (current === null) { - return ''; - } // Safe because if current fiber exists, we are reconciling, - // and it is guaranteed to be the work-in-progress version. - - - return getStackByFiberInDevAndProd(current); - } - } - function resetCurrentFiber() { - { - ReactDebugCurrentFrame$1.getCurrentStack = null; - current = null; - isRendering = false; - } - } - function setCurrentFiber(fiber) { - { - ReactDebugCurrentFrame$1.getCurrentStack = getCurrentFiberStackInDev; - current = fiber; - isRendering = false; - } - } - function setIsRendering(rendering) { - { - isRendering = rendering; - } - } - - // Flow does not allow string concatenation of most non-string types. To work - // around this limitation, we use an opaque type that can only be obtained by - // passing the value through getToStringValue first. - function toString(value) { - return '' + value; - } - function getToStringValue(value) { - switch (typeof value) { - case 'boolean': - case 'number': - case 'object': - case 'string': - case 'undefined': - return value; - - default: - // function, symbol are assigned as empty strings - return ''; - } - } - - /** - * Copyright (c) 2013-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - - var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED'; - - var ReactPropTypesSecret_1 = ReactPropTypesSecret; - - var printWarning$1 = function() {}; - - { - var ReactPropTypesSecret$1 = ReactPropTypesSecret_1; - var loggedTypeFailures = {}; - var has = Function.call.bind(Object.prototype.hasOwnProperty); - - printWarning$1 = function(text) { - var message = 'Warning: ' + text; - if (typeof console !== 'undefined') { - console.error(message); - } - try { - // --- Welcome to debugging React --- - // This error was thrown as a convenience so that you can use this stack - // to find the callsite that caused this warning to fire. - throw new Error(message); - } catch (x) {} - }; - } - - /** - * Assert that the values match with the type specs. - * Error messages are memorized and will only be shown once. - * - * @param {object} typeSpecs Map of name to a ReactPropType - * @param {object} values Runtime values that need to be type-checked - * @param {string} location e.g. "prop", "context", "child context" - * @param {string} componentName Name of the component for error messages. - * @param {?Function} getStack Returns the component stack. - * @private - */ - function checkPropTypes(typeSpecs, values, location, componentName, getStack) { - { - for (var typeSpecName in typeSpecs) { - if (has(typeSpecs, typeSpecName)) { - var error; - // Prop type validation may throw. In case they do, we don't want to - // fail the render phase where it didn't fail before. So we log it. - // After these have been cleaned up, we'll let them throw. - try { - // This is intentionally an invariant that gets caught. It's the same - // behavior as without this statement except with a better message. - if (typeof typeSpecs[typeSpecName] !== 'function') { - var err = Error( - (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + - 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' - ); - err.name = 'Invariant Violation'; - throw err; - } - error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret$1); - } catch (ex) { - error = ex; - } - if (error && !(error instanceof Error)) { - printWarning$1( - (componentName || 'React class') + ': type specification of ' + - location + ' `' + typeSpecName + '` is invalid; the type checker ' + - 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' + - 'You may have forgotten to pass an argument to the type checker ' + - 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + - 'shape all require an argument).' - ); - } - if (error instanceof Error && !(error.message in loggedTypeFailures)) { - // Only monitor this failure once because there tends to be a lot of the - // same error. - loggedTypeFailures[error.message] = true; - - var stack = getStack ? getStack() : ''; - - printWarning$1( - 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '') - ); - } - } - } - } - } - - /** - * Resets warning cache when testing. - * - * @private - */ - checkPropTypes.resetWarningCache = function() { - { - loggedTypeFailures = {}; - } - }; - - var checkPropTypes_1 = checkPropTypes; - - var ReactDebugCurrentFrame$2 = null; - var ReactControlledValuePropTypes = { - checkPropTypes: null - }; - - { - ReactDebugCurrentFrame$2 = ReactSharedInternals.ReactDebugCurrentFrame; - var hasReadOnlyValue = { - button: true, - checkbox: true, - image: true, - hidden: true, - radio: true, - reset: true, - submit: true - }; - var propTypes = { - value: function (props, propName, componentName) { - if (hasReadOnlyValue[props.type] || props.onChange || props.readOnly || props.disabled || props[propName] == null || enableDeprecatedFlareAPI ) { - return null; - } - - return new Error('You provided a `value` prop to a form field without an ' + '`onChange` handler. This will render a read-only field. If ' + 'the field should be mutable use `defaultValue`. Otherwise, ' + 'set either `onChange` or `readOnly`.'); - }, - checked: function (props, propName, componentName) { - if (props.onChange || props.readOnly || props.disabled || props[propName] == null || enableDeprecatedFlareAPI ) { - return null; - } - - return new Error('You provided a `checked` prop to a form field without an ' + '`onChange` handler. This will render a read-only field. If ' + 'the field should be mutable use `defaultChecked`. Otherwise, ' + 'set either `onChange` or `readOnly`.'); - } - }; - /** - * Provide a linked `value` attribute for controlled forms. You should not use - * this outside of the ReactDOM controlled form components. - */ - - ReactControlledValuePropTypes.checkPropTypes = function (tagName, props) { - checkPropTypes_1(propTypes, props, 'prop', tagName, ReactDebugCurrentFrame$2.getStackAddendum); - }; - } - - function isCheckable(elem) { - var type = elem.type; - var nodeName = elem.nodeName; - return nodeName && nodeName.toLowerCase() === 'input' && (type === 'checkbox' || type === 'radio'); - } - - function getTracker(node) { - return node._valueTracker; - } - - function detachTracker(node) { - node._valueTracker = null; - } - - function getValueFromNode(node) { - var value = ''; - - if (!node) { - return value; - } - - if (isCheckable(node)) { - value = node.checked ? 'true' : 'false'; - } else { - value = node.value; - } - - return value; - } - - function trackValueOnNode(node) { - var valueField = isCheckable(node) ? 'checked' : 'value'; - var descriptor = Object.getOwnPropertyDescriptor(node.constructor.prototype, valueField); - var currentValue = '' + node[valueField]; // if someone has already defined a value or Safari, then bail - // and don't track value will cause over reporting of changes, - // but it's better then a hard failure - // (needed for certain tests that spyOn input values and Safari) - - if (node.hasOwnProperty(valueField) || typeof descriptor === 'undefined' || typeof descriptor.get !== 'function' || typeof descriptor.set !== 'function') { - return; - } - - var get = descriptor.get, - set = descriptor.set; - Object.defineProperty(node, valueField, { - configurable: true, - get: function () { - return get.call(this); - }, - set: function (value) { - currentValue = '' + value; - set.call(this, value); - } - }); // We could've passed this the first time - // but it triggers a bug in IE11 and Edge 14/15. - // Calling defineProperty() again should be equivalent. - // https://github.com/facebook/react/issues/11768 - - Object.defineProperty(node, valueField, { - enumerable: descriptor.enumerable - }); - var tracker = { - getValue: function () { - return currentValue; - }, - setValue: function (value) { - currentValue = '' + value; - }, - stopTracking: function () { - detachTracker(node); - delete node[valueField]; - } - }; - return tracker; - } - - function track(node) { - if (getTracker(node)) { - return; - } // TODO: Once it's just Fiber we can move this to node._wrapperState - - - node._valueTracker = trackValueOnNode(node); - } - function updateValueIfChanged(node) { - if (!node) { - return false; - } - - var tracker = getTracker(node); // if there is no tracker at this point it's unlikely - // that trying again will succeed - - if (!tracker) { - return true; - } - - var lastValue = tracker.getValue(); - var nextValue = getValueFromNode(node); - - if (nextValue !== lastValue) { - tracker.setValue(nextValue); - return true; - } - - return false; - } - - var didWarnValueDefaultValue = false; - var didWarnCheckedDefaultChecked = false; - var didWarnControlledToUncontrolled = false; - var didWarnUncontrolledToControlled = false; - - function isControlled(props) { - var usesChecked = props.type === 'checkbox' || props.type === 'radio'; - return usesChecked ? props.checked != null : props.value != null; - } - /** - * Implements an host component that allows setting these optional - * props: `checked`, `value`, `defaultChecked`, and `defaultValue`. - * - * If `checked` or `value` are not supplied (or null/undefined), user actions - * that affect the checked state or value will trigger updates to the element. - * - * If they are supplied (and not null/undefined), the rendered element will not - * trigger updates to the element. Instead, the props must change in order for - * the rendered element to be updated. - * - * The rendered element will be initialized as unchecked (or `defaultChecked`) - * with an empty value (or `defaultValue`). - * - * See http://www.w3.org/TR/2012/WD-html5-20121025/the-input-element.html - */ - - - function getHostProps(element, props) { - var node = element; - var checked = props.checked; - - var hostProps = _assign({}, props, { - defaultChecked: undefined, - defaultValue: undefined, - value: undefined, - checked: checked != null ? checked : node._wrapperState.initialChecked - }); - - return hostProps; - } - function initWrapperState(element, props) { - { - ReactControlledValuePropTypes.checkPropTypes('input', props); - - if (props.checked !== undefined && props.defaultChecked !== undefined && !didWarnCheckedDefaultChecked) { - error('%s contains an input of type %s with both checked and defaultChecked props. ' + 'Input elements must be either controlled or uncontrolled ' + '(specify either the checked prop, or the defaultChecked prop, but not ' + 'both). Decide between using a controlled or uncontrolled input ' + 'element and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components', getCurrentFiberOwnerNameInDevOrNull() || 'A component', props.type); - - didWarnCheckedDefaultChecked = true; - } - - if (props.value !== undefined && props.defaultValue !== undefined && !didWarnValueDefaultValue) { - error('%s contains an input of type %s with both value and defaultValue props. ' + 'Input elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled input ' + 'element and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components', getCurrentFiberOwnerNameInDevOrNull() || 'A component', props.type); - - didWarnValueDefaultValue = true; - } - } - - var node = element; - var defaultValue = props.defaultValue == null ? '' : props.defaultValue; - node._wrapperState = { - initialChecked: props.checked != null ? props.checked : props.defaultChecked, - initialValue: getToStringValue(props.value != null ? props.value : defaultValue), - controlled: isControlled(props) - }; - } - function updateChecked(element, props) { - var node = element; - var checked = props.checked; - - if (checked != null) { - setValueForProperty(node, 'checked', checked, false); - } - } - function updateWrapper(element, props) { - var node = element; - - { - var controlled = isControlled(props); - - if (!node._wrapperState.controlled && controlled && !didWarnUncontrolledToControlled) { - error('A component is changing an uncontrolled input of type %s to be controlled. ' + 'Input elements should not switch from uncontrolled to controlled (or vice versa). ' + 'Decide between using a controlled or uncontrolled input ' + 'element for the lifetime of the component. More info: https://fb.me/react-controlled-components', props.type); - - didWarnUncontrolledToControlled = true; - } - - if (node._wrapperState.controlled && !controlled && !didWarnControlledToUncontrolled) { - error('A component is changing a controlled input of type %s to be uncontrolled. ' + 'Input elements should not switch from controlled to uncontrolled (or vice versa). ' + 'Decide between using a controlled or uncontrolled input ' + 'element for the lifetime of the component. More info: https://fb.me/react-controlled-components', props.type); - - didWarnControlledToUncontrolled = true; - } - } - - updateChecked(element, props); - var value = getToStringValue(props.value); - var type = props.type; - - if (value != null) { - if (type === 'number') { - if (value === 0 && node.value === '' || // We explicitly want to coerce to number here if possible. - // eslint-disable-next-line - node.value != value) { - node.value = toString(value); - } - } else if (node.value !== toString(value)) { - node.value = toString(value); - } - } else if (type === 'submit' || type === 'reset') { - // Submit/reset inputs need the attribute removed completely to avoid - // blank-text buttons. - node.removeAttribute('value'); - return; - } - - { - // When syncing the value attribute, the value comes from a cascade of - // properties: - // 1. The value React property - // 2. The defaultValue React property - // 3. Otherwise there should be no change - if (props.hasOwnProperty('value')) { - setDefaultValue(node, props.type, value); - } else if (props.hasOwnProperty('defaultValue')) { - setDefaultValue(node, props.type, getToStringValue(props.defaultValue)); - } - } - - { - // When syncing the checked attribute, it only changes when it needs - // to be removed, such as transitioning from a checkbox into a text input - if (props.checked == null && props.defaultChecked != null) { - node.defaultChecked = !!props.defaultChecked; - } - } - } - function postMountWrapper(element, props, isHydrating) { - var node = element; // Do not assign value if it is already set. This prevents user text input - // from being lost during SSR hydration. - - if (props.hasOwnProperty('value') || props.hasOwnProperty('defaultValue')) { - var type = props.type; - var isButton = type === 'submit' || type === 'reset'; // Avoid setting value attribute on submit/reset inputs as it overrides the - // default value provided by the browser. See: #12872 - - if (isButton && (props.value === undefined || props.value === null)) { - return; - } - - var initialValue = toString(node._wrapperState.initialValue); // Do not assign value if it is already set. This prevents user text input - // from being lost during SSR hydration. - - if (!isHydrating) { - { - // When syncing the value attribute, the value property should use - // the wrapperState._initialValue property. This uses: - // - // 1. The value React property when present - // 2. The defaultValue React property when present - // 3. An empty string - if (initialValue !== node.value) { - node.value = initialValue; - } - } - } - - { - // Otherwise, the value attribute is synchronized to the property, - // so we assign defaultValue to the same thing as the value property - // assignment step above. - node.defaultValue = initialValue; - } - } // Normally, we'd just do `node.checked = node.checked` upon initial mount, less this bug - // this is needed to work around a chrome bug where setting defaultChecked - // will sometimes influence the value of checked (even after detachment). - // Reference: https://bugs.chromium.org/p/chromium/issues/detail?id=608416 - // We need to temporarily unset name to avoid disrupting radio button groups. - - - var name = node.name; - - if (name !== '') { - node.name = ''; - } - - { - // When syncing the checked attribute, both the checked property and - // attribute are assigned at the same time using defaultChecked. This uses: - // - // 1. The checked React property when present - // 2. The defaultChecked React property when present - // 3. Otherwise, false - node.defaultChecked = !node.defaultChecked; - node.defaultChecked = !!node._wrapperState.initialChecked; - } - - if (name !== '') { - node.name = name; - } - } - function restoreControlledState(element, props) { - var node = element; - updateWrapper(node, props); - updateNamedCousins(node, props); - } - - function updateNamedCousins(rootNode, props) { - var name = props.name; - - if (props.type === 'radio' && name != null) { - var queryRoot = rootNode; - - while (queryRoot.parentNode) { - queryRoot = queryRoot.parentNode; - } // If `rootNode.form` was non-null, then we could try `form.elements`, - // but that sometimes behaves strangely in IE8. We could also try using - // `form.getElementsByName`, but that will only return direct children - // and won't include inputs that use the HTML5 `form=` attribute. Since - // the input might not even be in a form. It might not even be in the - // document. Let's just use the local `querySelectorAll` to ensure we don't - // miss anything. - - - var group = queryRoot.querySelectorAll('input[name=' + JSON.stringify('' + name) + '][type="radio"]'); - - for (var i = 0; i < group.length; i++) { - var otherNode = group[i]; - - if (otherNode === rootNode || otherNode.form !== rootNode.form) { - continue; - } // This will throw if radio buttons rendered by different copies of React - // and the same name are rendered into the same form (same as #1939). - // That's probably okay; we don't support it just as we don't support - // mixing React radio buttons with non-React ones. - - - var otherProps = getFiberCurrentPropsFromNode$1(otherNode); - - if (!otherProps) { - { - throw Error( "ReactDOMInput: Mixing React and non-React radio inputs with the same `name` is not supported." ); - } - } // We need update the tracked value on the named cousin since the value - // was changed but the input saw no event or value set - - - updateValueIfChanged(otherNode); // If this is a controlled radio button group, forcing the input that - // was previously checked to update will cause it to be come re-checked - // as appropriate. - - updateWrapper(otherNode, otherProps); - } - } - } // In Chrome, assigning defaultValue to certain input types triggers input validation. - // For number inputs, the display value loses trailing decimal points. For email inputs, - // Chrome raises "The specified value is not a valid email address". - // - // Here we check to see if the defaultValue has actually changed, avoiding these problems - // when the user is inputting text - // - // https://github.com/facebook/react/issues/7253 - - - function setDefaultValue(node, type, value) { - if ( // Focused number inputs synchronize on blur. See ChangeEventPlugin.js - type !== 'number' || node.ownerDocument.activeElement !== node) { - if (value == null) { - node.defaultValue = toString(node._wrapperState.initialValue); - } else if (node.defaultValue !== toString(value)) { - node.defaultValue = toString(value); - } - } - } - - var didWarnSelectedSetOnOption = false; - var didWarnInvalidChild = false; - - function flattenChildren(children) { - var content = ''; // Flatten children. We'll warn if they are invalid - // during validateProps() which runs for hydration too. - // Note that this would throw on non-element objects. - // Elements are stringified (which is normally irrelevant - // but matters for ). - - React.Children.forEach(children, function (child) { - if (child == null) { - return; - } - - content += child; // Note: we don't warn about invalid children here. - // Instead, this is done separately below so that - // it happens during the hydration codepath too. - }); - return content; - } - /** - * Implements an