diff --git a/asset-manifest.json b/asset-manifest.json index c67265569..59ee552fd 100644 --- a/asset-manifest.json +++ b/asset-manifest.json @@ -55,13 +55,13 @@ "./static/js/38.b39f92cc.chunk.js": "/react/build/./static/js/38.b39f92cc.chunk.js", "./static/js/39.f2d850cd.chunk.js": "/react/build/./static/js/39.f2d850cd.chunk.js", "static/css/40.7965f855.chunk.css": "/react/build/static/css/40.7965f855.chunk.css", - "./static/js/40.9ad37d67.chunk.js": "/react/build/./static/js/40.9ad37d67.chunk.js", + "./static/js/40.eedb27f5.chunk.js": "/react/build/./static/js/40.eedb27f5.chunk.js", "static/css/41.a3fcb4bb.chunk.css": "/react/build/static/css/41.a3fcb4bb.chunk.css", "./static/js/41.7b8f69fb.chunk.js": "/react/build/./static/js/41.7b8f69fb.chunk.js", "static/css/42.ba2232b9.chunk.css": "/react/build/static/css/42.ba2232b9.chunk.css", "./static/js/42.c979f553.chunk.js": "/react/build/./static/js/42.c979f553.chunk.js", "static/css/43.0b1cfd5c.chunk.css": "/react/build/static/css/43.0b1cfd5c.chunk.css", - "./static/js/43.c8e97a11.chunk.js": "/react/build/./static/js/43.c8e97a11.chunk.js", + "./static/js/43.ecce6e7b.chunk.js": "/react/build/./static/js/43.ecce6e7b.chunk.js", "static/css/44.d55eee2b.chunk.css": "/react/build/static/css/44.d55eee2b.chunk.css", "./static/js/44.c1655e48.chunk.js": "/react/build/./static/js/44.c1655e48.chunk.js", "static/css/45.b18c23b3.chunk.css": "/react/build/static/css/45.b18c23b3.chunk.css", @@ -315,7 +315,7 @@ "./static/js/218.3535b462.chunk.js": "/react/build/./static/js/218.3535b462.chunk.js", "main.css": "/react/build/static/css/main.8cfd9dcc.chunk.css", "main.js": "/react/build/./static/js/main.7f970a2a.chunk.js", - "runtime~main.js": "/react/build/./static/js/runtime~main.825320ec.js", + "runtime~main.js": "/react/build/./static/js/runtime~main.dc3bd0fa.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", diff --git a/index.html b/index.html index 1bcd80fbc..3176c6a15 100644 --- a/index.html +++ b/index.html @@ -1 +1 @@ -
\ No newline at end of file +
\ No newline at end of file diff --git a/service-worker.js b/service-worker.js index 25d62bb06..1e1ac5570 100644 --- a/service-worker.js +++ b/service-worker.js @@ -1 +1 @@ -"use strict";var precacheConfig=[["/react/build/css.worker.js","abadf65f7ed870870dccf00a50b3c6ef"],["/react/build/editor.worker.js","2a381dfa06623f377bb84adbc7b38062"],["/react/build/html.worker.js","028952cd3f435d71d238edcdc2ef2967"],["/react/build/index.html","7a5a75b62f9fe5f5b948682da283708d"],["/react/build/json.worker.js","4a4ca127f837beaf0dddae0c74c81b57"],["/react/build/static/css/101.06ee28b8.chunk.css","738dd16bc186439eabccab7ebe2d1cd0"],["/react/build/static/css/102.15253a67.chunk.css","cc03c8bd582e5fb3cf3cb57075905fe6"],["/react/build/static/css/104.fd3fa2e9.chunk.css","97c0f9c3d8d16c05584bec1ce645cda0"],["/react/build/static/css/106.2646da34.chunk.css","fd35f6d45b8f2b74b2b2fc747da42787"],["/react/build/static/css/110.3598c90d.chunk.css","38f999c01692bf8d8bcfc4cd1a133500"],["/react/build/static/css/112.b6f629c2.chunk.css","9bee0d5efe580a886a06f342d0953f1d"],["/react/build/static/css/113.9d206204.chunk.css","e363ea281af9e616a0d144154b88c8f8"],["/react/build/static/css/114.ebddf6de.chunk.css","b16daaeaf671a9a92b48715bf9f0f31e"],["/react/build/static/css/115.e2a8a600.chunk.css","a3e000826e9e975f288a5067c577c213"],["/react/build/static/css/116.9d206204.chunk.css","e363ea281af9e616a0d144154b88c8f8"],["/react/build/static/css/117.9d206204.chunk.css","e363ea281af9e616a0d144154b88c8f8"],["/react/build/static/css/118.35b1feac.chunk.css","0b43c1534cd52029318ecc64bc16cd82"],["/react/build/static/css/119.cdd78914.chunk.css","c8fa03c8951406a0c6dedbc44275a66c"],["/react/build/static/css/12.3634cedd.chunk.css","5d39578b91b84e925bd702d0d56a0ea2"],["/react/build/static/css/120.142cff28.chunk.css","e2d1282e7d68f47cc9a754940877e251"],["/react/build/static/css/121.11a04942.chunk.css","1373d0214c811e25b7c1763ef9cf3287"],["/react/build/static/css/125.15253a67.chunk.css","cc03c8bd582e5fb3cf3cb57075905fe6"],["/react/build/static/css/126.8a2a0d50.chunk.css","3c152d150d71ca1d782cbce74e83545a"],["/react/build/static/css/128.adba6539.chunk.css","2a7331558acec08d91f6776ad403e5a1"],["/react/build/static/css/129.d55eee2b.chunk.css","89054b142bc94091801546a746d255db"],["/react/build/static/css/131.fd5c069f.chunk.css","dc736ebb1d70ad8f92c50296bc5c21c2"],["/react/build/static/css/132.cbc5dafa.chunk.css","0d00c4a2d6cc383c8b2a40a24378d281"],["/react/build/static/css/133.2f409942.chunk.css","6f1d0eaeed7a282caf0ce33adaef0898"],["/react/build/static/css/139.c0242127.chunk.css","3de2e94ba931d38eb377530c8ea1be89"],["/react/build/static/css/140.775a0135.chunk.css","b08de3e38a8ca8a9566465e5f8e7b183"],["/react/build/static/css/141.188a7db8.chunk.css","d365448e4d5cdef07410d3ba784e1364"],["/react/build/static/css/142.9df86194.chunk.css","dae2a89b8b4b9577d529ccdc67b2bd1b"],["/react/build/static/css/143.d55eee2b.chunk.css","89054b142bc94091801546a746d255db"],["/react/build/static/css/144.d55eee2b.chunk.css","89054b142bc94091801546a746d255db"],["/react/build/static/css/145.d55eee2b.chunk.css","89054b142bc94091801546a746d255db"],["/react/build/static/css/146.1e103c31.chunk.css","d7a9f0ce5623c1a832cbed8af8deb779"],["/react/build/static/css/147.f2060fe7.chunk.css","3dc3569f98f0d43324c3871cc5623426"],["/react/build/static/css/148.f9d1b577.chunk.css","f9b149d2ed650f6b4ec24b09d29f3e4e"],["/react/build/static/css/15.d23100bf.chunk.css","849793163ceba269d8afe246ff025d7a"],["/react/build/static/css/151.09d927dd.chunk.css","21b5e0861d5ba04df287b13341a1a5ce"],["/react/build/static/css/152.9d206204.chunk.css","e363ea281af9e616a0d144154b88c8f8"],["/react/build/static/css/18.71841e44.chunk.css","03bacc5e11b7e944df2d8edb38efd003"],["/react/build/static/css/22.1305617c.chunk.css","cc9ab2ccf1939eb7a572d5e9606a3853"],["/react/build/static/css/24.d55eee2b.chunk.css","89054b142bc94091801546a746d255db"],["/react/build/static/css/25.e07ba0f4.chunk.css","250d27b250016a8616eeed7f005038ec"],["/react/build/static/css/31.70ca0113.chunk.css","e795affdc09e234ba4c3a608a69ed0f0"],["/react/build/static/css/32.e8a90923.chunk.css","5fb37497699e9bd6f332204b762a1c0c"],["/react/build/static/css/33.78a1ba5d.chunk.css","83a2ab1e5c6be84e927fda72b983d73e"],["/react/build/static/css/34.13844439.chunk.css","1ce0064541c8135bddbbfe85b5cb5f77"],["/react/build/static/css/35.b1394162.chunk.css","f397bad8e2d5ff56f4a9c63ad86f35db"],["/react/build/static/css/36.c61ae118.chunk.css","37dce675a2709225c047150bb93768e2"],["/react/build/static/css/37.efc74ccb.chunk.css","ac3b5a3f969d0d00b5ee642cb490baa9"],["/react/build/static/css/38.d7a84567.chunk.css","8f35223c188c646944cc9e310b4f366d"],["/react/build/static/css/40.7965f855.chunk.css","99ca180f3a3aab550ed3c1f9f0b6a482"],["/react/build/static/css/41.a3fcb4bb.chunk.css","03bacc5e11b7e944df2d8edb38efd003"],["/react/build/static/css/42.ba2232b9.chunk.css","5f17a6000e83f647de8cdee820aa5ad5"],["/react/build/static/css/43.0b1cfd5c.chunk.css","bfa4ea32fef990c4d9810eab8a46a8b4"],["/react/build/static/css/44.d55eee2b.chunk.css","89054b142bc94091801546a746d255db"],["/react/build/static/css/45.b18c23b3.chunk.css","c79314a4e08b2bb10497caa51190f67a"],["/react/build/static/css/46.9effd8d7.chunk.css","03bacc5e11b7e944df2d8edb38efd003"],["/react/build/static/css/47.84f45fcc.chunk.css","03bacc5e11b7e944df2d8edb38efd003"],["/react/build/static/css/48.71841e44.chunk.css","03bacc5e11b7e944df2d8edb38efd003"],["/react/build/static/css/49.71841e44.chunk.css","03bacc5e11b7e944df2d8edb38efd003"],["/react/build/static/css/50.71841e44.chunk.css","03bacc5e11b7e944df2d8edb38efd003"],["/react/build/static/css/51.aa1aedbe.chunk.css","ad64c0eede853274fe7737a65d66d18b"],["/react/build/static/css/52.23e457c6.chunk.css","b7ea9928083ea35acce72ee289c77941"],["/react/build/static/css/53.f8ce57b7.chunk.css","d6d7a13f06f71440a953ce2798887469"],["/react/build/static/css/54.58e88442.chunk.css","4c607decefc5223e114b0c81b2a06a37"],["/react/build/static/css/55.a1819630.chunk.css","2e140b39ca87fb19bdb264111265be77"],["/react/build/static/css/57.6436558f.chunk.css","08727dcc716788b9207e6965eabd0c8a"],["/react/build/static/css/58.d55eee2b.chunk.css","89054b142bc94091801546a746d255db"],["/react/build/static/css/59.d55eee2b.chunk.css","89054b142bc94091801546a746d255db"],["/react/build/static/css/60.f7de5d73.chunk.css","b3c5d398aa3ddb54ae0927ac614da74d"],["/react/build/static/css/61.d55eee2b.chunk.css","89054b142bc94091801546a746d255db"],["/react/build/static/css/63.fd083902.chunk.css","6f65bae71f11e62309c73d5b818f30f3"],["/react/build/static/css/65.080d6958.chunk.css","d9b5ca9cb767438bb42a4167d8c9141b"],["/react/build/static/css/68.7b8a6eb0.chunk.css","e5a078261e06b47655db2e7181c7d7d6"],["/react/build/static/css/70.2b4fa75d.chunk.css","894748843894405d62402217fff3324b"],["/react/build/static/css/71.7965f855.chunk.css","18e9ba34886167e59f2319761327f9ac"],["/react/build/static/css/73.0d02db5b.chunk.css","8ab34f94699b7e4d8b3545378ea5f22c"],["/react/build/static/css/75.7965f855.chunk.css","18e9ba34886167e59f2319761327f9ac"],["/react/build/static/css/77.fd3fa2e9.chunk.css","97c0f9c3d8d16c05584bec1ce645cda0"],["/react/build/static/css/78.34dbacf4.chunk.css","c1e67ef7ccbe5ec5795960593edbcb14"],["/react/build/static/css/79.b0e2171d.chunk.css","e19d98a03795c3ee79c8404e8ab2bc4b"],["/react/build/static/css/80.05177416.chunk.css","ad57386a590ab587c5673efaa5dd2c04"],["/react/build/static/css/81.f8baad43.chunk.css","8ea65ce507a9b9eafa61a7a489c17e3a"],["/react/build/static/css/82.d23100bf.chunk.css","849793163ceba269d8afe246ff025d7a"],["/react/build/static/css/83.adba6539.chunk.css","2a7331558acec08d91f6776ad403e5a1"],["/react/build/static/css/85.33abeff1.chunk.css","07181be567bdb103c3b473c97021176e"],["/react/build/static/css/86.ce6407ca.chunk.css","b9919f86ce152b27a22e1a0e6a627b6e"],["/react/build/static/css/88.632d7855.chunk.css","226acc64dfa2fad8420e5eadf2d7b32d"],["/react/build/static/css/89.9d206204.chunk.css","e363ea281af9e616a0d144154b88c8f8"],["/react/build/static/css/9.4580c46d.chunk.css","8d16c1c5c5e4eaa8353e5b73aa97767e"],["/react/build/static/css/91.ea97577b.chunk.css","1211ec54a5dbd129cf63cacdc130ca13"],["/react/build/static/css/93.b2109eb4.chunk.css","4215fbff912ba2ff16a8d0129bd4b326"],["/react/build/static/css/94.ddd123f8.chunk.css","9b429eb52fcf2a98b927e4a50ee5e302"],["/react/build/static/css/95.93dc5ff6.chunk.css","66bd4cf32b0679a4ba125c04c85c279d"],["/react/build/static/css/96.3edde0c7.chunk.css","fdec91b854d997a2d04e3cab3c33a778"],["/react/build/static/css/97.78d24cb4.chunk.css","73dc1567cf66ea89cfa27454bc5a1571"],["/react/build/static/css/99.4054f41b.chunk.css","df7b038f8f1a0e16793b24bc950b9b22"],["/react/build/static/css/main.8cfd9dcc.chunk.css","291f484eb6e2b62cf228b53aec5a3369"],["/react/build/static/js/0.34fa008a.chunk.js","2177a411a3d8e29334d45e8248f4d199"],["/react/build/static/js/1.4eee6ded.chunk.js","cfaafd9509240f01179c8aaa4282a3e1"],["/react/build/static/js/10.e6e54e5b.chunk.js","c9e7b93eb36cc6f0cae3b1a5b86300b6"],["/react/build/static/js/100.e2119b38.chunk.js","430df66ce65bc2a6b6d1fcb7f8369f2d"],["/react/build/static/js/101.688edfee.chunk.js","c456be818541c6b46f8343ac85526f97"],["/react/build/static/js/102.5e7845ec.chunk.js","916398a75374811d63fc7a197356c5c5"],["/react/build/static/js/103.c53a68c4.chunk.js","970a294f19ea17ddf63e7cc3e1dc1497"],["/react/build/static/js/104.cf8ec763.chunk.js","6047dc7a82e61c6f76f443a8fd1e3c72"],["/react/build/static/js/105.0ac1820e.chunk.js","521915bf1e15a1940b859ad3039b3094"],["/react/build/static/js/106.c134d4e8.chunk.js","9413570032308d58615bac3131fa490a"],["/react/build/static/js/107.06df551d.chunk.js","1b6ca743f21acbbc8cefba78713378a2"],["/react/build/static/js/108.e23857df.chunk.js","7c6d0583a64527018ddcc807c189484a"],["/react/build/static/js/109.63d9710b.chunk.js","d3dc2e8dda22a28592215b3d2c95c445"],["/react/build/static/js/11.70e9713a.chunk.js","fb4fb2533d0a8f93e2b8392c7208ae37"],["/react/build/static/js/110.2b7c6734.chunk.js","d07090ec0021b57d283cfd92997c2e3b"],["/react/build/static/js/111.b98e9fe2.chunk.js","16d7146c0518df7e92427ef1ebbe5f14"],["/react/build/static/js/112.b9b92442.chunk.js","01754e25c894b7b4d37702ba9ce18adb"],["/react/build/static/js/113.10a5bbb2.chunk.js","aaca95bf7a277fe27524872c843bf863"],["/react/build/static/js/114.88ae9a6c.chunk.js","f1c6a9800f6089c187772ed437783e66"],["/react/build/static/js/115.4ff6791b.chunk.js","993b263452aec8410c4072dacf6289ac"],["/react/build/static/js/116.888f1a15.chunk.js","02bf39f7ef224c2f09a513ea56a7fbdc"],["/react/build/static/js/117.7b18afd9.chunk.js","60403334df4134581e6f1a7ae3e06564"],["/react/build/static/js/118.d130b5d1.chunk.js","4b74c6021546463fd5d27fb6021b3e68"],["/react/build/static/js/119.d2281458.chunk.js","a80fb3bb181735a05f0cb1304483f769"],["/react/build/static/js/12.9d1fe6c6.chunk.js","b4a2cb7192606bb6a801d545b4970808"],["/react/build/static/js/120.90826596.chunk.js","12a9dd163747376ebed9cb5f9d79643d"],["/react/build/static/js/121.beefc4b7.chunk.js","ebb1c6d18b0d33368518f8ece35f360d"],["/react/build/static/js/122.5a0aca6f.chunk.js","72215a59354ce92f36a22143fc16a4a2"],["/react/build/static/js/123.7bd5e54b.chunk.js","b3067c32148534aa03c0e16eafbe708e"],["/react/build/static/js/124.b84ea499.chunk.js","8550b29e7eb3a1b8c66bb991a815864e"],["/react/build/static/js/125.5d4319dd.chunk.js","5926e796376efcc6fa69650ae5041cd0"],["/react/build/static/js/126.bc2490ea.chunk.js","3b37757c1c64d1b6b20316f51a000473"],["/react/build/static/js/127.2d8966e0.chunk.js","ea46eab6e4b92d6270c8e5a7b6af2b64"],["/react/build/static/js/128.979535c0.chunk.js","d46ffb358a005a10e4729c04bf49f166"],["/react/build/static/js/129.97ec778f.chunk.js","a58b9994da2be0d59774b123ac68e5bb"],["/react/build/static/js/13.95ae4e64.chunk.js","723e9b746bca59bd470973d58ea6a731"],["/react/build/static/js/13.95ae4e64.chunk.js.LICENSE.txt","414cf2c4fdfe67f2673475f6d9c8fc93"],["/react/build/static/js/130.e1f0eb6d.chunk.js","ffa15e5518e31b7da0df36341817f734"],["/react/build/static/js/131.7a40379e.chunk.js","4331302c54e67b7e6c527c6c20c1f344"],["/react/build/static/js/132.d283d987.chunk.js","0c55cb40184b04297638900bb660158e"],["/react/build/static/js/133.9f14ae5c.chunk.js","96902fcdd871350760c0e33e8203179c"],["/react/build/static/js/133.9f14ae5c.chunk.js.LICENSE.txt","5092c6e04c7faa4b291d51dc5bb6081a"],["/react/build/static/js/134.e5a7dcb4.chunk.js","df0f4df6b552c94febf4b44b0da41bbc"],["/react/build/static/js/135.9ffb885d.chunk.js","ceb6726508d03ce567aa34dca8d961a0"],["/react/build/static/js/136.57c2deb1.chunk.js","447b958846263e5591028578d89492f7"],["/react/build/static/js/137.78edca3c.chunk.js","873a90aba2405a9212a599a49eb9d710"],["/react/build/static/js/138.a44ca9bc.chunk.js","c0d43b63d7812ab1d30cd2e6078b06bf"],["/react/build/static/js/139.9319da64.chunk.js","28f706fc36371904f1512027744444ae"],["/react/build/static/js/14.d9a6740f.chunk.js","f5e89d08e32dced76530d1a111062ff6"],["/react/build/static/js/140.589b7b1c.chunk.js","df7a6aeb75e9510a4a0d66a4f6101586"],["/react/build/static/js/141.89d6d151.chunk.js","d3296bdc34d572af170ddfc57dced323"],["/react/build/static/js/142.ab62c67d.chunk.js","f9c928c4b27d81f5d5b8d68109888e59"],["/react/build/static/js/143.8280830d.chunk.js","f1985a5bfa49d144812be66ff7f11ce1"],["/react/build/static/js/144.776d734d.chunk.js","7d97329edbb3692b8f40a9bdcbd58058"],["/react/build/static/js/145.e5987f55.chunk.js","ac12bd31e153de4ca4b53aa1c9c49ecf"],["/react/build/static/js/146.ea71f605.chunk.js","e9d9b14fb3e8b8dfed9971781b145bbe"],["/react/build/static/js/147.9ac43341.chunk.js","5a7554749475584b1f00bf6a6a6a2b86"],["/react/build/static/js/148.bae93b29.chunk.js","e30060197979516b3d0f586c0029f209"],["/react/build/static/js/149.8469cc84.chunk.js","8d49b9d2aa85bb95c8b70de11b52743b"],["/react/build/static/js/15.d531df67.chunk.js","adf177aaa4c1eae8001d245284b828aa"],["/react/build/static/js/150.565a3966.chunk.js","44e977a9a9c6fa9ab24712ce5e63d6bd"],["/react/build/static/js/151.e2caad90.chunk.js","92c7fc1615179c82bf1cd6b768de5444"],["/react/build/static/js/152.d5f13d22.chunk.js","333f61565a3e891abc9daa0661db982d"],["/react/build/static/js/153.977410cf.chunk.js","53554be2c99d47bc69c3bb5cd24091c6"],["/react/build/static/js/154.f9ef284b.chunk.js","5dafefe42820701cd8d105a64910d56d"],["/react/build/static/js/155.589fe3d7.chunk.js","cb8dd6b37d2f5fc2fa6a23c381a55b50"],["/react/build/static/js/156.3edc3387.chunk.js","2788712ebffdcd3a07906ebf115c8f17"],["/react/build/static/js/157.0c0ecbd9.chunk.js","9637a86bd3794b6dbc336446593b9663"],["/react/build/static/js/158.40b36057.chunk.js","bc1602cf5016b515588de613b0adeafa"],["/react/build/static/js/159.01061eeb.chunk.js","430b1ab0300bb169b83ce28eb0976d9d"],["/react/build/static/js/16.82fc6757.chunk.js","b1539afbd879874fa5b43c38652fa7a7"],["/react/build/static/js/160.6f4a785b.chunk.js","c455b9a21ec64bca170d75a9e762ff05"],["/react/build/static/js/161.abb71f69.chunk.js","8e852dcd49dc63228600e7c2b9e284c2"],["/react/build/static/js/162.921fd738.chunk.js","b7a17df0c32852da155c720a02848df2"],["/react/build/static/js/163.291c6c71.chunk.js","65b2362c778171ab26b4b8c111fb2968"],["/react/build/static/js/164.4fda48d8.chunk.js","ab93f702c002e05ab2a41d73c9254201"],["/react/build/static/js/165.43fea246.chunk.js","9221178163435a2875e2e3c3e7223da1"],["/react/build/static/js/166.98f7a664.chunk.js","2f9dd2cf4a1b4cc464640bdcdf8d11f2"],["/react/build/static/js/167.df8917dc.chunk.js","c84f36b8db695af8a0a28c3e5fb6fe1c"],["/react/build/static/js/168.de9ea03d.chunk.js","4db80d82b1fdd56bd489b320cdbb32d9"],["/react/build/static/js/169.90e77040.chunk.js","3db7b05fa370da4877ae212c64cc7426"],["/react/build/static/js/17.256141af.chunk.js","2b5a84cf9110892bea8f15bd24f706e7"],["/react/build/static/js/170.a16e4e0a.chunk.js","957dd6930eab6a10130a7da837d8b8ba"],["/react/build/static/js/170.a16e4e0a.chunk.js.LICENSE.txt","03278fe9381615d8b390847939a9eb37"],["/react/build/static/js/171.7e67e57c.chunk.js","1e2f39cf4eb88c0cf755ab4f65531fe1"],["/react/build/static/js/172.5f72ab95.chunk.js","b426a9130c422de9950eecbafffe90a0"],["/react/build/static/js/173.17dcf518.chunk.js","b13cd4d60248fc25a0cb5c8ec412fb5a"],["/react/build/static/js/174.89d0583c.chunk.js","8c8e26fb9aba0dd9dd62d8b83bde4856"],["/react/build/static/js/175.832fa942.chunk.js","9f701c1675acb02d328566076e55ea66"],["/react/build/static/js/176.eb60e4a5.chunk.js","68dd3e6aeae52affe67f030cddd9478f"],["/react/build/static/js/177.9246ed0f.chunk.js","cecee8432f8eda7650e8145acb24d633"],["/react/build/static/js/178.25233bfa.chunk.js","7b0049981be22b7c7255eb2f9b4d43de"],["/react/build/static/js/179.23be0142.chunk.js","4259f0d9155a7ba38f506ff57483b78c"],["/react/build/static/js/18.a357f8f6.chunk.js","f3922c9116e1638c2c6df771a4e56cdf"],["/react/build/static/js/180.5d11f1a7.chunk.js","5e8bf5d1fcc3b4f4b4d3347bbe510686"],["/react/build/static/js/181.79880cb3.chunk.js","94039acd93884470dee67bf091c77325"],["/react/build/static/js/182.67f55261.chunk.js","6fc244c2ec28431b2b56d1541782011d"],["/react/build/static/js/183.851d7210.chunk.js","43417d6a531f395c76844a959d2458c0"],["/react/build/static/js/184.02146860.chunk.js","da2941c08a1442fba74ff4af70ddd40f"],["/react/build/static/js/185.8383d838.chunk.js","913a831c66bafafcfd27cc7fdd9ef469"],["/react/build/static/js/186.21f98652.chunk.js","917e0b3681ed893a61f940f840db3bc6"],["/react/build/static/js/187.2fead581.chunk.js","616a533ce611b85c2e32107c3cb17e94"],["/react/build/static/js/188.0c077d79.chunk.js","749da021c61929fb08d4d77f9edb018a"],["/react/build/static/js/189.12afa5e0.chunk.js","4b1ed7231baa80a3313d71dc7158b398"],["/react/build/static/js/19.855faff3.chunk.js","f246ba3410b130bf2a2b6b15b5a02667"],["/react/build/static/js/190.427e4bce.chunk.js","7d51518a2077e1a039ea4985f50fd8f1"],["/react/build/static/js/191.3bc68443.chunk.js","006a28185d82e906fc02e57842ed1f74"],["/react/build/static/js/192.7a7877c7.chunk.js","8944a32e44b8d42da940d62b35a3065d"],["/react/build/static/js/193.1affba86.chunk.js","bfc2f2d37b46bc1c4cf1ca6b272193c6"],["/react/build/static/js/194.be084f15.chunk.js","fb5818f99ee61a751519d572468d6aea"],["/react/build/static/js/195.a264dc08.chunk.js","693c5d2d74ed3f0916e8b5e66a015dc0"],["/react/build/static/js/196.7e5bd1dd.chunk.js","8f40629f44efc598993fe8a587363867"],["/react/build/static/js/197.a3acc310.chunk.js","1b34f733511f7f25f667b85eafc5b841"],["/react/build/static/js/198.cb49da57.chunk.js","bb27291eb188fb65353326247ae8e2d8"],["/react/build/static/js/199.6ecc7253.chunk.js","f6c1b2a116914cf6d6346729bdf1d4d6"],["/react/build/static/js/2.a51e9f4f.chunk.js","32c06e6da004da3aac86ea604be9a5cf"],["/react/build/static/js/20.9e601607.chunk.js","1bac003279ad57efc66264c13f5562c1"],["/react/build/static/js/200.6cdc7ff5.chunk.js","0bcb69f07307ce8c538d12e5c1a11acd"],["/react/build/static/js/201.f0e1a41b.chunk.js","f04c9103ee5fc6c0be30d9982d5d0f52"],["/react/build/static/js/202.320bf42f.chunk.js","afa6ecea4b631865f6356b747ffd01e4"],["/react/build/static/js/203.a841667a.chunk.js","0d5a13292a73276a314e7bce5d3c8e55"],["/react/build/static/js/204.0024e97d.chunk.js","f16d974c5e28a48d80284fd42091c008"],["/react/build/static/js/205.ee668e94.chunk.js","24eb71ed4c5b8fe57b637a3bf93ea08e"],["/react/build/static/js/206.7ba676f3.chunk.js","4cf53e8033739b332478aaedcefa92df"],["/react/build/static/js/207.1ef730b6.chunk.js","9e3690f56d94e0729992ce89384fce76"],["/react/build/static/js/208.d42e3a12.chunk.js","a5063cba1f3d5cd9b24d186a5e69cc14"],["/react/build/static/js/209.16a32344.chunk.js","d84695227dfbc95a998201922d64e289"],["/react/build/static/js/21.e1ab047a.chunk.js","80f4e82aa8ffa2aa3940f3baaf08c838"],["/react/build/static/js/210.012fc614.chunk.js","e1f51c8459bb35d1e7a3068099db61cb"],["/react/build/static/js/211.34d672ae.chunk.js","cd580fbc80118a0a745b92b136dc67df"],["/react/build/static/js/212.3561639d.chunk.js","262cdc1f07f0c6972f4329c13326984c"],["/react/build/static/js/213.df7a6934.chunk.js","279fce52d18a7d041d922e87ce66ef07"],["/react/build/static/js/213.df7a6934.chunk.js.LICENSE.txt","cf224aa154060b2c3c86fa6ed5af6aa8"],["/react/build/static/js/214.c4f377d9.chunk.js","1a93d54d8606889c97ffd49e3ed8e8c1"],["/react/build/static/js/215.1433c2f6.chunk.js","48176bacbe36bf000a679464f48b67ee"],["/react/build/static/js/216.9bdeebfa.chunk.js","78d4dfed7e453b01b961a1a3f3998039"],["/react/build/static/js/217.7700a84a.chunk.js","1a45573b3ce99ba12f776739433af2fc"],["/react/build/static/js/218.3535b462.chunk.js","23982977e96437b7373284434f4149ff"],["/react/build/static/js/22.a2643015.chunk.js","85c147c65ba2fcb6968826bb54862c33"],["/react/build/static/js/23.a523ad44.chunk.js","0887cbc2dbf6f4a0b8cd727b39dffd94"],["/react/build/static/js/24.91bf37b7.chunk.js","266dd7bc197bf92d076788c34da190a1"],["/react/build/static/js/25.41ed0c99.chunk.js","97f2439ff9d70e1ba41a5a84e56ed5fe"],["/react/build/static/js/26.8761cded.chunk.js","ec09dd6135448a34df2904f1da8a82f7"],["/react/build/static/js/27.c9e387b5.chunk.js","c1c780300c60fdc3f3d72650b363d4ed"],["/react/build/static/js/28.06e2211b.chunk.js","ba2956a7ae3da0bd07208e30d24258a9"],["/react/build/static/js/29.3e8ac0f4.chunk.js","85c797fa6745739470dbac965fe97f69"],["/react/build/static/js/3.3fafc57b.chunk.js","78e322938d161a89adb10a92511b756a"],["/react/build/static/js/30.017ae9d3.chunk.js","45fc146f6aa90d4a5df22a9b64b1d198"],["/react/build/static/js/31.a94985ef.chunk.js","95695484ff5df5f43b84f801220ee5f3"],["/react/build/static/js/32.a62888b3.chunk.js","9539639c068f64347f377f231c2c6c55"],["/react/build/static/js/33.bc2c6722.chunk.js","617a9de0ff96d77f652c02293d0d8ee9"],["/react/build/static/js/34.595a0f47.chunk.js","cee6da037de2471a3a74c89bb222e990"],["/react/build/static/js/35.a08b12e1.chunk.js","b2c425da4ddcfa221a3a83ac2bd8db9c"],["/react/build/static/js/35.a08b12e1.chunk.js.LICENSE.txt","b0d99b131d3d9eb581a2b728f570f362"],["/react/build/static/js/36.2752244b.chunk.js","18853438a46389dab416e1a9e9635039"],["/react/build/static/js/37.9d6f356a.chunk.js","587744dd10f5428882700520b9523e2d"],["/react/build/static/js/37.9d6f356a.chunk.js.LICENSE.txt","cb5c64be860077345ad988d24cd80627"],["/react/build/static/js/38.b39f92cc.chunk.js","067919891f47031d1f3415aa77ee61a9"],["/react/build/static/js/39.f2d850cd.chunk.js","d94b06ee351398f333f85085b38b23c7"],["/react/build/static/js/4.335b1902.chunk.js","f345693a64158cde186544dc4066344b"],["/react/build/static/js/40.9ad37d67.chunk.js","c1f023cdbbe2329155c834add0bee8c4"],["/react/build/static/js/41.7b8f69fb.chunk.js","1bb6086b9388b44b8edebf64aa19d30a"],["/react/build/static/js/42.c979f553.chunk.js","b9e1e3c601acbce3520e262e6b462718"],["/react/build/static/js/43.c8e97a11.chunk.js","1dad7358675ef78553b5f1cedf1414cc"],["/react/build/static/js/44.c1655e48.chunk.js","13aad7950f813c873863d3f2bd695654"],["/react/build/static/js/45.2a27a902.chunk.js","991b7116dc4ff0fd66d8a7cad683db64"],["/react/build/static/js/46.be410f1c.chunk.js","ac6c815879114cc1759b44310230d57d"],["/react/build/static/js/47.fe63152f.chunk.js","09bc04d2384e874dca97e5681cfe9f8a"],["/react/build/static/js/48.3d3a5224.chunk.js","6c4be6098bf6c6f7d2bc0d80bbce3ef8"],["/react/build/static/js/49.0000d747.chunk.js","0fcbc21b458e804bbeed522d23b2f482"],["/react/build/static/js/5.e7c3a06c.chunk.js","1b886ad4169d04290fa05cc4ffa43ac4"],["/react/build/static/js/50.1258ca13.chunk.js","ba6796e41bc7ae5d7f87e53287f38d49"],["/react/build/static/js/51.576d95ae.chunk.js","fd5e422128b2723c7215b9197d07b939"],["/react/build/static/js/52.3a309240.chunk.js","1dea20d6ade559a3bafc654af2da890e"],["/react/build/static/js/53.4f7bd715.chunk.js","a596ff2ec8a6e134069c3b7170608968"],["/react/build/static/js/54.2c3e8985.chunk.js","ae05bf9a6f39d87f903139c0e9d0dfa3"],["/react/build/static/js/55.73c1f462.chunk.js","8066e6cd796ebd731ace4860dfc47868"],["/react/build/static/js/56.ec9bc156.chunk.js","1311768b0522700c7a3ae0fec5374636"],["/react/build/static/js/57.65840853.chunk.js","0866cb827950ab4d3caf87bd8ec71ff1"],["/react/build/static/js/58.6aee3793.chunk.js","9aec418aea1108910b34069fa6b52eaa"],["/react/build/static/js/59.7fc04500.chunk.js","285335063df95e5d530b2f1b7f98c6d1"],["/react/build/static/js/6.6336358f.chunk.js","ed6bdfe1e0dacefbabcf9a8bba22c1e0"],["/react/build/static/js/6.6336358f.chunk.js.LICENSE.txt","7ec01595672f75e83fd81b41f132f4c1"],["/react/build/static/js/60.34c85001.chunk.js","85ceb5d0623bf330c9e5a2d22128777c"],["/react/build/static/js/61.c3927ab7.chunk.js","ffb897f926730aeb72b60eb01ff5c0c8"],["/react/build/static/js/62.56afca91.chunk.js","94f2fc6c03c05e0b0c108183998e05c9"],["/react/build/static/js/63.0e84dbf6.chunk.js","36db741e4525de2e4ac48bf3fd6df444"],["/react/build/static/js/64.9ff8c26d.chunk.js","ee789af312120ab44cd0854a3308d624"],["/react/build/static/js/65.7f8de10f.chunk.js","201963412d7602c1025d35ae7eb594af"],["/react/build/static/js/66.a928838f.chunk.js","3348f49f818bad58fb9fbf07962d7dc0"],["/react/build/static/js/67.578f84ef.chunk.js","a5379f7cf2ebdbfccd9d8bb1b16faf95"],["/react/build/static/js/68.b45257fc.chunk.js","94c60338dc7a3569c7104ce98c95f601"],["/react/build/static/js/69.7b8165b1.chunk.js","21abde96b0941e9e5561ee6512b9e7a4"],["/react/build/static/js/7.d6e6f968.chunk.js","0a035f46f6f4b658f429b0b298bc36e5"],["/react/build/static/js/70.0d3fb643.chunk.js","573dc8ce894cb39918fd963db1f9fbd2"],["/react/build/static/js/71.354fdffa.chunk.js","4c51a7a517027d2d3b8f925cecb500d8"],["/react/build/static/js/72.2e7f8a16.chunk.js","f9aef7d816d7d15e41c0a9b16f6f4121"],["/react/build/static/js/73.1a3f6c5e.chunk.js","acf69baae246513a20d1cafc900dc968"],["/react/build/static/js/74.a80bf9ab.chunk.js","eefbc9647d9b2575c90f199225274f3a"],["/react/build/static/js/75.27d3f681.chunk.js","ba5518d2e15669c3b6cfad1d62446128"],["/react/build/static/js/76.305031f2.chunk.js","5f06edb1e815adf82291410ce00a8ee8"],["/react/build/static/js/77.51425811.chunk.js","18f034f39e40439cb73fcd6f5ac379aa"],["/react/build/static/js/78.509374a7.chunk.js","36521b97d951717cb5a1277b642738ae"],["/react/build/static/js/79.50c673ba.chunk.js","1fa69d10b80cec91f84c2ed0897cd867"],["/react/build/static/js/8.4717141c.chunk.js","8d9877a3f2b14149ba12f7a9626d5a10"],["/react/build/static/js/80.e86ea11a.chunk.js","fb5fd41a5d51995ca0d14fddd4c408fe"],["/react/build/static/js/81.d361cd6c.chunk.js","7ccb7964765611abe87389330ef02b77"],["/react/build/static/js/82.9ffc6c81.chunk.js","df6eaaae73b12fdb9526ad0bd86537d5"],["/react/build/static/js/83.e9f4eba2.chunk.js","097a6294a5914127dcfe0091058654c5"],["/react/build/static/js/84.eea12776.chunk.js","cc50021644bddd218dc799d82454578e"],["/react/build/static/js/85.97084350.chunk.js","6ff3f6104a1739e70de47b6363b77740"],["/react/build/static/js/86.1e605b3f.chunk.js","bb0583e41ea2a90da057bd4d191bd1d3"],["/react/build/static/js/87.04bcc0e2.chunk.js","a78035c3bb9f374339097653ef393d95"],["/react/build/static/js/88.5c3ca964.chunk.js","2c9806b9578cb4aab89c9bd01ebb03c2"],["/react/build/static/js/89.13a9f841.chunk.js","ab6d147863123b62b209728aee32b2ff"],["/react/build/static/js/9.7609e756.chunk.js","6111cf1e796a04db27508d5b78836987"],["/react/build/static/js/9.7609e756.chunk.js.LICENSE.txt","b0d99b131d3d9eb581a2b728f570f362"],["/react/build/static/js/90.3a913fa1.chunk.js","c94d30a86d47761b283fde8a21257b4c"],["/react/build/static/js/91.437fc2d1.chunk.js","9b92104271888504b9e7be59e2e62495"],["/react/build/static/js/92.9d3d608b.chunk.js","560af619c1a503ac47b99911a24d5cf7"],["/react/build/static/js/93.78fff09c.chunk.js","6bee41cc9050d28166b92658a8a2bed1"],["/react/build/static/js/94.db965e3e.chunk.js","f70dca5c84004b43dea52475b998d2f8"],["/react/build/static/js/95.b83ae957.chunk.js","7b27e287480bc20d0712eeeab11708bc"],["/react/build/static/js/96.e576abde.chunk.js","de85245b029b85f6dfd4ac1101798439"],["/react/build/static/js/97.ee3fd9ff.chunk.js","69c82983df7c4167c4fc1e7b2982e68f"],["/react/build/static/js/98.0279f785.chunk.js","f717e6c0f90a923ffae571b5ff833700"],["/react/build/static/js/99.1d9ed8b6.chunk.js","072357809bac22011c7eb7a483e21429"],["/react/build/static/js/main.7f970a2a.chunk.js.LICENSE.txt","cf1eb1a342652bcfa5f86f5d4aba7d28"],["/react/build/static/js/runtime~main.825320ec.js","699dda935f09351bb094bb225fe01a96"],["/react/build/static/media/2-1bg.d22a63b9.png","ba2b4a272d5ca00d9400b4cd1fd573d6"],["/react/build/static/media/2-2-1.afd0f2f5.png","63de0e927282052b4b7a3a4a4e06c004"],["/react/build/static/media/2-2-2.26bc3301.png","09350b2fc63799fbbbed880ee86c54dc"],["/react/build/static/media/2-2-3.6d6ce99c.png","04c46e92f6c6dbc3f354c7d12f41efdf"],["/react/build/static/media/2-2-head.5e69dbb2.png","1ed02c446d34cd67de8d1685ffd16181"],["/react/build/static/media/2-3-1.bcb33d47.png","6309aee1c5b0f1906cf8224c70a2954d"],["/react/build/static/media/2-3-2.57ef08ae.png","13d71726e3c0f7ba20318b57eece054f"],["/react/build/static/media/2-3-3.52733627.png","284814681a0af3e1c41bf547a189de86"],["/react/build/static/media/2-3-4.339b2f1c.png","9ec275ef1b19daa2a2194674dfb106ad"],["/react/build/static/media/2-3bg.deef1b07.png","5b8e2e8dd995ea94a13247eb5ed7ca9e"],["/react/build/static/media/2-4-1.802eb322.png","d3950f1555e0210dd70a374600f83aae"],["/react/build/static/media/2-4bg.45478d20.png","f28c71d7b533b10dc5c1c33ddc7e028d"],["/react/build/static/media/2-5bg.9cca3de1.png","7d7c0003e780841147d31243f7c305ad"],["/react/build/static/media/2-6-1.302b729e.png","cd88cc40364a0dacde3fa5af91cb8407"],["/react/build/static/media/2-6-2.b262b91e.png","50b143930101e1b295683ba0099f9ab9"],["/react/build/static/media/3-1.9fdda521.png","f6add2be652f2989e8b5c8ebc319f44d"],["/react/build/static/media/3-2.47050941.png","b3ad137b32270db1b9fc4aa08c8e0451"],["/react/build/static/media/3-3.c767aae7.png","5d79fb69eee45493a7555b6414c739c0"],["/react/build/static/media/3-4.92820cbc.png","5d26624685fca97de2721a718a5209eb"],["/react/build/static/media/3-bg.4f22fe34.png","28b762cb9f96c8122b700f54e3c914b4"],["/react/build/static/media/34@2x.ed8e5910.png","174665edd0ab7f03fa9e60353417cbaa"],["/react/build/static/media/35@2x.33462edc.png","8cfe5ce0a0d51e3b6d9af2a5ccb2784a"],["/react/build/static/media/36@2x.8f54f5ba.png","0dd97091f3e6be410d8d5ef8df634ce8"],["/react/build/static/media/37@2x.97a40a2a.png","54b6a5ad4cdecb5d722bb1509e5e0216"],["/react/build/static/media/38@2x.f072fe68.png","e890bdfa45d996910aad3597b0a24c09"],["/react/build/static/media/39@2x.ee1af05a.png","cef1223f2f0ce7cc451c982e2f7dc6dd"],["/react/build/static/media/4-1.79fa159d.png","2bea356c9736a2f3787b03d69b72c733"],["/react/build/static/media/4-2.9c066e75.png","88eada7dcd52a5d211ee86aacd523616"],["/react/build/static/media/4-3.a1487a5b.png","da4afd909ef92b84e7a90043e96504d1"],["/react/build/static/media/4-4.5eb40734.png","d3f20f10c4de4cf438ac376516763db9"],["/react/build/static/media/4-bg.214b12ef.png","bb353b3cf7d527c4c052a5462e5f2209"],["/react/build/static/media/40@2x.f10a55e2.png","603a7113eda7af6d3d908b8b7bed4e1a"],["/react/build/static/media/42@2x.25d6b5fd.png","b17ffff59b4673910f125e208e448757"],["/react/build/static/media/44@2x.1374baf9.png","0f150a0e7cf098056300667f82d986f4"],["/react/build/static/media/46@2x.e272d43e.png","06d55da5cb08016c1d1561e111e41c29"],["/react/build/static/media/48@2x.3bde4de9.png","46fe84acf4e9b0c974d28785a76d416d"],["/react/build/static/media/49.b03e6efe.png","b084f468520ae3ea313839228035ed41"],["/react/build/static/media/50@2x.69b76634.png","59d8c56b75d5833bcaa4ca40c24e0282"],["/react/build/static/media/52@2x.41805cbb.png","9e64828acb8840429063f19df28f6262"],["/react/build/static/media/55@2x.83486b73.png","1f3a3cec5959e66b7e32acb3974c30b2"],["/react/build/static/media/57@2x.8dc6b0b8.png","e9e9efcca4a99b81aeaa2b3d5f3d8149"],["/react/build/static/media/59@2x.b0884ef0.png","076b0a99ff2dfa32cf88da927fd5bdde"],["/react/build/static/media/61@2x.99d3cc3e.png","0899a86bb440717a21f3692383ebf49d"],["/react/build/static/media/63@2x.49f389b9.png","74d7a6b844adc2bac1f21d47f3878a78"],["/react/build/static/media/65@2x.ef33e2f9.png","82a58ddca2302ee7b12b0c38b8df9a4b"],["/react/build/static/media/67@2x.4a4f4b6c.png","7f37bcee2e2be94ddef7ef4feaf6b8a9"],["/react/build/static/media/69@2x.379c6a82.png","b0fbdb5e689fc6ac05bc029ed150c556"],["/react/build/static/media/BJHKHT.f065403a.png","7e59d4b496c81f75d5c11c5166f030a4"],["/react/build/static/media/CEC.3b748059.png","064eea41dfa53645eb0134012b9e7f2e"],["/react/build/static/media/GFKJ.eb30c414.png","a60603b90e7b35d31753400f56be7770"],["/react/build/static/media/HSKY.2e76ba44.png","390849e1165e584772959baecaafb55b"],["/react/build/static/media/ISCAS.851fcfda.png","6a2b57a38c79d3c48a5aa238a113d165"],["/react/build/static/media/KYRJLM.2d659e5c.png","8d92960a37abe7deb48e25b7ea72a2e5"],["/react/build/static/media/KaTeX_AMS-Regular.b1489df1.woff","7f06b4e30317f784d61d26686aed0ab2"],["/react/build/static/media/KaTeX_AMS-Regular.d4531cf7.woff2","e78e28b4834954df047e4925e9dbf354"],["/react/build/static/media/KaTeX_AMS-Regular.f80d9eaf.ttf","aaf4eee9fba9907d61c3935e0b6a54ae"],["/react/build/static/media/KaTeX_Caligraphic-Bold.0c96bc8f.ttf","021dd4dc61ee5f5cdf315f43b48c094b"],["/react/build/static/media/KaTeX_Caligraphic-Bold.7ce7636b.woff","1e802ca9dedc4ed4e3c6f645e4316128"],["/react/build/static/media/KaTeX_Caligraphic-Bold.f046a374.woff2","4ec58befa687e9752c3c91cd9bcf1bcb"],["/react/build/static/media/KaTeX_Caligraphic-Regular.35f3c951.ttf","d49f2d55ce4f40f982d8ba63d746fbf9"],["/react/build/static/media/KaTeX_Caligraphic-Regular.4519ba4c.woff2","7edb53b6693d75b8a2232481eea1a52c"],["/react/build/static/media/KaTeX_Caligraphic-Regular.4a559f36.woff","d3b46c3a530116933081d9d74e3e9fe8"],["/react/build/static/media/KaTeX_Fraktur-Bold.069514d4.ttf","a31e7cba7b7221ebf1a2ae545fb306b2"],["/react/build/static/media/KaTeX_Fraktur-Bold.2ea3916b.woff","c4c8cab7d5be97b2bb283e531c077355"],["/react/build/static/media/KaTeX_Fraktur-Bold.5b8749ee.woff2","d5b59ec9764e10f4a82369ae29f3ac58"],["/react/build/static/media/KaTeX_Fraktur-Regular.0d90113d.woff","b7d9c46bff5d51da6209e355cc4a235d"],["/react/build/static/media/KaTeX_Fraktur-Regular.2c629b06.woff2","32a5339eb809f381a7357ba56f82aab3"],["/react/build/static/media/KaTeX_Fraktur-Regular.96556db6.ttf","a48dad4f58c82e38a10da0ceebb86370"],["/react/build/static/media/KaTeX_Main-Bold.07e762d0.ttf","9ceff51b3cb7ce6eb4e8efa8163a1472"],["/react/build/static/media/KaTeX_Main-Bold.20b90c20.woff2","8e1e01c4b1207c0a383d9a2b4f86e637"],["/react/build/static/media/KaTeX_Main-Bold.a9cdbc85.woff","22086eb5d97009c3e99bcc1d16ce6865"],["/react/build/static/media/KaTeX_Main-BoldItalic.7649d52f.woff","4c57dbc44bfff1fdf08a59cf556fdab3"],["/react/build/static/media/KaTeX_Main-BoldItalic.b345de5b.woff2","284a17fe5baf72ff8217d4c7e70c0f82"],["/react/build/static/media/KaTeX_Main-BoldItalic.bc8d96e9.ttf","e8b44b990516dab7937bf240fde8b46a"],["/react/build/static/media/KaTeX_Main-Italic.44a32ae6.ttf","29c86397e75cdcb3135af8295f1c2e28"],["/react/build/static/media/KaTeX_Main-Italic.ab751a9e.woff2","e533d5a2506cf053cd671b335ec04dde"],["/react/build/static/media/KaTeX_Main-Italic.e3954fe9.woff","99be0e10c38cd42466e6fe1665ef9536"],["/react/build/static/media/KaTeX_Main-Regular.13b3f852.woff2","5c734d78610fa35282f3379f866707f2"],["/react/build/static/media/KaTeX_Main-Regular.9e75cd60.woff","b741441f6d71014d0453ca3ebc884dd4"],["/react/build/static/media/KaTeX_Main-Regular.af7fc7b3.ttf","5c94aef490324b0925dbe5f643e8fd04"],["/react/build/static/media/KaTeX_Math-BoldItalic.4d6241be.ttf","9a2834a9ff8ab411153571e0e55ac693"],["/react/build/static/media/KaTeX_Math-BoldItalic.94810ff6.woff","b13731ef4e2bfc3d8d859271e39550fc"],["/react/build/static/media/KaTeX_Math-BoldItalic.d5d35e84.woff2","d747bd1e7a6a43864285edd73dcde253"],["/react/build/static/media/KaTeX_Math-Italic.11278d36.woff","f0303906c2a67ac63bf1e8ccd638a89e"],["/react/build/static/media/KaTeX_Math-Italic.cae7ea26.ttf","291e76b8871b84560701bd29f9d1dcc7"],["/react/build/static/media/KaTeX_Math-Italic.ffda8803.woff2","4ad08b826b8065e1eab85324d726538c"],["/react/build/static/media/KaTeX_SansSerif-Bold.2946bdb5.woff","3fb419559955e3ce75619f1a5e8c6c84"],["/react/build/static/media/KaTeX_SansSerif-Bold.5a20a475.woff2","6e0830bee40435e72165345e0682fbfc"],["/react/build/static/media/KaTeX_SansSerif-Bold.f0ad0abc.ttf","7dc027cba9f7b11ec92af4a311372a85"],["/react/build/static/media/KaTeX_SansSerif-Italic.c7feacd5.ttf","4059868e460d2d2e6be18e180d20c43d"],["/react/build/static/media/KaTeX_SansSerif-Italic.c834ba6d.woff","727a9b0d97d72d2fc0228fe4e07fb4d8"],["/react/build/static/media/KaTeX_SansSerif-Italic.e5fc2aef.woff2","fba01c9c6fb2866a0f95bcacb2c187a5"],["/react/build/static/media/KaTeX_SansSerif-Regular.5af9e1cf.ttf","5c58d168c0b66d2c32234a6718e74dfb"],["/react/build/static/media/KaTeX_SansSerif-Regular.5bf28900.woff2","d929cd671b19f0cfea55b6200fb47461"],["/react/build/static/media/KaTeX_SansSerif-Regular.a4fd0563.woff","2555754a67062cac3a0913b715ab982f"],["/react/build/static/media/KaTeX_Script-Regular.a1c15978.woff2","755e2491f13b5269f0afd5a56f7aa692"],["/react/build/static/media/KaTeX_Script-Regular.cd3b0634.woff","d524c9a5b62a17f98f4a97af37fea735"],["/react/build/static/media/KaTeX_Script-Regular.dd0db7ae.ttf","d12ea9efb375f9dc331f562e69892638"],["/react/build/static/media/KaTeX_Size1-Regular.1876361f.woff2","048c39cba4dfb0460682a45e84548e4b"],["/react/build/static/media/KaTeX_Size1-Regular.bbd9552c.ttf","7342d45b052c3a2abc21049959fbab7f"],["/react/build/static/media/KaTeX_Size1-Regular.c4ae0d25.woff","08b5f00e7140f7a10e62c8e2484dfa5a"],["/react/build/static/media/KaTeX_Size2-Regular.635e9324.woff","af24b0e4b7e52656ca77914695c99930"],["/react/build/static/media/KaTeX_Size2-Regular.d1e8ff17.ttf","eb130dcc661de766c999c60ba1525a88"],["/react/build/static/media/KaTeX_Size2-Regular.f516b73c.woff2","81d6b8d5ca77d63d5033d6991549a659"],["/react/build/static/media/KaTeX_Size3-Regular.1ef7adae.woff2","b311ca09df2c89a10fbb914b5a053805"],["/react/build/static/media/KaTeX_Size3-Regular.5d632274.ttf","7e02a40c41e52dc3b2b6b197bbdf05ea"],["/react/build/static/media/KaTeX_Size3-Regular.f32a9fde.woff","0d8926405d832a4b065e516bd385d812"],["/react/build/static/media/KaTeX_Size4-Regular.1d132596.ttf","ad7672524b64b730dfd176140a8945cb"],["/react/build/static/media/KaTeX_Size4-Regular.4f012d6a.woff2","6a3255dfc1ba41c46e7e807f8ab16c49"],["/react/build/static/media/KaTeX_Size4-Regular.f668d566.woff","68895bb880a61a7fc019dbfaa5121bb4"],["/react/build/static/media/KaTeX_Typewriter-Regular.4f31d033.woff2","6cc31ea5c223c88705a13727a71417fa"],["/react/build/static/media/KaTeX_Typewriter-Regular.b1d1af1a.ttf","257023560753aeb0b89b7e434d3da17f"],["/react/build/static/media/KaTeX_Typewriter-Regular.d3c8e68f.woff","3fe216d2a5f736c560cde71984554b64"],["/react/build/static/media/LC.f247fdb8.png","3e02cbcebad7837bf48da07b33a10bf5"],["/react/build/static/media/LSLM.99387946.png","41c202edbdb8a04e0cff8dca05fcc3de"],["/react/build/static/media/ML.08d278e2.png","9f958c18dbce14eafeed88a2fff5ec30"],["/react/build/static/media/NJDX.bb34b326.png","48e32a4eb948d5d618f7234210cd111d"],["/react/build/static/media/QH.b57a0131.png","45efbad10af2600ac575f17c7f1c6f25"],["/react/build/static/media/SHJT.426bf0c7.png","93cf5b16ef9208cb5bf1da99eebde8fb"],["/react/build/static/media/TX.b703476c.png","47cf36954b1fbb684e346d72dd890b14"],["/react/build/static/media/WXYJY.21e40191.png","e080df4c7b430301c9f741d432afa8ad"],["/react/build/static/media/XH.a0a88f17.png","a621d3a4f230af8107e727f60ed4c8f0"],["/react/build/static/media/XJY.b4c57bf1.png","e41c17ce768fcf94a03339a71c30d6f3"],["/react/build/static/media/YKD.4f7e2766.png","fa37d44fd25bcf449ec35efe68de61c5"],["/react/build/static/media/ZC.ad056aa5.png","c51f75c3c4c469809acda5c394c02adf"],["/react/build/static/media/achievements.f20b7e39.png","6a9f5aef5cc32d04d0a7a2f7acc38b11"],["/react/build/static/media/award-bg.f71628f1.png","c5dd065eaa235efd1c330b41d27f3370"],["/react/build/static/media/award-tit.4c48185a.png","5dec871e9bf24ad08589bf24da7d56c9"],["/react/build/static/media/ball.24214b6e.png","4600b466befba451dd38df26879cf299"],["/react/build/static/media/banner-interim.c50ff667.png","afee978cdb229c29525a3b28d3f411a2"],["/react/build/static/media/banner.40f1ff0c.png","196a855ae4a95a04943211925b34b83b"],["/react/build/static/media/banner.598a8076.png","1e538e70165e458ca1662f937d1264dd"],["/react/build/static/media/banner.84187e6e.png","ecf9fdcd304fa1e37310d49755e2f009"],["/react/build/static/media/banner.f7da2db1.png","23523c6657f4a1abe198837d0316a162"],["/react/build/static/media/banner_list.e02c5e16.jpg","bc53dcd5b0731ce2ac28c3ea02a01c97"],["/react/build/static/media/beijing.bfcd5b0e.png","518931a330ddf9dd7348d702c82c033c"],["/react/build/static/media/bg.401bf2cf.png","228280fae26c66cbfd718f680d16ce7f"],["/react/build/static/media/bg.9688532b.png","c1f86769f7e46442052e59452f01f9d9"],["/react/build/static/media/bg.a51f2ffd.png","10085e3dfd86fd912dd2df5855fdd7b0"],["/react/build/static/media/bg1.8fea5c5f.png","9908ca0a39c6288aeb6e6753c95f7ca6"],["/react/build/static/media/bgPng.ed010245.png","9c63690dae3e5e96cc49a08ff24cf230"],["/react/build/static/media/box.548a8c8b.png","d86432e2f3b9c9e605b14855d40c4c1f"],["/react/build/static/media/ccf_logo.a54fdc70.png","99678a58665cdb049736919636983ee3"],["/react/build/static/media/ccf_logo1.be10ead7.png","e2e6fef345151e132fdcce161cc87525"],["/react/build/static/media/check_tabs.dc02b037.png","3cd1dc6de8c94ea0b139f837fc00abdf"],["/react/build/static/media/codeafter.c3088c74.png","49ed3ae6c715b4f312f9a4af582ef2a8"],["/react/build/static/media/computer.4fe86b12.png","902233a9dd36c8a274324382e7f693b3"],["/react/build/static/media/contact_bg.ad2cf7be.png","be9e8358ae98671c686db10d24a2a81b"],["/react/build/static/media/detectionBG.6759a755.png","a8244f19972a05a30815da7c25d5abd1"],["/react/build/static/media/devops.39983f5b.png","6fab3d0ca745ca5b57c7923030ff0db7"],["/react/build/static/media/earth.050b1435.png","bdc488cfc8356fbe92e2c5e85f38d3a9"],["/react/build/static/media/fun1.c99ffa49.png","0821dbab48751cec64b2bb3c795796ef"],["/react/build/static/media/fun2.12f22bca.png","54a5d7faf4b9ddb2e82d7b5207089a6c"],["/react/build/static/media/fun3.75c280e6.png","5c69ce2307b9e074af5ce82d88ef8582"],["/react/build/static/media/fun4.f499794e.png","253ae97d5ce8d7de5fd987d0ac9cc51b"],["/react/build/static/media/fun5.96b44942.png","e8afdfd77e8ea57ed9945cde3bcf7b98"],["/react/build/static/media/funBg.410c4305.png","d6f1410497fc1f2ed6acdbc525857fc6"],["/react/build/static/media/funBg3.d1c7d094.png","3e38083b0ae65fdcb3e237ee1caa0e6f"],["/react/build/static/media/funBg4.68c5f49e.png","4387caf6448bde780eccac5072aba145"],["/react/build/static/media/gitee1.0c13ef7b.svg","e901b31c05db2687384f2ec438d8102a"],["/react/build/static/media/github2.7d5cc0ba.svg","14ac06d35d1de63b1d0cb69d347510c8"],["/react/build/static/media/gitlink1.4bf0ed96.png","74f1d8c84848fb0b81ee404552ef7427"],["/react/build/static/media/gitlink2.0ec0ec22.png","8f753495bab62a461ee0cb63eb0ee889"],["/react/build/static/media/head.52aa3fc8.png","3a5b86995f4e5b03deb387dd013e58b4"],["/react/build/static/media/help.0bfb2587.png","ed85504ae3ea434b5dca53dc3a666dea"],["/react/build/static/media/help_bg.d2bb4c18.png","4558c0fafe9b751957f47d510d3faf92"],["/react/build/static/media/huake.63b6a34d.png","adbad39e4b3344c8dac6fa02807eb9e5"],["/react/build/static/media/huawei.73ec7c22.png","64d20728102a750c9ce500eb424f1de5"],["/react/build/static/media/ideLogo.0dca8d76.svg","42d6121571a45e6466dc8151da3ee900"],["/react/build/static/media/image20.31c2c65b.svg","e460558d48a47bfda068f0fbae063204"],["/react/build/static/media/image21.01d0caf7.svg","e5f5f0c37759e488a96306eea799569a"],["/react/build/static/media/image22.d4d77f6c.svg","1abe104b8da60da858be6b21f2d0c62a"],["/react/build/static/media/img1.8560258f.png","1a039a78776399d0eee98e6ad7a07ce5"],["/react/build/static/media/img1.e0beda57.png","37963219e6ca5c4144ba62693c52c31f"],["/react/build/static/media/img1.fc155528.png","2aa17810adc47741e9f26238cbe7dba7"],["/react/build/static/media/img10.64149a3d.png","44f29fca2b72ab9726d3413cd75c763e"],["/react/build/static/media/img15.87a3556c.png","caf5daf4b8834cf0c40a93f32616e2f6"],["/react/build/static/media/img16.32badab9.png","e20c519658bc608e7b432ea7557cf618"],["/react/build/static/media/img17.c25d5edc.png","2b82779b3b1f36aa80495153b68f3d3a"],["/react/build/static/media/img18.4963efc1.png","df5029d95eef15daf5a7326e88399d6d"],["/react/build/static/media/img2.789fbbfe.png","f7ef7805e3cd8e94a431def695bd886d"],["/react/build/static/media/img2.ae303051.png","51bd149911e029ebf15ad8838b05c674"],["/react/build/static/media/img3.cee3ac5b.png","eafb9519b0ba2dd31e768fa8c751ea49"],["/react/build/static/media/img4.53c937cb.png","d79d2611f2cfbc03316fff2204ba0b90"],["/react/build/static/media/img5.ca3a2287.png","a55ff2eecc025d68b5f7a6f1f8a9ed85"],["/react/build/static/media/img6.8f81bf78.png","f64772292e6a90fc1da0dbdca501cd11"],["/react/build/static/media/img7.e4a68e6e.png","4c472d65efdbd4517ada8ee751228890"],["/react/build/static/media/img8.10500e00.png","aea38e49166c86c63b177f3145a0b064"],["/react/build/static/media/img9.d25372ba.png","aa259ddd863027c59146b33666f57c2c"],["/react/build/static/media/introduce.30b50cda.png","b3ccb50edadf6c46d3b4bbe1c0dc4eb5"],["/react/build/static/media/jijinhui.041fb524.png","827c1f894afb783870599d02cb5c4c3f"],["/react/build/static/media/joinUs.26ec28cd.png","9cd5fee199af626730ee25a37f118eb3"],["/react/build/static/media/lightspot-bg.87ad53a9.png","d0ab18b0b4f74eab6b2bfe3aa3a2b88c"],["/react/build/static/media/lightspot1.9214f0ae.png","ac3bd597543bcfb1a17a039b9f955c50"],["/react/build/static/media/lightspot2.b7053786.png","5d91f7f67c0f69fb68d40416c15dc9eb"],["/react/build/static/media/lightspot3.2f8af8da.png","b6a4577e53a6ca085671ffd9a8b62ce0"],["/react/build/static/media/lightspot4.93769763.png","f9f2f6654b165d72d9780e101e19e845"],["/react/build/static/media/loginBg.1cddcbff.png","86ec58b9f8f3f50140770546cf840257"],["/react/build/static/media/logo.62af9fee.png","bdb086d84a720bfb0c7a3bef50cc6422"],["/react/build/static/media/logo.f0d4927b.svg","9ee4b6d239cf05d9118b4a863ca4bfa3"],["/react/build/static/media/logo1.77949f0b.png","c55c1cd504df9c1e180610117d52b26c"],["/react/build/static/media/logo1.ec3c2e67.png","1b63bf1709328011dd17013bd4999fd3"],["/react/build/static/media/logo2.b04c07f2.png","82f448805e0380b391c77943d02b1d46"],["/react/build/static/media/mulan.690d2289.png","b9d8b87a75927dc097d45280c2ca0f4b"],["/react/build/static/media/newIcon.6ce5faf2.svg","47650e72fa1a06001e80def6f101b6af"],["/react/build/static/media/news-item.c2aef644.png","fd090d94d0fe94b8f12a9e68ac872c4d"],["/react/build/static/media/news-main.731a5143.png","40d592ac03be023dd1fd67a60a97df57"],["/react/build/static/media/news-main1.d438d3c7.png","f9c1445528c719c33464b6b9d5be8883"],["/react/build/static/media/nps1.b2849b06.png","a22d69867a2d0871e69fe18ceb7a8201"],["/react/build/static/media/nps2.d5d0b666.png","9b14ce3c332a63d95d62716030398ee3"],["/react/build/static/media/partner_bg.88388216.png","eac2e2ad3b1a25d605ed746409b530ef"],["/react/build/static/media/personalInfo1.13c2500e.png","813da468a7e7472edbdf3de5516049f3"],["/react/build/static/media/personalInfo2.f01447c8.png","5176f62523dc034a2977c61065b2e101"],["/react/build/static/media/projectBg.774764d7.png","916780acccd06591f270420affece47c"],["/react/build/static/media/projectDetailTaskBg.66b1fb2d.png","161c7fee542a59bdf4cb8a5a94086831"],["/react/build/static/media/qqChat.9e56cc22.png","fc97e294a452fcfae783dc73d1f24ff6"],["/react/build/static/media/registerBg.e14e89f4.png","5ca168f423644e195c7fe270cc728873"],["/react/build/static/media/resetPasswordBg.df9a6167.png","13b9a18d3a09d34b1320713d38fbd04f"],["/react/build/static/media/resultBanner.152068bc.png","f94f4227d3825fa32615af9bf12b45f9"],["/react/build/static/media/resultBanner2.c3095c5d.png","e7a33f637c22dbd6e7703ab7c56cf9aa"],["/react/build/static/media/resultBanner3.e11193de.png","2d21f1a2ad794f632b733ab4ba3ed4aa"],["/react/build/static/media/rightBg.55f14f0c.png","f38c59f756ada99c3eafd76ab2333925"],["/react/build/static/media/sexange.b3665539.png","fe580c3386c0dac7aa9480dbe1c26b9d"],["/react/build/static/media/slick.2630a3e3.svg","f97e3bbf73254b0112091d0192f17aec"],["/react/build/static/media/slick.29518378.woff","b7c9e1e479de3b53f1e4e30ebac2403a"],["/react/build/static/media/slick.a4e97f5a.eot","ced611daf7709cc778da928fec876475"],["/react/build/static/media/slick.c94f7671.ttf","d41f55a78e6f49a5512878df1737e58a"],["/react/build/static/media/sponsor11.5e9da48d.png","0cc78d9e2df9b816f79923244d807999"],["/react/build/static/media/sponsor21.8a655acc.png","86d7c2304bf3f60d923bdc6f25951f33"],["/react/build/static/media/sponsor22.96e2b643.png","c26b18460bdc7959b7baddc5bf8e9a8c"],["/react/build/static/media/sponsor31.0fd95bcb.png","099a8680be13f97915df39f8247fe2d9"],["/react/build/static/media/sponsor33.27be3b2d.png","11f04aa6ba51b6ba1ae2e09cdabaff8e"],["/react/build/static/media/studentProject.cd6d6c4f.png","b09a0e1f08910aac316f2aeed243fb76"],["/react/build/static/media/subtitle.5019e086.png","b2d9c74c02d4de483f79085596d0064b"],["/react/build/static/media/tab.12ed44f1.png","581200ee4543ddb99f2eeb0c6df7d4f6"],["/react/build/static/media/tabBackground.18febe91.png","d55a8d32e7d0303ebf04cf4ff42b470a"],["/react/build/static/media/taskbar.49a40f3a.png","80443aacad0a26162d838d4f71af128a"],["/react/build/static/media/teacher-img.e0e2a9bf.png","dae1295a05fabc82382c0116d8f3e5c8"],["/react/build/static/media/teacher1.ee492a9b.png","b995335297dd994485a4855aea43ff27"],["/react/build/static/media/teacher10.9298db29.png","b081bd10fc70f320e0f4448fd1c69da6"],["/react/build/static/media/teacher11.8a0d8669.png","3a3db3db638f5426e7bda4bef24a2484"],["/react/build/static/media/teacher12.47e02224.png","0635d72f566d9365bda9d8d88d80defd"],["/react/build/static/media/teacher13.f7886e36.png","f903bba276231fd009dfa6fc32c8b1b6"],["/react/build/static/media/teacher14.83b48396.png","5b3290eacd871568046c9b5591591d7b"],["/react/build/static/media/teacher15.5d777604.png","2e7eb1c34f389f025d84e13c54ca8297"],["/react/build/static/media/teacher2.b2b9919d.png","7279b7ba87a86ca7d46dfa6d0c9df088"],["/react/build/static/media/teacher3.20cb800b.png","e8277cbe9f532bccc0266be07afb402b"],["/react/build/static/media/teacher4.c15a0bda.png","9a0016c1a46ce39fa8e415bcd9ae72b4"],["/react/build/static/media/teacher5.9397d078.png","51a49c0ea258d928438153cfbd399be4"],["/react/build/static/media/teacher6.06b6f465.png","f1b92d0ac115f75b438f05a31fd0b551"],["/react/build/static/media/teacher7.4102dcc1.png","6e4e9fff991f8cc1f88479706ab55a37"],["/react/build/static/media/teacher8.5d3f117e.png","be6bfe0c206b2089065b0313c07e7eb0"],["/react/build/static/media/teacher9.69b0adae.png","e0666a81294a17768829744aa117ea24"],["/react/build/static/media/time-bg.f61a7e5f.png","ebb56fbe31fc6fc51fb81da23fdfcdf8"],["/react/build/static/media/top-1.54a95b91.png","3d2bbe827191450fb82fc04b7ba925c9"],["/react/build/static/media/top-2.2a21b300.png","7cddde07beac784e8edd065bf3c5f4e2"],["/react/build/static/media/top-3.48ab81a2.png","702e62391cc8148d3f6f405720527121"],["/react/build/static/media/top-bg.7b89cf7e.png","1cf27750ff50673346a49beeab0c3bb9"],["/react/build/static/media/typebg.b2b0ea32.png","c02c413fdc8fbcb9bd4a042ff9f0ea5a"],["/react/build/static/media/xigongye.d51231d3.png","751514079a6e7d1cfd19af4527749e53"],["/react/build/static/media/xiuos.67682257.png","6fd484b0615e89cb2a2fcde1e6e261a1"],["/react/build/static/media/xjy.6e62f4d6.png","6542ba49c3e8515e8cada3f15f7ab094"],["/react/build/static/media/浙江大学.3c545e69.png","b305afeded0784578319d459a6d71cc7"],["/react/build/ts.worker.js.LICENSE.txt","ce15c9d372cc5baeacdeb733817bdde4"]],cacheName="sw-precache-v3-sw-precache-webpack-plugin-"+(self.registration?self.registration.scope:""),ignoreUrlParametersMatching=[/^utm_/],addDirectoryIndex=function(c,a){c=new URL(c);return"/"===c.pathname.slice(-1)&&(c.pathname+=a),c.toString()},cleanResponse=function(a){return a.redirected?("body"in a?Promise.resolve(a.body):a.blob()).then(function(c){return new Response(c,{headers:a.headers,status:a.status,statusText:a.statusText})}):Promise.resolve(a)},createCacheKey=function(c,a,e,d){c=new URL(c);return d&&c.pathname.match(d)||(c.search+=(c.search?"&":"")+encodeURIComponent(a)+"="+encodeURIComponent(e)),c.toString()},isPathWhitelisted=function(c,a){if(0===c.length)return!0;var e=new URL(a).pathname;return c.some(function(c){return e.match(c)})},stripIgnoredUrlParameters=function(c,e){c=new URL(c);return c.hash="",c.search=c.search.slice(1).split("&").map(function(c){return c.split("=")}).filter(function(a){return e.every(function(c){return!c.test(a[0])})}).map(function(c){return c.join("=")}).join("&"),c.toString()},hashParamName="_sw-precache",urlsToCacheKeys=new Map(precacheConfig.map(function(c){var a=c[0],c=c[1],a=new URL(a,self.location),c=createCacheKey(a,hashParamName,c,/\.\w{8}\./);return[a.toString(),c]}));function setOfCachedUrls(c){return c.keys().then(function(c){return c.map(function(c){return c.url})}).then(function(c){return new Set(c)})}self.addEventListener("install",function(c){c.waitUntil(caches.open(cacheName).then(function(d){return setOfCachedUrls(d).then(function(e){return Promise.all(Array.from(urlsToCacheKeys.values()).map(function(a){if(!e.has(a)){var c=new Request(a,{credentials:"same-origin"});return fetch(c).then(function(c){if(!c.ok)throw new Error("Request for "+a+" returned a response with status "+c.status);return cleanResponse(c).then(function(c){return d.put(a,c)})})}}))})}).then(function(){return self.skipWaiting()}))}),self.addEventListener("activate",function(c){var e=new Set(urlsToCacheKeys.values());c.waitUntil(caches.open(cacheName).then(function(a){return a.keys().then(function(c){return Promise.all(c.map(function(c){if(!e.has(c.url))return a.delete(c)}))})}).then(function(){return self.clients.claim()}))}),self.addEventListener("fetch",function(a){var e,c,d;"GET"===a.request.method&&(e=stripIgnoredUrlParameters(a.request.url,ignoreUrlParametersMatching),d="index.html",(c=urlsToCacheKeys.has(e))||(e=addDirectoryIndex(e,d),c=urlsToCacheKeys.has(e)),d="/react/build/index.html",!c&&"navigate"===a.request.mode&&isPathWhitelisted(["^(?!\\/__).*"],a.request.url)&&(e=new URL(d,self.location).toString(),c=urlsToCacheKeys.has(e)),c&&a.respondWith(caches.open(cacheName).then(function(c){return c.match(urlsToCacheKeys.get(e)).then(function(c){if(c)return c;throw Error("The cached response that was expected is missing.")})}).catch(function(c){return console.warn('Couldn\'t serve response for "%s" from cache: %O',a.request.url,c),fetch(a.request)})))}); \ No newline at end of file +"use strict";var precacheConfig=[["/react/build/css.worker.js","abadf65f7ed870870dccf00a50b3c6ef"],["/react/build/editor.worker.js","2a381dfa06623f377bb84adbc7b38062"],["/react/build/html.worker.js","028952cd3f435d71d238edcdc2ef2967"],["/react/build/index.html","0a56496b8ab0640912ca25ebcc31728f"],["/react/build/json.worker.js","4a4ca127f837beaf0dddae0c74c81b57"],["/react/build/static/css/101.06ee28b8.chunk.css","738dd16bc186439eabccab7ebe2d1cd0"],["/react/build/static/css/102.15253a67.chunk.css","cc03c8bd582e5fb3cf3cb57075905fe6"],["/react/build/static/css/104.fd3fa2e9.chunk.css","97c0f9c3d8d16c05584bec1ce645cda0"],["/react/build/static/css/106.2646da34.chunk.css","fd35f6d45b8f2b74b2b2fc747da42787"],["/react/build/static/css/110.3598c90d.chunk.css","38f999c01692bf8d8bcfc4cd1a133500"],["/react/build/static/css/112.b6f629c2.chunk.css","9bee0d5efe580a886a06f342d0953f1d"],["/react/build/static/css/113.9d206204.chunk.css","e363ea281af9e616a0d144154b88c8f8"],["/react/build/static/css/114.ebddf6de.chunk.css","b16daaeaf671a9a92b48715bf9f0f31e"],["/react/build/static/css/115.e2a8a600.chunk.css","a3e000826e9e975f288a5067c577c213"],["/react/build/static/css/116.9d206204.chunk.css","e363ea281af9e616a0d144154b88c8f8"],["/react/build/static/css/117.9d206204.chunk.css","e363ea281af9e616a0d144154b88c8f8"],["/react/build/static/css/118.35b1feac.chunk.css","0b43c1534cd52029318ecc64bc16cd82"],["/react/build/static/css/119.cdd78914.chunk.css","c8fa03c8951406a0c6dedbc44275a66c"],["/react/build/static/css/12.3634cedd.chunk.css","5d39578b91b84e925bd702d0d56a0ea2"],["/react/build/static/css/120.142cff28.chunk.css","e2d1282e7d68f47cc9a754940877e251"],["/react/build/static/css/121.11a04942.chunk.css","1373d0214c811e25b7c1763ef9cf3287"],["/react/build/static/css/125.15253a67.chunk.css","cc03c8bd582e5fb3cf3cb57075905fe6"],["/react/build/static/css/126.8a2a0d50.chunk.css","3c152d150d71ca1d782cbce74e83545a"],["/react/build/static/css/128.adba6539.chunk.css","2a7331558acec08d91f6776ad403e5a1"],["/react/build/static/css/129.d55eee2b.chunk.css","89054b142bc94091801546a746d255db"],["/react/build/static/css/131.fd5c069f.chunk.css","dc736ebb1d70ad8f92c50296bc5c21c2"],["/react/build/static/css/132.cbc5dafa.chunk.css","0d00c4a2d6cc383c8b2a40a24378d281"],["/react/build/static/css/133.2f409942.chunk.css","6f1d0eaeed7a282caf0ce33adaef0898"],["/react/build/static/css/139.c0242127.chunk.css","3de2e94ba931d38eb377530c8ea1be89"],["/react/build/static/css/140.775a0135.chunk.css","b08de3e38a8ca8a9566465e5f8e7b183"],["/react/build/static/css/141.188a7db8.chunk.css","d365448e4d5cdef07410d3ba784e1364"],["/react/build/static/css/142.9df86194.chunk.css","dae2a89b8b4b9577d529ccdc67b2bd1b"],["/react/build/static/css/143.d55eee2b.chunk.css","89054b142bc94091801546a746d255db"],["/react/build/static/css/144.d55eee2b.chunk.css","89054b142bc94091801546a746d255db"],["/react/build/static/css/145.d55eee2b.chunk.css","89054b142bc94091801546a746d255db"],["/react/build/static/css/146.1e103c31.chunk.css","d7a9f0ce5623c1a832cbed8af8deb779"],["/react/build/static/css/147.f2060fe7.chunk.css","3dc3569f98f0d43324c3871cc5623426"],["/react/build/static/css/148.f9d1b577.chunk.css","f9b149d2ed650f6b4ec24b09d29f3e4e"],["/react/build/static/css/15.d23100bf.chunk.css","849793163ceba269d8afe246ff025d7a"],["/react/build/static/css/151.09d927dd.chunk.css","21b5e0861d5ba04df287b13341a1a5ce"],["/react/build/static/css/152.9d206204.chunk.css","e363ea281af9e616a0d144154b88c8f8"],["/react/build/static/css/18.71841e44.chunk.css","03bacc5e11b7e944df2d8edb38efd003"],["/react/build/static/css/22.1305617c.chunk.css","cc9ab2ccf1939eb7a572d5e9606a3853"],["/react/build/static/css/24.d55eee2b.chunk.css","89054b142bc94091801546a746d255db"],["/react/build/static/css/25.e07ba0f4.chunk.css","250d27b250016a8616eeed7f005038ec"],["/react/build/static/css/31.70ca0113.chunk.css","e795affdc09e234ba4c3a608a69ed0f0"],["/react/build/static/css/32.e8a90923.chunk.css","5fb37497699e9bd6f332204b762a1c0c"],["/react/build/static/css/33.78a1ba5d.chunk.css","83a2ab1e5c6be84e927fda72b983d73e"],["/react/build/static/css/34.13844439.chunk.css","1ce0064541c8135bddbbfe85b5cb5f77"],["/react/build/static/css/35.b1394162.chunk.css","f397bad8e2d5ff56f4a9c63ad86f35db"],["/react/build/static/css/36.c61ae118.chunk.css","37dce675a2709225c047150bb93768e2"],["/react/build/static/css/37.efc74ccb.chunk.css","ac3b5a3f969d0d00b5ee642cb490baa9"],["/react/build/static/css/38.d7a84567.chunk.css","8f35223c188c646944cc9e310b4f366d"],["/react/build/static/css/40.7965f855.chunk.css","99ca180f3a3aab550ed3c1f9f0b6a482"],["/react/build/static/css/41.a3fcb4bb.chunk.css","03bacc5e11b7e944df2d8edb38efd003"],["/react/build/static/css/42.ba2232b9.chunk.css","5f17a6000e83f647de8cdee820aa5ad5"],["/react/build/static/css/43.0b1cfd5c.chunk.css","bfa4ea32fef990c4d9810eab8a46a8b4"],["/react/build/static/css/44.d55eee2b.chunk.css","89054b142bc94091801546a746d255db"],["/react/build/static/css/45.b18c23b3.chunk.css","c79314a4e08b2bb10497caa51190f67a"],["/react/build/static/css/46.9effd8d7.chunk.css","03bacc5e11b7e944df2d8edb38efd003"],["/react/build/static/css/47.84f45fcc.chunk.css","03bacc5e11b7e944df2d8edb38efd003"],["/react/build/static/css/48.71841e44.chunk.css","03bacc5e11b7e944df2d8edb38efd003"],["/react/build/static/css/49.71841e44.chunk.css","03bacc5e11b7e944df2d8edb38efd003"],["/react/build/static/css/50.71841e44.chunk.css","03bacc5e11b7e944df2d8edb38efd003"],["/react/build/static/css/51.aa1aedbe.chunk.css","ad64c0eede853274fe7737a65d66d18b"],["/react/build/static/css/52.23e457c6.chunk.css","b7ea9928083ea35acce72ee289c77941"],["/react/build/static/css/53.f8ce57b7.chunk.css","d6d7a13f06f71440a953ce2798887469"],["/react/build/static/css/54.58e88442.chunk.css","4c607decefc5223e114b0c81b2a06a37"],["/react/build/static/css/55.a1819630.chunk.css","2e140b39ca87fb19bdb264111265be77"],["/react/build/static/css/57.6436558f.chunk.css","08727dcc716788b9207e6965eabd0c8a"],["/react/build/static/css/58.d55eee2b.chunk.css","89054b142bc94091801546a746d255db"],["/react/build/static/css/59.d55eee2b.chunk.css","89054b142bc94091801546a746d255db"],["/react/build/static/css/60.f7de5d73.chunk.css","b3c5d398aa3ddb54ae0927ac614da74d"],["/react/build/static/css/61.d55eee2b.chunk.css","89054b142bc94091801546a746d255db"],["/react/build/static/css/63.fd083902.chunk.css","6f65bae71f11e62309c73d5b818f30f3"],["/react/build/static/css/65.080d6958.chunk.css","d9b5ca9cb767438bb42a4167d8c9141b"],["/react/build/static/css/68.7b8a6eb0.chunk.css","e5a078261e06b47655db2e7181c7d7d6"],["/react/build/static/css/70.2b4fa75d.chunk.css","894748843894405d62402217fff3324b"],["/react/build/static/css/71.7965f855.chunk.css","18e9ba34886167e59f2319761327f9ac"],["/react/build/static/css/73.0d02db5b.chunk.css","8ab34f94699b7e4d8b3545378ea5f22c"],["/react/build/static/css/75.7965f855.chunk.css","18e9ba34886167e59f2319761327f9ac"],["/react/build/static/css/77.fd3fa2e9.chunk.css","97c0f9c3d8d16c05584bec1ce645cda0"],["/react/build/static/css/78.34dbacf4.chunk.css","c1e67ef7ccbe5ec5795960593edbcb14"],["/react/build/static/css/79.b0e2171d.chunk.css","e19d98a03795c3ee79c8404e8ab2bc4b"],["/react/build/static/css/80.05177416.chunk.css","ad57386a590ab587c5673efaa5dd2c04"],["/react/build/static/css/81.f8baad43.chunk.css","8ea65ce507a9b9eafa61a7a489c17e3a"],["/react/build/static/css/82.d23100bf.chunk.css","849793163ceba269d8afe246ff025d7a"],["/react/build/static/css/83.adba6539.chunk.css","2a7331558acec08d91f6776ad403e5a1"],["/react/build/static/css/85.33abeff1.chunk.css","07181be567bdb103c3b473c97021176e"],["/react/build/static/css/86.ce6407ca.chunk.css","b9919f86ce152b27a22e1a0e6a627b6e"],["/react/build/static/css/88.632d7855.chunk.css","226acc64dfa2fad8420e5eadf2d7b32d"],["/react/build/static/css/89.9d206204.chunk.css","e363ea281af9e616a0d144154b88c8f8"],["/react/build/static/css/9.4580c46d.chunk.css","8d16c1c5c5e4eaa8353e5b73aa97767e"],["/react/build/static/css/91.ea97577b.chunk.css","1211ec54a5dbd129cf63cacdc130ca13"],["/react/build/static/css/93.b2109eb4.chunk.css","4215fbff912ba2ff16a8d0129bd4b326"],["/react/build/static/css/94.ddd123f8.chunk.css","9b429eb52fcf2a98b927e4a50ee5e302"],["/react/build/static/css/95.93dc5ff6.chunk.css","66bd4cf32b0679a4ba125c04c85c279d"],["/react/build/static/css/96.3edde0c7.chunk.css","fdec91b854d997a2d04e3cab3c33a778"],["/react/build/static/css/97.78d24cb4.chunk.css","73dc1567cf66ea89cfa27454bc5a1571"],["/react/build/static/css/99.4054f41b.chunk.css","df7b038f8f1a0e16793b24bc950b9b22"],["/react/build/static/css/main.8cfd9dcc.chunk.css","291f484eb6e2b62cf228b53aec5a3369"],["/react/build/static/js/0.34fa008a.chunk.js","2177a411a3d8e29334d45e8248f4d199"],["/react/build/static/js/1.4eee6ded.chunk.js","cfaafd9509240f01179c8aaa4282a3e1"],["/react/build/static/js/10.e6e54e5b.chunk.js","c9e7b93eb36cc6f0cae3b1a5b86300b6"],["/react/build/static/js/100.e2119b38.chunk.js","430df66ce65bc2a6b6d1fcb7f8369f2d"],["/react/build/static/js/101.688edfee.chunk.js","c456be818541c6b46f8343ac85526f97"],["/react/build/static/js/102.5e7845ec.chunk.js","916398a75374811d63fc7a197356c5c5"],["/react/build/static/js/103.c53a68c4.chunk.js","970a294f19ea17ddf63e7cc3e1dc1497"],["/react/build/static/js/104.cf8ec763.chunk.js","6047dc7a82e61c6f76f443a8fd1e3c72"],["/react/build/static/js/105.0ac1820e.chunk.js","521915bf1e15a1940b859ad3039b3094"],["/react/build/static/js/106.c134d4e8.chunk.js","9413570032308d58615bac3131fa490a"],["/react/build/static/js/107.06df551d.chunk.js","1b6ca743f21acbbc8cefba78713378a2"],["/react/build/static/js/108.e23857df.chunk.js","7c6d0583a64527018ddcc807c189484a"],["/react/build/static/js/109.63d9710b.chunk.js","d3dc2e8dda22a28592215b3d2c95c445"],["/react/build/static/js/11.70e9713a.chunk.js","fb4fb2533d0a8f93e2b8392c7208ae37"],["/react/build/static/js/110.2b7c6734.chunk.js","d07090ec0021b57d283cfd92997c2e3b"],["/react/build/static/js/111.b98e9fe2.chunk.js","16d7146c0518df7e92427ef1ebbe5f14"],["/react/build/static/js/112.b9b92442.chunk.js","01754e25c894b7b4d37702ba9ce18adb"],["/react/build/static/js/113.10a5bbb2.chunk.js","aaca95bf7a277fe27524872c843bf863"],["/react/build/static/js/114.88ae9a6c.chunk.js","f1c6a9800f6089c187772ed437783e66"],["/react/build/static/js/115.4ff6791b.chunk.js","993b263452aec8410c4072dacf6289ac"],["/react/build/static/js/116.888f1a15.chunk.js","02bf39f7ef224c2f09a513ea56a7fbdc"],["/react/build/static/js/117.7b18afd9.chunk.js","60403334df4134581e6f1a7ae3e06564"],["/react/build/static/js/118.d130b5d1.chunk.js","4b74c6021546463fd5d27fb6021b3e68"],["/react/build/static/js/119.d2281458.chunk.js","a80fb3bb181735a05f0cb1304483f769"],["/react/build/static/js/12.9d1fe6c6.chunk.js","b4a2cb7192606bb6a801d545b4970808"],["/react/build/static/js/120.90826596.chunk.js","12a9dd163747376ebed9cb5f9d79643d"],["/react/build/static/js/121.beefc4b7.chunk.js","ebb1c6d18b0d33368518f8ece35f360d"],["/react/build/static/js/122.5a0aca6f.chunk.js","72215a59354ce92f36a22143fc16a4a2"],["/react/build/static/js/123.7bd5e54b.chunk.js","b3067c32148534aa03c0e16eafbe708e"],["/react/build/static/js/124.b84ea499.chunk.js","8550b29e7eb3a1b8c66bb991a815864e"],["/react/build/static/js/125.5d4319dd.chunk.js","5926e796376efcc6fa69650ae5041cd0"],["/react/build/static/js/126.bc2490ea.chunk.js","3b37757c1c64d1b6b20316f51a000473"],["/react/build/static/js/127.2d8966e0.chunk.js","ea46eab6e4b92d6270c8e5a7b6af2b64"],["/react/build/static/js/128.979535c0.chunk.js","d46ffb358a005a10e4729c04bf49f166"],["/react/build/static/js/129.97ec778f.chunk.js","a58b9994da2be0d59774b123ac68e5bb"],["/react/build/static/js/13.95ae4e64.chunk.js","723e9b746bca59bd470973d58ea6a731"],["/react/build/static/js/13.95ae4e64.chunk.js.LICENSE.txt","414cf2c4fdfe67f2673475f6d9c8fc93"],["/react/build/static/js/130.e1f0eb6d.chunk.js","ffa15e5518e31b7da0df36341817f734"],["/react/build/static/js/131.7a40379e.chunk.js","4331302c54e67b7e6c527c6c20c1f344"],["/react/build/static/js/132.d283d987.chunk.js","0c55cb40184b04297638900bb660158e"],["/react/build/static/js/133.9f14ae5c.chunk.js","96902fcdd871350760c0e33e8203179c"],["/react/build/static/js/133.9f14ae5c.chunk.js.LICENSE.txt","5092c6e04c7faa4b291d51dc5bb6081a"],["/react/build/static/js/134.e5a7dcb4.chunk.js","df0f4df6b552c94febf4b44b0da41bbc"],["/react/build/static/js/135.9ffb885d.chunk.js","ceb6726508d03ce567aa34dca8d961a0"],["/react/build/static/js/136.57c2deb1.chunk.js","447b958846263e5591028578d89492f7"],["/react/build/static/js/137.78edca3c.chunk.js","873a90aba2405a9212a599a49eb9d710"],["/react/build/static/js/138.a44ca9bc.chunk.js","c0d43b63d7812ab1d30cd2e6078b06bf"],["/react/build/static/js/139.9319da64.chunk.js","28f706fc36371904f1512027744444ae"],["/react/build/static/js/14.d9a6740f.chunk.js","f5e89d08e32dced76530d1a111062ff6"],["/react/build/static/js/140.589b7b1c.chunk.js","df7a6aeb75e9510a4a0d66a4f6101586"],["/react/build/static/js/141.89d6d151.chunk.js","d3296bdc34d572af170ddfc57dced323"],["/react/build/static/js/142.ab62c67d.chunk.js","f9c928c4b27d81f5d5b8d68109888e59"],["/react/build/static/js/143.8280830d.chunk.js","f1985a5bfa49d144812be66ff7f11ce1"],["/react/build/static/js/144.776d734d.chunk.js","7d97329edbb3692b8f40a9bdcbd58058"],["/react/build/static/js/145.e5987f55.chunk.js","ac12bd31e153de4ca4b53aa1c9c49ecf"],["/react/build/static/js/146.ea71f605.chunk.js","e9d9b14fb3e8b8dfed9971781b145bbe"],["/react/build/static/js/147.9ac43341.chunk.js","5a7554749475584b1f00bf6a6a6a2b86"],["/react/build/static/js/148.bae93b29.chunk.js","e30060197979516b3d0f586c0029f209"],["/react/build/static/js/149.8469cc84.chunk.js","8d49b9d2aa85bb95c8b70de11b52743b"],["/react/build/static/js/15.d531df67.chunk.js","adf177aaa4c1eae8001d245284b828aa"],["/react/build/static/js/150.565a3966.chunk.js","44e977a9a9c6fa9ab24712ce5e63d6bd"],["/react/build/static/js/151.e2caad90.chunk.js","92c7fc1615179c82bf1cd6b768de5444"],["/react/build/static/js/152.d5f13d22.chunk.js","333f61565a3e891abc9daa0661db982d"],["/react/build/static/js/153.977410cf.chunk.js","53554be2c99d47bc69c3bb5cd24091c6"],["/react/build/static/js/154.f9ef284b.chunk.js","5dafefe42820701cd8d105a64910d56d"],["/react/build/static/js/155.589fe3d7.chunk.js","cb8dd6b37d2f5fc2fa6a23c381a55b50"],["/react/build/static/js/156.3edc3387.chunk.js","2788712ebffdcd3a07906ebf115c8f17"],["/react/build/static/js/157.0c0ecbd9.chunk.js","9637a86bd3794b6dbc336446593b9663"],["/react/build/static/js/158.40b36057.chunk.js","bc1602cf5016b515588de613b0adeafa"],["/react/build/static/js/159.01061eeb.chunk.js","430b1ab0300bb169b83ce28eb0976d9d"],["/react/build/static/js/16.82fc6757.chunk.js","b1539afbd879874fa5b43c38652fa7a7"],["/react/build/static/js/160.6f4a785b.chunk.js","c455b9a21ec64bca170d75a9e762ff05"],["/react/build/static/js/161.abb71f69.chunk.js","8e852dcd49dc63228600e7c2b9e284c2"],["/react/build/static/js/162.921fd738.chunk.js","b7a17df0c32852da155c720a02848df2"],["/react/build/static/js/163.291c6c71.chunk.js","65b2362c778171ab26b4b8c111fb2968"],["/react/build/static/js/164.4fda48d8.chunk.js","ab93f702c002e05ab2a41d73c9254201"],["/react/build/static/js/165.43fea246.chunk.js","9221178163435a2875e2e3c3e7223da1"],["/react/build/static/js/166.98f7a664.chunk.js","2f9dd2cf4a1b4cc464640bdcdf8d11f2"],["/react/build/static/js/167.df8917dc.chunk.js","c84f36b8db695af8a0a28c3e5fb6fe1c"],["/react/build/static/js/168.de9ea03d.chunk.js","4db80d82b1fdd56bd489b320cdbb32d9"],["/react/build/static/js/169.90e77040.chunk.js","3db7b05fa370da4877ae212c64cc7426"],["/react/build/static/js/17.256141af.chunk.js","2b5a84cf9110892bea8f15bd24f706e7"],["/react/build/static/js/170.a16e4e0a.chunk.js","957dd6930eab6a10130a7da837d8b8ba"],["/react/build/static/js/170.a16e4e0a.chunk.js.LICENSE.txt","03278fe9381615d8b390847939a9eb37"],["/react/build/static/js/171.7e67e57c.chunk.js","1e2f39cf4eb88c0cf755ab4f65531fe1"],["/react/build/static/js/172.5f72ab95.chunk.js","b426a9130c422de9950eecbafffe90a0"],["/react/build/static/js/173.17dcf518.chunk.js","b13cd4d60248fc25a0cb5c8ec412fb5a"],["/react/build/static/js/174.89d0583c.chunk.js","8c8e26fb9aba0dd9dd62d8b83bde4856"],["/react/build/static/js/175.832fa942.chunk.js","9f701c1675acb02d328566076e55ea66"],["/react/build/static/js/176.eb60e4a5.chunk.js","68dd3e6aeae52affe67f030cddd9478f"],["/react/build/static/js/177.9246ed0f.chunk.js","cecee8432f8eda7650e8145acb24d633"],["/react/build/static/js/178.25233bfa.chunk.js","7b0049981be22b7c7255eb2f9b4d43de"],["/react/build/static/js/179.23be0142.chunk.js","4259f0d9155a7ba38f506ff57483b78c"],["/react/build/static/js/18.a357f8f6.chunk.js","f3922c9116e1638c2c6df771a4e56cdf"],["/react/build/static/js/180.5d11f1a7.chunk.js","5e8bf5d1fcc3b4f4b4d3347bbe510686"],["/react/build/static/js/181.79880cb3.chunk.js","94039acd93884470dee67bf091c77325"],["/react/build/static/js/182.67f55261.chunk.js","6fc244c2ec28431b2b56d1541782011d"],["/react/build/static/js/183.851d7210.chunk.js","43417d6a531f395c76844a959d2458c0"],["/react/build/static/js/184.02146860.chunk.js","da2941c08a1442fba74ff4af70ddd40f"],["/react/build/static/js/185.8383d838.chunk.js","913a831c66bafafcfd27cc7fdd9ef469"],["/react/build/static/js/186.21f98652.chunk.js","917e0b3681ed893a61f940f840db3bc6"],["/react/build/static/js/187.2fead581.chunk.js","616a533ce611b85c2e32107c3cb17e94"],["/react/build/static/js/188.0c077d79.chunk.js","749da021c61929fb08d4d77f9edb018a"],["/react/build/static/js/189.12afa5e0.chunk.js","4b1ed7231baa80a3313d71dc7158b398"],["/react/build/static/js/19.855faff3.chunk.js","f246ba3410b130bf2a2b6b15b5a02667"],["/react/build/static/js/190.427e4bce.chunk.js","7d51518a2077e1a039ea4985f50fd8f1"],["/react/build/static/js/191.3bc68443.chunk.js","006a28185d82e906fc02e57842ed1f74"],["/react/build/static/js/192.7a7877c7.chunk.js","8944a32e44b8d42da940d62b35a3065d"],["/react/build/static/js/193.1affba86.chunk.js","bfc2f2d37b46bc1c4cf1ca6b272193c6"],["/react/build/static/js/194.be084f15.chunk.js","fb5818f99ee61a751519d572468d6aea"],["/react/build/static/js/195.a264dc08.chunk.js","693c5d2d74ed3f0916e8b5e66a015dc0"],["/react/build/static/js/196.7e5bd1dd.chunk.js","8f40629f44efc598993fe8a587363867"],["/react/build/static/js/197.a3acc310.chunk.js","1b34f733511f7f25f667b85eafc5b841"],["/react/build/static/js/198.cb49da57.chunk.js","bb27291eb188fb65353326247ae8e2d8"],["/react/build/static/js/199.6ecc7253.chunk.js","f6c1b2a116914cf6d6346729bdf1d4d6"],["/react/build/static/js/2.a51e9f4f.chunk.js","32c06e6da004da3aac86ea604be9a5cf"],["/react/build/static/js/20.9e601607.chunk.js","1bac003279ad57efc66264c13f5562c1"],["/react/build/static/js/200.6cdc7ff5.chunk.js","0bcb69f07307ce8c538d12e5c1a11acd"],["/react/build/static/js/201.f0e1a41b.chunk.js","f04c9103ee5fc6c0be30d9982d5d0f52"],["/react/build/static/js/202.320bf42f.chunk.js","afa6ecea4b631865f6356b747ffd01e4"],["/react/build/static/js/203.a841667a.chunk.js","0d5a13292a73276a314e7bce5d3c8e55"],["/react/build/static/js/204.0024e97d.chunk.js","f16d974c5e28a48d80284fd42091c008"],["/react/build/static/js/205.ee668e94.chunk.js","24eb71ed4c5b8fe57b637a3bf93ea08e"],["/react/build/static/js/206.7ba676f3.chunk.js","4cf53e8033739b332478aaedcefa92df"],["/react/build/static/js/207.1ef730b6.chunk.js","9e3690f56d94e0729992ce89384fce76"],["/react/build/static/js/208.d42e3a12.chunk.js","a5063cba1f3d5cd9b24d186a5e69cc14"],["/react/build/static/js/209.16a32344.chunk.js","d84695227dfbc95a998201922d64e289"],["/react/build/static/js/21.e1ab047a.chunk.js","80f4e82aa8ffa2aa3940f3baaf08c838"],["/react/build/static/js/210.012fc614.chunk.js","e1f51c8459bb35d1e7a3068099db61cb"],["/react/build/static/js/211.34d672ae.chunk.js","cd580fbc80118a0a745b92b136dc67df"],["/react/build/static/js/212.3561639d.chunk.js","262cdc1f07f0c6972f4329c13326984c"],["/react/build/static/js/213.df7a6934.chunk.js","279fce52d18a7d041d922e87ce66ef07"],["/react/build/static/js/213.df7a6934.chunk.js.LICENSE.txt","cf224aa154060b2c3c86fa6ed5af6aa8"],["/react/build/static/js/214.c4f377d9.chunk.js","1a93d54d8606889c97ffd49e3ed8e8c1"],["/react/build/static/js/215.1433c2f6.chunk.js","48176bacbe36bf000a679464f48b67ee"],["/react/build/static/js/216.9bdeebfa.chunk.js","78d4dfed7e453b01b961a1a3f3998039"],["/react/build/static/js/217.7700a84a.chunk.js","1a45573b3ce99ba12f776739433af2fc"],["/react/build/static/js/218.3535b462.chunk.js","23982977e96437b7373284434f4149ff"],["/react/build/static/js/22.a2643015.chunk.js","85c147c65ba2fcb6968826bb54862c33"],["/react/build/static/js/23.a523ad44.chunk.js","0887cbc2dbf6f4a0b8cd727b39dffd94"],["/react/build/static/js/24.91bf37b7.chunk.js","266dd7bc197bf92d076788c34da190a1"],["/react/build/static/js/25.41ed0c99.chunk.js","97f2439ff9d70e1ba41a5a84e56ed5fe"],["/react/build/static/js/26.8761cded.chunk.js","ec09dd6135448a34df2904f1da8a82f7"],["/react/build/static/js/27.c9e387b5.chunk.js","c1c780300c60fdc3f3d72650b363d4ed"],["/react/build/static/js/28.06e2211b.chunk.js","ba2956a7ae3da0bd07208e30d24258a9"],["/react/build/static/js/29.3e8ac0f4.chunk.js","85c797fa6745739470dbac965fe97f69"],["/react/build/static/js/3.3fafc57b.chunk.js","78e322938d161a89adb10a92511b756a"],["/react/build/static/js/30.017ae9d3.chunk.js","45fc146f6aa90d4a5df22a9b64b1d198"],["/react/build/static/js/31.a94985ef.chunk.js","95695484ff5df5f43b84f801220ee5f3"],["/react/build/static/js/32.a62888b3.chunk.js","9539639c068f64347f377f231c2c6c55"],["/react/build/static/js/33.bc2c6722.chunk.js","617a9de0ff96d77f652c02293d0d8ee9"],["/react/build/static/js/34.595a0f47.chunk.js","cee6da037de2471a3a74c89bb222e990"],["/react/build/static/js/35.a08b12e1.chunk.js","b2c425da4ddcfa221a3a83ac2bd8db9c"],["/react/build/static/js/35.a08b12e1.chunk.js.LICENSE.txt","b0d99b131d3d9eb581a2b728f570f362"],["/react/build/static/js/36.2752244b.chunk.js","18853438a46389dab416e1a9e9635039"],["/react/build/static/js/37.9d6f356a.chunk.js","587744dd10f5428882700520b9523e2d"],["/react/build/static/js/37.9d6f356a.chunk.js.LICENSE.txt","cb5c64be860077345ad988d24cd80627"],["/react/build/static/js/38.b39f92cc.chunk.js","067919891f47031d1f3415aa77ee61a9"],["/react/build/static/js/39.f2d850cd.chunk.js","d94b06ee351398f333f85085b38b23c7"],["/react/build/static/js/4.335b1902.chunk.js","f345693a64158cde186544dc4066344b"],["/react/build/static/js/40.eedb27f5.chunk.js","4c4bb2e94059db30a109b7079129b6ce"],["/react/build/static/js/41.7b8f69fb.chunk.js","1bb6086b9388b44b8edebf64aa19d30a"],["/react/build/static/js/42.c979f553.chunk.js","b9e1e3c601acbce3520e262e6b462718"],["/react/build/static/js/43.ecce6e7b.chunk.js","4721e66129bb1f75279189418530d037"],["/react/build/static/js/44.c1655e48.chunk.js","13aad7950f813c873863d3f2bd695654"],["/react/build/static/js/45.2a27a902.chunk.js","991b7116dc4ff0fd66d8a7cad683db64"],["/react/build/static/js/46.be410f1c.chunk.js","ac6c815879114cc1759b44310230d57d"],["/react/build/static/js/47.fe63152f.chunk.js","09bc04d2384e874dca97e5681cfe9f8a"],["/react/build/static/js/48.3d3a5224.chunk.js","6c4be6098bf6c6f7d2bc0d80bbce3ef8"],["/react/build/static/js/49.0000d747.chunk.js","0fcbc21b458e804bbeed522d23b2f482"],["/react/build/static/js/5.e7c3a06c.chunk.js","1b886ad4169d04290fa05cc4ffa43ac4"],["/react/build/static/js/50.1258ca13.chunk.js","ba6796e41bc7ae5d7f87e53287f38d49"],["/react/build/static/js/51.576d95ae.chunk.js","fd5e422128b2723c7215b9197d07b939"],["/react/build/static/js/52.3a309240.chunk.js","1dea20d6ade559a3bafc654af2da890e"],["/react/build/static/js/53.4f7bd715.chunk.js","a596ff2ec8a6e134069c3b7170608968"],["/react/build/static/js/54.2c3e8985.chunk.js","ae05bf9a6f39d87f903139c0e9d0dfa3"],["/react/build/static/js/55.73c1f462.chunk.js","8066e6cd796ebd731ace4860dfc47868"],["/react/build/static/js/56.ec9bc156.chunk.js","1311768b0522700c7a3ae0fec5374636"],["/react/build/static/js/57.65840853.chunk.js","0866cb827950ab4d3caf87bd8ec71ff1"],["/react/build/static/js/58.6aee3793.chunk.js","9aec418aea1108910b34069fa6b52eaa"],["/react/build/static/js/59.7fc04500.chunk.js","285335063df95e5d530b2f1b7f98c6d1"],["/react/build/static/js/6.6336358f.chunk.js","ed6bdfe1e0dacefbabcf9a8bba22c1e0"],["/react/build/static/js/6.6336358f.chunk.js.LICENSE.txt","7ec01595672f75e83fd81b41f132f4c1"],["/react/build/static/js/60.34c85001.chunk.js","85ceb5d0623bf330c9e5a2d22128777c"],["/react/build/static/js/61.c3927ab7.chunk.js","ffb897f926730aeb72b60eb01ff5c0c8"],["/react/build/static/js/62.56afca91.chunk.js","94f2fc6c03c05e0b0c108183998e05c9"],["/react/build/static/js/63.0e84dbf6.chunk.js","36db741e4525de2e4ac48bf3fd6df444"],["/react/build/static/js/64.9ff8c26d.chunk.js","ee789af312120ab44cd0854a3308d624"],["/react/build/static/js/65.7f8de10f.chunk.js","201963412d7602c1025d35ae7eb594af"],["/react/build/static/js/66.a928838f.chunk.js","3348f49f818bad58fb9fbf07962d7dc0"],["/react/build/static/js/67.578f84ef.chunk.js","a5379f7cf2ebdbfccd9d8bb1b16faf95"],["/react/build/static/js/68.b45257fc.chunk.js","94c60338dc7a3569c7104ce98c95f601"],["/react/build/static/js/69.7b8165b1.chunk.js","21abde96b0941e9e5561ee6512b9e7a4"],["/react/build/static/js/7.d6e6f968.chunk.js","0a035f46f6f4b658f429b0b298bc36e5"],["/react/build/static/js/70.0d3fb643.chunk.js","573dc8ce894cb39918fd963db1f9fbd2"],["/react/build/static/js/71.354fdffa.chunk.js","4c51a7a517027d2d3b8f925cecb500d8"],["/react/build/static/js/72.2e7f8a16.chunk.js","f9aef7d816d7d15e41c0a9b16f6f4121"],["/react/build/static/js/73.1a3f6c5e.chunk.js","acf69baae246513a20d1cafc900dc968"],["/react/build/static/js/74.a80bf9ab.chunk.js","eefbc9647d9b2575c90f199225274f3a"],["/react/build/static/js/75.27d3f681.chunk.js","ba5518d2e15669c3b6cfad1d62446128"],["/react/build/static/js/76.305031f2.chunk.js","5f06edb1e815adf82291410ce00a8ee8"],["/react/build/static/js/77.51425811.chunk.js","18f034f39e40439cb73fcd6f5ac379aa"],["/react/build/static/js/78.509374a7.chunk.js","36521b97d951717cb5a1277b642738ae"],["/react/build/static/js/79.50c673ba.chunk.js","1fa69d10b80cec91f84c2ed0897cd867"],["/react/build/static/js/8.4717141c.chunk.js","8d9877a3f2b14149ba12f7a9626d5a10"],["/react/build/static/js/80.e86ea11a.chunk.js","fb5fd41a5d51995ca0d14fddd4c408fe"],["/react/build/static/js/81.d361cd6c.chunk.js","7ccb7964765611abe87389330ef02b77"],["/react/build/static/js/82.9ffc6c81.chunk.js","df6eaaae73b12fdb9526ad0bd86537d5"],["/react/build/static/js/83.e9f4eba2.chunk.js","097a6294a5914127dcfe0091058654c5"],["/react/build/static/js/84.eea12776.chunk.js","cc50021644bddd218dc799d82454578e"],["/react/build/static/js/85.97084350.chunk.js","6ff3f6104a1739e70de47b6363b77740"],["/react/build/static/js/86.1e605b3f.chunk.js","bb0583e41ea2a90da057bd4d191bd1d3"],["/react/build/static/js/87.04bcc0e2.chunk.js","a78035c3bb9f374339097653ef393d95"],["/react/build/static/js/88.5c3ca964.chunk.js","2c9806b9578cb4aab89c9bd01ebb03c2"],["/react/build/static/js/89.13a9f841.chunk.js","ab6d147863123b62b209728aee32b2ff"],["/react/build/static/js/9.7609e756.chunk.js","6111cf1e796a04db27508d5b78836987"],["/react/build/static/js/9.7609e756.chunk.js.LICENSE.txt","b0d99b131d3d9eb581a2b728f570f362"],["/react/build/static/js/90.3a913fa1.chunk.js","c94d30a86d47761b283fde8a21257b4c"],["/react/build/static/js/91.437fc2d1.chunk.js","9b92104271888504b9e7be59e2e62495"],["/react/build/static/js/92.9d3d608b.chunk.js","560af619c1a503ac47b99911a24d5cf7"],["/react/build/static/js/93.78fff09c.chunk.js","6bee41cc9050d28166b92658a8a2bed1"],["/react/build/static/js/94.db965e3e.chunk.js","f70dca5c84004b43dea52475b998d2f8"],["/react/build/static/js/95.b83ae957.chunk.js","7b27e287480bc20d0712eeeab11708bc"],["/react/build/static/js/96.e576abde.chunk.js","de85245b029b85f6dfd4ac1101798439"],["/react/build/static/js/97.ee3fd9ff.chunk.js","69c82983df7c4167c4fc1e7b2982e68f"],["/react/build/static/js/98.0279f785.chunk.js","f717e6c0f90a923ffae571b5ff833700"],["/react/build/static/js/99.1d9ed8b6.chunk.js","072357809bac22011c7eb7a483e21429"],["/react/build/static/js/main.7f970a2a.chunk.js.LICENSE.txt","cf1eb1a342652bcfa5f86f5d4aba7d28"],["/react/build/static/js/runtime~main.dc3bd0fa.js","b9636d4fafbee1f7c3bd75462e29c0d8"],["/react/build/static/media/2-1bg.d22a63b9.png","ba2b4a272d5ca00d9400b4cd1fd573d6"],["/react/build/static/media/2-2-1.afd0f2f5.png","63de0e927282052b4b7a3a4a4e06c004"],["/react/build/static/media/2-2-2.26bc3301.png","09350b2fc63799fbbbed880ee86c54dc"],["/react/build/static/media/2-2-3.6d6ce99c.png","04c46e92f6c6dbc3f354c7d12f41efdf"],["/react/build/static/media/2-2-head.5e69dbb2.png","1ed02c446d34cd67de8d1685ffd16181"],["/react/build/static/media/2-3-1.bcb33d47.png","6309aee1c5b0f1906cf8224c70a2954d"],["/react/build/static/media/2-3-2.57ef08ae.png","13d71726e3c0f7ba20318b57eece054f"],["/react/build/static/media/2-3-3.52733627.png","284814681a0af3e1c41bf547a189de86"],["/react/build/static/media/2-3-4.339b2f1c.png","9ec275ef1b19daa2a2194674dfb106ad"],["/react/build/static/media/2-3bg.deef1b07.png","5b8e2e8dd995ea94a13247eb5ed7ca9e"],["/react/build/static/media/2-4-1.802eb322.png","d3950f1555e0210dd70a374600f83aae"],["/react/build/static/media/2-4bg.45478d20.png","f28c71d7b533b10dc5c1c33ddc7e028d"],["/react/build/static/media/2-5bg.9cca3de1.png","7d7c0003e780841147d31243f7c305ad"],["/react/build/static/media/2-6-1.302b729e.png","cd88cc40364a0dacde3fa5af91cb8407"],["/react/build/static/media/2-6-2.b262b91e.png","50b143930101e1b295683ba0099f9ab9"],["/react/build/static/media/3-1.9fdda521.png","f6add2be652f2989e8b5c8ebc319f44d"],["/react/build/static/media/3-2.47050941.png","b3ad137b32270db1b9fc4aa08c8e0451"],["/react/build/static/media/3-3.c767aae7.png","5d79fb69eee45493a7555b6414c739c0"],["/react/build/static/media/3-4.92820cbc.png","5d26624685fca97de2721a718a5209eb"],["/react/build/static/media/3-bg.4f22fe34.png","28b762cb9f96c8122b700f54e3c914b4"],["/react/build/static/media/34@2x.ed8e5910.png","174665edd0ab7f03fa9e60353417cbaa"],["/react/build/static/media/35@2x.33462edc.png","8cfe5ce0a0d51e3b6d9af2a5ccb2784a"],["/react/build/static/media/36@2x.8f54f5ba.png","0dd97091f3e6be410d8d5ef8df634ce8"],["/react/build/static/media/37@2x.97a40a2a.png","54b6a5ad4cdecb5d722bb1509e5e0216"],["/react/build/static/media/38@2x.f072fe68.png","e890bdfa45d996910aad3597b0a24c09"],["/react/build/static/media/39@2x.ee1af05a.png","cef1223f2f0ce7cc451c982e2f7dc6dd"],["/react/build/static/media/4-1.79fa159d.png","2bea356c9736a2f3787b03d69b72c733"],["/react/build/static/media/4-2.9c066e75.png","88eada7dcd52a5d211ee86aacd523616"],["/react/build/static/media/4-3.a1487a5b.png","da4afd909ef92b84e7a90043e96504d1"],["/react/build/static/media/4-4.5eb40734.png","d3f20f10c4de4cf438ac376516763db9"],["/react/build/static/media/4-bg.214b12ef.png","bb353b3cf7d527c4c052a5462e5f2209"],["/react/build/static/media/40@2x.f10a55e2.png","603a7113eda7af6d3d908b8b7bed4e1a"],["/react/build/static/media/42@2x.25d6b5fd.png","b17ffff59b4673910f125e208e448757"],["/react/build/static/media/44@2x.1374baf9.png","0f150a0e7cf098056300667f82d986f4"],["/react/build/static/media/46@2x.e272d43e.png","06d55da5cb08016c1d1561e111e41c29"],["/react/build/static/media/48@2x.3bde4de9.png","46fe84acf4e9b0c974d28785a76d416d"],["/react/build/static/media/49.b03e6efe.png","b084f468520ae3ea313839228035ed41"],["/react/build/static/media/50@2x.69b76634.png","59d8c56b75d5833bcaa4ca40c24e0282"],["/react/build/static/media/52@2x.41805cbb.png","9e64828acb8840429063f19df28f6262"],["/react/build/static/media/55@2x.83486b73.png","1f3a3cec5959e66b7e32acb3974c30b2"],["/react/build/static/media/57@2x.8dc6b0b8.png","e9e9efcca4a99b81aeaa2b3d5f3d8149"],["/react/build/static/media/59@2x.b0884ef0.png","076b0a99ff2dfa32cf88da927fd5bdde"],["/react/build/static/media/61@2x.99d3cc3e.png","0899a86bb440717a21f3692383ebf49d"],["/react/build/static/media/63@2x.49f389b9.png","74d7a6b844adc2bac1f21d47f3878a78"],["/react/build/static/media/65@2x.ef33e2f9.png","82a58ddca2302ee7b12b0c38b8df9a4b"],["/react/build/static/media/67@2x.4a4f4b6c.png","7f37bcee2e2be94ddef7ef4feaf6b8a9"],["/react/build/static/media/69@2x.379c6a82.png","b0fbdb5e689fc6ac05bc029ed150c556"],["/react/build/static/media/BJHKHT.f065403a.png","7e59d4b496c81f75d5c11c5166f030a4"],["/react/build/static/media/CEC.3b748059.png","064eea41dfa53645eb0134012b9e7f2e"],["/react/build/static/media/GFKJ.eb30c414.png","a60603b90e7b35d31753400f56be7770"],["/react/build/static/media/HSKY.2e76ba44.png","390849e1165e584772959baecaafb55b"],["/react/build/static/media/ISCAS.851fcfda.png","6a2b57a38c79d3c48a5aa238a113d165"],["/react/build/static/media/KYRJLM.2d659e5c.png","8d92960a37abe7deb48e25b7ea72a2e5"],["/react/build/static/media/KaTeX_AMS-Regular.b1489df1.woff","7f06b4e30317f784d61d26686aed0ab2"],["/react/build/static/media/KaTeX_AMS-Regular.d4531cf7.woff2","e78e28b4834954df047e4925e9dbf354"],["/react/build/static/media/KaTeX_AMS-Regular.f80d9eaf.ttf","aaf4eee9fba9907d61c3935e0b6a54ae"],["/react/build/static/media/KaTeX_Caligraphic-Bold.0c96bc8f.ttf","021dd4dc61ee5f5cdf315f43b48c094b"],["/react/build/static/media/KaTeX_Caligraphic-Bold.7ce7636b.woff","1e802ca9dedc4ed4e3c6f645e4316128"],["/react/build/static/media/KaTeX_Caligraphic-Bold.f046a374.woff2","4ec58befa687e9752c3c91cd9bcf1bcb"],["/react/build/static/media/KaTeX_Caligraphic-Regular.35f3c951.ttf","d49f2d55ce4f40f982d8ba63d746fbf9"],["/react/build/static/media/KaTeX_Caligraphic-Regular.4519ba4c.woff2","7edb53b6693d75b8a2232481eea1a52c"],["/react/build/static/media/KaTeX_Caligraphic-Regular.4a559f36.woff","d3b46c3a530116933081d9d74e3e9fe8"],["/react/build/static/media/KaTeX_Fraktur-Bold.069514d4.ttf","a31e7cba7b7221ebf1a2ae545fb306b2"],["/react/build/static/media/KaTeX_Fraktur-Bold.2ea3916b.woff","c4c8cab7d5be97b2bb283e531c077355"],["/react/build/static/media/KaTeX_Fraktur-Bold.5b8749ee.woff2","d5b59ec9764e10f4a82369ae29f3ac58"],["/react/build/static/media/KaTeX_Fraktur-Regular.0d90113d.woff","b7d9c46bff5d51da6209e355cc4a235d"],["/react/build/static/media/KaTeX_Fraktur-Regular.2c629b06.woff2","32a5339eb809f381a7357ba56f82aab3"],["/react/build/static/media/KaTeX_Fraktur-Regular.96556db6.ttf","a48dad4f58c82e38a10da0ceebb86370"],["/react/build/static/media/KaTeX_Main-Bold.07e762d0.ttf","9ceff51b3cb7ce6eb4e8efa8163a1472"],["/react/build/static/media/KaTeX_Main-Bold.20b90c20.woff2","8e1e01c4b1207c0a383d9a2b4f86e637"],["/react/build/static/media/KaTeX_Main-Bold.a9cdbc85.woff","22086eb5d97009c3e99bcc1d16ce6865"],["/react/build/static/media/KaTeX_Main-BoldItalic.7649d52f.woff","4c57dbc44bfff1fdf08a59cf556fdab3"],["/react/build/static/media/KaTeX_Main-BoldItalic.b345de5b.woff2","284a17fe5baf72ff8217d4c7e70c0f82"],["/react/build/static/media/KaTeX_Main-BoldItalic.bc8d96e9.ttf","e8b44b990516dab7937bf240fde8b46a"],["/react/build/static/media/KaTeX_Main-Italic.44a32ae6.ttf","29c86397e75cdcb3135af8295f1c2e28"],["/react/build/static/media/KaTeX_Main-Italic.ab751a9e.woff2","e533d5a2506cf053cd671b335ec04dde"],["/react/build/static/media/KaTeX_Main-Italic.e3954fe9.woff","99be0e10c38cd42466e6fe1665ef9536"],["/react/build/static/media/KaTeX_Main-Regular.13b3f852.woff2","5c734d78610fa35282f3379f866707f2"],["/react/build/static/media/KaTeX_Main-Regular.9e75cd60.woff","b741441f6d71014d0453ca3ebc884dd4"],["/react/build/static/media/KaTeX_Main-Regular.af7fc7b3.ttf","5c94aef490324b0925dbe5f643e8fd04"],["/react/build/static/media/KaTeX_Math-BoldItalic.4d6241be.ttf","9a2834a9ff8ab411153571e0e55ac693"],["/react/build/static/media/KaTeX_Math-BoldItalic.94810ff6.woff","b13731ef4e2bfc3d8d859271e39550fc"],["/react/build/static/media/KaTeX_Math-BoldItalic.d5d35e84.woff2","d747bd1e7a6a43864285edd73dcde253"],["/react/build/static/media/KaTeX_Math-Italic.11278d36.woff","f0303906c2a67ac63bf1e8ccd638a89e"],["/react/build/static/media/KaTeX_Math-Italic.cae7ea26.ttf","291e76b8871b84560701bd29f9d1dcc7"],["/react/build/static/media/KaTeX_Math-Italic.ffda8803.woff2","4ad08b826b8065e1eab85324d726538c"],["/react/build/static/media/KaTeX_SansSerif-Bold.2946bdb5.woff","3fb419559955e3ce75619f1a5e8c6c84"],["/react/build/static/media/KaTeX_SansSerif-Bold.5a20a475.woff2","6e0830bee40435e72165345e0682fbfc"],["/react/build/static/media/KaTeX_SansSerif-Bold.f0ad0abc.ttf","7dc027cba9f7b11ec92af4a311372a85"],["/react/build/static/media/KaTeX_SansSerif-Italic.c7feacd5.ttf","4059868e460d2d2e6be18e180d20c43d"],["/react/build/static/media/KaTeX_SansSerif-Italic.c834ba6d.woff","727a9b0d97d72d2fc0228fe4e07fb4d8"],["/react/build/static/media/KaTeX_SansSerif-Italic.e5fc2aef.woff2","fba01c9c6fb2866a0f95bcacb2c187a5"],["/react/build/static/media/KaTeX_SansSerif-Regular.5af9e1cf.ttf","5c58d168c0b66d2c32234a6718e74dfb"],["/react/build/static/media/KaTeX_SansSerif-Regular.5bf28900.woff2","d929cd671b19f0cfea55b6200fb47461"],["/react/build/static/media/KaTeX_SansSerif-Regular.a4fd0563.woff","2555754a67062cac3a0913b715ab982f"],["/react/build/static/media/KaTeX_Script-Regular.a1c15978.woff2","755e2491f13b5269f0afd5a56f7aa692"],["/react/build/static/media/KaTeX_Script-Regular.cd3b0634.woff","d524c9a5b62a17f98f4a97af37fea735"],["/react/build/static/media/KaTeX_Script-Regular.dd0db7ae.ttf","d12ea9efb375f9dc331f562e69892638"],["/react/build/static/media/KaTeX_Size1-Regular.1876361f.woff2","048c39cba4dfb0460682a45e84548e4b"],["/react/build/static/media/KaTeX_Size1-Regular.bbd9552c.ttf","7342d45b052c3a2abc21049959fbab7f"],["/react/build/static/media/KaTeX_Size1-Regular.c4ae0d25.woff","08b5f00e7140f7a10e62c8e2484dfa5a"],["/react/build/static/media/KaTeX_Size2-Regular.635e9324.woff","af24b0e4b7e52656ca77914695c99930"],["/react/build/static/media/KaTeX_Size2-Regular.d1e8ff17.ttf","eb130dcc661de766c999c60ba1525a88"],["/react/build/static/media/KaTeX_Size2-Regular.f516b73c.woff2","81d6b8d5ca77d63d5033d6991549a659"],["/react/build/static/media/KaTeX_Size3-Regular.1ef7adae.woff2","b311ca09df2c89a10fbb914b5a053805"],["/react/build/static/media/KaTeX_Size3-Regular.5d632274.ttf","7e02a40c41e52dc3b2b6b197bbdf05ea"],["/react/build/static/media/KaTeX_Size3-Regular.f32a9fde.woff","0d8926405d832a4b065e516bd385d812"],["/react/build/static/media/KaTeX_Size4-Regular.1d132596.ttf","ad7672524b64b730dfd176140a8945cb"],["/react/build/static/media/KaTeX_Size4-Regular.4f012d6a.woff2","6a3255dfc1ba41c46e7e807f8ab16c49"],["/react/build/static/media/KaTeX_Size4-Regular.f668d566.woff","68895bb880a61a7fc019dbfaa5121bb4"],["/react/build/static/media/KaTeX_Typewriter-Regular.4f31d033.woff2","6cc31ea5c223c88705a13727a71417fa"],["/react/build/static/media/KaTeX_Typewriter-Regular.b1d1af1a.ttf","257023560753aeb0b89b7e434d3da17f"],["/react/build/static/media/KaTeX_Typewriter-Regular.d3c8e68f.woff","3fe216d2a5f736c560cde71984554b64"],["/react/build/static/media/LC.f247fdb8.png","3e02cbcebad7837bf48da07b33a10bf5"],["/react/build/static/media/LSLM.99387946.png","41c202edbdb8a04e0cff8dca05fcc3de"],["/react/build/static/media/ML.08d278e2.png","9f958c18dbce14eafeed88a2fff5ec30"],["/react/build/static/media/NJDX.bb34b326.png","48e32a4eb948d5d618f7234210cd111d"],["/react/build/static/media/QH.b57a0131.png","45efbad10af2600ac575f17c7f1c6f25"],["/react/build/static/media/SHJT.426bf0c7.png","93cf5b16ef9208cb5bf1da99eebde8fb"],["/react/build/static/media/TX.b703476c.png","47cf36954b1fbb684e346d72dd890b14"],["/react/build/static/media/WXYJY.21e40191.png","e080df4c7b430301c9f741d432afa8ad"],["/react/build/static/media/XH.a0a88f17.png","a621d3a4f230af8107e727f60ed4c8f0"],["/react/build/static/media/XJY.b4c57bf1.png","e41c17ce768fcf94a03339a71c30d6f3"],["/react/build/static/media/YKD.4f7e2766.png","fa37d44fd25bcf449ec35efe68de61c5"],["/react/build/static/media/ZC.ad056aa5.png","c51f75c3c4c469809acda5c394c02adf"],["/react/build/static/media/achievements.f20b7e39.png","6a9f5aef5cc32d04d0a7a2f7acc38b11"],["/react/build/static/media/award-bg.f71628f1.png","c5dd065eaa235efd1c330b41d27f3370"],["/react/build/static/media/award-tit.4c48185a.png","5dec871e9bf24ad08589bf24da7d56c9"],["/react/build/static/media/ball.24214b6e.png","4600b466befba451dd38df26879cf299"],["/react/build/static/media/banner-interim.c50ff667.png","afee978cdb229c29525a3b28d3f411a2"],["/react/build/static/media/banner.40f1ff0c.png","196a855ae4a95a04943211925b34b83b"],["/react/build/static/media/banner.598a8076.png","1e538e70165e458ca1662f937d1264dd"],["/react/build/static/media/banner.84187e6e.png","ecf9fdcd304fa1e37310d49755e2f009"],["/react/build/static/media/banner.f7da2db1.png","23523c6657f4a1abe198837d0316a162"],["/react/build/static/media/banner_list.e02c5e16.jpg","bc53dcd5b0731ce2ac28c3ea02a01c97"],["/react/build/static/media/beijing.bfcd5b0e.png","518931a330ddf9dd7348d702c82c033c"],["/react/build/static/media/bg.401bf2cf.png","228280fae26c66cbfd718f680d16ce7f"],["/react/build/static/media/bg.9688532b.png","c1f86769f7e46442052e59452f01f9d9"],["/react/build/static/media/bg.a51f2ffd.png","10085e3dfd86fd912dd2df5855fdd7b0"],["/react/build/static/media/bg1.8fea5c5f.png","9908ca0a39c6288aeb6e6753c95f7ca6"],["/react/build/static/media/bgPng.ed010245.png","9c63690dae3e5e96cc49a08ff24cf230"],["/react/build/static/media/box.548a8c8b.png","d86432e2f3b9c9e605b14855d40c4c1f"],["/react/build/static/media/ccf_logo.a54fdc70.png","99678a58665cdb049736919636983ee3"],["/react/build/static/media/ccf_logo1.be10ead7.png","e2e6fef345151e132fdcce161cc87525"],["/react/build/static/media/check_tabs.dc02b037.png","3cd1dc6de8c94ea0b139f837fc00abdf"],["/react/build/static/media/codeafter.c3088c74.png","49ed3ae6c715b4f312f9a4af582ef2a8"],["/react/build/static/media/computer.4fe86b12.png","902233a9dd36c8a274324382e7f693b3"],["/react/build/static/media/contact_bg.ad2cf7be.png","be9e8358ae98671c686db10d24a2a81b"],["/react/build/static/media/detectionBG.6759a755.png","a8244f19972a05a30815da7c25d5abd1"],["/react/build/static/media/devops.39983f5b.png","6fab3d0ca745ca5b57c7923030ff0db7"],["/react/build/static/media/earth.050b1435.png","bdc488cfc8356fbe92e2c5e85f38d3a9"],["/react/build/static/media/fun1.c99ffa49.png","0821dbab48751cec64b2bb3c795796ef"],["/react/build/static/media/fun2.12f22bca.png","54a5d7faf4b9ddb2e82d7b5207089a6c"],["/react/build/static/media/fun3.75c280e6.png","5c69ce2307b9e074af5ce82d88ef8582"],["/react/build/static/media/fun4.f499794e.png","253ae97d5ce8d7de5fd987d0ac9cc51b"],["/react/build/static/media/fun5.96b44942.png","e8afdfd77e8ea57ed9945cde3bcf7b98"],["/react/build/static/media/funBg.410c4305.png","d6f1410497fc1f2ed6acdbc525857fc6"],["/react/build/static/media/funBg3.d1c7d094.png","3e38083b0ae65fdcb3e237ee1caa0e6f"],["/react/build/static/media/funBg4.68c5f49e.png","4387caf6448bde780eccac5072aba145"],["/react/build/static/media/gitee1.0c13ef7b.svg","e901b31c05db2687384f2ec438d8102a"],["/react/build/static/media/github2.7d5cc0ba.svg","14ac06d35d1de63b1d0cb69d347510c8"],["/react/build/static/media/gitlink1.4bf0ed96.png","74f1d8c84848fb0b81ee404552ef7427"],["/react/build/static/media/gitlink2.0ec0ec22.png","8f753495bab62a461ee0cb63eb0ee889"],["/react/build/static/media/head.52aa3fc8.png","3a5b86995f4e5b03deb387dd013e58b4"],["/react/build/static/media/help.0bfb2587.png","ed85504ae3ea434b5dca53dc3a666dea"],["/react/build/static/media/help_bg.d2bb4c18.png","4558c0fafe9b751957f47d510d3faf92"],["/react/build/static/media/huake.63b6a34d.png","adbad39e4b3344c8dac6fa02807eb9e5"],["/react/build/static/media/huawei.73ec7c22.png","64d20728102a750c9ce500eb424f1de5"],["/react/build/static/media/ideLogo.0dca8d76.svg","42d6121571a45e6466dc8151da3ee900"],["/react/build/static/media/image20.31c2c65b.svg","e460558d48a47bfda068f0fbae063204"],["/react/build/static/media/image21.01d0caf7.svg","e5f5f0c37759e488a96306eea799569a"],["/react/build/static/media/image22.d4d77f6c.svg","1abe104b8da60da858be6b21f2d0c62a"],["/react/build/static/media/img1.8560258f.png","1a039a78776399d0eee98e6ad7a07ce5"],["/react/build/static/media/img1.e0beda57.png","37963219e6ca5c4144ba62693c52c31f"],["/react/build/static/media/img1.fc155528.png","2aa17810adc47741e9f26238cbe7dba7"],["/react/build/static/media/img10.64149a3d.png","44f29fca2b72ab9726d3413cd75c763e"],["/react/build/static/media/img15.87a3556c.png","caf5daf4b8834cf0c40a93f32616e2f6"],["/react/build/static/media/img16.32badab9.png","e20c519658bc608e7b432ea7557cf618"],["/react/build/static/media/img17.c25d5edc.png","2b82779b3b1f36aa80495153b68f3d3a"],["/react/build/static/media/img18.4963efc1.png","df5029d95eef15daf5a7326e88399d6d"],["/react/build/static/media/img2.789fbbfe.png","f7ef7805e3cd8e94a431def695bd886d"],["/react/build/static/media/img2.ae303051.png","51bd149911e029ebf15ad8838b05c674"],["/react/build/static/media/img3.cee3ac5b.png","eafb9519b0ba2dd31e768fa8c751ea49"],["/react/build/static/media/img4.53c937cb.png","d79d2611f2cfbc03316fff2204ba0b90"],["/react/build/static/media/img5.ca3a2287.png","a55ff2eecc025d68b5f7a6f1f8a9ed85"],["/react/build/static/media/img6.8f81bf78.png","f64772292e6a90fc1da0dbdca501cd11"],["/react/build/static/media/img7.e4a68e6e.png","4c472d65efdbd4517ada8ee751228890"],["/react/build/static/media/img8.10500e00.png","aea38e49166c86c63b177f3145a0b064"],["/react/build/static/media/img9.d25372ba.png","aa259ddd863027c59146b33666f57c2c"],["/react/build/static/media/introduce.30b50cda.png","b3ccb50edadf6c46d3b4bbe1c0dc4eb5"],["/react/build/static/media/jijinhui.041fb524.png","827c1f894afb783870599d02cb5c4c3f"],["/react/build/static/media/joinUs.26ec28cd.png","9cd5fee199af626730ee25a37f118eb3"],["/react/build/static/media/lightspot-bg.87ad53a9.png","d0ab18b0b4f74eab6b2bfe3aa3a2b88c"],["/react/build/static/media/lightspot1.9214f0ae.png","ac3bd597543bcfb1a17a039b9f955c50"],["/react/build/static/media/lightspot2.b7053786.png","5d91f7f67c0f69fb68d40416c15dc9eb"],["/react/build/static/media/lightspot3.2f8af8da.png","b6a4577e53a6ca085671ffd9a8b62ce0"],["/react/build/static/media/lightspot4.93769763.png","f9f2f6654b165d72d9780e101e19e845"],["/react/build/static/media/loginBg.1cddcbff.png","86ec58b9f8f3f50140770546cf840257"],["/react/build/static/media/logo.62af9fee.png","bdb086d84a720bfb0c7a3bef50cc6422"],["/react/build/static/media/logo.f0d4927b.svg","9ee4b6d239cf05d9118b4a863ca4bfa3"],["/react/build/static/media/logo1.77949f0b.png","c55c1cd504df9c1e180610117d52b26c"],["/react/build/static/media/logo1.ec3c2e67.png","1b63bf1709328011dd17013bd4999fd3"],["/react/build/static/media/logo2.b04c07f2.png","82f448805e0380b391c77943d02b1d46"],["/react/build/static/media/mulan.690d2289.png","b9d8b87a75927dc097d45280c2ca0f4b"],["/react/build/static/media/newIcon.6ce5faf2.svg","47650e72fa1a06001e80def6f101b6af"],["/react/build/static/media/news-item.c2aef644.png","fd090d94d0fe94b8f12a9e68ac872c4d"],["/react/build/static/media/news-main.731a5143.png","40d592ac03be023dd1fd67a60a97df57"],["/react/build/static/media/news-main1.d438d3c7.png","f9c1445528c719c33464b6b9d5be8883"],["/react/build/static/media/nps1.b2849b06.png","a22d69867a2d0871e69fe18ceb7a8201"],["/react/build/static/media/nps2.d5d0b666.png","9b14ce3c332a63d95d62716030398ee3"],["/react/build/static/media/partner_bg.88388216.png","eac2e2ad3b1a25d605ed746409b530ef"],["/react/build/static/media/personalInfo1.13c2500e.png","813da468a7e7472edbdf3de5516049f3"],["/react/build/static/media/personalInfo2.f01447c8.png","5176f62523dc034a2977c61065b2e101"],["/react/build/static/media/projectBg.774764d7.png","916780acccd06591f270420affece47c"],["/react/build/static/media/projectDetailTaskBg.66b1fb2d.png","161c7fee542a59bdf4cb8a5a94086831"],["/react/build/static/media/qqChat.9e56cc22.png","fc97e294a452fcfae783dc73d1f24ff6"],["/react/build/static/media/registerBg.e14e89f4.png","5ca168f423644e195c7fe270cc728873"],["/react/build/static/media/resetPasswordBg.df9a6167.png","13b9a18d3a09d34b1320713d38fbd04f"],["/react/build/static/media/resultBanner.152068bc.png","f94f4227d3825fa32615af9bf12b45f9"],["/react/build/static/media/resultBanner2.c3095c5d.png","e7a33f637c22dbd6e7703ab7c56cf9aa"],["/react/build/static/media/resultBanner3.e11193de.png","2d21f1a2ad794f632b733ab4ba3ed4aa"],["/react/build/static/media/rightBg.55f14f0c.png","f38c59f756ada99c3eafd76ab2333925"],["/react/build/static/media/sexange.b3665539.png","fe580c3386c0dac7aa9480dbe1c26b9d"],["/react/build/static/media/slick.2630a3e3.svg","f97e3bbf73254b0112091d0192f17aec"],["/react/build/static/media/slick.29518378.woff","b7c9e1e479de3b53f1e4e30ebac2403a"],["/react/build/static/media/slick.a4e97f5a.eot","ced611daf7709cc778da928fec876475"],["/react/build/static/media/slick.c94f7671.ttf","d41f55a78e6f49a5512878df1737e58a"],["/react/build/static/media/sponsor11.5e9da48d.png","0cc78d9e2df9b816f79923244d807999"],["/react/build/static/media/sponsor21.8a655acc.png","86d7c2304bf3f60d923bdc6f25951f33"],["/react/build/static/media/sponsor22.96e2b643.png","c26b18460bdc7959b7baddc5bf8e9a8c"],["/react/build/static/media/sponsor31.0fd95bcb.png","099a8680be13f97915df39f8247fe2d9"],["/react/build/static/media/sponsor33.27be3b2d.png","11f04aa6ba51b6ba1ae2e09cdabaff8e"],["/react/build/static/media/studentProject.cd6d6c4f.png","b09a0e1f08910aac316f2aeed243fb76"],["/react/build/static/media/subtitle.5019e086.png","b2d9c74c02d4de483f79085596d0064b"],["/react/build/static/media/tab.12ed44f1.png","581200ee4543ddb99f2eeb0c6df7d4f6"],["/react/build/static/media/tabBackground.18febe91.png","d55a8d32e7d0303ebf04cf4ff42b470a"],["/react/build/static/media/taskbar.49a40f3a.png","80443aacad0a26162d838d4f71af128a"],["/react/build/static/media/teacher-img.e0e2a9bf.png","dae1295a05fabc82382c0116d8f3e5c8"],["/react/build/static/media/teacher1.ee492a9b.png","b995335297dd994485a4855aea43ff27"],["/react/build/static/media/teacher10.9298db29.png","b081bd10fc70f320e0f4448fd1c69da6"],["/react/build/static/media/teacher11.8a0d8669.png","3a3db3db638f5426e7bda4bef24a2484"],["/react/build/static/media/teacher12.47e02224.png","0635d72f566d9365bda9d8d88d80defd"],["/react/build/static/media/teacher13.f7886e36.png","f903bba276231fd009dfa6fc32c8b1b6"],["/react/build/static/media/teacher14.83b48396.png","5b3290eacd871568046c9b5591591d7b"],["/react/build/static/media/teacher15.5d777604.png","2e7eb1c34f389f025d84e13c54ca8297"],["/react/build/static/media/teacher2.b2b9919d.png","7279b7ba87a86ca7d46dfa6d0c9df088"],["/react/build/static/media/teacher3.20cb800b.png","e8277cbe9f532bccc0266be07afb402b"],["/react/build/static/media/teacher4.c15a0bda.png","9a0016c1a46ce39fa8e415bcd9ae72b4"],["/react/build/static/media/teacher5.9397d078.png","51a49c0ea258d928438153cfbd399be4"],["/react/build/static/media/teacher6.06b6f465.png","f1b92d0ac115f75b438f05a31fd0b551"],["/react/build/static/media/teacher7.4102dcc1.png","6e4e9fff991f8cc1f88479706ab55a37"],["/react/build/static/media/teacher8.5d3f117e.png","be6bfe0c206b2089065b0313c07e7eb0"],["/react/build/static/media/teacher9.69b0adae.png","e0666a81294a17768829744aa117ea24"],["/react/build/static/media/time-bg.f61a7e5f.png","ebb56fbe31fc6fc51fb81da23fdfcdf8"],["/react/build/static/media/top-1.54a95b91.png","3d2bbe827191450fb82fc04b7ba925c9"],["/react/build/static/media/top-2.2a21b300.png","7cddde07beac784e8edd065bf3c5f4e2"],["/react/build/static/media/top-3.48ab81a2.png","702e62391cc8148d3f6f405720527121"],["/react/build/static/media/top-bg.7b89cf7e.png","1cf27750ff50673346a49beeab0c3bb9"],["/react/build/static/media/typebg.b2b0ea32.png","c02c413fdc8fbcb9bd4a042ff9f0ea5a"],["/react/build/static/media/xigongye.d51231d3.png","751514079a6e7d1cfd19af4527749e53"],["/react/build/static/media/xiuos.67682257.png","6fd484b0615e89cb2a2fcde1e6e261a1"],["/react/build/static/media/xjy.6e62f4d6.png","6542ba49c3e8515e8cada3f15f7ab094"],["/react/build/static/media/浙江大学.3c545e69.png","b305afeded0784578319d459a6d71cc7"],["/react/build/ts.worker.js.LICENSE.txt","ce15c9d372cc5baeacdeb733817bdde4"]],cacheName="sw-precache-v3-sw-precache-webpack-plugin-"+(self.registration?self.registration.scope:""),ignoreUrlParametersMatching=[/^utm_/],addDirectoryIndex=function(c,a){c=new URL(c);return"/"===c.pathname.slice(-1)&&(c.pathname+=a),c.toString()},cleanResponse=function(a){return a.redirected?("body"in a?Promise.resolve(a.body):a.blob()).then(function(c){return new Response(c,{headers:a.headers,status:a.status,statusText:a.statusText})}):Promise.resolve(a)},createCacheKey=function(c,a,e,d){c=new URL(c);return d&&c.pathname.match(d)||(c.search+=(c.search?"&":"")+encodeURIComponent(a)+"="+encodeURIComponent(e)),c.toString()},isPathWhitelisted=function(c,a){if(0===c.length)return!0;var e=new URL(a).pathname;return c.some(function(c){return e.match(c)})},stripIgnoredUrlParameters=function(c,e){c=new URL(c);return c.hash="",c.search=c.search.slice(1).split("&").map(function(c){return c.split("=")}).filter(function(a){return e.every(function(c){return!c.test(a[0])})}).map(function(c){return c.join("=")}).join("&"),c.toString()},hashParamName="_sw-precache",urlsToCacheKeys=new Map(precacheConfig.map(function(c){var a=c[0],c=c[1],a=new URL(a,self.location),c=createCacheKey(a,hashParamName,c,/\.\w{8}\./);return[a.toString(),c]}));function setOfCachedUrls(c){return c.keys().then(function(c){return c.map(function(c){return c.url})}).then(function(c){return new Set(c)})}self.addEventListener("install",function(c){c.waitUntil(caches.open(cacheName).then(function(d){return setOfCachedUrls(d).then(function(e){return Promise.all(Array.from(urlsToCacheKeys.values()).map(function(a){if(!e.has(a)){var c=new Request(a,{credentials:"same-origin"});return fetch(c).then(function(c){if(!c.ok)throw new Error("Request for "+a+" returned a response with status "+c.status);return cleanResponse(c).then(function(c){return d.put(a,c)})})}}))})}).then(function(){return self.skipWaiting()}))}),self.addEventListener("activate",function(c){var e=new Set(urlsToCacheKeys.values());c.waitUntil(caches.open(cacheName).then(function(a){return a.keys().then(function(c){return Promise.all(c.map(function(c){if(!e.has(c.url))return a.delete(c)}))})}).then(function(){return self.clients.claim()}))}),self.addEventListener("fetch",function(a){var e,c,d;"GET"===a.request.method&&(e=stripIgnoredUrlParameters(a.request.url,ignoreUrlParametersMatching),d="index.html",(c=urlsToCacheKeys.has(e))||(e=addDirectoryIndex(e,d),c=urlsToCacheKeys.has(e)),d="/react/build/index.html",!c&&"navigate"===a.request.mode&&isPathWhitelisted(["^(?!\\/__).*"],a.request.url)&&(e=new URL(d,self.location).toString(),c=urlsToCacheKeys.has(e)),c&&a.respondWith(caches.open(cacheName).then(function(c){return c.match(urlsToCacheKeys.get(e)).then(function(c){if(c)return c;throw Error("The cached response that was expected is missing.")})}).catch(function(c){return console.warn('Couldn\'t serve response for "%s" from cache: %O',a.request.url,c),fetch(a.request)})))}); \ No newline at end of file diff --git a/static/js/40.9ad37d67.chunk.js b/static/js/40.9ad37d67.chunk.js deleted file mode 100644 index b175b7639..000000000 --- a/static/js/40.9ad37d67.chunk.js +++ /dev/null @@ -1 +0,0 @@ -(this.webpackJsonp=this.webpackJsonp||[]).push([[40,10,11,29],{"+BJd":function(t,e,n){"use strict";n.r(e);n("cIOH"),n("6MrE")},"+KLJ":function(t,e,n){"use strict";n.r(e),n.d(e,"default",(function(){return E}));var a=n("cDcd"),r=n("faye"),o=n("MFj2"),i=n("eHJ2"),l=n.n(i),s=n("CtXQ"),c=n("H84U"),u=n("RqAY"),p=n("6CfX");function d(t){return(d="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function f(){return(f=Object.assign||function(t){for(var e=1;e a:first-child:last-child {\n display: inline-block;\n margin: 0 -8px;\n padding: 0 8px;\n}\n.ant-tag .anticon-close {\n display: inline-block;\n font-size: 12px;\n font-size: 10px \\9;\n transform: scale(0.83333333) rotate(0deg);\n margin-left: 3px;\n color: rgba(0, 0, 0, 0.45);\n font-weight: bold;\n cursor: pointer;\n transition: all 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86);\n}\n:root .ant-tag .anticon-close {\n font-size: 12px;\n}\n.ant-tag .anticon-close:hover {\n color: rgba(0, 0, 0, 0.85);\n}\n.ant-tag-has-color {\n border-color: transparent;\n}\n.ant-tag-has-color,\n.ant-tag-has-color a,\n.ant-tag-has-color a:hover,\n.ant-tag-has-color .anticon-close,\n.ant-tag-has-color .anticon-close:hover {\n color: #fff;\n}\n.ant-tag-checkable {\n background-color: transparent;\n border-color: transparent;\n}\n.ant-tag-checkable:not(.ant-tag-checkable-checked):hover {\n color: #466aff;\n}\n.ant-tag-checkable:active,\n.ant-tag-checkable-checked {\n color: #fff;\n}\n.ant-tag-checkable-checked {\n background-color: #466aff;\n}\n.ant-tag-checkable:active {\n background-color: #304cd9;\n}\n.ant-tag-hidden {\n display: none;\n}\n.ant-tag-pink {\n color: #eb2f96;\n background: #fff0f6;\n border-color: #ffadd2;\n}\n.ant-tag-pink-inverse {\n color: #fff;\n background: #eb2f96;\n border-color: #eb2f96;\n}\n.ant-tag-magenta {\n color: #eb2f96;\n background: #fff0f6;\n border-color: #ffadd2;\n}\n.ant-tag-magenta-inverse {\n color: #fff;\n background: #eb2f96;\n border-color: #eb2f96;\n}\n.ant-tag-red {\n color: #f5222d;\n background: #fff1f0;\n border-color: #ffa39e;\n}\n.ant-tag-red-inverse {\n color: #fff;\n background: #f5222d;\n border-color: #f5222d;\n}\n.ant-tag-volcano {\n color: #fa541c;\n background: #fff2e8;\n border-color: #ffbb96;\n}\n.ant-tag-volcano-inverse {\n color: #fff;\n background: #fa541c;\n border-color: #fa541c;\n}\n.ant-tag-orange {\n color: #fa8c16;\n background: #fff7e6;\n border-color: #ffd591;\n}\n.ant-tag-orange-inverse {\n color: #fff;\n background: #fa8c16;\n border-color: #fa8c16;\n}\n.ant-tag-yellow {\n color: #fadb14;\n background: #feffe6;\n border-color: #fffb8f;\n}\n.ant-tag-yellow-inverse {\n color: #fff;\n background: #fadb14;\n border-color: #fadb14;\n}\n.ant-tag-gold {\n color: #faad14;\n background: #fffbe6;\n border-color: #ffe58f;\n}\n.ant-tag-gold-inverse {\n color: #fff;\n background: #faad14;\n border-color: #faad14;\n}\n.ant-tag-cyan {\n color: #13c2c2;\n background: #e6fffb;\n border-color: #87e8de;\n}\n.ant-tag-cyan-inverse {\n color: #fff;\n background: #13c2c2;\n border-color: #13c2c2;\n}\n.ant-tag-lime {\n color: #a0d911;\n background: #fcffe6;\n border-color: #eaff8f;\n}\n.ant-tag-lime-inverse {\n color: #fff;\n background: #a0d911;\n border-color: #a0d911;\n}\n.ant-tag-green {\n color: #52c41a;\n background: #f6ffed;\n border-color: #b7eb8f;\n}\n.ant-tag-green-inverse {\n color: #fff;\n background: #52c41a;\n border-color: #52c41a;\n}\n.ant-tag-blue {\n color: #1890ff;\n background: #e6f7ff;\n border-color: #91d5ff;\n}\n.ant-tag-blue-inverse {\n color: #fff;\n background: #1890ff;\n border-color: #1890ff;\n}\n.ant-tag-geekblue {\n color: #2f54eb;\n background: #f0f5ff;\n border-color: #adc6ff;\n}\n.ant-tag-geekblue-inverse {\n color: #fff;\n background: #2f54eb;\n border-color: #2f54eb;\n}\n.ant-tag-purple {\n color: #722ed1;\n background: #f9f0ff;\n border-color: #d3adf7;\n}\n.ant-tag-purple-inverse {\n color: #fff;\n background: #722ed1;\n border-color: #722ed1;\n}\n",""]),t.exports=e},"2ajD":function(t,e){t.exports=function(t){return t!=t}},"3wW7":function(t,e,n){var a=n("UG7M");"string"==typeof a&&(a=[[t.i,a,""]]);var r={hmr:!0,transform:void 0};n("aET+")(a,r);a.locals&&(t.exports=a.locals)},"6MrE":function(t,e,n){var a=n("0Vyc");"string"==typeof a&&(a=[[t.i,a,""]]);var r={hmr:!0,transform:void 0};n("aET+")(a,r);a.locals&&(t.exports=a.locals)},"8z0m":function(t,e,n){"use strict";n.r(e);var a=n("cDcd"),r=n.n(a),o=n("VCL8"),i=n("QbLZ"),l=n.n(i),s=n("iCc5"),c=n.n(s),u=n("V7oC"),p=n.n(u),d=n("FYw3"),f=n.n(d),m=n("mRg0"),b=n.n(m),h=n("17x9"),g=n.n(h),v=n("YEIV"),y=n.n(v),x=n("TSYQ"),w=n.n(x);function E(t){var e=t.responseText||t.response;if(!e)return e;try{return JSON.parse(e)}catch(t){return e}}function k(t){var e=new XMLHttpRequest;t.onProgress&&e.upload&&(e.upload.onprogress=function(e){e.total>0&&(e.percent=e.loaded/e.total*100),t.onProgress(e)});var n=new FormData;t.data&&Object.keys(t.data).forEach((function(e){var a=t.data[e];Array.isArray(a)?a.forEach((function(t){n.append(e+"[]",t)})):n.append(e,t.data[e])})),n.append(t.filename,t.file),e.onerror=function(e){t.onError(e)},e.onload=function(){if(e.status<200||e.status>=300)return t.onError(function(t,e){var n="cannot "+t.method+" "+t.action+" "+e.status+"'",a=new Error(n);return a.status=e.status,a.method=t.method,a.url=t.action,a}(t,e),E(e));t.onSuccess(E(e),e)},e.open(t.method,t.action,!0),t.withCredentials&&"withCredentials"in e&&(e.withCredentials=!0);var a=t.headers||{};for(var r in null!==a["X-Requested-With"]&&e.setRequestHeader("X-Requested-With","XMLHttpRequest"),a)a.hasOwnProperty(r)&&null!==a[r]&&e.setRequestHeader(r,a[r]);return e.send(n),{abort:function(){e.abort()}}}var _=+new Date,C=0;function O(){return"rc-upload-"+_+"-"+ ++C}var N=function(t,e){if(t&&e){var n=Array.isArray(e)?e:e.split(","),a=t.name||"",r=t.type||"",o=r.replace(/\/.*$/,"");return n.some((function(t){var e,n,i=t.trim();return"."===i.charAt(0)?(e=a.toLowerCase(),n=i.toLowerCase(),-1!==e.indexOf(n,e.length-n.length)):/\/\*$/.test(i)?o===i.replace(/\/.*$/,""):r===i}))}return!0};var P=function(t,e,n){var a=function t(a,r){r=r||"",a.isFile?a.file((function(t){n(t)&&(a.fullPath&&!t.webkitRelativePath&&(Object.defineProperties(t,{webkitRelativePath:{writable:!0}}),t.webkitRelativePath=a.fullPath.replace(/^\//,""),Object.defineProperties(t,{webkitRelativePath:{writable:!1}})),e([t]))})):a.isDirectory&&function(t,e){var n=t.createReader(),a=[];!function t(){n.readEntries((function(n){var r=Array.prototype.slice.apply(n);a=a.concat(r),!r.length?e(a):t()}))}()}(a,(function(e){e.forEach((function(e){t(e,""+r+a.name+"/")}))}))},r=!0,o=!1,i=void 0;try{for(var l,s=t[Symbol.iterator]();!(r=(l=s.next()).done);r=!0){a(l.value.webkitGetAsEntry())}}catch(t){o=!0,i=t}finally{try{!r&&s.return&&s.return()}finally{if(o)throw i}}},S=function(t){function e(){var t,n,a,r;c()(this,e);for(var o=arguments.length,i=Array(o),l=0;l',n=''}return'\n \n \n \n \n \n '+e+'\n \n \n
\n \n '+n+'\n \n
\n \n \n '}},{key:"initIframeSrc",value:function(){this.domain&&(this.getIframeNode().src="javascript:void((function(){\n var d = document;\n d.open();\n d.domain='"+this.domain+"';\n d.write('');\n d.close();\n })())")}},{key:"initIframe",value:function(){var t=this.getIframeNode(),e=t.contentWindow,n=void 0;this.domain=this.domain||"",this.initIframeSrc();try{n=e.document}catch(a){this.domain=document.domain,this.initIframeSrc(),n=(e=t.contentWindow).document}n.open("text/html","replace"),n.write(this.getIframeHTML(this.domain)),n.close(),this.getFormInputNode().onchange=this.onChange}},{key:"endUpload",value:function(){this.state.uploading&&(this.file={},this.state.uploading=!1,this.setState({uploading:!1}),this.initIframe())}},{key:"startUpload",value:function(){this.state.uploading||(this.state.uploading=!0,this.setState({uploading:!0}))}},{key:"updateIframeWH",value:function(){var t=R.a.findDOMNode(this),e=this.getIframeNode();e.style.height=t.offsetHeight+"px",e.style.width=t.offsetWidth+"px"}},{key:"abort",value:function(t){if(t){var e=t;t&&t.uid&&(e=t.uid),e===this.file.uid&&this.endUpload()}else this.endUpload()}},{key:"post",value:function(t){var e=this,n=this.getFormNode(),a=this.getFormDataNode(),r=this.props.data,o=this.props.onStart;"function"==typeof r&&(r=r(t));var i=document.createDocumentFragment();for(var l in r)if(r.hasOwnProperty(l)){var s=document.createElement("input");s.setAttribute("name",l),s.value=r[l],i.appendChild(s)}a.appendChild(i),new Promise((function(n){var a=e.props.action;if("function"==typeof a)return n(a(t));n(a)})).then((function(e){n.setAttribute("action",e),n.submit(),a.innerHTML="",o(t)}))}},{key:"render",value:function(){var t,e=this.props,n=e.component,a=e.disabled,o=e.className,i=e.prefixCls,s=e.children,c=e.style,u=l()({},L,{display:this.state.uploading||a?"none":""}),p=w()((t={},y()(t,i,!0),y()(t,i+"-disabled",a),y()(t,o,o),t));return r.a.createElement(n,{className:p,style:l()({position:"relative",zIndex:0},c)},r.a.createElement("iframe",{ref:this.saveIframe,onLoad:this.onLoad,style:u}),s)}}]),e}(a.Component);z.propTypes={component:g.a.string,style:g.a.object,disabled:g.a.bool,prefixCls:g.a.string,className:g.a.string,accept:g.a.string,onStart:g.a.func,multiple:g.a.bool,children:g.a.any,data:g.a.oneOfType([g.a.object,g.a.func]),action:g.a.oneOfType([g.a.string,g.a.func]),name:g.a.string};var A=z;function F(){}var U=function(t){function e(){var t,n,a,r;c()(this,e);for(var o=arguments.length,i=Array(o),l=0;l0&&void 0!==arguments[0]?arguments[0]:"",e=t.split("/"),n=e[e.length-1],a=n.split(/#|\?/)[0];return(/\.[^./\\]*$/.exec(a)||[""])[0]}(e);return!(!/^data:image\//.test(e)&&!/(webp|svg|png|gif|jpg|jpeg|jfif|bmp|dpg|ico)$/i.test(n))||!/^data:/.test(e)&&!n};var $=n("CtXQ"),tt=n("3S7+"),et=n("CFYs"),nt=n("H84U");function at(t){return(at="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function rt(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function ot(){return(ot=Object.assign||function(t){for(var e=1;e=.98||(e+=n,(n-=.01)<.001&&(n=.001)),e}),o=0;this.clearProgressTimer(),this.progressTimer=setInterval((function(){o=r(o),a.onProgress({percent:100*o},e)}),200)}},{key:"render",value:function(){return a.createElement(nt.a,null,this.renderUpload)}}])&&yt(e.prototype,n),r&&yt(e,r),i}(a.Component);_t.defaultProps={type:"select",multiple:!1,action:"",data:{},accept:"",beforeUpload:function(){return!0},showUploadList:!0,listType:"text",className:"",disabled:!1,supportServerRender:!0},Object(o.polyfill)(_t);var Ct=_t;function Ot(t){return(Ot="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function Nt(){return(Nt=Object.assign||function(t){for(var e=1;ep&&r.default.createElement("div",{style:{textAlign:"center",paddingTop:"20px"}},r.default.createElement(a.default,{pageSize:p,total:u,onChange:function(t){return d(t)}})))}},AySf:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a=d(n("CtXQ")),r=d(n("2/Rp")),o=d(n("8z0m")),i=Object.assign||function(t){for(var e=1;e0&&n.setState({fileList:(0,u.appendFileSizeToUploadFileAll)(t)})},n.onAttachmentRemove=function(t){if(!t.percent||100===t.percent)return n.deleteAttachment(t),!1},n.deleteAttachment=function(t){var e="/attachments/"+(t.response?t.response.id:t.uid)+".json";p.default.delete(e,{}).then((function(e){e.data&&(0===e.data.status?(n.setState((function(e){var n=e.fileList.indexOf(t),a=e.fileList.slice();return a.splice(n,1),{fileList:a}})),n.fileIdList(n.state.fileList)):n.props.showNotification(e.data.message))})).catch((function(t){console.log(t)}))},n.handleChange=function(t){var e=n.props.changeIsComplete;e&&e(!0);var a=t.file;if(a&&!a.type&&!n.checkFile(a.name))return;if("uploading"===t.file.status||"done"===t.file.status||"removed"===t.file.status){var r=t.fileList;n.setState({fileList:(0,u.appendFileSizeToUploadFileAll)(r)}),n.fileIdList(r)}},n.fileIdList=function(t){var e=[];t&&t.length>0&&t.map((function(t){return e.push(t.response&&(t.response.id||t.response.data&&t.response.data.id))})),e&&n.props.load&&n.props.load(e)},n.checkFile=function(t){for(var e=[".rar",".iso",".flv",".rmvb",".mmf",".ape",".vsdx",".msi",".md"],n=!1,a=0;a-1?(p="2",n.getCommit(c,s,u)):i.indexOf("files")>-1&&(p="3",n.getFile(c,s,u)),t&&"1"===p&&n.refreshComment(),n.setState({activeKey:p,commitCount:a&&a.commits_count,filesCount:a&&a.files_count})},n.bindCommentRef=function(t){n.childComment=t},n.refreshComment=function(){n.childComment&&n.childComment.getjournalslist()},n.getCommit=function(t,e,a){n.setState({isSpin:!0});var r="/"+t+"/"+e+"/pulls/"+a+"/commits.json";u.default.get(r).then((function(t){t&&n.setState({commitsData:t.data.commits,commitCount:t.data.commits_count}),n.setState({isSpin:!1})})).catch((function(t){n.setState({isSpin:!1})}))},n.getFile=function(t,e,a){n.setState({isSpin:!0});var r="/"+t+"/"+e+"/pulls/"+a+"/files.json";u.default.get(r).then((function(t){t&&n.setState({filesData:t.data,filesCount:t.data.files_count}),n.setState({isSpin:!1})})).catch((function(t){n.setState({isSpin:!1})}))},n.state={commitsData:[],filesData:void 0,isSpin:!1,activeKey:"1",commitCount:0,filesCount:0,commentsTotalCount:0},n}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(e,t),i(e,[{key:"componentDidMount",value:function(){this.Init(),this.props.bindFootRef&&this.props.bindFootRef(this)}},{key:"componentDidUpdate",value:function(t){this.props.location.pathname!==t.location.pathname&&this.Init(!0)}},{key:"render",value:function(){var t=this,e=this.props.match.params,n=e.projectsId,i=e.owner,l=e.mergeId,u=this.props,m=u.order_id,h=u.data,g=void 0===h?{}:h,v=this.state,y=v.isSpin,x=v.activeKey,w=v.filesCount,E=v.commitCount,k=v.filesData,_=v.commitsData,C=void 0===_?[]:_,O=parseInt(this.state.commentsTotalCount||g.comments_total_count||0,10);return s.default.createElement("div",{className:"main mergeRequest",style:{paddingTop:"0px"}},s.default.createElement(a.default,{spinning:y},s.default.createElement(r.default,{activeKey:x,className:"custom-commit-tabs",animated:!1},s.default.createElement(b,{tab:s.default.createElement(c.Link,{to:"/"+i+"/"+n+"/pulls/"+l},s.default.createElement("span",{className:"font-16"},"评论"),O>0&&s.default.createElement("span",{className:"tabNum"},O)),key:"1"},s.default.createElement(d.default,o({order_id:m,showNotification:this.props.showNotification,only_show_content:!0,updateCommentsNum:function(e){t.setState({commentsTotalCount:e||0})}},this.props,{bindCommentRef:this.bindCommentRef}))),E>0&&s.default.createElement(b,{tab:s.default.createElement(c.Link,{to:"/"+i+"/"+n+"/pulls/"+l+"/commits"},s.default.createElement("span",{className:"font-16"},"提交"),E>0&&s.default.createElement("span",{className:"tabNum"},E)),key:"2"},C.length>0&&s.default.createElement(p.default,o({},this.props,{commits:C,projectsId:n,owner:i}))),w>0&&s.default.createElement(b,{tab:s.default.createElement(c.Link,{to:"/"+i+"/"+n+"/pulls/"+l+"/files"},s.default.createElement("span",{className:"font-16"},"文件"),w>0&&s.default.createElement("span",{className:"tabNum"},w)),key:"3"},s.default.createElement(f.default,o({},this.props,{data:k,projectsId:n,owner:i}))))))}}]),e}(l.Component);e.default=h},CZoQ:function(t,e){t.exports=function(t,e,n){for(var a=n-1,r=t.length;++a=200){var b=e?null:l(t);if(b)return s(b);d=!1,u=i,m=new a}else m=e?[]:f;t:for(;++c-1},n.deleteAttachment=function(t){var e="/attachments/"+t+".json";u.default.delete(e,{}).then((function(e){e.data&&(0===e.data.status?(n.setState({Deleted:n.state.Deleted.concat(t)}),n.props.showNotification("附件删除成功")):n.props.showNotification(e.data.message))})).catch((function(t){console.log(t)}))},n.state={canDelete:!1,show_video:!1,video_url:void 0,video_title:void 0,video_id:void 0,move_spin:!1,Deleted:[]},n}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(e,t),i(e,[{key:"render",value:function(){var t=this,e=this.state,n=e.Deleted,i=e.canDelete,l=e.show_video,u=e.video_url,d=e.video_title,f=e.move_spin,m=this.props.attachments;return s.default.createElement("div",null,m?s.default.createElement("div",{className:"attachmentsList mt5"},m.map((function(e,a){return s.default.createElement("div",{key:a,style:{display:n.length>0&&-1!==n.indexOf(e.id)?"none":"block",padding:"4px"},className:"attachment-list-div"},s.default.createElement(r.default,{spinning:f},t.is_video(e.title)?s.default.createElement("a",{onClick:function(){return t.show_video_modal(e)},className:"attachment-list-a"},s.default.createElement("i",{className:"iconfont icon-fujian mr8 paper-clip-color font-12"}),s.default.createElement("span",null,e.title),s.default.createElement("span",{className:"ml20"},e.filesize)):s.default.createElement(c.Link,{to:""+e.url,target:"_blank",className:"attachment-list-a",download:!0},s.default.createElement("i",{className:"iconfont icon-fujian mr8 paper-clip-color font-12"}),s.default.createElement("span",null,e.title),s.default.createElement("span",{className:"ml20"},e.filesize)),i?s.default.createElement(o.default,{placement:"bottom",title:"您确定要删除附件吗",okText:"是",cancelText:"否",onConfirm:function(){return t.deleteAttachment(e.id)}},s.default.createElement("span",{className:"attachment-list-delete fr"},s.default.createElement("i",{className:"iconfont icon-lajitong mr10 color-grey-9 font-14"}))):""))}))):"",l?s.default.createElement(a.default,{title:d,visible:!0,width:690,footer:null,onCancel:this.hide_video_modal},s.default.createElement(p.default,{video_url:u})):"")}}]),e}(l.Component);e.default=f},MJAS:function(t,e,n){(e=n("JPst")(!1)).push([t.i,"/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-upload {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.65);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5;\n list-style: none;\n font-feature-settings: 'tnum';\n outline: 0;\n}\n.ant-upload p {\n margin: 0;\n}\n.ant-upload-btn {\n display: block;\n width: 100%;\n outline: none;\n}\n.ant-upload input[type='file'] {\n cursor: pointer;\n}\n.ant-upload.ant-upload-select {\n display: inline-block;\n}\n.ant-upload.ant-upload-disabled {\n cursor: not-allowed;\n}\n.ant-upload.ant-upload-select-picture-card {\n display: table;\n float: left;\n width: 104px;\n height: 104px;\n margin-right: 8px;\n margin-bottom: 8px;\n text-align: center;\n vertical-align: top;\n background-color: #fafafa;\n border: 1px dashed #d9d9d9;\n border-radius: 4px;\n cursor: pointer;\n transition: border-color 0.3s ease;\n}\n.ant-upload.ant-upload-select-picture-card > .ant-upload {\n display: table-cell;\n width: 100%;\n height: 100%;\n padding: 8px;\n text-align: center;\n vertical-align: middle;\n}\n.ant-upload.ant-upload-select-picture-card:hover {\n border-color: #466aff;\n}\n.ant-upload.ant-upload-drag {\n position: relative;\n width: 100%;\n height: 100%;\n text-align: center;\n background: #fafafa;\n border: 1px dashed #d9d9d9;\n border-radius: 4px;\n cursor: pointer;\n transition: border-color 0.3s;\n}\n.ant-upload.ant-upload-drag .ant-upload {\n padding: 16px 0;\n}\n.ant-upload.ant-upload-drag.ant-upload-drag-hover:not(.ant-upload-disabled) {\n border-color: #304cd9;\n}\n.ant-upload.ant-upload-drag.ant-upload-disabled {\n cursor: not-allowed;\n}\n.ant-upload.ant-upload-drag .ant-upload-btn {\n display: table;\n height: 100%;\n}\n.ant-upload.ant-upload-drag .ant-upload-drag-container {\n display: table-cell;\n vertical-align: middle;\n}\n.ant-upload.ant-upload-drag:not(.ant-upload-disabled):hover {\n border-color: #6e90ff;\n}\n.ant-upload.ant-upload-drag p.ant-upload-drag-icon {\n margin-bottom: 20px;\n}\n.ant-upload.ant-upload-drag p.ant-upload-drag-icon .anticon {\n color: #6e90ff;\n font-size: 48px;\n}\n.ant-upload.ant-upload-drag p.ant-upload-text {\n margin: 0 0 4px;\n color: rgba(0, 0, 0, 0.85);\n font-size: 16px;\n}\n.ant-upload.ant-upload-drag p.ant-upload-hint {\n color: rgba(0, 0, 0, 0.45);\n font-size: 14px;\n}\n.ant-upload.ant-upload-drag .anticon-plus {\n color: rgba(0, 0, 0, 0.25);\n font-size: 30px;\n transition: all 0.3s;\n}\n.ant-upload.ant-upload-drag .anticon-plus:hover {\n color: rgba(0, 0, 0, 0.45);\n}\n.ant-upload.ant-upload-drag:hover .anticon-plus {\n color: rgba(0, 0, 0, 0.45);\n}\n.ant-upload-picture-card-wrapper {\n zoom: 1;\n display: inline-block;\n width: 100%;\n}\n.ant-upload-picture-card-wrapper::before,\n.ant-upload-picture-card-wrapper::after {\n display: table;\n content: '';\n}\n.ant-upload-picture-card-wrapper::after {\n clear: both;\n}\n.ant-upload-list {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.65);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5;\n list-style: none;\n font-feature-settings: 'tnum';\n zoom: 1;\n}\n.ant-upload-list::before,\n.ant-upload-list::after {\n display: table;\n content: '';\n}\n.ant-upload-list::after {\n clear: both;\n}\n.ant-upload-list-item-list-type-text:hover .ant-upload-list-item-name-icon-count-1 {\n padding-right: 14px;\n}\n.ant-upload-list-item-list-type-text:hover .ant-upload-list-item-name-icon-count-2 {\n padding-right: 28px;\n}\n.ant-upload-list-item {\n position: relative;\n height: 22px;\n margin-top: 8px;\n font-size: 14px;\n}\n.ant-upload-list-item-name {\n display: inline-block;\n width: 100%;\n padding-left: 22px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.ant-upload-list-item-name-icon-count-1 {\n padding-right: 14px;\n}\n.ant-upload-list-item-card-actions {\n position: absolute;\n right: 0;\n opacity: 0;\n}\n.ant-upload-list-item-card-actions.picture {\n top: 25px;\n line-height: 1;\n opacity: 1;\n}\n.ant-upload-list-item-card-actions .anticon {\n padding-right: 6px;\n color: rgba(0, 0, 0, 0.45);\n}\n.ant-upload-list-item-info {\n height: 100%;\n padding: 0 12px 0 4px;\n transition: background-color 0.3s;\n}\n.ant-upload-list-item-info > span {\n display: block;\n width: 100%;\n height: 100%;\n}\n.ant-upload-list-item-info .anticon-loading,\n.ant-upload-list-item-info .anticon-paper-clip {\n position: absolute;\n top: 5px;\n color: rgba(0, 0, 0, 0.45);\n font-size: 14px;\n}\n.ant-upload-list-item .anticon-close {\n display: inline-block;\n font-size: 12px;\n font-size: 10px \\9;\n transform: scale(0.83333333) rotate(0deg);\n position: absolute;\n top: 6px;\n right: 4px;\n color: rgba(0, 0, 0, 0.45);\n line-height: 0;\n cursor: pointer;\n opacity: 0;\n transition: all 0.3s;\n}\n:root .ant-upload-list-item .anticon-close {\n font-size: 12px;\n}\n.ant-upload-list-item .anticon-close:hover {\n color: rgba(0, 0, 0, 0.65);\n}\n.ant-upload-list-item:hover .ant-upload-list-item-info {\n background-color: #f0f5ff;\n}\n.ant-upload-list-item:hover .anticon-close {\n opacity: 1;\n}\n.ant-upload-list-item:hover .ant-upload-list-item-card-actions {\n opacity: 1;\n}\n.ant-upload-list-item-error,\n.ant-upload-list-item-error .anticon-paper-clip,\n.ant-upload-list-item-error .ant-upload-list-item-name {\n color: #f5222d;\n}\n.ant-upload-list-item-error .ant-upload-list-item-card-actions {\n opacity: 1;\n}\n.ant-upload-list-item-error .ant-upload-list-item-card-actions .anticon {\n color: #f5222d;\n}\n.ant-upload-list-item-progress {\n position: absolute;\n bottom: -12px;\n width: 100%;\n padding-left: 26px;\n font-size: 14px;\n line-height: 0;\n}\n.ant-upload-list-picture .ant-upload-list-item,\n.ant-upload-list-picture-card .ant-upload-list-item {\n position: relative;\n height: 66px;\n padding: 8px;\n border: 1px solid #d9d9d9;\n border-radius: 4px;\n}\n.ant-upload-list-picture .ant-upload-list-item:hover,\n.ant-upload-list-picture-card .ant-upload-list-item:hover {\n background: transparent;\n}\n.ant-upload-list-picture .ant-upload-list-item-error,\n.ant-upload-list-picture-card .ant-upload-list-item-error {\n border-color: #f5222d;\n}\n.ant-upload-list-picture .ant-upload-list-item-info,\n.ant-upload-list-picture-card .ant-upload-list-item-info {\n padding: 0;\n}\n.ant-upload-list-picture .ant-upload-list-item:hover .ant-upload-list-item-info,\n.ant-upload-list-picture-card .ant-upload-list-item:hover .ant-upload-list-item-info {\n background: transparent;\n}\n.ant-upload-list-picture .ant-upload-list-item-uploading,\n.ant-upload-list-picture-card .ant-upload-list-item-uploading {\n border-style: dashed;\n}\n.ant-upload-list-picture .ant-upload-list-item-thumbnail,\n.ant-upload-list-picture-card .ant-upload-list-item-thumbnail {\n position: absolute;\n top: 8px;\n left: 8px;\n width: 48px;\n height: 48px;\n font-size: 26px;\n line-height: 54px;\n text-align: center;\n opacity: 0.8;\n}\n.ant-upload-list-picture .ant-upload-list-item-icon,\n.ant-upload-list-picture-card .ant-upload-list-item-icon {\n position: absolute;\n top: 50%;\n left: 50%;\n font-size: 26px;\n transform: translate(-50%, -50%);\n}\n.ant-upload-list-picture .ant-upload-list-item-image,\n.ant-upload-list-picture-card .ant-upload-list-item-image {\n max-width: 100%;\n}\n.ant-upload-list-picture .ant-upload-list-item-thumbnail img,\n.ant-upload-list-picture-card .ant-upload-list-item-thumbnail img {\n display: block;\n width: 48px;\n height: 48px;\n overflow: hidden;\n}\n.ant-upload-list-picture .ant-upload-list-item-name,\n.ant-upload-list-picture-card .ant-upload-list-item-name {\n display: inline-block;\n box-sizing: border-box;\n max-width: 100%;\n margin: 0 0 0 8px;\n padding-right: 8px;\n padding-left: 48px;\n overflow: hidden;\n line-height: 44px;\n white-space: nowrap;\n text-overflow: ellipsis;\n transition: all 0.3s;\n}\n.ant-upload-list-picture .ant-upload-list-item-name-icon-count-1,\n.ant-upload-list-picture-card .ant-upload-list-item-name-icon-count-1 {\n padding-right: 18px;\n}\n.ant-upload-list-picture .ant-upload-list-item-name-icon-count-2,\n.ant-upload-list-picture-card .ant-upload-list-item-name-icon-count-2 {\n padding-right: 36px;\n}\n.ant-upload-list-picture .ant-upload-list-item-uploading .ant-upload-list-item-name,\n.ant-upload-list-picture-card .ant-upload-list-item-uploading .ant-upload-list-item-name {\n line-height: 28px;\n}\n.ant-upload-list-picture .ant-upload-list-item-progress,\n.ant-upload-list-picture-card .ant-upload-list-item-progress {\n bottom: 14px;\n width: calc(100% - 24px);\n margin-top: 0;\n padding-left: 56px;\n}\n.ant-upload-list-picture .anticon-close,\n.ant-upload-list-picture-card .anticon-close {\n position: absolute;\n top: 8px;\n right: 8px;\n line-height: 1;\n opacity: 1;\n}\n.ant-upload-list-picture-card.ant-upload-list::after {\n display: none;\n}\n.ant-upload-list-picture-card-container {\n float: left;\n width: 104px;\n height: 104px;\n margin: 0 8px 8px 0;\n}\n.ant-upload-list-picture-card .ant-upload-list-item {\n float: left;\n width: 104px;\n height: 104px;\n margin: 0 8px 8px 0;\n}\n.ant-upload-list-picture-card .ant-upload-list-item-info {\n position: relative;\n height: 100%;\n overflow: hidden;\n}\n.ant-upload-list-picture-card .ant-upload-list-item-info::before {\n position: absolute;\n z-index: 1;\n width: 100%;\n height: 100%;\n background-color: rgba(0, 0, 0, 0.5);\n opacity: 0;\n transition: all 0.3s;\n content: ' ';\n}\n.ant-upload-list-picture-card .ant-upload-list-item:hover .ant-upload-list-item-info::before {\n opacity: 1;\n}\n.ant-upload-list-picture-card .ant-upload-list-item-actions {\n position: absolute;\n top: 50%;\n left: 50%;\n z-index: 10;\n white-space: nowrap;\n transform: translate(-50%, -50%);\n opacity: 0;\n transition: all 0.3s;\n}\n.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-eye-o,\n.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-download,\n.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-delete {\n z-index: 10;\n width: 16px;\n margin: 0 4px;\n color: rgba(255, 255, 255, 0.85);\n font-size: 16px;\n cursor: pointer;\n transition: all 0.3s;\n}\n.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-eye-o:hover,\n.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-download:hover,\n.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-delete:hover {\n color: #fff;\n}\n.ant-upload-list-picture-card .ant-upload-list-item-info:hover + .ant-upload-list-item-actions,\n.ant-upload-list-picture-card .ant-upload-list-item-actions:hover {\n opacity: 1;\n}\n.ant-upload-list-picture-card .ant-upload-list-item-thumbnail,\n.ant-upload-list-picture-card .ant-upload-list-item-thumbnail img {\n position: static;\n display: block;\n width: 100%;\n height: 100%;\n object-fit: cover;\n}\n.ant-upload-list-picture-card .ant-upload-list-item-name {\n display: none;\n margin: 8px 0 0;\n padding: 0;\n line-height: 1.5;\n text-align: center;\n}\n.ant-upload-list-picture-card .anticon-picture + .ant-upload-list-item-name {\n position: absolute;\n bottom: 10px;\n display: block;\n}\n.ant-upload-list-picture-card .ant-upload-list-item-uploading.ant-upload-list-item {\n background-color: #fafafa;\n}\n.ant-upload-list-picture-card .ant-upload-list-item-uploading .ant-upload-list-item-info {\n height: auto;\n}\n.ant-upload-list-picture-card .ant-upload-list-item-uploading .ant-upload-list-item-info::before,\n.ant-upload-list-picture-card .ant-upload-list-item-uploading .ant-upload-list-item-info .anticon-eye-o,\n.ant-upload-list-picture-card .ant-upload-list-item-uploading .ant-upload-list-item-info .anticon-delete {\n display: none;\n}\n.ant-upload-list-picture-card .ant-upload-list-item-uploading-text {\n margin-top: 18px;\n color: rgba(0, 0, 0, 0.45);\n}\n.ant-upload-list-picture-card .ant-upload-list-item-progress {\n bottom: 32px;\n padding-left: 0;\n}\n.ant-upload-list .ant-upload-success-icon {\n color: #52c41a;\n font-weight: bold;\n}\n.ant-upload-list .ant-upload-animate-enter,\n.ant-upload-list .ant-upload-animate-leave,\n.ant-upload-list .ant-upload-animate-inline-enter,\n.ant-upload-list .ant-upload-animate-inline-leave {\n animation-duration: 0.3s;\n animation-fill-mode: cubic-bezier(0.78, 0.14, 0.15, 0.86);\n}\n.ant-upload-list .ant-upload-animate-enter {\n animation-name: uploadAnimateIn;\n}\n.ant-upload-list .ant-upload-animate-leave {\n animation-name: uploadAnimateOut;\n}\n.ant-upload-list .ant-upload-animate-inline-enter {\n animation-name: uploadAnimateInlineIn;\n}\n.ant-upload-list .ant-upload-animate-inline-leave {\n animation-name: uploadAnimateInlineOut;\n}\n@keyframes uploadAnimateIn {\n from {\n height: 0;\n margin: 0;\n padding: 0;\n opacity: 0;\n }\n}\n@keyframes uploadAnimateOut {\n to {\n height: 0;\n margin: 0;\n padding: 0;\n opacity: 0;\n }\n}\n@keyframes uploadAnimateInlineIn {\n from {\n width: 0;\n height: 0;\n margin: 0;\n padding: 0;\n opacity: 0;\n }\n}\n@keyframes uploadAnimateInlineOut {\n to {\n width: 0;\n height: 0;\n margin: 0;\n padding: 0;\n opacity: 0;\n }\n}\n",""]),t.exports=e},Mwp2:function(t,e,n){"use strict";n.r(e);n("cIOH"),n("3wW7"),n("R9oj"),n("T2oS"),n("DjyN"),n("1GLa")},NJEC:function(t,e,n){"use strict";n.r(e);var a=n("cDcd"),r=n("VCL8"),o=n("3S7+"),i=n("CtXQ"),l=n("2/Rp"),s=n("YMnH"),c=n("ZvpZ"),u=n("H84U");function p(t){return(p="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function d(){return(d=Object.assign||function(t){for(var e=1;e11?t.substring(0,10):t},e.timeFormat=function(t){var e=new Date(1e3*t),n=e.getHours()<10?"0".concat(e.getHours()):e.getHours(),a=e.getMinutes()<10?"0".concat(e.getMinutes()):e.getMinutes();return e.getFullYear()+"-"+(e.getMonth()+1)+"-"+e.getDate()+" "+n+":"+a}},QQbx:function(t,e,n){(e=n("JPst")(!1)).push([t.i,"/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-alert {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.65);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5;\n list-style: none;\n font-feature-settings: 'tnum';\n position: relative;\n padding: 8px 15px 8px 37px;\n word-wrap: break-word;\n border-radius: 4px;\n}\n.ant-alert.ant-alert-no-icon {\n padding: 8px 15px;\n}\n.ant-alert.ant-alert-closable {\n padding-right: 30px;\n}\n.ant-alert-icon {\n position: absolute;\n top: 11.5px;\n left: 16px;\n}\n.ant-alert-description {\n display: none;\n font-size: 14px;\n line-height: 22px;\n}\n.ant-alert-success {\n background-color: #f6ffed;\n border: 1px solid #b7eb8f;\n}\n.ant-alert-success .ant-alert-icon {\n color: #52c41a;\n}\n.ant-alert-info {\n background-color: #e6f7ff;\n border: 1px solid #91d5ff;\n}\n.ant-alert-info .ant-alert-icon {\n color: #1890ff;\n}\n.ant-alert-warning {\n background-color: #fffbe6;\n border: 1px solid #ffe58f;\n}\n.ant-alert-warning .ant-alert-icon {\n color: #faad14;\n}\n.ant-alert-error {\n background-color: #fff1f0;\n border: 1px solid #ffa39e;\n}\n.ant-alert-error .ant-alert-icon {\n color: #f5222d;\n}\n.ant-alert-close-icon {\n position: absolute;\n top: 8px;\n right: 16px;\n padding: 0;\n overflow: hidden;\n font-size: 12px;\n line-height: 22px;\n background-color: transparent;\n border: none;\n outline: none;\n cursor: pointer;\n}\n.ant-alert-close-icon .anticon-close {\n color: rgba(0, 0, 0, 0.45);\n transition: color 0.3s;\n}\n.ant-alert-close-icon .anticon-close:hover {\n color: rgba(0, 0, 0, 0.75);\n}\n.ant-alert-close-text {\n color: rgba(0, 0, 0, 0.45);\n transition: color 0.3s;\n}\n.ant-alert-close-text:hover {\n color: rgba(0, 0, 0, 0.75);\n}\n.ant-alert-with-description {\n position: relative;\n padding: 15px 15px 15px 64px;\n color: rgba(0, 0, 0, 0.65);\n line-height: 1.5;\n border-radius: 4px;\n}\n.ant-alert-with-description.ant-alert-no-icon {\n padding: 15px;\n}\n.ant-alert-with-description .ant-alert-icon {\n position: absolute;\n top: 16px;\n left: 24px;\n font-size: 24px;\n}\n.ant-alert-with-description .ant-alert-close-icon {\n position: absolute;\n top: 16px;\n right: 16px;\n font-size: 14px;\n cursor: pointer;\n}\n.ant-alert-with-description .ant-alert-message {\n display: block;\n margin-bottom: 4px;\n color: rgba(0, 0, 0, 0.85);\n font-size: 16px;\n}\n.ant-alert-message {\n color: rgba(0, 0, 0, 0.85);\n}\n.ant-alert-with-description .ant-alert-description {\n display: block;\n}\n.ant-alert.ant-alert-closing {\n height: 0 !important;\n margin: 0;\n padding-top: 0;\n padding-bottom: 0;\n transform-origin: 50% 0;\n transition: all 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86);\n}\n.ant-alert-slide-up-leave {\n animation: antAlertSlideUpOut 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86);\n animation-fill-mode: both;\n}\n.ant-alert-banner {\n margin-bottom: 0;\n border: 0;\n border-radius: 0;\n}\n@keyframes antAlertSlideUpIn {\n 0% {\n transform: scaleY(0);\n transform-origin: 0% 0%;\n opacity: 0;\n }\n 100% {\n transform: scaleY(1);\n transform-origin: 0% 0%;\n opacity: 1;\n }\n}\n@keyframes antAlertSlideUpOut {\n 0% {\n transform: scaleY(1);\n transform-origin: 0% 0%;\n opacity: 1;\n }\n 100% {\n transform: scaleY(0);\n transform-origin: 0% 0%;\n opacity: 0;\n }\n}\n",""]),t.exports=e},"R/W3":function(t,e,n){var a=n("KwMD"),r=n("2ajD"),o=n("CZoQ");t.exports=function(t,e,n){return e==e?o(t,e,n):a(t,r,n)}},R3zJ:function(t,e,n){"use strict";n.d(e,"b",(function(){return r}));var a=function(t){if("undefined"!=typeof window&&window.document&&window.document.documentElement){var e=Array.isArray(t)?t:[t],n=window.document.documentElement;return e.some((function(t){return t in n.style}))}return!1},r=a(["flex","webkitFlex","Flex","msFlex"]);e.a=a},RqAY:function(t,e,n){"use strict";function a(t){return Object.keys(t).reduce((function(e,n){return"data-"!==n.substr(0,5)&&"aria-"!==n.substr(0,5)&&"role"!==n||"data-__"===n.substr(0,7)||(e[n]=t[n]),e}),{})}n.d(e,"a",(function(){return a}))},"Rs/d":function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a,r,o=(a=["\n display:flex;\n font-weight: bold;\n ","\n align-items: center;\n & img{\n width:30px;\n height:30px;\n border-radius:50%;\n }\n ","\n "],r=["\n display:flex;\n font-weight: bold;\n ","\n align-items: center;\n & img{\n width:30px;\n height:30px;\n border-radius:50%;\n }\n ","\n "],Object.freeze(Object.defineProperties(a,{raw:{value:Object.freeze(r)}}))),i=c(n("cDcd")),l=c(n("vOnD")),s=n("eO8H");function c(t){return t&&t.__esModule?t:{default:t}}e.default=function(t){var e=t.url,n=t.name,a=t.column,r=t.id,c=t.login,u=l.default.span(o,a&&"flex-direction: column;text-align:center;",!a&&"\n & span{\n margin-left:8px;\n }");return r?i.default.createElement(s.Link,{to:"/"+c},i.default.createElement(u,null,e&&i.default.createElement("img",{src:e,alt:""}),i.default.createElement("span",null,n))):i.default.createElement(u,null,e&&i.default.createElement("img",{src:e,alt:""}),i.default.createElement("span",null,n))}},Sxd8:function(t,e,n){var a=n("ZCgT");t.exports=function(t){var e=a(t),n=e%1;return e==e?n?e-n:e:0}},TiQt:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a=E(n("Vl3Y")),r=E(n("W9HT")),o=E(n("jsC+")),i=E(n("CtXQ")),l=E(n("+KLJ")),s=E(n("mr32")),c=E(n("BvKs")),u=E(n("2/Rp")),p=E(n("ZTPi")),d=E(n("5rEg")),f=Object.assign||function(t){for(var e=1;e-1||e.indexOf("ant-tabs-tab")>-1||"ant-tabs-nav-scroll"===e||n.setState({copyVisible:!1})}))},n.getDetail=function(){var t=n.props.match.params,e=t.projectsId,a=t.mergeId,r="/"+t.owner+"/"+e+"/pulls/"+a+".json";v.default.get(r).then((function(t){t&&t.data?n.setState({data:t.data,SpinFlag:!1,pr_status:t.data.pull_request&&t.data.pull_request.status,pull_request:t.data.pull_request,conflict_files:t.data.conflict_files}):n.setState({SpinFlag:!1})})).catch((function(t){n.setState({SpinFlag:!1}),console.log(t)}))},n.closedetail=function(){n.setState({isSpin:!0});var t=n.props.match.params,e=t.projectsId,a=t.mergeId,r="/"+t.owner+"/"+e+"/pulls/"+a+"/refuse_merge.json";v.default.post(r).then((function(t){if(t){n.setState({isSpin:!1,pr_status:2});var e=n.props.getDetail;e&&e()}else n.setState({isSpin:!1})})).catch((function(t){n.setState({isSpin:!1}),console.log(t)})),n.props.showNpsModal("auditPullRequest",2)},n.prmerge=function(){n.setState({SpinMerge:!0});var t=n.props.match.params,e=t.projectsId,a=t.owner,r=n.state,o=r.data,i=r.title,l=r.body,s=r.mergekey,c=(r.pr_status,"/"+a+"/"+e+"/pulls/"+o.pull_request.id+"/pr_merge.json");v.default.post(c,{project_id:e,id:o.pull_request.id,do:s,body:l,title:i}).then((function(t){if(t){n.setState({SpinMerge:!1,pr_status:1});var e=n.props.getDetail;e&&e(),n.footRef&&n.footRef.refreshComment()}else n.setState({SpinMerge:!1})})).catch((function(t){n.setState({SpinMerge:!1}),console.log(t)})),n.props.showNpsModal("auditPullRequest",1)},n.changtitlepr=function(t){n.setState({title:t.target.value})},n.changbodypr=function(t){n.setState({body:t.target.value})},n.submitmerge=function(){"rebase"===n.state.mergekey?n.setState({buttonshow:"block",ismesrge:!0}):n.setState({ismesrge:"block",buttonshow:!1})},n.nonemerge=function(){n.setState({ismesrge:!1,buttonshow:"none"})},n.getOption=function(t){"rebase"===t.key?n.setState({mergename:t.item.props.value,mergekey:t.key,title:"",body:"",buttonshow:"block"}):n.setState({mergename:t.item.props.value,mergekey:t.key,title:"",body:"",ismesrge:!0,buttonshow:"block"})},n.cancelSubmit=function(){n.setState({editMerge:!1})},n.commentCtx=function(t){return h.default.createElement(x.default,{className:"break_word_comments imageLayerParent",value:t,url:n.props.history.location})},n.setCopyVisible=function(t){t.stopPropagation(),n.setState({copyVisible:!0})},n.copyItem=function(){return h.default.createElement("div",{className:"copyTab notHide"},h.default.createElement(p.default,{defaultActiveKey:"1",className:"notHide",animated:!1,size:"small"},h.default.createElement(p.default.TabPane,{key:"1",tab:h.default.createElement("span",{className:"notHide"},"HTTPS")},n.returnCopyUrl("https://gitee.com/44886/polhttp.git")),h.default.createElement(p.default.TabPane,{key:"2",tab:h.default.createElement("span",{className:"notHide"},"SSH")},n.returnCopyUrl("https://gitee.com/44886/polssh.git"))))},n.returnCopyUrl=function(t){return h.default.createElement("div",{className:"df notHide"},h.default.createElement(d.default,{value:t,className:"notHide",disabled:!0}),h.default.createElement(u.default,{type:"primary",ghost:!0,className:"ml15 notHide"},"复制"))},n.jsCopy=function(){var t=document.querySelector("#descContent"),e=document.createRange();window.getSelection().removeAllRanges(),e.selectNode(t),window.getSelection().addRange(e),document.execCommand("Copy")},n.mergeabledMes=function(){return h.default.createElement("div",{className:"clearfix"},h.default.createElement("p",{className:"fl"},"该分支存在冲突,无法自动合并,你可以尝试通过如下命令手动合并"),h.default.createElement("i",{className:"iconfont icon-fuzhi font-16 fr",onClick:function(){return n.jsCopy()}}))},n.mergeabledDesc=function(t,e,n){return h.default.createElement("div",null,h.default.createElement("ul",{id:"descContent"},h.default.createElement("li",null,"git fetch origin"),h.default.createElement("li",null,"git checkout -b ",""+t," origin/",""+t),h.default.createElement("li",null,"git merge ",""+e)),n&&n.length>0&&h.default.createElement("div",null,h.default.createElement("p",{className:"mt10 font-16 pt10",style:{borderTop:"1px solid #f9d7d5"}},"如下文件有代码冲突:"),h.default.createElement("div",null,n.map((function(t,e){return h.default.createElement("p",{key:e},t)})))))},n.codeReview=function(){var t=n.props,e=t.history,a=t.match,r=t.checkIfLogin,o=t.showLoginDialog;if(r&&r()){var i=a.params,l=i.projectsId,s=i.mergeId,c=i.owner,u=(n.props&&n.props.projectDetail).repo_id;v.default.post("/users/action.json",{action_type:"webide-pr",action_id:u}).then((function(t){t&&200===t.status&&e.push("/"+c+"/"+l+"/pulls/"+s+"/review")}))}else o&&o()},n.state={data:void 0,isSpin:!1,ismesrge:!1,buttonshow:"none",mergename:"合并请求",mergekey:"merge",title:"",body:"",SpinFlag:!0,SpinMerge:!1,edit_spin:!1,pr_status:void 0,pull_request:void 0,conflict_files:[],copyVisible:!1},n}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(e,t),m(e,[{key:"render",value:function(){var t=this,e=this.props.match.params,n=e.projectsId,a=e.mergeId,p=e.owner,m=this.state,b=m.data,v=m.SpinMerge,x=m.pr_status,E=m.isSpin,_=m.ismesrge,C=m.SpinFlag,O=(m.copyVisible,m.pull_request),N=m.conflict_files,P=this.props,S=P.current_user,j=P.projectDetail,T=h.default.createElement(c.default,{onClick:function(e){return t.getOption(e)}},h.default.createElement(c.default.Item,{key:"merge",value:"合并请求"},"合并请求"),h.default.createElement(c.default.Item,{key:"rebase",value:"变基并合并"},"变基并合并"),h.default.createElement(c.default.Item,{key:"rebase-merge",value:"变基合并 --no-ff"},"变基合并 --no-ff"),h.default.createElement(c.default.Item,{key:"squash",value:"压缩提交并合并"},"压缩提交并合并")),R=j&&("Admin"===j.permission||"Owner"===j.permission||"Manager"===j.permission),I=S&&S.login&&j&&0===x&&R;return h.default.createElement("div",null,b?h.default.createElement("div",null,h.default.createElement("div",{className:"main"},h.default.createElement("div",null,h.default.createElement("div",{className:"pb20 border-1f df"},h.default.createElement("div",{className:"flex1"},h.default.createElement("div",{className:"ver-middle"},h.default.createElement("span",{className:"mr10 ver-middle"},h.default.createElement("span",{className:"font-18 fwb",style:{wordBreak:"break-all"}},b.issue.subject)),b.pull_request&&h.default.createElement(s.default,{className:"pr_tags_"+b.pull_request.pull_request_staus},1===x?"已合并":2===x?"已拒绝":"开启的")),h.default.createElement("div",{className:"mt15"},h.default.createElement(s.default,{className:"pr-branch-tag"},h.default.createElement(g.Link,{to:"/"+(b.pull_request.is_original?b.pull_request.fork_project_user:b.issue.project_author)+"/"+(b.pull_request.is_original?b.project_identifier:n)+"/tree/"+(0,y.turnbar)(b.pull_request&&b.pull_request.head),className:"ver-middle task-hide",style:{maxWidth:"200px"},title:(b.pull_request.is_original?b.pull_request.fork_project_user_name:b.issue.author_name)+": "+(b.pull_request&&b.pull_request.head)},b.pull_request.is_original?b.pull_request.fork_project_user_name:b.issue.author_name,": ",b.pull_request&&b.pull_request.head)),h.default.createElement("span",{className:"mr8 ver-middle"},h.default.createElement("i",{className:"iconfont icon-youjiang color-grey-c font-16"})),h.default.createElement(s.default,{className:"pr-branch-tag"},h.default.createElement(g.Link,{to:"/"+p+"/"+n+"/tree/"+b.pull_request.base,className:"ver-middle task-hide",style:{maxWidth:"200px"},title:b.issue.project_author_name+":"+b.pull_request.base},b.issue.project_author_name,": ",b.pull_request.base))),h.default.createElement("div",{className:"mt15"},h.default.createElement(g.Link,{to:"/"+b.issue.author_login,className:"show-user-link"},h.default.createElement("img",{className:"mr5",src:(0,y.getImageUrl)("/"+b.issue.author_picture),alt:"",width:"24",height:"24",style:{borderRadius:"50%"}})),h.default.createElement("span",{className:"ver-middle"},h.default.createElement("span",{className:"color-grey-8 mr5"},"由"),h.default.createElement(g.Link,{to:"/"+b.issue.author_login,className:"show-user-link color-blue"},b.issue.author_name),h.default.createElement("span",{className:"ml5 color-grey-8"},0===x?"创建于":1===x?"合并于":"更新于"),h.default.createElement("span",{className:"color-grey-8 ml5"},b.pr_time),h.default.createElement("span",{className:"ml25"},h.default.createElement("span",{className:"color-grey-8"},"审查人员:"),b.issue.assign_user_name?h.default.createElement(g.Link,{to:"/"+b.issue.assign_user_login,className:"show-user-link color-blue"},b.issue.assign_user_name):"--"),h.default.createElement("span",{className:"ml25"},h.default.createElement("span",{className:"color-grey-8"},"里程碑:"),h.default.createElement("span",{className:"color-grey-3"},b.issue.version?b.issue.version:"--")),h.default.createElement("span",{className:"ml25"},h.default.createElement("span",{className:"color-grey-8"},"标记:"),h.default.createElement("span",{className:"color-grey-3"},b.issue.issue_tags&&b.issue.issue_tags.length>0?b.issue.issue_tags[0].name:"--")),h.default.createElement("span",{className:"ml25"},h.default.createElement("span",{className:"color-grey-8"},"优先级:"),h.default.createElement("span",{className:"color-grey-3"},b.issue.priority?b.issue.priority:"--"))))),h.default.createElement("div",{className:"ml10 text-right"},I&&h.default.createElement(u.default,{type:"green",ghost:!0,className:"ml20",onClick:function(){t.props.history.push("/"+p+"/"+n+"/pulls/"+a+"/edit")}},"编辑"),I&&h.default.createElement(u.default,{type:"blue",ghost:!0,className:"ml20 newBtn",onClick:this.codeReview},"代码评审",h.default.createElement("div",{className:"newBtnImg"})),I&&h.default.createElement(u.default,{type:"danger",ghost:!0,onClick:function(){return t.closedetail()},className:"ml20",loading:E},"拒绝"))),b.issue.description?h.default.createElement("div",{className:"mt15"},this.commentCtx(b.issue.description)):h.default.createElement("p",{className:"color-grey-9 ml3 mr3 mt15"},"没有描述")),h.default.createElement("div",{className:"mt15"},2===x&&h.default.createElement(l.default,{message:"提示",description:"该合并请求已被拒绝",type:"error"}),1===x&&h.default.createElement(l.default,{message:"提示",description:"该合并请求已被合并",type:"success"}),I&&h.default.createElement(r.default,{spinning:C},h.default.createElement("div",{style:{display:"rebase"===this.state.mergekey?"none"===this.state.buttonshow?"block":"none":_?"none":"block"}},h.default.createElement(o.default.Button,{overlay:T,type:"primary",onClick:this.submitmerge,className:"mb15",icon:h.default.createElement(i.default,{type:"caret-down"}),disabled:!O||O&&!O.mergeable},this.state.mergename),O&&O.mergeable?h.default.createElement(l.default,{message:"该合并请求可以进行自动合并操作",type:"success",showIcon:!0}):h.default.createElement(l.default,{message:this.mergeabledMes(),type:"error",description:this.mergeabledDesc(O.base,O.head,N),showIcon:!0})),h.default.createElement("div",null,h.default.createElement("div",{style:{display:_?"block":"none",marginTop:15}},h.default.createElement(d.default,{placeholder:"标题",value:this.state.title,onChange:this.changtitlepr}),h.default.createElement(k,{placeholder:"请输入合并描述...",style:{height:"170px",marginTop:20},value:this.state.body,onChange:this.changbodypr})),h.default.createElement("div",{className:"clearfix mt15",style:{display:this.state.buttonshow}},h.default.createElement(r.default,{spinning:v},h.default.createElement(u.default,{type:"primary",onClick:function(){return t.prmerge()}},"确认合并"),h.default.createElement(u.default,{onClick:function(){return t.nonemerge()},className:"ml15"},"取消"))))))),h.default.createElement(w.default,f({order_id:b&&b.issue.id},this.props,this.state,{bindFootRef:this.bindFootRef,pullOwnerLogin:b.pull_request.is_original?b.pull_request.fork_project_user:b.issue.author_login}))):"")}}]),e}(b.Component),C=a.default.create({name:"MessageCountForm"})(_);e.default=C},UG7M:function(t,e,n){(e=n("JPst")(!1)).push([t.i,"/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-list {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.65);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5;\n list-style: none;\n font-feature-settings: 'tnum';\n position: relative;\n}\n.ant-list * {\n outline: none;\n}\n.ant-list-pagination {\n margin-top: 24px;\n text-align: right;\n}\n.ant-list-pagination .ant-pagination-options {\n text-align: left;\n}\n.ant-list-more {\n margin-top: 12px;\n text-align: center;\n}\n.ant-list-more button {\n padding-right: 32px;\n padding-left: 32px;\n}\n.ant-list-spin {\n min-height: 40px;\n text-align: center;\n}\n.ant-list-empty-text {\n padding: 16px;\n color: rgba(0, 0, 0, 0.25);\n font-size: 14px;\n text-align: center;\n}\n.ant-list-items {\n margin: 0;\n padding: 0;\n list-style: none;\n}\n.ant-list-item {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 12px 0;\n}\n.ant-list-item-content {\n color: rgba(0, 0, 0, 0.65);\n}\n.ant-list-item-meta {\n display: flex;\n flex: 1;\n align-items: flex-start;\n font-size: 0;\n}\n.ant-list-item-meta-avatar {\n margin-right: 16px;\n}\n.ant-list-item-meta-content {\n flex: 1 0;\n}\n.ant-list-item-meta-title {\n margin-bottom: 4px;\n color: rgba(0, 0, 0, 0.65);\n font-size: 14px;\n line-height: 22px;\n}\n.ant-list-item-meta-title > a {\n color: rgba(0, 0, 0, 0.65);\n transition: all 0.3s;\n}\n.ant-list-item-meta-title > a:hover {\n color: #466aff;\n}\n.ant-list-item-meta-description {\n color: rgba(0, 0, 0, 0.45);\n font-size: 14px;\n line-height: 22px;\n}\n.ant-list-item-action {\n flex: 0 0 auto;\n margin-left: 48px;\n padding: 0;\n font-size: 0;\n list-style: none;\n}\n.ant-list-item-action > li {\n position: relative;\n display: inline-block;\n padding: 0 8px;\n color: rgba(0, 0, 0, 0.45);\n font-size: 14px;\n line-height: 22px;\n text-align: center;\n cursor: pointer;\n}\n.ant-list-item-action > li:first-child {\n padding-left: 0;\n}\n.ant-list-item-action-split {\n position: absolute;\n top: 50%;\n right: 0;\n width: 1px;\n height: 14px;\n margin-top: -7px;\n background-color: #e8e8e8;\n}\n.ant-list-header {\n background: transparent;\n}\n.ant-list-footer {\n background: transparent;\n}\n.ant-list-header,\n.ant-list-footer {\n padding-top: 12px;\n padding-bottom: 12px;\n}\n.ant-list-empty {\n padding: 16px 0;\n color: rgba(0, 0, 0, 0.45);\n font-size: 12px;\n text-align: center;\n}\n.ant-list-split .ant-list-item {\n border-bottom: 1px solid #e8e8e8;\n}\n.ant-list-split .ant-list-item:last-child {\n border-bottom: none;\n}\n.ant-list-split .ant-list-header {\n border-bottom: 1px solid #e8e8e8;\n}\n.ant-list-loading .ant-list-spin-nested-loading {\n min-height: 32px;\n}\n.ant-list-something-after-last-item .ant-spin-container > .ant-list-items > .ant-list-item:last-child {\n border-bottom: 1px solid #e8e8e8;\n}\n.ant-list-lg .ant-list-item {\n padding-top: 16px;\n padding-bottom: 16px;\n}\n.ant-list-sm .ant-list-item {\n padding-top: 8px;\n padding-bottom: 8px;\n}\n.ant-list-vertical .ant-list-item {\n align-items: initial;\n}\n.ant-list-vertical .ant-list-item-main {\n display: block;\n flex: 1;\n}\n.ant-list-vertical .ant-list-item-extra {\n margin-left: 40px;\n}\n.ant-list-vertical .ant-list-item-meta {\n margin-bottom: 16px;\n}\n.ant-list-vertical .ant-list-item-meta-title {\n margin-bottom: 12px;\n color: rgba(0, 0, 0, 0.85);\n font-size: 16px;\n line-height: 24px;\n}\n.ant-list-vertical .ant-list-item-action {\n margin-top: 16px;\n margin-left: auto;\n}\n.ant-list-vertical .ant-list-item-action > li {\n padding: 0 16px;\n}\n.ant-list-vertical .ant-list-item-action > li:first-child {\n padding-left: 0;\n}\n.ant-list-grid .ant-col > .ant-list-item {\n display: block;\n max-width: 100%;\n margin-bottom: 16px;\n padding-top: 0;\n padding-bottom: 0;\n border-bottom: none;\n}\n.ant-list-item-no-flex {\n display: block;\n}\n.ant-list:not(.ant-list-vertical) .ant-list-item-no-flex .ant-list-item-action {\n float: right;\n}\n.ant-list-bordered {\n border: 1px solid #d9d9d9;\n border-radius: 4px;\n}\n.ant-list-bordered .ant-list-header {\n padding-right: 24px;\n padding-left: 24px;\n}\n.ant-list-bordered .ant-list-footer {\n padding-right: 24px;\n padding-left: 24px;\n}\n.ant-list-bordered .ant-list-item {\n padding-right: 24px;\n padding-left: 24px;\n border-bottom: 1px solid #e8e8e8;\n}\n.ant-list-bordered .ant-list-pagination {\n margin: 16px 24px;\n}\n.ant-list-bordered.ant-list-sm .ant-list-item {\n padding-right: 16px;\n padding-left: 16px;\n}\n.ant-list-bordered.ant-list-sm .ant-list-header,\n.ant-list-bordered.ant-list-sm .ant-list-footer {\n padding: 8px 16px;\n}\n.ant-list-bordered.ant-list-lg .ant-list-header,\n.ant-list-bordered.ant-list-lg .ant-list-footer {\n padding: 16px 24px;\n}\n@media screen and (max-width: 768px) {\n .ant-list-item-action {\n margin-left: 24px;\n }\n .ant-list-vertical .ant-list-item-extra {\n margin-left: 24px;\n }\n}\n@media screen and (max-width: 576px) {\n .ant-list-item {\n flex-wrap: wrap;\n }\n .ant-list-item-action {\n margin-left: 12px;\n }\n .ant-list-vertical .ant-list-item {\n flex-wrap: wrap-reverse;\n }\n .ant-list-vertical .ant-list-item-main {\n min-width: 220px;\n }\n .ant-list-vertical .ant-list-item-extra {\n margin: auto auto 16px;\n }\n}\n",""]),t.exports=e},UQ5L:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a=function(t,e){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return function(t,e){var n=[],a=!0,r=!1,o=void 0;try{for(var i,l=t[Symbol.iterator]();!(a=(i=l.next()).done)&&(n.push(i.value),!e||n.length!==e);a=!0);}catch(t){r=!0,o=t}finally{try{!a&&l.return&&l.return()}finally{if(r)throw o}}return n}(t,e);throw new TypeError("Invalid attempt to destructure non-iterable instance")},r=n("cDcd"),o=l(r),i=l(n("6tYh"));function l(t){return t&&t.__esModule?t:{default:t}}e.default=function(t){var e=(0,r.useState)(null),n=a(e,2),l=n[0],s=n[1];return(0,r.useEffect)((function(){s(t.video_url)}),[]),o.default.createElement(i.default,{url:l,controls:!0,playing:!1})}},UfWW:function(t,e,n){var a=n("KwMD"),r=n("ut/Y"),o=n("Sxd8"),i=Math.max;t.exports=function(t,e,n){var l=null==t?0:t.length;if(!l)return-1;var s=null==n?0:o(n);return s<0&&(s=i(l+s,0)),a(t,r(e,3),s)}},VPG4:function(t,e,n){},VXEj:function(t,e,n){"use strict";n.r(e),n.d(e,"default",(function(){return A}));var a=n("cDcd"),r=n("17x9"),o=n("eHJ2"),i=n.n(o),l=n("BGR+"),s=n("W9HT"),c=n("H84U"),u=n("NUBc"),p=n("qrJ5"),d=n("/kpp");function f(t){if(!a.isValidElement(t))return t;for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r0&&a.createElement("ul",{className:"".concat(v,"-item-action"),key:"actions"},p.map((function(t,e){return a.createElement("li",{key:"".concat(v,"-item-action-").concat(e)},t,e!==p.length-1&&a.createElement("em",{className:"".concat(v,"-item-action-split")}))}))),x=o?"div":"li",w=a.createElement(x,E({},g,{className:i()("".concat(v,"-item"),h,b({},"".concat(v,"-item-no-flex"),!t.isFlexMode()))}),"vertical"===l&&m?[a.createElement("div",{className:"".concat(v,"-item-main"),key:"content"},u,y),a.createElement("div",{className:"".concat(v,"-item-extra"),key:"extra"},m)]:[u,y,f(m,{key:"extra"})]);return o?a.createElement(d.a,{span:_(o,"column"),xs:_(o,"xs"),sm:_(o,"sm"),md:_(o,"md"),lg:_(o,"lg"),xl:_(o,"xl"),xxl:_(o,"xxl")},w):w},t}return e=l,(n=[{key:"isItemContainsTextNodeAndNotSingular",value:function(){var t,e=this.props.children;return a.Children.forEach(e,(function(e){"string"==typeof e&&(t=!0)})),t&&a.Children.count(e)>1}},{key:"isFlexMode",value:function(){var t=this.props.extra;return"vertical"===this.context.itemLayout?!!t:!this.isItemContainsTextNodeAndNotSingular()}},{key:"render",value:function(){return a.createElement(c.a,null,this.renderItem)}}])&&g(e.prototype,n),r&&g(e,r),l}(a.Component);function O(t){return(O="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function N(t){return function(t){if(Array.isArray(t))return P(t)}(t)||function(t){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(t))return Array.from(t)}(t)||function(t,e){if(!t)return;if("string"==typeof t)return P(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return P(t,e)}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function P(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,a=new Array(e);nB&&(M.current=B);var H,q=E?a.createElement("div",{className:"".concat(D,"-pagination")},a.createElement(u.default,S({},M,{onChange:e.onPaginationChange,onShowSizeChange:e.onPaginationShowSizeChange}))):null,K=N(C);if(E&&C.length>(M.current-1)*M.pageSize&&(K=N(C).splice((M.current-1)*M.pageSize,M.pageSize)),H=A&&a.createElement("div",{style:{minHeight:53}}),K.length>0){var W=K.map((function(t,n){return e.renderItem(t,n)})),V=[];a.Children.forEach(W,(function(t,n){V.push(a.cloneElement(t,{key:e.keys[n]}))})),H=k?a.createElement(p.a,{gutter:k.gutter},V):a.createElement("ul",{className:"".concat(D,"-items")},V)}else y||A||(H=e.renderEmpty(D,o));var J=M.position||"bottom";return a.createElement("div",S({className:U},Object(l.default)(I,["rowKey","renderItem","locale"])),("top"===J||"both"===J)&&q,P&&a.createElement("div",{className:"".concat(D,"-header")},P),a.createElement(s.default,L,H,y),T&&a.createElement("div",{className:"".concat(D,"-footer")},T),w||("bottom"===J||"both"===J)&&q)};var n=t.pagination,r=n&&"object"===O(n)?n:{};return e.state={paginationCurrent:r.defaultCurrent||1,paginationSize:r.defaultPageSize||10},e}return e=d,(n=[{key:"getChildContext",value:function(){return{grid:this.props.grid,itemLayout:this.props.itemLayout}}},{key:"triggerPaginationEvent",value:function(t){var e=this;return function(n,a){var r=e.props.pagination;e.setState({paginationCurrent:n,paginationSize:a}),r&&r[t]&&r[t](n,a)}}},{key:"isSomethingAfterLastItem",value:function(){var t=this.props,e=t.loadMore,n=t.pagination,a=t.footer;return!!(e||n||a)}},{key:"render",value:function(){return a.createElement(c.a,null,this.renderList)}}])&&T(e.prototype,n),r&&T(e,r),d}(a.Component);A.Item=C,A.childContextTypes={grid:r.any,itemLayout:r.string},A.defaultProps={dataSource:[],bordered:!1,split:!0,loading:!1,pagination:!1}},"Xt/L":function(t,e){t.exports=function(t,e,n){for(var a=-1,r=null==t?0:t.length;++a=0}(t,e.activeKey)||(n.activeKey=Q(t)),Object.keys(n).length>0?n:null}}]),e}(r.a.Component),Z=function(){var t=this;this.onTabClick=function(e,n){t.tabBar.props.onTabClick&&t.tabBar.props.onTabClick(e,n),t.setActiveKey(e)},this.onNavKeyDown=function(e){var n=e.keyCode;if(n===S||n===j){e.preventDefault();var a=t.getNextActiveKey(!0);t.onTabClick(a)}else if(n===N||n===P){e.preventDefault();var r=t.getNextActiveKey(!1);t.onTabClick(r)}},this.onScroll=function(t){var e=t.target;e===t.currentTarget&&e.scrollLeft>0&&(e.scrollLeft=0)},this.setSentinelStart=function(e){t.sentinelStart=e},this.setSentinelEnd=function(e){t.sentinelEnd=e},this.setPanelSentinelStart=function(e){e!==t.panelSentinelStart&&t.updateSentinelContext(),t.panelSentinelStart=e},this.setPanelSentinelEnd=function(e){e!==t.panelSentinelEnd&&t.updateSentinelContext(),t.panelSentinelEnd=e},this.setActiveKey=function(e){t.state.activeKey!==e&&("activeKey"in t.props||t.setState({activeKey:e}),t.props.onChange(e))},this.getNextActiveKey=function(e){var n=t.state.activeKey,a=[];r.a.Children.forEach(t.props.children,(function(t){t&&!t.props.disabled&&(e?a.push(t):a.unshift(t))}));var o=a.length,i=o&&a[0].key;return a.forEach((function(t,e){t.key===n&&(i=e===o-1?a[0].key:a[e+1].key)})),i}};X.propTypes={destroyInactiveTabPane:w.a.bool,renderTabBar:w.a.func.isRequired,renderTabContent:w.a.func.isRequired,navWrapper:w.a.func,onChange:w.a.func,children:w.a.node,prefixCls:w.a.string,className:w.a.string,tabBarPosition:w.a.string,style:w.a.object,activeKey:w.a.string,defaultActiveKey:w.a.string,direction:w.a.string},X.defaultProps={prefixCls:"rc-tabs",destroyInactiveTabPane:!1,onChange:function(){},navWrapper:function(t){return t},tabBarPosition:"top",children:null,style:{},direction:"ltr"},X.TabPane=G,Object(O.polyfill)(X);var $=X,tt=function(t){function e(){return f()(this,e),g()(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return y()(e,t),b()(e,[{key:"getTabPanes",value:function(){var t=this.props,e=t.activeKey,n=t.children,a=[];return r.a.Children.forEach(n,(function(n){if(n){var o=n.key,i=e===o;a.push(r.a.cloneElement(n,{active:i,destroyInactiveTabPane:t.destroyInactiveTabPane,rootPrefixCls:t.prefixCls}))}})),a}},{key:"render",value:function(){var t,e,n=this.props,a=n.prefixCls,o=n.children,i=n.activeKey,s=n.className,u=n.tabBarPosition,p=n.animated,d=n.animatedWithMargin,f=n.direction,m=n.style,b=k()((t={},c()(t,a+"-content",!0),c()(t,p?a+"-content-animated":a+"-content-no-animated",!0),t),s);if(p){var h=R(o,i);if(-1!==h){var g=d?function(t,e){var n=L(e)?"marginTop":"marginLeft";return c()({},n,100*-t+"%")}(h,u):{transform:e=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"ltr",a=L(e)?"translateY":"translateX";return L(e)||"rtl"!==n?a+"("+100*-t+"%) translateZ(0)":a+"("+100*t+"%) translateZ(0)"}(h,u,f),WebkitTransform:e,MozTransform:e};m=l()({},m,g)}else m=l()({},m,{display:"none"})}return r.a.createElement("div",{className:b,style:m},this.getTabPanes())}}]),e}(r.a.Component),et=tt;tt.propTypes={animated:w.a.bool,animatedWithMargin:w.a.bool,prefixCls:w.a.string,children:w.a.node,activeKey:w.a.string,style:w.a.any,tabBarPosition:w.a.string,className:w.a.string,destroyInactiveTabPane:w.a.bool,direction:w.a.string},tt.defaultProps={animated:!0};var nt=$,at=n("eHJ2"),rt=n.n(at),ot=n("BGR+");function it(t,e){var n=t.props,a=n.styles,r=n.panels,o=n.activeKey,i=n.direction,l=t.props.getRef("root"),s=t.props.getRef("nav")||l,c=t.props.getRef("inkBar"),u=t.props.getRef("activeTab"),p=c.style,d=t.props.tabBarPosition,f=R(r,o);if(e&&(p.display="none"),u){var m=u,b=D(p);if(I(p,""),p.width="",p.height="",p.left="",p.top="",p.bottom="",p.right="","top"===d||"bottom"===d){var h=function(t,e){return U("left","offsetWidth","right",t,e)}(m,s),g=m.offsetWidth;g===l.offsetWidth?g=0:a.inkBar&&void 0!==a.inkBar.width&&(g=parseFloat(a.inkBar.width,10))&&(h+=(m.offsetWidth-g)/2),"rtl"===i&&(h=z(m,"margin-left")-h),b?I(p,"translate3d("+h+"px,0,0)"):p.left=h+"px",p.width=g+"px"}else{var v=function(t,e){return U("top","offsetHeight","bottom",t,e)}(m,s),y=m.offsetHeight;a.inkBar&&void 0!==a.inkBar.height&&(y=parseFloat(a.inkBar.height,10))&&(v+=(m.offsetHeight-y)/2),b?(I(p,"translate3d(0,"+v+"px,0)"),p.top="0"):p.top=v+"px",p.height=y+"px"}}p.display=-1!==f?"block":"none"}var lt=function(t){function e(){return f()(this,e),g()(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return y()(e,t),b()(e,[{key:"componentDidMount",value:function(){var t=this;this.timeout=setTimeout((function(){it(t,!0)}),0)}},{key:"componentDidUpdate",value:function(){it(this)}},{key:"componentWillUnmount",value:function(){clearTimeout(this.timeout)}},{key:"render",value:function(){var t,e=this.props,n=e.prefixCls,a=e.styles,o=e.inkBarAnimated,i=n+"-ink-bar",l=k()((t={},c()(t,i,!0),c()(t,o?i+"-animated":i+"-no-animated",!0),t));return r.a.createElement("div",{style:a.inkBar,className:l,key:"inkBar",ref:this.props.saveRef("inkBar")})}}]),e}(r.a.Component),st=lt;lt.propTypes={prefixCls:w.a.string,styles:w.a.object,inkBarAnimated:w.a.bool,saveRef:w.a.func,direction:w.a.string},lt.defaultProps={prefixCls:"",inkBarAnimated:!0,styles:{},saveRef:function(){}};var ct=n("2W6z"),ut=n.n(ct),pt=function(t){function e(){return f()(this,e),g()(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return y()(e,t),b()(e,[{key:"render",value:function(){var t=this,e=this.props,n=e.panels,a=e.activeKey,o=e.prefixCls,i=e.tabBarGutter,s=e.saveRef,u=e.tabBarPosition,p=e.renderTabBarNode,d=e.direction,f=[];return r.a.Children.forEach(n,(function(e,m){if(e){var b=e.key,h=a===b?o+"-tab-active":"";h+=" "+o+"-tab";var g={};e.props.disabled?h+=" "+o+"-tab-disabled":g={onClick:t.props.onTabClick.bind(t,b)};var v={};a===b&&(v.ref=s("activeTab"));var y=i&&m===n.length-1?0:i,x="rtl"===d?"marginLeft":"marginRight",w=c()({},L(u)?"marginBottom":x,y);ut()("tab"in e.props,"There must be `tab` property on children of Tabs.");var E=r.a.createElement("div",l()({role:"tab","aria-disabled":e.props.disabled?"true":"false","aria-selected":a===b?"true":"false"},g,{className:h,key:b,style:w},v),e.props.tab);p&&(E=p(E)),f.push(E)}})),r.a.createElement("div",{ref:s("navTabsContainer")},f)}}]),e}(r.a.Component),dt=pt;pt.propTypes={activeKey:w.a.string,panels:w.a.node,prefixCls:w.a.string,tabBarGutter:w.a.number,onTabClick:w.a.func,saveRef:w.a.func,renderTabBarNode:w.a.func,tabBarPosition:w.a.string,direction:w.a.string},pt.defaultProps={panels:[],prefixCls:[],tabBarGutter:null,onTabClick:function(){},saveRef:function(){}};var ft=function(t){function e(){return f()(this,e),g()(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return y()(e,t),b()(e,[{key:"render",value:function(){var t=this.props,e=t.prefixCls,n=t.onKeyDown,o=t.className,i=t.extraContent,s=t.style,u=t.tabBarPosition,d=t.children,f=p()(t,["prefixCls","onKeyDown","className","extraContent","style","tabBarPosition","children"]),m=k()(e+"-bar",c()({},o,!!o)),b="top"===u||"bottom"===u,h=b?{float:"right"}:{},g=i&&i.props?i.props.style:{},v=d;return i&&(v=[Object(a.cloneElement)(i,{key:"extra",style:l()({},h,g)}),Object(a.cloneElement)(d,{key:"content"})],v=b?v:v.reverse()),r.a.createElement("div",l()({role:"tablist",className:m,tabIndex:"0",ref:this.props.saveRef("root"),onKeyDown:n,style:s},A(f)),v)}}]),e}(r.a.Component),mt=ft;ft.propTypes={prefixCls:w.a.string,className:w.a.string,style:w.a.object,tabBarPosition:w.a.oneOf(["left","right","top","bottom"]),children:w.a.node,extraContent:w.a.node,onKeyDown:w.a.func,saveRef:w.a.func},ft.defaultProps={prefixCls:"",className:"",style:{},tabBarPosition:"top",extraContent:null,children:null,onKeyDown:function(){},saveRef:function(){}};var bt=n("sEfC"),ht=n.n(bt),gt=n("bdgK"),vt=function(t){function e(t){f()(this,e);var n=g()(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,t));return n.prevTransitionEnd=function(t){if("opacity"===t.propertyName){var e=n.props.getRef("container");n.scrollToActiveTab({target:e,currentTarget:e})}},n.scrollToActiveTab=function(t){var e=n.props.getRef("activeTab"),a=n.props.getRef("navWrap");if((!t||t.target===t.currentTarget)&&e){var r=n.isNextPrevShown()&&n.lastNextPrevShown;if(n.lastNextPrevShown=n.isNextPrevShown(),r){var o=n.getScrollWH(e),i=n.getOffsetWH(a),l=n.offset,s=n.getOffsetLT(a),c=n.getOffsetLT(e);s>c?(l+=s-c,n.setOffset(l)):s+i=0)s=!1,this.setOffset(0,!1),o=0;else if(i1&&void 0!==arguments[1])||arguments[1],n=Math.min(0,t);if(this.offset!==n){this.offset=n;var a={},r=this.props.tabBarPosition,o=this.props.getRef("nav").style,i=D(o);"left"===r||"right"===r?a=i?{value:"translate3d(0,"+n+"px,0)"}:{name:"top",value:n+"px"}:i?("rtl"===this.props.direction&&(n=-n),a={value:"translate3d("+n+"px,0,0)"}):a={name:"left",value:n+"px"},i?I(o,a.value):o[a.name]=a.value,e&&this.setNextPrev()}}},{key:"setPrev",value:function(t){this.state.prev!==t&&this.setState({prev:t})}},{key:"setNext",value:function(t){this.state.next!==t&&this.setState({next:t})}},{key:"isNextPrevShown",value:function(t){return t?t.next||t.prev:this.state.next||this.state.prev}},{key:"render",value:function(){var t,e,n,a,o=this.state,i=o.next,l=o.prev,s=this.props,u=s.prefixCls,p=s.scrollAnimated,d=s.navWrapper,f=s.prevIcon,m=s.nextIcon,b=l||i,h=r.a.createElement("span",{onClick:l?this.prev:null,unselectable:"unselectable",className:k()((t={},c()(t,u+"-tab-prev",1),c()(t,u+"-tab-btn-disabled",!l),c()(t,u+"-tab-arrow-show",b),t)),onTransitionEnd:this.prevTransitionEnd},f||r.a.createElement("span",{className:u+"-tab-prev-icon"})),g=r.a.createElement("span",{onClick:i?this.next:null,unselectable:"unselectable",className:k()((e={},c()(e,u+"-tab-next",1),c()(e,u+"-tab-btn-disabled",!i),c()(e,u+"-tab-arrow-show",b),e))},m||r.a.createElement("span",{className:u+"-tab-next-icon"})),v=u+"-nav",y=k()((n={},c()(n,v,!0),c()(n,p?v+"-animated":v+"-no-animated",!0),n));return r.a.createElement("div",{className:k()((a={},c()(a,u+"-nav-container",1),c()(a,u+"-nav-container-scrolling",b),a)),key:"container",ref:this.props.saveRef("container")},h,g,r.a.createElement("div",{className:u+"-nav-wrap",ref:this.props.saveRef("navWrap")},r.a.createElement("div",{className:u+"-nav-scroll"},r.a.createElement("div",{className:y,ref:this.props.saveRef("nav")},d(this.props.children)))))}}]),e}(r.a.Component),yt=vt;vt.propTypes={activeKey:w.a.string,getRef:w.a.func.isRequired,saveRef:w.a.func.isRequired,tabBarPosition:w.a.oneOf(["left","right","top","bottom"]),prefixCls:w.a.string,scrollAnimated:w.a.bool,onPrevClick:w.a.func,onNextClick:w.a.func,navWrapper:w.a.func,children:w.a.node,prevIcon:w.a.node,nextIcon:w.a.node,direction:w.a.node},vt.defaultProps={tabBarPosition:"left",prefixCls:"",scrollAnimated:!0,onPrevClick:function(){},onNextClick:function(){},navWrapper:function(t){return t}};var xt=function(t){function e(){var t,n,a,r;f()(this,e);for(var o=arguments.length,i=Array(o),l=0;l=0),t),u),x=Ct(Ct({},this.props),{children:null,inkBarAnimated:f,extraContent:l,style:r,prevIcon:g,nextIcon:v,className:y});return e=i?i(x,kt):a.createElement(kt,x),a.cloneElement(e)}}])&&St(e.prototype,n),r&&St(e,r),i}(a.Component);Dt.defaultProps={animated:!0,type:"line"};var Lt=n("H84U"),zt=n("6CfX"),At=n("R3zJ");function Ft(){return(Ft=Object.assign||function(t){for(var e=1;e=0&&("small"===c||"large"===c)),"Tabs","`type=card|editable-card` doesn't have small or large size, it's by design.");var y=r("tabs",i),x=rt()(s,(Ut(n={},"".concat(y,"-vertical"),"left"===d||"right"===d),Ut(n,"".concat(y,"-").concat(c),!!c),Ut(n,"".concat(y,"-card"),p.indexOf("card")>=0),Ut(n,"".concat(y,"-").concat(p),!0),Ut(n,"".concat(y,"-no-animation"),!v),n)),w=[];"editable-card"===p&&(w=[],a.Children.forEach(f,(function(e,n){if(!a.isValidElement(e))return e;var r=e.props.closable,o=(r=void 0===r||r)?a.createElement(_t.default,{type:"close",className:"".concat(y,"-close-x"),onClick:function(n){return t.removeTab(e.key,n)}}):null;w.push(a.cloneElement(e,{tab:a.createElement("div",{className:r?void 0:"".concat(y,"-tab-unclosable")},e.props.tab,o),key:e.key||n}))})),h||(g=a.createElement("span",null,a.createElement(_t.default,{type:"plus",className:"".concat(y,"-new-tab"),onClick:t.createNewTab}),g))),g=g?a.createElement("div",{className:"".concat(y,"-extra-content")},g):null;var E=Jt(t.props,[]),k=rt()("".concat(y,"-").concat(d,"-content"),p.indexOf("card")>=0&&"".concat(y,"-card-content"));return a.createElement(nt,Ft({},t.props,{prefixCls:y,className:x,tabBarPosition:d,renderTabBar:function(){return a.createElement(Dt,Ft({},Object(ot.default)(E,["className"]),{tabBarExtraContent:g}))},renderTabContent:function(){return a.createElement(et,{className:k,animated:v,animatedWithMargin:!0})},onChange:t.handleChange}),w.length>0?w:f)},t}return e=l,(n=[{key:"componentDidMount",value:function(){var t=o.findDOMNode(this);t&&!At.b&&-1===t.className.indexOf(" no-flex")&&(t.className+=" no-flex")}},{key:"render",value:function(){return a.createElement(Lt.a,null,this.renderTabs)}}])&&Ht(e.prototype,n),r&&Ht(e,r),l}(a.Component);Yt.TabPane=G,Yt.defaultProps={hideAdd:!1,tabPosition:"top"}},"Znn+":function(t,e,n){"use strict";n.r(e);n("cIOH"),n("9ama")},aABL:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a=u(n("3S7+")),r=u(n("CFYs")),o=function(t,e){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return function(t,e){var n=[],a=!0,r=!1,o=void 0;try{for(var i,l=t[Symbol.iterator]();!(a=(i=l.next()).done)&&(n.push(i.value),!e||n.length!==e);a=!0);}catch(t){r=!0,o=t}finally{try{!a&&l.return&&l.return()}finally{if(r)throw o}}return n}(t,e);throw new TypeError("Invalid attempt to destructure non-iterable instance")};n("5Dmo"),n("MXD1");var i=n("cDcd"),l=u(i),s=n("PhNK"),c=n("spEH");function u(t){return t&&t.__esModule?t:{default:t}}n("js5m"),n("VPG4"),e.default=function(t){var e=t.data,n=t.history,u=t.owner,p=t.projectsId,d=t.parentsSha,f=(0,i.useState)(e&&e.files),m=o(f,2),b=m[0],h=m[1],g=(0,i.useState)("复制文件路径"),v=o(g,2),y=v[0],x=v[1],w=(0,i.useState)(!1),E=o(w,2),k=E[0],_=E[1];function C(t,e,n){if(!n){var a=b.concat();a[e].flag=!t,a.splice(),h(a)}}(0,i.useEffect)((function(){e&&h(e.files)}),[e]),(0,i.useEffect)((function(){document.addEventListener("click",(function(){_(!1)}))}),[]);var O=l.default.createElement("div",{className:"folders"},l.default.createElement("div",{className:"folderList"},b&&b.map((function(t,e){return l.default.createElement("a",{href:"#value"+e},l.default.createElement(c.FlexAJ,{className:"filesInfo",key:e,onClick:function(){t.flag&&C(t.flag,e,t.isBin),_(!1)}},l.default.createElement(c.AlignCenter,null,l.default.createElement("i",{className:"iconfont icon-wenjianicon mr4"}),l.default.createElement("span",{className:"cursor-pointer","data-clipboard-text":t.name},t.name)),l.default.createElement("div",{className:"see-file"},l.default.createElement(a.default,{placement:"top",title:t.addition+t.deletion+"处更改"+(t.addition+t.deletion>0?":":"")+(t.addition>0?t.addition+"处添加":"")+(t.addition>0&&t.deletion>0?"和":"")+(t.deletion>0?t.deletion+"处删除":"")},l.default.createElement(r.default,{showInfo:!1,strokeColor:"#2DB44D",size:"small",percent:t.addition/(t.addition+t.deletion)*100}),t.addition>0&&l.default.createElement("span",{className:"color-green ml10"},"+",t.addition),t.deletion>0&&l.default.createElement("span",{className:"color-red ml10"},"-",t.deletion)))))}))));return l.default.createElement("div",{onClick:function(t){t.nativeEvent.stopImmediatePropagation()}},l.default.createElement(c.AlignCenter,{className:"color-grey-9",style:{position:"relative"}},l.default.createElement("div",{onClick:function(){_(!k)}},l.default.createElement("i",{className:"iconfont mr5 "+(k?"font-18 icon-sanjiaoxing-down":"font-16 icon-triangle")}),l.default.createElement("span",{className:"color-grey-6 update-file-count"},"共有",l.default.createElement("span",{className:"color-grey-3"}," ",e&&e.files_count," 个文件 "),"被更改,包括",e&&e.total_addition?l.default.createElement("span",{className:"color-green"}," ",e&&e.total_addition," 次插入"):"",e&&e.total_addition&&e.total_deletion?" 和 ":"",e&&e.total_deletion?l.default.createElement("span",{className:"color-red"}," ",e&&e.total_deletion," 次删除"):"")),k&&O),b&&b.length>0&&l.default.createElement("div",{className:"fileList"},b.map((function(t,e){return l.default.createElement("div",{className:"files",key:e},l.default.createElement("a",{id:"value"+e,className:"anchorPoint"}),l.default.createElement(c.FlexAJ,{className:"filesInfo"},l.default.createElement(c.AlignCenter,null,t.isBin?"":l.default.createElement("i",{className:t.flag?"iconfont icon-triangle font-15 color-grey-9":"iconfont icon-sanjiaoxing-down color-grey-9 mt4",onClick:function(){return C(t.flag,e,t.isBin)}}),l.default.createElement("span",{className:"cursor-pointer","data-clipboard-text":t.name,onClick:function(){return C(t.flag,e,t.isBin)}},t.name),l.default.createElement(a.default,{title:y,onVisibleChange:function(){return x("复制文件路径")}},l.default.createElement("i",{className:"iconfont icon-fuzhiicon ml6",onClick:function(){return e=t.name,(n=document.createElement("input")).defaultValue=e,document.body.appendChild(n),n.select(),document.execCommand("Copy"),n.className="copyCont",n.style.display="none",void x("复制成功");var e,n}}))),l.default.createElement("div",{className:"see-file"},l.default.createElement(a.default,{placement:"top",title:t.addition+t.deletion+"处更改"+(t.addition+t.deletion>0?":":"")+" "+(t.addition>0?t.addition+"处添加":"")+(t.addition>0&&t.deletion>0?"和":"")+(t.deletion>0?t.deletion+"处删除":"")},l.default.createElement(r.default,{showInfo:!1,strokeColor:"#2DB44D",size:"small",percent:t.addition/(t.addition+t.deletion)*100}),l.default.createElement("span",{className:"ml10"},t.addition+t.deletion,"处")),!t.isSubmodule&&l.default.createElement("span",{className:"see-file-btn",onClick:function(){n.push("/"+u+"/"+p+(t.isDeleted?"/commits/"+(0,s.truncateCommitId)(d):"/tree/"+(0,s.truncateCommitId)(t.sha)+"/"+t.name))}},"查看文件"))),t.sections&&t.sections.length>=1&&!t.flag&&l.default.createElement("div",{className:"filesContent"},t.sections.map((function(t,e){return t.lines&&t.lines.length>0&&t.lines.map((function(t,n){return l.default.createElement("div",{key:e+n,className:2===t.type?"linesContent add":3===t.type?"linesContent reduce":4===t.type?"linesContent translate":"linesContent"},l.default.createElement("span",{className:"lines"},l.default.createElement("span",null,t.leftIdx&&"0"!==t.leftIdx?t.leftIdx:""),l.default.createElement("span",null,t.rightIdx&&"0"!==t.rightIdx?t.rightIdx:"")),l.default.createElement("p",null,t.content))}))}))))}))))}},bIax:function(t,e){t.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADoAAAAmCAYAAACVr4jIAAAEiklEQVRoQ9WZbWxTZRTHf+feDlAJQhUIftBAUDEaDVG/gHEzEQ3GsVtMWTBGo0QxsLUJRvHDQtmMMRoyaAeJ+O4HCWzZ2rFkghpfQmZMNGqMgiwiJH6YStjmG2Treo+5ZZtDuvXerncrz8c+/3PO/9fbe3uec4VpWqsTOmeWElK4G+VOYCHCPGBAoEeFH4DP1KS1fbP8MlmbMtkEXuPX7tRFGYNtAo8As13E2wKtmNQla6TbhT6nZEpB1zbppozNSwJzCjCcRkn09/H8p/Uy5DV+SkDDMZ0xFORVhce9GrxIL3wsBuuSNXLGSy7/QWNqhILsVwh7MTaRVuC7QICVLZvlb7c5fQe14voy8JxbQ251IhxMniFEvdhuYnwFrYrrCoEjgOHGjFeNQE0yKnvcxPkKasX1W+A2N0YK1JweEJa+H5E/88VPCnR1QmfOslmlBhXANSgZVY5pGc1GhiUoh/MZmOy+CrH2iDTky1MwaGiXhm1hh8C1OYooQj+abQD8XqdSUVmcr0hBoFZcGxDqcHBKYGVMbumoEaeTGnd5NhrarY9phndKgG/Ughg8kayVt4sG6vSnM2xOiHB1iYG+mKyVuqKBWk26AZs3Sgky60XYnYpIbfFAE7oPZX2pgQrsSEbl2UmDxmJqHF3AgnSaDoQ7Sg0U2JqKyisFgVY26WLT5lGENSi3AoESBByxdEKU98Tm3bYt8nMunxc9da2dOheDBpSNCDNKGC6XtbTCm4PC1v93SxeAVjbpMtOmHbjhEgO80K7wkyihZFS+H9kYBV3TqEsNky+Aqy5pyP/IfjeF8tZa+fH8gxkI79HZg0N8KbBsiiCdCYH/97zQnellecd2OZsFtRL6AsqEf7hF+QIERXnaEDozStc4fXJRSo35yWb/eiSc0Plp5SRwRVEr5E5Wn4rKdmerslFvNgMc8bvxV/jHMLlOrLg+Bez1HVJ4KxWRDWPrhBJaruePcjN9rh9xQDuAB/0sJHCor5fKXNO7qiatFpt9fk0hhrk6JBTXboXrfQMVvi4zKZ9okGUl9BmUHb55gFPOFXUmaX7dnycHA6zo3Cy/5oOoSmhclEg+XUH7wlmxdmk/wpUFJZg46IxdxsqDm+S4q9wxNawgzcBDrvReRMofDuhRhJu8xLnQnjMMVrXVSpcL7aikIqaz5gb5ELjLS1xerXJMrITuR6nOK/YgUDjUHpXVHkJGpVVxDQm0FRI7boxwQKyduh4j+9Qr9uoFMggqSsN481fnpZNt0oWOvnBybqPiHiZsHhan/UsP4Rxt5hebdEy+11JR2ZgrvxXX24GvfKx9uizAkpEWsAalycdi0wcq1KYisjsLWhHTwLwgHyjc4xPstIAKfNLXy31OozJ6TAs3ajBt8jlwow+w0wF6vCzDipYt4jwrLhxA39+owcsCHEC5t8iwUwsqfHRuiOrDw5AXgTofhJvVHPqNJ9VmG7CoSMBTBdojBg2Bhbzesk4yY72PO6mv3KuXGwM8IEqVKstFstDOuxTP032g2KCDwz7+UqVHhG9UaLd76XQO2bkuzr9Ki5LaLq4ltwAAAABJRU5ErkJggg=="},dIAb:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a=w(n("VXEj")),r=w(n("NJEC")),o=w(n("2/Rp")),i=w(n("NUBc")),l=w(n("ZTPi")),s=Object.assign||function(t){for(var e=1;e0?t.map((function(t,e){return p.default.createElement("div",{key:e+1,className:"journal-list-item"},p.default.createElement("span",{className:"fwb mr3"},t.detail,":"),p.default.createElement("span",{className:"mr5 color-grey-9"},t.old_value&&t.old_value.length>0?"更新为":"新增"),p.default.createElement("span",null,t.value&&t.value.length>0?"标记"===t.detail?p.default.createElement("span",{className:"issue-tag-show",style:{background:t.value[0].color}},t.value[0].name):t.value:"无"))})):p.default.createElement("div",null,p.default.createElement("span",null,"没有评论~"))},n.ChangePage=function(t){n.setState({page:t,isSpin:!0});var e=n.state.limit;n.getjournalslist(t,e)},n.changeIsComplete=function(t){n.setState({showFiles:t})},n.onContentChange=function(t){t&&n.setState({quillFlag:!1}),n.setState({content:t})},n.replyContentChange=function(t){t&&n.setState({quillFlag:!1}),n.setState({reply_content:t})},n.changeAtWhoLoginList=function(t){n.setState({atWhoLoginList:t})},n.onRef=function(t){n.child=t},n.commentCtx=function(t){return p.default.createElement(y.default,{className:"break_word_comments imageLayerParent",value:t,url:n.props.history.location})},n.Paginations=function(){var t=n.state,e=t.page,a=t.limit,r=t.search_count;if(r>a)return p.default.createElement("div",{className:"pt30 mb50 edu-txt-center btp1"},p.default.createElement(i.default,{simple:!0,defaultCurrent:e,total:r,pageSize:a,onChange:n.ChangePage}))},n.state={content:void 0,journalsdata:void 0,isedit:void 0,fileList:void 0,limit:10,page:1,journal_spin:!1,edit_spin:!1,attachment_clean:!0,orderId:n.props.order_id,is_reply:!1,reply_id:void 0,reply_content:void 0,new_journal_id:void 0,atWhoLoginList:void 0},n}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(e,t),c(e,[{key:"loginModal",value:function(){this.props.showLoginDialog()}},{key:"render",value:function(){var t=this,e=this.state,n=e.journalsdata,i=(e.page,e.limit,e.search_count),c=e.isSpin,u=e.content,f=e.quillFlag,y=e.journal_spin,w=e.attachment_clean,k=e.is_reply,_=e.reply_id,C=e.reply_content,O=e.orderId,N=e.new_journal_id,P=this.props,S=P.current_user,j=P.only_show_content,T=this.props.match.params,R=T.projectsId,I=T.owner,D=function(e,n){return p.default.createElement("div",{className:"grid-item-top pb10"},p.default.createElement(d.Link,{to:"/"+(S&&S.login),className:"show-user-link mr10"},p.default.createElement("img",{className:"radius",src:(0,h.getImageUrl)("/"+(S&&S.image_url)),alt:"",width:"30",height:"30"})),p.default.createElement("div",{style:{position:"relative"}},p.default.createElement(v.default,{placeholder:"添加评论...",height:300,mdID:n?"orderdetail-add-descriptions"+n:"orderdetail-add-descriptions",initValue:e?C:u,onChange:e?t.replyContentChange:t.onContentChange,isCanAtme:!0,changeAtWhoLoginList:t.changeAtWhoLoginList,owner:I,projectsId:R}),p.default.createElement("p",{className:"quillFlag"},f&&p.default.createElement("span",null,"请输入评论内容")),p.default.createElement(m.default,{className:"commentStyle",isComplete:w,load:t.UploadFunc,icon:p.default.createElement("img",{src:b.default,width:"58",alt:"",style:{marginBottom:15}}),size:100,showNotification:t.props.showNotification}),p.default.createElement("p",{className:"clearfix mt20"},p.default.createElement(o.default,{type:"primary",onClick:t.addjournals,loading:y,className:"mr15"},"评论"),p.default.createElement(o.default,{onClick:t.cancel_reply},"取消"))))},L=function(e){return p.default.createElement("div",{className:"width100",key:e.id},p.default.createElement("div",{className:"pb5"},p.default.createElement(d.Link,{to:"/"+(e&&e.user_login),className:"show-user-link"},p.default.createElement("img",{className:"radius",src:(0,h.getImageUrl)("/"+(e&&e.user_picture)),alt:"",width:"30",height:"30"})),p.default.createElement(d.Link,{to:"/"+(e&&e.user_login),className:"show-user-link color-black ml10 fwb"},e&&e.user_name)),p.default.createElement("div",{className:"ml40"},e.content?t.commentCtx(e.content):p.default.createElement("div",null,t.renderJournalList(e.journal_details)),e&&e.attachments&&e.attachments.length>0?p.default.createElement(g.default,{attachments:e.attachments,showNotification:t.props.showNotification,canDelete:S&&(S.admin||S.login===e.user_login)}):"",p.default.createElement("div",{className:"grid-item mt5"},p.default.createElement("span",{className:"color-grey-8"},e.created_at),p.default.createElement("span",{className:"text-right"},S&&(S.admin||S.login===e.user_login)?p.default.createElement(r.default,{placement:"bottom",title:"确定要删除当前评论吗?",okText:"是",cancelText:"否",onConfirm:function(){return t.deleteorder(e.id)}},p.default.createElement(o.default,{type:"link"},p.default.createElement("i",{className:"iconfont icon-shanchu3 font-15 color-grey-6 mr5 ver-middle"}),p.default.createElement("span",{className:"font-12 color-grey-6"},"删除"))):"",p.default.createElement(o.default,{type:"link",className:"ml-10",onClick:function(){return t.add_reply(e.id)}},p.default.createElement("i",{className:"iconfont icon-huifu1 font-15 color-grey-6 mr5 ver-middle"}),p.default.createElement("span",{className:"font-12 color-grey-6"},"回复")))),S&&p.default.createElement("div",null,k&&_&&_===e.id?p.default.createElement("div",{className:"pt20"},D(k,e.id)):""),p.default.createElement(x.default,s({order_id:O,parent_id:e.id,onRef:t.onRef,children_comment_id:N,refreshCommentList:t.getjournalslist},t.props))))};return p.default.createElement("div",null,j?p.default.createElement("div",null,p.default.createElement("div",{className:"mb10"},k&&!_?p.default.createElement("div",{className:"pd20"},D(k,void 0)):p.default.createElement("div",{className:"children-comment-bg pd20 grid-item"},p.default.createElement("img",{className:"radius",src:S&&S.image_url?(0,h.getImageUrl)("/"+S.image_url):"images/avatars/User/b",alt:"",width:"30",height:"30"}),p.default.createElement("span",{className:"reply-comment-input mr20"},p.default.createElement(o.default,{className:"add_reply_button ml10",onClick:function(){return t.add_reply(void 0)}},p.default.createElement("span",null,"添加评论..."))))),n&&n.journals_total_count>0&&p.default.createElement(a.default,{size:"large",loading:c,header:"",dataSource:n.issue_journals,renderItem:function(t){return p.default.createElement(a.default.Item,{key:t.id},L(t))}}),this.Paginations()):p.default.createElement("div",{className:"mt20"},p.default.createElement("div",{className:"comment-background"},p.default.createElement(l.default,{defaultActiveKey:"1",className:"custom-comment-tabs"},p.default.createElement(E,{tab:p.default.createElement("span",{className:"ml-3 font-16"},"评论",i>0&&p.default.createElement("span",{className:"search-count-button"},i)),key:"1"},p.default.createElement("div",{className:"mb10"},k&&!_?p.default.createElement("div",{className:"pd20"},D(k,void 0)):p.default.createElement("div",{className:"children-comment-bg pd20 grid-item mb20"},p.default.createElement("img",{className:"radius",src:S&&S.image_url?(0,h.getImageUrl)("/"+S.image_url):"images/avatars/User/b",alt:"",width:"30",height:"30"}),p.default.createElement("span",{className:"reply-comment-input mr20"},p.default.createElement(o.default,{className:"add_reply_button ml10",onClick:function(){return t.add_reply(void 0)}},p.default.createElement("span",null,"添加评论..."))))),n&&n.journals_total_count>0&&p.default.createElement(a.default,{size:"large",loading:c,header:"",dataSource:n.issue_journals,renderItem:function(t){return p.default.createElement(a.default.Item,{key:t.id},L(t))}}))),this.Paginations())))}}]),e}(u.Component);e.default=k},dQpi:function(t,e,n){var a=n("yGk4"),r=n("vN+2"),o=n("rEGp"),i=a&&1/o(new a([,-0]))[1]==1/0?function(t){return new a(t)}:r;t.exports=i},fOrg:function(t,e,n){"use strict";n.r(e);n("cIOH"),n("YkAm")},"jbM+":function(t,e,n){var a=n("R/W3");t.exports=function(t,e){return!!(null==t?0:t.length)&&a(t,e,0)>-1}},js5m:function(t,e,n){},mr32:function(t,e,n){"use strict";n.r(e);var a=n("cDcd"),r=n("eHJ2"),o=n.n(r),i=n("BGR+"),l=n("VCL8"),s=n("CtXQ"),c=n("H84U");function u(t){return(u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function p(){return(p=Object.assign||function(t){for(var e=1;ea)return c.default.createElement("div",{className:"pt30 mb50 edu-txt-center btp1"},c.default.createElement(i.default,{simple:!0,defaultCurrent:e,total:r,pageSize:a,onChange:n.ChangePage}))},n.renderList=function(t){var e=n.props.current_user;return c.default.createElement("div",{className:"width100"},c.default.createElement("div",{className:"grid-item pb5"},c.default.createElement(u.Link,{to:"/"+(t&&t.user_login),className:"show-user-link"},c.default.createElement("img",{className:"radius",src:(0,d.getImageUrl)("/"+(t&&t.user_picture)),alt:"",width:"30",height:"30"})),c.default.createElement(u.Link,{to:"/"+(t&&t.user_login),className:"show-user-link color-black ml10 fwb"},t&&t.user_name)),c.default.createElement("div",{className:"ml40"},n.commentCtx(t.content),t&&t.attachments&&t.attachments.length>0?c.default.createElement(f.default,{attachments:t.attachments,showNotification:n.props.showNotification,canDelete:e&&(e.admin||e.login===t.user_login)}):"",c.default.createElement("div",{className:"mt5"},c.default.createElement("span",{className:"color-grey-8"},t.created_at),c.default.createElement("span",{className:"ml20"},e&&(e.admin||e.login===t.user_login)?c.default.createElement(r.default,{placement:"bottom",title:"确定要删除当前评论吗?",okText:"是",cancelText:"否",onConfirm:function(){return n.deleteorder(t.id)}},c.default.createElement(o.default,{type:"link"},c.default.createElement("i",{className:"iconfont icon-shanchu3 font-15 color-grey-6 mr5 ver-middle"}),c.default.createElement("span",{className:"font-12 color-grey-6"},"删除"))):""))))},n.state={journalsdata:void 0,limit:10,page:1,journal_spin:!1,search_count:0,isSpin:!1},n}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(e,t),l(e,[{key:"componentDidMount",value:function(){this.getChildrenJournals()}},{key:"componentDidUpdate",value:function(t,e){this.props.children_comment_id&&t.children_comment_id!==this.props.children_comment_id&&this.getChildrenJournals()}},{key:"render",value:function(){var t=this,e=this.state,n=e.journalsdata,r=e.search_count,o=e.isSpin;return c.default.createElement("div",null,r>0&&c.default.createElement("div",{className:"children-comment-bg mt10"},c.default.createElement(a.default,{size:"large",loading:o,dataSource:n.issue_journals,renderItem:function(e){return c.default.createElement(a.default.Item,{key:e.id},t.renderList(e))}}),this.Paginations()))}}]),e}(s.Component);e.default=h},qPyV:function(t,e,n){var a=n("ut/Y"),r=n("LGYb");t.exports=function(t,e){return t&&t.length?r(t,a(e,2)):[]}},tS53:function(t,e,n){(e=n("JPst")(!1)).push([t.i,"/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-nav-container {\n height: 40px;\n}\n.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-ink-bar {\n visibility: hidden;\n}\n.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab {\n height: 40px;\n margin: 0;\n margin-right: 2px;\n padding: 0 16px;\n line-height: 38px;\n background: #fafafa;\n border: 1px solid #e8e8e8;\n border-radius: 4px 4px 0 0;\n transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\n}\n.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab-active {\n height: 40px;\n color: #466aff;\n background: #fff;\n border-color: #e8e8e8;\n border-bottom: 1px solid #fff;\n}\n.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab-active::before {\n border-top: 2px solid transparent;\n}\n.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab-disabled {\n color: #466aff;\n color: rgba(0, 0, 0, 0.25);\n}\n.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab-inactive {\n padding: 0;\n}\n.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-nav-wrap {\n margin-bottom: 0;\n}\n.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab .ant-tabs-close-x {\n width: 16px;\n height: 16px;\n height: 14px;\n margin-right: -5px;\n margin-left: 3px;\n overflow: hidden;\n color: rgba(0, 0, 0, 0.45);\n font-size: 12px;\n vertical-align: middle;\n transition: all 0.3s;\n}\n.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab .ant-tabs-close-x:hover {\n color: rgba(0, 0, 0, 0.85);\n}\n.ant-tabs.ant-tabs-card .ant-tabs-card-content > .ant-tabs-tabpane,\n.ant-tabs.ant-tabs-editable-card .ant-tabs-card-content > .ant-tabs-tabpane {\n transition: none !important;\n}\n.ant-tabs.ant-tabs-card .ant-tabs-card-content > .ant-tabs-tabpane-inactive,\n.ant-tabs.ant-tabs-editable-card .ant-tabs-card-content > .ant-tabs-tabpane-inactive {\n overflow: hidden;\n}\n.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab:hover .anticon-close {\n opacity: 1;\n}\n.ant-tabs-extra-content {\n line-height: 45px;\n}\n.ant-tabs-extra-content .ant-tabs-new-tab {\n position: relative;\n width: 20px;\n height: 20px;\n color: rgba(0, 0, 0, 0.65);\n font-size: 12px;\n line-height: 20px;\n text-align: center;\n border: 1px solid #e8e8e8;\n border-radius: 2px;\n cursor: pointer;\n transition: all 0.3s;\n}\n.ant-tabs-extra-content .ant-tabs-new-tab:hover {\n color: #466aff;\n border-color: #466aff;\n}\n.ant-tabs-extra-content .ant-tabs-new-tab svg {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n margin: auto;\n}\n.ant-tabs.ant-tabs-large .ant-tabs-extra-content {\n line-height: 56px;\n}\n.ant-tabs.ant-tabs-small .ant-tabs-extra-content {\n line-height: 37px;\n}\n.ant-tabs.ant-tabs-card .ant-tabs-extra-content {\n line-height: 40px;\n}\n.ant-tabs-vertical.ant-tabs-card .ant-tabs-card-bar.ant-tabs-left-bar .ant-tabs-nav-container,\n.ant-tabs-vertical.ant-tabs-card .ant-tabs-card-bar.ant-tabs-right-bar .ant-tabs-nav-container {\n height: 100%;\n}\n.ant-tabs-vertical.ant-tabs-card .ant-tabs-card-bar.ant-tabs-left-bar .ant-tabs-tab,\n.ant-tabs-vertical.ant-tabs-card .ant-tabs-card-bar.ant-tabs-right-bar .ant-tabs-tab {\n margin-bottom: 8px;\n border-bottom: 1px solid #e8e8e8;\n}\n.ant-tabs-vertical.ant-tabs-card .ant-tabs-card-bar.ant-tabs-left-bar .ant-tabs-tab-active,\n.ant-tabs-vertical.ant-tabs-card .ant-tabs-card-bar.ant-tabs-right-bar .ant-tabs-tab-active {\n padding-bottom: 4px;\n}\n.ant-tabs-vertical.ant-tabs-card .ant-tabs-card-bar.ant-tabs-left-bar .ant-tabs-tab:last-child,\n.ant-tabs-vertical.ant-tabs-card .ant-tabs-card-bar.ant-tabs-right-bar .ant-tabs-tab:last-child {\n margin-bottom: 8px;\n}\n.ant-tabs-vertical.ant-tabs-card .ant-tabs-card-bar.ant-tabs-left-bar .ant-tabs-new-tab,\n.ant-tabs-vertical.ant-tabs-card .ant-tabs-card-bar.ant-tabs-right-bar .ant-tabs-new-tab {\n width: 90%;\n}\n.ant-tabs-vertical.ant-tabs-card.ant-tabs-left .ant-tabs-card-bar.ant-tabs-left-bar .ant-tabs-nav-wrap {\n margin-right: 0;\n}\n.ant-tabs-vertical.ant-tabs-card.ant-tabs-left .ant-tabs-card-bar.ant-tabs-left-bar .ant-tabs-tab {\n margin-right: 1px;\n border-right: 0;\n border-radius: 4px 0 0 4px;\n}\n.ant-tabs-vertical.ant-tabs-card.ant-tabs-left .ant-tabs-card-bar.ant-tabs-left-bar .ant-tabs-tab-active {\n margin-right: -1px;\n padding-right: 18px;\n}\n.ant-tabs-vertical.ant-tabs-card.ant-tabs-right .ant-tabs-card-bar.ant-tabs-right-bar .ant-tabs-nav-wrap {\n margin-left: 0;\n}\n.ant-tabs-vertical.ant-tabs-card.ant-tabs-right .ant-tabs-card-bar.ant-tabs-right-bar .ant-tabs-tab {\n margin-left: 1px;\n border-left: 0;\n border-radius: 0 4px 4px 0;\n}\n.ant-tabs-vertical.ant-tabs-card.ant-tabs-right .ant-tabs-card-bar.ant-tabs-right-bar .ant-tabs-tab-active {\n margin-left: -1px;\n padding-left: 18px;\n}\n.ant-tabs .ant-tabs-card-bar.ant-tabs-bottom-bar .ant-tabs-tab {\n height: auto;\n border-top: 0;\n border-bottom: 1px solid #e8e8e8;\n border-radius: 0 0 4px 4px;\n}\n.ant-tabs .ant-tabs-card-bar.ant-tabs-bottom-bar .ant-tabs-tab-active {\n padding-top: 1px;\n padding-bottom: 0;\n color: #466aff;\n}\n.ant-tabs {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.65);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5;\n list-style: none;\n font-feature-settings: 'tnum';\n position: relative;\n overflow: hidden;\n zoom: 1;\n}\n.ant-tabs::before,\n.ant-tabs::after {\n display: table;\n content: '';\n}\n.ant-tabs::after {\n clear: both;\n}\n.ant-tabs-ink-bar {\n position: absolute;\n bottom: 1px;\n left: 0;\n z-index: 1;\n box-sizing: border-box;\n width: 0;\n height: 2px;\n background-color: #466aff;\n transform-origin: 0 0;\n}\n.ant-tabs-bar {\n margin: 0 0 16px 0;\n border-bottom: 1px solid #e8e8e8;\n outline: none;\n transition: padding 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\n}\n.ant-tabs-nav-container {\n position: relative;\n box-sizing: border-box;\n margin-bottom: -1px;\n overflow: hidden;\n font-size: 14px;\n line-height: 1.5;\n white-space: nowrap;\n transition: padding 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\n zoom: 1;\n}\n.ant-tabs-nav-container::before,\n.ant-tabs-nav-container::after {\n display: table;\n content: '';\n}\n.ant-tabs-nav-container::after {\n clear: both;\n}\n.ant-tabs-nav-container-scrolling {\n padding-right: 32px;\n padding-left: 32px;\n}\n.ant-tabs-bottom .ant-tabs-bottom-bar {\n margin-top: 16px;\n margin-bottom: 0;\n border-top: 1px solid #e8e8e8;\n border-bottom: none;\n}\n.ant-tabs-bottom .ant-tabs-bottom-bar .ant-tabs-ink-bar {\n top: 1px;\n bottom: auto;\n}\n.ant-tabs-bottom .ant-tabs-bottom-bar .ant-tabs-nav-container {\n margin-top: -1px;\n margin-bottom: 0;\n}\n.ant-tabs-tab-prev,\n.ant-tabs-tab-next {\n position: absolute;\n z-index: 2;\n width: 0;\n height: 100%;\n color: rgba(0, 0, 0, 0.45);\n text-align: center;\n background-color: transparent;\n border: 0;\n cursor: pointer;\n opacity: 0;\n transition: width 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), opacity 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), color 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\n user-select: none;\n pointer-events: none;\n}\n.ant-tabs-tab-prev.ant-tabs-tab-arrow-show,\n.ant-tabs-tab-next.ant-tabs-tab-arrow-show {\n width: 32px;\n height: 100%;\n opacity: 1;\n pointer-events: auto;\n}\n.ant-tabs-tab-prev:hover,\n.ant-tabs-tab-next:hover {\n color: rgba(0, 0, 0, 0.65);\n}\n.ant-tabs-tab-prev-icon,\n.ant-tabs-tab-next-icon {\n position: absolute;\n top: 50%;\n left: 50%;\n font-weight: bold;\n font-style: normal;\n font-variant: normal;\n line-height: inherit;\n text-align: center;\n text-transform: none;\n transform: translate(-50%, -50%);\n}\n.ant-tabs-tab-prev-icon-target,\n.ant-tabs-tab-next-icon-target {\n display: block;\n display: inline-block;\n font-size: 12px;\n font-size: 10px \\9;\n transform: scale(0.83333333) rotate(0deg);\n}\n:root .ant-tabs-tab-prev-icon-target,\n:root .ant-tabs-tab-next-icon-target {\n font-size: 12px;\n}\n.ant-tabs-tab-btn-disabled {\n cursor: not-allowed;\n}\n.ant-tabs-tab-btn-disabled,\n.ant-tabs-tab-btn-disabled:hover {\n color: rgba(0, 0, 0, 0.25);\n}\n.ant-tabs-tab-next {\n right: 2px;\n}\n.ant-tabs-tab-prev {\n left: 0;\n}\n:root .ant-tabs-tab-prev {\n filter: none;\n}\n.ant-tabs-nav-wrap {\n margin-bottom: -1px;\n overflow: hidden;\n}\n.ant-tabs-nav-scroll {\n overflow: hidden;\n white-space: nowrap;\n}\n.ant-tabs-nav {\n position: relative;\n display: inline-block;\n box-sizing: border-box;\n margin: 0;\n padding-left: 0;\n list-style: none;\n transition: transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\n}\n.ant-tabs-nav::before,\n.ant-tabs-nav::after {\n display: table;\n content: ' ';\n}\n.ant-tabs-nav::after {\n clear: both;\n}\n.ant-tabs-nav .ant-tabs-tab {\n position: relative;\n display: inline-block;\n box-sizing: border-box;\n height: 100%;\n margin: 0 32px 0 0;\n padding: 12px 16px;\n text-decoration: none;\n cursor: pointer;\n transition: color 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\n}\n.ant-tabs-nav .ant-tabs-tab::before {\n position: absolute;\n top: -1px;\n left: 0;\n width: 100%;\n border-top: 2px solid transparent;\n border-radius: 4px 4px 0 0;\n transition: all 0.3s;\n content: '';\n pointer-events: none;\n}\n.ant-tabs-nav .ant-tabs-tab:last-child {\n margin-right: 0;\n}\n.ant-tabs-nav .ant-tabs-tab:hover {\n color: #6e90ff;\n}\n.ant-tabs-nav .ant-tabs-tab:active {\n color: #304cd9;\n}\n.ant-tabs-nav .ant-tabs-tab .anticon {\n margin-right: 8px;\n}\n.ant-tabs-nav .ant-tabs-tab-active {\n color: #466aff;\n font-weight: 500;\n}\n.ant-tabs-nav .ant-tabs-tab-disabled,\n.ant-tabs-nav .ant-tabs-tab-disabled:hover {\n color: rgba(0, 0, 0, 0.25);\n cursor: not-allowed;\n}\n.ant-tabs .ant-tabs-large-bar .ant-tabs-nav-container {\n font-size: 16px;\n}\n.ant-tabs .ant-tabs-large-bar .ant-tabs-tab {\n padding: 16px;\n}\n.ant-tabs .ant-tabs-small-bar .ant-tabs-nav-container {\n font-size: 14px;\n}\n.ant-tabs .ant-tabs-small-bar .ant-tabs-tab {\n padding: 8px 16px;\n}\n.ant-tabs-content::before {\n display: block;\n overflow: hidden;\n content: '';\n}\n.ant-tabs .ant-tabs-top-content,\n.ant-tabs .ant-tabs-bottom-content {\n width: 100%;\n}\n.ant-tabs .ant-tabs-top-content > .ant-tabs-tabpane,\n.ant-tabs .ant-tabs-bottom-content > .ant-tabs-tabpane {\n flex-shrink: 0;\n width: 100%;\n -webkit-backface-visibility: hidden;\n opacity: 1;\n transition: opacity 0.45s;\n}\n.ant-tabs .ant-tabs-top-content > .ant-tabs-tabpane-inactive,\n.ant-tabs .ant-tabs-bottom-content > .ant-tabs-tabpane-inactive {\n height: 0;\n padding: 0 !important;\n overflow: hidden;\n opacity: 0;\n pointer-events: none;\n}\n.ant-tabs .ant-tabs-top-content > .ant-tabs-tabpane-inactive input,\n.ant-tabs .ant-tabs-bottom-content > .ant-tabs-tabpane-inactive input {\n visibility: hidden;\n}\n.ant-tabs .ant-tabs-top-content.ant-tabs-content-animated,\n.ant-tabs .ant-tabs-bottom-content.ant-tabs-content-animated {\n display: flex;\n flex-direction: row;\n transition: margin-left 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\n will-change: margin-left;\n}\n.ant-tabs .ant-tabs-left-bar,\n.ant-tabs .ant-tabs-right-bar {\n height: 100%;\n border-bottom: 0;\n}\n.ant-tabs .ant-tabs-left-bar .ant-tabs-tab-arrow-show,\n.ant-tabs .ant-tabs-right-bar .ant-tabs-tab-arrow-show {\n width: 100%;\n height: 32px;\n}\n.ant-tabs .ant-tabs-left-bar .ant-tabs-tab,\n.ant-tabs .ant-tabs-right-bar .ant-tabs-tab {\n display: block;\n float: none;\n margin: 0 0 16px 0;\n padding: 8px 24px;\n}\n.ant-tabs .ant-tabs-left-bar .ant-tabs-tab:last-child,\n.ant-tabs .ant-tabs-right-bar .ant-tabs-tab:last-child {\n margin-bottom: 0;\n}\n.ant-tabs .ant-tabs-left-bar .ant-tabs-extra-content,\n.ant-tabs .ant-tabs-right-bar .ant-tabs-extra-content {\n text-align: center;\n}\n.ant-tabs .ant-tabs-left-bar .ant-tabs-nav-scroll,\n.ant-tabs .ant-tabs-right-bar .ant-tabs-nav-scroll {\n width: auto;\n}\n.ant-tabs .ant-tabs-left-bar .ant-tabs-nav-container,\n.ant-tabs .ant-tabs-right-bar .ant-tabs-nav-container,\n.ant-tabs .ant-tabs-left-bar .ant-tabs-nav-wrap,\n.ant-tabs .ant-tabs-right-bar .ant-tabs-nav-wrap {\n height: 100%;\n}\n.ant-tabs .ant-tabs-left-bar .ant-tabs-nav-container,\n.ant-tabs .ant-tabs-right-bar .ant-tabs-nav-container {\n margin-bottom: 0;\n}\n.ant-tabs .ant-tabs-left-bar .ant-tabs-nav-container.ant-tabs-nav-container-scrolling,\n.ant-tabs .ant-tabs-right-bar .ant-tabs-nav-container.ant-tabs-nav-container-scrolling {\n padding: 32px 0;\n}\n.ant-tabs .ant-tabs-left-bar .ant-tabs-nav-wrap,\n.ant-tabs .ant-tabs-right-bar .ant-tabs-nav-wrap {\n margin-bottom: 0;\n}\n.ant-tabs .ant-tabs-left-bar .ant-tabs-nav,\n.ant-tabs .ant-tabs-right-bar .ant-tabs-nav {\n width: 100%;\n}\n.ant-tabs .ant-tabs-left-bar .ant-tabs-ink-bar,\n.ant-tabs .ant-tabs-right-bar .ant-tabs-ink-bar {\n top: 0;\n bottom: auto;\n left: auto;\n width: 2px;\n height: 0;\n}\n.ant-tabs .ant-tabs-left-bar .ant-tabs-tab-next,\n.ant-tabs .ant-tabs-right-bar .ant-tabs-tab-next {\n right: 0;\n bottom: 0;\n width: 100%;\n height: 32px;\n}\n.ant-tabs .ant-tabs-left-bar .ant-tabs-tab-prev,\n.ant-tabs .ant-tabs-right-bar .ant-tabs-tab-prev {\n top: 0;\n width: 100%;\n height: 32px;\n}\n.ant-tabs .ant-tabs-left-content,\n.ant-tabs .ant-tabs-right-content {\n width: auto;\n margin-top: 0 !important;\n overflow: hidden;\n}\n.ant-tabs .ant-tabs-left-bar {\n float: left;\n margin-right: -1px;\n margin-bottom: 0;\n border-right: 1px solid #e8e8e8;\n}\n.ant-tabs .ant-tabs-left-bar .ant-tabs-tab {\n text-align: right;\n}\n.ant-tabs .ant-tabs-left-bar .ant-tabs-nav-container {\n margin-right: -1px;\n}\n.ant-tabs .ant-tabs-left-bar .ant-tabs-nav-wrap {\n margin-right: -1px;\n}\n.ant-tabs .ant-tabs-left-bar .ant-tabs-ink-bar {\n right: 1px;\n}\n.ant-tabs .ant-tabs-left-content {\n padding-left: 24px;\n border-left: 1px solid #e8e8e8;\n}\n.ant-tabs .ant-tabs-right-bar {\n float: right;\n margin-bottom: 0;\n margin-left: -1px;\n border-left: 1px solid #e8e8e8;\n}\n.ant-tabs .ant-tabs-right-bar .ant-tabs-nav-container {\n margin-left: -1px;\n}\n.ant-tabs .ant-tabs-right-bar .ant-tabs-nav-wrap {\n margin-left: -1px;\n}\n.ant-tabs .ant-tabs-right-bar .ant-tabs-ink-bar {\n left: 1px;\n}\n.ant-tabs .ant-tabs-right-content {\n padding-right: 24px;\n border-right: 1px solid #e8e8e8;\n}\n.ant-tabs-top .ant-tabs-ink-bar-animated,\n.ant-tabs-bottom .ant-tabs-ink-bar-animated {\n transition: transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), width 0.2s cubic-bezier(0.645, 0.045, 0.355, 1), left 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\n}\n.ant-tabs-left .ant-tabs-ink-bar-animated,\n.ant-tabs-right .ant-tabs-ink-bar-animated {\n transition: transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), height 0.2s cubic-bezier(0.645, 0.045, 0.355, 1), top 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\n}\n.no-flex > .ant-tabs-content > .ant-tabs-content-animated,\n.ant-tabs-no-animation > .ant-tabs-content > .ant-tabs-content-animated {\n margin-left: 0 !important;\n transform: none !important;\n}\n.no-flex > .ant-tabs-content > .ant-tabs-tabpane-inactive,\n.ant-tabs-no-animation > .ant-tabs-content > .ant-tabs-tabpane-inactive {\n height: 0;\n padding: 0 !important;\n overflow: hidden;\n opacity: 0;\n pointer-events: none;\n}\n.no-flex > .ant-tabs-content > .ant-tabs-tabpane-inactive input,\n.ant-tabs-no-animation > .ant-tabs-content > .ant-tabs-tabpane-inactive input {\n visibility: hidden;\n}\n.ant-tabs-left-content > .ant-tabs-content-animated,\n.ant-tabs-right-content > .ant-tabs-content-animated {\n margin-left: 0 !important;\n transform: none !important;\n}\n.ant-tabs-left-content > .ant-tabs-tabpane-inactive,\n.ant-tabs-right-content > .ant-tabs-tabpane-inactive {\n height: 0;\n padding: 0 !important;\n overflow: hidden;\n opacity: 0;\n pointer-events: none;\n}\n.ant-tabs-left-content > .ant-tabs-tabpane-inactive input,\n.ant-tabs-right-content > .ant-tabs-tabpane-inactive input {\n visibility: hidden;\n}\n",""]),t.exports=e},"vN+2":function(t,e){t.exports=function(){}}}]); \ No newline at end of file diff --git a/static/js/40.eedb27f5.chunk.js b/static/js/40.eedb27f5.chunk.js new file mode 100644 index 000000000..02c3d2572 --- /dev/null +++ b/static/js/40.eedb27f5.chunk.js @@ -0,0 +1 @@ +(this.webpackJsonp=this.webpackJsonp||[]).push([[40,10,11,29],{"+BJd":function(t,e,n){"use strict";n.r(e);n("cIOH"),n("6MrE")},"+KLJ":function(t,e,n){"use strict";n.r(e),n.d(e,"default",(function(){return E}));var a=n("cDcd"),r=n("faye"),o=n("MFj2"),i=n("eHJ2"),l=n.n(i),s=n("CtXQ"),c=n("H84U"),u=n("RqAY"),p=n("6CfX");function d(t){return(d="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function f(){return(f=Object.assign||function(t){for(var e=1;e a:first-child:last-child {\n display: inline-block;\n margin: 0 -8px;\n padding: 0 8px;\n}\n.ant-tag .anticon-close {\n display: inline-block;\n font-size: 12px;\n font-size: 10px \\9;\n transform: scale(0.83333333) rotate(0deg);\n margin-left: 3px;\n color: rgba(0, 0, 0, 0.45);\n font-weight: bold;\n cursor: pointer;\n transition: all 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86);\n}\n:root .ant-tag .anticon-close {\n font-size: 12px;\n}\n.ant-tag .anticon-close:hover {\n color: rgba(0, 0, 0, 0.85);\n}\n.ant-tag-has-color {\n border-color: transparent;\n}\n.ant-tag-has-color,\n.ant-tag-has-color a,\n.ant-tag-has-color a:hover,\n.ant-tag-has-color .anticon-close,\n.ant-tag-has-color .anticon-close:hover {\n color: #fff;\n}\n.ant-tag-checkable {\n background-color: transparent;\n border-color: transparent;\n}\n.ant-tag-checkable:not(.ant-tag-checkable-checked):hover {\n color: #466aff;\n}\n.ant-tag-checkable:active,\n.ant-tag-checkable-checked {\n color: #fff;\n}\n.ant-tag-checkable-checked {\n background-color: #466aff;\n}\n.ant-tag-checkable:active {\n background-color: #304cd9;\n}\n.ant-tag-hidden {\n display: none;\n}\n.ant-tag-pink {\n color: #eb2f96;\n background: #fff0f6;\n border-color: #ffadd2;\n}\n.ant-tag-pink-inverse {\n color: #fff;\n background: #eb2f96;\n border-color: #eb2f96;\n}\n.ant-tag-magenta {\n color: #eb2f96;\n background: #fff0f6;\n border-color: #ffadd2;\n}\n.ant-tag-magenta-inverse {\n color: #fff;\n background: #eb2f96;\n border-color: #eb2f96;\n}\n.ant-tag-red {\n color: #f5222d;\n background: #fff1f0;\n border-color: #ffa39e;\n}\n.ant-tag-red-inverse {\n color: #fff;\n background: #f5222d;\n border-color: #f5222d;\n}\n.ant-tag-volcano {\n color: #fa541c;\n background: #fff2e8;\n border-color: #ffbb96;\n}\n.ant-tag-volcano-inverse {\n color: #fff;\n background: #fa541c;\n border-color: #fa541c;\n}\n.ant-tag-orange {\n color: #fa8c16;\n background: #fff7e6;\n border-color: #ffd591;\n}\n.ant-tag-orange-inverse {\n color: #fff;\n background: #fa8c16;\n border-color: #fa8c16;\n}\n.ant-tag-yellow {\n color: #fadb14;\n background: #feffe6;\n border-color: #fffb8f;\n}\n.ant-tag-yellow-inverse {\n color: #fff;\n background: #fadb14;\n border-color: #fadb14;\n}\n.ant-tag-gold {\n color: #faad14;\n background: #fffbe6;\n border-color: #ffe58f;\n}\n.ant-tag-gold-inverse {\n color: #fff;\n background: #faad14;\n border-color: #faad14;\n}\n.ant-tag-cyan {\n color: #13c2c2;\n background: #e6fffb;\n border-color: #87e8de;\n}\n.ant-tag-cyan-inverse {\n color: #fff;\n background: #13c2c2;\n border-color: #13c2c2;\n}\n.ant-tag-lime {\n color: #a0d911;\n background: #fcffe6;\n border-color: #eaff8f;\n}\n.ant-tag-lime-inverse {\n color: #fff;\n background: #a0d911;\n border-color: #a0d911;\n}\n.ant-tag-green {\n color: #52c41a;\n background: #f6ffed;\n border-color: #b7eb8f;\n}\n.ant-tag-green-inverse {\n color: #fff;\n background: #52c41a;\n border-color: #52c41a;\n}\n.ant-tag-blue {\n color: #1890ff;\n background: #e6f7ff;\n border-color: #91d5ff;\n}\n.ant-tag-blue-inverse {\n color: #fff;\n background: #1890ff;\n border-color: #1890ff;\n}\n.ant-tag-geekblue {\n color: #2f54eb;\n background: #f0f5ff;\n border-color: #adc6ff;\n}\n.ant-tag-geekblue-inverse {\n color: #fff;\n background: #2f54eb;\n border-color: #2f54eb;\n}\n.ant-tag-purple {\n color: #722ed1;\n background: #f9f0ff;\n border-color: #d3adf7;\n}\n.ant-tag-purple-inverse {\n color: #fff;\n background: #722ed1;\n border-color: #722ed1;\n}\n",""]),t.exports=e},"2ajD":function(t,e){t.exports=function(t){return t!=t}},"3wW7":function(t,e,n){var a=n("UG7M");"string"==typeof a&&(a=[[t.i,a,""]]);var r={hmr:!0,transform:void 0};n("aET+")(a,r);a.locals&&(t.exports=a.locals)},"6MrE":function(t,e,n){var a=n("0Vyc");"string"==typeof a&&(a=[[t.i,a,""]]);var r={hmr:!0,transform:void 0};n("aET+")(a,r);a.locals&&(t.exports=a.locals)},"8z0m":function(t,e,n){"use strict";n.r(e);var a=n("cDcd"),r=n.n(a),o=n("VCL8"),i=n("QbLZ"),l=n.n(i),s=n("iCc5"),c=n.n(s),u=n("V7oC"),p=n.n(u),d=n("FYw3"),f=n.n(d),m=n("mRg0"),b=n.n(m),h=n("17x9"),g=n.n(h),v=n("YEIV"),y=n.n(v),x=n("TSYQ"),w=n.n(x);function E(t){var e=t.responseText||t.response;if(!e)return e;try{return JSON.parse(e)}catch(t){return e}}function k(t){var e=new XMLHttpRequest;t.onProgress&&e.upload&&(e.upload.onprogress=function(e){e.total>0&&(e.percent=e.loaded/e.total*100),t.onProgress(e)});var n=new FormData;t.data&&Object.keys(t.data).forEach((function(e){var a=t.data[e];Array.isArray(a)?a.forEach((function(t){n.append(e+"[]",t)})):n.append(e,t.data[e])})),n.append(t.filename,t.file),e.onerror=function(e){t.onError(e)},e.onload=function(){if(e.status<200||e.status>=300)return t.onError(function(t,e){var n="cannot "+t.method+" "+t.action+" "+e.status+"'",a=new Error(n);return a.status=e.status,a.method=t.method,a.url=t.action,a}(t,e),E(e));t.onSuccess(E(e),e)},e.open(t.method,t.action,!0),t.withCredentials&&"withCredentials"in e&&(e.withCredentials=!0);var a=t.headers||{};for(var r in null!==a["X-Requested-With"]&&e.setRequestHeader("X-Requested-With","XMLHttpRequest"),a)a.hasOwnProperty(r)&&null!==a[r]&&e.setRequestHeader(r,a[r]);return e.send(n),{abort:function(){e.abort()}}}var _=+new Date,C=0;function O(){return"rc-upload-"+_+"-"+ ++C}var N=function(t,e){if(t&&e){var n=Array.isArray(e)?e:e.split(","),a=t.name||"",r=t.type||"",o=r.replace(/\/.*$/,"");return n.some((function(t){var e,n,i=t.trim();return"."===i.charAt(0)?(e=a.toLowerCase(),n=i.toLowerCase(),-1!==e.indexOf(n,e.length-n.length)):/\/\*$/.test(i)?o===i.replace(/\/.*$/,""):r===i}))}return!0};var P=function(t,e,n){var a=function t(a,r){r=r||"",a.isFile?a.file((function(t){n(t)&&(a.fullPath&&!t.webkitRelativePath&&(Object.defineProperties(t,{webkitRelativePath:{writable:!0}}),t.webkitRelativePath=a.fullPath.replace(/^\//,""),Object.defineProperties(t,{webkitRelativePath:{writable:!1}})),e([t]))})):a.isDirectory&&function(t,e){var n=t.createReader(),a=[];!function t(){n.readEntries((function(n){var r=Array.prototype.slice.apply(n);a=a.concat(r),!r.length?e(a):t()}))}()}(a,(function(e){e.forEach((function(e){t(e,""+r+a.name+"/")}))}))},r=!0,o=!1,i=void 0;try{for(var l,s=t[Symbol.iterator]();!(r=(l=s.next()).done);r=!0){a(l.value.webkitGetAsEntry())}}catch(t){o=!0,i=t}finally{try{!r&&s.return&&s.return()}finally{if(o)throw i}}},S=function(t){function e(){var t,n,a,r;c()(this,e);for(var o=arguments.length,i=Array(o),l=0;l',n=''}return'\n \n \n \n \n \n '+e+'\n \n \n
\n \n '+n+'\n \n
\n \n \n '}},{key:"initIframeSrc",value:function(){this.domain&&(this.getIframeNode().src="javascript:void((function(){\n var d = document;\n d.open();\n d.domain='"+this.domain+"';\n d.write('');\n d.close();\n })())")}},{key:"initIframe",value:function(){var t=this.getIframeNode(),e=t.contentWindow,n=void 0;this.domain=this.domain||"",this.initIframeSrc();try{n=e.document}catch(a){this.domain=document.domain,this.initIframeSrc(),n=(e=t.contentWindow).document}n.open("text/html","replace"),n.write(this.getIframeHTML(this.domain)),n.close(),this.getFormInputNode().onchange=this.onChange}},{key:"endUpload",value:function(){this.state.uploading&&(this.file={},this.state.uploading=!1,this.setState({uploading:!1}),this.initIframe())}},{key:"startUpload",value:function(){this.state.uploading||(this.state.uploading=!0,this.setState({uploading:!0}))}},{key:"updateIframeWH",value:function(){var t=R.a.findDOMNode(this),e=this.getIframeNode();e.style.height=t.offsetHeight+"px",e.style.width=t.offsetWidth+"px"}},{key:"abort",value:function(t){if(t){var e=t;t&&t.uid&&(e=t.uid),e===this.file.uid&&this.endUpload()}else this.endUpload()}},{key:"post",value:function(t){var e=this,n=this.getFormNode(),a=this.getFormDataNode(),r=this.props.data,o=this.props.onStart;"function"==typeof r&&(r=r(t));var i=document.createDocumentFragment();for(var l in r)if(r.hasOwnProperty(l)){var s=document.createElement("input");s.setAttribute("name",l),s.value=r[l],i.appendChild(s)}a.appendChild(i),new Promise((function(n){var a=e.props.action;if("function"==typeof a)return n(a(t));n(a)})).then((function(e){n.setAttribute("action",e),n.submit(),a.innerHTML="",o(t)}))}},{key:"render",value:function(){var t,e=this.props,n=e.component,a=e.disabled,o=e.className,i=e.prefixCls,s=e.children,c=e.style,u=l()({},L,{display:this.state.uploading||a?"none":""}),p=w()((t={},y()(t,i,!0),y()(t,i+"-disabled",a),y()(t,o,o),t));return r.a.createElement(n,{className:p,style:l()({position:"relative",zIndex:0},c)},r.a.createElement("iframe",{ref:this.saveIframe,onLoad:this.onLoad,style:u}),s)}}]),e}(a.Component);z.propTypes={component:g.a.string,style:g.a.object,disabled:g.a.bool,prefixCls:g.a.string,className:g.a.string,accept:g.a.string,onStart:g.a.func,multiple:g.a.bool,children:g.a.any,data:g.a.oneOfType([g.a.object,g.a.func]),action:g.a.oneOfType([g.a.string,g.a.func]),name:g.a.string};var A=z;function F(){}var U=function(t){function e(){var t,n,a,r;c()(this,e);for(var o=arguments.length,i=Array(o),l=0;l0&&void 0!==arguments[0]?arguments[0]:"",e=t.split("/"),n=e[e.length-1],a=n.split(/#|\?/)[0];return(/\.[^./\\]*$/.exec(a)||[""])[0]}(e);return!(!/^data:image\//.test(e)&&!/(webp|svg|png|gif|jpg|jpeg|jfif|bmp|dpg|ico)$/i.test(n))||!/^data:/.test(e)&&!n};var $=n("CtXQ"),tt=n("3S7+"),et=n("CFYs"),nt=n("H84U");function at(t){return(at="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function rt(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function ot(){return(ot=Object.assign||function(t){for(var e=1;e=.98||(e+=n,(n-=.01)<.001&&(n=.001)),e}),o=0;this.clearProgressTimer(),this.progressTimer=setInterval((function(){o=r(o),a.onProgress({percent:100*o},e)}),200)}},{key:"render",value:function(){return a.createElement(nt.a,null,this.renderUpload)}}])&&yt(e.prototype,n),r&&yt(e,r),i}(a.Component);_t.defaultProps={type:"select",multiple:!1,action:"",data:{},accept:"",beforeUpload:function(){return!0},showUploadList:!0,listType:"text",className:"",disabled:!1,supportServerRender:!0},Object(o.polyfill)(_t);var Ct=_t;function Ot(t){return(Ot="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function Nt(){return(Nt=Object.assign||function(t){for(var e=1;ep&&r.default.createElement("div",{style:{textAlign:"center",paddingTop:"20px"}},r.default.createElement(a.default,{pageSize:p,total:u,onChange:function(t){return d(t)}})))}},AySf:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a=d(n("CtXQ")),r=d(n("2/Rp")),o=d(n("8z0m")),i=Object.assign||function(t){for(var e=1;e0&&n.setState({fileList:(0,u.appendFileSizeToUploadFileAll)(t)})},n.onAttachmentRemove=function(t){if(!t.percent||100===t.percent)return n.deleteAttachment(t),!1},n.deleteAttachment=function(t){var e="/attachments/"+(t.response?t.response.id:t.uid)+".json";p.default.delete(e,{}).then((function(e){e.data&&(0===e.data.status?(n.setState((function(e){var n=e.fileList.indexOf(t),a=e.fileList.slice();return a.splice(n,1),{fileList:a}})),n.fileIdList(n.state.fileList)):n.props.showNotification(e.data.message))})).catch((function(t){console.log(t)}))},n.handleChange=function(t){var e=n.props.changeIsComplete;e&&e(!0);var a=t.file;if(a&&!a.type&&!n.checkFile(a.name))return;if("uploading"===t.file.status||"done"===t.file.status||"removed"===t.file.status){var r=t.fileList;n.setState({fileList:(0,u.appendFileSizeToUploadFileAll)(r)}),n.fileIdList(r)}},n.fileIdList=function(t){var e=[];t&&t.length>0&&t.map((function(t){return e.push(t.response&&(t.response.id||t.response.data&&t.response.data.id))})),e&&n.props.load&&n.props.load(e)},n.checkFile=function(t){for(var e=[".rar",".iso",".flv",".rmvb",".mmf",".ape",".vsdx",".msi",".md"],n=!1,a=0;a-1?(p="2",n.getCommit(c,s,u)):i.indexOf("files")>-1&&(p="3",n.getFile(c,s,u)),t&&"1"===p&&n.refreshComment(),n.setState({activeKey:p,commitCount:a&&a.commits_count,filesCount:a&&a.files_count})},n.bindCommentRef=function(t){n.childComment=t},n.refreshComment=function(){n.childComment&&n.childComment.getjournalslist()},n.getCommit=function(t,e,a){n.setState({isSpin:!0});var r="/"+t+"/"+e+"/pulls/"+a+"/commits.json";u.default.get(r).then((function(t){t&&n.setState({commitsData:t.data.commits,commitCount:t.data.commits_count}),n.setState({isSpin:!1})})).catch((function(t){n.setState({isSpin:!1})}))},n.getFile=function(t,e,a){n.setState({isSpin:!0});var r="/"+t+"/"+e+"/pulls/"+a+"/files.json";u.default.get(r).then((function(t){t&&n.setState({filesData:t.data,filesCount:t.data.files_count}),n.setState({isSpin:!1})})).catch((function(t){n.setState({isSpin:!1})}))},n.state={commitsData:[],filesData:void 0,isSpin:!1,activeKey:"1",commitCount:0,filesCount:0,commentsTotalCount:0},n}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(e,t),i(e,[{key:"componentDidMount",value:function(){this.Init(),this.props.bindFootRef&&this.props.bindFootRef(this)}},{key:"componentDidUpdate",value:function(t){this.props.location.pathname!==t.location.pathname&&this.Init(!0)}},{key:"render",value:function(){var t=this,e=this.props.match.params,n=e.projectsId,i=e.owner,l=e.mergeId,u=this.props,m=u.order_id,h=u.data,g=void 0===h?{}:h,v=this.state,y=v.isSpin,x=v.activeKey,w=v.filesCount,E=v.commitCount,k=v.filesData,_=v.commitsData,C=void 0===_?[]:_,O=parseInt(this.state.commentsTotalCount||g.comments_total_count||0,10);return s.default.createElement("div",{className:"main mergeRequest",style:{paddingTop:"0px"}},s.default.createElement(a.default,{spinning:y},s.default.createElement(r.default,{activeKey:x,className:"custom-commit-tabs",animated:!1},s.default.createElement(b,{tab:s.default.createElement(c.Link,{to:"/"+i+"/"+n+"/pulls/"+l},s.default.createElement("span",{className:"font-16"},"评论"),O>0&&s.default.createElement("span",{className:"tabNum"},O)),key:"1"},s.default.createElement(d.default,o({order_id:m,showNotification:this.props.showNotification,only_show_content:!0,updateCommentsNum:function(e){t.setState({commentsTotalCount:e||0})}},this.props,{bindCommentRef:this.bindCommentRef}))),E>0&&s.default.createElement(b,{tab:s.default.createElement(c.Link,{to:"/"+i+"/"+n+"/pulls/"+l+"/commits"},s.default.createElement("span",{className:"font-16"},"提交"),E>0&&s.default.createElement("span",{className:"tabNum"},E)),key:"2"},C.length>0&&s.default.createElement(p.default,o({},this.props,{commits:C,projectsId:n,owner:i}))),w>0&&s.default.createElement(b,{tab:s.default.createElement(c.Link,{to:"/"+i+"/"+n+"/pulls/"+l+"/files"},s.default.createElement("span",{className:"font-16"},"文件"),w>0&&s.default.createElement("span",{className:"tabNum"},w)),key:"3"},s.default.createElement(f.default,o({},this.props,{data:k,projectsId:n,owner:i}))))))}}]),e}(l.Component);e.default=h},CZoQ:function(t,e){t.exports=function(t,e,n){for(var a=n-1,r=t.length;++a=200){var b=e?null:l(t);if(b)return s(b);d=!1,u=i,m=new a}else m=e?[]:f;t:for(;++c-1},n.deleteAttachment=function(t){var e="/attachments/"+t+".json";u.default.delete(e,{}).then((function(e){e.data&&(0===e.data.status?(n.setState({Deleted:n.state.Deleted.concat(t)}),n.props.showNotification("附件删除成功")):n.props.showNotification(e.data.message))})).catch((function(t){console.log(t)}))},n.state={canDelete:!1,show_video:!1,video_url:void 0,video_title:void 0,video_id:void 0,move_spin:!1,Deleted:[]},n}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(e,t),i(e,[{key:"render",value:function(){var t=this,e=this.state,n=e.Deleted,i=e.canDelete,l=e.show_video,u=e.video_url,d=e.video_title,f=e.move_spin,m=this.props.attachments;return s.default.createElement("div",null,m?s.default.createElement("div",{className:"attachmentsList mt5"},m.map((function(e,a){return s.default.createElement("div",{key:a,style:{display:n.length>0&&-1!==n.indexOf(e.id)?"none":"block",padding:"4px"},className:"attachment-list-div"},s.default.createElement(r.default,{spinning:f},t.is_video(e.title)?s.default.createElement("a",{onClick:function(){return t.show_video_modal(e)},className:"attachment-list-a"},s.default.createElement("i",{className:"iconfont icon-fujian mr8 paper-clip-color font-12"}),s.default.createElement("span",null,e.title),s.default.createElement("span",{className:"ml20"},e.filesize)):s.default.createElement(c.Link,{to:""+e.url,target:"_blank",className:"attachment-list-a",download:!0},s.default.createElement("i",{className:"iconfont icon-fujian mr8 paper-clip-color font-12"}),s.default.createElement("span",null,e.title),s.default.createElement("span",{className:"ml20"},e.filesize)),i?s.default.createElement(o.default,{placement:"bottom",title:"您确定要删除附件吗",okText:"是",cancelText:"否",onConfirm:function(){return t.deleteAttachment(e.id)}},s.default.createElement("span",{className:"attachment-list-delete fr"},s.default.createElement("i",{className:"iconfont icon-lajitong mr10 color-grey-9 font-14"}))):""))}))):"",l?s.default.createElement(a.default,{title:d,visible:!0,width:690,footer:null,onCancel:this.hide_video_modal},s.default.createElement(p.default,{video_url:u})):"")}}]),e}(l.Component);e.default=f},MJAS:function(t,e,n){(e=n("JPst")(!1)).push([t.i,"/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-upload {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.65);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5;\n list-style: none;\n font-feature-settings: 'tnum';\n outline: 0;\n}\n.ant-upload p {\n margin: 0;\n}\n.ant-upload-btn {\n display: block;\n width: 100%;\n outline: none;\n}\n.ant-upload input[type='file'] {\n cursor: pointer;\n}\n.ant-upload.ant-upload-select {\n display: inline-block;\n}\n.ant-upload.ant-upload-disabled {\n cursor: not-allowed;\n}\n.ant-upload.ant-upload-select-picture-card {\n display: table;\n float: left;\n width: 104px;\n height: 104px;\n margin-right: 8px;\n margin-bottom: 8px;\n text-align: center;\n vertical-align: top;\n background-color: #fafafa;\n border: 1px dashed #d9d9d9;\n border-radius: 4px;\n cursor: pointer;\n transition: border-color 0.3s ease;\n}\n.ant-upload.ant-upload-select-picture-card > .ant-upload {\n display: table-cell;\n width: 100%;\n height: 100%;\n padding: 8px;\n text-align: center;\n vertical-align: middle;\n}\n.ant-upload.ant-upload-select-picture-card:hover {\n border-color: #466aff;\n}\n.ant-upload.ant-upload-drag {\n position: relative;\n width: 100%;\n height: 100%;\n text-align: center;\n background: #fafafa;\n border: 1px dashed #d9d9d9;\n border-radius: 4px;\n cursor: pointer;\n transition: border-color 0.3s;\n}\n.ant-upload.ant-upload-drag .ant-upload {\n padding: 16px 0;\n}\n.ant-upload.ant-upload-drag.ant-upload-drag-hover:not(.ant-upload-disabled) {\n border-color: #304cd9;\n}\n.ant-upload.ant-upload-drag.ant-upload-disabled {\n cursor: not-allowed;\n}\n.ant-upload.ant-upload-drag .ant-upload-btn {\n display: table;\n height: 100%;\n}\n.ant-upload.ant-upload-drag .ant-upload-drag-container {\n display: table-cell;\n vertical-align: middle;\n}\n.ant-upload.ant-upload-drag:not(.ant-upload-disabled):hover {\n border-color: #6e90ff;\n}\n.ant-upload.ant-upload-drag p.ant-upload-drag-icon {\n margin-bottom: 20px;\n}\n.ant-upload.ant-upload-drag p.ant-upload-drag-icon .anticon {\n color: #6e90ff;\n font-size: 48px;\n}\n.ant-upload.ant-upload-drag p.ant-upload-text {\n margin: 0 0 4px;\n color: rgba(0, 0, 0, 0.85);\n font-size: 16px;\n}\n.ant-upload.ant-upload-drag p.ant-upload-hint {\n color: rgba(0, 0, 0, 0.45);\n font-size: 14px;\n}\n.ant-upload.ant-upload-drag .anticon-plus {\n color: rgba(0, 0, 0, 0.25);\n font-size: 30px;\n transition: all 0.3s;\n}\n.ant-upload.ant-upload-drag .anticon-plus:hover {\n color: rgba(0, 0, 0, 0.45);\n}\n.ant-upload.ant-upload-drag:hover .anticon-plus {\n color: rgba(0, 0, 0, 0.45);\n}\n.ant-upload-picture-card-wrapper {\n zoom: 1;\n display: inline-block;\n width: 100%;\n}\n.ant-upload-picture-card-wrapper::before,\n.ant-upload-picture-card-wrapper::after {\n display: table;\n content: '';\n}\n.ant-upload-picture-card-wrapper::after {\n clear: both;\n}\n.ant-upload-list {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.65);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5;\n list-style: none;\n font-feature-settings: 'tnum';\n zoom: 1;\n}\n.ant-upload-list::before,\n.ant-upload-list::after {\n display: table;\n content: '';\n}\n.ant-upload-list::after {\n clear: both;\n}\n.ant-upload-list-item-list-type-text:hover .ant-upload-list-item-name-icon-count-1 {\n padding-right: 14px;\n}\n.ant-upload-list-item-list-type-text:hover .ant-upload-list-item-name-icon-count-2 {\n padding-right: 28px;\n}\n.ant-upload-list-item {\n position: relative;\n height: 22px;\n margin-top: 8px;\n font-size: 14px;\n}\n.ant-upload-list-item-name {\n display: inline-block;\n width: 100%;\n padding-left: 22px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.ant-upload-list-item-name-icon-count-1 {\n padding-right: 14px;\n}\n.ant-upload-list-item-card-actions {\n position: absolute;\n right: 0;\n opacity: 0;\n}\n.ant-upload-list-item-card-actions.picture {\n top: 25px;\n line-height: 1;\n opacity: 1;\n}\n.ant-upload-list-item-card-actions .anticon {\n padding-right: 6px;\n color: rgba(0, 0, 0, 0.45);\n}\n.ant-upload-list-item-info {\n height: 100%;\n padding: 0 12px 0 4px;\n transition: background-color 0.3s;\n}\n.ant-upload-list-item-info > span {\n display: block;\n width: 100%;\n height: 100%;\n}\n.ant-upload-list-item-info .anticon-loading,\n.ant-upload-list-item-info .anticon-paper-clip {\n position: absolute;\n top: 5px;\n color: rgba(0, 0, 0, 0.45);\n font-size: 14px;\n}\n.ant-upload-list-item .anticon-close {\n display: inline-block;\n font-size: 12px;\n font-size: 10px \\9;\n transform: scale(0.83333333) rotate(0deg);\n position: absolute;\n top: 6px;\n right: 4px;\n color: rgba(0, 0, 0, 0.45);\n line-height: 0;\n cursor: pointer;\n opacity: 0;\n transition: all 0.3s;\n}\n:root .ant-upload-list-item .anticon-close {\n font-size: 12px;\n}\n.ant-upload-list-item .anticon-close:hover {\n color: rgba(0, 0, 0, 0.65);\n}\n.ant-upload-list-item:hover .ant-upload-list-item-info {\n background-color: #f0f5ff;\n}\n.ant-upload-list-item:hover .anticon-close {\n opacity: 1;\n}\n.ant-upload-list-item:hover .ant-upload-list-item-card-actions {\n opacity: 1;\n}\n.ant-upload-list-item-error,\n.ant-upload-list-item-error .anticon-paper-clip,\n.ant-upload-list-item-error .ant-upload-list-item-name {\n color: #f5222d;\n}\n.ant-upload-list-item-error .ant-upload-list-item-card-actions {\n opacity: 1;\n}\n.ant-upload-list-item-error .ant-upload-list-item-card-actions .anticon {\n color: #f5222d;\n}\n.ant-upload-list-item-progress {\n position: absolute;\n bottom: -12px;\n width: 100%;\n padding-left: 26px;\n font-size: 14px;\n line-height: 0;\n}\n.ant-upload-list-picture .ant-upload-list-item,\n.ant-upload-list-picture-card .ant-upload-list-item {\n position: relative;\n height: 66px;\n padding: 8px;\n border: 1px solid #d9d9d9;\n border-radius: 4px;\n}\n.ant-upload-list-picture .ant-upload-list-item:hover,\n.ant-upload-list-picture-card .ant-upload-list-item:hover {\n background: transparent;\n}\n.ant-upload-list-picture .ant-upload-list-item-error,\n.ant-upload-list-picture-card .ant-upload-list-item-error {\n border-color: #f5222d;\n}\n.ant-upload-list-picture .ant-upload-list-item-info,\n.ant-upload-list-picture-card .ant-upload-list-item-info {\n padding: 0;\n}\n.ant-upload-list-picture .ant-upload-list-item:hover .ant-upload-list-item-info,\n.ant-upload-list-picture-card .ant-upload-list-item:hover .ant-upload-list-item-info {\n background: transparent;\n}\n.ant-upload-list-picture .ant-upload-list-item-uploading,\n.ant-upload-list-picture-card .ant-upload-list-item-uploading {\n border-style: dashed;\n}\n.ant-upload-list-picture .ant-upload-list-item-thumbnail,\n.ant-upload-list-picture-card .ant-upload-list-item-thumbnail {\n position: absolute;\n top: 8px;\n left: 8px;\n width: 48px;\n height: 48px;\n font-size: 26px;\n line-height: 54px;\n text-align: center;\n opacity: 0.8;\n}\n.ant-upload-list-picture .ant-upload-list-item-icon,\n.ant-upload-list-picture-card .ant-upload-list-item-icon {\n position: absolute;\n top: 50%;\n left: 50%;\n font-size: 26px;\n transform: translate(-50%, -50%);\n}\n.ant-upload-list-picture .ant-upload-list-item-image,\n.ant-upload-list-picture-card .ant-upload-list-item-image {\n max-width: 100%;\n}\n.ant-upload-list-picture .ant-upload-list-item-thumbnail img,\n.ant-upload-list-picture-card .ant-upload-list-item-thumbnail img {\n display: block;\n width: 48px;\n height: 48px;\n overflow: hidden;\n}\n.ant-upload-list-picture .ant-upload-list-item-name,\n.ant-upload-list-picture-card .ant-upload-list-item-name {\n display: inline-block;\n box-sizing: border-box;\n max-width: 100%;\n margin: 0 0 0 8px;\n padding-right: 8px;\n padding-left: 48px;\n overflow: hidden;\n line-height: 44px;\n white-space: nowrap;\n text-overflow: ellipsis;\n transition: all 0.3s;\n}\n.ant-upload-list-picture .ant-upload-list-item-name-icon-count-1,\n.ant-upload-list-picture-card .ant-upload-list-item-name-icon-count-1 {\n padding-right: 18px;\n}\n.ant-upload-list-picture .ant-upload-list-item-name-icon-count-2,\n.ant-upload-list-picture-card .ant-upload-list-item-name-icon-count-2 {\n padding-right: 36px;\n}\n.ant-upload-list-picture .ant-upload-list-item-uploading .ant-upload-list-item-name,\n.ant-upload-list-picture-card .ant-upload-list-item-uploading .ant-upload-list-item-name {\n line-height: 28px;\n}\n.ant-upload-list-picture .ant-upload-list-item-progress,\n.ant-upload-list-picture-card .ant-upload-list-item-progress {\n bottom: 14px;\n width: calc(100% - 24px);\n margin-top: 0;\n padding-left: 56px;\n}\n.ant-upload-list-picture .anticon-close,\n.ant-upload-list-picture-card .anticon-close {\n position: absolute;\n top: 8px;\n right: 8px;\n line-height: 1;\n opacity: 1;\n}\n.ant-upload-list-picture-card.ant-upload-list::after {\n display: none;\n}\n.ant-upload-list-picture-card-container {\n float: left;\n width: 104px;\n height: 104px;\n margin: 0 8px 8px 0;\n}\n.ant-upload-list-picture-card .ant-upload-list-item {\n float: left;\n width: 104px;\n height: 104px;\n margin: 0 8px 8px 0;\n}\n.ant-upload-list-picture-card .ant-upload-list-item-info {\n position: relative;\n height: 100%;\n overflow: hidden;\n}\n.ant-upload-list-picture-card .ant-upload-list-item-info::before {\n position: absolute;\n z-index: 1;\n width: 100%;\n height: 100%;\n background-color: rgba(0, 0, 0, 0.5);\n opacity: 0;\n transition: all 0.3s;\n content: ' ';\n}\n.ant-upload-list-picture-card .ant-upload-list-item:hover .ant-upload-list-item-info::before {\n opacity: 1;\n}\n.ant-upload-list-picture-card .ant-upload-list-item-actions {\n position: absolute;\n top: 50%;\n left: 50%;\n z-index: 10;\n white-space: nowrap;\n transform: translate(-50%, -50%);\n opacity: 0;\n transition: all 0.3s;\n}\n.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-eye-o,\n.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-download,\n.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-delete {\n z-index: 10;\n width: 16px;\n margin: 0 4px;\n color: rgba(255, 255, 255, 0.85);\n font-size: 16px;\n cursor: pointer;\n transition: all 0.3s;\n}\n.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-eye-o:hover,\n.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-download:hover,\n.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-delete:hover {\n color: #fff;\n}\n.ant-upload-list-picture-card .ant-upload-list-item-info:hover + .ant-upload-list-item-actions,\n.ant-upload-list-picture-card .ant-upload-list-item-actions:hover {\n opacity: 1;\n}\n.ant-upload-list-picture-card .ant-upload-list-item-thumbnail,\n.ant-upload-list-picture-card .ant-upload-list-item-thumbnail img {\n position: static;\n display: block;\n width: 100%;\n height: 100%;\n object-fit: cover;\n}\n.ant-upload-list-picture-card .ant-upload-list-item-name {\n display: none;\n margin: 8px 0 0;\n padding: 0;\n line-height: 1.5;\n text-align: center;\n}\n.ant-upload-list-picture-card .anticon-picture + .ant-upload-list-item-name {\n position: absolute;\n bottom: 10px;\n display: block;\n}\n.ant-upload-list-picture-card .ant-upload-list-item-uploading.ant-upload-list-item {\n background-color: #fafafa;\n}\n.ant-upload-list-picture-card .ant-upload-list-item-uploading .ant-upload-list-item-info {\n height: auto;\n}\n.ant-upload-list-picture-card .ant-upload-list-item-uploading .ant-upload-list-item-info::before,\n.ant-upload-list-picture-card .ant-upload-list-item-uploading .ant-upload-list-item-info .anticon-eye-o,\n.ant-upload-list-picture-card .ant-upload-list-item-uploading .ant-upload-list-item-info .anticon-delete {\n display: none;\n}\n.ant-upload-list-picture-card .ant-upload-list-item-uploading-text {\n margin-top: 18px;\n color: rgba(0, 0, 0, 0.45);\n}\n.ant-upload-list-picture-card .ant-upload-list-item-progress {\n bottom: 32px;\n padding-left: 0;\n}\n.ant-upload-list .ant-upload-success-icon {\n color: #52c41a;\n font-weight: bold;\n}\n.ant-upload-list .ant-upload-animate-enter,\n.ant-upload-list .ant-upload-animate-leave,\n.ant-upload-list .ant-upload-animate-inline-enter,\n.ant-upload-list .ant-upload-animate-inline-leave {\n animation-duration: 0.3s;\n animation-fill-mode: cubic-bezier(0.78, 0.14, 0.15, 0.86);\n}\n.ant-upload-list .ant-upload-animate-enter {\n animation-name: uploadAnimateIn;\n}\n.ant-upload-list .ant-upload-animate-leave {\n animation-name: uploadAnimateOut;\n}\n.ant-upload-list .ant-upload-animate-inline-enter {\n animation-name: uploadAnimateInlineIn;\n}\n.ant-upload-list .ant-upload-animate-inline-leave {\n animation-name: uploadAnimateInlineOut;\n}\n@keyframes uploadAnimateIn {\n from {\n height: 0;\n margin: 0;\n padding: 0;\n opacity: 0;\n }\n}\n@keyframes uploadAnimateOut {\n to {\n height: 0;\n margin: 0;\n padding: 0;\n opacity: 0;\n }\n}\n@keyframes uploadAnimateInlineIn {\n from {\n width: 0;\n height: 0;\n margin: 0;\n padding: 0;\n opacity: 0;\n }\n}\n@keyframes uploadAnimateInlineOut {\n to {\n width: 0;\n height: 0;\n margin: 0;\n padding: 0;\n opacity: 0;\n }\n}\n",""]),t.exports=e},Mwp2:function(t,e,n){"use strict";n.r(e);n("cIOH"),n("3wW7"),n("R9oj"),n("T2oS"),n("DjyN"),n("1GLa")},NJEC:function(t,e,n){"use strict";n.r(e);var a=n("cDcd"),r=n("VCL8"),o=n("3S7+"),i=n("CtXQ"),l=n("2/Rp"),s=n("YMnH"),c=n("ZvpZ"),u=n("H84U");function p(t){return(p="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function d(){return(d=Object.assign||function(t){for(var e=1;e11?t.substring(0,10):t},e.timeFormat=function(t){var e=new Date(1e3*t),n=e.getHours()<10?"0".concat(e.getHours()):e.getHours(),a=e.getMinutes()<10?"0".concat(e.getMinutes()):e.getMinutes();return e.getFullYear()+"-"+(e.getMonth()+1)+"-"+e.getDate()+" "+n+":"+a}},QQbx:function(t,e,n){(e=n("JPst")(!1)).push([t.i,"/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-alert {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.65);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5;\n list-style: none;\n font-feature-settings: 'tnum';\n position: relative;\n padding: 8px 15px 8px 37px;\n word-wrap: break-word;\n border-radius: 4px;\n}\n.ant-alert.ant-alert-no-icon {\n padding: 8px 15px;\n}\n.ant-alert.ant-alert-closable {\n padding-right: 30px;\n}\n.ant-alert-icon {\n position: absolute;\n top: 11.5px;\n left: 16px;\n}\n.ant-alert-description {\n display: none;\n font-size: 14px;\n line-height: 22px;\n}\n.ant-alert-success {\n background-color: #f6ffed;\n border: 1px solid #b7eb8f;\n}\n.ant-alert-success .ant-alert-icon {\n color: #52c41a;\n}\n.ant-alert-info {\n background-color: #e6f7ff;\n border: 1px solid #91d5ff;\n}\n.ant-alert-info .ant-alert-icon {\n color: #1890ff;\n}\n.ant-alert-warning {\n background-color: #fffbe6;\n border: 1px solid #ffe58f;\n}\n.ant-alert-warning .ant-alert-icon {\n color: #faad14;\n}\n.ant-alert-error {\n background-color: #fff1f0;\n border: 1px solid #ffa39e;\n}\n.ant-alert-error .ant-alert-icon {\n color: #f5222d;\n}\n.ant-alert-close-icon {\n position: absolute;\n top: 8px;\n right: 16px;\n padding: 0;\n overflow: hidden;\n font-size: 12px;\n line-height: 22px;\n background-color: transparent;\n border: none;\n outline: none;\n cursor: pointer;\n}\n.ant-alert-close-icon .anticon-close {\n color: rgba(0, 0, 0, 0.45);\n transition: color 0.3s;\n}\n.ant-alert-close-icon .anticon-close:hover {\n color: rgba(0, 0, 0, 0.75);\n}\n.ant-alert-close-text {\n color: rgba(0, 0, 0, 0.45);\n transition: color 0.3s;\n}\n.ant-alert-close-text:hover {\n color: rgba(0, 0, 0, 0.75);\n}\n.ant-alert-with-description {\n position: relative;\n padding: 15px 15px 15px 64px;\n color: rgba(0, 0, 0, 0.65);\n line-height: 1.5;\n border-radius: 4px;\n}\n.ant-alert-with-description.ant-alert-no-icon {\n padding: 15px;\n}\n.ant-alert-with-description .ant-alert-icon {\n position: absolute;\n top: 16px;\n left: 24px;\n font-size: 24px;\n}\n.ant-alert-with-description .ant-alert-close-icon {\n position: absolute;\n top: 16px;\n right: 16px;\n font-size: 14px;\n cursor: pointer;\n}\n.ant-alert-with-description .ant-alert-message {\n display: block;\n margin-bottom: 4px;\n color: rgba(0, 0, 0, 0.85);\n font-size: 16px;\n}\n.ant-alert-message {\n color: rgba(0, 0, 0, 0.85);\n}\n.ant-alert-with-description .ant-alert-description {\n display: block;\n}\n.ant-alert.ant-alert-closing {\n height: 0 !important;\n margin: 0;\n padding-top: 0;\n padding-bottom: 0;\n transform-origin: 50% 0;\n transition: all 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86);\n}\n.ant-alert-slide-up-leave {\n animation: antAlertSlideUpOut 0.3s cubic-bezier(0.78, 0.14, 0.15, 0.86);\n animation-fill-mode: both;\n}\n.ant-alert-banner {\n margin-bottom: 0;\n border: 0;\n border-radius: 0;\n}\n@keyframes antAlertSlideUpIn {\n 0% {\n transform: scaleY(0);\n transform-origin: 0% 0%;\n opacity: 0;\n }\n 100% {\n transform: scaleY(1);\n transform-origin: 0% 0%;\n opacity: 1;\n }\n}\n@keyframes antAlertSlideUpOut {\n 0% {\n transform: scaleY(1);\n transform-origin: 0% 0%;\n opacity: 1;\n }\n 100% {\n transform: scaleY(0);\n transform-origin: 0% 0%;\n opacity: 0;\n }\n}\n",""]),t.exports=e},"R/W3":function(t,e,n){var a=n("KwMD"),r=n("2ajD"),o=n("CZoQ");t.exports=function(t,e,n){return e==e?o(t,e,n):a(t,r,n)}},R3zJ:function(t,e,n){"use strict";n.d(e,"b",(function(){return r}));var a=function(t){if("undefined"!=typeof window&&window.document&&window.document.documentElement){var e=Array.isArray(t)?t:[t],n=window.document.documentElement;return e.some((function(t){return t in n.style}))}return!1},r=a(["flex","webkitFlex","Flex","msFlex"]);e.a=a},RqAY:function(t,e,n){"use strict";function a(t){return Object.keys(t).reduce((function(e,n){return"data-"!==n.substr(0,5)&&"aria-"!==n.substr(0,5)&&"role"!==n||"data-__"===n.substr(0,7)||(e[n]=t[n]),e}),{})}n.d(e,"a",(function(){return a}))},"Rs/d":function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a,r,o=(a=["\n display:flex;\n font-weight: bold;\n ","\n align-items: center;\n & img{\n width:30px;\n height:30px;\n border-radius:50%;\n }\n ","\n "],r=["\n display:flex;\n font-weight: bold;\n ","\n align-items: center;\n & img{\n width:30px;\n height:30px;\n border-radius:50%;\n }\n ","\n "],Object.freeze(Object.defineProperties(a,{raw:{value:Object.freeze(r)}}))),i=c(n("cDcd")),l=c(n("vOnD")),s=n("eO8H");function c(t){return t&&t.__esModule?t:{default:t}}e.default=function(t){var e=t.url,n=t.name,a=t.column,r=t.id,c=t.login,u=l.default.span(o,a&&"flex-direction: column;text-align:center;",!a&&"\n & span{\n margin-left:8px;\n }");return r?i.default.createElement(s.Link,{to:"/"+c},i.default.createElement(u,null,e&&i.default.createElement("img",{src:e,alt:""}),i.default.createElement("span",null,n))):i.default.createElement(u,null,e&&i.default.createElement("img",{src:e,alt:""}),i.default.createElement("span",null,n))}},Sxd8:function(t,e,n){var a=n("ZCgT");t.exports=function(t){var e=a(t),n=e%1;return e==e?n?e-n:e:0}},TiQt:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a=E(n("Vl3Y")),r=E(n("W9HT")),o=E(n("jsC+")),i=E(n("CtXQ")),l=E(n("+KLJ")),s=E(n("mr32")),c=E(n("BvKs")),u=E(n("2/Rp")),p=E(n("ZTPi")),d=E(n("5rEg")),f=Object.assign||function(t){for(var e=1;e-1||e.indexOf("ant-tabs-tab")>-1||"ant-tabs-nav-scroll"===e||n.setState({copyVisible:!1})}))},n.getDetail=function(){var t=n.props.match.params,e=t.projectsId,a=t.mergeId,r="/"+t.owner+"/"+e+"/pulls/"+a+".json";v.default.get(r).then((function(t){t&&t.data?n.setState({data:t.data,SpinFlag:!1,pr_status:t.data.pull_request&&t.data.pull_request.status,pull_request:t.data.pull_request,conflict_files:t.data.conflict_files}):n.setState({SpinFlag:!1})})).catch((function(t){n.setState({SpinFlag:!1}),console.log(t)}))},n.closedetail=function(){n.setState({isSpin:!0});var t=n.props.match.params,e=t.projectsId,a=t.mergeId,r="/"+t.owner+"/"+e+"/pulls/"+a+"/refuse_merge.json";v.default.post(r).then((function(t){if(t){n.setState({isSpin:!1,pr_status:2});var e=n.props.getDetail;e&&e()}else n.setState({isSpin:!1})})).catch((function(t){n.setState({isSpin:!1}),console.log(t)})),n.props.showNpsModal("auditPullRequest",2)},n.prmerge=function(){n.setState({SpinMerge:!0});var t=n.props.match.params,e=t.projectsId,a=t.owner,r=n.state,o=r.data,i=r.title,l=r.body,s=r.mergekey,c=(r.pr_status,"/"+a+"/"+e+"/pulls/"+o.pull_request.id+"/pr_merge.json");v.default.post(c,{project_id:e,id:o.pull_request.id,do:s,body:l,title:i}).then((function(t){if(t){n.setState({SpinMerge:!1,pr_status:1});var e=n.props.getDetail;e&&e(),n.footRef&&n.footRef.refreshComment()}else n.setState({SpinMerge:!1})})).catch((function(t){n.setState({SpinMerge:!1}),console.log(t)})),n.props.showNpsModal("auditPullRequest",1)},n.changtitlepr=function(t){n.setState({title:t.target.value})},n.changbodypr=function(t){n.setState({body:t.target.value})},n.submitmerge=function(){"rebase"===n.state.mergekey?n.setState({buttonshow:"block",ismesrge:!0}):n.setState({ismesrge:"block",buttonshow:!1})},n.nonemerge=function(){n.setState({ismesrge:!1,buttonshow:"none"})},n.getOption=function(t){"rebase"===t.key?n.setState({mergename:t.item.props.value,mergekey:t.key,title:"",body:"",buttonshow:"block"}):n.setState({mergename:t.item.props.value,mergekey:t.key,title:"",body:"",ismesrge:!0,buttonshow:"block"})},n.cancelSubmit=function(){n.setState({editMerge:!1})},n.commentCtx=function(t){return h.default.createElement(x.default,{className:"break_word_comments imageLayerParent",value:t,url:n.props.history.location})},n.setCopyVisible=function(t){t.stopPropagation(),n.setState({copyVisible:!0})},n.copyItem=function(){return h.default.createElement("div",{className:"copyTab notHide"},h.default.createElement(p.default,{defaultActiveKey:"1",className:"notHide",animated:!1,size:"small"},h.default.createElement(p.default.TabPane,{key:"1",tab:h.default.createElement("span",{className:"notHide"},"HTTPS")},n.returnCopyUrl("https://gitee.com/44886/polhttp.git")),h.default.createElement(p.default.TabPane,{key:"2",tab:h.default.createElement("span",{className:"notHide"},"SSH")},n.returnCopyUrl("https://gitee.com/44886/polssh.git"))))},n.returnCopyUrl=function(t){return h.default.createElement("div",{className:"df notHide"},h.default.createElement(d.default,{value:t,className:"notHide",disabled:!0}),h.default.createElement(u.default,{type:"primary",ghost:!0,className:"ml15 notHide"},"复制"))},n.jsCopy=function(){var t=document.querySelector("#descContent"),e=document.createRange();window.getSelection().removeAllRanges(),e.selectNode(t),window.getSelection().addRange(e),document.execCommand("Copy")},n.mergeabledMes=function(){return h.default.createElement("div",{className:"clearfix"},h.default.createElement("p",{className:"fl"},"该分支存在冲突,无法自动合并,你可以尝试通过如下命令手动合并"),h.default.createElement("i",{className:"iconfont icon-fuzhi font-16 fr",onClick:function(){return n.jsCopy()}}))},n.mergeabledDesc=function(t,e,n){return h.default.createElement("div",null,h.default.createElement("ul",{id:"descContent"},h.default.createElement("li",null,"git fetch origin"),h.default.createElement("li",null,"git checkout -b ",""+t," origin/",""+t),h.default.createElement("li",null,"git merge ",""+e)),n&&n.length>0&&h.default.createElement("div",null,h.default.createElement("p",{className:"mt10 font-16 pt10",style:{borderTop:"1px solid #f9d7d5"}},"如下文件有代码冲突:"),h.default.createElement("div",null,n.map((function(t,e){return h.default.createElement("p",{key:e},t)})))))},n.codeReview=function(){var t=n.props,e=t.history,a=t.match,r=t.checkIfLogin,o=t.showLoginDialog,i=a.params,l=i.projectsId,s=i.mergeId,c=i.owner;if(r&&r()){var u=(n.props&&n.props.projectDetail).repo_id;v.default.post("/users/action.json",{action_type:"webide-pr",action_id:u}).then((function(t){t&&200===t.status&&e.push("/"+c+"/"+l+"/pulls/"+s+"/review")}))}else o&&o("/"+c+"/"+l+"/pulls/"+s)},n.state={data:void 0,isSpin:!1,ismesrge:!1,buttonshow:"none",mergename:"合并请求",mergekey:"merge",title:"",body:"",SpinFlag:!0,SpinMerge:!1,edit_spin:!1,pr_status:void 0,pull_request:void 0,conflict_files:[],copyVisible:!1},n}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(e,t),m(e,[{key:"render",value:function(){var t=this,e=this.props.match.params,n=e.projectsId,a=e.mergeId,p=e.owner,m=this.state,b=m.data,v=m.SpinMerge,x=m.pr_status,E=m.isSpin,_=m.ismesrge,C=m.SpinFlag,O=(m.copyVisible,m.pull_request),N=m.conflict_files,P=this.props,S=P.current_user,j=P.projectDetail,T=h.default.createElement(c.default,{onClick:function(e){return t.getOption(e)}},h.default.createElement(c.default.Item,{key:"merge",value:"合并请求"},"合并请求"),h.default.createElement(c.default.Item,{key:"rebase",value:"变基并合并"},"变基并合并"),h.default.createElement(c.default.Item,{key:"rebase-merge",value:"变基合并 --no-ff"},"变基合并 --no-ff"),h.default.createElement(c.default.Item,{key:"squash",value:"压缩提交并合并"},"压缩提交并合并")),R=j&&("Admin"===j.permission||"Owner"===j.permission||"Manager"===j.permission),I=S&&S.login&&j&&0===x&&R;return h.default.createElement("div",null,b?h.default.createElement("div",null,h.default.createElement("div",{className:"main"},h.default.createElement("div",null,h.default.createElement("div",{className:"pb20 border-1f df"},h.default.createElement("div",{className:"flex1"},h.default.createElement("div",{className:"ver-middle"},h.default.createElement("span",{className:"mr10 ver-middle"},h.default.createElement("span",{className:"font-18 fwb",style:{wordBreak:"break-all"}},b.issue.subject)),b.pull_request&&h.default.createElement(s.default,{className:"pr_tags_"+b.pull_request.pull_request_staus},1===x?"已合并":2===x?"已拒绝":"开启的")),h.default.createElement("div",{className:"mt15"},h.default.createElement(s.default,{className:"pr-branch-tag"},h.default.createElement(g.Link,{to:"/"+(b.pull_request.is_original?b.pull_request.fork_project_user:b.issue.project_author)+"/"+(b.pull_request.is_original?b.project_identifier:n)+"/tree/"+(0,y.turnbar)(b.pull_request&&b.pull_request.head),className:"ver-middle task-hide",style:{maxWidth:"200px"},title:(b.pull_request.is_original?b.pull_request.fork_project_user_name:b.issue.author_name)+": "+(b.pull_request&&b.pull_request.head)},b.pull_request.is_original?b.pull_request.fork_project_user_name:b.issue.author_name,": ",b.pull_request&&b.pull_request.head)),h.default.createElement("span",{className:"mr8 ver-middle"},h.default.createElement("i",{className:"iconfont icon-youjiang color-grey-c font-16"})),h.default.createElement(s.default,{className:"pr-branch-tag"},h.default.createElement(g.Link,{to:"/"+p+"/"+n+"/tree/"+b.pull_request.base,className:"ver-middle task-hide",style:{maxWidth:"200px"},title:b.issue.project_author_name+":"+b.pull_request.base},b.issue.project_author_name,": ",b.pull_request.base))),h.default.createElement("div",{className:"mt15"},h.default.createElement(g.Link,{to:"/"+b.issue.author_login,className:"show-user-link"},h.default.createElement("img",{className:"mr5",src:(0,y.getImageUrl)("/"+b.issue.author_picture),alt:"",width:"24",height:"24",style:{borderRadius:"50%"}})),h.default.createElement("span",{className:"ver-middle"},h.default.createElement("span",{className:"color-grey-8 mr5"},"由"),h.default.createElement(g.Link,{to:"/"+b.issue.author_login,className:"show-user-link color-blue"},b.issue.author_name),h.default.createElement("span",{className:"ml5 color-grey-8"},0===x?"创建于":1===x?"合并于":"更新于"),h.default.createElement("span",{className:"color-grey-8 ml5"},b.pr_time),h.default.createElement("span",{className:"ml25"},h.default.createElement("span",{className:"color-grey-8"},"审查人员:"),b.issue.assign_user_name?h.default.createElement(g.Link,{to:"/"+b.issue.assign_user_login,className:"show-user-link color-blue"},b.issue.assign_user_name):"--"),h.default.createElement("span",{className:"ml25"},h.default.createElement("span",{className:"color-grey-8"},"里程碑:"),h.default.createElement("span",{className:"color-grey-3"},b.issue.version?b.issue.version:"--")),h.default.createElement("span",{className:"ml25"},h.default.createElement("span",{className:"color-grey-8"},"标记:"),h.default.createElement("span",{className:"color-grey-3"},b.issue.issue_tags&&b.issue.issue_tags.length>0?b.issue.issue_tags[0].name:"--")),h.default.createElement("span",{className:"ml25"},h.default.createElement("span",{className:"color-grey-8"},"优先级:"),h.default.createElement("span",{className:"color-grey-3"},b.issue.priority?b.issue.priority:"--"))))),h.default.createElement("div",{className:"ml10 text-right"},I&&h.default.createElement(u.default,{type:"green",ghost:!0,className:"ml20",onClick:function(){t.props.history.push("/"+p+"/"+n+"/pulls/"+a+"/edit")}},"编辑"),I&&h.default.createElement(u.default,{type:"blue",ghost:!0,className:"ml20 newBtn",onClick:this.codeReview},"代码评审",h.default.createElement("div",{className:"newBtnImg"})),I&&h.default.createElement(u.default,{type:"danger",ghost:!0,onClick:function(){return t.closedetail()},className:"ml20",loading:E},"拒绝"))),b.issue.description?h.default.createElement("div",{className:"mt15"},this.commentCtx(b.issue.description)):h.default.createElement("p",{className:"color-grey-9 ml3 mr3 mt15"},"没有描述")),h.default.createElement("div",{className:"mt15"},2===x&&h.default.createElement(l.default,{message:"提示",description:"该合并请求已被拒绝",type:"error"}),1===x&&h.default.createElement(l.default,{message:"提示",description:"该合并请求已被合并",type:"success"}),I&&h.default.createElement(r.default,{spinning:C},h.default.createElement("div",{style:{display:"rebase"===this.state.mergekey?"none"===this.state.buttonshow?"block":"none":_?"none":"block"}},h.default.createElement(o.default.Button,{overlay:T,type:"primary",onClick:this.submitmerge,className:"mb15",icon:h.default.createElement(i.default,{type:"caret-down"}),disabled:!O||O&&!O.mergeable},this.state.mergename),O&&O.mergeable?h.default.createElement(l.default,{message:"该合并请求可以进行自动合并操作",type:"success",showIcon:!0}):h.default.createElement(l.default,{message:this.mergeabledMes(),type:"error",description:this.mergeabledDesc(O.base,O.head,N),showIcon:!0})),h.default.createElement("div",null,h.default.createElement("div",{style:{display:_?"block":"none",marginTop:15}},h.default.createElement(d.default,{placeholder:"标题",value:this.state.title,onChange:this.changtitlepr}),h.default.createElement(k,{placeholder:"请输入合并描述...",style:{height:"170px",marginTop:20},value:this.state.body,onChange:this.changbodypr})),h.default.createElement("div",{className:"clearfix mt15",style:{display:this.state.buttonshow}},h.default.createElement(r.default,{spinning:v},h.default.createElement(u.default,{type:"primary",onClick:function(){return t.prmerge()}},"确认合并"),h.default.createElement(u.default,{onClick:function(){return t.nonemerge()},className:"ml15"},"取消"))))))),h.default.createElement(w.default,f({order_id:b&&b.issue.id},this.props,this.state,{bindFootRef:this.bindFootRef,pullOwnerLogin:b.pull_request.is_original?b.pull_request.fork_project_user:b.issue.author_login}))):"")}}]),e}(b.Component),C=a.default.create({name:"MessageCountForm"})(_);e.default=C},UG7M:function(t,e,n){(e=n("JPst")(!1)).push([t.i,"/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-list {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.65);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5;\n list-style: none;\n font-feature-settings: 'tnum';\n position: relative;\n}\n.ant-list * {\n outline: none;\n}\n.ant-list-pagination {\n margin-top: 24px;\n text-align: right;\n}\n.ant-list-pagination .ant-pagination-options {\n text-align: left;\n}\n.ant-list-more {\n margin-top: 12px;\n text-align: center;\n}\n.ant-list-more button {\n padding-right: 32px;\n padding-left: 32px;\n}\n.ant-list-spin {\n min-height: 40px;\n text-align: center;\n}\n.ant-list-empty-text {\n padding: 16px;\n color: rgba(0, 0, 0, 0.25);\n font-size: 14px;\n text-align: center;\n}\n.ant-list-items {\n margin: 0;\n padding: 0;\n list-style: none;\n}\n.ant-list-item {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 12px 0;\n}\n.ant-list-item-content {\n color: rgba(0, 0, 0, 0.65);\n}\n.ant-list-item-meta {\n display: flex;\n flex: 1;\n align-items: flex-start;\n font-size: 0;\n}\n.ant-list-item-meta-avatar {\n margin-right: 16px;\n}\n.ant-list-item-meta-content {\n flex: 1 0;\n}\n.ant-list-item-meta-title {\n margin-bottom: 4px;\n color: rgba(0, 0, 0, 0.65);\n font-size: 14px;\n line-height: 22px;\n}\n.ant-list-item-meta-title > a {\n color: rgba(0, 0, 0, 0.65);\n transition: all 0.3s;\n}\n.ant-list-item-meta-title > a:hover {\n color: #466aff;\n}\n.ant-list-item-meta-description {\n color: rgba(0, 0, 0, 0.45);\n font-size: 14px;\n line-height: 22px;\n}\n.ant-list-item-action {\n flex: 0 0 auto;\n margin-left: 48px;\n padding: 0;\n font-size: 0;\n list-style: none;\n}\n.ant-list-item-action > li {\n position: relative;\n display: inline-block;\n padding: 0 8px;\n color: rgba(0, 0, 0, 0.45);\n font-size: 14px;\n line-height: 22px;\n text-align: center;\n cursor: pointer;\n}\n.ant-list-item-action > li:first-child {\n padding-left: 0;\n}\n.ant-list-item-action-split {\n position: absolute;\n top: 50%;\n right: 0;\n width: 1px;\n height: 14px;\n margin-top: -7px;\n background-color: #e8e8e8;\n}\n.ant-list-header {\n background: transparent;\n}\n.ant-list-footer {\n background: transparent;\n}\n.ant-list-header,\n.ant-list-footer {\n padding-top: 12px;\n padding-bottom: 12px;\n}\n.ant-list-empty {\n padding: 16px 0;\n color: rgba(0, 0, 0, 0.45);\n font-size: 12px;\n text-align: center;\n}\n.ant-list-split .ant-list-item {\n border-bottom: 1px solid #e8e8e8;\n}\n.ant-list-split .ant-list-item:last-child {\n border-bottom: none;\n}\n.ant-list-split .ant-list-header {\n border-bottom: 1px solid #e8e8e8;\n}\n.ant-list-loading .ant-list-spin-nested-loading {\n min-height: 32px;\n}\n.ant-list-something-after-last-item .ant-spin-container > .ant-list-items > .ant-list-item:last-child {\n border-bottom: 1px solid #e8e8e8;\n}\n.ant-list-lg .ant-list-item {\n padding-top: 16px;\n padding-bottom: 16px;\n}\n.ant-list-sm .ant-list-item {\n padding-top: 8px;\n padding-bottom: 8px;\n}\n.ant-list-vertical .ant-list-item {\n align-items: initial;\n}\n.ant-list-vertical .ant-list-item-main {\n display: block;\n flex: 1;\n}\n.ant-list-vertical .ant-list-item-extra {\n margin-left: 40px;\n}\n.ant-list-vertical .ant-list-item-meta {\n margin-bottom: 16px;\n}\n.ant-list-vertical .ant-list-item-meta-title {\n margin-bottom: 12px;\n color: rgba(0, 0, 0, 0.85);\n font-size: 16px;\n line-height: 24px;\n}\n.ant-list-vertical .ant-list-item-action {\n margin-top: 16px;\n margin-left: auto;\n}\n.ant-list-vertical .ant-list-item-action > li {\n padding: 0 16px;\n}\n.ant-list-vertical .ant-list-item-action > li:first-child {\n padding-left: 0;\n}\n.ant-list-grid .ant-col > .ant-list-item {\n display: block;\n max-width: 100%;\n margin-bottom: 16px;\n padding-top: 0;\n padding-bottom: 0;\n border-bottom: none;\n}\n.ant-list-item-no-flex {\n display: block;\n}\n.ant-list:not(.ant-list-vertical) .ant-list-item-no-flex .ant-list-item-action {\n float: right;\n}\n.ant-list-bordered {\n border: 1px solid #d9d9d9;\n border-radius: 4px;\n}\n.ant-list-bordered .ant-list-header {\n padding-right: 24px;\n padding-left: 24px;\n}\n.ant-list-bordered .ant-list-footer {\n padding-right: 24px;\n padding-left: 24px;\n}\n.ant-list-bordered .ant-list-item {\n padding-right: 24px;\n padding-left: 24px;\n border-bottom: 1px solid #e8e8e8;\n}\n.ant-list-bordered .ant-list-pagination {\n margin: 16px 24px;\n}\n.ant-list-bordered.ant-list-sm .ant-list-item {\n padding-right: 16px;\n padding-left: 16px;\n}\n.ant-list-bordered.ant-list-sm .ant-list-header,\n.ant-list-bordered.ant-list-sm .ant-list-footer {\n padding: 8px 16px;\n}\n.ant-list-bordered.ant-list-lg .ant-list-header,\n.ant-list-bordered.ant-list-lg .ant-list-footer {\n padding: 16px 24px;\n}\n@media screen and (max-width: 768px) {\n .ant-list-item-action {\n margin-left: 24px;\n }\n .ant-list-vertical .ant-list-item-extra {\n margin-left: 24px;\n }\n}\n@media screen and (max-width: 576px) {\n .ant-list-item {\n flex-wrap: wrap;\n }\n .ant-list-item-action {\n margin-left: 12px;\n }\n .ant-list-vertical .ant-list-item {\n flex-wrap: wrap-reverse;\n }\n .ant-list-vertical .ant-list-item-main {\n min-width: 220px;\n }\n .ant-list-vertical .ant-list-item-extra {\n margin: auto auto 16px;\n }\n}\n",""]),t.exports=e},UQ5L:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a=function(t,e){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return function(t,e){var n=[],a=!0,r=!1,o=void 0;try{for(var i,l=t[Symbol.iterator]();!(a=(i=l.next()).done)&&(n.push(i.value),!e||n.length!==e);a=!0);}catch(t){r=!0,o=t}finally{try{!a&&l.return&&l.return()}finally{if(r)throw o}}return n}(t,e);throw new TypeError("Invalid attempt to destructure non-iterable instance")},r=n("cDcd"),o=l(r),i=l(n("6tYh"));function l(t){return t&&t.__esModule?t:{default:t}}e.default=function(t){var e=(0,r.useState)(null),n=a(e,2),l=n[0],s=n[1];return(0,r.useEffect)((function(){s(t.video_url)}),[]),o.default.createElement(i.default,{url:l,controls:!0,playing:!1})}},UfWW:function(t,e,n){var a=n("KwMD"),r=n("ut/Y"),o=n("Sxd8"),i=Math.max;t.exports=function(t,e,n){var l=null==t?0:t.length;if(!l)return-1;var s=null==n?0:o(n);return s<0&&(s=i(l+s,0)),a(t,r(e,3),s)}},VPG4:function(t,e,n){},VXEj:function(t,e,n){"use strict";n.r(e),n.d(e,"default",(function(){return A}));var a=n("cDcd"),r=n("17x9"),o=n("eHJ2"),i=n.n(o),l=n("BGR+"),s=n("W9HT"),c=n("H84U"),u=n("NUBc"),p=n("qrJ5"),d=n("/kpp");function f(t){if(!a.isValidElement(t))return t;for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r0&&a.createElement("ul",{className:"".concat(v,"-item-action"),key:"actions"},p.map((function(t,e){return a.createElement("li",{key:"".concat(v,"-item-action-").concat(e)},t,e!==p.length-1&&a.createElement("em",{className:"".concat(v,"-item-action-split")}))}))),x=o?"div":"li",w=a.createElement(x,E({},g,{className:i()("".concat(v,"-item"),h,b({},"".concat(v,"-item-no-flex"),!t.isFlexMode()))}),"vertical"===l&&m?[a.createElement("div",{className:"".concat(v,"-item-main"),key:"content"},u,y),a.createElement("div",{className:"".concat(v,"-item-extra"),key:"extra"},m)]:[u,y,f(m,{key:"extra"})]);return o?a.createElement(d.a,{span:_(o,"column"),xs:_(o,"xs"),sm:_(o,"sm"),md:_(o,"md"),lg:_(o,"lg"),xl:_(o,"xl"),xxl:_(o,"xxl")},w):w},t}return e=l,(n=[{key:"isItemContainsTextNodeAndNotSingular",value:function(){var t,e=this.props.children;return a.Children.forEach(e,(function(e){"string"==typeof e&&(t=!0)})),t&&a.Children.count(e)>1}},{key:"isFlexMode",value:function(){var t=this.props.extra;return"vertical"===this.context.itemLayout?!!t:!this.isItemContainsTextNodeAndNotSingular()}},{key:"render",value:function(){return a.createElement(c.a,null,this.renderItem)}}])&&g(e.prototype,n),r&&g(e,r),l}(a.Component);function O(t){return(O="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function N(t){return function(t){if(Array.isArray(t))return P(t)}(t)||function(t){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(t))return Array.from(t)}(t)||function(t,e){if(!t)return;if("string"==typeof t)return P(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return P(t,e)}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function P(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,a=new Array(e);nB&&(M.current=B);var H,q=E?a.createElement("div",{className:"".concat(D,"-pagination")},a.createElement(u.default,S({},M,{onChange:e.onPaginationChange,onShowSizeChange:e.onPaginationShowSizeChange}))):null,K=N(C);if(E&&C.length>(M.current-1)*M.pageSize&&(K=N(C).splice((M.current-1)*M.pageSize,M.pageSize)),H=A&&a.createElement("div",{style:{minHeight:53}}),K.length>0){var W=K.map((function(t,n){return e.renderItem(t,n)})),V=[];a.Children.forEach(W,(function(t,n){V.push(a.cloneElement(t,{key:e.keys[n]}))})),H=k?a.createElement(p.a,{gutter:k.gutter},V):a.createElement("ul",{className:"".concat(D,"-items")},V)}else y||A||(H=e.renderEmpty(D,o));var J=M.position||"bottom";return a.createElement("div",S({className:U},Object(l.default)(I,["rowKey","renderItem","locale"])),("top"===J||"both"===J)&&q,P&&a.createElement("div",{className:"".concat(D,"-header")},P),a.createElement(s.default,L,H,y),T&&a.createElement("div",{className:"".concat(D,"-footer")},T),w||("bottom"===J||"both"===J)&&q)};var n=t.pagination,r=n&&"object"===O(n)?n:{};return e.state={paginationCurrent:r.defaultCurrent||1,paginationSize:r.defaultPageSize||10},e}return e=d,(n=[{key:"getChildContext",value:function(){return{grid:this.props.grid,itemLayout:this.props.itemLayout}}},{key:"triggerPaginationEvent",value:function(t){var e=this;return function(n,a){var r=e.props.pagination;e.setState({paginationCurrent:n,paginationSize:a}),r&&r[t]&&r[t](n,a)}}},{key:"isSomethingAfterLastItem",value:function(){var t=this.props,e=t.loadMore,n=t.pagination,a=t.footer;return!!(e||n||a)}},{key:"render",value:function(){return a.createElement(c.a,null,this.renderList)}}])&&T(e.prototype,n),r&&T(e,r),d}(a.Component);A.Item=C,A.childContextTypes={grid:r.any,itemLayout:r.string},A.defaultProps={dataSource:[],bordered:!1,split:!0,loading:!1,pagination:!1}},"Xt/L":function(t,e){t.exports=function(t,e,n){for(var a=-1,r=null==t?0:t.length;++a=0}(t,e.activeKey)||(n.activeKey=Q(t)),Object.keys(n).length>0?n:null}}]),e}(r.a.Component),Z=function(){var t=this;this.onTabClick=function(e,n){t.tabBar.props.onTabClick&&t.tabBar.props.onTabClick(e,n),t.setActiveKey(e)},this.onNavKeyDown=function(e){var n=e.keyCode;if(n===S||n===j){e.preventDefault();var a=t.getNextActiveKey(!0);t.onTabClick(a)}else if(n===N||n===P){e.preventDefault();var r=t.getNextActiveKey(!1);t.onTabClick(r)}},this.onScroll=function(t){var e=t.target;e===t.currentTarget&&e.scrollLeft>0&&(e.scrollLeft=0)},this.setSentinelStart=function(e){t.sentinelStart=e},this.setSentinelEnd=function(e){t.sentinelEnd=e},this.setPanelSentinelStart=function(e){e!==t.panelSentinelStart&&t.updateSentinelContext(),t.panelSentinelStart=e},this.setPanelSentinelEnd=function(e){e!==t.panelSentinelEnd&&t.updateSentinelContext(),t.panelSentinelEnd=e},this.setActiveKey=function(e){t.state.activeKey!==e&&("activeKey"in t.props||t.setState({activeKey:e}),t.props.onChange(e))},this.getNextActiveKey=function(e){var n=t.state.activeKey,a=[];r.a.Children.forEach(t.props.children,(function(t){t&&!t.props.disabled&&(e?a.push(t):a.unshift(t))}));var o=a.length,i=o&&a[0].key;return a.forEach((function(t,e){t.key===n&&(i=e===o-1?a[0].key:a[e+1].key)})),i}};X.propTypes={destroyInactiveTabPane:w.a.bool,renderTabBar:w.a.func.isRequired,renderTabContent:w.a.func.isRequired,navWrapper:w.a.func,onChange:w.a.func,children:w.a.node,prefixCls:w.a.string,className:w.a.string,tabBarPosition:w.a.string,style:w.a.object,activeKey:w.a.string,defaultActiveKey:w.a.string,direction:w.a.string},X.defaultProps={prefixCls:"rc-tabs",destroyInactiveTabPane:!1,onChange:function(){},navWrapper:function(t){return t},tabBarPosition:"top",children:null,style:{},direction:"ltr"},X.TabPane=G,Object(O.polyfill)(X);var $=X,tt=function(t){function e(){return f()(this,e),g()(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return y()(e,t),b()(e,[{key:"getTabPanes",value:function(){var t=this.props,e=t.activeKey,n=t.children,a=[];return r.a.Children.forEach(n,(function(n){if(n){var o=n.key,i=e===o;a.push(r.a.cloneElement(n,{active:i,destroyInactiveTabPane:t.destroyInactiveTabPane,rootPrefixCls:t.prefixCls}))}})),a}},{key:"render",value:function(){var t,e,n=this.props,a=n.prefixCls,o=n.children,i=n.activeKey,s=n.className,u=n.tabBarPosition,p=n.animated,d=n.animatedWithMargin,f=n.direction,m=n.style,b=k()((t={},c()(t,a+"-content",!0),c()(t,p?a+"-content-animated":a+"-content-no-animated",!0),t),s);if(p){var h=R(o,i);if(-1!==h){var g=d?function(t,e){var n=L(e)?"marginTop":"marginLeft";return c()({},n,100*-t+"%")}(h,u):{transform:e=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"ltr",a=L(e)?"translateY":"translateX";return L(e)||"rtl"!==n?a+"("+100*-t+"%) translateZ(0)":a+"("+100*t+"%) translateZ(0)"}(h,u,f),WebkitTransform:e,MozTransform:e};m=l()({},m,g)}else m=l()({},m,{display:"none"})}return r.a.createElement("div",{className:b,style:m},this.getTabPanes())}}]),e}(r.a.Component),et=tt;tt.propTypes={animated:w.a.bool,animatedWithMargin:w.a.bool,prefixCls:w.a.string,children:w.a.node,activeKey:w.a.string,style:w.a.any,tabBarPosition:w.a.string,className:w.a.string,destroyInactiveTabPane:w.a.bool,direction:w.a.string},tt.defaultProps={animated:!0};var nt=$,at=n("eHJ2"),rt=n.n(at),ot=n("BGR+");function it(t,e){var n=t.props,a=n.styles,r=n.panels,o=n.activeKey,i=n.direction,l=t.props.getRef("root"),s=t.props.getRef("nav")||l,c=t.props.getRef("inkBar"),u=t.props.getRef("activeTab"),p=c.style,d=t.props.tabBarPosition,f=R(r,o);if(e&&(p.display="none"),u){var m=u,b=D(p);if(I(p,""),p.width="",p.height="",p.left="",p.top="",p.bottom="",p.right="","top"===d||"bottom"===d){var h=function(t,e){return U("left","offsetWidth","right",t,e)}(m,s),g=m.offsetWidth;g===l.offsetWidth?g=0:a.inkBar&&void 0!==a.inkBar.width&&(g=parseFloat(a.inkBar.width,10))&&(h+=(m.offsetWidth-g)/2),"rtl"===i&&(h=z(m,"margin-left")-h),b?I(p,"translate3d("+h+"px,0,0)"):p.left=h+"px",p.width=g+"px"}else{var v=function(t,e){return U("top","offsetHeight","bottom",t,e)}(m,s),y=m.offsetHeight;a.inkBar&&void 0!==a.inkBar.height&&(y=parseFloat(a.inkBar.height,10))&&(v+=(m.offsetHeight-y)/2),b?(I(p,"translate3d(0,"+v+"px,0)"),p.top="0"):p.top=v+"px",p.height=y+"px"}}p.display=-1!==f?"block":"none"}var lt=function(t){function e(){return f()(this,e),g()(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return y()(e,t),b()(e,[{key:"componentDidMount",value:function(){var t=this;this.timeout=setTimeout((function(){it(t,!0)}),0)}},{key:"componentDidUpdate",value:function(){it(this)}},{key:"componentWillUnmount",value:function(){clearTimeout(this.timeout)}},{key:"render",value:function(){var t,e=this.props,n=e.prefixCls,a=e.styles,o=e.inkBarAnimated,i=n+"-ink-bar",l=k()((t={},c()(t,i,!0),c()(t,o?i+"-animated":i+"-no-animated",!0),t));return r.a.createElement("div",{style:a.inkBar,className:l,key:"inkBar",ref:this.props.saveRef("inkBar")})}}]),e}(r.a.Component),st=lt;lt.propTypes={prefixCls:w.a.string,styles:w.a.object,inkBarAnimated:w.a.bool,saveRef:w.a.func,direction:w.a.string},lt.defaultProps={prefixCls:"",inkBarAnimated:!0,styles:{},saveRef:function(){}};var ct=n("2W6z"),ut=n.n(ct),pt=function(t){function e(){return f()(this,e),g()(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return y()(e,t),b()(e,[{key:"render",value:function(){var t=this,e=this.props,n=e.panels,a=e.activeKey,o=e.prefixCls,i=e.tabBarGutter,s=e.saveRef,u=e.tabBarPosition,p=e.renderTabBarNode,d=e.direction,f=[];return r.a.Children.forEach(n,(function(e,m){if(e){var b=e.key,h=a===b?o+"-tab-active":"";h+=" "+o+"-tab";var g={};e.props.disabled?h+=" "+o+"-tab-disabled":g={onClick:t.props.onTabClick.bind(t,b)};var v={};a===b&&(v.ref=s("activeTab"));var y=i&&m===n.length-1?0:i,x="rtl"===d?"marginLeft":"marginRight",w=c()({},L(u)?"marginBottom":x,y);ut()("tab"in e.props,"There must be `tab` property on children of Tabs.");var E=r.a.createElement("div",l()({role:"tab","aria-disabled":e.props.disabled?"true":"false","aria-selected":a===b?"true":"false"},g,{className:h,key:b,style:w},v),e.props.tab);p&&(E=p(E)),f.push(E)}})),r.a.createElement("div",{ref:s("navTabsContainer")},f)}}]),e}(r.a.Component),dt=pt;pt.propTypes={activeKey:w.a.string,panels:w.a.node,prefixCls:w.a.string,tabBarGutter:w.a.number,onTabClick:w.a.func,saveRef:w.a.func,renderTabBarNode:w.a.func,tabBarPosition:w.a.string,direction:w.a.string},pt.defaultProps={panels:[],prefixCls:[],tabBarGutter:null,onTabClick:function(){},saveRef:function(){}};var ft=function(t){function e(){return f()(this,e),g()(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return y()(e,t),b()(e,[{key:"render",value:function(){var t=this.props,e=t.prefixCls,n=t.onKeyDown,o=t.className,i=t.extraContent,s=t.style,u=t.tabBarPosition,d=t.children,f=p()(t,["prefixCls","onKeyDown","className","extraContent","style","tabBarPosition","children"]),m=k()(e+"-bar",c()({},o,!!o)),b="top"===u||"bottom"===u,h=b?{float:"right"}:{},g=i&&i.props?i.props.style:{},v=d;return i&&(v=[Object(a.cloneElement)(i,{key:"extra",style:l()({},h,g)}),Object(a.cloneElement)(d,{key:"content"})],v=b?v:v.reverse()),r.a.createElement("div",l()({role:"tablist",className:m,tabIndex:"0",ref:this.props.saveRef("root"),onKeyDown:n,style:s},A(f)),v)}}]),e}(r.a.Component),mt=ft;ft.propTypes={prefixCls:w.a.string,className:w.a.string,style:w.a.object,tabBarPosition:w.a.oneOf(["left","right","top","bottom"]),children:w.a.node,extraContent:w.a.node,onKeyDown:w.a.func,saveRef:w.a.func},ft.defaultProps={prefixCls:"",className:"",style:{},tabBarPosition:"top",extraContent:null,children:null,onKeyDown:function(){},saveRef:function(){}};var bt=n("sEfC"),ht=n.n(bt),gt=n("bdgK"),vt=function(t){function e(t){f()(this,e);var n=g()(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,t));return n.prevTransitionEnd=function(t){if("opacity"===t.propertyName){var e=n.props.getRef("container");n.scrollToActiveTab({target:e,currentTarget:e})}},n.scrollToActiveTab=function(t){var e=n.props.getRef("activeTab"),a=n.props.getRef("navWrap");if((!t||t.target===t.currentTarget)&&e){var r=n.isNextPrevShown()&&n.lastNextPrevShown;if(n.lastNextPrevShown=n.isNextPrevShown(),r){var o=n.getScrollWH(e),i=n.getOffsetWH(a),l=n.offset,s=n.getOffsetLT(a),c=n.getOffsetLT(e);s>c?(l+=s-c,n.setOffset(l)):s+i=0)s=!1,this.setOffset(0,!1),o=0;else if(i1&&void 0!==arguments[1])||arguments[1],n=Math.min(0,t);if(this.offset!==n){this.offset=n;var a={},r=this.props.tabBarPosition,o=this.props.getRef("nav").style,i=D(o);"left"===r||"right"===r?a=i?{value:"translate3d(0,"+n+"px,0)"}:{name:"top",value:n+"px"}:i?("rtl"===this.props.direction&&(n=-n),a={value:"translate3d("+n+"px,0,0)"}):a={name:"left",value:n+"px"},i?I(o,a.value):o[a.name]=a.value,e&&this.setNextPrev()}}},{key:"setPrev",value:function(t){this.state.prev!==t&&this.setState({prev:t})}},{key:"setNext",value:function(t){this.state.next!==t&&this.setState({next:t})}},{key:"isNextPrevShown",value:function(t){return t?t.next||t.prev:this.state.next||this.state.prev}},{key:"render",value:function(){var t,e,n,a,o=this.state,i=o.next,l=o.prev,s=this.props,u=s.prefixCls,p=s.scrollAnimated,d=s.navWrapper,f=s.prevIcon,m=s.nextIcon,b=l||i,h=r.a.createElement("span",{onClick:l?this.prev:null,unselectable:"unselectable",className:k()((t={},c()(t,u+"-tab-prev",1),c()(t,u+"-tab-btn-disabled",!l),c()(t,u+"-tab-arrow-show",b),t)),onTransitionEnd:this.prevTransitionEnd},f||r.a.createElement("span",{className:u+"-tab-prev-icon"})),g=r.a.createElement("span",{onClick:i?this.next:null,unselectable:"unselectable",className:k()((e={},c()(e,u+"-tab-next",1),c()(e,u+"-tab-btn-disabled",!i),c()(e,u+"-tab-arrow-show",b),e))},m||r.a.createElement("span",{className:u+"-tab-next-icon"})),v=u+"-nav",y=k()((n={},c()(n,v,!0),c()(n,p?v+"-animated":v+"-no-animated",!0),n));return r.a.createElement("div",{className:k()((a={},c()(a,u+"-nav-container",1),c()(a,u+"-nav-container-scrolling",b),a)),key:"container",ref:this.props.saveRef("container")},h,g,r.a.createElement("div",{className:u+"-nav-wrap",ref:this.props.saveRef("navWrap")},r.a.createElement("div",{className:u+"-nav-scroll"},r.a.createElement("div",{className:y,ref:this.props.saveRef("nav")},d(this.props.children)))))}}]),e}(r.a.Component),yt=vt;vt.propTypes={activeKey:w.a.string,getRef:w.a.func.isRequired,saveRef:w.a.func.isRequired,tabBarPosition:w.a.oneOf(["left","right","top","bottom"]),prefixCls:w.a.string,scrollAnimated:w.a.bool,onPrevClick:w.a.func,onNextClick:w.a.func,navWrapper:w.a.func,children:w.a.node,prevIcon:w.a.node,nextIcon:w.a.node,direction:w.a.node},vt.defaultProps={tabBarPosition:"left",prefixCls:"",scrollAnimated:!0,onPrevClick:function(){},onNextClick:function(){},navWrapper:function(t){return t}};var xt=function(t){function e(){var t,n,a,r;f()(this,e);for(var o=arguments.length,i=Array(o),l=0;l=0),t),u),x=Ct(Ct({},this.props),{children:null,inkBarAnimated:f,extraContent:l,style:r,prevIcon:g,nextIcon:v,className:y});return e=i?i(x,kt):a.createElement(kt,x),a.cloneElement(e)}}])&&St(e.prototype,n),r&&St(e,r),i}(a.Component);Dt.defaultProps={animated:!0,type:"line"};var Lt=n("H84U"),zt=n("6CfX"),At=n("R3zJ");function Ft(){return(Ft=Object.assign||function(t){for(var e=1;e=0&&("small"===c||"large"===c)),"Tabs","`type=card|editable-card` doesn't have small or large size, it's by design.");var y=r("tabs",i),x=rt()(s,(Ut(n={},"".concat(y,"-vertical"),"left"===d||"right"===d),Ut(n,"".concat(y,"-").concat(c),!!c),Ut(n,"".concat(y,"-card"),p.indexOf("card")>=0),Ut(n,"".concat(y,"-").concat(p),!0),Ut(n,"".concat(y,"-no-animation"),!v),n)),w=[];"editable-card"===p&&(w=[],a.Children.forEach(f,(function(e,n){if(!a.isValidElement(e))return e;var r=e.props.closable,o=(r=void 0===r||r)?a.createElement(_t.default,{type:"close",className:"".concat(y,"-close-x"),onClick:function(n){return t.removeTab(e.key,n)}}):null;w.push(a.cloneElement(e,{tab:a.createElement("div",{className:r?void 0:"".concat(y,"-tab-unclosable")},e.props.tab,o),key:e.key||n}))})),h||(g=a.createElement("span",null,a.createElement(_t.default,{type:"plus",className:"".concat(y,"-new-tab"),onClick:t.createNewTab}),g))),g=g?a.createElement("div",{className:"".concat(y,"-extra-content")},g):null;var E=Jt(t.props,[]),k=rt()("".concat(y,"-").concat(d,"-content"),p.indexOf("card")>=0&&"".concat(y,"-card-content"));return a.createElement(nt,Ft({},t.props,{prefixCls:y,className:x,tabBarPosition:d,renderTabBar:function(){return a.createElement(Dt,Ft({},Object(ot.default)(E,["className"]),{tabBarExtraContent:g}))},renderTabContent:function(){return a.createElement(et,{className:k,animated:v,animatedWithMargin:!0})},onChange:t.handleChange}),w.length>0?w:f)},t}return e=l,(n=[{key:"componentDidMount",value:function(){var t=o.findDOMNode(this);t&&!At.b&&-1===t.className.indexOf(" no-flex")&&(t.className+=" no-flex")}},{key:"render",value:function(){return a.createElement(Lt.a,null,this.renderTabs)}}])&&Ht(e.prototype,n),r&&Ht(e,r),l}(a.Component);Yt.TabPane=G,Yt.defaultProps={hideAdd:!1,tabPosition:"top"}},"Znn+":function(t,e,n){"use strict";n.r(e);n("cIOH"),n("9ama")},aABL:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a=u(n("3S7+")),r=u(n("CFYs")),o=function(t,e){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return function(t,e){var n=[],a=!0,r=!1,o=void 0;try{for(var i,l=t[Symbol.iterator]();!(a=(i=l.next()).done)&&(n.push(i.value),!e||n.length!==e);a=!0);}catch(t){r=!0,o=t}finally{try{!a&&l.return&&l.return()}finally{if(r)throw o}}return n}(t,e);throw new TypeError("Invalid attempt to destructure non-iterable instance")};n("5Dmo"),n("MXD1");var i=n("cDcd"),l=u(i),s=n("PhNK"),c=n("spEH");function u(t){return t&&t.__esModule?t:{default:t}}n("js5m"),n("VPG4"),e.default=function(t){var e=t.data,n=t.history,u=t.owner,p=t.projectsId,d=t.parentsSha,f=(0,i.useState)(e&&e.files),m=o(f,2),b=m[0],h=m[1],g=(0,i.useState)("复制文件路径"),v=o(g,2),y=v[0],x=v[1],w=(0,i.useState)(!1),E=o(w,2),k=E[0],_=E[1];function C(t,e,n){if(!n){var a=b.concat();a[e].flag=!t,a.splice(),h(a)}}(0,i.useEffect)((function(){e&&h(e.files)}),[e]),(0,i.useEffect)((function(){document.addEventListener("click",(function(){_(!1)}))}),[]);var O=l.default.createElement("div",{className:"folders"},l.default.createElement("div",{className:"folderList"},b&&b.map((function(t,e){return l.default.createElement("a",{href:"#value"+e},l.default.createElement(c.FlexAJ,{className:"filesInfo",key:e,onClick:function(){t.flag&&C(t.flag,e,t.isBin),_(!1)}},l.default.createElement(c.AlignCenter,null,l.default.createElement("i",{className:"iconfont icon-wenjianicon mr4"}),l.default.createElement("span",{className:"cursor-pointer","data-clipboard-text":t.name},t.name)),l.default.createElement("div",{className:"see-file"},l.default.createElement(a.default,{placement:"top",title:t.addition+t.deletion+"处更改"+(t.addition+t.deletion>0?":":"")+(t.addition>0?t.addition+"处添加":"")+(t.addition>0&&t.deletion>0?"和":"")+(t.deletion>0?t.deletion+"处删除":"")},l.default.createElement(r.default,{showInfo:!1,strokeColor:"#2DB44D",size:"small",percent:t.addition/(t.addition+t.deletion)*100}),t.addition>0&&l.default.createElement("span",{className:"color-green ml10"},"+",t.addition),t.deletion>0&&l.default.createElement("span",{className:"color-red ml10"},"-",t.deletion)))))}))));return l.default.createElement("div",{onClick:function(t){t.nativeEvent.stopImmediatePropagation()}},l.default.createElement(c.AlignCenter,{className:"color-grey-9",style:{position:"relative"}},l.default.createElement("div",{onClick:function(){_(!k)}},l.default.createElement("i",{className:"iconfont mr5 "+(k?"font-18 icon-sanjiaoxing-down":"font-16 icon-triangle")}),l.default.createElement("span",{className:"color-grey-6 update-file-count"},"共有",l.default.createElement("span",{className:"color-grey-3"}," ",e&&e.files_count," 个文件 "),"被更改,包括",e&&e.total_addition?l.default.createElement("span",{className:"color-green"}," ",e&&e.total_addition," 次插入"):"",e&&e.total_addition&&e.total_deletion?" 和 ":"",e&&e.total_deletion?l.default.createElement("span",{className:"color-red"}," ",e&&e.total_deletion," 次删除"):"")),k&&O),b&&b.length>0&&l.default.createElement("div",{className:"fileList"},b.map((function(t,e){return l.default.createElement("div",{className:"files",key:e},l.default.createElement("a",{id:"value"+e,className:"anchorPoint"}),l.default.createElement(c.FlexAJ,{className:"filesInfo"},l.default.createElement(c.AlignCenter,null,t.isBin?"":l.default.createElement("i",{className:t.flag?"iconfont icon-triangle font-15 color-grey-9":"iconfont icon-sanjiaoxing-down color-grey-9 mt4",onClick:function(){return C(t.flag,e,t.isBin)}}),l.default.createElement("span",{className:"cursor-pointer","data-clipboard-text":t.name,onClick:function(){return C(t.flag,e,t.isBin)}},t.name),l.default.createElement(a.default,{title:y,onVisibleChange:function(){return x("复制文件路径")}},l.default.createElement("i",{className:"iconfont icon-fuzhiicon ml6",onClick:function(){return e=t.name,(n=document.createElement("input")).defaultValue=e,document.body.appendChild(n),n.select(),document.execCommand("Copy"),n.className="copyCont",n.style.display="none",void x("复制成功");var e,n}}))),l.default.createElement("div",{className:"see-file"},l.default.createElement(a.default,{placement:"top",title:t.addition+t.deletion+"处更改"+(t.addition+t.deletion>0?":":"")+" "+(t.addition>0?t.addition+"处添加":"")+(t.addition>0&&t.deletion>0?"和":"")+(t.deletion>0?t.deletion+"处删除":"")},l.default.createElement(r.default,{showInfo:!1,strokeColor:"#2DB44D",size:"small",percent:t.addition/(t.addition+t.deletion)*100}),l.default.createElement("span",{className:"ml10"},t.addition+t.deletion,"处")),!t.isSubmodule&&l.default.createElement("span",{className:"see-file-btn",onClick:function(){n.push("/"+u+"/"+p+(t.isDeleted?"/commits/"+(0,s.truncateCommitId)(d):"/tree/"+(0,s.truncateCommitId)(t.sha)+"/"+t.name))}},"查看文件"))),t.sections&&t.sections.length>=1&&!t.flag&&l.default.createElement("div",{className:"filesContent"},t.sections.map((function(t,e){return t.lines&&t.lines.length>0&&t.lines.map((function(t,n){return l.default.createElement("div",{key:e+n,className:2===t.type?"linesContent add":3===t.type?"linesContent reduce":4===t.type?"linesContent translate":"linesContent"},l.default.createElement("span",{className:"lines"},l.default.createElement("span",null,t.leftIdx&&"0"!==t.leftIdx?t.leftIdx:""),l.default.createElement("span",null,t.rightIdx&&"0"!==t.rightIdx?t.rightIdx:"")),l.default.createElement("p",null,t.content))}))}))))}))))}},bIax:function(t,e){t.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADoAAAAmCAYAAACVr4jIAAAEiklEQVRoQ9WZbWxTZRTHf+feDlAJQhUIftBAUDEaDVG/gHEzEQ3GsVtMWTBGo0QxsLUJRvHDQtmMMRoyaAeJ+O4HCWzZ2rFkghpfQmZMNGqMgiwiJH6YStjmG2Treo+5ZZtDuvXerncrz8c+/3PO/9fbe3uec4VpWqsTOmeWElK4G+VOYCHCPGBAoEeFH4DP1KS1fbP8MlmbMtkEXuPX7tRFGYNtAo8As13E2wKtmNQla6TbhT6nZEpB1zbppozNSwJzCjCcRkn09/H8p/Uy5DV+SkDDMZ0xFORVhce9GrxIL3wsBuuSNXLGSy7/QWNqhILsVwh7MTaRVuC7QICVLZvlb7c5fQe14voy8JxbQ251IhxMniFEvdhuYnwFrYrrCoEjgOHGjFeNQE0yKnvcxPkKasX1W+A2N0YK1JweEJa+H5E/88VPCnR1QmfOslmlBhXANSgZVY5pGc1GhiUoh/MZmOy+CrH2iDTky1MwaGiXhm1hh8C1OYooQj+abQD8XqdSUVmcr0hBoFZcGxDqcHBKYGVMbumoEaeTGnd5NhrarY9phndKgG/Ughg8kayVt4sG6vSnM2xOiHB1iYG+mKyVuqKBWk26AZs3Sgky60XYnYpIbfFAE7oPZX2pgQrsSEbl2UmDxmJqHF3AgnSaDoQ7Sg0U2JqKyisFgVY26WLT5lGENSi3AoESBByxdEKU98Tm3bYt8nMunxc9da2dOheDBpSNCDNKGC6XtbTCm4PC1v93SxeAVjbpMtOmHbjhEgO80K7wkyihZFS+H9kYBV3TqEsNky+Aqy5pyP/IfjeF8tZa+fH8gxkI79HZg0N8KbBsiiCdCYH/97zQnellecd2OZsFtRL6AsqEf7hF+QIERXnaEDozStc4fXJRSo35yWb/eiSc0Plp5SRwRVEr5E5Wn4rKdmerslFvNgMc8bvxV/jHMLlOrLg+Bez1HVJ4KxWRDWPrhBJaruePcjN9rh9xQDuAB/0sJHCor5fKXNO7qiatFpt9fk0hhrk6JBTXboXrfQMVvi4zKZ9okGUl9BmUHb55gFPOFXUmaX7dnycHA6zo3Cy/5oOoSmhclEg+XUH7wlmxdmk/wpUFJZg46IxdxsqDm+S4q9wxNawgzcBDrvReRMofDuhRhJu8xLnQnjMMVrXVSpcL7aikIqaz5gb5ELjLS1xerXJMrITuR6nOK/YgUDjUHpXVHkJGpVVxDQm0FRI7boxwQKyduh4j+9Qr9uoFMggqSsN481fnpZNt0oWOvnBybqPiHiZsHhan/UsP4Rxt5hebdEy+11JR2ZgrvxXX24GvfKx9uizAkpEWsAalycdi0wcq1KYisjsLWhHTwLwgHyjc4xPstIAKfNLXy31OozJ6TAs3ajBt8jlwow+w0wF6vCzDipYt4jwrLhxA39+owcsCHEC5t8iwUwsqfHRuiOrDw5AXgTofhJvVHPqNJ9VmG7CoSMBTBdojBg2Bhbzesk4yY72PO6mv3KuXGwM8IEqVKstFstDOuxTP032g2KCDwz7+UqVHhG9UaLd76XQO2bkuzr9Ki5LaLq4ltwAAAABJRU5ErkJggg=="},dIAb:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a=w(n("VXEj")),r=w(n("NJEC")),o=w(n("2/Rp")),i=w(n("NUBc")),l=w(n("ZTPi")),s=Object.assign||function(t){for(var e=1;e0?t.map((function(t,e){return p.default.createElement("div",{key:e+1,className:"journal-list-item"},p.default.createElement("span",{className:"fwb mr3"},t.detail,":"),p.default.createElement("span",{className:"mr5 color-grey-9"},t.old_value&&t.old_value.length>0?"更新为":"新增"),p.default.createElement("span",null,t.value&&t.value.length>0?"标记"===t.detail?p.default.createElement("span",{className:"issue-tag-show",style:{background:t.value[0].color}},t.value[0].name):t.value:"无"))})):p.default.createElement("div",null,p.default.createElement("span",null,"没有评论~"))},n.ChangePage=function(t){n.setState({page:t,isSpin:!0});var e=n.state.limit;n.getjournalslist(t,e)},n.changeIsComplete=function(t){n.setState({showFiles:t})},n.onContentChange=function(t){t&&n.setState({quillFlag:!1}),n.setState({content:t})},n.replyContentChange=function(t){t&&n.setState({quillFlag:!1}),n.setState({reply_content:t})},n.changeAtWhoLoginList=function(t){n.setState({atWhoLoginList:t})},n.onRef=function(t){n.child=t},n.commentCtx=function(t){return p.default.createElement(y.default,{className:"break_word_comments imageLayerParent",value:t,url:n.props.history.location})},n.Paginations=function(){var t=n.state,e=t.page,a=t.limit,r=t.search_count;if(r>a)return p.default.createElement("div",{className:"pt30 mb50 edu-txt-center btp1"},p.default.createElement(i.default,{simple:!0,defaultCurrent:e,total:r,pageSize:a,onChange:n.ChangePage}))},n.state={content:void 0,journalsdata:void 0,isedit:void 0,fileList:void 0,limit:10,page:1,journal_spin:!1,edit_spin:!1,attachment_clean:!0,orderId:n.props.order_id,is_reply:!1,reply_id:void 0,reply_content:void 0,new_journal_id:void 0,atWhoLoginList:void 0},n}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(e,t),c(e,[{key:"loginModal",value:function(){this.props.showLoginDialog()}},{key:"render",value:function(){var t=this,e=this.state,n=e.journalsdata,i=(e.page,e.limit,e.search_count),c=e.isSpin,u=e.content,f=e.quillFlag,y=e.journal_spin,w=e.attachment_clean,k=e.is_reply,_=e.reply_id,C=e.reply_content,O=e.orderId,N=e.new_journal_id,P=this.props,S=P.current_user,j=P.only_show_content,T=this.props.match.params,R=T.projectsId,I=T.owner,D=function(e,n){return p.default.createElement("div",{className:"grid-item-top pb10"},p.default.createElement(d.Link,{to:"/"+(S&&S.login),className:"show-user-link mr10"},p.default.createElement("img",{className:"radius",src:(0,h.getImageUrl)("/"+(S&&S.image_url)),alt:"",width:"30",height:"30"})),p.default.createElement("div",{style:{position:"relative"}},p.default.createElement(v.default,{placeholder:"添加评论...",height:300,mdID:n?"orderdetail-add-descriptions"+n:"orderdetail-add-descriptions",initValue:e?C:u,onChange:e?t.replyContentChange:t.onContentChange,isCanAtme:!0,changeAtWhoLoginList:t.changeAtWhoLoginList,owner:I,projectsId:R}),p.default.createElement("p",{className:"quillFlag"},f&&p.default.createElement("span",null,"请输入评论内容")),p.default.createElement(m.default,{className:"commentStyle",isComplete:w,load:t.UploadFunc,icon:p.default.createElement("img",{src:b.default,width:"58",alt:"",style:{marginBottom:15}}),size:100,showNotification:t.props.showNotification}),p.default.createElement("p",{className:"clearfix mt20"},p.default.createElement(o.default,{type:"primary",onClick:t.addjournals,loading:y,className:"mr15"},"评论"),p.default.createElement(o.default,{onClick:t.cancel_reply},"取消"))))},L=function(e){return p.default.createElement("div",{className:"width100",key:e.id},p.default.createElement("div",{className:"pb5"},p.default.createElement(d.Link,{to:"/"+(e&&e.user_login),className:"show-user-link"},p.default.createElement("img",{className:"radius",src:(0,h.getImageUrl)("/"+(e&&e.user_picture)),alt:"",width:"30",height:"30"})),p.default.createElement(d.Link,{to:"/"+(e&&e.user_login),className:"show-user-link color-black ml10 fwb"},e&&e.user_name)),p.default.createElement("div",{className:"ml40"},e.content?t.commentCtx(e.content):p.default.createElement("div",null,t.renderJournalList(e.journal_details)),e&&e.attachments&&e.attachments.length>0?p.default.createElement(g.default,{attachments:e.attachments,showNotification:t.props.showNotification,canDelete:S&&(S.admin||S.login===e.user_login)}):"",p.default.createElement("div",{className:"grid-item mt5"},p.default.createElement("span",{className:"color-grey-8"},e.created_at),p.default.createElement("span",{className:"text-right"},S&&(S.admin||S.login===e.user_login)?p.default.createElement(r.default,{placement:"bottom",title:"确定要删除当前评论吗?",okText:"是",cancelText:"否",onConfirm:function(){return t.deleteorder(e.id)}},p.default.createElement(o.default,{type:"link"},p.default.createElement("i",{className:"iconfont icon-shanchu3 font-15 color-grey-6 mr5 ver-middle"}),p.default.createElement("span",{className:"font-12 color-grey-6"},"删除"))):"",p.default.createElement(o.default,{type:"link",className:"ml-10",onClick:function(){return t.add_reply(e.id)}},p.default.createElement("i",{className:"iconfont icon-huifu1 font-15 color-grey-6 mr5 ver-middle"}),p.default.createElement("span",{className:"font-12 color-grey-6"},"回复")))),S&&p.default.createElement("div",null,k&&_&&_===e.id?p.default.createElement("div",{className:"pt20"},D(k,e.id)):""),p.default.createElement(x.default,s({order_id:O,parent_id:e.id,onRef:t.onRef,children_comment_id:N,refreshCommentList:t.getjournalslist},t.props))))};return p.default.createElement("div",null,j?p.default.createElement("div",null,p.default.createElement("div",{className:"mb10"},k&&!_?p.default.createElement("div",{className:"pd20"},D(k,void 0)):p.default.createElement("div",{className:"children-comment-bg pd20 grid-item"},p.default.createElement("img",{className:"radius",src:S&&S.image_url?(0,h.getImageUrl)("/"+S.image_url):"images/avatars/User/b",alt:"",width:"30",height:"30"}),p.default.createElement("span",{className:"reply-comment-input mr20"},p.default.createElement(o.default,{className:"add_reply_button ml10",onClick:function(){return t.add_reply(void 0)}},p.default.createElement("span",null,"添加评论..."))))),n&&n.journals_total_count>0&&p.default.createElement(a.default,{size:"large",loading:c,header:"",dataSource:n.issue_journals,renderItem:function(t){return p.default.createElement(a.default.Item,{key:t.id},L(t))}}),this.Paginations()):p.default.createElement("div",{className:"mt20"},p.default.createElement("div",{className:"comment-background"},p.default.createElement(l.default,{defaultActiveKey:"1",className:"custom-comment-tabs"},p.default.createElement(E,{tab:p.default.createElement("span",{className:"ml-3 font-16"},"评论",i>0&&p.default.createElement("span",{className:"search-count-button"},i)),key:"1"},p.default.createElement("div",{className:"mb10"},k&&!_?p.default.createElement("div",{className:"pd20"},D(k,void 0)):p.default.createElement("div",{className:"children-comment-bg pd20 grid-item mb20"},p.default.createElement("img",{className:"radius",src:S&&S.image_url?(0,h.getImageUrl)("/"+S.image_url):"images/avatars/User/b",alt:"",width:"30",height:"30"}),p.default.createElement("span",{className:"reply-comment-input mr20"},p.default.createElement(o.default,{className:"add_reply_button ml10",onClick:function(){return t.add_reply(void 0)}},p.default.createElement("span",null,"添加评论..."))))),n&&n.journals_total_count>0&&p.default.createElement(a.default,{size:"large",loading:c,header:"",dataSource:n.issue_journals,renderItem:function(t){return p.default.createElement(a.default.Item,{key:t.id},L(t))}}))),this.Paginations())))}}]),e}(u.Component);e.default=k},dQpi:function(t,e,n){var a=n("yGk4"),r=n("vN+2"),o=n("rEGp"),i=a&&1/o(new a([,-0]))[1]==1/0?function(t){return new a(t)}:r;t.exports=i},fOrg:function(t,e,n){"use strict";n.r(e);n("cIOH"),n("YkAm")},"jbM+":function(t,e,n){var a=n("R/W3");t.exports=function(t,e){return!!(null==t?0:t.length)&&a(t,e,0)>-1}},js5m:function(t,e,n){},mr32:function(t,e,n){"use strict";n.r(e);var a=n("cDcd"),r=n("eHJ2"),o=n.n(r),i=n("BGR+"),l=n("VCL8"),s=n("CtXQ"),c=n("H84U");function u(t){return(u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function p(){return(p=Object.assign||function(t){for(var e=1;ea)return c.default.createElement("div",{className:"pt30 mb50 edu-txt-center btp1"},c.default.createElement(i.default,{simple:!0,defaultCurrent:e,total:r,pageSize:a,onChange:n.ChangePage}))},n.renderList=function(t){var e=n.props.current_user;return c.default.createElement("div",{className:"width100"},c.default.createElement("div",{className:"grid-item pb5"},c.default.createElement(u.Link,{to:"/"+(t&&t.user_login),className:"show-user-link"},c.default.createElement("img",{className:"radius",src:(0,d.getImageUrl)("/"+(t&&t.user_picture)),alt:"",width:"30",height:"30"})),c.default.createElement(u.Link,{to:"/"+(t&&t.user_login),className:"show-user-link color-black ml10 fwb"},t&&t.user_name)),c.default.createElement("div",{className:"ml40"},n.commentCtx(t.content),t&&t.attachments&&t.attachments.length>0?c.default.createElement(f.default,{attachments:t.attachments,showNotification:n.props.showNotification,canDelete:e&&(e.admin||e.login===t.user_login)}):"",c.default.createElement("div",{className:"mt5"},c.default.createElement("span",{className:"color-grey-8"},t.created_at),c.default.createElement("span",{className:"ml20"},e&&(e.admin||e.login===t.user_login)?c.default.createElement(r.default,{placement:"bottom",title:"确定要删除当前评论吗?",okText:"是",cancelText:"否",onConfirm:function(){return n.deleteorder(t.id)}},c.default.createElement(o.default,{type:"link"},c.default.createElement("i",{className:"iconfont icon-shanchu3 font-15 color-grey-6 mr5 ver-middle"}),c.default.createElement("span",{className:"font-12 color-grey-6"},"删除"))):""))))},n.state={journalsdata:void 0,limit:10,page:1,journal_spin:!1,search_count:0,isSpin:!1},n}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(e,t),l(e,[{key:"componentDidMount",value:function(){this.getChildrenJournals()}},{key:"componentDidUpdate",value:function(t,e){this.props.children_comment_id&&t.children_comment_id!==this.props.children_comment_id&&this.getChildrenJournals()}},{key:"render",value:function(){var t=this,e=this.state,n=e.journalsdata,r=e.search_count,o=e.isSpin;return c.default.createElement("div",null,r>0&&c.default.createElement("div",{className:"children-comment-bg mt10"},c.default.createElement(a.default,{size:"large",loading:o,dataSource:n.issue_journals,renderItem:function(e){return c.default.createElement(a.default.Item,{key:e.id},t.renderList(e))}}),this.Paginations()))}}]),e}(s.Component);e.default=h},qPyV:function(t,e,n){var a=n("ut/Y"),r=n("LGYb");t.exports=function(t,e){return t&&t.length?r(t,a(e,2)):[]}},tS53:function(t,e,n){(e=n("JPst")(!1)).push([t.i,"/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-nav-container {\n height: 40px;\n}\n.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-ink-bar {\n visibility: hidden;\n}\n.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab {\n height: 40px;\n margin: 0;\n margin-right: 2px;\n padding: 0 16px;\n line-height: 38px;\n background: #fafafa;\n border: 1px solid #e8e8e8;\n border-radius: 4px 4px 0 0;\n transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\n}\n.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab-active {\n height: 40px;\n color: #466aff;\n background: #fff;\n border-color: #e8e8e8;\n border-bottom: 1px solid #fff;\n}\n.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab-active::before {\n border-top: 2px solid transparent;\n}\n.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab-disabled {\n color: #466aff;\n color: rgba(0, 0, 0, 0.25);\n}\n.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab-inactive {\n padding: 0;\n}\n.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-nav-wrap {\n margin-bottom: 0;\n}\n.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab .ant-tabs-close-x {\n width: 16px;\n height: 16px;\n height: 14px;\n margin-right: -5px;\n margin-left: 3px;\n overflow: hidden;\n color: rgba(0, 0, 0, 0.45);\n font-size: 12px;\n vertical-align: middle;\n transition: all 0.3s;\n}\n.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab .ant-tabs-close-x:hover {\n color: rgba(0, 0, 0, 0.85);\n}\n.ant-tabs.ant-tabs-card .ant-tabs-card-content > .ant-tabs-tabpane,\n.ant-tabs.ant-tabs-editable-card .ant-tabs-card-content > .ant-tabs-tabpane {\n transition: none !important;\n}\n.ant-tabs.ant-tabs-card .ant-tabs-card-content > .ant-tabs-tabpane-inactive,\n.ant-tabs.ant-tabs-editable-card .ant-tabs-card-content > .ant-tabs-tabpane-inactive {\n overflow: hidden;\n}\n.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab:hover .anticon-close {\n opacity: 1;\n}\n.ant-tabs-extra-content {\n line-height: 45px;\n}\n.ant-tabs-extra-content .ant-tabs-new-tab {\n position: relative;\n width: 20px;\n height: 20px;\n color: rgba(0, 0, 0, 0.65);\n font-size: 12px;\n line-height: 20px;\n text-align: center;\n border: 1px solid #e8e8e8;\n border-radius: 2px;\n cursor: pointer;\n transition: all 0.3s;\n}\n.ant-tabs-extra-content .ant-tabs-new-tab:hover {\n color: #466aff;\n border-color: #466aff;\n}\n.ant-tabs-extra-content .ant-tabs-new-tab svg {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n margin: auto;\n}\n.ant-tabs.ant-tabs-large .ant-tabs-extra-content {\n line-height: 56px;\n}\n.ant-tabs.ant-tabs-small .ant-tabs-extra-content {\n line-height: 37px;\n}\n.ant-tabs.ant-tabs-card .ant-tabs-extra-content {\n line-height: 40px;\n}\n.ant-tabs-vertical.ant-tabs-card .ant-tabs-card-bar.ant-tabs-left-bar .ant-tabs-nav-container,\n.ant-tabs-vertical.ant-tabs-card .ant-tabs-card-bar.ant-tabs-right-bar .ant-tabs-nav-container {\n height: 100%;\n}\n.ant-tabs-vertical.ant-tabs-card .ant-tabs-card-bar.ant-tabs-left-bar .ant-tabs-tab,\n.ant-tabs-vertical.ant-tabs-card .ant-tabs-card-bar.ant-tabs-right-bar .ant-tabs-tab {\n margin-bottom: 8px;\n border-bottom: 1px solid #e8e8e8;\n}\n.ant-tabs-vertical.ant-tabs-card .ant-tabs-card-bar.ant-tabs-left-bar .ant-tabs-tab-active,\n.ant-tabs-vertical.ant-tabs-card .ant-tabs-card-bar.ant-tabs-right-bar .ant-tabs-tab-active {\n padding-bottom: 4px;\n}\n.ant-tabs-vertical.ant-tabs-card .ant-tabs-card-bar.ant-tabs-left-bar .ant-tabs-tab:last-child,\n.ant-tabs-vertical.ant-tabs-card .ant-tabs-card-bar.ant-tabs-right-bar .ant-tabs-tab:last-child {\n margin-bottom: 8px;\n}\n.ant-tabs-vertical.ant-tabs-card .ant-tabs-card-bar.ant-tabs-left-bar .ant-tabs-new-tab,\n.ant-tabs-vertical.ant-tabs-card .ant-tabs-card-bar.ant-tabs-right-bar .ant-tabs-new-tab {\n width: 90%;\n}\n.ant-tabs-vertical.ant-tabs-card.ant-tabs-left .ant-tabs-card-bar.ant-tabs-left-bar .ant-tabs-nav-wrap {\n margin-right: 0;\n}\n.ant-tabs-vertical.ant-tabs-card.ant-tabs-left .ant-tabs-card-bar.ant-tabs-left-bar .ant-tabs-tab {\n margin-right: 1px;\n border-right: 0;\n border-radius: 4px 0 0 4px;\n}\n.ant-tabs-vertical.ant-tabs-card.ant-tabs-left .ant-tabs-card-bar.ant-tabs-left-bar .ant-tabs-tab-active {\n margin-right: -1px;\n padding-right: 18px;\n}\n.ant-tabs-vertical.ant-tabs-card.ant-tabs-right .ant-tabs-card-bar.ant-tabs-right-bar .ant-tabs-nav-wrap {\n margin-left: 0;\n}\n.ant-tabs-vertical.ant-tabs-card.ant-tabs-right .ant-tabs-card-bar.ant-tabs-right-bar .ant-tabs-tab {\n margin-left: 1px;\n border-left: 0;\n border-radius: 0 4px 4px 0;\n}\n.ant-tabs-vertical.ant-tabs-card.ant-tabs-right .ant-tabs-card-bar.ant-tabs-right-bar .ant-tabs-tab-active {\n margin-left: -1px;\n padding-left: 18px;\n}\n.ant-tabs .ant-tabs-card-bar.ant-tabs-bottom-bar .ant-tabs-tab {\n height: auto;\n border-top: 0;\n border-bottom: 1px solid #e8e8e8;\n border-radius: 0 0 4px 4px;\n}\n.ant-tabs .ant-tabs-card-bar.ant-tabs-bottom-bar .ant-tabs-tab-active {\n padding-top: 1px;\n padding-bottom: 0;\n color: #466aff;\n}\n.ant-tabs {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.65);\n font-size: 14px;\n font-variant: tabular-nums;\n line-height: 1.5;\n list-style: none;\n font-feature-settings: 'tnum';\n position: relative;\n overflow: hidden;\n zoom: 1;\n}\n.ant-tabs::before,\n.ant-tabs::after {\n display: table;\n content: '';\n}\n.ant-tabs::after {\n clear: both;\n}\n.ant-tabs-ink-bar {\n position: absolute;\n bottom: 1px;\n left: 0;\n z-index: 1;\n box-sizing: border-box;\n width: 0;\n height: 2px;\n background-color: #466aff;\n transform-origin: 0 0;\n}\n.ant-tabs-bar {\n margin: 0 0 16px 0;\n border-bottom: 1px solid #e8e8e8;\n outline: none;\n transition: padding 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\n}\n.ant-tabs-nav-container {\n position: relative;\n box-sizing: border-box;\n margin-bottom: -1px;\n overflow: hidden;\n font-size: 14px;\n line-height: 1.5;\n white-space: nowrap;\n transition: padding 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\n zoom: 1;\n}\n.ant-tabs-nav-container::before,\n.ant-tabs-nav-container::after {\n display: table;\n content: '';\n}\n.ant-tabs-nav-container::after {\n clear: both;\n}\n.ant-tabs-nav-container-scrolling {\n padding-right: 32px;\n padding-left: 32px;\n}\n.ant-tabs-bottom .ant-tabs-bottom-bar {\n margin-top: 16px;\n margin-bottom: 0;\n border-top: 1px solid #e8e8e8;\n border-bottom: none;\n}\n.ant-tabs-bottom .ant-tabs-bottom-bar .ant-tabs-ink-bar {\n top: 1px;\n bottom: auto;\n}\n.ant-tabs-bottom .ant-tabs-bottom-bar .ant-tabs-nav-container {\n margin-top: -1px;\n margin-bottom: 0;\n}\n.ant-tabs-tab-prev,\n.ant-tabs-tab-next {\n position: absolute;\n z-index: 2;\n width: 0;\n height: 100%;\n color: rgba(0, 0, 0, 0.45);\n text-align: center;\n background-color: transparent;\n border: 0;\n cursor: pointer;\n opacity: 0;\n transition: width 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), opacity 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), color 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\n user-select: none;\n pointer-events: none;\n}\n.ant-tabs-tab-prev.ant-tabs-tab-arrow-show,\n.ant-tabs-tab-next.ant-tabs-tab-arrow-show {\n width: 32px;\n height: 100%;\n opacity: 1;\n pointer-events: auto;\n}\n.ant-tabs-tab-prev:hover,\n.ant-tabs-tab-next:hover {\n color: rgba(0, 0, 0, 0.65);\n}\n.ant-tabs-tab-prev-icon,\n.ant-tabs-tab-next-icon {\n position: absolute;\n top: 50%;\n left: 50%;\n font-weight: bold;\n font-style: normal;\n font-variant: normal;\n line-height: inherit;\n text-align: center;\n text-transform: none;\n transform: translate(-50%, -50%);\n}\n.ant-tabs-tab-prev-icon-target,\n.ant-tabs-tab-next-icon-target {\n display: block;\n display: inline-block;\n font-size: 12px;\n font-size: 10px \\9;\n transform: scale(0.83333333) rotate(0deg);\n}\n:root .ant-tabs-tab-prev-icon-target,\n:root .ant-tabs-tab-next-icon-target {\n font-size: 12px;\n}\n.ant-tabs-tab-btn-disabled {\n cursor: not-allowed;\n}\n.ant-tabs-tab-btn-disabled,\n.ant-tabs-tab-btn-disabled:hover {\n color: rgba(0, 0, 0, 0.25);\n}\n.ant-tabs-tab-next {\n right: 2px;\n}\n.ant-tabs-tab-prev {\n left: 0;\n}\n:root .ant-tabs-tab-prev {\n filter: none;\n}\n.ant-tabs-nav-wrap {\n margin-bottom: -1px;\n overflow: hidden;\n}\n.ant-tabs-nav-scroll {\n overflow: hidden;\n white-space: nowrap;\n}\n.ant-tabs-nav {\n position: relative;\n display: inline-block;\n box-sizing: border-box;\n margin: 0;\n padding-left: 0;\n list-style: none;\n transition: transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\n}\n.ant-tabs-nav::before,\n.ant-tabs-nav::after {\n display: table;\n content: ' ';\n}\n.ant-tabs-nav::after {\n clear: both;\n}\n.ant-tabs-nav .ant-tabs-tab {\n position: relative;\n display: inline-block;\n box-sizing: border-box;\n height: 100%;\n margin: 0 32px 0 0;\n padding: 12px 16px;\n text-decoration: none;\n cursor: pointer;\n transition: color 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\n}\n.ant-tabs-nav .ant-tabs-tab::before {\n position: absolute;\n top: -1px;\n left: 0;\n width: 100%;\n border-top: 2px solid transparent;\n border-radius: 4px 4px 0 0;\n transition: all 0.3s;\n content: '';\n pointer-events: none;\n}\n.ant-tabs-nav .ant-tabs-tab:last-child {\n margin-right: 0;\n}\n.ant-tabs-nav .ant-tabs-tab:hover {\n color: #6e90ff;\n}\n.ant-tabs-nav .ant-tabs-tab:active {\n color: #304cd9;\n}\n.ant-tabs-nav .ant-tabs-tab .anticon {\n margin-right: 8px;\n}\n.ant-tabs-nav .ant-tabs-tab-active {\n color: #466aff;\n font-weight: 500;\n}\n.ant-tabs-nav .ant-tabs-tab-disabled,\n.ant-tabs-nav .ant-tabs-tab-disabled:hover {\n color: rgba(0, 0, 0, 0.25);\n cursor: not-allowed;\n}\n.ant-tabs .ant-tabs-large-bar .ant-tabs-nav-container {\n font-size: 16px;\n}\n.ant-tabs .ant-tabs-large-bar .ant-tabs-tab {\n padding: 16px;\n}\n.ant-tabs .ant-tabs-small-bar .ant-tabs-nav-container {\n font-size: 14px;\n}\n.ant-tabs .ant-tabs-small-bar .ant-tabs-tab {\n padding: 8px 16px;\n}\n.ant-tabs-content::before {\n display: block;\n overflow: hidden;\n content: '';\n}\n.ant-tabs .ant-tabs-top-content,\n.ant-tabs .ant-tabs-bottom-content {\n width: 100%;\n}\n.ant-tabs .ant-tabs-top-content > .ant-tabs-tabpane,\n.ant-tabs .ant-tabs-bottom-content > .ant-tabs-tabpane {\n flex-shrink: 0;\n width: 100%;\n -webkit-backface-visibility: hidden;\n opacity: 1;\n transition: opacity 0.45s;\n}\n.ant-tabs .ant-tabs-top-content > .ant-tabs-tabpane-inactive,\n.ant-tabs .ant-tabs-bottom-content > .ant-tabs-tabpane-inactive {\n height: 0;\n padding: 0 !important;\n overflow: hidden;\n opacity: 0;\n pointer-events: none;\n}\n.ant-tabs .ant-tabs-top-content > .ant-tabs-tabpane-inactive input,\n.ant-tabs .ant-tabs-bottom-content > .ant-tabs-tabpane-inactive input {\n visibility: hidden;\n}\n.ant-tabs .ant-tabs-top-content.ant-tabs-content-animated,\n.ant-tabs .ant-tabs-bottom-content.ant-tabs-content-animated {\n display: flex;\n flex-direction: row;\n transition: margin-left 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\n will-change: margin-left;\n}\n.ant-tabs .ant-tabs-left-bar,\n.ant-tabs .ant-tabs-right-bar {\n height: 100%;\n border-bottom: 0;\n}\n.ant-tabs .ant-tabs-left-bar .ant-tabs-tab-arrow-show,\n.ant-tabs .ant-tabs-right-bar .ant-tabs-tab-arrow-show {\n width: 100%;\n height: 32px;\n}\n.ant-tabs .ant-tabs-left-bar .ant-tabs-tab,\n.ant-tabs .ant-tabs-right-bar .ant-tabs-tab {\n display: block;\n float: none;\n margin: 0 0 16px 0;\n padding: 8px 24px;\n}\n.ant-tabs .ant-tabs-left-bar .ant-tabs-tab:last-child,\n.ant-tabs .ant-tabs-right-bar .ant-tabs-tab:last-child {\n margin-bottom: 0;\n}\n.ant-tabs .ant-tabs-left-bar .ant-tabs-extra-content,\n.ant-tabs .ant-tabs-right-bar .ant-tabs-extra-content {\n text-align: center;\n}\n.ant-tabs .ant-tabs-left-bar .ant-tabs-nav-scroll,\n.ant-tabs .ant-tabs-right-bar .ant-tabs-nav-scroll {\n width: auto;\n}\n.ant-tabs .ant-tabs-left-bar .ant-tabs-nav-container,\n.ant-tabs .ant-tabs-right-bar .ant-tabs-nav-container,\n.ant-tabs .ant-tabs-left-bar .ant-tabs-nav-wrap,\n.ant-tabs .ant-tabs-right-bar .ant-tabs-nav-wrap {\n height: 100%;\n}\n.ant-tabs .ant-tabs-left-bar .ant-tabs-nav-container,\n.ant-tabs .ant-tabs-right-bar .ant-tabs-nav-container {\n margin-bottom: 0;\n}\n.ant-tabs .ant-tabs-left-bar .ant-tabs-nav-container.ant-tabs-nav-container-scrolling,\n.ant-tabs .ant-tabs-right-bar .ant-tabs-nav-container.ant-tabs-nav-container-scrolling {\n padding: 32px 0;\n}\n.ant-tabs .ant-tabs-left-bar .ant-tabs-nav-wrap,\n.ant-tabs .ant-tabs-right-bar .ant-tabs-nav-wrap {\n margin-bottom: 0;\n}\n.ant-tabs .ant-tabs-left-bar .ant-tabs-nav,\n.ant-tabs .ant-tabs-right-bar .ant-tabs-nav {\n width: 100%;\n}\n.ant-tabs .ant-tabs-left-bar .ant-tabs-ink-bar,\n.ant-tabs .ant-tabs-right-bar .ant-tabs-ink-bar {\n top: 0;\n bottom: auto;\n left: auto;\n width: 2px;\n height: 0;\n}\n.ant-tabs .ant-tabs-left-bar .ant-tabs-tab-next,\n.ant-tabs .ant-tabs-right-bar .ant-tabs-tab-next {\n right: 0;\n bottom: 0;\n width: 100%;\n height: 32px;\n}\n.ant-tabs .ant-tabs-left-bar .ant-tabs-tab-prev,\n.ant-tabs .ant-tabs-right-bar .ant-tabs-tab-prev {\n top: 0;\n width: 100%;\n height: 32px;\n}\n.ant-tabs .ant-tabs-left-content,\n.ant-tabs .ant-tabs-right-content {\n width: auto;\n margin-top: 0 !important;\n overflow: hidden;\n}\n.ant-tabs .ant-tabs-left-bar {\n float: left;\n margin-right: -1px;\n margin-bottom: 0;\n border-right: 1px solid #e8e8e8;\n}\n.ant-tabs .ant-tabs-left-bar .ant-tabs-tab {\n text-align: right;\n}\n.ant-tabs .ant-tabs-left-bar .ant-tabs-nav-container {\n margin-right: -1px;\n}\n.ant-tabs .ant-tabs-left-bar .ant-tabs-nav-wrap {\n margin-right: -1px;\n}\n.ant-tabs .ant-tabs-left-bar .ant-tabs-ink-bar {\n right: 1px;\n}\n.ant-tabs .ant-tabs-left-content {\n padding-left: 24px;\n border-left: 1px solid #e8e8e8;\n}\n.ant-tabs .ant-tabs-right-bar {\n float: right;\n margin-bottom: 0;\n margin-left: -1px;\n border-left: 1px solid #e8e8e8;\n}\n.ant-tabs .ant-tabs-right-bar .ant-tabs-nav-container {\n margin-left: -1px;\n}\n.ant-tabs .ant-tabs-right-bar .ant-tabs-nav-wrap {\n margin-left: -1px;\n}\n.ant-tabs .ant-tabs-right-bar .ant-tabs-ink-bar {\n left: 1px;\n}\n.ant-tabs .ant-tabs-right-content {\n padding-right: 24px;\n border-right: 1px solid #e8e8e8;\n}\n.ant-tabs-top .ant-tabs-ink-bar-animated,\n.ant-tabs-bottom .ant-tabs-ink-bar-animated {\n transition: transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), width 0.2s cubic-bezier(0.645, 0.045, 0.355, 1), left 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\n}\n.ant-tabs-left .ant-tabs-ink-bar-animated,\n.ant-tabs-right .ant-tabs-ink-bar-animated {\n transition: transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), height 0.2s cubic-bezier(0.645, 0.045, 0.355, 1), top 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);\n}\n.no-flex > .ant-tabs-content > .ant-tabs-content-animated,\n.ant-tabs-no-animation > .ant-tabs-content > .ant-tabs-content-animated {\n margin-left: 0 !important;\n transform: none !important;\n}\n.no-flex > .ant-tabs-content > .ant-tabs-tabpane-inactive,\n.ant-tabs-no-animation > .ant-tabs-content > .ant-tabs-tabpane-inactive {\n height: 0;\n padding: 0 !important;\n overflow: hidden;\n opacity: 0;\n pointer-events: none;\n}\n.no-flex > .ant-tabs-content > .ant-tabs-tabpane-inactive input,\n.ant-tabs-no-animation > .ant-tabs-content > .ant-tabs-tabpane-inactive input {\n visibility: hidden;\n}\n.ant-tabs-left-content > .ant-tabs-content-animated,\n.ant-tabs-right-content > .ant-tabs-content-animated {\n margin-left: 0 !important;\n transform: none !important;\n}\n.ant-tabs-left-content > .ant-tabs-tabpane-inactive,\n.ant-tabs-right-content > .ant-tabs-tabpane-inactive {\n height: 0;\n padding: 0 !important;\n overflow: hidden;\n opacity: 0;\n pointer-events: none;\n}\n.ant-tabs-left-content > .ant-tabs-tabpane-inactive input,\n.ant-tabs-right-content > .ant-tabs-tabpane-inactive input {\n visibility: hidden;\n}\n",""]),t.exports=e},"vN+2":function(t,e){t.exports=function(){}}}]); \ No newline at end of file diff --git a/static/js/43.c8e97a11.chunk.js b/static/js/43.c8e97a11.chunk.js deleted file mode 100644 index c2bd16f1b..000000000 --- a/static/js/43.c8e97a11.chunk.js +++ /dev/null @@ -1 +0,0 @@ -(this.webpackJsonp=this.webpackJsonp||[]).push([[43,27],{"/oTB":function(e,t,n){},"1xfW":function(e,t,n){"use strict";e.exports={extension:{publisher:"alex-ext-public",name:"markdown-language-features-worker",version:"1.53.0-patch.1"},packageJSON:{name:"markdown-language-features-worker",publisher:"alex",version:"1.53.0-patch.1",displayName:"%displayName%",description:"%description%",icon:"icon.png",activationEvents:["onLanguage:markdown","onCommand:markdown.preview.toggleLock","onCommand:markdown.preview.refresh","onCommand:markdown.showPreview","onCommand:markdown.showPreviewToSide","onCommand:markdown.showLockedPreviewToSide","onCommand:markdown.showSource","onCommand:markdown.showPreviewSecuritySelector","onCommand:markdown.api.render","onWebviewPanel:markdown.preview","onCustomEditor:vscode.markdown.preview.editor"],kaitianContributes:{workerMain:"./dist/browser/extension.js"},contributes:{commands:[{command:"markdown.showPreview",title:"%markdown.preview.title%",category:"Markdown",icon:{light:"./media/preview-light.svg",dark:"./media/preview-dark.svg"}},{command:"markdown.showPreviewToSide",title:"%markdown.previewSide.title%",category:"Markdown",icon:"$(open-preview)"},{command:"markdown.showLockedPreviewToSide",title:"%markdown.showLockedPreviewToSide.title%",category:"Markdown",icon:"$(open-preview)"},{command:"markdown.showSource",title:"%markdown.showSource.title%",category:"Markdown",icon:"$(go-to-file)"},{command:"markdown.showPreviewSecuritySelector",title:"%markdown.showPreviewSecuritySelector.title%",category:"Markdown"},{command:"markdown.preview.refresh",title:"%markdown.preview.refresh.title%",category:"Markdown"},{command:"markdown.preview.toggleLock",title:"%markdown.preview.toggleLock.title%",category:"Markdown"}],menus:{"editor/title":[{command:"markdown.showPreviewToSide",when:"editorLangId == markdown && !notebookEditorFocused",alt:"markdown.showPreview",group:"navigation"},{command:"markdown.showSource",when:"markdownPreviewFocus",group:"navigation"},{command:"markdown.preview.refresh",when:"markdownPreviewFocus",group:"1_markdown"},{command:"markdown.preview.toggleLock",when:"markdownPreviewFocus",group:"1_markdown"},{command:"markdown.showPreviewSecuritySelector",when:"markdownPreviewFocus",group:"1_markdown"}],"explorer/context":[{command:"markdown.showPreview",when:"resourceLangId == markdown",group:"navigation"}],"editor/title/context":[{command:"markdown.showPreview",when:"resourceLangId == markdown",group:"1_open"}],commandPalette:[{command:"markdown.showPreview",when:"editorLangId == markdown && !notebookEditorFocused",group:"navigation"},{command:"markdown.showPreviewToSide",when:"editorLangId == markdown && !notebookEditorFocused",group:"navigation"},{command:"markdown.showLockedPreviewToSide",when:"editorLangId == markdown && !notebookEditorFocused",group:"navigation"},{command:"markdown.showSource",when:"markdownPreviewFocus",group:"navigation"},{command:"markdown.showPreviewSecuritySelector",when:"editorLangId == markdown && !notebookEditorFocused"},{command:"markdown.showPreviewSecuritySelector",when:"markdownPreviewFocus"},{command:"markdown.preview.toggleLock",when:"markdownPreviewFocus"},{command:"markdown.preview.refresh",when:"editorLangId == markdown && !notebookEditorFocused"},{command:"markdown.preview.refresh",when:"markdownPreviewFocus"}]},keybindings:[{command:"markdown.showPreview",key:"shift+ctrl+v",mac:"shift+cmd+v",when:"editorLangId == markdown && !notebookEditorFocused"},{command:"markdown.showPreviewToSide",key:"ctrl+k v",mac:"cmd+k v",when:"editorLangId == markdown && !notebookEditorFocused"}],configuration:{type:"object",title:"Markdown",order:20,properties:{"markdown.styles":{type:"array",items:{type:"string"},default:[],description:"%markdown.styles.dec%",scope:"resource"},"markdown.preview.breaks":{type:"boolean",default:!1,description:"%markdown.preview.breaks.desc%",scope:"resource"},"markdown.preview.linkify":{type:"boolean",default:!0,description:"%markdown.preview.linkify%",scope:"resource"},"markdown.preview.fontFamily":{type:"string",default:"-apple-system, BlinkMacSystemFont, 'Segoe WPC', 'Segoe UI', system-ui, 'Ubuntu', 'Droid Sans', sans-serif",description:"%markdown.preview.fontFamily.desc%",scope:"resource"},"markdown.preview.fontSize":{type:"number",default:14,description:"%markdown.preview.fontSize.desc%",scope:"resource"},"markdown.preview.lineHeight":{type:"number",default:1.6,description:"%markdown.preview.lineHeight.desc%",scope:"resource"},"markdown.preview.scrollPreviewWithEditor":{type:"boolean",default:!0,description:"%markdown.preview.scrollPreviewWithEditor.desc%",scope:"resource"},"markdown.preview.markEditorSelection":{type:"boolean",default:!0,description:"%markdown.preview.markEditorSelection.desc%",scope:"resource"},"markdown.preview.scrollEditorWithPreview":{type:"boolean",default:!0,description:"%markdown.preview.scrollEditorWithPreview.desc%",scope:"resource"},"markdown.preview.doubleClickToSwitchToEditor":{type:"boolean",default:!0,description:"%markdown.preview.doubleClickToSwitchToEditor.desc%",scope:"resource"},"markdown.preview.openMarkdownLinks":{type:"string",default:"inPreview",description:"%configuration.markdown.preview.openMarkdownLinks.description%",scope:"resource",enum:["inPreview","inEditor"],enumDescriptions:["%configuration.markdown.preview.openMarkdownLinks.inPreview%","%configuration.markdown.preview.openMarkdownLinks.inEditor%"]},"markdown.links.openLocation":{type:"string",default:"currentGroup",description:"%configuration.markdown.links.openLocation.description%",scope:"resource",enum:["currentGroup","beside"],enumDescriptions:["%configuration.markdown.links.openLocation.currentGroup%","%configuration.markdown.links.openLocation.beside%"]},"markdown.trace":{type:"string",enum:["off","verbose"],default:"off",description:"%markdown.trace.desc%",scope:"window"}}},configurationDefaults:{"[markdown]":{"editor.wordWrap":"on","editor.quickSuggestions":!1}},jsonValidation:[{fileMatch:"package.json",url:"./schemas/package.schema.json"}],"markdown.previewStyles":["./media/markdown.css","./media/highlight.css"],"markdown.previewScripts":["./media/index.js"],workerMain:"./dist/browser/extension.js"},browser:"./dist/browser/extension"},defaultPkgNlsJSON:{displayName:"Markdown Language Features",description:"Provides rich language support for Markdown.","markdown.preview.breaks.desc":"Sets how line-breaks are rendered in the markdown preview. Setting it to 'true' creates a
for newlines inside paragraphs.","markdown.preview.linkify":"Enable or disable conversion of URL-like text to links in the markdown preview.","markdown.preview.doubleClickToSwitchToEditor.desc":"Double click in the markdown preview to switch to the editor.","markdown.preview.fontFamily.desc":"Controls the font family used in the markdown preview.","markdown.preview.fontSize.desc":"Controls the font size in pixels used in the markdown preview.","markdown.preview.lineHeight.desc":"Controls the line height used in the markdown preview. This number is relative to the font size.","markdown.preview.markEditorSelection.desc":"Mark the current editor selection in the markdown preview.","markdown.preview.scrollEditorWithPreview.desc":"When a markdown preview is scrolled, update the view of the editor.","markdown.preview.scrollPreviewWithEditor.desc":"When a markdown editor is scrolled, update the view of the preview.","markdown.preview.title":"Open Preview","markdown.previewSide.title":"Open Preview to the Side","markdown.showLockedPreviewToSide.title":"Open Locked Preview to the Side","markdown.showSource.title":"Show Source","markdown.styles.dec":"A list of URLs or local paths to CSS style sheets to use from the markdown preview. Relative paths are interpreted relative to the folder open in the explorer. If there is no open folder, they are interpreted relative to the location of the markdown file. All '\\' need to be written as '\\\\'.","markdown.showPreviewSecuritySelector.title":"Change Preview Security Settings","markdown.trace.desc":"Enable debug logging for the markdown extension.","markdown.preview.refresh.title":"Refresh Preview","markdown.preview.toggleLock.title":"Toggle Preview Locking","configuration.markdown.preview.openMarkdownLinks.description":"Controls how links to other markdown files in the markdown preview should be opened.","configuration.markdown.preview.openMarkdownLinks.inEditor":"Try to open links in the editor","configuration.markdown.preview.openMarkdownLinks.inPreview":"Try to open links in the markdown preview","configuration.markdown.links.openLocation.description":"Controls where links in markdown files should be opened.","configuration.markdown.links.openLocation.currentGroup":"Open links in the active editor group.","configuration.markdown.links.openLocation.beside":"Open links beside the active editor."},pkgNlsJSON:{},nlsList:[],extendConfig:{},webAssets:["package.json","media/highlight.css","media/index.js","media/markdown.css","media/pre.js","media/preview-dark.svg","media/preview-light.svg","README.md","icon.png","schemas/package.schema.json","dist/browser/extension.js"],mode:"public"}},"3Diz":function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=c(n("jsC+")),a=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],r=!0,a=!1,i=void 0;try{for(var s,o=e[Symbol.iterator]();!(r=(s=o.next()).done)&&(n.push(s.value),!t||n.length!==t);r=!0);}catch(e){a=!0,i=e}finally{try{!r&&o.return&&o.return()}finally{if(a)throw i}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")};n("qVdP");var i=n("cDcd"),s=c(i);n("MN5C");var o=c(n("cJAJ")),l=n("faye"),d=n("sYIF");function c(e){return e&&e.__esModule?e:{default:e}}t.default=function(e){var t=e.projectsId,n=e.branch,c=e.owner,u=e.changeBranch,m=e.branchList,p=e.tagflag,f=void 0===p||p,_=(0,i.useState)(n),g=a(_,2),h=g[0],w=g[1],b=(0,i.useState)(!1),y=a(b,2),v=y[0],k=y[1],x=(0,i.useRef)(null),T=(0,i.useRef)(null);(0,i.useEffect)((function(){document.addEventListener("click",E,!1)}),[]);var E=function(e){var t=e.target,n=(0,l.findDOMNode)(x.current),r=(0,l.findDOMNode)(T.current);if(n&&r){var a=n.contains(t),i=r.contains(t);a||i||k(!1)}};(0,i.useEffect)((function(){w(n)}),[n]);var j=s.default.createElement("div",{ref:x},s.default.createElement(o.default,{visible:v,changeBranch:function(e){k(!1);var t=(0,d.turnbar)(e);u(t)},tagflag:f,projectsId:t,owner:c,branchList:m}));return s.default.createElement(r.default,{placement:"bottomLeft",visible:v,overlay:j,overlayClassName:"branch-tagBox-list",trigger:["click"]},s.default.createElement("div",{className:"branch-tagBox",ref:T,onClick:function(){return k(!v)}},s.default.createElement("span",{className:"color-grey-9 mr3 ml8"},s.default.createElement("i",{className:"iconfont icon-fenzhi2 font-18"})),s.default.createElement("span",{className:"ant-dropdown-link task-hide",style:{fontWeight:"500",minWidth:"45px",maxWidth:"270px"}},h),s.default.createElement("i",{className:"showtag iconfont icon-sanjiaoxing-down font-15 color-grey-9 mr5 ml5 mt1"})))}},"760K":function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r,a=n("cDcd"),i=(r=a)&&r.__esModule?r:{default:r},s=n("sYIF");t.default=function(e){var t=e.treeValuePath,n=e.returnUlr,r=e.returnMain,a=e.getPathUrl,o=e.identifier;return i.default.createElement("li",{className:"listtablepath"},i.default.createElement("p",null,i.default.createElement("a",{onClick:r,className:"color-blue"},o),t.map((function(e,r){return i.default.createElement(i.default.Fragment,{key:r},r===t.length-1?i.default.createElement("span",{className:"color-grey-6 subFileName",key:r},(0,s.returnbar)(e)):i.default.createElement("a",{onClick:function(){return n(""+a(t,r+1))},className:"color-blue subFileName"},(0,s.returnbar)(e)))}))))}},BTkp:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){for(var n=0;n-1)return void n(u.default.createElement("span",null,"分支名不能包含下列任何字符:^*\\/"))}}n()},n.state={submitType:"0",filename:"",isSpin:!1},n}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),d(t,[{key:"render",value:function(){var e=this,t=this.state,n=t.submitType,d=t.filename,c=t.isSpin,f=this.props.form.getFieldDecorator,_=this.props.match.params,h=_.branch,w=_.projectsId,b=_.owner,y=this.props,v=y.current_user,k=y.filepath,x=y.projectDetail,T=y.currentBranch,E=this.props.editor_type,j=T||h;return u.default.createElement("div",null,u.default.createElement("span",{className:"df",style:{alignItems:"center"}},u.default.createElement(p.Link,{to:"/"+(v&&v.login),className:"show-user-link"},u.default.createElement("img",{src:(0,m.getImageUrl)("/"+(v&&v.image_url)),alt:"",className:"screwImg"}),u.default.createElement("span",{className:"color-grey-3 ver-middle"},v&&v.username,":")),u.default.createElement("span",{className:"color-grey-8"},"提交变更")),u.default.createElement(r.default,{spinning:c},u.default.createElement("div",{className:"userScrew"},u.default.createElement("div",{className:"screwPanel"},u.default.createElement(o.default,null,u.default.createElement(o.default.Item,{style:{display:"upload"===E?"block":"none"}},f("path",{rules:[]})(u.default.createElement("div",{className:"setInputAddon"},u.default.createElement(l.default,{addonBefore:"/"+(x&&x.identifier)+"/",value:d||k,onChange:this.changeFileName,placeholder:"文件路径..."})))),u.default.createElement(o.default.Item,null,f("desc",{rules:[{required:!0,message:"请添加描述信息"}]})(u.default.createElement(g,{placeholder:"必填,描述主要修改类型和内容",authSize:{minRows:3,maxRows:5}}))),u.default.createElement(s.default.Group,{value:n,onChange:this.changeSubmittype},u.default.createElement(s.default,{value:"0",className:"mb10"},u.default.createElement("i",{className:"iconfont icon-banbenku font-16 mr5"}),"直接提交至",u.default.createElement("span",{className:"color-orange"},(0,m.returnbar)(j)),"分支"),u.default.createElement(s.default,{value:"1"},u.default.createElement(i.default,{type:"pull-request",className:"mr5"}),"为此提交创建一个",u.default.createElement("span",{className:"font-bd"},"新的分支"),"并发起合并请求")),"1"===n?u.default.createElement("div",{className:"mt15"},u.default.createElement(o.default.Item,{style:{paddingLeft:"24px"}},f("branchname",{rules:[{required:!0,message:"请输入分支名称"},{validator:this.checkBranchName}]})(u.default.createElement(l.default,{placeholder:"请输入分支名称",style:{width:"220px"}})))):""))),u.default.createElement("div",{className:"mt20"},u.default.createElement(a.default,{type:"primary",onClick:"update"===E?this.UpdateFile:this.subMitFrom,className:"mr30"},"提交变更"),u.default.createElement(a.default,{type:"primary grey",onClick:function(){e.props.history.push("/"+b+"/"+w)},className:"mr20"},"取消"))))}}]),t}(c.Component),w=o.default.create({name:"UserSubmitForm"})(h);t.default=w},Eitf:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=g(n("JsLm")),a=g(n("NJEC")),i=g(n("jsC+")),s=g(n("2fM7")),o=g(n("W9HT")),l=Object.assign||function(e){for(var t=1;t0?u.default.createElement(_.default,{menuList:e,hash:n.props.history.location.hash}):u.default.createElement(o.default,null)},n.state={value:void 0,language:void 0,languages:void 0,description:e.detail.replace_content,menuList:void 0},n}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),d(t,[{key:"render",value:function(){var e=this,t=this.props,n=t.readOnly,o=t.detail,d=t.current_user,c=t.isManager,m=t.isDeveloper,_=t.currentBranch,g=t.platform,h=t.md,w=t.type,b=this.state,y=b.language,v=b.languages,k=b.description,x=d&&d.login&&(c||m),T=s.default.Option;return u.default.createElement(u.default.Fragment,null,u.default.createElement(r.default,{className:"griditemAnchor",offsetTop:58},u.default.createElement("div",{className:"griditemCate"},h&&n&&u.default.createElement(i.default,{overlay:this.menu(),trigger:["hover"],overlayClassName:"menuslist"},u.default.createElement("span",{className:"catelogue mr20"},u.default.createElement("i",{className:"iconfont icon-muluicon font-12 mr5"}),u.default.createElement("span",null,"目录"))),u.default.createElement("span",{className:"color-grey-6 font-16"},function(e){if(0===e)return"0 B";var t=Math.floor(Math.log(e)/Math.log(1024));return(e/Math.pow(1024,t)).toFixed(2)+" "+["B","KB","MB","GB","TB","PB","EB","ZB","YB"][t]}(o&&o.size))),u.default.createElement("p",{className:"text-right"},x&&g&&u.default.createElement("div",null,n?u.default.createElement("span",null,o.direct_download?"":u.default.createElement("span",null,u.default.createElement("a",{onClick:function(){return e.DownLoadFile(o.download_url)},className:"ml20"},u.default.createElement("i",{className:"iconfont icon-xiazai1 font-15 color-grey-6"})),2!==w&&u.default.createElement("a",{onClick:function(){return e.EditFile(!1)},className:"ml20"},u.default.createElement("i",{className:"iconfont icon-bianji1 font-15 color-grey-6"})))):u.default.createElement(u.default.Fragment,null,u.default.createElement(s.default,{showSearch:!0,placeholder:"请选择文本语言",style:{width:200},value:y,onChange:this.select_language},u.default.createElement(T,{value:void 0},"请选择文本语言"),v&&v.map((function(e,t){return u.default.createElement(T,{value:e,key:t},e)}))),u.default.createElement("button",{type:"button",className:"ant-btn ant-btn-sm ml20",onClick:function(){return e.EditFile(!0)}},u.default.createElement("span",null,"取 消"))),2!==w&&u.default.createElement(a.default,{title:"确认删除这个文件?",className:"ml20",okText:"确定",cancelText:"取消",onConfirm:this.deleteFile},u.default.createElement("a",null,u.default.createElement("i",{className:"iconfont icon-shanchu font-15 color-grey-6"})))))),u.default.createElement("div",null,o.image_type?u.default.createElement("div",{className:"edu-txt-center pt20 pb20"},u.default.createElement("img",{alt:"",src:o.download_url,style:{maxWidth:"80%"}})):o.direct_download?u.default.createElement("div",{className:"mt20 text-center"},u.default.createElement("a",{href:o.download_url,className:"color-blue font-15"},"下载原始文件")):h&&n?u.default.createElement("div",{className:"files-md",id:"files-md"},u.default.createElement(f.default,{className:"file-md imageLayerParent",value:k,url:this.props.history.location})):u.default.createElement(p.default,l({},this.props,this.state,{language:y||"javascript",filepath:"/"+o.path,content:o.content,readOnly:n,editorType:"update",currentBranch:_,descName:o&&"Update "+o.name}))))}}]),t}(c.Component);t.default=w},FRFo:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=o(n("3S7+")),a=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],r=!0,a=!1,i=void 0;try{for(var s,o=e[Symbol.iterator]();!(r=(s=o.next()).done)&&(n.push(s.value),!t||n.length!==t);r=!0);}catch(e){a=!0,i=e}finally{try{!r&&o.return&&o.return()}finally{if(a)throw i}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")};n("5Dmo");var i=n("cDcd"),s=o(i);function o(e){return e&&e.__esModule?e:{default:e}}function l(e){var t=e.beforeText,n=e.afterText,o=e.className,l=e.inputId,d=e.timeOut,c=(0,i.useState)((function(){return t})),u=a(c,2),m=u[0],p=u[1],f=(0,i.useCallback)((function(){var e=document.querySelector("#"+l);e?(e.select(),document.execCommand("copy")&&document.execCommand("copy"),document.getSelection().removeAllRanges(),p(n),d&&setTimeout((function(){p(t)}),1500)):console.error("您的CopyTool未设置正确的inputId")}),[]);return s.default.createElement(r.default,{placement:"top",title:m,onVisibleChange:function(){p(t)}},s.default.createElement("i",{className:"iconfont icon-fuzhiicon "+o,style:{color:"#466aff"},onClick:f}))}l.defaultProps={beforeText:"复制链接",afterText:"复制成功",className:"",inputId:"copyText",timeOut:!0},t.default=(0,i.memo)(l)},IEkG:function(e,t,n){"use strict";e.exports={extension:{publisher:"alex-ext-public",name:"json-language-features-worker",version:"1.53.0-patch.1"},packageJSON:{name:"json-language-features-worker",publisher:"alex",version:"1.53.0-patch.1",displayName:"%displayName%",description:"%description%",icon:"icons/json.png",activationEvents:["onLanguage:json","onLanguage:jsonc"],kaitianContributes:{workerMain:"client/dist/browser/jsonClientMain.js"},contributes:{configuration:{id:"json",order:20,type:"object",title:"JSON",properties:{"json.schemas":{type:"array",scope:"resource",description:"%json.schemas.desc%",items:{type:"object",default:{fileMatch:["/myfile"],url:"schemaURL"},properties:{url:{type:"string",default:"/user.schema.json",description:"%json.schemas.url.desc%"},fileMatch:{type:"array",items:{type:"string",default:"MyFile.json",description:"%json.schemas.fileMatch.item.desc%"},minItems:1,description:"%json.schemas.fileMatch.desc%"},schema:{$ref:"http://json-schema.org/draft-07/schema#",description:"%json.schemas.schema.desc%"}}}},"json.format.enable":{type:"boolean",scope:"window",default:!0,description:"%json.format.enable.desc%"},"json.trace.server":{type:"string",scope:"window",enum:["off","messages","verbose"],default:"off",description:"%json.tracing.desc%"},"json.colorDecorators.enable":{type:"boolean",scope:"window",default:!0,description:"%json.colorDecorators.enable.desc%",deprecationMessage:"%json.colorDecorators.enable.deprecationMessage%"},"json.maxItemsComputed":{type:"number",default:5e3,description:"%json.maxItemsComputed.desc%"},"json.schemaDownload.enable":{type:"boolean",default:!0,description:"%json.enableSchemaDownload.desc%",tags:["usesOnlineServices"]}}},configurationDefaults:{"[json]":{"editor.quickSuggestions":{strings:!0},"editor.suggest.insertMode":"replace"},"[jsonc]":{"editor.quickSuggestions":{strings:!0},"editor.suggest.insertMode":"replace"}},jsonValidation:[{fileMatch:"*.schema.json",url:"http://json-schema.org/draft-07/schema#"}],workerMain:"client/dist/browser/jsonClientMain.js"},browser:"./client/dist/browser/jsonClientMain"},defaultPkgNlsJSON:{displayName:"JSON Language Features",description:"Provides rich language support for JSON files.","json.schemas.desc":"Associate schemas to JSON files in the current project","json.schemas.url.desc":"A URL to a schema or a relative path to a schema in the current directory","json.schemas.fileMatch.desc":"An array of file patterns to match against when resolving JSON files to schemas. `*` can be used as a wildcard. Exclusion patterns can also be defined and start with '!'. A file matches when there is at least one matching pattern and the last matching pattern is not an exclusion pattern.","json.schemas.fileMatch.item.desc":"A file pattern that can contain '*' to match against when resolving JSON files to schemas.","json.schemas.schema.desc":"The schema definition for the given URL. The schema only needs to be provided to avoid accesses to the schema URL.","json.format.enable.desc":"Enable/disable default JSON formatter","json.tracing.desc":"Traces the communication between VS Code and the JSON language server.","json.colorDecorators.enable.desc":"Enables or disables color decorators","json.colorDecorators.enable.deprecationMessage":"The setting `json.colorDecorators.enable` has been deprecated in favor of `editor.colorDecorators`.","json.schemaResolutionErrorMessage":"Unable to resolve schema.","json.clickToRetry":"Click to retry.","json.maxItemsComputed.desc":"The maximum number of outline symbols and folding regions computed (limited for performance reasons).","json.maxItemsExceededInformation.desc":"Show notification when exceeding the maximum number of outline symbols and folding regions.","json.enableSchemaDownload.desc":"When enabled, JSON schemas can be fetched from http and https locations."},pkgNlsJSON:{},nlsList:[],extendConfig:{},webAssets:["package.json","server/dist/browser/jsonServerMain.js","README.md","icons/json.png","http://json-schema.org/draft-07/schema#","client/dist/browser/jsonClientMain.js"],mode:"public"}},IxBv:function(e,t,n){"use strict";e.exports={extension:{publisher:"alex-ext-public",name:"html-language-features-worker",version:"1.53.0-patch.1"},packageJSON:{name:"html-language-features-worker",publisher:"alex",version:"1.53.0-patch.1",displayName:"%displayName%",description:"%description%",icon:"icons/html.png",activationEvents:["onLanguage:html","onLanguage:handlebars"],kaitianContributes:{workerMain:"client/dist/browser/htmlClientMain.js"},contributes:{configuration:{id:"html",order:20,type:"object",title:"HTML",properties:{"html.customData":{type:"array",markdownDescription:"%html.customData.desc%",default:[],items:{type:"string"},scope:"resource"},"html.format.enable":{type:"boolean",scope:"window",default:!0,description:"%html.format.enable.desc%"},"html.format.wrapLineLength":{type:"integer",scope:"resource",default:120,description:"%html.format.wrapLineLength.desc%"},"html.format.unformatted":{type:["string","null"],scope:"resource",default:"wbr",markdownDescription:"%html.format.unformatted.desc%"},"html.format.contentUnformatted":{type:["string","null"],scope:"resource",default:"pre,code,textarea",markdownDescription:"%html.format.contentUnformatted.desc%"},"html.format.indentInnerHtml":{type:"boolean",scope:"resource",default:!1,markdownDescription:"%html.format.indentInnerHtml.desc%"},"html.format.preserveNewLines":{type:"boolean",scope:"resource",default:!0,description:"%html.format.preserveNewLines.desc%"},"html.format.maxPreserveNewLines":{type:["number","null"],scope:"resource",default:null,markdownDescription:"%html.format.maxPreserveNewLines.desc%"},"html.format.indentHandlebars":{type:"boolean",scope:"resource",default:!1,markdownDescription:"%html.format.indentHandlebars.desc%"},"html.format.endWithNewline":{type:"boolean",scope:"resource",default:!1,description:"%html.format.endWithNewline.desc%"},"html.format.extraLiners":{type:["string","null"],scope:"resource",default:"head, body, /html",markdownDescription:"%html.format.extraLiners.desc%"},"html.format.wrapAttributes":{type:"string",scope:"resource",default:"auto",enum:["auto","force","force-aligned","force-expand-multiline","aligned-multiple","preserve","preserve-aligned"],enumDescriptions:["%html.format.wrapAttributes.auto%","%html.format.wrapAttributes.force%","%html.format.wrapAttributes.forcealign%","%html.format.wrapAttributes.forcemultiline%","%html.format.wrapAttributes.alignedmultiple%","%html.format.wrapAttributes.preserve%","%html.format.wrapAttributes.preservealigned%"],description:"%html.format.wrapAttributes.desc%"},"html.format.wrapAttributesIndentSize":{type:["number","null"],scope:"resource",default:null,description:"%html.format.wrapAttributesIndentSize.desc%"},"html.format.templating":{type:["boolean"],scope:"resource",default:!1,description:"%html.format.templating.desc%"},"html.format.unformattedContentDelimiter":{type:["string"],scope:"resource",default:"",markdownDescription:"%html.format.unformattedContentDelimiter.desc%"},"html.suggest.html5":{type:"boolean",scope:"resource",default:!0,description:"%html.suggest.html5.desc%"},"html.validate.scripts":{type:"boolean",scope:"resource",default:!0,description:"%html.validate.scripts%"},"html.validate.styles":{type:"boolean",scope:"resource",default:!0,description:"%html.validate.styles%"},"html.autoClosingTags":{type:"boolean",scope:"resource",default:!0,description:"%html.autoClosingTags%"},"html.hover.documentation":{type:"boolean",scope:"resource",default:!0,description:"%html.hover.documentation%"},"html.hover.references":{type:"boolean",scope:"resource",default:!0,description:"%html.hover.references%"},"html.mirrorCursorOnMatchingTag":{type:"boolean",scope:"resource",default:!1,description:"%html.mirrorCursorOnMatchingTag%",deprecationMessage:"%html.mirrorCursorOnMatchingTagDeprecationMessage%"},"html.trace.server":{type:"string",scope:"window",enum:["off","messages","verbose"],default:"off",description:"%html.trace.server.desc%"}}},configurationDefaults:{"[html]":{"editor.suggest.insertMode":"replace"},"[handlebars]":{"editor.suggest.insertMode":"replace"}},jsonValidation:[{fileMatch:"*.html-data.json",url:"https://raw.githubusercontent.com/microsoft/vscode-html-languageservice/master/docs/customData.schema.json"},{fileMatch:"package.json",url:"./schemas/package.schema.json"}],workerMain:"client/dist/browser/htmlClientMain.js"},browser:"./client/dist/browser/htmlClientMain"},defaultPkgNlsJSON:{displayName:"HTML Language Features",description:"Provides rich language support for HTML and Handlebar files","html.customData.desc":"A list of relative file paths pointing to JSON files following the [custom data format](https://github.com/microsoft/vscode-html-languageservice/blob/master/docs/customData.md).\n\nVS Code loads custom data on startup to enhance its HTML support for the custom HTML tags, attributes and attribute values you specify in the JSON files.\n\nThe file paths are relative to workspace and only workspace folder settings are considered.","html.format.enable.desc":"Enable/disable default HTML formatter.","html.format.wrapLineLength.desc":"Maximum amount of characters per line (0 = disable).","html.format.unformatted.desc":"List of tags, comma separated, that shouldn't be reformatted. `null` defaults to all tags listed at https://www.w3.org/TR/html5/dom.html#phrasing-content.","html.format.contentUnformatted.desc":"List of tags, comma separated, where the content shouldn't be reformatted. `null` defaults to the `pre` tag.","html.format.indentInnerHtml.desc":"Indent `` and `` sections.","html.format.preserveNewLines.desc":"Controls whether existing line breaks before elements should be preserved. Only works before elements, not inside tags or for text.","html.format.maxPreserveNewLines.desc":"Maximum number of line breaks to be preserved in one chunk. Use `null` for unlimited.","html.format.indentHandlebars.desc":"Format and indent `{{#foo}}` and `{{/foo}}`.","html.format.endWithNewline.desc":"End with a newline.","html.format.extraLiners.desc":'List of tags, comma separated, that should have an extra newline before them. `null` defaults to `"head, body, /html"`.',"html.format.wrapAttributes.desc":"Wrap attributes.","html.format.wrapAttributes.auto":"Wrap attributes only when line length is exceeded.","html.format.wrapAttributes.force":"Wrap each attribute except first.","html.format.wrapAttributes.forcealign":"Wrap each attribute except first and keep aligned.","html.format.wrapAttributes.forcemultiline":"Wrap each attribute.","html.format.wrapAttributes.alignedmultiple":"Wrap when line length is exceeded, align attributes vertically.","html.format.wrapAttributes.preserve":"Preserve wrapping of attributes","html.format.wrapAttributes.preservealigned":"Preserve wrapping of attributes but align.","html.format.templating.desc":"Honor django, erb, handlebars and php templating language tags.","html.format.unformattedContentDelimiter.desc":"Keep text content together between this string.","html.format.wrapAttributesIndentSize.desc":"Alignment size when using 'force aligned' and 'aligned multiple' in `#html.format.wrapAttributes#` or `null` to use the default indent size.","html.suggest.html5.desc":"Controls whether the built-in HTML language support suggests HTML5 tags, properties and values.","html.trace.server.desc":"Traces the communication between VS Code and the HTML language server.","html.validate.scripts":"Controls whether the built-in HTML language support validates embedded scripts.","html.validate.styles":"Controls whether the built-in HTML language support validates embedded styles.","html.autoClosingTags":"Enable/disable autoclosing of HTML tags.","html.mirrorCursorOnMatchingTag":"Enable/disable mirroring cursor on matching HTML tag.","html.mirrorCursorOnMatchingTagDeprecationMessage":"Deprecated in favor of `editor.linkedEditing`","html.hover.documentation":"Show tag and attribute documentation in hover.","html.hover.references":"Show references to MDN in hover."},pkgNlsJSON:{},nlsList:[],extendConfig:{},webAssets:["package.json","server/dist/browser/htmlServerMain.js","README.md","icons/html.png","https://raw.githubusercontent.com/microsoft/vscode-html-languageservice/master/docs/customData.schema.json","schemas/package.schema.json","client/dist/browser/htmlClientMain.js"],mode:"public"}},KhU6:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=u(n("/wGt")),a=u(n("W9HT")),i=u(n("MJZm")),s=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],r=!0,a=!1,i=void 0;try{for(var s,o=e[Symbol.iterator]();!(r=(s=o.next()).done)&&(n.push(s.value),!t||n.length!==t);r=!0);}catch(e){a=!0,i=e}finally{try{!r&&o.return&&o.return()}finally{if(a)throw i}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")};n("bbsP"),n("T2oS"),n("ozfa");var o=n("cDcd"),l=u(o),d=n("sYIF");n("KkuB");var c=u(n("vDqi"));function u(e){return e&&e.__esModule?e:{default:e}}var m=i.default.TreeNode,p=i.default.DirectoryTree;t.default=function(e){var t=e.visible,n=e.onClose,i=e.branch,u=e.owner,f=e.projectsId,_=e.history,g=e.name,h=e.list,w=(0,o.useState)(void 0),b=s(w,2),y=b[0],v=b[1],k=(0,o.useState)(!0),x=s(k,2),T=x[0],E=x[1],j=(0,o.useState)(!0),S=s(j,2),q=S[0],C=S[1];return(0,o.useEffect)((function(){var e;t&&q&&(h?(v(h),E(!1)):(e="/"+u+"/"+f+"/entries.json",c.default.get(e,{params:{ref:i}}).then((function(e){e&&v(e.data.entries),E(!1)})).catch((function(e){}))),C(!1))}),[t]),l.default.createElement(r.default,{placement:"left",visible:t,closable:!1,onClose:n,width:"320px",maskStyle:{backgroundColor:"rgba(0,0,0,0.09)"}},l.default.createElement(a.default,{spinning:T},l.default.createElement("div",{className:"drawerHead"},l.default.createElement("p",{className:"font-20"},g),l.default.createElement("p",null,l.default.createElement("i",{class:"iconfont icon-fenzhi2 font-18 color-grey-9 mr3"}),i)),l.default.createElement(p,{loadData:function(e){return new Promise((function(t){if(e.props.children)t();else{var n=[],r="/"+u+"/"+f+"/sub_entries.json";c.default.get(r,{params:{filepath:e.props.dataRef.path,ref:i,type:"dir"}}).then((function(e){e&&(n=e.data.entries)})).catch((function(e){})),setTimeout((function(){e.props.dataRef.children=n,v([].concat(function(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t0&&t.map((function(t){return l.default.createElement(m,{title:t.name,key:t.key,dataRef:t,isLeaf:"file"===t.type},e(t.children))}))}(y))))}},KusB:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r,a=n("cDcd"),i=(r=a)&&r.__esModule?r:{default:r},s=n("eO8H"),o=n("PhNK");var l={submodule:"icon-file-submodule font-17",file:"icon-wenjian6 font-15 color-blue-file",dir:"icon-wenjianjia4 font-15 color-blue_4C"};t.default=function(e){var t,n=e.item,r=e.goToSubRoot,a=e.owner,d=e.projectsId,c=e.platform;return i.default.createElement("li",null,i.default.createElement("span",null,!c&&n.image_type?i.default.createElement("span",null,i.default.createElement("i",{className:"iconfont "+l[""+n.type]+" mr8"}),n.name):i.default.createElement("a",{onClick:function(){return r(n.path,n.type,n.name)},className:"submodule"===n.type?"submoduleStyle":""},i.default.createElement("i",{className:"iconfont "+l[""+n.type]+" mr8"}),n.name)),i.default.createElement("span",{title:"init project"},i.default.createElement(s.Link,{to:"/"+a+"/"+d+"/commits/"+(0,o.truncateCommitId)(""+(n.commit&&n.commit.sha)),title:n.commit&&n.commit.message},((t=n.commit&&n.commit.message).indexOf("\n")>0&&t.split("\n"))[0])),i.default.createElement("span",{title:n.commit&&n.commit.created_at},n.commit&&n.commit.time_from_now))}},MN5C:function(e,t,n){},NAAl:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=l(n("kLXV")),a=l(n("Vl3Y")),i=l(n("5rEg"));n("2qtc"),n("y8nQ"),n("5NDa");var s=n("cDcd"),o=l(s);function l(e){return e&&e.__esModule?e:{default:e}}n("dEUZ");var d=i.default.TextArea;t.default=a.default.create()((0,s.forwardRef)((function(e){var t=e.form,n=e.visible,l=e.onCancel,c=e.onOk,u=e.desc,m=e.website,p=e.lesson_url,f=t.getFieldDecorator,_=t.validateFields,g=t.setFieldsValue;return(0,s.useEffect)((function(){(u||m)&&g({website:m,desc:u,lesson_url:p})}),[u,m]),o.default.createElement(r.default,{title:"修改信息",closable:!1,visible:n,centered:!0,onCancel:l,onOk:function(){_((function(e,t){e||(l(),c(t.desc,t.website,t.lesson_url))}))},okText:"确定",cancelText:"取消",width:"400px",className:"descmodal"},o.default.createElement(a.default,null,o.default.createElement(a.default.Item,{label:"项目简介"},f("desc",{rules:[]})(o.default.createElement(d,{placeholder:"请输入项目简介",rows:4,maxLength:200}))),o.default.createElement(a.default.Item,{label:"website"},f("website",{rules:[]})(o.default.createElement(i.default,{placeholder:"website链接",maxLength:200}))),o.default.createElement(a.default.Item,{label:"实践课程"},f("lesson_url",{rules:[]})(o.default.createElement(i.default,{placeholder:"实践课程链接",maxLength:200})))))})))},O4Oc:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.repoService=void 0;var r=l(n("14Xm")),a=n("yEiv"),i=n("YXVS"),s=l(n("vDqi")),o=l(n("wd/R"));function l(e){return e&&e.__esModule?e:{default:e}}function d(e){return function(){var t=e.apply(this,arguments);return new Promise((function(e,n){return function r(a,i){try{var s=t[a](i),o=s.value}catch(e){return void n(e)}if(!s.done)return Promise.resolve(o).then((function(e){r("next",e)}),(function(e){r("throw",e)}));e(o)}("next")}))}}var c="YYYY-MM-DD HH:mm:ss";t.repoService={getFileList:function(e,t,n,i){var s=this;return d(r.default.mark((function e(){return r.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,a.apiService.get("/webapi/projects/42422/repository/tree",{refName:t,path:n,withCommit:i});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e,s)})))()},getTreeEntry:function(e,t,n){var i=this;return d(r.default.mark((function e(){return r.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,a.apiService.get("/api/v3/projects/42422/repository/tree_entry",{refName:t,path:n});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e,i)})))()},getCodeSymbols:function(e,t,n){var i=this;return d(r.default.mark((function e(){return r.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,a.apiService.get("/api/v3/projects/42422/repository/file_symbols/"+encodeURIComponent(t)+"/",{filepath:n});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e,i)})))()},getCodeBlame:function(e,t,n){var a=this;return d(r.default.mark((function l(){var d,u,m,p,f,_,g,h,w,b;return r.default.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,s.default.get("/v1/"+t+"/"+e+"/blame.json",{params:n});case 2:for(d=r.sent,u=(0,i.underscoreToCamelcase)(d.data.blame_parts),m=[],p=!0,f=!1,_=void 0,r.prev=8,g=u[Symbol.iterator]();!(p=(h=g.next()).done);p=!0)w=h.value,b={commit:{author:w.commit.author,authorName:w.commit.author.name,authoredDate:(0,o.default)(new Date(1e3*w.commit.authoredTime)).format(c),committedDate:(0,o.default)(new Date(1e3*w.commit.committedTime)).format(c),committer:w.commit.committer,committerName:w.commit.committer.name,createdAt:(0,o.default)(new Date(1e3*w.commit.createdTime)).format(c),id:w.commit.sha,message:w.commit.commitMessage,title:w.commit.commitMessage},lines:[{currentNumber:w.currentNumber,effectLine:w.effectLine}]},m.push(b);r.next=16;break;case 12:r.prev=12,r.t0=r.catch(8),f=!0,_=r.t0;case 16:r.prev=16,r.prev=17,!p&&g.return&&g.return();case 19:if(r.prev=19,!f){r.next=22;break}throw _;case 22:return r.finish(19);case 23:return r.finish(16);case 24:return r.abrupt("return",m);case 25:case"end":return r.stop()}}),l,a,[[8,12,16,24],[17,,19,23]])})))()}}},OZBj:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=m(n("JsLm")),a=m(n("jsC+")),i=m(n("W9HT")),s=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],r=!0,a=!1,i=void 0;try{for(var s,o=e[Symbol.iterator]();!(r=(s=o.next()).done)&&(n.push(s.value),!t||n.length!==t);r=!0);}catch(e){a=!0,i=e}finally{try{!r&&o.return&&o.return()}finally{if(a)throw i}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")};n("5GOC"),n("qVdP"),n("T2oS");var o=n("cDcd"),l=m(o),d=m(n("bjH3")),c=n("spEH"),u=m(n("mJXK"));function m(e){return e&&e.__esModule?e:{default:e}}var p=window.$;t.default=function(e){var t=e.operate,n=e.history,m=e.readme,f=e.ChangeFile,_=(0,o.useState)(void 0),g=s(_,2),h=g[0],w=g[1],b=(0,o.useState)(void 0),y=s(b,2),v=y[0],k=y[1];return(0,o.useEffect)((function(){m&&m.replace_content?k(m.replace_content):k(void 0)}),[m]),(0,o.useEffect)((function(){n.location.pathname;var e=p.map(p("#readme").find("h1,h2,h3,h4,h5,h6"),(function(e,t){var n=e.id,r=e.tagName.replace("H","");return{href:""+("#"+n),text:e.textContent,level:r}}));w(e)}),[v]),l.default.createElement("div",{className:"commonBox readBox",id:"readme"},l.default.createElement(r.default,{offsetTop:58},l.default.createElement("div",{className:"commonBox-title boxTitle"},l.default.createElement(c.AlignCenter,null,l.default.createElement(a.default,{overlay:h&&h.length>0?l.default.createElement(u.default,{menuList:h,hash:n.location.hash}):l.default.createElement(i.default,null),trigger:["hover"],overlayClassName:"menuslist"},l.default.createElement("span",{className:"catelogue"},l.default.createElement("i",{className:"iconfont icon-muluicon font-12 mr5"}),l.default.createElement("span",null,"目录"))),l.default.createElement("span",{className:"commonBox-title-read"},l.default.createElement("a",{href:"#readme "},"README.md"))),t?l.default.createElement("a",{className:"ml20 pull-right",onClick:function(){return f(m&&m.path,!1)}},l.default.createElement("i",{className:"iconfont icon-a-bianji font-17 color-grey-6"})):"")),v&&l.default.createElement("div",{className:"commonBox-info"},l.default.createElement(d.default,{className:"break_word_comments imageLayerParent",value:v,url:n.location})))}},PhNK:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.truncateCommitId=function(e){return e&&e.length>11?e.substring(0,10):e},t.timeFormat=function(e){var t=new Date(1e3*e),n=t.getHours()<10?"0".concat(t.getHours()):t.getHours(),r=t.getMinutes()<10?"0".concat(t.getMinutes()):t.getMinutes();return t.getFullYear()+"-"+(t.getMonth()+1)+"-"+t.getDate()+" "+n+":"+r}},"R/Rt":function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=Object.assign||function(e){for(var t=1;t0&&i.default.createElement("span",{className:"infoCount"},r.total_count)),r&&r.total_count>0?r.list.map((function(e,r){return 0===r&&i.default.createElement(s.AlignTop,{className:"mt10"},i.default.createElement("div",null,i.default.createElement("p",{className:"font-16 color-grey-6",style:{display:"flex",alignItems:"center"}},i.default.createElement(o.Link,{to:{pathname:"/"+t+"/"+n+"/releases",query:{turnFromNew:!0}},style:{maxWidth:"200px",overflow:"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis"}},e.name),i.default.createElement("span",{className:"font-12 laterest ml5"},"最新")),i.default.createElement("p",{className:"color-grey-3 font-12"},e.created_at)))})):i.default.createElement("div",{className:"mt8"},"您暂未发布任何版本",a&&i.default.createElement(o.Link,{className:"color-blue ml20",to:{pathname:"/"+t+"/"+n+"/releases/new",state:{stable:!0}}},"创建新版本")))}},YIv0:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=d(n("PArb")),a=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],r=!0,a=!1,i=void 0;try{for(var s,o=e[Symbol.iterator]();!(r=(s=o.next()).done)&&(n.push(s.value),!t||n.length!==t);r=!0);}catch(e){a=!0,i=e}finally{try{!r&&o.return&&o.return()}finally{if(a)throw i}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")};n("/zsF");var i=n("cDcd"),s=d(i),o=n("spEH"),l=d(n("vDqi"));function d(e){return e&&e.__esModule?e:{default:e}}t.default=function(e){var t=e.owner,n=e.projectsId,d=(0,i.useState)(void 0),c=a(d,2),u=c[0],m=c[1];function p(){for(var e="#",t=["1","2","3","4","4","5","6","7","8","9","a","b","c","d","e","f"],n=0;n<6;n++){e+=t[parseInt(16*Math.random())]}return e}return(0,i.useEffect)((function(){var e;e="/"+t+"/"+n+"/languages.json",l.default.get(e).then((function(e){if(e){var t=e.data;if(t){var n=[];Object.keys(t).map((function(e,r){n.push({name:e,percent:t[e],color:p()})})),m(n)}}})).catch((function(e){}))}),[]),u&&u.length>0?s.default.createElement("div",null,s.default.createElement(r.default,null),s.default.createElement("p",{className:"font-16 color-ooo aboutSubTitle"},"开发语言"),s.default.createElement("div",{className:"progress"},u&&u.map((function(e,t){return s.default.createElement("span",{key:e.id||t,style:{width:e.percent,backgroundColor:e.color}})}))),u&&u.length>0&&s.default.createElement(o.FlexAJ,{className:"progresstip"},u.map((function(e,t){return s.default.createElement("span",{key:e.id||t},s.default.createElement("i",{className:"zero",style:{backgroundColor:""+e.color}}),s.default.createElement("span",null,e.name),s.default.createElement("span",null,e.percent))})))):""}},YXVS:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};t.underscoreToCamelcase=function e(t){if(Array.isArray(t))return t.map((function(t){return e(t)}));if("object"!==(void 0===t?"undefined":r(t))||null==t)return t;var n={};for(var a in t)if(!t.hasOwnProperty||t.hasOwnProperty(a)){var i=a.replace(/_([a-z])/g,(function(e){return e[1].toUpperCase()}));n[i]=e(t[a])}return n},t.camelcaseToUnderscore=function e(t){if(Array.isArray(t))return t.map((function(t){return e(t)}));if("object"!==(void 0===t?"undefined":r(t))||null==t)return t;var n={};for(var a in t)if(!t.hasOwnProperty||t.hasOwnProperty(a)){var i=a.replace(/([a-z][A-Z])/g,(function(e){return e[0]+"_"+e[1].toLowerCase()}));n[i]=e(t[a])}return n}},cJAJ:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=u(n("W9HT")),a=u(n("BvKs")),i=u(n("5rEg")),s=u(n("14Xm")),o=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],r=!0,a=!1,i=void 0;try{for(var s,o=e[Symbol.iterator]();!(r=(s=o.next()).done)&&(n.push(s.value),!t||n.length!==t);r=!0);}catch(e){a=!0,i=e}finally{try{!r&&o.return&&o.return()}finally{if(a)throw i}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")};n("T2oS"),n("lUTK"),n("5NDa");var l=n("cDcd"),d=u(l),c=n("tnhM");function u(e){return e&&e.__esModule?e:{default:e}}function m(e){return function(){var t=e.apply(this,arguments);return new Promise((function(e,n){return function r(a,i){try{var s=t[a](i),o=s.value}catch(e){return void n(e)}if(!s.done)return Promise.resolve(o).then((function(e){r("next",e)}),(function(e){r("throw",e)}));e(o)}("next")}))}}t.default=function(e){var t,n,u=(t=m(s.default.mark((function e(t,n){var r;return s.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,(0,c.getBranch)(t,n);case 2:r=e.sent,M(r),L(r),P(!1);case 6:case"end":return e.stop()}}),e,this)}))),function(e,n){return t.apply(this,arguments)}),p=(n=m(s.default.mark((function e(t,n){var r;return s.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,(0,c.getTag)(t,n);case 2:r=e.sent,M(r),L(r),P(!1);case 6:case"end":return e.stop()}}),e,this)}))),function(e,t){return n.apply(this,arguments)}),f=e.changeBranch,_=e.tagflag,g=e.projectsId,h=e.owner,w=e.visible,b=(0,l.useState)(void 0),y=o(b,2),v=y[0],k=y[1],x=(0,l.useState)(0),T=o(x,2),E=T[0],j=T[1],S=(0,l.useState)(!0),q=o(S,2),C=q[0],P=q[1],N=(0,l.useState)(void 0),R=o(N,2),O=R[0],M=R[1],D=(0,l.useState)(void 0),F=o(D,2),A=F[0],L=F[1],U=(0,l.useState)("branch"),I=o(U,2),J=I[0],W=I[1];return(0,l.useEffect)((function(){w&&(W("branch"),u(g,h),P(!0))}),[w]),d.default.createElement("div",{className:"overlayBranch"},d.default.createElement("div",{className:"padding15",style:{paddingBottom:"0px"}},d.default.createElement(i.default,{prefix:d.default.createElement("i",{className:"iconfont icon-sousuo_icon1 font-14"}),placeholder:"请输入分支"+(_?"或标签":"")+"名称搜索",autocomplete:"off",className:"OptionsInput",value:v,onChange:function(e){k(e.target.value);var t=e.target.value?O&&O.length>0&&O.filter((function(t){return t.name.indexOf(e.target.value)>-1})):O;L(t)}})),d.default.createElement(a.default,{mode:"horizontal",className:"navUl",selectedKeys:[J],onClick:function(e){W(e.key),P(!0),"branch"===e.key?(u(g,h),j(0)):(p(g,h),j(1))}},d.default.createElement(a.default.Item,{key:"branch"},"分支"),_&&d.default.createElement(a.default.Item,{key:"tag"},"标签")),d.default.createElement(r.default,{spinning:C},d.default.createElement("ul",{className:"OptionsUl",id:"ul-btn"},A&&A.length>0&&A.map((function(e,t){return d.default.createElement("li",{key:t,onClick:function(){return t=e.name,void f(t);var t}},d.default.createElement("a",{className:"task-hide ulALink"},e.name))})),A&&0===A.length&&d.default.createElement("p",{className:"listTips"},"暂无",v,0===E?"分支":"标签","~"))))}},dEUZ:function(e,t,n){},eIPa:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=g(n("diRs")),a=g(n("W9HT")),i=g(n("2/Rp")),s=g(n("14Xm")),o=Object.assign||function(e){for(var t=1;t0&&c.default.createElement("p",{className:"task-hide",style:{maxWidth:"215px"}},"所属组织:",function(e){var t="";return e.map((function(e){t=t+e.name+"、"})),t&&t.substr(0,t.length-1)}(e.organizations))))),c.default.createElement(u.AlignCenter,{className:"menuinfos"},c.default.createElement(m.Link,{to:"/"+e.login+"/projects"},c.default.createElement("span",null,e.projects_count),c.default.createElement("span",null,"项目数")),c.default.createElement(m.Link,{to:"/"+e.login+"/followers"},c.default.createElement("span",null,e.followers_count),c.default.createElement("span",null,"粉丝数")),c.default.createElement(m.Link,{to:"/"+e.login+"/following"},c.default.createElement("span",null,e.following_count),c.default.createElement("span",null,"关注数"))),c.default.createElement("div",{className:"pb20",style:{display:"flex",justifyContent:"center"}},b&&b===e.login?c.default.createElement(i.default,{className:"currentBtn"},"当前用户"):e.is_watch?c.default.createElement(i.default,{type:"default",onClick:function(){return Z(!1,e.login)}},"已关注"):c.default.createElement(i.default,{type:"primary",onClick:function(){return Z(!0,e.login)}},"关注TA")));D(t)}}function Z(e,t){(0,_.default)({method:e?"post":"delete",url:"/watchers/"+(e?"follow":"unfollow")+".json",params:{target_type:"user",id:t}}).then((function(n){if(n&&(0===n.data.status||2===n.data.status)){var r=k&&k.filter((function(e){return e.login===t}));r&&(r[0].is_watch=e),z(r[0])}})).catch((function(e){console.log(e)}))}function Q(e,t,n){t!==L&&U(t);var r=j.concat();r.map((function(e){return e.visible=!1})),e&&(r[n].visible=e),r.splice(),S(r)}return(0,d.useEffect)((function(){var e;e="/"+h+"/"+w+"/contributors.json",_.default.get(e).then((function(e){e&&(N(e.data.total_count),S(e.data.list))})).catch((function(e){}))}),[]),(0,d.useEffect)((function(){L?g(L):D(void 0)}),[L]),P>0?c.default.createElement("div",{className:"halfs"},c.default.createElement(m.Link,{to:"/"+h+"/"+w+"/contribute",className:"font-16 color-ooo hoverA"},c.default.createElement("span",null,"贡献者"),P>0&&c.default.createElement("span",{className:"infoCount"},P)),c.default.createElement("div",{className:"attrPerson",onMouseLeave:function(){return Q(!1)}},j&&j.length>0&&j.map((function(e,t){return c.default.createElement(r.default,{content:M,visible:e.visible,overlayClassName:"menuPanels",placement:"top"},c.default.createElement(m.Link,{key:t,to:"/"+e.login},c.default.createElement("img",{src:(0,p.getImageUrl)("/"+e.image_url),alt:"",onMouseOver:function(){return Q(!0,e.login,t)}})))})))):""}},gUMM:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=O(n("W9HT")),a=O(n("PArb")),i=O(n("2/Rp")),s=O(n("jsC+")),o=O(n("BvKs")),l=Object.assign||function(e){for(var t=1;t0){var e=Jt.filter((function(e){return"pulls"===e.menu_name})),t=Jt.filter((function(e){return"issues"===e.menu_name}));e&&0===e.length&&jt(!1),t&&0===t.length&&(Pt(!1),console.log(Jt))}}),[Jt]),(0,c.useEffect)((function(){Lt&&(M(Lt),nt(Lt.description),st(Lt.website),ct(Lt.lesson_url),wt(Lt.default_branch),L(Lt.invite_code))}),[Lt]),(0,c.useEffect)((function(){console.log("treeValue:"+J),Q(J?decodeURIComponent(J).split("/"):void 0)}),[J]),(0,c.useEffect)((function(){if(Ft&&Dt&&ht){var e=(0,p.turnbar)(At);if(Ut.indexOf("/"+Dt+"/"+Ft)>-1&&Ut.indexOf("/tree/"+e+"/")>-1){var t=Ut.split("/tree/"+e+"/")[1];W(t),function(e,t){Ie(!0);var n="/"+Dt+"/"+Ft+"/sub_entries.json";b.default.get(n,{params:{filepath:(0,p.returnbar)(e),ref:t||At,type:re}}).then((function(t){if(t){var n=t.data.entries;n.type?(ye(void 0),Te(n),ae(n.type),ft(void 0)):(Te(void 0),ye(n),ae("dir"),Wt(e,At||ht));var r=t.data.last_commit;G(r&&r.commit),ee(r&&r.committer),He(!1),Fe(!0),Fe(!vt),le(!0)}setTimeout((function(){Ie(!1)}),500)})).catch((function(e){Ie(!1)}))}(t,At),ae("file")}else W(void 0),function(e){Ie(!0);var t="/"+Dt+"/"+Ft+"/entries.json";b.default.get(t,{params:{ref:e}}).then((function(e){if(e){ge(e.data.commits_count),ye(e.data.entries),Te(void 0),Re(e.data.tar_url),qe(e.data.zip_url);var t=e.data.last_commit;G(t&&t.commit),ee(t&&t.committer),He(!0),Fe(!0),kt(!1),le(!0),Wt("",At||ht)}setTimeout((function(){Ie(!1)}),500)})).catch((function(e){Ie(!1)}))}(At||ht),ae("dir")}}),[Ft,Dt,Ut,ht]),(0,c.useEffect)((function(){b.default.get("/"+Dt+"/"+Ft+"/releases.json").then((function(e){if(e&&e.data){var t={list:e.data.releases,total_count:e.data.releases&&e.data.releases.length};Mt(t)}}))}),[]),(0,c.useEffect)((function(){if(O&&K){var e=document.getElementById("ptxt");if(e)e.offsetHeight>36&&me(!0)}}),[O,K]);var Zt,Qt,Vt=u.default.createElement(g.default,{http_url:O&&O.clone_url,ssh_url:O&&e&&e.platform&&O.ssh_url,zip_url:e&&e.platform&&Se,tar_url:e&&e.platform&&Ne,showNotification:e.showNotification}),Ht=xe&&xe.name,Kt=Ht&&".md"===Ht.substring(Ht.length-3,Ht.length),Gt=e.current_user,Yt=e.checkIfLogin,Xt=e.showLoginDialog,$t=Gt&&Gt.login&&Ct,en=O&&O.permission&&"Reporter"!==O.permission&&2!==O.type&&Et&&e.platform,tn="dir"===re&&O&&2!==O.type&&(O.permission&&"Reporter"!==O.permission||Gt&&Gt.admin);return console.log("maidian:",e),u.default.createElement(m.WhiteBack,null,u.default.createElement(q.default,{desc:tt,website:it,lesson_url:dt,visible:Ye,onCancel:function(){return Xe(!1)},onOk:function(e,t,n){var r="/"+Dt+"/"+Ft+".json";b.default.put(r,{description:e,website:t||"",lesson_url:n||""}).then((function(e){e&&e.data&&e.data.id&&(nt(e.data.description),st(e.data.website),ct(e.data.lesson_url))}))}}),u.default.createElement(r.default,{spinning:Ue},(be||xe)&&u.default.createElement(u.default.Fragment,null,u.default.createElement(S.default,{history:e.history,owner:Dt,projectsId:Ft,name:O&&O.name,branch:At||ht,visible:Be,onClose:function(){return ze(!1)},list:Ve?be:void 0}),u.default.createElement("div",{className:"drawerBtn",onClick:function(){return ze(!0)}},u.default.createElement("i",{className:"iconfont icon-zuohuaicon font-14"}),u.default.createElement("span",null,"目录"))),u.default.createElement("div",{style:{minHeight:"500px"}},O&&u.default.createElement(m.Box,{className:"Panels"},u.default.createElement(m.LongWidth,null,u.default.createElement("div",{className:"panelmenu"},u.default.createElement(m.FlexAJ,null,u.default.createElement(m.AlignCenter,null,u.default.createElement("div",{className:"mr30"},e&&e.platform?u.default.createElement(h.default,{repo_id:O&&O.repo_id,projectsId:Ft,branch:At||ht,changeBranch:function(t){var n="/"+Dt+"/"+Ft+(t&&"/tree/"+t)+(J?"/"+J:"");e.history.push(n)},owner:Dt,history:e.history,branchList:O&&O.branches&&O.branches.list}):u.default.createElement("span",null,"分支:",u.default.createElement("span",{className:"color-grey-6"},At||ht))),Z&&Z.length>0?u.default.createElement(y.default,{identifier:O&&O.identifier,treeValuePath:Z,returnUlr:function(t){var n=(0,p.turnbar)(At);ae("dir"),e.history.push("/"+Dt+"/"+Ft+"/tree"+(n?"/"+n:"")+"/"+t)},returnMain:function(){W(void 0);var t=At||ht,n=(0,p.turnbar)(t);e.history.push("/"+Dt+"/"+Ft+"/tree/"+n)},getPathUrl:function(e,t){if(e&&e.length>0&&t){for(var n="",r=0;r0||xe?u.default.createElement("div",{className:"listtable"},(K&&K.message||$)&&u.default.createElement("div",{className:"listtablehead"},$&&u.default.createElement(w.default,{url:(0,p.getImageUrl)("/"+$.image_url),name:$.name,id:$.id,login:$.login}),K.message&&u.default.createElement("div",{className:ue&&oe?"ellipsistxt hidetxt":"ellipsistxt"},u.default.createElement("pre",{id:"ptxt"},u.default.createElement(f.Link,{to:"/"+Dt+"/"+Ft+"/commits/"+(0,_.truncateCommitId)(K.sha)},u.default.createElement(R.default,{value:K.message})))),ue&&u.default.createElement("span",{className:"ellipsis",onClick:function(){return function(e){le(!e)}(oe)}},u.default.createElement("i",{className:"iconfont icon-shenglvehao"})),u.default.createElement("span",{className:"ml20 color-grey-6 font-12 mt3"},K.time_from_now),_e?u.default.createElement(f.Link,{to:"/"+Dt+"/"+Ft+"/commits/branch/"+(0,p.turnbar)(At||ht),className:"ml20 color-grey-3",style:{height:"28px",lineHeight:"28px"}},u.default.createElement("i",{className:"iconfont icon-tijiaoicon mr3 font-16"}),u.default.createElement("span",{style:{fontWeight:"500"}},_e,"次提交")):""),u.default.createElement("ul",{className:"listtablebody"},be&&be.length>0&&be.map((function(t,n){return u.default.createElement(v.default,{key:t.id||n,owner:Dt,item:t,projectsId:Ft,goToSubRoot:Bt,platform:e.platform})})),xe&&u.default.createElement(x.default,l({},e,{detail:xe,readOnly:De,md:Kt,onEdit:function(e){Fe(e),kt(!1)},currentBranch:At||ht,branch:At||ht,type:O.type})))):"",be&&0===be.length&&!xe?u.default.createElement(C.default,{_html:"暂未发现文件"}):"",pt&&pt.replace_content?u.default.createElement(k.default,{ChangeFile:function(t,n){var r=At||ht,a=(0,p.turnbar)(r);e.history.push("/"+Dt+"/"+Ft+"/tree/"+a+"/"+t),ae("file"),kt(!0)},readme:pt,operate:e&&(e.isManager||e.isDeveloper)&&2!==O.type,history:e.history}):"")),!(Z&&Z.length>0)&&!xe&&u.default.createElement(m.ShortWidth,null,u.default.createElement(m.Gap,{style:{paddingLeft:"30px"}},u.default.createElement("div",{className:"panelmenu"},u.default.createElement(m.FlexAJ,{className:"font-18 color-ooo mb20",style:{lineHeight:"28px"}},"关于",O.permission&&("Admin"===O.permission||"Owner"===O.permission||"Manager"===O.permission)&&u.default.createElement("i",{onClick:function(){return Xe(!0)},className:"iconfont icon-a-shezhi color-grey-9 font-15 pointer"})),tt&&u.default.createElement("p",{className:"font-14 color-grey-3 mb15 task-hide-2",style:{lineHeight:"24px",WebkitLineClamp:"4",textAlign:"justify",wordBreak:"break-all"},title:tt},tt),it&&u.default.createElement("div",{className:"color-grey-6 df pinfos mb5"},u.default.createElement("i",{className:"iconfont icon-lianjie2 font-15 mr10"}),u.default.createElement("a",{href:it,target:"_blank",style:{wordBreak:"break-all",lineHeight:"20px",marginTop:"5px",textDecoration:"underline"}},it)),u.default.createElement("div",{className:"pinfos mb5"},u.default.createElement("i",{className:"iconfont icon-zishuwenjian_icon font-15 mr10"}),u.default.createElement("a",{href:"#readme"},"README.md")),u.default.createElement("div",{className:"color-grey-6 mb5"},u.default.createElement("i",{className:"iconfont icon-neicunicon font-15 mr10"}),u.default.createElement("span",null,O&&O.size)),O&&O.license_name&&u.default.createElement("div",{className:"pinfos"},u.default.createElement("i",{className:"iconfont icon-xieyiicon font-16 mr10"}),u.default.createElement(f.Link,{to:"/"+Dt+"/"+Ft+"/tree/"+(0,p.turnbar)(At||ht)+"/LICENSE",className:"color-grey-6"},O.license_name))),A&&u.default.createElement("div",null,u.default.createElement(a.default,null),u.default.createElement(P.default,{code:A})),dt&&u.default.createElement("div",null,u.default.createElement(a.default,null),u.default.createElement("p",{className:"font-16 color-ooo"},"实践课程"),u.default.createElement("a",{href:dt,target:"_blank",className:"color-grey-6",style:{textDecoration:"underline",wordBreak:"break-all"}},dt)),Ot&&e.platform&&u.default.createElement(u.default.Fragment,null,u.default.createElement(a.default,null),u.default.createElement(T.default,{owner:Dt,projectsId:Ft,releaseVersions:Ot,history:e.history,distribution:It})),u.default.createElement(E.default,{owner:Dt,projectsId:Ft}),u.default.createElement(j.default,{owner:Dt,projectsId:Ft})))))))}},j5x1:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){for(var n=0;n-1}));b(n)}else b(t)},prefix:o.default.createElement("i",{className:"iconfont icon-sousuo_icon1 font-14"})})),w&&w.length>0?o.default.createElement("div",{className:"anchorBox"},o.default.createElement(a.default,{affix:!1,onChange:function(e){u(e)},offsetTop:140},w.map((function(e,t){return o.default.createElement("div",{style:{paddingLeft:15*e.level+"px"},className:c===e.href?"items active":"items"},o.default.createElement(d,{href:"#"+e.text,title:e.text}))})))):"")}},tnhM:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getUser=t.getSubEntries=t.getHooks=t.getTag=t.getBranch=void 0;var r=i(n("14Xm")),a=i(n("vDqi"));function i(e){return e&&e.__esModule?e:{default:e}}function s(e){return function(){var t=e.apply(this,arguments);return new Promise((function(e,n){return function r(a,i){try{var s=t[a](i),o=s.value}catch(e){return void n(e)}if(!s.done)return Promise.resolve(o).then((function(e){r("next",e)}),(function(e){r("throw",e)}));e(o)}("next")}))}}var o,l,d,c,u;t.getBranch=(o=s(r.default.mark((function e(t,n){var i;return r.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,a.default.get("/"+n+"/"+t+"/branches.json");case 2:return i=e.sent,e.abrupt("return",i&&i.data);case 4:case"end":return e.stop()}}),e,void 0)}))),function(e,t){return o.apply(this,arguments)}),t.getTag=(l=s(r.default.mark((function e(t,n){return r.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,a.default.get("/"+n+"/"+t+"/tags.json",{params:{only_name:!0}});case 2:return e.abrupt("return",e.sent.data.tags);case 3:case"end":return e.stop()}}),e,void 0)}))),function(e,t){return l.apply(this,arguments)}),t.getHooks=(d=s(r.default.mark((function e(t,n){return r.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,a.default.get("/projects/"+t+"/hooks.json",{params:n});case 2:return e.abrupt("return",e.sent.data);case 3:case"end":return e.stop()}}),e,void 0)}))),function(e,t){return d.apply(this,arguments)}),t.getSubEntries=(c=s(r.default.mark((function e(t,n,i){return r.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,a.default.get("/"+t+"/"+n+"/sub_entries.json",{params:i});case 2:return e.abrupt("return",e.sent.data);case 3:case"end":return e.stop()}}),e,void 0)}))),function(e,t,n){return c.apply(this,arguments)}),t.getUser=(u=s(r.default.mark((function e(t){return r.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,a.default.get("/users/"+t+"/hovercard.json");case 2:return e.abrupt("return",e.sent.data);case 3:case"end":return e.stop()}}),e,void 0)}))),function(e){return u.apply(this,arguments)})},w9N6:function(e,t,n){"use strict";e.exports={extension:{publisher:"alex-ext-public",name:"ide-dark-theme",version:"2.4.0"},packageJSON:{publisher:"kaitian",name:"ide-dark-theme",version:"2.4.0",displayName:"IDE UI Theme",description:"IDE UI Theme",contributes:{themes:[{id:"opensumi-dark",label:"OpenSumi Dark",uiTheme:"vs-dark",path:"./themes/dark/plus.json"},{id:"opensumi-light",label:"OpenSumi Light",uiTheme:"vs",path:"./themes/light/plus.json"}]}},pkgNlsJSON:{},nlsList:[],extendConfig:{},webAssets:[],mode:"public"}},yEiv:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.apiService=void 0;var r=n("kg56");t.apiService={get:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return(0,r.request)(e,{method:"GET",params:t},n)},post:function(e,t,n){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return(0,r.request)(e,{method:"POST",params:t,data:n},a)},put:function(e,t,n){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return(0,r.request)(e,{method:"PUT",params:t,data:n},a)},delete:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return(0,r.request)(e,{method:"DELETE",params:t},n)}}},z2sw:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=i(n("cDcd"));n("dEUZ");var a=i(n("FRFo"));function i(e){return e&&e.__esModule?e:{default:e}}t.default=function(e){var t=e.code,n=e.className;return r.default.createElement("div",{className:n},r.default.createElement("span",{className:"font-16 color-ooo"},"邀请码"),r.default.createElement("div",null,r.default.createElement("input",{value:t,id:"devitecode",style:{width:"62px",border:"none",cursor:"default"},readOnly:!0}),r.default.createElement(a.default,{timeOut:!0,beforeText:r.default.createElement("p",{className:"edu-txt-center"},"可以通过邀请码邀请成员加入项目",r.default.createElement("br",null),"点击复制邀请码。"),className:"ml8 font-16",inputId:"devitecode"})))}},zdCV:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.mockService={"/webapi/projects/Gitlink/forgeplus/":{encoding:"UTF-8",id:42422,import_status:"none",namespace:{avatar:{url:null},created_at:"2020-07-02T10:34:49+0800",description:"",id:23159,name:"ide-s",owner:null,owner_id:null,path:"ide-s",permission:null,public:!1,state:null,tenant:{created_at:null,id:0,name:"git",path:"git",updated_at:null,while_list_ip:null},type:"Group",updated_at:"2020-07-02T10:34:49+0800",web_url:"http://gitlab-test.alipay.net/groups/ide-s"},path:"TypeScript-Node-Starter",path_with_namespace:"ide-s/TypeScript-Node-Starter"},"/api/v3/user":{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",name:"testName",role:0,state:"active",theme_id:2,username:"guqiankun.gqk",web_url:"/u/guqiankun.gqk/",website_url:""},"/webapi/projects/42422/get_pull_request_by_iid":{check_suites:[],created_at:"2020-08-06T11:35:38+0800",description:"* 123\n* 456",diff:{add_line_num:753,base_commit_sha:"df72e4d1c394af6d1c21cd042116f83a792fa8c6",commits_count:16,created_at:"2021-05-20T14:27:46+0800",del_line_num:379,files_count:22,head_commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",id:31918,overflow:!1,start_commit_sha:"2566c6dec7756e51f7f16267d9a2a63116ac015b",updated_at:"2021-05-20T14:27:46+0800"},id:13055,iid:2,source_branch:"feat/123123",source_project_id:42422,state:"opened",target_branch:"master",target_project_id:42422},"/api/v3/projects/42422/pull_requests/13055/diffs":[{add_line_num:753,base_commit_sha:"df72e4d1c394af6d1c21cd042116f83a792fa8c6",commits_count:16,created_at:"2021-05-20T14:27:46+0800",del_line_num:379,files_count:22,head_commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",id:31918,overflow:!1,start_commit_sha:"2566c6dec7756e51f7f16267d9a2a63116ac015b",updated_at:"2021-05-20T14:27:46+0800"},{add_line_num:741,base_commit_sha:"df72e4d1c394af6d1c21cd042116f83a792fa8c6",commits_count:15,created_at:"2020-10-27T14:22:15+0800",del_line_num:379,files_count:21,head_commit_sha:"ac55c77aa72d49280058ed6054610f454ee694b1",id:20699,overflow:!1,start_commit_sha:"2566c6dec7756e51f7f16267d9a2a63116ac015b",updated_at:"2020-12-10T20:05:04+0800"}],"/webapi/projects/42422/pull_requests/13055/comments":{committed_reviews:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"maoqiang@test.com",extern_uid:"30041",id:13616,name:"毛嫱",state:"active",username:"maoqiang",web_url:"https://test.com.com/nwpipe/u/30041"},body:null,created_at:"2020-09-10T10:39:41+08:00",id:1650,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"maoqiang@test.com",extern_uid:"30041",id:13616,name:"毛嫱",state:"active",username:"maoqiang",web_url:"https://test.com.com/nwpipe/u/30041"},commit_id:null,created_at:"2020-09-14T12:09:16+0800",discussion_id:69,id:74,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"试试回复哈",noteable_id:1650,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!1,type:"Comment",updated_at:"2020-09-14T12:09:16+0800"}],updated_at:"2020-09-14T12:09:20+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"liuya.zmn@test.com",extern_uid:"208698",id:14920,name:"六牙",state:"active",username:"liuya.zmn",web_url:"https://test.com.com/nwpipe/u/208698"},body:null,created_at:"2020-09-09T14:21:01+08:00",id:1644,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"liuya.zmn@test.com",extern_uid:"208698",id:14920,name:"六牙",state:"active",username:"liuya.zmn",web_url:"https://test.com.com/nwpipe/u/208698"},commit_id:null,created_at:"2020-09-09T14:21:01+0800",discussion_id:null,id:63,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -80,40 +80,40 @@ export const getSignup = (req: Request, res: Response) => {\n * Create a new local account.\n */\n export const postSignup = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password must be at least 4 characters long").isLength({ min: 4 }).run(req);\n- await check("confirmPassword", "Passwords do not match").equals(req.body.password).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/signup");\n+ await check("email", "Email is not valid").isEmail().run(req);\n+ await check("password", "Password must be at least 4 characters long").isLength({ min: 4 }).run(req);\n+ await check("confirmPassword", "Passwords do not match").equals(req.body.password).run(req);\n+ // eslint-disable-next-line @typescript-eslint/camelcase\n+ await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n+\n+ const errors = validationResult(req);\n+\n+ if (!errors.isEmpty()) {\n+ req.flash("errors", errors.array());\n+ return res.redirect("/signup");\n+ }\n+\n+ const user = new User({\n+ email: req.body.email,\n+ password: req.body.password\n+ });\n+\n+ User.findOne({ email: req.body.email }, (err, existingUser) => {\n+ if (err) { return next(err); }\n+ if (existingUser) {\n+ req.flash("errors", { msg: "Account with that email address already exists." });\n+ return res.redirect("/signup");\n }\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_94_101",line_type:"old",note:"111",noteable_id:1644,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:17641,del_line_num:265,deleted_file:!1,diff:'@@ -80,40 +80,40 @@ export const getSignup = (req: Request, res: Response) => {\n * Create a new local account.\n */\n export const postSignup = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password must be at least 4 characters long").isLength({ min: 4 }).run(req);\n- await check("confirmPassword", "Passwords do not match").equals(req.body.password).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/signup");\n+ await check("email", "Email is not valid").isEmail().run(req);\n+ await check("password", "Password must be at least 4 characters long").isLength({ min: 4 }).run(req);\n+ await check("confirmPassword", "Passwords do not match").equals(req.body.password).run(req);\n+ // eslint-disable-next-line @typescript-eslint/camelcase\n+ await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n+\n+ const errors = validationResult(req);\n+\n+ if (!errors.isEmpty()) {\n+ req.flash("errors", errors.array());\n+ return res.redirect("/signup");\n+ }\n+\n+ const user = new User({\n+ email: req.body.email,\n+ password: req.body.password\n+ });\n+\n+ User.findOne({ email: req.body.email }, (err, existingUser) => {\n+ if (err) { return next(err); }\n+ if (existingUser) {\n+ req.flash("errors", { msg: "Account with that email address already exists." });\n+ return res.redirect("/signup");\n }\n',id:47,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-09-09T14:21:12+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"liuya.zmn@test.com",extern_uid:"208698",id:14920,name:"六牙",state:"active",username:"liuya.zmn",web_url:"https://test.com.com/nwpipe/u/208698"},body:null,created_at:"2020-09-09T14:21:25+08:00",id:1645,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"liuya.zmn@test.com",extern_uid:"208698",id:14920,name:"六牙",state:"active",username:"liuya.zmn",web_url:"https://test.com.com/nwpipe/u/208698"},commit_id:null,created_at:"2020-09-09T14:21:26+0800",discussion_id:null,id:64,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -80,40 +80,40 @@ export const getSignup = (req: Request, res: Response) => {\n * Create a new local account.\n */\n export const postSignup = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password must be at least 4 characters long").isLength({ min: 4 }).run(req);\n- await check("confirmPassword", "Passwords do not match").equals(req.body.password).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/signup");\n+ await check("email", "Email is not valid").isEmail().run(req);\n+ await check("password", "Password must be at least 4 characters long").isLength({ min: 4 }).run(req);\n+ await check("confirmPassword", "Passwords do not match").equals(req.body.password).run(req);\n+ // eslint-disable-next-line @typescript-eslint/camelcase\n+ await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n+\n+ const errors = validationResult(req);\n+\n+ if (!errors.isEmpty()) {\n+ req.flash("errors", errors.array());\n+ return res.redirect("/signup");\n+ }\n+\n+ const user = new User({\n+ email: req.body.email,\n+ password: req.body.password\n+ });\n+\n+ User.findOne({ email: req.body.email }, (err, existingUser) => {\n+ if (err) { return next(err); }\n+ if (existingUser) {\n+ req.flash("errors", { msg: "Account with that email address already exists." });\n+ return res.redirect("/signup");\n }\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_94_92",line_type:"old",note:"222",noteable_id:1645,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:17641,del_line_num:265,deleted_file:!1,diff:'@@ -80,40 +80,40 @@ export const getSignup = (req: Request, res: Response) => {\n * Create a new local account.\n */\n export const postSignup = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password must be at least 4 characters long").isLength({ min: 4 }).run(req);\n- await check("confirmPassword", "Passwords do not match").equals(req.body.password).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/signup");\n+ await check("email", "Email is not valid").isEmail().run(req);\n+ await check("password", "Password must be at least 4 characters long").isLength({ min: 4 }).run(req);\n+ await check("confirmPassword", "Passwords do not match").equals(req.body.password).run(req);\n+ // eslint-disable-next-line @typescript-eslint/camelcase\n+ await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n+\n+ const errors = validationResult(req);\n+\n+ if (!errors.isEmpty()) {\n+ req.flash("errors", errors.array());\n+ return res.redirect("/signup");\n+ }\n+\n+ const user = new User({\n+ email: req.body.email,\n+ password: req.body.password\n+ });\n+\n+ User.findOne({ email: req.body.email }, (err, existingUser) => {\n+ if (err) { return next(err); }\n+ if (existingUser) {\n+ req.flash("errors", { msg: "Account with that email address already exists." });\n+ return res.redirect("/signup");\n }\n',id:47,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-09-09T14:21:41+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},body:null,created_at:"2020-08-06T11:35:40+08:00",id:1483,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-08-11T16:36:49+0800",discussion_id:null,id:8,is_award:!1,labels:[],latest_st_diff:{a_mode:"0",add_line_num:228,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:0,deleted_file:!1,diff:'@@ -0,0 +1,228 @@\n+import { PullRequestChange } from \'../../../submodules/api-server/app/web/module/common/model/antcode\';\n+\n+export const mockChanges: PullRequestChange[] = [\n+ {\n+ "a_mode": "100644",\n+ "add_line_num": 3,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 0,\n+ "deleted_file": false,\n+ "id": 139517,\n+ "mark_as_read": false,\n+ "new_file": false,\n+ "new_path": "app/web/locales/en-us/codeReview.ts",\n+ "old_path": "app/web/locales/en-us/codeReview.ts",\n+ "renamed_file": false,\n+ "too_large": false,\n+ "updated_after_read": false\n+ },\n+ {\n+ "a_mode": "100644",\n+ "add_line_num": 3,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 0,\n+ "deleted_file": false,\n+ "id": 139518,\n+ "mark_as_read": false,\n+ "new_file": false,\n+ "new_path": "app/web/locales/zh-cn/codeReview.ts",\n+ "old_path": "app/web/locales/zh-cn/codeReview.ts",\n+ "renamed_file": false,\n+ "too_large": false,\n+ "updated_after_read": false\n+ },\n+ {\n+ "a_mode": "100644",\n+ "add_line_num": 2,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 6,\n+ "deleted_file": false,\n+ "id": 139519,\n+ "mark_as_read": false,\n+ "new_file": false,\n+ "new_path": "app/web/module/browser/index.ts",\n+ "old_path": "app/web/module/browser/index.ts",\n+ "renamed_file": false,\n+ "too_large": false,\n+ "updated_after_read": false\n+ },\n+ {\n+ "a_mode": "0",\n+ "add_line_num": 298,\n+ "b_mode": "100644",\n+ "binary_file": false,\n',id:1077,new_file:!0,new_path:"a.ts",old_path:"a.ts",renamed_file:!1,too_large:!1},line_code:"02699cd6ca65aa6819d7e387678d8ea5359b5e59_0_56",line_type:"new",note:"123123123",noteable_id:1483,noteable_type:"ReviewComment",outdated:!1,path:"a.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"0",add_line_num:228,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:15929,del_line_num:0,deleted_file:!1,diff:'@@ -0,0 +1,228 @@\n+import { PullRequestChange } from \'../../../submodules/api-server/app/web/module/common/model/antcode\';\n+\n+export const mockChanges: PullRequestChange[] = [\n+ {\n+ "a_mode": "100644",\n+ "add_line_num": 3,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 0,\n+ "deleted_file": false,\n+ "id": 139517,\n+ "mark_as_read": false,\n+ "new_file": false,\n+ "new_path": "app/web/locales/en-us/codeReview.ts",\n+ "old_path": "app/web/locales/en-us/codeReview.ts",\n+ "renamed_file": false,\n+ "too_large": false,\n+ "updated_after_read": false\n+ },\n+ {\n+ "a_mode": "100644",\n+ "add_line_num": 3,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 0,\n+ "deleted_file": false,\n+ "id": 139518,\n+ "mark_as_read": false,\n+ "new_file": false,\n+ "new_path": "app/web/locales/zh-cn/codeReview.ts",\n+ "old_path": "app/web/locales/zh-cn/codeReview.ts",\n+ "renamed_file": false,\n+ "too_large": false,\n+ "updated_after_read": false\n+ },\n+ {\n+ "a_mode": "100644",\n+ "add_line_num": 2,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 6,\n+ "deleted_file": false,\n+ "id": 139519,\n+ "mark_as_read": false,\n+ "new_file": false,\n+ "new_path": "app/web/module/browser/index.ts",\n+ "old_path": "app/web/module/browser/index.ts",\n+ "renamed_file": false,\n+ "too_large": false,\n+ "updated_after_read": false\n+ },\n+ {\n+ "a_mode": "0",\n+ "add_line_num": 298,\n+ "b_mode": "100644",\n+ "binary_file": false,\n',id:43,new_file:!0,new_path:"a.ts",old_path:"a.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-08-11T16:36:53+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},body:null,created_at:"2020-08-11T16:36:54+08:00",id:1530,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-08-11T20:56:08+0800",discussion_id:null,id:9,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -27,30 +27,30 @@ export const getLogin = (req: Request, res: Response) => {\n * Sign in using email and password.\n */\n export const postLogin = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password cannot be blank").isLength({min: 1}).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/login");\n+ await check("email", "Email is not valid").isEmail().run(req);\n+ await check("password", "Password cannot be blank").isLength({ min: 1 }).run(req);\n+ // eslint-disable-next-line @typescript-eslint/camelcase\n+ await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n+\n+ const errors = validationResult(req);\n+\n+ if (!errors.isEmpty()) {\n+ req.flash("errors", errors.array());\n+ return res.redirect("/login");\n+ }\n+\n+ passport.authenticate("local", (err: Error, user: UserDocument, info: IVerifyOptions) => {\n+ if (err) { return next(err); }\n+ if (!user) {\n+ req.flash("errors", { msg: info.message });\n+ return res.redirect("/login");\n }\n-\n- passport.authenticate("local", (err: Error, user: UserDocument, info: IVerifyOptions) => {\n- if (err) { return next(err); }\n- if (!user) {\n- req.flash("errors", {msg: info.message});\n- return res.redirect("/login");\n- }\n- req.logIn(user, (err) => {\n- if (err) { return next(err); }\n- req.flash("success", { msg: "Success! You are logged in." });\n- res.redirect(req.session.returnTo || "/");\n- });\n- })(req, res, next);\n+ req.logIn(user, (err) => {\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_49_48",line_type:"old",note:"@taian.lta(伊北) 测试一下咔咔咔咔咔咔",noteable_id:1530,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:15929,del_line_num:265,deleted_file:!1,diff:'@@ -27,30 +27,30 @@ export const getLogin = (req: Request, res: Response) => {\n * Sign in using email and password.\n */\n export const postLogin = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password cannot be blank").isLength({min: 1}).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/login");\n+ await check("email", "Email is not valid").isEmail().run(req);\n+ await check("password", "Password cannot be blank").isLength({ min: 1 }).run(req);\n+ // eslint-disable-next-line @typescript-eslint/camelcase\n+ await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n+\n+ const errors = validationResult(req);\n+\n+ if (!errors.isEmpty()) {\n+ req.flash("errors", errors.array());\n+ return res.redirect("/login");\n+ }\n+\n+ passport.authenticate("local", (err: Error, user: UserDocument, info: IVerifyOptions) => {\n+ if (err) { return next(err); }\n+ if (!user) {\n+ req.flash("errors", { msg: info.message });\n+ return res.redirect("/login");\n }\n-\n- passport.authenticate("local", (err: Error, user: UserDocument, info: IVerifyOptions) => {\n- if (err) { return next(err); }\n- if (!user) {\n- req.flash("errors", {msg: info.message});\n- return res.redirect("/login");\n- }\n- req.logIn(user, (err) => {\n- if (err) { return next(err); }\n- req.flash("success", { msg: "Success! You are logged in." });\n- res.redirect(req.session.returnTo || "/");\n- });\n- })(req, res, next);\n+ req.logIn(user, (err) => {\n',id:45,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-08-11T20:56:31+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},body:null,created_at:"2020-08-11T20:56:32+08:00",id:1537,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-08-13T15:13:13+0800",discussion_id:null,id:12,is_award:!1,labels:[],latest_st_diff:{a_mode:"0",add_line_num:228,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:0,deleted_file:!1,diff:'@@ -0,0 +1,228 @@\n+import { PullRequestChange } from \'../../../submodules/api-server/app/web/module/common/model/antcode\';\n+\n+export const mockChanges: PullRequestChange[] = [\n+ {\n+ "a_mode": "100644",\n+ "add_line_num": 3,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 0,\n+ "deleted_file": false,\n+ "id": 139517,\n+ "mark_as_read": false,\n+ "new_file": false,\n+ "new_path": "app/web/locales/en-us/codeReview.ts",\n+ "old_path": "app/web/locales/en-us/codeReview.ts",\n+ "renamed_file": false,\n+ "too_large": false,\n+ "updated_after_read": false\n+ },\n+ {\n+ "a_mode": "100644",\n+ "add_line_num": 3,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 0,\n+ "deleted_file": false,\n+ "id": 139518,\n+ "mark_as_read": false,\n+ "new_file": false,\n+ "new_path": "app/web/locales/zh-cn/codeReview.ts",\n+ "old_path": "app/web/locales/zh-cn/codeReview.ts",\n+ "renamed_file": false,\n+ "too_large": false,\n+ "updated_after_read": false\n+ },\n+ {\n+ "a_mode": "100644",\n+ "add_line_num": 2,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 6,\n+ "deleted_file": false,\n+ "id": 139519,\n+ "mark_as_read": false,\n+ "new_file": false,\n+ "new_path": "app/web/module/browser/index.ts",\n+ "old_path": "app/web/module/browser/index.ts",\n+ "renamed_file": false,\n+ "too_large": false,\n+ "updated_after_read": false\n+ },\n+ {\n+ "a_mode": "0",\n+ "add_line_num": 298,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 0,\n+ "deleted_file": false,\n+ "id": 139520,\n+ "mark_as_read": false,\n+ "new_file": true,\n+ "new_path": "app/web/module/code-review/browser/code-fold.contribution.tsx",\n+ "old_path": "app/web/module/code-review/browser/code-fold.contribution.tsx",\n+ "renamed_file": false,\n+ "too_large": false,\n+ "updated_after_read": false\n+ },\n+ {\n+ "a_mode": "100644",\n+ "add_line_num": 47,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 0,\n+ "deleted_file": false,\n+ "id": 139521,\n+ "mark_as_read": false,\n+ "new_file": false,\n+ "new_path": "app/web/module/code-review/browser/comment-common.service.ts",\n+ "old_path": "app/web/module/code-review/browser/comment-common.service.ts",\n+ "renamed_file": false,\n+ "too_large": false,\n+ "updated_after_read": false\n+ },\n+ {\n+ "a_mode": "100644",\n+ "add_line_num": 15,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 16,\n+ "deleted_file": false,\n+ "id": 139522,\n+ "mark_as_read": false,\n+ "new_file": false,\n+ "new_path": "app/web/module/code-review/browser/comment-write.contribution.ts",\n+ "old_path": "app/web/module/code-review/browser/comment-write.contribution.ts",\n',id:1077,new_file:!0,new_path:"a.ts",old_path:"a.ts",renamed_file:!1,too_large:!1},line_code:"02699cd6ca65aa6819d7e387678d8ea5359b5e59_0_95",line_type:"new",note:"123",noteable_id:1537,noteable_type:"ReviewComment",outdated:!1,path:"a.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"0",add_line_num:228,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:15929,del_line_num:0,deleted_file:!1,diff:'@@ -0,0 +1,228 @@\n+import { PullRequestChange } from \'../../../submodules/api-server/app/web/module/common/model/antcode\';\n+\n+export const mockChanges: PullRequestChange[] = [\n+ {\n+ "a_mode": "100644",\n+ "add_line_num": 3,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 0,\n+ "deleted_file": false,\n+ "id": 139517,\n+ "mark_as_read": false,\n+ "new_file": false,\n+ "new_path": "app/web/locales/en-us/codeReview.ts",\n+ "old_path": "app/web/locales/en-us/codeReview.ts",\n+ "renamed_file": false,\n+ "too_large": false,\n+ "updated_after_read": false\n+ },\n+ {\n+ "a_mode": "100644",\n+ "add_line_num": 3,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 0,\n+ "deleted_file": false,\n+ "id": 139518,\n+ "mark_as_read": false,\n+ "new_file": false,\n+ "new_path": "app/web/locales/zh-cn/codeReview.ts",\n+ "old_path": "app/web/locales/zh-cn/codeReview.ts",\n+ "renamed_file": false,\n+ "too_large": false,\n+ "updated_after_read": false\n+ },\n+ {\n+ "a_mode": "100644",\n+ "add_line_num": 2,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 6,\n+ "deleted_file": false,\n+ "id": 139519,\n+ "mark_as_read": false,\n+ "new_file": false,\n+ "new_path": "app/web/module/browser/index.ts",\n+ "old_path": "app/web/module/browser/index.ts",\n+ "renamed_file": false,\n+ "too_large": false,\n+ "updated_after_read": false\n+ },\n+ {\n+ "a_mode": "0",\n+ "add_line_num": 298,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 0,\n+ "deleted_file": false,\n+ "id": 139520,\n+ "mark_as_read": false,\n+ "new_file": true,\n+ "new_path": "app/web/module/code-review/browser/code-fold.contribution.tsx",\n+ "old_path": "app/web/module/code-review/browser/code-fold.contribution.tsx",\n+ "renamed_file": false,\n+ "too_large": false,\n+ "updated_after_read": false\n+ },\n+ {\n+ "a_mode": "100644",\n+ "add_line_num": 47,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 0,\n+ "deleted_file": false,\n+ "id": 139521,\n+ "mark_as_read": false,\n+ "new_file": false,\n+ "new_path": "app/web/module/code-review/browser/comment-common.service.ts",\n+ "old_path": "app/web/module/code-review/browser/comment-common.service.ts",\n+ "renamed_file": false,\n+ "too_large": false,\n+ "updated_after_read": false\n+ },\n+ {\n+ "a_mode": "100644",\n+ "add_line_num": 15,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 16,\n+ "deleted_file": false,\n+ "id": 139522,\n+ "mark_as_read": false,\n+ "new_file": false,\n+ "new_path": "app/web/module/code-review/browser/comment-write.contribution.ts",\n+ "old_path": "app/web/module/code-review/browser/comment-write.contribution.ts",\n',id:43,new_file:!0,new_path:"a.ts",old_path:"a.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-08-13T15:11:06+0800",discussion_id:null,id:11,is_award:!1,labels:["中间件规约"],latest_st_diff:{a_mode:"0",add_line_num:228,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:0,deleted_file:!1,diff:'@@ -0,0 +1,228 @@\n+import { PullRequestChange } from \'../../../submodules/api-server/app/web/module/common/model/antcode\';\n+\n+export const mockChanges: PullRequestChange[] = [\n+ {\n+ "a_mode": "100644",\n+ "add_line_num": 3,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 0,\n',id:1077,new_file:!0,new_path:"a.ts",old_path:"a.ts",renamed_file:!1,too_large:!1},line_code:"02699cd6ca65aa6819d7e387678d8ea5359b5e59_0_9",line_type:"new",note:"123123",noteable_id:1537,noteable_type:"ReviewComment",outdated:!1,path:"a.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"0",add_line_num:228,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:15929,del_line_num:0,deleted_file:!1,diff:'@@ -0,0 +1,228 @@\n+import { PullRequestChange } from \'../../../submodules/api-server/app/web/module/common/model/antcode\';\n+\n+export const mockChanges: PullRequestChange[] = [\n+ {\n+ "a_mode": "100644",\n+ "add_line_num": 3,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 0,\n',id:43,new_file:!0,new_path:"a.ts",old_path:"a.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-08-18T10:24:50+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},body:null,created_at:"2020-09-03T22:18:43+08:00",id:1629,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-09-03T22:18:43+0800",discussion_id:13,id:36,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"测试一条评论看看能不能生效呢",noteable_id:1629,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!1,type:"Comment",updated_at:"2020-09-03T22:18:43+0800"}],updated_at:"2020-09-03T22:18:48+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},body:null,created_at:"2020-09-04T10:52:12+08:00",id:1630,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-09-04T16:20:22+0800",discussion_id:null,id:38,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -27,30 +27,30 @@ export const getLogin = (req: Request, res: Response) => {\n * Sign in using email and password.\n */\n export const postLogin = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password cannot be blank").isLength({min: 1}).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/login");\n+ await check("email", "Email is not valid").isEmail().run(req);\n+ await check("password", "Password cannot be blank").isLength({ min: 1 }).run(req);\n+ // eslint-disable-next-line @typescript-eslint/camelcase\n+ await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n+\n+ const errors = validationResult(req);\n+\n+ if (!errors.isEmpty()) {\n+ req.flash("errors", errors.array());\n+ return res.redirect("/login");\n+ }\n+\n+ passport.authenticate("local", (err: Error, user: UserDocument, info: IVerifyOptions) => {\n+ if (err) { return next(err); }\n+ if (!user) {\n+ req.flash("errors", { msg: info.message });\n+ return res.redirect("/login");\n }\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_40_37",line_type:"old",note:"测试",noteable_id:1630,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:17174,del_line_num:265,deleted_file:!1,diff:'@@ -27,30 +27,30 @@ export const getLogin = (req: Request, res: Response) => {\n * Sign in using email and password.\n */\n export const postLogin = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password cannot be blank").isLength({min: 1}).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/login");\n+ await check("email", "Email is not valid").isEmail().run(req);\n+ await check("password", "Password cannot be blank").isLength({ min: 1 }).run(req);\n+ // eslint-disable-next-line @typescript-eslint/camelcase\n+ await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n+\n+ const errors = validationResult(req);\n+\n+ if (!errors.isEmpty()) {\n+ req.flash("errors", errors.array());\n+ return res.redirect("/login");\n+ }\n+\n+ passport.authenticate("local", (err: Error, user: UserDocument, info: IVerifyOptions) => {\n+ if (err) { return next(err); }\n+ if (!user) {\n+ req.flash("errors", { msg: info.message });\n+ return res.redirect("/login");\n }\n',id:311,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-09-04T10:52:12+0800",discussion_id:null,id:37,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_0_3",line_type:"old",note:"哈哈哈",noteable_id:1630,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:17174,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n',id:311,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-09-04T16:20:30+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},body:null,created_at:"2020-09-04T16:20:38+08:00",id:1633,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-09-04T16:20:39+0800",discussion_id:null,id:40,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -27,30 +27,30 @@ export const getLogin = (req: Request, res: Response) => {\n * Sign in using email and password.\n */\n export const postLogin = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password cannot be blank").isLength({min: 1}).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/login");\n+ await check("email", "Email is not valid").isEmail().run(req);\n+ await check("password", "Password cannot be blank").isLength({ min: 1 }).run(req);\n+ // eslint-disable-next-line @typescript-eslint/camelcase\n+ await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n+\n+ const errors = validationResult(req);\n+\n+ if (!errors.isEmpty()) {\n+ req.flash("errors", errors.array());\n+ return res.redirect("/login");\n+ }\n+\n+ passport.authenticate("local", (err: Error, user: UserDocument, info: IVerifyOptions) => {\n+ if (err) { return next(err); }\n+ if (!user) {\n+ req.flash("errors", { msg: info.message });\n+ return res.redirect("/login");\n }\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_40_35",line_type:"old",note:"123",noteable_id:1633,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:17174,del_line_num:265,deleted_file:!1,diff:'@@ -27,30 +27,30 @@ export const getLogin = (req: Request, res: Response) => {\n * Sign in using email and password.\n */\n export const postLogin = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password cannot be blank").isLength({min: 1}).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/login");\n+ await check("email", "Email is not valid").isEmail().run(req);\n+ await check("password", "Password cannot be blank").isLength({ min: 1 }).run(req);\n+ // eslint-disable-next-line @typescript-eslint/camelcase\n+ await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n+\n+ const errors = validationResult(req);\n+\n+ if (!errors.isEmpty()) {\n+ req.flash("errors", errors.array());\n+ return res.redirect("/login");\n+ }\n+\n+ passport.authenticate("local", (err: Error, user: UserDocument, info: IVerifyOptions) => {\n+ if (err) { return next(err); }\n+ if (!user) {\n+ req.flash("errors", { msg: info.message });\n+ return res.redirect("/login");\n }\n',id:311,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-09-04T16:20:43+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},body:null,created_at:"2020-09-08T19:47:16+08:00",id:1639,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-09-08T19:47:16+0800",discussion_id:null,id:59,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"v1.16.2-snapshot-3a71cb12",noteable_id:1639,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!1,type:"Comment",updated_at:"2020-09-08T19:47:16+0800"}],updated_at:"2020-09-08T19:47:16+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},body:null,created_at:"2020-09-10T12:04:45+08:00",id:1652,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-09-10T12:04:45+0800",discussion_id:null,id:69,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:1,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:1,deleted_file:!1,diff:'@@ -16,7 +16,7 @@ const server = app.listen(app.get("port"), () => {\n app.get("port"),\n',id:1091,new_file:!1,new_path:"src/server.ts",old_path:"src/server.ts",renamed_file:!1,too_large:!1},line_code:"bcc09dcb20cae54f483679309f0403fdcbd98121_15_0",line_type:"old",note:"测试发布一条评论",noteable_id:1652,noteable_type:"ReviewComment",outdated:!1,path:"src/server.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:1,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:17921,del_line_num:1,deleted_file:!1,diff:'@@ -16,7 +16,7 @@ const server = app.listen(app.get("port"), () => {\n app.get("port"),\n',id:79,new_file:!1,new_path:"src/server.ts",old_path:"src/server.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-09-10T12:04:49+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},body:null,created_at:"2020-09-13T22:47:59+08:00",id:1659,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-09-17T23:03:22+0800",discussion_id:60,id:84,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"123123",noteable_id:1659,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!1,type:"Comment",updated_at:"2020-09-17T23:03:22+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-09-13T22:47:59+0800",discussion_id:null,id:73,is_award:!1,labels:["内存泄露","日志规约","中间件规约","基础编码规约","安全规约","并发&幂等"],latest_st_diff:{a_mode:"100644",add_line_num:7,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:7,deleted_file:!1,diff:'@@ -1,18 +1,18 @@\n import winston from "winston";\n \n const options: winston.LoggerOptions = {\n- transports: [\n- new winston.transports.Console({\n- level: process.env.NODE_ENV === "production" ? "error" : "debug"\n- }),\n- new winston.transports.File({ filename: "debug.log", level: "debug" })\n- ]\n+ transports: [\n',id:1092,new_file:!1,new_path:"src/util/logger.ts",old_path:"src/util/logger.ts",renamed_file:!1,too_large:!1},line_code:"bd5630fadbfeb531e34aa7539e6a12a247f8b0c6_9_4",line_type:"old",note:"123",noteable_id:1659,noteable_type:"ReviewComment",outdated:!1,path:"src/util/logger.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:7,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:17959,del_line_num:7,deleted_file:!1,diff:'@@ -1,18 +1,18 @@\n import winston from "winston";\n \n const options: winston.LoggerOptions = {\n- transports: [\n- new winston.transports.Console({\n- level: process.env.NODE_ENV === "production" ? "error" : "debug"\n- }),\n- new winston.transports.File({ filename: "debug.log", level: "debug" })\n- ]\n+ transports: [\n',id:275,new_file:!1,new_path:"src/util/logger.ts",old_path:"src/util/logger.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-09-17T23:03:28+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},body:null,created_at:"2020-09-19T22:39:00+08:00",id:1662,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-09-19T22:39:35+0800",discussion_id:11,id:87,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"test123",noteable_id:1662,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!1,type:"Comment",updated_at:"2020-09-19T22:39:35+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-09-19T22:39:00+0800",discussion_id:78,id:86,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"123123123",noteable_id:1662,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!1,type:"Comment",updated_at:"2020-09-19T22:39:00+0800"}],updated_at:"2020-09-19T22:40:05+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},body:null,created_at:"2020-10-28T11:42:13+08:00",id:1737,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-11-16T19:52:35+0800",discussion_id:78,id:180,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"*\n*",noteable_id:1737,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!1,type:"Comment",updated_at:"2020-11-16T19:52:35+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-11-11T13:28:08+0800",discussion_id:null,id:170,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:49,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:49,deleted_file:!1,diff:'@@ -3,73 +3,73 @@ import crypto from "crypto";\n import mongoose from "mongoose";\n \n export type UserDocument = mongoose.Document & {\n- email: string;\n- password: string;\n- passwordResetToken: string;\n- passwordResetExpires: Date;\n+ email: string;\n',id:1089,new_file:!1,new_path:"src/models/User.ts",old_path:"src/models/User.ts",renamed_file:!1,too_large:!1},line_code:"e9bf216a20e84ee797b9402193000e41dad21aa6_6_6",line_type:"old",note:"123",noteable_id:1737,noteable_type:"ReviewComment",outdated:!1,path:"src/models/User.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:49,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:49,deleted_file:!1,diff:'@@ -3,73 +3,73 @@ import crypto from "crypto";\n import mongoose from "mongoose";\n \n export type UserDocument = mongoose.Document & {\n- email: string;\n- password: string;\n- passwordResetToken: string;\n- passwordResetExpires: Date;\n+ email: string;\n',id:1089,new_file:!1,new_path:"src/models/User.ts",old_path:"src/models/User.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2020-11-11T13:28:08+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-11-11T13:27:56+0800",discussion_id:null,id:169,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:49,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:49,deleted_file:!1,diff:'@@ -3,73 +3,73 @@ import crypto from "crypto";\n import mongoose from "mongoose";\n \n export type UserDocument = mongoose.Document & {\n- email: string;\n- password: string;\n- passwordResetToken: string;\n- passwordResetExpires: Date;\n+ email: string;\n+ password: string;\n+ passwordResetToken: string;\n+ passwordResetExpires: Date;\n \n',id:1089,new_file:!1,new_path:"src/models/User.ts",old_path:"src/models/User.ts",renamed_file:!1,too_large:!1},line_code:"e9bf216a20e84ee797b9402193000e41dad21aa6_10_7",line_type:"old",note:"123",noteable_id:1737,noteable_type:"ReviewComment",outdated:!1,path:"src/models/User.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:49,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:49,deleted_file:!1,diff:'@@ -3,73 +3,73 @@ import crypto from "crypto";\n import mongoose from "mongoose";\n \n export type UserDocument = mongoose.Document & {\n- email: string;\n- password: string;\n- passwordResetToken: string;\n- passwordResetExpires: Date;\n+ email: string;\n+ password: string;\n+ passwordResetToken: string;\n+ passwordResetExpires: Date;\n \n',id:1089,new_file:!1,new_path:"src/models/User.ts",old_path:"src/models/User.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2020-11-11T13:27:56+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-10-28T11:42:13+0800",discussion_id:52,id:166,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"123123",noteable_id:1737,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!1,type:"Comment",updated_at:"2020-10-28T11:42:13+0800"}],updated_at:"2022-01-25T15:55:52+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},body:null,created_at:"2020-08-18T10:23:46+08:00",id:1563,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-08-25T20:31:20+0800",discussion_id:null,id:27,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -27,30 +27,30 @@ export const getLogin = (req: Request, res: Response) => {\n * Sign in using email and password.\n */\n export const postLogin = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password cannot be blank").isLength({min: 1}).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/login");\n+ await check("email", "Email is not valid").isEmail().run(req);\n+ await check("password", "Password cannot be blank").isLength({ min: 1 }).run(req);\n+ // eslint-disable-next-line @typescript-eslint/camelcase\n+ await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n+\n+ const errors = validationResult(req);\n+\n+ if (!errors.isEmpty()) {\n+ req.flash("errors", errors.array());\n+ return res.redirect("/login");\n+ }\n+\n+ passport.authenticate("local", (err: Error, user: UserDocument, info: IVerifyOptions) => {\n+ if (err) { return next(err); }\n+ if (!user) {\n+ req.flash("errors", { msg: info.message });\n+ return res.redirect("/login");\n }\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_40_31",line_type:"old",note:"右侧",noteable_id:1563,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:16382,del_line_num:265,deleted_file:!1,diff:'@@ -27,30 +27,30 @@ export const getLogin = (req: Request, res: Response) => {\n * Sign in using email and password.\n */\n export const postLogin = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password cannot be blank").isLength({min: 1}).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/login");\n+ await check("email", "Email is not valid").isEmail().run(req);\n+ await check("password", "Password cannot be blank").isLength({ min: 1 }).run(req);\n+ // eslint-disable-next-line @typescript-eslint/camelcase\n+ await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n+\n+ const errors = validationResult(req);\n+\n+ if (!errors.isEmpty()) {\n+ req.flash("errors", errors.array());\n+ return res.redirect("/login");\n+ }\n+\n+ passport.authenticate("local", (err: Error, user: UserDocument, info: IVerifyOptions) => {\n+ if (err) { return next(err); }\n+ if (!user) {\n+ req.flash("errors", { msg: info.message });\n+ return res.redirect("/login");\n }\n',id:34,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-08-21T15:34:22+0800",discussion_id:20,id:26,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"撒大声地阿斯顿撒",noteable_id:1563,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!1,type:"Comment",updated_at:"2020-08-21T15:34:22+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-08-21T15:33:34+0800",discussion_id:23,id:25,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"sad",noteable_id:1563,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!1,type:"Comment",updated_at:"2020-08-21T15:33:34+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-08-21T11:30:27+0800",discussion_id:9,id:16,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"asdsadsa",noteable_id:1563,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!1,type:"Comment",updated_at:"2020-08-21T11:30:27+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-08-21T11:30:21+0800",discussion_id:9,id:15,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"asdasd",noteable_id:1563,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!1,type:"Comment",updated_at:"2020-08-21T11:30:21+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-08-18T10:23:46+0800",discussion_id:null,id:13,is_award:!1,labels:[],latest_st_diff:{a_mode:"0",add_line_num:228,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:0,deleted_file:!1,diff:'@@ -0,0 +1,228 @@\n+import { PullRequestChange } from \'../../../submodules/api-server/app/web/module/common/model/antcode\';\n+\n+export const mockChanges: PullRequestChange[] = [\n+ {\n+ "a_mode": "100644",\n+ "add_line_num": 3,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 0,\n+ "deleted_file": false,\n',id:1077,new_file:!0,new_path:"a.ts",old_path:"a.ts",renamed_file:!1,too_large:!1},line_code:"02699cd6ca65aa6819d7e387678d8ea5359b5e59_0_10",line_type:"new",note:"1111",noteable_id:1563,noteable_type:"ReviewComment",outdated:!1,path:"a.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"0",add_line_num:228,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:15929,del_line_num:0,deleted_file:!1,diff:'@@ -0,0 +1,228 @@\n+import { PullRequestChange } from \'../../../submodules/api-server/app/web/module/common/model/antcode\';\n+\n+export const mockChanges: PullRequestChange[] = [\n+ {\n+ "a_mode": "100644",\n+ "add_line_num": 3,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 0,\n+ "deleted_file": false,\n',id:43,new_file:!0,new_path:"a.ts",old_path:"a.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-08-25T20:31:24+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},body:null,created_at:"2020-08-28T10:27:38+08:00",id:1609,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-08-28T11:29:51+0800",discussion_id:null,id:30,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n */\n export const getLogin = (req: Request, res: Response) => {\n- if (req.user) {\n- return res.redirect("/");\n- }\n- res.render("account/login", {\n- title: "Login"\n- });\n+ if (req.user) {\n+ return res.redirect("/");\n+ }\n+ res.render("account/login", {\n+ title: "Login"\n+ });\n };\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_23_17",line_type:"old",note:"大迭代",noteable_id:1609,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:16382,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n */\n export const getLogin = (req: Request, res: Response) => {\n- if (req.user) {\n- return res.redirect("/");\n- }\n- res.render("account/login", {\n- title: "Login"\n- });\n+ if (req.user) {\n+ return res.redirect("/");\n+ }\n+ res.render("account/login", {\n+ title: "Login"\n+ });\n };\n',id:34,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-08-28T11:29:43+0800",discussion_id:null,id:29,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_9_0",line_type:"old",note:"撒大声地",noteable_id:1609,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:16382,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n',id:34,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-08-28T10:27:39+0800",discussion_id:22,id:28,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"ffff",noteable_id:1609,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!1,type:"Comment",updated_at:"2020-08-28T10:27:39+0800"}],updated_at:"2020-08-28T11:30:02+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},body:null,created_at:"2020-08-28T11:30:22+08:00",id:1610,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-08-28T11:30:22+0800",discussion_id:null,id:31,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_3_0",line_type:"old",note:"333333",noteable_id:1610,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:16382,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n',id:34,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-08-28T11:30:27+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},body:null,created_at:"2020-08-28T11:30:58+08:00",id:1611,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-08-28T11:30:58+0800",discussion_id:null,id:32,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -27,30 +27,30 @@ export const getLogin = (req: Request, res: Response) => {\n * Sign in using email and password.\n */\n export const postLogin = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password cannot be blank").isLength({min: 1}).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/login");\n+ await check("email", "Email is not valid").isEmail().run(req);\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_37_30",line_type:"old",note:"啊大大",noteable_id:1611,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:16382,del_line_num:265,deleted_file:!1,diff:'@@ -27,30 +27,30 @@ export const getLogin = (req: Request, res: Response) => {\n * Sign in using email and password.\n */\n export const postLogin = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password cannot be blank").isLength({min: 1}).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/login");\n+ await check("email", "Email is not valid").isEmail().run(req);\n',id:34,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-08-28T11:31:04+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},body:null,created_at:"2020-09-07T11:12:17+08:00",id:1635,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-09-07T11:12:18+0800",discussion_id:null,id:43,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_9_0",line_type:"old",note:"ddd",noteable_id:1635,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:17598,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n',id:752,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-09-07T11:19:37+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},body:null,created_at:"2020-09-07T11:58:28+08:00",id:1637,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-09-07T15:44:32+0800",discussion_id:null,id:50,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -252,61 +252,61 @@ export const getReset = (req: Request, res: Response, next: NextFunction) => {\n * Process the reset password request.\n */\n export const postReset = async (req: Request, res: Response, next: NextFunction) => {\n- await check("password", "Password must be at least 4 characters long.").isLength({ min: 4 }).run(req);\n- await check("confirm", "Passwords must match.").equals(req.body.password).run(req);\n+ await check("password", "Password must be at least 4 characters long.").isLength({ min: 4 }).run(req);\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_255_255",line_type:"old",note:"asdsadas",noteable_id:1637,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:17605,del_line_num:265,deleted_file:!1,diff:'@@ -252,61 +252,61 @@ export const getReset = (req: Request, res: Response, next: NextFunction) => {\n * Process the reset password request.\n */\n export const postReset = async (req: Request, res: Response, next: NextFunction) => {\n- await check("password", "Password must be at least 4 characters long.").isLength({ min: 4 }).run(req);\n- await check("confirm", "Passwords must match.").equals(req.body.password).run(req);\n+ await check("password", "Password must be at least 4 characters long.").isLength({ min: 4 }).run(req);\n',id:490,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-09-07T15:44:18+0800",discussion_id:null,id:49,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -252,61 +252,61 @@ export const getReset = (req: Request, res: Response, next: NextFunction) => {\n * Process the reset password request.\n */\n export const postReset = async (req: Request, res: Response, next: NextFunction) => {\n- await check("password", "Password must be at least 4 characters long.").isLength({ min: 4 }).run(req);\n- await check("confirm", "Passwords must match.").equals(req.body.password).run(req);\n+ await check("password", "Password must be at least 4 characters long.").isLength({ min: 4 }).run(req);\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_255_255",line_type:"old",note:"dddd",noteable_id:1637,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:17605,del_line_num:265,deleted_file:!1,diff:'@@ -252,61 +252,61 @@ export const getReset = (req: Request, res: Response, next: NextFunction) => {\n * Process the reset password request.\n */\n export const postReset = async (req: Request, res: Response, next: NextFunction) => {\n- await check("password", "Password must be at least 4 characters long.").isLength({ min: 4 }).run(req);\n- await check("confirm", "Passwords must match.").equals(req.body.password).run(req);\n+ await check("password", "Password must be at least 4 characters long.").isLength({ min: 4 }).run(req);\n',id:490,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-09-07T15:43:49+0800",discussion_id:29,id:48,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"ddd",noteable_id:1637,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!1,type:"Comment",updated_at:"2020-09-07T15:43:49+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-09-07T11:58:29+0800",discussion_id:null,id:46,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -27,30 +27,30 @@ export const getLogin = (req: Request, res: Response) => {\n * Sign in using email and password.\n */\n export const postLogin = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password cannot be blank").isLength({min: 1}).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/login");\n+ await check("email", "Email is not valid").isEmail().run(req);\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_37_30",line_type:"old",note:"十点多",noteable_id:1637,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:17598,del_line_num:265,deleted_file:!1,diff:'@@ -27,30 +27,30 @@ export const getLogin = (req: Request, res: Response) => {\n * Sign in using email and password.\n */\n export const postLogin = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password cannot be blank").isLength({min: 1}).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/login");\n+ await check("email", "Email is not valid").isEmail().run(req);\n',id:752,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-09-07T15:44:42+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},body:null,created_at:"2020-09-07T15:47:40+08:00",id:1638,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-09-07T16:39:19+0800",discussion_id:null,id:53,is_award:!1,labels:["内存泄露","中间件规约"],latest_st_diff:{a_mode:"100644",add_line_num:4,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:4,deleted_file:!1,diff:'@@ -4,7 +4,7 @@ import passportFacebook from "passport-facebook";\n import _ from "lodash";\n \n // import { User, UserType } from \'../models/User\';\n-import { User, UserDocument } from "../models/User";\n+import { User, UserDocument } from "../models/User"\n',id:1087,new_file:!1,new_path:"src/config/passport.ts",old_path:"src/config/passport.ts",renamed_file:!1,too_large:!1},line_code:"761e3f18c863ddeee900bf74ddd8fed56a4aa2c9_7_7",line_type:"old",note:"test",noteable_id:1638,noteable_type:"ReviewComment",outdated:!1,path:"src/config/passport.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:4,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:17605,del_line_num:4,deleted_file:!1,diff:'@@ -4,7 +4,7 @@ import passportFacebook from "passport-facebook";\n import _ from "lodash";\n \n // import { User, UserType } from \'../models/User\';\n-import { User, UserDocument } from "../models/User";\n+import { User, UserDocument } from "../models/User"\n',id:489,new_file:!1,new_path:"src/config/passport.ts",old_path:"src/config/passport.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-09-07T15:47:40+0800",discussion_id:null,id:51,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_3_0",line_type:"old",note:"asdasd",noteable_id:1638,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:17605,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n',id:490,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-09-16T15:19:24+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},body:null,created_at:"2020-09-22T10:13:52+08:00",id:1663,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-10-27T11:38:24+0800",discussion_id:null,id:159,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:1,deleted_file:!1,diff:"@@ -1,4 +1,3 @@\n-# TypeScript Node Starter\n > hello world typescript\n \n The main purpose of this repository is to show a working Node.js API Server + front-end project and workflow for writing Node code in TypeScript.\n",id:1075,new_file:!1,new_path:"README.md",old_path:"README.md",renamed_file:!1,too_large:!1},line_code:"8ec9a00bfd09b3190ac6b22251dbb1aa95a0579d_0_24",line_type:"old",note:"![stack.png](/ide-s/TypeScript-Node-Starter/uploads/f0320521d707466988b87cc04ec2c7a4/stack.png)",noteable_id:1663,noteable_type:"ReviewComment",outdated:!0,path:"README.md",resolved_at:"2022-01-25T15:10:39+08:00",resolved_by:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},st_diff:{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"604ed58cc40ed8ed6581d1c10e265da6f8b23496",compare_diff_id:19988,del_line_num:1,deleted_file:!1,diff:"@@ -1,4 +1,3 @@\n-# TypeScript Node Starter\n > hello world typescript\n \n The main purpose of this repository is to show a working Node.js API Server + front-end project and workflow for writing Node code in TypeScript.\n",id:144,new_file:!1,new_path:"README.md",old_path:"README.md",renamed_file:!1,too_large:!1},state:"opened",system:!1,type:"Problem",updated_at:"2021-05-20T14:27:46+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-09-22T10:13:53+0800",discussion_id:null,id:88,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:1,deleted_file:!1,diff:"@@ -24,7 +24,6 @@ footer {\n \n // Input Fields\n // -------------------------\n-\n textarea {\n resize: vertical;\n",id:1090,new_file:!1,new_path:"src/public/css/main.scss",old_path:"src/public/css/main.scss",renamed_file:!1,too_large:!1},line_code:"4c32a30db22da868cde702e26a724b6a2408a33c_29_27",line_type:"old",note:"右边",noteable_id:1663,noteable_type:"ReviewComment",outdated:!0,path:"src/public/css/main.scss",resolved_at:"2022-01-20T20:10:37+08:00",resolved_by:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},st_diff:{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:18810,del_line_num:1,deleted_file:!1,diff:"@@ -24,7 +24,6 @@ footer {\n \n // Input Fields\n // -------------------------\n-\n textarea {\n resize: vertical;\n",id:117,new_file:!1,new_path:"src/public/css/main.scss",old_path:"src/public/css/main.scss",renamed_file:!1,too_large:!1},state:"opened",system:!1,type:"Problem",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-10-27T11:38:42+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},body:null,created_at:"2020-10-27T11:39:26+08:00",id:1731,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},commit_id:null,created_at:"2022-01-25T15:16:48+0800",discussion_id:182,id:500022,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"Problem status changed to opened",noteable_id:1731,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!0,type:"Comment",updated_at:"2022-01-25T15:16:48+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},commit_id:null,created_at:"2022-01-25T15:16:07+0800",discussion_id:182,id:500021,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"Problem status changed to resolved",noteable_id:1731,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!0,type:"Comment",updated_at:"2022-01-25T15:16:07+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-11-19T15:19:18+0800",discussion_id:null,id:182,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:0,deleted_file:!1,diff:"",id:1096,new_file:!1,new_path:"views/partials/footer-renamed.pug",old_path:"views/partials/footer.pug",renamed_file:!0,too_large:!1},line_code:"cdba7b9c4edb14d31053cfb58047d4183fe1830d_2_2",line_type:"old",note:"2222",noteable_id:1731,noteable_type:"ReviewComment",outdated:!0,path:"views/partials/footer-renamed.pug",resolved_at:"2022-01-25T15:16:07+08:00",resolved_by:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},st_diff:{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"ac55c77aa72d49280058ed6054610f454ee694b1",compare_diff_id:20699,del_line_num:0,deleted_file:!1,diff:"",id:570,new_file:!1,new_path:"views/partials/footer-renamed.pug",old_path:"views/partials/footer.pug",renamed_file:!0,too_large:!1},state:"opened",system:!1,type:"Problem",updated_at:"2021-05-20T14:27:46+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-11-19T14:50:02+0800",discussion_id:null,id:181,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:"old",note:"111",noteable_id:1731,noteable_type:"ReviewComment",outdated:!1,path:"views/partials/footer-renamed.pug",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"ac55c77aa72d49280058ed6054610f454ee694b1",compare_diff_id:20699,del_line_num:0,deleted_file:!1,diff:"",id:570,new_file:!1,new_path:"views/partials/footer-renamed.pug",old_path:"views/partials/footer.pug",renamed_file:!0,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2020-11-19T14:50:02+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-10-27T11:39:26+0800",discussion_id:159,id:160,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"![](https://test.com/cloud-ide/api-server/uploads/96a89b8b059d4dd0896c5a01fe3ed68d/stack.png)",noteable_id:1731,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!1,type:"Comment",updated_at:"2020-10-27T11:39:26+0800"}],updated_at:"2020-11-19T15:19:37+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},body:null,created_at:"2020-11-19T15:20:10+08:00",id:1769,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-11-19T15:20:10+0800",discussion_id:null,id:183,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:0,deleted_file:!1,diff:"",id:1096,new_file:!1,new_path:"views/partials/footer-renamed.pug",old_path:"views/partials/footer.pug",renamed_file:!0,too_large:!1},line_code:"cdba7b9c4edb14d31053cfb58047d4183fe1830d_5_5",line_type:"old",note:"555",noteable_id:1769,noteable_type:"ReviewComment",outdated:!0,path:"views/partials/footer-renamed.pug",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"ac55c77aa72d49280058ed6054610f454ee694b1",compare_diff_id:20699,del_line_num:0,deleted_file:!1,diff:"",id:570,new_file:!1,new_path:"views/partials/footer-renamed.pug",old_path:"views/partials/footer.pug",renamed_file:!0,too_large:!1},state:"opened",system:!1,type:"Problem",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-11-19T15:20:14+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},body:null,created_at:"2020-11-19T15:20:34+08:00",id:1770,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-11-19T15:20:34+0800",discussion_id:null,id:184,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:2,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:2,deleted_file:!1,diff:"@@ -14,11 +14,11 @@ block content\n .form-group.row.justify-content-md-center\n",id:1094,new_file:!1,new_path:"views/contact123.pug",old_path:"views/contact.pug",renamed_file:!0,too_large:!1},line_code:"01c01633c13afa3e0580e14dbcd3c26e289c5281_0_4",line_type:"old",note:"4444",noteable_id:1770,noteable_type:"ReviewComment",outdated:!0,path:"views/contact123.pug",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:2,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"ac55c77aa72d49280058ed6054610f454ee694b1",compare_diff_id:20699,del_line_num:2,deleted_file:!1,diff:"@@ -14,11 +14,11 @@ block content\n .form-group.row.justify-content-md-center\n",id:568,new_file:!1,new_path:"views/contact123.pug",old_path:"views/contact.pug",renamed_file:!0,too_large:!1},state:"opened",system:!1,type:"Problem",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-11-19T15:20:49+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},body:null,created_at:"2021-05-28T16:28:46+08:00",id:2106,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},commit_id:null,created_at:"2022-01-25T20:10:21+0800",discussion_id:205,id:500027,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"Problem status changed to opened",noteable_id:2106,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!0,type:"Comment",updated_at:"2022-01-25T20:10:21+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},commit_id:null,created_at:"2022-01-25T20:10:07+0800",discussion_id:205,id:500026,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"Problem status changed to resolved",noteable_id:2106,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!0,type:"Comment",updated_at:"2022-01-25T20:10:07+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},commit_id:null,created_at:"2022-01-25T16:06:08+0800",discussion_id:206,id:500024,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"Problem status changed to resolved",noteable_id:2106,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!0,type:"Comment",updated_at:"2022-01-25T16:06:08+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2021-05-28T16:31:57+0800",discussion_id:null,id:206,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:1,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:1,deleted_file:!1,diff:'@@ -16,7 +16,7 @@ const server = app.listen(app.get("port"), () => {\n app.get("port"),\n app.get("env")\n',id:1091,new_file:!1,new_path:"src/server.ts",old_path:"src/server.ts",renamed_file:!1,too_large:!1},line_code:"bcc09dcb20cae54f483679309f0403fdcbd98121_17_16",line_type:"old",note:"1111",noteable_id:2106,noteable_type:"ReviewComment",outdated:!0,path:"src/server.ts",resolved_at:"2022-01-25T16:06:08+08:00",resolved_by:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},st_diff:{a_mode:"100644",add_line_num:1,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:1,deleted_file:!1,diff:'@@ -16,7 +16,7 @@ const server = app.listen(app.get("port"), () => {\n app.get("port"),\n app.get("env")\n',id:1091,new_file:!1,new_path:"src/server.ts",old_path:"src/server.ts",renamed_file:!1,too_large:!1},state:"opened",system:!1,type:"Problem",updated_at:"2021-05-28T16:31:57+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2021-05-28T16:28:46+0800",discussion_id:null,id:205,is_award:!1,labels:["测试"],latest_st_diff:{a_mode:"100644",add_line_num:4,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:4,deleted_file:!1,diff:"@@ -14,7 +14,7 @@ passport.serializeUser((user, done) => {\n done(undefined, user.id);\n });\n \n-passport.deserializeUser((id, done) => {\n+passport.deserializeUser((id: string, done) => {\n User.findById(id, (err, user) => {\n",id:1087,new_file:!1,new_path:"src/config/passport.ts",old_path:"src/config/passport.ts",renamed_file:!1,too_large:!1},line_code:"761e3f18c863ddeee900bf74ddd8fed56a4aa2c9_18_17",line_type:"old",note:"这是啥",noteable_id:2106,noteable_type:"ReviewComment",outdated:!1,path:"src/config/passport.ts",resolved_at:"2022-01-25T20:10:07+08:00",resolved_by:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},st_diff:{a_mode:"100644",add_line_num:4,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:4,deleted_file:!1,diff:"@@ -14,7 +14,7 @@ passport.serializeUser((user, done) => {\n done(undefined, user.id);\n });\n \n-passport.deserializeUser((id, done) => {\n+passport.deserializeUser((id: string, done) => {\n User.findById(id, (err, user) => {\n",id:1087,new_file:!1,new_path:"src/config/passport.ts",old_path:"src/config/passport.ts",renamed_file:!1,too_large:!1},state:"opened",system:!1,type:"Problem",updated_at:"2021-05-28T16:28:46+0800"}],updated_at:"2021-05-28T16:32:04+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},body:null,created_at:"2021-11-04T15:07:06+08:00",id:4200243,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2021-11-04T15:07:07+0800",discussion_id:null,id:400002,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -27,30 +27,30 @@ export const getLogin = (req: Request, res: Response) => {\n * Sign in using email and password.\n */\n export const postLogin = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password cannot be blank").isLength({min: 1}).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/login");\n+ await check("email", "Email is not valid").isEmail().run(req);\n+ await check("password", "Password cannot be blank").isLength({ min: 1 }).run(req);\n+ // eslint-disable-next-line @typescript-eslint/camelcase\n+ await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n+\n+ const errors = validationResult(req);\n+\n+ if (!errors.isEmpty()) {\n+ req.flash("errors", errors.array());\n+ return res.redirect("/login");\n+ }\n+\n+ passport.authenticate("local", (err: Error, user: UserDocument, info: IVerifyOptions) => {\n+ if (err) { return next(err); }\n+ if (!user) {\n+ req.flash("errors", { msg: info.message });\n+ return res.redirect("/login");\n }\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_40_47",line_type:"old",note:"这是一个带图评论\n\n\n![image.png](/ide-s/TypeScript-Node-Starter/uploads/45f6e1865078460aa15f2799225d956c/image.png)\n",noteable_id:4200243,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -27,30 +27,30 @@ export const getLogin = (req: Request, res: Response) => {\n * Sign in using email and password.\n */\n export const postLogin = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password cannot be blank").isLength({min: 1}).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/login");\n+ await check("email", "Email is not valid").isEmail().run(req);\n+ await check("password", "Password cannot be blank").isLength({ min: 1 }).run(req);\n+ // eslint-disable-next-line @typescript-eslint/camelcase\n+ await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n+\n+ const errors = validationResult(req);\n+\n+ if (!errors.isEmpty()) {\n+ req.flash("errors", errors.array());\n+ return res.redirect("/login");\n+ }\n+\n+ passport.authenticate("local", (err: Error, user: UserDocument, info: IVerifyOptions) => {\n+ if (err) { return next(err); }\n+ if (!user) {\n+ req.flash("errors", { msg: info.message });\n+ return res.redirect("/login");\n }\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:"opened",system:!1,type:"Problem",updated_at:"2021-11-04T15:07:07+0800"}],updated_at:"2021-11-04T15:07:16+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},body:null,created_at:"2021-11-04T15:08:12+08:00",id:4200244,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},commit_id:null,created_at:"2022-01-24T11:08:09+0800",discussion_id:400003,id:500014,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"Problem status changed to opened",noteable_id:4200244,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!0,type:"Comment",updated_at:"2022-01-24T11:08:09+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},commit_id:null,created_at:"2022-01-24T11:07:54+0800",discussion_id:400003,id:500013,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"Problem status changed to resolved",noteable_id:4200244,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!0,type:"Comment",updated_at:"2022-01-24T11:07:54+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2021-11-04T15:08:12+0800",discussion_id:null,id:400003,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -327,62 +327,62 @@ export const getForgot = (req: Request, res: Response) => {\n * Create a random token, then the send user an email with a reset link.\n */\n export const postForgot = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Please enter a valid email address.").isEmail().run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/forgot");\n- }\n-\n- async.waterfall([\n- function createRandomToken(done: Function) {\n- crypto.randomBytes(16, (err, buf) => {\n- const token = buf.toString("hex");\n- done(err, token);\n- });\n- },\n- function setRandomToken(token: AuthToken, done: Function) {\n- User.findOne({ email: req.body.email }, (err, user: any) => {\n- if (err) { return done(err); }\n- if (!user) {\n- req.flash("errors", { msg: "Account with that email address does not exist." });\n- return res.redirect("/forgot");\n- }\n- user.passwordResetToken = token;\n- user.passwordResetExpires = Date.now() + 3600000; // 1 hour\n- user.save((err: WriteError) => {\n- done(err, token, user);\n- });\n- });\n- },\n- function sendForgotPasswordEmail(token: AuthToken, user: UserDocument, done: Function) {\n- const transporter = nodemailer.createTransport({\n- service: "SendGrid",\n- auth: {\n- user: process.env.SENDGRID_USER,\n- pass: process.env.SENDGRID_PASSWORD\n- }\n- });\n- const mailOptions = {\n- to: user.email,\n- from: "hackathon@starter.com",\n- subject: "Reset your password on Hackathon Starter",\n- text: `You are receiving this email because you (or someone else) have requested the reset of the password for your account.\\n\\n\n+ await check("email", "Please enter a valid email address.").isEmail().run(req);\n+ // eslint-disable-next-line @typescript-eslint/camelcase\n+ await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n+\n+ const errors = validationResult(req);\n+\n+ if (!errors.isEmpty()) {\n+ req.flash("errors", errors.array());\n+ return res.redirect("/forgot");\n+ }\n+\n+ async.waterfall([\n+ function createRandomToken(done: Function) {\n+ crypto.randomBytes(16, (err, buf) => {\n+ const token = buf.toString("hex");\n+ done(err, token);\n+ });\n+ },\n+ function setRandomToken(token: AuthToken, done: Function) {\n+ User.findOne({ email: req.body.email }, (err, user: any) => {\n+ if (err) { return done(err); }\n+ if (!user) {\n+ req.flash("errors", { msg: "Account with that email address does not exist." });\n+ return res.redirect("/forgot");\n+ }\n+ user.passwordResetToken = token;\n+ user.passwordResetExpires = Date.now() + 3600000; // 1 hour\n+ user.save((err: WriteError) => {\n+ done(err, token, user);\n+ });\n+ });\n+ },\n+ function sendForgotPasswordEmail(token: AuthToken, user: UserDocument, done: Function) {\n+ const transporter = nodemailer.createTransport({\n+ service: "SendGrid",\n+ auth: {\n+ user: process.env.SENDGRID_USER,\n+ pass: process.env.SENDGRID_PASSWORD\n+ }\n+ });\n+ const mailOptions = {\n+ to: user.email,\n+ from: "hackathon@starter.com",\n+ subject: "Reset your password on Hackathon Starter",\n+ text: `You are receiving this email because you (or someone else) have requested the reset of the password for your account.\\n\\n\n Please click on the following link, or paste this into your browser to complete the process:\\n\\n\n http://${req.headers.host}/reset/${token}\\n\\n\n If you did not request this, please ignore this email and your password will remain unchanged.\\n`\n- };\n- transporter.sendMail(mailOptions, (err) => {\n- req.flash("info", { msg: `An e-mail has been sent to ${user.email} with further instructions.` });\n- done(err);\n- });\n- }\n- ], (err) => {\n- if (err) { return next(err); }\n- res.redirect("/forgot");\n- });\n+ };\n+ transporter.sendMail(mailOptions, (err) => {\n+ req.flash("info", { msg: `An e-mail has been sent to ${user.email} with further instructions.` });\n+ done(err);\n+ });\n+ }\n+ ], (err) => {\n+ if (err) { return next(err); }\n+ res.redirect("/forgot");\n+ });\n };\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_388_384",line_type:"old",note:"111 \n\n\n![image.png](/ide-s/TypeScript-Node-Starter/uploads/cd8f399b2c994d01b4afe179c26e5a4f/image.png)\n",noteable_id:4200244,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:"2022-01-24T11:07:54+08:00",resolved_by:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -327,62 +327,62 @@ export const getForgot = (req: Request, res: Response) => {\n * Create a random token, then the send user an email with a reset link.\n */\n export const postForgot = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Please enter a valid email address.").isEmail().run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/forgot");\n- }\n-\n- async.waterfall([\n- function createRandomToken(done: Function) {\n- crypto.randomBytes(16, (err, buf) => {\n- const token = buf.toString("hex");\n- done(err, token);\n- });\n- },\n- function setRandomToken(token: AuthToken, done: Function) {\n- User.findOne({ email: req.body.email }, (err, user: any) => {\n- if (err) { return done(err); }\n- if (!user) {\n- req.flash("errors", { msg: "Account with that email address does not exist." });\n- return res.redirect("/forgot");\n- }\n- user.passwordResetToken = token;\n- user.passwordResetExpires = Date.now() + 3600000; // 1 hour\n- user.save((err: WriteError) => {\n- done(err, token, user);\n- });\n- });\n- },\n- function sendForgotPasswordEmail(token: AuthToken, user: UserDocument, done: Function) {\n- const transporter = nodemailer.createTransport({\n- service: "SendGrid",\n- auth: {\n- user: process.env.SENDGRID_USER,\n- pass: process.env.SENDGRID_PASSWORD\n- }\n- });\n- const mailOptions = {\n- to: user.email,\n- from: "hackathon@starter.com",\n- subject: "Reset your password on Hackathon Starter",\n- text: `You are receiving this email because you (or someone else) have requested the reset of the password for your account.\\n\\n\n+ await check("email", "Please enter a valid email address.").isEmail().run(req);\n+ // eslint-disable-next-line @typescript-eslint/camelcase\n+ await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n+\n+ const errors = validationResult(req);\n+\n+ if (!errors.isEmpty()) {\n+ req.flash("errors", errors.array());\n+ return res.redirect("/forgot");\n+ }\n+\n+ async.waterfall([\n+ function createRandomToken(done: Function) {\n+ crypto.randomBytes(16, (err, buf) => {\n+ const token = buf.toString("hex");\n+ done(err, token);\n+ });\n+ },\n+ function setRandomToken(token: AuthToken, done: Function) {\n+ User.findOne({ email: req.body.email }, (err, user: any) => {\n+ if (err) { return done(err); }\n+ if (!user) {\n+ req.flash("errors", { msg: "Account with that email address does not exist." });\n+ return res.redirect("/forgot");\n+ }\n+ user.passwordResetToken = token;\n+ user.passwordResetExpires = Date.now() + 3600000; // 1 hour\n+ user.save((err: WriteError) => {\n+ done(err, token, user);\n+ });\n+ });\n+ },\n+ function sendForgotPasswordEmail(token: AuthToken, user: UserDocument, done: Function) {\n+ const transporter = nodemailer.createTransport({\n+ service: "SendGrid",\n+ auth: {\n+ user: process.env.SENDGRID_USER,\n+ pass: process.env.SENDGRID_PASSWORD\n+ }\n+ });\n+ const mailOptions = {\n+ to: user.email,\n+ from: "hackathon@starter.com",\n+ subject: "Reset your password on Hackathon Starter",\n+ text: `You are receiving this email because you (or someone else) have requested the reset of the password for your account.\\n\\n\n Please click on the following link, or paste this into your browser to complete the process:\\n\\n\n http://${req.headers.host}/reset/${token}\\n\\n\n If you did not request this, please ignore this email and your password will remain unchanged.\\n`\n- };\n- transporter.sendMail(mailOptions, (err) => {\n- req.flash("info", { msg: `An e-mail has been sent to ${user.email} with further instructions.` });\n- done(err);\n- });\n- }\n- ], (err) => {\n- if (err) { return next(err); }\n- res.redirect("/forgot");\n- });\n+ };\n+ transporter.sendMail(mailOptions, (err) => {\n+ req.flash("info", { msg: `An e-mail has been sent to ${user.email} with further instructions.` });\n+ done(err);\n+ });\n+ }\n+ ], (err) => {\n+ if (err) { return next(err); }\n+ res.redirect("/forgot");\n+ });\n };\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:"opened",system:!1,type:"Problem",updated_at:"2021-11-04T15:08:12+0800"}],updated_at:"2021-11-04T15:08:18+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},body:null,created_at:"2020-08-21T15:20:06+08:00",id:1585,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},commit_id:null,created_at:"2020-08-21T15:20:25+0800",discussion_id:null,id:18,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -27,30 +27,30 @@ export const getLogin = (req: Request, res: Response) => {\n * Sign in using email and password.\n */\n export const postLogin = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password cannot be blank").isLength({min: 1}).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/login");\n+ await check("email", "Email is not valid").isEmail().run(req);\n+ await check("password", "Password cannot be blank").isLength({ min: 1 }).run(req);\n+ // eslint-disable-next-line @typescript-eslint/camelcase\n+ await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n+\n+ const errors = validationResult(req);\n+\n+ if (!errors.isEmpty()) {\n+ req.flash("errors", errors.array());\n+ return res.redirect("/login");\n+ }\n+\n+ passport.authenticate("local", (err: Error, user: UserDocument, info: IVerifyOptions) => {\n+ if (err) { return next(err); }\n+ if (!user) {\n+ req.flash("errors", { msg: info.message });\n+ return res.redirect("/login");\n }\n-\n- passport.authenticate("local", (err: Error, user: UserDocument, info: IVerifyOptions) => {\n- if (err) { return next(err); }\n- if (!user) {\n- req.flash("errors", {msg: info.message});\n- return res.redirect("/login");\n- }\n- req.logIn(user, (err) => {\n- if (err) { return next(err); }\n- req.flash("success", { msg: "Success! You are logged in." });\n- res.redirect(req.session.returnTo || "/");\n- });\n- })(req, res, next);\n+ req.logIn(user, (err) => {\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_41_48",line_type:"old",note:"第二次测试",noteable_id:1585,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:16382,del_line_num:265,deleted_file:!1,diff:'@@ -27,30 +27,30 @@ export const getLogin = (req: Request, res: Response) => {\n * Sign in using email and password.\n */\n export const postLogin = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password cannot be blank").isLength({min: 1}).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/login");\n+ await check("email", "Email is not valid").isEmail().run(req);\n+ await check("password", "Password cannot be blank").isLength({ min: 1 }).run(req);\n+ // eslint-disable-next-line @typescript-eslint/camelcase\n+ await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n+\n+ const errors = validationResult(req);\n+\n+ if (!errors.isEmpty()) {\n+ req.flash("errors", errors.array());\n+ return res.redirect("/login");\n+ }\n+\n+ passport.authenticate("local", (err: Error, user: UserDocument, info: IVerifyOptions) => {\n+ if (err) { return next(err); }\n+ if (!user) {\n+ req.flash("errors", { msg: info.message });\n+ return res.redirect("/login");\n }\n-\n- passport.authenticate("local", (err: Error, user: UserDocument, info: IVerifyOptions) => {\n- if (err) { return next(err); }\n- if (!user) {\n- req.flash("errors", {msg: info.message});\n- return res.redirect("/login");\n- }\n- req.logIn(user, (err) => {\n- if (err) { return next(err); }\n- req.flash("success", { msg: "Success! You are logged in." });\n- res.redirect(req.session.returnTo || "/");\n- });\n- })(req, res, next);\n+ req.logIn(user, (err) => {\n',id:34,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},commit_id:null,created_at:"2020-08-21T15:20:06+0800",discussion_id:null,id:17,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -27,30 +27,30 @@ export const getLogin = (req: Request, res: Response) => {\n * Sign in using email and password.\n */\n export const postLogin = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password cannot be blank").isLength({min: 1}).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/login");\n+ await check("email", "Email is not valid").isEmail().run(req);\n+ await check("password", "Password cannot be blank").isLength({ min: 1 }).run(req);\n+ // eslint-disable-next-line @typescript-eslint/camelcase\n+ await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n+\n+ const errors = validationResult(req);\n+\n+ if (!errors.isEmpty()) {\n+ req.flash("errors", errors.array());\n+ return res.redirect("/login");\n+ }\n+\n+ passport.authenticate("local", (err: Error, user: UserDocument, info: IVerifyOptions) => {\n+ if (err) { return next(err); }\n+ if (!user) {\n+ req.flash("errors", { msg: info.message });\n+ return res.redirect("/login");\n }\n-\n- passport.authenticate("local", (err: Error, user: UserDocument, info: IVerifyOptions) => {\n- if (err) { return next(err); }\n- if (!user) {\n- req.flash("errors", {msg: info.message});\n- return res.redirect("/login");\n- }\n- req.logIn(user, (err) => {\n- if (err) { return next(err); }\n- req.flash("success", { msg: "Success! You are logged in." });\n- res.redirect(req.session.returnTo || "/");\n- });\n- })(req, res, next);\n+ req.logIn(user, (err) => {\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_43_48",line_type:"old",note:"太好了",noteable_id:1585,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:16382,del_line_num:265,deleted_file:!1,diff:'@@ -27,30 +27,30 @@ export const getLogin = (req: Request, res: Response) => {\n * Sign in using email and password.\n */\n export const postLogin = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password cannot be blank").isLength({min: 1}).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/login");\n+ await check("email", "Email is not valid").isEmail().run(req);\n+ await check("password", "Password cannot be blank").isLength({ min: 1 }).run(req);\n+ // eslint-disable-next-line @typescript-eslint/camelcase\n+ await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n+\n+ const errors = validationResult(req);\n+\n+ if (!errors.isEmpty()) {\n+ req.flash("errors", errors.array());\n+ return res.redirect("/login");\n+ }\n+\n+ passport.authenticate("local", (err: Error, user: UserDocument, info: IVerifyOptions) => {\n+ if (err) { return next(err); }\n+ if (!user) {\n+ req.flash("errors", { msg: info.message });\n+ return res.redirect("/login");\n }\n-\n- passport.authenticate("local", (err: Error, user: UserDocument, info: IVerifyOptions) => {\n- if (err) { return next(err); }\n- if (!user) {\n- req.flash("errors", {msg: info.message});\n- return res.redirect("/login");\n- }\n- req.logIn(user, (err) => {\n- if (err) { return next(err); }\n- req.flash("success", { msg: "Success! You are logged in." });\n- res.redirect(req.session.returnTo || "/");\n- });\n- })(req, res, next);\n+ req.logIn(user, (err) => {\n',id:34,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-08-21T15:20:32+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},body:null,created_at:"2020-08-21T15:28:36+08:00",id:1586,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},commit_id:null,created_at:"2020-08-21T15:28:36+0800",discussion_id:null,id:19,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -27,30 +27,30 @@ export const getLogin = (req: Request, res: Response) => {\n * Sign in using email and password.\n */\n export const postLogin = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password cannot be blank").isLength({min: 1}).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/login");\n+ await check("email", "Email is not valid").isEmail().run(req);\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_30_30",line_type:"old",note:"第三次测试",noteable_id:1586,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:16382,del_line_num:265,deleted_file:!1,diff:'@@ -27,30 +27,30 @@ export const getLogin = (req: Request, res: Response) => {\n * Sign in using email and password.\n */\n export const postLogin = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password cannot be blank").isLength({min: 1}).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/login");\n+ await check("email", "Email is not valid").isEmail().run(req);\n',id:34,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-08-21T15:28:39+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},body:null,created_at:"2020-08-21T15:29:04+08:00",id:1587,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},commit_id:null,created_at:"2020-08-21T15:29:04+0800",discussion_id:null,id:20,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n */\n export const getLogin = (req: Request, res: Response) => {\n- if (req.user) {\n- return res.redirect("/");\n- }\n- res.render("account/login", {\n- title: "Login"\n- });\n+ if (req.user) {\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_21_17",line_type:"old",note:"第四次测试",noteable_id:1587,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:16382,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n */\n export const getLogin = (req: Request, res: Response) => {\n- if (req.user) {\n- return res.redirect("/");\n- }\n- res.render("account/login", {\n- title: "Login"\n- });\n+ if (req.user) {\n',id:34,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-08-21T15:29:07+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},body:null,created_at:"2020-08-21T15:30:06+08:00",id:1588,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},commit_id:null,created_at:"2020-08-21T15:30:07+0800",discussion_id:null,id:21,is_award:!1,labels:["dadada","dada","dadad","LackOfProfessionalField","BusinessArchitectureDesignDefect","DesignPatternDefect","NotFamilierBasicFrame","LackOfJavaBase","CodeStandardsIssue","并发&幂等","基础编码规约","中间件规约"],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n */\n export const getLogin = (req: Request, res: Response) => {\n- if (req.user) {\n- return res.redirect("/");\n- }\n- res.render("account/login", {\n- title: "Login"\n- });\n+ if (req.user) {\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_21_17",line_type:"old",note:"第五次测试",noteable_id:1588,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:16382,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n */\n export const getLogin = (req: Request, res: Response) => {\n- if (req.user) {\n- return res.redirect("/");\n- }\n- res.render("account/login", {\n- title: "Login"\n- });\n+ if (req.user) {\n',id:34,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-08-21T15:30:10+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},body:null,created_at:"2020-08-21T15:30:28+08:00",id:1589,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},commit_id:null,created_at:"2020-08-21T15:30:28+0800",discussion_id:null,id:22,is_award:!1,labels:["内存泄露","日志规约"],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n */\n export const getLogin = (req: Request, res: Response) => {\n- if (req.user) {\n- return res.redirect("/");\n- }\n- res.render("account/login", {\n- title: "Login"\n- });\n+ if (req.user) {\n+ return res.redirect("/");\n+ }\n+ res.render("account/login", {\n+ title: "Login"\n+ });\n };\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_23_17",line_type:"old",note:"第六次测试",noteable_id:1589,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:16382,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n */\n export const getLogin = (req: Request, res: Response) => {\n- if (req.user) {\n- return res.redirect("/");\n- }\n- res.render("account/login", {\n- title: "Login"\n- });\n+ if (req.user) {\n+ return res.redirect("/");\n+ }\n+ res.render("account/login", {\n+ title: "Login"\n+ });\n };\n',id:34,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-08-21T15:30:32+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},body:null,created_at:"2020-08-21T15:31:09+08:00",id:1590,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},commit_id:null,created_at:"2020-08-21T15:31:09+0800",discussion_id:null,id:23,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n */\n export const getLogin = (req: Request, res: Response) => {\n- if (req.user) {\n- return res.redirect("/");\n- }\n- res.render("account/login", {\n- title: "Login"\n- });\n+ if (req.user) {\n+ return res.redirect("/");\n+ }\n+ res.render("account/login", {\n+ title: "Login"\n+ });\n };\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_23_18",line_type:"old",note:"第七次测试",noteable_id:1590,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:16382,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n */\n export const getLogin = (req: Request, res: Response) => {\n- if (req.user) {\n- return res.redirect("/");\n- }\n- res.render("account/login", {\n- title: "Login"\n- });\n+ if (req.user) {\n+ return res.redirect("/");\n+ }\n+ res.render("account/login", {\n+ title: "Login"\n+ });\n };\n',id:34,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-08-21T15:31:15+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},body:null,created_at:"2020-08-21T15:32:38+08:00",id:1591,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},commit_id:null,created_at:"2020-08-21T15:32:38+0800",discussion_id:null,id:24,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n */\n export const getLogin = (req: Request, res: Response) => {\n- if (req.user) {\n- return res.redirect("/");\n- }\n- res.render("account/login", {\n- title: "Login"\n- });\n+ if (req.user) {\n+ return res.redirect("/");\n+ }\n+ res.render("account/login", {\n+ title: "Login"\n+ });\n };\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_23_20",line_type:"old",note:"第八次测试",noteable_id:1591,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:16382,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n */\n export const getLogin = (req: Request, res: Response) => {\n- if (req.user) {\n- return res.redirect("/");\n- }\n- res.render("account/login", {\n- title: "Login"\n- });\n+ if (req.user) {\n+ return res.redirect("/");\n+ }\n+ res.render("account/login", {\n+ title: "Login"\n+ });\n };\n',id:34,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-08-21T15:32:41+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},body:null,created_at:"2020-09-04T16:20:30+08:00",id:1632,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},commit_id:null,created_at:"2020-11-16T19:42:40+0800",discussion_id:78,id:179,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"Problem status changed to resolved",noteable_id:1632,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!0,type:"Comment",updated_at:"2020-11-16T19:42:40+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},commit_id:null,created_at:"2020-11-16T19:42:37+0800",discussion_id:78,id:178,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"Problem status changed to invalid",noteable_id:1632,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!0,type:"Comment",updated_at:"2020-11-16T19:42:37+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-09-16T11:54:11+0800",discussion_id:78,id:81,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"Problem status changed to resolved",noteable_id:1632,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!0,type:"Comment",updated_at:"2020-09-16T11:54:11+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},commit_id:null,created_at:"2020-09-16T11:52:42+0800",discussion_id:null,id:78,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:1,deleted_file:!1,diff:"@@ -1,4 +1,3 @@\n-# TypeScript Node Starter\n > hello world typescript\n \n The main purpose of this repository is to show a working Node.js API Server + front-end project and workflow for writing Node code in TypeScript.\n",id:1075,new_file:!1,new_path:"README.md",old_path:"README.md",renamed_file:!1,too_large:!1},line_code:"8ec9a00bfd09b3190ac6b22251dbb1aa95a0579d_8_0",line_type:"old",note:"测试",noteable_id:1632,noteable_type:"ReviewComment",outdated:!1,path:"README.md",resolved_at:"2020-11-16T19:42:40+08:00",resolved_by:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},st_diff:{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:17959,del_line_num:1,deleted_file:!1,diff:"@@ -1,4 +1,3 @@\n-# TypeScript Node Starter\n > hello world typescript\n \n The main purpose of this repository is to show a working Node.js API Server + front-end project and workflow for writing Node code in TypeScript.\n",id:267,new_file:!1,new_path:"README.md",old_path:"README.md",renamed_file:!1,too_large:!1},state:"resolved",system:!1,type:"Problem",updated_at:"2021-05-20T14:27:46+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},commit_id:null,created_at:"2020-09-14T12:10:59+0800",discussion_id:20,id:76,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"对对对\n对对对\n对对对\n对对对对对对\n\n\n\n\n\n\n对对对",noteable_id:1632,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!1,type:"Comment",updated_at:"2020-09-14T12:10:59+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},commit_id:null,created_at:"2020-09-14T12:10:40+0800",discussion_id:20,id:75,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"@jiankan.hjk(剑侃) ",noteable_id:1632,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!1,type:"Comment",updated_at:"2020-09-14T12:10:40+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},commit_id:null,created_at:"2020-09-09T11:22:29+0800",discussion_id:null,id:61,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:49,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:49,deleted_file:!1,diff:'@@ -3,73 +3,73 @@ import crypto from "crypto";\n import mongoose from "mongoose";\n \n',id:1089,new_file:!1,new_path:"src/models/User.ts",old_path:"src/models/User.ts",renamed_file:!1,too_large:!1},line_code:"e9bf216a20e84ee797b9402193000e41dad21aa6_4_4",line_type:"old",note:"test",noteable_id:1632,noteable_type:"ReviewComment",outdated:!1,path:"src/models/User.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:49,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:17641,del_line_num:49,deleted_file:!1,diff:'@@ -3,73 +3,73 @@ import crypto from "crypto";\n import mongoose from "mongoose";\n \n',id:48,new_file:!1,new_path:"src/models/User.ts",old_path:"src/models/User.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},commit_id:null,created_at:"2020-09-09T10:12:09+0800",discussion_id:null,id:60,is_award:!1,labels:[],latest_st_diff:{a_mode:"0",add_line_num:12,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:0,deleted_file:!1,diff:'@@ -0,0 +1,12 @@\n+{\n+ "name": "aaa",\n',id:1079,new_file:!0,new_path:"aaa/package.json",old_path:"aaa/package.json",renamed_file:!1,too_large:!1},line_code:"a1cd6d42683feafb8bafa3c3c68369f59d3013e6_0_2",line_type:"new",note:"测试",noteable_id:1632,noteable_type:"ReviewComment",outdated:!1,path:"aaa/package.json",resolved_at:null,resolved_by:null,st_diff:{a_mode:"0",add_line_num:12,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:17641,del_line_num:0,deleted_file:!1,diff:'@@ -0,0 +1,12 @@\n+{\n+ "name": "aaa",\n',id:45,new_file:!0,new_path:"aaa/package.json",old_path:"aaa/package.json",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},commit_id:null,created_at:"2020-09-08T10:21:29+0800",discussion_id:null,id:57,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:49,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:49,deleted_file:!1,diff:'@@ -3,73 +3,73 @@ import crypto from "crypto";\n import mongoose from "mongoose";\n \n export type UserDocument = mongoose.Document & {\n- email: string;\n- password: string;\n- passwordResetToken: string;\n- passwordResetExpires: Date;\n+ email: string;\n',id:1089,new_file:!1,new_path:"src/models/User.ts",old_path:"src/models/User.ts",renamed_file:!1,too_large:!1},line_code:"e9bf216a20e84ee797b9402193000e41dad21aa6_7_6",line_type:"old",note:"# test\n# test\n# test\n# test\n# test\n# test\n# test\n# test\n# test\n# test\n# test",noteable_id:1632,noteable_type:"ReviewComment",outdated:!1,path:"src/models/User.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:49,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:17605,del_line_num:49,deleted_file:!1,diff:'@@ -3,73 +3,73 @@ import crypto from "crypto";\n import mongoose from "mongoose";\n \n export type UserDocument = mongoose.Document & {\n- email: string;\n- password: string;\n- passwordResetToken: string;\n- passwordResetExpires: Date;\n+ email: string;\n',id:491,new_file:!1,new_path:"src/models/User.ts",old_path:"src/models/User.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},commit_id:null,created_at:"2020-09-08T00:32:18+0800",discussion_id:null,id:56,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:7,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:7,deleted_file:!1,diff:'@@ -1,18 +1,18 @@\n import winston from "winston";\n \n const options: winston.LoggerOptions = {\n- transports: [\n- new winston.transports.Console({\n- level: process.env.NODE_ENV === "production" ? "error" : "debug"\n- }),\n- new winston.transports.File({ filename: "debug.log", level: "debug" })\n- ]\n+ transports: [\n',id:1092,new_file:!1,new_path:"src/util/logger.ts",old_path:"src/util/logger.ts",renamed_file:!1,too_large:!1},line_code:"bd5630fadbfeb531e34aa7539e6a12a247f8b0c6_9_4",line_type:"old",note:"第二条",noteable_id:1632,noteable_type:"ReviewComment",outdated:!1,path:"src/util/logger.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:7,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:17605,del_line_num:7,deleted_file:!1,diff:'@@ -1,18 +1,18 @@\n import winston from "winston";\n \n const options: winston.LoggerOptions = {\n- transports: [\n- new winston.transports.Console({\n- level: process.env.NODE_ENV === "production" ? "error" : "debug"\n- }),\n- new winston.transports.File({ filename: "debug.log", level: "debug" })\n- ]\n+ transports: [\n',id:494,new_file:!1,new_path:"src/util/logger.ts",old_path:"src/util/logger.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},commit_id:null,created_at:"2020-09-08T00:15:45+0800",discussion_id:null,id:55,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:7,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:7,deleted_file:!1,diff:'@@ -1,18 +1,18 @@\n import winston from "winston";\n \n const options: winston.LoggerOptions = {\n- transports: [\n- new winston.transports.Console({\n- level: process.env.NODE_ENV === "production" ? "error" : "debug"\n- }),\n- new winston.transports.File({ filename: "debug.log", level: "debug" })\n- ]\n+ transports: [\n',id:1092,new_file:!1,new_path:"src/util/logger.ts",old_path:"src/util/logger.ts",renamed_file:!1,too_large:!1},line_code:"bd5630fadbfeb531e34aa7539e6a12a247f8b0c6_9_4",line_type:"old",note:"> h\n# test\n## test\n### test\n#### test\ntest\n @huaqiao.lhq(常浅) ",noteable_id:1632,noteable_type:"ReviewComment",outdated:!1,path:"src/util/logger.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:7,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:17605,del_line_num:7,deleted_file:!1,diff:'@@ -1,18 +1,18 @@\n import winston from "winston";\n \n const options: winston.LoggerOptions = {\n- transports: [\n- new winston.transports.Console({\n- level: process.env.NODE_ENV === "production" ? "error" : "debug"\n- }),\n- new winston.transports.File({ filename: "debug.log", level: "debug" })\n- ]\n+ transports: [\n',id:494,new_file:!1,new_path:"src/util/logger.ts",old_path:"src/util/logger.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},commit_id:null,created_at:"2020-09-07T17:01:37+0800",discussion_id:null,id:54,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:49,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:49,deleted_file:!1,diff:'@@ -3,73 +3,73 @@ import crypto from "crypto";\n import mongoose from "mongoose";\n \n export type UserDocument = mongoose.Document & {\n- email: string;\n- password: string;\n- passwordResetToken: string;\n- passwordResetExpires: Date;\n+ email: string;\n+ password: string;\n+ passwordResetToken: string;\n+ passwordResetExpires: Date;\n \n- facebook: string;\n- tokens: AuthToken[];\n+ facebook: string;\n+ tokens: AuthToken[];\n \n- profile: {\n- name: string;\n- gender: string;\n- location: string;\n- website: string;\n- picture: string;\n- };\n+ profile: {\n+ name: string;\n+ gender: string;\n+ location: string;\n+ website: string;\n+ picture: string;\n+ };\n \n- comparePassword: comparePasswordFunction;\n- gravatar: (size: number) => string;\n+ comparePassword: comparePasswordFunction;\n+ gravatar: (size: number) => string;\n };\n \n type comparePasswordFunction = (candidatePassword: string, cb: (err: any, isMatch: any) => {}) => void;\n \n export interface AuthToken {\n- accessToken: string;\n- kind: string;\n+ accessToken: string;\n+ kind: string;\n }\n \n const userSchema = new mongoose.Schema({\n- email: { type: String, unique: true },\n- password: String,\n- passwordResetToken: String,\n- passwordResetExpires: Date,\n+ email: { type: String, unique: true },\n+ password: String,\n+ passwordResetToken: String,\n+ passwordResetExpires: Date,\n \n- facebook: String,\n- twitter: String,\n- google: String,\n- tokens: Array,\n+ facebook: String,\n+ twitter: String,\n+ google: String,\n+ tokens: Array,\n \n- profile: {\n- name: String,\n- gender: String,\n- location: String,\n- website: String,\n- picture: String\n- }\n+ profile: {\n+ name: String,\n+ gender: String,\n+ location: String,\n+ website: String,\n+ picture: String\n+ }\n }, { timestamps: true });\n \n /**\n * Password hash middleware.\n */\n userSchema.pre("save", function save(next) {\n- const user = this as UserDocument;\n- if (!user.isModified("password")) { return next(); }\n- bcrypt.genSalt(10, (err, salt) => {\n- if (err) { return next(err); }\n- bcrypt.hash(user.password, salt, undefined, (err: mongoose.Error, hash) => {\n- if (err) { return next(err); }\n- user.password = hash;\n- next();\n- });\n+ const user = this as UserDocument;\n',id:1089,new_file:!1,new_path:"src/models/User.ts",old_path:"src/models/User.ts",renamed_file:!1,too_large:!1},line_code:"e9bf216a20e84ee797b9402193000e41dad21aa6_57_57",line_type:"old",note:"测试一下",noteable_id:1632,noteable_type:"ReviewComment",outdated:!1,path:"src/models/User.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:49,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:17605,del_line_num:49,deleted_file:!1,diff:'@@ -3,73 +3,73 @@ import crypto from "crypto";\n import mongoose from "mongoose";\n \n export type UserDocument = mongoose.Document & {\n- email: string;\n- password: string;\n- passwordResetToken: string;\n- passwordResetExpires: Date;\n+ email: string;\n+ password: string;\n+ passwordResetToken: string;\n+ passwordResetExpires: Date;\n \n- facebook: string;\n- tokens: AuthToken[];\n+ facebook: string;\n+ tokens: AuthToken[];\n \n- profile: {\n- name: string;\n- gender: string;\n- location: string;\n- website: string;\n- picture: string;\n- };\n+ profile: {\n+ name: string;\n+ gender: string;\n+ location: string;\n+ website: string;\n+ picture: string;\n+ };\n \n- comparePassword: comparePasswordFunction;\n- gravatar: (size: number) => string;\n+ comparePassword: comparePasswordFunction;\n+ gravatar: (size: number) => string;\n };\n \n type comparePasswordFunction = (candidatePassword: string, cb: (err: any, isMatch: any) => {}) => void;\n \n export interface AuthToken {\n- accessToken: string;\n- kind: string;\n+ accessToken: string;\n+ kind: string;\n }\n \n const userSchema = new mongoose.Schema({\n- email: { type: String, unique: true },\n- password: String,\n- passwordResetToken: String,\n- passwordResetExpires: Date,\n+ email: { type: String, unique: true },\n+ password: String,\n+ passwordResetToken: String,\n+ passwordResetExpires: Date,\n \n- facebook: String,\n- twitter: String,\n- google: String,\n- tokens: Array,\n+ facebook: String,\n+ twitter: String,\n+ google: String,\n+ tokens: Array,\n \n- profile: {\n- name: String,\n- gender: String,\n- location: String,\n- website: String,\n- picture: String\n- }\n+ profile: {\n+ name: String,\n+ gender: String,\n+ location: String,\n+ website: String,\n+ picture: String\n+ }\n }, { timestamps: true });\n \n /**\n * Password hash middleware.\n */\n userSchema.pre("save", function save(next) {\n- const user = this as UserDocument;\n- if (!user.isModified("password")) { return next(); }\n- bcrypt.genSalt(10, (err, salt) => {\n- if (err) { return next(err); }\n- bcrypt.hash(user.password, salt, undefined, (err: mongoose.Error, hash) => {\n- if (err) { return next(err); }\n- user.password = hash;\n- next();\n- });\n+ const user = this as UserDocument;\n',id:491,new_file:!1,new_path:"src/models/User.ts",old_path:"src/models/User.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},commit_id:null,created_at:"2020-09-07T16:18:00+0800",discussion_id:null,id:52,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:4,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:4,deleted_file:!1,diff:'@@ -66,7 +66,7 @@ passport.use(new FacebookStrategy({\n callbackURL: "/auth/facebook/callback",\n',id:1087,new_file:!1,new_path:"src/config/passport.ts",old_path:"src/config/passport.ts",renamed_file:!1,too_large:!1},line_code:"761e3f18c863ddeee900bf74ddd8fed56a4aa2c9_0_38",line_type:"old",note:"测试",noteable_id:1632,noteable_type:"ReviewComment",outdated:!1,path:"src/config/passport.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:4,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:17605,del_line_num:4,deleted_file:!1,diff:'@@ -66,7 +66,7 @@ passport.use(new FacebookStrategy({\n callbackURL: "/auth/facebook/callback",\n',id:489,new_file:!1,new_path:"src/config/passport.ts",old_path:"src/config/passport.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-09-16T11:52:52+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},body:null,created_at:"2020-11-16T19:37:52+08:00",id:1765,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},commit_id:null,created_at:"2022-01-26T11:01:53+0800",discussion_id:176,id:500030,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"Problem status changed to resolved",noteable_id:1765,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!0,type:"Comment",updated_at:"2022-01-26T11:01:53+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},commit_id:null,created_at:"2022-01-25T15:52:22+0800",discussion_id:176,id:500023,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"Problem status changed to opened",noteable_id:1765,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!0,type:"Comment",updated_at:"2022-01-25T15:52:22+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-11-26T11:23:06+0800",discussion_id:176,id:185,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"Problem status changed to resolved",noteable_id:1765,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!0,type:"Comment",updated_at:"2020-11-26T11:23:06+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},commit_id:null,created_at:"2020-11-16T19:37:53+0800",discussion_id:null,id:176,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:1,deleted_file:!1,diff:"@@ -1,4 +1,3 @@\n-# TypeScript Node Starter\n > hello world typescript\n \n The main purpose of this repository is to show a working Node.js API Server + front-end project and workflow for writing Node code in TypeScript.\n",id:1075,new_file:!1,new_path:"README.md",old_path:"README.md",renamed_file:!1,too_large:!1},line_code:"8ec9a00bfd09b3190ac6b22251dbb1aa95a0579d_5_4",line_type:"old",note:"测试",noteable_id:1765,noteable_type:"ReviewComment",outdated:!1,path:"README.md",resolved_at:"2022-01-26T11:01:53+08:00",resolved_by:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},st_diff:{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:1,deleted_file:!1,diff:"@@ -1,4 +1,3 @@\n-# TypeScript Node Starter\n > hello world typescript\n \n The main purpose of this repository is to show a working Node.js API Server + front-end project and workflow for writing Node code in TypeScript.\n",id:1075,new_file:!1,new_path:"README.md",old_path:"README.md",renamed_file:!1,too_large:!1},state:"resolved",system:!1,type:"Problem",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-11-17T10:31:07+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"winjo.gwj@test.com",extern_uid:"190046",id:15346,name:"彦熹",state:"active",username:"winjo.gwj",web_url:"https://test.com.com/nwpipe/u/190046"},body:null,created_at:"2020-11-12T15:29:34+08:00",id:1759,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"winjo.gwj@test.com",extern_uid:"190046",id:15346,name:"彦熹",state:"active",username:"winjo.gwj",web_url:"https://test.com.com/nwpipe/u/190046"},commit_id:null,created_at:"2021-07-22T17:21:21+0800",discussion_id:null,id:200002,is_award:!1,labels:[],latest_st_diff:{a_mode:"0",add_line_num:12,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:0,deleted_file:!1,diff:'@@ -0,0 +1,12 @@\n+{\n+ "name": "aaa",\n+ "version": "1.0.0",\n+ "description": "",\n+ "main": "index.js",\n',id:1079,new_file:!0,new_path:"aaa/package.json",old_path:"aaa/package.json",renamed_file:!1,too_large:!1},line_code:"a1cd6d42683feafb8bafa3c3c68369f59d3013e6_0_5",line_type:"new",note:"测试下",noteable_id:1759,noteable_type:"ReviewComment",outdated:!1,path:"aaa/package.json",resolved_at:null,resolved_by:null,st_diff:{a_mode:"0",add_line_num:12,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:0,deleted_file:!1,diff:'@@ -0,0 +1,12 @@\n+{\n+ "name": "aaa",\n+ "version": "1.0.0",\n+ "description": "",\n+ "main": "index.js",\n',id:1079,new_file:!0,new_path:"aaa/package.json",old_path:"aaa/package.json",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-07-22T17:21:21+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"winjo.gwj@test.com",extern_uid:"190046",id:15346,name:"彦熹",state:"active",username:"winjo.gwj",web_url:"https://test.com.com/nwpipe/u/190046"},commit_id:null,created_at:"2020-11-12T15:29:34+0800",discussion_id:null,id:171,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:1,deleted_file:!1,diff:"@@ -1,4 +1,3 @@\n-# TypeScript Node Starter\n > hello world typescript\n \n The main purpose of this repository is to show a working Node.js API Server + front-end project and workflow for writing Node code in TypeScript.\n",id:1075,new_file:!1,new_path:"README.md",old_path:"README.md",renamed_file:!1,too_large:!1},line_code:"8ec9a00bfd09b3190ac6b22251dbb1aa95a0579d_6_4",line_type:"old",note:"test",noteable_id:1759,noteable_type:"ReviewComment",outdated:!0,path:"README.md",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"ac55c77aa72d49280058ed6054610f454ee694b1",compare_diff_id:20699,del_line_num:1,deleted_file:!1,diff:"@@ -1,4 +1,3 @@\n-# TypeScript Node Starter\n > hello world typescript\n \n The main purpose of this repository is to show a working Node.js API Server + front-end project and workflow for writing Node code in TypeScript.\n",id:550,new_file:!1,new_path:"README.md",old_path:"README.md",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2020-11-12T15:29:34+0800"}],updated_at:"2021-07-22T17:21:24+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"winjo.gwj@test.com",extern_uid:"190046",id:15346,name:"彦熹",state:"active",username:"winjo.gwj",web_url:"https://test.com.com/nwpipe/u/190046"},body:null,created_at:"2021-07-22T17:21:53+08:00",id:2100002,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"winjo.gwj@test.com",extern_uid:"190046",id:15346,name:"彦熹",state:"active",username:"winjo.gwj",web_url:"https://test.com.com/nwpipe/u/190046"},commit_id:null,created_at:"2021-07-23T16:22:54+0800",discussion_id:null,id:300003,is_award:!1,labels:["LackOfJavaBase"],latest_st_diff:{a_mode:"100644",add_line_num:4,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:4,deleted_file:!1,diff:'@@ -4,7 +4,7 @@ import passportFacebook from "passport-facebook";\n import _ from "lodash";\n \n // import { User, UserType } from \'../models/User\';\n-import { User, UserDocument } from "../models/User";\n+import { User, UserDocument } from "../models/User"\n import { Request, Response, NextFunction } from "express";\n \n const LocalStrategy = passportLocal.Strategy;\n',id:1087,new_file:!1,new_path:"src/config/passport.ts",old_path:"src/config/passport.ts",renamed_file:!1,too_large:!1},line_code:"761e3f18c863ddeee900bf74ddd8fed56a4aa2c9_10_10",line_type:"old",note:"test",noteable_id:2100002,noteable_type:"ReviewComment",outdated:!1,path:"src/config/passport.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:4,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:4,deleted_file:!1,diff:'@@ -4,7 +4,7 @@ import passportFacebook from "passport-facebook";\n import _ from "lodash";\n \n // import { User, UserType } from \'../models/User\';\n-import { User, UserDocument } from "../models/User";\n+import { User, UserDocument } from "../models/User"\n import { Request, Response, NextFunction } from "express";\n \n const LocalStrategy = passportLocal.Strategy;\n',id:1087,new_file:!1,new_path:"src/config/passport.ts",old_path:"src/config/passport.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-07-23T16:22:54+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"winjo.gwj@test.com",extern_uid:"190046",id:15346,name:"彦熹",state:"active",username:"winjo.gwj",web_url:"https://test.com.com/nwpipe/u/190046"},commit_id:null,created_at:"2021-07-23T16:22:44+0800",discussion_id:60,id:300002,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"666",noteable_id:2100002,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!1,type:"Comment",updated_at:"2021-07-23T16:22:44+0800"}],updated_at:"2021-07-23T16:23:01+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},body:null,created_at:"2022-01-19T15:20:27+08:00",id:4700002,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},commit_id:null,created_at:"2022-01-19T15:21:02+0800",discussion_id:null,id:500004,is_award:!1,labels:[],latest_st_diff:{a_mode:"0",add_line_num:12,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:0,deleted_file:!1,diff:'@@ -0,0 +1,12 @@\n+{\n+ "name": "aaa",\n+ "version": "1.0.0",\n+ "description": "",\n+ "main": "index.js",\n+ "scripts": {\n+ "test": "echo \\"Error: no test specified\\" && exit 1"\n+ },\n+ "keywords": [],\n',id:1079,new_file:!0,new_path:"aaa/package.json",old_path:"aaa/package.json",renamed_file:!1,too_large:!1},line_code:"a1cd6d42683feafb8bafa3c3c68369f59d3013e6_0_9",line_type:"new",note:"333",noteable_id:4700002,noteable_type:"ReviewComment",outdated:!1,path:"aaa/package.json",resolved_at:null,resolved_by:null,st_diff:{a_mode:"0",add_line_num:12,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:0,deleted_file:!1,diff:'@@ -0,0 +1,12 @@\n+{\n+ "name": "aaa",\n+ "version": "1.0.0",\n+ "description": "",\n+ "main": "index.js",\n+ "scripts": {\n+ "test": "echo \\"Error: no test specified\\" && exit 1"\n+ },\n+ "keywords": [],\n',id:1079,new_file:!0,new_path:"aaa/package.json",old_path:"aaa/package.json",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2022-01-19T15:21:02+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},commit_id:null,created_at:"2022-01-19T15:20:44+0800",discussion_id:null,id:500003,is_award:!1,labels:[],latest_st_diff:{a_mode:"0",add_line_num:12,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:0,deleted_file:!1,diff:'@@ -0,0 +1,12 @@\n+{\n+ "name": "aaa",\n+ "version": "1.0.0",\n+ "description": "",\n+ "main": "index.js",\n+ "scripts": {\n+ "test": "echo \\"Error: no test specified\\" && exit 1"\n',id:1079,new_file:!0,new_path:"aaa/package.json",old_path:"aaa/package.json",renamed_file:!1,too_large:!1},line_code:"a1cd6d42683feafb8bafa3c3c68369f59d3013e6_0_7",line_type:"new",note:"222",noteable_id:4700002,noteable_type:"ReviewComment",outdated:!1,path:"aaa/package.json",resolved_at:null,resolved_by:null,st_diff:{a_mode:"0",add_line_num:12,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:0,deleted_file:!1,diff:'@@ -0,0 +1,12 @@\n+{\n+ "name": "aaa",\n+ "version": "1.0.0",\n+ "description": "",\n+ "main": "index.js",\n+ "scripts": {\n+ "test": "echo \\"Error: no test specified\\" && exit 1"\n',id:1079,new_file:!0,new_path:"aaa/package.json",old_path:"aaa/package.json",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2022-01-19T15:20:44+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},commit_id:null,created_at:"2022-01-19T15:20:28+0800",discussion_id:null,id:500002,is_award:!1,labels:[],latest_st_diff:{a_mode:"0",add_line_num:12,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:0,deleted_file:!1,diff:'@@ -0,0 +1,12 @@\n+{\n+ "name": "aaa",\n+ "version": "1.0.0",\n+ "description": "",\n+ "main": "index.js",\n',id:1079,new_file:!0,new_path:"aaa/package.json",old_path:"aaa/package.json",renamed_file:!1,too_large:!1},line_code:"a1cd6d42683feafb8bafa3c3c68369f59d3013e6_0_5",line_type:"new",note:"111",noteable_id:4700002,noteable_type:"ReviewComment",outdated:!1,path:"aaa/package.json",resolved_at:null,resolved_by:null,st_diff:{a_mode:"0",add_line_num:12,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:0,deleted_file:!1,diff:'@@ -0,0 +1,12 @@\n+{\n+ "name": "aaa",\n+ "version": "1.0.0",\n+ "description": "",\n+ "main": "index.js",\n',id:1079,new_file:!0,new_path:"aaa/package.json",old_path:"aaa/package.json",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2022-01-19T15:20:28+0800"}],updated_at:"2022-01-19T15:22:55+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},body:null,created_at:"2022-01-26T02:16:02+08:00",id:4700010,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},commit_id:null,created_at:"2022-01-26T11:01:34+0800",discussion_id:176,id:500029,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:'> \x3c!-- reply id="176" --\x3e\n> 测试\n\n123',noteable_id:4700010,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!1,type:"Comment",updated_at:"2022-01-26T11:01:34+0800"}],updated_at:"2022-01-26T11:01:39+08:00"}],notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-10-12T18:54:04+0800",discussion_id:null,id:121,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"[Force Push] To feat/123123 Of commit: daa3e131 - fix: li in pr desc",noteable_id:13055,noteable_type:"PullRequest",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!0,type:"Comment",updated_at:"2020-10-12T18:54:04+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-10-12T18:54:04+0800",discussion_id:null,id:120,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"review tasks reopened",noteable_id:13055,noteable_type:"PullRequest",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!0,type:"Comment",updated_at:"2020-10-12T18:54:04+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-10-12T18:52:43+0800",discussion_id:null,id:117,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"Added 2 commits:\n\n* 0cee41f8 - feat: 123\n* 46e1c30f - 123",noteable_id:13055,noteable_type:"PullRequest",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!0,type:"Comment",updated_at:"2020-10-12T18:52:43+0800"}],pending_review:null},"/api/v3/projects/42422/pull_requests/13055/diffs/mark_files":[{file_path_sha:"8ec9a00bfd09b3190ac6b22251dbb1aa95a0579d",mark_as_read:!0,updated_after_read:!1},{file_path_sha:"a1cd6d42683feafb8bafa3c3c68369f59d3013e6",mark_as_read:!0,updated_after_read:!1}],"/webapi/projects/42422/pull_requests/13055/diffs/31918/changes_overview":[{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,compare_diff_id:31918,del_line_num:1,deleted_file:!1,id:1075,mark_as_read:!0,new_file:!1,new_path:"README.md",old_path:"README.md",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"0",add_line_num:1,b_mode:"100644",binary_file:!1,compare_diff_id:31918,del_line_num:0,deleted_file:!1,id:1076,mark_as_read:!1,new_file:!0,new_path:"a.md",old_path:"a.md",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"0",add_line_num:228,b_mode:"100644",binary_file:!1,compare_diff_id:31918,del_line_num:0,deleted_file:!1,id:1077,mark_as_read:!1,new_file:!0,new_path:"a.ts",old_path:"a.ts",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"0",add_line_num:1,b_mode:"100644",binary_file:!1,compare_diff_id:31918,del_line_num:0,deleted_file:!1,id:1078,mark_as_read:!1,new_file:!0,new_path:"aa.md",old_path:"aa.md",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"0",add_line_num:12,b_mode:"100644",binary_file:!1,compare_diff_id:31918,del_line_num:0,deleted_file:!1,id:1079,mark_as_read:!0,new_file:!0,new_path:"aaa/package.json",old_path:"aaa/package.json",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"0",add_line_num:0,b_mode:"100644",binary_file:!1,compare_diff_id:31918,del_line_num:0,deleted_file:!1,id:1080,mark_as_read:!1,new_file:!0,new_path:"apiMeta.json",old_path:"apiMeta.json",renamed_file:!1,too_large:!0,updated_after_read:!1},{a_mode:"0",add_line_num:0,b_mode:"100644",binary_file:!0,compare_diff_id:31918,del_line_num:0,deleted_file:!1,id:1081,mark_as_read:!1,new_file:!0,new_path:"assets/logo_white.gif",old_path:"assets/logo_white.gif",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,compare_diff_id:31918,del_line_num:0,deleted_file:!1,id:1082,mark_as_read:!1,new_file:!1,new_path:"assets/斋藤飞鸟1.jpg",old_path:"assets/斋藤飞鸟.jpg",renamed_file:!0,too_large:!1,updated_after_read:!1},{a_mode:"0",add_line_num:0,b_mode:"100644",binary_file:!1,compare_diff_id:31918,del_line_num:0,deleted_file:!1,id:1083,mark_as_read:!1,new_file:!0,new_path:"b.md",old_path:"b.md",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"0",add_line_num:3,b_mode:"100644",binary_file:!1,compare_diff_id:31918,del_line_num:0,deleted_file:!1,id:1084,mark_as_read:!1,new_file:!0,new_path:"gbk.ts",old_path:"gbk.ts",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"0",add_line_num:12,b_mode:"100644",binary_file:!1,compare_diff_id:31918,del_line_num:0,deleted_file:!1,id:1085,mark_as_read:!1,new_file:!0,new_path:"hk-cdp_ALL_api#space#info#popUp.json",old_path:"hk-cdp_ALL_api#space#info#popUp.json",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"0",add_line_num:168,b_mode:"100644",binary_file:!1,compare_diff_id:31918,del_line_num:0,deleted_file:!1,id:1086,mark_as_read:!1,new_file:!0,new_path:"pom.xml",old_path:"pom.xml",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:4,b_mode:"100644",binary_file:!1,compare_diff_id:31918,del_line_num:4,deleted_file:!1,id:1087,mark_as_read:!1,new_file:!1,new_path:"src/config/passport.ts",old_path:"src/config/passport.ts",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,compare_diff_id:31918,del_line_num:265,deleted_file:!1,id:1088,mark_as_read:!1,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:49,b_mode:"100644",binary_file:!1,compare_diff_id:31918,del_line_num:49,deleted_file:!1,id:1089,mark_as_read:!1,new_file:!1,new_path:"src/models/User.ts",old_path:"src/models/User.ts",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,compare_diff_id:31918,del_line_num:1,deleted_file:!1,id:1090,mark_as_read:!1,new_file:!1,new_path:"src/public/css/main.scss",old_path:"src/public/css/main.scss",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:1,b_mode:"100644",binary_file:!1,compare_diff_id:31918,del_line_num:1,deleted_file:!1,id:1091,mark_as_read:!1,new_file:!1,new_path:"src/server.ts",old_path:"src/server.ts",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:7,b_mode:"100644",binary_file:!1,compare_diff_id:31918,del_line_num:7,deleted_file:!1,id:1092,mark_as_read:!1,new_file:!1,new_path:"src/util/logger.ts",old_path:"src/util/logger.ts",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:0,b_mode:"0",binary_file:!1,compare_diff_id:31918,del_line_num:22,deleted_file:!0,id:1093,mark_as_read:!1,new_file:!1,new_path:"tsconfig.json",old_path:"tsconfig.json",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:2,b_mode:"100644",binary_file:!1,compare_diff_id:31918,del_line_num:2,deleted_file:!1,id:1094,mark_as_read:!1,new_file:!1,new_path:"views/contact123.pug",old_path:"views/contact.pug",renamed_file:!0,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:0,b_mode:"0",binary_file:!1,compare_diff_id:31918,del_line_num:27,deleted_file:!0,id:1095,mark_as_read:!1,new_file:!1,new_path:"views/home.pug",old_path:"views/home.pug",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,compare_diff_id:31918,del_line_num:0,deleted_file:!1,id:1096,mark_as_read:!1,new_file:!1,new_path:"views/partials/footer-renamed.pug",old_path:"views/partials/footer.pug",renamed_file:!0,too_large:!1,updated_after_read:!1}],"/api/v3/projects/42422/repository/blobs/df72e4d1c394af6d1c21cd042116f83a792fa8c6":'{\n"name": "bbb",\n"version": "2.0.0",\n"description": "",\n"main": "test.js",\n"scripts": {\n"test": "echo "Error: no test specified" && exit 1"\n},\n"keywords": [],\n"license": "ISC"\n}',"/api/v3/projects/42422/repository/blobs/87ed08a7245161fc9675981be01a6effe661b803":'{\n"name": "aaa",\n"version": "1.0.0",\n"description": "",\n"main": "index.js",\n"scripts": {\n"test": "echo "Error: no test specified" && exit 1"\n},\n"keywords": [],\n"author": "",\n"license": "ISC"\n}',"/webapi/projects/42422/pull_requests/13055/diffs/31918/changes/1079":{a_mode:"0",add_line_num:12,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:31918,del_line_num:0,deleted_file:!1,diff:'@@ -0,0 +1,12 @@\n+{\n+ "name": "aaa",\n+ "version": "1.0.0",\n+ "description": "",\n+ "main": "index.js",\n+ "scripts": {\n+ "test": "echo \\"Error: no test specified\\" && exit 1"\n+ },\n+ "keywords": [],\n+ "author": "",\n+ "license": "ISC"\n+}\n',highlighted_diff:null,id:1079,new_file:!0,new_path:"aaa/package.json",old_path:"aaa/package.json",renamed_file:!1,too_large:!1},"/api/v3/projects/42422/pull_requests/13055/reviews":{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.net",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:" "},body:null,created_at:"2022-07-15T16:57:34.591+08:00",id:5100024,pending:!0,pull_request_id:12600136,updated_at:"2022-07-15T16:57:34.591+08:00"},"/webapi/projects/42422/pull_requests/13055/diffs/20699/changes_overview":[{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,compare_diff_id:20699,del_line_num:1,deleted_file:!1,id:550,mark_as_read:!0,new_file:!1,new_path:"README.md",old_path:"README.md",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"0",add_line_num:1,b_mode:"100644",binary_file:!1,compare_diff_id:20699,del_line_num:0,deleted_file:!1,id:551,mark_as_read:!1,new_file:!0,new_path:"a.md",old_path:"a.md",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"0",add_line_num:228,b_mode:"100644",binary_file:!1,compare_diff_id:20699,del_line_num:0,deleted_file:!1,id:552,mark_as_read:!1,new_file:!0,new_path:"a.ts",old_path:"a.ts",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"0",add_line_num:1,b_mode:"100644",binary_file:!1,compare_diff_id:20699,del_line_num:0,deleted_file:!1,id:553,mark_as_read:!1,new_file:!0,new_path:"aa.md",old_path:"aa.md",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"0",add_line_num:12,b_mode:"100644",binary_file:!1,compare_diff_id:20699,del_line_num:0,deleted_file:!1,id:554,mark_as_read:!0,new_file:!0,new_path:"aaa/package.json",old_path:"aaa/package.json",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"0",add_line_num:0,b_mode:"100644",binary_file:!1,compare_diff_id:20699,del_line_num:0,deleted_file:!1,id:555,mark_as_read:!1,new_file:!0,new_path:"apiMeta.json",old_path:"apiMeta.json",renamed_file:!1,too_large:!0,updated_after_read:!1},{a_mode:"0",add_line_num:0,b_mode:"100644",binary_file:!0,compare_diff_id:20699,del_line_num:0,deleted_file:!1,id:556,mark_as_read:!1,new_file:!0,new_path:"assets/logo_white.gif",old_path:"assets/logo_white.gif",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,compare_diff_id:20699,del_line_num:0,deleted_file:!1,id:557,mark_as_read:!1,new_file:!1,new_path:"assets/斋藤飞鸟1.jpg",old_path:"assets/斋藤飞鸟.jpg",renamed_file:!0,too_large:!1,updated_after_read:!1},{a_mode:"0",add_line_num:0,b_mode:"100644",binary_file:!1,compare_diff_id:20699,del_line_num:0,deleted_file:!1,id:558,mark_as_read:!1,new_file:!0,new_path:"b.md",old_path:"b.md",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"0",add_line_num:3,b_mode:"100644",binary_file:!1,compare_diff_id:20699,del_line_num:0,deleted_file:!1,id:559,mark_as_read:!1,new_file:!0,new_path:"gbk.ts",old_path:"gbk.ts",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"0",add_line_num:168,b_mode:"100644",binary_file:!1,compare_diff_id:20699,del_line_num:0,deleted_file:!1,id:560,mark_as_read:!1,new_file:!0,new_path:"pom.xml",old_path:"pom.xml",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:4,b_mode:"100644",binary_file:!1,compare_diff_id:20699,del_line_num:4,deleted_file:!1,id:561,mark_as_read:!0,new_file:!1,new_path:"src/config/passport.ts",old_path:"src/config/passport.ts",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,compare_diff_id:20699,del_line_num:265,deleted_file:!1,id:562,mark_as_read:!1,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:49,b_mode:"100644",binary_file:!1,compare_diff_id:20699,del_line_num:49,deleted_file:!1,id:563,mark_as_read:!1,new_file:!1,new_path:"src/models/User.ts",old_path:"src/models/User.ts",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,compare_diff_id:20699,del_line_num:1,deleted_file:!1,id:564,mark_as_read:!1,new_file:!1,new_path:"src/public/css/main.scss",old_path:"src/public/css/main.scss",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:1,b_mode:"100644",binary_file:!1,compare_diff_id:20699,del_line_num:1,deleted_file:!1,id:565,mark_as_read:!1,new_file:!1,new_path:"src/server.ts",old_path:"src/server.ts",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:7,b_mode:"100644",binary_file:!1,compare_diff_id:20699,del_line_num:7,deleted_file:!1,id:566,mark_as_read:!1,new_file:!1,new_path:"src/util/logger.ts",old_path:"src/util/logger.ts",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:0,b_mode:"0",binary_file:!1,compare_diff_id:20699,del_line_num:22,deleted_file:!0,id:567,mark_as_read:!1,new_file:!1,new_path:"tsconfig.json",old_path:"tsconfig.json",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:2,b_mode:"100644",binary_file:!1,compare_diff_id:20699,del_line_num:2,deleted_file:!1,id:568,mark_as_read:!1,new_file:!1,new_path:"views/contact123.pug",old_path:"views/contact.pug",renamed_file:!0,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:0,b_mode:"0",binary_file:!1,compare_diff_id:20699,del_line_num:27,deleted_file:!0,id:569,mark_as_read:!1,new_file:!1,new_path:"views/home.pug",old_path:"views/home.pug",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,compare_diff_id:20699,del_line_num:0,deleted_file:!1,id:570,mark_as_read:!1,new_file:!1,new_path:"views/partials/footer-renamed.pug",old_path:"views/partials/footer.pug",renamed_file:!0,too_large:!1,updated_after_read:!1}],"/api/v3/projects/42422/repository/blame":[{commit:{author:null,author_email:"taian.lta@test.com",author_name:"taian.lta",authored_date:"2020-08-18T12:09:32+0800",committed_date:"2020-08-18T12:09:32+0800",committer:null,committer_email:"taian.lta@test.com",committer_name:"taian.lta",created_at:"2020-08-18T12:09:32+0800",id:"7c501a19ae4644814782622af41b72e0f65eaacd",message:" feat: 123",parent_ids:null,short_id:"7c501a19",title:" feat: 123",tree_hash:null},lines:[{current_number:1,effect_line:12,previous_number:1}]},{commit:{author:null,author_email:"taian.lta@test.com",author_name:"taian.lta",authored_date:"2020-08-18T12:09:32+0800",committed_date:"2020-08-18T12:09:32+0800",committer:null,committer_email:"taian.lta@test.com",committer_name:"taian.lta",created_at:"2020-08-18T12:09:32+0800",id:"7c501a19ae4644814782622af41b72e0f65eaacd2",message:" feat: 123",parent_ids:null,short_id:"7c501a19",title:" feat: 123",tree_hash:null},lines:[{current_number:15,effect_line:10,previous_number:1}]}]}}}]); \ No newline at end of file diff --git a/static/js/43.ecce6e7b.chunk.js b/static/js/43.ecce6e7b.chunk.js new file mode 100644 index 000000000..2f9a35324 --- /dev/null +++ b/static/js/43.ecce6e7b.chunk.js @@ -0,0 +1 @@ +(this.webpackJsonp=this.webpackJsonp||[]).push([[43,27],{"/oTB":function(e,t,n){},"1xfW":function(e,t,n){"use strict";e.exports={extension:{publisher:"alex-ext-public",name:"markdown-language-features-worker",version:"1.53.0-patch.1"},packageJSON:{name:"markdown-language-features-worker",publisher:"alex",version:"1.53.0-patch.1",displayName:"%displayName%",description:"%description%",icon:"icon.png",activationEvents:["onLanguage:markdown","onCommand:markdown.preview.toggleLock","onCommand:markdown.preview.refresh","onCommand:markdown.showPreview","onCommand:markdown.showPreviewToSide","onCommand:markdown.showLockedPreviewToSide","onCommand:markdown.showSource","onCommand:markdown.showPreviewSecuritySelector","onCommand:markdown.api.render","onWebviewPanel:markdown.preview","onCustomEditor:vscode.markdown.preview.editor"],kaitianContributes:{workerMain:"./dist/browser/extension.js"},contributes:{commands:[{command:"markdown.showPreview",title:"%markdown.preview.title%",category:"Markdown",icon:{light:"./media/preview-light.svg",dark:"./media/preview-dark.svg"}},{command:"markdown.showPreviewToSide",title:"%markdown.previewSide.title%",category:"Markdown",icon:"$(open-preview)"},{command:"markdown.showLockedPreviewToSide",title:"%markdown.showLockedPreviewToSide.title%",category:"Markdown",icon:"$(open-preview)"},{command:"markdown.showSource",title:"%markdown.showSource.title%",category:"Markdown",icon:"$(go-to-file)"},{command:"markdown.showPreviewSecuritySelector",title:"%markdown.showPreviewSecuritySelector.title%",category:"Markdown"},{command:"markdown.preview.refresh",title:"%markdown.preview.refresh.title%",category:"Markdown"},{command:"markdown.preview.toggleLock",title:"%markdown.preview.toggleLock.title%",category:"Markdown"}],menus:{"editor/title":[{command:"markdown.showPreviewToSide",when:"editorLangId == markdown && !notebookEditorFocused",alt:"markdown.showPreview",group:"navigation"},{command:"markdown.showSource",when:"markdownPreviewFocus",group:"navigation"},{command:"markdown.preview.refresh",when:"markdownPreviewFocus",group:"1_markdown"},{command:"markdown.preview.toggleLock",when:"markdownPreviewFocus",group:"1_markdown"},{command:"markdown.showPreviewSecuritySelector",when:"markdownPreviewFocus",group:"1_markdown"}],"explorer/context":[{command:"markdown.showPreview",when:"resourceLangId == markdown",group:"navigation"}],"editor/title/context":[{command:"markdown.showPreview",when:"resourceLangId == markdown",group:"1_open"}],commandPalette:[{command:"markdown.showPreview",when:"editorLangId == markdown && !notebookEditorFocused",group:"navigation"},{command:"markdown.showPreviewToSide",when:"editorLangId == markdown && !notebookEditorFocused",group:"navigation"},{command:"markdown.showLockedPreviewToSide",when:"editorLangId == markdown && !notebookEditorFocused",group:"navigation"},{command:"markdown.showSource",when:"markdownPreviewFocus",group:"navigation"},{command:"markdown.showPreviewSecuritySelector",when:"editorLangId == markdown && !notebookEditorFocused"},{command:"markdown.showPreviewSecuritySelector",when:"markdownPreviewFocus"},{command:"markdown.preview.toggleLock",when:"markdownPreviewFocus"},{command:"markdown.preview.refresh",when:"editorLangId == markdown && !notebookEditorFocused"},{command:"markdown.preview.refresh",when:"markdownPreviewFocus"}]},keybindings:[{command:"markdown.showPreview",key:"shift+ctrl+v",mac:"shift+cmd+v",when:"editorLangId == markdown && !notebookEditorFocused"},{command:"markdown.showPreviewToSide",key:"ctrl+k v",mac:"cmd+k v",when:"editorLangId == markdown && !notebookEditorFocused"}],configuration:{type:"object",title:"Markdown",order:20,properties:{"markdown.styles":{type:"array",items:{type:"string"},default:[],description:"%markdown.styles.dec%",scope:"resource"},"markdown.preview.breaks":{type:"boolean",default:!1,description:"%markdown.preview.breaks.desc%",scope:"resource"},"markdown.preview.linkify":{type:"boolean",default:!0,description:"%markdown.preview.linkify%",scope:"resource"},"markdown.preview.fontFamily":{type:"string",default:"-apple-system, BlinkMacSystemFont, 'Segoe WPC', 'Segoe UI', system-ui, 'Ubuntu', 'Droid Sans', sans-serif",description:"%markdown.preview.fontFamily.desc%",scope:"resource"},"markdown.preview.fontSize":{type:"number",default:14,description:"%markdown.preview.fontSize.desc%",scope:"resource"},"markdown.preview.lineHeight":{type:"number",default:1.6,description:"%markdown.preview.lineHeight.desc%",scope:"resource"},"markdown.preview.scrollPreviewWithEditor":{type:"boolean",default:!0,description:"%markdown.preview.scrollPreviewWithEditor.desc%",scope:"resource"},"markdown.preview.markEditorSelection":{type:"boolean",default:!0,description:"%markdown.preview.markEditorSelection.desc%",scope:"resource"},"markdown.preview.scrollEditorWithPreview":{type:"boolean",default:!0,description:"%markdown.preview.scrollEditorWithPreview.desc%",scope:"resource"},"markdown.preview.doubleClickToSwitchToEditor":{type:"boolean",default:!0,description:"%markdown.preview.doubleClickToSwitchToEditor.desc%",scope:"resource"},"markdown.preview.openMarkdownLinks":{type:"string",default:"inPreview",description:"%configuration.markdown.preview.openMarkdownLinks.description%",scope:"resource",enum:["inPreview","inEditor"],enumDescriptions:["%configuration.markdown.preview.openMarkdownLinks.inPreview%","%configuration.markdown.preview.openMarkdownLinks.inEditor%"]},"markdown.links.openLocation":{type:"string",default:"currentGroup",description:"%configuration.markdown.links.openLocation.description%",scope:"resource",enum:["currentGroup","beside"],enumDescriptions:["%configuration.markdown.links.openLocation.currentGroup%","%configuration.markdown.links.openLocation.beside%"]},"markdown.trace":{type:"string",enum:["off","verbose"],default:"off",description:"%markdown.trace.desc%",scope:"window"}}},configurationDefaults:{"[markdown]":{"editor.wordWrap":"on","editor.quickSuggestions":!1}},jsonValidation:[{fileMatch:"package.json",url:"./schemas/package.schema.json"}],"markdown.previewStyles":["./media/markdown.css","./media/highlight.css"],"markdown.previewScripts":["./media/index.js"],workerMain:"./dist/browser/extension.js"},browser:"./dist/browser/extension"},defaultPkgNlsJSON:{displayName:"Markdown Language Features",description:"Provides rich language support for Markdown.","markdown.preview.breaks.desc":"Sets how line-breaks are rendered in the markdown preview. Setting it to 'true' creates a
for newlines inside paragraphs.","markdown.preview.linkify":"Enable or disable conversion of URL-like text to links in the markdown preview.","markdown.preview.doubleClickToSwitchToEditor.desc":"Double click in the markdown preview to switch to the editor.","markdown.preview.fontFamily.desc":"Controls the font family used in the markdown preview.","markdown.preview.fontSize.desc":"Controls the font size in pixels used in the markdown preview.","markdown.preview.lineHeight.desc":"Controls the line height used in the markdown preview. This number is relative to the font size.","markdown.preview.markEditorSelection.desc":"Mark the current editor selection in the markdown preview.","markdown.preview.scrollEditorWithPreview.desc":"When a markdown preview is scrolled, update the view of the editor.","markdown.preview.scrollPreviewWithEditor.desc":"When a markdown editor is scrolled, update the view of the preview.","markdown.preview.title":"Open Preview","markdown.previewSide.title":"Open Preview to the Side","markdown.showLockedPreviewToSide.title":"Open Locked Preview to the Side","markdown.showSource.title":"Show Source","markdown.styles.dec":"A list of URLs or local paths to CSS style sheets to use from the markdown preview. Relative paths are interpreted relative to the folder open in the explorer. If there is no open folder, they are interpreted relative to the location of the markdown file. All '\\' need to be written as '\\\\'.","markdown.showPreviewSecuritySelector.title":"Change Preview Security Settings","markdown.trace.desc":"Enable debug logging for the markdown extension.","markdown.preview.refresh.title":"Refresh Preview","markdown.preview.toggleLock.title":"Toggle Preview Locking","configuration.markdown.preview.openMarkdownLinks.description":"Controls how links to other markdown files in the markdown preview should be opened.","configuration.markdown.preview.openMarkdownLinks.inEditor":"Try to open links in the editor","configuration.markdown.preview.openMarkdownLinks.inPreview":"Try to open links in the markdown preview","configuration.markdown.links.openLocation.description":"Controls where links in markdown files should be opened.","configuration.markdown.links.openLocation.currentGroup":"Open links in the active editor group.","configuration.markdown.links.openLocation.beside":"Open links beside the active editor."},pkgNlsJSON:{},nlsList:[],extendConfig:{},webAssets:["package.json","media/highlight.css","media/index.js","media/markdown.css","media/pre.js","media/preview-dark.svg","media/preview-light.svg","README.md","icon.png","schemas/package.schema.json","dist/browser/extension.js"],mode:"public"}},"3Diz":function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=c(n("jsC+")),a=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],r=!0,a=!1,i=void 0;try{for(var s,o=e[Symbol.iterator]();!(r=(s=o.next()).done)&&(n.push(s.value),!t||n.length!==t);r=!0);}catch(e){a=!0,i=e}finally{try{!r&&o.return&&o.return()}finally{if(a)throw i}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")};n("qVdP");var i=n("cDcd"),s=c(i);n("MN5C");var o=c(n("cJAJ")),l=n("faye"),d=n("sYIF");function c(e){return e&&e.__esModule?e:{default:e}}t.default=function(e){var t=e.projectsId,n=e.branch,c=e.owner,u=e.changeBranch,m=e.branchList,p=e.tagflag,f=void 0===p||p,_=(0,i.useState)(n),g=a(_,2),h=g[0],w=g[1],b=(0,i.useState)(!1),y=a(b,2),v=y[0],k=y[1],x=(0,i.useRef)(null),T=(0,i.useRef)(null);(0,i.useEffect)((function(){document.addEventListener("click",E,!1)}),[]);var E=function(e){var t=e.target,n=(0,l.findDOMNode)(x.current),r=(0,l.findDOMNode)(T.current);if(n&&r){var a=n.contains(t),i=r.contains(t);a||i||k(!1)}};(0,i.useEffect)((function(){w(n)}),[n]);var j=s.default.createElement("div",{ref:x},s.default.createElement(o.default,{visible:v,changeBranch:function(e){k(!1);var t=(0,d.turnbar)(e);u(t)},tagflag:f,projectsId:t,owner:c,branchList:m}));return s.default.createElement(r.default,{placement:"bottomLeft",visible:v,overlay:j,overlayClassName:"branch-tagBox-list",trigger:["click"]},s.default.createElement("div",{className:"branch-tagBox",ref:T,onClick:function(){return k(!v)}},s.default.createElement("span",{className:"color-grey-9 mr3 ml8"},s.default.createElement("i",{className:"iconfont icon-fenzhi2 font-18"})),s.default.createElement("span",{className:"ant-dropdown-link task-hide",style:{fontWeight:"500",minWidth:"45px",maxWidth:"270px"}},h),s.default.createElement("i",{className:"showtag iconfont icon-sanjiaoxing-down font-15 color-grey-9 mr5 ml5 mt1"})))}},"760K":function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r,a=n("cDcd"),i=(r=a)&&r.__esModule?r:{default:r},s=n("sYIF");t.default=function(e){var t=e.treeValuePath,n=e.returnUlr,r=e.returnMain,a=e.getPathUrl,o=e.identifier;return i.default.createElement("li",{className:"listtablepath"},i.default.createElement("p",null,i.default.createElement("a",{onClick:r,className:"color-blue"},o),t.map((function(e,r){return i.default.createElement(i.default.Fragment,{key:r},r===t.length-1?i.default.createElement("span",{className:"color-grey-6 subFileName",key:r},(0,s.returnbar)(e)):i.default.createElement("a",{onClick:function(){return n(""+a(t,r+1))},className:"color-blue subFileName"},(0,s.returnbar)(e)))}))))}},BTkp:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){for(var n=0;n-1)return void n(u.default.createElement("span",null,"分支名不能包含下列任何字符:^*\\/"))}}n()},n.state={submitType:"0",filename:"",isSpin:!1},n}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),d(t,[{key:"render",value:function(){var e=this,t=this.state,n=t.submitType,d=t.filename,c=t.isSpin,f=this.props.form.getFieldDecorator,_=this.props.match.params,h=_.branch,w=_.projectsId,b=_.owner,y=this.props,v=y.current_user,k=y.filepath,x=y.projectDetail,T=y.currentBranch,E=this.props.editor_type,j=T||h;return u.default.createElement("div",null,u.default.createElement("span",{className:"df",style:{alignItems:"center"}},u.default.createElement(p.Link,{to:"/"+(v&&v.login),className:"show-user-link"},u.default.createElement("img",{src:(0,m.getImageUrl)("/"+(v&&v.image_url)),alt:"",className:"screwImg"}),u.default.createElement("span",{className:"color-grey-3 ver-middle"},v&&v.username,":")),u.default.createElement("span",{className:"color-grey-8"},"提交变更")),u.default.createElement(r.default,{spinning:c},u.default.createElement("div",{className:"userScrew"},u.default.createElement("div",{className:"screwPanel"},u.default.createElement(o.default,null,u.default.createElement(o.default.Item,{style:{display:"upload"===E?"block":"none"}},f("path",{rules:[]})(u.default.createElement("div",{className:"setInputAddon"},u.default.createElement(l.default,{addonBefore:"/"+(x&&x.identifier)+"/",value:d||k,onChange:this.changeFileName,placeholder:"文件路径..."})))),u.default.createElement(o.default.Item,null,f("desc",{rules:[{required:!0,message:"请添加描述信息"}]})(u.default.createElement(g,{placeholder:"必填,描述主要修改类型和内容",authSize:{minRows:3,maxRows:5}}))),u.default.createElement(s.default.Group,{value:n,onChange:this.changeSubmittype},u.default.createElement(s.default,{value:"0",className:"mb10"},u.default.createElement("i",{className:"iconfont icon-banbenku font-16 mr5"}),"直接提交至",u.default.createElement("span",{className:"color-orange"},(0,m.returnbar)(j)),"分支"),u.default.createElement(s.default,{value:"1"},u.default.createElement(i.default,{type:"pull-request",className:"mr5"}),"为此提交创建一个",u.default.createElement("span",{className:"font-bd"},"新的分支"),"并发起合并请求")),"1"===n?u.default.createElement("div",{className:"mt15"},u.default.createElement(o.default.Item,{style:{paddingLeft:"24px"}},f("branchname",{rules:[{required:!0,message:"请输入分支名称"},{validator:this.checkBranchName}]})(u.default.createElement(l.default,{placeholder:"请输入分支名称",style:{width:"220px"}})))):""))),u.default.createElement("div",{className:"mt20"},u.default.createElement(a.default,{type:"primary",onClick:"update"===E?this.UpdateFile:this.subMitFrom,className:"mr30"},"提交变更"),u.default.createElement(a.default,{type:"primary grey",onClick:function(){e.props.history.push("/"+b+"/"+w)},className:"mr20"},"取消"))))}}]),t}(c.Component),w=o.default.create({name:"UserSubmitForm"})(h);t.default=w},Eitf:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=g(n("JsLm")),a=g(n("NJEC")),i=g(n("jsC+")),s=g(n("2fM7")),o=g(n("W9HT")),l=Object.assign||function(e){for(var t=1;t0?u.default.createElement(_.default,{menuList:e,hash:n.props.history.location.hash}):u.default.createElement(o.default,null)},n.state={value:void 0,language:void 0,languages:void 0,description:e.detail.replace_content,menuList:void 0},n}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),d(t,[{key:"render",value:function(){var e=this,t=this.props,n=t.readOnly,o=t.detail,d=t.current_user,c=t.isManager,m=t.isDeveloper,_=t.currentBranch,g=t.platform,h=t.md,w=t.type,b=this.state,y=b.language,v=b.languages,k=b.description,x=d&&d.login&&(c||m),T=s.default.Option;return u.default.createElement(u.default.Fragment,null,u.default.createElement(r.default,{className:"griditemAnchor",offsetTop:58},u.default.createElement("div",{className:"griditemCate"},h&&n&&u.default.createElement(i.default,{overlay:this.menu(),trigger:["hover"],overlayClassName:"menuslist"},u.default.createElement("span",{className:"catelogue mr20"},u.default.createElement("i",{className:"iconfont icon-muluicon font-12 mr5"}),u.default.createElement("span",null,"目录"))),u.default.createElement("span",{className:"color-grey-6 font-16"},function(e){if(0===e)return"0 B";var t=Math.floor(Math.log(e)/Math.log(1024));return(e/Math.pow(1024,t)).toFixed(2)+" "+["B","KB","MB","GB","TB","PB","EB","ZB","YB"][t]}(o&&o.size))),u.default.createElement("p",{className:"text-right"},x&&g&&u.default.createElement("div",null,n?u.default.createElement("span",null,o.direct_download?"":u.default.createElement("span",null,u.default.createElement("a",{onClick:function(){return e.DownLoadFile(o.download_url)},className:"ml20"},u.default.createElement("i",{className:"iconfont icon-xiazai1 font-15 color-grey-6"})),2!==w&&u.default.createElement("a",{onClick:function(){return e.EditFile(!1)},className:"ml20"},u.default.createElement("i",{className:"iconfont icon-bianji1 font-15 color-grey-6"})))):u.default.createElement(u.default.Fragment,null,u.default.createElement(s.default,{showSearch:!0,placeholder:"请选择文本语言",style:{width:200},value:y,onChange:this.select_language},u.default.createElement(T,{value:void 0},"请选择文本语言"),v&&v.map((function(e,t){return u.default.createElement(T,{value:e,key:t},e)}))),u.default.createElement("button",{type:"button",className:"ant-btn ant-btn-sm ml20",onClick:function(){return e.EditFile(!0)}},u.default.createElement("span",null,"取 消"))),2!==w&&u.default.createElement(a.default,{title:"确认删除这个文件?",className:"ml20",okText:"确定",cancelText:"取消",onConfirm:this.deleteFile},u.default.createElement("a",null,u.default.createElement("i",{className:"iconfont icon-shanchu font-15 color-grey-6"})))))),u.default.createElement("div",null,o.image_type?u.default.createElement("div",{className:"edu-txt-center pt20 pb20"},u.default.createElement("img",{alt:"",src:o.download_url,style:{maxWidth:"80%"}})):o.direct_download?u.default.createElement("div",{className:"mt20 text-center"},u.default.createElement("a",{href:o.download_url,className:"color-blue font-15"},"下载原始文件")):h&&n?u.default.createElement("div",{className:"files-md",id:"files-md"},u.default.createElement(f.default,{className:"file-md imageLayerParent",value:k,url:this.props.history.location})):u.default.createElement(p.default,l({},this.props,this.state,{language:y||"javascript",filepath:"/"+o.path,content:o.content,readOnly:n,editorType:"update",currentBranch:_,descName:o&&"Update "+o.name}))))}}]),t}(c.Component);t.default=w},FRFo:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=o(n("3S7+")),a=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],r=!0,a=!1,i=void 0;try{for(var s,o=e[Symbol.iterator]();!(r=(s=o.next()).done)&&(n.push(s.value),!t||n.length!==t);r=!0);}catch(e){a=!0,i=e}finally{try{!r&&o.return&&o.return()}finally{if(a)throw i}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")};n("5Dmo");var i=n("cDcd"),s=o(i);function o(e){return e&&e.__esModule?e:{default:e}}function l(e){var t=e.beforeText,n=e.afterText,o=e.className,l=e.inputId,d=e.timeOut,c=(0,i.useState)((function(){return t})),u=a(c,2),m=u[0],p=u[1],f=(0,i.useCallback)((function(){var e=document.querySelector("#"+l);e?(e.select(),document.execCommand("copy")&&document.execCommand("copy"),document.getSelection().removeAllRanges(),p(n),d&&setTimeout((function(){p(t)}),1500)):console.error("您的CopyTool未设置正确的inputId")}),[]);return s.default.createElement(r.default,{placement:"top",title:m,onVisibleChange:function(){p(t)}},s.default.createElement("i",{className:"iconfont icon-fuzhiicon "+o,style:{color:"#466aff"},onClick:f}))}l.defaultProps={beforeText:"复制链接",afterText:"复制成功",className:"",inputId:"copyText",timeOut:!0},t.default=(0,i.memo)(l)},IEkG:function(e,t,n){"use strict";e.exports={extension:{publisher:"alex-ext-public",name:"json-language-features-worker",version:"1.53.0-patch.1"},packageJSON:{name:"json-language-features-worker",publisher:"alex",version:"1.53.0-patch.1",displayName:"%displayName%",description:"%description%",icon:"icons/json.png",activationEvents:["onLanguage:json","onLanguage:jsonc"],kaitianContributes:{workerMain:"client/dist/browser/jsonClientMain.js"},contributes:{configuration:{id:"json",order:20,type:"object",title:"JSON",properties:{"json.schemas":{type:"array",scope:"resource",description:"%json.schemas.desc%",items:{type:"object",default:{fileMatch:["/myfile"],url:"schemaURL"},properties:{url:{type:"string",default:"/user.schema.json",description:"%json.schemas.url.desc%"},fileMatch:{type:"array",items:{type:"string",default:"MyFile.json",description:"%json.schemas.fileMatch.item.desc%"},minItems:1,description:"%json.schemas.fileMatch.desc%"},schema:{$ref:"http://json-schema.org/draft-07/schema#",description:"%json.schemas.schema.desc%"}}}},"json.format.enable":{type:"boolean",scope:"window",default:!0,description:"%json.format.enable.desc%"},"json.trace.server":{type:"string",scope:"window",enum:["off","messages","verbose"],default:"off",description:"%json.tracing.desc%"},"json.colorDecorators.enable":{type:"boolean",scope:"window",default:!0,description:"%json.colorDecorators.enable.desc%",deprecationMessage:"%json.colorDecorators.enable.deprecationMessage%"},"json.maxItemsComputed":{type:"number",default:5e3,description:"%json.maxItemsComputed.desc%"},"json.schemaDownload.enable":{type:"boolean",default:!0,description:"%json.enableSchemaDownload.desc%",tags:["usesOnlineServices"]}}},configurationDefaults:{"[json]":{"editor.quickSuggestions":{strings:!0},"editor.suggest.insertMode":"replace"},"[jsonc]":{"editor.quickSuggestions":{strings:!0},"editor.suggest.insertMode":"replace"}},jsonValidation:[{fileMatch:"*.schema.json",url:"http://json-schema.org/draft-07/schema#"}],workerMain:"client/dist/browser/jsonClientMain.js"},browser:"./client/dist/browser/jsonClientMain"},defaultPkgNlsJSON:{displayName:"JSON Language Features",description:"Provides rich language support for JSON files.","json.schemas.desc":"Associate schemas to JSON files in the current project","json.schemas.url.desc":"A URL to a schema or a relative path to a schema in the current directory","json.schemas.fileMatch.desc":"An array of file patterns to match against when resolving JSON files to schemas. `*` can be used as a wildcard. Exclusion patterns can also be defined and start with '!'. A file matches when there is at least one matching pattern and the last matching pattern is not an exclusion pattern.","json.schemas.fileMatch.item.desc":"A file pattern that can contain '*' to match against when resolving JSON files to schemas.","json.schemas.schema.desc":"The schema definition for the given URL. The schema only needs to be provided to avoid accesses to the schema URL.","json.format.enable.desc":"Enable/disable default JSON formatter","json.tracing.desc":"Traces the communication between VS Code and the JSON language server.","json.colorDecorators.enable.desc":"Enables or disables color decorators","json.colorDecorators.enable.deprecationMessage":"The setting `json.colorDecorators.enable` has been deprecated in favor of `editor.colorDecorators`.","json.schemaResolutionErrorMessage":"Unable to resolve schema.","json.clickToRetry":"Click to retry.","json.maxItemsComputed.desc":"The maximum number of outline symbols and folding regions computed (limited for performance reasons).","json.maxItemsExceededInformation.desc":"Show notification when exceeding the maximum number of outline symbols and folding regions.","json.enableSchemaDownload.desc":"When enabled, JSON schemas can be fetched from http and https locations."},pkgNlsJSON:{},nlsList:[],extendConfig:{},webAssets:["package.json","server/dist/browser/jsonServerMain.js","README.md","icons/json.png","http://json-schema.org/draft-07/schema#","client/dist/browser/jsonClientMain.js"],mode:"public"}},IxBv:function(e,t,n){"use strict";e.exports={extension:{publisher:"alex-ext-public",name:"html-language-features-worker",version:"1.53.0-patch.1"},packageJSON:{name:"html-language-features-worker",publisher:"alex",version:"1.53.0-patch.1",displayName:"%displayName%",description:"%description%",icon:"icons/html.png",activationEvents:["onLanguage:html","onLanguage:handlebars"],kaitianContributes:{workerMain:"client/dist/browser/htmlClientMain.js"},contributes:{configuration:{id:"html",order:20,type:"object",title:"HTML",properties:{"html.customData":{type:"array",markdownDescription:"%html.customData.desc%",default:[],items:{type:"string"},scope:"resource"},"html.format.enable":{type:"boolean",scope:"window",default:!0,description:"%html.format.enable.desc%"},"html.format.wrapLineLength":{type:"integer",scope:"resource",default:120,description:"%html.format.wrapLineLength.desc%"},"html.format.unformatted":{type:["string","null"],scope:"resource",default:"wbr",markdownDescription:"%html.format.unformatted.desc%"},"html.format.contentUnformatted":{type:["string","null"],scope:"resource",default:"pre,code,textarea",markdownDescription:"%html.format.contentUnformatted.desc%"},"html.format.indentInnerHtml":{type:"boolean",scope:"resource",default:!1,markdownDescription:"%html.format.indentInnerHtml.desc%"},"html.format.preserveNewLines":{type:"boolean",scope:"resource",default:!0,description:"%html.format.preserveNewLines.desc%"},"html.format.maxPreserveNewLines":{type:["number","null"],scope:"resource",default:null,markdownDescription:"%html.format.maxPreserveNewLines.desc%"},"html.format.indentHandlebars":{type:"boolean",scope:"resource",default:!1,markdownDescription:"%html.format.indentHandlebars.desc%"},"html.format.endWithNewline":{type:"boolean",scope:"resource",default:!1,description:"%html.format.endWithNewline.desc%"},"html.format.extraLiners":{type:["string","null"],scope:"resource",default:"head, body, /html",markdownDescription:"%html.format.extraLiners.desc%"},"html.format.wrapAttributes":{type:"string",scope:"resource",default:"auto",enum:["auto","force","force-aligned","force-expand-multiline","aligned-multiple","preserve","preserve-aligned"],enumDescriptions:["%html.format.wrapAttributes.auto%","%html.format.wrapAttributes.force%","%html.format.wrapAttributes.forcealign%","%html.format.wrapAttributes.forcemultiline%","%html.format.wrapAttributes.alignedmultiple%","%html.format.wrapAttributes.preserve%","%html.format.wrapAttributes.preservealigned%"],description:"%html.format.wrapAttributes.desc%"},"html.format.wrapAttributesIndentSize":{type:["number","null"],scope:"resource",default:null,description:"%html.format.wrapAttributesIndentSize.desc%"},"html.format.templating":{type:["boolean"],scope:"resource",default:!1,description:"%html.format.templating.desc%"},"html.format.unformattedContentDelimiter":{type:["string"],scope:"resource",default:"",markdownDescription:"%html.format.unformattedContentDelimiter.desc%"},"html.suggest.html5":{type:"boolean",scope:"resource",default:!0,description:"%html.suggest.html5.desc%"},"html.validate.scripts":{type:"boolean",scope:"resource",default:!0,description:"%html.validate.scripts%"},"html.validate.styles":{type:"boolean",scope:"resource",default:!0,description:"%html.validate.styles%"},"html.autoClosingTags":{type:"boolean",scope:"resource",default:!0,description:"%html.autoClosingTags%"},"html.hover.documentation":{type:"boolean",scope:"resource",default:!0,description:"%html.hover.documentation%"},"html.hover.references":{type:"boolean",scope:"resource",default:!0,description:"%html.hover.references%"},"html.mirrorCursorOnMatchingTag":{type:"boolean",scope:"resource",default:!1,description:"%html.mirrorCursorOnMatchingTag%",deprecationMessage:"%html.mirrorCursorOnMatchingTagDeprecationMessage%"},"html.trace.server":{type:"string",scope:"window",enum:["off","messages","verbose"],default:"off",description:"%html.trace.server.desc%"}}},configurationDefaults:{"[html]":{"editor.suggest.insertMode":"replace"},"[handlebars]":{"editor.suggest.insertMode":"replace"}},jsonValidation:[{fileMatch:"*.html-data.json",url:"https://raw.githubusercontent.com/microsoft/vscode-html-languageservice/master/docs/customData.schema.json"},{fileMatch:"package.json",url:"./schemas/package.schema.json"}],workerMain:"client/dist/browser/htmlClientMain.js"},browser:"./client/dist/browser/htmlClientMain"},defaultPkgNlsJSON:{displayName:"HTML Language Features",description:"Provides rich language support for HTML and Handlebar files","html.customData.desc":"A list of relative file paths pointing to JSON files following the [custom data format](https://github.com/microsoft/vscode-html-languageservice/blob/master/docs/customData.md).\n\nVS Code loads custom data on startup to enhance its HTML support for the custom HTML tags, attributes and attribute values you specify in the JSON files.\n\nThe file paths are relative to workspace and only workspace folder settings are considered.","html.format.enable.desc":"Enable/disable default HTML formatter.","html.format.wrapLineLength.desc":"Maximum amount of characters per line (0 = disable).","html.format.unformatted.desc":"List of tags, comma separated, that shouldn't be reformatted. `null` defaults to all tags listed at https://www.w3.org/TR/html5/dom.html#phrasing-content.","html.format.contentUnformatted.desc":"List of tags, comma separated, where the content shouldn't be reformatted. `null` defaults to the `pre` tag.","html.format.indentInnerHtml.desc":"Indent `` and `` sections.","html.format.preserveNewLines.desc":"Controls whether existing line breaks before elements should be preserved. Only works before elements, not inside tags or for text.","html.format.maxPreserveNewLines.desc":"Maximum number of line breaks to be preserved in one chunk. Use `null` for unlimited.","html.format.indentHandlebars.desc":"Format and indent `{{#foo}}` and `{{/foo}}`.","html.format.endWithNewline.desc":"End with a newline.","html.format.extraLiners.desc":'List of tags, comma separated, that should have an extra newline before them. `null` defaults to `"head, body, /html"`.',"html.format.wrapAttributes.desc":"Wrap attributes.","html.format.wrapAttributes.auto":"Wrap attributes only when line length is exceeded.","html.format.wrapAttributes.force":"Wrap each attribute except first.","html.format.wrapAttributes.forcealign":"Wrap each attribute except first and keep aligned.","html.format.wrapAttributes.forcemultiline":"Wrap each attribute.","html.format.wrapAttributes.alignedmultiple":"Wrap when line length is exceeded, align attributes vertically.","html.format.wrapAttributes.preserve":"Preserve wrapping of attributes","html.format.wrapAttributes.preservealigned":"Preserve wrapping of attributes but align.","html.format.templating.desc":"Honor django, erb, handlebars and php templating language tags.","html.format.unformattedContentDelimiter.desc":"Keep text content together between this string.","html.format.wrapAttributesIndentSize.desc":"Alignment size when using 'force aligned' and 'aligned multiple' in `#html.format.wrapAttributes#` or `null` to use the default indent size.","html.suggest.html5.desc":"Controls whether the built-in HTML language support suggests HTML5 tags, properties and values.","html.trace.server.desc":"Traces the communication between VS Code and the HTML language server.","html.validate.scripts":"Controls whether the built-in HTML language support validates embedded scripts.","html.validate.styles":"Controls whether the built-in HTML language support validates embedded styles.","html.autoClosingTags":"Enable/disable autoclosing of HTML tags.","html.mirrorCursorOnMatchingTag":"Enable/disable mirroring cursor on matching HTML tag.","html.mirrorCursorOnMatchingTagDeprecationMessage":"Deprecated in favor of `editor.linkedEditing`","html.hover.documentation":"Show tag and attribute documentation in hover.","html.hover.references":"Show references to MDN in hover."},pkgNlsJSON:{},nlsList:[],extendConfig:{},webAssets:["package.json","server/dist/browser/htmlServerMain.js","README.md","icons/html.png","https://raw.githubusercontent.com/microsoft/vscode-html-languageservice/master/docs/customData.schema.json","schemas/package.schema.json","client/dist/browser/htmlClientMain.js"],mode:"public"}},KhU6:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=u(n("/wGt")),a=u(n("W9HT")),i=u(n("MJZm")),s=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],r=!0,a=!1,i=void 0;try{for(var s,o=e[Symbol.iterator]();!(r=(s=o.next()).done)&&(n.push(s.value),!t||n.length!==t);r=!0);}catch(e){a=!0,i=e}finally{try{!r&&o.return&&o.return()}finally{if(a)throw i}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")};n("bbsP"),n("T2oS"),n("ozfa");var o=n("cDcd"),l=u(o),d=n("sYIF");n("KkuB");var c=u(n("vDqi"));function u(e){return e&&e.__esModule?e:{default:e}}var m=i.default.TreeNode,p=i.default.DirectoryTree;t.default=function(e){var t=e.visible,n=e.onClose,i=e.branch,u=e.owner,f=e.projectsId,_=e.history,g=e.name,h=e.list,w=(0,o.useState)(void 0),b=s(w,2),y=b[0],v=b[1],k=(0,o.useState)(!0),x=s(k,2),T=x[0],E=x[1],j=(0,o.useState)(!0),S=s(j,2),q=S[0],C=S[1];return(0,o.useEffect)((function(){var e;t&&q&&(h?(v(h),E(!1)):(e="/"+u+"/"+f+"/entries.json",c.default.get(e,{params:{ref:i}}).then((function(e){e&&v(e.data.entries),E(!1)})).catch((function(e){}))),C(!1))}),[t]),l.default.createElement(r.default,{placement:"left",visible:t,closable:!1,onClose:n,width:"320px",maskStyle:{backgroundColor:"rgba(0,0,0,0.09)"}},l.default.createElement(a.default,{spinning:T},l.default.createElement("div",{className:"drawerHead"},l.default.createElement("p",{className:"font-20"},g),l.default.createElement("p",null,l.default.createElement("i",{class:"iconfont icon-fenzhi2 font-18 color-grey-9 mr3"}),i)),l.default.createElement(p,{loadData:function(e){return new Promise((function(t){if(e.props.children)t();else{var n=[],r="/"+u+"/"+f+"/sub_entries.json";c.default.get(r,{params:{filepath:e.props.dataRef.path,ref:i,type:"dir"}}).then((function(e){e&&(n=e.data.entries)})).catch((function(e){})),setTimeout((function(){e.props.dataRef.children=n,v([].concat(function(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t0&&t.map((function(t){return l.default.createElement(m,{title:t.name,key:t.key,dataRef:t,isLeaf:"file"===t.type},e(t.children))}))}(y))))}},KusB:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r,a=n("cDcd"),i=(r=a)&&r.__esModule?r:{default:r},s=n("eO8H"),o=n("PhNK");var l={submodule:"icon-file-submodule font-17",file:"icon-wenjian6 font-15 color-blue-file",dir:"icon-wenjianjia4 font-15 color-blue_4C"};t.default=function(e){var t,n=e.item,r=e.goToSubRoot,a=e.owner,d=e.projectsId,c=e.platform;return i.default.createElement("li",null,i.default.createElement("span",null,!c&&n.image_type?i.default.createElement("span",null,i.default.createElement("i",{className:"iconfont "+l[""+n.type]+" mr8"}),n.name):i.default.createElement("a",{onClick:function(){return r(n.path,n.type,n.name)},className:"submodule"===n.type?"submoduleStyle":""},i.default.createElement("i",{className:"iconfont "+l[""+n.type]+" mr8"}),n.name)),i.default.createElement("span",{title:"init project"},i.default.createElement(s.Link,{to:"/"+a+"/"+d+"/commits/"+(0,o.truncateCommitId)(""+(n.commit&&n.commit.sha)),title:n.commit&&n.commit.message},((t=n.commit&&n.commit.message).indexOf("\n")>0&&t.split("\n"))[0])),i.default.createElement("span",{title:n.commit&&n.commit.created_at},n.commit&&n.commit.time_from_now))}},MN5C:function(e,t,n){},NAAl:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=l(n("kLXV")),a=l(n("Vl3Y")),i=l(n("5rEg"));n("2qtc"),n("y8nQ"),n("5NDa");var s=n("cDcd"),o=l(s);function l(e){return e&&e.__esModule?e:{default:e}}n("dEUZ");var d=i.default.TextArea;t.default=a.default.create()((0,s.forwardRef)((function(e){var t=e.form,n=e.visible,l=e.onCancel,c=e.onOk,u=e.desc,m=e.website,p=e.lesson_url,f=t.getFieldDecorator,_=t.validateFields,g=t.setFieldsValue;return(0,s.useEffect)((function(){(u||m)&&g({website:m,desc:u,lesson_url:p})}),[u,m]),o.default.createElement(r.default,{title:"修改信息",closable:!1,visible:n,centered:!0,onCancel:l,onOk:function(){_((function(e,t){e||(l(),c(t.desc,t.website,t.lesson_url))}))},okText:"确定",cancelText:"取消",width:"400px",className:"descmodal"},o.default.createElement(a.default,null,o.default.createElement(a.default.Item,{label:"项目简介"},f("desc",{rules:[]})(o.default.createElement(d,{placeholder:"请输入项目简介",rows:4,maxLength:200}))),o.default.createElement(a.default.Item,{label:"website"},f("website",{rules:[]})(o.default.createElement(i.default,{placeholder:"website链接",maxLength:200}))),o.default.createElement(a.default.Item,{label:"实践课程"},f("lesson_url",{rules:[]})(o.default.createElement(i.default,{placeholder:"实践课程链接",maxLength:200})))))})))},O4Oc:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.repoService=void 0;var r=l(n("14Xm")),a=n("yEiv"),i=n("YXVS"),s=l(n("vDqi")),o=l(n("wd/R"));function l(e){return e&&e.__esModule?e:{default:e}}function d(e){return function(){var t=e.apply(this,arguments);return new Promise((function(e,n){return function r(a,i){try{var s=t[a](i),o=s.value}catch(e){return void n(e)}if(!s.done)return Promise.resolve(o).then((function(e){r("next",e)}),(function(e){r("throw",e)}));e(o)}("next")}))}}var c="YYYY-MM-DD HH:mm:ss";t.repoService={getFileList:function(e,t,n,i){var s=this;return d(r.default.mark((function e(){return r.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,a.apiService.get("/webapi/projects/42422/repository/tree",{refName:t,path:n,withCommit:i});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e,s)})))()},getTreeEntry:function(e,t,n){var i=this;return d(r.default.mark((function e(){return r.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,a.apiService.get("/api/v3/projects/42422/repository/tree_entry",{refName:t,path:n});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e,i)})))()},getCodeSymbols:function(e,t,n){var i=this;return d(r.default.mark((function e(){return r.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,a.apiService.get("/api/v3/projects/42422/repository/file_symbols/"+encodeURIComponent(t)+"/",{filepath:n});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e,i)})))()},getCodeBlame:function(e,t,n){var a=this;return d(r.default.mark((function l(){var d,u,m,p,f,_,g,h,w,b;return r.default.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,s.default.get("/v1/"+t+"/"+e+"/blame.json",{params:n});case 2:for(d=r.sent,u=(0,i.underscoreToCamelcase)(d.data.blame_parts),m=[],p=!0,f=!1,_=void 0,r.prev=8,g=u[Symbol.iterator]();!(p=(h=g.next()).done);p=!0)w=h.value,b={commit:{author:w.commit.author,authorName:w.commit.author.name,authoredDate:(0,o.default)(new Date(1e3*w.commit.authoredTime)).format(c),committedDate:(0,o.default)(new Date(1e3*w.commit.committedTime)).format(c),committer:w.commit.committer,committerName:w.commit.committer.name,createdAt:(0,o.default)(new Date(1e3*w.commit.createdTime)).format(c),id:w.commit.sha,message:w.commit.commitMessage,title:w.commit.commitMessage},lines:[{currentNumber:w.currentNumber,effectLine:w.effectLine}]},m.push(b);r.next=16;break;case 12:r.prev=12,r.t0=r.catch(8),f=!0,_=r.t0;case 16:r.prev=16,r.prev=17,!p&&g.return&&g.return();case 19:if(r.prev=19,!f){r.next=22;break}throw _;case 22:return r.finish(19);case 23:return r.finish(16);case 24:return r.abrupt("return",m);case 25:case"end":return r.stop()}}),l,a,[[8,12,16,24],[17,,19,23]])})))()}}},OZBj:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=m(n("JsLm")),a=m(n("jsC+")),i=m(n("W9HT")),s=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],r=!0,a=!1,i=void 0;try{for(var s,o=e[Symbol.iterator]();!(r=(s=o.next()).done)&&(n.push(s.value),!t||n.length!==t);r=!0);}catch(e){a=!0,i=e}finally{try{!r&&o.return&&o.return()}finally{if(a)throw i}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")};n("5GOC"),n("qVdP"),n("T2oS");var o=n("cDcd"),l=m(o),d=m(n("bjH3")),c=n("spEH"),u=m(n("mJXK"));function m(e){return e&&e.__esModule?e:{default:e}}var p=window.$;t.default=function(e){var t=e.operate,n=e.history,m=e.readme,f=e.ChangeFile,_=(0,o.useState)(void 0),g=s(_,2),h=g[0],w=g[1],b=(0,o.useState)(void 0),y=s(b,2),v=y[0],k=y[1];return(0,o.useEffect)((function(){m&&m.replace_content?k(m.replace_content):k(void 0)}),[m]),(0,o.useEffect)((function(){n.location.pathname;var e=p.map(p("#readme").find("h1,h2,h3,h4,h5,h6"),(function(e,t){var n=e.id,r=e.tagName.replace("H","");return{href:""+("#"+n),text:e.textContent,level:r}}));w(e)}),[v]),l.default.createElement("div",{className:"commonBox readBox",id:"readme"},l.default.createElement(r.default,{offsetTop:58},l.default.createElement("div",{className:"commonBox-title boxTitle"},l.default.createElement(c.AlignCenter,null,l.default.createElement(a.default,{overlay:h&&h.length>0?l.default.createElement(u.default,{menuList:h,hash:n.location.hash}):l.default.createElement(i.default,null),trigger:["hover"],overlayClassName:"menuslist"},l.default.createElement("span",{className:"catelogue"},l.default.createElement("i",{className:"iconfont icon-muluicon font-12 mr5"}),l.default.createElement("span",null,"目录"))),l.default.createElement("span",{className:"commonBox-title-read"},l.default.createElement("a",{href:"#readme "},"README.md"))),t?l.default.createElement("a",{className:"ml20 pull-right",onClick:function(){return f(m&&m.path,!1)}},l.default.createElement("i",{className:"iconfont icon-a-bianji font-17 color-grey-6"})):"")),v&&l.default.createElement("div",{className:"commonBox-info"},l.default.createElement(d.default,{className:"break_word_comments imageLayerParent",value:v,url:n.location})))}},PhNK:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.truncateCommitId=function(e){return e&&e.length>11?e.substring(0,10):e},t.timeFormat=function(e){var t=new Date(1e3*e),n=t.getHours()<10?"0".concat(t.getHours()):t.getHours(),r=t.getMinutes()<10?"0".concat(t.getMinutes()):t.getMinutes();return t.getFullYear()+"-"+(t.getMonth()+1)+"-"+t.getDate()+" "+n+":"+r}},"R/Rt":function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=Object.assign||function(e){for(var t=1;t0&&i.default.createElement("span",{className:"infoCount"},r.total_count)),r&&r.total_count>0?r.list.map((function(e,r){return 0===r&&i.default.createElement(s.AlignTop,{className:"mt10"},i.default.createElement("div",null,i.default.createElement("p",{className:"font-16 color-grey-6",style:{display:"flex",alignItems:"center"}},i.default.createElement(o.Link,{to:{pathname:"/"+t+"/"+n+"/releases",query:{turnFromNew:!0}},style:{maxWidth:"200px",overflow:"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis"}},e.name),i.default.createElement("span",{className:"font-12 laterest ml5"},"最新")),i.default.createElement("p",{className:"color-grey-3 font-12"},e.created_at)))})):i.default.createElement("div",{className:"mt8"},"您暂未发布任何版本",a&&i.default.createElement(o.Link,{className:"color-blue ml20",to:{pathname:"/"+t+"/"+n+"/releases/new",state:{stable:!0}}},"创建新版本")))}},YIv0:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=d(n("PArb")),a=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],r=!0,a=!1,i=void 0;try{for(var s,o=e[Symbol.iterator]();!(r=(s=o.next()).done)&&(n.push(s.value),!t||n.length!==t);r=!0);}catch(e){a=!0,i=e}finally{try{!r&&o.return&&o.return()}finally{if(a)throw i}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")};n("/zsF");var i=n("cDcd"),s=d(i),o=n("spEH"),l=d(n("vDqi"));function d(e){return e&&e.__esModule?e:{default:e}}t.default=function(e){var t=e.owner,n=e.projectsId,d=(0,i.useState)(void 0),c=a(d,2),u=c[0],m=c[1];function p(){for(var e="#",t=["1","2","3","4","4","5","6","7","8","9","a","b","c","d","e","f"],n=0;n<6;n++){e+=t[parseInt(16*Math.random())]}return e}return(0,i.useEffect)((function(){var e;e="/"+t+"/"+n+"/languages.json",l.default.get(e).then((function(e){if(e){var t=e.data;if(t){var n=[];Object.keys(t).map((function(e,r){n.push({name:e,percent:t[e],color:p()})})),m(n)}}})).catch((function(e){}))}),[]),u&&u.length>0?s.default.createElement("div",null,s.default.createElement(r.default,null),s.default.createElement("p",{className:"font-16 color-ooo aboutSubTitle"},"开发语言"),s.default.createElement("div",{className:"progress"},u&&u.map((function(e,t){return s.default.createElement("span",{key:e.id||t,style:{width:e.percent,backgroundColor:e.color}})}))),u&&u.length>0&&s.default.createElement(o.FlexAJ,{className:"progresstip"},u.map((function(e,t){return s.default.createElement("span",{key:e.id||t},s.default.createElement("i",{className:"zero",style:{backgroundColor:""+e.color}}),s.default.createElement("span",null,e.name),s.default.createElement("span",null,e.percent))})))):""}},YXVS:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};t.underscoreToCamelcase=function e(t){if(Array.isArray(t))return t.map((function(t){return e(t)}));if("object"!==(void 0===t?"undefined":r(t))||null==t)return t;var n={};for(var a in t)if(!t.hasOwnProperty||t.hasOwnProperty(a)){var i=a.replace(/_([a-z])/g,(function(e){return e[1].toUpperCase()}));n[i]=e(t[a])}return n},t.camelcaseToUnderscore=function e(t){if(Array.isArray(t))return t.map((function(t){return e(t)}));if("object"!==(void 0===t?"undefined":r(t))||null==t)return t;var n={};for(var a in t)if(!t.hasOwnProperty||t.hasOwnProperty(a)){var i=a.replace(/([a-z][A-Z])/g,(function(e){return e[0]+"_"+e[1].toLowerCase()}));n[i]=e(t[a])}return n}},cJAJ:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=u(n("W9HT")),a=u(n("BvKs")),i=u(n("5rEg")),s=u(n("14Xm")),o=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],r=!0,a=!1,i=void 0;try{for(var s,o=e[Symbol.iterator]();!(r=(s=o.next()).done)&&(n.push(s.value),!t||n.length!==t);r=!0);}catch(e){a=!0,i=e}finally{try{!r&&o.return&&o.return()}finally{if(a)throw i}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")};n("T2oS"),n("lUTK"),n("5NDa");var l=n("cDcd"),d=u(l),c=n("tnhM");function u(e){return e&&e.__esModule?e:{default:e}}function m(e){return function(){var t=e.apply(this,arguments);return new Promise((function(e,n){return function r(a,i){try{var s=t[a](i),o=s.value}catch(e){return void n(e)}if(!s.done)return Promise.resolve(o).then((function(e){r("next",e)}),(function(e){r("throw",e)}));e(o)}("next")}))}}t.default=function(e){var t,n,u=(t=m(s.default.mark((function e(t,n){var r;return s.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,(0,c.getBranch)(t,n);case 2:r=e.sent,M(r),L(r),P(!1);case 6:case"end":return e.stop()}}),e,this)}))),function(e,n){return t.apply(this,arguments)}),p=(n=m(s.default.mark((function e(t,n){var r;return s.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,(0,c.getTag)(t,n);case 2:r=e.sent,M(r),L(r),P(!1);case 6:case"end":return e.stop()}}),e,this)}))),function(e,t){return n.apply(this,arguments)}),f=e.changeBranch,_=e.tagflag,g=e.projectsId,h=e.owner,w=e.visible,b=(0,l.useState)(void 0),y=o(b,2),v=y[0],k=y[1],x=(0,l.useState)(0),T=o(x,2),E=T[0],j=T[1],S=(0,l.useState)(!0),q=o(S,2),C=q[0],P=q[1],N=(0,l.useState)(void 0),R=o(N,2),O=R[0],M=R[1],D=(0,l.useState)(void 0),F=o(D,2),A=F[0],L=F[1],U=(0,l.useState)("branch"),I=o(U,2),J=I[0],W=I[1];return(0,l.useEffect)((function(){w&&(W("branch"),u(g,h),P(!0))}),[w]),d.default.createElement("div",{className:"overlayBranch"},d.default.createElement("div",{className:"padding15",style:{paddingBottom:"0px"}},d.default.createElement(i.default,{prefix:d.default.createElement("i",{className:"iconfont icon-sousuo_icon1 font-14"}),placeholder:"请输入分支"+(_?"或标签":"")+"名称搜索",autocomplete:"off",className:"OptionsInput",value:v,onChange:function(e){k(e.target.value);var t=e.target.value?O&&O.length>0&&O.filter((function(t){return t.name.indexOf(e.target.value)>-1})):O;L(t)}})),d.default.createElement(a.default,{mode:"horizontal",className:"navUl",selectedKeys:[J],onClick:function(e){W(e.key),P(!0),"branch"===e.key?(u(g,h),j(0)):(p(g,h),j(1))}},d.default.createElement(a.default.Item,{key:"branch"},"分支"),_&&d.default.createElement(a.default.Item,{key:"tag"},"标签")),d.default.createElement(r.default,{spinning:C},d.default.createElement("ul",{className:"OptionsUl",id:"ul-btn"},A&&A.length>0&&A.map((function(e,t){return d.default.createElement("li",{key:t,onClick:function(){return t=e.name,void f(t);var t}},d.default.createElement("a",{className:"task-hide ulALink"},e.name))})),A&&0===A.length&&d.default.createElement("p",{className:"listTips"},"暂无",v,0===E?"分支":"标签","~"))))}},dEUZ:function(e,t,n){},eIPa:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=g(n("diRs")),a=g(n("W9HT")),i=g(n("2/Rp")),s=g(n("14Xm")),o=Object.assign||function(e){for(var t=1;t0&&c.default.createElement("p",{className:"task-hide",style:{maxWidth:"215px"}},"所属组织:",function(e){var t="";return e.map((function(e){t=t+e.name+"、"})),t&&t.substr(0,t.length-1)}(e.organizations))))),c.default.createElement(u.AlignCenter,{className:"menuinfos"},c.default.createElement(m.Link,{to:"/"+e.login+"/projects"},c.default.createElement("span",null,e.projects_count),c.default.createElement("span",null,"项目数")),c.default.createElement(m.Link,{to:"/"+e.login+"/followers"},c.default.createElement("span",null,e.followers_count),c.default.createElement("span",null,"粉丝数")),c.default.createElement(m.Link,{to:"/"+e.login+"/following"},c.default.createElement("span",null,e.following_count),c.default.createElement("span",null,"关注数"))),c.default.createElement("div",{className:"pb20",style:{display:"flex",justifyContent:"center"}},b&&b===e.login?c.default.createElement(i.default,{className:"currentBtn"},"当前用户"):e.is_watch?c.default.createElement(i.default,{type:"default",onClick:function(){return Z(!1,e.login)}},"已关注"):c.default.createElement(i.default,{type:"primary",onClick:function(){return Z(!0,e.login)}},"关注TA")));D(t)}}function Z(e,t){(0,_.default)({method:e?"post":"delete",url:"/watchers/"+(e?"follow":"unfollow")+".json",params:{target_type:"user",id:t}}).then((function(n){if(n&&(0===n.data.status||2===n.data.status)){var r=k&&k.filter((function(e){return e.login===t}));r&&(r[0].is_watch=e),z(r[0])}})).catch((function(e){console.log(e)}))}function Q(e,t,n){t!==L&&U(t);var r=j.concat();r.map((function(e){return e.visible=!1})),e&&(r[n].visible=e),r.splice(),S(r)}return(0,d.useEffect)((function(){var e;e="/"+h+"/"+w+"/contributors.json",_.default.get(e).then((function(e){e&&(N(e.data.total_count),S(e.data.list))})).catch((function(e){}))}),[]),(0,d.useEffect)((function(){L?g(L):D(void 0)}),[L]),P>0?c.default.createElement("div",{className:"halfs"},c.default.createElement(m.Link,{to:"/"+h+"/"+w+"/contribute",className:"font-16 color-ooo hoverA"},c.default.createElement("span",null,"贡献者"),P>0&&c.default.createElement("span",{className:"infoCount"},P)),c.default.createElement("div",{className:"attrPerson",onMouseLeave:function(){return Q(!1)}},j&&j.length>0&&j.map((function(e,t){return c.default.createElement(r.default,{content:M,visible:e.visible,overlayClassName:"menuPanels",placement:"top"},c.default.createElement(m.Link,{key:t,to:"/"+e.login},c.default.createElement("img",{src:(0,p.getImageUrl)("/"+e.image_url),alt:"",onMouseOver:function(){return Q(!0,e.login,t)}})))})))):""}},gUMM:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=O(n("W9HT")),a=O(n("PArb")),i=O(n("2/Rp")),s=O(n("jsC+")),o=O(n("BvKs")),l=Object.assign||function(e){for(var t=1;t0){var e=Jt.filter((function(e){return"pulls"===e.menu_name})),t=Jt.filter((function(e){return"issues"===e.menu_name}));e&&0===e.length&&jt(!1),t&&0===t.length&&Pt(!1)}}),[Jt]),(0,c.useEffect)((function(){Lt&&(M(Lt),nt(Lt.description),st(Lt.website),ct(Lt.lesson_url),wt(Lt.default_branch),L(Lt.invite_code))}),[Lt]),(0,c.useEffect)((function(){Q(J?decodeURIComponent(J).split("/"):void 0)}),[J]),(0,c.useEffect)((function(){if(Ft&&Dt&&ht){var e=(0,p.turnbar)(At);if(Ut.indexOf("/"+Dt+"/"+Ft)>-1&&Ut.indexOf("/tree/"+e+"/")>-1){var t=Ut.split("/tree/"+e+"/")[1];W(t),function(e,t){Ie(!0);var n="/"+Dt+"/"+Ft+"/sub_entries.json";b.default.get(n,{params:{filepath:(0,p.returnbar)(e),ref:t||At,type:re}}).then((function(t){if(t){var n=t.data.entries;n.type?(ye(void 0),Te(n),ae(n.type),ft(void 0)):(Te(void 0),ye(n),ae("dir"),Wt(e,At||ht));var r=t.data.last_commit;G(r&&r.commit),ee(r&&r.committer),He(!1),Fe(!0),Fe(!vt),le(!0)}setTimeout((function(){Ie(!1)}),500)})).catch((function(e){Ie(!1)}))}(t,At),ae("file")}else W(void 0),function(e){Ie(!0);var t="/"+Dt+"/"+Ft+"/entries.json";b.default.get(t,{params:{ref:e}}).then((function(e){if(e){ge(e.data.commits_count),ye(e.data.entries),Te(void 0),Re(e.data.tar_url),qe(e.data.zip_url);var t=e.data.last_commit;G(t&&t.commit),ee(t&&t.committer),He(!0),Fe(!0),kt(!1),le(!0),Wt("",At||ht)}setTimeout((function(){Ie(!1)}),500)})).catch((function(e){Ie(!1)}))}(At||ht),ae("dir")}}),[Ft,Dt,Ut,ht]),(0,c.useEffect)((function(){b.default.get("/"+Dt+"/"+Ft+"/releases.json").then((function(e){if(e&&e.data){var t={list:e.data.releases,total_count:e.data.releases&&e.data.releases.length};Mt(t)}}))}),[]),(0,c.useEffect)((function(){if(O&&K){var e=document.getElementById("ptxt");if(e)e.offsetHeight>36&&me(!0)}}),[O,K]);var Zt,Qt,Vt=u.default.createElement(g.default,{http_url:O&&O.clone_url,ssh_url:O&&e&&e.platform&&O.ssh_url,zip_url:e&&e.platform&&Se,tar_url:e&&e.platform&&Ne,showNotification:e.showNotification}),Ht=xe&&xe.name,Kt=Ht&&".md"===Ht.substring(Ht.length-3,Ht.length),Gt=e.current_user,Yt=e.checkIfLogin,Xt=e.showLoginDialog,$t=Gt&&Gt.login&&Ct,en=O&&O.permission&&"Reporter"!==O.permission&&2!==O.type&&Et&&e.platform,tn="dir"===re&&O&&2!==O.type&&(O.permission&&"Reporter"!==O.permission||Gt&&Gt.admin);return u.default.createElement(m.WhiteBack,null,u.default.createElement(q.default,{desc:tt,website:it,lesson_url:dt,visible:Ye,onCancel:function(){return Xe(!1)},onOk:function(e,t,n){var r="/"+Dt+"/"+Ft+".json";b.default.put(r,{description:e,website:t||"",lesson_url:n||""}).then((function(e){e&&e.data&&e.data.id&&(nt(e.data.description),st(e.data.website),ct(e.data.lesson_url))}))}}),u.default.createElement(r.default,{spinning:Ue},(be||xe)&&u.default.createElement(u.default.Fragment,null,u.default.createElement(S.default,{history:e.history,owner:Dt,projectsId:Ft,name:O&&O.name,branch:At||ht,visible:Be,onClose:function(){return ze(!1)},list:Ve?be:void 0}),u.default.createElement("div",{className:"drawerBtn",onClick:function(){return ze(!0)}},u.default.createElement("i",{className:"iconfont icon-zuohuaicon font-14"}),u.default.createElement("span",null,"目录"))),u.default.createElement("div",{style:{minHeight:"500px"}},O&&u.default.createElement(m.Box,{className:"Panels"},u.default.createElement(m.LongWidth,null,u.default.createElement("div",{className:"panelmenu"},u.default.createElement(m.FlexAJ,null,u.default.createElement(m.AlignCenter,null,u.default.createElement("div",{className:"mr30"},e&&e.platform?u.default.createElement(h.default,{repo_id:O&&O.repo_id,projectsId:Ft,branch:At||ht,changeBranch:function(t){var n="/"+Dt+"/"+Ft+(t&&"/tree/"+t)+(J?"/"+J:"");e.history.push(n)},owner:Dt,history:e.history,branchList:O&&O.branches&&O.branches.list}):u.default.createElement("span",null,"分支:",u.default.createElement("span",{className:"color-grey-6"},At||ht))),Z&&Z.length>0?u.default.createElement(y.default,{identifier:O&&O.identifier,treeValuePath:Z,returnUlr:function(t){var n=(0,p.turnbar)(At);ae("dir"),e.history.push("/"+Dt+"/"+Ft+"/tree"+(n?"/"+n:"")+"/"+t)},returnMain:function(){W(void 0);var t=At||ht,n=(0,p.turnbar)(t);e.history.push("/"+Dt+"/"+Ft+"/tree/"+n)},getPathUrl:function(e,t){if(e&&e.length>0&&t){for(var n="",r=0;r0||xe?u.default.createElement("div",{className:"listtable"},(K&&K.message||$)&&u.default.createElement("div",{className:"listtablehead"},$&&u.default.createElement(w.default,{url:(0,p.getImageUrl)("/"+$.image_url),name:$.name,id:$.id,login:$.login}),K.message&&u.default.createElement("div",{className:ue&&oe?"ellipsistxt hidetxt":"ellipsistxt"},u.default.createElement("pre",{id:"ptxt"},u.default.createElement(f.Link,{to:"/"+Dt+"/"+Ft+"/commits/"+(0,_.truncateCommitId)(K.sha)},u.default.createElement(R.default,{value:K.message})))),ue&&u.default.createElement("span",{className:"ellipsis",onClick:function(){return function(e){le(!e)}(oe)}},u.default.createElement("i",{className:"iconfont icon-shenglvehao"})),u.default.createElement("span",{className:"ml20 color-grey-6 font-12 mt3"},K.time_from_now),_e?u.default.createElement(f.Link,{to:"/"+Dt+"/"+Ft+"/commits/branch/"+(0,p.turnbar)(At||ht),className:"ml20 color-grey-3",style:{height:"28px",lineHeight:"28px"}},u.default.createElement("i",{className:"iconfont icon-tijiaoicon mr3 font-16"}),u.default.createElement("span",{style:{fontWeight:"500"}},_e,"次提交")):""),u.default.createElement("ul",{className:"listtablebody"},be&&be.length>0&&be.map((function(t,n){return u.default.createElement(v.default,{key:t.id||n,owner:Dt,item:t,projectsId:Ft,goToSubRoot:Bt,platform:e.platform})})),xe&&u.default.createElement(x.default,l({},e,{detail:xe,readOnly:De,md:Kt,onEdit:function(e){Fe(e),kt(!1)},currentBranch:At||ht,branch:At||ht,type:O.type})))):"",be&&0===be.length&&!xe?u.default.createElement(C.default,{_html:"暂未发现文件"}):"",pt&&pt.replace_content?u.default.createElement(k.default,{ChangeFile:function(t,n){var r=At||ht,a=(0,p.turnbar)(r);e.history.push("/"+Dt+"/"+Ft+"/tree/"+a+"/"+t),ae("file"),kt(!0)},readme:pt,operate:e&&(e.isManager||e.isDeveloper)&&2!==O.type,history:e.history}):"")),!(Z&&Z.length>0)&&!xe&&u.default.createElement(m.ShortWidth,null,u.default.createElement(m.Gap,{style:{paddingLeft:"30px"}},u.default.createElement("div",{className:"panelmenu"},u.default.createElement(m.FlexAJ,{className:"font-18 color-ooo mb20",style:{lineHeight:"28px"}},"关于",O.permission&&("Admin"===O.permission||"Owner"===O.permission||"Manager"===O.permission)&&u.default.createElement("i",{onClick:function(){return Xe(!0)},className:"iconfont icon-a-shezhi color-grey-9 font-15 pointer"})),tt&&u.default.createElement("p",{className:"font-14 color-grey-3 mb15 task-hide-2",style:{lineHeight:"24px",WebkitLineClamp:"4",textAlign:"justify",wordBreak:"break-all"},title:tt},tt),it&&u.default.createElement("div",{className:"color-grey-6 df pinfos mb5"},u.default.createElement("i",{className:"iconfont icon-lianjie2 font-15 mr10"}),u.default.createElement("a",{href:it,target:"_blank",style:{wordBreak:"break-all",lineHeight:"20px",marginTop:"5px",textDecoration:"underline"}},it)),u.default.createElement("div",{className:"pinfos mb5"},u.default.createElement("i",{className:"iconfont icon-zishuwenjian_icon font-15 mr10"}),u.default.createElement("a",{href:"#readme"},"README.md")),u.default.createElement("div",{className:"color-grey-6 mb5"},u.default.createElement("i",{className:"iconfont icon-neicunicon font-15 mr10"}),u.default.createElement("span",null,O&&O.size)),O&&O.license_name&&u.default.createElement("div",{className:"pinfos"},u.default.createElement("i",{className:"iconfont icon-xieyiicon font-16 mr10"}),u.default.createElement(f.Link,{to:"/"+Dt+"/"+Ft+"/tree/"+(0,p.turnbar)(At||ht)+"/LICENSE",className:"color-grey-6"},O.license_name))),A&&u.default.createElement("div",null,u.default.createElement(a.default,null),u.default.createElement(P.default,{code:A})),dt&&u.default.createElement("div",null,u.default.createElement(a.default,null),u.default.createElement("p",{className:"font-16 color-ooo"},"实践课程"),u.default.createElement("a",{href:dt,target:"_blank",className:"color-grey-6",style:{textDecoration:"underline",wordBreak:"break-all"}},dt)),Ot&&e.platform&&u.default.createElement(u.default.Fragment,null,u.default.createElement(a.default,null),u.default.createElement(T.default,{owner:Dt,projectsId:Ft,releaseVersions:Ot,history:e.history,distribution:It})),u.default.createElement(E.default,{owner:Dt,projectsId:Ft}),u.default.createElement(j.default,{owner:Dt,projectsId:Ft})))))))}},j5x1:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){for(var n=0;n-1}));b(n)}else b(t)},prefix:o.default.createElement("i",{className:"iconfont icon-sousuo_icon1 font-14"})})),w&&w.length>0?o.default.createElement("div",{className:"anchorBox"},o.default.createElement(a.default,{affix:!1,onChange:function(e){u(e)},offsetTop:140},w.map((function(e,t){return o.default.createElement("div",{style:{paddingLeft:15*e.level+"px"},className:c===e.href?"items active":"items"},o.default.createElement(d,{href:"#"+e.text,title:e.text}))})))):"")}},tnhM:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getUser=t.getSubEntries=t.getHooks=t.getTag=t.getBranch=void 0;var r=i(n("14Xm")),a=i(n("vDqi"));function i(e){return e&&e.__esModule?e:{default:e}}function s(e){return function(){var t=e.apply(this,arguments);return new Promise((function(e,n){return function r(a,i){try{var s=t[a](i),o=s.value}catch(e){return void n(e)}if(!s.done)return Promise.resolve(o).then((function(e){r("next",e)}),(function(e){r("throw",e)}));e(o)}("next")}))}}var o,l,d,c,u;t.getBranch=(o=s(r.default.mark((function e(t,n){var i;return r.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,a.default.get("/"+n+"/"+t+"/branches.json");case 2:return i=e.sent,e.abrupt("return",i&&i.data);case 4:case"end":return e.stop()}}),e,void 0)}))),function(e,t){return o.apply(this,arguments)}),t.getTag=(l=s(r.default.mark((function e(t,n){return r.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,a.default.get("/"+n+"/"+t+"/tags.json",{params:{only_name:!0}});case 2:return e.abrupt("return",e.sent.data.tags);case 3:case"end":return e.stop()}}),e,void 0)}))),function(e,t){return l.apply(this,arguments)}),t.getHooks=(d=s(r.default.mark((function e(t,n){return r.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,a.default.get("/projects/"+t+"/hooks.json",{params:n});case 2:return e.abrupt("return",e.sent.data);case 3:case"end":return e.stop()}}),e,void 0)}))),function(e,t){return d.apply(this,arguments)}),t.getSubEntries=(c=s(r.default.mark((function e(t,n,i){return r.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,a.default.get("/"+t+"/"+n+"/sub_entries.json",{params:i});case 2:return e.abrupt("return",e.sent.data);case 3:case"end":return e.stop()}}),e,void 0)}))),function(e,t,n){return c.apply(this,arguments)}),t.getUser=(u=s(r.default.mark((function e(t){return r.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,a.default.get("/users/"+t+"/hovercard.json");case 2:return e.abrupt("return",e.sent.data);case 3:case"end":return e.stop()}}),e,void 0)}))),function(e){return u.apply(this,arguments)})},w9N6:function(e,t,n){"use strict";e.exports={extension:{publisher:"alex-ext-public",name:"ide-dark-theme",version:"2.4.0"},packageJSON:{publisher:"kaitian",name:"ide-dark-theme",version:"2.4.0",displayName:"IDE UI Theme",description:"IDE UI Theme",contributes:{themes:[{id:"opensumi-dark",label:"OpenSumi Dark",uiTheme:"vs-dark",path:"./themes/dark/plus.json"},{id:"opensumi-light",label:"OpenSumi Light",uiTheme:"vs",path:"./themes/light/plus.json"}]}},pkgNlsJSON:{},nlsList:[],extendConfig:{},webAssets:[],mode:"public"}},yEiv:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.apiService=void 0;var r=n("kg56");t.apiService={get:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return(0,r.request)(e,{method:"GET",params:t},n)},post:function(e,t,n){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return(0,r.request)(e,{method:"POST",params:t,data:n},a)},put:function(e,t,n){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return(0,r.request)(e,{method:"PUT",params:t,data:n},a)},delete:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return(0,r.request)(e,{method:"DELETE",params:t},n)}}},z2sw:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=i(n("cDcd"));n("dEUZ");var a=i(n("FRFo"));function i(e){return e&&e.__esModule?e:{default:e}}t.default=function(e){var t=e.code,n=e.className;return r.default.createElement("div",{className:n},r.default.createElement("span",{className:"font-16 color-ooo"},"邀请码"),r.default.createElement("div",null,r.default.createElement("input",{value:t,id:"devitecode",style:{width:"62px",border:"none",cursor:"default"},readOnly:!0}),r.default.createElement(a.default,{timeOut:!0,beforeText:r.default.createElement("p",{className:"edu-txt-center"},"可以通过邀请码邀请成员加入项目",r.default.createElement("br",null),"点击复制邀请码。"),className:"ml8 font-16",inputId:"devitecode"})))}},zdCV:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.mockService={"/webapi/projects/Gitlink/forgeplus/":{encoding:"UTF-8",id:42422,import_status:"none",namespace:{avatar:{url:null},created_at:"2020-07-02T10:34:49+0800",description:"",id:23159,name:"ide-s",owner:null,owner_id:null,path:"ide-s",permission:null,public:!1,state:null,tenant:{created_at:null,id:0,name:"git",path:"git",updated_at:null,while_list_ip:null},type:"Group",updated_at:"2020-07-02T10:34:49+0800",web_url:"http://gitlab-test.alipay.net/groups/ide-s"},path:"TypeScript-Node-Starter",path_with_namespace:"ide-s/TypeScript-Node-Starter"},"/api/v3/user":{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",name:"testName",role:0,state:"active",theme_id:2,username:"guqiankun.gqk",web_url:"/u/guqiankun.gqk/",website_url:""},"/webapi/projects/42422/get_pull_request_by_iid":{check_suites:[],created_at:"2020-08-06T11:35:38+0800",description:"* 123\n* 456",diff:{add_line_num:753,base_commit_sha:"df72e4d1c394af6d1c21cd042116f83a792fa8c6",commits_count:16,created_at:"2021-05-20T14:27:46+0800",del_line_num:379,files_count:22,head_commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",id:31918,overflow:!1,start_commit_sha:"2566c6dec7756e51f7f16267d9a2a63116ac015b",updated_at:"2021-05-20T14:27:46+0800"},id:13055,iid:2,source_branch:"feat/123123",source_project_id:42422,state:"opened",target_branch:"master",target_project_id:42422},"/api/v3/projects/42422/pull_requests/13055/diffs":[{add_line_num:753,base_commit_sha:"df72e4d1c394af6d1c21cd042116f83a792fa8c6",commits_count:16,created_at:"2021-05-20T14:27:46+0800",del_line_num:379,files_count:22,head_commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",id:31918,overflow:!1,start_commit_sha:"2566c6dec7756e51f7f16267d9a2a63116ac015b",updated_at:"2021-05-20T14:27:46+0800"},{add_line_num:741,base_commit_sha:"df72e4d1c394af6d1c21cd042116f83a792fa8c6",commits_count:15,created_at:"2020-10-27T14:22:15+0800",del_line_num:379,files_count:21,head_commit_sha:"ac55c77aa72d49280058ed6054610f454ee694b1",id:20699,overflow:!1,start_commit_sha:"2566c6dec7756e51f7f16267d9a2a63116ac015b",updated_at:"2020-12-10T20:05:04+0800"}],"/webapi/projects/42422/pull_requests/13055/comments":{committed_reviews:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"maoqiang@test.com",extern_uid:"30041",id:13616,name:"毛嫱",state:"active",username:"maoqiang",web_url:"https://test.com.com/nwpipe/u/30041"},body:null,created_at:"2020-09-10T10:39:41+08:00",id:1650,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"maoqiang@test.com",extern_uid:"30041",id:13616,name:"毛嫱",state:"active",username:"maoqiang",web_url:"https://test.com.com/nwpipe/u/30041"},commit_id:null,created_at:"2020-09-14T12:09:16+0800",discussion_id:69,id:74,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"试试回复哈",noteable_id:1650,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!1,type:"Comment",updated_at:"2020-09-14T12:09:16+0800"}],updated_at:"2020-09-14T12:09:20+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"liuya.zmn@test.com",extern_uid:"208698",id:14920,name:"六牙",state:"active",username:"liuya.zmn",web_url:"https://test.com.com/nwpipe/u/208698"},body:null,created_at:"2020-09-09T14:21:01+08:00",id:1644,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"liuya.zmn@test.com",extern_uid:"208698",id:14920,name:"六牙",state:"active",username:"liuya.zmn",web_url:"https://test.com.com/nwpipe/u/208698"},commit_id:null,created_at:"2020-09-09T14:21:01+0800",discussion_id:null,id:63,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -80,40 +80,40 @@ export const getSignup = (req: Request, res: Response) => {\n * Create a new local account.\n */\n export const postSignup = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password must be at least 4 characters long").isLength({ min: 4 }).run(req);\n- await check("confirmPassword", "Passwords do not match").equals(req.body.password).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/signup");\n+ await check("email", "Email is not valid").isEmail().run(req);\n+ await check("password", "Password must be at least 4 characters long").isLength({ min: 4 }).run(req);\n+ await check("confirmPassword", "Passwords do not match").equals(req.body.password).run(req);\n+ // eslint-disable-next-line @typescript-eslint/camelcase\n+ await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n+\n+ const errors = validationResult(req);\n+\n+ if (!errors.isEmpty()) {\n+ req.flash("errors", errors.array());\n+ return res.redirect("/signup");\n+ }\n+\n+ const user = new User({\n+ email: req.body.email,\n+ password: req.body.password\n+ });\n+\n+ User.findOne({ email: req.body.email }, (err, existingUser) => {\n+ if (err) { return next(err); }\n+ if (existingUser) {\n+ req.flash("errors", { msg: "Account with that email address already exists." });\n+ return res.redirect("/signup");\n }\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_94_101",line_type:"old",note:"111",noteable_id:1644,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:17641,del_line_num:265,deleted_file:!1,diff:'@@ -80,40 +80,40 @@ export const getSignup = (req: Request, res: Response) => {\n * Create a new local account.\n */\n export const postSignup = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password must be at least 4 characters long").isLength({ min: 4 }).run(req);\n- await check("confirmPassword", "Passwords do not match").equals(req.body.password).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/signup");\n+ await check("email", "Email is not valid").isEmail().run(req);\n+ await check("password", "Password must be at least 4 characters long").isLength({ min: 4 }).run(req);\n+ await check("confirmPassword", "Passwords do not match").equals(req.body.password).run(req);\n+ // eslint-disable-next-line @typescript-eslint/camelcase\n+ await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n+\n+ const errors = validationResult(req);\n+\n+ if (!errors.isEmpty()) {\n+ req.flash("errors", errors.array());\n+ return res.redirect("/signup");\n+ }\n+\n+ const user = new User({\n+ email: req.body.email,\n+ password: req.body.password\n+ });\n+\n+ User.findOne({ email: req.body.email }, (err, existingUser) => {\n+ if (err) { return next(err); }\n+ if (existingUser) {\n+ req.flash("errors", { msg: "Account with that email address already exists." });\n+ return res.redirect("/signup");\n }\n',id:47,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-09-09T14:21:12+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"liuya.zmn@test.com",extern_uid:"208698",id:14920,name:"六牙",state:"active",username:"liuya.zmn",web_url:"https://test.com.com/nwpipe/u/208698"},body:null,created_at:"2020-09-09T14:21:25+08:00",id:1645,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"liuya.zmn@test.com",extern_uid:"208698",id:14920,name:"六牙",state:"active",username:"liuya.zmn",web_url:"https://test.com.com/nwpipe/u/208698"},commit_id:null,created_at:"2020-09-09T14:21:26+0800",discussion_id:null,id:64,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -80,40 +80,40 @@ export const getSignup = (req: Request, res: Response) => {\n * Create a new local account.\n */\n export const postSignup = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password must be at least 4 characters long").isLength({ min: 4 }).run(req);\n- await check("confirmPassword", "Passwords do not match").equals(req.body.password).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/signup");\n+ await check("email", "Email is not valid").isEmail().run(req);\n+ await check("password", "Password must be at least 4 characters long").isLength({ min: 4 }).run(req);\n+ await check("confirmPassword", "Passwords do not match").equals(req.body.password).run(req);\n+ // eslint-disable-next-line @typescript-eslint/camelcase\n+ await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n+\n+ const errors = validationResult(req);\n+\n+ if (!errors.isEmpty()) {\n+ req.flash("errors", errors.array());\n+ return res.redirect("/signup");\n+ }\n+\n+ const user = new User({\n+ email: req.body.email,\n+ password: req.body.password\n+ });\n+\n+ User.findOne({ email: req.body.email }, (err, existingUser) => {\n+ if (err) { return next(err); }\n+ if (existingUser) {\n+ req.flash("errors", { msg: "Account with that email address already exists." });\n+ return res.redirect("/signup");\n }\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_94_92",line_type:"old",note:"222",noteable_id:1645,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:17641,del_line_num:265,deleted_file:!1,diff:'@@ -80,40 +80,40 @@ export const getSignup = (req: Request, res: Response) => {\n * Create a new local account.\n */\n export const postSignup = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password must be at least 4 characters long").isLength({ min: 4 }).run(req);\n- await check("confirmPassword", "Passwords do not match").equals(req.body.password).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/signup");\n+ await check("email", "Email is not valid").isEmail().run(req);\n+ await check("password", "Password must be at least 4 characters long").isLength({ min: 4 }).run(req);\n+ await check("confirmPassword", "Passwords do not match").equals(req.body.password).run(req);\n+ // eslint-disable-next-line @typescript-eslint/camelcase\n+ await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n+\n+ const errors = validationResult(req);\n+\n+ if (!errors.isEmpty()) {\n+ req.flash("errors", errors.array());\n+ return res.redirect("/signup");\n+ }\n+\n+ const user = new User({\n+ email: req.body.email,\n+ password: req.body.password\n+ });\n+\n+ User.findOne({ email: req.body.email }, (err, existingUser) => {\n+ if (err) { return next(err); }\n+ if (existingUser) {\n+ req.flash("errors", { msg: "Account with that email address already exists." });\n+ return res.redirect("/signup");\n }\n',id:47,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-09-09T14:21:41+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},body:null,created_at:"2020-08-06T11:35:40+08:00",id:1483,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-08-11T16:36:49+0800",discussion_id:null,id:8,is_award:!1,labels:[],latest_st_diff:{a_mode:"0",add_line_num:228,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:0,deleted_file:!1,diff:'@@ -0,0 +1,228 @@\n+import { PullRequestChange } from \'../../../submodules/api-server/app/web/module/common/model/antcode\';\n+\n+export const mockChanges: PullRequestChange[] = [\n+ {\n+ "a_mode": "100644",\n+ "add_line_num": 3,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 0,\n+ "deleted_file": false,\n+ "id": 139517,\n+ "mark_as_read": false,\n+ "new_file": false,\n+ "new_path": "app/web/locales/en-us/codeReview.ts",\n+ "old_path": "app/web/locales/en-us/codeReview.ts",\n+ "renamed_file": false,\n+ "too_large": false,\n+ "updated_after_read": false\n+ },\n+ {\n+ "a_mode": "100644",\n+ "add_line_num": 3,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 0,\n+ "deleted_file": false,\n+ "id": 139518,\n+ "mark_as_read": false,\n+ "new_file": false,\n+ "new_path": "app/web/locales/zh-cn/codeReview.ts",\n+ "old_path": "app/web/locales/zh-cn/codeReview.ts",\n+ "renamed_file": false,\n+ "too_large": false,\n+ "updated_after_read": false\n+ },\n+ {\n+ "a_mode": "100644",\n+ "add_line_num": 2,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 6,\n+ "deleted_file": false,\n+ "id": 139519,\n+ "mark_as_read": false,\n+ "new_file": false,\n+ "new_path": "app/web/module/browser/index.ts",\n+ "old_path": "app/web/module/browser/index.ts",\n+ "renamed_file": false,\n+ "too_large": false,\n+ "updated_after_read": false\n+ },\n+ {\n+ "a_mode": "0",\n+ "add_line_num": 298,\n+ "b_mode": "100644",\n+ "binary_file": false,\n',id:1077,new_file:!0,new_path:"a.ts",old_path:"a.ts",renamed_file:!1,too_large:!1},line_code:"02699cd6ca65aa6819d7e387678d8ea5359b5e59_0_56",line_type:"new",note:"123123123",noteable_id:1483,noteable_type:"ReviewComment",outdated:!1,path:"a.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"0",add_line_num:228,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:15929,del_line_num:0,deleted_file:!1,diff:'@@ -0,0 +1,228 @@\n+import { PullRequestChange } from \'../../../submodules/api-server/app/web/module/common/model/antcode\';\n+\n+export const mockChanges: PullRequestChange[] = [\n+ {\n+ "a_mode": "100644",\n+ "add_line_num": 3,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 0,\n+ "deleted_file": false,\n+ "id": 139517,\n+ "mark_as_read": false,\n+ "new_file": false,\n+ "new_path": "app/web/locales/en-us/codeReview.ts",\n+ "old_path": "app/web/locales/en-us/codeReview.ts",\n+ "renamed_file": false,\n+ "too_large": false,\n+ "updated_after_read": false\n+ },\n+ {\n+ "a_mode": "100644",\n+ "add_line_num": 3,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 0,\n+ "deleted_file": false,\n+ "id": 139518,\n+ "mark_as_read": false,\n+ "new_file": false,\n+ "new_path": "app/web/locales/zh-cn/codeReview.ts",\n+ "old_path": "app/web/locales/zh-cn/codeReview.ts",\n+ "renamed_file": false,\n+ "too_large": false,\n+ "updated_after_read": false\n+ },\n+ {\n+ "a_mode": "100644",\n+ "add_line_num": 2,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 6,\n+ "deleted_file": false,\n+ "id": 139519,\n+ "mark_as_read": false,\n+ "new_file": false,\n+ "new_path": "app/web/module/browser/index.ts",\n+ "old_path": "app/web/module/browser/index.ts",\n+ "renamed_file": false,\n+ "too_large": false,\n+ "updated_after_read": false\n+ },\n+ {\n+ "a_mode": "0",\n+ "add_line_num": 298,\n+ "b_mode": "100644",\n+ "binary_file": false,\n',id:43,new_file:!0,new_path:"a.ts",old_path:"a.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-08-11T16:36:53+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},body:null,created_at:"2020-08-11T16:36:54+08:00",id:1530,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-08-11T20:56:08+0800",discussion_id:null,id:9,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -27,30 +27,30 @@ export const getLogin = (req: Request, res: Response) => {\n * Sign in using email and password.\n */\n export const postLogin = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password cannot be blank").isLength({min: 1}).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/login");\n+ await check("email", "Email is not valid").isEmail().run(req);\n+ await check("password", "Password cannot be blank").isLength({ min: 1 }).run(req);\n+ // eslint-disable-next-line @typescript-eslint/camelcase\n+ await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n+\n+ const errors = validationResult(req);\n+\n+ if (!errors.isEmpty()) {\n+ req.flash("errors", errors.array());\n+ return res.redirect("/login");\n+ }\n+\n+ passport.authenticate("local", (err: Error, user: UserDocument, info: IVerifyOptions) => {\n+ if (err) { return next(err); }\n+ if (!user) {\n+ req.flash("errors", { msg: info.message });\n+ return res.redirect("/login");\n }\n-\n- passport.authenticate("local", (err: Error, user: UserDocument, info: IVerifyOptions) => {\n- if (err) { return next(err); }\n- if (!user) {\n- req.flash("errors", {msg: info.message});\n- return res.redirect("/login");\n- }\n- req.logIn(user, (err) => {\n- if (err) { return next(err); }\n- req.flash("success", { msg: "Success! You are logged in." });\n- res.redirect(req.session.returnTo || "/");\n- });\n- })(req, res, next);\n+ req.logIn(user, (err) => {\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_49_48",line_type:"old",note:"@taian.lta(伊北) 测试一下咔咔咔咔咔咔",noteable_id:1530,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:15929,del_line_num:265,deleted_file:!1,diff:'@@ -27,30 +27,30 @@ export const getLogin = (req: Request, res: Response) => {\n * Sign in using email and password.\n */\n export const postLogin = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password cannot be blank").isLength({min: 1}).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/login");\n+ await check("email", "Email is not valid").isEmail().run(req);\n+ await check("password", "Password cannot be blank").isLength({ min: 1 }).run(req);\n+ // eslint-disable-next-line @typescript-eslint/camelcase\n+ await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n+\n+ const errors = validationResult(req);\n+\n+ if (!errors.isEmpty()) {\n+ req.flash("errors", errors.array());\n+ return res.redirect("/login");\n+ }\n+\n+ passport.authenticate("local", (err: Error, user: UserDocument, info: IVerifyOptions) => {\n+ if (err) { return next(err); }\n+ if (!user) {\n+ req.flash("errors", { msg: info.message });\n+ return res.redirect("/login");\n }\n-\n- passport.authenticate("local", (err: Error, user: UserDocument, info: IVerifyOptions) => {\n- if (err) { return next(err); }\n- if (!user) {\n- req.flash("errors", {msg: info.message});\n- return res.redirect("/login");\n- }\n- req.logIn(user, (err) => {\n- if (err) { return next(err); }\n- req.flash("success", { msg: "Success! You are logged in." });\n- res.redirect(req.session.returnTo || "/");\n- });\n- })(req, res, next);\n+ req.logIn(user, (err) => {\n',id:45,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-08-11T20:56:31+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},body:null,created_at:"2020-08-11T20:56:32+08:00",id:1537,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-08-13T15:13:13+0800",discussion_id:null,id:12,is_award:!1,labels:[],latest_st_diff:{a_mode:"0",add_line_num:228,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:0,deleted_file:!1,diff:'@@ -0,0 +1,228 @@\n+import { PullRequestChange } from \'../../../submodules/api-server/app/web/module/common/model/antcode\';\n+\n+export const mockChanges: PullRequestChange[] = [\n+ {\n+ "a_mode": "100644",\n+ "add_line_num": 3,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 0,\n+ "deleted_file": false,\n+ "id": 139517,\n+ "mark_as_read": false,\n+ "new_file": false,\n+ "new_path": "app/web/locales/en-us/codeReview.ts",\n+ "old_path": "app/web/locales/en-us/codeReview.ts",\n+ "renamed_file": false,\n+ "too_large": false,\n+ "updated_after_read": false\n+ },\n+ {\n+ "a_mode": "100644",\n+ "add_line_num": 3,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 0,\n+ "deleted_file": false,\n+ "id": 139518,\n+ "mark_as_read": false,\n+ "new_file": false,\n+ "new_path": "app/web/locales/zh-cn/codeReview.ts",\n+ "old_path": "app/web/locales/zh-cn/codeReview.ts",\n+ "renamed_file": false,\n+ "too_large": false,\n+ "updated_after_read": false\n+ },\n+ {\n+ "a_mode": "100644",\n+ "add_line_num": 2,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 6,\n+ "deleted_file": false,\n+ "id": 139519,\n+ "mark_as_read": false,\n+ "new_file": false,\n+ "new_path": "app/web/module/browser/index.ts",\n+ "old_path": "app/web/module/browser/index.ts",\n+ "renamed_file": false,\n+ "too_large": false,\n+ "updated_after_read": false\n+ },\n+ {\n+ "a_mode": "0",\n+ "add_line_num": 298,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 0,\n+ "deleted_file": false,\n+ "id": 139520,\n+ "mark_as_read": false,\n+ "new_file": true,\n+ "new_path": "app/web/module/code-review/browser/code-fold.contribution.tsx",\n+ "old_path": "app/web/module/code-review/browser/code-fold.contribution.tsx",\n+ "renamed_file": false,\n+ "too_large": false,\n+ "updated_after_read": false\n+ },\n+ {\n+ "a_mode": "100644",\n+ "add_line_num": 47,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 0,\n+ "deleted_file": false,\n+ "id": 139521,\n+ "mark_as_read": false,\n+ "new_file": false,\n+ "new_path": "app/web/module/code-review/browser/comment-common.service.ts",\n+ "old_path": "app/web/module/code-review/browser/comment-common.service.ts",\n+ "renamed_file": false,\n+ "too_large": false,\n+ "updated_after_read": false\n+ },\n+ {\n+ "a_mode": "100644",\n+ "add_line_num": 15,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 16,\n+ "deleted_file": false,\n+ "id": 139522,\n+ "mark_as_read": false,\n+ "new_file": false,\n+ "new_path": "app/web/module/code-review/browser/comment-write.contribution.ts",\n+ "old_path": "app/web/module/code-review/browser/comment-write.contribution.ts",\n',id:1077,new_file:!0,new_path:"a.ts",old_path:"a.ts",renamed_file:!1,too_large:!1},line_code:"02699cd6ca65aa6819d7e387678d8ea5359b5e59_0_95",line_type:"new",note:"123",noteable_id:1537,noteable_type:"ReviewComment",outdated:!1,path:"a.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"0",add_line_num:228,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:15929,del_line_num:0,deleted_file:!1,diff:'@@ -0,0 +1,228 @@\n+import { PullRequestChange } from \'../../../submodules/api-server/app/web/module/common/model/antcode\';\n+\n+export const mockChanges: PullRequestChange[] = [\n+ {\n+ "a_mode": "100644",\n+ "add_line_num": 3,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 0,\n+ "deleted_file": false,\n+ "id": 139517,\n+ "mark_as_read": false,\n+ "new_file": false,\n+ "new_path": "app/web/locales/en-us/codeReview.ts",\n+ "old_path": "app/web/locales/en-us/codeReview.ts",\n+ "renamed_file": false,\n+ "too_large": false,\n+ "updated_after_read": false\n+ },\n+ {\n+ "a_mode": "100644",\n+ "add_line_num": 3,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 0,\n+ "deleted_file": false,\n+ "id": 139518,\n+ "mark_as_read": false,\n+ "new_file": false,\n+ "new_path": "app/web/locales/zh-cn/codeReview.ts",\n+ "old_path": "app/web/locales/zh-cn/codeReview.ts",\n+ "renamed_file": false,\n+ "too_large": false,\n+ "updated_after_read": false\n+ },\n+ {\n+ "a_mode": "100644",\n+ "add_line_num": 2,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 6,\n+ "deleted_file": false,\n+ "id": 139519,\n+ "mark_as_read": false,\n+ "new_file": false,\n+ "new_path": "app/web/module/browser/index.ts",\n+ "old_path": "app/web/module/browser/index.ts",\n+ "renamed_file": false,\n+ "too_large": false,\n+ "updated_after_read": false\n+ },\n+ {\n+ "a_mode": "0",\n+ "add_line_num": 298,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 0,\n+ "deleted_file": false,\n+ "id": 139520,\n+ "mark_as_read": false,\n+ "new_file": true,\n+ "new_path": "app/web/module/code-review/browser/code-fold.contribution.tsx",\n+ "old_path": "app/web/module/code-review/browser/code-fold.contribution.tsx",\n+ "renamed_file": false,\n+ "too_large": false,\n+ "updated_after_read": false\n+ },\n+ {\n+ "a_mode": "100644",\n+ "add_line_num": 47,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 0,\n+ "deleted_file": false,\n+ "id": 139521,\n+ "mark_as_read": false,\n+ "new_file": false,\n+ "new_path": "app/web/module/code-review/browser/comment-common.service.ts",\n+ "old_path": "app/web/module/code-review/browser/comment-common.service.ts",\n+ "renamed_file": false,\n+ "too_large": false,\n+ "updated_after_read": false\n+ },\n+ {\n+ "a_mode": "100644",\n+ "add_line_num": 15,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 16,\n+ "deleted_file": false,\n+ "id": 139522,\n+ "mark_as_read": false,\n+ "new_file": false,\n+ "new_path": "app/web/module/code-review/browser/comment-write.contribution.ts",\n+ "old_path": "app/web/module/code-review/browser/comment-write.contribution.ts",\n',id:43,new_file:!0,new_path:"a.ts",old_path:"a.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-08-13T15:11:06+0800",discussion_id:null,id:11,is_award:!1,labels:["中间件规约"],latest_st_diff:{a_mode:"0",add_line_num:228,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:0,deleted_file:!1,diff:'@@ -0,0 +1,228 @@\n+import { PullRequestChange } from \'../../../submodules/api-server/app/web/module/common/model/antcode\';\n+\n+export const mockChanges: PullRequestChange[] = [\n+ {\n+ "a_mode": "100644",\n+ "add_line_num": 3,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 0,\n',id:1077,new_file:!0,new_path:"a.ts",old_path:"a.ts",renamed_file:!1,too_large:!1},line_code:"02699cd6ca65aa6819d7e387678d8ea5359b5e59_0_9",line_type:"new",note:"123123",noteable_id:1537,noteable_type:"ReviewComment",outdated:!1,path:"a.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"0",add_line_num:228,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:15929,del_line_num:0,deleted_file:!1,diff:'@@ -0,0 +1,228 @@\n+import { PullRequestChange } from \'../../../submodules/api-server/app/web/module/common/model/antcode\';\n+\n+export const mockChanges: PullRequestChange[] = [\n+ {\n+ "a_mode": "100644",\n+ "add_line_num": 3,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 0,\n',id:43,new_file:!0,new_path:"a.ts",old_path:"a.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-08-18T10:24:50+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},body:null,created_at:"2020-09-03T22:18:43+08:00",id:1629,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-09-03T22:18:43+0800",discussion_id:13,id:36,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"测试一条评论看看能不能生效呢",noteable_id:1629,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!1,type:"Comment",updated_at:"2020-09-03T22:18:43+0800"}],updated_at:"2020-09-03T22:18:48+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},body:null,created_at:"2020-09-04T10:52:12+08:00",id:1630,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-09-04T16:20:22+0800",discussion_id:null,id:38,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -27,30 +27,30 @@ export const getLogin = (req: Request, res: Response) => {\n * Sign in using email and password.\n */\n export const postLogin = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password cannot be blank").isLength({min: 1}).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/login");\n+ await check("email", "Email is not valid").isEmail().run(req);\n+ await check("password", "Password cannot be blank").isLength({ min: 1 }).run(req);\n+ // eslint-disable-next-line @typescript-eslint/camelcase\n+ await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n+\n+ const errors = validationResult(req);\n+\n+ if (!errors.isEmpty()) {\n+ req.flash("errors", errors.array());\n+ return res.redirect("/login");\n+ }\n+\n+ passport.authenticate("local", (err: Error, user: UserDocument, info: IVerifyOptions) => {\n+ if (err) { return next(err); }\n+ if (!user) {\n+ req.flash("errors", { msg: info.message });\n+ return res.redirect("/login");\n }\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_40_37",line_type:"old",note:"测试",noteable_id:1630,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:17174,del_line_num:265,deleted_file:!1,diff:'@@ -27,30 +27,30 @@ export const getLogin = (req: Request, res: Response) => {\n * Sign in using email and password.\n */\n export const postLogin = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password cannot be blank").isLength({min: 1}).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/login");\n+ await check("email", "Email is not valid").isEmail().run(req);\n+ await check("password", "Password cannot be blank").isLength({ min: 1 }).run(req);\n+ // eslint-disable-next-line @typescript-eslint/camelcase\n+ await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n+\n+ const errors = validationResult(req);\n+\n+ if (!errors.isEmpty()) {\n+ req.flash("errors", errors.array());\n+ return res.redirect("/login");\n+ }\n+\n+ passport.authenticate("local", (err: Error, user: UserDocument, info: IVerifyOptions) => {\n+ if (err) { return next(err); }\n+ if (!user) {\n+ req.flash("errors", { msg: info.message });\n+ return res.redirect("/login");\n }\n',id:311,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-09-04T10:52:12+0800",discussion_id:null,id:37,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_0_3",line_type:"old",note:"哈哈哈",noteable_id:1630,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:17174,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n',id:311,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-09-04T16:20:30+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},body:null,created_at:"2020-09-04T16:20:38+08:00",id:1633,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-09-04T16:20:39+0800",discussion_id:null,id:40,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -27,30 +27,30 @@ export const getLogin = (req: Request, res: Response) => {\n * Sign in using email and password.\n */\n export const postLogin = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password cannot be blank").isLength({min: 1}).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/login");\n+ await check("email", "Email is not valid").isEmail().run(req);\n+ await check("password", "Password cannot be blank").isLength({ min: 1 }).run(req);\n+ // eslint-disable-next-line @typescript-eslint/camelcase\n+ await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n+\n+ const errors = validationResult(req);\n+\n+ if (!errors.isEmpty()) {\n+ req.flash("errors", errors.array());\n+ return res.redirect("/login");\n+ }\n+\n+ passport.authenticate("local", (err: Error, user: UserDocument, info: IVerifyOptions) => {\n+ if (err) { return next(err); }\n+ if (!user) {\n+ req.flash("errors", { msg: info.message });\n+ return res.redirect("/login");\n }\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_40_35",line_type:"old",note:"123",noteable_id:1633,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:17174,del_line_num:265,deleted_file:!1,diff:'@@ -27,30 +27,30 @@ export const getLogin = (req: Request, res: Response) => {\n * Sign in using email and password.\n */\n export const postLogin = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password cannot be blank").isLength({min: 1}).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/login");\n+ await check("email", "Email is not valid").isEmail().run(req);\n+ await check("password", "Password cannot be blank").isLength({ min: 1 }).run(req);\n+ // eslint-disable-next-line @typescript-eslint/camelcase\n+ await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n+\n+ const errors = validationResult(req);\n+\n+ if (!errors.isEmpty()) {\n+ req.flash("errors", errors.array());\n+ return res.redirect("/login");\n+ }\n+\n+ passport.authenticate("local", (err: Error, user: UserDocument, info: IVerifyOptions) => {\n+ if (err) { return next(err); }\n+ if (!user) {\n+ req.flash("errors", { msg: info.message });\n+ return res.redirect("/login");\n }\n',id:311,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-09-04T16:20:43+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},body:null,created_at:"2020-09-08T19:47:16+08:00",id:1639,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-09-08T19:47:16+0800",discussion_id:null,id:59,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"v1.16.2-snapshot-3a71cb12",noteable_id:1639,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!1,type:"Comment",updated_at:"2020-09-08T19:47:16+0800"}],updated_at:"2020-09-08T19:47:16+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},body:null,created_at:"2020-09-10T12:04:45+08:00",id:1652,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-09-10T12:04:45+0800",discussion_id:null,id:69,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:1,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:1,deleted_file:!1,diff:'@@ -16,7 +16,7 @@ const server = app.listen(app.get("port"), () => {\n app.get("port"),\n',id:1091,new_file:!1,new_path:"src/server.ts",old_path:"src/server.ts",renamed_file:!1,too_large:!1},line_code:"bcc09dcb20cae54f483679309f0403fdcbd98121_15_0",line_type:"old",note:"测试发布一条评论",noteable_id:1652,noteable_type:"ReviewComment",outdated:!1,path:"src/server.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:1,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:17921,del_line_num:1,deleted_file:!1,diff:'@@ -16,7 +16,7 @@ const server = app.listen(app.get("port"), () => {\n app.get("port"),\n',id:79,new_file:!1,new_path:"src/server.ts",old_path:"src/server.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-09-10T12:04:49+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},body:null,created_at:"2020-09-13T22:47:59+08:00",id:1659,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-09-17T23:03:22+0800",discussion_id:60,id:84,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"123123",noteable_id:1659,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!1,type:"Comment",updated_at:"2020-09-17T23:03:22+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-09-13T22:47:59+0800",discussion_id:null,id:73,is_award:!1,labels:["内存泄露","日志规约","中间件规约","基础编码规约","安全规约","并发&幂等"],latest_st_diff:{a_mode:"100644",add_line_num:7,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:7,deleted_file:!1,diff:'@@ -1,18 +1,18 @@\n import winston from "winston";\n \n const options: winston.LoggerOptions = {\n- transports: [\n- new winston.transports.Console({\n- level: process.env.NODE_ENV === "production" ? "error" : "debug"\n- }),\n- new winston.transports.File({ filename: "debug.log", level: "debug" })\n- ]\n+ transports: [\n',id:1092,new_file:!1,new_path:"src/util/logger.ts",old_path:"src/util/logger.ts",renamed_file:!1,too_large:!1},line_code:"bd5630fadbfeb531e34aa7539e6a12a247f8b0c6_9_4",line_type:"old",note:"123",noteable_id:1659,noteable_type:"ReviewComment",outdated:!1,path:"src/util/logger.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:7,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:17959,del_line_num:7,deleted_file:!1,diff:'@@ -1,18 +1,18 @@\n import winston from "winston";\n \n const options: winston.LoggerOptions = {\n- transports: [\n- new winston.transports.Console({\n- level: process.env.NODE_ENV === "production" ? "error" : "debug"\n- }),\n- new winston.transports.File({ filename: "debug.log", level: "debug" })\n- ]\n+ transports: [\n',id:275,new_file:!1,new_path:"src/util/logger.ts",old_path:"src/util/logger.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-09-17T23:03:28+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},body:null,created_at:"2020-09-19T22:39:00+08:00",id:1662,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-09-19T22:39:35+0800",discussion_id:11,id:87,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"test123",noteable_id:1662,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!1,type:"Comment",updated_at:"2020-09-19T22:39:35+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-09-19T22:39:00+0800",discussion_id:78,id:86,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"123123123",noteable_id:1662,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!1,type:"Comment",updated_at:"2020-09-19T22:39:00+0800"}],updated_at:"2020-09-19T22:40:05+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},body:null,created_at:"2020-10-28T11:42:13+08:00",id:1737,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-11-16T19:52:35+0800",discussion_id:78,id:180,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"*\n*",noteable_id:1737,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!1,type:"Comment",updated_at:"2020-11-16T19:52:35+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-11-11T13:28:08+0800",discussion_id:null,id:170,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:49,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:49,deleted_file:!1,diff:'@@ -3,73 +3,73 @@ import crypto from "crypto";\n import mongoose from "mongoose";\n \n export type UserDocument = mongoose.Document & {\n- email: string;\n- password: string;\n- passwordResetToken: string;\n- passwordResetExpires: Date;\n+ email: string;\n',id:1089,new_file:!1,new_path:"src/models/User.ts",old_path:"src/models/User.ts",renamed_file:!1,too_large:!1},line_code:"e9bf216a20e84ee797b9402193000e41dad21aa6_6_6",line_type:"old",note:"123",noteable_id:1737,noteable_type:"ReviewComment",outdated:!1,path:"src/models/User.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:49,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:49,deleted_file:!1,diff:'@@ -3,73 +3,73 @@ import crypto from "crypto";\n import mongoose from "mongoose";\n \n export type UserDocument = mongoose.Document & {\n- email: string;\n- password: string;\n- passwordResetToken: string;\n- passwordResetExpires: Date;\n+ email: string;\n',id:1089,new_file:!1,new_path:"src/models/User.ts",old_path:"src/models/User.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2020-11-11T13:28:08+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-11-11T13:27:56+0800",discussion_id:null,id:169,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:49,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:49,deleted_file:!1,diff:'@@ -3,73 +3,73 @@ import crypto from "crypto";\n import mongoose from "mongoose";\n \n export type UserDocument = mongoose.Document & {\n- email: string;\n- password: string;\n- passwordResetToken: string;\n- passwordResetExpires: Date;\n+ email: string;\n+ password: string;\n+ passwordResetToken: string;\n+ passwordResetExpires: Date;\n \n',id:1089,new_file:!1,new_path:"src/models/User.ts",old_path:"src/models/User.ts",renamed_file:!1,too_large:!1},line_code:"e9bf216a20e84ee797b9402193000e41dad21aa6_10_7",line_type:"old",note:"123",noteable_id:1737,noteable_type:"ReviewComment",outdated:!1,path:"src/models/User.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:49,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:49,deleted_file:!1,diff:'@@ -3,73 +3,73 @@ import crypto from "crypto";\n import mongoose from "mongoose";\n \n export type UserDocument = mongoose.Document & {\n- email: string;\n- password: string;\n- passwordResetToken: string;\n- passwordResetExpires: Date;\n+ email: string;\n+ password: string;\n+ passwordResetToken: string;\n+ passwordResetExpires: Date;\n \n',id:1089,new_file:!1,new_path:"src/models/User.ts",old_path:"src/models/User.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2020-11-11T13:27:56+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-10-28T11:42:13+0800",discussion_id:52,id:166,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"123123",noteable_id:1737,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!1,type:"Comment",updated_at:"2020-10-28T11:42:13+0800"}],updated_at:"2022-01-25T15:55:52+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},body:null,created_at:"2020-08-18T10:23:46+08:00",id:1563,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-08-25T20:31:20+0800",discussion_id:null,id:27,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -27,30 +27,30 @@ export const getLogin = (req: Request, res: Response) => {\n * Sign in using email and password.\n */\n export const postLogin = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password cannot be blank").isLength({min: 1}).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/login");\n+ await check("email", "Email is not valid").isEmail().run(req);\n+ await check("password", "Password cannot be blank").isLength({ min: 1 }).run(req);\n+ // eslint-disable-next-line @typescript-eslint/camelcase\n+ await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n+\n+ const errors = validationResult(req);\n+\n+ if (!errors.isEmpty()) {\n+ req.flash("errors", errors.array());\n+ return res.redirect("/login");\n+ }\n+\n+ passport.authenticate("local", (err: Error, user: UserDocument, info: IVerifyOptions) => {\n+ if (err) { return next(err); }\n+ if (!user) {\n+ req.flash("errors", { msg: info.message });\n+ return res.redirect("/login");\n }\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_40_31",line_type:"old",note:"右侧",noteable_id:1563,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:16382,del_line_num:265,deleted_file:!1,diff:'@@ -27,30 +27,30 @@ export const getLogin = (req: Request, res: Response) => {\n * Sign in using email and password.\n */\n export const postLogin = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password cannot be blank").isLength({min: 1}).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/login");\n+ await check("email", "Email is not valid").isEmail().run(req);\n+ await check("password", "Password cannot be blank").isLength({ min: 1 }).run(req);\n+ // eslint-disable-next-line @typescript-eslint/camelcase\n+ await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n+\n+ const errors = validationResult(req);\n+\n+ if (!errors.isEmpty()) {\n+ req.flash("errors", errors.array());\n+ return res.redirect("/login");\n+ }\n+\n+ passport.authenticate("local", (err: Error, user: UserDocument, info: IVerifyOptions) => {\n+ if (err) { return next(err); }\n+ if (!user) {\n+ req.flash("errors", { msg: info.message });\n+ return res.redirect("/login");\n }\n',id:34,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-08-21T15:34:22+0800",discussion_id:20,id:26,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"撒大声地阿斯顿撒",noteable_id:1563,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!1,type:"Comment",updated_at:"2020-08-21T15:34:22+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-08-21T15:33:34+0800",discussion_id:23,id:25,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"sad",noteable_id:1563,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!1,type:"Comment",updated_at:"2020-08-21T15:33:34+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-08-21T11:30:27+0800",discussion_id:9,id:16,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"asdsadsa",noteable_id:1563,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!1,type:"Comment",updated_at:"2020-08-21T11:30:27+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-08-21T11:30:21+0800",discussion_id:9,id:15,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"asdasd",noteable_id:1563,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!1,type:"Comment",updated_at:"2020-08-21T11:30:21+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-08-18T10:23:46+0800",discussion_id:null,id:13,is_award:!1,labels:[],latest_st_diff:{a_mode:"0",add_line_num:228,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:0,deleted_file:!1,diff:'@@ -0,0 +1,228 @@\n+import { PullRequestChange } from \'../../../submodules/api-server/app/web/module/common/model/antcode\';\n+\n+export const mockChanges: PullRequestChange[] = [\n+ {\n+ "a_mode": "100644",\n+ "add_line_num": 3,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 0,\n+ "deleted_file": false,\n',id:1077,new_file:!0,new_path:"a.ts",old_path:"a.ts",renamed_file:!1,too_large:!1},line_code:"02699cd6ca65aa6819d7e387678d8ea5359b5e59_0_10",line_type:"new",note:"1111",noteable_id:1563,noteable_type:"ReviewComment",outdated:!1,path:"a.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"0",add_line_num:228,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:15929,del_line_num:0,deleted_file:!1,diff:'@@ -0,0 +1,228 @@\n+import { PullRequestChange } from \'../../../submodules/api-server/app/web/module/common/model/antcode\';\n+\n+export const mockChanges: PullRequestChange[] = [\n+ {\n+ "a_mode": "100644",\n+ "add_line_num": 3,\n+ "b_mode": "100644",\n+ "binary_file": false,\n+ "del_line_num": 0,\n+ "deleted_file": false,\n',id:43,new_file:!0,new_path:"a.ts",old_path:"a.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-08-25T20:31:24+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},body:null,created_at:"2020-08-28T10:27:38+08:00",id:1609,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-08-28T11:29:51+0800",discussion_id:null,id:30,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n */\n export const getLogin = (req: Request, res: Response) => {\n- if (req.user) {\n- return res.redirect("/");\n- }\n- res.render("account/login", {\n- title: "Login"\n- });\n+ if (req.user) {\n+ return res.redirect("/");\n+ }\n+ res.render("account/login", {\n+ title: "Login"\n+ });\n };\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_23_17",line_type:"old",note:"大迭代",noteable_id:1609,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:16382,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n */\n export const getLogin = (req: Request, res: Response) => {\n- if (req.user) {\n- return res.redirect("/");\n- }\n- res.render("account/login", {\n- title: "Login"\n- });\n+ if (req.user) {\n+ return res.redirect("/");\n+ }\n+ res.render("account/login", {\n+ title: "Login"\n+ });\n };\n',id:34,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-08-28T11:29:43+0800",discussion_id:null,id:29,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_9_0",line_type:"old",note:"撒大声地",noteable_id:1609,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:16382,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n',id:34,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-08-28T10:27:39+0800",discussion_id:22,id:28,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"ffff",noteable_id:1609,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!1,type:"Comment",updated_at:"2020-08-28T10:27:39+0800"}],updated_at:"2020-08-28T11:30:02+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},body:null,created_at:"2020-08-28T11:30:22+08:00",id:1610,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-08-28T11:30:22+0800",discussion_id:null,id:31,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_3_0",line_type:"old",note:"333333",noteable_id:1610,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:16382,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n',id:34,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-08-28T11:30:27+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},body:null,created_at:"2020-08-28T11:30:58+08:00",id:1611,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-08-28T11:30:58+0800",discussion_id:null,id:32,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -27,30 +27,30 @@ export const getLogin = (req: Request, res: Response) => {\n * Sign in using email and password.\n */\n export const postLogin = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password cannot be blank").isLength({min: 1}).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/login");\n+ await check("email", "Email is not valid").isEmail().run(req);\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_37_30",line_type:"old",note:"啊大大",noteable_id:1611,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:16382,del_line_num:265,deleted_file:!1,diff:'@@ -27,30 +27,30 @@ export const getLogin = (req: Request, res: Response) => {\n * Sign in using email and password.\n */\n export const postLogin = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password cannot be blank").isLength({min: 1}).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/login");\n+ await check("email", "Email is not valid").isEmail().run(req);\n',id:34,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-08-28T11:31:04+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},body:null,created_at:"2020-09-07T11:12:17+08:00",id:1635,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-09-07T11:12:18+0800",discussion_id:null,id:43,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_9_0",line_type:"old",note:"ddd",noteable_id:1635,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:17598,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n',id:752,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-09-07T11:19:37+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},body:null,created_at:"2020-09-07T11:58:28+08:00",id:1637,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-09-07T15:44:32+0800",discussion_id:null,id:50,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -252,61 +252,61 @@ export const getReset = (req: Request, res: Response, next: NextFunction) => {\n * Process the reset password request.\n */\n export const postReset = async (req: Request, res: Response, next: NextFunction) => {\n- await check("password", "Password must be at least 4 characters long.").isLength({ min: 4 }).run(req);\n- await check("confirm", "Passwords must match.").equals(req.body.password).run(req);\n+ await check("password", "Password must be at least 4 characters long.").isLength({ min: 4 }).run(req);\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_255_255",line_type:"old",note:"asdsadas",noteable_id:1637,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:17605,del_line_num:265,deleted_file:!1,diff:'@@ -252,61 +252,61 @@ export const getReset = (req: Request, res: Response, next: NextFunction) => {\n * Process the reset password request.\n */\n export const postReset = async (req: Request, res: Response, next: NextFunction) => {\n- await check("password", "Password must be at least 4 characters long.").isLength({ min: 4 }).run(req);\n- await check("confirm", "Passwords must match.").equals(req.body.password).run(req);\n+ await check("password", "Password must be at least 4 characters long.").isLength({ min: 4 }).run(req);\n',id:490,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-09-07T15:44:18+0800",discussion_id:null,id:49,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -252,61 +252,61 @@ export const getReset = (req: Request, res: Response, next: NextFunction) => {\n * Process the reset password request.\n */\n export const postReset = async (req: Request, res: Response, next: NextFunction) => {\n- await check("password", "Password must be at least 4 characters long.").isLength({ min: 4 }).run(req);\n- await check("confirm", "Passwords must match.").equals(req.body.password).run(req);\n+ await check("password", "Password must be at least 4 characters long.").isLength({ min: 4 }).run(req);\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_255_255",line_type:"old",note:"dddd",noteable_id:1637,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:17605,del_line_num:265,deleted_file:!1,diff:'@@ -252,61 +252,61 @@ export const getReset = (req: Request, res: Response, next: NextFunction) => {\n * Process the reset password request.\n */\n export const postReset = async (req: Request, res: Response, next: NextFunction) => {\n- await check("password", "Password must be at least 4 characters long.").isLength({ min: 4 }).run(req);\n- await check("confirm", "Passwords must match.").equals(req.body.password).run(req);\n+ await check("password", "Password must be at least 4 characters long.").isLength({ min: 4 }).run(req);\n',id:490,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-09-07T15:43:49+0800",discussion_id:29,id:48,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"ddd",noteable_id:1637,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!1,type:"Comment",updated_at:"2020-09-07T15:43:49+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-09-07T11:58:29+0800",discussion_id:null,id:46,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -27,30 +27,30 @@ export const getLogin = (req: Request, res: Response) => {\n * Sign in using email and password.\n */\n export const postLogin = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password cannot be blank").isLength({min: 1}).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/login");\n+ await check("email", "Email is not valid").isEmail().run(req);\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_37_30",line_type:"old",note:"十点多",noteable_id:1637,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:17598,del_line_num:265,deleted_file:!1,diff:'@@ -27,30 +27,30 @@ export const getLogin = (req: Request, res: Response) => {\n * Sign in using email and password.\n */\n export const postLogin = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password cannot be blank").isLength({min: 1}).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/login");\n+ await check("email", "Email is not valid").isEmail().run(req);\n',id:752,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-09-07T15:44:42+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},body:null,created_at:"2020-09-07T15:47:40+08:00",id:1638,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-09-07T16:39:19+0800",discussion_id:null,id:53,is_award:!1,labels:["内存泄露","中间件规约"],latest_st_diff:{a_mode:"100644",add_line_num:4,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:4,deleted_file:!1,diff:'@@ -4,7 +4,7 @@ import passportFacebook from "passport-facebook";\n import _ from "lodash";\n \n // import { User, UserType } from \'../models/User\';\n-import { User, UserDocument } from "../models/User";\n+import { User, UserDocument } from "../models/User"\n',id:1087,new_file:!1,new_path:"src/config/passport.ts",old_path:"src/config/passport.ts",renamed_file:!1,too_large:!1},line_code:"761e3f18c863ddeee900bf74ddd8fed56a4aa2c9_7_7",line_type:"old",note:"test",noteable_id:1638,noteable_type:"ReviewComment",outdated:!1,path:"src/config/passport.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:4,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:17605,del_line_num:4,deleted_file:!1,diff:'@@ -4,7 +4,7 @@ import passportFacebook from "passport-facebook";\n import _ from "lodash";\n \n // import { User, UserType } from \'../models/User\';\n-import { User, UserDocument } from "../models/User";\n+import { User, UserDocument } from "../models/User"\n',id:489,new_file:!1,new_path:"src/config/passport.ts",old_path:"src/config/passport.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-09-07T15:47:40+0800",discussion_id:null,id:51,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_3_0",line_type:"old",note:"asdasd",noteable_id:1638,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:17605,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n',id:490,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-09-16T15:19:24+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},body:null,created_at:"2020-09-22T10:13:52+08:00",id:1663,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-10-27T11:38:24+0800",discussion_id:null,id:159,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:1,deleted_file:!1,diff:"@@ -1,4 +1,3 @@\n-# TypeScript Node Starter\n > hello world typescript\n \n The main purpose of this repository is to show a working Node.js API Server + front-end project and workflow for writing Node code in TypeScript.\n",id:1075,new_file:!1,new_path:"README.md",old_path:"README.md",renamed_file:!1,too_large:!1},line_code:"8ec9a00bfd09b3190ac6b22251dbb1aa95a0579d_0_24",line_type:"old",note:"![stack.png](/ide-s/TypeScript-Node-Starter/uploads/f0320521d707466988b87cc04ec2c7a4/stack.png)",noteable_id:1663,noteable_type:"ReviewComment",outdated:!0,path:"README.md",resolved_at:"2022-01-25T15:10:39+08:00",resolved_by:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},st_diff:{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"604ed58cc40ed8ed6581d1c10e265da6f8b23496",compare_diff_id:19988,del_line_num:1,deleted_file:!1,diff:"@@ -1,4 +1,3 @@\n-# TypeScript Node Starter\n > hello world typescript\n \n The main purpose of this repository is to show a working Node.js API Server + front-end project and workflow for writing Node code in TypeScript.\n",id:144,new_file:!1,new_path:"README.md",old_path:"README.md",renamed_file:!1,too_large:!1},state:"opened",system:!1,type:"Problem",updated_at:"2021-05-20T14:27:46+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-09-22T10:13:53+0800",discussion_id:null,id:88,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:1,deleted_file:!1,diff:"@@ -24,7 +24,6 @@ footer {\n \n // Input Fields\n // -------------------------\n-\n textarea {\n resize: vertical;\n",id:1090,new_file:!1,new_path:"src/public/css/main.scss",old_path:"src/public/css/main.scss",renamed_file:!1,too_large:!1},line_code:"4c32a30db22da868cde702e26a724b6a2408a33c_29_27",line_type:"old",note:"右边",noteable_id:1663,noteable_type:"ReviewComment",outdated:!0,path:"src/public/css/main.scss",resolved_at:"2022-01-20T20:10:37+08:00",resolved_by:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},st_diff:{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:18810,del_line_num:1,deleted_file:!1,diff:"@@ -24,7 +24,6 @@ footer {\n \n // Input Fields\n // -------------------------\n-\n textarea {\n resize: vertical;\n",id:117,new_file:!1,new_path:"src/public/css/main.scss",old_path:"src/public/css/main.scss",renamed_file:!1,too_large:!1},state:"opened",system:!1,type:"Problem",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-10-27T11:38:42+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},body:null,created_at:"2020-10-27T11:39:26+08:00",id:1731,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},commit_id:null,created_at:"2022-01-25T15:16:48+0800",discussion_id:182,id:500022,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"Problem status changed to opened",noteable_id:1731,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!0,type:"Comment",updated_at:"2022-01-25T15:16:48+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},commit_id:null,created_at:"2022-01-25T15:16:07+0800",discussion_id:182,id:500021,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"Problem status changed to resolved",noteable_id:1731,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!0,type:"Comment",updated_at:"2022-01-25T15:16:07+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-11-19T15:19:18+0800",discussion_id:null,id:182,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:0,deleted_file:!1,diff:"",id:1096,new_file:!1,new_path:"views/partials/footer-renamed.pug",old_path:"views/partials/footer.pug",renamed_file:!0,too_large:!1},line_code:"cdba7b9c4edb14d31053cfb58047d4183fe1830d_2_2",line_type:"old",note:"2222",noteable_id:1731,noteable_type:"ReviewComment",outdated:!0,path:"views/partials/footer-renamed.pug",resolved_at:"2022-01-25T15:16:07+08:00",resolved_by:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},st_diff:{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"ac55c77aa72d49280058ed6054610f454ee694b1",compare_diff_id:20699,del_line_num:0,deleted_file:!1,diff:"",id:570,new_file:!1,new_path:"views/partials/footer-renamed.pug",old_path:"views/partials/footer.pug",renamed_file:!0,too_large:!1},state:"opened",system:!1,type:"Problem",updated_at:"2021-05-20T14:27:46+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-11-19T14:50:02+0800",discussion_id:null,id:181,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:"old",note:"111",noteable_id:1731,noteable_type:"ReviewComment",outdated:!1,path:"views/partials/footer-renamed.pug",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"ac55c77aa72d49280058ed6054610f454ee694b1",compare_diff_id:20699,del_line_num:0,deleted_file:!1,diff:"",id:570,new_file:!1,new_path:"views/partials/footer-renamed.pug",old_path:"views/partials/footer.pug",renamed_file:!0,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2020-11-19T14:50:02+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-10-27T11:39:26+0800",discussion_id:159,id:160,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"![](https://test.com/cloud-ide/api-server/uploads/96a89b8b059d4dd0896c5a01fe3ed68d/stack.png)",noteable_id:1731,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!1,type:"Comment",updated_at:"2020-10-27T11:39:26+0800"}],updated_at:"2020-11-19T15:19:37+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},body:null,created_at:"2020-11-19T15:20:10+08:00",id:1769,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-11-19T15:20:10+0800",discussion_id:null,id:183,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:0,deleted_file:!1,diff:"",id:1096,new_file:!1,new_path:"views/partials/footer-renamed.pug",old_path:"views/partials/footer.pug",renamed_file:!0,too_large:!1},line_code:"cdba7b9c4edb14d31053cfb58047d4183fe1830d_5_5",line_type:"old",note:"555",noteable_id:1769,noteable_type:"ReviewComment",outdated:!0,path:"views/partials/footer-renamed.pug",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"ac55c77aa72d49280058ed6054610f454ee694b1",compare_diff_id:20699,del_line_num:0,deleted_file:!1,diff:"",id:570,new_file:!1,new_path:"views/partials/footer-renamed.pug",old_path:"views/partials/footer.pug",renamed_file:!0,too_large:!1},state:"opened",system:!1,type:"Problem",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-11-19T15:20:14+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},body:null,created_at:"2020-11-19T15:20:34+08:00",id:1770,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2020-11-19T15:20:34+0800",discussion_id:null,id:184,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:2,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:2,deleted_file:!1,diff:"@@ -14,11 +14,11 @@ block content\n .form-group.row.justify-content-md-center\n",id:1094,new_file:!1,new_path:"views/contact123.pug",old_path:"views/contact.pug",renamed_file:!0,too_large:!1},line_code:"01c01633c13afa3e0580e14dbcd3c26e289c5281_0_4",line_type:"old",note:"4444",noteable_id:1770,noteable_type:"ReviewComment",outdated:!0,path:"views/contact123.pug",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:2,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"ac55c77aa72d49280058ed6054610f454ee694b1",compare_diff_id:20699,del_line_num:2,deleted_file:!1,diff:"@@ -14,11 +14,11 @@ block content\n .form-group.row.justify-content-md-center\n",id:568,new_file:!1,new_path:"views/contact123.pug",old_path:"views/contact.pug",renamed_file:!0,too_large:!1},state:"opened",system:!1,type:"Problem",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-11-19T15:20:49+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},body:null,created_at:"2021-05-28T16:28:46+08:00",id:2106,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},commit_id:null,created_at:"2022-01-25T20:10:21+0800",discussion_id:205,id:500027,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"Problem status changed to opened",noteable_id:2106,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!0,type:"Comment",updated_at:"2022-01-25T20:10:21+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},commit_id:null,created_at:"2022-01-25T20:10:07+0800",discussion_id:205,id:500026,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"Problem status changed to resolved",noteable_id:2106,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!0,type:"Comment",updated_at:"2022-01-25T20:10:07+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},commit_id:null,created_at:"2022-01-25T16:06:08+0800",discussion_id:206,id:500024,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"Problem status changed to resolved",noteable_id:2106,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!0,type:"Comment",updated_at:"2022-01-25T16:06:08+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2021-05-28T16:31:57+0800",discussion_id:null,id:206,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:1,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:1,deleted_file:!1,diff:'@@ -16,7 +16,7 @@ const server = app.listen(app.get("port"), () => {\n app.get("port"),\n app.get("env")\n',id:1091,new_file:!1,new_path:"src/server.ts",old_path:"src/server.ts",renamed_file:!1,too_large:!1},line_code:"bcc09dcb20cae54f483679309f0403fdcbd98121_17_16",line_type:"old",note:"1111",noteable_id:2106,noteable_type:"ReviewComment",outdated:!0,path:"src/server.ts",resolved_at:"2022-01-25T16:06:08+08:00",resolved_by:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},st_diff:{a_mode:"100644",add_line_num:1,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:1,deleted_file:!1,diff:'@@ -16,7 +16,7 @@ const server = app.listen(app.get("port"), () => {\n app.get("port"),\n app.get("env")\n',id:1091,new_file:!1,new_path:"src/server.ts",old_path:"src/server.ts",renamed_file:!1,too_large:!1},state:"opened",system:!1,type:"Problem",updated_at:"2021-05-28T16:31:57+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2021-05-28T16:28:46+0800",discussion_id:null,id:205,is_award:!1,labels:["测试"],latest_st_diff:{a_mode:"100644",add_line_num:4,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:4,deleted_file:!1,diff:"@@ -14,7 +14,7 @@ passport.serializeUser((user, done) => {\n done(undefined, user.id);\n });\n \n-passport.deserializeUser((id, done) => {\n+passport.deserializeUser((id: string, done) => {\n User.findById(id, (err, user) => {\n",id:1087,new_file:!1,new_path:"src/config/passport.ts",old_path:"src/config/passport.ts",renamed_file:!1,too_large:!1},line_code:"761e3f18c863ddeee900bf74ddd8fed56a4aa2c9_18_17",line_type:"old",note:"这是啥",noteable_id:2106,noteable_type:"ReviewComment",outdated:!1,path:"src/config/passport.ts",resolved_at:"2022-01-25T20:10:07+08:00",resolved_by:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},st_diff:{a_mode:"100644",add_line_num:4,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:4,deleted_file:!1,diff:"@@ -14,7 +14,7 @@ passport.serializeUser((user, done) => {\n done(undefined, user.id);\n });\n \n-passport.deserializeUser((id, done) => {\n+passport.deserializeUser((id: string, done) => {\n User.findById(id, (err, user) => {\n",id:1087,new_file:!1,new_path:"src/config/passport.ts",old_path:"src/config/passport.ts",renamed_file:!1,too_large:!1},state:"opened",system:!1,type:"Problem",updated_at:"2021-05-28T16:28:46+0800"}],updated_at:"2021-05-28T16:32:04+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},body:null,created_at:"2021-11-04T15:07:06+08:00",id:4200243,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2021-11-04T15:07:07+0800",discussion_id:null,id:400002,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -27,30 +27,30 @@ export const getLogin = (req: Request, res: Response) => {\n * Sign in using email and password.\n */\n export const postLogin = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password cannot be blank").isLength({min: 1}).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/login");\n+ await check("email", "Email is not valid").isEmail().run(req);\n+ await check("password", "Password cannot be blank").isLength({ min: 1 }).run(req);\n+ // eslint-disable-next-line @typescript-eslint/camelcase\n+ await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n+\n+ const errors = validationResult(req);\n+\n+ if (!errors.isEmpty()) {\n+ req.flash("errors", errors.array());\n+ return res.redirect("/login");\n+ }\n+\n+ passport.authenticate("local", (err: Error, user: UserDocument, info: IVerifyOptions) => {\n+ if (err) { return next(err); }\n+ if (!user) {\n+ req.flash("errors", { msg: info.message });\n+ return res.redirect("/login");\n }\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_40_47",line_type:"old",note:"这是一个带图评论\n\n\n![image.png](/ide-s/TypeScript-Node-Starter/uploads/45f6e1865078460aa15f2799225d956c/image.png)\n",noteable_id:4200243,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -27,30 +27,30 @@ export const getLogin = (req: Request, res: Response) => {\n * Sign in using email and password.\n */\n export const postLogin = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password cannot be blank").isLength({min: 1}).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/login");\n+ await check("email", "Email is not valid").isEmail().run(req);\n+ await check("password", "Password cannot be blank").isLength({ min: 1 }).run(req);\n+ // eslint-disable-next-line @typescript-eslint/camelcase\n+ await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n+\n+ const errors = validationResult(req);\n+\n+ if (!errors.isEmpty()) {\n+ req.flash("errors", errors.array());\n+ return res.redirect("/login");\n+ }\n+\n+ passport.authenticate("local", (err: Error, user: UserDocument, info: IVerifyOptions) => {\n+ if (err) { return next(err); }\n+ if (!user) {\n+ req.flash("errors", { msg: info.message });\n+ return res.redirect("/login");\n }\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:"opened",system:!1,type:"Problem",updated_at:"2021-11-04T15:07:07+0800"}],updated_at:"2021-11-04T15:07:16+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},body:null,created_at:"2021-11-04T15:08:12+08:00",id:4200244,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},commit_id:null,created_at:"2022-01-24T11:08:09+0800",discussion_id:400003,id:500014,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"Problem status changed to opened",noteable_id:4200244,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!0,type:"Comment",updated_at:"2022-01-24T11:08:09+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},commit_id:null,created_at:"2022-01-24T11:07:54+0800",discussion_id:400003,id:500013,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"Problem status changed to resolved",noteable_id:4200244,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!0,type:"Comment",updated_at:"2022-01-24T11:07:54+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"xinglong.wangwxl@test.com",extern_uid:"80222",id:15168,name:"蛋总",state:"active",username:"xinglong.wangwxl",web_url:"https://test.com.com/nwpipe/u/80222"},commit_id:null,created_at:"2021-11-04T15:08:12+0800",discussion_id:null,id:400003,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -327,62 +327,62 @@ export const getForgot = (req: Request, res: Response) => {\n * Create a random token, then the send user an email with a reset link.\n */\n export const postForgot = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Please enter a valid email address.").isEmail().run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/forgot");\n- }\n-\n- async.waterfall([\n- function createRandomToken(done: Function) {\n- crypto.randomBytes(16, (err, buf) => {\n- const token = buf.toString("hex");\n- done(err, token);\n- });\n- },\n- function setRandomToken(token: AuthToken, done: Function) {\n- User.findOne({ email: req.body.email }, (err, user: any) => {\n- if (err) { return done(err); }\n- if (!user) {\n- req.flash("errors", { msg: "Account with that email address does not exist." });\n- return res.redirect("/forgot");\n- }\n- user.passwordResetToken = token;\n- user.passwordResetExpires = Date.now() + 3600000; // 1 hour\n- user.save((err: WriteError) => {\n- done(err, token, user);\n- });\n- });\n- },\n- function sendForgotPasswordEmail(token: AuthToken, user: UserDocument, done: Function) {\n- const transporter = nodemailer.createTransport({\n- service: "SendGrid",\n- auth: {\n- user: process.env.SENDGRID_USER,\n- pass: process.env.SENDGRID_PASSWORD\n- }\n- });\n- const mailOptions = {\n- to: user.email,\n- from: "hackathon@starter.com",\n- subject: "Reset your password on Hackathon Starter",\n- text: `You are receiving this email because you (or someone else) have requested the reset of the password for your account.\\n\\n\n+ await check("email", "Please enter a valid email address.").isEmail().run(req);\n+ // eslint-disable-next-line @typescript-eslint/camelcase\n+ await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n+\n+ const errors = validationResult(req);\n+\n+ if (!errors.isEmpty()) {\n+ req.flash("errors", errors.array());\n+ return res.redirect("/forgot");\n+ }\n+\n+ async.waterfall([\n+ function createRandomToken(done: Function) {\n+ crypto.randomBytes(16, (err, buf) => {\n+ const token = buf.toString("hex");\n+ done(err, token);\n+ });\n+ },\n+ function setRandomToken(token: AuthToken, done: Function) {\n+ User.findOne({ email: req.body.email }, (err, user: any) => {\n+ if (err) { return done(err); }\n+ if (!user) {\n+ req.flash("errors", { msg: "Account with that email address does not exist." });\n+ return res.redirect("/forgot");\n+ }\n+ user.passwordResetToken = token;\n+ user.passwordResetExpires = Date.now() + 3600000; // 1 hour\n+ user.save((err: WriteError) => {\n+ done(err, token, user);\n+ });\n+ });\n+ },\n+ function sendForgotPasswordEmail(token: AuthToken, user: UserDocument, done: Function) {\n+ const transporter = nodemailer.createTransport({\n+ service: "SendGrid",\n+ auth: {\n+ user: process.env.SENDGRID_USER,\n+ pass: process.env.SENDGRID_PASSWORD\n+ }\n+ });\n+ const mailOptions = {\n+ to: user.email,\n+ from: "hackathon@starter.com",\n+ subject: "Reset your password on Hackathon Starter",\n+ text: `You are receiving this email because you (or someone else) have requested the reset of the password for your account.\\n\\n\n Please click on the following link, or paste this into your browser to complete the process:\\n\\n\n http://${req.headers.host}/reset/${token}\\n\\n\n If you did not request this, please ignore this email and your password will remain unchanged.\\n`\n- };\n- transporter.sendMail(mailOptions, (err) => {\n- req.flash("info", { msg: `An e-mail has been sent to ${user.email} with further instructions.` });\n- done(err);\n- });\n- }\n- ], (err) => {\n- if (err) { return next(err); }\n- res.redirect("/forgot");\n- });\n+ };\n+ transporter.sendMail(mailOptions, (err) => {\n+ req.flash("info", { msg: `An e-mail has been sent to ${user.email} with further instructions.` });\n+ done(err);\n+ });\n+ }\n+ ], (err) => {\n+ if (err) { return next(err); }\n+ res.redirect("/forgot");\n+ });\n };\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_388_384",line_type:"old",note:"111 \n\n\n![image.png](/ide-s/TypeScript-Node-Starter/uploads/cd8f399b2c994d01b4afe179c26e5a4f/image.png)\n",noteable_id:4200244,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:"2022-01-24T11:07:54+08:00",resolved_by:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -327,62 +327,62 @@ export const getForgot = (req: Request, res: Response) => {\n * Create a random token, then the send user an email with a reset link.\n */\n export const postForgot = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Please enter a valid email address.").isEmail().run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/forgot");\n- }\n-\n- async.waterfall([\n- function createRandomToken(done: Function) {\n- crypto.randomBytes(16, (err, buf) => {\n- const token = buf.toString("hex");\n- done(err, token);\n- });\n- },\n- function setRandomToken(token: AuthToken, done: Function) {\n- User.findOne({ email: req.body.email }, (err, user: any) => {\n- if (err) { return done(err); }\n- if (!user) {\n- req.flash("errors", { msg: "Account with that email address does not exist." });\n- return res.redirect("/forgot");\n- }\n- user.passwordResetToken = token;\n- user.passwordResetExpires = Date.now() + 3600000; // 1 hour\n- user.save((err: WriteError) => {\n- done(err, token, user);\n- });\n- });\n- },\n- function sendForgotPasswordEmail(token: AuthToken, user: UserDocument, done: Function) {\n- const transporter = nodemailer.createTransport({\n- service: "SendGrid",\n- auth: {\n- user: process.env.SENDGRID_USER,\n- pass: process.env.SENDGRID_PASSWORD\n- }\n- });\n- const mailOptions = {\n- to: user.email,\n- from: "hackathon@starter.com",\n- subject: "Reset your password on Hackathon Starter",\n- text: `You are receiving this email because you (or someone else) have requested the reset of the password for your account.\\n\\n\n+ await check("email", "Please enter a valid email address.").isEmail().run(req);\n+ // eslint-disable-next-line @typescript-eslint/camelcase\n+ await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n+\n+ const errors = validationResult(req);\n+\n+ if (!errors.isEmpty()) {\n+ req.flash("errors", errors.array());\n+ return res.redirect("/forgot");\n+ }\n+\n+ async.waterfall([\n+ function createRandomToken(done: Function) {\n+ crypto.randomBytes(16, (err, buf) => {\n+ const token = buf.toString("hex");\n+ done(err, token);\n+ });\n+ },\n+ function setRandomToken(token: AuthToken, done: Function) {\n+ User.findOne({ email: req.body.email }, (err, user: any) => {\n+ if (err) { return done(err); }\n+ if (!user) {\n+ req.flash("errors", { msg: "Account with that email address does not exist." });\n+ return res.redirect("/forgot");\n+ }\n+ user.passwordResetToken = token;\n+ user.passwordResetExpires = Date.now() + 3600000; // 1 hour\n+ user.save((err: WriteError) => {\n+ done(err, token, user);\n+ });\n+ });\n+ },\n+ function sendForgotPasswordEmail(token: AuthToken, user: UserDocument, done: Function) {\n+ const transporter = nodemailer.createTransport({\n+ service: "SendGrid",\n+ auth: {\n+ user: process.env.SENDGRID_USER,\n+ pass: process.env.SENDGRID_PASSWORD\n+ }\n+ });\n+ const mailOptions = {\n+ to: user.email,\n+ from: "hackathon@starter.com",\n+ subject: "Reset your password on Hackathon Starter",\n+ text: `You are receiving this email because you (or someone else) have requested the reset of the password for your account.\\n\\n\n Please click on the following link, or paste this into your browser to complete the process:\\n\\n\n http://${req.headers.host}/reset/${token}\\n\\n\n If you did not request this, please ignore this email and your password will remain unchanged.\\n`\n- };\n- transporter.sendMail(mailOptions, (err) => {\n- req.flash("info", { msg: `An e-mail has been sent to ${user.email} with further instructions.` });\n- done(err);\n- });\n- }\n- ], (err) => {\n- if (err) { return next(err); }\n- res.redirect("/forgot");\n- });\n+ };\n+ transporter.sendMail(mailOptions, (err) => {\n+ req.flash("info", { msg: `An e-mail has been sent to ${user.email} with further instructions.` });\n+ done(err);\n+ });\n+ }\n+ ], (err) => {\n+ if (err) { return next(err); }\n+ res.redirect("/forgot");\n+ });\n };\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:"opened",system:!1,type:"Problem",updated_at:"2021-11-04T15:08:12+0800"}],updated_at:"2021-11-04T15:08:18+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},body:null,created_at:"2020-08-21T15:20:06+08:00",id:1585,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},commit_id:null,created_at:"2020-08-21T15:20:25+0800",discussion_id:null,id:18,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -27,30 +27,30 @@ export const getLogin = (req: Request, res: Response) => {\n * Sign in using email and password.\n */\n export const postLogin = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password cannot be blank").isLength({min: 1}).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/login");\n+ await check("email", "Email is not valid").isEmail().run(req);\n+ await check("password", "Password cannot be blank").isLength({ min: 1 }).run(req);\n+ // eslint-disable-next-line @typescript-eslint/camelcase\n+ await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n+\n+ const errors = validationResult(req);\n+\n+ if (!errors.isEmpty()) {\n+ req.flash("errors", errors.array());\n+ return res.redirect("/login");\n+ }\n+\n+ passport.authenticate("local", (err: Error, user: UserDocument, info: IVerifyOptions) => {\n+ if (err) { return next(err); }\n+ if (!user) {\n+ req.flash("errors", { msg: info.message });\n+ return res.redirect("/login");\n }\n-\n- passport.authenticate("local", (err: Error, user: UserDocument, info: IVerifyOptions) => {\n- if (err) { return next(err); }\n- if (!user) {\n- req.flash("errors", {msg: info.message});\n- return res.redirect("/login");\n- }\n- req.logIn(user, (err) => {\n- if (err) { return next(err); }\n- req.flash("success", { msg: "Success! You are logged in." });\n- res.redirect(req.session.returnTo || "/");\n- });\n- })(req, res, next);\n+ req.logIn(user, (err) => {\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_41_48",line_type:"old",note:"第二次测试",noteable_id:1585,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:16382,del_line_num:265,deleted_file:!1,diff:'@@ -27,30 +27,30 @@ export const getLogin = (req: Request, res: Response) => {\n * Sign in using email and password.\n */\n export const postLogin = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password cannot be blank").isLength({min: 1}).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/login");\n+ await check("email", "Email is not valid").isEmail().run(req);\n+ await check("password", "Password cannot be blank").isLength({ min: 1 }).run(req);\n+ // eslint-disable-next-line @typescript-eslint/camelcase\n+ await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n+\n+ const errors = validationResult(req);\n+\n+ if (!errors.isEmpty()) {\n+ req.flash("errors", errors.array());\n+ return res.redirect("/login");\n+ }\n+\n+ passport.authenticate("local", (err: Error, user: UserDocument, info: IVerifyOptions) => {\n+ if (err) { return next(err); }\n+ if (!user) {\n+ req.flash("errors", { msg: info.message });\n+ return res.redirect("/login");\n }\n-\n- passport.authenticate("local", (err: Error, user: UserDocument, info: IVerifyOptions) => {\n- if (err) { return next(err); }\n- if (!user) {\n- req.flash("errors", {msg: info.message});\n- return res.redirect("/login");\n- }\n- req.logIn(user, (err) => {\n- if (err) { return next(err); }\n- req.flash("success", { msg: "Success! You are logged in." });\n- res.redirect(req.session.returnTo || "/");\n- });\n- })(req, res, next);\n+ req.logIn(user, (err) => {\n',id:34,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},commit_id:null,created_at:"2020-08-21T15:20:06+0800",discussion_id:null,id:17,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -27,30 +27,30 @@ export const getLogin = (req: Request, res: Response) => {\n * Sign in using email and password.\n */\n export const postLogin = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password cannot be blank").isLength({min: 1}).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/login");\n+ await check("email", "Email is not valid").isEmail().run(req);\n+ await check("password", "Password cannot be blank").isLength({ min: 1 }).run(req);\n+ // eslint-disable-next-line @typescript-eslint/camelcase\n+ await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n+\n+ const errors = validationResult(req);\n+\n+ if (!errors.isEmpty()) {\n+ req.flash("errors", errors.array());\n+ return res.redirect("/login");\n+ }\n+\n+ passport.authenticate("local", (err: Error, user: UserDocument, info: IVerifyOptions) => {\n+ if (err) { return next(err); }\n+ if (!user) {\n+ req.flash("errors", { msg: info.message });\n+ return res.redirect("/login");\n }\n-\n- passport.authenticate("local", (err: Error, user: UserDocument, info: IVerifyOptions) => {\n- if (err) { return next(err); }\n- if (!user) {\n- req.flash("errors", {msg: info.message});\n- return res.redirect("/login");\n- }\n- req.logIn(user, (err) => {\n- if (err) { return next(err); }\n- req.flash("success", { msg: "Success! You are logged in." });\n- res.redirect(req.session.returnTo || "/");\n- });\n- })(req, res, next);\n+ req.logIn(user, (err) => {\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_43_48",line_type:"old",note:"太好了",noteable_id:1585,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:16382,del_line_num:265,deleted_file:!1,diff:'@@ -27,30 +27,30 @@ export const getLogin = (req: Request, res: Response) => {\n * Sign in using email and password.\n */\n export const postLogin = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password cannot be blank").isLength({min: 1}).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/login");\n+ await check("email", "Email is not valid").isEmail().run(req);\n+ await check("password", "Password cannot be blank").isLength({ min: 1 }).run(req);\n+ // eslint-disable-next-line @typescript-eslint/camelcase\n+ await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n+\n+ const errors = validationResult(req);\n+\n+ if (!errors.isEmpty()) {\n+ req.flash("errors", errors.array());\n+ return res.redirect("/login");\n+ }\n+\n+ passport.authenticate("local", (err: Error, user: UserDocument, info: IVerifyOptions) => {\n+ if (err) { return next(err); }\n+ if (!user) {\n+ req.flash("errors", { msg: info.message });\n+ return res.redirect("/login");\n }\n-\n- passport.authenticate("local", (err: Error, user: UserDocument, info: IVerifyOptions) => {\n- if (err) { return next(err); }\n- if (!user) {\n- req.flash("errors", {msg: info.message});\n- return res.redirect("/login");\n- }\n- req.logIn(user, (err) => {\n- if (err) { return next(err); }\n- req.flash("success", { msg: "Success! You are logged in." });\n- res.redirect(req.session.returnTo || "/");\n- });\n- })(req, res, next);\n+ req.logIn(user, (err) => {\n',id:34,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-08-21T15:20:32+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},body:null,created_at:"2020-08-21T15:28:36+08:00",id:1586,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},commit_id:null,created_at:"2020-08-21T15:28:36+0800",discussion_id:null,id:19,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -27,30 +27,30 @@ export const getLogin = (req: Request, res: Response) => {\n * Sign in using email and password.\n */\n export const postLogin = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password cannot be blank").isLength({min: 1}).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/login");\n+ await check("email", "Email is not valid").isEmail().run(req);\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_30_30",line_type:"old",note:"第三次测试",noteable_id:1586,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:16382,del_line_num:265,deleted_file:!1,diff:'@@ -27,30 +27,30 @@ export const getLogin = (req: Request, res: Response) => {\n * Sign in using email and password.\n */\n export const postLogin = async (req: Request, res: Response, next: NextFunction) => {\n- await check("email", "Email is not valid").isEmail().run(req);\n- await check("password", "Password cannot be blank").isLength({min: 1}).run(req);\n- // eslint-disable-next-line @typescript-eslint/camelcase\n- await sanitize("email").normalizeEmail({ gmail_remove_dots: false }).run(req);\n-\n- const errors = validationResult(req);\n-\n- if (!errors.isEmpty()) {\n- req.flash("errors", errors.array());\n- return res.redirect("/login");\n+ await check("email", "Email is not valid").isEmail().run(req);\n',id:34,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-08-21T15:28:39+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},body:null,created_at:"2020-08-21T15:29:04+08:00",id:1587,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},commit_id:null,created_at:"2020-08-21T15:29:04+0800",discussion_id:null,id:20,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n */\n export const getLogin = (req: Request, res: Response) => {\n- if (req.user) {\n- return res.redirect("/");\n- }\n- res.render("account/login", {\n- title: "Login"\n- });\n+ if (req.user) {\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_21_17",line_type:"old",note:"第四次测试",noteable_id:1587,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:16382,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n */\n export const getLogin = (req: Request, res: Response) => {\n- if (req.user) {\n- return res.redirect("/");\n- }\n- res.render("account/login", {\n- title: "Login"\n- });\n+ if (req.user) {\n',id:34,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-08-21T15:29:07+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},body:null,created_at:"2020-08-21T15:30:06+08:00",id:1588,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},commit_id:null,created_at:"2020-08-21T15:30:07+0800",discussion_id:null,id:21,is_award:!1,labels:["dadada","dada","dadad","LackOfProfessionalField","BusinessArchitectureDesignDefect","DesignPatternDefect","NotFamilierBasicFrame","LackOfJavaBase","CodeStandardsIssue","并发&幂等","基础编码规约","中间件规约"],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n */\n export const getLogin = (req: Request, res: Response) => {\n- if (req.user) {\n- return res.redirect("/");\n- }\n- res.render("account/login", {\n- title: "Login"\n- });\n+ if (req.user) {\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_21_17",line_type:"old",note:"第五次测试",noteable_id:1588,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:16382,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n */\n export const getLogin = (req: Request, res: Response) => {\n- if (req.user) {\n- return res.redirect("/");\n- }\n- res.render("account/login", {\n- title: "Login"\n- });\n+ if (req.user) {\n',id:34,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-08-21T15:30:10+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},body:null,created_at:"2020-08-21T15:30:28+08:00",id:1589,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},commit_id:null,created_at:"2020-08-21T15:30:28+0800",discussion_id:null,id:22,is_award:!1,labels:["内存泄露","日志规约"],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n */\n export const getLogin = (req: Request, res: Response) => {\n- if (req.user) {\n- return res.redirect("/");\n- }\n- res.render("account/login", {\n- title: "Login"\n- });\n+ if (req.user) {\n+ return res.redirect("/");\n+ }\n+ res.render("account/login", {\n+ title: "Login"\n+ });\n };\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_23_17",line_type:"old",note:"第六次测试",noteable_id:1589,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:16382,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n */\n export const getLogin = (req: Request, res: Response) => {\n- if (req.user) {\n- return res.redirect("/");\n- }\n- res.render("account/login", {\n- title: "Login"\n- });\n+ if (req.user) {\n+ return res.redirect("/");\n+ }\n+ res.render("account/login", {\n+ title: "Login"\n+ });\n };\n',id:34,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-08-21T15:30:32+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},body:null,created_at:"2020-08-21T15:31:09+08:00",id:1590,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},commit_id:null,created_at:"2020-08-21T15:31:09+0800",discussion_id:null,id:23,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n */\n export const getLogin = (req: Request, res: Response) => {\n- if (req.user) {\n- return res.redirect("/");\n- }\n- res.render("account/login", {\n- title: "Login"\n- });\n+ if (req.user) {\n+ return res.redirect("/");\n+ }\n+ res.render("account/login", {\n+ title: "Login"\n+ });\n };\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_23_18",line_type:"old",note:"第七次测试",noteable_id:1590,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:16382,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n */\n export const getLogin = (req: Request, res: Response) => {\n- if (req.user) {\n- return res.redirect("/");\n- }\n- res.render("account/login", {\n- title: "Login"\n- });\n+ if (req.user) {\n+ return res.redirect("/");\n+ }\n+ res.render("account/login", {\n+ title: "Login"\n+ });\n };\n',id:34,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-08-21T15:31:15+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},body:null,created_at:"2020-08-21T15:32:38+08:00",id:1591,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},commit_id:null,created_at:"2020-08-21T15:32:38+0800",discussion_id:null,id:24,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n */\n export const getLogin = (req: Request, res: Response) => {\n- if (req.user) {\n- return res.redirect("/");\n- }\n- res.render("account/login", {\n- title: "Login"\n- });\n+ if (req.user) {\n+ return res.redirect("/");\n+ }\n+ res.render("account/login", {\n+ title: "Login"\n+ });\n };\n',id:1088,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},line_code:"c17950853d6b9677e9822cf07f2616db7ca02797_23_20",line_type:"old",note:"第八次测试",noteable_id:1591,noteable_type:"ReviewComment",outdated:!1,path:"src/controllers/user.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:16382,del_line_num:265,deleted_file:!1,diff:'@@ -14,12 +14,12 @@ import "../config/passport";\n * Login page.\n */\n export const getLogin = (req: Request, res: Response) => {\n- if (req.user) {\n- return res.redirect("/");\n- }\n- res.render("account/login", {\n- title: "Login"\n- });\n+ if (req.user) {\n+ return res.redirect("/");\n+ }\n+ res.render("account/login", {\n+ title: "Login"\n+ });\n };\n',id:34,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-08-21T15:32:41+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},body:null,created_at:"2020-09-04T16:20:30+08:00",id:1632,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},commit_id:null,created_at:"2020-11-16T19:42:40+0800",discussion_id:78,id:179,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"Problem status changed to resolved",noteable_id:1632,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!0,type:"Comment",updated_at:"2020-11-16T19:42:40+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},commit_id:null,created_at:"2020-11-16T19:42:37+0800",discussion_id:78,id:178,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"Problem status changed to invalid",noteable_id:1632,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!0,type:"Comment",updated_at:"2020-11-16T19:42:37+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-09-16T11:54:11+0800",discussion_id:78,id:81,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"Problem status changed to resolved",noteable_id:1632,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!0,type:"Comment",updated_at:"2020-09-16T11:54:11+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},commit_id:null,created_at:"2020-09-16T11:52:42+0800",discussion_id:null,id:78,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:1,deleted_file:!1,diff:"@@ -1,4 +1,3 @@\n-# TypeScript Node Starter\n > hello world typescript\n \n The main purpose of this repository is to show a working Node.js API Server + front-end project and workflow for writing Node code in TypeScript.\n",id:1075,new_file:!1,new_path:"README.md",old_path:"README.md",renamed_file:!1,too_large:!1},line_code:"8ec9a00bfd09b3190ac6b22251dbb1aa95a0579d_8_0",line_type:"old",note:"测试",noteable_id:1632,noteable_type:"ReviewComment",outdated:!1,path:"README.md",resolved_at:"2020-11-16T19:42:40+08:00",resolved_by:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},st_diff:{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:17959,del_line_num:1,deleted_file:!1,diff:"@@ -1,4 +1,3 @@\n-# TypeScript Node Starter\n > hello world typescript\n \n The main purpose of this repository is to show a working Node.js API Server + front-end project and workflow for writing Node code in TypeScript.\n",id:267,new_file:!1,new_path:"README.md",old_path:"README.md",renamed_file:!1,too_large:!1},state:"resolved",system:!1,type:"Problem",updated_at:"2021-05-20T14:27:46+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},commit_id:null,created_at:"2020-09-14T12:10:59+0800",discussion_id:20,id:76,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"对对对\n对对对\n对对对\n对对对对对对\n\n\n\n\n\n\n对对对",noteable_id:1632,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!1,type:"Comment",updated_at:"2020-09-14T12:10:59+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},commit_id:null,created_at:"2020-09-14T12:10:40+0800",discussion_id:20,id:75,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"@jiankan.hjk(剑侃) ",noteable_id:1632,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!1,type:"Comment",updated_at:"2020-09-14T12:10:40+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},commit_id:null,created_at:"2020-09-09T11:22:29+0800",discussion_id:null,id:61,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:49,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:49,deleted_file:!1,diff:'@@ -3,73 +3,73 @@ import crypto from "crypto";\n import mongoose from "mongoose";\n \n',id:1089,new_file:!1,new_path:"src/models/User.ts",old_path:"src/models/User.ts",renamed_file:!1,too_large:!1},line_code:"e9bf216a20e84ee797b9402193000e41dad21aa6_4_4",line_type:"old",note:"test",noteable_id:1632,noteable_type:"ReviewComment",outdated:!1,path:"src/models/User.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:49,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:17641,del_line_num:49,deleted_file:!1,diff:'@@ -3,73 +3,73 @@ import crypto from "crypto";\n import mongoose from "mongoose";\n \n',id:48,new_file:!1,new_path:"src/models/User.ts",old_path:"src/models/User.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},commit_id:null,created_at:"2020-09-09T10:12:09+0800",discussion_id:null,id:60,is_award:!1,labels:[],latest_st_diff:{a_mode:"0",add_line_num:12,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:0,deleted_file:!1,diff:'@@ -0,0 +1,12 @@\n+{\n+ "name": "aaa",\n',id:1079,new_file:!0,new_path:"aaa/package.json",old_path:"aaa/package.json",renamed_file:!1,too_large:!1},line_code:"a1cd6d42683feafb8bafa3c3c68369f59d3013e6_0_2",line_type:"new",note:"测试",noteable_id:1632,noteable_type:"ReviewComment",outdated:!1,path:"aaa/package.json",resolved_at:null,resolved_by:null,st_diff:{a_mode:"0",add_line_num:12,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:17641,del_line_num:0,deleted_file:!1,diff:'@@ -0,0 +1,12 @@\n+{\n+ "name": "aaa",\n',id:45,new_file:!0,new_path:"aaa/package.json",old_path:"aaa/package.json",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},commit_id:null,created_at:"2020-09-08T10:21:29+0800",discussion_id:null,id:57,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:49,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:49,deleted_file:!1,diff:'@@ -3,73 +3,73 @@ import crypto from "crypto";\n import mongoose from "mongoose";\n \n export type UserDocument = mongoose.Document & {\n- email: string;\n- password: string;\n- passwordResetToken: string;\n- passwordResetExpires: Date;\n+ email: string;\n',id:1089,new_file:!1,new_path:"src/models/User.ts",old_path:"src/models/User.ts",renamed_file:!1,too_large:!1},line_code:"e9bf216a20e84ee797b9402193000e41dad21aa6_7_6",line_type:"old",note:"# test\n# test\n# test\n# test\n# test\n# test\n# test\n# test\n# test\n# test\n# test",noteable_id:1632,noteable_type:"ReviewComment",outdated:!1,path:"src/models/User.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:49,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:17605,del_line_num:49,deleted_file:!1,diff:'@@ -3,73 +3,73 @@ import crypto from "crypto";\n import mongoose from "mongoose";\n \n export type UserDocument = mongoose.Document & {\n- email: string;\n- password: string;\n- passwordResetToken: string;\n- passwordResetExpires: Date;\n+ email: string;\n',id:491,new_file:!1,new_path:"src/models/User.ts",old_path:"src/models/User.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},commit_id:null,created_at:"2020-09-08T00:32:18+0800",discussion_id:null,id:56,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:7,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:7,deleted_file:!1,diff:'@@ -1,18 +1,18 @@\n import winston from "winston";\n \n const options: winston.LoggerOptions = {\n- transports: [\n- new winston.transports.Console({\n- level: process.env.NODE_ENV === "production" ? "error" : "debug"\n- }),\n- new winston.transports.File({ filename: "debug.log", level: "debug" })\n- ]\n+ transports: [\n',id:1092,new_file:!1,new_path:"src/util/logger.ts",old_path:"src/util/logger.ts",renamed_file:!1,too_large:!1},line_code:"bd5630fadbfeb531e34aa7539e6a12a247f8b0c6_9_4",line_type:"old",note:"第二条",noteable_id:1632,noteable_type:"ReviewComment",outdated:!1,path:"src/util/logger.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:7,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:17605,del_line_num:7,deleted_file:!1,diff:'@@ -1,18 +1,18 @@\n import winston from "winston";\n \n const options: winston.LoggerOptions = {\n- transports: [\n- new winston.transports.Console({\n- level: process.env.NODE_ENV === "production" ? "error" : "debug"\n- }),\n- new winston.transports.File({ filename: "debug.log", level: "debug" })\n- ]\n+ transports: [\n',id:494,new_file:!1,new_path:"src/util/logger.ts",old_path:"src/util/logger.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},commit_id:null,created_at:"2020-09-08T00:15:45+0800",discussion_id:null,id:55,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:7,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:7,deleted_file:!1,diff:'@@ -1,18 +1,18 @@\n import winston from "winston";\n \n const options: winston.LoggerOptions = {\n- transports: [\n- new winston.transports.Console({\n- level: process.env.NODE_ENV === "production" ? "error" : "debug"\n- }),\n- new winston.transports.File({ filename: "debug.log", level: "debug" })\n- ]\n+ transports: [\n',id:1092,new_file:!1,new_path:"src/util/logger.ts",old_path:"src/util/logger.ts",renamed_file:!1,too_large:!1},line_code:"bd5630fadbfeb531e34aa7539e6a12a247f8b0c6_9_4",line_type:"old",note:"> h\n# test\n## test\n### test\n#### test\ntest\n @huaqiao.lhq(常浅) ",noteable_id:1632,noteable_type:"ReviewComment",outdated:!1,path:"src/util/logger.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:7,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:17605,del_line_num:7,deleted_file:!1,diff:'@@ -1,18 +1,18 @@\n import winston from "winston";\n \n const options: winston.LoggerOptions = {\n- transports: [\n- new winston.transports.Console({\n- level: process.env.NODE_ENV === "production" ? "error" : "debug"\n- }),\n- new winston.transports.File({ filename: "debug.log", level: "debug" })\n- ]\n+ transports: [\n',id:494,new_file:!1,new_path:"src/util/logger.ts",old_path:"src/util/logger.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},commit_id:null,created_at:"2020-09-07T17:01:37+0800",discussion_id:null,id:54,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:49,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:49,deleted_file:!1,diff:'@@ -3,73 +3,73 @@ import crypto from "crypto";\n import mongoose from "mongoose";\n \n export type UserDocument = mongoose.Document & {\n- email: string;\n- password: string;\n- passwordResetToken: string;\n- passwordResetExpires: Date;\n+ email: string;\n+ password: string;\n+ passwordResetToken: string;\n+ passwordResetExpires: Date;\n \n- facebook: string;\n- tokens: AuthToken[];\n+ facebook: string;\n+ tokens: AuthToken[];\n \n- profile: {\n- name: string;\n- gender: string;\n- location: string;\n- website: string;\n- picture: string;\n- };\n+ profile: {\n+ name: string;\n+ gender: string;\n+ location: string;\n+ website: string;\n+ picture: string;\n+ };\n \n- comparePassword: comparePasswordFunction;\n- gravatar: (size: number) => string;\n+ comparePassword: comparePasswordFunction;\n+ gravatar: (size: number) => string;\n };\n \n type comparePasswordFunction = (candidatePassword: string, cb: (err: any, isMatch: any) => {}) => void;\n \n export interface AuthToken {\n- accessToken: string;\n- kind: string;\n+ accessToken: string;\n+ kind: string;\n }\n \n const userSchema = new mongoose.Schema({\n- email: { type: String, unique: true },\n- password: String,\n- passwordResetToken: String,\n- passwordResetExpires: Date,\n+ email: { type: String, unique: true },\n+ password: String,\n+ passwordResetToken: String,\n+ passwordResetExpires: Date,\n \n- facebook: String,\n- twitter: String,\n- google: String,\n- tokens: Array,\n+ facebook: String,\n+ twitter: String,\n+ google: String,\n+ tokens: Array,\n \n- profile: {\n- name: String,\n- gender: String,\n- location: String,\n- website: String,\n- picture: String\n- }\n+ profile: {\n+ name: String,\n+ gender: String,\n+ location: String,\n+ website: String,\n+ picture: String\n+ }\n }, { timestamps: true });\n \n /**\n * Password hash middleware.\n */\n userSchema.pre("save", function save(next) {\n- const user = this as UserDocument;\n- if (!user.isModified("password")) { return next(); }\n- bcrypt.genSalt(10, (err, salt) => {\n- if (err) { return next(err); }\n- bcrypt.hash(user.password, salt, undefined, (err: mongoose.Error, hash) => {\n- if (err) { return next(err); }\n- user.password = hash;\n- next();\n- });\n+ const user = this as UserDocument;\n',id:1089,new_file:!1,new_path:"src/models/User.ts",old_path:"src/models/User.ts",renamed_file:!1,too_large:!1},line_code:"e9bf216a20e84ee797b9402193000e41dad21aa6_57_57",line_type:"old",note:"测试一下",noteable_id:1632,noteable_type:"ReviewComment",outdated:!1,path:"src/models/User.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:49,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:17605,del_line_num:49,deleted_file:!1,diff:'@@ -3,73 +3,73 @@ import crypto from "crypto";\n import mongoose from "mongoose";\n \n export type UserDocument = mongoose.Document & {\n- email: string;\n- password: string;\n- passwordResetToken: string;\n- passwordResetExpires: Date;\n+ email: string;\n+ password: string;\n+ passwordResetToken: string;\n+ passwordResetExpires: Date;\n \n- facebook: string;\n- tokens: AuthToken[];\n+ facebook: string;\n+ tokens: AuthToken[];\n \n- profile: {\n- name: string;\n- gender: string;\n- location: string;\n- website: string;\n- picture: string;\n- };\n+ profile: {\n+ name: string;\n+ gender: string;\n+ location: string;\n+ website: string;\n+ picture: string;\n+ };\n \n- comparePassword: comparePasswordFunction;\n- gravatar: (size: number) => string;\n+ comparePassword: comparePasswordFunction;\n+ gravatar: (size: number) => string;\n };\n \n type comparePasswordFunction = (candidatePassword: string, cb: (err: any, isMatch: any) => {}) => void;\n \n export interface AuthToken {\n- accessToken: string;\n- kind: string;\n+ accessToken: string;\n+ kind: string;\n }\n \n const userSchema = new mongoose.Schema({\n- email: { type: String, unique: true },\n- password: String,\n- passwordResetToken: String,\n- passwordResetExpires: Date,\n+ email: { type: String, unique: true },\n+ password: String,\n+ passwordResetToken: String,\n+ passwordResetExpires: Date,\n \n- facebook: String,\n- twitter: String,\n- google: String,\n- tokens: Array,\n+ facebook: String,\n+ twitter: String,\n+ google: String,\n+ tokens: Array,\n \n- profile: {\n- name: String,\n- gender: String,\n- location: String,\n- website: String,\n- picture: String\n- }\n+ profile: {\n+ name: String,\n+ gender: String,\n+ location: String,\n+ website: String,\n+ picture: String\n+ }\n }, { timestamps: true });\n \n /**\n * Password hash middleware.\n */\n userSchema.pre("save", function save(next) {\n- const user = this as UserDocument;\n- if (!user.isModified("password")) { return next(); }\n- bcrypt.genSalt(10, (err, salt) => {\n- if (err) { return next(err); }\n- bcrypt.hash(user.password, salt, undefined, (err: mongoose.Error, hash) => {\n- if (err) { return next(err); }\n- user.password = hash;\n- next();\n- });\n+ const user = this as UserDocument;\n',id:491,new_file:!1,new_path:"src/models/User.ts",old_path:"src/models/User.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},commit_id:null,created_at:"2020-09-07T16:18:00+0800",discussion_id:null,id:52,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:4,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:4,deleted_file:!1,diff:'@@ -66,7 +66,7 @@ passport.use(new FacebookStrategy({\n callbackURL: "/auth/facebook/callback",\n',id:1087,new_file:!1,new_path:"src/config/passport.ts",old_path:"src/config/passport.ts",renamed_file:!1,too_large:!1},line_code:"761e3f18c863ddeee900bf74ddd8fed56a4aa2c9_0_38",line_type:"old",note:"测试",noteable_id:1632,noteable_type:"ReviewComment",outdated:!1,path:"src/config/passport.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:4,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:17605,del_line_num:4,deleted_file:!1,diff:'@@ -66,7 +66,7 @@ passport.use(new FacebookStrategy({\n callbackURL: "/auth/facebook/callback",\n',id:489,new_file:!1,new_path:"src/config/passport.ts",old_path:"src/config/passport.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-09-16T11:52:52+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},body:null,created_at:"2020-11-16T19:37:52+08:00",id:1765,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},commit_id:null,created_at:"2022-01-26T11:01:53+0800",discussion_id:176,id:500030,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"Problem status changed to resolved",noteable_id:1765,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!0,type:"Comment",updated_at:"2022-01-26T11:01:53+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},commit_id:null,created_at:"2022-01-25T15:52:22+0800",discussion_id:176,id:500023,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"Problem status changed to opened",noteable_id:1765,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!0,type:"Comment",updated_at:"2022-01-25T15:52:22+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-11-26T11:23:06+0800",discussion_id:176,id:185,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"Problem status changed to resolved",noteable_id:1765,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!0,type:"Comment",updated_at:"2020-11-26T11:23:06+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"jiankan.hjk@test.com",extern_uid:"130095",id:15319,name:"剑侃",state:"active",username:"jiankan.hjk",web_url:"https://test.com.com/nwpipe/u/130095"},commit_id:null,created_at:"2020-11-16T19:37:53+0800",discussion_id:null,id:176,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:1,deleted_file:!1,diff:"@@ -1,4 +1,3 @@\n-# TypeScript Node Starter\n > hello world typescript\n \n The main purpose of this repository is to show a working Node.js API Server + front-end project and workflow for writing Node code in TypeScript.\n",id:1075,new_file:!1,new_path:"README.md",old_path:"README.md",renamed_file:!1,too_large:!1},line_code:"8ec9a00bfd09b3190ac6b22251dbb1aa95a0579d_5_4",line_type:"old",note:"测试",noteable_id:1765,noteable_type:"ReviewComment",outdated:!1,path:"README.md",resolved_at:"2022-01-26T11:01:53+08:00",resolved_by:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},st_diff:{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:1,deleted_file:!1,diff:"@@ -1,4 +1,3 @@\n-# TypeScript Node Starter\n > hello world typescript\n \n The main purpose of this repository is to show a working Node.js API Server + front-end project and workflow for writing Node code in TypeScript.\n",id:1075,new_file:!1,new_path:"README.md",old_path:"README.md",renamed_file:!1,too_large:!1},state:"resolved",system:!1,type:"Problem",updated_at:"2021-05-20T14:27:46+0800"}],updated_at:"2020-11-17T10:31:07+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"winjo.gwj@test.com",extern_uid:"190046",id:15346,name:"彦熹",state:"active",username:"winjo.gwj",web_url:"https://test.com.com/nwpipe/u/190046"},body:null,created_at:"2020-11-12T15:29:34+08:00",id:1759,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"winjo.gwj@test.com",extern_uid:"190046",id:15346,name:"彦熹",state:"active",username:"winjo.gwj",web_url:"https://test.com.com/nwpipe/u/190046"},commit_id:null,created_at:"2021-07-22T17:21:21+0800",discussion_id:null,id:200002,is_award:!1,labels:[],latest_st_diff:{a_mode:"0",add_line_num:12,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:0,deleted_file:!1,diff:'@@ -0,0 +1,12 @@\n+{\n+ "name": "aaa",\n+ "version": "1.0.0",\n+ "description": "",\n+ "main": "index.js",\n',id:1079,new_file:!0,new_path:"aaa/package.json",old_path:"aaa/package.json",renamed_file:!1,too_large:!1},line_code:"a1cd6d42683feafb8bafa3c3c68369f59d3013e6_0_5",line_type:"new",note:"测试下",noteable_id:1759,noteable_type:"ReviewComment",outdated:!1,path:"aaa/package.json",resolved_at:null,resolved_by:null,st_diff:{a_mode:"0",add_line_num:12,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:0,deleted_file:!1,diff:'@@ -0,0 +1,12 @@\n+{\n+ "name": "aaa",\n+ "version": "1.0.0",\n+ "description": "",\n+ "main": "index.js",\n',id:1079,new_file:!0,new_path:"aaa/package.json",old_path:"aaa/package.json",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-07-22T17:21:21+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"winjo.gwj@test.com",extern_uid:"190046",id:15346,name:"彦熹",state:"active",username:"winjo.gwj",web_url:"https://test.com.com/nwpipe/u/190046"},commit_id:null,created_at:"2020-11-12T15:29:34+0800",discussion_id:null,id:171,is_award:!1,labels:[],latest_st_diff:{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:1,deleted_file:!1,diff:"@@ -1,4 +1,3 @@\n-# TypeScript Node Starter\n > hello world typescript\n \n The main purpose of this repository is to show a working Node.js API Server + front-end project and workflow for writing Node code in TypeScript.\n",id:1075,new_file:!1,new_path:"README.md",old_path:"README.md",renamed_file:!1,too_large:!1},line_code:"8ec9a00bfd09b3190ac6b22251dbb1aa95a0579d_6_4",line_type:"old",note:"test",noteable_id:1759,noteable_type:"ReviewComment",outdated:!0,path:"README.md",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"ac55c77aa72d49280058ed6054610f454ee694b1",compare_diff_id:20699,del_line_num:1,deleted_file:!1,diff:"@@ -1,4 +1,3 @@\n-# TypeScript Node Starter\n > hello world typescript\n \n The main purpose of this repository is to show a working Node.js API Server + front-end project and workflow for writing Node code in TypeScript.\n",id:550,new_file:!1,new_path:"README.md",old_path:"README.md",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2020-11-12T15:29:34+0800"}],updated_at:"2021-07-22T17:21:24+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"winjo.gwj@test.com",extern_uid:"190046",id:15346,name:"彦熹",state:"active",username:"winjo.gwj",web_url:"https://test.com.com/nwpipe/u/190046"},body:null,created_at:"2021-07-22T17:21:53+08:00",id:2100002,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"winjo.gwj@test.com",extern_uid:"190046",id:15346,name:"彦熹",state:"active",username:"winjo.gwj",web_url:"https://test.com.com/nwpipe/u/190046"},commit_id:null,created_at:"2021-07-23T16:22:54+0800",discussion_id:null,id:300003,is_award:!1,labels:["LackOfJavaBase"],latest_st_diff:{a_mode:"100644",add_line_num:4,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:4,deleted_file:!1,diff:'@@ -4,7 +4,7 @@ import passportFacebook from "passport-facebook";\n import _ from "lodash";\n \n // import { User, UserType } from \'../models/User\';\n-import { User, UserDocument } from "../models/User";\n+import { User, UserDocument } from "../models/User"\n import { Request, Response, NextFunction } from "express";\n \n const LocalStrategy = passportLocal.Strategy;\n',id:1087,new_file:!1,new_path:"src/config/passport.ts",old_path:"src/config/passport.ts",renamed_file:!1,too_large:!1},line_code:"761e3f18c863ddeee900bf74ddd8fed56a4aa2c9_10_10",line_type:"old",note:"test",noteable_id:2100002,noteable_type:"ReviewComment",outdated:!1,path:"src/config/passport.ts",resolved_at:null,resolved_by:null,st_diff:{a_mode:"100644",add_line_num:4,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:4,deleted_file:!1,diff:'@@ -4,7 +4,7 @@ import passportFacebook from "passport-facebook";\n import _ from "lodash";\n \n // import { User, UserType } from \'../models/User\';\n-import { User, UserDocument } from "../models/User";\n+import { User, UserDocument } from "../models/User"\n import { Request, Response, NextFunction } from "express";\n \n const LocalStrategy = passportLocal.Strategy;\n',id:1087,new_file:!1,new_path:"src/config/passport.ts",old_path:"src/config/passport.ts",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2021-07-23T16:22:54+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"winjo.gwj@test.com",extern_uid:"190046",id:15346,name:"彦熹",state:"active",username:"winjo.gwj",web_url:"https://test.com.com/nwpipe/u/190046"},commit_id:null,created_at:"2021-07-23T16:22:44+0800",discussion_id:60,id:300002,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"666",noteable_id:2100002,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!1,type:"Comment",updated_at:"2021-07-23T16:22:44+0800"}],updated_at:"2021-07-23T16:23:01+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},body:null,created_at:"2022-01-19T15:20:27+08:00",id:4700002,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},commit_id:null,created_at:"2022-01-19T15:21:02+0800",discussion_id:null,id:500004,is_award:!1,labels:[],latest_st_diff:{a_mode:"0",add_line_num:12,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:0,deleted_file:!1,diff:'@@ -0,0 +1,12 @@\n+{\n+ "name": "aaa",\n+ "version": "1.0.0",\n+ "description": "",\n+ "main": "index.js",\n+ "scripts": {\n+ "test": "echo \\"Error: no test specified\\" && exit 1"\n+ },\n+ "keywords": [],\n',id:1079,new_file:!0,new_path:"aaa/package.json",old_path:"aaa/package.json",renamed_file:!1,too_large:!1},line_code:"a1cd6d42683feafb8bafa3c3c68369f59d3013e6_0_9",line_type:"new",note:"333",noteable_id:4700002,noteable_type:"ReviewComment",outdated:!1,path:"aaa/package.json",resolved_at:null,resolved_by:null,st_diff:{a_mode:"0",add_line_num:12,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:0,deleted_file:!1,diff:'@@ -0,0 +1,12 @@\n+{\n+ "name": "aaa",\n+ "version": "1.0.0",\n+ "description": "",\n+ "main": "index.js",\n+ "scripts": {\n+ "test": "echo \\"Error: no test specified\\" && exit 1"\n+ },\n+ "keywords": [],\n',id:1079,new_file:!0,new_path:"aaa/package.json",old_path:"aaa/package.json",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2022-01-19T15:21:02+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},commit_id:null,created_at:"2022-01-19T15:20:44+0800",discussion_id:null,id:500003,is_award:!1,labels:[],latest_st_diff:{a_mode:"0",add_line_num:12,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:0,deleted_file:!1,diff:'@@ -0,0 +1,12 @@\n+{\n+ "name": "aaa",\n+ "version": "1.0.0",\n+ "description": "",\n+ "main": "index.js",\n+ "scripts": {\n+ "test": "echo \\"Error: no test specified\\" && exit 1"\n',id:1079,new_file:!0,new_path:"aaa/package.json",old_path:"aaa/package.json",renamed_file:!1,too_large:!1},line_code:"a1cd6d42683feafb8bafa3c3c68369f59d3013e6_0_7",line_type:"new",note:"222",noteable_id:4700002,noteable_type:"ReviewComment",outdated:!1,path:"aaa/package.json",resolved_at:null,resolved_by:null,st_diff:{a_mode:"0",add_line_num:12,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:0,deleted_file:!1,diff:'@@ -0,0 +1,12 @@\n+{\n+ "name": "aaa",\n+ "version": "1.0.0",\n+ "description": "",\n+ "main": "index.js",\n+ "scripts": {\n+ "test": "echo \\"Error: no test specified\\" && exit 1"\n',id:1079,new_file:!0,new_path:"aaa/package.json",old_path:"aaa/package.json",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2022-01-19T15:20:44+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},commit_id:null,created_at:"2022-01-19T15:20:28+0800",discussion_id:null,id:500002,is_award:!1,labels:[],latest_st_diff:{a_mode:"0",add_line_num:12,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:0,deleted_file:!1,diff:'@@ -0,0 +1,12 @@\n+{\n+ "name": "aaa",\n+ "version": "1.0.0",\n+ "description": "",\n+ "main": "index.js",\n',id:1079,new_file:!0,new_path:"aaa/package.json",old_path:"aaa/package.json",renamed_file:!1,too_large:!1},line_code:"a1cd6d42683feafb8bafa3c3c68369f59d3013e6_0_5",line_type:"new",note:"111",noteable_id:4700002,noteable_type:"ReviewComment",outdated:!1,path:"aaa/package.json",resolved_at:null,resolved_by:null,st_diff:{a_mode:"0",add_line_num:12,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:"87ed08a7245161fc9675981be01a6effe661b803",compare_diff_id:31918,del_line_num:0,deleted_file:!1,diff:'@@ -0,0 +1,12 @@\n+{\n+ "name": "aaa",\n+ "version": "1.0.0",\n+ "description": "",\n+ "main": "index.js",\n',id:1079,new_file:!0,new_path:"aaa/package.json",old_path:"aaa/package.json",renamed_file:!1,too_large:!1},state:null,system:!1,type:"Comment",updated_at:"2022-01-19T15:20:28+0800"}],updated_at:"2022-01-19T15:22:55+08:00"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},body:null,created_at:"2022-01-26T02:16:02+08:00",id:4700010,pending:!1,pull_request_id:13055,review_notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.com",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:"https://test.com.com/nwpipe/u/354626"},commit_id:null,created_at:"2022-01-26T11:01:34+0800",discussion_id:176,id:500029,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:'> \x3c!-- reply id="176" --\x3e\n> 测试\n\n123',noteable_id:4700010,noteable_type:"ReviewComment",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!1,type:"Comment",updated_at:"2022-01-26T11:01:34+0800"}],updated_at:"2022-01-26T11:01:39+08:00"}],notes:[{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-10-12T18:54:04+0800",discussion_id:null,id:121,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"[Force Push] To feat/123123 Of commit: daa3e131 - fix: li in pr desc",noteable_id:13055,noteable_type:"PullRequest",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!0,type:"Comment",updated_at:"2020-10-12T18:54:04+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-10-12T18:54:04+0800",discussion_id:null,id:120,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"review tasks reopened",noteable_id:13055,noteable_type:"PullRequest",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!0,type:"Comment",updated_at:"2020-10-12T18:54:04+0800"},{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"taian.lta@test.com",extern_uid:"146194",id:15165,name:"伊北",state:"active",username:"taian.lta",web_url:"https://test.com.com/nwpipe/u/146194"},commit_id:null,created_at:"2020-10-12T18:52:43+0800",discussion_id:null,id:117,is_award:!1,labels:[],latest_st_diff:null,line_code:null,line_type:null,note:"Added 2 commits:\n\n* 0cee41f8 - feat: 123\n* 46e1c30f - 123",noteable_id:13055,noteable_type:"PullRequest",outdated:!1,path:null,resolved_at:null,resolved_by:null,st_diff:null,state:null,system:!0,type:"Comment",updated_at:"2020-10-12T18:52:43+0800"}],pending_review:null},"/api/v3/projects/42422/pull_requests/13055/diffs/mark_files":[{file_path_sha:"8ec9a00bfd09b3190ac6b22251dbb1aa95a0579d",mark_as_read:!0,updated_after_read:!1},{file_path_sha:"a1cd6d42683feafb8bafa3c3c68369f59d3013e6",mark_as_read:!0,updated_after_read:!1}],"/webapi/projects/42422/pull_requests/13055/diffs/31918/changes_overview":[{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,compare_diff_id:31918,del_line_num:1,deleted_file:!1,id:1075,mark_as_read:!0,new_file:!1,new_path:"README.md",old_path:"README.md",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"0",add_line_num:1,b_mode:"100644",binary_file:!1,compare_diff_id:31918,del_line_num:0,deleted_file:!1,id:1076,mark_as_read:!1,new_file:!0,new_path:"a.md",old_path:"a.md",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"0",add_line_num:228,b_mode:"100644",binary_file:!1,compare_diff_id:31918,del_line_num:0,deleted_file:!1,id:1077,mark_as_read:!1,new_file:!0,new_path:"a.ts",old_path:"a.ts",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"0",add_line_num:1,b_mode:"100644",binary_file:!1,compare_diff_id:31918,del_line_num:0,deleted_file:!1,id:1078,mark_as_read:!1,new_file:!0,new_path:"aa.md",old_path:"aa.md",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"0",add_line_num:12,b_mode:"100644",binary_file:!1,compare_diff_id:31918,del_line_num:0,deleted_file:!1,id:1079,mark_as_read:!0,new_file:!0,new_path:"aaa/package.json",old_path:"aaa/package.json",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"0",add_line_num:0,b_mode:"100644",binary_file:!1,compare_diff_id:31918,del_line_num:0,deleted_file:!1,id:1080,mark_as_read:!1,new_file:!0,new_path:"apiMeta.json",old_path:"apiMeta.json",renamed_file:!1,too_large:!0,updated_after_read:!1},{a_mode:"0",add_line_num:0,b_mode:"100644",binary_file:!0,compare_diff_id:31918,del_line_num:0,deleted_file:!1,id:1081,mark_as_read:!1,new_file:!0,new_path:"assets/logo_white.gif",old_path:"assets/logo_white.gif",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,compare_diff_id:31918,del_line_num:0,deleted_file:!1,id:1082,mark_as_read:!1,new_file:!1,new_path:"assets/斋藤飞鸟1.jpg",old_path:"assets/斋藤飞鸟.jpg",renamed_file:!0,too_large:!1,updated_after_read:!1},{a_mode:"0",add_line_num:0,b_mode:"100644",binary_file:!1,compare_diff_id:31918,del_line_num:0,deleted_file:!1,id:1083,mark_as_read:!1,new_file:!0,new_path:"b.md",old_path:"b.md",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"0",add_line_num:3,b_mode:"100644",binary_file:!1,compare_diff_id:31918,del_line_num:0,deleted_file:!1,id:1084,mark_as_read:!1,new_file:!0,new_path:"gbk.ts",old_path:"gbk.ts",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"0",add_line_num:12,b_mode:"100644",binary_file:!1,compare_diff_id:31918,del_line_num:0,deleted_file:!1,id:1085,mark_as_read:!1,new_file:!0,new_path:"hk-cdp_ALL_api#space#info#popUp.json",old_path:"hk-cdp_ALL_api#space#info#popUp.json",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"0",add_line_num:168,b_mode:"100644",binary_file:!1,compare_diff_id:31918,del_line_num:0,deleted_file:!1,id:1086,mark_as_read:!1,new_file:!0,new_path:"pom.xml",old_path:"pom.xml",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:4,b_mode:"100644",binary_file:!1,compare_diff_id:31918,del_line_num:4,deleted_file:!1,id:1087,mark_as_read:!1,new_file:!1,new_path:"src/config/passport.ts",old_path:"src/config/passport.ts",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,compare_diff_id:31918,del_line_num:265,deleted_file:!1,id:1088,mark_as_read:!1,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:49,b_mode:"100644",binary_file:!1,compare_diff_id:31918,del_line_num:49,deleted_file:!1,id:1089,mark_as_read:!1,new_file:!1,new_path:"src/models/User.ts",old_path:"src/models/User.ts",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,compare_diff_id:31918,del_line_num:1,deleted_file:!1,id:1090,mark_as_read:!1,new_file:!1,new_path:"src/public/css/main.scss",old_path:"src/public/css/main.scss",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:1,b_mode:"100644",binary_file:!1,compare_diff_id:31918,del_line_num:1,deleted_file:!1,id:1091,mark_as_read:!1,new_file:!1,new_path:"src/server.ts",old_path:"src/server.ts",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:7,b_mode:"100644",binary_file:!1,compare_diff_id:31918,del_line_num:7,deleted_file:!1,id:1092,mark_as_read:!1,new_file:!1,new_path:"src/util/logger.ts",old_path:"src/util/logger.ts",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:0,b_mode:"0",binary_file:!1,compare_diff_id:31918,del_line_num:22,deleted_file:!0,id:1093,mark_as_read:!1,new_file:!1,new_path:"tsconfig.json",old_path:"tsconfig.json",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:2,b_mode:"100644",binary_file:!1,compare_diff_id:31918,del_line_num:2,deleted_file:!1,id:1094,mark_as_read:!1,new_file:!1,new_path:"views/contact123.pug",old_path:"views/contact.pug",renamed_file:!0,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:0,b_mode:"0",binary_file:!1,compare_diff_id:31918,del_line_num:27,deleted_file:!0,id:1095,mark_as_read:!1,new_file:!1,new_path:"views/home.pug",old_path:"views/home.pug",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,compare_diff_id:31918,del_line_num:0,deleted_file:!1,id:1096,mark_as_read:!1,new_file:!1,new_path:"views/partials/footer-renamed.pug",old_path:"views/partials/footer.pug",renamed_file:!0,too_large:!1,updated_after_read:!1}],"/api/v3/projects/42422/repository/blobs/df72e4d1c394af6d1c21cd042116f83a792fa8c6":'{\n"name": "bbb",\n"version": "2.0.0",\n"description": "",\n"main": "test.js",\n"scripts": {\n"test": "echo "Error: no test specified" && exit 1"\n},\n"keywords": [],\n"license": "ISC"\n}',"/api/v3/projects/42422/repository/blobs/87ed08a7245161fc9675981be01a6effe661b803":'{\n"name": "aaa",\n"version": "1.0.0",\n"description": "",\n"main": "index.js",\n"scripts": {\n"test": "echo "Error: no test specified" && exit 1"\n},\n"keywords": [],\n"author": "",\n"license": "ISC"\n}',"/webapi/projects/42422/pull_requests/13055/diffs/31918/changes/1079":{a_mode:"0",add_line_num:12,b_mode:"100644",binary_file:!1,charset_name:"UTF-8",commit_sha:null,compare_diff_id:31918,del_line_num:0,deleted_file:!1,diff:'@@ -0,0 +1,12 @@\n+{\n+ "name": "aaa",\n+ "version": "1.0.0",\n+ "description": "",\n+ "main": "index.js",\n+ "scripts": {\n+ "test": "echo \\"Error: no test specified\\" && exit 1"\n+ },\n+ "keywords": [],\n+ "author": "",\n+ "license": "ISC"\n+}\n',highlighted_diff:null,id:1079,new_file:!0,new_path:"aaa/package.json",old_path:"aaa/package.json",renamed_file:!1,too_large:!1},"/api/v3/projects/42422/pull_requests/13055/reviews":{author:{avatar_url:"https://img.alicdn.com/imgextra/i4/O1CN01tPoJQo20M1TueWZet_!!6000000006834-0-tps-80-80.jpg",email:"guqiankun.gqk@test.net",extern_uid:"354626",id:5600024,name:"轻游",state:"active",username:"guqiankun.gqk",web_url:" "},body:null,created_at:"2022-07-15T16:57:34.591+08:00",id:5100024,pending:!0,pull_request_id:12600136,updated_at:"2022-07-15T16:57:34.591+08:00"},"/webapi/projects/42422/pull_requests/13055/diffs/20699/changes_overview":[{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,compare_diff_id:20699,del_line_num:1,deleted_file:!1,id:550,mark_as_read:!0,new_file:!1,new_path:"README.md",old_path:"README.md",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"0",add_line_num:1,b_mode:"100644",binary_file:!1,compare_diff_id:20699,del_line_num:0,deleted_file:!1,id:551,mark_as_read:!1,new_file:!0,new_path:"a.md",old_path:"a.md",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"0",add_line_num:228,b_mode:"100644",binary_file:!1,compare_diff_id:20699,del_line_num:0,deleted_file:!1,id:552,mark_as_read:!1,new_file:!0,new_path:"a.ts",old_path:"a.ts",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"0",add_line_num:1,b_mode:"100644",binary_file:!1,compare_diff_id:20699,del_line_num:0,deleted_file:!1,id:553,mark_as_read:!1,new_file:!0,new_path:"aa.md",old_path:"aa.md",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"0",add_line_num:12,b_mode:"100644",binary_file:!1,compare_diff_id:20699,del_line_num:0,deleted_file:!1,id:554,mark_as_read:!0,new_file:!0,new_path:"aaa/package.json",old_path:"aaa/package.json",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"0",add_line_num:0,b_mode:"100644",binary_file:!1,compare_diff_id:20699,del_line_num:0,deleted_file:!1,id:555,mark_as_read:!1,new_file:!0,new_path:"apiMeta.json",old_path:"apiMeta.json",renamed_file:!1,too_large:!0,updated_after_read:!1},{a_mode:"0",add_line_num:0,b_mode:"100644",binary_file:!0,compare_diff_id:20699,del_line_num:0,deleted_file:!1,id:556,mark_as_read:!1,new_file:!0,new_path:"assets/logo_white.gif",old_path:"assets/logo_white.gif",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,compare_diff_id:20699,del_line_num:0,deleted_file:!1,id:557,mark_as_read:!1,new_file:!1,new_path:"assets/斋藤飞鸟1.jpg",old_path:"assets/斋藤飞鸟.jpg",renamed_file:!0,too_large:!1,updated_after_read:!1},{a_mode:"0",add_line_num:0,b_mode:"100644",binary_file:!1,compare_diff_id:20699,del_line_num:0,deleted_file:!1,id:558,mark_as_read:!1,new_file:!0,new_path:"b.md",old_path:"b.md",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"0",add_line_num:3,b_mode:"100644",binary_file:!1,compare_diff_id:20699,del_line_num:0,deleted_file:!1,id:559,mark_as_read:!1,new_file:!0,new_path:"gbk.ts",old_path:"gbk.ts",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"0",add_line_num:168,b_mode:"100644",binary_file:!1,compare_diff_id:20699,del_line_num:0,deleted_file:!1,id:560,mark_as_read:!1,new_file:!0,new_path:"pom.xml",old_path:"pom.xml",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:4,b_mode:"100644",binary_file:!1,compare_diff_id:20699,del_line_num:4,deleted_file:!1,id:561,mark_as_read:!0,new_file:!1,new_path:"src/config/passport.ts",old_path:"src/config/passport.ts",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:265,b_mode:"100644",binary_file:!1,compare_diff_id:20699,del_line_num:265,deleted_file:!1,id:562,mark_as_read:!1,new_file:!1,new_path:"src/controllers/user.ts",old_path:"src/controllers/user.ts",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:49,b_mode:"100644",binary_file:!1,compare_diff_id:20699,del_line_num:49,deleted_file:!1,id:563,mark_as_read:!1,new_file:!1,new_path:"src/models/User.ts",old_path:"src/models/User.ts",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,compare_diff_id:20699,del_line_num:1,deleted_file:!1,id:564,mark_as_read:!1,new_file:!1,new_path:"src/public/css/main.scss",old_path:"src/public/css/main.scss",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:1,b_mode:"100644",binary_file:!1,compare_diff_id:20699,del_line_num:1,deleted_file:!1,id:565,mark_as_read:!1,new_file:!1,new_path:"src/server.ts",old_path:"src/server.ts",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:7,b_mode:"100644",binary_file:!1,compare_diff_id:20699,del_line_num:7,deleted_file:!1,id:566,mark_as_read:!1,new_file:!1,new_path:"src/util/logger.ts",old_path:"src/util/logger.ts",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:0,b_mode:"0",binary_file:!1,compare_diff_id:20699,del_line_num:22,deleted_file:!0,id:567,mark_as_read:!1,new_file:!1,new_path:"tsconfig.json",old_path:"tsconfig.json",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:2,b_mode:"100644",binary_file:!1,compare_diff_id:20699,del_line_num:2,deleted_file:!1,id:568,mark_as_read:!1,new_file:!1,new_path:"views/contact123.pug",old_path:"views/contact.pug",renamed_file:!0,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:0,b_mode:"0",binary_file:!1,compare_diff_id:20699,del_line_num:27,deleted_file:!0,id:569,mark_as_read:!1,new_file:!1,new_path:"views/home.pug",old_path:"views/home.pug",renamed_file:!1,too_large:!1,updated_after_read:!1},{a_mode:"100644",add_line_num:0,b_mode:"100644",binary_file:!1,compare_diff_id:20699,del_line_num:0,deleted_file:!1,id:570,mark_as_read:!1,new_file:!1,new_path:"views/partials/footer-renamed.pug",old_path:"views/partials/footer.pug",renamed_file:!0,too_large:!1,updated_after_read:!1}],"/api/v3/projects/42422/repository/blame":[{commit:{author:null,author_email:"taian.lta@test.com",author_name:"taian.lta",authored_date:"2020-08-18T12:09:32+0800",committed_date:"2020-08-18T12:09:32+0800",committer:null,committer_email:"taian.lta@test.com",committer_name:"taian.lta",created_at:"2020-08-18T12:09:32+0800",id:"7c501a19ae4644814782622af41b72e0f65eaacd",message:" feat: 123",parent_ids:null,short_id:"7c501a19",title:" feat: 123",tree_hash:null},lines:[{current_number:1,effect_line:12,previous_number:1}]},{commit:{author:null,author_email:"taian.lta@test.com",author_name:"taian.lta",authored_date:"2020-08-18T12:09:32+0800",committed_date:"2020-08-18T12:09:32+0800",committer:null,committer_email:"taian.lta@test.com",committer_name:"taian.lta",created_at:"2020-08-18T12:09:32+0800",id:"7c501a19ae4644814782622af41b72e0f65eaacd2",message:" feat: 123",parent_ids:null,short_id:"7c501a19",title:" feat: 123",tree_hash:null},lines:[{current_number:15,effect_line:10,previous_number:1}]}]}}}]); \ No newline at end of file diff --git a/static/js/runtime~main.825320ec.js b/static/js/runtime~main.dc3bd0fa.js similarity index 98% rename from static/js/runtime~main.825320ec.js rename to static/js/runtime~main.dc3bd0fa.js index 115bfb58f..769e1b0ac 100644 --- a/static/js/runtime~main.825320ec.js +++ b/static/js/runtime~main.dc3bd0fa.js @@ -1 +1 @@ -!function(e){function f(f){for(var c,a,r=f[0],n=f[1],o=f[2],u=0,l=[];u