From c20ec47b3ec16ca6105442d2019c18946ebc8e69 Mon Sep 17 00:00:00 2001 From: Neel1996 Date: Sun, 12 Jul 2020 15:50:31 +0000 Subject: [PATCH 1/5] 1.1.0 --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 1b325396..e66a2205 100755 --- a/package.json +++ b/package.json @@ -1,13 +1,13 @@ { "name": "@itassistors/gitconvex", - "version": "1.0.15", + "version": "1.1.0", "description": "Git web UI client", "publishConfig": { "registry": "https://registry.npmjs.org/" }, "main": "server.js", "bin": { - "gitconvex":"server.js" + "gitconvex": "server.js" }, "scripts": { "start": "node server.js", From f16271c7d3db27ef5dcc8368c880de7d5d5fdceb Mon Sep 17 00:00:00 2001 From: Neel1996 Date: Mon, 13 Jul 2020 09:03:08 +0000 Subject: [PATCH 2/5] Merge pull request #22 from neel1996/repodetail-ui-fix --- build/asset-manifest.json | 8 +- build/index.html | 2 +- ...nifest.2e554d5fc8b1a6e8853c670d6bf4084c.js | 1710 +++++++++++++++++ build/service-worker.js | 2 +- build/static/js/main.3cda9c91.chunk.js | 2 + build/static/js/main.3cda9c91.chunk.js.map | 1 + package.json | 4 +- 7 files changed, 1721 insertions(+), 8 deletions(-) create mode 100644 build/precache-manifest.2e554d5fc8b1a6e8853c670d6bf4084c.js create mode 100644 build/static/js/main.3cda9c91.chunk.js create mode 100644 build/static/js/main.3cda9c91.chunk.js.map diff --git a/build/asset-manifest.json b/build/asset-manifest.json index 9a45fceb..b976fa0b 100644 --- a/build/asset-manifest.json +++ b/build/asset-manifest.json @@ -1,8 +1,8 @@ { "files": { "main.css": "/static/css/main.a4fb5d6c.chunk.css", - "main.js": "/static/js/main.2b6a2505.chunk.js", - "main.js.map": "/static/js/main.2b6a2505.chunk.js.map", + "main.js": "/static/js/main.3cda9c91.chunk.js", + "main.js.map": "/static/js/main.3cda9c91.chunk.js.map", "runtime-main.js": "/static/js/runtime-main.901d17b4.js", "runtime-main.js.map": "/static/js/runtime-main.901d17b4.js.map", "static/js/2.3b1bb55a.chunk.js": "/static/js/2.3b1bb55a.chunk.js", @@ -848,7 +848,7 @@ "static/js/422.364d5705.chunk.js": "/static/js/422.364d5705.chunk.js", "static/js/422.364d5705.chunk.js.map": "/static/js/422.364d5705.chunk.js.map", "index.html": "/index.html", - "precache-manifest.e1bbddb8544e4745122347aad496095c.js": "/precache-manifest.e1bbddb8544e4745122347aad496095c.js", + "precache-manifest.2e554d5fc8b1a6e8853c670d6bf4084c.js": "/precache-manifest.2e554d5fc8b1a6e8853c670d6bf4084c.js", "service-worker.js": "/service-worker.js", "static/css/main.a4fb5d6c.chunk.css.map": "/static/css/main.a4fb5d6c.chunk.css.map", "static/js/2.3b1bb55a.chunk.js.LICENSE.txt": "/static/js/2.3b1bb55a.chunk.js.LICENSE.txt", @@ -858,6 +858,6 @@ "static/js/runtime-main.901d17b4.js", "static/js/2.3b1bb55a.chunk.js", "static/css/main.a4fb5d6c.chunk.css", - "static/js/main.2b6a2505.chunk.js" + "static/js/main.3cda9c91.chunk.js" ] } \ No newline at end of file diff --git a/build/index.html b/build/index.html index db4f4780..e6c73439 100644 --- a/build/index.html +++ b/build/index.html @@ -1 +1 @@ -GitConvex - A Git visualizer
\ No newline at end of file +GitConvex - A Git visualizer
\ No newline at end of file diff --git a/build/precache-manifest.2e554d5fc8b1a6e8853c670d6bf4084c.js b/build/precache-manifest.2e554d5fc8b1a6e8853c670d6bf4084c.js new file mode 100644 index 00000000..4cfd5559 --- /dev/null +++ b/build/precache-manifest.2e554d5fc8b1a6e8853c670d6bf4084c.js @@ -0,0 +1,1710 @@ +self.__precacheManifest = (self.__precacheManifest || []).concat([ + { + "revision": "6600331e23a97e8b771226d27f134844", + "url": "/index.html" + }, + { + "revision": "d8dadc6ef6047d2d9fa3", + "url": "/static/css/main.a4fb5d6c.chunk.css" + }, + { + "revision": "fe797b1964b44ab95b20", + "url": "/static/js/10.d1c9cc85.chunk.js" + }, + { + "revision": "1e02e653b75723742ad3", + "url": "/static/js/100.01cd27c3.chunk.js" + }, + { + "revision": "4e982b20cac44bb0718f", + "url": "/static/js/101.9291ca3f.chunk.js" + }, + { + "revision": "f4bcbb467f6e6a941a6a", + "url": "/static/js/102.9293c361.chunk.js" + }, + { + "revision": "dd970045886969588f04", + "url": "/static/js/103.6ba87c6c.chunk.js" + }, + { + "revision": "64a7f5066c72a2c64355", + "url": "/static/js/104.33b5a84a.chunk.js" + }, + { + "revision": "f283b7839ae38aee66f7", + "url": "/static/js/105.27e63b5b.chunk.js" + }, + { + "revision": "04e110444689875aa268", + "url": "/static/js/106.140ac720.chunk.js" + }, + { + "revision": "911325fac6e7c43e6089", + "url": "/static/js/107.f9824f8d.chunk.js" + }, + { + "revision": "694068a4e80e94060916", + "url": "/static/js/108.606a5611.chunk.js" + }, + { + "revision": "72e4f73e884cd398e45b", + "url": "/static/js/109.b3b87d20.chunk.js" + }, + { + "revision": "1f3e3df4aa4a1e405c0c", + "url": "/static/js/11.effa20c5.chunk.js" + }, + { + "revision": "e3a6087ad302c5af13d4", + "url": "/static/js/110.85400d73.chunk.js" + }, + { + "revision": "df6ab6e37dd4de35b49b", + "url": "/static/js/111.7b0ecbd3.chunk.js" + }, + { + "revision": "09d4f244a2e70e84dccf", + "url": "/static/js/112.fd5b71a7.chunk.js" + }, + { + "revision": "c0678c1766abbfb04071", + "url": "/static/js/113.8089c808.chunk.js" + }, + { + "revision": "216a4161680bdf0ad9f2", + "url": "/static/js/114.be346870.chunk.js" + }, + { + "revision": "801b65a0bf49a28273e7", + "url": "/static/js/115.7fa44ee4.chunk.js" + }, + { + "revision": "a959393791a952e04773", + "url": "/static/js/116.8b049695.chunk.js" + }, + { + "revision": "4f39d4ea68648748ce85", + "url": "/static/js/117.53f4fa85.chunk.js" + }, + { + "revision": "cfcb2d83f9b3d1f3ab80", + "url": "/static/js/118.87e976b4.chunk.js" + }, + { + "revision": "daea3202c7759aa1f3a6", + "url": "/static/js/119.b50e2604.chunk.js" + }, + { + "revision": "f98087b5eee97d23ab84", + "url": "/static/js/12.a912f77b.chunk.js" + }, + { + "revision": "b6fbbd1e86d7d9b0a804", + "url": "/static/js/120.34951caa.chunk.js" + }, + { + "revision": "9476ea8d5590012789d1", + "url": "/static/js/121.6c30f266.chunk.js" + }, + { + "revision": "3f4c329375e4d0970c43", + "url": "/static/js/122.999896e2.chunk.js" + }, + { + "revision": "2beee85aef71b4c29946", + "url": "/static/js/123.d03edf48.chunk.js" + }, + { + "revision": "81e9cdc8740ee3f38ec4", + "url": "/static/js/124.b14de401.chunk.js" + }, + { + "revision": "ce54957ecb96164b4fc0", + "url": "/static/js/125.ecc002a8.chunk.js" + }, + { + "revision": "2cb10dc92e39b3bc0497", + "url": "/static/js/126.76aca90e.chunk.js" + }, + { + "revision": "d4c9a8d19dd0ab6dc915", + "url": "/static/js/127.7601e70b.chunk.js" + }, + { + "revision": "d2b1ad58c875acd9df5c", + "url": "/static/js/128.869d4b33.chunk.js" + }, + { + "revision": "5f4986c17e337ea24c75", + "url": "/static/js/129.61ed98c8.chunk.js" + }, + { + "revision": "ce2665a4a36f84de5ee1", + "url": "/static/js/13.2615a693.chunk.js" + }, + { + "revision": "70e61c6b1d58866b688f", + "url": "/static/js/130.3fc6780e.chunk.js" + }, + { + "revision": "812af9b2feed0f6b2fdb", + "url": "/static/js/131.1ddcd339.chunk.js" + }, + { + "revision": "96f8a7af05781fb27c6a", + "url": "/static/js/132.ad755da5.chunk.js" + }, + { + "revision": "b2e103f7ea9c3ef06734", + "url": "/static/js/133.9fd897ae.chunk.js" + }, + { + "revision": "4ef398ff64fed965fa60", + "url": "/static/js/134.6cbed810.chunk.js" + }, + { + "revision": "02387fd0a317426a7ea0", + "url": "/static/js/135.b0956c89.chunk.js" + }, + { + "revision": "6407ace123ef5397e7dd", + "url": "/static/js/136.6e6751b1.chunk.js" + }, + { + "revision": "8f7b70bbdb847962be20", + "url": "/static/js/137.d8576078.chunk.js" + }, + { + "revision": "d0e6225fcd346b5dd6c6", + "url": "/static/js/138.c6d432e8.chunk.js" + }, + { + "revision": "38853579914ebed0fc7a", + "url": "/static/js/139.57639c9f.chunk.js" + }, + { + "revision": "68a167ab11c1e4aa7283", + "url": "/static/js/14.ee550782.chunk.js" + }, + { + "revision": "cdd07cf56865667d521d", + "url": "/static/js/140.1b2bd5e9.chunk.js" + }, + { + "revision": "a44a7dab44eff39bef6a", + "url": "/static/js/141.158d5d8d.chunk.js" + }, + { + "revision": "2c89b06744495f6c8136", + "url": "/static/js/142.a434b844.chunk.js" + }, + { + "revision": "18b651de8a9443e39417", + "url": "/static/js/143.0a380d26.chunk.js" + }, + { + "revision": "7746098de4639f6be6eb", + "url": "/static/js/144.4a5a51de.chunk.js" + }, + { + "revision": "08c61b1705dd4544984c", + "url": "/static/js/145.7d0d2dd4.chunk.js" + }, + { + "revision": "b1ee55ab537f9c9194eb", + "url": "/static/js/146.9aaf4f71.chunk.js" + }, + { + "revision": "6fa4decb112b26fc9f30", + "url": "/static/js/147.82524187.chunk.js" + }, + { + "revision": "bb792ea84cd727d44d2b", + "url": "/static/js/148.d3bd7a35.chunk.js" + }, + { + "revision": "1e03acd26fd308e68cc4", + "url": "/static/js/149.d7f332a6.chunk.js" + }, + { + "revision": "59be961fa1de891e8c4f", + "url": "/static/js/15.88b3d3bf.chunk.js" + }, + { + "revision": "01f4bb86e3fde6cf8bd5", + "url": "/static/js/150.5ccce66f.chunk.js" + }, + { + "revision": "230a66b91b481bcdb934", + "url": "/static/js/151.1a19e0f0.chunk.js" + }, + { + "revision": "e893b9187d19b8a4211b", + "url": "/static/js/152.10c1ccd9.chunk.js" + }, + { + "revision": "483864696db3f2ddbe67", + "url": "/static/js/153.30ba936f.chunk.js" + }, + { + "revision": "d2e76810d9efe932f41f", + "url": "/static/js/154.b370dd5a.chunk.js" + }, + { + "revision": "036226aaa9a1acc5a07c", + "url": "/static/js/155.c695957e.chunk.js" + }, + { + "revision": "c9df0104bdece0d998a3", + "url": "/static/js/156.a5af941e.chunk.js" + }, + { + "revision": "a20fad4720a5fb00d82a", + "url": "/static/js/157.6113ebed.chunk.js" + }, + { + "revision": "5a4f8bc82bc2b745b6e8", + "url": "/static/js/158.861b0c88.chunk.js" + }, + { + "revision": "dd7b2168c1b3ee8d4e5f", + "url": "/static/js/159.a05a9304.chunk.js" + }, + { + "revision": "4aef574a9d8b7448d391", + "url": "/static/js/16.6d491dd4.chunk.js" + }, + { + "revision": "8eea38ab6cfa0bf6102c", + "url": "/static/js/160.3d1b1644.chunk.js" + }, + { + "revision": "80e059a409ef7887813b", + "url": "/static/js/161.39057635.chunk.js" + }, + { + "revision": "b26c887c4532dd8e508b", + "url": "/static/js/162.2906fc30.chunk.js" + }, + { + "revision": "3c5805debe3b1e6ef883", + "url": "/static/js/163.c619c034.chunk.js" + }, + { + "revision": "e3239dfbb39d60871cc6", + "url": "/static/js/164.47ef8393.chunk.js" + }, + { + "revision": "243e5d2936d2986b0c73", + "url": "/static/js/165.b798fd82.chunk.js" + }, + { + "revision": "d0c7c59796fcd10a4974", + "url": "/static/js/166.d34cc4fc.chunk.js" + }, + { + "revision": "506e4b10445deadc1af9", + "url": "/static/js/167.0d2e3eb6.chunk.js" + }, + { + "revision": "4d7290d604787e654e95", + "url": "/static/js/168.8e91f32e.chunk.js" + }, + { + "revision": "886406ee881460a4606c", + "url": "/static/js/169.7286ecdf.chunk.js" + }, + { + "revision": "6904213b18c702b70fe7", + "url": "/static/js/17.7830841d.chunk.js" + }, + { + "revision": "bcb9429606787b3e41eb", + "url": "/static/js/170.df0eab62.chunk.js" + }, + { + "revision": "557b639d6a643d3df952", + "url": "/static/js/171.a4dcfeec.chunk.js" + }, + { + "revision": "04d3a6ecad6303f7ce81", + "url": "/static/js/172.948d3b40.chunk.js" + }, + { + "revision": "cf6ac7460f0d172936bf", + "url": "/static/js/173.b3aa43af.chunk.js" + }, + { + "revision": "8bd6d661e285d8c63cab", + "url": "/static/js/174.6e3f61a8.chunk.js" + }, + { + "revision": "4c01236ac62c0f9f07ac", + "url": "/static/js/175.3457491f.chunk.js" + }, + { + "revision": "6b6395f9342339990cef", + "url": "/static/js/176.445d015e.chunk.js" + }, + { + "revision": "fbfe38a8f7a1d01b76aa", + "url": "/static/js/177.938188c8.chunk.js" + }, + { + "revision": "03a5d6d1a51b894c51d1", + "url": "/static/js/178.50742e19.chunk.js" + }, + { + "revision": "317d9a920a06ab6d04b4", + "url": "/static/js/179.db178a87.chunk.js" + }, + { + "revision": "73b3518f31a100e0d251", + "url": "/static/js/18.5220a7f6.chunk.js" + }, + { + "revision": "45d5bc65bff81869002e", + "url": "/static/js/180.8dc6e34d.chunk.js" + }, + { + "revision": "7dcc12fee69b7db4c0e2", + "url": "/static/js/181.6ffc5a87.chunk.js" + }, + { + "revision": "740be645d49731a45aec", + "url": "/static/js/182.d6d09e61.chunk.js" + }, + { + "revision": "53577c2405fe98de518e", + "url": "/static/js/183.6e6022ce.chunk.js" + }, + { + "revision": "46db8957f3ca35fc6043", + "url": "/static/js/184.23741cce.chunk.js" + }, + { + "revision": "2b21f3e040814e1eeb7d", + "url": "/static/js/185.ba7af8ef.chunk.js" + }, + { + "revision": "80ea7630c68c7612eb77", + "url": "/static/js/186.6dedfa47.chunk.js" + }, + { + "revision": "67b8c866a5472c3b6371", + "url": "/static/js/187.f6dd417e.chunk.js" + }, + { + "revision": "90ec94af6966f4a9dbd8", + "url": "/static/js/188.dfa8253a.chunk.js" + }, + { + "revision": "7b1973faf92a332b31fb", + "url": "/static/js/189.266ae92c.chunk.js" + }, + { + "revision": "fac5b7a805b392acd9a2", + "url": "/static/js/19.323921eb.chunk.js" + }, + { + "revision": "5cac62f7e97b23d3e830", + "url": "/static/js/190.928f8c32.chunk.js" + }, + { + "revision": "14ad64600f388501b19b", + "url": "/static/js/191.da5511ce.chunk.js" + }, + { + "revision": "6113a253db0dbff72eb8", + "url": "/static/js/192.d29544de.chunk.js" + }, + { + "revision": "751d64e78450a6c42111", + "url": "/static/js/193.c1edc91f.chunk.js" + }, + { + "revision": "caa499a6b07a2c4cc5bd", + "url": "/static/js/194.2bda6550.chunk.js" + }, + { + "revision": "004d5e55917d0b1c05b6", + "url": "/static/js/195.b26ef12c.chunk.js" + }, + { + "revision": "5ac2dd2f747f355fb971", + "url": "/static/js/196.25849f46.chunk.js" + }, + { + "revision": "87e4774108890441dc84", + "url": "/static/js/197.9ad7d291.chunk.js" + }, + { + "revision": "70c264ee4f4997fde079", + "url": "/static/js/198.449ed6c5.chunk.js" + }, + { + "revision": "63c40c313af0436f2c12", + "url": "/static/js/199.ac3e3261.chunk.js" + }, + { + "revision": "befe73d23bb015ea1501", + "url": "/static/js/2.3b1bb55a.chunk.js" + }, + { + "revision": "0749163b59fbee32225059cb60c18af6", + "url": "/static/js/2.3b1bb55a.chunk.js.LICENSE.txt" + }, + { + "revision": "f1e71b5615907e2a18ef", + "url": "/static/js/20.2e732441.chunk.js" + }, + { + "revision": "61b0a4f6f85dac7d4d2c", + "url": "/static/js/200.d53e4889.chunk.js" + }, + { + "revision": "0052c70a066d52118360", + "url": "/static/js/201.de44c976.chunk.js" + }, + { + "revision": "21427ab5f089f5c322c6", + "url": "/static/js/202.0d93ef62.chunk.js" + }, + { + "revision": "ffe49df272b49aa7c72a", + "url": "/static/js/203.5118d971.chunk.js" + }, + { + "revision": "feedb24fc79a85c9d39a", + "url": "/static/js/204.31bdbe78.chunk.js" + }, + { + "revision": "16c4a8d6c3fb7d0a4701", + "url": "/static/js/205.a1dc5ef2.chunk.js" + }, + { + "revision": "b7386e7f50a128018432", + "url": "/static/js/206.49d5e30b.chunk.js" + }, + { + "revision": "b96b139c901edf3ec14a", + "url": "/static/js/207.8f6a764e.chunk.js" + }, + { + "revision": "06d49df03512250cac87", + "url": "/static/js/208.8e01bb70.chunk.js" + }, + { + "revision": "60e1d32dc0f46c89beed", + "url": "/static/js/209.5ac9245e.chunk.js" + }, + { + "revision": "e70a2950fa4671a15fb1", + "url": "/static/js/21.7528f179.chunk.js" + }, + { + "revision": "400c61b30cf841199012", + "url": "/static/js/210.7f05bc10.chunk.js" + }, + { + "revision": "c9225b9e51608b47f0da", + "url": "/static/js/211.0d71de21.chunk.js" + }, + { + "revision": "79f58035ad5a163bb0a2", + "url": "/static/js/212.0bbe5338.chunk.js" + }, + { + "revision": "a2bc79af17a6b9ce2197", + "url": "/static/js/213.12ed3184.chunk.js" + }, + { + "revision": "113512aee6b36b8e755d", + "url": "/static/js/214.ac08a1e7.chunk.js" + }, + { + "revision": "ae753dc226757888f4f9", + "url": "/static/js/215.6bb34298.chunk.js" + }, + { + "revision": "86580851bbb1d8c1c45c", + "url": "/static/js/216.d088d6c4.chunk.js" + }, + { + "revision": "d4dc8ca77f1c2ca0676c", + "url": "/static/js/217.b9f3c215.chunk.js" + }, + { + "revision": "da490097586a4522b256", + "url": "/static/js/218.89403a0a.chunk.js" + }, + { + "revision": "fabfacdc2ec905085534", + "url": "/static/js/219.8dcada19.chunk.js" + }, + { + "revision": "86775c0a27a415725a7a", + "url": "/static/js/22.284599a1.chunk.js" + }, + { + "revision": "7d249d8eba56340a1d8e", + "url": "/static/js/220.db7413ec.chunk.js" + }, + { + "revision": "2d1a11426726cea3e18e", + "url": "/static/js/221.ab481b16.chunk.js" + }, + { + "revision": "586c868eacd6d5213a50", + "url": "/static/js/222.ffab024f.chunk.js" + }, + { + "revision": "4d5a27d99ccd05507e49", + "url": "/static/js/223.ec7964e5.chunk.js" + }, + { + "revision": "ac5cb93c818fe845d37d", + "url": "/static/js/224.b653080a.chunk.js" + }, + { + "revision": "41b98ee79618003ea320", + "url": "/static/js/225.5e08d61f.chunk.js" + }, + { + "revision": "860423520e195318f574", + "url": "/static/js/226.daff08f4.chunk.js" + }, + { + "revision": "521f27c9fddaa501fa67", + "url": "/static/js/227.da339ff0.chunk.js" + }, + { + "revision": "26dad8cc7ea76a47be3b", + "url": "/static/js/228.5992d8b4.chunk.js" + }, + { + "revision": "08220c30e9f2f7559327", + "url": "/static/js/229.80a07e7d.chunk.js" + }, + { + "revision": "75ff66251bd4a1e74b19", + "url": "/static/js/23.0ed082b6.chunk.js" + }, + { + "revision": "d24785bec856d16423cb", + "url": "/static/js/230.5f624b4a.chunk.js" + }, + { + "revision": "10f0112f1c6ccde97f72", + "url": "/static/js/231.e4488c8a.chunk.js" + }, + { + "revision": "fc1025b212e4d7eb3040", + "url": "/static/js/232.113b1862.chunk.js" + }, + { + "revision": "03c0c57f99e066b80fb7", + "url": "/static/js/233.826dbe8d.chunk.js" + }, + { + "revision": "01224c3952a1c86de7c9", + "url": "/static/js/234.4d1d8eb0.chunk.js" + }, + { + "revision": "3ce089d1d613209d6481", + "url": "/static/js/235.d7b96105.chunk.js" + }, + { + "revision": "379e6dffca678d5a1a25", + "url": "/static/js/236.4fc41999.chunk.js" + }, + { + "revision": "22be4529d9c7e3a8e816", + "url": "/static/js/237.5fd9c994.chunk.js" + }, + { + "revision": "ad29d87ae9765028bb55", + "url": "/static/js/238.f1287465.chunk.js" + }, + { + "revision": "5c067400306290eb7e4d", + "url": "/static/js/239.2008e5e9.chunk.js" + }, + { + "revision": "310301d3a179ef61e66b", + "url": "/static/js/24.d066cc86.chunk.js" + }, + { + "revision": "2ea9d281a4e99313e044", + "url": "/static/js/240.8051d6f3.chunk.js" + }, + { + "revision": "c1b299fa017901e5e9f5", + "url": "/static/js/241.5355190b.chunk.js" + }, + { + "revision": "7c64183db53f2e1598e9", + "url": "/static/js/242.bc8a38da.chunk.js" + }, + { + "revision": "b94cc96e838eb9bbeb84", + "url": "/static/js/243.8b6ca5fd.chunk.js" + }, + { + "revision": "e472ee2ebe4e8ed6e08d", + "url": "/static/js/244.8f019982.chunk.js" + }, + { + "revision": "a01bc8c54992a59e4692", + "url": "/static/js/245.d84e2afd.chunk.js" + }, + { + "revision": "78cdfc30b0007724a259", + "url": "/static/js/246.03a507ff.chunk.js" + }, + { + "revision": "2722ba1f695b28d12eeb", + "url": "/static/js/247.562d7f99.chunk.js" + }, + { + "revision": "fdbf8e77228be1f9727c", + "url": "/static/js/248.805eaf63.chunk.js" + }, + { + "revision": "a0533a574dc95f9e8fa7", + "url": "/static/js/249.4329aa1f.chunk.js" + }, + { + "revision": "c0ed337854ec1a9476f7", + "url": "/static/js/25.5601061a.chunk.js" + }, + { + "revision": "0a8f44afccc72c5f2286", + "url": "/static/js/250.19451d1e.chunk.js" + }, + { + "revision": "9b6d7dabd4d2db996071", + "url": "/static/js/251.d6748a2c.chunk.js" + }, + { + "revision": "16c5097641e0bcb65b40", + "url": "/static/js/252.d0e7af38.chunk.js" + }, + { + "revision": "cda93c45c29d8ccf2eb4", + "url": "/static/js/253.f7e76454.chunk.js" + }, + { + "revision": "8433f5a6dadf22f0a023", + "url": "/static/js/254.d0f59e76.chunk.js" + }, + { + "revision": "46c151a5b3b95daf8e08", + "url": "/static/js/255.b0b81383.chunk.js" + }, + { + "revision": "0e3a3726cbabaeb2469c", + "url": "/static/js/256.3eb93658.chunk.js" + }, + { + "revision": "2c5fc10c6d682c26c646", + "url": "/static/js/257.4cf4b5b2.chunk.js" + }, + { + "revision": "2f77632a7b3a9c6fc8f5", + "url": "/static/js/258.1953110e.chunk.js" + }, + { + "revision": "802f7b951cebdcfbd429", + "url": "/static/js/259.9c2209a3.chunk.js" + }, + { + "revision": "e78eecc07f81a66eda0e", + "url": "/static/js/26.403f66c6.chunk.js" + }, + { + "revision": "98a71a71080fd2105829", + "url": "/static/js/260.7f9d86df.chunk.js" + }, + { + "revision": "2f9677bd66dfe1f33623", + "url": "/static/js/261.86facdf2.chunk.js" + }, + { + "revision": "6169e6a5b60d68cb5762", + "url": "/static/js/262.79c25287.chunk.js" + }, + { + "revision": "e716e1be95a12f5ae767", + "url": "/static/js/263.a7061093.chunk.js" + }, + { + "revision": "4f235e201f3598867def", + "url": "/static/js/264.9b455838.chunk.js" + }, + { + "revision": "efa43eb551a76e8d1abf", + "url": "/static/js/265.92cd99e6.chunk.js" + }, + { + "revision": "2b6266f3544e808b2058", + "url": "/static/js/266.719b3e21.chunk.js" + }, + { + "revision": "4956f0a4353bc5037c81", + "url": "/static/js/267.4efb6052.chunk.js" + }, + { + "revision": "e41ab2c27ac3aa742692", + "url": "/static/js/268.81536b89.chunk.js" + }, + { + "revision": "8fa6b69910f6e3e6f8d4", + "url": "/static/js/269.1c9b3b54.chunk.js" + }, + { + "revision": "991690e000094b7a50dd", + "url": "/static/js/27.abad2595.chunk.js" + }, + { + "revision": "5774590dfbf669d3beaa", + "url": "/static/js/270.57e7f187.chunk.js" + }, + { + "revision": "b72477b3b7560f5aea56", + "url": "/static/js/271.92214fef.chunk.js" + }, + { + "revision": "d2246beed85df91ca81a", + "url": "/static/js/272.cd7cffeb.chunk.js" + }, + { + "revision": "de4ac5db7117bf5cee5d", + "url": "/static/js/273.8973a464.chunk.js" + }, + { + "revision": "dfa9a86613337c00b026", + "url": "/static/js/274.ec767a5f.chunk.js" + }, + { + "revision": "cbcb5acc7e57cda4c62e", + "url": "/static/js/275.0f530c08.chunk.js" + }, + { + "revision": "c5ada77f803cae4866ac", + "url": "/static/js/276.62ffa934.chunk.js" + }, + { + "revision": "a61f3e48ff3c1ff38b2f", + "url": "/static/js/277.7552efee.chunk.js" + }, + { + "revision": "df6e26d988b0e98a81d1", + "url": "/static/js/278.abf5e128.chunk.js" + }, + { + "revision": "b778fc5d29006b795994", + "url": "/static/js/279.dd1b79e8.chunk.js" + }, + { + "revision": "ec2114ab2d7b0fb48184", + "url": "/static/js/28.51809c7f.chunk.js" + }, + { + "revision": "410c6e314281606f821f", + "url": "/static/js/280.fc7d47a2.chunk.js" + }, + { + "revision": "0bd9bd5d872b8705f88c", + "url": "/static/js/281.bf430873.chunk.js" + }, + { + "revision": "38f85f8ea0cec86fef52", + "url": "/static/js/282.94c7a778.chunk.js" + }, + { + "revision": "0f66d18a86ac925db596", + "url": "/static/js/283.78cf07c5.chunk.js" + }, + { + "revision": "4be161fcb8c31ec47787", + "url": "/static/js/284.6705f860.chunk.js" + }, + { + "revision": "3546de442d57997709ae", + "url": "/static/js/285.0662219e.chunk.js" + }, + { + "revision": "7cecb288e92dc92f7b8c", + "url": "/static/js/286.031f22dc.chunk.js" + }, + { + "revision": "f7f4d3fbe5a9d7be1909", + "url": "/static/js/287.330c5b8a.chunk.js" + }, + { + "revision": "4afb0dd3c5d644ffafd5", + "url": "/static/js/288.b740fb0c.chunk.js" + }, + { + "revision": "705ae5190577bfd1a65d", + "url": "/static/js/289.1d355f78.chunk.js" + }, + { + "revision": "42fcd053852575c391fd", + "url": "/static/js/29.b43a218f.chunk.js" + }, + { + "revision": "8b1cb2e4decc04a2be60", + "url": "/static/js/290.a331c2b2.chunk.js" + }, + { + "revision": "65e6a55dce0aedf2a348", + "url": "/static/js/291.8091c235.chunk.js" + }, + { + "revision": "916b8c23b74e42d1adda", + "url": "/static/js/292.c2f2bff0.chunk.js" + }, + { + "revision": "75313295856e47021db6", + "url": "/static/js/293.8c881ac6.chunk.js" + }, + { + "revision": "9c71ee4d96bd7528dcf6", + "url": "/static/js/294.57e499c7.chunk.js" + }, + { + "revision": "0d4862c846af2ede5014", + "url": "/static/js/295.4f745262.chunk.js" + }, + { + "revision": "fa8b68b4d77553580c1f", + "url": "/static/js/296.6b9b7960.chunk.js" + }, + { + "revision": "bfa94ad4eb0ecd24105b", + "url": "/static/js/297.7fd30bc9.chunk.js" + }, + { + "revision": "7ae6df6e051d5ebd0fe8", + "url": "/static/js/298.184480b7.chunk.js" + }, + { + "revision": "3ba1861d3f374c9ad96e", + "url": "/static/js/299.a1e5cbe1.chunk.js" + }, + { + "revision": "6f62b67bba6977871bc4", + "url": "/static/js/3.2eab11d6.chunk.js" + }, + { + "revision": "4828cf70008a72ac5da3", + "url": "/static/js/30.e56de4b6.chunk.js" + }, + { + "revision": "8ab9c4bb9595657eefd9", + "url": "/static/js/300.99cd9112.chunk.js" + }, + { + "revision": "2dc4b51d58691d320475", + "url": "/static/js/301.5c4cadbc.chunk.js" + }, + { + "revision": "03867eda1654875e8e10", + "url": "/static/js/302.31666b8b.chunk.js" + }, + { + "revision": "bc655726db8adefc365c", + "url": "/static/js/303.eba8dcf8.chunk.js" + }, + { + "revision": "863c04e6a0895ce93832", + "url": "/static/js/304.ab6f6ae5.chunk.js" + }, + { + "revision": "ab4a58e8cee6e1320cf1", + "url": "/static/js/305.3401c5b6.chunk.js" + }, + { + "revision": "8e46ad724a37076fd681", + "url": "/static/js/306.5527bbe6.chunk.js" + }, + { + "revision": "6f76c12bd6d8efd54f7e", + "url": "/static/js/307.30b73630.chunk.js" + }, + { + "revision": "bbd33c82acfeabe971a7", + "url": "/static/js/308.17aa8366.chunk.js" + }, + { + "revision": "41459e3d638288c9f5e3", + "url": "/static/js/309.c8a38024.chunk.js" + }, + { + "revision": "9e16f5a52680704405c3", + "url": "/static/js/31.b68e50dc.chunk.js" + }, + { + "revision": "72d3d0ed6176fe2985fd", + "url": "/static/js/310.13ac854a.chunk.js" + }, + { + "revision": "8d64c8886bc45659165d", + "url": "/static/js/311.60313b02.chunk.js" + }, + { + "revision": "b75ed634748ef7ba4c18", + "url": "/static/js/312.73856e1d.chunk.js" + }, + { + "revision": "7f3ae5b6c2510e5f4cb2", + "url": "/static/js/313.5d60dcc5.chunk.js" + }, + { + "revision": "dc1f5608510d8f6f6abe", + "url": "/static/js/314.2b942fcf.chunk.js" + }, + { + "revision": "989665c66283a99b54dd", + "url": "/static/js/315.9f5e5c61.chunk.js" + }, + { + "revision": "aca73d9c5c1d89121017", + "url": "/static/js/316.d50d7c63.chunk.js" + }, + { + "revision": "979e4a29f64196cf32e5", + "url": "/static/js/317.7bded0f7.chunk.js" + }, + { + "revision": "984a049f94de91ce11b8", + "url": "/static/js/318.88e0d2fb.chunk.js" + }, + { + "revision": "5df748b83ea862d22d38", + "url": "/static/js/319.5b049eed.chunk.js" + }, + { + "revision": "64eddd83cc0a205223eb", + "url": "/static/js/32.e7bab158.chunk.js" + }, + { + "revision": "75beba715b069072bab6", + "url": "/static/js/320.aee162d0.chunk.js" + }, + { + "revision": "f57531c00402d18753a6", + "url": "/static/js/321.6c2ac8b9.chunk.js" + }, + { + "revision": "3c65b2ba89631a392e4c", + "url": "/static/js/322.4ce747f5.chunk.js" + }, + { + "revision": "1ffc29b5f85a28969335", + "url": "/static/js/323.96c7ac51.chunk.js" + }, + { + "revision": "0ef72b5ee3e1914b3578", + "url": "/static/js/324.49037781.chunk.js" + }, + { + "revision": "81250f499ff85a509280", + "url": "/static/js/325.0338f384.chunk.js" + }, + { + "revision": "b5cbe118902b502efa3c", + "url": "/static/js/326.f092a55a.chunk.js" + }, + { + "revision": "f3d5a622410c68c3e0f5", + "url": "/static/js/327.48dc9b19.chunk.js" + }, + { + "revision": "fe67126141df1ac574de", + "url": "/static/js/328.4e37ebc5.chunk.js" + }, + { + "revision": "3e9e74c030fd78d46c32", + "url": "/static/js/329.925bd68c.chunk.js" + }, + { + "revision": "7c974da53a6cb511d2ab", + "url": "/static/js/33.ea4a7d90.chunk.js" + }, + { + "revision": "02c58dc04709833f91f2", + "url": "/static/js/330.f09f1192.chunk.js" + }, + { + "revision": "379cdaefacd6d6d52d40", + "url": "/static/js/331.548c5c35.chunk.js" + }, + { + "revision": "eb7ef0f96c495ff16400", + "url": "/static/js/332.59099a6a.chunk.js" + }, + { + "revision": "5533f83ff592fc4dc118", + "url": "/static/js/333.c3f947d1.chunk.js" + }, + { + "revision": "88788e80dd70bf581f75", + "url": "/static/js/334.fecbd481.chunk.js" + }, + { + "revision": "31ae82c90538e035211a", + "url": "/static/js/335.bc5c316d.chunk.js" + }, + { + "revision": "591fa152bff81fc72e1b", + "url": "/static/js/336.99230e14.chunk.js" + }, + { + "revision": "2ac480a3550ffbdd53fa", + "url": "/static/js/337.f0f9139a.chunk.js" + }, + { + "revision": "0e02c3673e14ffe70fc7", + "url": "/static/js/338.12c07686.chunk.js" + }, + { + "revision": "97d3dab738523884b97b", + "url": "/static/js/339.a0dd0e8d.chunk.js" + }, + { + "revision": "f2dde4477248a90df04b", + "url": "/static/js/34.c874851b.chunk.js" + }, + { + "revision": "e10f14e0ff271c48a16f", + "url": "/static/js/340.c84088be.chunk.js" + }, + { + "revision": "26b167eb4bc8c09f3d12", + "url": "/static/js/341.f7120451.chunk.js" + }, + { + "revision": "a37447634a460527ee2f", + "url": "/static/js/342.e2182d36.chunk.js" + }, + { + "revision": "7427f9a8032ccb75abec", + "url": "/static/js/343.0ec930e4.chunk.js" + }, + { + "revision": "46c278befc5770d02b65", + "url": "/static/js/344.2f3e8345.chunk.js" + }, + { + "revision": "9a0c90b344cfe8961cd5", + "url": "/static/js/345.c6512a3d.chunk.js" + }, + { + "revision": "b88a236d16b479ba7396", + "url": "/static/js/346.2b6cef06.chunk.js" + }, + { + "revision": "5d9c86677b1e6a1cb692", + "url": "/static/js/347.9e737f43.chunk.js" + }, + { + "revision": "d96f3f9a3930e8c24cdf", + "url": "/static/js/348.face6d86.chunk.js" + }, + { + "revision": "ee7301e91bb1d27edc04", + "url": "/static/js/349.3eda0f05.chunk.js" + }, + { + "revision": "79b4743541961b32ee1b", + "url": "/static/js/35.66a0ba28.chunk.js" + }, + { + "revision": "8d59eeedbd7dfaf35c0e", + "url": "/static/js/350.882b82de.chunk.js" + }, + { + "revision": "ce4cf4c1adc21ff80fd3", + "url": "/static/js/351.8a421168.chunk.js" + }, + { + "revision": "f62e8ccd769d436be439", + "url": "/static/js/352.e9953e83.chunk.js" + }, + { + "revision": "c2575dd8385165aa0e00", + "url": "/static/js/353.c2a6a18f.chunk.js" + }, + { + "revision": "bc036efa9df26a5dd375", + "url": "/static/js/354.1b844086.chunk.js" + }, + { + "revision": "d5924fb94bd5676b1cde", + "url": "/static/js/355.aa48542f.chunk.js" + }, + { + "revision": "324d343dcc86872c6fcc", + "url": "/static/js/356.1fb61cf7.chunk.js" + }, + { + "revision": "b301fda0eaf0a3edd806", + "url": "/static/js/357.21ba632c.chunk.js" + }, + { + "revision": "6386b9df219f596e5605", + "url": "/static/js/358.1c68f22c.chunk.js" + }, + { + "revision": "e65ebd70645782cf78ea", + "url": "/static/js/359.5561ebd8.chunk.js" + }, + { + "revision": "7819a581bdc667d8920a", + "url": "/static/js/36.b09efbe6.chunk.js" + }, + { + "revision": "3eaefdeb944d69475798", + "url": "/static/js/360.78793e7c.chunk.js" + }, + { + "revision": "a386323d3511b4340d9f", + "url": "/static/js/361.e39e08e8.chunk.js" + }, + { + "revision": "0fa1c7dd3ebe3b659f37", + "url": "/static/js/362.5075b848.chunk.js" + }, + { + "revision": "0d8fde0024a037acf3e1", + "url": "/static/js/363.0ea89be9.chunk.js" + }, + { + "revision": "92bdc600e8db6e4553ce", + "url": "/static/js/364.f4489ef4.chunk.js" + }, + { + "revision": "e2b0965ff4c010dc1367", + "url": "/static/js/365.bd5cb667.chunk.js" + }, + { + "revision": "0ee261a228d3d627f170", + "url": "/static/js/366.8485cf02.chunk.js" + }, + { + "revision": "b8b0634a4a8a4fd4b491", + "url": "/static/js/367.15eb6971.chunk.js" + }, + { + "revision": "b27f42fc9e1a632dfb27", + "url": "/static/js/368.7498fd10.chunk.js" + }, + { + "revision": "969360f2ea1a13f35099", + "url": "/static/js/369.7f39dfac.chunk.js" + }, + { + "revision": "6bb35a86bcacc06eb172", + "url": "/static/js/37.7363b252.chunk.js" + }, + { + "revision": "9516805dda72e5bd1033", + "url": "/static/js/370.d060d285.chunk.js" + }, + { + "revision": "a9a320d56887753ea4a0", + "url": "/static/js/371.f8865f6b.chunk.js" + }, + { + "revision": "0fa852bd25f17758bff5", + "url": "/static/js/372.3413ecb3.chunk.js" + }, + { + "revision": "b67008b677345957cf18", + "url": "/static/js/373.a2cc65d0.chunk.js" + }, + { + "revision": "61a3c4e5f899878c767c", + "url": "/static/js/374.e1147995.chunk.js" + }, + { + "revision": "5fb0d8c77d622fbba69d", + "url": "/static/js/375.1821c8ca.chunk.js" + }, + { + "revision": "c0ef7c0b9523cabae7dd", + "url": "/static/js/376.89da88b0.chunk.js" + }, + { + "revision": "4e0567858dbfa1254463", + "url": "/static/js/377.ebce785d.chunk.js" + }, + { + "revision": "05c010e1e07dd988de26", + "url": "/static/js/378.4752ad16.chunk.js" + }, + { + "revision": "60b73907d6ad0f91e642", + "url": "/static/js/379.024b59c3.chunk.js" + }, + { + "revision": "8bbfec67073ef70156ad", + "url": "/static/js/38.3cd58478.chunk.js" + }, + { + "revision": "bf06385f67d7323b9962", + "url": "/static/js/380.1f0e4962.chunk.js" + }, + { + "revision": "484242e17ca97be68fb5", + "url": "/static/js/381.6e1d921b.chunk.js" + }, + { + "revision": "7bcb5b396f836cc250f7", + "url": "/static/js/382.697c586b.chunk.js" + }, + { + "revision": "b1f337517aea26e1a6c9", + "url": "/static/js/383.5df981e6.chunk.js" + }, + { + "revision": "726e61b835809bd1cdc3", + "url": "/static/js/384.ead4e64f.chunk.js" + }, + { + "revision": "98fb2cad7beff1c0f987", + "url": "/static/js/385.79a8c59e.chunk.js" + }, + { + "revision": "12bc4c7479b64014b792", + "url": "/static/js/386.f55a5776.chunk.js" + }, + { + "revision": "6dd75a842a958ab4db99", + "url": "/static/js/387.96db204c.chunk.js" + }, + { + "revision": "a2246ab76c1fd5effc2c", + "url": "/static/js/388.64743403.chunk.js" + }, + { + "revision": "ed17055c1d3b56be8e97", + "url": "/static/js/389.18fa2e96.chunk.js" + }, + { + "revision": "9da4bc5eb96dddd706a6", + "url": "/static/js/39.9177dfbf.chunk.js" + }, + { + "revision": "af0000f5e42d206d5252", + "url": "/static/js/390.90baf47a.chunk.js" + }, + { + "revision": "6ddd924511b3219a2358", + "url": "/static/js/391.24e92c66.chunk.js" + }, + { + "revision": "f39b6512d1bd2f89043e", + "url": "/static/js/392.d1254563.chunk.js" + }, + { + "revision": "22bed78667c637555e2d", + "url": "/static/js/393.2b94d877.chunk.js" + }, + { + "revision": "90edc58210df81eca971", + "url": "/static/js/394.b2d4593c.chunk.js" + }, + { + "revision": "290efcc555d19ef6377b", + "url": "/static/js/395.a1e9fe9c.chunk.js" + }, + { + "revision": "a9c83516cb0cdde1b45b", + "url": "/static/js/396.39512086.chunk.js" + }, + { + "revision": "bc66ac97aa443d087f82", + "url": "/static/js/397.94e7c212.chunk.js" + }, + { + "revision": "ad5412777f86e18cf388", + "url": "/static/js/398.56fd118f.chunk.js" + }, + { + "revision": "f0aca5902735d6a07c4d", + "url": "/static/js/399.6aa11f9e.chunk.js" + }, + { + "revision": "1a9e4407eed7f737cd9f", + "url": "/static/js/4.1e02955e.chunk.js" + }, + { + "revision": "f04f6c4e5784e710363c", + "url": "/static/js/40.1ac36757.chunk.js" + }, + { + "revision": "b19fa4bc1feae787d1b5", + "url": "/static/js/400.c0ef427b.chunk.js" + }, + { + "revision": "43507a48e63bca8ea029", + "url": "/static/js/401.0bc5d169.chunk.js" + }, + { + "revision": "c8a903bfe7ba5c7c74f0", + "url": "/static/js/402.95a418a2.chunk.js" + }, + { + "revision": "fbdae6af57645943b6fa", + "url": "/static/js/403.3a75110b.chunk.js" + }, + { + "revision": "c442ecd4b764b9288cfd", + "url": "/static/js/404.f403f53d.chunk.js" + }, + { + "revision": "c2f0f142b300af321201", + "url": "/static/js/405.9ca8b37d.chunk.js" + }, + { + "revision": "bfa7a23eeb420e689ce8", + "url": "/static/js/406.dcbfad00.chunk.js" + }, + { + "revision": "c2e0634ef5b49afb9a72", + "url": "/static/js/407.37d22456.chunk.js" + }, + { + "revision": "51ca7f88b7b98dadc241", + "url": "/static/js/408.45ab27d3.chunk.js" + }, + { + "revision": "d9c95afd4279b4ecbf20", + "url": "/static/js/409.40754f44.chunk.js" + }, + { + "revision": "e6b9bb2939d52f308a2d", + "url": "/static/js/41.391f915d.chunk.js" + }, + { + "revision": "b6641af19d6922fbe51a", + "url": "/static/js/410.34af4c93.chunk.js" + }, + { + "revision": "c79a7f544aa4f38cb725", + "url": "/static/js/411.5bd0ffc3.chunk.js" + }, + { + "revision": "482ee9263b72f7b22b40", + "url": "/static/js/412.be45a07b.chunk.js" + }, + { + "revision": "e772a532a9db9a7b1a68", + "url": "/static/js/413.c104accb.chunk.js" + }, + { + "revision": "7e4780f3d2299e40b927", + "url": "/static/js/414.ba035bd7.chunk.js" + }, + { + "revision": "49da6fd2e56e5995cb48", + "url": "/static/js/415.ecfa1b46.chunk.js" + }, + { + "revision": "ed3e392ac165d7d22fad", + "url": "/static/js/416.9fbfe195.chunk.js" + }, + { + "revision": "c6078ff3f154d83011dc", + "url": "/static/js/417.552c0243.chunk.js" + }, + { + "revision": "9263270279bccacba9c3", + "url": "/static/js/418.a416a079.chunk.js" + }, + { + "revision": "481afc826fdabf3219c6", + "url": "/static/js/419.e4f0a7c5.chunk.js" + }, + { + "revision": "5ca72b21d8e03a9b2084", + "url": "/static/js/42.4c9ac393.chunk.js" + }, + { + "revision": "9f1d4634865eb4ea9f05", + "url": "/static/js/420.917383b8.chunk.js" + }, + { + "revision": "eaf45af5173fbd420aec", + "url": "/static/js/421.4e55f7aa.chunk.js" + }, + { + "revision": "1200cbf2b12936d12ae2", + "url": "/static/js/422.364d5705.chunk.js" + }, + { + "revision": "ac678169608f226d7a20", + "url": "/static/js/43.8edfa982.chunk.js" + }, + { + "revision": "cf944b62e6a88ea3df5c", + "url": "/static/js/44.a5b8ca02.chunk.js" + }, + { + "revision": "d4a2c248a3f1bd0c4b6e", + "url": "/static/js/45.5cd2e680.chunk.js" + }, + { + "revision": "45a15b95eef1f1251198", + "url": "/static/js/46.a805235c.chunk.js" + }, + { + "revision": "9f6196bf49c79e516ccb", + "url": "/static/js/47.5f543cdb.chunk.js" + }, + { + "revision": "613099877452ee4d2938", + "url": "/static/js/48.954e660f.chunk.js" + }, + { + "revision": "203e05f7266688c23640", + "url": "/static/js/49.75516b7b.chunk.js" + }, + { + "revision": "e5d76c21908afbf74c15", + "url": "/static/js/5.c2154126.chunk.js" + }, + { + "revision": "0e640b842740a613d4c2", + "url": "/static/js/50.d889b466.chunk.js" + }, + { + "revision": "1252ed184ebc979fbece", + "url": "/static/js/51.e762e3d3.chunk.js" + }, + { + "revision": "88d647297e32a79b5026", + "url": "/static/js/52.39bcc494.chunk.js" + }, + { + "revision": "164d903974b3af311020", + "url": "/static/js/53.8ae1cab6.chunk.js" + }, + { + "revision": "39e45558d47f52e3f852", + "url": "/static/js/54.889ee9e2.chunk.js" + }, + { + "revision": "d23135e6bb16ad5ec719", + "url": "/static/js/55.913115e2.chunk.js" + }, + { + "revision": "0747a12db91e72b87a24", + "url": "/static/js/56.74b9bfd9.chunk.js" + }, + { + "revision": "20ee3e4a500161d66174", + "url": "/static/js/57.3b6afb05.chunk.js" + }, + { + "revision": "d8f8b168de52ef3503c4", + "url": "/static/js/58.a61b3267.chunk.js" + }, + { + "revision": "f2c1b2a68e95aabb7e60", + "url": "/static/js/59.43aea5a0.chunk.js" + }, + { + "revision": "2313aaa27b3da6df0758", + "url": "/static/js/6.daa8084b.chunk.js" + }, + { + "revision": "fbe5105926f94a838871", + "url": "/static/js/60.867da331.chunk.js" + }, + { + "revision": "8c3d727739aa97445b61", + "url": "/static/js/61.83ca6581.chunk.js" + }, + { + "revision": "8fbe8971026d01e35643", + "url": "/static/js/62.90c8edcd.chunk.js" + }, + { + "revision": "6800127d6cbd58090ab9", + "url": "/static/js/63.841d26be.chunk.js" + }, + { + "revision": "8c3d487b35140eaf6ec4", + "url": "/static/js/64.c54e95bd.chunk.js" + }, + { + "revision": "ff72b9c5e464410d1577", + "url": "/static/js/65.9907508e.chunk.js" + }, + { + "revision": "919bebfff56780407ed2", + "url": "/static/js/66.9b88a30e.chunk.js" + }, + { + "revision": "32285f3a9a6f11a757b4", + "url": "/static/js/67.1999bdf9.chunk.js" + }, + { + "revision": "afb438f38fb19c131981", + "url": "/static/js/68.786c3721.chunk.js" + }, + { + "revision": "5fcdf2c8a68fd09c8f57", + "url": "/static/js/69.f44d1db7.chunk.js" + }, + { + "revision": "3ec638700f82f581b88f", + "url": "/static/js/7.085c416b.chunk.js" + }, + { + "revision": "1e5942d12afc3e557cfe", + "url": "/static/js/70.88fde884.chunk.js" + }, + { + "revision": "ef94aa7f932de9bb378e", + "url": "/static/js/71.bee8f551.chunk.js" + }, + { + "revision": "0526cf88e89c9194a2c2", + "url": "/static/js/72.0d021244.chunk.js" + }, + { + "revision": "ca10893a2a388fe96487", + "url": "/static/js/73.a36f74bd.chunk.js" + }, + { + "revision": "365f9644aad0fd82645f", + "url": "/static/js/74.32f05a66.chunk.js" + }, + { + "revision": "18c6d92f1a464fd80659", + "url": "/static/js/75.c7d84b1c.chunk.js" + }, + { + "revision": "062b6499db674337c2f3", + "url": "/static/js/76.67e2e54b.chunk.js" + }, + { + "revision": "546388450aa3c2d640e9", + "url": "/static/js/77.1611432c.chunk.js" + }, + { + "revision": "bda3ff2dd278ef26c889", + "url": "/static/js/78.94589714.chunk.js" + }, + { + "revision": "07c26d4ec38e18456df2", + "url": "/static/js/79.299fc2ee.chunk.js" + }, + { + "revision": "b860f501ab68a3991f77", + "url": "/static/js/8.2b45df23.chunk.js" + }, + { + "revision": "7909a9e87a4a136340c8", + "url": "/static/js/80.372b82c0.chunk.js" + }, + { + "revision": "1c9755e0ecc62a137512", + "url": "/static/js/81.18ee524d.chunk.js" + }, + { + "revision": "ec3018c1dbc12c8ac25b", + "url": "/static/js/82.c03af59f.chunk.js" + }, + { + "revision": "8efaa389e1e453ef184a", + "url": "/static/js/83.b8da1d9c.chunk.js" + }, + { + "revision": "a11777253344daf495a6", + "url": "/static/js/84.6d4606a6.chunk.js" + }, + { + "revision": "2b75024772af85816e25", + "url": "/static/js/85.625d94d7.chunk.js" + }, + { + "revision": "26408c1d11ee458f0217", + "url": "/static/js/86.3e232c56.chunk.js" + }, + { + "revision": "31827471de7e062ed77f", + "url": "/static/js/87.93e2481b.chunk.js" + }, + { + "revision": "3c11d8398064f35f13cd", + "url": "/static/js/88.1b9c6858.chunk.js" + }, + { + "revision": "987da3ec45047c606723", + "url": "/static/js/89.18da508f.chunk.js" + }, + { + "revision": "37cabd35d2abcf1b4765", + "url": "/static/js/9.63bab258.chunk.js" + }, + { + "revision": "eff23447015faebd66e3", + "url": "/static/js/90.2ec9a3c3.chunk.js" + }, + { + "revision": "e471734a868893925e3f", + "url": "/static/js/91.b5d6c5f1.chunk.js" + }, + { + "revision": "0c5ab7cbb70fcf336c9e", + "url": "/static/js/92.ea1cbe1f.chunk.js" + }, + { + "revision": "c5a4d95152de19dc90a1", + "url": "/static/js/93.ee8d5d78.chunk.js" + }, + { + "revision": "aff1a13c7e34ddf62b50", + "url": "/static/js/94.bd2f3286.chunk.js" + }, + { + "revision": "a02068661c5033e4bbed", + "url": "/static/js/95.f9b4ad3e.chunk.js" + }, + { + "revision": "bd2713060968dc99bd63", + "url": "/static/js/96.4cbbfc04.chunk.js" + }, + { + "revision": "4221df7f13552d3efd33", + "url": "/static/js/97.c06f516b.chunk.js" + }, + { + "revision": "52c0127fa893def5d8dd", + "url": "/static/js/98.732e6d2c.chunk.js" + }, + { + "revision": "05d5e41e6fd0b3b4712f", + "url": "/static/js/99.f11f66e4.chunk.js" + }, + { + "revision": "d8dadc6ef6047d2d9fa3", + "url": "/static/js/main.3cda9c91.chunk.js" + }, + { + "revision": "1cc95cc9241b966e999a", + "url": "/static/js/runtime-main.901d17b4.js" + }, + { + "revision": "e136c267bb82792719c0a8052b961dcf", + "url": "/static/media/gitconvex.e136c267.png" + } +]); \ No newline at end of file diff --git a/build/service-worker.js b/build/service-worker.js index 61eeb997..6ebad815 100644 --- a/build/service-worker.js +++ b/build/service-worker.js @@ -14,7 +14,7 @@ importScripts("https://storage.googleapis.com/workbox-cdn/releases/4.3.1/workbox-sw.js"); importScripts( - "/precache-manifest.e1bbddb8544e4745122347aad496095c.js" + "/precache-manifest.2e554d5fc8b1a6e8853c670d6bf4084c.js" ); self.addEventListener('message', (event) => { diff --git a/build/static/js/main.3cda9c91.chunk.js b/build/static/js/main.3cda9c91.chunk.js new file mode 100644 index 00000000..040f753d --- /dev/null +++ b/build/static/js/main.3cda9c91.chunk.js @@ -0,0 +1,2 @@ +(this.webpackJsonpgitconvex=this.webpackJsonpgitconvex||[]).push([[0],{42:function(e,t,a){},45:function(e,t,a){e.exports=a(77)},50:function(e,t,a){},74:function(e,t,a){var n={"./prism-abap.js":[78,3],"./prism-abap.min.js":[79,4],"./prism-abnf.js":[80,5],"./prism-abnf.min.js":[81,6],"./prism-actionscript.js":[82,7],"./prism-actionscript.min.js":[83,8],"./prism-ada.js":[84,9],"./prism-ada.min.js":[85,10],"./prism-antlr4.js":[86,11],"./prism-antlr4.min.js":[87,12],"./prism-apacheconf.js":[88,13],"./prism-apacheconf.min.js":[89,14],"./prism-apl.js":[90,15],"./prism-apl.min.js":[91,16],"./prism-applescript.js":[92,17],"./prism-applescript.min.js":[93,18],"./prism-aql.js":[94,19],"./prism-aql.min.js":[95,20],"./prism-arduino.js":[96,21],"./prism-arduino.min.js":[97,22],"./prism-arff.js":[98,23],"./prism-arff.min.js":[99,24],"./prism-asciidoc.js":[100,25],"./prism-asciidoc.min.js":[101,26],"./prism-asm6502.js":[102,27],"./prism-asm6502.min.js":[103,28],"./prism-aspnet.js":[104,29],"./prism-aspnet.min.js":[105,30],"./prism-autohotkey.js":[106,31],"./prism-autohotkey.min.js":[107,32],"./prism-autoit.js":[108,33],"./prism-autoit.min.js":[109,34],"./prism-bash.js":[110,35],"./prism-bash.min.js":[111,36],"./prism-basic.js":[112,37],"./prism-basic.min.js":[113,38],"./prism-batch.js":[114,39],"./prism-batch.min.js":[115,40],"./prism-bbcode.js":[116,41],"./prism-bbcode.min.js":[117,42],"./prism-bison.js":[118,43],"./prism-bison.min.js":[119,44],"./prism-bnf.js":[120,45],"./prism-bnf.min.js":[121,46],"./prism-brainfuck.js":[122,47],"./prism-brainfuck.min.js":[123,48],"./prism-brightscript.js":[124,49],"./prism-brightscript.min.js":[125,50],"./prism-bro.js":[126,51],"./prism-bro.min.js":[127,52],"./prism-c.js":[128,53],"./prism-c.min.js":[129,54],"./prism-cil.js":[130,55],"./prism-cil.min.js":[131,56],"./prism-clike.js":[132,57],"./prism-clike.min.js":[133,58],"./prism-clojure.js":[134,59],"./prism-clojure.min.js":[135,60],"./prism-cmake.js":[136,61],"./prism-cmake.min.js":[137,62],"./prism-coffeescript.js":[138,63],"./prism-coffeescript.min.js":[139,64],"./prism-concurnas.js":[140,65],"./prism-concurnas.min.js":[141,66],"./prism-core.js":[142,67],"./prism-core.min.js":[143,68],"./prism-cpp.js":[144,69],"./prism-cpp.min.js":[145,70],"./prism-crystal.js":[146,71],"./prism-crystal.min.js":[147,72],"./prism-csharp.js":[148,73],"./prism-csharp.min.js":[149,74],"./prism-csp.js":[150,75],"./prism-csp.min.js":[151,76],"./prism-css-extras.js":[152,77],"./prism-css-extras.min.js":[153,78],"./prism-css.js":[154,79],"./prism-css.min.js":[155,80],"./prism-d.js":[156,81],"./prism-d.min.js":[157,82],"./prism-dart.js":[158,83],"./prism-dart.min.js":[159,84],"./prism-dax.js":[160,85],"./prism-dax.min.js":[161,86],"./prism-diff.js":[162,87],"./prism-diff.min.js":[163,88],"./prism-django.js":[164,89],"./prism-django.min.js":[165,90],"./prism-dns-zone-file.js":[166,91],"./prism-dns-zone-file.min.js":[167,92],"./prism-docker.js":[168,93],"./prism-docker.min.js":[169,94],"./prism-ebnf.js":[170,95],"./prism-ebnf.min.js":[171,96],"./prism-eiffel.js":[172,97],"./prism-eiffel.min.js":[173,98],"./prism-ejs.js":[174,99],"./prism-ejs.min.js":[175,100],"./prism-elixir.js":[176,101],"./prism-elixir.min.js":[177,102],"./prism-elm.js":[178,103],"./prism-elm.min.js":[179,104],"./prism-erb.js":[180,105],"./prism-erb.min.js":[181,106],"./prism-erlang.js":[182,107],"./prism-erlang.min.js":[183,108],"./prism-etlua.js":[184,109],"./prism-etlua.min.js":[185,110],"./prism-excel-formula.js":[186,111],"./prism-excel-formula.min.js":[187,112],"./prism-factor.js":[188,113],"./prism-factor.min.js":[189,114],"./prism-firestore-security-rules.js":[190,115],"./prism-firestore-security-rules.min.js":[191,116],"./prism-flow.js":[192,117],"./prism-flow.min.js":[193,118],"./prism-fortran.js":[194,119],"./prism-fortran.min.js":[195,120],"./prism-fsharp.js":[196,121],"./prism-fsharp.min.js":[197,122],"./prism-ftl.js":[198,123],"./prism-ftl.min.js":[199,124],"./prism-gcode.js":[200,125],"./prism-gcode.min.js":[201,126],"./prism-gdscript.js":[202,127],"./prism-gdscript.min.js":[203,128],"./prism-gedcom.js":[204,129],"./prism-gedcom.min.js":[205,130],"./prism-gherkin.js":[206,131],"./prism-gherkin.min.js":[207,132],"./prism-git.js":[208,133],"./prism-git.min.js":[209,134],"./prism-glsl.js":[210,135],"./prism-glsl.min.js":[211,136],"./prism-gml.js":[212,137],"./prism-gml.min.js":[213,138],"./prism-go.js":[214,139],"./prism-go.min.js":[215,140],"./prism-graphql.js":[216,141],"./prism-graphql.min.js":[217,142],"./prism-groovy.js":[218,143],"./prism-groovy.min.js":[219,144],"./prism-haml.js":[220,145],"./prism-haml.min.js":[221,146],"./prism-handlebars.js":[222,147],"./prism-handlebars.min.js":[223,148],"./prism-haskell.js":[224,149],"./prism-haskell.min.js":[225,150],"./prism-haxe.js":[226,151],"./prism-haxe.min.js":[227,152],"./prism-hcl.js":[228,153],"./prism-hcl.min.js":[229,154],"./prism-hpkp.js":[230,155],"./prism-hpkp.min.js":[231,156],"./prism-hsts.js":[232,157],"./prism-hsts.min.js":[233,158],"./prism-http.js":[234,159],"./prism-http.min.js":[235,160],"./prism-ichigojam.js":[236,161],"./prism-ichigojam.min.js":[237,162],"./prism-icon.js":[238,163],"./prism-icon.min.js":[239,164],"./prism-inform7.js":[240,165],"./prism-inform7.min.js":[241,166],"./prism-ini.js":[242,167],"./prism-ini.min.js":[243,168],"./prism-io.js":[244,169],"./prism-io.min.js":[245,170],"./prism-j.js":[246,171],"./prism-j.min.js":[247,172],"./prism-java.js":[248,173],"./prism-java.min.js":[249,174],"./prism-javadoc.js":[250,175],"./prism-javadoc.min.js":[251,176],"./prism-javadoclike.js":[252,177],"./prism-javadoclike.min.js":[253,178],"./prism-javascript.js":[254,179],"./prism-javascript.min.js":[255,180],"./prism-javastacktrace.js":[256,181],"./prism-javastacktrace.min.js":[257,182],"./prism-jolie.js":[258,183],"./prism-jolie.min.js":[259,184],"./prism-jq.js":[260,185],"./prism-jq.min.js":[261,186],"./prism-js-extras.js":[262,187],"./prism-js-extras.min.js":[263,188],"./prism-js-templates.js":[264,189],"./prism-js-templates.min.js":[265,190],"./prism-jsdoc.js":[266,191],"./prism-jsdoc.min.js":[267,192],"./prism-json.js":[268,193],"./prism-json.min.js":[269,194],"./prism-json5.js":[270,195],"./prism-json5.min.js":[271,196],"./prism-jsonp.js":[272,197],"./prism-jsonp.min.js":[273,198],"./prism-jsx.js":[274,199],"./prism-jsx.min.js":[275,200],"./prism-julia.js":[276,201],"./prism-julia.min.js":[277,202],"./prism-keyman.js":[278,203],"./prism-keyman.min.js":[279,204],"./prism-kotlin.js":[280,205],"./prism-kotlin.min.js":[281,206],"./prism-latex.js":[282,207],"./prism-latex.min.js":[283,208],"./prism-latte.js":[284,209],"./prism-latte.min.js":[285,210],"./prism-less.js":[286,211],"./prism-less.min.js":[287,212],"./prism-lilypond.js":[288,213],"./prism-lilypond.min.js":[289,214],"./prism-liquid.js":[290,215],"./prism-liquid.min.js":[291,216],"./prism-lisp.js":[292,217],"./prism-lisp.min.js":[293,218],"./prism-livescript.js":[294,219],"./prism-livescript.min.js":[295,220],"./prism-llvm.js":[296,221],"./prism-llvm.min.js":[297,222],"./prism-lolcode.js":[298,223],"./prism-lolcode.min.js":[299,224],"./prism-lua.js":[300,225],"./prism-lua.min.js":[301,226],"./prism-makefile.js":[302,227],"./prism-makefile.min.js":[303,228],"./prism-markdown.js":[304,229],"./prism-markdown.min.js":[305,230],"./prism-markup-templating.js":[306,231],"./prism-markup-templating.min.js":[307,232],"./prism-markup.js":[308,233],"./prism-markup.min.js":[309,234],"./prism-matlab.js":[310,235],"./prism-matlab.min.js":[311,236],"./prism-mel.js":[312,237],"./prism-mel.min.js":[313,238],"./prism-mizar.js":[314,239],"./prism-mizar.min.js":[315,240],"./prism-monkey.js":[316,241],"./prism-monkey.min.js":[317,242],"./prism-moonscript.js":[318,243],"./prism-moonscript.min.js":[319,244],"./prism-n1ql.js":[320,245],"./prism-n1ql.min.js":[321,246],"./prism-n4js.js":[322,247],"./prism-n4js.min.js":[323,248],"./prism-nand2tetris-hdl.js":[324,249],"./prism-nand2tetris-hdl.min.js":[325,250],"./prism-nasm.js":[326,251],"./prism-nasm.min.js":[327,252],"./prism-neon.js":[328,253],"./prism-neon.min.js":[329,254],"./prism-nginx.js":[330,255],"./prism-nginx.min.js":[331,256],"./prism-nim.js":[332,257],"./prism-nim.min.js":[333,258],"./prism-nix.js":[334,259],"./prism-nix.min.js":[335,260],"./prism-nsis.js":[336,261],"./prism-nsis.min.js":[337,262],"./prism-objectivec.js":[338,263],"./prism-objectivec.min.js":[339,264],"./prism-ocaml.js":[340,265],"./prism-ocaml.min.js":[341,266],"./prism-opencl.js":[342,267],"./prism-opencl.min.js":[343,268],"./prism-oz.js":[344,269],"./prism-oz.min.js":[345,270],"./prism-parigp.js":[346,271],"./prism-parigp.min.js":[347,272],"./prism-parser.js":[348,273],"./prism-parser.min.js":[349,274],"./prism-pascal.js":[350,275],"./prism-pascal.min.js":[351,276],"./prism-pascaligo.js":[352,277],"./prism-pascaligo.min.js":[353,278],"./prism-pcaxis.js":[354,279],"./prism-pcaxis.min.js":[355,280],"./prism-perl.js":[356,281],"./prism-perl.min.js":[357,282],"./prism-php-extras.js":[358,283],"./prism-php-extras.min.js":[359,284],"./prism-php.js":[360,285],"./prism-php.min.js":[361,286],"./prism-phpdoc.js":[362,287],"./prism-phpdoc.min.js":[363,288],"./prism-plsql.js":[364,289],"./prism-plsql.min.js":[365,290],"./prism-powerquery.js":[366,291],"./prism-powerquery.min.js":[367,292],"./prism-powershell.js":[368,293],"./prism-powershell.min.js":[369,294],"./prism-processing.js":[370,295],"./prism-processing.min.js":[371,296],"./prism-prolog.js":[372,297],"./prism-prolog.min.js":[373,298],"./prism-properties.js":[374,299],"./prism-properties.min.js":[375,300],"./prism-protobuf.js":[376,301],"./prism-protobuf.min.js":[377,302],"./prism-pug.js":[378,303],"./prism-pug.min.js":[379,304],"./prism-puppet.js":[380,305],"./prism-puppet.min.js":[381,306],"./prism-pure.js":[382,307],"./prism-pure.min.js":[383,308],"./prism-python.js":[384,309],"./prism-python.min.js":[385,310],"./prism-q.js":[386,311],"./prism-q.min.js":[387,312],"./prism-qml.js":[388,313],"./prism-qml.min.js":[389,314],"./prism-qore.js":[390,315],"./prism-qore.min.js":[391,316],"./prism-r.js":[392,317],"./prism-r.min.js":[393,318],"./prism-reason.js":[394,319],"./prism-reason.min.js":[395,320],"./prism-regex.js":[396,321],"./prism-regex.min.js":[397,322],"./prism-renpy.js":[398,323],"./prism-renpy.min.js":[399,324],"./prism-rest.js":[400,325],"./prism-rest.min.js":[401,326],"./prism-rip.js":[402,327],"./prism-rip.min.js":[403,328],"./prism-roboconf.js":[404,329],"./prism-roboconf.min.js":[405,330],"./prism-robotframework.js":[406,331],"./prism-robotframework.min.js":[407,332],"./prism-ruby.js":[408,333],"./prism-ruby.min.js":[409,334],"./prism-rust.js":[410,335],"./prism-rust.min.js":[411,336],"./prism-sas.js":[412,337],"./prism-sas.min.js":[413,338],"./prism-sass.js":[414,339],"./prism-sass.min.js":[415,340],"./prism-scala.js":[416,341],"./prism-scala.min.js":[417,342],"./prism-scheme.js":[418,343],"./prism-scheme.min.js":[419,344],"./prism-scss.js":[420,345],"./prism-scss.min.js":[421,346],"./prism-shell-session.js":[422,347],"./prism-shell-session.min.js":[423,348],"./prism-smalltalk.js":[424,349],"./prism-smalltalk.min.js":[425,350],"./prism-smarty.js":[426,351],"./prism-smarty.min.js":[427,352],"./prism-solidity.js":[428,353],"./prism-solidity.min.js":[429,354],"./prism-solution-file.js":[430,355],"./prism-solution-file.min.js":[431,356],"./prism-soy.js":[432,357],"./prism-soy.min.js":[433,358],"./prism-sparql.js":[434,359],"./prism-sparql.min.js":[435,360],"./prism-splunk-spl.js":[436,361],"./prism-splunk-spl.min.js":[437,362],"./prism-sqf.js":[438,363],"./prism-sqf.min.js":[439,364],"./prism-sql.js":[440,365],"./prism-sql.min.js":[441,366],"./prism-stylus.js":[442,367],"./prism-stylus.min.js":[443,368],"./prism-swift.js":[444,369],"./prism-swift.min.js":[445,370],"./prism-t4-cs.js":[446,371],"./prism-t4-cs.min.js":[447,372],"./prism-t4-templating.js":[448,373],"./prism-t4-templating.min.js":[449,374],"./prism-t4-vb.js":[450,375],"./prism-t4-vb.min.js":[451,376],"./prism-tap.js":[452,377],"./prism-tap.min.js":[453,378],"./prism-tcl.js":[454,379],"./prism-tcl.min.js":[455,380],"./prism-textile.js":[456,381],"./prism-textile.min.js":[457,382],"./prism-toml.js":[458,383],"./prism-toml.min.js":[459,384],"./prism-tsx.js":[460,385],"./prism-tsx.min.js":[461,386],"./prism-tt2.js":[462,387],"./prism-tt2.min.js":[463,388],"./prism-turtle.js":[464,389],"./prism-turtle.min.js":[465,390],"./prism-twig.js":[466,391],"./prism-twig.min.js":[467,392],"./prism-typescript.js":[468,393],"./prism-typescript.min.js":[469,394],"./prism-vala.js":[470,395],"./prism-vala.min.js":[471,396],"./prism-vbnet.js":[472,397],"./prism-vbnet.min.js":[473,398],"./prism-velocity.js":[474,399],"./prism-velocity.min.js":[475,400],"./prism-verilog.js":[476,401],"./prism-verilog.min.js":[477,402],"./prism-vhdl.js":[478,403],"./prism-vhdl.min.js":[479,404],"./prism-vim.js":[480,405],"./prism-vim.min.js":[481,406],"./prism-visual-basic.js":[482,407],"./prism-visual-basic.min.js":[483,408],"./prism-wasm.js":[484,409],"./prism-wasm.min.js":[485,410],"./prism-wiki.js":[486,411],"./prism-wiki.min.js":[487,412],"./prism-xeora.js":[488,413],"./prism-xeora.min.js":[489,414],"./prism-xojo.js":[490,415],"./prism-xojo.min.js":[491,416],"./prism-xquery.js":[492,417],"./prism-xquery.min.js":[493,418],"./prism-yaml.js":[494,419],"./prism-yaml.min.js":[495,420],"./prism-zig.js":[496,421],"./prism-zig.min.js":[497,422]};function r(e){if(!a.o(n,e))return Promise.resolve().then((function(){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}));var t=n[e],r=t[0];return a.e(t[1]).then((function(){return a.t(r,7)}))}r.keys=function(){return Object.keys(n)},r.id=74,e.exports=r},75:function(e,t,a){},76:function(e,t,a){},77:function(e,t,a){"use strict";a.r(t);var n=a(0),r=a.n(n),s=a(43),o=a.n(s),i=a(1),l=a(7),c=a(19),m=(a(50),a(3)),d=a.n(m),u=r.a.createContext({hcDone:!1,platform:"",git:"",node:"",globalRepoId:"",hcParams:{},presentRepo:[],modifiedGitFiles:[],gitUntrackedFiles:[],gitTrackedFiles:[]});console.log("production");var p=window.location.port,g="".concat("http","://").concat(window.location.hostname,":").concat(p,"/").concat("gitconvexapi"),f=a(510),b=a(511),x=a(512);function h(e){var t=[{link:"/dashboard/repository",icon:r.a.createElement(f.a,{style:{color:"grey",fontSize:"36px"}}),label:"Repositories"},{link:"/dashboard/settings",icon:r.a.createElement(b.a,{style:{color:"grey",fontSize:"36px"}}),label:"Settings"},{link:"/dashboard/help",icon:r.a.createElement(x.a,{style:{color:"grey",fontSize:"36px"}}),label:"Help"}];return r.a.createElement("div",{className:"dashboard-leftpane xl:block lg:block md:flex md:justify-between bg-white overflow-auto xl:w-1/4 lg:w-1/3 md:w-full top-0 left-0 right-0 shadow-md block p-3 bg-white-400"},r.a.createElement("div",{className:"flex justify-center items-center bg-blue-100 cursor-pointer",onClick:function(t){e.parentProps.history.push("/dashboard")}},r.a.createElement("div",{className:"block dashboard-leftpane__logo"}),r.a.createElement("div",{className:"font-mono xl:text-3xl lg:text-2xl md:text-3xl sm:text-2xl p-4"},r.a.createElement("span",{className:"font-bold mx-2 border-b-4 border-pink-400"},"Git"),"Convex")),r.a.createElement("div",{className:"xl:mt-32 lg:mt-24 cursor-pointer xl:block lg:block md:flex sm:block items-center align-middle"},t.map((function(e){return r.a.createElement(c.b,{to:"".concat(e.link),exact:!0,activeClassName:"bg-gray-300",className:"flex border-b border-black-100 p-3 hover:bg-gray-100 mx-2",key:e.label},r.a.createElement("div",{className:"flex align-middle items-center my-auto"},r.a.createElement("div",{className:"text-sm"},e.icon),r.a.createElement("div",{className:"ml-2 xl:text-2xl lg:text-2xl md:text-xl text-gray-700"},e.label)))}))))}function j(e){var t=Object(n.useContext)(u),a=t.state,s=t.dispatch,o=Object(n.useState)(""),l=Object(i.a)(o,2),c=l[0],m=l[1],p=Object(n.useState)(""),f=Object(i.a)(p,2),b=f[0],x=f[1],h=Object(n.useState)(!1),j=Object(i.a)(h,2),v=j[0],E=j[1],y=Object(n.useState)(!1),w=Object(i.a)(y,2),N=w[0],k=w[1],O=Object(n.useRef)(),C=Object(n.useRef)(),S=Object(n.useRef)();function T(){E(!1),k(!1)}return r.a.createElement("div",{className:"block text-center justify-center my-20 p-6 rounded-lg shadow-md border-2 border-gray-200 xl:w-1/2 lg:w-2/3 md:w-3/4 sm:w-11/12 w-11/12 mx-auto"},r.a.createElement("div",{className:"repo-form block"},N?r.a.createElement("div",{className:"my-6 mx-auto block p-3 w-1/2 rounded-lg shadow-sm border border-green-500 bg-green-200 text-xl text-green-800 text-center"},"New repo added"):v?r.a.createElement("div",{className:"my-6 mx-auto block p-3 w-1/2 rounded-lg shadow-sm border border-red-500 bg-red-200 text-xl text-red-800 text-center"},"Process failed! Please try again"):null,r.a.createElement("div",{className:"my-3 text-center block text-3xl font-sans text-gray-800"},"Enter Repo Details"),r.a.createElement("div",null,r.a.createElement("input",{id:"repoNameText",type:"text",placeholder:"Enter a Repository Name",className:"w-11/12 p-3 my-3 rounded-md outline-none border-blue-100 border-2 shadow-md",onChange:function(e){m(e.target.value)},ref:O,onClick:function(){T()}})),r.a.createElement("div",null,r.a.createElement("input",{id:"repoPathText",type:"text",placeholder:"Enter repository path",className:"w-11/12 p-3 my-3 rounded-md outline-none border-blue-100 border-2 shadow-md",onChange:function(e){x(e.target.value)},ref:C,onClick:function(){T()}})),r.a.createElement("div",{className:"cursor-pointer my-4"},r.a.createElement("input",{id:"initCheck",type:"checkbox",value:"initRepo",ref:S}),r.a.createElement("label",{htmlFor:"initCheck",className:"mx-2 text-gray-700 font-sans font-semibold"},"Check this if the folder is not a git repo")),r.a.createElement("div",{className:"flex w-11/12 justify-start mx-auto my-5 cursor-pointer"},r.a.createElement("div",{className:"my-2 w-1/2 block mx-3 p-3 bg-red-400 rounded-md shadow-md hover:bg-red-500",id:"addRepoClose",onClick:function(){e.formEnable(!1)}},"Close"),r.a.createElement("div",{className:"block w-1/2 mx-3 p-3 my-2 bg-green-400 rounded-md shadow-md hover:bg-green-500",id:"addRepoSubmit",onClick:function(){!function(e,t){if(e&&t){var n=!1;S.current.checked&&(n=!0);var r=JSON.stringify(JSON.stringify({repoName:e,repoPath:t,initCheck:n}));d()({url:g,method:"POST",data:{query:'\n query GitConvexApi{\n gitConvexApi(route: "'.concat("ADD_REPO",'", payload: ').concat(r,"){\n addRepo{\n message\n }\n }\n }\n ")}}).then((function(e){if(e.data&&e.data.data&&!e.data.error){var t=e.data.data.gitConvexApi.addRepo.message;t&&!t.match(/FAIL/g)?(k(!0),E(!1),O.current.value="",C.current.value="",S.current.value="",s({action:"DELETE_PRESENT_REPO",payload:[]}),console.log(a.presentRepo)):(E(!0),k(!1))}else E(!0),k(!1)})).catch((function(e){console.log(e),E(!0),k(!1)}))}else E(!0)}(c,b)}},"Submit"))))}var v=a(8),E=a(11),y=a(14),w=a(6);function N(e){v.b.add(E.a,y.a);var t=e.repoData,a=Object(n.useState)(""),s=Object(i.a)(a,2),o=s[0],l=s[1];Object(n.useEffect)((function(){var t=e.repoData.id,a=JSON.stringify(JSON.stringify({repoId:t})),n=d.a.CancelToken.source();return d()({url:g,method:"POST",headers:{"Content-type":"application/json"},cancelToken:n.token,data:{query:'\n \n query GitConvexApi\n {\n gitConvexApi(route: "'.concat("REPO_DETAILS",'", payload: ').concat(a,"){\n gitRepoStatus {\n gitTotalCommits\n gitTotalTrackedFiles \n gitCurrentBranch \n }\n }\n }\n ")}}).then((function(e){l(e.data.data.gitConvexApi.gitRepoStatus)})).catch((function(e){})),function(){n.cancel()}}),[e]);var m=t.repoName,u="";if(m)if(m.split(" ").length>1){var p=m.split(" ");u=(u=p[0].substring(0,1)+p[1].substring(0,1)).toUpperCase()}else u=m.substring(0,1).toUpperCase();return r.a.createElement(c.b,{to:"/dashboard/repository/".concat(t.id),className:"xl:w-1/3 lg:w-2/4 md:w-1/2 block p-6 mx-6 rounded-lg border border-gray-300 shadow-md my-6 text-center bg-indigo-500 cursor-pointer hover:shadow-xl",key:t.repoName},r.a.createElement("div",{className:"text-center bg-indigo-300 text-white text-5xl my-2 px-10 py-5 rounded shadow"},u),r.a.createElement("div",{className:"my-4 font-sans text-2xl text-white border-dashed border-b-2 pb-2 border-indigo-300"},t.repoName),r.a.createElement("div",{className:"w-full flex justify-center mx-auto my-2 text-center rounded-md shadow-sm align-middle"},r.a.createElement("div",{className:"w-1/2 flex p-2 bg-white shadow-lg border-indigo-300 rounded-l-md my-2 items-center"},r.a.createElement(w.a,{className:"my-auto",icon:["fas","grip-lines"]}),r.a.createElement("div",{className:"mx-2 text-sm text-center font-sans text-center"},o.gitTotalCommits," Commits")),r.a.createElement("div",{className:"w-1/2 flex p-2 bg-white shadow-lg border-indigo-300 my-2 items-center"},r.a.createElement(w.a,{className:"my-auto",icon:["fas","file-alt"]}),r.a.createElement("div",{className:"mx-2 text-sm text-center font-sans text-center"},o.gitTotalTrackedFiles," Tracked Files")),r.a.createElement("div",{className:"w-1/2 flex p-2 bg-white shadow-lg border-indigo-300 rounded-r-md my-2 items-center"},r.a.createElement(w.a,{className:"my-auto",icon:["fas","code-branch"]}),r.a.createElement("div",{className:"mx-2 text-sm text-center font-sans text-center font-semibold"},o.gitCurrentBranch))))}function k(e){var t=Object(n.useState)([]),a=Object(i.a)(t,2),s=a[0],o=a[1],l=Object(n.useState)(!1),c=Object(i.a)(l,2),m=c[0],p=c[1],f=Object(n.useContext)(u).dispatch;Object(n.useEffect)((function(){var e=g,t=d.a.CancelToken.source();return d()({url:e,method:"POST",cancelToken:t.token,data:{query:'\n query GitConvexResults{\n gitConvexApi(route: "'.concat("FETCH_REPO",'"){\n fetchRepo{\n repoId\n repoName\n repoPath\n }\n }\n }\n ')}}).then((function(e){var t=e.data.data.gitConvexApi.fetchRepo;if(t){var a=t.repoId,n=t.repoName,r=[];a.forEach((function(e,t){r.push({id:e,repoName:n[t]})})),o(r),f({type:"DELETE_PRESENT_REPO",payload:[]}),f({action:"PRESENT_REPO",payload:[].concat(r)})}})),function(){t.cancel()}}),[m,f]);return r.a.createElement("div",{className:"flex flex-wrap mx-auto justify-center text-center align-middle"},m?r.a.createElement(j,{formEnable:function(e){p(e)}}):function(){var e=s;return r.a.createElement(r.a.Fragment,null,r.a.createElement("div",{className:"w-full mx-auto justify-around flex flex-wrap pb-40"},r.a.createElement(r.a.Fragment,null,e.length>0?r.a.createElement(r.a.Fragment,null,e.map((function(e){return r.a.createElement(N,{key:e.id,repoData:e})}))):r.a.createElement("div",{className:"mx-auto w-3/4 rounded-md text-center shadow bg-gray-200 text-gray-500 font-sans p-10 my-10 text-xl"},"No repos present. Press + to add a new repo"))),r.a.createElement(r.a.Fragment,null,r.a.createElement("div",{id:"addRepoButton",className:"fixed bottom-0 right-0 mb-10 mr-16 cursor-pointer border-2 border-indigo-100 shadow-lg bg-indigo-500 hover:bg-indigo-400 rounded-full h-16 w-16 pb-1 flex items-center justify-center text-3xl text-white font-sans font-black",onClick:function(){p(!0)},onMouseEnter:function(e){e.stopPropagation(),e.preventDefault();e.target.innerHTML+='
Click to add a new repo
'},onMouseLeave:function(e){e.target.innerHTML="+"}},"+")))}())}function O(e){var t=e.params,a=t.platform,n=t.gitVersion,s=t.nodeVersion,o=[{label:"Platform",value:a},{label:"Git",value:n},{label:"Node",value:s}];return r.a.createElement(r.a.Fragment,null,r.a.createElement("div",{className:"dashboard-rightpane w-full mx-auto justify-center xl:overflow-auto lg:overflow-auto md:overflow-none sm:overflow-none"},r.a.createElement("div",{className:"w-11/12 p-3 my-6 mx-auto rounded-lg shadow-md xl:flex lg:flex md:block sm:block rightpane-details block justify-between mx-auto bg-blue-100 border-2 border-blue-100"},o.map((function(e){return r.a.createElement("div",{key:e.label,className:"my-2 flex mx-auto justify-around items-center align-middle"},r.a.createElement("div",{className:"w-1/2 rightpane-details__header border-b-2 border-dashed mx-2 font-sans xl:font-bold lg:font-semibold md:font-medium xl:text-2xl lg:text-xl md:text-md"},e.label),""!==e.value?r.a.createElement("div",{className:"w-2/3 mx-2 bg-green-200 border-green-800 text-center text-green-900 p-2 rounded-lg hc-param",id:"hc-param__".concat(e.label)},e.value):r.a.createElement("div",{className:"rounded-md bg-red-200 text-red-900 font-bold p-2"},"Invalid"))}))),function(){if(a&&n&&s)return r.a.createElement(k,{parentProps:e})}()))}function C(){return v.b.add(y.a,E.a),r.a.createElement("div",{className:"w-full h-full pb-10 xl:overflow-auto lg:overflow-auto md:overflow-none sm:overflow-none"},r.a.createElement("div",{className:"flex text-5xl text-gray-700 mx-6 my-auto align-middle items-center"},r.a.createElement(w.a,{icon:["fas","question-circle"]}),r.a.createElement("div",{className:"my-5 mx-5 font-sans"},"Help and Support")),r.a.createElement("div",{className:"my-4 mx-10"},r.a.createElement("div",{className:"text-2xl font-sans text-gray-900"},"Facing an issue or need any help?"),r.a.createElement("span",{className:"text-xl font-medium my-2"},"Before raising an issue, make sure you have gone through the"),r.a.createElement("span",{className:"font-mono text-xl mx-2 text-indigo-500 hover:text-indigo-600 hover:font-semibold cursor-pointer"},r.a.createElement("a",{href:"https://github.com/neel1996/gitconvex-package/blob/master/documentation",target:"_blank",rel:"noopener noreferrer"},"Documentation"))),r.a.createElement("div",{className:"my-10 border rounded shadow-sm p-4 mx-10"},r.a.createElement("div",{className:"text-2xl font-sans font-semibold text-indigo-800"},"Have any queries or want to share your feedback?"),r.a.createElement("div",{className:"flex mx-auto my-2 items-center align-middle"},r.a.createElement("div",{className:"text-gray-800 text-2xl font-sans"},"Lets have a discussion on"),r.a.createElement("a",{href:"https://discord.gg/PSd2Cq9",target:"_blank",rel:"noopener noreferrer"},r.a.createElement("div",{className:"flex mx-2 justify-around align-middle items-center bg-indigo-400 text-white p-2 rounded shadow-sm text-2xl cursor-pointer hover:bg-indigo-500"},r.a.createElement(w.a,{icon:["fab","discord"]}),r.a.createElement("div",{className:"mx-3 font-sans font-black"},"discord"))))),r.a.createElement("div",{className:"my-10 border rounded shadow-sm p-4 mx-10"},r.a.createElement("div",{className:"text-2xl font-sans font-semibold text-gray-600"},"You can also use the github issue reporting feature to report any issue you find in the platform"),r.a.createElement("a",{href:"https://github.com/neel1996/gitconvex-package/issues",target:"_blank",rel:"noopener noreferrer"},r.a.createElement("div",{className:"flex w-1/3 xl:w-1/3 lg:w-1/3 md:w-1/2 sm:w-3/4 w-3/4 cursor-pointer hover:shadow-lg align-middle my-3 items-center p-3 bg-white shadow-md rounded border border-gray-500"},r.a.createElement(w.a,{icon:["fab","github"]}),r.a.createElement("div",{className:"mx-2"},"Report an issue")))),r.a.createElement("div",{className:"my-10 border rounded shadow-sm p-4 mx-10"},r.a.createElement("div",{className:"text-2xl font-sans font-semibold text-gray-600 my-5 break-normal"},"gitconvex is open source and please visit the repo if you are interested in contributing to the platform"),r.a.createElement("div",{className:"xl:flex lg:block md:block justify-center items-center align-middle"},r.a.createElement("a",{href:"https://github.com/neel1996/gitconvex",target:"_blank",rel:"noopener noreferrer",className:"mx-auto h-full flex w-3/4 xl:w-1/3 lg:w-1/3 md:w-1/2 sm:w-3/4 cursor-pointer hover:shadow-lg align-middle my-4 items-center bg-white shadow-md rounded border border-gray-500"},r.a.createElement("div",{className:"bg-blue-500 text-white p-1 text-5xl w-1/4 align-middle my-auto items-center text-center rounded-l"},r.a.createElement(w.a,{icon:["fab","react"]})),r.a.createElement("div",{className:"text-md mx-2 text-gray-700"},"gitconvex UI")),r.a.createElement("a",{href:"https://github.com/neel1996/gitconvex-server",target:"_blank",rel:"noopener noreferrer",className:"mx-auto h-full flex w-3/4 xl:w-1/3 lg:w-1/3 md:w-1/2 sm:w-3/4 cursor-pointer hover:shadow-lg align-middle my-4 items-center bg-white shadow-md rounded border border-gray-500"},r.a.createElement("div",{className:"bg-green-500 text-white p-1 text-5xl w-1/4 align-middle my-auto items-center text-center rounded-l"},r.a.createElement(w.a,{icon:["fab","node-js"]})),r.a.createElement("div",{className:"text-md mx-2 text-gray-700"},"gitconvex server")))))}var S=a(22),T=a.n(S),R=a(5),I=a(27),A=a(20),_=(a(42),a(513));function F(){var e=Object(n.useContext)(u),t=e.state,s=e.dispatch,o=t.globalRepoId,l=Object(n.useState)([]),c=Object(i.a)(l,2),m=c[0],p=c[1],f=Object(n.useState)("Click on a file item to see the difference"),b=Object(i.a)(f,2),x=b[0],h=b[1],j=Object(n.useState)([]),v=Object(i.a)(j,2),E=v[0],y=v[1],w=Object(n.useState)(""),N=Object(i.a)(w,2),k=N[0],O=N[1],C=Object(n.useState)(!1),S=Object(i.a)(C,2),F=S[0],P=S[1],D=Object(n.useState)(!1),L=Object(i.a)(D,2),q=L[0],G=L[1],M=Object(n.useState)(""),B=Object(i.a)(M,2),H=B[0],U=B[1],J=Object(n.useState)(""),V=Object(i.a)(J,2),z=V[0],K=V[1],Y={js:"javascript",java:"java",py:"python",c:"c",cpp:"cpp",go:"go",rust:"rust",ts:"typescript",dart:"dart",php:"php",html:"markup",json:"json",xml:"markup",yaml:"yaml",yml:"yaml",rb:"ruby",jsx:"jsx",kt:"kotlin",ktm:"kotlin",kts:"kotlin",cs:"csharp",vb:"visual-basic",css:"css"};Object(n.useEffect)((function(){var e=t.globalRepoId;G(!1),O(""),y("Click on a file item to see the difference"),h("Click on a file item to see the difference");var a=g;if(e){var n=JSON.stringify(JSON.stringify({repoId:e}));d()({url:a,method:"POST",headers:{"Content-type":"application/json"},data:{query:'\n query GitConvexApi{\n gitConvexApi(route: "'.concat("REPO_TRACKED_DIFF",'", payload:').concat(n,")\n {\n gitChanges{\n gitChangedFiles\n }\n }\n }\n ")}}).then((function(e){if(e&&e.data.data&&!e.data.error){var t=e.data.data.gitConvexApi.gitChanges.gitChangedFiles;p(Object(R.a)(t)),P(!0),s({type:"GIT_TRACKED_FILES",payload:t})}})).catch((function(e){return e}))}}),[t.globalRepoId,s]);var X=function(e){var t=e.split(".")[e.split(".").length-1];if(t)return G(!0),t in Y?Y[t]:"markup"};return r.a.createElement(r.a.Fragment,null,m&&m.length>0?r.a.createElement(r.a.Fragment,null,r.a.createElement("div",{className:"flex mx-auto w-full justify-center"},r.a.createElement("div",{className:"break-words p-2 py-2 bg-indigo-200 text-indigo-800 w-1/4 overflow-hidden"},r.a.createElement(r.a.Fragment,null,m.length>=1&&m.map((function(e){if(e&&"M"===e.split(",")[0]){var t=e.split(",")[1];return r.a.createElement("div",{className:"p-2 text-sm break-words hover:bg-indigo-100 cursor-pointer ".concat(t===k?" bg-indigo-100 border-b border-indigo-400":""),onClick:function(){O(t),function(e,t){var n=g;G(!1);var r=JSON.stringify(JSON.stringify({repoId:e,fileName:t}));d()({url:n,method:"POST",headers:{"Content-type":"application/json"},data:{query:'\n query GitConvexApi{\n gitConvexApi(route: "'.concat("REPO_FILE_DIFF",'", payload:').concat(r,")\n {\n gitFileLineChanges{\n diffStat\n fileDiff\n }\n }\n }\n ")}}).then(function(){var e=Object(I.a)(T.a.mark((function e(n){var r,s,o,i;return T.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!n.data.data||n.data.error){e.next=14;break}if(r=n.data.data.gitConvexApi.gitFileLineChanges,s=r.diffStat,o=r.fileDiff,"NO_STAT"!==s[0]&&"NO_DIFF"!==o[0]){e.next=6;break}U("No difference could be found. Please check if the file is present in the repo!"),e.next=12;break;case 6:return h(s[1]),y(o),i=X(t),e.next=11,a(74)("./prism-"+i+".js").then((function(){})).catch((function(e){console.log(e)}));case 11:K(i);case 12:e.next=15;break;case 14:U("Error while fetching the file difference. Please try reloading the view!");case 15:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()).catch((function(e){console.log(e),U("Error while fetching the file difference. Please try reloading the view!")}))}(o,t)},key:t},t)}return null})))),k?"":r.a.createElement("div",{className:"p-3 shadow-md rounded-sm text-center mx-auto my-auto mt-3 block text-md font-sans"},"Click on a file to see difference information"),H?r.a.createElement("div",{className:"text-center mx-auto my-4 p-4 rounded bg-yellow-300 border-yellow-800 font-sans font-medium my-auto"},H):null,x&&"Click on a file item to see the difference"!==x&&!H?r.a.createElement("div",{className:"p-2 break-all w-3/4 mx-auto"},x?function(){if(x&&x.includes(",")){var e=x.split(",");return r.a.createElement("div",{className:"text-xl text-center w-3/4 mx-auto block p-2 border border-gray-500 rounded-md shadow-md border-dotted"},r.a.createElement("span",{className:"font-sans font-bold px-1"},e[0]),e.slice(1,e.length).map((function(e){return e.match(/insert/i)?r.a.createElement("span",{key:"".concat(e,"-").concat((new Date).getTime())},r.a.createElement("span",{className:"px-2"},e.toString().split(" ")[1]),r.a.createElement("span",{className:"text-green-700 font-sans font-semibold"},"insertions (+)")):r.a.createElement("span",{key:"".concat(e,"-").concat((new Date).getTime())},r.a.createElement("span",{className:"px-2"},e.toString().split(" ")[1]),r.a.createElement("span",{className:"text-red-700 font-sans font-semibold"},"deletions (-)"))})))}}():"",E&&"Click on a file item to see the difference"!==E?r.a.createElement("div",{className:"p-2 py-6 mt-6 text-left break-words overflow-scroll"},function(){var e=[];return E&&E.join("").split(/@@.*@@/gi)&&q&&z&&(e=E.join("|__HASH_SEPARATOR__|").split(/@@.*@@/gi)[1].split("|__HASH_SEPARATOR__|").map((function(e){return"+"===e[0]?r.a.createElement("div",{className:"bg-green-200 w-screen",key:"".concat(e,"-").concat(Object(_.a)())},r.a.createElement("pre",null,r.a.createElement("code",{dangerouslySetInnerHTML:{__html:A.highlight(e.replace("+",""),A.languages[z],z)}}))):"-"===e[0]?r.a.createElement("div",{className:"bg-red-200 w-screen",key:"".concat(e,"-").concat(Object(_.a)())},r.a.createElement("pre",null,r.a.createElement("code",{dangerouslySetInnerHTML:{__html:A.highlight(e.replace("-",""),A.languages[z],z)}}))):r.a.createElement("div",{className:"bg-white-200 w-screen",key:"".concat(e,"-").concat(Object(_.a)())},r.a.createElement("pre",null,r.a.createElement("code",{dangerouslySetInnerHTML:{__html:A.highlight(e,A.languages[z],z)}})))}))),r.a.createElement("div",{className:"break-all my-6 mx-auto"},r.a.createElement("code",null,e))}()):""):"")):r.a.createElement(r.a.Fragment,null,F?r.a.createElement("div",{className:"my-3 mx-auto text-center p-3 rounded-md shadow-md bg-pink-200 text-gray-700"},r.a.createElement("span",null,"No Changed files are being tracked currently!")):null))}function P(e){var t=e.repoId,a=Object(n.useState)(!0),s=Object(i.a)(a,2),o=s[0],l=s[1],c=Object(n.useState)([]),m=Object(i.a)(c,2),u=m[0],p=m[1],f=Object(n.useState)(!1),b=Object(i.a)(f,2),x=b[0],h=b[1],j=Object(n.useState)(!1),v=Object(i.a)(j,2),E=v[0],y=v[1],w=Object(n.useState)(!1),N=Object(i.a)(w,2),k=N[0],O=N[1],C=Object(n.useRef)();return Object(n.useEffect)((function(){var t=JSON.stringify(JSON.stringify({repoId:e.repoId})),a=d.a.CancelToken.source();return d()({url:g,method:"POST",headers:{"Content-type":"application/json"},cancelToken:a.token,data:{query:'\n query GitConvexApi{\n gitConvexApi(route: "'.concat("GIT_STAGED_FILES",'", payload:').concat(t,")\n {\n gitStagedFiles{\n stagedFiles\n }\n }\n }\n ")}}).then((function(e){var t=e.data.data.gitConvexApi.gitStagedFiles.stagedFiles;l(!1),t&&t.length>0&&p(Object(R.a)(t))})).catch((function(e){l(!1)})),function(){a.cancel()}}),[e]),r.a.createElement("div",{className:"w-3/4 mx-auto my-auto bg-gray-200 p-6 rounded-md"},u&&u.length>0?function(){if(u&&u.length>0){var e=u.length;return r.a.createElement(r.a.Fragment,null,x?r.a.createElement("div",{className:"mx-auto my-2 p-3 bg-green-300 text-green-800 rounded- shadow"},"All changes are committed!"):r.a.createElement("div",{className:"p-3 mx-auto w-5/6 block justify-center"},r.a.createElement("div",{className:"text-2xl my-2 font-sans font-semibold"},e," Changes to commit..."),r.a.createElement("div",{className:"overflow-auto",style:{height:"300px"}},u.map((function(e){return r.a.createElement("div",{className:"m-1 mx-auto w-11/12 break-all border-b text-left font-sans text-gray-700",key:e},e)}))),r.a.createElement("div",{className:"text-xl my-4"},"Commit Message"),r.a.createElement("textarea",{className:"p-2 rounded-md shadow-md text-gray-900 font-sans w-full outline-none",placeholder:"Enter commit message",cols:"20",rows:"5",ref:C}),E?r.a.createElement("div",{className:"my-2 mx-auto text-center p-2 rounded shadow bg-red-200 border-red-400 text-red-800"},"Commit Failed!"):null,k?r.a.createElement("div",{className:"my-4 p-2 text-center mx-auto text-xl bg-gray-400 hover:bg-gray-700 rounded shadow w-full cursor-pointer text-white"},"Committing Changes..."):r.a.createElement("div",{className:"my-4 p-2 text-center mx-auto text-xl bg-green-400 hover:bg-green-700 rounded shadow w-full cursor-pointer text-white",onClick:function(e){var a=C.current.value;a?function(e){O(!0),e.split("\n")&&e.split("\n").length>0&&(e=e.toString().split("\n").join("||")),d()({url:g,method:"POST",data:{query:'\n mutation GitConvexMutation{\n commitChanges(repoId: "'.concat(t,'", commitMessage: "').concat(e,'")\n }\n ')}}).then((function(e){O(!1),e.data.data&&!e.data.error&&"COMMIT_DONE"===e.data.data.commitChanges?h(!0):y(!0)})).catch((function(e){O(!1),y(!0)}))}(a):alert("Commit message can't be empty")}},"Commit Changes")))}}():r.a.createElement("div",{className:"bg-orange-200 rounded-md shadow-md p-4 text-2xl font-sans text-center font-bold text-orange-700"},o?r.a.createElement("span",null,"Loading Commits..."):r.a.createElement("span",null,"No Staged files to commit")))}function D(e){var t=e.repoId,a=Object(n.useState)(),s=Object(i.a)(a,2),o=s[0],l=s[1],c=Object(n.useState)(!1),m=Object(i.a)(c,2),u=m[0],p=m[1],f=Object(n.useState)(!1),b=Object(i.a)(f,2),x=b[0],h=b[1],j=Object(n.useState)([]),v=Object(i.a)(j,2),E=v[0],y=v[1],w=Object(n.useState)(!1),N=Object(i.a)(w,2),k=N[0],O=N[1],C=Object(n.useState)(!1),S=Object(i.a)(C,2),T=S[0],I=S[1],A=Object(n.useState)(!1),_=Object(i.a)(A,2),F=_[0],P=_[1],D=Object(n.useState)(!1),L=Object(i.a)(D,2),q=L[0],G=L[1],M=Object(n.useRef)(),B=Object(n.useRef)();function H(e){var t=e.split("||");return r.a.createElement("div",{className:"block justify-evenly border shadow rounded p-2"},["Commit Hash","Commit Author","Commit Timestamp","Commit Message"].map((function(e,a){return n=e,s=t[a],r.a.createElement("div",{className:"flex justify-evenly",key:n},r.a.createElement("div",{className:"font-sans text-gray-900 font-bold mx-2 w-1/4 break-words"},n),r.a.createElement("div",{className:"font-sans text-gray-800 mx-2 w-1/2 break-words"},s));var n,s})))}return Object(n.useEffect)((function(){var t=JSON.stringify(JSON.stringify({repoId:e.repoId}));d()({url:g,method:"POST",headers:{"Content-type":"application/json"},data:{query:'\n query GitConvexApi\n {\n gitConvexApi(route: "'.concat("REPO_DETAILS",'", payload: ').concat(t,"){\n gitRepoStatus {\n gitRemoteData\n gitCurrentBranch\n gitRemoteHost\n gitBranchList \n }\n }\n }\n ")}}).then((function(e){var t=e.data.data.gitConvexApi.gitRepoStatus;l(t)})).catch((function(e){console.log(e)}))}),[e]),r.a.createElement(r.a.Fragment,null,T?r.a.createElement("div",{className:"w-1/2 mx-auto my-auto p-6 rounded shadow bg-white block"},r.a.createElement("div",{className:"mx-auto my-2 p-3 bg-green-300 text-green-800 rounded shadow"},"All commits are pushed to remote")):r.a.createElement(r.a.Fragment,null,r.a.createElement("div",{className:"w-3/4 mx-auto my-auto p-6 rounded shadow bg-white block"},r.a.createElement("div",{className:"m-3 text-2xl font-sans text-ghray-800"},"Available remote repos"),r.a.createElement("div",null,r.a.createElement("select",{className:"border p-3 my-4 text-xl rounded shadow",defaultValue:"checked",onChange:function(){p(!0)},ref:M},r.a.createElement("option",{disabled:!0,hidden:!0,value:"checked"},"Select the remote repo"),o?function(){if(o){var e=o.gitRemoteData;return e.includes("||")?e.split("||").map((function(e){return r.a.createElement("option",{value:e,key:e},e)})):r.a.createElement("option",null,e)}}():null)),u?r.a.createElement("div",null,r.a.createElement("select",{className:"border p-3 my-4 text-xl rounded shadow",defaultValue:"checked",onChange:function(){h(!0),function(){var t=JSON.stringify(JSON.stringify({repoId:e.repoId}));d()({url:g,method:"POST",data:{query:'\n query GitConvexApi\n {\n gitConvexApi(route: "'.concat("GIT_UNPUSHED_COMMITS",'", payload: ').concat(t,"){\n gitUnpushedCommits{\n commits\n }\n }\n }\n ")}}).then((function(e){if(e.data.data&&!e.data.error){var t=e.data.data.gitConvexApi.gitUnpushedCommits.commits;0===t.length&&O(!0),y(Object(R.a)(t))}})).catch((function(e){console.log(e)}))}()},ref:B},r.a.createElement("option",{disabled:!0,hidden:!0,value:"checked"},"Select upstream branch"),o?function(){if(o)return o.gitBranchList.map((function(e){return"NO_BRANCH"!==e?r.a.createElement("option",{value:e,key:e},e):null}))}():null)):null,E&&E.length>0?r.a.createElement("div",{className:"my-2 p-3 rounded bg-gray-300 shadow-md border-gray-100"},r.a.createElement("div",{className:"my-2 font-sans text-2xl font-semibold"},"Commits to be pushed"),r.a.createElement("div",{className:"overflow-auto",style:{height:"200px"}},E.map((function(e,t){return r.a.createElement("div",{key:"unpushed-commit-".concat(t),className:"my-2 border-b-2 block justify-evenly mx-auto"},H(e))})))):r.a.createElement("div",null),F?r.a.createElement(r.a.Fragment,null,r.a.createElement("div",{className:"my-2 mx-auto text-center p-2 rounded shadow bg-red-200 border-red-400 text-red-800"},"Push Failed!")):null,u&&x&&E.length>0&&!q?r.a.createElement("div",{className:"my-4 text-center bg-indigo-400 rounded shadow text-white text-xl font-sans p-2 mx-auto hover:bg-indigo-600 cursor-pointer",onClick:function(){var e,a,n=M.current.value,r=B.current.value;n&&r&&(e=n,a=r,G(!0),d()({url:g,method:"POST",data:{query:'\n mutation GitConvexMutation{\n pushToRemote(repoId: "'.concat(t,'", remoteHost: "').concat(e,'", branch: "').concat(a,'")\n }\n ')}}).then((function(e){e.data.data&&!e.data.error&&"PUSH_FAILED"!==e.data.data.pushToRemote?(I(!0),G(!1)):(P(!0),G(!1))})).catch((function(e){P(!0),G(!1)})))}},"Push changes"):r.a.createElement(r.a.Fragment,null,k?r.a.createElement("div",{className:"my-4 text-center bg-gray-500 rounded shadow text-white text-xl font-sans p-2 mx-auto hover:bg-gray-600 cursor-pointer"},"No Commits to Push"):null),r.a.createElement(r.a.Fragment,null,q?r.a.createElement("div",{className:"my-4 text-center border border-orange-800 text-orange-900 bg-orange-300 rounded shadow text-white text-xl font-sans p-2 mx-auto cursor-pointer"},"Pushing to remote..."):null))))}function L(e){var t=e.stageComponents,a=e.repoId,s=Object(n.useState)(!1),o=Object(i.a)(s,2),l=o[0],c=o[1],m=Object(n.useState)(!1),u=Object(i.a)(m,2),p=u[0],f=u[1],b=Object(n.useState)(!1),x=Object(i.a)(b,2),h=x[0],j=x[1];return Object(n.useEffect)((function(){}),[e]),r.a.createElement(r.a.Fragment,null,r.a.createElement("div",{className:"w-5/6 mx-auto my-auto bg-gray-200 p-6 rounded-md"},r.a.createElement(r.a.Fragment,null,t.length>0&&!l?r.a.createElement(r.a.Fragment,null,r.a.createElement("div",{className:"p-5 font-sans text-2xl font-sans font-bold"},"All these changes will be staged:"),t&&t.map((function(e){return r.a.createElement("div",{className:"p-1 font-sans text-lg mx-4 border-b w-11/12 break-words",key:e},e)})),h?r.a.createElement("div",{className:"my-2 mx-auto text-center p-2 rounded shadow bg-red-200 border-red-400 text-red-800"},"Staging Failed!"):null,p?r.a.createElement("div",{className:"mx-auto my-4 text-center bg-gray-600 text-xl p-3 rounded-md shadow-md font-sans text-white hover:bg-gray-400 cursor-pointer"},"Staging in prgoress..."):r.a.createElement("div",{className:"mx-auto my-4 text-center bg-green-600 text-xl p-3 rounded-md shadow-md font-sans text-white hover:bg-green-400 cursor-pointer",onClick:function(){f(!0),d()({url:g,method:"POST",data:{query:'\n mutation GitConvexMutation{\n stageAllItems(repoId: "'.concat(a,'")\n }\n ')}}).then((function(e){f(!1),e.data.data&&!e.data.error&&"ALL_STAGED"===e.data.data.stageAllItems&&c(!0)})).catch((function(e){f(!1),j(!0)}))}},"Confirm Staging")):r.a.createElement("div",{className:"p-5 bg-white text-black font-sans font-semibold rounded shadow border border-gray-100"},"No Changes for staging..."),l?r.a.createElement("div",{className:"mx-auto my-2 p-3 bg-green-300 text-green-800 rounded- shadow"},"All changes Staged!"):null)))}function q(e){v.b.add(E.a);var t=e.repoId,a=Object(n.useState)([]),s=Object(i.a)(a,2),o=s[0],l=s[1],c=Object(n.useState)([]),m=Object(i.a)(c,2),u=m[0],p=m[1],f=Object(n.useState)(""),b=Object(i.a)(f,2),x=b[0],h=b[1],j=Object(n.useState)([]),y=Object(i.a)(j,2),w=y[0],N=y[1],k=Object(n.useState)(0),O=Object(i.a)(k,2),C=O[0],S=O[1],T=Object(n.useState)(""),I=Object(i.a)(T,2),A=I[0],_=I[1],F=Object(n.useState)([]),q=Object(i.a)(F,2),G=q[0],M=q[1],B=Object(n.useState)(!1),H=Object(i.a)(B,2),U=H[0],J=H[1];Object(n.useEffect)((function(){var t=JSON.stringify(JSON.stringify({repoId:e.repoId})),a=d.a.CancelToken.source();return d()({url:g,method:"POST",headers:{"Content-type":"application/json"},cancelToken:a.token,data:{query:'\n query GitConvexApi{\n gitConvexApi(route: "'.concat("REPO_TRACKED_DIFF",'", payload:').concat(t,")\n {\n gitChanges{\n gitUntrackedFiles\n gitChangedFiles\n }\n }\n }\n ")}}).then((function(e){if(e.data.data){var t=e.data.data.gitConvexApi.gitChanges;l(Object(R.a)(t.gitChangedFiles)),p(Object(R.a)(t.gitUntrackedFiles));var a=Object(R.a)(t.gitChangedFiles),n=Object(R.a)(t.gitUntrackedFiles),r=[];a&&a.forEach((function(e){if(e.split(",").length>0){var t=e.split(",")[1];r.push(t)}})),n&&n.forEach((function(e){e&&((e=e.replace("NO_DIR","")).split(",")?r.push(e.split(",").join("")):r.push(e))})),N([].concat(r))}})).catch((function(e){})),function(){a.cancel()}}),[e,C,A]),Object(n.useEffect)((function(){var t=d.a.CancelToken.source(),a=JSON.stringify(JSON.stringify({repoId:e.repoId}));return d()({url:g,method:"POST",headers:{"Content-type":"application/json"},cancelToken:t.token,data:{query:'\n query GitConvexApi{\n gitConvexApi(route: "'.concat("GIT_STAGED_FILES",'", payload:').concat(a,")\n {\n gitStagedFiles{\n stagedFiles\n }\n }\n }\n ")}}).then((function(e){var t=e.data.data.gitConvexApi.gitStagedFiles.stagedFiles;t&&t.length>0&&M(Object(R.a)(t))})).catch((function(e){})),function(){return t.cancel()}}),[w,e.repoId,C]);function V(){var e=[],a=function(e){return"M"===e?r.a.createElement("div",{className:"p-1 mx-auto text-center w-2/3 text-yellow-700 border border-yellow-500 rounded-md shadow-sm"},"Modified"):"D"===e?r.a.createElement("div",{className:"p-1 mx-auto text-center w-2/3 text-red-700 border bg-red-200 border-red-500 rounded-md shadow-sm"},"Removed"):r.a.createElement("div",{className:"p-1 mx-auto text-center w-2/3 text-indigo-700 border border-indigo-500 rounded-md shadow-sm"},"Untracked")},n=function(e){return r.a.createElement("div",{className:"p-1 mx-auto cursor-pointer bg-green-300 text-white w-2/3 rounded-md shadow-sm hover:shadow-md hover:bg-green-600",onClick:function(a){!function(e,a){var n=C+1;a.target.innerHTML="Staging...",a.target.style.backgroundColor="gray",a.target.disabled=!0,d()({url:g,method:"POST",data:{query:'\n mutation GitConvexMutation{\n stageItem(repoId: "'.concat(t,'", item: "').concat(e,'")\n }\n ')}}).then((function(t){S(n),t.data.data&&!t.data.error&&"ADD_ITEM_SUCCES"===t.data.data.stageItem&&_(e)})).catch((function(e){console.log(e),S(n)}))}(e,a),J(!1)},key:"add-btn-".concat(e)},"Add")};return o&&o.forEach((function(t){if(t.split(",").length>0){var r=t.split(",")[1];e.push([r,a(t.split(",")[0]),n(r)])}})),u&&u.forEach((function(t){t&&((t=t.replace("NO_DIR","")).split(",")?e.push([t.split(",").join(""),a("N"),n(t.split(",").join(""))]):e.push([t,a("N"),n(t)]))})),e}return r.a.createElement(r.a.Fragment,null,x?r.a.createElement("div",{className:"fixed w-full h-full top-0 left-0 right-0 flex overflow-auto",id:"operation-backdrop",style:{background:"rgba(0,0,0,0.6)"},onClick:function(e){"operation-backdrop"===e.target.id&&(h(""),S(C+1),M([]))}},function(e){switch(e){case"stage":return w&&w.length>0?r.a.createElement(L,{repoId:t,stageComponents:w}):r.a.createElement("div",{className:"w-1/2 mx-auto my-auto bg-gray-200 p-6 rounded-md"},r.a.createElement("div",{className:"p-5 bg-white text-black font-sans font-semibold rounded shadow border border-gray-100"},"No Changes for staging..."));case"commit":return r.a.createElement(P,{repoId:t});case"push":return r.a.createElement(D,{repoId:t});default:return null}}(x),r.a.createElement("div",{className:"float-right fixed right-0 top-0 font-semibold my-2 bg-red-500 text-3xl cursor-pointer text-center text-white my-5 align-middle rounded-full w-12 h-12 items-center align-middle shadow-md mr-5",onClick:function(){h("")}},"X")):null,r.a.createElement("div",{className:"my-2 flex mx-auto p-3 justify-around"},[{label:"Stage all changes",color:"blue",key:"stage"},{label:"Commit Changes",color:"green",key:"commit"},{label:"Push to remote",color:"pink",key:"push"}].map((function(e){var t=e.label,a=e.color,n=e.key;return r.a.createElement("div",{className:"my-auto align-middle item-center w-1/4 text-center p-2 rounded-md bg-0 border border-".concat(a,"-500 text-").concat(a,"-700 font-sans cursor-pointer hover:bg-").concat(a,"-500 hover:text-white"),key:n,onClick:function(){return h(n)}},t)}))),V()&&V().length>0?r.a.createElement("div",{className:"p-2 mx-auto rounded shadow border"},r.a.createElement("div",{className:"table-header flex justify-between w-full bg-orange-300 p-3 text-xl font-sans"},["Changes","File Status","Action"].map((function(e,t){return r.a.createElement("div",{key:e,className:"font-bold text-center border-r border-gray-200 ".concat(0===t?"w-3/4":"w-1/4")},e)}))),r.a.createElement("div",{className:"block table-rows w-full overflow-auto",style:{height:"400px"}},r.a.createElement("div",null,V()&&V().map((function(e,t){return r.a.createElement("div",{className:"flex font-sans p-3 border-b-2 border-b border-gray-300",key:"tableItem-".concat(t)},e.map((function(e,t){return r.a.createElement("div",{key:"".concat(e,"-").concat(t),className:"break-all items-center align-middle my-auto ".concat(0===t?"w-3/4 text-left":"w-1/4 text-center")},e)})))}))))):r.a.createElement(r.a.Fragment,null,r.a.createElement("div",{className:"p-2 mx-auto my-10 bg-orange-300 text-xl text-center rounded shadow"},"No files to stage")),r.a.createElement(r.a.Fragment,null,G?function(){if(G&&G.length>0)return r.a.createElement("div",{className:"w-full mx-auto my-20 p-2 border border-gray-200 rounded"},r.a.createElement("div",{className:"flex items-center align-middle my-4"},r.a.createElement("div",{className:"text-5xl font-sans text-gray-800 mx-4"},"Staged Files"),r.a.createElement("div",{className:"p-2 rounded text-white bg-red-700 text-xl rounded shadow cursor-pointer hover:bg-red-800",onClick:function(e){!function(e){var a=C+1;e.target.innerHTML="Removing...",e.target.style.backgroundColor="gray",e.target.disabled=!0,d()({url:g,method:"POST",data:{query:'\n mutation GitConvexMutation{\n removeAllStagedItem(repoId: "'.concat(t,'")\n }\n ')}}).then((function(e){S(a+1),e.data.data&&!e.data.error&&"STAGE_ALL_REMOVE_SUCCESS"===e.data.data.removeAllStagedItem&&M([])})).catch((function(e){console.log(e),S(a+1)}))}(e),J(!1)}},"Remove All Items")),U?r.a.createElement("div",{className:"my-4 mx-auto text-center shadow-md rounded p-4 border border-red-200 text-red-400 font-sans font-semibold"},"Remove item failed. Note that deleted files cannot be removed as a single entity. Use",r.a.createElement("i",{className:"border-b border-gray-600 border-dashed mx-2"},"Remove All Items"),"to perform a complete git reset"):null,r.a.createElement("div",{className:"flex mx-auto p-2 text-center font-sans text-lg text-white bg-indigo-400 rounded"},r.a.createElement("div",{className:"w-3/4"},"Staged File"),r.a.createElement("div",{className:"w-1/2"},"Action")),r.a.createElement("div",{className:"block mx-auto overflow-auto",style:{height:"450px"}},G.map((function(e){return e?r.a.createElement("div",{className:"flex mx-auto my-4 border-b my-auto items-center align-middle py-4",key:e},r.a.createElement("div",{className:"w-3/4 break-all mx-4 text-xl text-gray-800 font-sans"},e),r.a.createElement("div",{className:"w-1/2 mx-auto"},r.a.createElement("div",{className:"mx-auto w-1/2 text-white cursor-pointer break-all text-center p-2 rounded bg-red-500 shadow hover:bg-red-600 hover:shadow-md",onClick:function(a){!function(e,a){var n=C+1;a.target.innerHTML="removing...",a.target.style.backgroundColor="gray",a.target.disabled=!0,d()({url:g,method:"POST",data:{query:'\n mutation GitConvexMutation{\n removeStagedItem(repoId: "'.concat(t,'", item: "').concat(e,'")\n }\n ')}}).then((function(t){if(S(n),t.data.data&&!t.data.error)if("STAGE_REMOVE_SUCCESS"===t.data.data.removeStagedItem){var a=G;a=a.filter((function(t){return t!==e})),M(Object(R.a)(a))}else J(!0)})).catch((function(e){console.log(e),S(n),J(!0)}))}(e,a),J(!1)},key:"remove-btn-".concat(e)},"Remove"))):null}))))}():null))}function G(e){v.b.add(E.a);var t=Object(n.useState)([]),a=Object(i.a)(t,2),s=a[0],o=a[1],l=Object(n.useState)([]),c=Object(i.a)(l,2),m=c[0],p=c[1],f=Object(n.useState)("File View"),b=Object(i.a)(f,2),x=b[0],h=b[1],j=["File View","Git Difference","Git Operations"],y=Object(n.useState)(!1),N=Object(i.a)(y,2),k=N[0],O=N[1],C=Object(n.useContext)(u).dispatch,S=Object(n.useMemo)((function(){return r.a.createElement(F,{repoId:e.repoId})}),[e]),T=Object(n.useMemo)((function(){return r.a.createElement(q,{repoId:e.repoId})}),[e]);return Object(n.useEffect)((function(){var t=g,a=JSON.stringify(JSON.stringify({repoId:e.repoId}));d()({url:t,method:"POST",headers:{"Content-type":"application/json"},data:{query:'\n query GitConvexApi{\n gitConvexApi(route: "'.concat("REPO_TRACKED_DIFF",'", payload:').concat(a,")\n {\n gitChanges{\n gitUntrackedFiles\n gitChangedFiles\n }\n }\n }\n ")}}).then((function(e){if(e){var t=e.data.data.gitConvexApi.gitChanges,a=t.gitChangedFiles,n=t.gitUntrackedFiles;(a||n)&&(a.length>0||n.length>0)?(o(Object(R.a)(a)),p(Object(R.a)(n)),O(!1),C({type:"GIT_TRACKED_FILES",payload:a}),C({type:"GIT_ACTION_TRACKED_FILES",payload:Object(R.a)(a)}),C({type:"GIT_ACTION_UNTRACKED_FILES",payload:Object(R.a)(n)})):O(!0)}})).catch((function(e){O(!0)}))}),[e,C]),r.a.createElement(r.a.Fragment,null,k?r.a.createElement(r.a.Fragment,null,r.a.createElement("div",{className:"w-11/12 block mx-auto my-6"},T),r.a.createElement("div",{className:"mt-10 w-11/12 rounded-sm shadow-sm h-full my-auto bock mx-auto text-center align-middle p-6 bg-pink-200 text-xl text-pink-600"},"No changes found in the selected git repo"),r.a.createElement("div",{className:"p-6 rounded-lg border-2 border-gray-100 w-3/4 block mx-auto my-20"},r.a.createElement("div",null,r.a.createElement(w.a,{icon:["fab","creative-commons-zero"],className:"flex text-6xl mt-20 text-center text-gray-300 font-bold mx-auto my-auto h-full w-full"})),r.a.createElement("div",{className:"block text-6xl text-gray-200 mx-auto text-center align-middle"},'"0" changes in repo'))):r.a.createElement(r.a.Fragment,null,r.a.createElement(r.a.Fragment,null,r.a.createElement("div",{className:"flex my-4 mx-auto w-11/12 justify-around font-sans font-semibold rounded-sm shadow-md cursor-pointer"},j.map((function(e){var t="w-full py-3 px-1 text-center border-r border-blue-400 ";return t+=e===x?"bg-blue-100 text-blue-800 border-b border-blue-700":"bg-blue-600 text-white",r.a.createElement("div",{className:"w-full py-3 px-1 text-center border-r border-blue-400 hover:bg-blue-200 hover:text-blue-900 ".concat(t),key:e,onClick:function(t){h(e)}},e)})))),r.a.createElement("div",{className:"w-11/12 block mx-auto my-6"}," ",function(){switch(x){case"File View":if(!k)return r.a.createElement("div",{className:"shadow-sm rounded-sm my-2 block justify-center mx-auto border border-gray-300"},s?function(){var e=[],t=[];if(s&&s.length>0)return s.forEach((function(a,n){var s=a.split(","),o=s[0],i=s[1],l="p-1 ";switch(o){case"M":l+="text-yellow-900 bg-yellow-200",t.push(r.a.createElement("div",{className:"flex mx-auto justify-between",key:i},r.a.createElement("div",{className:"".concat(l," w-11/12 break-all")},i),r.a.createElement("div",{className:"rounded-lg shadow-sm border border-gray-300 p-2 text-center w-1/6 my-auto"},"Modified")));break;case"D":l+="text-red-900 bg-red-200",e.push(r.a.createElement("div",{className:"flex mx-auto justify-between",key:i},r.a.createElement("div",{className:"".concat(l," w-11/12 break-all")},i),r.a.createElement("div",{className:"rounded-sm shadow-sm border border-gray-300 p-2 text-center w-1/6 my-auto"},"Deleted")));break;default:l+="text-indigo-900 bg-indigo-200"}})),r.a.createElement(r.a.Fragment,null,t," ",e)}():r.a.createElement("div",{className:"rounded-lg shadow-md text-center p-4 font-sans"},"Getting file based status..."),m?function(){var e=[],t="";return m.forEach((function(a){var n=a.split(",");n&&(e.push("NO_DIR"!==n[0]?n[0]:"./"),t=e.join("")+n[1])})),e.map((function(e,a){return r.a.createElement("div",{className:"flex",key:"".concat(e,"-").concat(a)},r.a.createElement("div",{className:"bg-indigo-100 text-indigo-800 flex p-2 block w-11/12 break-all"},t),r.a.createElement("div",{className:"rounded-sm shadow-sm border border-gray-300 p-2 text-center w-1/6 text-sm my-auto"},"New / Untracked"))}))}():null);break;case"Git Difference":if(!k)return S;break;case"Git Operations":return T;default:return r.a.createElement("div",{className:"text-xl text-center"}," Invalid Menu Selector! ")}}()," ")))}function M(){v.b.add(y.a);var e=Object(n.useContext)(u),t=e.state,a=e.dispatch,s=t.presentRepo,o=Object(n.useState)(!1),l=Object(i.a)(o,2),c=l[0],m=l[1],p=Object(n.useState)({}),f=Object(i.a)(p,2),b=f[0],x=f[1],h=Object(n.useState)([]),j=Object(i.a)(h,2),E=j[0],N=j[1],k=Object(n.useState)(""),O=Object(i.a)(k,2),C=O[0],S=O[1],A=Object(n.useState)({gitBranchList:"",gitCurrentBranch:"",gitTotalCommits:0,gitTotalTrackedFiles:0}),_=Object(i.a)(A,2),F=_[0],P=_[1],D=Object(n.useState)(!1),L=Object(i.a)(D,2),q=L[0],M=L[1],B=Object(n.useMemo)((function(){if(b&&b.id)return r.a.createElement(G,{repoId:b.id})}),[b]);function H(e,t){return r.a.createElement(r.a.Fragment,null,r.a.createElement("div",{className:"flex p-2 border-b-2 border-indigo-400 border-dashed justify-between mx-2 font-sans text-lg text-gray-700"},r.a.createElement("div",{className:"mx-2"},r.a.createElement(w.a,{icon:["fas",e]})),r.a.createElement("div",{className:"mx-2"},t)))}return Object(n.useEffect)((function(){var e=d.a.CancelToken.source();function t(){var t=b&&b.id;if(t){var a=JSON.stringify(JSON.stringify({repoId:t}));d()({url:g,method:"POST",headers:{"Content-type":"application/json"},cancelToken:e.token,data:{query:'\n query GitConvexApi\n {\n gitConvexApi(route: "'.concat("REPO_DETAILS",'", payload: ').concat(a,"){\n gitRepoStatus {\n gitBranchList\n gitCurrentBranch\n gitTotalCommits\n gitTotalTrackedFiles \n }\n }\n }\n ")}}).then((function(e){P(e.data.data.gitConvexApi.gitRepoStatus)})).catch((function(e){e&&console.log("API GitStatus error occurred : "+e)}))}}function n(){return(n=Object(I.a)(T.a.mark((function t(){return T.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,d()({url:g,method:"POST",cancelToken:e.token,data:{query:'\n query GitConvexApi{\n gitConvexApi(route: "'.concat("FETCH_REPO",'"){\n fetchRepo{\n repoId\n repoName\n repoPath\n }\n }\n }\n ')}}).then((function(e){var t=e.data.data.gitConvexApi.fetchRepo;if(t){var n=t.repoId.map((function(e,a){return{id:t.repoId[a],repoName:t.repoName[a],repoPath:t.repoPath[a]}}));return a({type:"PRESENT_REPO",payload:Object(R.a)(n)}),x(n[0]),N(n),n}}));case 2:return t.abrupt("return",t.sent);case 3:case"end":return t.stop()}}),t)})))).apply(this,arguments)}return s&&s[0]?(N(s[0]),t()):(!function(){n.apply(this,arguments)}(),t()),function(){e.cancel()}}),[b,C,s,a,q]),r.a.createElement("div",{className:"w-full mx-auto block justify-center overflow-x-hidden"},E?r.a.createElement("div",null,r.a.createElement("div",{className:"mx-auto my-6 w-11/12 rounded shadow border border-gray-200"},r.a.createElement("div",{className:"flex justify-around mx-auto align-middle items-around my-4"},r.a.createElement("div",{className:"flex"},r.a.createElement("div",{className:"font-sans font-semibold text-gray-900 my-1"},"Choose saved repository"),r.a.createElement("select",{className:"bg-green-200 text-gray-800 rounded-sm mx-2 outline-none shadow-xs border border-green-500",defaultValue:"checked",onChange:function(e){m(!0),E.length&&E.forEach((function(t){e.target.value===t.repoName&&(x(t),a({type:"GIT_GLOBAL_REPOID",payload:t.id}))}))}},r.a.createElement("option",{defaultChecked:!0,value:"checked",hidden:!0,disabled:!0},"Select a repo"),E.length&&E.map((function(e){return r.a.createElement("option",{value:e.repoName,key:e.repoName},e.repoName)})))),c?r.a.createElement("div",{className:"flex"},r.a.createElement("div",{className:"font-sans font-semibold text-gray-900 my-1"},"Branch"),r.a.createElement("select",{className:"bg-indigo-200 text-gray-800 rounded-sm mx-2 outline-none shadow-xs border border-indigo-500",defaultValue:"checked",onChange:function(e){e.persist(),S(e.currentTarget.value),function(e,t){d()({url:g,method:"POST",data:{query:'\n mutation{\n setBranch(repoId: "'.concat(b.id,'", branch: "').concat(e,'")\n }\n ')}}).then((function(t){t.data.data&&!t.data.error&&S(e)})).catch((function(e){e&&(M(!0),t.target.selectedIndex=0)}))}(e.target.value,e)},onClick:function(){M(!1)}},function(){if(F&&F.gitBranchList)return F.gitBranchList.map((function(e){return"NO_BRANCH"!==e?r.a.createElement("option",{key:e,value:e},e):null}))}())):null),F&&c?r.a.createElement("div",{className:"my-auto flex justify-around p-3 mx-auto"},H("code-branch",F.gitBranchList&&F.gitBranchList.length>0&&!F.gitBranchList[0].match(/NO_BRANCH/gi)?r.a.createElement(r.a.Fragment,null,1===F.gitBranchList.length?"1 branch":F.gitBranchList.length+" branches"):"No Branches"),H("sort-amount-up",F.gitTotalCommits+" Commits"),H("archive",F.gitTotalTrackedFiles+" Tracked Files")):null),c?null:r.a.createElement(r.a.Fragment,null,r.a.createElement("div",{className:"mt-10 w-11/12 rounded-sm shadow-sm h-full my-auto bock mx-auto text-center align-middle p-6 bg-orange-200 text-xl text-orange-900"},"Select a configured repo from the dropdown to perform git related operations"),r.a.createElement("div",{className:"p-6 rounded-lg border-2 border-gray-100 w-3/4 block mx-auto my-20"},r.a.createElement("div",null,r.a.createElement(w.a,{icon:["fas","mouse-pointer"],className:"flex text-6xl mt-20 text-center text-gray-300 font-bold mx-auto my-auto h-full w-full"})),r.a.createElement("div",{className:"block xl:text-6xl lg:text-3xl md:text-2xl my-4 text-gray-200 mx-auto text-center align-middle"},"No repositories selected"))),r.a.createElement("div",null,q?r.a.createElement("div",{className:"p-2 rounded my-2 mx-auto text-center font-sand bg-red-200 text-red-800"},"Branch switching failed.Commit your changes and try again"):null,F&&c&&b.id?B:null)):null)}function B(e){var t=e.repoId,a=Object(n.useState)(""),s=Object(i.a)(a,2),o=s[0],l=s[1],c=Object(n.useState)(""),m=Object(i.a)(c,2),u=m[0],p=m[1],f=Object(n.useRef)();function b(){f.current.value="",l("")}return r.a.createElement("div",{className:"w-3/4 mx-auto my-auto bg-gray-200 p-6 rounded-md"},r.a.createElement("div",{className:"my-auto"},r.a.createElement("div",{className:"mx-auto"},r.a.createElement("input",{type:"text",ref:f,placeholder:"Branch Name",className:"p-3 rounded bg-white text-xl text-gray-700 font-sans font-mono w-full border border-gray-200 shadow",onChange:function(e){l(e.target.value)},onClick:function(){p("")}})),r.a.createElement("div",{className:"bg-indigo-500 p-3 rounded mt-6 mx-auto text-xl font-sans text-white hover:bg-indigo-600 text-center mx-auto cursor-pointer",onClick:function(e){o?(console.log(o),d()({url:g,method:"POST",data:{query:'\n mutation GitConvexMutation{\n addBranch(repoId: "'.concat(t,'", branchName: "').concat(o,'")\n }\n ')}}).then((function(e){if(e.data.data&&!e.data.error){var t=e.data.data.addBranch;p(t),b()}else p("BRANCH_ADD_FAILED"),b()})).catch((function(e){p("BRANCH_ADD_FAILED"),b()}))):p("BRANCH_ADD_FAILED")}},"Add Branch"),"BRANCH_CREATION_SUCCESS"===u?r.a.createElement("div",{className:"w-full bg-green-200 p-1 rounded my-6 mx-auto text-md font-sans text-center mx-auto cursor-pointer"},"New branch has been added to your repo successfully"):null,"BRANCH_ADD_FAILED"===u?r.a.createElement("div",{className:"w-full bg-red-200 p-1 rounded my-6 mx-auto text-md font-sans text-center mx-auto cursor-pointer"},"New branch addition failed!"):null))}function H(e){var t=e.repoId,a=e.actionType,s=Object(n.useState)(),o=Object(i.a)(s,2),l=o[0],c=o[1],m=Object(n.useState)(!1),u=Object(i.a)(m,2),p=u[0],f=u[1],b=Object(n.useState)(!1),x=Object(i.a)(b,2),h=x[0],j=x[1],v=Object(n.useState)([]),E=Object(i.a)(v,2),y=E[0],w=E[1],N=Object(n.useState)(!1),k=Object(i.a)(N,2),O=k[0],C=k[1],S=Object(n.useRef)(),T=Object(n.useRef)();return Object(n.useEffect)((function(){var t=JSON.stringify(JSON.stringify({repoId:e.repoId})),a=d.a.CancelToken.source();return d()({url:g,method:"POST",cancelToken:a.token,headers:{"Content-type":"application/json"},data:{query:'\n query GitConvexApi\n {\n gitConvexApi(route: "'.concat("REPO_DETAILS",'", payload: ').concat(t,"){\n gitRepoStatus {\n gitRemoteData\n gitCurrentBranch\n gitRemoteHost\n gitBranchList \n }\n }\n }\n ")}}).then((function(e){var t=e.data.data.gitConvexApi.gitRepoStatus;c(t)})).catch((function(e){})),function(){return a.cancel()}}),[e]),r.a.createElement(r.a.Fragment,null,r.a.createElement("div",{className:"w-3/4 mx-auto my-auto p-6 rounded shadow bg-white block"},r.a.createElement("div",{className:"m-3 text-2xl font-sans text-ghray-800"},"Available remote repos"),r.a.createElement("div",null,r.a.createElement("select",{className:"border p-3 my-4 text-xl rounded shadow",defaultValue:"checked",onChange:function(){f(!0)},onClick:function(){w([])},ref:S},r.a.createElement("option",{disabled:!0,hidden:!0,value:"checked"},"Select the remote repo"),l?function(){if(l){var e=l.gitRemoteData;return e.includes("||")?e.split("||").map((function(e){return r.a.createElement("option",{value:e,key:e},e)})):r.a.createElement("option",null,e)}}():null)),p?r.a.createElement("div",null,r.a.createElement("select",{className:"border p-3 my-4 text-xl rounded shadow",defaultValue:"checked",onChange:function(){j(!0)},onClick:function(){w([])},ref:T},r.a.createElement("option",{disabled:!0,hidden:!0,value:"checked"},"Select upstream branch"),l?function(){if(l)return l.gitBranchList.map((function(e){return"NO_BRANCH"!==e?r.a.createElement("option",{value:e,key:e},e):null}))}():null)):null,p&&h&&!O?r.a.createElement("div",{className:"my-4 text-center bg-indigo-400 rounded shadow text-white text-xl font-sans p-2 mx-auto hover:bg-indigo-600 cursor-pointer",onClick:function(e){var n,s,o=S.current.value,i=T.current.value;o&&i?(n=o,s=i,C(!0),d()({url:g,method:"POST",data:{query:function(e,n){return"fetch"===a?'mutation GitConvexMutation{\n fetchFromRemote(repoId: "'.concat(t,'", remoteUrl: "').concat(e,'", remoteBranch: "').concat(n,'"){\n status\n fetchedItems\n }\n }\n '):'mutation GitConvexMutation{\n pullFromRemote(repoId: "'.concat(t,'", remoteUrl: "').concat(e,'", remoteBranch: "').concat(n,'"){\n status\n pulledItems\n }\n }\n ')}(n,s)}}).then((function(e){if(C(!1),e.data.data&&!e.data.error){var t={};if((t="fetch"===a?e.data.data.fetchFromRemote:e.data.data.pullFromRemote).status.match(/ABSENT/gi))w([r.a.createElement("div",{className:"text-xl p-2 text-gray-900 font-semibold"},"No changes to ","fetch"===a?"Fetch":"Pull"," from remote")]);else if(t.status.match(/ERROR/gi))w([r.a.createElement("div",{className:"text-xl p-2 text-pink-800 border border-pink-200 shadow rounded font-semibold"},"Error while ","fetch"===a?"Fetching":"Pulling"," ","from remote!")]);else{var n=[];n="fetch"===a?t.fetchedItems:t.pulledItems,w(Object(R.a)(n))}}})).catch((function(e){C(!1),console.error(e),w([r.a.createElement("div",{className:"text-xl p-2 text-pink-800 border border-pink-200 shadow rounded font-semibold"},"Error while ","fetch"===a?"Fetching":"Pulling"," from remote!")])}))):e.target.style.display="none"}},"pull"===a?"Pull from Remote":null,"fetch"===a?"Fetch from Remote":null):null,r.a.createElement("div",null,O?r.a.createElement("div",{className:"my-4 text-center border border-orange-800 text-orange-900 bg-orange-300 rounded shadow text-white text-xl font-sans p-2 mx-auto cursor-pointer"},"pull"===a?"Pulling changes":"Fetching"," from remote..."):null),!O&&y&&y.length>0?r.a.createElement(r.a.Fragment,null,r.a.createElement("div",{className:"p-3 rounded shadow bg-indigo-100 text-md font-sans text-gray-700"},y.map((function(e){return r.a.createElement("div",{className:"my-1 mx-2 break-normal",key:e+"-".concat(Object(_.a)())},e)})))):null))}function U(e){v.b.add(E.a,y.a);var t=Object(n.useState)([]),a=Object(i.a)(t,2),s=a[0],o=a[1],l=Object(n.useState)(!1),c=Object(i.a)(l,2),m=c[0],u=c[1];return Object(n.useEffect)((function(){var t=JSON.stringify(JSON.stringify({repoId:e.repoId}));d()({url:g,method:"POST",data:{query:'\n query GitConvexApi\n {\n gitConvexApi(route: "'.concat("COMMIT_LOGS",'", payload: ').concat(t,"){\n gitCommitLogs {\n commits{\n commitTime\n hash\n author\n commitMessage\n } \n }\n }\n }\n ")}}).then((function(e){var t=e.data.data.gitConvexApi.gitCommitLogs.commits;t&&t.length>0?o(t):u(!0)})).catch((function(e){e&&(u(!0),console.log(e))}))}),[e]),r.a.createElement(r.a.Fragment,null,m?r.a.createElement("div",{className:"p-3 rounded-md shadow-sm block justify-center mx-auto my-4 bg-white w-3/4 text-center"},"No Commit Logs found"):null,s&&s.map((function(e){var t=e.hash,a=e.author,n=e.commitTime,s=e.commitMessage;return r.a.createElement("div",{className:"p-3 pb-6 rounded-md shadow-sm block justify-center mx-auto my-4 bg-white w-full border-b-4 border-blue-400",key:t},r.a.createElement("div",{className:"p-2 text-2xl font-sans text-left"},r.a.createElement(w.a,{icon:["fas","calendar-alt"]}),r.a.createElement("span",{className:"mx-2"},n)),r.a.createElement("div",{className:"p-3 m-3 text-xl text-gray-700 font-sans"},s),r.a.createElement("div",{className:"flex justify-center text-center"},r.a.createElement("div",{className:"rounded-l p-2 shadow-sm bg-indigo-200 text-xl font-sans ont-semibold text-indigo-900 w-1/2"},r.a.createElement(w.a,{icon:["fab","slack-hash"]}),r.a.createElement("span",{className:"mx-2"},t)),r.a.createElement("div",{className:"rounded-r p-2 shadow-sm bg-indigo-200 text-xl font-sans ont-semibold text-indigo-900 w-1/2"},r.a.createElement(w.a,{icon:["fas","at"]}),r.a.createElement("span",{className:"mx-2"},a))))})))}function J(e){var t=e.repoId,a=Object(n.useRef)(),s=Object(n.useRef)(),o=Object(n.useState)(!1),l=Object(i.a)(o,2),c=l[0],m=l[1],u=Object(n.useState)(""),p=Object(i.a)(u,2),f=p[0],b=p[1],x=function(e,t,n){return r.a.createElement("div",{className:"flex justify-between around my-4 align-middle items-center"},r.a.createElement("label",{htmlFor:e,className:"text-gray-700 text-lg font-sans w-1/3"},t),r.a.createElement("div",{className:"w-5/6"},r.a.createElement("input",{id:e,onClick:function(){m(!1),b("")},className:"w-3/4 p-3 rounded shadow-md bg-white text-gray-900 text-lg font-sans outline-none",placeholder:n,ref:"remoteName"===e?a:s,onChange:function(e){var t=e.target.value;"remoteName"===e.target.id&&t.match(/[^a-zA-Z0-9_]/gi)&&(e.target.value=t.replace(/[^a-zA-Z0-9_]/gi,"-"))}})))};var h=function(e,t){return r.a.createElement("div",{className:"my-6 w-1/2 text-center mx-auto p-2 rounded-lg border-".concat(e,"-900 bg-").concat(e,"-200 font-sans text-xl font-semibold border")},t)};return r.a.createElement("div",{className:"xl:w-1/2 lg:w-3/4 md:w-11/12 sm:w-11/12 w-11/12 mx-auto my-auto bg-gray-200 pt-6 rounded-md rounded-b-lg"},r.a.createElement("div",{className:"mx-6 my-6 text-4xl font-semibold font-sans text-gray-800"},"Enter new remote details"),r.a.createElement("div",{className:"my-4 mx-6"},x("remoteName","Enter Remote Name","Give a name for your new remote"),x("remoteUrl","Enter Remote URL","Provide the URL for your remote repo")),c?h("orange","One or more required parameters are empty!"):null,"success"===f?h("green","Remote repo has been added successfully!"):null,"failed"===f?h("red","Failed to add new repo!"):null,r.a.createElement("div",{className:"w-full mt-10 p-3 text-center rounded-b-lg text-xl cursor-pointer shadow bg-green-200 border border-green-700 hover:bg-green-600 hover:text-white",onClick:function(){!function(){var e=a.current.value,n=s.current.value;t&&e&&n?d()({url:g,method:"POST",data:{query:'\n mutation GitConvexMutation{\n addRemoteRepo(repoId: "'.concat(t,'", remoteName: "').concat(e,'", remoteUrl: "').concat(n,'")\n }\n ')}}).then((function(e){e.data.data&&!e.data.error?"REMOTE_ADD_SUCCESS"===e.data.data.addRemoteRepo?(b("success"),a.current.value="",s.current.value=""):b("failed"):b("failed")})).catch((function(e){console.log(e),b("failed")})):m(!0)}()}},"Add New Remote"))}function V(e){v.b.add(E.a,y.a);var t=Object(n.useState)({}),a=Object(i.a)(t,2),s=a[0],o=a[1],l=Object(n.useState)(!1),c=Object(i.a)(l,2),m=c[0],u=c[1],p=Object(n.useState)(""),f=Object(i.a)(p,2),b=f[0],x=f[1],h=Object(n.useState)(!1),j=Object(i.a)(h,2),N=j[0],k=j[1],O=Object(n.useState)(!1),C=Object(i.a)(O,2),S=C[0],T=C[1],R=Object(n.useState)(0),I=Object(i.a)(R,2),A=I[0],F=I[1],P=Object(n.useState)(!1),D=Object(i.a)(P,2),L=D[0],q=D[1],G=Object(n.useState)(""),M=Object(i.a)(G,2),V=M[0],z=M[1],K=Object(n.useMemo)((function(){return r.a.createElement(U,{repoId:b})}),[b]),Y=Object(n.useMemo)((function(){return r.a.createElement(H,{repoId:b,actionType:"fetch"})}),[b]),X=Object(n.useMemo)((function(){return r.a.createElement(H,{repoId:b,actionType:"pull"})}),[b]),W=Object(n.useMemo)((function(){return r.a.createElement(J,{repoId:b})}),[b]);Object(n.useEffect)((function(){var t=g;if(e.parentProps.location){var a=e.parentProps.location.pathname.split("/repository/")[1];x(a);var n=JSON.stringify(JSON.stringify({repoId:a}));d()({url:t,method:"POST",headers:{"Content-type":"application/json"},data:{query:'\n\n query GitConvexApi\n {\n gitConvexApi(route: "'.concat("REPO_DETAILS",'", payload: ').concat(n,"){\n gitRepoStatus {\n gitRemoteData\n gitRepoName\n gitBranchList\n gitCurrentBranch\n gitRemoteHost\n gitTotalCommits\n gitLatestCommit\n gitTrackedFiles\n gitFileBasedCommit\n gitTotalTrackedFiles \n }\n }\n }\n ")}}).then((function(e){if(e.data&&e.data.data&&!e.data.error){var t=e.data.data.gitConvexApi.gitRepoStatus.gitRemoteData;t.includes("||")&&(T(!0),e.data.data.gitConvexApi.gitRepoStatus.gitRemoteData=t.split("||")[0],T(!0),F(t.split("||").length)),o(e.data.data.gitConvexApi.gitRepoStatus)}else u(!0)})).catch((function(e){e&&(console.log("API GitStatus error occurred : "+e),u(!0))}))}}),[e.parentProps,L]);var Z=s.gitRemoteData,$=s.gitRepoName,Q=s.gitBranchList,ee=s.gitCurrentBranch,te=s.gitRemoteHost,ae=s.gitTotalCommits,ne=s.gitLatestCommit,re=s.gitTrackedFiles,se=s.gitFileBasedCommit;return r.a.createElement(r.a.Fragment,null,L?r.a.createElement("div",{className:"fixed w-full h-full top-0 left-0 right-0 flex overflow-auto",id:"repo-backdrop",style:{background:"rgba(0,0,0,0.7)"},onClick:function(e){"repo-backdrop"===e.target.id&&(q(!1),z(""))}},r.a.createElement(r.a.Fragment,null,"fetch"===V?Y:null),r.a.createElement(r.a.Fragment,null,"pull"===V?X:null),r.a.createElement(r.a.Fragment,null,"addRemoteRepo"===V?W:null),r.a.createElement(r.a.Fragment,null,"addBranch"===V?r.a.createElement(B,{repoId:b}):null),r.a.createElement("div",{className:"fixed top-0 right-0 mx-3 font-semibold bg-red-500 text-3xl cursor-pointer text-center text-white my-5 align-middle rounded-full w-12 h-12 items-center align-middle shadow-md mr-5",onClick:function(){q(!1),z("")}},"X")):null,r.a.createElement("div",{className:"w-full fixed bg-gray-600 opacity-50"}),r.a.createElement("div",{className:"xl:overflow-auto lg:overflow-auto md:overflow-none sm:overflow-none rp_repo-view w-full h-full p-6 mx-auto rounded-lg justify-evenly"},s&&!m?r.a.createElement(r.a.Fragment,null,r.a.createElement("div",{className:"flex px-3 py-2"},s?r.a.createElement("div",{className:"align-middle items-center mx-auto w-full flex rounded-md shadow-md border-2 border-gray-100 p-4 justify-evenly"},r.a.createElement("div",{className:"text-md p-2 mx-2"},"Repo Name"),r.a.createElement("div",{className:"bg-blue-100 text-blue-900 p-3 rounded-sm border border-blue-200"},$),r.a.createElement("div",{className:"text-md p-2 mx-2"},"Active Branch"),r.a.createElement("div",{className:"bg-orange-200 rounded-sm text-orange-900 p-3 border border-orange-400"},ee)):null),r.a.createElement("div",{className:"w-full"},r.a.createElement("div",{className:"xl:flex lg:block md:block sm:block my-4 mx-auto justify-around"},s?function(){var e="";return te?(e=te.match(/github/i)?r.a.createElement(w.a,{icon:["fab","github"],className:"text-4xl text-center text-pink-500"}):te.match(/gitlab/i)?r.a.createElement(w.a,{icon:["fab","gitlab"],className:"text-4xl text-center text-pink-400"}):te.match(/bitbucket/i)?r.a.createElement(w.a,{icon:["fab","bitbucket"],className:"text-4xl text-center text-pink-400"}):te.match(/codecommit/i)?r.a.createElement(w.a,{icon:["fab","aws"],className:"text-4xl text-center text-pink-400"}):r.a.createElement(w.a,{icon:["fab","git-square"],className:"text-4xl text-center text-pink-400"}),r.a.createElement(r.a.Fragment,null,N?r.a.createElement(r.a.Fragment,null,r.a.createElement("div",{className:"fixed w-screen left-0 top-0 right-0 bottom-0 overflow-auto p-6",id:"commit-log__backdrop",style:{background:"rgba(0,0,0,0.5)",zIndex:99},onClick:function(e){"commit-log__backdrop"===e.target.id&&k(!1)}},r.a.createElement("div",{className:"fixed top-0 right-0 mx-3 font-semibold bg-red-500 text-3xl cursor-pointer text-center text-white my-5 align-middle rounded-full w-12 h-12 items-center align-middle shadow-md mr-5",onClick:function(){k(!1)}},"X"),r.a.createElement("div",{id:"commit-log__cards",className:"w-3/4 block mx-auto"},K))):null,r.a.createElement("div",{className:"block rounded-md xl:w-1/2 lg:w-3/4 md:w-11/12 sm:w-11/12 w-11/12 shadow-sm border-2 border-dotted border-gray-400 p-1 my-6 mx-auto"},r.a.createElement("div",{className:"block mx-auto my-6"},r.a.createElement("div",{className:"flex justify-evenly items-center"},r.a.createElement("div",{className:"text-lg text-gray-600 w-1/4"},"Remote Host"),r.a.createElement("div",{className:"flex justify-around items-center align-middle w-1/2"},r.a.createElement("div",{className:"w-3/4 flex cursor-pointer justify-center p-4 rounded-md shadow-md border border-dashed my-auto items-center align-middle"},r.a.createElement("div",{className:"mx-2"},e),r.a.createElement("div",{className:"text-xl text-gray-800 border-b border-dashed border-gray-400 w-3/4 text-center"},te)),r.a.createElement("div",{className:"w-1/4"},r.a.createElement("div",{id:"addRemote",className:"rounded-full items-center align-middle w-10 h-10 text-white text-2xl bg-indigo-400 text-center mx-auto shadow hover:bg-indigo-500 cursor-pointer",onMouseEnter:function(e){e.target.innerHTML+='
Click to add a new remote repo
'},onMouseLeave:function(e){e.target.innerHTML="+"},onClick:function(){q(!0),z("addRemoteRepo")}},"+")))),r.a.createElement("div",{className:"flex justify-evenly my-4"},r.a.createElement("div",{className:"text-lg text-gray-600 w-1/4"},"".concat(te," URL")),r.a.createElement("div",{className:"text-blue-400 hover:text-blue-500 cursor-pointer w-1/2 break-words"},Z)),S?r.a.createElement("div",{className:"flex justify-evenly my-2"},r.a.createElement("div",{className:"font-sans text-gray-800 font-semibold w-1/4 border-dotted border-b-2 border-gray-200"},"Entry truncated!"),r.a.createElement("div",{className:"w-1/2 border-dotted border-b-2 border-gray-200"},"Remote repos : ".concat(A))):null),r.a.createElement("div",{className:"block mx-auto my-6"},r.a.createElement("div",{className:"flex justify-evenly my-3"},r.a.createElement("div",{className:"w-1/4 text-md text-gray-600"},"Commit Logs"),r.a.createElement("div",{className:"w-1/2 rounded-md shadow-md p-3 text-center bg-orange-300 cursor-pointer",onClick:function(e){k(!0)}},"Show Commit Logs")))),r.a.createElement("div",{className:"block rounded-md xl:w-1/2 lg:w-3/4 md:w-11/12 sm:w-11/12 w-11/12 shadow-sm border-2 border-dotted border-gray-400 p-1 my-6 mx-auto"},r.a.createElement("div",{className:"block mx-auto my-2"},r.a.createElement("div",{className:"flex justify-around my-3"},r.a.createElement("div",{className:"text-lg text-gray-500 w-1/4"},"Total Commits"),r.a.createElement("div",{className:"text-left text-md text-bold text-black-800 w-1/2"},"".concat(ae," Commits"))),r.a.createElement("div",{className:"flex justify-around my-3"},r.a.createElement("div",{className:"text-lg text-gray-500 w-1/4"},"Latest Commit"),r.a.createElement("div",{className:"text-left text-sm text-bold text-black-900 w-1/2 truncate ..."},ne)),r.a.createElement("div",{className:"flex justify-around mx-auto my-2 align-middle items-center"},r.a.createElement("div",{className:"text-lg text-gray-500 w-1/4"},"Available Branches"),r.a.createElement("div",{className:"w-1/2 flex justify-evenly align-middle items-center"},r.a.createElement("div",{className:"w-3/4 my-auto"},Q&&ee&&Q.map((function(e){return e===ee?r.a.createElement("div",{className:"text-lg font-semibold text-indigo-500",key:"".concat(e,"-").concat(Object(_.a)())},e):r.a.createElement("div",{className:"my-1 font-sans font-semibold",key:"entry-key-".concat(Object(_.a)())},e)}))),r.a.createElement("div",{id:"addBranch",className:"rounded-full items-center align-middle w-10 h-10 text-white text-2xl bg-green-400 text-center mx-auto shadow hover:bg-green-500 cursor-pointer",onMouseEnter:function(e){e.target.innerHTML+='
Click to add a new branch
'},onMouseLeave:function(e){e.target.innerHTML="+"},onClick:function(){q(!0),z("addBranch")}},"+"))),r.a.createElement("div",{className:"flex justify-around mx-auto mt-4"},r.a.createElement("div",{className:"w-1/3 rounded text-center cursor-pointer p-2 bg-indigo-500 hover:bg-indigo-600 text-white font-sans nowrap",onClick:function(){q(!0),z("fetch")}},"Fetch from remote"),r.a.createElement("div",{className:"w-1/3 text-center cursor-pointer rounded text-white p-2 bg-blue-500 hover:bg-blue-600 font-sans",onClick:function(){q(!0),z("pull")}},"Pull from remote")))))):r.a.createElement("div",{className:"p-6 bg-orange-300 text-orange-900 my-4 rounded-lg shadow-md border border-gray-300"},"Fetching details from server...")}():null)),r.a.createElement("div",{className:"block w-11/12 my-6 mx-auto justify-center p-6 rounded-lg bg-gray-100 p-2 shadow-md overflow-auto"},s?function(){if(re&&re.length>0&&"NO_TRACKED_FILES"!==re[0]){var e=[],t=[],a=[];return re.forEach((function(e,n){var s=e.split(":");s[1].includes("directory")?t.push(r.a.createElement("div",{className:"block w-full p-2 border-b border-gray-300",key:"directory-key-".concat(Object(_.a)())},r.a.createElement("div",{className:"flex"},r.a.createElement("div",{className:"w-1/6"},r.a.createElement(w.a,{icon:["fas","folder"],className:"font-sans text-xl text-blue-600"})),r.a.createElement("div",{className:"w-2/4 text-gray-800 text-lg mx-3 font-sans"},s[0]),r.a.createElement("div",{className:"w-2/4 p-2 bg-green-200 text-green-900 truncate ... rounded-lg text-left mx-auto w-3/5"},se[n]?se[n].split(" ").filter((function(e,t){return 0!==t?e:null})).join(" "):null)))):s[1].includes("File")&&a.push(r.a.createElement("div",{className:"block w-full p-2 border-b border-gray-300",key:"file-key-".concat(Object(_.a)())},r.a.createElement("div",{className:"flex"},r.a.createElement("div",{className:"w-1/6"},r.a.createElement(w.a,{icon:["fas","file"],className:"font-sans text-xl text-gray-700"})),r.a.createElement("div",{className:"w-2/4 text-gray-800 text-lg mx-3 font-sans"},s[0]),r.a.createElement("div",{className:"w-2/4 p-2 bg-indigo-200 truncate ... text-indigo-900 rounded-lg text-left mx-auto w-3/5"},se[n]?se[n].split(" ").filter((function(e,t){return 0!==t?e:null})).join(" "):null))))})),e.push(t),e.push(a),r.a.createElement("div",{className:"block mx-auto justify-center p-2 text-blue-600 cursor-pointer hover:text-blue-700",key:"repo-key"},r.a.createElement("div",{className:"flex justify-around w-full p-2 mx-auto pb-6 border-b border-blue-400"},r.a.createElement("div",{className:"w-1/6"}),r.a.createElement("div",{className:"w-2/4"},"File / Directory"),r.a.createElement("div",{className:"w-2/4"},"Latest commit")),e)}return re&&"NO_TRACKED_FILES"===re[0]?r.a.createElement("div",{className:"bg-gray-400 rounded-lg text-black text-2xl text-center"},"No Tracked Files in the repo!"):r.a.createElement("div",{className:"bg-gray-400 rounded-lg text-black text-2xl text-center"},"Loading tracked files...")}():null)):r.a.createElement("div",{className:"text-center mx-auto rounded-lg p-3 shadow-md border border-indigo-200 text-indigo-800"},"Fetching repo details..."),m?r.a.createElement("div",{className:"p-2 text-center mx-auto rounded-lg bg-red-200 text-xl"},"Repo details fetch failed!"):null))}function z(e){v.b.add(E.a,y.a);var t=Object(n.useRef)(),a=Object(n.useContext)(u),s=a.state,o=a.dispatch,l=s.presentRepo,c=Object(n.useState)(""),m=Object(i.a)(c,2),p=m[0],f=m[1],b=Object(n.useState)(0),x=Object(i.a)(b,2),h=x[0],j=x[1],N=Object(n.useState)([]),k=Object(i.a)(N,2),O=k[0],C=k[1],S=Object(n.useState)(!1),T=Object(i.a)(S,2),I=T[0],A=T[1],_=Object(n.useState)({}),F=Object(i.a)(_,2),P=F[0],D=F[1],L=Object(n.useState)(""),q=Object(i.a)(L,2),G=q[0],M=q[1],B=Object(n.useState)(0),H=Object(i.a)(B,2),U=H[0],J=H[1],V=Object(n.useState)(""),z=Object(i.a)(V,2),K=z[0],Y=z[1],X=Object(n.useState)(!1),W=Object(i.a)(X,2),Z=W[0],$=W[1],Q=Object(n.useState)(!1),ee=Object(i.a)(Q,2),te=ee[0],ae=ee[1];Object(n.useEffect)((function(){d()({url:g,method:"POST",data:{query:'\n query GitConvexResults{\n gitConvexApi(route: "'.concat("SETTINGS_DBPATH",'"){\n settingsDatabasePath\n }\n }\n ')}}).then((function(e){if(e.data.data&&!e.data.error){var a=e.data.data.gitConvexApi.settingsDatabasePath;f(a),Y(a),t.current.value=a}})).catch((function(e){console.log(e)})),d()({url:g,method:"POST",data:{query:'\n query GitConvexResults{\n gitConvexApi(route: "'.concat("SETTINGS_REPODETAILS",'"){\n settingsRepoDetails{\n id\n repoPath\n repoName\n timeStamp\n }\n }\n }\n ')}}).then((function(e){if(e.data.data&&!e.data.error){var t=e.data.data.gitConvexApi.settingsRepoDetails;C(Object(R.a)(t))}})).catch((function(e){console.log(e)})),d()({url:g,method:"POST",data:{query:'\n query GitConvexResults{\n gitConvexApi(route: "'.concat("SETTINGS_PORT",'"){\n settingsPortDetails\n }\n }\n ')}}).then((function(e){if(e.data.data&&!e.data.error){var t=e.data.data.gitConvexApi.settingsPortDetails;j(t)}}))}),[e,U]);return r.a.createElement(r.a.Fragment,null,I?r.a.createElement("div",{className:"fixed w-full h-full top-0 left-0 right-0 flex xl:overflow-auto lg:overflow-auto md:overflow-none sm:overflow-none",id:"settings-backdrop",style:{background:"rgba(0,0,0,0.7)"},onClick:function(e){"settings-backdrop"===e.target.id&&(M(""),A(!1),J(U+1))}},P?function(){var e=["Repo ID","Repo Name","Repo Path","Timestamp"],t=[];return Object.keys(P).forEach((function(a,n){t.push({label:e[n],value:P[a]})})),r.a.createElement("div",{className:"w-3/4 p-6 mx-auto my-auto rounded shadow bg-white"},r.a.createElement("div",{className:"mx-4 my-2 text-3xl font-sans text-gray-900"},"The repo below will be removed from Gitconvex records."),r.a.createElement("div",{className:"mx-4 my-1 text-md font-light w-5/6 font-sans italic text-gray-800"},"This will not delete the actual git folder. Just the record from the gitconvex server will be removed"),r.a.createElement("div",{className:"my-2 mx-auto block justify-center w-3/4 p-2"},t.map((function(e){return r.a.createElement("div",{className:"mx-auto flex p-2 font-sans",key:e.label},r.a.createElement("div",{className:"w-2/4 font-semibold"},e.label),r.a.createElement("div",{className:"w-2/4"},e.value))}))),"lodaing"!==G&&"success"!==G?r.a.createElement("div",{className:"cursor-pointer mx-auto my-4 text-center p-3 rounded shadow bg-red-400 hover:bg-red-500 text-white text-xl",onClick:function(){!function(){M("loading");var e=P.id;d()({url:g,method:"POST",data:{query:'\n mutation GitConvexMutation{\n deleteRepo(repoId: "'.concat(e,'"){\n status\n repoId\n }\n }\n ')}}).then((function(e){if(e.data.data&&!e.data.eror){var t=e.data.data.deleteRepo,a=t.status,n=t.repoId;if("DELETE_SUCCESS"===a){if(l&&l.length>0){var r=l[0];r=r.map((function(e){return e.id.toString()===n.toString()?null:e})),o({action:"DELETE_PRESENT_REPO",payload:Object(R.a)(r)})}M("success")}else M("failed")}})).catch((function(e){console.log(e),M("failed")}))}()}},"Confirm Delete"):null,"loading"===G?r.a.createElement("div",{className:"cursor-pointer mx-auto my-4 text-center p-3 text-white rounded shadow bg-gray-400 hover:bg-gray-500 text-white text-xl"},"Deletion in progress"):null,"success"===G?r.a.createElement("div",{className:"p-4 mx-auto text-center font-sans font-semibold bg-green-300 text-green-600 my-4"},"Repo has been deleted!"):null,"failed"===G?r.a.createElement("div",{className:"p-4 mx-auto text-center font-sans font-semibold bg-red-300 my-4"},"Repo deletion failed!"):null)}():null,r.a.createElement("div",{className:"top-0 right-0 fixed float-right font-semibold my-2 bg-red-500 text-3xl cursor-pointer text-center text-white my-5 align-middle rounded-full w-12 h-12 items-center align-middle shadow-md mr-5",onClick:function(){M(""),A(!1),J(U+1)}},"X")):null,r.a.createElement("div",{className:"block w-full h-full pt-5 pb-10 xl:overflow-auto lg:overflow-auto md:overflow-none sm:overflow-none"},r.a.createElement("div",{className:"font-sans text-6xl my-4 mx-10 text-gray-700 block items-center align-middle"},r.a.createElement(w.a,{className:"text-5xl",icon:["fas","cogs"]}),r.a.createElement("span",{className:"mx-10"},"Settings")),r.a.createElement("div",{className:"block my-10 justify-center mx-auto w-11/12"},p?r.a.createElement("div",{className:"settings-data"},r.a.createElement("div",{className:"text-xl text-gray-700 font-sans font-semibold"},"Server data file (file which stores repo details)"),r.a.createElement("div",{className:"my-4"},r.a.createElement("input",{type:"text",className:"p-2 rounded border border-gray-500 bg-gray-200 text-gray-800 w-2/3",ref:t,onChange:function(e){Y(e.target.value),$(!1)},onClick:function(){$(!1)}}),r.a.createElement("div",{className:"text-justify font-sand font-light text-sm my-4 text-gray-500 italic w-2/3"},"The data file can be updated. The data file must be an accessible JSON file with read / write permissions set to it. Also make sure you enter the full path for the file",r.a.createElement("pre",{className:"my-2"},"E.g: /opt/my_data/data-file.json")),p!==K?r.a.createElement("div",{className:"my-4 text-center p-2 font-sans text-white border-green-400 border-2 bg-green-500 rounded-md cursor-pointer shadow w-1/4 hover:bg-green-600",onClick:function(){!function(){if(K){var e=U+1;d()({url:g,method:"POST",data:{query:'\n mutation GitConvexMutation{\n updateRepoDataFile(newDbFile: "'.concat(K.toString(),'")\n }\n ')}}).then((function(t){t.data.data&&!t.data.error&&"DATAFILE_UPDATE_SUCCESS"===t.data.data.updateRepoDataFile?($(!1),J(e),window.location.reload()):($(!0),J(e))})).catch((function(t){console.log("Datafile update error",t),$(!0),J(e)}))}}(),$(!1)}},"Update Data file"):null,Z?r.a.createElement("div",{className:"my-2 p-2 rounded border border-red-300 text-red-700 font-sans font-semibold w-2/3 text-center"},"Data file update failed"):null)):null,O?r.a.createElement("div",{className:"repo-data my-10"},r.a.createElement("div",{className:"text-xl text-gray-700 font-sans font-semibold"},"Saved Repos"),r.a.createElement(r.a.Fragment,null,O&&O.length>0?r.a.createElement(r.a.Fragment,null,r.a.createElement("div",{className:"flex my-4 bg-indigo-500 my-1 w-full rounded text-white bg-white shadow p-3 font-sand text-xl font-semibold"},r.a.createElement("div",{className:"w-1/2 border-r text-center"},"Repo ID"),r.a.createElement("div",{className:"w-1/2 border-r text-center"},"Repo Name"),r.a.createElement("div",{className:"w-1/2 border-r text-center"},"Repo Path"),r.a.createElement("div",{className:"w-1/2 border-r text-center"},"Timestamp"),r.a.createElement("div",{className:"w-1/2 border-r text-center"},"Action")),O.map((function(e){return r.a.createElement("div",{className:"flex my-1 w-full rounded bg-white shadow p-3 font-sans text-gray-800",key:e.id},r.a.createElement("div",{className:"w-1/2 px-2 border-r font-sans break-all"},e.id),r.a.createElement("div",{className:"w-1/2 px-2 border-r font-bold font-sans break-all"},e.repoName),r.a.createElement("div",{className:"w-1/2 px-2 border-r font-sans break-all text-sm font-light text-blue-600"},e.repoPath),r.a.createElement("div",{className:"w-1/2 px-2 border-r font-sans break-all text-sm font-light"},e.timeStamp),r.a.createElement("div",{className:"w-1/2 px-2 border-r font-sans break-all"},r.a.createElement("div",{className:"bg-red-600 p-2 mx-auto my-auto rounded shadow text-center w-1/2 hover:bg-red-400 cursor-pointer",onClick:function(t){A(!0),D(e)}},r.a.createElement(w.a,{color:"white",icon:["fas","trash-alt"]}))))}))):r.a.createElement("div",{className:"my-4 mx-auto bg-gray-200 text-center p-3 rounded shadow w-3/4"},"No repos are being managed by Gitconvex. You can add one from the dashboard"))):null,r.a.createElement("div",{className:"my-2 mx-auto"},r.a.createElement("div",{className:"text-xl font-sans text-gray-800 my-2"},"Active Gitconvex port"),r.a.createElement("div",{className:"flex my-4"},r.a.createElement("input",{type:"text",className:"p-2 rounded border border-gray-500 bg-gray-200 text-gray-800 xl:w-1/2 lg:w-1/3 md:w-1/2 sm:w-1/2 w-1/2",value:h,onChange:function(e){j(e.target.value)}}),r.a.createElement("div",{className:"p-2 text-center mx-4 rounded border text-white bg-indigo-500 xl:w-1/6 lg:w-1/6 md:w-1/5 sm:w-1/4 w-1/4 hover:bg-indigo-600 cursor-pointer",onClick:function(){h&&d()({url:g,method:"POST",data:{query:"\n mutation GitConvexMutation{\n settingsEditPort(newPort: ".concat(h,")\n }\n ")}}).then((function(e){e.data.data&&!e.data.error?console.log(e.data.data.settingsEditPort):te(!0)})).catch((function(e){console.log(e),ae(!0)}))}},"Update Port")),r.a.createElement("div",{className:"text-justify font-sand font-light text-sm my-4 text-gray-500 italic w-2/3"},"Make sure to restart the app and to change the port in the URL after updating it"),te?r.a.createElement("div",{className:"my-2 p-2 rounded border border-red-300 text-red-700 font-sans font-semibold w-1/2 text-center"},"Port update failed"):null))))}function K(e){var t=Object(n.useContext)(u).state,a=Object(n.useState)(""),s=Object(i.a)(a,2),o=s[0],m=s[1],p=Object(n.useState)(""),f=Object(i.a)(p,2),b=f[0],x=f[1],j=Object(n.useState)(""),v=Object(i.a)(j,2),E=v[0],y=v[1],w=Object(n.useMemo)((function(){return r.a.createElement(V,{parentProps:e})}),[e]),N=Object(n.useMemo)((function(){return r.a.createElement(z,null)}),[]),k=Object(n.useMemo)((function(){return r.a.createElement(C,null)}),[]);Object(n.useEffect)((function(){var e=t.hcParams,a=e.osCheck,n=e.gitCheck,r=e.nodeCheck,s=d.a.CancelToken.source();a&&n&&r?(m(a),x(n),y(r)):3===["OS_TYPE","NODE_VERSION","GIT_VERSION"].filter((function(e){return!!localStorage.getItem(e)})).length?(m(localStorage.getItem("OS_TYPE")),y(localStorage.getItem("NODE_VERSION")),x(localStorage.getItem("GIT_VERSION"))):d()({url:g,method:"POST",cancelToken:s.token,data:{query:'\n query GitConvexAPI{\n gitConvexApi(route:"HEALTH_CHECK"){\n healthCheck{\n osCheck\n gitCheck\n nodeCheck\n }\n }\n }\n '}}).then((function(e){if(e.data.data&&!e.data.error){var t=e.data.data.gitConvexApi.healthCheck,a=t.osCheck,n=t.gitCheck,r=t.nodeCheck;m(JSON.parse(a).message),x(JSON.parse(n).message),y(JSON.parse(r).message)}})).catch((function(e){console.log(e)}));return function(){s.cancel()}}),[t.hcParams]);var S={platform:o,gitVersion:b,nodeVersion:E};return r.a.createElement(r.a.Fragment,null,r.a.createElement("div",{className:"xl:flex lg:flex md:block w-full h-screen"},r.a.createElement(h,{parentProps:e}),function(){switch(e.location.pathname){case"/dashboard":return r.a.createElement(O,{params:S});case"/dashboard/repository":return r.a.createElement(M,null);case"/dashboard/settings":return N;case"/dashboard/help":return k;default:return r.a.createElement(c.a,null,r.a.createElement(l.a,{exact:!0,path:"/dashboard/repository/:repoId"},w))}}()))}a(75);function Y(e){var t=Object(n.useState)(!1),a=Object(i.a)(t,2),s=a[0],o=a[1],l=Object(n.useState)(!1),c=Object(i.a)(l,2),m=c[0],p=c[1],f=Object(n.useContext)(u).dispatch;return Object(n.useEffect)((function(){var e=g;d()({url:e,method:"POST",data:{query:'\n query GitConvexAPI{\n gitConvexApi(route:"HEALTH_CHECK"){\n healthCheck{\n osCheck\n gitCheck\n nodeCheck\n }\n }\n }\n '}}).then((function(e){if(e.data.data){var t=e.data.data.gitConvexApi.healthCheck,a=t.osCheck,n=t.gitCheck,r=t.nodeCheck;f({type:"HC_PARAM_ACTION",payload:{osCheck:a,gitCheck:n,nodeCheck:r}}),p(!0)}else o(!0)})).catch((function(e){console.log(e),o(!0)}))}),[f]),r.a.createElement(r.a.Fragment,null,m?e.history.push("/dashboard"):r.a.createElement("div",{className:"w-64 h-full justify-center mx-auto flex my-auto align-center items-center"},r.a.createElement("div",{className:"splash-logo w-64 h-full justify-center mx-auto flex my-auto align-center items-center"},r.a.createElement("div",{className:"p-5 shadow-md border-l-4 border-t-4 border-blue-100 rounded-lg block"},r.a.createElement("div",{className:"splash-logo__image"})),r.a.createElement("div",{className:"logo-label my-3 p-3 text-center block"},r.a.createElement("div",{className:"logo-label__title block text-6xl border-solid border-b-4 border-pink-200"},r.a.createElement("span",{className:"logo-label__title-first font-sans font-bold mx-3"},"Git"),r.a.createElement("span",null,"Convex")),r.a.createElement("div",{className:"block font-mono my-2"},"A visualizer for your git repo"))),s?r.a.createElement("div",{className:"fixed bottom-0 left-0 right-0 w-full p-3 rounded-lg text-center font-sans bg-red-200 border-red-900"},r.a.createElement("div",{className:"h1 text-3xl p-2 m-2 text-red-800"},"Server Unreachable"),r.a.createElement("p",null,"The server is not reachable.Please check if the server module is running.")):null))}var X=a(9);function W(e,t){switch(t.type){case"HC_DONE_SWITCH":return Object(X.a)(Object(X.a)({},e),{},{hcDone:t.payload});case"HC_PARAM_ACTION":var a=t.payload,n=a.osCheck,r=a.gitCheck,s=a.nodeCheck,o=function(e){return JSON.parse(JSON.parse(JSON.stringify(e))).message};return localStorage.setItem("OS_TYPE",o(n)),localStorage.setItem("GIT_VERSION",o(r)),localStorage.setItem("NODE_VERSION",o(s)),Object(X.a)(Object(X.a)({},e),{},{hcParams:{osCheck:o(n),gitCheck:o(r),nodeCheck:o(s)}});case"PRESENT_REPO":return Object(X.a)(Object(X.a)({},e),{},{presentRepo:[].concat(Object(R.a)(e.presentRepo),[t.payload])});case"DELETE_PRESENT_REPO":return Object(X.a)(Object(X.a)({},e),{},{presentRepo:Object(R.a)(t.payload)});case"GIT_TRACKED_FILES":return e.modifiedGitFiles=[],Object(X.a)(Object(X.a)({},e),{},{modifiedGitFiles:[].concat(Object(R.a)(e.modifiedGitFiles),[t.payload])});case"GIT_GLOBAL_REPOID":return e.globalRepoId="",Object(X.a)(Object(X.a)({},e),{},{globalRepoId:t.payload});case"GIT_ACTION_TRACKED_FILES":return e.gitTrackedFiles=[],Object(X.a)(Object(X.a)({},e),{},{gitTrackedFiles:[].concat(Object(R.a)(e.gitTrackedFiles),[t.payload])});case"GIT_ACTION_UNTRACKED_FILES":return e.gitUntrackedFiles=[],Object(X.a)(Object(X.a)({},e),{},{gitUntrackedFiles:[].concat(Object(R.a)(e.gitUntrackedFiles),[t.payload])});default:return Object(X.a)({},e)}}function Z(e){var t=Object(n.useReducer)(W,{hcParams:{},presentRepo:[],modifiedGitFiles:[],globalRepoId:"",gitUntrackedFiles:[],gitTrackedFiles:[]}),a=Object(i.a)(t,2),s=a[0],o=a[1];return r.a.createElement("div",{className:"App w-full h-full"},r.a.createElement(u.Provider,{value:{state:s,dispatch:o}},r.a.createElement(c.a,null,r.a.createElement(l.c,null,r.a.createElement(l.a,{path:"/",exact:!0,component:Y}),r.a.createElement(l.a,{path:"/dashboard",component:K}),r.a.createElement(l.a,{path:"/dashboard/repository",exact:!0,component:K}),r.a.createElement(l.a,{path:"/dashboard/repository/*",component:K})))))}a(76),Boolean("localhost"===window.location.hostname||"[::1]"===window.location.hostname||window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/));o.a.render(r.a.createElement(Z,null),document.getElementById("root")),"serviceWorker"in navigator&&navigator.serviceWorker.ready.then((function(e){e.unregister()})).catch((function(e){console.error(e.message)}))}},[[45,1,2]]]); +//# sourceMappingURL=main.3cda9c91.chunk.js.map \ No newline at end of file diff --git a/build/static/js/main.3cda9c91.chunk.js.map b/build/static/js/main.3cda9c91.chunk.js.map new file mode 100644 index 00000000..687d0981 --- /dev/null +++ b/build/static/js/main.3cda9c91.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../node_modules/prismjs/components lazy /^/.//prism/-.*/.js$/ groupOptions: {} namespace object","context.js","util/env_config.js","Components/DashBoard/DashboardPaneComponents/LeftPane.js","Components/DashBoard/Repository/RepoComponents/AddRepoForm.js","actionStore.js","Components/DashBoard/Repository/RepoComponents/RepoCard.js","Components/DashBoard/Repository/RepoComponents/RepoComponent.js","Components/DashBoard/DashboardPaneComponents/RightPane.js","Components/DashBoard/Help/Help.js","Components/DashBoard/Repository/GitComponents/GitDiffViewComponent.js","Components/DashBoard/Repository/GitComponents/GitOperation/CommitComponent.js","Components/DashBoard/Repository/GitComponents/GitOperation/PushComponent.js","Components/DashBoard/Repository/GitComponents/GitOperation/StageComponent.js","Components/DashBoard/Repository/GitComponents/GitOperation/GitOperationComponent.js","Components/DashBoard/Repository/GitComponents/GitTrackedComponent.js","Components/DashBoard/Repository/RepoComponents/RepositoryAction.js","Components/DashBoard/Repository/RepoComponents/RepoDetailBackdrop/AddBranchComponent.js","Components/DashBoard/Repository/RepoComponents/RepoDetailBackdrop/FetchPullActionComponent.js","Components/DashBoard/Repository/RepoComponents/RepositoryCommitLogComponent.js","Components/DashBoard/Repository/RepoComponents/RepoDetailBackdrop/AddRemoteRepoComponent.js","Components/DashBoard/Repository/RepoComponents/RepositoryDetails.js","Components/DashBoard/Settings/Settings.js","Components/DashBoard/Dashboard.js","Components/SplashScreen.js","reducer.js","App.js","serviceWorker.js","index.js"],"names":["map","webpackAsyncContext","req","__webpack_require__","o","Promise","resolve","then","e","Error","code","ids","id","t","keys","Object","module","exports","ContextProvider","React","createContext","hcDone","platform","git","node","globalRepoId","hcParams","presentRepo","modifiedGitFiles","gitUntrackedFiles","gitTrackedFiles","console","log","process","PORT_GLOBAL_API","window","location","port","globalAPIEndpoint","hostname","LeftPane","props","menuItemParams","link","icon","FolderOutlined","style","color","fontSize","label","SettingsOutlined","HelpOutline","className","onClick","event","parentProps","history","push","entry","to","exact","activeClassName","key","AddRepoForm","useContext","state","dispatch","useState","repoNameState","setRepoName","repoPathState","setRepoPath","repoAddFailed","setRepoAddFailed","repoAddSuccess","setRepoAddSuccess","repoNameRef","useRef","repoPathRef","initCheckRef","resetAlertBanner","type","placeholder","onChange","target","value","ref","htmlFor","formEnable","repoName","repoPath","initCheck","current","checked","payload","JSON","stringify","axios","url","method","data","query","res","error","message","gitConvexApi","addRepo","match","action","catch","err","storeRepoAPI","RepoCard","library","add","fab","fas","repoData","repoFooterData","setRepoFooterData","useEffect","repoId","source","CancelToken","headers","cancelToken","token","gitRepoStatus","cancel","avatar","split","length","tempName","substring","toUpperCase","gitTotalCommits","gitTotalTrackedFiles","gitCurrentBranch","RepoComponent","repo","setRepo","repoFormEnable","setRepoFormEnable","fetchRepoURL","apiResponse","fetchRepo","repoContent","forEach","index","param","repoArray","onMouseEnter","stopPropagation","preventDefault","innerHTML","onMouseLeave","showAvailableRepo","RightPane","params","gitVersion","nodeVersion","repoEntry","Help","href","rel","GitDiffViewComponent","changedFiles","setChangedFiles","diffStatState","setDiffStatState","fileLineDiffState","setFileLineDiffState","activeFileName","setActiveFileName","isApiCalled","setIsApiCalled","isLangSelected","setIsLangSelected","wranStatus","setWarnStatus","lang","setLang","langEnum","js","java","py","c","cpp","go","rust","ts","dart","php","html","json","xml","yaml","yml","rb","jsx","kt","ktm","kts","cs","vb","css","apiEndPoint","gitChangedFiles","gitChanges","languageDetector","fileName","fileType","fileEntry","a","gitFileLineChanges","diffStat","fileDiff","selectedLang","fileDiffStatComponent","includes","splitStat","slice","parts","Date","getTime","toString","statFormat","splitLines","join","line","uuidv4","dangerouslySetInnerHTML","__html","Prism","replace","fileLineDiffComponent","CommitComponent","loading","setLoading","stagedFilesState","setStagedFilesState","commitDone","setCommitDone","commitError","setCommitError","loadingCommit","setLoadingCommit","commitRef","stagedFiles","gitStagedFiles","stagedCount","height","stagedFile","cols","rows","commitMsg","commitChanges","commitHandler","alert","commitComponent","PushComponent","remoteData","setRemoteData","isRemoteSet","setIsRemoteSet","isBranchSet","setIsBranchSet","unpushedCommits","setUnpushedCommits","isCommitEmpty","setIsCommitEmpty","pushDone","setPushDone","pushFailed","setPushFailed","remoteRef","branchRef","commitModel","commit","splitCommit","left","right","repoDetails","defaultValue","disabled","hidden","gitRemoteData","item","remoteHostGenerator","commits","gitUnpushedCommits","getUnpushedCommits","gitBranchList","branch","branchListGenerator","remote","remoteHost","branchName","pushToRemote","StageComponent","stageComponents","allStaged","setAllStaged","setLodaing","errorInd","setErrorInd","stageAllItems","GitOperationComponent","setGitTrackedFiles","setGitUntrackedFiles","setAction","list","setList","viewReload","setViewReload","currentStageItem","setCurrensStageitem","stageItems","setStagedItems","unstageFailed","setUnstageFailed","apiData","apiTrackedFiles","apiUnTrackedFiles","componentList","trackedItem","getTableData","tableDataArray","statusPill","status","actionButton","stageItem","localViewReload","backgroundColor","stageGitComponent","background","actionComponent","column","tableData","removeAllStagedItem","removeAllStagedItems","removeStagedItem","localStagedItems","filter","filterItem","getStagedFilesComponent","GitTrackedComponent","gitDiffFilesState","setGitDiffFilesState","gitUntrackedFilesState","setGitUntrackedFilesState","topMenuItemState","setTopMenuItemState","topMenuItems","noChangeMarker","setNoChangeMarker","memoizedGitDiffView","useMemo","memoizedGitOperationView","styleSelector","deletedArtifacts","modifiedArtifacts","diffFile","splitFile","flag","name","diffPane","untrackedDir","untrackedEntry","splitEntry","untrackedPane","menuComponent","RepositoryAction","selectedFlag","setSelectedFlag","defaultRepo","setDefaultRepo","availableRepos","setAvailableRepos","activeBranch","setActiveBranch","selectedRepoDetails","setSelectedRepoDetails","branchError","setBranchError","memoizedGitTracker","getTopPaneComponent","fetchSelectedRepoStatus","invokeRepoFetchAPI","elm","defaultChecked","persist","currentTarget","selectedIndex","setTrackingBranch","availableBranch","AddBranchComponent","setBranchName","branchAddStatus","setBranchAddStatus","branchNameRef","resetBranchNameText","branchStatus","addBranch","FetchFromRemoteComponent","actionType","result","setResult","getAxiosRequestBody","actionResponse","fetchFromRemote","pullFromRemote","resArray","fetchedItems","pulledItems","display","uuid","RepositoryCommitLogComponent","commitLogs","setCommitLogs","gitCommitLogs","hash","author","commitTime","commitMessage","AddRemoteRepoComponent","remoteNameRef","remoteUrlRef","paramMissing","setParamMissing","addRemoteStatus","setAddRemoteStatus","remoteFormTextComponent","formId","remoteNameVal","statusPillComponent","repoUrl","addRemoteRepo","addRemoteClickHandler","RepositoryDetails","setGitRepoStatus","repoFetchFailed","setRepoFetchFailed","repoIdState","setRepoIdState","showCommitLogs","setShowCommitLogs","isMultiRemote","setIsMultiRemote","multiRemoteCount","setMultiRemoteCount","backdropToggle","setBackdropToggle","memoizedCommitLogComponent","memoizedFetchRemoteComponent","memoizedPullRemoteComponent","memoizedAddRemoteRepoComponent","endpointURL","pathname","gitRemoteLocal","gitRepoName","gitRemoteHost","gitLatestCommit","gitFileBasedCommit","remoteLogo","zIndex","gitRepoLeftPane","formattedFiles","directoryEntry","gitTrackedFileComponent","Settings","dbPathTextRef","dbPath","setDbPath","setPort","setRepoDetails","setBacldropToggle","deleteRepo","setDeleteRepo","deleteRepoStatus","setDeleteRepoStatus","newDbPath","setNewDbPath","dbUpdateFailed","setDbUpdateFailed","portUpdateFailed","setPortUpdateFailed","dbPathText","settingsDatabasePath","repoDetailsArray","settingsRepoDetails","localPort","settingsPortDetails","repoColumn","eror","localState","deleteRepoApiHandler","deleteRepoHandler","updateRepoDataFile","reload","updateDbFileHandler","timeStamp","settingsEditPort","Dashboard","setPlatform","setGitVersion","setNodeVersion","memoizedRepoDetails","memoizedSettings","memoizedHelp","osCheck","gitCheck","nodeCheck","localStorage","getItem","healthCheck","parse","path","renderRightPaneComponent","SplashScreen","showAlert","setShowAlert","hcCheck","setHcCheck","apiURL","reducer","parseValue","setItem","App","useReducer","Provider","component","Boolean","ReactDOM","render","document","getElementById","navigator","serviceWorker","ready","registration","unregister"],"mappings":"wKAAA,IAAIA,EAAM,CACT,kBAAmB,CAClB,GACA,GAED,sBAAuB,CACtB,GACA,GAED,kBAAmB,CAClB,GACA,GAED,sBAAuB,CACtB,GACA,GAED,0BAA2B,CAC1B,GACA,GAED,8BAA+B,CAC9B,GACA,GAED,iBAAkB,CACjB,GACA,GAED,qBAAsB,CACrB,GACA,IAED,oBAAqB,CACpB,GACA,IAED,wBAAyB,CACxB,GACA,IAED,wBAAyB,CACxB,GACA,IAED,4BAA6B,CAC5B,GACA,IAED,iBAAkB,CACjB,GACA,IAED,qBAAsB,CACrB,GACA,IAED,yBAA0B,CACzB,GACA,IAED,6BAA8B,CAC7B,GACA,IAED,iBAAkB,CACjB,GACA,IAED,qBAAsB,CACrB,GACA,IAED,qBAAsB,CACrB,GACA,IAED,yBAA0B,CACzB,GACA,IAED,kBAAmB,CAClB,GACA,IAED,sBAAuB,CACtB,GACA,IAED,sBAAuB,CACtB,IACA,IAED,0BAA2B,CAC1B,IACA,IAED,qBAAsB,CACrB,IACA,IAED,yBAA0B,CACzB,IACA,IAED,oBAAqB,CACpB,IACA,IAED,wBAAyB,CACxB,IACA,IAED,wBAAyB,CACxB,IACA,IAED,4BAA6B,CAC5B,IACA,IAED,oBAAqB,CACpB,IACA,IAED,wBAAyB,CACxB,IACA,IAED,kBAAmB,CAClB,IACA,IAED,sBAAuB,CACtB,IACA,IAED,mBAAoB,CACnB,IACA,IAED,uBAAwB,CACvB,IACA,IAED,mBAAoB,CACnB,IACA,IAED,uBAAwB,CACvB,IACA,IAED,oBAAqB,CACpB,IACA,IAED,wBAAyB,CACxB,IACA,IAED,mBAAoB,CACnB,IACA,IAED,uBAAwB,CACvB,IACA,IAED,iBAAkB,CACjB,IACA,IAED,qBAAsB,CACrB,IACA,IAED,uBAAwB,CACvB,IACA,IAED,2BAA4B,CAC3B,IACA,IAED,0BAA2B,CAC1B,IACA,IAED,8BAA+B,CAC9B,IACA,IAED,iBAAkB,CACjB,IACA,IAED,qBAAsB,CACrB,IACA,IAED,eAAgB,CACf,IACA,IAED,mBAAoB,CACnB,IACA,IAED,iBAAkB,CACjB,IACA,IAED,qBAAsB,CACrB,IACA,IAED,mBAAoB,CACnB,IACA,IAED,uBAAwB,CACvB,IACA,IAED,qBAAsB,CACrB,IACA,IAED,yBAA0B,CACzB,IACA,IAED,mBAAoB,CACnB,IACA,IAED,uBAAwB,CACvB,IACA,IAED,0BAA2B,CAC1B,IACA,IAED,8BAA+B,CAC9B,IACA,IAED,uBAAwB,CACvB,IACA,IAED,2BAA4B,CAC3B,IACA,IAED,kBAAmB,CAClB,IACA,IAED,sBAAuB,CACtB,IACA,IAED,iBAAkB,CACjB,IACA,IAED,qBAAsB,CACrB,IACA,IAED,qBAAsB,CACrB,IACA,IAED,yBAA0B,CACzB,IACA,IAED,oBAAqB,CACpB,IACA,IAED,wBAAyB,CACxB,IACA,IAED,iBAAkB,CACjB,IACA,IAED,qBAAsB,CACrB,IACA,IAED,wBAAyB,CACxB,IACA,IAED,4BAA6B,CAC5B,IACA,IAED,iBAAkB,CACjB,IACA,IAED,qBAAsB,CACrB,IACA,IAED,eAAgB,CACf,IACA,IAED,mBAAoB,CACnB,IACA,IAED,kBAAmB,CAClB,IACA,IAED,sBAAuB,CACtB,IACA,IAED,iBAAkB,CACjB,IACA,IAED,qBAAsB,CACrB,IACA,IAED,kBAAmB,CAClB,IACA,IAED,sBAAuB,CACtB,IACA,IAED,oBAAqB,CACpB,IACA,IAED,wBAAyB,CACxB,IACA,IAED,2BAA4B,CAC3B,IACA,IAED,+BAAgC,CAC/B,IACA,IAED,oBAAqB,CACpB,IACA,IAED,wBAAyB,CACxB,IACA,IAED,kBAAmB,CAClB,IACA,IAED,sBAAuB,CACtB,IACA,IAED,oBAAqB,CACpB,IACA,IAED,wBAAyB,CACxB,IACA,IAED,iBAAkB,CACjB,IACA,IAED,qBAAsB,CACrB,IACA,KAED,oBAAqB,CACpB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,iBAAkB,CACjB,IACA,KAED,qBAAsB,CACrB,IACA,KAED,iBAAkB,CACjB,IACA,KAED,qBAAsB,CACrB,IACA,KAED,oBAAqB,CACpB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,mBAAoB,CACnB,IACA,KAED,uBAAwB,CACvB,IACA,KAED,2BAA4B,CAC3B,IACA,KAED,+BAAgC,CAC/B,IACA,KAED,oBAAqB,CACpB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,sCAAuC,CACtC,IACA,KAED,0CAA2C,CAC1C,IACA,KAED,kBAAmB,CAClB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,qBAAsB,CACrB,IACA,KAED,yBAA0B,CACzB,IACA,KAED,oBAAqB,CACpB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,iBAAkB,CACjB,IACA,KAED,qBAAsB,CACrB,IACA,KAED,mBAAoB,CACnB,IACA,KAED,uBAAwB,CACvB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,0BAA2B,CAC1B,IACA,KAED,oBAAqB,CACpB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,qBAAsB,CACrB,IACA,KAED,yBAA0B,CACzB,IACA,KAED,iBAAkB,CACjB,IACA,KAED,qBAAsB,CACrB,IACA,KAED,kBAAmB,CAClB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,iBAAkB,CACjB,IACA,KAED,qBAAsB,CACrB,IACA,KAED,gBAAiB,CAChB,IACA,KAED,oBAAqB,CACpB,IACA,KAED,qBAAsB,CACrB,IACA,KAED,yBAA0B,CACzB,IACA,KAED,oBAAqB,CACpB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,kBAAmB,CAClB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,4BAA6B,CAC5B,IACA,KAED,qBAAsB,CACrB,IACA,KAED,yBAA0B,CACzB,IACA,KAED,kBAAmB,CAClB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,iBAAkB,CACjB,IACA,KAED,qBAAsB,CACrB,IACA,KAED,kBAAmB,CAClB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,kBAAmB,CAClB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,kBAAmB,CAClB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,uBAAwB,CACvB,IACA,KAED,2BAA4B,CAC3B,IACA,KAED,kBAAmB,CAClB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,qBAAsB,CACrB,IACA,KAED,yBAA0B,CACzB,IACA,KAED,iBAAkB,CACjB,IACA,KAED,qBAAsB,CACrB,IACA,KAED,gBAAiB,CAChB,IACA,KAED,oBAAqB,CACpB,IACA,KAED,eAAgB,CACf,IACA,KAED,mBAAoB,CACnB,IACA,KAED,kBAAmB,CAClB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,qBAAsB,CACrB,IACA,KAED,yBAA0B,CACzB,IACA,KAED,yBAA0B,CACzB,IACA,KAED,6BAA8B,CAC7B,IACA,KAED,wBAAyB,CACxB,IACA,KAED,4BAA6B,CAC5B,IACA,KAED,4BAA6B,CAC5B,IACA,KAED,gCAAiC,CAChC,IACA,KAED,mBAAoB,CACnB,IACA,KAED,uBAAwB,CACvB,IACA,KAED,gBAAiB,CAChB,IACA,KAED,oBAAqB,CACpB,IACA,KAED,uBAAwB,CACvB,IACA,KAED,2BAA4B,CAC3B,IACA,KAED,0BAA2B,CAC1B,IACA,KAED,8BAA+B,CAC9B,IACA,KAED,mBAAoB,CACnB,IACA,KAED,uBAAwB,CACvB,IACA,KAED,kBAAmB,CAClB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,mBAAoB,CACnB,IACA,KAED,uBAAwB,CACvB,IACA,KAED,mBAAoB,CACnB,IACA,KAED,uBAAwB,CACvB,IACA,KAED,iBAAkB,CACjB,IACA,KAED,qBAAsB,CACrB,IACA,KAED,mBAAoB,CACnB,IACA,KAED,uBAAwB,CACvB,IACA,KAED,oBAAqB,CACpB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,oBAAqB,CACpB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,mBAAoB,CACnB,IACA,KAED,uBAAwB,CACvB,IACA,KAED,mBAAoB,CACnB,IACA,KAED,uBAAwB,CACvB,IACA,KAED,kBAAmB,CAClB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,0BAA2B,CAC1B,IACA,KAED,oBAAqB,CACpB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,kBAAmB,CAClB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,4BAA6B,CAC5B,IACA,KAED,kBAAmB,CAClB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,qBAAsB,CACrB,IACA,KAED,yBAA0B,CACzB,IACA,KAED,iBAAkB,CACjB,IACA,KAED,qBAAsB,CACrB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,0BAA2B,CAC1B,IACA,KAED,sBAAuB,CACtB,IACA,KAED,0BAA2B,CAC1B,IACA,KAED,+BAAgC,CAC/B,IACA,KAED,mCAAoC,CACnC,IACA,KAED,oBAAqB,CACpB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,oBAAqB,CACpB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,iBAAkB,CACjB,IACA,KAED,qBAAsB,CACrB,IACA,KAED,mBAAoB,CACnB,IACA,KAED,uBAAwB,CACvB,IACA,KAED,oBAAqB,CACpB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,4BAA6B,CAC5B,IACA,KAED,kBAAmB,CAClB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,kBAAmB,CAClB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,6BAA8B,CAC7B,IACA,KAED,iCAAkC,CACjC,IACA,KAED,kBAAmB,CAClB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,kBAAmB,CAClB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,mBAAoB,CACnB,IACA,KAED,uBAAwB,CACvB,IACA,KAED,iBAAkB,CACjB,IACA,KAED,qBAAsB,CACrB,IACA,KAED,iBAAkB,CACjB,IACA,KAED,qBAAsB,CACrB,IACA,KAED,kBAAmB,CAClB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,4BAA6B,CAC5B,IACA,KAED,mBAAoB,CACnB,IACA,KAED,uBAAwB,CACvB,IACA,KAED,oBAAqB,CACpB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,gBAAiB,CAChB,IACA,KAED,oBAAqB,CACpB,IACA,KAED,oBAAqB,CACpB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,oBAAqB,CACpB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,oBAAqB,CACpB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,uBAAwB,CACvB,IACA,KAED,2BAA4B,CAC3B,IACA,KAED,oBAAqB,CACpB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,kBAAmB,CAClB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,4BAA6B,CAC5B,IACA,KAED,iBAAkB,CACjB,IACA,KAED,qBAAsB,CACrB,IACA,KAED,oBAAqB,CACpB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,mBAAoB,CACnB,IACA,KAED,uBAAwB,CACvB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,4BAA6B,CAC5B,IACA,KAED,wBAAyB,CACxB,IACA,KAED,4BAA6B,CAC5B,IACA,KAED,wBAAyB,CACxB,IACA,KAED,4BAA6B,CAC5B,IACA,KAED,oBAAqB,CACpB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,4BAA6B,CAC5B,IACA,KAED,sBAAuB,CACtB,IACA,KAED,0BAA2B,CAC1B,IACA,KAED,iBAAkB,CACjB,IACA,KAED,qBAAsB,CACrB,IACA,KAED,oBAAqB,CACpB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,kBAAmB,CAClB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,oBAAqB,CACpB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,eAAgB,CACf,IACA,KAED,mBAAoB,CACnB,IACA,KAED,iBAAkB,CACjB,IACA,KAED,qBAAsB,CACrB,IACA,KAED,kBAAmB,CAClB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,eAAgB,CACf,IACA,KAED,mBAAoB,CACnB,IACA,KAED,oBAAqB,CACpB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,mBAAoB,CACnB,IACA,KAED,uBAAwB,CACvB,IACA,KAED,mBAAoB,CACnB,IACA,KAED,uBAAwB,CACvB,IACA,KAED,kBAAmB,CAClB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,iBAAkB,CACjB,IACA,KAED,qBAAsB,CACrB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,0BAA2B,CAC1B,IACA,KAED,4BAA6B,CAC5B,IACA,KAED,gCAAiC,CAChC,IACA,KAED,kBAAmB,CAClB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,kBAAmB,CAClB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,iBAAkB,CACjB,IACA,KAED,qBAAsB,CACrB,IACA,KAED,kBAAmB,CAClB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,mBAAoB,CACnB,IACA,KAED,uBAAwB,CACvB,IACA,KAED,oBAAqB,CACpB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,kBAAmB,CAClB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,2BAA4B,CAC3B,IACA,KAED,+BAAgC,CAC/B,IACA,KAED,uBAAwB,CACvB,IACA,KAED,2BAA4B,CAC3B,IACA,KAED,oBAAqB,CACpB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,0BAA2B,CAC1B,IACA,KAED,2BAA4B,CAC3B,IACA,KAED,+BAAgC,CAC/B,IACA,KAED,iBAAkB,CACjB,IACA,KAED,qBAAsB,CACrB,IACA,KAED,oBAAqB,CACpB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,4BAA6B,CAC5B,IACA,KAED,iBAAkB,CACjB,IACA,KAED,qBAAsB,CACrB,IACA,KAED,iBAAkB,CACjB,IACA,KAED,qBAAsB,CACrB,IACA,KAED,oBAAqB,CACpB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,mBAAoB,CACnB,IACA,KAED,uBAAwB,CACvB,IACA,KAED,mBAAoB,CACnB,IACA,KAED,uBAAwB,CACvB,IACA,KAED,2BAA4B,CAC3B,IACA,KAED,+BAAgC,CAC/B,IACA,KAED,mBAAoB,CACnB,IACA,KAED,uBAAwB,CACvB,IACA,KAED,iBAAkB,CACjB,IACA,KAED,qBAAsB,CACrB,IACA,KAED,iBAAkB,CACjB,IACA,KAED,qBAAsB,CACrB,IACA,KAED,qBAAsB,CACrB,IACA,KAED,yBAA0B,CACzB,IACA,KAED,kBAAmB,CAClB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,iBAAkB,CACjB,IACA,KAED,qBAAsB,CACrB,IACA,KAED,iBAAkB,CACjB,IACA,KAED,qBAAsB,CACrB,IACA,KAED,oBAAqB,CACpB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,kBAAmB,CAClB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,4BAA6B,CAC5B,IACA,KAED,kBAAmB,CAClB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,mBAAoB,CACnB,IACA,KAED,uBAAwB,CACvB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,0BAA2B,CAC1B,IACA,KAED,qBAAsB,CACrB,IACA,KAED,yBAA0B,CACzB,IACA,KAED,kBAAmB,CAClB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,iBAAkB,CACjB,IACA,KAED,qBAAsB,CACrB,IACA,KAED,0BAA2B,CAC1B,IACA,KAED,8BAA+B,CAC9B,IACA,KAED,kBAAmB,CAClB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,kBAAmB,CAClB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,mBAAoB,CACnB,IACA,KAED,uBAAwB,CACvB,IACA,KAED,kBAAmB,CAClB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,oBAAqB,CACpB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,kBAAmB,CAClB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,iBAAkB,CACjB,IACA,KAED,qBAAsB,CACrB,IACA,MAGF,SAASC,EAAoBC,GAC5B,IAAIC,EAAoBC,EAAEJ,EAAKE,GAC9B,OAAOG,QAAQC,UAAUC,MAAK,WAC7B,IAAIC,EAAI,IAAIC,MAAM,uBAAyBP,EAAM,KAEjD,MADAM,EAAEE,KAAO,mBACHF,KAIR,IAAIG,EAAMX,EAAIE,GAAMU,EAAKD,EAAI,GAC7B,OAAOR,EAAoBK,EAAEG,EAAI,IAAIJ,MAAK,WACzC,OAAOJ,EAAoBU,EAAED,EAAI,MAGnCX,EAAoBa,KAAO,WAC1B,OAAOC,OAAOD,KAAKd,IAEpBC,EAAoBW,GAAK,GACzBI,EAAOC,QAAUhB,G,oKCrpDJiB,EAAmBC,IAAMC,cAbhB,CACnBC,QAAQ,EACRC,SAAU,GACVC,IAAI,GACJC,KAAK,GACLC,aAAc,GACdC,SAAU,GACVC,YAAa,GACbC,iBAAkB,GAClBC,kBAAmB,GACnBC,gBAAiB,KCRpBC,QAAQC,IAAIC,cACL,IAAMC,EACqCC,OAAOC,SAASC,KAUrDC,EAAiB,UANE,OAMF,cAA4BH,OAAOC,SAASG,SAA5C,YAAwDL,EAAxD,YAFA,gB,2BCNf,SAASM,EAASC,GAC/B,IAAMC,EAAiB,CACrB,CACEC,KAAM,wBACNC,KACE,kBAACC,EAAA,EAAD,CACEC,MAAO,CAAEC,MAAO,OAAQC,SAAU,UAGtCC,MAAO,gBAET,CACEN,KAAM,sBACNC,KACE,kBAACM,EAAA,EAAD,CACEJ,MAAO,CAAEC,MAAO,OAAQC,SAAU,UAGtCC,MAAO,YAET,CACEN,KAAM,kBACNC,KACE,kBAACO,EAAA,EAAD,CAAaL,MAAO,CAAEC,MAAO,OAAQC,SAAU,UAEjDC,MAAO,SAIX,OACE,yBAAKG,UAAU,4KACb,yBACEA,UAAU,8DACVC,QAAS,SAACC,GACRb,EAAMc,YAAYC,QAAQC,KAAK,gBAGjC,yBAAKL,UAAU,mCACf,yBAAKA,UAAU,iEACb,0BAAMA,UAAU,6CAAhB,OADF,WAKF,yBAAKA,UAAU,iGACZV,EAAe1C,KAAI,SAAC0D,GACnB,OACE,kBAAC,IAAD,CACEC,GAAE,UAAKD,EAAMf,MACbiB,OAAK,EACLC,gBAAgB,cAChBT,UAAU,4DACVU,IAAKJ,EAAMT,OAEX,yBAAKG,UAAU,0CACb,yBAAKA,UAAU,WAAWM,EAAMd,MAChC,yBAAKQ,UAAU,yDACZM,EAAMT,cC1DV,SAASc,EAAYtB,GAAQ,IAAD,EACbuB,qBAAW9C,GAA/B+C,EADiC,EACjCA,MAAOC,EAD0B,EAC1BA,SAD0B,EAEJC,mBAAS,IAFL,mBAElCC,EAFkC,KAEnBC,EAFmB,OAGJF,mBAAS,IAHL,mBAGlCG,EAHkC,KAGnBC,EAHmB,OAICJ,oBAAS,GAJV,mBAIlCK,EAJkC,KAInBC,EAJmB,OAKGN,oBAAS,GALZ,mBAKlCO,EALkC,KAKlBC,EALkB,KAOnCC,EAAcC,mBACdC,EAAcD,mBACdE,EAAeF,mBAiErB,SAASG,IACPP,GAAiB,GACjBE,GAAkB,GAqBpB,OACE,yBAAKvB,UAAU,kJACb,yBAAKA,UAAU,mBAnBbsB,EAEA,yBAAKtB,UAAU,6HAAf,kBAIOoB,EAEP,yBAAKpB,UAAU,uHAAf,oCAKK,KAQL,yBAAKA,UAAU,2DAAf,sBAGA,6BACE,2BACExC,GAAG,eACHqE,KAAK,OACLC,YAAY,0BACZ9B,UAAU,8EACV+B,SAAU,SAAC7B,GACTe,EAAYf,EAAM8B,OAAOC,QAE3BC,IAAKV,EACLvB,QAAS,WACP2B,QAIN,6BACE,2BACEpE,GAAG,eACHqE,KAAK,OACLC,YAAY,wBACZ9B,UAAU,8EACV+B,SAAU,SAAC7B,GACTiB,EAAYjB,EAAM8B,OAAOC,QAE3BC,IAAKR,EACLzB,QAAS,WACP2B,QAIN,yBAAK5B,UAAU,uBACb,2BACExC,GAAG,YACHqE,KAAK,WACLI,MAAM,WACNC,IAAKP,IAEP,2BACEQ,QAAQ,YACRnC,UAAU,8CAFZ,+CAOF,yBAAKA,UAAU,0DACb,yBACEA,UAAU,6EACVxC,GAAG,eACHyC,QAAS,WACPZ,EAAM+C,YAAW,KAJrB,SASA,yBACEpC,UAAU,iFACVxC,GAAG,gBACHyC,QAAS,YAtJnB,SAAsBoC,EAAUC,GAC9B,GAAID,GAAYC,EAAU,CACxB,IAAIC,GAAY,EAEZZ,EAAaa,QAAQC,UACvBF,GAAY,GAGd,IAAIG,EAAUC,KAAKC,UACjBD,KAAKC,UAAU,CAAEP,WAAUC,WAAUC,eAGvCM,IAAM,CACJC,IAAK5D,EACL6D,OAAQ,OACRC,KAAM,CACJC,MAAM,6EAAD,OFXe,WEWf,uBAEqDP,EAFrD,yIAWNvF,MAAK,SAAC+F,GACL,GAAIA,EAAIF,MAAQE,EAAIF,KAAKA,OAASE,EAAIF,KAAKG,MAAO,CAAC,IACzCC,EAAYF,EAAIF,KAAKA,KAAKK,aAAaC,QAAvCF,QAEJA,IAAYA,EAAQG,MAAM,UAC5BhC,GAAkB,GAClBF,GAAiB,GACjBG,EAAYgB,QAAQP,MAAQ,GAC5BP,EAAYc,QAAQP,MAAQ,GAC5BN,EAAaa,QAAQP,MAAQ,GAE7BnB,EAAS,CACP0C,OCjDmB,sBDkDnBd,QAAS,KAGX/D,QAAQC,IAAIiC,EAAMtC,eAElB8C,GAAiB,GACjBE,GAAkB,SAGpBF,GAAiB,GACjBE,GAAkB,MAGrBkC,OAAM,SAACC,GACN/E,QAAQC,IAAI8E,GACZrC,GAAiB,GACjBE,GAAkB,WAGtBF,GAAiB,GA4FTsC,CAAa3C,EAAeE,KAJhC,a,kCExJK,SAAS0C,EAASvE,GAC/BwE,IAAQC,IAAIC,IAAKC,KADqB,IAE9BC,EAAa5E,EAAb4E,SAF8B,EAIMlD,mBAAS,IAJf,mBAI/BmD,EAJ+B,KAIfC,EAJe,KAMtCC,qBAAU,WACR,IAAIC,EAAShF,EAAM4E,SAASzG,GACtBkF,EAAUC,KAAKC,UAAUD,KAAKC,UAAU,CAAEyB,OAAQA,KAGlDC,EADQzB,IAAM0B,YACCD,SA8BrB,OA5BAzB,IAAM,CACJC,IAAK5D,EACL6D,OAAQ,OACRyB,QAAS,CACP,eAAgB,oBAElBC,YAAaH,EAAOI,MACpB1B,KAAM,CACJC,MAAM,yGAAD,OJVqB,eIUrB,uBAI6DP,EAJ7D,4PAeNvF,MAAK,SAAC+F,GACLiB,EAAkBjB,EAAIF,KAAKA,KAAKK,aAAasB,kBAE9ClB,OAAM,SAACC,OAEH,WACLY,EAAOM,YAER,CAACvF,IAEJ,IAAMgD,EAAW4B,EAAS5B,SACtBwC,EAAS,GAEb,GAAIxC,EACF,GAAIA,EAASyC,MAAM,KAAKC,OAAS,EAAG,CAClC,IAAIC,EAAW3C,EAASyC,MAAM,KAE9BD,GADAA,EAASG,EAAS,GAAGC,UAAU,EAAG,GAAKD,EAAS,GAAGC,UAAU,EAAG,IAChDC,mBAEhBL,EAASxC,EAAS4C,UAAU,EAAG,GAAGC,cAItC,OACE,kBAAC,IAAD,CACE3E,GAAE,gCAA2B0D,EAASzG,IACtCwC,UAAU,sJACVU,IAAKuD,EAAS5B,UAEd,yBAAKrC,UAAU,gFACZ6E,GAEH,yBAAK7E,UAAU,sFACZiE,EAAS5B,UAEZ,yBAAKrC,UAAU,yFACb,yBAAKA,UAAU,sFACb,kBAAC,IAAD,CACEA,UAAU,UACVR,KAAM,CAAC,MAAO,gBAEhB,yBAAKQ,UAAU,kDACZkE,EAAeiB,gBADlB,aAIF,yBAAKnF,UAAU,yEACb,kBAAC,IAAD,CACEA,UAAU,UACVR,KAAM,CAAC,MAAO,cAEhB,yBAAKQ,UAAU,kDACZkE,EAAekB,qBADlB,mBAIF,yBAAKpF,UAAU,sFACb,kBAAC,IAAD,CACEA,UAAU,UACVR,KAAM,CAAC,MAAO,iBAEhB,yBAAKQ,UAAU,iEACZkE,EAAemB,qBCjGb,SAASC,EAAcjG,GAAQ,IAAD,EACnB0B,mBAAS,IADU,mBACpCwE,EADoC,KAC9BC,EAD8B,OAECzE,oBAAS,GAFV,mBAEpC0E,EAFoC,KAEpBC,EAFoB,KAInC5E,EAAaF,qBAAW9C,GAAxBgD,SAERsD,qBAAU,WACR,IAAMuB,EAAezG,EAGfoF,EADQzB,IAAM0B,YACCD,SA4CrB,OA1CAzB,IAAM,CACJC,IAAK6C,EACL5C,OAAQ,OACR0B,YAAaH,EAAOI,MACpB1B,KAAM,CACJC,MAAM,yEAAD,OLPmB,aKOnB,uKAYN9F,MAAK,SAAC+F,GACP,IAAM0C,EAAc1C,EAAIF,KAAKA,KAAKK,aAAawC,UAE/C,GAAID,EAAa,CAAC,IACRvB,EAAqBuB,EAArBvB,OAAQhC,EAAauD,EAAbvD,SACZyD,EAAc,GAElBzB,EAAO0B,SAAQ,SAACzF,EAAO0F,GACrBF,EAAYzF,KAAK,CAAE7C,GAAI8C,EAAO+B,SAAUA,EAAS2D,QAGnDR,EAAQM,GAERhF,EAAS,CACPe,KF/CyB,sBEgDzBa,QAAS,KAGX5B,EAAS,CACP0C,OFzDkB,eE0DlBd,QAAQ,GAAD,OAAMoD,SAKZ,WACLxB,EAAOM,YAER,CAACa,EAAgB3E,IAkDpB,OACE,yBAAKd,UAAU,kEACXyF,EAGA,kBAAC9E,EAAD,CAAsByB,WATN,SAAC6D,GACrBP,EAAkBO,MA7CM,WACxB,IAAMC,EAAYX,EAElB,OACE,oCACE,yBAAKvF,UAAU,sDACb,oCACGkG,EAAUnB,OAAS,EAClB,oCACGmB,EAAUtJ,KAAI,SAAC0D,GACd,OAAO,kBAACsD,EAAD,CAAUlD,IAAKJ,EAAM9C,GAAIyG,SAAU3D,QAI9C,yBAAKN,UAAU,sGAAf,iDAMN,oCACE,yBACExC,GAAG,gBACHwC,UAAU,iOACVC,QAAS,WACPyF,GAAkB,IAEpBS,aAAc,SAACjG,GACbA,EAAMkG,kBACNlG,EAAMmG,iBAENnG,EAAM8B,OAAOsE,WADJ,uLAGXC,aAAc,SAACrG,GACbA,EAAM8B,OAAOsE,UAAY,MAb7B,OA8BFE,ICtHO,SAASC,EAAUpH,GAAQ,IAAD,EACOA,EAAMqH,OAA5CxI,EAD+B,EAC/BA,SAAUyI,EADqB,EACrBA,WAAYC,EADS,EACTA,YAExBtI,EAAW,CACf,CACEuB,MAAO,WACPoC,MAAO/D,GAET,CACE2B,MAAO,MACPoC,MAAO0E,GAET,CACE9G,MAAO,OACPoC,MAAO2E,IAIX,OACE,oCACE,yBAAK5G,UAAU,yHACb,yBAAKA,UAAU,wKACZ1B,EAAS1B,KAAI,SAAC0D,GACb,OACE,yBACEI,IAAKJ,EAAMT,MACXG,UAAU,8DAEV,yBAAKA,UAAU,0JACZM,EAAMT,OAEQ,KAAhBS,EAAM2B,MACL,yBACEjC,UAAU,8FACVxC,GAAE,oBAAe8C,EAAMT,QAEtBS,EAAM2B,OAGT,yBAAKjC,UAAU,oDAAf,gBAahB,WACE,GAAI9B,GAAYyI,GAAcC,EAC5B,OAAO,kBAACtB,EAAD,CAAenF,YAAad,IAPhCwH,KC5CM,SAASC,IAGtB,OAFAjD,IAAQC,IAAIE,IAAKD,KAGf,yBAAK/D,UAAU,2FACb,yBAAKA,UAAU,sEACb,kBAAC,IAAD,CAAiBR,KAAM,CAAC,MAAO,qBAC/B,yBAAKQ,UAAU,uBAAf,qBAEF,yBAAKA,UAAU,cACb,yBAAKA,UAAU,oCAAf,qCAGA,0BAAMA,UAAU,4BAAhB,gEAGA,0BAAMA,UAAU,mGACd,uBACE+G,KAAK,0EACL/E,OAAO,SACPgF,IAAI,uBAHN,mBAUJ,yBAAKhH,UAAU,4CACb,yBAAKA,UAAU,oDAAf,oDAGA,yBAAKA,UAAU,+CACb,yBAAKA,UAAU,oCAAf,6BAIA,uBACE+G,KAAK,6BACL/E,OAAO,SACPgF,IAAI,uBAEJ,yBAAKhH,UAAU,iJACb,kBAAC,IAAD,CAAiBR,KAAM,CAAC,MAAO,aAC/B,yBAAKQ,UAAU,6BAAf,eAMR,yBAAKA,UAAU,4CACb,yBAAKA,UAAU,kDAAf,oGAIA,uBACE+G,KAAK,uDACL/E,OAAO,SACPgF,IAAI,uBAEJ,yBAAKhH,UAAU,4KACb,kBAAC,IAAD,CAAiBR,KAAM,CAAC,MAAO,YAC/B,yBAAKQ,UAAU,QAAf,sBAKN,yBAAKA,UAAU,4CACb,yBAAKA,UAAU,oEAAf,4GAKA,yBAAKA,UAAU,sEACb,uBACE+G,KAAK,wCACL/E,OAAO,SACPgF,IAAI,sBACJhH,UAAU,iLAEV,yBAAKA,UAAU,qGACb,kBAAC,IAAD,CAAiBR,KAAM,CAAC,MAAO,YAEjC,yBAAKQ,UAAU,8BAAf,iBAGF,uBACE+G,KAAK,+CACL/E,OAAO,SACPgF,IAAI,sBACJhH,UAAU,iLAEV,yBAAKA,UAAU,sGACb,kBAAC,IAAD,CAAiBR,KAAM,CAAC,MAAO,cAEjC,yBAAKQ,UAAU,8BAAf,wB,6DCtFG,SAASiH,IAAwB,IAAD,EACjBrG,qBAAW9C,GAA/B+C,EADqC,EACrCA,MAAOC,EAD8B,EAC9BA,SACTuD,EAASxD,EAAMxC,aAFwB,EAIL0C,mBAAS,IAJJ,mBAItCmG,EAJsC,KAIxBC,EAJwB,OAKHpG,mBACxC,8CAN2C,mBAKtCqG,EALsC,KAKvBC,EALuB,OAQKtG,mBAAS,IARd,mBAQtCuG,EARsC,KAQnBC,EARmB,OASDxG,mBAAS,IATR,mBAStCyG,EATsC,KAStBC,EATsB,OAUP1G,oBAAS,GAVF,mBAUtC2G,EAVsC,KAUzBC,EAVyB,OAWD5G,oBAAS,GAXR,mBAWtC6G,EAXsC,KAWtBC,EAXsB,OAYT9G,mBAAS,IAZA,mBAYtC+G,EAZsC,KAY1BC,EAZ0B,OAarBhH,mBAAS,IAbY,mBAatCiH,EAbsC,KAahCC,EAbgC,KAevCC,EAAW,CACfC,GAAI,aACJC,KAAM,OACNC,GAAI,SACJC,EAAG,IACHC,IAAK,MACLC,GAAI,KACJC,KAAM,OACNC,GAAI,aACJC,KAAM,OACNC,IAAK,MACLC,KAAM,SACNC,KAAM,OACNC,IAAK,SACLC,KAAM,OACNC,IAAK,OACLC,GAAI,OACJC,IAAK,MACLC,GAAI,SACJC,IAAK,SACLC,IAAK,SACLC,GAAI,SACJC,GAAI,eACJC,IAAK,OAGPrF,qBAAU,WACR,IAAIC,EAASxD,EAAMxC,aAEnBwJ,GAAkB,GAClBJ,EAAkB,IAClBF,EAAqB,8CACrBF,EAAiB,8CACjB,IAAIqC,EAAcxK,EAClB,GAAImF,EAAQ,CACV,IAAM3B,EAAUC,KAAKC,UAAUD,KAAKC,UAAU,CAAEyB,OAAQA,KAExDxB,IAAM,CACJC,IAAK4G,EACL3G,OAAQ,OACRyB,QAAS,CACP,eAAgB,oBAElBxB,KAAM,CACJC,MAAM,yEAAD,ORjDwB,oBQiDxB,sBAE2DP,EAF3D,wJAYNvF,MAAK,SAAC+F,GACL,GAAIA,GACEA,EAAIF,KAAKA,OAASE,EAAIF,KAAKG,MAAO,CACpC,IACQwG,EADMzG,EAAIF,KAAKA,KAAKK,aAAauG,WACjCD,gBACRxC,EAAgB,YAAIwC,IACpBhC,GAAe,GACf7G,EAAS,CAAEe,KLzFQ,oBKyFiBa,QAASiH,QAIlDlG,OAAM,SAACC,GACN,OAAOA,QAGZ,CAAC7C,EAAMxC,aAAcyC,IAgCxB,IAAM+I,EAAmB,SAACC,GACxB,IAAMC,EAAWD,EAAShF,MAAM,KAAKgF,EAAShF,MAAM,KAAKC,OAAS,GAElE,GAAIgF,EAEF,OADAlC,GAAkB,GACdkC,KAAY7B,EACPA,EAAS6B,GAET,UA8Kb,OACE,oCACG7C,GAAgBA,EAAanC,OAAS,EACrC,oCACE,yBAAK/E,UAAU,sCACb,yBAAKA,UAAU,4EAvNrB,oCACGkH,EAAanC,QAAU,GACtBmC,EAAatK,KAAI,SAAC0D,GAChB,GAAIA,GAAiC,MAAxBA,EAAMwE,MAAM,KAAK,GAAY,CACxC,IAAIkF,EAAY1J,EAAMwE,MAAM,KAAK,GAEjC,OACE,yBACE9E,UAAS,qEACPgK,IAAcxC,EAJE,4CAI+B,IAEjDvH,QAAS,WACPwH,EAAkBuC,GA6BpC,SAA+B3F,EAAQyF,GACrC,IAAMJ,EAAcxK,EACpB2I,GAAkB,GAElB,IAAMnF,EAAUC,KAAKC,UACnBD,KAAKC,UAAU,CAAEyB,OAAQA,EAAQyF,SAAUA,KAG7CjH,IAAM,CACJC,IAAK4G,EACL3G,OAAQ,OACRyB,QAAS,CACP,eAAgB,oBAElBxB,KAAM,CACJC,MAAM,qEAAD,ORvIuB,iBQuIvB,sBAEwDP,EAFxD,qKAaNvF,KApBH,+BAAA8M,EAAA,MAoBQ,WAAO/G,GAAP,qBAAA+G,EAAA,0DACA/G,EAAIF,KAAKA,MAASE,EAAIF,KAAKG,MAD3B,sBAKED,EAAIF,KAAKA,KAAKK,aAAa6G,mBAF7BC,EAHA,EAGAA,SACAC,EAJA,EAIAA,SAGkB,YAAhBD,EAAS,IAAoC,YAAhBC,EAAS,GAPxC,gBAQArC,EACE,kFATF,8BAYAV,EAAiB8C,EAAS,IAC1B5C,EAAqB6C,GAEjBC,EAAeR,EAAiBC,GAfpC,UAiBM,MAAO,WAA8BO,EAAe,OACvDlN,MAAK,eACLsG,OAAM,SAACC,GACN/E,QAAQC,IAAI8E,MApBhB,QAuBAuE,EAAQoC,GAvBR,gCA0BFtC,EACE,4EA3BA,4CApBR,uDAmDGtE,OAAM,SAACC,GACN/E,QAAQC,IAAI8E,GACZqE,EACE,+EA1FUuC,CAAsBjG,EAAQ2F,IAEhCtJ,IAAKsJ,GAEJA,GAIL,OAAO,UAsMPxC,EAKA,GAJA,yBAAKxH,UAAU,qFAAf,iDAOD8H,EACC,yBAAK9H,UAAU,sGACZ8H,GAED,KAEHV,GACiB,+CAAlBA,IACCU,EACC,yBAAK9H,UAAU,+BACZoH,EAjIf,WACE,GAAIA,GAAiBA,EAAcmD,SAAS,KAAM,CAChD,IAAIC,EAAYpD,EAActC,MAAM,KAEpC,OACE,yBAAK9E,UAAU,yGACb,0BAAMA,UAAU,4BAA4BwK,EAAU,IACrDA,EAAUC,MAAM,EAAGD,EAAUzF,QAAQnI,KAAI,SAAC8N,GACzC,OAAIA,EAAMnH,MAAM,WAEZ,0BAAM7C,IAAG,UAAKgK,EAAL,aAAc,IAAIC,MAAOC,YAChC,0BAAM5K,UAAU,QAAQ0K,EAAMG,WAAW/F,MAAM,KAAK,IACpD,0BAAM9E,UAAU,0CAAhB,mBAOF,0BAAMU,IAAG,UAAKgK,EAAL,aAAc,IAAIC,MAAOC,YAChC,0BAAM5K,UAAU,QAAQ0K,EAAMG,WAAW/F,MAAM,KAAK,IACpD,0BAAM9E,UAAU,wCAAhB,uBA4Ge8K,GAAe,GAC/BxD,GAEC,+CADFA,EAEE,yBAAKtH,UAAU,uDApG/B,WACE,IAAI+K,EAAa,GA6DjB,OA3DEzD,GACAA,EAAkB0D,KAAK,IAAIlG,MAAM,aACjC8C,GACAI,IAOA+C,EALezD,EACZ0D,KAAK,wBACLlG,MAAM,YAAY,GAClBA,MAAM,wBAEalI,KAAI,SAACqO,GACzB,MAAgB,MAAZA,EAAK,GAEL,yBAAKjL,UAAU,wBAAwBU,IAAG,UAAKuK,EAAL,YAAaC,gBACrD,6BACE,0BACEC,wBAAyB,CACvBC,OAAQC,YACNJ,EAAKK,QAAQ,IAAK,IAClBD,YAAgBrD,GAChBA,QAOS,MAAZiD,EAAK,GAEZ,yBAAKjL,UAAU,sBAAsBU,IAAG,UAAKuK,EAAL,YAAaC,gBACnD,6BACE,0BACEC,wBAAyB,CACvBC,OAAQC,YACNJ,EAAKK,QAAQ,IAAK,IAClBD,YAAgBrD,GAChBA,QASV,yBAAKhI,UAAU,wBAAwBU,IAAG,UAAKuK,EAAL,YAAaC,gBACrD,6BACE,0BACEC,wBAAyB,CACvBC,OAAQC,YAAgBJ,EAAMI,YAAgBrD,GAAOA,YAWnE,yBAAKhI,UAAU,0BACb,8BAAO+K,IAqCMQ,IAGH,IAIJ,KAKN,oCACG7D,EACC,yBAAK1H,UAAU,+EACb,gFAEA,OCpWC,SAASwL,EAAgBnM,GAAQ,IACtCgF,EAAWhF,EAAXgF,OADqC,EAGftD,oBAAS,GAHM,mBAGtC0K,EAHsC,KAG7BC,EAH6B,OAIG3K,mBAAS,IAJZ,mBAItC4K,EAJsC,KAIpBC,EAJoB,OAKT7K,oBAAS,GALA,mBAKtC8K,EALsC,KAK1BC,EAL0B,OAMP/K,oBAAS,GANF,mBAMtCgL,EANsC,KAMzBC,EANyB,OAOHjL,oBAAS,GAPN,mBAOtCkL,EAPsC,KAOvBC,EAPuB,KASvCC,EAAY1K,mBAmJlB,OAjJA2C,qBAAU,WACR,IAAM1B,EAAUC,KAAKC,UAAUD,KAAKC,UAAU,CAAEyB,OAAQhF,EAAMgF,UAExDC,EADczB,IAAM0B,YACCD,SAkC3B,OAhCAzB,IAAM,CACJC,IAAK5D,EACL6D,OAAQ,OACRyB,QAAS,CACP,eAAgB,oBAElBC,YAAaH,EAAOI,MACpB1B,KAAM,CACJC,MAAM,yEAAD,OTJyB,mBSIzB,sBAE4DP,EAF5D,0JAYNvF,MAAK,SAAC+F,GAAS,IACNkJ,EAAgBlJ,EAAIF,KAAKA,KAAKK,aAAagJ,eAA3CD,YACRV,GAAW,GAEPU,GAAeA,EAAYrH,OAAS,GACtC6G,EAAoB,YAAIQ,OAG3B3I,OAAM,SAACC,GACNgI,GAAW,MAGR,WACLpH,EAAOM,YAER,CAACvF,IA0GF,yBAAKW,UAAU,oDACZ2L,GAAoBA,EAAiB5G,OAAS,EArEnD,WACE,GAAI4G,GAAoBA,EAAiB5G,OAAS,EAAG,CACnD,IAAMuH,EAAcX,EAAiB5G,OAErC,OACE,oCACI8G,EAoDA,yBAAK7L,UAAU,gEAAf,8BAnDA,yBAAKA,UAAU,0CACb,yBAAKA,UAAU,yCACZsM,EADH,yBAGA,yBAAKtM,UAAU,gBAAgBN,MAAO,CAAE6M,OAAQ,UAC7CZ,EAAiB/O,KAAI,SAAC4P,GACrB,OACE,yBACExM,UAAU,2EACVU,IAAK8L,GAEJA,OAKT,yBAAKxM,UAAU,gBAAf,kBACA,8BACEA,UAAU,uEACV8B,YAAY,uBACZ2K,KAAK,KACLC,KAAK,IACLxK,IAAKiK,IAENJ,EACC,yBAAK/L,UAAU,sFAAf,kBAGE,KACHiM,EACC,yBAAKjM,UAAU,sHAAf,yBAIA,yBACEA,UAAU,uHACVC,QAAS,SAACC,GACR,IAAMyM,EAAYR,EAAU3J,QAAQP,MAEhC0K,EAlFtB,SAAuBA,GACrBT,GAAiB,GACbS,EAAU7H,MAAM,OAAS6H,EAAU7H,MAAM,MAAMC,OAAS,IAC1D4H,EAAYA,EAAU9B,WAAW/F,MAAM,MAAMkG,KAAK,OAGpDnI,IAAM,CACJC,IAAK5D,EACL6D,OAAQ,OACRC,KAAM,CACJC,MAAM,+EAAD,OAEwBoB,EAFxB,8BAEoDsI,EAFpD,gCAONxP,MAAK,SAAC+F,GACLgJ,GAAiB,GAGfhJ,EAAIF,KAAKA,OACRE,EAAIF,KAAKG,OACsB,gBAAhCD,EAAIF,KAAKA,KAAK4J,cAEdd,GAAc,GAEdE,GAAe,MAGlBvI,OAAM,SAACC,GACNwI,GAAiB,GACjBF,GAAe,MAmDDa,CAAcF,GAEdG,MAAM,mCARZ,qBA6BRC,GAEA,yBAAK/M,UAAU,mGACZyL,EACC,oDAEA,6DCpKG,SAASuB,EAAc3N,GAAQ,IACpCgF,EAAWhF,EAAXgF,OADmC,EAGPtD,qBAHO,mBAGpCkM,EAHoC,KAGxBC,EAHwB,OAILnM,oBAAS,GAJJ,mBAIpCoM,EAJoC,KAIvBC,EAJuB,OAKLrM,oBAAS,GALJ,mBAKpCsM,EALoC,KAKvBC,EALuB,OAMGvM,mBAAS,IANZ,mBAMpCwM,EANoC,KAMnBC,EANmB,OAODzM,oBAAS,GAPR,mBAOpC0M,EAPoC,KAOrBC,EAPqB,OASX3M,oBAAS,GATE,mBASpC4M,EAToC,KAS1BC,EAT0B,OAUP7M,oBAAS,GAVF,mBAUpC8M,EAVoC,KAUxBC,EAVwB,OAWb/M,oBAAS,GAXI,mBAWpC0K,EAXoC,KAW3BC,EAX2B,KAarCqC,EAAYtM,mBACZuM,EAAYvM,mBAuGlB,SAASwM,EAAYC,GACnB,IAMMC,EAAcD,EAAOpJ,MAAM,MAejC,OACE,yBAAK9E,UAAU,kDAtBE,CACjB,cACA,gBACA,mBACA,kBAmBcpD,KAAI,SAACiD,EAAOmG,GACtB,OAhBoBoI,EAgBIvO,EAhBEwO,EAgBKF,EAAYnI,GAd7C,yBAAKhG,UAAU,sBAAsBU,IAAK0N,GACxC,yBAAKpO,UAAU,4DACZoO,GAEH,yBAAKpO,UAAU,kDACZqO,IAPgB,IAACD,EAAMC,MAwDlC,OAtKAjK,qBAAU,WACR,IAAI1B,EAAUC,KAAKC,UAAUD,KAAKC,UAAU,CAAEyB,OAAQhF,EAAMgF,UAE5DxB,IAAM,CACJC,IAAK5D,EACL6D,OAAQ,OACRyB,QAAS,CACP,eAAgB,oBAElBxB,KAAM,CACJC,MAAM,mGAAD,OVXqB,eUWrB,uBAG6DP,EAH7D,qRAeNvF,MAAK,SAAC+F,GACL,IAAMoL,EAAcpL,EAAIF,KAAKA,KAAKK,aAAasB,cAC/CuI,EAAcoB,MAEf7K,OAAM,SAACC,GACN/E,QAAQC,IAAI8E,QAEf,CAACrE,IAuIF,oCACIsO,EA2GA,yBAAK3N,UAAU,2DACb,yBAAKA,UAAU,+DAAf,qCA3GF,oCACE,yBAAKA,UAAU,2DACb,yBAAKA,UAAU,yCAAf,0BAGA,6BACE,4BACEA,UAAU,yCACVuO,aAAa,UACbxM,SAAU,WACRqL,GAAe,IAEjBlL,IAAK6L,GAEL,4BAAQS,UAAQ,EAACC,QAAM,EAACxM,MAAM,WAA9B,0BAGCgL,EAvHf,WACE,GAAIA,EAAY,CAAC,IACPyB,EAAkBzB,EAAlByB,cACR,OAAIA,EAAcnE,SAAS,MAClBmE,EAAc5J,MAAM,MAAMlI,KAAI,SAAC+R,GACpC,OACE,4BAAQ1M,MAAO0M,EAAMjO,IAAKiO,GACvBA,MAKA,gCAASD,IA2GME,GAAwB,OAIzCzB,EACC,6BACE,4BACEnN,UAAU,yCACVuO,aAAa,UACbxM,SAAU,WACRuL,GAAe,GAlKjC,WACE,IAAI5K,EAAUC,KAAKC,UAAUD,KAAKC,UAAU,CAAEyB,OAAQhF,EAAMgF,UAE5DxB,IAAM,CACJC,IAAK5D,EACL6D,OAAQ,OACRC,KAAM,CACJC,MAAM,iFAAD,OVrC6B,uBUqC7B,uBAG+DP,EAH/D,4HAYNvF,MAAK,SAAC+F,GACL,GAAIA,EAAIF,KAAKA,OAASE,EAAIF,KAAKG,MAAO,CAAC,IAC7B0L,EAAY3L,EAAIF,KAAKA,KAAKK,aAAayL,mBAAvCD,QACe,IAAnBA,EAAQ9J,QACV2I,GAAiB,GAEnBF,EAAmB,YAAIqB,QAG1BpL,OAAM,SAACC,GACN/E,QAAQC,IAAI8E,MAsIAqL,IAEF7M,IAAK8L,GAEL,4BAAQQ,UAAQ,EAACC,QAAM,EAACxM,MAAM,WAA9B,0BAGCgL,EAxHjB,WACE,GAAIA,EAGF,OAF0BA,EAAlB+B,cAEapS,KAAI,SAACqS,GACxB,MAAe,cAAXA,EAEA,4BAAQhN,MAAOgN,EAAQvO,IAAKuO,GACzBA,GAIA,QA4GiBC,GAAwB,OAGxC,KAEH3B,GAAmBA,EAAgBxI,OAAS,EAC3C,yBAAK/E,UAAU,0DACb,yBAAKA,UAAU,yCAAf,wBAGA,yBAAKA,UAAU,gBAAgBN,MAAO,CAAE6M,OAAQ,UAC7CgB,EAAgB3Q,KAAI,SAACiS,EAAS7I,GAC7B,OACE,yBACEtF,IAAG,0BAAqBsF,GACxBhG,UAAU,gDAETiO,EAAYY,SAOvB,8BAGDhB,EACC,oCACE,yBAAK7N,UAAU,sFAAf,iBAIA,KAEHmN,GACDE,GACAE,EAAgBxI,OAAS,IACxB0G,EACC,yBACEzL,UAAU,4HACVC,QAAS,WACP,IAlHKkP,EAAQF,EAkHPG,EAAarB,EAAUvL,QAAQP,MAC/BoN,EAAarB,EAAUxL,QAAQP,MAEjCmN,GAAcC,IArHbF,EAsHSC,EAtHDH,EAsHaI,EArHxC3D,GAAW,GACX7I,IAAM,CACJC,IAAK5D,EACL6D,OAAQ,OACRC,KAAM,CACJC,MAAM,8EAAD,OAEuBoB,EAFvB,2BAEgD8K,EAFhD,uBAEqEF,EAFrE,gCAON9R,MAAK,SAAC+F,GACDA,EAAIF,KAAKA,OAASE,EAAIF,KAAKG,OAEV,gBADAD,EAAIF,KAAKA,KAAKsM,cAE/B1B,GAAY,GACZlC,GAAW,KAMboC,GAAc,GACdpC,GAAW,OAGdjI,OAAM,SAACC,GACNoK,GAAc,GACdpC,GAAW,SAiFL,gBAcA,oCACG+B,EACC,yBAAKzN,UAAU,yHAAf,sBAGE,MAGR,oCACGyL,EACC,yBAAKzL,UAAU,kJAAf,wBAGE,SClSH,SAASuP,EAAelQ,GAAQ,IACrCmQ,EAA4BnQ,EAA5BmQ,gBAAiBnL,EAAWhF,EAAXgF,OADmB,EAGVtD,oBAAS,GAHC,mBAGrC0O,EAHqC,KAG1BC,EAH0B,OAId3O,oBAAS,GAJK,mBAIrC0K,EAJqC,KAI5BkE,EAJ4B,OAKZ5O,oBAAS,GALG,mBAKrC6O,EALqC,KAK3BC,EAL2B,KAwC5C,OAjCAzL,qBAAU,cAIP,CAAC/E,IA8BF,oCACE,yBAAKW,UAAU,oDACb,oCACGwP,EAAgBzK,OAAS,IAAM0K,EAC9B,oCACE,yBAAKzP,UAAU,8CAAf,qCAGCwP,GACCA,EAAgB5S,KAAI,SAAC+R,GACnB,OACE,yBACE3O,UAAU,0DACVU,IAAKiO,GAEJA,MAIRiB,EACC,yBAAK5P,UAAU,sFAAf,mBAGE,KACHyL,EACC,yBAAKzL,UAAU,+HAAf,0BAIA,yBACEA,UAAU,gIACVC,QAAS,WA1DvB0P,GAAW,GACX9M,IAAM,CACJC,IAAK5D,EACL6D,OAAQ,OACRC,KAAM,CACJC,MAAM,+EAAD,OAEwBoB,EAFxB,gCAONlH,MAAK,SAAC+F,GACLyM,GAAW,GACPzM,EAAIF,KAAKA,OAASE,EAAIF,KAAKG,OACO,eAAhCD,EAAIF,KAAKA,KAAK8M,eAChBJ,GAAa,MAIlBjM,OAAM,SAACC,GACNiM,GAAW,GACXE,GAAY,QAkCJ,oBAWJ,yBAAK7P,UAAU,yFAAf,6BAIDyP,EACC,yBAAKzP,UAAU,gEAAf,uBAGE,QChFC,SAAS+P,EAAsB1Q,GAC5CwE,IAAQC,IAAIC,KADuC,IAE3CM,EAAWhF,EAAXgF,OAF2C,EAILtD,mBAAS,IAJJ,mBAI5CrC,EAJ4C,KAI3BsR,EAJ2B,OAKDjP,mBAAS,IALR,mBAK5CtC,EAL4C,KAKzBwR,EALyB,OAOvBlP,mBAAS,IAPc,mBAO5CyC,EAP4C,KAOpC0M,EAPoC,OAQ3BnP,mBAAS,IARkB,mBAQ5CoP,EAR4C,KAQtCC,EARsC,OASfrP,mBAAS,GATM,mBAS5CsP,EAT4C,KAShCC,EATgC,OAUHvP,mBAAS,IAVN,mBAU5CwP,EAV4C,KAU1BC,EAV0B,OAWdzP,mBAAS,IAXK,mBAW5C0P,EAX4C,KAWhCC,EAXgC,OAYT3P,oBAAS,GAZA,mBAY5C4P,EAZ4C,KAY7BC,EAZ6B,KAcnDxM,qBAAU,WACR,IAAM1B,EAAUC,KAAKC,UACnBD,KAAKC,UAAU,CACbyB,OAAQhF,EAAMgF,UAKZC,EADczB,IAAM0B,YACCD,SA4D3B,OA1DAzB,IAAM,CACJC,IAAK5D,EACL6D,OAAQ,OACRyB,QAAS,CACP,eAAgB,oBAElBC,YAAaH,EAAOI,MACpB1B,KAAM,CACJC,MAAM,yEAAD,OZrB0B,oBYqB1B,sBAE6DP,EAF7D,2LAaNvF,MAAK,SAAC+F,GACL,GAAIA,EAAIF,KAAKA,KAAM,CACjB,IAAI6N,EAAU3N,EAAIF,KAAKA,KAAKK,aAAauG,WAEzCoG,EAAmB,YAAIa,EAAQlH,kBAC/BsG,EAAqB,YAAIY,EAAQpS,oBAEjC,IAAMqS,EAAe,YAAOD,EAAQlH,iBAC9BoH,EAAiB,YAAOF,EAAQpS,mBAElCuS,EAAgB,GAEpBF,GACEA,EAAgB/K,SAAQ,SAAC4I,GACvB,GAAIA,EAAK7J,MAAM,KAAKC,OAAS,EAAG,CAC9B,IAAMkM,EAActC,EAAK7J,MAAM,KAAK,GACpCkM,EAAc3Q,KAAK4Q,OAIzBF,GACEA,EAAkBhL,SAAQ,SAAC4I,GACrBA,KACFA,EAAOA,EAAKrD,QAAQ,SAAU,KACzBxG,MAAM,KACPkM,EAAc3Q,KAAKsO,EAAK7J,MAAM,KAAKkG,KAAK,KACxCgG,EAAc3Q,KAAKsO,OAI7ByB,EAAQ,GAAD,OAAKY,QAGfvN,OAAM,SAACC,OAIH,WACLY,EAAOM,YAER,CAACvF,EAAOgR,EAAYE,IAEvBnM,qBAAU,WACR,IACME,EADczB,IAAM0B,YACCD,SAErB5B,EAAUC,KAAKC,UACnBD,KAAKC,UAAU,CACbyB,OAAQhF,EAAMgF,UAgClB,OA7BAxB,IAAM,CACJC,IAAK5D,EACL6D,OAAQ,OACRyB,QAAS,CACP,eAAgB,oBAElBC,YAAaH,EAAOI,MACpB1B,KAAM,CACJC,MAAM,yEAAD,OZ1FyB,mBY0FzB,sBAE4DP,EAF5D,0JAYNvF,MAAK,SAAC+F,GAAS,IACNkJ,EAAgBlJ,EAAIF,KAAKA,KAAKK,aAAagJ,eAA3CD,YAEJA,GAAeA,EAAYrH,OAAS,GACtC2L,EAAe,YAAItE,OAGtB3I,OAAM,SAACC,OAEH,WACL,OAAOY,EAAOM,YAEf,CAACuL,EAAM9Q,EAAMgF,OAAQgM,IAuDxB,SAASa,IACP,IAAIC,EAAiB,GAEjBC,EAAa,SAACC,GAChB,MAAe,MAAXA,EAEA,yBAAKrR,UAAU,+FAAf,YAIkB,MAAXqR,EAEP,yBAAKrR,UAAU,oGAAf,WAMA,yBAAKA,UAAU,+FAAf,cAOFsR,EAAe,SAACC,GAClB,OACE,yBACEvR,UAAU,mHACVC,QAAS,SAACC,IA9DlB,SAA2BqR,EAAWrR,GACpC,IAAIsR,EAAkBnB,EAAa,EAEnCnQ,EAAM8B,OAAOsE,UAAY,aACzBpG,EAAM8B,OAAOtC,MAAM+R,gBAAkB,OACrCvR,EAAM8B,OAAOwM,UAAW,EAExB3L,IAAM,CACJC,IAAK5D,EACL6D,OAAQ,OACRC,KAAM,CACJC,MAAM,2EAAD,OAEoBoB,EAFpB,qBAEuCkN,EAFvC,gCAONpU,MAAK,SAAC+F,GACLoN,EAAckB,GAEVtO,EAAIF,KAAKA,OAASE,EAAIF,KAAKG,OACG,oBAA5BD,EAAIF,KAAKA,KAAKuO,WAChBf,EAAoBe,MAIzB9N,OAAM,SAACC,GACN/E,QAAQC,IAAI8E,GACZ4M,EAAckB,MAkCVE,CAAkBH,EAAWrR,GAC7B0Q,GAAiB,IAEnBlQ,IAAG,kBAAa6Q,IANlB,QAsCJ,OAzBA7S,GACEA,EAAgBqH,SAAQ,SAAC4I,GACvB,GAAIA,EAAK7J,MAAM,KAAKC,OAAS,EAAG,CAC9B,IAAMkM,EAActC,EAAK7J,MAAM,KAAK,GACpCqM,EAAe9Q,KAAK,CAClB4Q,EACAG,EAAWzC,EAAK7J,MAAM,KAAK,IAC3BwM,EAAaL,SAKrBxS,GACEA,EAAkBsH,SAAQ,SAAC4I,GACrBA,KACFA,EAAOA,EAAKrD,QAAQ,SAAU,KACzBxG,MAAM,KACPqM,EAAe9Q,KAAK,CAClBsO,EAAK7J,MAAM,KAAKkG,KAAK,IACrBoG,EAAW,KACXE,EAAa3C,EAAK7J,MAAM,KAAKkG,KAAK,OAEpCmG,EAAe9Q,KAAK,CAACsO,EAAMyC,EAAW,KAAME,EAAa3C,SAG5DwC,EA0LT,OACE,oCACG3N,EACC,yBACExD,UAAU,8DACVxC,GAAG,qBACHkC,MAAO,CAAEiS,WAAY,mBACrB1R,QAAS,SAACC,GACgB,uBAApBA,EAAM8B,OAAOxE,KACf0S,EAAU,IAEVI,EADqBD,EAAa,GAElCK,EAAe,OAhD3B,SAAyBlN,GACvB,OAAQA,GACN,IAAK,QACH,OAAI2M,GAAQA,EAAKpL,OAAS,EAEtB,kBAACwK,EAAD,CACElL,OAAQA,EACRmL,gBAAiBW,IAKnB,yBAAKnQ,UAAU,oDACb,yBAAKA,UAAU,yFAAf,8BAMR,IAAK,SACH,OAAO,kBAACwL,EAAD,CAAiBnH,OAAQA,IAClC,IAAK,OACH,OAAO,kBAAC2I,EAAD,CAAe3I,OAAQA,IAChC,QACE,OAAO,MA4BJuN,CAAgBpO,GAEjB,yBACExD,UAAU,iMACVC,QAAS,WACPiQ,EAAU,MAHd,MASA,KACJ,yBAAKlQ,UAAU,wCA5UG,CACpB,CACEH,MAAO,oBACPF,MAAO,OACPe,IAAK,SAEP,CACEb,MAAO,iBACPF,MAAO,QACPe,IAAK,UAEP,CACEb,MAAO,iBACPF,MAAO,OACPe,IAAK,SA+TY9D,KAAI,SAAC+R,GAAU,IACpB9O,EAAsB8O,EAAtB9O,MAAOF,EAAegP,EAAfhP,MAAOe,EAAQiO,EAARjO,IACtB,OACE,yBACEV,UAAS,+FAA0FL,EAA1F,qBAA4GA,EAA5G,kDAA2JA,EAA3J,yBACTe,IAAKA,EACLT,QAAS,kBAAMiQ,EAAUxP,KAExBb,OAKRqR,KAAkBA,IAAenM,OAAS,EACzC,yBAAK/E,UAAU,qCACb,yBAAKA,UAAU,gFA1UF,CAAC,UAAW,cAAe,UA2UxBpD,KAAI,SAACiV,EAAQ7L,GACzB,OACE,yBACEtF,IAAKmR,EACL7R,UAAS,yDACG,IAAVgG,EAAc,QAAU,UAGzB6L,OAMT,yBACE7R,UAAU,wCACVN,MAAO,CAAE6M,OAAQ,UAEjB,6BACG2E,KACCA,IAAetU,KAAI,SAACkV,EAAW9L,GAC7B,OACE,yBACEhG,UAAU,yDACVU,IAAG,oBAAesF,IAEjB8L,EAAUlV,KAAI,SAACoG,EAAMgD,GACpB,OACE,yBACEtF,IAAG,UAAKsC,EAAL,YAAagD,GAChBhG,UAAS,sDACG,IAAVgG,EACI,kBACA,sBAGLhD,aAWrB,oCAlGF,yBAAKhD,UAAU,sEAAf,sBAoGA,oCAAGyQ,EArRP,WA+EE,GAAIA,GAAcA,EAAW1L,OAAS,EACpC,OACE,yBAAK/E,UAAU,2DACb,yBAAKA,UAAU,uCACb,yBAAKA,UAAU,yCAAf,gBAGA,yBACEA,UAAU,2FACVC,QAAS,SAACC,IA3CpB,SAA8BA,GAC5B,IAAIsR,EAAkBnB,EAAa,EAEnCnQ,EAAM8B,OAAOsE,UAAY,cACzBpG,EAAM8B,OAAOtC,MAAM+R,gBAAkB,OACrCvR,EAAM8B,OAAOwM,UAAW,EAExB3L,IAAM,CACJC,IAAK5D,EACL6D,OAAQ,OACRC,KAAM,CACJC,MAAM,yFAAD,OAE8BoB,EAF9B,oCAONlH,MAAK,SAAC+F,GACLoN,EAAckB,EAAkB,GAC5BtO,EAAIF,KAAKA,OAASE,EAAIF,KAAKG,OAEW,6BAAtCD,EAAIF,KAAKA,KAAK+O,qBAEdrB,EAAe,OAIpBjN,OAAM,SAACC,GACN/E,QAAQC,IAAI8E,GACZ4M,EAAckB,EAAkB,MAc1BQ,CAAqB9R,GACrB0Q,GAAiB,KAJrB,qBAUDD,EACC,yBAAK3Q,UAAU,6GAAf,wFAGE,uBAAGA,UAAU,+CAAb,oBAHF,mCAQE,KACJ,yBAAKA,UAAU,mFACb,yBAAKA,UAAU,SAAf,eACA,yBAAKA,UAAU,SAAf,WAEF,yBACEA,UAAU,8BACVN,MAAO,CAAE6M,OAAQ,UAEhBkE,EAAW7T,KAAI,SAAC+R,GACf,OAAIA,EAEA,yBACE3O,UAAU,oEACVU,IAAKiO,GAEL,yBAAK3O,UAAU,wDACZ2O,GAEH,yBAAK3O,UAAU,iBACb,yBACEA,UAAU,+HACVC,QAAS,SAACC,IA9H9B,SAA0ByO,EAAMzO,GAC9B,IAAIsR,EAAkBnB,EAAa,EAEnCnQ,EAAM8B,OAAOsE,UAAY,cACzBpG,EAAM8B,OAAOtC,MAAM+R,gBAAkB,OACrCvR,EAAM8B,OAAOwM,UAAW,EAExB3L,IAAM,CACJC,IAAK5D,EACL6D,OAAQ,OACRC,KAAM,CACJC,MAAM,sFAAD,OAE2BoB,EAF3B,qBAE8CsK,EAF9C,oCAONxR,MAAK,SAAC+F,GAEL,GADAoN,EAAckB,GACVtO,EAAIF,KAAKA,OAASE,EAAIF,KAAKG,MAC7B,GAAuC,yBAAnCD,EAAIF,KAAKA,KAAKiP,iBAA6C,CAC7D,IAAIC,EAAmBzB,EAEvByB,EAAmBA,EAAiBC,QAAO,SAACC,GAC1C,OAAIA,IAAezD,KAMrB+B,EAAe,YAAIwB,SAEnBtB,GAAiB,MAItBnN,OAAM,SAACC,GACN/E,QAAQC,IAAI8E,GACZ4M,EAAckB,GACdZ,GAAiB,MAuFDqB,CAAiBtD,EAAMzO,GACvB0Q,GAAiB,IAEnBlQ,IAAG,qBAAgBiO,IANrB,YAcD,UA0IC0D,GAA4B,OC3gBnC,SAASC,EAAoBjT,GAC1CwE,IAAQC,IAAIC,KADqC,MAEChD,mBAAS,IAFV,mBAE1CwR,EAF0C,KAEvBC,EAFuB,OAGWzR,mBAAS,IAHpB,mBAG1C0R,EAH0C,KAGlBC,EAHkB,OAID3R,mBAAS,aAJR,mBAI1C4R,EAJ0C,KAIxBC,EAJwB,KAK3CC,EAAe,CAAC,YAAa,iBAAkB,kBALJ,EAML9R,oBAAS,GANJ,mBAM1C+R,EAN0C,KAM1BC,EAN0B,KAQzCjS,EAAaF,qBAAW9C,GAAxBgD,SAEFkS,EAAsBC,mBAAQ,WAClC,OAAO,kBAAChM,EAAD,CAAsB5C,OAAQhF,EAAMgF,WAC1C,CAAChF,IAEE6T,EAA2BD,mBAAQ,WACvC,OACE,kBAAClD,EAAD,CAAuB1L,OAAQhF,EAAMgF,WAEtC,CAAChF,IAmNJ,OAjNA+E,qBAAU,WACR,IAAIsF,EAAcxK,EAEZwD,EAAUC,KAAKC,UACnBD,KAAKC,UAAU,CACbyB,OAAQhF,EAAMgF,UAIlBxB,IAAM,CACJC,IAAK4G,EACL3G,OAAQ,OACRyB,QAAS,CACP,eAAgB,oBAElBxB,KAAM,CACJC,MAAM,yEAAD,Ob9B0B,oBa8B1B,sBAE6DP,EAF7D,2LAaNvF,MAAK,SAAC+F,GACL,GAAIA,EAAK,CACP,IAAI2N,EAAU3N,EAAIF,KAAKA,KAAKK,aAAauG,WACjCD,EAAuCkH,EAAvClH,gBAAiBlL,EAAsBoS,EAAtBpS,mBAGtBkL,GAAmBlL,KACnBkL,EAAgB5E,OAAS,GAAKtG,EAAkBsG,OAAS,IAE1DyN,EAAqB,YAAI7I,IACzB+I,EAA0B,YAAIjU,IAC9BsU,GAAkB,GAElBjS,EAAS,CACPe,KV9EmB,oBU+EnBa,QAASiH,IAGX7I,EAAS,CACPe,KVjF0B,2BUkF1Ba,QAAQ,YAAKiH,KAGf7I,EAAS,CACPe,KVrF4B,6BUsF5Ba,QAAQ,YAAKjE,MAGfsU,GAAkB,OAIvBtP,OAAM,SAACC,GACNqP,GAAkB,QAErB,CAAC1T,EAAOyB,IAkJT,oCACGgS,EACC,oCACE,yBAAK9S,UAAU,8BACZkT,GAEH,yBAAKlT,UAAU,iIAAf,6CAGA,yBAAKA,UAAU,qEACb,6BACE,kBAAC,IAAD,CACER,KAAM,CAAC,MAAO,yBACdQ,UAAU,2FAGd,yBAAKA,UAAU,iEAAf,yBAMJ,oCAnDF,oCACE,yBAAKA,UAAU,wGACZ6S,EAAajW,KAAI,SAAC+R,GACjB,IAAIwE,EACF,yDAOF,OALEA,GADExE,IAASgE,EAET,qDAEe,yBAGjB,yBACE3S,UAAS,sGAAiGmT,GAC1GzS,IAAKiO,EACL1O,QAAS,SAACC,GACR0S,EAAoBjE,KAGrBA,QAkCP,yBAAK3O,UAAU,8BAAf,IA3FR,WAKE,OAAQ2S,GACN,IALgB,YAMd,IAAKG,EACH,OACE,yBAAK9S,UAAU,iFACZuS,EAvFb,WACE,IAAIa,EAAmB,GACnBC,EAAoB,GAExB,GAAId,GAAqBA,EAAkBxN,OAAS,EAuClD,OAtCAwN,EAAkBxM,SAAQ,SAACuN,EAAUtN,GACnC,IAAIuN,EAAYD,EAASxO,MAAM,KAC3B0O,EAAOD,EAAU,GACjBE,EAAOF,EAAU,GACjBJ,EAAgB,OACpB,OAAQK,GACN,IAAK,IACHL,GAAiB,gCACjBE,EAAkBhT,KAChB,yBAAKL,UAAU,+BAA+BU,IAAK+S,GACjD,yBAAKzT,UAAS,UAAKmT,EAAL,uBACXM,GAEH,yBAAKzT,UAAU,6EAAf,cAKJ,MACF,IAAK,IACHmT,GAAiB,0BACjBC,EAAiB/S,KACf,yBAAKL,UAAU,+BAA+BU,IAAK+S,GACjD,yBAAKzT,UAAS,UAAKmT,EAAL,uBACXM,GAEH,yBAAKzT,UAAU,6EAAf,aAKJ,MACF,QACEmT,GAAiB,oCAMrB,oCACGE,EADH,IACuBD,GA2CfM,GAEA,yBAAK1T,UAAU,kDAAf,gCAIDyS,EA3Cb,WACE,IAAIkB,EAAe,GACfC,EAAiB,GAUrB,OATAnB,EAAuB1M,SAAQ,SAACzF,GAC9B,IAAIuT,EAAavT,EAAMwE,MAAM,KAEzB+O,IACFF,EAAatT,KAAuB,WAAlBwT,EAAW,GAAkBA,EAAW,GAAK,MAC/DD,EAAiBD,EAAa3I,KAAK,IAAM6I,EAAW,OAIjDF,EAAa/W,KAAI,SAAC0D,EAAO0F,GAC9B,OACE,yBAAKhG,UAAU,OAAOU,IAAG,UAAKJ,EAAL,YAAc0F,IACrC,yBAAKhG,UAAU,kEACZ4T,GAEH,yBAAK5T,UAAU,qFAAf,uBAyB8B8T,GAAkB,MAIlD,MACF,IApBqB,iBAqBnB,IAAKhB,EACH,OAAOE,EAET,MACF,IAxBqB,iBAyBnB,OAAOE,EACT,QACE,OACE,yBAAKlT,UAAU,uBAAf,6BA4D8C+T,GAA9C,OClQK,SAASC,IACtBnQ,IAAQC,IAAIE,KAD6B,MAGbpD,qBAAW9C,GAA/B+C,EAHiC,EAGjCA,MAAOC,EAH0B,EAG1BA,SACPvC,EAAgBsC,EAAhBtC,YAJiC,EAKDwC,oBAAS,GALR,mBAKlCkT,EALkC,KAKpBC,EALoB,OAMHnT,mBAAS,IANN,mBAMlCoT,EANkC,KAMrBC,EANqB,OAOGrT,mBAAS,IAPZ,mBAOlCsT,EAPkC,KAOlBC,EAPkB,OAQDvT,mBAAS,IARR,mBAQlCwT,EARkC,KAQpBC,EARoB,OASazT,mBAAS,CAC7DiO,cAAe,GACf3J,iBAAkB,GAClBF,gBAAiB,EACjBC,qBAAsB,IAbiB,mBASlCqP,EATkC,KASbC,EATa,OAeH3T,oBAAS,GAfN,mBAelC4T,EAfkC,KAerBC,EAfqB,KAiBnCC,EAAqB5B,mBAAQ,WACjC,GAAIkB,GAAeA,EAAY3W,GAC7B,OACE,kBAAC8U,EAAD,CAAqBjO,OAAQ8P,EAAY3W,OAG5C,CAAC2W,IA2LJ,SAASW,EAAoBtV,EAAMyC,GACjC,OACE,oCACE,yBAAKjC,UAAU,4GACb,yBAAKA,UAAU,QACb,kBAAC,IAAD,CAAiBR,KAAM,CAAC,MAAOA,MAEjC,yBAAKQ,UAAU,QAAQiC,KAwB/B,OAxNAmC,qBAAU,WAER,IACME,EADQzB,IAAM0B,YACCD,SAErB,SAASyQ,IACP,IAAM1Q,EAAS8P,GAAeA,EAAY3W,GAE1C,GAAI6G,EAAQ,CACV,IAAM3B,EAAUC,KAAKC,UAAUD,KAAKC,UAAU,CAAEyB,OAAQA,KAExDxB,IAAM,CACJC,IAAK5D,EACL6D,OAAQ,OACRyB,QAAS,CACP,eAAgB,oBAElBC,YAAaH,EAAOI,MACpB1B,KAAM,CACJC,MAAM,6FAAD,OdnCiB,ecmCjB,uBAGuDP,EAHvD,4QAeNvF,MAAK,SAAC+F,GACLwR,EAAuBxR,EAAIF,KAAKA,KAAKK,aAAasB,kBAEnDlB,OAAM,SAACC,GACFA,GACF/E,QAAQC,IAAI,kCAAoC8E,OAvC5C,4CA8Cd,sBAAAuG,EAAA,sEACepH,IAAM,CACjBC,IAAK5D,EACL6D,OAAQ,OACR0B,YAAaH,EAAOI,MACpB1B,KAAM,CACJC,MAAM,6EAAD,OdtEiB,acsEjB,qMAYN9F,MAAK,SAAC+F,GACP,IAAM0C,EAAc1C,EAAIF,KAAKA,KAAKK,aAAawC,UAE/C,GAAID,EAAa,CACf,IAAME,EAAcF,EAAYvB,OAAOzH,KAAI,SAAC0D,EAAO0F,GACjD,MAAO,CACLxI,GAAIoI,EAAYvB,OAAO2B,GACvB3D,SAAUuD,EAAYvD,SAAS2D,GAC/B1D,SAAUsD,EAAYtD,SAAS0D,OAWnC,OAPAlF,EAAS,CACPe,KXlHgB,eWmHhBa,QAAQ,YAAKoD,KAGfsO,EAAetO,EAAY,IAC3BwO,EAAkBxO,GACXA,MArCb,oFA9Cc,sBAgGd,OARIvH,GAAeA,EAAY,IAC7B+V,EAAkB/V,EAAY,IAC9BwW,OA1FY,mCA4FZC,GACAD,KAGK,WACLzQ,EAAOM,YAER,CAACuP,EAAaI,EAAchW,EAAauC,EAAU6T,IAsHpD,yBAAK3U,UAAU,yDACZqU,EACC,6BACE,yBAAKrU,UAAU,8DA5FnB,yBAAKA,UAAU,8DACb,yBAAKA,UAAU,QACb,yBAAKA,UAAU,8CAAf,2BAGA,4BACEA,UAAU,4FACVuO,aAAa,UACbxM,SAAU,SAAC7B,GACTgU,GAAgB,GAChBG,EAAetP,QACbsP,EAAetO,SAAQ,SAACkP,GAClB/U,EAAM8B,OAAOC,QAAUgT,EAAI5S,WAC7B+R,EAAea,GACfnU,EAAS,CAAEe,KXjLE,oBWiLuBa,QAASuS,EAAIzX,WAKzD,4BAAQ0X,gBAAc,EAACjT,MAAM,UAAUwM,QAAM,EAACD,UAAQ,GAAtD,iBAGC6F,EAAetP,QACdsP,EAAezX,KAAI,SAAC0D,GAClB,OACE,4BAAQ2B,MAAO3B,EAAM+B,SAAU3B,IAAKJ,EAAM+B,UACvC/B,EAAM+B,eAMlB4R,EACC,yBAAKjU,UAAU,QACb,yBAAKA,UAAU,8CAAf,UAGA,4BACEA,UAAU,8FACVuO,aAAa,UACbxM,SAAU,SAAC7B,GACTA,EAAMiV,UACNX,EAAgBtU,EAAMkV,cAAcnT,OArElD,SAA2BoN,EAAYnP,GACrC2C,IAAM,CACJC,IAAK5D,EACL6D,OAAQ,OACRC,KAAM,CACJC,MAAM,yDAAD,OAEoBkR,EAAY3W,GAFhC,uBAEiD6R,EAFjD,gCAONlS,MAAK,SAAC+F,GACDA,EAAIF,KAAKA,OAASE,EAAIF,KAAKG,OAC7BqR,EAAgBnF,MAGnB5L,OAAM,SAACC,GACFA,IACFkR,GAAe,GACf1U,EAAM8B,OAAOqT,cAAgB,MAkDvBC,CAAkBpV,EAAM8B,OAAOC,MAAO/B,IAExCD,QAAS,WACP2U,GAAe,KAwB7B,WACE,GAAIH,GAAuBA,EAAoBzF,cAG7C,OAF0ByF,EAAlBzF,cAEapS,KAAI,SAACqS,GACxB,MAAe,cAAXA,EAEA,4BAAQvO,IAAKuO,EAAQhN,MAAOgN,GACzBA,GAKA,QAlCAsG,KAGH,MA0CCd,GAAuBR,EACtB,yBAAKjU,UAAU,2CACZ8U,EACC,cACAL,EAAoBzF,eAClByF,EAAoBzF,cAAcjK,OAAS,IAC1C0P,EAAoBzF,cAAc,GAAGzL,MACpC,eAEF,oCACgD,IAA7CkR,EAAoBzF,cAAcjK,OAC/B,WACA0P,EAAoBzF,cAAcjK,OAClC,aAGN,eAGH+P,EACC,iBACAL,EAAoBtP,gBAAkB,YAEvC2P,EACC,UACAL,EAAoBrP,qBAAuB,mBAG7C,MAEJ6O,EAkBE,KAjBF,oCACE,yBAAKjU,UAAU,qIAAf,gFAIA,yBAAKA,UAAU,qEACb,6BACE,kBAAC,IAAD,CACER,KAAM,CAAC,MAAO,iBACdQ,UAAU,2FAGd,yBAAKA,UAAU,iGAAf,8BAMN,6BACG2U,EACC,yBAAK3U,UAAU,0EAAf,6DAGE,KACHyU,GAAuBR,GAAgBE,EAAY3W,GAChDqX,EACA,OAGN,MC7TK,SAASW,EAAmBnW,GAAQ,IACzCgF,EAAWhF,EAAXgF,OADwC,EAEZtD,mBAAS,IAFG,mBAEzCsO,EAFyC,KAE7BoG,EAF6B,OAGF1U,mBAAS,IAHP,mBAGzC2U,EAHyC,KAGxBC,EAHwB,KAI1CC,EAAgBnU,mBAEtB,SAASoU,IACPD,EAAcpT,QAAQP,MAAQ,GAC9BwT,EAAc,IA+BhB,OACE,yBAAKzV,UAAU,oDACb,yBAAKA,UAAU,WACb,yBAAKA,UAAU,WACb,2BACE6B,KAAK,OACLK,IAAK0T,EACL9T,YAAY,cACZ9B,UAAU,sGACV+B,SAAU,SAAC7B,GACTuV,EAAcvV,EAAM8B,OAAOC,QAE7BhC,QAAS,WACP0V,EAAmB,QAIzB,yBACE3V,UAAU,6HACVC,QAAS,SAACC,GACJmP,GACF1Q,QAAQC,IAAIyQ,GAhDtBxM,IAAM,CACJC,IAAK5D,EACL6D,OAAQ,OACRC,KAAM,CACJC,MAAM,+EAAD,OAEsBoB,EAFtB,2BAE+CgL,EAF/C,oCAONlS,MAAK,SAAC+F,GACL,GAAIA,EAAIF,KAAKA,OAASE,EAAIF,KAAKG,MAAO,CACpC,IAAM2S,EAAe5S,EAAIF,KAAKA,KAAK+S,UACnCJ,EAAmBG,GACnBD,SAEAF,EAAmB,qBACnBE,OAGHpS,OAAM,SAACC,GACNiS,EAAmB,qBACnBE,QA4BMF,EAAmB,uBAPzB,cAaqB,4BAApBD,EACC,yBAAK1V,UAAU,qGAAf,uDAGE,KACiB,sBAApB0V,EACC,yBAAK1V,UAAU,mGAAf,+BAGE,OCzEG,SAASgW,EAAyB3W,GAAQ,IAC/CgF,EAAuBhF,EAAvBgF,OAAQ4R,EAAe5W,EAAf4W,WADsC,EAGlBlV,qBAHkB,mBAG/CkM,EAH+C,KAGnCC,EAHmC,OAIhBnM,oBAAS,GAJO,mBAI/CoM,EAJ+C,KAIlCC,EAJkC,OAKhBrM,oBAAS,GALO,mBAK/CsM,EAL+C,KAKlCC,EALkC,OAM1BvM,mBAAS,IANiB,mBAM/CmV,EAN+C,KAMvCC,EANuC,OAOxBpV,oBAAS,GAPe,mBAO/C0K,EAP+C,KAOtCC,EAPsC,KAShDqC,EAAYtM,mBACZuM,EAAYvM,mBA8JlB,OA5JA2C,qBAAU,WACR,IAAI1B,EAAUC,KAAKC,UAAUD,KAAKC,UAAU,CAAEyB,OAAQhF,EAAMgF,UAEtDC,EADczB,IAAM0B,YACCD,SAiC3B,OA/BAzB,IAAM,CACJC,IAAK5D,EACL6D,OAAQ,OACR0B,YAAaH,EAAOI,MACpBF,QAAS,CACP,eAAgB,oBAElBxB,KAAM,CACJC,MAAM,mGAAD,OhBXqB,egBWrB,uBAG6DP,EAH7D,qRAeNvF,MAAK,SAAC+F,GACL,IAAMoL,EAAcpL,EAAIF,KAAKA,KAAKK,aAAasB,cAC/CuI,EAAcoB,MAEf7K,OAAM,SAACC,OAIH,WACL,OAAOY,EAAOM,YAEf,CAACvF,IAsHF,oCACE,yBAAKW,UAAU,2DACb,yBAAKA,UAAU,yCAAf,0BAGA,6BACE,4BACEA,UAAU,yCACVuO,aAAa,UACbxM,SAAU,WACRqL,GAAe,IAEjBnN,QAAS,WACPkW,EAAU,KAEZjU,IAAK6L,GAEL,4BAAQS,UAAQ,EAACC,QAAM,EAACxM,MAAM,WAA9B,0BAGCgL,EAxIX,WACE,GAAIA,EAAY,CAAC,IACPyB,EAAkBzB,EAAlByB,cACR,OAAIA,EAAcnE,SAAS,MAClBmE,EAAc5J,MAAM,MAAMlI,KAAI,SAAC+R,GACpC,OACE,4BAAQ1M,MAAO0M,EAAMjO,IAAKiO,GACvBA,MAKA,gCAASD,IA4HEE,GAAwB,OAIzCzB,EACC,6BACE,4BACEnN,UAAU,yCACVuO,aAAa,UACbxM,SAAU,WACRuL,GAAe,IAEjBrN,QAAS,WACPkW,EAAU,KAEZjU,IAAK8L,GAEL,4BAAQQ,UAAQ,EAACC,QAAM,EAACxM,MAAM,WAA9B,0BAGCgL,EA3Ib,WACE,GAAIA,EAGF,OAF0BA,EAAlB+B,cAEapS,KAAI,SAACqS,GACxB,MAAe,cAAXA,EAEA,4BAAQhN,MAAOgN,EAAQvO,IAAKuO,GACzBA,GAIA,QA+HaC,GAAwB,OAGxC,KAEH/B,GAAeE,IAAgB5B,EAC9B,yBACEzL,UAAU,4HACVC,QAAS,SAACC,GACR,IAnIWiP,EAAQF,EAmIbG,EAAarB,EAAUvL,QAAQP,MAC/BoN,EAAarB,EAAUxL,QAAQP,MAEjCmN,GAAcC,GAtIPF,EAuIKC,EAvIGH,EAuISI,EAtItC3D,GAAW,GAyBX7I,IAAM,CACJC,IAAK5D,EACL6D,OAAQ,OACRC,KAAM,CACJC,MA3BwB,SAACkM,EAAQF,GAoBnC,MAlBmB,UAAfgH,EACM,0EACqB5R,EADrB,0BAC6C8K,EAD7C,6BACwEF,EADxE,qFAQA,yEACoB5K,EADpB,0BAC4C8K,EAD5C,6BACuEF,EADvE,oFAgBDmH,CAAoBjH,EAAQF,MAGpC9R,MAAK,SAAC+F,GAEL,GADAwI,GAAW,GACPxI,EAAIF,KAAKA,OAASE,EAAIF,KAAKG,MAAO,CACpC,IAAIkT,EAAiB,GAQrB,IALEA,EADiB,UAAfJ,EACe/S,EAAIF,KAAKA,KAAKsT,gBAEdpT,EAAIF,KAAKA,KAAKuT,gBAGdlF,OAAO9N,MAAM,YAC9B4S,EAAU,CACR,yBAAKnW,UAAU,2CAAf,iBACgC,UAAfiW,EAAyB,QAAU,OADpD,uBAKG,GAAII,EAAehF,OAAO9N,MAAM,WACrC4S,EAAU,CACR,yBAAKnW,UAAU,iFAAf,eAC8B,UAAfiW,EAAyB,WAAa,UAAW,IADhE,sBAKG,CACL,IAAIO,EAAW,GAEbA,EADiB,UAAfP,EACSI,EAAeI,aAEfJ,EAAeK,YAE5BP,EAAU,YAAIK,SAInB/S,OAAM,SAACC,GACNgI,GAAW,GACX/M,QAAQwE,MAAMO,GACdyS,EAAU,CACR,yBAAKnW,UAAU,iFAAf,eAC8B,UAAfiW,EAAyB,WAAa,UADrD,uBAgEM/V,EAAM8B,OAAOtC,MAAMiX,QAAU,SAIjB,SAAfV,EAAwB,mBAAqB,KAC9B,UAAfA,EAAyB,oBAAsB,MAEhD,KACJ,6BACGxK,EACC,yBAAKzL,UAAU,kJACG,SAAfiW,EAAwB,kBAAoB,WAD/C,mBAIE,OAGJxK,GAAWyK,GAAUA,EAAOnR,OAAS,EACrC,oCACE,yBAAK/E,UAAU,oEACZkW,EAAOtZ,KAAI,SAACsZ,GACX,OACE,yBACElW,UAAU,yBACVU,IAAKwV,EAAM,WAAOU,gBAEjBV,QAMT,OC9PG,SAASW,EAA6BxX,GACnDwE,IAAQC,IAAIC,IAAKC,KADyC,MAGtBjD,mBAAS,IAHa,mBAGnD+V,EAHmD,KAGvCC,EAHuC,OAIhBhW,oBAAS,GAJO,mBAInD0M,EAJmD,KAIpCC,EAJoC,KA8C1D,OAxCAtJ,qBAAU,WACR,IAAM1B,EAAUC,KAAKC,UAAUD,KAAKC,UAAU,CAAEyB,OAAQhF,EAAMgF,UAE9DxB,IAAM,CACJC,IAAK5D,EACL6D,OAAQ,OACRC,KAAM,CACJC,MAAM,6EAAD,OjBEyB,ciBFzB,uBAG2DP,EAH3D,iSAiBNvF,MAAK,SAAC+F,GACL,IAAM2L,EAAU3L,EAAIF,KAAKA,KAAKK,aAAa2T,cAAcnI,QACrDA,GAAWA,EAAQ9J,OAAS,EAC9BgS,EAAclI,GAEdnB,GAAiB,MAGpBjK,OAAM,SAACC,GACFA,IACFgK,GAAiB,GACjB/O,QAAQC,IAAI8E,SAGjB,CAACrE,IAGF,oCACGoO,EACC,yBAAKzN,UAAU,yFAAf,wBAGE,KACH8W,GACCA,EAAWla,KAAI,SAACsR,GAAY,IAClB+I,EAA4C/I,EAA5C+I,KAAMC,EAAsChJ,EAAtCgJ,OAAQC,EAA8BjJ,EAA9BiJ,WAAYC,EAAkBlJ,EAAlBkJ,cAClC,OACE,yBACEpX,UAAU,6GACVU,IAAKuW,GAEL,yBAAKjX,UAAU,oCACb,kBAAC,IAAD,CACER,KAAM,CAAC,MAAO,kBAEhB,0BAAMQ,UAAU,QAAQmX,IAE1B,yBAAKnX,UAAU,2CACZoX,GAGH,yBAAKpX,UAAU,mCACb,yBAAKA,UAAU,8FACb,kBAAC,IAAD,CACER,KAAM,CAAC,MAAO,gBAEhB,0BAAMQ,UAAU,QAAQiX,IAE1B,yBAAKjX,UAAU,8FACb,kBAAC,IAAD,CAAiBR,KAAM,CAAC,MAAO,QAC/B,0BAAMQ,UAAU,QAAQkX,UCvF3B,SAASG,EAAT,GAA6C,IAAXhT,EAAU,EAAVA,OACzCiT,EAAgB7V,mBAChB8V,EAAe9V,mBAFoC,EAIjBV,oBAAS,GAJQ,mBAIlDyW,EAJkD,KAIpCC,EAJoC,OAKX1W,mBAAS,IALE,mBAKlD2W,EALkD,KAKjCC,EALiC,KAOnDC,EAA0B,SAACC,EAAQhY,EAAOiC,GAC9C,OACE,yBAAK9B,UAAU,8DACb,2BACEmC,QAAS0V,EACT7X,UAAU,yCAETH,GAEH,yBAAKG,UAAU,SACb,2BACExC,GAAIqa,EACJ5X,QAAS,WACPwX,GAAgB,GAChBE,EAAmB,KAErB3X,UAAU,oFACV8B,YAAaA,EACbI,IAAgB,eAAX2V,EAA0BP,EAAgBC,EAC/CxV,SAAU,SAAC7B,GACT,IAAM4X,EAAgB5X,EAAM8B,OAAOC,MAEb,eAApB/B,EAAM8B,OAAOxE,IACbsa,EAAcvU,MAAM,qBAEpBrD,EAAM8B,OAAOC,MAAQ6V,EAAcxM,QACjC,kBACA,YAkDhB,IAAMyM,EAAsB,SAACpY,EAAOyD,GAClC,OACE,yBACEpD,UAAS,+DAA0DL,EAA1D,mBAA0EA,EAA1E,gDAERyD,IAKP,OACE,yBAAKpD,UAAU,4GACb,yBAAKA,UAAU,4DAAf,4BAGA,yBAAKA,UAAU,aACZ4X,EACC,aACA,oBACA,mCAEDA,EACC,YACA,mBACA,yCAGHJ,EACGO,EACE,SACA,8CAEF,KACiB,YAApBL,EACGK,EACE,QACA,4CAEF,KACiB,WAApBL,EACGK,EAAoB,MAAO,2BAC3B,KACJ,yBACE/X,UAAU,mJACVC,QAAS,YApFf,WACE,IAAIoC,EAAWiV,EAAc9U,QAAQP,MACjC+V,EAAUT,EAAa/U,QAAQP,MAE/BoC,GAAUhC,GAAY2V,EACxBnV,IAAM,CACJC,IAAK5D,EACL6D,OAAQ,OACRC,KAAM,CACJC,MAAM,uFAAD,OAE0BoB,EAF1B,2BAEmDhC,EAFnD,0BAE6E2V,EAF7E,wCAON7a,MAAK,SAAC+F,GACDA,EAAIF,KAAKA,OAASE,EAAIF,KAAKG,MAGL,uBAFAD,EAAIF,KAAKA,KAAKiV,eAGpCN,EAAmB,WACnBL,EAAc9U,QAAQP,MAAQ,GAC9BsV,EAAa/U,QAAQP,MAAQ,IAE7B0V,EAAmB,UAGrBA,EAAmB,aAGtBlU,OAAM,SAACC,GACN/E,QAAQC,IAAI8E,GACZiU,EAAmB,aAGvBF,GAAgB,GAiDZS,KAHJ,mBClHS,SAASC,EAAkB9Y,GACxCwE,IAAQC,IAAIC,IAAKC,KAD8B,MAELjD,mBAAS,IAFJ,mBAExC4D,EAFwC,KAEzByT,EAFyB,OAGDrX,oBAAS,GAHR,mBAGxCsX,EAHwC,KAGvBC,EAHuB,OAITvX,mBAAS,IAJA,mBAIxCwX,EAJwC,KAI3BC,EAJ2B,OAKHzX,oBAAS,GALN,mBAKxC0X,EALwC,KAKxBC,EALwB,OAML3X,oBAAS,GANJ,mBAMxC4X,EANwC,KAMzBC,EANyB,OAOC7X,mBAAS,GAPV,mBAOxC8X,EAPwC,KAOtBC,EAPsB,OAQH/X,oBAAS,GARN,mBAQxCgY,EARwC,KAQxBC,EARwB,OASnBjY,mBAAS,IATU,mBASxCyC,EATwC,KAShC0M,EATgC,KAWzC+I,EAA6BhG,mBAAQ,WACzC,OACE,kBAAC4D,EAAD,CACExS,OAAQkU,MAGX,CAACA,IAEEW,EAA+BjG,mBAAQ,WAC3C,OACE,kBAAC,EAAD,CACE5O,OAAQkU,EACRtC,WAAW,YAGd,CAACsC,IAEEY,EAA8BlG,mBAAQ,WAC1C,OACE,kBAAC,EAAD,CACE5O,OAAQkU,EACRtC,WAAW,WAGd,CAACsC,IAEEa,EAAiCnG,mBAAQ,WAC7C,OACE,kBAACoE,EAAD,CAAwBhT,OAAQkU,MAEjC,CAACA,IAEJnU,qBAAU,WACR,IAAMiV,EAAcna,EAEpB,GAAIG,EAAMc,YAAYnB,SAAU,CAC9B,IAAMqF,EAAShF,EAAMc,YAAYnB,SAASsa,SAASxU,MACjD,gBACA,GAEF0T,EAAenU,GAEf,IAAM3B,EAAUC,KAAKC,UAAUD,KAAKC,UAAU,CAAEyB,OAAQA,KAExDxB,IAAM,CACJC,IAAKuW,EACLtW,OAAQ,OACRyB,QAAS,CACP,eAAgB,oBAElBxB,KAAM,CACJC,MAAM,yFAAD,OnBvDmB,emBuDnB,uBAIuDP,EAJvD,0cAsBNvF,MAAK,SAAC+F,GACL,GAAIA,EAAIF,MAAQE,EAAIF,KAAKA,OAASE,EAAIF,KAAKG,MAAO,CAChD,IAAIoW,EACFrW,EAAIF,KAAKA,KAAKK,aAAasB,cAAc+J,cACvC6K,EAAehP,SAAS,QAC1BqO,GAAiB,GACjB1V,EAAIF,KAAKA,KAAKK,aAAasB,cAAc+J,cAAgB6K,EAAezU,MACtE,MACA,GACF8T,GAAiB,GACjBE,EAAoBS,EAAezU,MAAM,MAAMC,SAEjDqT,EAAiBlV,EAAIF,KAAKA,KAAKK,aAAasB,oBAE5C2T,GAAmB,MAGtB7U,OAAM,SAACC,GACFA,IACF/E,QAAQC,IAAI,kCAAoC8E,GAChD4U,GAAmB,UAI1B,CAACjZ,EAAMc,YAAa4Y,IA5GwB,IA+G7CrK,EASE/J,EATF+J,cACA8K,EAQE7U,EARF6U,YACAxK,EAOErK,EAPFqK,cACA3J,GAMEV,EANFU,iBACAoU,GAKE9U,EALF8U,cACAtU,GAIER,EAJFQ,gBACAuU,GAGE/U,EAHF+U,gBACAhb,GAEEiG,EAFFjG,gBACAib,GACEhV,EADFgV,mBAyWF,OACE,oCACGZ,EACC,yBACE/Y,UAAU,8DACVxC,GAAG,gBACHkC,MAAO,CAAEiS,WAAY,mBACrB1R,QAAS,SAACC,GACgB,kBAApBA,EAAM8B,OAAOxE,KACfwb,GAAkB,GAClB9I,EAAU,OAId,oCAAc,UAAX1M,EAAqB0V,EAA+B,MACvD,oCAAc,SAAX1V,EAAoB2V,EAA8B,MACrD,oCACc,kBAAX3V,EAA6B4V,EAAiC,MAEjE,oCACc,cAAX5V,EACC,kBAACgS,EAAD,CAAoBnR,OAAQkU,IAC1B,MAEN,yBACEvY,UAAU,qLACVC,QAAS,WACP+Y,GAAkB,GAClB9I,EAAU,MAJd,MAUA,KACJ,yBAAKlQ,UAAU,wCACf,yBAAKA,UAAU,wIACZ2E,IAAkB0T,EACjB,oCACE,yBAAKrY,UAAU,kBACZ2E,EA5YT,yBAAK3E,UAAU,kHACb,yBAAKA,UAAU,oBAAf,aACA,yBAAKA,UAAU,mEACZwZ,GAEH,yBAAKxZ,UAAU,oBAAf,iBACA,yBAAKA,UAAU,yEACZqF,KAqY6C,MAE5C,yBAAKrF,UAAU,UACb,yBAAKA,UAAU,kEACZ2E,EAnYS,WACtB,IAAIiV,EAAa,GAEjB,OAAIH,IAEAG,EADEH,GAAclW,MAAM,WAEpB,kBAAC,IAAD,CACE/D,KAAM,CAAC,MAAO,UACdQ,UAAU,uCAGLyZ,GAAclW,MAAM,WAE3B,kBAAC,IAAD,CACE/D,KAAM,CAAC,MAAO,UACdQ,UAAU,uCAGLyZ,GAAclW,MAAM,cAE3B,kBAAC,IAAD,CACE/D,KAAM,CAAC,MAAO,aACdQ,UAAU,uCAGLyZ,GAAclW,MAAM,eAE3B,kBAAC,IAAD,CACE/D,KAAM,CAAC,MAAO,OACdQ,UAAU,uCAKZ,kBAAC,IAAD,CACER,KAAM,CAAC,MAAO,cACdQ,UAAU,uCAMd,oCACGyY,EACC,oCACE,yBACEzY,UAAU,iEACVxC,GAAG,uBACHkC,MAAO,CAAEiS,WAAY,kBAAmBkI,OAAQ,IAChD5Z,QAAS,SAACC,GACgB,yBAApBA,EAAM8B,OAAOxE,IACfkb,GAAkB,KAItB,yBACE1Y,UAAU,qLACVC,QAAS,WACPyY,GAAkB,KAHtB,KAQA,yBAAKlb,GAAG,oBAAoBwC,UAAU,uBACnCiZ,KAIL,KAEJ,yBAAKjZ,UAAU,sIACb,yBAAKA,UAAU,sBACb,yBAAKA,UAAU,oCACb,yBAAKA,UAAU,+BAAf,eACA,yBAAKA,UAAU,uDACb,yBAAKA,UAAU,4HACb,yBAAKA,UAAU,QAAQ4Z,GACvB,yBAAK5Z,UAAU,kFACZyZ,KAGL,yBAAKzZ,UAAU,SACb,yBACExC,GAAG,YACHwC,UAAU,mJACVmG,aAAc,SAACjG,GAGbA,EAAM8B,OAAOsE,WADX,iLAGJC,aAAc,SAACrG,GACbA,EAAM8B,OAAOsE,UAAY,KAE3BrG,QAAS,WACP+Y,GAAkB,GAClB9I,EAAU,mBAbd,QAsBN,yBAAKlQ,UAAU,4BACb,yBAAKA,UAAU,+BAAf,UACMyZ,GADN,SAGA,yBAAKzZ,UAAU,sEACZ0O,IAIJiK,EACC,yBAAK3Y,UAAU,4BACb,yBAAKA,UAAU,wFAAf,oBAGA,yBAAKA,UAAU,kDAAf,yBACqB6Y,KAGrB,MAGN,yBAAK7Y,UAAU,sBACb,yBAAKA,UAAU,4BACb,yBAAKA,UAAU,+BAAf,eACA,yBACEA,UAAU,0EACVC,QAAS,SAACC,GACRwY,GAAkB,KAHtB,uBAYN,yBAAK1Y,UAAU,sIACb,yBAAKA,UAAU,sBACb,yBAAKA,UAAU,4BACb,yBAAKA,UAAU,+BAAf,iBACA,yBAAKA,UAAU,oDAAf,UACMmF,GADN,cAKF,yBAAKnF,UAAU,4BACb,yBAAKA,UAAU,+BAAf,iBACA,yBAAKA,UAAU,iEACZ0Z,KAIL,yBAAK1Z,UAAU,8DACb,yBAAKA,UAAU,+BAAf,sBAIA,yBAAKA,UAAU,uDACb,yBAAKA,UAAU,iBACZgP,GACC3J,IACA2J,EAAcpS,KAAI,SAAC0D,GACjB,OAAOA,IAAU+E,GACf,yBACErF,UAAU,wCACVU,IAAG,UAAKJ,EAAL,YAAcsW,gBAEhBtW,GAGH,yBACEN,UAAU,+BACVU,IAAG,oBAAekW,gBAEjBtW,OAKX,yBACE9C,GAAG,YACHwC,UAAU,iJACVmG,aAAc,SAACjG,GAGbA,EAAM8B,OAAOsE,WADX,4KAGJC,aAAc,SAACrG,GACbA,EAAM8B,OAAOsE,UAAY,KAE3BrG,QAAS,WACP+Y,GAAkB,GAClB9I,EAAU,eAbd,OAqBJ,yBAAKlQ,UAAU,oCACb,yBACEA,UAAU,6GACVC,QAAS,WACP+Y,GAAkB,GAClB9I,EAAU,WAJd,qBASA,yBACElQ,UAAU,kGACVC,QAAS,WACP+Y,GAAkB,GAClB9I,EAAU,UAJd,yBAgBR,yBAAKlQ,UAAU,sFAAf,mCA6JyB8Z,GAAoB,OAGzC,yBAAK9Z,UAAU,oGACZ2E,EA1JmB,WAC9B,GACEjG,IACAA,GAAgBqG,OAAS,GACF,qBAAvBrG,GAAgB,GAChB,CACA,IAAIqb,EAAiB,GACjBC,EAAiB,GACjBhQ,EAAY,GAsEhB,OApEAtL,GAAgBqH,SAAQ,SAACzF,EAAO0F,GAC9B,IAAM6N,EAAavT,EAAMwE,MAAM,KAE3B+O,EAAW,GAAGtJ,SAAS,aACzByP,EAAe3Z,KACb,yBACEL,UAAU,4CACVU,IAAG,wBAAmBkW,gBAEtB,yBAAK5W,UAAU,QACb,yBAAKA,UAAU,SACb,kBAAC,IAAD,CACER,KAAM,CAAC,MAAO,UACdQ,UAAU,qCAGd,yBAAKA,UAAU,8CACZ6T,EAAW,IAGd,yBAAK7T,UAAU,yFACZ2Z,GAAmB3T,GAChB2T,GAAmB3T,GAChBlB,MAAM,KACNqN,QAAO,SAAC7R,EAAO0F,GACd,OAAiB,IAAVA,EAAc1F,EAAQ,QAE9B0K,KAAK,KACR,SAKH6I,EAAW,GAAGtJ,SAAS,SAChCP,EAAU3J,KACR,yBACEL,UAAU,4CACVU,IAAG,mBAAckW,gBAEjB,yBAAK5W,UAAU,QACb,yBAAKA,UAAU,SACb,kBAAC,IAAD,CACER,KAAM,CAAC,MAAO,QACdQ,UAAU,qCAGd,yBAAKA,UAAU,8CACZ6T,EAAW,IAEd,yBAAK7T,UAAU,2FACZ2Z,GAAmB3T,GAChB2T,GAAmB3T,GAChBlB,MAAM,KACNqN,QAAO,SAAC7R,EAAO0F,GACd,OAAiB,IAAVA,EAAc1F,EAAQ,QAE9B0K,KAAK,KACR,YAQhB+O,EAAe1Z,KAAK2Z,GACpBD,EAAe1Z,KAAK2J,GAGlB,yBACEhK,UAAU,oFACVU,IAAI,YAEJ,yBAAKV,UAAU,wEACb,yBAAKA,UAAU,UACf,yBAAKA,UAAU,SAAf,oBACA,yBAAKA,UAAU,SAAf,kBAED+Z,GAGA,OAAIrb,IAA0C,qBAAvBA,GAAgB,GAE1C,yBAAKsB,UAAU,0DAAf,iCAMA,yBAAKA,UAAU,0DAAf,4BAuDuBia,GAA4B,OAIjD,yBAAKja,UAAU,yFAAf,4BAIDqY,EACC,yBAAKrY,UAAU,yDAAf,8BAGE,OC7hBG,SAASka,EAAS7a,GAC/BwE,IAAQC,IAAIC,IAAKC,KAEjB,IAAMmW,EAAgB1Y,mBAHgB,EAKVb,qBAAW9C,GAA/B+C,EAL8B,EAK9BA,MAAOC,EALuB,EAKvBA,SACPvC,EAAgBsC,EAAhBtC,YAN8B,EAQVwC,mBAAS,IARC,mBAQ/BqZ,EAR+B,KAQvBC,EARuB,OASdtZ,mBAAS,GATK,mBAS/B9B,EAT+B,KASzBqb,EATyB,OAUAvZ,mBAAS,IAVT,mBAU/BuN,EAV+B,KAUlBiM,EAVkB,OAWMxZ,oBAAS,GAXf,mBAW/BgY,EAX+B,KAWfyB,EAXe,OAYFzZ,mBAAS,IAZP,mBAY/B0Z,EAZ+B,KAYnBC,EAZmB,OAaU3Z,mBAAS,IAbnB,mBAa/B4Z,EAb+B,KAabC,EAba,OAcF7Z,mBAAS,GAdP,mBAc/BsP,EAd+B,KAcnBC,EAdmB,OAeJvP,mBAAS,IAfL,mBAe/B8Z,EAf+B,KAepBC,EAfoB,OAgBM/Z,oBAAS,GAhBf,mBAgB/Bga,EAhB+B,KAgBfC,EAhBe,OAiBUja,oBAAS,GAjBnB,oBAiB/Bka,GAjB+B,MAiBbC,GAjBa,MAmBtC9W,qBAAU,WACRvB,IAAM,CACJC,IAAK5D,EACL6D,OAAQ,OACRC,KAAM,CACJC,MAAM,yEAAD,OpBVwB,kBoBUxB,oFASN9F,MAAK,SAAC+F,GACL,GAAIA,EAAIF,KAAKA,OAASE,EAAIF,KAAKG,MAAO,CACpC,IAAMgY,EAAajY,EAAIF,KAAKA,KAAKK,aAAa+X,qBAC9Cf,EAAUc,GACVL,EAAaK,GAEbhB,EAAc3X,QAAQP,MAAQkZ,MAGjC1X,OAAM,SAACC,GACN/E,QAAQC,IAAI8E,MAGhBb,IAAM,CACJC,IAAK5D,EACL6D,OAAQ,OACRC,KAAM,CACJC,MAAM,6EAAD,OpBnC6B,uBoBmC7B,0NAcN9F,MAAK,SAAC+F,GACL,GAAIA,EAAIF,KAAKA,OAASE,EAAIF,KAAKG,MAAO,CACpC,IAAMkY,EACJnY,EAAIF,KAAKA,KAAKK,aAAaiY,oBAC7Bf,EAAe,YAAIc,QAGtB5X,OAAM,SAACC,GACN/E,QAAQC,IAAI8E,MAGhBb,IAAM,CACJC,IAAK5D,EACL6D,OAAQ,OACRC,KAAM,CACJC,MAAM,6EAAD,OpB/DsB,gBoB+DtB,2FAQN9F,MAAK,SAAC+F,GACP,GAAIA,EAAIF,KAAKA,OAASE,EAAIF,KAAKG,MAAO,CACpC,IAAMoY,EAAYrY,EAAIF,KAAKA,KAAKK,aAAamY,oBAC7ClB,EAAQiB,SAGX,CAAClc,EAAOgR,IAmUX,OACE,oCACG0I,EACC,yBACE/Y,UAAU,oHACVxC,GAAG,oBACHkC,MAAO,CAAEiS,WAAY,mBACrB1R,QAAS,SAACC,GACgB,sBAApBA,EAAM8B,OAAOxE,KACfod,EAAoB,IACpBJ,GAAkB,GAElBlK,EADsBD,EAAa,MAKtCoK,EA3PT,WACE,IAAMgB,EAAa,CAAC,UAAW,YAAa,YAAa,aACrDvV,EAAY,GAMhB,OAJAvI,OAAOD,KAAK+c,GAAY1U,SAAQ,SAACrF,EAAKsF,GACpCE,EAAU7F,KAAK,CAAER,MAAO4b,EAAWzV,GAAQ/D,MAAOwY,EAAW/Z,QAI7D,yBAAKV,UAAU,qDACb,yBAAKA,UAAU,8CAAf,0DAGA,yBAAKA,UAAU,qEAAf,yGAIA,yBAAKA,UAAU,+CACZkG,EAAUtJ,KAAI,SAAC+R,GACd,OACE,yBAAK3O,UAAU,6BAA6BU,IAAKiO,EAAK9O,OACpD,yBAAKG,UAAU,uBAAuB2O,EAAK9O,OAC3C,yBAAKG,UAAU,SAAS2O,EAAK1M,YAMf,YAArB0Y,GAAuD,YAArBA,EACjC,yBACE3a,UAAU,4GACVC,QAAS,YA2BnB,WACE2a,EAAoB,WADU,IAEtBpd,EAAOid,EAAPjd,GACRqF,IAAM,CACJC,IAAK5D,EACL6D,OAAQ,OACRC,KAAM,CACJC,MAAM,4EAAD,OAEqBzF,EAFrB,4FAUNL,MAAK,SAAC+F,GACL,GAAIA,EAAIF,KAAKA,OAASE,EAAIF,KAAK0Y,KAAM,CAAC,IAAD,EACRxY,EAAIF,KAAKA,KAAKyX,WAAjCpJ,EAD2B,EAC3BA,OAAQhN,EADmB,EACnBA,OAChB,GAAe,mBAAXgN,EAA6B,CAC/B,GAAI9S,GAAeA,EAAYwG,OAAS,EAAG,CACzC,IAAI4W,EAAapd,EAAY,GAE7Bod,EAAaA,EAAW/e,KAAI,SAAC+R,GAC3B,OAAIA,EAAKnR,GAAGqN,aAAexG,EAAOwG,WACzB,KAEA8D,KAIX7N,EAAS,CACP0C,OjBxRmB,sBiByRnBd,QAAQ,YAAKiZ,KAIjBf,EAAoB,gBAEpBA,EAAoB,cAIzBnX,OAAM,SAACC,GACN/E,QAAQC,IAAI8E,GACZkX,EAAoB,aAxEdgB,KAHJ,kBAQE,KAEkB,YAArBjB,EACC,yBAAK3a,UAAU,0HAAf,wBAGE,KACkB,YAArB2a,EACC,yBAAK3a,UAAU,oFAAf,0BAGE,KACkB,WAArB2a,EACC,yBAAK3a,UAAU,mEAAf,yBAGE,MAsMY6b,GAAsB,KACpC,yBACE7b,UAAU,iMACVC,QAAS,WACP2a,EAAoB,IACpBJ,GAAkB,GAElBlK,EADsBD,EAAa,KALvC,MAYA,KACJ,yBAAKrQ,UAAU,sGACb,yBAAKA,UAAU,+EACb,kBAAC,IAAD,CACEA,UAAU,WACVR,KAAM,CAAC,MAAO,UAEhB,0BAAMQ,UAAU,SAAhB,aAEF,yBAAKA,UAAU,8CACZoa,EA9TL,yBAAKpa,UAAU,iBACb,yBAAKA,UAAU,iDAAf,qDAGA,yBAAKA,UAAU,QACb,2BACE6B,KAAK,OACL7B,UAAU,qEACVkC,IAAKiY,EACLpY,SAAU,SAAC7B,GACT4a,EAAa5a,EAAM8B,OAAOC,OAC1B+Y,GAAkB,IAEpB/a,QAAS,WACP+a,GAAkB,MAGtB,yBAAKhb,UAAU,6EAAf,2KAIE,yBAAKA,UAAU,QAAf,qCAEDoa,IAAWS,EACV,yBACE7a,UAAU,6IACVC,QAAS,YAnES,WAC1B,GAAI4a,EAAW,CACb,IAAMrJ,EAAkBnB,EAAa,EAErCxN,IAAM,CACJC,IAAK5D,EACL6D,OAAQ,OACRC,KAAM,CACJC,MAAM,+FAAD,OAEgC4X,EAAUhQ,WAF1C,wCAON1N,MAAK,SAAC+F,GACDA,EAAIF,KAAKA,OAASE,EAAIF,KAAKG,OAIR,4BAFAD,EAAIF,KAAKA,KAAK8Y,oBAGjCd,GAAkB,GAClB1K,EAAckB,GACdzS,OAAOC,SAAS+c,WAMlBf,GAAkB,GAClB1K,EAAckB,OAGjB/N,OAAM,SAACC,GACN/E,QAAQC,IAAI,wBAAyB8E,GACrCsX,GAAkB,GAClB1K,EAAckB,OAgCVwK,GACAhB,GAAkB,KAJtB,oBASE,KACHD,EACC,yBAAK/a,UAAU,iGAAf,2BAGE,OAwR+B,KAClCsO,EArKL,yBAAKtO,UAAU,mBACb,yBAAKA,UAAU,iDAAf,eAGA,oCACGsO,GAAeA,EAAYvJ,OAAS,EACnC,oCACE,yBAAK/E,UAAU,8GACb,yBAAKA,UAAU,8BAAf,WACA,yBAAKA,UAAU,8BAAf,aACA,yBAAKA,UAAU,8BAAf,aACA,yBAAKA,UAAU,8BAAf,aACA,yBAAKA,UAAU,8BAAf,WAEDsO,EAAY1R,KAAI,SAAC2I,GAChB,OACE,yBACEvF,UAAU,uEACVU,IAAK6E,EAAK/H,IAEV,yBAAKwC,UAAU,2CACZuF,EAAK/H,IAER,yBAAKwC,UAAU,qDACZuF,EAAKlD,UAER,yBAAKrC,UAAU,4EACZuF,EAAKjD,UAER,yBAAKtC,UAAU,8DACZuF,EAAK0W,WAER,yBAAKjc,UAAU,2CACb,yBACEA,UAAU,kGACVC,QAAS,SAACC,GACRsa,GAAkB,GAClBE,EAAcnV,KAGhB,kBAAC,IAAD,CACE5F,MAAM,QACNH,KAAM,CAAC,MAAO,sBAS5B,yBAAKQ,UAAU,iEAAf,iFAkHqC,KA3E3C,yBAAKA,UAAU,gBACb,yBAAKA,UAAU,wCAAf,yBAGA,yBAAKA,UAAU,aACb,2BACE6B,KAAK,OACL7B,UAAU,yGACViC,MAAOhD,EACP8C,SAAU,SAAC7B,GACToa,EAAQpa,EAAM8B,OAAOC,UAGzB,yBACEjC,UAAU,4IACVC,QAAS,WA1CXhB,GACF4D,IAAM,CACJC,IAAK5D,EACL6D,OAAQ,OACRC,KAAM,CACJC,MAAM,0FAAD,OAE2BhE,EAF3B,uCAON9B,MAAK,SAAC+F,GACDA,EAAIF,KAAKA,OAASE,EAAIF,KAAKG,MAC7BxE,QAAQC,IAAIsE,EAAIF,KAAKA,KAAKkZ,kBAE1BjB,IAAiB,MAGpBxX,OAAM,SAACC,GACN/E,QAAQC,IAAI8E,GACZwX,IAAoB,QAmBtB,gBASF,yBAAKlb,UAAU,6EAAf,oFAICib,GACC,yBAAKjb,UAAU,iGAAf,sBAGE,SC9ZG,SAASmc,EAAU9c,GAAQ,IAChCwB,EAAUD,qBAAW9C,GAArB+C,MAD+B,EAGPE,mBAAS,IAHF,mBAGhC7C,EAHgC,KAGtBke,EAHsB,OAIHrb,mBAAS,IAJN,mBAIhC4F,EAJgC,KAIpB0V,EAJoB,OAKDtb,mBAAS,IALR,mBAKhC6F,EALgC,KAKnB0V,EALmB,KAOjCC,EAAsBtJ,mBAAQ,WAClC,OAAO,kBAACkF,EAAD,CAAmBhY,YAAad,MACtC,CAACA,IAEEmd,EAAmBvJ,mBAAQ,WAC/B,OAAO,kBAACiH,EAAD,QACN,IAEGuC,EAAexJ,mBAAQ,WAC3B,OAAO,kBAACnM,EAAD,QACN,IAEH1C,qBAAU,WAAO,IAAD,EAC2BvD,EAAMvC,SAAvCoe,EADM,EACNA,QAASC,EADH,EACGA,SAAUC,EADb,EACaA,UAKrBtY,EADQzB,IAAM0B,YACCD,SAEjBoY,GAAWC,GAAYC,GACzBR,EAAYM,GACZL,EAAcM,GACdL,EAAeM,IAMW,IAdF,CAAC,UAAW,eAAgB,eAUjBzK,QAAO,SAACxD,GACzC,QAAOkO,aAAaC,QAAQnO,MAGf5J,QACbqX,EAAYS,aAAaC,QAAQ,YACjCR,EAAeO,aAAaC,QAAQ,iBACpCT,EAAcQ,aAAaC,QAAQ,iBAEnCja,IAAM,CACJC,IAAK5D,EACL6D,OAAQ,OACR0B,YAAaH,EAAOI,MACpB1B,KAAM,CACJC,MAAM,+RAaP9F,MAAK,SAAC+F,GACL,GAAIA,EAAIF,KAAKA,OAASE,EAAIF,KAAKG,MAAO,CAAC,IAAD,EAKhCD,EAAIF,KAAKA,KAAKK,aAAa0Z,YAH7BL,EAFkC,EAElCA,QACAC,EAHkC,EAGlCA,SACAC,EAJkC,EAIlCA,UAGFR,EAAYzZ,KAAKqa,MAAMN,GAAStZ,SAChCiZ,EAAc1Z,KAAKqa,MAAML,GAAUvZ,SACnCkZ,EAAe3Z,KAAKqa,MAAMJ,GAAWxZ,aAGxCK,OAAM,SAACC,GACN/E,QAAQC,IAAI8E,MAIpB,OAAO,WACLY,EAAOM,YAER,CAAC/D,EAAMvC,WAEV,IAAMoI,EAAS,CACbxI,WACAyI,aACAC,eAwBF,OACE,oCACE,yBAAK5G,UAAU,4CACb,kBAACZ,EAAD,CAAUe,YAAad,IAxBI,WAC/B,OAAQA,EAAML,SAASsa,UACrB,IAAK,aACH,OAAO,kBAAC7S,EAAD,CAAWC,OAAQA,IAC5B,IAAK,wBACH,OAAO,kBAACsN,EAAD,MACT,IAAK,sBACH,OAAOwI,EACT,IAAK,kBACH,OAAOC,EACT,QACE,OACE,kBAAC,IAAD,KACE,kBAAC,IAAD,CAAOjc,OAAK,EAACyc,KAAK,iCACfV,KAWNW,K,MCtHM,SAASC,EAAa9d,GAAQ,IAAD,EACR0B,oBAAS,GADD,mBACnCqc,EADmC,KACxBC,EADwB,OAEZtc,oBAAS,GAFG,mBAEnCuc,EAFmC,KAE1BC,EAF0B,KAGlCzc,EAAaF,qBAAW9C,GAAxBgD,SAgDR,OA9CAsD,qBAAU,WACR,IAAMoZ,EAASte,EACf2D,IAAM,CACJC,IAAK0a,EACLza,OAAQ,OACRC,KAAM,CACJC,MAAM,uPAaP9F,MAAK,SAAC+F,GACL,GAAIA,EAAIF,KAAKA,KAAM,CAAC,IAAD,EAKbE,EAAIF,KAAKA,KAAKK,aAAa0Z,YAH7BL,EAFe,EAEfA,QACAC,EAHe,EAGfA,SACAC,EAJe,EAIfA,UAGF9b,EAAS,CACPe,KnBxCmB,kBmByCnBa,QAAS,CACPga,UACAC,WACAC,eAGJW,GAAW,QAEXF,GAAa,MAGhB5Z,OAAM,SAACC,GACN/E,QAAQC,IAAI8E,GACZ2Z,GAAa,QAEhB,CAACvc,IAGF,oCACIwc,EAgCAje,EAAMe,QAAQC,KAAK,cA/BnB,yBAAKL,UAAU,6EACb,yBAAKA,UAAU,yFACb,yBAAKA,UAAU,wEACb,yBAAKA,UAAU,wBAEjB,yBAAKA,UAAU,yCACb,yBAAKA,UAAU,4EACb,0BAAMA,UAAU,oDAAhB,OAGA,yCAEF,yBAAKA,UAAU,wBAAf,oCAMHod,EACC,yBAAKpd,UAAU,uGACb,yBAAKA,UAAU,oCAAf,sBAGA,yGAKA,O,WC9EC,SAASyd,EAAQ5c,EAAO2C,GACrC,OAAQA,EAAO3B,MACb,IpBZ0B,iBoBaxB,OAAO,2BACFhB,GADL,IAEE5C,OAAQuF,EAAOd,UAEnB,IpBlB2B,kBoBkB3B,MAC2Cc,EAAOd,QAAxCga,EADV,EACUA,QAASC,EADnB,EACmBA,SAAUC,EAD7B,EAC6BA,UAErBc,EAAa,SAAChb,GAClB,OAAOC,KAAKqa,MAAMra,KAAKqa,MAAMra,KAAKC,UAAUF,KAAWU,SAOzD,OAJAyZ,aAAac,QAAQ,UAAWD,EAAWhB,IAC3CG,aAAac,QAAQ,cAAeD,EAAWf,IAC/CE,aAAac,QAAQ,eAAgBD,EAAWd,IAEzC,2BACF/b,GADL,IAEEvC,SAAU,CACRoe,QAASgB,EAAWhB,GACpBC,SAAUe,EAAWf,GACrBC,UAAWc,EAAWd,MAG5B,IpBnCwB,eoBoCtB,OAAO,2BACF/b,GADL,IAEEtC,YAAY,GAAD,mBAAMsC,EAAMtC,aAAZ,CAAyBiF,EAAOd,YAE/C,IpBnC+B,sBoBoC7B,OAAO,2BACF7B,GADL,IAEEtC,YAAY,YAAKiF,EAAOd,WAE5B,IpB5C6B,oBoB8C3B,OADA7B,EAAMrC,iBAAmB,GAClB,2BACFqC,GADL,IAEErC,iBAAiB,GAAD,mBAAMqC,EAAMrC,kBAAZ,CAA8BgF,EAAOd,YAEzD,IpBjD6B,oBoBmD3B,OADA7B,EAAMxC,aAAe,GACd,2BACFwC,GADL,IAEExC,aAAcmF,EAAOd,UAEzB,IpBtDoC,2BoBwDlC,OADA7B,EAAMnC,gBAAkB,GACjB,2BACFmC,GADL,IAEEnC,gBAAgB,GAAD,mBAAMmC,EAAMnC,iBAAZ,CAA6B8E,EAAOd,YAEvD,IpB3DsC,6BoB6DpC,OADA7B,EAAMpC,kBAAoB,GACnB,2BACFoC,GADL,IAEEpC,kBAAkB,GAAD,mBAAMoC,EAAMpC,mBAAZ,CAA+B+E,EAAOd,YAE3D,QACE,OAAO,eACF7B,IChEI,SAAS+c,EAAIve,GAC1B,IADiC,EASPwe,qBAAWJ,EARhB,CACnBnf,SAAU,GACVC,YAAa,GACbC,iBAAkB,GAClBH,aAAc,GACdI,kBAAmB,GACnBC,gBAAiB,KAPc,mBAS1BmC,EAT0B,KASnBC,EATmB,KAWjC,OACE,yBAAKd,UAAU,qBACb,kBAAClC,EAAgBggB,SAAjB,CAA0B7b,MAAO,CAAEpB,QAAOC,aACxC,kBAAC,IAAD,KACE,kBAAC,IAAD,KACE,kBAAC,IAAD,CAAOmc,KAAK,IAAIzc,OAAK,EAACud,UAAWZ,IACjC,kBAAC,IAAD,CAAOF,KAAK,aAAac,UAAW5B,IACpC,kBAAC,IAAD,CACEc,KAAK,wBACLzc,OAAK,EACLud,UAAW5B,IAEb,kBAAC,IAAD,CAAOc,KAAK,0BAA0Bc,UAAW5B,Q,MCpBzC6B,QACW,cAA7Bjf,OAAOC,SAASG,UAEe,UAA7BJ,OAAOC,SAASG,UAEhBJ,OAAOC,SAASG,SAASoE,MACvB,2DCXN0a,IAASC,OAAO,kBAAC,EAAD,MAASC,SAASC,eAAe,SD4H3C,kBAAmBC,WACrBA,UAAUC,cAAcC,MACrBphB,MAAK,SAAAqhB,GACJA,EAAaC,gBAEdhb,OAAM,SAAAN,GACLxE,QAAQwE,MAAMA,EAAMC,c","file":"static/js/main.3cda9c91.chunk.js","sourcesContent":["var map = {\n\t\"./prism-abap.js\": [\n\t\t78,\n\t\t3\n\t],\n\t\"./prism-abap.min.js\": [\n\t\t79,\n\t\t4\n\t],\n\t\"./prism-abnf.js\": [\n\t\t80,\n\t\t5\n\t],\n\t\"./prism-abnf.min.js\": [\n\t\t81,\n\t\t6\n\t],\n\t\"./prism-actionscript.js\": [\n\t\t82,\n\t\t7\n\t],\n\t\"./prism-actionscript.min.js\": [\n\t\t83,\n\t\t8\n\t],\n\t\"./prism-ada.js\": [\n\t\t84,\n\t\t9\n\t],\n\t\"./prism-ada.min.js\": [\n\t\t85,\n\t\t10\n\t],\n\t\"./prism-antlr4.js\": [\n\t\t86,\n\t\t11\n\t],\n\t\"./prism-antlr4.min.js\": [\n\t\t87,\n\t\t12\n\t],\n\t\"./prism-apacheconf.js\": [\n\t\t88,\n\t\t13\n\t],\n\t\"./prism-apacheconf.min.js\": [\n\t\t89,\n\t\t14\n\t],\n\t\"./prism-apl.js\": [\n\t\t90,\n\t\t15\n\t],\n\t\"./prism-apl.min.js\": [\n\t\t91,\n\t\t16\n\t],\n\t\"./prism-applescript.js\": [\n\t\t92,\n\t\t17\n\t],\n\t\"./prism-applescript.min.js\": [\n\t\t93,\n\t\t18\n\t],\n\t\"./prism-aql.js\": [\n\t\t94,\n\t\t19\n\t],\n\t\"./prism-aql.min.js\": [\n\t\t95,\n\t\t20\n\t],\n\t\"./prism-arduino.js\": [\n\t\t96,\n\t\t21\n\t],\n\t\"./prism-arduino.min.js\": [\n\t\t97,\n\t\t22\n\t],\n\t\"./prism-arff.js\": [\n\t\t98,\n\t\t23\n\t],\n\t\"./prism-arff.min.js\": [\n\t\t99,\n\t\t24\n\t],\n\t\"./prism-asciidoc.js\": [\n\t\t100,\n\t\t25\n\t],\n\t\"./prism-asciidoc.min.js\": [\n\t\t101,\n\t\t26\n\t],\n\t\"./prism-asm6502.js\": [\n\t\t102,\n\t\t27\n\t],\n\t\"./prism-asm6502.min.js\": [\n\t\t103,\n\t\t28\n\t],\n\t\"./prism-aspnet.js\": [\n\t\t104,\n\t\t29\n\t],\n\t\"./prism-aspnet.min.js\": [\n\t\t105,\n\t\t30\n\t],\n\t\"./prism-autohotkey.js\": [\n\t\t106,\n\t\t31\n\t],\n\t\"./prism-autohotkey.min.js\": [\n\t\t107,\n\t\t32\n\t],\n\t\"./prism-autoit.js\": [\n\t\t108,\n\t\t33\n\t],\n\t\"./prism-autoit.min.js\": [\n\t\t109,\n\t\t34\n\t],\n\t\"./prism-bash.js\": [\n\t\t110,\n\t\t35\n\t],\n\t\"./prism-bash.min.js\": [\n\t\t111,\n\t\t36\n\t],\n\t\"./prism-basic.js\": [\n\t\t112,\n\t\t37\n\t],\n\t\"./prism-basic.min.js\": [\n\t\t113,\n\t\t38\n\t],\n\t\"./prism-batch.js\": [\n\t\t114,\n\t\t39\n\t],\n\t\"./prism-batch.min.js\": [\n\t\t115,\n\t\t40\n\t],\n\t\"./prism-bbcode.js\": [\n\t\t116,\n\t\t41\n\t],\n\t\"./prism-bbcode.min.js\": [\n\t\t117,\n\t\t42\n\t],\n\t\"./prism-bison.js\": [\n\t\t118,\n\t\t43\n\t],\n\t\"./prism-bison.min.js\": [\n\t\t119,\n\t\t44\n\t],\n\t\"./prism-bnf.js\": [\n\t\t120,\n\t\t45\n\t],\n\t\"./prism-bnf.min.js\": [\n\t\t121,\n\t\t46\n\t],\n\t\"./prism-brainfuck.js\": [\n\t\t122,\n\t\t47\n\t],\n\t\"./prism-brainfuck.min.js\": [\n\t\t123,\n\t\t48\n\t],\n\t\"./prism-brightscript.js\": [\n\t\t124,\n\t\t49\n\t],\n\t\"./prism-brightscript.min.js\": [\n\t\t125,\n\t\t50\n\t],\n\t\"./prism-bro.js\": [\n\t\t126,\n\t\t51\n\t],\n\t\"./prism-bro.min.js\": [\n\t\t127,\n\t\t52\n\t],\n\t\"./prism-c.js\": [\n\t\t128,\n\t\t53\n\t],\n\t\"./prism-c.min.js\": [\n\t\t129,\n\t\t54\n\t],\n\t\"./prism-cil.js\": [\n\t\t130,\n\t\t55\n\t],\n\t\"./prism-cil.min.js\": [\n\t\t131,\n\t\t56\n\t],\n\t\"./prism-clike.js\": [\n\t\t132,\n\t\t57\n\t],\n\t\"./prism-clike.min.js\": [\n\t\t133,\n\t\t58\n\t],\n\t\"./prism-clojure.js\": [\n\t\t134,\n\t\t59\n\t],\n\t\"./prism-clojure.min.js\": [\n\t\t135,\n\t\t60\n\t],\n\t\"./prism-cmake.js\": [\n\t\t136,\n\t\t61\n\t],\n\t\"./prism-cmake.min.js\": [\n\t\t137,\n\t\t62\n\t],\n\t\"./prism-coffeescript.js\": [\n\t\t138,\n\t\t63\n\t],\n\t\"./prism-coffeescript.min.js\": [\n\t\t139,\n\t\t64\n\t],\n\t\"./prism-concurnas.js\": [\n\t\t140,\n\t\t65\n\t],\n\t\"./prism-concurnas.min.js\": [\n\t\t141,\n\t\t66\n\t],\n\t\"./prism-core.js\": [\n\t\t142,\n\t\t67\n\t],\n\t\"./prism-core.min.js\": [\n\t\t143,\n\t\t68\n\t],\n\t\"./prism-cpp.js\": [\n\t\t144,\n\t\t69\n\t],\n\t\"./prism-cpp.min.js\": [\n\t\t145,\n\t\t70\n\t],\n\t\"./prism-crystal.js\": [\n\t\t146,\n\t\t71\n\t],\n\t\"./prism-crystal.min.js\": [\n\t\t147,\n\t\t72\n\t],\n\t\"./prism-csharp.js\": [\n\t\t148,\n\t\t73\n\t],\n\t\"./prism-csharp.min.js\": [\n\t\t149,\n\t\t74\n\t],\n\t\"./prism-csp.js\": [\n\t\t150,\n\t\t75\n\t],\n\t\"./prism-csp.min.js\": [\n\t\t151,\n\t\t76\n\t],\n\t\"./prism-css-extras.js\": [\n\t\t152,\n\t\t77\n\t],\n\t\"./prism-css-extras.min.js\": [\n\t\t153,\n\t\t78\n\t],\n\t\"./prism-css.js\": [\n\t\t154,\n\t\t79\n\t],\n\t\"./prism-css.min.js\": [\n\t\t155,\n\t\t80\n\t],\n\t\"./prism-d.js\": [\n\t\t156,\n\t\t81\n\t],\n\t\"./prism-d.min.js\": [\n\t\t157,\n\t\t82\n\t],\n\t\"./prism-dart.js\": [\n\t\t158,\n\t\t83\n\t],\n\t\"./prism-dart.min.js\": [\n\t\t159,\n\t\t84\n\t],\n\t\"./prism-dax.js\": [\n\t\t160,\n\t\t85\n\t],\n\t\"./prism-dax.min.js\": [\n\t\t161,\n\t\t86\n\t],\n\t\"./prism-diff.js\": [\n\t\t162,\n\t\t87\n\t],\n\t\"./prism-diff.min.js\": [\n\t\t163,\n\t\t88\n\t],\n\t\"./prism-django.js\": [\n\t\t164,\n\t\t89\n\t],\n\t\"./prism-django.min.js\": [\n\t\t165,\n\t\t90\n\t],\n\t\"./prism-dns-zone-file.js\": [\n\t\t166,\n\t\t91\n\t],\n\t\"./prism-dns-zone-file.min.js\": [\n\t\t167,\n\t\t92\n\t],\n\t\"./prism-docker.js\": [\n\t\t168,\n\t\t93\n\t],\n\t\"./prism-docker.min.js\": [\n\t\t169,\n\t\t94\n\t],\n\t\"./prism-ebnf.js\": [\n\t\t170,\n\t\t95\n\t],\n\t\"./prism-ebnf.min.js\": [\n\t\t171,\n\t\t96\n\t],\n\t\"./prism-eiffel.js\": [\n\t\t172,\n\t\t97\n\t],\n\t\"./prism-eiffel.min.js\": [\n\t\t173,\n\t\t98\n\t],\n\t\"./prism-ejs.js\": [\n\t\t174,\n\t\t99\n\t],\n\t\"./prism-ejs.min.js\": [\n\t\t175,\n\t\t100\n\t],\n\t\"./prism-elixir.js\": [\n\t\t176,\n\t\t101\n\t],\n\t\"./prism-elixir.min.js\": [\n\t\t177,\n\t\t102\n\t],\n\t\"./prism-elm.js\": [\n\t\t178,\n\t\t103\n\t],\n\t\"./prism-elm.min.js\": [\n\t\t179,\n\t\t104\n\t],\n\t\"./prism-erb.js\": [\n\t\t180,\n\t\t105\n\t],\n\t\"./prism-erb.min.js\": [\n\t\t181,\n\t\t106\n\t],\n\t\"./prism-erlang.js\": [\n\t\t182,\n\t\t107\n\t],\n\t\"./prism-erlang.min.js\": [\n\t\t183,\n\t\t108\n\t],\n\t\"./prism-etlua.js\": [\n\t\t184,\n\t\t109\n\t],\n\t\"./prism-etlua.min.js\": [\n\t\t185,\n\t\t110\n\t],\n\t\"./prism-excel-formula.js\": [\n\t\t186,\n\t\t111\n\t],\n\t\"./prism-excel-formula.min.js\": [\n\t\t187,\n\t\t112\n\t],\n\t\"./prism-factor.js\": [\n\t\t188,\n\t\t113\n\t],\n\t\"./prism-factor.min.js\": [\n\t\t189,\n\t\t114\n\t],\n\t\"./prism-firestore-security-rules.js\": [\n\t\t190,\n\t\t115\n\t],\n\t\"./prism-firestore-security-rules.min.js\": [\n\t\t191,\n\t\t116\n\t],\n\t\"./prism-flow.js\": [\n\t\t192,\n\t\t117\n\t],\n\t\"./prism-flow.min.js\": [\n\t\t193,\n\t\t118\n\t],\n\t\"./prism-fortran.js\": [\n\t\t194,\n\t\t119\n\t],\n\t\"./prism-fortran.min.js\": [\n\t\t195,\n\t\t120\n\t],\n\t\"./prism-fsharp.js\": [\n\t\t196,\n\t\t121\n\t],\n\t\"./prism-fsharp.min.js\": [\n\t\t197,\n\t\t122\n\t],\n\t\"./prism-ftl.js\": [\n\t\t198,\n\t\t123\n\t],\n\t\"./prism-ftl.min.js\": [\n\t\t199,\n\t\t124\n\t],\n\t\"./prism-gcode.js\": [\n\t\t200,\n\t\t125\n\t],\n\t\"./prism-gcode.min.js\": [\n\t\t201,\n\t\t126\n\t],\n\t\"./prism-gdscript.js\": [\n\t\t202,\n\t\t127\n\t],\n\t\"./prism-gdscript.min.js\": [\n\t\t203,\n\t\t128\n\t],\n\t\"./prism-gedcom.js\": [\n\t\t204,\n\t\t129\n\t],\n\t\"./prism-gedcom.min.js\": [\n\t\t205,\n\t\t130\n\t],\n\t\"./prism-gherkin.js\": [\n\t\t206,\n\t\t131\n\t],\n\t\"./prism-gherkin.min.js\": [\n\t\t207,\n\t\t132\n\t],\n\t\"./prism-git.js\": [\n\t\t208,\n\t\t133\n\t],\n\t\"./prism-git.min.js\": [\n\t\t209,\n\t\t134\n\t],\n\t\"./prism-glsl.js\": [\n\t\t210,\n\t\t135\n\t],\n\t\"./prism-glsl.min.js\": [\n\t\t211,\n\t\t136\n\t],\n\t\"./prism-gml.js\": [\n\t\t212,\n\t\t137\n\t],\n\t\"./prism-gml.min.js\": [\n\t\t213,\n\t\t138\n\t],\n\t\"./prism-go.js\": [\n\t\t214,\n\t\t139\n\t],\n\t\"./prism-go.min.js\": [\n\t\t215,\n\t\t140\n\t],\n\t\"./prism-graphql.js\": [\n\t\t216,\n\t\t141\n\t],\n\t\"./prism-graphql.min.js\": [\n\t\t217,\n\t\t142\n\t],\n\t\"./prism-groovy.js\": [\n\t\t218,\n\t\t143\n\t],\n\t\"./prism-groovy.min.js\": [\n\t\t219,\n\t\t144\n\t],\n\t\"./prism-haml.js\": [\n\t\t220,\n\t\t145\n\t],\n\t\"./prism-haml.min.js\": [\n\t\t221,\n\t\t146\n\t],\n\t\"./prism-handlebars.js\": [\n\t\t222,\n\t\t147\n\t],\n\t\"./prism-handlebars.min.js\": [\n\t\t223,\n\t\t148\n\t],\n\t\"./prism-haskell.js\": [\n\t\t224,\n\t\t149\n\t],\n\t\"./prism-haskell.min.js\": [\n\t\t225,\n\t\t150\n\t],\n\t\"./prism-haxe.js\": [\n\t\t226,\n\t\t151\n\t],\n\t\"./prism-haxe.min.js\": [\n\t\t227,\n\t\t152\n\t],\n\t\"./prism-hcl.js\": [\n\t\t228,\n\t\t153\n\t],\n\t\"./prism-hcl.min.js\": [\n\t\t229,\n\t\t154\n\t],\n\t\"./prism-hpkp.js\": [\n\t\t230,\n\t\t155\n\t],\n\t\"./prism-hpkp.min.js\": [\n\t\t231,\n\t\t156\n\t],\n\t\"./prism-hsts.js\": [\n\t\t232,\n\t\t157\n\t],\n\t\"./prism-hsts.min.js\": [\n\t\t233,\n\t\t158\n\t],\n\t\"./prism-http.js\": [\n\t\t234,\n\t\t159\n\t],\n\t\"./prism-http.min.js\": [\n\t\t235,\n\t\t160\n\t],\n\t\"./prism-ichigojam.js\": [\n\t\t236,\n\t\t161\n\t],\n\t\"./prism-ichigojam.min.js\": [\n\t\t237,\n\t\t162\n\t],\n\t\"./prism-icon.js\": [\n\t\t238,\n\t\t163\n\t],\n\t\"./prism-icon.min.js\": [\n\t\t239,\n\t\t164\n\t],\n\t\"./prism-inform7.js\": [\n\t\t240,\n\t\t165\n\t],\n\t\"./prism-inform7.min.js\": [\n\t\t241,\n\t\t166\n\t],\n\t\"./prism-ini.js\": [\n\t\t242,\n\t\t167\n\t],\n\t\"./prism-ini.min.js\": [\n\t\t243,\n\t\t168\n\t],\n\t\"./prism-io.js\": [\n\t\t244,\n\t\t169\n\t],\n\t\"./prism-io.min.js\": [\n\t\t245,\n\t\t170\n\t],\n\t\"./prism-j.js\": [\n\t\t246,\n\t\t171\n\t],\n\t\"./prism-j.min.js\": [\n\t\t247,\n\t\t172\n\t],\n\t\"./prism-java.js\": [\n\t\t248,\n\t\t173\n\t],\n\t\"./prism-java.min.js\": [\n\t\t249,\n\t\t174\n\t],\n\t\"./prism-javadoc.js\": [\n\t\t250,\n\t\t175\n\t],\n\t\"./prism-javadoc.min.js\": [\n\t\t251,\n\t\t176\n\t],\n\t\"./prism-javadoclike.js\": [\n\t\t252,\n\t\t177\n\t],\n\t\"./prism-javadoclike.min.js\": [\n\t\t253,\n\t\t178\n\t],\n\t\"./prism-javascript.js\": [\n\t\t254,\n\t\t179\n\t],\n\t\"./prism-javascript.min.js\": [\n\t\t255,\n\t\t180\n\t],\n\t\"./prism-javastacktrace.js\": [\n\t\t256,\n\t\t181\n\t],\n\t\"./prism-javastacktrace.min.js\": [\n\t\t257,\n\t\t182\n\t],\n\t\"./prism-jolie.js\": [\n\t\t258,\n\t\t183\n\t],\n\t\"./prism-jolie.min.js\": [\n\t\t259,\n\t\t184\n\t],\n\t\"./prism-jq.js\": [\n\t\t260,\n\t\t185\n\t],\n\t\"./prism-jq.min.js\": [\n\t\t261,\n\t\t186\n\t],\n\t\"./prism-js-extras.js\": [\n\t\t262,\n\t\t187\n\t],\n\t\"./prism-js-extras.min.js\": [\n\t\t263,\n\t\t188\n\t],\n\t\"./prism-js-templates.js\": [\n\t\t264,\n\t\t189\n\t],\n\t\"./prism-js-templates.min.js\": [\n\t\t265,\n\t\t190\n\t],\n\t\"./prism-jsdoc.js\": [\n\t\t266,\n\t\t191\n\t],\n\t\"./prism-jsdoc.min.js\": [\n\t\t267,\n\t\t192\n\t],\n\t\"./prism-json.js\": [\n\t\t268,\n\t\t193\n\t],\n\t\"./prism-json.min.js\": [\n\t\t269,\n\t\t194\n\t],\n\t\"./prism-json5.js\": [\n\t\t270,\n\t\t195\n\t],\n\t\"./prism-json5.min.js\": [\n\t\t271,\n\t\t196\n\t],\n\t\"./prism-jsonp.js\": [\n\t\t272,\n\t\t197\n\t],\n\t\"./prism-jsonp.min.js\": [\n\t\t273,\n\t\t198\n\t],\n\t\"./prism-jsx.js\": [\n\t\t274,\n\t\t199\n\t],\n\t\"./prism-jsx.min.js\": [\n\t\t275,\n\t\t200\n\t],\n\t\"./prism-julia.js\": [\n\t\t276,\n\t\t201\n\t],\n\t\"./prism-julia.min.js\": [\n\t\t277,\n\t\t202\n\t],\n\t\"./prism-keyman.js\": [\n\t\t278,\n\t\t203\n\t],\n\t\"./prism-keyman.min.js\": [\n\t\t279,\n\t\t204\n\t],\n\t\"./prism-kotlin.js\": [\n\t\t280,\n\t\t205\n\t],\n\t\"./prism-kotlin.min.js\": [\n\t\t281,\n\t\t206\n\t],\n\t\"./prism-latex.js\": [\n\t\t282,\n\t\t207\n\t],\n\t\"./prism-latex.min.js\": [\n\t\t283,\n\t\t208\n\t],\n\t\"./prism-latte.js\": [\n\t\t284,\n\t\t209\n\t],\n\t\"./prism-latte.min.js\": [\n\t\t285,\n\t\t210\n\t],\n\t\"./prism-less.js\": [\n\t\t286,\n\t\t211\n\t],\n\t\"./prism-less.min.js\": [\n\t\t287,\n\t\t212\n\t],\n\t\"./prism-lilypond.js\": [\n\t\t288,\n\t\t213\n\t],\n\t\"./prism-lilypond.min.js\": [\n\t\t289,\n\t\t214\n\t],\n\t\"./prism-liquid.js\": [\n\t\t290,\n\t\t215\n\t],\n\t\"./prism-liquid.min.js\": [\n\t\t291,\n\t\t216\n\t],\n\t\"./prism-lisp.js\": [\n\t\t292,\n\t\t217\n\t],\n\t\"./prism-lisp.min.js\": [\n\t\t293,\n\t\t218\n\t],\n\t\"./prism-livescript.js\": [\n\t\t294,\n\t\t219\n\t],\n\t\"./prism-livescript.min.js\": [\n\t\t295,\n\t\t220\n\t],\n\t\"./prism-llvm.js\": [\n\t\t296,\n\t\t221\n\t],\n\t\"./prism-llvm.min.js\": [\n\t\t297,\n\t\t222\n\t],\n\t\"./prism-lolcode.js\": [\n\t\t298,\n\t\t223\n\t],\n\t\"./prism-lolcode.min.js\": [\n\t\t299,\n\t\t224\n\t],\n\t\"./prism-lua.js\": [\n\t\t300,\n\t\t225\n\t],\n\t\"./prism-lua.min.js\": [\n\t\t301,\n\t\t226\n\t],\n\t\"./prism-makefile.js\": [\n\t\t302,\n\t\t227\n\t],\n\t\"./prism-makefile.min.js\": [\n\t\t303,\n\t\t228\n\t],\n\t\"./prism-markdown.js\": [\n\t\t304,\n\t\t229\n\t],\n\t\"./prism-markdown.min.js\": [\n\t\t305,\n\t\t230\n\t],\n\t\"./prism-markup-templating.js\": [\n\t\t306,\n\t\t231\n\t],\n\t\"./prism-markup-templating.min.js\": [\n\t\t307,\n\t\t232\n\t],\n\t\"./prism-markup.js\": [\n\t\t308,\n\t\t233\n\t],\n\t\"./prism-markup.min.js\": [\n\t\t309,\n\t\t234\n\t],\n\t\"./prism-matlab.js\": [\n\t\t310,\n\t\t235\n\t],\n\t\"./prism-matlab.min.js\": [\n\t\t311,\n\t\t236\n\t],\n\t\"./prism-mel.js\": [\n\t\t312,\n\t\t237\n\t],\n\t\"./prism-mel.min.js\": [\n\t\t313,\n\t\t238\n\t],\n\t\"./prism-mizar.js\": [\n\t\t314,\n\t\t239\n\t],\n\t\"./prism-mizar.min.js\": [\n\t\t315,\n\t\t240\n\t],\n\t\"./prism-monkey.js\": [\n\t\t316,\n\t\t241\n\t],\n\t\"./prism-monkey.min.js\": [\n\t\t317,\n\t\t242\n\t],\n\t\"./prism-moonscript.js\": [\n\t\t318,\n\t\t243\n\t],\n\t\"./prism-moonscript.min.js\": [\n\t\t319,\n\t\t244\n\t],\n\t\"./prism-n1ql.js\": [\n\t\t320,\n\t\t245\n\t],\n\t\"./prism-n1ql.min.js\": [\n\t\t321,\n\t\t246\n\t],\n\t\"./prism-n4js.js\": [\n\t\t322,\n\t\t247\n\t],\n\t\"./prism-n4js.min.js\": [\n\t\t323,\n\t\t248\n\t],\n\t\"./prism-nand2tetris-hdl.js\": [\n\t\t324,\n\t\t249\n\t],\n\t\"./prism-nand2tetris-hdl.min.js\": [\n\t\t325,\n\t\t250\n\t],\n\t\"./prism-nasm.js\": [\n\t\t326,\n\t\t251\n\t],\n\t\"./prism-nasm.min.js\": [\n\t\t327,\n\t\t252\n\t],\n\t\"./prism-neon.js\": [\n\t\t328,\n\t\t253\n\t],\n\t\"./prism-neon.min.js\": [\n\t\t329,\n\t\t254\n\t],\n\t\"./prism-nginx.js\": [\n\t\t330,\n\t\t255\n\t],\n\t\"./prism-nginx.min.js\": [\n\t\t331,\n\t\t256\n\t],\n\t\"./prism-nim.js\": [\n\t\t332,\n\t\t257\n\t],\n\t\"./prism-nim.min.js\": [\n\t\t333,\n\t\t258\n\t],\n\t\"./prism-nix.js\": [\n\t\t334,\n\t\t259\n\t],\n\t\"./prism-nix.min.js\": [\n\t\t335,\n\t\t260\n\t],\n\t\"./prism-nsis.js\": [\n\t\t336,\n\t\t261\n\t],\n\t\"./prism-nsis.min.js\": [\n\t\t337,\n\t\t262\n\t],\n\t\"./prism-objectivec.js\": [\n\t\t338,\n\t\t263\n\t],\n\t\"./prism-objectivec.min.js\": [\n\t\t339,\n\t\t264\n\t],\n\t\"./prism-ocaml.js\": [\n\t\t340,\n\t\t265\n\t],\n\t\"./prism-ocaml.min.js\": [\n\t\t341,\n\t\t266\n\t],\n\t\"./prism-opencl.js\": [\n\t\t342,\n\t\t267\n\t],\n\t\"./prism-opencl.min.js\": [\n\t\t343,\n\t\t268\n\t],\n\t\"./prism-oz.js\": [\n\t\t344,\n\t\t269\n\t],\n\t\"./prism-oz.min.js\": [\n\t\t345,\n\t\t270\n\t],\n\t\"./prism-parigp.js\": [\n\t\t346,\n\t\t271\n\t],\n\t\"./prism-parigp.min.js\": [\n\t\t347,\n\t\t272\n\t],\n\t\"./prism-parser.js\": [\n\t\t348,\n\t\t273\n\t],\n\t\"./prism-parser.min.js\": [\n\t\t349,\n\t\t274\n\t],\n\t\"./prism-pascal.js\": [\n\t\t350,\n\t\t275\n\t],\n\t\"./prism-pascal.min.js\": [\n\t\t351,\n\t\t276\n\t],\n\t\"./prism-pascaligo.js\": [\n\t\t352,\n\t\t277\n\t],\n\t\"./prism-pascaligo.min.js\": [\n\t\t353,\n\t\t278\n\t],\n\t\"./prism-pcaxis.js\": [\n\t\t354,\n\t\t279\n\t],\n\t\"./prism-pcaxis.min.js\": [\n\t\t355,\n\t\t280\n\t],\n\t\"./prism-perl.js\": [\n\t\t356,\n\t\t281\n\t],\n\t\"./prism-perl.min.js\": [\n\t\t357,\n\t\t282\n\t],\n\t\"./prism-php-extras.js\": [\n\t\t358,\n\t\t283\n\t],\n\t\"./prism-php-extras.min.js\": [\n\t\t359,\n\t\t284\n\t],\n\t\"./prism-php.js\": [\n\t\t360,\n\t\t285\n\t],\n\t\"./prism-php.min.js\": [\n\t\t361,\n\t\t286\n\t],\n\t\"./prism-phpdoc.js\": [\n\t\t362,\n\t\t287\n\t],\n\t\"./prism-phpdoc.min.js\": [\n\t\t363,\n\t\t288\n\t],\n\t\"./prism-plsql.js\": [\n\t\t364,\n\t\t289\n\t],\n\t\"./prism-plsql.min.js\": [\n\t\t365,\n\t\t290\n\t],\n\t\"./prism-powerquery.js\": [\n\t\t366,\n\t\t291\n\t],\n\t\"./prism-powerquery.min.js\": [\n\t\t367,\n\t\t292\n\t],\n\t\"./prism-powershell.js\": [\n\t\t368,\n\t\t293\n\t],\n\t\"./prism-powershell.min.js\": [\n\t\t369,\n\t\t294\n\t],\n\t\"./prism-processing.js\": [\n\t\t370,\n\t\t295\n\t],\n\t\"./prism-processing.min.js\": [\n\t\t371,\n\t\t296\n\t],\n\t\"./prism-prolog.js\": [\n\t\t372,\n\t\t297\n\t],\n\t\"./prism-prolog.min.js\": [\n\t\t373,\n\t\t298\n\t],\n\t\"./prism-properties.js\": [\n\t\t374,\n\t\t299\n\t],\n\t\"./prism-properties.min.js\": [\n\t\t375,\n\t\t300\n\t],\n\t\"./prism-protobuf.js\": [\n\t\t376,\n\t\t301\n\t],\n\t\"./prism-protobuf.min.js\": [\n\t\t377,\n\t\t302\n\t],\n\t\"./prism-pug.js\": [\n\t\t378,\n\t\t303\n\t],\n\t\"./prism-pug.min.js\": [\n\t\t379,\n\t\t304\n\t],\n\t\"./prism-puppet.js\": [\n\t\t380,\n\t\t305\n\t],\n\t\"./prism-puppet.min.js\": [\n\t\t381,\n\t\t306\n\t],\n\t\"./prism-pure.js\": [\n\t\t382,\n\t\t307\n\t],\n\t\"./prism-pure.min.js\": [\n\t\t383,\n\t\t308\n\t],\n\t\"./prism-python.js\": [\n\t\t384,\n\t\t309\n\t],\n\t\"./prism-python.min.js\": [\n\t\t385,\n\t\t310\n\t],\n\t\"./prism-q.js\": [\n\t\t386,\n\t\t311\n\t],\n\t\"./prism-q.min.js\": [\n\t\t387,\n\t\t312\n\t],\n\t\"./prism-qml.js\": [\n\t\t388,\n\t\t313\n\t],\n\t\"./prism-qml.min.js\": [\n\t\t389,\n\t\t314\n\t],\n\t\"./prism-qore.js\": [\n\t\t390,\n\t\t315\n\t],\n\t\"./prism-qore.min.js\": [\n\t\t391,\n\t\t316\n\t],\n\t\"./prism-r.js\": [\n\t\t392,\n\t\t317\n\t],\n\t\"./prism-r.min.js\": [\n\t\t393,\n\t\t318\n\t],\n\t\"./prism-reason.js\": [\n\t\t394,\n\t\t319\n\t],\n\t\"./prism-reason.min.js\": [\n\t\t395,\n\t\t320\n\t],\n\t\"./prism-regex.js\": [\n\t\t396,\n\t\t321\n\t],\n\t\"./prism-regex.min.js\": [\n\t\t397,\n\t\t322\n\t],\n\t\"./prism-renpy.js\": [\n\t\t398,\n\t\t323\n\t],\n\t\"./prism-renpy.min.js\": [\n\t\t399,\n\t\t324\n\t],\n\t\"./prism-rest.js\": [\n\t\t400,\n\t\t325\n\t],\n\t\"./prism-rest.min.js\": [\n\t\t401,\n\t\t326\n\t],\n\t\"./prism-rip.js\": [\n\t\t402,\n\t\t327\n\t],\n\t\"./prism-rip.min.js\": [\n\t\t403,\n\t\t328\n\t],\n\t\"./prism-roboconf.js\": [\n\t\t404,\n\t\t329\n\t],\n\t\"./prism-roboconf.min.js\": [\n\t\t405,\n\t\t330\n\t],\n\t\"./prism-robotframework.js\": [\n\t\t406,\n\t\t331\n\t],\n\t\"./prism-robotframework.min.js\": [\n\t\t407,\n\t\t332\n\t],\n\t\"./prism-ruby.js\": [\n\t\t408,\n\t\t333\n\t],\n\t\"./prism-ruby.min.js\": [\n\t\t409,\n\t\t334\n\t],\n\t\"./prism-rust.js\": [\n\t\t410,\n\t\t335\n\t],\n\t\"./prism-rust.min.js\": [\n\t\t411,\n\t\t336\n\t],\n\t\"./prism-sas.js\": [\n\t\t412,\n\t\t337\n\t],\n\t\"./prism-sas.min.js\": [\n\t\t413,\n\t\t338\n\t],\n\t\"./prism-sass.js\": [\n\t\t414,\n\t\t339\n\t],\n\t\"./prism-sass.min.js\": [\n\t\t415,\n\t\t340\n\t],\n\t\"./prism-scala.js\": [\n\t\t416,\n\t\t341\n\t],\n\t\"./prism-scala.min.js\": [\n\t\t417,\n\t\t342\n\t],\n\t\"./prism-scheme.js\": [\n\t\t418,\n\t\t343\n\t],\n\t\"./prism-scheme.min.js\": [\n\t\t419,\n\t\t344\n\t],\n\t\"./prism-scss.js\": [\n\t\t420,\n\t\t345\n\t],\n\t\"./prism-scss.min.js\": [\n\t\t421,\n\t\t346\n\t],\n\t\"./prism-shell-session.js\": [\n\t\t422,\n\t\t347\n\t],\n\t\"./prism-shell-session.min.js\": [\n\t\t423,\n\t\t348\n\t],\n\t\"./prism-smalltalk.js\": [\n\t\t424,\n\t\t349\n\t],\n\t\"./prism-smalltalk.min.js\": [\n\t\t425,\n\t\t350\n\t],\n\t\"./prism-smarty.js\": [\n\t\t426,\n\t\t351\n\t],\n\t\"./prism-smarty.min.js\": [\n\t\t427,\n\t\t352\n\t],\n\t\"./prism-solidity.js\": [\n\t\t428,\n\t\t353\n\t],\n\t\"./prism-solidity.min.js\": [\n\t\t429,\n\t\t354\n\t],\n\t\"./prism-solution-file.js\": [\n\t\t430,\n\t\t355\n\t],\n\t\"./prism-solution-file.min.js\": [\n\t\t431,\n\t\t356\n\t],\n\t\"./prism-soy.js\": [\n\t\t432,\n\t\t357\n\t],\n\t\"./prism-soy.min.js\": [\n\t\t433,\n\t\t358\n\t],\n\t\"./prism-sparql.js\": [\n\t\t434,\n\t\t359\n\t],\n\t\"./prism-sparql.min.js\": [\n\t\t435,\n\t\t360\n\t],\n\t\"./prism-splunk-spl.js\": [\n\t\t436,\n\t\t361\n\t],\n\t\"./prism-splunk-spl.min.js\": [\n\t\t437,\n\t\t362\n\t],\n\t\"./prism-sqf.js\": [\n\t\t438,\n\t\t363\n\t],\n\t\"./prism-sqf.min.js\": [\n\t\t439,\n\t\t364\n\t],\n\t\"./prism-sql.js\": [\n\t\t440,\n\t\t365\n\t],\n\t\"./prism-sql.min.js\": [\n\t\t441,\n\t\t366\n\t],\n\t\"./prism-stylus.js\": [\n\t\t442,\n\t\t367\n\t],\n\t\"./prism-stylus.min.js\": [\n\t\t443,\n\t\t368\n\t],\n\t\"./prism-swift.js\": [\n\t\t444,\n\t\t369\n\t],\n\t\"./prism-swift.min.js\": [\n\t\t445,\n\t\t370\n\t],\n\t\"./prism-t4-cs.js\": [\n\t\t446,\n\t\t371\n\t],\n\t\"./prism-t4-cs.min.js\": [\n\t\t447,\n\t\t372\n\t],\n\t\"./prism-t4-templating.js\": [\n\t\t448,\n\t\t373\n\t],\n\t\"./prism-t4-templating.min.js\": [\n\t\t449,\n\t\t374\n\t],\n\t\"./prism-t4-vb.js\": [\n\t\t450,\n\t\t375\n\t],\n\t\"./prism-t4-vb.min.js\": [\n\t\t451,\n\t\t376\n\t],\n\t\"./prism-tap.js\": [\n\t\t452,\n\t\t377\n\t],\n\t\"./prism-tap.min.js\": [\n\t\t453,\n\t\t378\n\t],\n\t\"./prism-tcl.js\": [\n\t\t454,\n\t\t379\n\t],\n\t\"./prism-tcl.min.js\": [\n\t\t455,\n\t\t380\n\t],\n\t\"./prism-textile.js\": [\n\t\t456,\n\t\t381\n\t],\n\t\"./prism-textile.min.js\": [\n\t\t457,\n\t\t382\n\t],\n\t\"./prism-toml.js\": [\n\t\t458,\n\t\t383\n\t],\n\t\"./prism-toml.min.js\": [\n\t\t459,\n\t\t384\n\t],\n\t\"./prism-tsx.js\": [\n\t\t460,\n\t\t385\n\t],\n\t\"./prism-tsx.min.js\": [\n\t\t461,\n\t\t386\n\t],\n\t\"./prism-tt2.js\": [\n\t\t462,\n\t\t387\n\t],\n\t\"./prism-tt2.min.js\": [\n\t\t463,\n\t\t388\n\t],\n\t\"./prism-turtle.js\": [\n\t\t464,\n\t\t389\n\t],\n\t\"./prism-turtle.min.js\": [\n\t\t465,\n\t\t390\n\t],\n\t\"./prism-twig.js\": [\n\t\t466,\n\t\t391\n\t],\n\t\"./prism-twig.min.js\": [\n\t\t467,\n\t\t392\n\t],\n\t\"./prism-typescript.js\": [\n\t\t468,\n\t\t393\n\t],\n\t\"./prism-typescript.min.js\": [\n\t\t469,\n\t\t394\n\t],\n\t\"./prism-vala.js\": [\n\t\t470,\n\t\t395\n\t],\n\t\"./prism-vala.min.js\": [\n\t\t471,\n\t\t396\n\t],\n\t\"./prism-vbnet.js\": [\n\t\t472,\n\t\t397\n\t],\n\t\"./prism-vbnet.min.js\": [\n\t\t473,\n\t\t398\n\t],\n\t\"./prism-velocity.js\": [\n\t\t474,\n\t\t399\n\t],\n\t\"./prism-velocity.min.js\": [\n\t\t475,\n\t\t400\n\t],\n\t\"./prism-verilog.js\": [\n\t\t476,\n\t\t401\n\t],\n\t\"./prism-verilog.min.js\": [\n\t\t477,\n\t\t402\n\t],\n\t\"./prism-vhdl.js\": [\n\t\t478,\n\t\t403\n\t],\n\t\"./prism-vhdl.min.js\": [\n\t\t479,\n\t\t404\n\t],\n\t\"./prism-vim.js\": [\n\t\t480,\n\t\t405\n\t],\n\t\"./prism-vim.min.js\": [\n\t\t481,\n\t\t406\n\t],\n\t\"./prism-visual-basic.js\": [\n\t\t482,\n\t\t407\n\t],\n\t\"./prism-visual-basic.min.js\": [\n\t\t483,\n\t\t408\n\t],\n\t\"./prism-wasm.js\": [\n\t\t484,\n\t\t409\n\t],\n\t\"./prism-wasm.min.js\": [\n\t\t485,\n\t\t410\n\t],\n\t\"./prism-wiki.js\": [\n\t\t486,\n\t\t411\n\t],\n\t\"./prism-wiki.min.js\": [\n\t\t487,\n\t\t412\n\t],\n\t\"./prism-xeora.js\": [\n\t\t488,\n\t\t413\n\t],\n\t\"./prism-xeora.min.js\": [\n\t\t489,\n\t\t414\n\t],\n\t\"./prism-xojo.js\": [\n\t\t490,\n\t\t415\n\t],\n\t\"./prism-xojo.min.js\": [\n\t\t491,\n\t\t416\n\t],\n\t\"./prism-xquery.js\": [\n\t\t492,\n\t\t417\n\t],\n\t\"./prism-xquery.min.js\": [\n\t\t493,\n\t\t418\n\t],\n\t\"./prism-yaml.js\": [\n\t\t494,\n\t\t419\n\t],\n\t\"./prism-yaml.min.js\": [\n\t\t495,\n\t\t420\n\t],\n\t\"./prism-zig.js\": [\n\t\t496,\n\t\t421\n\t],\n\t\"./prism-zig.min.js\": [\n\t\t497,\n\t\t422\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\treturn __webpack_require__.t(id, 7);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 74;\nmodule.exports = webpackAsyncContext;","import React from 'react'\n\nconst contextValues = {\n hcDone: false,\n platform: \"\",\n git:\"\",\n node:\"\",\n globalRepoId: \"\",\n hcParams: {},\n presentRepo: [],\n modifiedGitFiles: [],\n gitUntrackedFiles: [],\n gitTrackedFiles: [] \n}\n\nexport const ContextProvider = React.createContext(contextValues)\n","// Global ENV file for all environment variables\n\n//PORTS LIST\n\nconsole.log(process.env.NODE_ENV);\nexport const PORT_GLOBAL_API =\n process.env.NODE_ENV === \"development\" ? 9001 : window.location.port;\n\n//CONFIG LIST\n\nexport const CONFIG_HTTP_MODE = \"http\";\n\n//API LIST\n\nexport const API_GLOBAL_GQL = \"gitconvexapi\";\n\nexport const globalAPIEndpoint = `${CONFIG_HTTP_MODE}://${window.location.hostname}:${PORT_GLOBAL_API}/${API_GLOBAL_GQL}`;\n\n// ROUTED FOR GLOBAL API\n\nexport const ROUTE_HEALTH_CHECK = \"HEALTH_CHECK\";\nexport const ROUTE_FETCH_REPO = \"FETCH_REPO\";\nexport const ROUTE_ADD_REPO = \"ADD_REPO\";\nexport const ROUTE_REPO_DETAILS = \"REPO_DETAILS\";\nexport const ROUTE_REPO_TRACKED_DIFF = \"REPO_TRACKED_DIFF\";\nexport const ROUTE_REPO_FILE_DIFF = \"REPO_FILE_DIFF\";\nexport const ROUTE_REPO_COMMIT_LOGS = \"COMMIT_LOGS\";\nexport const ROUTE_GIT_STAGED_FILES = \"GIT_STAGED_FILES\";\nexport const ROUTE_GIT_UNPUSHED_COMMITS = \"GIT_UNPUSHED_COMMITS\";\nexport const ROUTE_SETTINGS_DBPATH = \"SETTINGS_DBPATH\";\nexport const ROUTE_SETTINGS_REPODETAILS = \"SETTINGS_REPODETAILS\";\nexport const ROUTE_SETTINGS_PORT = \"SETTINGS_PORT\";\n","import {\n FolderOutlined,\n HelpOutline,\n SettingsOutlined,\n} from \"@material-ui/icons\";\nimport React from \"react\";\nimport { NavLink } from \"react-router-dom\";\n\nexport default function LeftPane(props) {\n const menuItemParams = [\n {\n link: \"/dashboard/repository\",\n icon: (\n \n ),\n label: \"Repositories\",\n },\n {\n link: \"/dashboard/settings\",\n icon: (\n \n ),\n label: \"Settings\",\n },\n {\n link: \"/dashboard/help\",\n icon: (\n \n ),\n label: \"Help\",\n },\n ];\n\n return (\n
\n {\n props.parentProps.history.push(\"/dashboard\");\n }}\n >\n
\n
\n Git\n Convex\n
\n
\n
\n {menuItemParams.map((entry) => {\n return (\n \n
\n
{entry.icon}
\n
\n {entry.label}\n
\n
\n \n );\n })}\n
\n \n );\n}\n","import axios from \"axios\";\nimport React, { useRef, useState, useContext } from \"react\";\nimport { globalAPIEndpoint, ROUTE_ADD_REPO } from \"../../../../util/env_config\";\nimport { DELETE_PRESENT_REPO } from \"../../../../actionStore\";\nimport { ContextProvider } from \"../../../../context\";\n\nexport default function AddRepoForm(props) {\n const { state, dispatch } = useContext(ContextProvider);\n const [repoNameState, setRepoName] = useState(\"\");\n const [repoPathState, setRepoPath] = useState(\"\");\n const [repoAddFailed, setRepoAddFailed] = useState(false);\n const [repoAddSuccess, setRepoAddSuccess] = useState(false);\n\n const repoNameRef = useRef();\n const repoPathRef = useRef();\n const initCheckRef = useRef();\n\n function storeRepoAPI(repoName, repoPath) {\n if (repoName && repoPath) {\n let initCheck = false;\n\n if (initCheckRef.current.checked) {\n initCheck = true;\n }\n\n let payload = JSON.stringify(\n JSON.stringify({ repoName, repoPath, initCheck })\n );\n\n axios({\n url: globalAPIEndpoint,\n method: \"POST\",\n data: {\n query: `\n query GitConvexApi{\n gitConvexApi(route: \"${ROUTE_ADD_REPO}\", payload: ${payload}){\n addRepo{\n message\n }\n }\n }\n `,\n },\n })\n .then((res) => {\n if (res.data && res.data.data && !res.data.error) {\n const { message } = res.data.data.gitConvexApi.addRepo;\n\n if (message && !message.match(/FAIL/g)) {\n setRepoAddSuccess(true);\n setRepoAddFailed(false);\n repoNameRef.current.value = \"\";\n repoPathRef.current.value = \"\";\n initCheckRef.current.value = \"\";\n\n dispatch({\n action: DELETE_PRESENT_REPO,\n payload: [],\n });\n\n console.log(state.presentRepo);\n } else {\n setRepoAddFailed(true);\n setRepoAddSuccess(false);\n }\n } else {\n setRepoAddFailed(true);\n setRepoAddSuccess(false);\n }\n })\n .catch((err) => {\n console.log(err);\n setRepoAddFailed(true);\n setRepoAddSuccess(false);\n });\n } else {\n setRepoAddFailed(true);\n }\n }\n\n function resetAlertBanner() {\n setRepoAddFailed(false);\n setRepoAddSuccess(false);\n }\n\n function repoAddStatusBanner() {\n if (repoAddSuccess) {\n return (\n
\n New repo added\n
\n );\n } else if (repoAddFailed) {\n return (\n
\n Process failed! Please try again\n
\n );\n } else {\n return null;\n }\n }\n\n return (\n
\n
\n {repoAddStatusBanner()}\n
\n Enter Repo Details\n
\n
\n {\n setRepoName(event.target.value);\n }}\n ref={repoNameRef}\n onClick={() => {\n resetAlertBanner();\n }}\n >\n
\n
\n {\n setRepoPath(event.target.value);\n }}\n ref={repoPathRef}\n onClick={() => {\n resetAlertBanner();\n }}\n >\n
\n
\n \n \n Check this if the folder is not a git repo\n \n
\n
\n {\n props.formEnable(false);\n }}\n >\n Close\n
\n {\n storeRepoAPI(repoNameState, repoPathState);\n }}\n >\n Submit\n
\n
\n \n \n );\n}\n","export const HC_PARAM_ACTION = \"HC_PARAM_ACTION\";\nexport const HC_DONE_SWITCH = \"HC_DONE_SWITCH\";\nexport const PRESENT_REPO = \"PRESENT_REPO\";\nexport const GIT_TRACKED_FILES = \"GIT_TRACKED_FILES\";\nexport const GIT_GLOBAL_REPOID = \"GIT_GLOBAL_REPOID\";\nexport const GIT_ACTION_TRACKED_FILES = \"GIT_ACTION_TRACKED_FILES\";\nexport const GIT_ACTION_UNTRACKED_FILES = \"GIT_ACTION_UNTRACKED_FILES\";\nexport const DELETE_PRESENT_REPO = \"DELETE_PRESENT_REPO\";\n","import axios from \"axios\";\nimport React, { useEffect, useState } from \"react\";\nimport { NavLink } from \"react-router-dom\";\nimport {\n globalAPIEndpoint,\n ROUTE_REPO_DETAILS,\n} from \"../../../../util/env_config\";\nimport { library } from \"@fortawesome/fontawesome-svg-core\";\nimport { fab } from \"@fortawesome/free-brands-svg-icons\";\nimport { fas } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\n\nexport default function RepoCard(props) {\n library.add(fab, fas);\n const { repoData } = props;\n\n const [repoFooterData, setRepoFooterData] = useState(\"\");\n\n useEffect(() => {\n let repoId = props.repoData.id;\n const payload = JSON.stringify(JSON.stringify({ repoId: repoId }));\n\n const token = axios.CancelToken;\n const source = token.source();\n\n axios({\n url: globalAPIEndpoint,\n method: \"POST\",\n headers: {\n \"Content-type\": \"application/json\",\n },\n cancelToken: source.token,\n data: {\n query: `\n \n query GitConvexApi\n {\n gitConvexApi(route: \"${ROUTE_REPO_DETAILS}\", payload: ${payload}){\n gitRepoStatus {\n gitTotalCommits\n gitTotalTrackedFiles \n gitCurrentBranch \n }\n }\n }\n `,\n },\n })\n .then((res) => {\n setRepoFooterData(res.data.data.gitConvexApi.gitRepoStatus);\n })\n .catch((err) => {});\n\n return () => {\n source.cancel();\n };\n }, [props]);\n\n const repoName = repoData.repoName;\n var avatar = \"\";\n\n if (repoName) {\n if (repoName.split(\" \").length > 1) {\n let tempName = repoName.split(\" \");\n avatar = tempName[0].substring(0, 1) + tempName[1].substring(0, 1);\n avatar = avatar.toUpperCase();\n } else {\n avatar = repoName.substring(0, 1).toUpperCase();\n }\n }\n\n return (\n \n
\n {avatar}\n
\n
\n {repoData.repoName}\n
\n
\n
\n \n
\n {repoFooterData.gitTotalCommits} Commits\n
\n
\n
\n \n
\n {repoFooterData.gitTotalTrackedFiles} Tracked Files\n
\n
\n
\n \n
\n {repoFooterData.gitCurrentBranch}\n
\n
\n
\n \n );\n}\n","import axios from \"axios\";\nimport React, { useContext, useEffect, useState } from \"react\";\nimport { PRESENT_REPO, DELETE_PRESENT_REPO } from \"../../../../actionStore\";\nimport { ContextProvider } from \"../../../../context\";\nimport {\n globalAPIEndpoint,\n ROUTE_FETCH_REPO,\n} from \"../../../../util/env_config\";\nimport AddRepoFormComponent from \"./AddRepoForm\";\nimport RepoCard from \"./RepoCard\";\n\nexport default function RepoComponent(props) {\n const [repo, setRepo] = useState([]);\n const [repoFormEnable, setRepoFormEnable] = useState(false);\n\n const { dispatch } = useContext(ContextProvider);\n\n useEffect(() => {\n const fetchRepoURL = globalAPIEndpoint;\n\n const token = axios.CancelToken;\n const source = token.source();\n\n axios({\n url: fetchRepoURL,\n method: \"POST\",\n cancelToken: source.token,\n data: {\n query: `\n query GitConvexResults{\n gitConvexApi(route: \"${ROUTE_FETCH_REPO}\"){\n fetchRepo{\n repoId\n repoName\n repoPath\n }\n }\n }\n `,\n },\n }).then((res) => {\n const apiResponse = res.data.data.gitConvexApi.fetchRepo;\n\n if (apiResponse) {\n const { repoId, repoName } = apiResponse;\n let repoContent = [];\n\n repoId.forEach((entry, index) => {\n repoContent.push({ id: entry, repoName: repoName[index] });\n });\n\n setRepo(repoContent);\n\n dispatch({\n type: DELETE_PRESENT_REPO,\n payload: [],\n });\n\n dispatch({\n action: PRESENT_REPO,\n payload: [...repoContent],\n });\n }\n });\n\n return () => {\n source.cancel();\n };\n }, [repoFormEnable, dispatch]);\n\n const showAvailableRepo = () => {\n const repoArray = repo;\n\n return (\n <>\n
\n <>\n {repoArray.length > 0 ? (\n <>\n {repoArray.map((entry) => {\n return ;\n })}\n \n ) : (\n
\n No repos present. Press + to add a new repo\n
\n )}\n \n
\n <>\n {\n setRepoFormEnable(true);\n }}\n onMouseEnter={(event) => {\n event.stopPropagation();\n event.preventDefault();\n let popUp = `
Click to add a new repo
`;\n event.target.innerHTML += popUp;\n }}\n onMouseLeave={(event) => {\n event.target.innerHTML = \"+\";\n }}\n >\n +\n \n \n \n );\n };\n\n const addFormRemove = (param) => {\n setRepoFormEnable(param);\n };\n\n return (\n
\n {!repoFormEnable ? (\n showAvailableRepo()\n ) : (\n \n )}\n
\n );\n}\n","import React from \"react\";\nimport RepoComponent from \"../Repository/RepoComponents/RepoComponent\";\n\nexport default function RightPane(props) {\n const { platform, gitVersion, nodeVersion } = props.params;\n\n const hcParams = [\n {\n label: \"Platform\",\n value: platform,\n },\n {\n label: \"Git\",\n value: gitVersion,\n },\n {\n label: \"Node\",\n value: nodeVersion,\n },\n ];\n\n return (\n <>\n
\n
\n {hcParams.map((entry) => {\n return (\n \n
\n {entry.label}\n
\n {entry.value !== \"\" ? (\n \n {entry.value}\n
\n ) : (\n
\n Invalid\n
\n )}\n
\n );\n })}\n \n {repoEntry()}\n \n \n );\n\n function repoEntry() {\n if (platform && gitVersion && nodeVersion) {\n return ;\n }\n }\n}\n","import { library } from \"@fortawesome/fontawesome-svg-core\";\nimport { fab } from \"@fortawesome/free-brands-svg-icons\";\nimport { fas } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport React from \"react\";\n\nexport default function Help() {\n library.add(fas, fab);\n\n return (\n
\n
\n \n
Help and Support
\n
\n
\n
\n Facing an issue or need any help?\n
\n \n Before raising an issue, make sure you have gone through the\n \n \n \n Documentation\n \n \n
\n\n
\n
\n Have any queries or want to share your feedback?\n
\n
\n
\n Lets have a discussion on\n
\n\n \n
\n \n
discord
\n
\n \n
\n
\n\n
\n
\n You can also use the github issue reporting feature to report any\n issue you find in the platform\n
\n \n
\n \n
Report an issue
\n
\n \n
\n\n
\n
\n gitconvex is open source and please visit the repo if you are\n interested in contributing to the platform\n
\n\n
\n \n
\n \n
\n
gitconvex UI
\n \n\n \n
\n \n
\n
gitconvex server
\n \n
\n
\n
\n );\n}\n","import axios from \"axios\";\nimport * as Prism from \"prismjs\";\nimport React, { useContext, useEffect, useState } from \"react\";\nimport { GIT_TRACKED_FILES } from \"../../../../actionStore\";\nimport { ContextProvider } from \"../../../../context\";\nimport {\n globalAPIEndpoint,\n ROUTE_REPO_FILE_DIFF,\n ROUTE_REPO_TRACKED_DIFF,\n} from \"../../../../util/env_config\";\nimport \"../../../../prism.css\";\n\nimport { v4 as uuidv4 } from \"uuid\";\n\nexport default function GitDiffViewComponent() {\n const { state, dispatch } = useContext(ContextProvider);\n const repoId = state.globalRepoId;\n\n const [changedFiles, setChangedFiles] = useState([]);\n const [diffStatState, setDiffStatState] = useState(\n \"Click on a file item to see the difference\"\n );\n const [fileLineDiffState, setFileLineDiffState] = useState([]);\n const [activeFileName, setActiveFileName] = useState(\"\");\n const [isApiCalled, setIsApiCalled] = useState(false);\n const [isLangSelected, setIsLangSelected] = useState(false);\n const [wranStatus, setWarnStatus] = useState(\"\");\n const [lang, setLang] = useState(\"\");\n\n const langEnum = {\n js: \"javascript\",\n java: \"java\",\n py: \"python\",\n c: \"c\",\n cpp: \"cpp\",\n go: \"go\",\n rust: \"rust\",\n ts: \"typescript\",\n dart: \"dart\",\n php: \"php\",\n html: \"markup\",\n json: \"json\",\n xml: \"markup\",\n yaml: \"yaml\",\n yml: \"yaml\",\n rb: \"ruby\",\n jsx: \"jsx\",\n kt: \"kotlin\",\n ktm: \"kotlin\",\n kts: \"kotlin\",\n cs: \"csharp\",\n vb: \"visual-basic\",\n css: \"css\",\n };\n\n useEffect(() => {\n let repoId = state.globalRepoId;\n\n setIsLangSelected(false);\n setActiveFileName(\"\");\n setFileLineDiffState(\"Click on a file item to see the difference\");\n setDiffStatState(\"Click on a file item to see the difference\");\n let apiEndPoint = globalAPIEndpoint;\n if (repoId) {\n const payload = JSON.stringify(JSON.stringify({ repoId: repoId }));\n\n axios({\n url: apiEndPoint,\n method: \"POST\",\n headers: {\n \"Content-type\": \"application/json\",\n },\n data: {\n query: `\n query GitConvexApi{\n gitConvexApi(route: \"${ROUTE_REPO_TRACKED_DIFF}\", payload:${payload})\n {\n gitChanges{\n gitChangedFiles\n }\n }\n }\n `,\n },\n })\n .then((res) => {\n if (res) {\n if (res.data.data && !res.data.error) {\n var apiData = res.data.data.gitConvexApi.gitChanges;\n const { gitChangedFiles } = apiData;\n setChangedFiles([...gitChangedFiles]);\n setIsApiCalled(true);\n dispatch({ type: GIT_TRACKED_FILES, payload: gitChangedFiles });\n }\n }\n })\n .catch((err) => {\n return err;\n });\n }\n }, [state.globalRepoId, dispatch]);\n\n function getDiffFiles() {\n return (\n <>\n {changedFiles.length >= 1 &&\n changedFiles.map((entry) => {\n if (entry && entry.split(\",\")[0] === \"M\") {\n let fileEntry = entry.split(\",\")[1];\n const styleSelector = \" bg-indigo-100 border-b border-indigo-400\";\n return (\n {\n setActiveFileName(fileEntry);\n fileDiffStatComponent(repoId, fileEntry);\n }}\n key={fileEntry}\n >\n {fileEntry}\n \n );\n } else {\n return null;\n }\n })}\n \n );\n }\n\n const languageDetector = (fileName) => {\n const fileType = fileName.split(\".\")[fileName.split(\".\").length - 1];\n\n if (fileType) {\n setIsLangSelected(true);\n if (fileType in langEnum) {\n return langEnum[fileType];\n } else {\n return \"markup\";\n }\n }\n };\n\n function fileDiffStatComponent(repoId, fileName) {\n const apiEndPoint = globalAPIEndpoint;\n setIsLangSelected(false);\n\n const payload = JSON.stringify(\n JSON.stringify({ repoId: repoId, fileName: fileName })\n );\n\n axios({\n url: apiEndPoint,\n method: \"POST\",\n headers: {\n \"Content-type\": \"application/json\",\n },\n data: {\n query: `\n query GitConvexApi{\n gitConvexApi(route: \"${ROUTE_REPO_FILE_DIFF}\", payload:${payload})\n {\n gitFileLineChanges{\n diffStat\n fileDiff\n }\n }\n }\n `,\n },\n })\n .then(async (res) => {\n if (res.data.data && !res.data.error) {\n const {\n diffStat,\n fileDiff,\n } = res.data.data.gitConvexApi.gitFileLineChanges;\n\n if (diffStat[0] === \"NO_STAT\" || fileDiff[0] === \"NO_DIFF\") {\n setWarnStatus(\n \"No difference could be found. Please check if the file is present in the repo!\"\n );\n } else {\n setDiffStatState(diffStat[1]);\n setFileLineDiffState(fileDiff);\n\n var selectedLang = languageDetector(fileName);\n\n await import(\"prismjs/components/prism-\" + selectedLang + \".js\")\n .then(() => {})\n .catch((err) => {\n console.log(err);\n });\n\n setLang(selectedLang);\n }\n } else {\n setWarnStatus(\n \"Error while fetching the file difference. Please try reloading the view!\"\n );\n }\n })\n .catch((err) => {\n console.log(err);\n setWarnStatus(\n \"Error while fetching the file difference. Please try reloading the view!\"\n );\n });\n }\n\n function statFormat() {\n if (diffStatState && diffStatState.includes(\",\")) {\n let splitStat = diffStatState.split(\",\");\n\n return (\n
\n {splitStat[0]}\n {splitStat.slice(1, splitStat.length).map((parts) => {\n if (parts.match(/insert/i)) {\n return (\n \n {parts.toString().split(\" \")[1]}\n \n insertions (+)\n \n \n );\n } else {\n return (\n \n {parts.toString().split(\" \")[1]}\n \n deletions (-)\n \n \n );\n }\n })}\n
\n );\n }\n }\n\n function fileLineDiffComponent() {\n let splitLines = [];\n if (\n fileLineDiffState &&\n fileLineDiffState.join(\"\").split(/@@.*@@/gi) &&\n isLangSelected &&\n lang\n ) {\n let partFile = fileLineDiffState\n .join(\"|__HASH_SEPARATOR__|\")\n .split(/@@.*@@/gi)[1]\n .split(\"|__HASH_SEPARATOR__|\");\n\n splitLines = partFile.map((line) => {\n if (line[0] === \"+\") {\n return (\n
\n
\n                \n              
\n
\n );\n } else if (line[0] === \"-\") {\n return (\n
\n
\n                \n              
\n
\n );\n } else {\n return (\n
\n
\n                \n              
\n
\n );\n }\n });\n }\n\n return (\n
\n {splitLines}\n
\n );\n }\n\n return (\n <>\n {changedFiles && changedFiles.length > 0 ? (\n <>\n
\n
\n {getDiffFiles()}\n
\n\n {!activeFileName ? (\n
\n Click on a file to see difference information\n
\n ) : (\n \"\"\n )}\n\n {wranStatus ? (\n
\n {wranStatus}\n
\n ) : null}\n\n {diffStatState &&\n diffStatState !== \"Click on a file item to see the difference\" &&\n !wranStatus ? (\n
\n {diffStatState ? statFormat() : \"\"}\n {fileLineDiffState &&\n fileLineDiffState !==\n \"Click on a file item to see the difference\" ? (\n
\n {fileLineDiffComponent()}\n
\n ) : (\n \"\"\n )}\n
\n ) : (\n \"\"\n )}\n
\n \n ) : (\n <>\n {isApiCalled ? (\n
\n No Changed files are being tracked currently!\n
\n ) : null}\n \n )}\n \n );\n}\n","import React, { useEffect, useState, useRef } from \"react\";\nimport axios from \"axios\";\nimport {\n globalAPIEndpoint,\n ROUTE_GIT_STAGED_FILES,\n} from \"../../../../../util/env_config\";\n\nexport default function CommitComponent(props) {\n const { repoId } = props;\n\n const [loading, setLoading] = useState(true);\n const [stagedFilesState, setStagedFilesState] = useState([]);\n const [commitDone, setCommitDone] = useState(false);\n const [commitError, setCommitError] = useState(false);\n const [loadingCommit, setLoadingCommit] = useState(false);\n\n const commitRef = useRef();\n\n useEffect(() => {\n const payload = JSON.stringify(JSON.stringify({ repoId: props.repoId }));\n const cancelToken = axios.CancelToken;\n const source = cancelToken.source();\n\n axios({\n url: globalAPIEndpoint,\n method: \"POST\",\n headers: {\n \"Content-type\": \"application/json\",\n },\n cancelToken: source.token,\n data: {\n query: `\n query GitConvexApi{\n gitConvexApi(route: \"${ROUTE_GIT_STAGED_FILES}\", payload:${payload})\n {\n gitStagedFiles{\n stagedFiles\n }\n }\n }\n `,\n },\n })\n .then((res) => {\n const { stagedFiles } = res.data.data.gitConvexApi.gitStagedFiles;\n setLoading(false);\n\n if (stagedFiles && stagedFiles.length > 0) {\n setStagedFilesState([...stagedFiles]);\n }\n })\n .catch((err) => {\n setLoading(false);\n });\n\n return () => {\n source.cancel();\n };\n }, [props]);\n\n function commitHandler(commitMsg) {\n setLoadingCommit(true);\n if (commitMsg.split(\"\\n\") && commitMsg.split(\"\\n\").length > 0) {\n commitMsg = commitMsg.toString().split(\"\\n\").join(\"||\");\n }\n\n axios({\n url: globalAPIEndpoint,\n method: \"POST\",\n data: {\n query: `\n mutation GitConvexMutation{\n commitChanges(repoId: \"${repoId}\", commitMessage: \"${commitMsg}\")\n }\n `,\n },\n })\n .then((res) => {\n setLoadingCommit(false);\n\n if (\n res.data.data &&\n !res.data.error &&\n res.data.data.commitChanges === \"COMMIT_DONE\"\n ) {\n setCommitDone(true);\n } else {\n setCommitError(true);\n }\n })\n .catch((err) => {\n setLoadingCommit(false);\n setCommitError(true);\n });\n }\n\n function commitComponent() {\n if (stagedFilesState && stagedFilesState.length > 0) {\n const stagedCount = stagedFilesState.length;\n\n return (\n <>\n {!commitDone ? (\n
\n
\n {stagedCount} Changes to commit...\n
\n
\n {stagedFilesState.map((stagedFile) => {\n return (\n \n {stagedFile}\n
\n );\n })}\n
\n
Commit Message
\n \n {commitError ? (\n
\n Commit Failed!\n
\n ) : null}\n {loadingCommit ? (\n
\n Committing Changes...\n
\n ) : (\n {\n const commitMsg = commitRef.current.value;\n\n if (commitMsg) {\n commitHandler(commitMsg);\n } else {\n alert(\"Commit message can't be empty\");\n }\n }}\n >\n Commit Changes\n \n )}\n \n ) : (\n
\n All changes are committed!\n
\n )}\n \n );\n }\n }\n\n return (\n
\n {stagedFilesState && stagedFilesState.length > 0 ? (\n commitComponent()\n ) : (\n
\n {loading ? (\n Loading Commits...\n ) : (\n No Staged files to commit\n )}\n
\n )}\n
\n );\n}\n","import React, { useEffect, useState, useRef } from \"react\";\nimport axios from \"axios\";\nimport {\n globalAPIEndpoint,\n ROUTE_REPO_DETAILS,\n ROUTE_GIT_UNPUSHED_COMMITS,\n} from \"../../../../../util/env_config\";\n\nexport default function PushComponent(props) {\n const { repoId } = props;\n\n const [remoteData, setRemoteData] = useState();\n const [isRemoteSet, setIsRemoteSet] = useState(false);\n const [isBranchSet, setIsBranchSet] = useState(false);\n const [unpushedCommits, setUnpushedCommits] = useState([]);\n const [isCommitEmpty, setIsCommitEmpty] = useState(false);\n\n const [pushDone, setPushDone] = useState(false);\n const [pushFailed, setPushFailed] = useState(false);\n const [loading, setLoading] = useState(false);\n\n const remoteRef = useRef();\n const branchRef = useRef();\n\n useEffect(() => {\n let payload = JSON.stringify(JSON.stringify({ repoId: props.repoId }));\n\n axios({\n url: globalAPIEndpoint,\n method: \"POST\",\n headers: {\n \"Content-type\": \"application/json\",\n },\n data: {\n query: `\n query GitConvexApi\n {\n gitConvexApi(route: \"${ROUTE_REPO_DETAILS}\", payload: ${payload}){\n gitRepoStatus {\n gitRemoteData\n gitCurrentBranch\n gitRemoteHost\n gitBranchList \n }\n }\n }\n `,\n },\n })\n .then((res) => {\n const repoDetails = res.data.data.gitConvexApi.gitRepoStatus;\n setRemoteData(repoDetails);\n })\n .catch((err) => {\n console.log(err);\n });\n }, [props]);\n\n function getUnpushedCommits() {\n let payload = JSON.stringify(JSON.stringify({ repoId: props.repoId }));\n\n axios({\n url: globalAPIEndpoint,\n method: \"POST\",\n data: {\n query: `\n query GitConvexApi\n {\n gitConvexApi(route: \"${ROUTE_GIT_UNPUSHED_COMMITS}\", payload: ${payload}){\n gitUnpushedCommits{\n commits\n }\n }\n }\n `,\n },\n })\n .then((res) => {\n if (res.data.data && !res.data.error) {\n const { commits } = res.data.data.gitConvexApi.gitUnpushedCommits;\n if (commits.length === 0) {\n setIsCommitEmpty(true);\n }\n setUnpushedCommits([...commits]);\n }\n })\n .catch((err) => {\n console.log(err);\n });\n }\n\n function remoteHostGenerator() {\n if (remoteData) {\n const { gitRemoteData } = remoteData;\n if (gitRemoteData.includes(\"||\")) {\n return gitRemoteData.split(\"||\").map((item) => {\n return (\n \n );\n });\n } else {\n return ;\n }\n }\n }\n\n function branchListGenerator() {\n if (remoteData) {\n const { gitBranchList } = remoteData;\n\n return gitBranchList.map((branch) => {\n if (branch !== \"NO_BRANCH\") {\n return (\n \n );\n }\n return null;\n });\n }\n }\n\n function commitModel(commit) {\n const modelLabel = [\n \"Commit Hash\",\n \"Commit Author\",\n \"Commit Timestamp\",\n \"Commit Message\",\n ];\n const splitCommit = commit.split(\"||\");\n\n const localModelFormat = (left, right) => {\n return (\n
\n
\n {left}\n
\n
\n {right}\n
\n
\n );\n };\n\n return (\n
\n {modelLabel.map((label, index) => {\n return localModelFormat(label, splitCommit[index]);\n })}\n
\n );\n }\n\n function pushHandler(remote, branch) {\n setLoading(true);\n axios({\n url: globalAPIEndpoint,\n method: \"POST\",\n data: {\n query: `\n mutation GitConvexMutation{\n pushToRemote(repoId: \"${repoId}\", remoteHost: \"${remote}\", branch: \"${branch}\")\n }\n `,\n },\n })\n .then((res) => {\n if (res.data.data && !res.data.error) {\n const pushStatus = res.data.data.pushToRemote;\n if (pushStatus !== \"PUSH_FAILED\") {\n setPushDone(true);\n setLoading(false);\n } else {\n setPushFailed(true);\n setLoading(false);\n }\n } else {\n setPushFailed(true);\n setLoading(false);\n }\n })\n .catch((err) => {\n setPushFailed(true);\n setLoading(false);\n });\n }\n\n return (\n <>\n {!pushDone ? (\n <>\n
\n
\n Available remote repos\n
\n
\n {\n setIsRemoteSet(true);\n }}\n ref={remoteRef}\n >\n \n {remoteData ? remoteHostGenerator() : null}\n \n
\n\n {isRemoteSet ? (\n
\n {\n setIsBranchSet(true);\n getUnpushedCommits();\n }}\n ref={branchRef}\n >\n \n {remoteData ? branchListGenerator() : null}\n \n
\n ) : null}\n\n {unpushedCommits && unpushedCommits.length > 0 ? (\n
\n
\n Commits to be pushed\n
\n
\n {unpushedCommits.map((commits, index) => {\n return (\n \n {commitModel(commits)}\n
\n );\n })}\n
\n
\n ) : (\n
\n )}\n\n {pushFailed ? (\n <>\n
\n Push Failed!\n
\n \n ) : null}\n\n {isRemoteSet &&\n isBranchSet &&\n unpushedCommits.length > 0 &&\n !loading ? (\n {\n const remoteHost = remoteRef.current.value;\n const branchName = branchRef.current.value;\n\n if (remoteHost && branchName) {\n pushHandler(remoteHost, branchName);\n }\n }}\n >\n Push changes\n \n ) : (\n <>\n {isCommitEmpty ? (\n
\n No Commits to Push\n
\n ) : null}\n \n )}\n <>\n {loading ? (\n
\n Pushing to remote...\n
\n ) : null}\n \n \n \n ) : (\n
\n
\n All commits are pushed to remote\n
\n
\n )}\n \n );\n}\n","import React, { useEffect, useState } from \"react\";\nimport axios from \"axios\";\nimport { globalAPIEndpoint } from \"../../../../../util/env_config\";\n\nexport default function StageComponent(props) {\n const { stageComponents, repoId } = props;\n\n const [allStaged, setAllStaged] = useState(false);\n const [loading, setLodaing] = useState(false);\n const [errorInd, setErrorInd] = useState(false);\n\n useEffect(() => {\n if (!props) {\n return;\n }\n }, [props]);\n\n function stageAllChanges() {\n setLodaing(true);\n axios({\n url: globalAPIEndpoint,\n method: \"POST\",\n data: {\n query: `\n mutation GitConvexMutation{\n stageAllItems(repoId: \"${repoId}\")\n }\n `,\n },\n })\n .then((res) => {\n setLodaing(false);\n if (res.data.data && !res.data.error) {\n if (res.data.data.stageAllItems === \"ALL_STAGED\") {\n setAllStaged(true);\n }\n }\n })\n .catch((err) => {\n setLodaing(false);\n setErrorInd(true);\n });\n }\n\n return (\n <>\n
\n <>\n {stageComponents.length > 0 && !allStaged ? (\n <>\n
\n All these changes will be staged:\n
\n {stageComponents &&\n stageComponents.map((item) => {\n return (\n \n {item}\n
\n );\n })}\n {errorInd ? (\n
\n Staging Failed!\n
\n ) : null}\n {loading ? (\n
\n Staging in prgoress...\n
\n ) : (\n {\n stageAllChanges();\n }}\n >\n Confirm Staging\n \n )}\n \n ) : (\n
\n No Changes for staging...\n
\n )}\n {allStaged ? (\n
\n All changes Staged!\n
\n ) : null}\n \n \n \n );\n}\n","import { library } from \"@fortawesome/fontawesome-svg-core\";\nimport { fab } from \"@fortawesome/free-brands-svg-icons\";\nimport axios from \"axios\";\nimport React, { useEffect, useState } from \"react\";\nimport {\n globalAPIEndpoint,\n ROUTE_REPO_TRACKED_DIFF,\n ROUTE_GIT_STAGED_FILES,\n} from \"../../../../../util/env_config\";\nimport CommitComponent from \"./CommitComponent\";\nimport PushComponent from \"./PushComponent\";\nimport StageComponent from \"./StageComponent\";\n\nexport default function GitOperationComponent(props) {\n library.add(fab);\n const { repoId } = props;\n\n const [gitTrackedFiles, setGitTrackedFiles] = useState([]);\n const [gitUntrackedFiles, setGitUntrackedFiles] = useState([]);\n\n const [action, setAction] = useState(\"\");\n const [list, setList] = useState([]);\n const [viewReload, setViewReload] = useState(0);\n const [currentStageItem, setCurrensStageitem] = useState(\"\");\n const [stageItems, setStagedItems] = useState([]);\n const [unstageFailed, setUnstageFailed] = useState(false);\n\n useEffect(() => {\n const payload = JSON.stringify(\n JSON.stringify({\n repoId: props.repoId,\n })\n );\n\n const cancelToken = axios.CancelToken;\n const source = cancelToken.source();\n\n axios({\n url: globalAPIEndpoint,\n method: \"POST\",\n headers: {\n \"Content-type\": \"application/json\",\n },\n cancelToken: source.token,\n data: {\n query: `\n query GitConvexApi{\n gitConvexApi(route: \"${ROUTE_REPO_TRACKED_DIFF}\", payload:${payload})\n {\n gitChanges{\n gitUntrackedFiles\n gitChangedFiles\n }\n }\n }\n `,\n },\n })\n .then((res) => {\n if (res.data.data) {\n var apiData = res.data.data.gitConvexApi.gitChanges;\n\n setGitTrackedFiles([...apiData.gitChangedFiles]);\n setGitUntrackedFiles([...apiData.gitUntrackedFiles]);\n\n const apiTrackedFiles = [...apiData.gitChangedFiles];\n const apiUnTrackedFiles = [...apiData.gitUntrackedFiles];\n\n let componentList = [];\n\n apiTrackedFiles &&\n apiTrackedFiles.forEach((item) => {\n if (item.split(\",\").length > 0) {\n const trackedItem = item.split(\",\")[1];\n componentList.push(trackedItem);\n }\n });\n\n apiUnTrackedFiles &&\n apiUnTrackedFiles.forEach((item) => {\n if (item) {\n item = item.replace(\"NO_DIR\", \"\");\n item.split(\",\")\n ? componentList.push(item.split(\",\").join(\"\"))\n : componentList.push(item);\n }\n });\n\n setList([...componentList]);\n }\n })\n .catch((err) => {\n // console.log(err);\n });\n\n return () => {\n source.cancel();\n };\n }, [props, viewReload, currentStageItem]);\n\n useEffect(() => {\n const cancelToken = axios.CancelToken;\n const source = cancelToken.source();\n\n const payload = JSON.stringify(\n JSON.stringify({\n repoId: props.repoId,\n })\n );\n axios({\n url: globalAPIEndpoint,\n method: \"POST\",\n headers: {\n \"Content-type\": \"application/json\",\n },\n cancelToken: source.token,\n data: {\n query: `\n query GitConvexApi{\n gitConvexApi(route: \"${ROUTE_GIT_STAGED_FILES}\", payload:${payload})\n {\n gitStagedFiles{\n stagedFiles\n }\n }\n }\n `,\n },\n })\n .then((res) => {\n const { stagedFiles } = res.data.data.gitConvexApi.gitStagedFiles;\n\n if (stagedFiles && stagedFiles.length > 0) {\n setStagedItems([...stagedFiles]);\n }\n })\n .catch((err) => {});\n\n return () => {\n return source.cancel();\n };\n }, [list, props.repoId, viewReload]);\n\n const actionButtons = [\n {\n label: \"Stage all changes\",\n color: \"blue\",\n key: \"stage\",\n },\n {\n label: \"Commit Changes\",\n color: \"green\",\n key: \"commit\",\n },\n {\n label: \"Push to remote\",\n color: \"pink\",\n key: \"push\",\n },\n ];\n\n const tableColumns = [\"Changes\", \"File Status\", \"Action\"];\n\n function stageGitComponent(stageItem, event) {\n let localViewReload = viewReload + 1;\n \n event.target.innerHTML = \"Staging...\";\n event.target.style.backgroundColor = \"gray\";\n event.target.disabled = true;\n\n axios({\n url: globalAPIEndpoint,\n method: \"POST\",\n data: {\n query: `\n mutation GitConvexMutation{\n stageItem(repoId: \"${repoId}\", item: \"${stageItem}\")\n }\n `,\n },\n })\n .then((res) => {\n setViewReload(localViewReload);\n\n if (res.data.data && !res.data.error) {\n if (res.data.data.stageItem === \"ADD_ITEM_SUCCES\") {\n setCurrensStageitem(stageItem);\n }\n }\n })\n .catch((err) => {\n console.log(err);\n setViewReload(localViewReload);\n });\n }\n\n function getTableData() {\n let tableDataArray = [];\n\n let statusPill = (status) => {\n if (status === \"M\") {\n return (\n
\n Modified\n
\n );\n } else if (status === \"D\") {\n return (\n
\n Removed\n
\n );\n } else {\n return (\n
\n Untracked\n
\n );\n }\n };\n\n let actionButton = (stageItem) => {\n return (\n {\n stageGitComponent(stageItem, event);\n setUnstageFailed(false);\n }}\n key={`add-btn-${stageItem}`}\n >\n Add\n \n );\n };\n\n gitTrackedFiles &&\n gitTrackedFiles.forEach((item) => {\n if (item.split(\",\").length > 0) {\n const trackedItem = item.split(\",\")[1];\n tableDataArray.push([\n trackedItem,\n statusPill(item.split(\",\")[0]),\n actionButton(trackedItem),\n ]);\n }\n });\n\n gitUntrackedFiles &&\n gitUntrackedFiles.forEach((item) => {\n if (item) {\n item = item.replace(\"NO_DIR\", \"\");\n item.split(\",\")\n ? tableDataArray.push([\n item.split(\",\").join(\"\"),\n statusPill(\"N\"),\n actionButton(item.split(\",\").join(\"\")),\n ])\n : tableDataArray.push([item, statusPill(\"N\"), actionButton(item)]);\n }\n });\n return tableDataArray;\n }\n\n function getStagedFilesComponent() {\n function removeStagedItem(item, event) {\n let localViewReload = viewReload + 1;\n\n event.target.innerHTML = \"removing...\";\n event.target.style.backgroundColor = \"gray\";\n event.target.disabled = true;\n\n axios({\n url: globalAPIEndpoint,\n method: \"POST\",\n data: {\n query: `\n mutation GitConvexMutation{\n removeStagedItem(repoId: \"${repoId}\", item: \"${item}\")\n }\n `,\n },\n })\n .then((res) => {\n setViewReload(localViewReload);\n if (res.data.data && !res.data.error) {\n if (res.data.data.removeStagedItem === \"STAGE_REMOVE_SUCCESS\") {\n let localStagedItems = stageItems;\n\n localStagedItems = localStagedItems.filter((filterItem) => {\n if (filterItem === item) {\n return false;\n }\n return true;\n });\n\n setStagedItems([...localStagedItems]);\n } else {\n setUnstageFailed(true);\n }\n }\n })\n .catch((err) => {\n console.log(err);\n setViewReload(localViewReload);\n setUnstageFailed(true);\n });\n }\n\n function removeAllStagedItems(event) {\n let localViewReload = viewReload + 1;\n\n event.target.innerHTML = \"Removing...\";\n event.target.style.backgroundColor = \"gray\";\n event.target.disabled = true;\n\n axios({\n url: globalAPIEndpoint,\n method: \"POST\",\n data: {\n query: `\n mutation GitConvexMutation{\n removeAllStagedItem(repoId: \"${repoId}\")\n }\n `,\n },\n })\n .then((res) => {\n setViewReload(localViewReload + 1);\n if (res.data.data && !res.data.error) {\n if (\n res.data.data.removeAllStagedItem === \"STAGE_ALL_REMOVE_SUCCESS\"\n ) {\n setStagedItems([]);\n }\n }\n })\n .catch((err) => {\n console.log(err);\n setViewReload(localViewReload + 1);\n });\n }\n\n if (stageItems && stageItems.length > 0) {\n return (\n
\n
\n
\n Staged Files\n
\n {\n removeAllStagedItems(event);\n setUnstageFailed(false);\n }}\n >\n Remove All Items\n
\n
\n {unstageFailed ? (\n
\n Remove item failed. Note that deleted files cannot be removed as a\n single entity. Use\n \n Remove All Items\n \n to perform a complete git reset\n
\n ) : null}\n
\n
Staged File
\n
Action
\n
\n \n {stageItems.map((item) => {\n if (item) {\n return (\n \n
\n {item}\n
\n
\n {\n removeStagedItem(item, event);\n setUnstageFailed(false);\n }}\n key={`remove-btn-${item}`}\n >\n Remove\n
\n \n \n );\n }\n return null;\n })}\n \n \n );\n }\n }\n\n function actionComponent(action) {\n switch (action) {\n case \"stage\":\n if (list && list.length > 0) {\n return (\n \n );\n } else {\n return (\n
\n
\n No Changes for staging...\n
\n
\n );\n }\n case \"commit\":\n return ;\n case \"push\":\n return ;\n default:\n return null;\n }\n }\n\n function noChangesComponent() {\n return (\n
\n No files to stage\n
\n );\n }\n\n return (\n <>\n {action ? (\n {\n if (event.target.id === \"operation-backdrop\") {\n setAction(\"\");\n let closeViewCount = viewReload + 1;\n setViewReload(closeViewCount);\n setStagedItems([]);\n }\n }}\n >\n {actionComponent(action)}\n\n {\n setAction(\"\");\n }}\n >\n X\n \n \n ) : null}\n
\n {actionButtons.map((item) => {\n const { label, color, key } = item;\n return (\n setAction(key)}\n >\n {label}\n
\n );\n })}\n \n {getTableData() && getTableData().length > 0 ? (\n
\n
\n {tableColumns.map((column, index) => {\n return (\n \n {column}\n
\n );\n })}\n
\n\n \n
\n {getTableData() &&\n getTableData().map((tableData, index) => {\n return (\n \n {tableData.map((data, index) => {\n return (\n \n {data}\n
\n );\n })}\n \n );\n })}\n \n \n \n ) : (\n <>{noChangesComponent()}\n )}\n <>{stageItems ? getStagedFilesComponent() : null}\n \n );\n}\n","import { library } from \"@fortawesome/fontawesome-svg-core\";\nimport { fab } from \"@fortawesome/free-brands-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport axios from \"axios\";\nimport React, { useContext, useEffect, useMemo, useState } from \"react\";\nimport {\n GIT_TRACKED_FILES,\n GIT_ACTION_TRACKED_FILES,\n GIT_ACTION_UNTRACKED_FILES,\n} from \"../../../../actionStore\";\nimport { ContextProvider } from \"../../../../context\";\nimport {\n globalAPIEndpoint,\n ROUTE_REPO_TRACKED_DIFF,\n} from \"../../../../util/env_config\";\nimport GitDiffViewComponent from \"./GitDiffViewComponent\";\nimport GitOperationComponent from \"./GitOperation/GitOperationComponent\";\n\nexport default function GitTrackedComponent(props) {\n library.add(fab);\n const [gitDiffFilesState, setGitDiffFilesState] = useState([]);\n const [gitUntrackedFilesState, setGitUntrackedFilesState] = useState([]);\n const [topMenuItemState, setTopMenuItemState] = useState(\"File View\");\n const topMenuItems = [\"File View\", \"Git Difference\", \"Git Operations\"];\n const [noChangeMarker, setNoChangeMarker] = useState(false);\n\n const { dispatch } = useContext(ContextProvider);\n\n const memoizedGitDiffView = useMemo(() => {\n return ;\n }, [props]);\n\n const memoizedGitOperationView = useMemo(() => {\n return (\n \n );\n }, [props]);\n\n useEffect(() => {\n let apiEndPoint = globalAPIEndpoint;\n\n const payload = JSON.stringify(\n JSON.stringify({\n repoId: props.repoId,\n })\n );\n\n axios({\n url: apiEndPoint,\n method: \"POST\",\n headers: {\n \"Content-type\": \"application/json\",\n },\n data: {\n query: `\n query GitConvexApi{\n gitConvexApi(route: \"${ROUTE_REPO_TRACKED_DIFF}\", payload:${payload})\n {\n gitChanges{\n gitUntrackedFiles\n gitChangedFiles\n }\n }\n }\n `,\n },\n })\n .then((res) => {\n if (res) {\n var apiData = res.data.data.gitConvexApi.gitChanges;\n const { gitChangedFiles, gitUntrackedFiles } = apiData;\n\n if (\n (gitChangedFiles || gitUntrackedFiles) &&\n (gitChangedFiles.length > 0 || gitUntrackedFiles.length > 0)\n ) {\n setGitDiffFilesState([...gitChangedFiles]);\n setGitUntrackedFilesState([...gitUntrackedFiles]);\n setNoChangeMarker(false);\n\n dispatch({\n type: GIT_TRACKED_FILES,\n payload: gitChangedFiles,\n });\n\n dispatch({\n type: GIT_ACTION_TRACKED_FILES,\n payload: [...gitChangedFiles],\n });\n\n dispatch({\n type: GIT_ACTION_UNTRACKED_FILES,\n payload: [...gitUntrackedFiles],\n });\n } else {\n setNoChangeMarker(true);\n }\n }\n })\n .catch((err) => {\n setNoChangeMarker(true);\n });\n }, [props, dispatch]);\n\n function diffPane() {\n var deletedArtifacts = [];\n var modifiedArtifacts = [];\n\n if (gitDiffFilesState && gitDiffFilesState.length > 0) {\n gitDiffFilesState.forEach((diffFile, index) => {\n var splitFile = diffFile.split(\",\");\n var flag = splitFile[0];\n var name = splitFile[1];\n var styleSelector = \"p-1 \";\n switch (flag) {\n case \"M\":\n styleSelector += \"text-yellow-900 bg-yellow-200\";\n modifiedArtifacts.push(\n
\n
\n {name}\n
\n
\n Modified\n
\n
\n );\n break;\n case \"D\":\n styleSelector += \"text-red-900 bg-red-200\";\n deletedArtifacts.push(\n
\n
\n {name}\n
\n
\n Deleted\n
\n
\n );\n break;\n default:\n styleSelector += \"text-indigo-900 bg-indigo-200\";\n break;\n }\n });\n\n return (\n <>\n {modifiedArtifacts} {deletedArtifacts}\n \n );\n }\n }\n\n function untrackedPane() {\n let untrackedDir = [];\n let untrackedEntry = \"\";\n gitUntrackedFilesState.forEach((entry) => {\n let splitEntry = entry.split(\",\");\n\n if (splitEntry) {\n untrackedDir.push(splitEntry[0] !== \"NO_DIR\" ? splitEntry[0] : \"./\");\n untrackedEntry = untrackedDir.join(\"\") + splitEntry[1];\n }\n });\n\n return untrackedDir.map((entry, index) => {\n return (\n
\n
\n {untrackedEntry}\n
\n
\n New / Untracked\n
\n
\n );\n });\n }\n\n function menuComponent() {\n const FILE_VIEW = \"File View\";\n const GIT_DIFFERENCE = \"Git Difference\";\n const GIT_OPERATIONS = \"Git Operations\";\n\n switch (topMenuItemState) {\n case FILE_VIEW:\n if (!noChangeMarker) {\n return (\n
\n {gitDiffFilesState ? (\n diffPane()\n ) : (\n
\n Getting file based status...\n
\n )}\n {gitUntrackedFilesState ? untrackedPane() : null}\n
\n );\n }\n break;\n case GIT_DIFFERENCE:\n if (!noChangeMarker) {\n return memoizedGitDiffView;\n }\n break;\n case GIT_OPERATIONS:\n return memoizedGitOperationView;\n default:\n return (\n
Invalid Menu Selector!
\n );\n }\n }\n\n function presentChangeComponent() {\n return (\n <>\n
\n {topMenuItems.map((item) => {\n let styleSelector =\n \"w-full py-3 px-1 text-center border-r border-blue-400 \";\n if (item === topMenuItemState) {\n styleSelector +=\n \"bg-blue-100 text-blue-800 border-b border-blue-700\";\n } else {\n styleSelector += \"bg-blue-600 text-white\";\n }\n return (\n {\n setTopMenuItemState(item);\n }}\n >\n {item}\n
\n );\n })}\n \n \n );\n }\n\n return (\n <>\n {noChangeMarker ? (\n <>\n
\n {memoizedGitOperationView}\n
\n
\n No changes found in the selected git repo\n
\n
\n
\n \n
\n
\n \"0\" changes in repo\n
\n
\n \n ) : (\n <>\n {presentChangeComponent()}\n
{menuComponent()}
\n \n )}\n \n );\n}\n","import { library } from \"@fortawesome/fontawesome-svg-core\";\nimport { fas } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport axios from \"axios\";\nimport React, { useContext, useEffect, useMemo, useState } from \"react\";\nimport { GIT_GLOBAL_REPOID, PRESENT_REPO } from \"../../../../actionStore\";\nimport { ContextProvider } from \"../../../../context\";\nimport {\n globalAPIEndpoint,\n ROUTE_FETCH_REPO,\n ROUTE_REPO_DETAILS,\n} from \"../../../../util/env_config\";\nimport GitTrackedComponent from \"../GitComponents/GitTrackedComponent\";\n\nexport default function RepositoryAction() {\n library.add(fas);\n\n const { state, dispatch } = useContext(ContextProvider);\n const { presentRepo } = state;\n const [selectedFlag, setSelectedFlag] = useState(false);\n const [defaultRepo, setDefaultRepo] = useState({});\n const [availableRepos, setAvailableRepos] = useState([]);\n const [activeBranch, setActiveBranch] = useState(\"\");\n const [selectedRepoDetails, setSelectedRepoDetails] = useState({\n gitBranchList: \"\",\n gitCurrentBranch: \"\",\n gitTotalCommits: 0,\n gitTotalTrackedFiles: 0,\n });\n const [branchError, setBranchError] = useState(false);\n\n const memoizedGitTracker = useMemo(() => {\n if (defaultRepo && defaultRepo.id) {\n return (\n \n );\n }\n }, [defaultRepo]);\n\n useEffect(() => {\n //Effect dep function\n const token = axios.CancelToken;\n const source = token.source();\n\n function fetchSelectedRepoStatus() {\n const repoId = defaultRepo && defaultRepo.id;\n\n if (repoId) {\n const payload = JSON.stringify(JSON.stringify({ repoId: repoId }));\n\n axios({\n url: globalAPIEndpoint,\n method: \"POST\",\n headers: {\n \"Content-type\": \"application/json\",\n },\n cancelToken: source.token,\n data: {\n query: `\n query GitConvexApi\n {\n gitConvexApi(route: \"${ROUTE_REPO_DETAILS}\", payload: ${payload}){\n gitRepoStatus {\n gitBranchList\n gitCurrentBranch\n gitTotalCommits\n gitTotalTrackedFiles \n }\n }\n }\n `,\n },\n })\n .then((res) => {\n setSelectedRepoDetails(res.data.data.gitConvexApi.gitRepoStatus);\n })\n .catch((err) => {\n if (err) {\n console.log(\"API GitStatus error occurred : \" + err);\n }\n });\n }\n }\n\n //Effect dep function\n async function invokeRepoFetchAPI() {\n return await axios({\n url: globalAPIEndpoint,\n method: \"POST\",\n cancelToken: source.token,\n data: {\n query: `\n query GitConvexApi{\n gitConvexApi(route: \"${ROUTE_FETCH_REPO}\"){\n fetchRepo{\n repoId\n repoName\n repoPath\n }\n }\n }\n `,\n },\n }).then((res) => {\n const apiResponse = res.data.data.gitConvexApi.fetchRepo;\n\n if (apiResponse) {\n const repoContent = apiResponse.repoId.map((entry, index) => {\n return {\n id: apiResponse.repoId[index],\n repoName: apiResponse.repoName[index],\n repoPath: apiResponse.repoPath[index],\n };\n });\n\n dispatch({\n type: PRESENT_REPO,\n payload: [...repoContent],\n });\n\n setDefaultRepo(repoContent[0]);\n setAvailableRepos(repoContent);\n return repoContent;\n }\n });\n }\n\n if (presentRepo && presentRepo[0]) {\n setAvailableRepos(presentRepo[0]);\n fetchSelectedRepoStatus();\n } else {\n invokeRepoFetchAPI();\n fetchSelectedRepoStatus();\n }\n\n return () => {\n source.cancel();\n };\n }, [defaultRepo, activeBranch, presentRepo, dispatch, branchError]);\n\n function setTrackingBranch(branchName, event) {\n axios({\n url: globalAPIEndpoint,\n method: \"POST\",\n data: {\n query: `\n mutation{\n setBranch(repoId: \"${defaultRepo.id}\", branch: \"${branchName}\")\n }\n `,\n },\n })\n .then((res) => {\n if (res.data.data && !res.data.error) {\n setActiveBranch(branchName);\n }\n })\n .catch((err) => {\n if (err) {\n setBranchError(true);\n event.target.selectedIndex = 0;\n }\n });\n }\n\n function activeRepoPane() {\n return (\n
\n
\n
\n Choose saved repository\n
\n {\n setSelectedFlag(true);\n availableRepos.length &&\n availableRepos.forEach((elm) => {\n if (event.target.value === elm.repoName) {\n setDefaultRepo(elm);\n dispatch({ type: GIT_GLOBAL_REPOID, payload: elm.id });\n }\n });\n }}\n >\n \n {availableRepos.length &&\n availableRepos.map((entry) => {\n return (\n \n );\n })}\n \n
\n {selectedFlag ? (\n
\n
\n Branch\n
\n {\n event.persist();\n setActiveBranch(event.currentTarget.value);\n setTrackingBranch(event.target.value, event);\n }}\n onClick={() => {\n setBranchError(false);\n }}\n >\n {availableBranch()}\n \n
\n ) : null}\n
\n );\n }\n\n function getTopPaneComponent(icon, value) {\n return (\n <>\n
\n
\n \n
\n
{value}
\n
\n \n );\n }\n\n function availableBranch() {\n if (selectedRepoDetails && selectedRepoDetails.gitBranchList) {\n const { gitBranchList } = selectedRepoDetails;\n\n return gitBranchList.map((branch) => {\n if (branch !== \"NO_BRANCH\") {\n return (\n \n );\n }\n\n return null;\n });\n }\n }\n\n return (\n
\n {availableRepos ? (\n
\n
\n {activeRepoPane()}\n {selectedRepoDetails && selectedFlag ? (\n
\n {getTopPaneComponent(\n \"code-branch\",\n selectedRepoDetails.gitBranchList &&\n selectedRepoDetails.gitBranchList.length > 0 &&\n !selectedRepoDetails.gitBranchList[0].match(\n /NO_BRANCH/gi\n ) ? (\n <>\n {selectedRepoDetails.gitBranchList.length === 1\n ? 1 + \" branch\"\n : selectedRepoDetails.gitBranchList.length +\n \" branches\"}\n \n ) : (\n \"No Branches\"\n )\n )}\n {getTopPaneComponent(\n \"sort-amount-up\",\n selectedRepoDetails.gitTotalCommits + \" Commits\"\n )}\n {getTopPaneComponent(\n \"archive\",\n selectedRepoDetails.gitTotalTrackedFiles + \" Tracked Files\"\n )}\n
\n ) : null}\n
\n {!selectedFlag ? (\n <>\n
\n Select a configured repo from the dropdown to perform git\n related operations\n
\n
\n
\n \n
\n
\n No repositories selected\n
\n
\n \n ) : null}\n
\n {branchError ? (\n
\n Branch switching failed.Commit your changes and try again\n
\n ) : null}\n {selectedRepoDetails && selectedFlag && defaultRepo.id\n ? memoizedGitTracker\n : null}\n
\n
\n ) : null}\n
\n );\n}\n","import React, { useState, useRef } from \"react\";\nimport axios from \"axios\";\nimport { globalAPIEndpoint } from \"../../../../../util/env_config\";\n\nexport default function AddBranchComponent(props) {\n const { repoId } = props;\n const [branchName, setBranchName] = useState(\"\");\n const [branchAddStatus, setBranchAddStatus] = useState(\"\");\n const branchNameRef = useRef();\n\n function resetBranchNameText() {\n branchNameRef.current.value = \"\";\n setBranchName(\"\");\n }\n\n function addBranchClickHandler() {\n axios({\n url: globalAPIEndpoint,\n method: \"POST\",\n data: {\n query: `\n mutation GitConvexMutation{\n addBranch(repoId: \"${repoId}\", branchName: \"${branchName}\")\n }\n `,\n },\n })\n .then((res) => {\n if (res.data.data && !res.data.error) {\n const branchStatus = res.data.data.addBranch;\n setBranchAddStatus(branchStatus);\n resetBranchNameText();\n } else {\n setBranchAddStatus(\"BRANCH_ADD_FAILED\");\n resetBranchNameText();\n }\n })\n .catch((err) => {\n setBranchAddStatus(\"BRANCH_ADD_FAILED\");\n resetBranchNameText();\n });\n }\n\n return (\n
\n
\n
\n {\n setBranchName(event.target.value);\n }}\n onClick={() => {\n setBranchAddStatus(\"\");\n }}\n >\n
\n {\n if (branchName) {\n console.log(branchName);\n addBranchClickHandler();\n } else {\n setBranchAddStatus(\"BRANCH_ADD_FAILED\");\n }\n }}\n >\n Add Branch\n
\n {branchAddStatus === \"BRANCH_CREATION_SUCCESS\" ? (\n
\n New branch has been added to your repo successfully\n
\n ) : null}\n {branchAddStatus === \"BRANCH_ADD_FAILED\" ? (\n
\n New branch addition failed!\n
\n ) : null}\n
\n \n );\n}\n","import React, { useEffect, useState, useRef } from \"react\";\nimport axios from \"axios\";\nimport {\n globalAPIEndpoint,\n ROUTE_REPO_DETAILS,\n} from \"../../../../../util/env_config\";\n\nimport { v4 as uuid } from \"uuid\";\n\nexport default function FetchFromRemoteComponent(props) {\n const { repoId, actionType } = props;\n\n const [remoteData, setRemoteData] = useState();\n const [isRemoteSet, setIsRemoteSet] = useState(false);\n const [isBranchSet, setIsBranchSet] = useState(false);\n const [result, setResult] = useState([]);\n const [loading, setLoading] = useState(false);\n\n const remoteRef = useRef();\n const branchRef = useRef();\n\n useEffect(() => {\n let payload = JSON.stringify(JSON.stringify({ repoId: props.repoId }));\n const cancelToken = axios.CancelToken;\n const source = cancelToken.source();\n\n axios({\n url: globalAPIEndpoint,\n method: \"POST\",\n cancelToken: source.token,\n headers: {\n \"Content-type\": \"application/json\",\n },\n data: {\n query: `\n query GitConvexApi\n {\n gitConvexApi(route: \"${ROUTE_REPO_DETAILS}\", payload: ${payload}){\n gitRepoStatus {\n gitRemoteData\n gitCurrentBranch\n gitRemoteHost\n gitBranchList \n }\n }\n }\n `,\n },\n })\n .then((res) => {\n const repoDetails = res.data.data.gitConvexApi.gitRepoStatus;\n setRemoteData(repoDetails);\n })\n .catch((err) => {\n // console.log(err);\n });\n\n return () => {\n return source.cancel();\n };\n }, [props]);\n\n function remoteHostGenerator() {\n if (remoteData) {\n const { gitRemoteData } = remoteData;\n if (gitRemoteData.includes(\"||\")) {\n return gitRemoteData.split(\"||\").map((item) => {\n return (\n \n );\n });\n } else {\n return ;\n }\n }\n }\n\n function branchListGenerator() {\n if (remoteData) {\n const { gitBranchList } = remoteData;\n\n return gitBranchList.map((branch) => {\n if (branch !== \"NO_BRANCH\") {\n return (\n \n );\n }\n return null;\n });\n }\n }\n\n function actionHandler(remote, branch) {\n setLoading(true);\n\n const getAxiosRequestBody = (remote, branch) => {\n let gqlQuery = \"\";\n if (actionType === \"fetch\") {\n gqlQuery = `mutation GitConvexMutation{\n fetchFromRemote(repoId: \"${repoId}\", remoteUrl: \"${remote}\", remoteBranch: \"${branch}\"){\n status\n fetchedItems\n }\n }\n `;\n } else {\n gqlQuery = `mutation GitConvexMutation{\n pullFromRemote(repoId: \"${repoId}\", remoteUrl: \"${remote}\", remoteBranch: \"${branch}\"){\n status\n pulledItems\n }\n }\n `;\n }\n\n return gqlQuery;\n };\n\n axios({\n url: globalAPIEndpoint,\n method: \"POST\",\n data: {\n query: getAxiosRequestBody(remote, branch),\n },\n })\n .then((res) => {\n setLoading(false);\n if (res.data.data && !res.data.error) {\n let actionResponse = {};\n\n if (actionType === \"fetch\") {\n actionResponse = res.data.data.fetchFromRemote;\n } else {\n actionResponse = res.data.data.pullFromRemote;\n }\n\n if (actionResponse.status.match(/ABSENT/gi)) {\n setResult([\n
\n No changes to {actionType === \"fetch\" ? \"Fetch\" : \"Pull\"} from\n remote\n
,\n ]);\n } else if (actionResponse.status.match(/ERROR/gi)) {\n setResult([\n
\n Error while {actionType === \"fetch\" ? \"Fetching\" : \"Pulling\"}{\" \"}\n from remote!\n
,\n ]);\n } else {\n let resArray = [];\n if (actionType === \"fetch\") {\n resArray = actionResponse.fetchedItems;\n } else {\n resArray = actionResponse.pulledItems;\n }\n setResult([...resArray]);\n }\n }\n })\n .catch((err) => {\n setLoading(false);\n console.error(err);\n setResult([\n
\n Error while {actionType === \"fetch\" ? \"Fetching\" : \"Pulling\"} from\n remote!\n
,\n ]);\n });\n }\n\n return (\n <>\n
\n
\n Available remote repos\n
\n
\n {\n setIsRemoteSet(true);\n }}\n onClick={() => {\n setResult([]);\n }}\n ref={remoteRef}\n >\n \n {remoteData ? remoteHostGenerator() : null}\n \n
\n\n {isRemoteSet ? (\n
\n {\n setIsBranchSet(true);\n }}\n onClick={() => {\n setResult([]);\n }}\n ref={branchRef}\n >\n \n {remoteData ? branchListGenerator() : null}\n \n
\n ) : null}\n\n {isRemoteSet && isBranchSet && !loading ? (\n {\n const remoteHost = remoteRef.current.value;\n const branchName = branchRef.current.value;\n\n if (remoteHost && branchName) {\n actionHandler(remoteHost, branchName);\n } else {\n event.target.style.display = \"none\";\n }\n }}\n >\n {actionType === \"pull\" ? \"Pull from Remote\" : null}\n {actionType === \"fetch\" ? \"Fetch from Remote\" : null}\n
\n ) : null}\n
\n {loading ? (\n
\n {actionType === \"pull\" ? \"Pulling changes\" : \"Fetching\"} from\n remote...\n
\n ) : null}\n
\n\n {!loading && result && result.length > 0 ? (\n <>\n
\n {result.map((result) => {\n return (\n \n {result}\n
\n );\n })}\n \n \n ) : null}\n \n \n );\n}\n","import { library } from \"@fortawesome/fontawesome-svg-core\";\nimport { fab } from \"@fortawesome/free-brands-svg-icons\";\nimport { fas } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport React, { useEffect, useState } from \"react\";\nimport axios from \"axios\";\nimport {\n globalAPIEndpoint,\n ROUTE_REPO_COMMIT_LOGS,\n} from \"../../../../util/env_config\";\n\nexport default function RepositoryCommitLogComponent(props) {\n library.add(fab, fas);\n\n const [commitLogs, setCommitLogs] = useState([]);\n const [isCommitEmpty, setIsCommitEmpty] = useState(false);\n\n useEffect(() => {\n const payload = JSON.stringify(JSON.stringify({ repoId: props.repoId }));\n\n axios({\n url: globalAPIEndpoint,\n method: \"POST\",\n data: {\n query: `\n query GitConvexApi\n {\n gitConvexApi(route: \"${ROUTE_REPO_COMMIT_LOGS}\", payload: ${payload}){\n gitCommitLogs {\n commits{\n commitTime\n hash\n author\n commitMessage\n } \n }\n }\n }\n `,\n },\n })\n .then((res) => {\n const commits = res.data.data.gitConvexApi.gitCommitLogs.commits;\n if (commits && commits.length > 0) {\n setCommitLogs(commits);\n } else {\n setIsCommitEmpty(true);\n }\n })\n .catch((err) => {\n if (err) {\n setIsCommitEmpty(true);\n console.log(err);\n }\n });\n }, [props]);\n\n return (\n <>\n {isCommitEmpty ? (\n
\n No Commit Logs found\n
\n ) : null}\n {commitLogs &&\n commitLogs.map((commit) => {\n const { hash, author, commitTime, commitMessage } = commit;\n return (\n \n
\n \n {commitTime}\n
\n
\n {commitMessage}\n
\n\n
\n
\n \n {hash}\n
\n
\n \n {author}\n
\n
\n \n );\n })}\n \n );\n}\n","import React, { useState, useRef } from \"react\";\nimport axios from \"axios\";\nimport { globalAPIEndpoint } from \"../../../../../util/env_config\";\n\nexport default function AddRemoteRepoComponent({ repoId }) {\n const remoteNameRef = useRef();\n const remoteUrlRef = useRef();\n\n const [paramMissing, setParamMissing] = useState(false);\n const [addRemoteStatus, setAddRemoteStatus] = useState(\"\");\n\n const remoteFormTextComponent = (formId, label, placeholder) => {\n return (\n
\n \n {label}\n \n
\n {\n setParamMissing(false);\n setAddRemoteStatus(\"\");\n }}\n className=\"w-3/4 p-3 rounded shadow-md bg-white text-gray-900 text-lg font-sans outline-none\"\n placeholder={placeholder}\n ref={formId === \"remoteName\" ? remoteNameRef : remoteUrlRef}\n onChange={(event) => {\n const remoteNameVal = event.target.value;\n if (\n event.target.id === \"remoteName\" &&\n remoteNameVal.match(/[^a-zA-Z0-9_]/gi)\n ) {\n event.target.value = remoteNameVal.replace(\n /[^a-zA-Z0-9_]/gi,\n \"-\"\n );\n }\n }}\n >\n
\n
\n );\n };\n\n function addRemoteClickHandler() {\n let repoName = remoteNameRef.current.value;\n let repoUrl = remoteUrlRef.current.value;\n\n if (repoId && repoName && repoUrl) {\n axios({\n url: globalAPIEndpoint,\n method: \"POST\",\n data: {\n query: `\n mutation GitConvexMutation{\n addRemoteRepo(repoId: \"${repoId}\", remoteName: \"${repoName}\", remoteUrl: \"${repoUrl}\")\n }\n `,\n },\n })\n .then((res) => {\n if (res.data.data && !res.data.error) {\n const remoteAddStatus = res.data.data.addRemoteRepo;\n\n if (remoteAddStatus === \"REMOTE_ADD_SUCCESS\") {\n setAddRemoteStatus(\"success\");\n remoteNameRef.current.value = \"\";\n remoteUrlRef.current.value = \"\";\n } else {\n setAddRemoteStatus(\"failed\");\n }\n } else {\n setAddRemoteStatus(\"failed\");\n }\n })\n .catch((err) => {\n console.log(err);\n setAddRemoteStatus(\"failed\");\n });\n } else {\n setParamMissing(true);\n }\n }\n\n const statusPillComponent = (color, message) => {\n return (\n \n {message}\n \n );\n };\n\n return (\n
\n
\n Enter new remote details\n
\n
\n {remoteFormTextComponent(\n \"remoteName\",\n \"Enter Remote Name\",\n \"Give a name for your new remote\"\n )}\n {remoteFormTextComponent(\n \"remoteUrl\",\n \"Enter Remote URL\",\n \"Provide the URL for your remote repo\"\n )}\n
\n {paramMissing\n ? statusPillComponent(\n \"orange\",\n \"One or more required parameters are empty!\"\n )\n : null}\n {addRemoteStatus === \"success\"\n ? statusPillComponent(\n \"green\",\n \"Remote repo has been added successfully!\"\n )\n : null}\n {addRemoteStatus === \"failed\"\n ? statusPillComponent(\"red\", \"Failed to add new repo!\")\n : null}\n {\n addRemoteClickHandler();\n }}\n >\n Add New Remote\n
\n \n );\n}\n","import { library } from \"@fortawesome/fontawesome-svg-core\";\nimport { fab } from \"@fortawesome/free-brands-svg-icons\";\nimport { fas } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport axios from \"axios\";\nimport React, { useEffect, useMemo, useState } from \"react\";\nimport { v4 as uuid } from \"uuid\";\nimport {\n globalAPIEndpoint,\n ROUTE_REPO_DETAILS,\n} from \"../../../../util/env_config\";\nimport AddBranchComponent from \"./RepoDetailBackdrop/AddBranchComponent\";\nimport FetchPullActionComponent from \"./RepoDetailBackdrop/FetchPullActionComponent\";\nimport RepositoryCommitLogComponent from \"./RepositoryCommitLogComponent\";\nimport AddRemoteRepoComponent from \"./RepoDetailBackdrop/AddRemoteRepoComponent\";\n\nexport default function RepositoryDetails(props) {\n library.add(fab, fas);\n const [gitRepoStatus, setGitRepoStatus] = useState({});\n const [repoFetchFailed, setRepoFetchFailed] = useState(false);\n const [repoIdState, setRepoIdState] = useState(\"\");\n const [showCommitLogs, setShowCommitLogs] = useState(false);\n const [isMultiRemote, setIsMultiRemote] = useState(false);\n const [multiRemoteCount, setMultiRemoteCount] = useState(0);\n const [backdropToggle, setBackdropToggle] = useState(false);\n const [action, setAction] = useState(\"\");\n\n const memoizedCommitLogComponent = useMemo(() => {\n return (\n \n );\n }, [repoIdState]);\n\n const memoizedFetchRemoteComponent = useMemo(() => {\n return (\n \n );\n }, [repoIdState]);\n\n const memoizedPullRemoteComponent = useMemo(() => {\n return (\n \n );\n }, [repoIdState]);\n\n const memoizedAddRemoteRepoComponent = useMemo(() => {\n return (\n \n );\n }, [repoIdState]);\n\n useEffect(() => {\n const endpointURL = globalAPIEndpoint;\n\n if (props.parentProps.location) {\n const repoId = props.parentProps.location.pathname.split(\n \"/repository/\"\n )[1];\n\n setRepoIdState(repoId);\n\n const payload = JSON.stringify(JSON.stringify({ repoId: repoId }));\n\n axios({\n url: endpointURL,\n method: \"POST\",\n headers: {\n \"Content-type\": \"application/json\",\n },\n data: {\n query: `\n\n query GitConvexApi\n {\n gitConvexApi(route: \"${ROUTE_REPO_DETAILS}\", payload: ${payload}){\n gitRepoStatus {\n gitRemoteData\n gitRepoName\n gitBranchList\n gitCurrentBranch\n gitRemoteHost\n gitTotalCommits\n gitLatestCommit\n gitTrackedFiles\n gitFileBasedCommit\n gitTotalTrackedFiles \n }\n }\n }\n `,\n },\n })\n .then((res) => {\n if (res.data && res.data.data && !res.data.error) {\n let gitRemoteLocal =\n res.data.data.gitConvexApi.gitRepoStatus.gitRemoteData;\n if (gitRemoteLocal.includes(\"||\")) {\n setIsMultiRemote(true);\n res.data.data.gitConvexApi.gitRepoStatus.gitRemoteData = gitRemoteLocal.split(\n \"||\"\n )[0];\n setIsMultiRemote(true);\n setMultiRemoteCount(gitRemoteLocal.split(\"||\").length);\n }\n setGitRepoStatus(res.data.data.gitConvexApi.gitRepoStatus);\n } else {\n setRepoFetchFailed(true);\n }\n })\n .catch((err) => {\n if (err) {\n console.log(\"API GitStatus error occurred : \" + err);\n setRepoFetchFailed(true);\n }\n });\n }\n }, [props.parentProps, backdropToggle]);\n\n const {\n gitRemoteData,\n gitRepoName,\n gitBranchList,\n gitCurrentBranch,\n gitRemoteHost,\n gitTotalCommits,\n gitLatestCommit,\n gitTrackedFiles,\n gitFileBasedCommit,\n } = gitRepoStatus;\n\n const gitRepoHeaderContent = () => {\n return (\n
\n
Repo Name
\n
\n {gitRepoName}\n
\n
Active Branch
\n
\n {gitCurrentBranch}\n
\n
\n );\n };\n\n const gitRepoLeftPane = () => {\n var remoteLogo = \"\";\n\n if (gitRemoteHost) {\n if (gitRemoteHost.match(/github/i)) {\n remoteLogo = (\n \n );\n } else if (gitRemoteHost.match(/gitlab/i)) {\n remoteLogo = (\n \n );\n } else if (gitRemoteHost.match(/bitbucket/i)) {\n remoteLogo = (\n \n );\n } else if (gitRemoteHost.match(/codecommit/i)) {\n remoteLogo = (\n \n );\n } else {\n remoteLogo = (\n \n );\n }\n\n return (\n <>\n {showCommitLogs ? (\n <>\n {\n if (event.target.id === \"commit-log__backdrop\") {\n setShowCommitLogs(false);\n }\n }}\n >\n {\n setShowCommitLogs(false);\n }}\n >\n X\n \n
\n {memoizedCommitLogComponent}\n
\n \n \n ) : null}\n\n
\n
\n
\n
Remote Host
\n
\n
\n
{remoteLogo}
\n
\n {gitRemoteHost}\n
\n
\n
\n {\n let popUp =\n '
Click to add a new remote repo
';\n event.target.innerHTML += popUp;\n }}\n onMouseLeave={(event) => {\n event.target.innerHTML = \"+\";\n }}\n onClick={() => {\n setBackdropToggle(true);\n setAction(\"addRemoteRepo\");\n }}\n >\n +\n
\n
\n
\n
\n\n
\n
\n {`${gitRemoteHost} URL`}\n
\n
\n {gitRemoteData}\n
\n
\n\n {isMultiRemote ? (\n
\n
\n Entry truncated!\n
\n
\n {`Remote repos : ${multiRemoteCount}`}\n
\n
\n ) : null}\n
\n\n
\n
\n
Commit Logs
\n {\n setShowCommitLogs(true);\n }}\n >\n Show Commit Logs\n
\n
\n \n \n\n
\n
\n
\n
Total Commits
\n
\n {`${gitTotalCommits} Commits`}\n
\n
\n\n
\n
Latest Commit
\n
\n {gitLatestCommit}\n
\n
\n\n
\n
\n Available Branches\n
\n\n
\n
\n {gitBranchList &&\n gitCurrentBranch &&\n gitBranchList.map((entry) => {\n return entry === gitCurrentBranch ? (\n \n {entry}\n
\n ) : (\n \n {entry}\n
\n );\n })}\n
\n {\n let popUp =\n '
Click to add a new branch
';\n event.target.innerHTML += popUp;\n }}\n onMouseLeave={(event) => {\n event.target.innerHTML = \"+\";\n }}\n onClick={() => {\n setBackdropToggle(true);\n setAction(\"addBranch\");\n }}\n >\n +\n
\n
\n \n\n
\n {\n setBackdropToggle(true);\n setAction(\"fetch\");\n }}\n >\n Fetch from remote\n
\n {\n setBackdropToggle(true);\n setAction(\"pull\");\n }}\n >\n Pull from remote\n \n \n \n \n \n );\n } else {\n return (\n
\n Fetching details from server...\n
\n );\n }\n };\n\n const gitTrackedFileComponent = () => {\n if (\n gitTrackedFiles &&\n gitTrackedFiles.length > 0 &&\n gitTrackedFiles[0] !== \"NO_TRACKED_FILES\"\n ) {\n var formattedFiles = [];\n var directoryEntry = [];\n var fileEntry = [];\n\n gitTrackedFiles.forEach((entry, index) => {\n const splitEntry = entry.split(\":\");\n\n if (splitEntry[1].includes(\"directory\")) {\n directoryEntry.push(\n \n
\n
\n \n
\n
\n {splitEntry[0]}\n
\n\n
\n {gitFileBasedCommit[index]\n ? gitFileBasedCommit[index]\n .split(\" \")\n .filter((entry, index) => {\n return index !== 0 ? entry : null;\n })\n .join(\" \")\n : null}\n
\n
\n \n );\n } else if (splitEntry[1].includes(\"File\")) {\n fileEntry.push(\n \n
\n
\n \n
\n
\n {splitEntry[0]}\n
\n
\n {gitFileBasedCommit[index]\n ? gitFileBasedCommit[index]\n .split(\" \")\n .filter((entry, index) => {\n return index !== 0 ? entry : null;\n })\n .join(\" \")\n : null}\n
\n
\n \n );\n }\n });\n\n formattedFiles.push(directoryEntry);\n formattedFiles.push(fileEntry);\n\n return (\n \n
\n
\n
File / Directory
\n
Latest commit
\n
\n {formattedFiles}\n \n );\n } else if (gitTrackedFiles && gitTrackedFiles[0] === \"NO_TRACKED_FILES\") {\n return (\n
\n No Tracked Files in the repo!\n
\n );\n } else {\n return (\n
\n Loading tracked files...\n
\n );\n }\n };\n\n return (\n <>\n {backdropToggle ? (\n {\n if (event.target.id === \"repo-backdrop\") {\n setBackdropToggle(false);\n setAction(\"\");\n }\n }}\n >\n <>{action === \"fetch\" ? memoizedFetchRemoteComponent : null}\n <>{action === \"pull\" ? memoizedPullRemoteComponent : null}\n <>\n {action === \"addRemoteRepo\" ? memoizedAddRemoteRepoComponent : null}\n \n <>\n {action === \"addBranch\" ? (\n \n ) : null}\n \n {\n setBackdropToggle(false);\n setAction(\"\");\n }}\n >\n X\n \n \n ) : null}\n
\n
\n {gitRepoStatus && !repoFetchFailed ? (\n <>\n
\n {gitRepoStatus ? gitRepoHeaderContent() : null}\n
\n
\n
\n {gitRepoStatus ? gitRepoLeftPane() : null}\n
\n
\n
\n {gitRepoStatus ? gitTrackedFileComponent() : null}\n
\n \n ) : (\n
\n Fetching repo details...\n
\n )}\n {repoFetchFailed ? (\n
\n Repo details fetch failed!\n
\n ) : null}\n
\n \n );\n}\n","import { library } from \"@fortawesome/fontawesome-svg-core\";\nimport { fab } from \"@fortawesome/free-brands-svg-icons\";\nimport { fas } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport axios from \"axios\";\nimport React, { useContext, useEffect, useRef, useState } from \"react\";\nimport { DELETE_PRESENT_REPO } from \"../../../actionStore\";\nimport { ContextProvider } from \"../../../context\";\nimport {\n globalAPIEndpoint,\n ROUTE_SETTINGS_DBPATH,\n ROUTE_SETTINGS_PORT,\n ROUTE_SETTINGS_REPODETAILS,\n} from \"../../../util/env_config\";\n\nexport default function Settings(props) {\n library.add(fab, fas);\n\n const dbPathTextRef = useRef();\n\n const { state, dispatch } = useContext(ContextProvider);\n const { presentRepo } = state;\n\n const [dbPath, setDbPath] = useState(\"\");\n const [port, setPort] = useState(0);\n const [repoDetails, setRepoDetails] = useState([]);\n const [backdropToggle, setBacldropToggle] = useState(false);\n const [deleteRepo, setDeleteRepo] = useState({});\n const [deleteRepoStatus, setDeleteRepoStatus] = useState(\"\");\n const [viewReload, setViewReload] = useState(0);\n const [newDbPath, setNewDbPath] = useState(\"\");\n const [dbUpdateFailed, setDbUpdateFailed] = useState(false);\n const [portUpdateFailed, setPortUpdateFailed] = useState(false);\n\n useEffect(() => {\n axios({\n url: globalAPIEndpoint,\n method: \"POST\",\n data: {\n query: `\n query GitConvexResults{\n gitConvexApi(route: \"${ROUTE_SETTINGS_DBPATH}\"){\n settingsDatabasePath\n }\n }\n `,\n },\n })\n .then((res) => {\n if (res.data.data && !res.data.error) {\n const dbPathText = res.data.data.gitConvexApi.settingsDatabasePath;\n setDbPath(dbPathText);\n setNewDbPath(dbPathText);\n\n dbPathTextRef.current.value = dbPathText;\n }\n })\n .catch((err) => {\n console.log(err);\n });\n\n axios({\n url: globalAPIEndpoint,\n method: \"POST\",\n data: {\n query: `\n query GitConvexResults{\n gitConvexApi(route: \"${ROUTE_SETTINGS_REPODETAILS}\"){\n settingsRepoDetails{\n id\n repoPath\n repoName\n timeStamp\n }\n }\n }\n `,\n },\n })\n .then((res) => {\n if (res.data.data && !res.data.error) {\n const repoDetailsArray =\n res.data.data.gitConvexApi.settingsRepoDetails;\n setRepoDetails([...repoDetailsArray]);\n }\n })\n .catch((err) => {\n console.log(err);\n });\n\n axios({\n url: globalAPIEndpoint,\n method: \"POST\",\n data: {\n query: `\n query GitConvexResults{\n gitConvexApi(route: \"${ROUTE_SETTINGS_PORT}\"){\n settingsPortDetails\n }\n }\n `,\n },\n }).then((res) => {\n if (res.data.data && !res.data.error) {\n const localPort = res.data.data.gitConvexApi.settingsPortDetails;\n setPort(localPort);\n }\n });\n }, [props, viewReload]);\n\n const databasePathSettings = () => {\n const updateDbFileHandler = () => {\n if (newDbPath) {\n const localViewReload = viewReload + 1;\n\n axios({\n url: globalAPIEndpoint,\n method: \"POST\",\n data: {\n query: `\n mutation GitConvexMutation{\n updateRepoDataFile(newDbFile: \"${newDbPath.toString()}\")\n }\n `,\n },\n })\n .then((res) => {\n if (res.data.data && !res.data.error) {\n //DATAFILE_UPDATE_SUCCESS\n const updateStatus = res.data.data.updateRepoDataFile;\n\n if (updateStatus === \"DATAFILE_UPDATE_SUCCESS\") {\n setDbUpdateFailed(false);\n setViewReload(localViewReload);\n window.location.reload();\n } else {\n setDbUpdateFailed(true);\n setViewReload(localViewReload);\n }\n } else {\n setDbUpdateFailed(true);\n setViewReload(localViewReload);\n }\n })\n .catch((err) => {\n console.log(\"Datafile update error\", err);\n setDbUpdateFailed(true);\n setViewReload(localViewReload);\n });\n }\n };\n return (\n
\n
\n Server data file (file which stores repo details)\n
\n
\n {\n setNewDbPath(event.target.value);\n setDbUpdateFailed(false);\n }}\n onClick={() => {\n setDbUpdateFailed(false);\n }}\n >\n
\n The data file can be updated. The data file must be an accessible\n JSON file with read / write permissions set to it. Also make sure\n you enter the full path for the file\n
E.g: /opt/my_data/data-file.json
\n
\n {dbPath !== newDbPath ? (\n {\n updateDbFileHandler();\n setDbUpdateFailed(false);\n }}\n >\n Update Data file\n
\n ) : null}\n {dbUpdateFailed ? (\n
\n Data file update failed\n
\n ) : null}\n
\n \n );\n };\n\n function deleteRepoHandler() {\n const repoColumn = [\"Repo ID\", \"Repo Name\", \"Repo Path\", \"Timestamp\"];\n let repoArray = [];\n\n Object.keys(deleteRepo).forEach((key, index) => {\n repoArray.push({ label: repoColumn[index], value: deleteRepo[key] });\n });\n\n return (\n
\n
\n The repo below will be removed from Gitconvex records.\n
\n
\n This will not delete the actual git folder. Just the record from the\n gitconvex server will be removed\n
\n
\n {repoArray.map((item) => {\n return (\n
\n
{item.label}
\n
{item.value}
\n
\n );\n })}\n
\n\n {deleteRepoStatus !== \"lodaing\" && deleteRepoStatus !== \"success\" ? (\n {\n deleteRepoApiHandler();\n }}\n >\n Confirm Delete\n
\n ) : null}\n\n {deleteRepoStatus === \"loading\" ? (\n
\n Deletion in progress\n
\n ) : null}\n {deleteRepoStatus === \"success\" ? (\n
\n Repo has been deleted!\n
\n ) : null}\n {deleteRepoStatus === \"failed\" ? (\n
\n Repo deletion failed!\n
\n ) : null}\n \n );\n }\n\n function deleteRepoApiHandler() {\n setDeleteRepoStatus(\"loading\");\n const { id } = deleteRepo;\n axios({\n url: globalAPIEndpoint,\n method: \"POST\",\n data: {\n query: `\n mutation GitConvexMutation{\n deleteRepo(repoId: \"${id}\"){\n status\n repoId\n }\n }\n `,\n },\n })\n .then((res) => {\n if (res.data.data && !res.data.eror) {\n const { status, repoId } = res.data.data.deleteRepo;\n if (status === \"DELETE_SUCCESS\") {\n if (presentRepo && presentRepo.length > 0) {\n let localState = presentRepo[0];\n\n localState = localState.map((item) => {\n if (item.id.toString() === repoId.toString()) {\n return null;\n } else {\n return item;\n }\n });\n\n dispatch({\n action: DELETE_PRESENT_REPO,\n payload: [...localState],\n });\n }\n\n setDeleteRepoStatus(\"success\");\n } else {\n setDeleteRepoStatus(\"failed\");\n }\n }\n })\n .catch((err) => {\n console.log(err);\n setDeleteRepoStatus(\"failed\");\n });\n }\n\n const repoDetailsSettings = () => {\n return (\n
\n
\n Saved Repos\n
\n <>\n {repoDetails && repoDetails.length > 0 ? (\n <>\n
\n
Repo ID
\n
Repo Name
\n
Repo Path
\n
Timestamp
\n
Action
\n
\n {repoDetails.map((repo) => {\n return (\n \n
\n {repo.id}\n
\n
\n {repo.repoName}\n
\n
\n {repo.repoPath}\n
\n
\n {repo.timeStamp}\n
\n
\n {\n setBacldropToggle(true);\n setDeleteRepo(repo);\n }}\n >\n \n
\n
\n \n );\n })}\n \n ) : (\n
\n No repos are being managed by Gitconvex. You can add one from the\n dashboard\n
\n )}\n \n \n );\n };\n\n function portDetailsSettings() {\n function portUpdateHandler() {\n if (port) {\n axios({\n url: globalAPIEndpoint,\n method: \"POST\",\n data: {\n query: `\n mutation GitConvexMutation{\n settingsEditPort(newPort: ${port})\n }\n `,\n },\n })\n .then((res) => {\n if (res.data.data && !res.data.error) {\n console.log(res.data.data.settingsEditPort);\n } else {\n portUpdateFailed(true);\n }\n })\n .catch((err) => {\n console.log(err);\n setPortUpdateFailed(true);\n });\n }\n }\n\n return (\n
\n
\n Active Gitconvex port\n
\n
\n {\n setPort(event.target.value);\n }}\n >\n {\n portUpdateHandler();\n }}\n >\n Update Port\n
\n
\n
\n Make sure to restart the app and to change the port in the URL after\n updating it\n
\n {portUpdateFailed ? (\n
\n Port update failed\n
\n ) : null}\n \n );\n }\n\n return (\n <>\n {backdropToggle ? (\n {\n if (event.target.id === \"settings-backdrop\") {\n setDeleteRepoStatus(\"\");\n setBacldropToggle(false);\n let localViewReload = viewReload + 1;\n setViewReload(localViewReload);\n }\n }}\n >\n {deleteRepo ? deleteRepoHandler() : null}\n {\n setDeleteRepoStatus(\"\");\n setBacldropToggle(false);\n let localViewReload = viewReload + 1;\n setViewReload(localViewReload);\n }}\n >\n X\n \n \n ) : null}\n
\n
\n \n Settings\n
\n
\n {dbPath ? databasePathSettings() : null}\n {repoDetails ? repoDetailsSettings() : null}\n {portDetailsSettings()}\n
\n
\n \n );\n}\n","import axios from \"axios\";\nimport React, { useContext, useEffect, useMemo, useState } from \"react\";\nimport { BrowserRouter, Route } from \"react-router-dom\";\nimport { ContextProvider } from \"../../context\";\nimport { globalAPIEndpoint } from \"../../util/env_config\";\nimport LeftPane from \"./DashboardPaneComponents/LeftPane\";\nimport RightPane from \"./DashboardPaneComponents/RightPane\";\nimport Help from \"./Help/Help\";\nimport RepositoryAction from \"./Repository/RepoComponents/RepositoryAction\";\nimport RepositoryDetails from \"./Repository/RepoComponents/RepositoryDetails\";\nimport Settings from \"./Settings/Settings\";\n\nexport default function Dashboard(props) {\n const { state } = useContext(ContextProvider);\n\n const [platform, setPlatform] = useState(\"\");\n const [gitVersion, setGitVersion] = useState(\"\");\n const [nodeVersion, setNodeVersion] = useState(\"\");\n\n const memoizedRepoDetails = useMemo(() => {\n return ;\n }, [props]);\n\n const memoizedSettings = useMemo(() => {\n return ;\n }, []);\n\n const memoizedHelp = useMemo(() => {\n return ;\n }, []);\n\n useEffect(() => {\n const { osCheck, gitCheck, nodeCheck } = state.hcParams;\n\n const localStorageItems = [\"OS_TYPE\", \"NODE_VERSION\", \"GIT_VERSION\"];\n\n const token = axios.CancelToken;\n const source = token.source();\n\n if (osCheck && gitCheck && nodeCheck) {\n setPlatform(osCheck);\n setGitVersion(gitCheck);\n setNodeVersion(nodeCheck);\n } else {\n let checkArray = localStorageItems.filter((item) => {\n return localStorage.getItem(item) ? true : false;\n });\n\n if (checkArray.length === 3) {\n setPlatform(localStorage.getItem(\"OS_TYPE\"));\n setNodeVersion(localStorage.getItem(\"NODE_VERSION\"));\n setGitVersion(localStorage.getItem(\"GIT_VERSION\"));\n } else {\n axios({\n url: globalAPIEndpoint,\n method: \"POST\",\n cancelToken: source.token,\n data: {\n query: `\n query GitConvexAPI{\n gitConvexApi(route:\"HEALTH_CHECK\"){\n healthCheck{\n osCheck\n gitCheck\n nodeCheck\n }\n }\n }\n `,\n },\n })\n .then((res) => {\n if (res.data.data && !res.data.error) {\n const {\n osCheck,\n gitCheck,\n nodeCheck,\n } = res.data.data.gitConvexApi.healthCheck;\n\n setPlatform(JSON.parse(osCheck).message);\n setGitVersion(JSON.parse(gitCheck).message);\n setNodeVersion(JSON.parse(nodeCheck).message);\n }\n })\n .catch((err) => {\n console.log(err);\n });\n }\n }\n return () => {\n source.cancel();\n };\n }, [state.hcParams]);\n\n const params = {\n platform,\n gitVersion,\n nodeVersion,\n };\n\n const renderRightPaneComponent = () => {\n switch (props.location.pathname) {\n case \"/dashboard\":\n return ;\n case \"/dashboard/repository\":\n return ;\n case \"/dashboard/settings\":\n return memoizedSettings;\n case \"/dashboard/help\":\n return memoizedHelp;\n default:\n return (\n \n \n {memoizedRepoDetails}\n \n \n );\n }\n };\n\n return (\n <>\n
\n \n {renderRightPaneComponent()}\n
\n \n );\n}\n","import axios from \"axios\";\nimport React, { useContext, useEffect, useState } from \"react\";\nimport { HC_PARAM_ACTION } from \"../actionStore\";\nimport { ContextProvider } from \"../context\";\nimport { globalAPIEndpoint } from \"../util/env_config\";\nimport \"./SplashScreen.css\";\n\nexport default function SplashScreen(props) {\n const [showAlert, setShowAlert] = useState(false);\n const [hcCheck, setHcCheck] = useState(false);\n const { dispatch } = useContext(ContextProvider);\n\n useEffect(() => {\n const apiURL = globalAPIEndpoint;\n axios({\n url: apiURL,\n method: \"POST\",\n data: {\n query: `\n query GitConvexAPI{\n gitConvexApi(route:\"HEALTH_CHECK\"){\n healthCheck{\n osCheck\n gitCheck\n nodeCheck\n }\n }\n }\n `,\n },\n })\n .then((res) => {\n if (res.data.data) {\n const {\n osCheck,\n gitCheck,\n nodeCheck,\n } = res.data.data.gitConvexApi.healthCheck;\n\n dispatch({\n type: HC_PARAM_ACTION,\n payload: {\n osCheck,\n gitCheck,\n nodeCheck,\n },\n });\n setHcCheck(true);\n } else {\n setShowAlert(true);\n }\n })\n .catch((err) => {\n console.log(err);\n setShowAlert(true);\n });\n }, [dispatch]);\n\n return (\n <>\n {!hcCheck ? (\n
\n
\n
\n
\n
\n
\n
\n \n Git\n \n Convex\n
\n
\n A visualizer for your git repo\n
\n
\n
\n\n {showAlert ? (\n
\n
\n Server Unreachable\n
\n

\n The server is not reachable.Please check if the server module is\n running.\n

\n
\n ) : null}\n
\n ) : (\n props.history.push(\"/dashboard\")\n )}\n \n );\n}\n","import {\n HC_PARAM_ACTION,\n HC_DONE_SWITCH,\n PRESENT_REPO,\n GIT_TRACKED_FILES,\n GIT_GLOBAL_REPOID,\n GIT_ACTION_TRACKED_FILES,\n GIT_ACTION_UNTRACKED_FILES,\n DELETE_PRESENT_REPO,\n} from \"./actionStore\";\n\nexport default function reducer(state, action) {\n switch (action.type) {\n case HC_DONE_SWITCH:\n return {\n ...state,\n hcDone: action.payload,\n };\n case HC_PARAM_ACTION:\n const { osCheck, gitCheck, nodeCheck } = action.payload;\n\n const parseValue = (payload) => {\n return JSON.parse(JSON.parse(JSON.stringify(payload))).message;\n };\n\n localStorage.setItem(\"OS_TYPE\", parseValue(osCheck));\n localStorage.setItem(\"GIT_VERSION\", parseValue(gitCheck));\n localStorage.setItem(\"NODE_VERSION\", parseValue(nodeCheck));\n\n return {\n ...state,\n hcParams: {\n osCheck: parseValue(osCheck),\n gitCheck: parseValue(gitCheck),\n nodeCheck: parseValue(nodeCheck),\n },\n };\n case PRESENT_REPO:\n return {\n ...state,\n presentRepo: [...state.presentRepo, action.payload],\n };\n case DELETE_PRESENT_REPO:\n return {\n ...state,\n presentRepo: [...action.payload],\n };\n case GIT_TRACKED_FILES:\n state.modifiedGitFiles = [];\n return {\n ...state,\n modifiedGitFiles: [...state.modifiedGitFiles, action.payload],\n };\n case GIT_GLOBAL_REPOID:\n state.globalRepoId = \"\";\n return {\n ...state,\n globalRepoId: action.payload,\n };\n case GIT_ACTION_TRACKED_FILES:\n state.gitTrackedFiles = [];\n return {\n ...state,\n gitTrackedFiles: [...state.gitTrackedFiles, action.payload],\n };\n case GIT_ACTION_UNTRACKED_FILES:\n state.gitUntrackedFiles = [];\n return {\n ...state,\n gitUntrackedFiles: [...state.gitUntrackedFiles, action.payload],\n };\n default:\n return {\n ...state,\n };\n }\n}\n","import React, { useReducer } from \"react\";\nimport { Route } from \"react-router\";\nimport { BrowserRouter, Switch } from \"react-router-dom\";\nimport \"./App.css\";\nimport Dashboard from \"./Components/DashBoard/Dashboard\";\nimport SplashScreen from \"./Components/SplashScreen\";\nimport { ContextProvider } from \"./context\";\nimport reducer from \"./reducer\";\n\nexport default function App(props) {\n const initialState = {\n hcParams: {},\n presentRepo: [],\n modifiedGitFiles: [],\n globalRepoId: \"\",\n gitUntrackedFiles: [],\n gitTrackedFiles: [],\n };\n const [state, dispatch] = useReducer(reducer, initialState);\n\n return (\n
\n \n \n \n \n \n \n \n \n \n \n
\n );\n}\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.0/8 are considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl, {\n headers: { 'Service-Worker': 'script' }\n })\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready\n .then(registration => {\n registration.unregister();\n })\n .catch(error => {\n console.error(error.message);\n });\n }\n}\n","import React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport App from \"./App\";\nimport \"./index.css\";\nimport \"./prism.css\";\nimport * as serviceWorker from \"./serviceWorker\";\n\nReactDOM.render(, document.getElementById(\"root\"));\n\nserviceWorker.unregister();\n"],"sourceRoot":""} \ No newline at end of file diff --git a/package.json b/package.json index e66a2205..1b325396 100755 --- a/package.json +++ b/package.json @@ -1,13 +1,13 @@ { "name": "@itassistors/gitconvex", - "version": "1.1.0", + "version": "1.0.15", "description": "Git web UI client", "publishConfig": { "registry": "https://registry.npmjs.org/" }, "main": "server.js", "bin": { - "gitconvex": "server.js" + "gitconvex":"server.js" }, "scripts": { "start": "node server.js", From d118a42a47a7e5876ce938f6c532978c906e8f77 Mon Sep 17 00:00:00 2001 From: Neel1996 Date: Mon, 13 Jul 2020 16:55:10 +0000 Subject: [PATCH 3/5] Merge pull request #22 from neel1996/repodetail-ui-fix --- build/asset-manifest.json | 8 +- build/index.html | 2 +- ...nifest.3a69c1f9477f92306afede40ced4a27e.js | 1710 +++++++++++++++++ build/service-worker.js | 2 +- build/static/js/main.48aad14b.chunk.js | 2 + build/static/js/main.48aad14b.chunk.js.map | 1 + 6 files changed, 1719 insertions(+), 6 deletions(-) create mode 100644 build/precache-manifest.3a69c1f9477f92306afede40ced4a27e.js create mode 100644 build/static/js/main.48aad14b.chunk.js create mode 100644 build/static/js/main.48aad14b.chunk.js.map diff --git a/build/asset-manifest.json b/build/asset-manifest.json index b976fa0b..99fab754 100644 --- a/build/asset-manifest.json +++ b/build/asset-manifest.json @@ -1,8 +1,8 @@ { "files": { "main.css": "/static/css/main.a4fb5d6c.chunk.css", - "main.js": "/static/js/main.3cda9c91.chunk.js", - "main.js.map": "/static/js/main.3cda9c91.chunk.js.map", + "main.js": "/static/js/main.48aad14b.chunk.js", + "main.js.map": "/static/js/main.48aad14b.chunk.js.map", "runtime-main.js": "/static/js/runtime-main.901d17b4.js", "runtime-main.js.map": "/static/js/runtime-main.901d17b4.js.map", "static/js/2.3b1bb55a.chunk.js": "/static/js/2.3b1bb55a.chunk.js", @@ -848,7 +848,7 @@ "static/js/422.364d5705.chunk.js": "/static/js/422.364d5705.chunk.js", "static/js/422.364d5705.chunk.js.map": "/static/js/422.364d5705.chunk.js.map", "index.html": "/index.html", - "precache-manifest.2e554d5fc8b1a6e8853c670d6bf4084c.js": "/precache-manifest.2e554d5fc8b1a6e8853c670d6bf4084c.js", + "precache-manifest.3a69c1f9477f92306afede40ced4a27e.js": "/precache-manifest.3a69c1f9477f92306afede40ced4a27e.js", "service-worker.js": "/service-worker.js", "static/css/main.a4fb5d6c.chunk.css.map": "/static/css/main.a4fb5d6c.chunk.css.map", "static/js/2.3b1bb55a.chunk.js.LICENSE.txt": "/static/js/2.3b1bb55a.chunk.js.LICENSE.txt", @@ -858,6 +858,6 @@ "static/js/runtime-main.901d17b4.js", "static/js/2.3b1bb55a.chunk.js", "static/css/main.a4fb5d6c.chunk.css", - "static/js/main.3cda9c91.chunk.js" + "static/js/main.48aad14b.chunk.js" ] } \ No newline at end of file diff --git a/build/index.html b/build/index.html index e6c73439..e2e94b78 100644 --- a/build/index.html +++ b/build/index.html @@ -1 +1 @@ -GitConvex - A Git visualizer
\ No newline at end of file +GitConvex - A Git visualizer
\ No newline at end of file diff --git a/build/precache-manifest.3a69c1f9477f92306afede40ced4a27e.js b/build/precache-manifest.3a69c1f9477f92306afede40ced4a27e.js new file mode 100644 index 00000000..903e8637 --- /dev/null +++ b/build/precache-manifest.3a69c1f9477f92306afede40ced4a27e.js @@ -0,0 +1,1710 @@ +self.__precacheManifest = (self.__precacheManifest || []).concat([ + { + "revision": "d36b02f40d8362f1d0bbc7f433fcd765", + "url": "/index.html" + }, + { + "revision": "a1f5e906599248889a75", + "url": "/static/css/main.a4fb5d6c.chunk.css" + }, + { + "revision": "fe797b1964b44ab95b20", + "url": "/static/js/10.d1c9cc85.chunk.js" + }, + { + "revision": "1e02e653b75723742ad3", + "url": "/static/js/100.01cd27c3.chunk.js" + }, + { + "revision": "4e982b20cac44bb0718f", + "url": "/static/js/101.9291ca3f.chunk.js" + }, + { + "revision": "f4bcbb467f6e6a941a6a", + "url": "/static/js/102.9293c361.chunk.js" + }, + { + "revision": "dd970045886969588f04", + "url": "/static/js/103.6ba87c6c.chunk.js" + }, + { + "revision": "64a7f5066c72a2c64355", + "url": "/static/js/104.33b5a84a.chunk.js" + }, + { + "revision": "f283b7839ae38aee66f7", + "url": "/static/js/105.27e63b5b.chunk.js" + }, + { + "revision": "04e110444689875aa268", + "url": "/static/js/106.140ac720.chunk.js" + }, + { + "revision": "911325fac6e7c43e6089", + "url": "/static/js/107.f9824f8d.chunk.js" + }, + { + "revision": "694068a4e80e94060916", + "url": "/static/js/108.606a5611.chunk.js" + }, + { + "revision": "72e4f73e884cd398e45b", + "url": "/static/js/109.b3b87d20.chunk.js" + }, + { + "revision": "1f3e3df4aa4a1e405c0c", + "url": "/static/js/11.effa20c5.chunk.js" + }, + { + "revision": "e3a6087ad302c5af13d4", + "url": "/static/js/110.85400d73.chunk.js" + }, + { + "revision": "df6ab6e37dd4de35b49b", + "url": "/static/js/111.7b0ecbd3.chunk.js" + }, + { + "revision": "09d4f244a2e70e84dccf", + "url": "/static/js/112.fd5b71a7.chunk.js" + }, + { + "revision": "c0678c1766abbfb04071", + "url": "/static/js/113.8089c808.chunk.js" + }, + { + "revision": "216a4161680bdf0ad9f2", + "url": "/static/js/114.be346870.chunk.js" + }, + { + "revision": "801b65a0bf49a28273e7", + "url": "/static/js/115.7fa44ee4.chunk.js" + }, + { + "revision": "a959393791a952e04773", + "url": "/static/js/116.8b049695.chunk.js" + }, + { + "revision": "4f39d4ea68648748ce85", + "url": "/static/js/117.53f4fa85.chunk.js" + }, + { + "revision": "cfcb2d83f9b3d1f3ab80", + "url": "/static/js/118.87e976b4.chunk.js" + }, + { + "revision": "daea3202c7759aa1f3a6", + "url": "/static/js/119.b50e2604.chunk.js" + }, + { + "revision": "f98087b5eee97d23ab84", + "url": "/static/js/12.a912f77b.chunk.js" + }, + { + "revision": "b6fbbd1e86d7d9b0a804", + "url": "/static/js/120.34951caa.chunk.js" + }, + { + "revision": "9476ea8d5590012789d1", + "url": "/static/js/121.6c30f266.chunk.js" + }, + { + "revision": "3f4c329375e4d0970c43", + "url": "/static/js/122.999896e2.chunk.js" + }, + { + "revision": "2beee85aef71b4c29946", + "url": "/static/js/123.d03edf48.chunk.js" + }, + { + "revision": "81e9cdc8740ee3f38ec4", + "url": "/static/js/124.b14de401.chunk.js" + }, + { + "revision": "ce54957ecb96164b4fc0", + "url": "/static/js/125.ecc002a8.chunk.js" + }, + { + "revision": "2cb10dc92e39b3bc0497", + "url": "/static/js/126.76aca90e.chunk.js" + }, + { + "revision": "d4c9a8d19dd0ab6dc915", + "url": "/static/js/127.7601e70b.chunk.js" + }, + { + "revision": "d2b1ad58c875acd9df5c", + "url": "/static/js/128.869d4b33.chunk.js" + }, + { + "revision": "5f4986c17e337ea24c75", + "url": "/static/js/129.61ed98c8.chunk.js" + }, + { + "revision": "ce2665a4a36f84de5ee1", + "url": "/static/js/13.2615a693.chunk.js" + }, + { + "revision": "70e61c6b1d58866b688f", + "url": "/static/js/130.3fc6780e.chunk.js" + }, + { + "revision": "812af9b2feed0f6b2fdb", + "url": "/static/js/131.1ddcd339.chunk.js" + }, + { + "revision": "96f8a7af05781fb27c6a", + "url": "/static/js/132.ad755da5.chunk.js" + }, + { + "revision": "b2e103f7ea9c3ef06734", + "url": "/static/js/133.9fd897ae.chunk.js" + }, + { + "revision": "4ef398ff64fed965fa60", + "url": "/static/js/134.6cbed810.chunk.js" + }, + { + "revision": "02387fd0a317426a7ea0", + "url": "/static/js/135.b0956c89.chunk.js" + }, + { + "revision": "6407ace123ef5397e7dd", + "url": "/static/js/136.6e6751b1.chunk.js" + }, + { + "revision": "8f7b70bbdb847962be20", + "url": "/static/js/137.d8576078.chunk.js" + }, + { + "revision": "d0e6225fcd346b5dd6c6", + "url": "/static/js/138.c6d432e8.chunk.js" + }, + { + "revision": "38853579914ebed0fc7a", + "url": "/static/js/139.57639c9f.chunk.js" + }, + { + "revision": "68a167ab11c1e4aa7283", + "url": "/static/js/14.ee550782.chunk.js" + }, + { + "revision": "cdd07cf56865667d521d", + "url": "/static/js/140.1b2bd5e9.chunk.js" + }, + { + "revision": "a44a7dab44eff39bef6a", + "url": "/static/js/141.158d5d8d.chunk.js" + }, + { + "revision": "2c89b06744495f6c8136", + "url": "/static/js/142.a434b844.chunk.js" + }, + { + "revision": "18b651de8a9443e39417", + "url": "/static/js/143.0a380d26.chunk.js" + }, + { + "revision": "7746098de4639f6be6eb", + "url": "/static/js/144.4a5a51de.chunk.js" + }, + { + "revision": "08c61b1705dd4544984c", + "url": "/static/js/145.7d0d2dd4.chunk.js" + }, + { + "revision": "b1ee55ab537f9c9194eb", + "url": "/static/js/146.9aaf4f71.chunk.js" + }, + { + "revision": "6fa4decb112b26fc9f30", + "url": "/static/js/147.82524187.chunk.js" + }, + { + "revision": "bb792ea84cd727d44d2b", + "url": "/static/js/148.d3bd7a35.chunk.js" + }, + { + "revision": "1e03acd26fd308e68cc4", + "url": "/static/js/149.d7f332a6.chunk.js" + }, + { + "revision": "59be961fa1de891e8c4f", + "url": "/static/js/15.88b3d3bf.chunk.js" + }, + { + "revision": "01f4bb86e3fde6cf8bd5", + "url": "/static/js/150.5ccce66f.chunk.js" + }, + { + "revision": "230a66b91b481bcdb934", + "url": "/static/js/151.1a19e0f0.chunk.js" + }, + { + "revision": "e893b9187d19b8a4211b", + "url": "/static/js/152.10c1ccd9.chunk.js" + }, + { + "revision": "483864696db3f2ddbe67", + "url": "/static/js/153.30ba936f.chunk.js" + }, + { + "revision": "d2e76810d9efe932f41f", + "url": "/static/js/154.b370dd5a.chunk.js" + }, + { + "revision": "036226aaa9a1acc5a07c", + "url": "/static/js/155.c695957e.chunk.js" + }, + { + "revision": "c9df0104bdece0d998a3", + "url": "/static/js/156.a5af941e.chunk.js" + }, + { + "revision": "a20fad4720a5fb00d82a", + "url": "/static/js/157.6113ebed.chunk.js" + }, + { + "revision": "5a4f8bc82bc2b745b6e8", + "url": "/static/js/158.861b0c88.chunk.js" + }, + { + "revision": "dd7b2168c1b3ee8d4e5f", + "url": "/static/js/159.a05a9304.chunk.js" + }, + { + "revision": "4aef574a9d8b7448d391", + "url": "/static/js/16.6d491dd4.chunk.js" + }, + { + "revision": "8eea38ab6cfa0bf6102c", + "url": "/static/js/160.3d1b1644.chunk.js" + }, + { + "revision": "80e059a409ef7887813b", + "url": "/static/js/161.39057635.chunk.js" + }, + { + "revision": "b26c887c4532dd8e508b", + "url": "/static/js/162.2906fc30.chunk.js" + }, + { + "revision": "3c5805debe3b1e6ef883", + "url": "/static/js/163.c619c034.chunk.js" + }, + { + "revision": "e3239dfbb39d60871cc6", + "url": "/static/js/164.47ef8393.chunk.js" + }, + { + "revision": "243e5d2936d2986b0c73", + "url": "/static/js/165.b798fd82.chunk.js" + }, + { + "revision": "d0c7c59796fcd10a4974", + "url": "/static/js/166.d34cc4fc.chunk.js" + }, + { + "revision": "506e4b10445deadc1af9", + "url": "/static/js/167.0d2e3eb6.chunk.js" + }, + { + "revision": "4d7290d604787e654e95", + "url": "/static/js/168.8e91f32e.chunk.js" + }, + { + "revision": "886406ee881460a4606c", + "url": "/static/js/169.7286ecdf.chunk.js" + }, + { + "revision": "6904213b18c702b70fe7", + "url": "/static/js/17.7830841d.chunk.js" + }, + { + "revision": "bcb9429606787b3e41eb", + "url": "/static/js/170.df0eab62.chunk.js" + }, + { + "revision": "557b639d6a643d3df952", + "url": "/static/js/171.a4dcfeec.chunk.js" + }, + { + "revision": "04d3a6ecad6303f7ce81", + "url": "/static/js/172.948d3b40.chunk.js" + }, + { + "revision": "cf6ac7460f0d172936bf", + "url": "/static/js/173.b3aa43af.chunk.js" + }, + { + "revision": "8bd6d661e285d8c63cab", + "url": "/static/js/174.6e3f61a8.chunk.js" + }, + { + "revision": "4c01236ac62c0f9f07ac", + "url": "/static/js/175.3457491f.chunk.js" + }, + { + "revision": "6b6395f9342339990cef", + "url": "/static/js/176.445d015e.chunk.js" + }, + { + "revision": "fbfe38a8f7a1d01b76aa", + "url": "/static/js/177.938188c8.chunk.js" + }, + { + "revision": "03a5d6d1a51b894c51d1", + "url": "/static/js/178.50742e19.chunk.js" + }, + { + "revision": "317d9a920a06ab6d04b4", + "url": "/static/js/179.db178a87.chunk.js" + }, + { + "revision": "73b3518f31a100e0d251", + "url": "/static/js/18.5220a7f6.chunk.js" + }, + { + "revision": "45d5bc65bff81869002e", + "url": "/static/js/180.8dc6e34d.chunk.js" + }, + { + "revision": "7dcc12fee69b7db4c0e2", + "url": "/static/js/181.6ffc5a87.chunk.js" + }, + { + "revision": "740be645d49731a45aec", + "url": "/static/js/182.d6d09e61.chunk.js" + }, + { + "revision": "53577c2405fe98de518e", + "url": "/static/js/183.6e6022ce.chunk.js" + }, + { + "revision": "46db8957f3ca35fc6043", + "url": "/static/js/184.23741cce.chunk.js" + }, + { + "revision": "2b21f3e040814e1eeb7d", + "url": "/static/js/185.ba7af8ef.chunk.js" + }, + { + "revision": "80ea7630c68c7612eb77", + "url": "/static/js/186.6dedfa47.chunk.js" + }, + { + "revision": "67b8c866a5472c3b6371", + "url": "/static/js/187.f6dd417e.chunk.js" + }, + { + "revision": "90ec94af6966f4a9dbd8", + "url": "/static/js/188.dfa8253a.chunk.js" + }, + { + "revision": "7b1973faf92a332b31fb", + "url": "/static/js/189.266ae92c.chunk.js" + }, + { + "revision": "fac5b7a805b392acd9a2", + "url": "/static/js/19.323921eb.chunk.js" + }, + { + "revision": "5cac62f7e97b23d3e830", + "url": "/static/js/190.928f8c32.chunk.js" + }, + { + "revision": "14ad64600f388501b19b", + "url": "/static/js/191.da5511ce.chunk.js" + }, + { + "revision": "6113a253db0dbff72eb8", + "url": "/static/js/192.d29544de.chunk.js" + }, + { + "revision": "751d64e78450a6c42111", + "url": "/static/js/193.c1edc91f.chunk.js" + }, + { + "revision": "caa499a6b07a2c4cc5bd", + "url": "/static/js/194.2bda6550.chunk.js" + }, + { + "revision": "004d5e55917d0b1c05b6", + "url": "/static/js/195.b26ef12c.chunk.js" + }, + { + "revision": "5ac2dd2f747f355fb971", + "url": "/static/js/196.25849f46.chunk.js" + }, + { + "revision": "87e4774108890441dc84", + "url": "/static/js/197.9ad7d291.chunk.js" + }, + { + "revision": "70c264ee4f4997fde079", + "url": "/static/js/198.449ed6c5.chunk.js" + }, + { + "revision": "63c40c313af0436f2c12", + "url": "/static/js/199.ac3e3261.chunk.js" + }, + { + "revision": "befe73d23bb015ea1501", + "url": "/static/js/2.3b1bb55a.chunk.js" + }, + { + "revision": "0749163b59fbee32225059cb60c18af6", + "url": "/static/js/2.3b1bb55a.chunk.js.LICENSE.txt" + }, + { + "revision": "f1e71b5615907e2a18ef", + "url": "/static/js/20.2e732441.chunk.js" + }, + { + "revision": "61b0a4f6f85dac7d4d2c", + "url": "/static/js/200.d53e4889.chunk.js" + }, + { + "revision": "0052c70a066d52118360", + "url": "/static/js/201.de44c976.chunk.js" + }, + { + "revision": "21427ab5f089f5c322c6", + "url": "/static/js/202.0d93ef62.chunk.js" + }, + { + "revision": "ffe49df272b49aa7c72a", + "url": "/static/js/203.5118d971.chunk.js" + }, + { + "revision": "feedb24fc79a85c9d39a", + "url": "/static/js/204.31bdbe78.chunk.js" + }, + { + "revision": "16c4a8d6c3fb7d0a4701", + "url": "/static/js/205.a1dc5ef2.chunk.js" + }, + { + "revision": "b7386e7f50a128018432", + "url": "/static/js/206.49d5e30b.chunk.js" + }, + { + "revision": "b96b139c901edf3ec14a", + "url": "/static/js/207.8f6a764e.chunk.js" + }, + { + "revision": "06d49df03512250cac87", + "url": "/static/js/208.8e01bb70.chunk.js" + }, + { + "revision": "60e1d32dc0f46c89beed", + "url": "/static/js/209.5ac9245e.chunk.js" + }, + { + "revision": "e70a2950fa4671a15fb1", + "url": "/static/js/21.7528f179.chunk.js" + }, + { + "revision": "400c61b30cf841199012", + "url": "/static/js/210.7f05bc10.chunk.js" + }, + { + "revision": "c9225b9e51608b47f0da", + "url": "/static/js/211.0d71de21.chunk.js" + }, + { + "revision": "79f58035ad5a163bb0a2", + "url": "/static/js/212.0bbe5338.chunk.js" + }, + { + "revision": "a2bc79af17a6b9ce2197", + "url": "/static/js/213.12ed3184.chunk.js" + }, + { + "revision": "113512aee6b36b8e755d", + "url": "/static/js/214.ac08a1e7.chunk.js" + }, + { + "revision": "ae753dc226757888f4f9", + "url": "/static/js/215.6bb34298.chunk.js" + }, + { + "revision": "86580851bbb1d8c1c45c", + "url": "/static/js/216.d088d6c4.chunk.js" + }, + { + "revision": "d4dc8ca77f1c2ca0676c", + "url": "/static/js/217.b9f3c215.chunk.js" + }, + { + "revision": "da490097586a4522b256", + "url": "/static/js/218.89403a0a.chunk.js" + }, + { + "revision": "fabfacdc2ec905085534", + "url": "/static/js/219.8dcada19.chunk.js" + }, + { + "revision": "86775c0a27a415725a7a", + "url": "/static/js/22.284599a1.chunk.js" + }, + { + "revision": "7d249d8eba56340a1d8e", + "url": "/static/js/220.db7413ec.chunk.js" + }, + { + "revision": "2d1a11426726cea3e18e", + "url": "/static/js/221.ab481b16.chunk.js" + }, + { + "revision": "586c868eacd6d5213a50", + "url": "/static/js/222.ffab024f.chunk.js" + }, + { + "revision": "4d5a27d99ccd05507e49", + "url": "/static/js/223.ec7964e5.chunk.js" + }, + { + "revision": "ac5cb93c818fe845d37d", + "url": "/static/js/224.b653080a.chunk.js" + }, + { + "revision": "41b98ee79618003ea320", + "url": "/static/js/225.5e08d61f.chunk.js" + }, + { + "revision": "860423520e195318f574", + "url": "/static/js/226.daff08f4.chunk.js" + }, + { + "revision": "521f27c9fddaa501fa67", + "url": "/static/js/227.da339ff0.chunk.js" + }, + { + "revision": "26dad8cc7ea76a47be3b", + "url": "/static/js/228.5992d8b4.chunk.js" + }, + { + "revision": "08220c30e9f2f7559327", + "url": "/static/js/229.80a07e7d.chunk.js" + }, + { + "revision": "75ff66251bd4a1e74b19", + "url": "/static/js/23.0ed082b6.chunk.js" + }, + { + "revision": "d24785bec856d16423cb", + "url": "/static/js/230.5f624b4a.chunk.js" + }, + { + "revision": "10f0112f1c6ccde97f72", + "url": "/static/js/231.e4488c8a.chunk.js" + }, + { + "revision": "fc1025b212e4d7eb3040", + "url": "/static/js/232.113b1862.chunk.js" + }, + { + "revision": "03c0c57f99e066b80fb7", + "url": "/static/js/233.826dbe8d.chunk.js" + }, + { + "revision": "01224c3952a1c86de7c9", + "url": "/static/js/234.4d1d8eb0.chunk.js" + }, + { + "revision": "3ce089d1d613209d6481", + "url": "/static/js/235.d7b96105.chunk.js" + }, + { + "revision": "379e6dffca678d5a1a25", + "url": "/static/js/236.4fc41999.chunk.js" + }, + { + "revision": "22be4529d9c7e3a8e816", + "url": "/static/js/237.5fd9c994.chunk.js" + }, + { + "revision": "ad29d87ae9765028bb55", + "url": "/static/js/238.f1287465.chunk.js" + }, + { + "revision": "5c067400306290eb7e4d", + "url": "/static/js/239.2008e5e9.chunk.js" + }, + { + "revision": "310301d3a179ef61e66b", + "url": "/static/js/24.d066cc86.chunk.js" + }, + { + "revision": "2ea9d281a4e99313e044", + "url": "/static/js/240.8051d6f3.chunk.js" + }, + { + "revision": "c1b299fa017901e5e9f5", + "url": "/static/js/241.5355190b.chunk.js" + }, + { + "revision": "7c64183db53f2e1598e9", + "url": "/static/js/242.bc8a38da.chunk.js" + }, + { + "revision": "b94cc96e838eb9bbeb84", + "url": "/static/js/243.8b6ca5fd.chunk.js" + }, + { + "revision": "e472ee2ebe4e8ed6e08d", + "url": "/static/js/244.8f019982.chunk.js" + }, + { + "revision": "a01bc8c54992a59e4692", + "url": "/static/js/245.d84e2afd.chunk.js" + }, + { + "revision": "78cdfc30b0007724a259", + "url": "/static/js/246.03a507ff.chunk.js" + }, + { + "revision": "2722ba1f695b28d12eeb", + "url": "/static/js/247.562d7f99.chunk.js" + }, + { + "revision": "fdbf8e77228be1f9727c", + "url": "/static/js/248.805eaf63.chunk.js" + }, + { + "revision": "a0533a574dc95f9e8fa7", + "url": "/static/js/249.4329aa1f.chunk.js" + }, + { + "revision": "c0ed337854ec1a9476f7", + "url": "/static/js/25.5601061a.chunk.js" + }, + { + "revision": "0a8f44afccc72c5f2286", + "url": "/static/js/250.19451d1e.chunk.js" + }, + { + "revision": "9b6d7dabd4d2db996071", + "url": "/static/js/251.d6748a2c.chunk.js" + }, + { + "revision": "16c5097641e0bcb65b40", + "url": "/static/js/252.d0e7af38.chunk.js" + }, + { + "revision": "cda93c45c29d8ccf2eb4", + "url": "/static/js/253.f7e76454.chunk.js" + }, + { + "revision": "8433f5a6dadf22f0a023", + "url": "/static/js/254.d0f59e76.chunk.js" + }, + { + "revision": "46c151a5b3b95daf8e08", + "url": "/static/js/255.b0b81383.chunk.js" + }, + { + "revision": "0e3a3726cbabaeb2469c", + "url": "/static/js/256.3eb93658.chunk.js" + }, + { + "revision": "2c5fc10c6d682c26c646", + "url": "/static/js/257.4cf4b5b2.chunk.js" + }, + { + "revision": "2f77632a7b3a9c6fc8f5", + "url": "/static/js/258.1953110e.chunk.js" + }, + { + "revision": "802f7b951cebdcfbd429", + "url": "/static/js/259.9c2209a3.chunk.js" + }, + { + "revision": "e78eecc07f81a66eda0e", + "url": "/static/js/26.403f66c6.chunk.js" + }, + { + "revision": "98a71a71080fd2105829", + "url": "/static/js/260.7f9d86df.chunk.js" + }, + { + "revision": "2f9677bd66dfe1f33623", + "url": "/static/js/261.86facdf2.chunk.js" + }, + { + "revision": "6169e6a5b60d68cb5762", + "url": "/static/js/262.79c25287.chunk.js" + }, + { + "revision": "e716e1be95a12f5ae767", + "url": "/static/js/263.a7061093.chunk.js" + }, + { + "revision": "4f235e201f3598867def", + "url": "/static/js/264.9b455838.chunk.js" + }, + { + "revision": "efa43eb551a76e8d1abf", + "url": "/static/js/265.92cd99e6.chunk.js" + }, + { + "revision": "2b6266f3544e808b2058", + "url": "/static/js/266.719b3e21.chunk.js" + }, + { + "revision": "4956f0a4353bc5037c81", + "url": "/static/js/267.4efb6052.chunk.js" + }, + { + "revision": "e41ab2c27ac3aa742692", + "url": "/static/js/268.81536b89.chunk.js" + }, + { + "revision": "8fa6b69910f6e3e6f8d4", + "url": "/static/js/269.1c9b3b54.chunk.js" + }, + { + "revision": "991690e000094b7a50dd", + "url": "/static/js/27.abad2595.chunk.js" + }, + { + "revision": "5774590dfbf669d3beaa", + "url": "/static/js/270.57e7f187.chunk.js" + }, + { + "revision": "b72477b3b7560f5aea56", + "url": "/static/js/271.92214fef.chunk.js" + }, + { + "revision": "d2246beed85df91ca81a", + "url": "/static/js/272.cd7cffeb.chunk.js" + }, + { + "revision": "de4ac5db7117bf5cee5d", + "url": "/static/js/273.8973a464.chunk.js" + }, + { + "revision": "dfa9a86613337c00b026", + "url": "/static/js/274.ec767a5f.chunk.js" + }, + { + "revision": "cbcb5acc7e57cda4c62e", + "url": "/static/js/275.0f530c08.chunk.js" + }, + { + "revision": "c5ada77f803cae4866ac", + "url": "/static/js/276.62ffa934.chunk.js" + }, + { + "revision": "a61f3e48ff3c1ff38b2f", + "url": "/static/js/277.7552efee.chunk.js" + }, + { + "revision": "df6e26d988b0e98a81d1", + "url": "/static/js/278.abf5e128.chunk.js" + }, + { + "revision": "b778fc5d29006b795994", + "url": "/static/js/279.dd1b79e8.chunk.js" + }, + { + "revision": "ec2114ab2d7b0fb48184", + "url": "/static/js/28.51809c7f.chunk.js" + }, + { + "revision": "410c6e314281606f821f", + "url": "/static/js/280.fc7d47a2.chunk.js" + }, + { + "revision": "0bd9bd5d872b8705f88c", + "url": "/static/js/281.bf430873.chunk.js" + }, + { + "revision": "38f85f8ea0cec86fef52", + "url": "/static/js/282.94c7a778.chunk.js" + }, + { + "revision": "0f66d18a86ac925db596", + "url": "/static/js/283.78cf07c5.chunk.js" + }, + { + "revision": "4be161fcb8c31ec47787", + "url": "/static/js/284.6705f860.chunk.js" + }, + { + "revision": "3546de442d57997709ae", + "url": "/static/js/285.0662219e.chunk.js" + }, + { + "revision": "7cecb288e92dc92f7b8c", + "url": "/static/js/286.031f22dc.chunk.js" + }, + { + "revision": "f7f4d3fbe5a9d7be1909", + "url": "/static/js/287.330c5b8a.chunk.js" + }, + { + "revision": "4afb0dd3c5d644ffafd5", + "url": "/static/js/288.b740fb0c.chunk.js" + }, + { + "revision": "705ae5190577bfd1a65d", + "url": "/static/js/289.1d355f78.chunk.js" + }, + { + "revision": "42fcd053852575c391fd", + "url": "/static/js/29.b43a218f.chunk.js" + }, + { + "revision": "8b1cb2e4decc04a2be60", + "url": "/static/js/290.a331c2b2.chunk.js" + }, + { + "revision": "65e6a55dce0aedf2a348", + "url": "/static/js/291.8091c235.chunk.js" + }, + { + "revision": "916b8c23b74e42d1adda", + "url": "/static/js/292.c2f2bff0.chunk.js" + }, + { + "revision": "75313295856e47021db6", + "url": "/static/js/293.8c881ac6.chunk.js" + }, + { + "revision": "9c71ee4d96bd7528dcf6", + "url": "/static/js/294.57e499c7.chunk.js" + }, + { + "revision": "0d4862c846af2ede5014", + "url": "/static/js/295.4f745262.chunk.js" + }, + { + "revision": "fa8b68b4d77553580c1f", + "url": "/static/js/296.6b9b7960.chunk.js" + }, + { + "revision": "bfa94ad4eb0ecd24105b", + "url": "/static/js/297.7fd30bc9.chunk.js" + }, + { + "revision": "7ae6df6e051d5ebd0fe8", + "url": "/static/js/298.184480b7.chunk.js" + }, + { + "revision": "3ba1861d3f374c9ad96e", + "url": "/static/js/299.a1e5cbe1.chunk.js" + }, + { + "revision": "6f62b67bba6977871bc4", + "url": "/static/js/3.2eab11d6.chunk.js" + }, + { + "revision": "4828cf70008a72ac5da3", + "url": "/static/js/30.e56de4b6.chunk.js" + }, + { + "revision": "8ab9c4bb9595657eefd9", + "url": "/static/js/300.99cd9112.chunk.js" + }, + { + "revision": "2dc4b51d58691d320475", + "url": "/static/js/301.5c4cadbc.chunk.js" + }, + { + "revision": "03867eda1654875e8e10", + "url": "/static/js/302.31666b8b.chunk.js" + }, + { + "revision": "bc655726db8adefc365c", + "url": "/static/js/303.eba8dcf8.chunk.js" + }, + { + "revision": "863c04e6a0895ce93832", + "url": "/static/js/304.ab6f6ae5.chunk.js" + }, + { + "revision": "ab4a58e8cee6e1320cf1", + "url": "/static/js/305.3401c5b6.chunk.js" + }, + { + "revision": "8e46ad724a37076fd681", + "url": "/static/js/306.5527bbe6.chunk.js" + }, + { + "revision": "6f76c12bd6d8efd54f7e", + "url": "/static/js/307.30b73630.chunk.js" + }, + { + "revision": "bbd33c82acfeabe971a7", + "url": "/static/js/308.17aa8366.chunk.js" + }, + { + "revision": "41459e3d638288c9f5e3", + "url": "/static/js/309.c8a38024.chunk.js" + }, + { + "revision": "9e16f5a52680704405c3", + "url": "/static/js/31.b68e50dc.chunk.js" + }, + { + "revision": "72d3d0ed6176fe2985fd", + "url": "/static/js/310.13ac854a.chunk.js" + }, + { + "revision": "8d64c8886bc45659165d", + "url": "/static/js/311.60313b02.chunk.js" + }, + { + "revision": "b75ed634748ef7ba4c18", + "url": "/static/js/312.73856e1d.chunk.js" + }, + { + "revision": "7f3ae5b6c2510e5f4cb2", + "url": "/static/js/313.5d60dcc5.chunk.js" + }, + { + "revision": "dc1f5608510d8f6f6abe", + "url": "/static/js/314.2b942fcf.chunk.js" + }, + { + "revision": "989665c66283a99b54dd", + "url": "/static/js/315.9f5e5c61.chunk.js" + }, + { + "revision": "aca73d9c5c1d89121017", + "url": "/static/js/316.d50d7c63.chunk.js" + }, + { + "revision": "979e4a29f64196cf32e5", + "url": "/static/js/317.7bded0f7.chunk.js" + }, + { + "revision": "984a049f94de91ce11b8", + "url": "/static/js/318.88e0d2fb.chunk.js" + }, + { + "revision": "5df748b83ea862d22d38", + "url": "/static/js/319.5b049eed.chunk.js" + }, + { + "revision": "64eddd83cc0a205223eb", + "url": "/static/js/32.e7bab158.chunk.js" + }, + { + "revision": "75beba715b069072bab6", + "url": "/static/js/320.aee162d0.chunk.js" + }, + { + "revision": "f57531c00402d18753a6", + "url": "/static/js/321.6c2ac8b9.chunk.js" + }, + { + "revision": "3c65b2ba89631a392e4c", + "url": "/static/js/322.4ce747f5.chunk.js" + }, + { + "revision": "1ffc29b5f85a28969335", + "url": "/static/js/323.96c7ac51.chunk.js" + }, + { + "revision": "0ef72b5ee3e1914b3578", + "url": "/static/js/324.49037781.chunk.js" + }, + { + "revision": "81250f499ff85a509280", + "url": "/static/js/325.0338f384.chunk.js" + }, + { + "revision": "b5cbe118902b502efa3c", + "url": "/static/js/326.f092a55a.chunk.js" + }, + { + "revision": "f3d5a622410c68c3e0f5", + "url": "/static/js/327.48dc9b19.chunk.js" + }, + { + "revision": "fe67126141df1ac574de", + "url": "/static/js/328.4e37ebc5.chunk.js" + }, + { + "revision": "3e9e74c030fd78d46c32", + "url": "/static/js/329.925bd68c.chunk.js" + }, + { + "revision": "7c974da53a6cb511d2ab", + "url": "/static/js/33.ea4a7d90.chunk.js" + }, + { + "revision": "02c58dc04709833f91f2", + "url": "/static/js/330.f09f1192.chunk.js" + }, + { + "revision": "379cdaefacd6d6d52d40", + "url": "/static/js/331.548c5c35.chunk.js" + }, + { + "revision": "eb7ef0f96c495ff16400", + "url": "/static/js/332.59099a6a.chunk.js" + }, + { + "revision": "5533f83ff592fc4dc118", + "url": "/static/js/333.c3f947d1.chunk.js" + }, + { + "revision": "88788e80dd70bf581f75", + "url": "/static/js/334.fecbd481.chunk.js" + }, + { + "revision": "31ae82c90538e035211a", + "url": "/static/js/335.bc5c316d.chunk.js" + }, + { + "revision": "591fa152bff81fc72e1b", + "url": "/static/js/336.99230e14.chunk.js" + }, + { + "revision": "2ac480a3550ffbdd53fa", + "url": "/static/js/337.f0f9139a.chunk.js" + }, + { + "revision": "0e02c3673e14ffe70fc7", + "url": "/static/js/338.12c07686.chunk.js" + }, + { + "revision": "97d3dab738523884b97b", + "url": "/static/js/339.a0dd0e8d.chunk.js" + }, + { + "revision": "f2dde4477248a90df04b", + "url": "/static/js/34.c874851b.chunk.js" + }, + { + "revision": "e10f14e0ff271c48a16f", + "url": "/static/js/340.c84088be.chunk.js" + }, + { + "revision": "26b167eb4bc8c09f3d12", + "url": "/static/js/341.f7120451.chunk.js" + }, + { + "revision": "a37447634a460527ee2f", + "url": "/static/js/342.e2182d36.chunk.js" + }, + { + "revision": "7427f9a8032ccb75abec", + "url": "/static/js/343.0ec930e4.chunk.js" + }, + { + "revision": "46c278befc5770d02b65", + "url": "/static/js/344.2f3e8345.chunk.js" + }, + { + "revision": "9a0c90b344cfe8961cd5", + "url": "/static/js/345.c6512a3d.chunk.js" + }, + { + "revision": "b88a236d16b479ba7396", + "url": "/static/js/346.2b6cef06.chunk.js" + }, + { + "revision": "5d9c86677b1e6a1cb692", + "url": "/static/js/347.9e737f43.chunk.js" + }, + { + "revision": "d96f3f9a3930e8c24cdf", + "url": "/static/js/348.face6d86.chunk.js" + }, + { + "revision": "ee7301e91bb1d27edc04", + "url": "/static/js/349.3eda0f05.chunk.js" + }, + { + "revision": "79b4743541961b32ee1b", + "url": "/static/js/35.66a0ba28.chunk.js" + }, + { + "revision": "8d59eeedbd7dfaf35c0e", + "url": "/static/js/350.882b82de.chunk.js" + }, + { + "revision": "ce4cf4c1adc21ff80fd3", + "url": "/static/js/351.8a421168.chunk.js" + }, + { + "revision": "f62e8ccd769d436be439", + "url": "/static/js/352.e9953e83.chunk.js" + }, + { + "revision": "c2575dd8385165aa0e00", + "url": "/static/js/353.c2a6a18f.chunk.js" + }, + { + "revision": "bc036efa9df26a5dd375", + "url": "/static/js/354.1b844086.chunk.js" + }, + { + "revision": "d5924fb94bd5676b1cde", + "url": "/static/js/355.aa48542f.chunk.js" + }, + { + "revision": "324d343dcc86872c6fcc", + "url": "/static/js/356.1fb61cf7.chunk.js" + }, + { + "revision": "b301fda0eaf0a3edd806", + "url": "/static/js/357.21ba632c.chunk.js" + }, + { + "revision": "6386b9df219f596e5605", + "url": "/static/js/358.1c68f22c.chunk.js" + }, + { + "revision": "e65ebd70645782cf78ea", + "url": "/static/js/359.5561ebd8.chunk.js" + }, + { + "revision": "7819a581bdc667d8920a", + "url": "/static/js/36.b09efbe6.chunk.js" + }, + { + "revision": "3eaefdeb944d69475798", + "url": "/static/js/360.78793e7c.chunk.js" + }, + { + "revision": "a386323d3511b4340d9f", + "url": "/static/js/361.e39e08e8.chunk.js" + }, + { + "revision": "0fa1c7dd3ebe3b659f37", + "url": "/static/js/362.5075b848.chunk.js" + }, + { + "revision": "0d8fde0024a037acf3e1", + "url": "/static/js/363.0ea89be9.chunk.js" + }, + { + "revision": "92bdc600e8db6e4553ce", + "url": "/static/js/364.f4489ef4.chunk.js" + }, + { + "revision": "e2b0965ff4c010dc1367", + "url": "/static/js/365.bd5cb667.chunk.js" + }, + { + "revision": "0ee261a228d3d627f170", + "url": "/static/js/366.8485cf02.chunk.js" + }, + { + "revision": "b8b0634a4a8a4fd4b491", + "url": "/static/js/367.15eb6971.chunk.js" + }, + { + "revision": "b27f42fc9e1a632dfb27", + "url": "/static/js/368.7498fd10.chunk.js" + }, + { + "revision": "969360f2ea1a13f35099", + "url": "/static/js/369.7f39dfac.chunk.js" + }, + { + "revision": "6bb35a86bcacc06eb172", + "url": "/static/js/37.7363b252.chunk.js" + }, + { + "revision": "9516805dda72e5bd1033", + "url": "/static/js/370.d060d285.chunk.js" + }, + { + "revision": "a9a320d56887753ea4a0", + "url": "/static/js/371.f8865f6b.chunk.js" + }, + { + "revision": "0fa852bd25f17758bff5", + "url": "/static/js/372.3413ecb3.chunk.js" + }, + { + "revision": "b67008b677345957cf18", + "url": "/static/js/373.a2cc65d0.chunk.js" + }, + { + "revision": "61a3c4e5f899878c767c", + "url": "/static/js/374.e1147995.chunk.js" + }, + { + "revision": "5fb0d8c77d622fbba69d", + "url": "/static/js/375.1821c8ca.chunk.js" + }, + { + "revision": "c0ef7c0b9523cabae7dd", + "url": "/static/js/376.89da88b0.chunk.js" + }, + { + "revision": "4e0567858dbfa1254463", + "url": "/static/js/377.ebce785d.chunk.js" + }, + { + "revision": "05c010e1e07dd988de26", + "url": "/static/js/378.4752ad16.chunk.js" + }, + { + "revision": "60b73907d6ad0f91e642", + "url": "/static/js/379.024b59c3.chunk.js" + }, + { + "revision": "8bbfec67073ef70156ad", + "url": "/static/js/38.3cd58478.chunk.js" + }, + { + "revision": "bf06385f67d7323b9962", + "url": "/static/js/380.1f0e4962.chunk.js" + }, + { + "revision": "484242e17ca97be68fb5", + "url": "/static/js/381.6e1d921b.chunk.js" + }, + { + "revision": "7bcb5b396f836cc250f7", + "url": "/static/js/382.697c586b.chunk.js" + }, + { + "revision": "b1f337517aea26e1a6c9", + "url": "/static/js/383.5df981e6.chunk.js" + }, + { + "revision": "726e61b835809bd1cdc3", + "url": "/static/js/384.ead4e64f.chunk.js" + }, + { + "revision": "98fb2cad7beff1c0f987", + "url": "/static/js/385.79a8c59e.chunk.js" + }, + { + "revision": "12bc4c7479b64014b792", + "url": "/static/js/386.f55a5776.chunk.js" + }, + { + "revision": "6dd75a842a958ab4db99", + "url": "/static/js/387.96db204c.chunk.js" + }, + { + "revision": "a2246ab76c1fd5effc2c", + "url": "/static/js/388.64743403.chunk.js" + }, + { + "revision": "ed17055c1d3b56be8e97", + "url": "/static/js/389.18fa2e96.chunk.js" + }, + { + "revision": "9da4bc5eb96dddd706a6", + "url": "/static/js/39.9177dfbf.chunk.js" + }, + { + "revision": "af0000f5e42d206d5252", + "url": "/static/js/390.90baf47a.chunk.js" + }, + { + "revision": "6ddd924511b3219a2358", + "url": "/static/js/391.24e92c66.chunk.js" + }, + { + "revision": "f39b6512d1bd2f89043e", + "url": "/static/js/392.d1254563.chunk.js" + }, + { + "revision": "22bed78667c637555e2d", + "url": "/static/js/393.2b94d877.chunk.js" + }, + { + "revision": "90edc58210df81eca971", + "url": "/static/js/394.b2d4593c.chunk.js" + }, + { + "revision": "290efcc555d19ef6377b", + "url": "/static/js/395.a1e9fe9c.chunk.js" + }, + { + "revision": "a9c83516cb0cdde1b45b", + "url": "/static/js/396.39512086.chunk.js" + }, + { + "revision": "bc66ac97aa443d087f82", + "url": "/static/js/397.94e7c212.chunk.js" + }, + { + "revision": "ad5412777f86e18cf388", + "url": "/static/js/398.56fd118f.chunk.js" + }, + { + "revision": "f0aca5902735d6a07c4d", + "url": "/static/js/399.6aa11f9e.chunk.js" + }, + { + "revision": "1a9e4407eed7f737cd9f", + "url": "/static/js/4.1e02955e.chunk.js" + }, + { + "revision": "f04f6c4e5784e710363c", + "url": "/static/js/40.1ac36757.chunk.js" + }, + { + "revision": "b19fa4bc1feae787d1b5", + "url": "/static/js/400.c0ef427b.chunk.js" + }, + { + "revision": "43507a48e63bca8ea029", + "url": "/static/js/401.0bc5d169.chunk.js" + }, + { + "revision": "c8a903bfe7ba5c7c74f0", + "url": "/static/js/402.95a418a2.chunk.js" + }, + { + "revision": "fbdae6af57645943b6fa", + "url": "/static/js/403.3a75110b.chunk.js" + }, + { + "revision": "c442ecd4b764b9288cfd", + "url": "/static/js/404.f403f53d.chunk.js" + }, + { + "revision": "c2f0f142b300af321201", + "url": "/static/js/405.9ca8b37d.chunk.js" + }, + { + "revision": "bfa7a23eeb420e689ce8", + "url": "/static/js/406.dcbfad00.chunk.js" + }, + { + "revision": "c2e0634ef5b49afb9a72", + "url": "/static/js/407.37d22456.chunk.js" + }, + { + "revision": "51ca7f88b7b98dadc241", + "url": "/static/js/408.45ab27d3.chunk.js" + }, + { + "revision": "d9c95afd4279b4ecbf20", + "url": "/static/js/409.40754f44.chunk.js" + }, + { + "revision": "e6b9bb2939d52f308a2d", + "url": "/static/js/41.391f915d.chunk.js" + }, + { + "revision": "b6641af19d6922fbe51a", + "url": "/static/js/410.34af4c93.chunk.js" + }, + { + "revision": "c79a7f544aa4f38cb725", + "url": "/static/js/411.5bd0ffc3.chunk.js" + }, + { + "revision": "482ee9263b72f7b22b40", + "url": "/static/js/412.be45a07b.chunk.js" + }, + { + "revision": "e772a532a9db9a7b1a68", + "url": "/static/js/413.c104accb.chunk.js" + }, + { + "revision": "7e4780f3d2299e40b927", + "url": "/static/js/414.ba035bd7.chunk.js" + }, + { + "revision": "49da6fd2e56e5995cb48", + "url": "/static/js/415.ecfa1b46.chunk.js" + }, + { + "revision": "ed3e392ac165d7d22fad", + "url": "/static/js/416.9fbfe195.chunk.js" + }, + { + "revision": "c6078ff3f154d83011dc", + "url": "/static/js/417.552c0243.chunk.js" + }, + { + "revision": "9263270279bccacba9c3", + "url": "/static/js/418.a416a079.chunk.js" + }, + { + "revision": "481afc826fdabf3219c6", + "url": "/static/js/419.e4f0a7c5.chunk.js" + }, + { + "revision": "5ca72b21d8e03a9b2084", + "url": "/static/js/42.4c9ac393.chunk.js" + }, + { + "revision": "9f1d4634865eb4ea9f05", + "url": "/static/js/420.917383b8.chunk.js" + }, + { + "revision": "eaf45af5173fbd420aec", + "url": "/static/js/421.4e55f7aa.chunk.js" + }, + { + "revision": "1200cbf2b12936d12ae2", + "url": "/static/js/422.364d5705.chunk.js" + }, + { + "revision": "ac678169608f226d7a20", + "url": "/static/js/43.8edfa982.chunk.js" + }, + { + "revision": "cf944b62e6a88ea3df5c", + "url": "/static/js/44.a5b8ca02.chunk.js" + }, + { + "revision": "d4a2c248a3f1bd0c4b6e", + "url": "/static/js/45.5cd2e680.chunk.js" + }, + { + "revision": "45a15b95eef1f1251198", + "url": "/static/js/46.a805235c.chunk.js" + }, + { + "revision": "9f6196bf49c79e516ccb", + "url": "/static/js/47.5f543cdb.chunk.js" + }, + { + "revision": "613099877452ee4d2938", + "url": "/static/js/48.954e660f.chunk.js" + }, + { + "revision": "203e05f7266688c23640", + "url": "/static/js/49.75516b7b.chunk.js" + }, + { + "revision": "e5d76c21908afbf74c15", + "url": "/static/js/5.c2154126.chunk.js" + }, + { + "revision": "0e640b842740a613d4c2", + "url": "/static/js/50.d889b466.chunk.js" + }, + { + "revision": "1252ed184ebc979fbece", + "url": "/static/js/51.e762e3d3.chunk.js" + }, + { + "revision": "88d647297e32a79b5026", + "url": "/static/js/52.39bcc494.chunk.js" + }, + { + "revision": "164d903974b3af311020", + "url": "/static/js/53.8ae1cab6.chunk.js" + }, + { + "revision": "39e45558d47f52e3f852", + "url": "/static/js/54.889ee9e2.chunk.js" + }, + { + "revision": "d23135e6bb16ad5ec719", + "url": "/static/js/55.913115e2.chunk.js" + }, + { + "revision": "0747a12db91e72b87a24", + "url": "/static/js/56.74b9bfd9.chunk.js" + }, + { + "revision": "20ee3e4a500161d66174", + "url": "/static/js/57.3b6afb05.chunk.js" + }, + { + "revision": "d8f8b168de52ef3503c4", + "url": "/static/js/58.a61b3267.chunk.js" + }, + { + "revision": "f2c1b2a68e95aabb7e60", + "url": "/static/js/59.43aea5a0.chunk.js" + }, + { + "revision": "2313aaa27b3da6df0758", + "url": "/static/js/6.daa8084b.chunk.js" + }, + { + "revision": "fbe5105926f94a838871", + "url": "/static/js/60.867da331.chunk.js" + }, + { + "revision": "8c3d727739aa97445b61", + "url": "/static/js/61.83ca6581.chunk.js" + }, + { + "revision": "8fbe8971026d01e35643", + "url": "/static/js/62.90c8edcd.chunk.js" + }, + { + "revision": "6800127d6cbd58090ab9", + "url": "/static/js/63.841d26be.chunk.js" + }, + { + "revision": "8c3d487b35140eaf6ec4", + "url": "/static/js/64.c54e95bd.chunk.js" + }, + { + "revision": "ff72b9c5e464410d1577", + "url": "/static/js/65.9907508e.chunk.js" + }, + { + "revision": "919bebfff56780407ed2", + "url": "/static/js/66.9b88a30e.chunk.js" + }, + { + "revision": "32285f3a9a6f11a757b4", + "url": "/static/js/67.1999bdf9.chunk.js" + }, + { + "revision": "afb438f38fb19c131981", + "url": "/static/js/68.786c3721.chunk.js" + }, + { + "revision": "5fcdf2c8a68fd09c8f57", + "url": "/static/js/69.f44d1db7.chunk.js" + }, + { + "revision": "3ec638700f82f581b88f", + "url": "/static/js/7.085c416b.chunk.js" + }, + { + "revision": "1e5942d12afc3e557cfe", + "url": "/static/js/70.88fde884.chunk.js" + }, + { + "revision": "ef94aa7f932de9bb378e", + "url": "/static/js/71.bee8f551.chunk.js" + }, + { + "revision": "0526cf88e89c9194a2c2", + "url": "/static/js/72.0d021244.chunk.js" + }, + { + "revision": "ca10893a2a388fe96487", + "url": "/static/js/73.a36f74bd.chunk.js" + }, + { + "revision": "365f9644aad0fd82645f", + "url": "/static/js/74.32f05a66.chunk.js" + }, + { + "revision": "18c6d92f1a464fd80659", + "url": "/static/js/75.c7d84b1c.chunk.js" + }, + { + "revision": "062b6499db674337c2f3", + "url": "/static/js/76.67e2e54b.chunk.js" + }, + { + "revision": "546388450aa3c2d640e9", + "url": "/static/js/77.1611432c.chunk.js" + }, + { + "revision": "bda3ff2dd278ef26c889", + "url": "/static/js/78.94589714.chunk.js" + }, + { + "revision": "07c26d4ec38e18456df2", + "url": "/static/js/79.299fc2ee.chunk.js" + }, + { + "revision": "b860f501ab68a3991f77", + "url": "/static/js/8.2b45df23.chunk.js" + }, + { + "revision": "7909a9e87a4a136340c8", + "url": "/static/js/80.372b82c0.chunk.js" + }, + { + "revision": "1c9755e0ecc62a137512", + "url": "/static/js/81.18ee524d.chunk.js" + }, + { + "revision": "ec3018c1dbc12c8ac25b", + "url": "/static/js/82.c03af59f.chunk.js" + }, + { + "revision": "8efaa389e1e453ef184a", + "url": "/static/js/83.b8da1d9c.chunk.js" + }, + { + "revision": "a11777253344daf495a6", + "url": "/static/js/84.6d4606a6.chunk.js" + }, + { + "revision": "2b75024772af85816e25", + "url": "/static/js/85.625d94d7.chunk.js" + }, + { + "revision": "26408c1d11ee458f0217", + "url": "/static/js/86.3e232c56.chunk.js" + }, + { + "revision": "31827471de7e062ed77f", + "url": "/static/js/87.93e2481b.chunk.js" + }, + { + "revision": "3c11d8398064f35f13cd", + "url": "/static/js/88.1b9c6858.chunk.js" + }, + { + "revision": "987da3ec45047c606723", + "url": "/static/js/89.18da508f.chunk.js" + }, + { + "revision": "37cabd35d2abcf1b4765", + "url": "/static/js/9.63bab258.chunk.js" + }, + { + "revision": "eff23447015faebd66e3", + "url": "/static/js/90.2ec9a3c3.chunk.js" + }, + { + "revision": "e471734a868893925e3f", + "url": "/static/js/91.b5d6c5f1.chunk.js" + }, + { + "revision": "0c5ab7cbb70fcf336c9e", + "url": "/static/js/92.ea1cbe1f.chunk.js" + }, + { + "revision": "c5a4d95152de19dc90a1", + "url": "/static/js/93.ee8d5d78.chunk.js" + }, + { + "revision": "aff1a13c7e34ddf62b50", + "url": "/static/js/94.bd2f3286.chunk.js" + }, + { + "revision": "a02068661c5033e4bbed", + "url": "/static/js/95.f9b4ad3e.chunk.js" + }, + { + "revision": "bd2713060968dc99bd63", + "url": "/static/js/96.4cbbfc04.chunk.js" + }, + { + "revision": "4221df7f13552d3efd33", + "url": "/static/js/97.c06f516b.chunk.js" + }, + { + "revision": "52c0127fa893def5d8dd", + "url": "/static/js/98.732e6d2c.chunk.js" + }, + { + "revision": "05d5e41e6fd0b3b4712f", + "url": "/static/js/99.f11f66e4.chunk.js" + }, + { + "revision": "a1f5e906599248889a75", + "url": "/static/js/main.48aad14b.chunk.js" + }, + { + "revision": "1cc95cc9241b966e999a", + "url": "/static/js/runtime-main.901d17b4.js" + }, + { + "revision": "e136c267bb82792719c0a8052b961dcf", + "url": "/static/media/gitconvex.e136c267.png" + } +]); \ No newline at end of file diff --git a/build/service-worker.js b/build/service-worker.js index 6ebad815..5b6c4ae8 100644 --- a/build/service-worker.js +++ b/build/service-worker.js @@ -14,7 +14,7 @@ importScripts("https://storage.googleapis.com/workbox-cdn/releases/4.3.1/workbox-sw.js"); importScripts( - "/precache-manifest.2e554d5fc8b1a6e8853c670d6bf4084c.js" + "/precache-manifest.3a69c1f9477f92306afede40ced4a27e.js" ); self.addEventListener('message', (event) => { diff --git a/build/static/js/main.48aad14b.chunk.js b/build/static/js/main.48aad14b.chunk.js new file mode 100644 index 00000000..04ffd8fb --- /dev/null +++ b/build/static/js/main.48aad14b.chunk.js @@ -0,0 +1,2 @@ +(this.webpackJsonpgitconvex=this.webpackJsonpgitconvex||[]).push([[0],{42:function(e,t,a){},45:function(e,t,a){e.exports=a(77)},50:function(e,t,a){},74:function(e,t,a){var n={"./prism-abap.js":[78,3],"./prism-abap.min.js":[79,4],"./prism-abnf.js":[80,5],"./prism-abnf.min.js":[81,6],"./prism-actionscript.js":[82,7],"./prism-actionscript.min.js":[83,8],"./prism-ada.js":[84,9],"./prism-ada.min.js":[85,10],"./prism-antlr4.js":[86,11],"./prism-antlr4.min.js":[87,12],"./prism-apacheconf.js":[88,13],"./prism-apacheconf.min.js":[89,14],"./prism-apl.js":[90,15],"./prism-apl.min.js":[91,16],"./prism-applescript.js":[92,17],"./prism-applescript.min.js":[93,18],"./prism-aql.js":[94,19],"./prism-aql.min.js":[95,20],"./prism-arduino.js":[96,21],"./prism-arduino.min.js":[97,22],"./prism-arff.js":[98,23],"./prism-arff.min.js":[99,24],"./prism-asciidoc.js":[100,25],"./prism-asciidoc.min.js":[101,26],"./prism-asm6502.js":[102,27],"./prism-asm6502.min.js":[103,28],"./prism-aspnet.js":[104,29],"./prism-aspnet.min.js":[105,30],"./prism-autohotkey.js":[106,31],"./prism-autohotkey.min.js":[107,32],"./prism-autoit.js":[108,33],"./prism-autoit.min.js":[109,34],"./prism-bash.js":[110,35],"./prism-bash.min.js":[111,36],"./prism-basic.js":[112,37],"./prism-basic.min.js":[113,38],"./prism-batch.js":[114,39],"./prism-batch.min.js":[115,40],"./prism-bbcode.js":[116,41],"./prism-bbcode.min.js":[117,42],"./prism-bison.js":[118,43],"./prism-bison.min.js":[119,44],"./prism-bnf.js":[120,45],"./prism-bnf.min.js":[121,46],"./prism-brainfuck.js":[122,47],"./prism-brainfuck.min.js":[123,48],"./prism-brightscript.js":[124,49],"./prism-brightscript.min.js":[125,50],"./prism-bro.js":[126,51],"./prism-bro.min.js":[127,52],"./prism-c.js":[128,53],"./prism-c.min.js":[129,54],"./prism-cil.js":[130,55],"./prism-cil.min.js":[131,56],"./prism-clike.js":[132,57],"./prism-clike.min.js":[133,58],"./prism-clojure.js":[134,59],"./prism-clojure.min.js":[135,60],"./prism-cmake.js":[136,61],"./prism-cmake.min.js":[137,62],"./prism-coffeescript.js":[138,63],"./prism-coffeescript.min.js":[139,64],"./prism-concurnas.js":[140,65],"./prism-concurnas.min.js":[141,66],"./prism-core.js":[142,67],"./prism-core.min.js":[143,68],"./prism-cpp.js":[144,69],"./prism-cpp.min.js":[145,70],"./prism-crystal.js":[146,71],"./prism-crystal.min.js":[147,72],"./prism-csharp.js":[148,73],"./prism-csharp.min.js":[149,74],"./prism-csp.js":[150,75],"./prism-csp.min.js":[151,76],"./prism-css-extras.js":[152,77],"./prism-css-extras.min.js":[153,78],"./prism-css.js":[154,79],"./prism-css.min.js":[155,80],"./prism-d.js":[156,81],"./prism-d.min.js":[157,82],"./prism-dart.js":[158,83],"./prism-dart.min.js":[159,84],"./prism-dax.js":[160,85],"./prism-dax.min.js":[161,86],"./prism-diff.js":[162,87],"./prism-diff.min.js":[163,88],"./prism-django.js":[164,89],"./prism-django.min.js":[165,90],"./prism-dns-zone-file.js":[166,91],"./prism-dns-zone-file.min.js":[167,92],"./prism-docker.js":[168,93],"./prism-docker.min.js":[169,94],"./prism-ebnf.js":[170,95],"./prism-ebnf.min.js":[171,96],"./prism-eiffel.js":[172,97],"./prism-eiffel.min.js":[173,98],"./prism-ejs.js":[174,99],"./prism-ejs.min.js":[175,100],"./prism-elixir.js":[176,101],"./prism-elixir.min.js":[177,102],"./prism-elm.js":[178,103],"./prism-elm.min.js":[179,104],"./prism-erb.js":[180,105],"./prism-erb.min.js":[181,106],"./prism-erlang.js":[182,107],"./prism-erlang.min.js":[183,108],"./prism-etlua.js":[184,109],"./prism-etlua.min.js":[185,110],"./prism-excel-formula.js":[186,111],"./prism-excel-formula.min.js":[187,112],"./prism-factor.js":[188,113],"./prism-factor.min.js":[189,114],"./prism-firestore-security-rules.js":[190,115],"./prism-firestore-security-rules.min.js":[191,116],"./prism-flow.js":[192,117],"./prism-flow.min.js":[193,118],"./prism-fortran.js":[194,119],"./prism-fortran.min.js":[195,120],"./prism-fsharp.js":[196,121],"./prism-fsharp.min.js":[197,122],"./prism-ftl.js":[198,123],"./prism-ftl.min.js":[199,124],"./prism-gcode.js":[200,125],"./prism-gcode.min.js":[201,126],"./prism-gdscript.js":[202,127],"./prism-gdscript.min.js":[203,128],"./prism-gedcom.js":[204,129],"./prism-gedcom.min.js":[205,130],"./prism-gherkin.js":[206,131],"./prism-gherkin.min.js":[207,132],"./prism-git.js":[208,133],"./prism-git.min.js":[209,134],"./prism-glsl.js":[210,135],"./prism-glsl.min.js":[211,136],"./prism-gml.js":[212,137],"./prism-gml.min.js":[213,138],"./prism-go.js":[214,139],"./prism-go.min.js":[215,140],"./prism-graphql.js":[216,141],"./prism-graphql.min.js":[217,142],"./prism-groovy.js":[218,143],"./prism-groovy.min.js":[219,144],"./prism-haml.js":[220,145],"./prism-haml.min.js":[221,146],"./prism-handlebars.js":[222,147],"./prism-handlebars.min.js":[223,148],"./prism-haskell.js":[224,149],"./prism-haskell.min.js":[225,150],"./prism-haxe.js":[226,151],"./prism-haxe.min.js":[227,152],"./prism-hcl.js":[228,153],"./prism-hcl.min.js":[229,154],"./prism-hpkp.js":[230,155],"./prism-hpkp.min.js":[231,156],"./prism-hsts.js":[232,157],"./prism-hsts.min.js":[233,158],"./prism-http.js":[234,159],"./prism-http.min.js":[235,160],"./prism-ichigojam.js":[236,161],"./prism-ichigojam.min.js":[237,162],"./prism-icon.js":[238,163],"./prism-icon.min.js":[239,164],"./prism-inform7.js":[240,165],"./prism-inform7.min.js":[241,166],"./prism-ini.js":[242,167],"./prism-ini.min.js":[243,168],"./prism-io.js":[244,169],"./prism-io.min.js":[245,170],"./prism-j.js":[246,171],"./prism-j.min.js":[247,172],"./prism-java.js":[248,173],"./prism-java.min.js":[249,174],"./prism-javadoc.js":[250,175],"./prism-javadoc.min.js":[251,176],"./prism-javadoclike.js":[252,177],"./prism-javadoclike.min.js":[253,178],"./prism-javascript.js":[254,179],"./prism-javascript.min.js":[255,180],"./prism-javastacktrace.js":[256,181],"./prism-javastacktrace.min.js":[257,182],"./prism-jolie.js":[258,183],"./prism-jolie.min.js":[259,184],"./prism-jq.js":[260,185],"./prism-jq.min.js":[261,186],"./prism-js-extras.js":[262,187],"./prism-js-extras.min.js":[263,188],"./prism-js-templates.js":[264,189],"./prism-js-templates.min.js":[265,190],"./prism-jsdoc.js":[266,191],"./prism-jsdoc.min.js":[267,192],"./prism-json.js":[268,193],"./prism-json.min.js":[269,194],"./prism-json5.js":[270,195],"./prism-json5.min.js":[271,196],"./prism-jsonp.js":[272,197],"./prism-jsonp.min.js":[273,198],"./prism-jsx.js":[274,199],"./prism-jsx.min.js":[275,200],"./prism-julia.js":[276,201],"./prism-julia.min.js":[277,202],"./prism-keyman.js":[278,203],"./prism-keyman.min.js":[279,204],"./prism-kotlin.js":[280,205],"./prism-kotlin.min.js":[281,206],"./prism-latex.js":[282,207],"./prism-latex.min.js":[283,208],"./prism-latte.js":[284,209],"./prism-latte.min.js":[285,210],"./prism-less.js":[286,211],"./prism-less.min.js":[287,212],"./prism-lilypond.js":[288,213],"./prism-lilypond.min.js":[289,214],"./prism-liquid.js":[290,215],"./prism-liquid.min.js":[291,216],"./prism-lisp.js":[292,217],"./prism-lisp.min.js":[293,218],"./prism-livescript.js":[294,219],"./prism-livescript.min.js":[295,220],"./prism-llvm.js":[296,221],"./prism-llvm.min.js":[297,222],"./prism-lolcode.js":[298,223],"./prism-lolcode.min.js":[299,224],"./prism-lua.js":[300,225],"./prism-lua.min.js":[301,226],"./prism-makefile.js":[302,227],"./prism-makefile.min.js":[303,228],"./prism-markdown.js":[304,229],"./prism-markdown.min.js":[305,230],"./prism-markup-templating.js":[306,231],"./prism-markup-templating.min.js":[307,232],"./prism-markup.js":[308,233],"./prism-markup.min.js":[309,234],"./prism-matlab.js":[310,235],"./prism-matlab.min.js":[311,236],"./prism-mel.js":[312,237],"./prism-mel.min.js":[313,238],"./prism-mizar.js":[314,239],"./prism-mizar.min.js":[315,240],"./prism-monkey.js":[316,241],"./prism-monkey.min.js":[317,242],"./prism-moonscript.js":[318,243],"./prism-moonscript.min.js":[319,244],"./prism-n1ql.js":[320,245],"./prism-n1ql.min.js":[321,246],"./prism-n4js.js":[322,247],"./prism-n4js.min.js":[323,248],"./prism-nand2tetris-hdl.js":[324,249],"./prism-nand2tetris-hdl.min.js":[325,250],"./prism-nasm.js":[326,251],"./prism-nasm.min.js":[327,252],"./prism-neon.js":[328,253],"./prism-neon.min.js":[329,254],"./prism-nginx.js":[330,255],"./prism-nginx.min.js":[331,256],"./prism-nim.js":[332,257],"./prism-nim.min.js":[333,258],"./prism-nix.js":[334,259],"./prism-nix.min.js":[335,260],"./prism-nsis.js":[336,261],"./prism-nsis.min.js":[337,262],"./prism-objectivec.js":[338,263],"./prism-objectivec.min.js":[339,264],"./prism-ocaml.js":[340,265],"./prism-ocaml.min.js":[341,266],"./prism-opencl.js":[342,267],"./prism-opencl.min.js":[343,268],"./prism-oz.js":[344,269],"./prism-oz.min.js":[345,270],"./prism-parigp.js":[346,271],"./prism-parigp.min.js":[347,272],"./prism-parser.js":[348,273],"./prism-parser.min.js":[349,274],"./prism-pascal.js":[350,275],"./prism-pascal.min.js":[351,276],"./prism-pascaligo.js":[352,277],"./prism-pascaligo.min.js":[353,278],"./prism-pcaxis.js":[354,279],"./prism-pcaxis.min.js":[355,280],"./prism-perl.js":[356,281],"./prism-perl.min.js":[357,282],"./prism-php-extras.js":[358,283],"./prism-php-extras.min.js":[359,284],"./prism-php.js":[360,285],"./prism-php.min.js":[361,286],"./prism-phpdoc.js":[362,287],"./prism-phpdoc.min.js":[363,288],"./prism-plsql.js":[364,289],"./prism-plsql.min.js":[365,290],"./prism-powerquery.js":[366,291],"./prism-powerquery.min.js":[367,292],"./prism-powershell.js":[368,293],"./prism-powershell.min.js":[369,294],"./prism-processing.js":[370,295],"./prism-processing.min.js":[371,296],"./prism-prolog.js":[372,297],"./prism-prolog.min.js":[373,298],"./prism-properties.js":[374,299],"./prism-properties.min.js":[375,300],"./prism-protobuf.js":[376,301],"./prism-protobuf.min.js":[377,302],"./prism-pug.js":[378,303],"./prism-pug.min.js":[379,304],"./prism-puppet.js":[380,305],"./prism-puppet.min.js":[381,306],"./prism-pure.js":[382,307],"./prism-pure.min.js":[383,308],"./prism-python.js":[384,309],"./prism-python.min.js":[385,310],"./prism-q.js":[386,311],"./prism-q.min.js":[387,312],"./prism-qml.js":[388,313],"./prism-qml.min.js":[389,314],"./prism-qore.js":[390,315],"./prism-qore.min.js":[391,316],"./prism-r.js":[392,317],"./prism-r.min.js":[393,318],"./prism-reason.js":[394,319],"./prism-reason.min.js":[395,320],"./prism-regex.js":[396,321],"./prism-regex.min.js":[397,322],"./prism-renpy.js":[398,323],"./prism-renpy.min.js":[399,324],"./prism-rest.js":[400,325],"./prism-rest.min.js":[401,326],"./prism-rip.js":[402,327],"./prism-rip.min.js":[403,328],"./prism-roboconf.js":[404,329],"./prism-roboconf.min.js":[405,330],"./prism-robotframework.js":[406,331],"./prism-robotframework.min.js":[407,332],"./prism-ruby.js":[408,333],"./prism-ruby.min.js":[409,334],"./prism-rust.js":[410,335],"./prism-rust.min.js":[411,336],"./prism-sas.js":[412,337],"./prism-sas.min.js":[413,338],"./prism-sass.js":[414,339],"./prism-sass.min.js":[415,340],"./prism-scala.js":[416,341],"./prism-scala.min.js":[417,342],"./prism-scheme.js":[418,343],"./prism-scheme.min.js":[419,344],"./prism-scss.js":[420,345],"./prism-scss.min.js":[421,346],"./prism-shell-session.js":[422,347],"./prism-shell-session.min.js":[423,348],"./prism-smalltalk.js":[424,349],"./prism-smalltalk.min.js":[425,350],"./prism-smarty.js":[426,351],"./prism-smarty.min.js":[427,352],"./prism-solidity.js":[428,353],"./prism-solidity.min.js":[429,354],"./prism-solution-file.js":[430,355],"./prism-solution-file.min.js":[431,356],"./prism-soy.js":[432,357],"./prism-soy.min.js":[433,358],"./prism-sparql.js":[434,359],"./prism-sparql.min.js":[435,360],"./prism-splunk-spl.js":[436,361],"./prism-splunk-spl.min.js":[437,362],"./prism-sqf.js":[438,363],"./prism-sqf.min.js":[439,364],"./prism-sql.js":[440,365],"./prism-sql.min.js":[441,366],"./prism-stylus.js":[442,367],"./prism-stylus.min.js":[443,368],"./prism-swift.js":[444,369],"./prism-swift.min.js":[445,370],"./prism-t4-cs.js":[446,371],"./prism-t4-cs.min.js":[447,372],"./prism-t4-templating.js":[448,373],"./prism-t4-templating.min.js":[449,374],"./prism-t4-vb.js":[450,375],"./prism-t4-vb.min.js":[451,376],"./prism-tap.js":[452,377],"./prism-tap.min.js":[453,378],"./prism-tcl.js":[454,379],"./prism-tcl.min.js":[455,380],"./prism-textile.js":[456,381],"./prism-textile.min.js":[457,382],"./prism-toml.js":[458,383],"./prism-toml.min.js":[459,384],"./prism-tsx.js":[460,385],"./prism-tsx.min.js":[461,386],"./prism-tt2.js":[462,387],"./prism-tt2.min.js":[463,388],"./prism-turtle.js":[464,389],"./prism-turtle.min.js":[465,390],"./prism-twig.js":[466,391],"./prism-twig.min.js":[467,392],"./prism-typescript.js":[468,393],"./prism-typescript.min.js":[469,394],"./prism-vala.js":[470,395],"./prism-vala.min.js":[471,396],"./prism-vbnet.js":[472,397],"./prism-vbnet.min.js":[473,398],"./prism-velocity.js":[474,399],"./prism-velocity.min.js":[475,400],"./prism-verilog.js":[476,401],"./prism-verilog.min.js":[477,402],"./prism-vhdl.js":[478,403],"./prism-vhdl.min.js":[479,404],"./prism-vim.js":[480,405],"./prism-vim.min.js":[481,406],"./prism-visual-basic.js":[482,407],"./prism-visual-basic.min.js":[483,408],"./prism-wasm.js":[484,409],"./prism-wasm.min.js":[485,410],"./prism-wiki.js":[486,411],"./prism-wiki.min.js":[487,412],"./prism-xeora.js":[488,413],"./prism-xeora.min.js":[489,414],"./prism-xojo.js":[490,415],"./prism-xojo.min.js":[491,416],"./prism-xquery.js":[492,417],"./prism-xquery.min.js":[493,418],"./prism-yaml.js":[494,419],"./prism-yaml.min.js":[495,420],"./prism-zig.js":[496,421],"./prism-zig.min.js":[497,422]};function r(e){if(!a.o(n,e))return Promise.resolve().then((function(){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}));var t=n[e],r=t[0];return a.e(t[1]).then((function(){return a.t(r,7)}))}r.keys=function(){return Object.keys(n)},r.id=74,e.exports=r},75:function(e,t,a){},76:function(e,t,a){},77:function(e,t,a){"use strict";a.r(t);var n=a(0),r=a.n(n),s=a(43),o=a.n(s),i=a(1),l=a(7),c=a(19),m=(a(50),a(3)),d=a.n(m),u=r.a.createContext({hcDone:!1,platform:"",git:"",node:"",globalRepoId:"",hcParams:{},presentRepo:[],modifiedGitFiles:[],gitUntrackedFiles:[],gitTrackedFiles:[]});console.log("production");var p=window.location.port,g="".concat("http","://").concat(window.location.hostname,":").concat(p,"/").concat("gitconvexapi"),f=a(510),b=a(511),x=a(512);function h(e){var t=[{link:"/dashboard/repository",icon:r.a.createElement(f.a,{style:{color:"grey",fontSize:"36px"}}),label:"Repositories"},{link:"/dashboard/settings",icon:r.a.createElement(b.a,{style:{color:"grey",fontSize:"36px"}}),label:"Settings"},{link:"/dashboard/help",icon:r.a.createElement(x.a,{style:{color:"grey",fontSize:"36px"}}),label:"Help"}];return r.a.createElement("div",{className:"dashboard-leftpane xl:block lg:block md:flex md:justify-between bg-white overflow-auto xl:w-1/4 lg:w-1/3 md:w-full top-0 left-0 right-0 shadow-md block p-3 bg-white-400"},r.a.createElement("div",{className:"flex justify-center items-center bg-blue-100 cursor-pointer",onClick:function(t){e.parentProps.history.push("/dashboard")}},r.a.createElement("div",{className:"block dashboard-leftpane__logo"}),r.a.createElement("div",{className:"font-mono xl:text-3xl lg:text-2xl md:text-3xl sm:text-2xl p-4"},r.a.createElement("span",{className:"font-bold mx-2 border-b-4 border-pink-400"},"Git"),"Convex")),r.a.createElement("div",{className:"xl:mt-32 lg:mt-24 cursor-pointer xl:block lg:block md:flex sm:block items-center align-middle"},t.map((function(e){return r.a.createElement(c.b,{to:"".concat(e.link),exact:!0,activeClassName:"bg-gray-300",className:"flex border-b border-black-100 p-3 hover:bg-gray-100 mx-2",key:e.label},r.a.createElement("div",{className:"flex align-middle items-center my-auto"},r.a.createElement("div",{className:"text-sm"},e.icon),r.a.createElement("div",{className:"ml-2 xl:text-2xl lg:text-2xl md:text-xl text-gray-700"},e.label)))}))))}function j(e){var t=Object(n.useContext)(u),a=t.state,s=t.dispatch,o=Object(n.useState)(""),l=Object(i.a)(o,2),c=l[0],m=l[1],p=Object(n.useState)(""),f=Object(i.a)(p,2),b=f[0],x=f[1],h=Object(n.useState)(!1),j=Object(i.a)(h,2),v=j[0],E=j[1],y=Object(n.useState)(!1),w=Object(i.a)(y,2),N=w[0],k=w[1],O=Object(n.useRef)(),C=Object(n.useRef)(),S=Object(n.useRef)();function T(){E(!1),k(!1)}return r.a.createElement("div",{className:"block text-center justify-center my-20 p-6 rounded-lg shadow-md border-2 border-gray-200 xl:w-1/2 lg:w-2/3 md:w-3/4 sm:w-11/12 w-11/12 mx-auto"},r.a.createElement("div",{className:"repo-form block"},N?r.a.createElement("div",{className:"my-6 mx-auto block p-3 w-1/2 rounded-lg shadow-sm border border-green-500 bg-green-200 text-xl text-green-800 text-center"},"New repo added"):v?r.a.createElement("div",{className:"my-6 mx-auto block p-3 w-1/2 rounded-lg shadow-sm border border-red-500 bg-red-200 text-xl text-red-800 text-center"},"Process failed! Please try again"):null,r.a.createElement("div",{className:"my-3 text-center block text-3xl font-sans text-gray-800"},"Enter Repo Details"),r.a.createElement("div",null,r.a.createElement("input",{id:"repoNameText",type:"text",placeholder:"Enter a Repository Name",className:"w-11/12 p-3 my-3 rounded-md outline-none border-blue-100 border-2 shadow-md",onChange:function(e){m(e.target.value)},ref:O,onClick:function(){T()}})),r.a.createElement("div",null,r.a.createElement("input",{id:"repoPathText",type:"text",placeholder:"Enter repository path",className:"w-11/12 p-3 my-3 rounded-md outline-none border-blue-100 border-2 shadow-md",onChange:function(e){x(e.target.value)},ref:C,onClick:function(){T()}})),r.a.createElement("div",{className:"cursor-pointer my-4"},r.a.createElement("input",{id:"initCheck",type:"checkbox",value:"initRepo",ref:S}),r.a.createElement("label",{htmlFor:"initCheck",className:"mx-2 text-gray-700 font-sans font-semibold"},"Check this if the folder is not a git repo")),r.a.createElement("div",{className:"flex w-11/12 justify-start mx-auto my-5 cursor-pointer"},r.a.createElement("div",{className:"my-2 w-1/2 block mx-3 p-3 bg-red-400 rounded-md shadow-md hover:bg-red-500",id:"addRepoClose",onClick:function(){e.formEnable(!1)}},"Close"),r.a.createElement("div",{className:"block w-1/2 mx-3 p-3 my-2 bg-green-400 rounded-md shadow-md hover:bg-green-500",id:"addRepoSubmit",onClick:function(){!function(e,t){if(e&&t){var n=!1;S.current.checked&&(n=!0);var r=JSON.stringify(JSON.stringify({repoName:e,repoPath:t,initCheck:n}));d()({url:g,method:"POST",data:{query:'\n query GitConvexApi{\n gitConvexApi(route: "'.concat("ADD_REPO",'", payload: ').concat(r,"){\n addRepo{\n message\n }\n }\n }\n ")}}).then((function(e){if(e.data&&e.data.data&&!e.data.error){var t=e.data.data.gitConvexApi.addRepo.message;t&&!t.match(/FAIL/g)?(k(!0),E(!1),O.current.value="",C.current.value="",S.current.value="",s({action:"DELETE_PRESENT_REPO",payload:[]}),console.log(a.presentRepo)):(E(!0),k(!1))}else E(!0),k(!1)})).catch((function(e){console.log(e),E(!0),k(!1)}))}else E(!0)}(c,b)}},"Submit"))))}var v=a(8),E=a(11),y=a(14),w=a(6);function N(e){v.b.add(E.a,y.a);var t=e.repoData,a=Object(n.useState)(""),s=Object(i.a)(a,2),o=s[0],l=s[1];Object(n.useEffect)((function(){var t=e.repoData.id,a=JSON.stringify(JSON.stringify({repoId:t})),n=d.a.CancelToken.source();return d()({url:g,method:"POST",headers:{"Content-type":"application/json"},cancelToken:n.token,data:{query:'\n \n query GitConvexApi\n {\n gitConvexApi(route: "'.concat("REPO_DETAILS",'", payload: ').concat(a,"){\n gitRepoStatus {\n gitTotalCommits\n gitTotalTrackedFiles \n gitCurrentBranch \n }\n }\n }\n ")}}).then((function(e){l(e.data.data.gitConvexApi.gitRepoStatus)})).catch((function(e){})),function(){n.cancel()}}),[e]);var m=t.repoName,u="";if(m)if(m.split(" ").length>1){var p=m.split(" ");u=(u=p[0].substring(0,1)+p[1].substring(0,1)).toUpperCase()}else u=m.substring(0,1).toUpperCase();return r.a.createElement(c.b,{to:"/dashboard/repository/".concat(t.id),className:"xl:w-1/3 lg:w-2/4 md:w-1/2 block p-6 mx-6 rounded-lg border border-gray-300 shadow-md my-6 text-center bg-indigo-500 cursor-pointer hover:shadow-xl",key:t.repoName},r.a.createElement("div",{className:"text-center bg-indigo-300 text-white text-5xl my-2 px-10 py-5 rounded shadow"},u),r.a.createElement("div",{className:"my-4 font-sans text-2xl text-white border-dashed border-b-2 pb-2 border-indigo-300"},t.repoName),r.a.createElement("div",{className:"w-full flex justify-center mx-auto my-2 text-center rounded-md shadow-sm align-middle"},r.a.createElement("div",{className:"w-1/2 flex p-2 bg-white shadow-lg border-indigo-300 rounded-l-md my-2 items-center"},r.a.createElement(w.a,{className:"my-auto",icon:["fas","grip-lines"]}),r.a.createElement("div",{className:"mx-2 text-sm text-center font-sans text-center"},o.gitTotalCommits," Commits")),r.a.createElement("div",{className:"w-1/2 flex p-2 bg-white shadow-lg border-indigo-300 my-2 items-center"},r.a.createElement(w.a,{className:"my-auto",icon:["fas","file-alt"]}),r.a.createElement("div",{className:"mx-2 text-sm text-center font-sans text-center"},o.gitTotalTrackedFiles," Tracked Files")),r.a.createElement("div",{className:"w-1/2 flex p-2 bg-white shadow-lg border-indigo-300 rounded-r-md my-2 items-center"},r.a.createElement(w.a,{className:"my-auto",icon:["fas","code-branch"]}),r.a.createElement("div",{className:"mx-2 text-sm text-center font-sans text-center font-semibold"},o.gitCurrentBranch))))}function k(e){var t=Object(n.useState)([]),a=Object(i.a)(t,2),s=a[0],o=a[1],l=Object(n.useState)(!1),c=Object(i.a)(l,2),m=c[0],p=c[1],f=Object(n.useContext)(u).dispatch;Object(n.useEffect)((function(){var e=g,t=d.a.CancelToken.source();return d()({url:e,method:"POST",cancelToken:t.token,data:{query:'\n query GitConvexResults{\n gitConvexApi(route: "'.concat("FETCH_REPO",'"){\n fetchRepo{\n repoId\n repoName\n repoPath\n }\n }\n }\n ')}}).then((function(e){var t=e.data.data.gitConvexApi.fetchRepo;if(t){var a=t.repoId,n=t.repoName,r=[];a.forEach((function(e,t){r.push({id:e,repoName:n[t]})})),o(r),f({type:"DELETE_PRESENT_REPO",payload:[]}),f({action:"PRESENT_REPO",payload:[].concat(r)})}})),function(){t.cancel()}}),[m,f]);return r.a.createElement("div",{className:"flex flex-wrap mx-auto justify-center text-center align-middle"},m?r.a.createElement(j,{formEnable:function(e){p(e)}}):function(){var e=s;return r.a.createElement(r.a.Fragment,null,r.a.createElement("div",{className:"w-full mx-auto justify-around flex flex-wrap pb-40"},r.a.createElement(r.a.Fragment,null,e.length>0?r.a.createElement(r.a.Fragment,null,e.map((function(e){return r.a.createElement(N,{key:e.id,repoData:e})}))):r.a.createElement("div",{className:"mx-auto w-3/4 rounded-md text-center shadow bg-gray-200 text-gray-500 font-sans p-10 my-10 text-xl"},"No repos present. Press + to add a new repo"))),r.a.createElement(r.a.Fragment,null,r.a.createElement("div",{id:"addRepoButton",className:"fixed bottom-0 right-0 mb-10 mr-16 cursor-pointer border-2 border-indigo-100 shadow-lg bg-indigo-500 hover:bg-indigo-400 rounded-full h-16 w-16 pb-1 flex items-center justify-center text-3xl text-white font-sans font-black",onClick:function(){p(!0)},onMouseEnter:function(e){e.stopPropagation(),e.preventDefault();e.target.innerHTML+='
Click to add a new repo
'},onMouseLeave:function(e){e.target.innerHTML="+"}},"+")))}())}function O(e){var t=e.params,a=t.platform,n=t.gitVersion,s=t.nodeVersion,o=[{label:"Platform",value:a},{label:"Git",value:n},{label:"Node",value:s}];return r.a.createElement(r.a.Fragment,null,r.a.createElement("div",{className:"dashboard-rightpane w-full mx-auto justify-center xl:overflow-auto lg:overflow-auto md:overflow-none sm:overflow-none"},r.a.createElement("div",{className:"w-11/12 p-3 my-6 mx-auto rounded-lg shadow-md xl:flex lg:flex md:block sm:block rightpane-details block justify-between mx-auto bg-blue-100 border-2 border-blue-100"},o.map((function(e){return r.a.createElement("div",{key:e.label,className:"my-2 flex mx-auto justify-around items-center align-middle"},r.a.createElement("div",{className:"w-1/2 rightpane-details__header border-b-2 border-dashed mx-2 font-sans xl:font-bold lg:font-semibold md:font-medium xl:text-2xl lg:text-xl md:text-md"},e.label),""!==e.value?r.a.createElement("div",{className:"w-2/3 mx-2 bg-green-200 border-green-800 text-center text-green-900 p-2 rounded-lg hc-param",id:"hc-param__".concat(e.label)},e.value):r.a.createElement("div",{className:"rounded-md bg-red-200 text-red-900 font-bold p-2"},"Invalid"))}))),function(){if(a&&n&&s)return r.a.createElement(k,{parentProps:e})}()))}function C(){return v.b.add(y.a,E.a),r.a.createElement("div",{className:"w-full h-full pb-10 xl:overflow-auto lg:overflow-auto md:overflow-none sm:overflow-none"},r.a.createElement("div",{className:"flex text-5xl text-gray-700 mx-6 my-auto align-middle items-center"},r.a.createElement(w.a,{icon:["fas","question-circle"]}),r.a.createElement("div",{className:"my-5 mx-5 font-sans"},"Help and Support")),r.a.createElement("div",{className:"my-4 mx-10"},r.a.createElement("div",{className:"text-2xl font-sans text-gray-900"},"Facing an issue or need any help?"),r.a.createElement("span",{className:"text-xl font-medium my-2"},"Before raising an issue, make sure you have gone through the"),r.a.createElement("span",{className:"font-mono text-xl mx-2 text-indigo-500 hover:text-indigo-600 hover:font-semibold cursor-pointer"},r.a.createElement("a",{href:"https://github.com/neel1996/gitconvex-package/blob/master/documentation",target:"_blank",rel:"noopener noreferrer"},"Documentation"))),r.a.createElement("div",{className:"my-10 border rounded shadow-sm p-4 mx-10"},r.a.createElement("div",{className:"text-2xl font-sans font-semibold text-indigo-800"},"Have any queries or want to share your feedback?"),r.a.createElement("div",{className:"flex mx-auto my-2 items-center align-middle"},r.a.createElement("div",{className:"text-gray-800 text-2xl font-sans"},"Lets have a discussion on"),r.a.createElement("a",{href:"https://discord.gg/PSd2Cq9",target:"_blank",rel:"noopener noreferrer"},r.a.createElement("div",{className:"flex mx-2 justify-around align-middle items-center bg-indigo-400 text-white p-2 rounded shadow-sm text-2xl cursor-pointer hover:bg-indigo-500"},r.a.createElement(w.a,{icon:["fab","discord"]}),r.a.createElement("div",{className:"mx-3 font-sans font-black"},"discord"))))),r.a.createElement("div",{className:"my-10 border rounded shadow-sm p-4 mx-10"},r.a.createElement("div",{className:"text-2xl font-sans font-semibold text-gray-600"},"You can also use the github issue reporting feature to report any issue you find in the platform"),r.a.createElement("a",{href:"https://github.com/neel1996/gitconvex-package/issues",target:"_blank",rel:"noopener noreferrer"},r.a.createElement("div",{className:"flex w-1/3 xl:w-1/3 lg:w-1/3 md:w-1/2 sm:w-3/4 w-3/4 cursor-pointer hover:shadow-lg align-middle my-3 items-center p-3 bg-white shadow-md rounded border border-gray-500"},r.a.createElement(w.a,{icon:["fab","github"]}),r.a.createElement("div",{className:"mx-2"},"Report an issue")))),r.a.createElement("div",{className:"my-10 border rounded shadow-sm p-4 mx-10"},r.a.createElement("div",{className:"text-2xl font-sans font-semibold text-gray-600 my-5 break-normal"},"gitconvex is open source and please visit the repo if you are interested in contributing to the platform"),r.a.createElement("div",{className:"xl:flex lg:block md:block justify-center items-center align-middle"},r.a.createElement("a",{href:"https://github.com/neel1996/gitconvex",target:"_blank",rel:"noopener noreferrer",className:"mx-auto h-full flex w-3/4 xl:w-1/3 lg:w-1/3 md:w-1/2 sm:w-3/4 cursor-pointer hover:shadow-lg align-middle my-4 items-center bg-white shadow-md rounded border border-gray-500"},r.a.createElement("div",{className:"bg-blue-500 text-white p-1 text-5xl w-1/4 align-middle my-auto items-center text-center rounded-l"},r.a.createElement(w.a,{icon:["fab","react"]})),r.a.createElement("div",{className:"text-md mx-2 text-gray-700"},"gitconvex UI")),r.a.createElement("a",{href:"https://github.com/neel1996/gitconvex-server",target:"_blank",rel:"noopener noreferrer",className:"mx-auto h-full flex w-3/4 xl:w-1/3 lg:w-1/3 md:w-1/2 sm:w-3/4 cursor-pointer hover:shadow-lg align-middle my-4 items-center bg-white shadow-md rounded border border-gray-500"},r.a.createElement("div",{className:"bg-green-500 text-white p-1 text-5xl w-1/4 align-middle my-auto items-center text-center rounded-l"},r.a.createElement(w.a,{icon:["fab","node-js"]})),r.a.createElement("div",{className:"text-md mx-2 text-gray-700"},"gitconvex server")))))}var S=a(22),T=a.n(S),R=a(5),I=a(27),A=a(20),_=(a(42),a(513));function F(){var e=Object(n.useContext)(u),t=e.state,s=e.dispatch,o=t.globalRepoId,l=Object(n.useState)([]),c=Object(i.a)(l,2),m=c[0],p=c[1],f=Object(n.useState)("Click on a file item to see the difference"),b=Object(i.a)(f,2),x=b[0],h=b[1],j=Object(n.useState)([]),v=Object(i.a)(j,2),E=v[0],y=v[1],w=Object(n.useState)(""),N=Object(i.a)(w,2),k=N[0],O=N[1],C=Object(n.useState)(!1),S=Object(i.a)(C,2),F=S[0],P=S[1],D=Object(n.useState)(!1),L=Object(i.a)(D,2),q=L[0],G=L[1],M=Object(n.useState)(""),B=Object(i.a)(M,2),H=B[0],U=B[1],J=Object(n.useState)(""),V=Object(i.a)(J,2),z=V[0],K=V[1],Y={js:"javascript",java:"java",py:"python",c:"c",cpp:"cpp",go:"go",rust:"rust",ts:"typescript",dart:"dart",php:"php",html:"markup",json:"json",xml:"markup",yaml:"yaml",yml:"yaml",rb:"ruby",jsx:"jsx",kt:"kotlin",ktm:"kotlin",kts:"kotlin",cs:"csharp",vb:"visual-basic",css:"css"};Object(n.useEffect)((function(){var e=t.globalRepoId;G(!1),O(""),y("Click on a file item to see the difference"),h("Click on a file item to see the difference");var a=g;if(e){var n=JSON.stringify(JSON.stringify({repoId:e}));d()({url:a,method:"POST",headers:{"Content-type":"application/json"},data:{query:'\n query GitConvexApi{\n gitConvexApi(route: "'.concat("REPO_TRACKED_DIFF",'", payload:').concat(n,")\n {\n gitChanges{\n gitChangedFiles\n }\n }\n }\n ")}}).then((function(e){if(e&&e.data.data&&!e.data.error){var t=e.data.data.gitConvexApi.gitChanges.gitChangedFiles;p(Object(R.a)(t)),P(!0),s({type:"GIT_TRACKED_FILES",payload:t})}})).catch((function(e){return e}))}}),[t.globalRepoId,s]);var X=function(e){var t=e.split(".")[e.split(".").length-1];if(t)return G(!0),t in Y?Y[t]:"markup"};return r.a.createElement(r.a.Fragment,null,m&&m.length>0?r.a.createElement(r.a.Fragment,null,r.a.createElement("div",{className:"flex mx-auto w-full justify-center"},r.a.createElement("div",{className:"break-words p-2 py-2 bg-indigo-200 text-indigo-800 w-1/4 overflow-hidden"},r.a.createElement(r.a.Fragment,null,m.length>=1&&m.map((function(e){if(e&&"M"===e.split(",")[0]){var t=e.split(",")[1];return r.a.createElement("div",{className:"p-2 text-sm break-words hover:bg-indigo-100 cursor-pointer ".concat(t===k?" bg-indigo-100 border-b border-indigo-400":""),onClick:function(){O(t),function(e,t){var n=g;G(!1),U("");var r=JSON.stringify(JSON.stringify({repoId:e,fileName:t}));d()({url:n,method:"POST",headers:{"Content-type":"application/json"},data:{query:'\n query GitConvexApi{\n gitConvexApi(route: "'.concat("REPO_FILE_DIFF",'", payload:').concat(r,")\n {\n gitFileLineChanges{\n diffStat\n fileDiff\n }\n }\n }\n ")}}).then(function(){var e=Object(I.a)(T.a.mark((function e(n){var r,s,o,i;return T.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!n.data.data||n.data.error){e.next=14;break}if(r=n.data.data.gitConvexApi.gitFileLineChanges,s=r.diffStat,o=r.fileDiff,"NO_STAT"!==s[0]&&"NO_DIFF"!==o[0]){e.next=6;break}U("No difference could be found. Please check if the file is present in the repo!"),e.next=12;break;case 6:return h(s[1]),y(o),i=X(t),e.next=11,a(74)("./prism-"+i+".js").then((function(){})).catch((function(e){console.log(e)}));case 11:K(i);case 12:e.next=15;break;case 14:U("Error while fetching the file difference. Please try reloading the view!");case 15:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()).catch((function(e){console.log(e),U("Error while fetching the file difference. Please try reloading the view!")}))}(o,t)},key:t},t)}return null})))),k?"":r.a.createElement("div",{className:"p-3 shadow-md rounded-sm text-center mx-auto my-auto mt-3 block text-md font-sans"},"Click on a file to see difference information"),H?r.a.createElement("div",{className:"text-center mx-auto my-4 p-4 rounded bg-yellow-300 border-yellow-800 font-sans font-medium my-auto"},H):null,x&&"Click on a file item to see the difference"!==x&&!H?r.a.createElement("div",{className:"p-2 break-all w-3/4 mx-auto"},x?function(){if(x&&x.includes(",")){var e=x.split(",");return r.a.createElement("div",{className:"text-xl text-center w-3/4 mx-auto block p-2 border border-gray-500 rounded-md shadow-md border-dotted"},r.a.createElement("span",{className:"font-sans font-bold px-1"},e[0]),e.slice(1,e.length).map((function(e){return e.match(/insert/i)?r.a.createElement("span",{key:"".concat(e,"-").concat((new Date).getTime())},r.a.createElement("span",{className:"px-2"},e.toString().split(" ")[1]),r.a.createElement("span",{className:"text-green-700 font-sans font-semibold"},"insertions (+)")):r.a.createElement("span",{key:"".concat(e,"-").concat((new Date).getTime())},r.a.createElement("span",{className:"px-2"},e.toString().split(" ")[1]),r.a.createElement("span",{className:"text-red-700 font-sans font-semibold"},"deletions (-)"))})))}}():"",E&&"Click on a file item to see the difference"!==E?r.a.createElement("div",{className:"p-2 py-6 mt-6 text-left break-words overflow-scroll"},function(){var e=[];return E&&E.join("").split(/@@.*@@/gi)&&q&&z&&(e=E.join("|__HASH_SEPARATOR__|").split(/@@.*@@/gi)[1].split("|__HASH_SEPARATOR__|").map((function(e){return"+"===e[0]?r.a.createElement("div",{className:"bg-green-200 w-screen",key:"".concat(e,"-").concat(Object(_.a)())},r.a.createElement("pre",null,r.a.createElement("code",{dangerouslySetInnerHTML:{__html:A.highlight(e.replace("+",""),A.languages[z],z)}}))):"-"===e[0]?r.a.createElement("div",{className:"bg-red-200 w-screen",key:"".concat(e,"-").concat(Object(_.a)())},r.a.createElement("pre",null,r.a.createElement("code",{dangerouslySetInnerHTML:{__html:A.highlight(e.replace("-",""),A.languages[z],z)}}))):r.a.createElement("div",{className:"bg-white-200 w-screen",key:"".concat(e,"-").concat(Object(_.a)())},r.a.createElement("pre",null,r.a.createElement("code",{dangerouslySetInnerHTML:{__html:A.highlight(e,A.languages[z],z)}})))}))),r.a.createElement("div",{className:"break-all my-6 mx-auto"},r.a.createElement("code",null,e))}()):""):"")):r.a.createElement(r.a.Fragment,null,F?r.a.createElement("div",{className:"my-3 mx-auto text-center p-3 rounded-md shadow-md bg-pink-200 text-gray-700"},r.a.createElement("span",null,"No Changed files are being tracked currently!")):null))}function P(e){var t=e.repoId,a=Object(n.useState)(!0),s=Object(i.a)(a,2),o=s[0],l=s[1],c=Object(n.useState)([]),m=Object(i.a)(c,2),u=m[0],p=m[1],f=Object(n.useState)(!1),b=Object(i.a)(f,2),x=b[0],h=b[1],j=Object(n.useState)(!1),v=Object(i.a)(j,2),E=v[0],y=v[1],w=Object(n.useState)(!1),N=Object(i.a)(w,2),k=N[0],O=N[1],C=Object(n.useRef)();return Object(n.useEffect)((function(){var t=JSON.stringify(JSON.stringify({repoId:e.repoId})),a=d.a.CancelToken.source();return d()({url:g,method:"POST",headers:{"Content-type":"application/json"},cancelToken:a.token,data:{query:'\n query GitConvexApi{\n gitConvexApi(route: "'.concat("GIT_STAGED_FILES",'", payload:').concat(t,")\n {\n gitStagedFiles{\n stagedFiles\n }\n }\n }\n ")}}).then((function(e){var t=e.data.data.gitConvexApi.gitStagedFiles.stagedFiles;l(!1),t&&t.length>0&&p(Object(R.a)(t))})).catch((function(e){l(!1)})),function(){a.cancel()}}),[e]),r.a.createElement("div",{className:"w-3/4 mx-auto my-auto bg-gray-200 p-6 rounded-md"},u&&u.length>0?function(){if(u&&u.length>0){var e=u.length;return r.a.createElement(r.a.Fragment,null,x?r.a.createElement("div",{className:"mx-auto my-2 p-3 bg-green-300 text-green-800 rounded- shadow"},"All changes are committed!"):r.a.createElement("div",{className:"p-3 mx-auto w-5/6 block justify-center"},r.a.createElement("div",{className:"text-2xl my-2 font-sans font-semibold"},e," Changes to commit..."),r.a.createElement("div",{className:"overflow-auto",style:{height:"300px"}},u.map((function(e){return r.a.createElement("div",{className:"m-1 mx-auto w-11/12 break-all border-b text-left font-sans text-gray-700",key:e},e)}))),r.a.createElement("div",{className:"text-xl my-4"},"Commit Message"),r.a.createElement("textarea",{className:"p-2 rounded-md shadow-md text-gray-900 font-sans w-full outline-none",placeholder:"Enter commit message",cols:"20",rows:"5",ref:C}),E?r.a.createElement("div",{className:"my-2 mx-auto text-center p-2 rounded shadow bg-red-200 border-red-400 text-red-800"},"Commit Failed!"):null,k?r.a.createElement("div",{className:"my-4 p-2 text-center mx-auto text-xl bg-gray-400 hover:bg-gray-700 rounded shadow w-full cursor-pointer text-white"},"Committing Changes..."):r.a.createElement("div",{className:"my-4 p-2 text-center mx-auto text-xl bg-green-400 hover:bg-green-700 rounded shadow w-full cursor-pointer text-white",onClick:function(e){var a=C.current.value;a?function(e){O(!0),e.split("\n")&&e.split("\n").length>0&&(e=e.toString().split("\n").join("||")),d()({url:g,method:"POST",data:{query:'\n mutation GitConvexMutation{\n commitChanges(repoId: "'.concat(t,'", commitMessage: "').concat(e,'")\n }\n ')}}).then((function(e){O(!1),e.data.data&&!e.data.error&&"COMMIT_DONE"===e.data.data.commitChanges?h(!0):y(!0)})).catch((function(e){O(!1),y(!0)}))}(a):alert("Commit message can't be empty")}},"Commit Changes")))}}():r.a.createElement("div",{className:"bg-orange-200 rounded-md shadow-md p-4 text-2xl font-sans text-center font-bold text-orange-700"},o?r.a.createElement("span",null,"Loading Commits..."):r.a.createElement("span",null,"No Staged files to commit")))}function D(e){var t=e.repoId,a=Object(n.useState)(),s=Object(i.a)(a,2),o=s[0],l=s[1],c=Object(n.useState)(!1),m=Object(i.a)(c,2),u=m[0],p=m[1],f=Object(n.useState)(!1),b=Object(i.a)(f,2),x=b[0],h=b[1],j=Object(n.useState)([]),v=Object(i.a)(j,2),E=v[0],y=v[1],w=Object(n.useState)(!1),N=Object(i.a)(w,2),k=N[0],O=N[1],C=Object(n.useState)(!1),S=Object(i.a)(C,2),T=S[0],I=S[1],A=Object(n.useState)(!1),_=Object(i.a)(A,2),F=_[0],P=_[1],D=Object(n.useState)(!1),L=Object(i.a)(D,2),q=L[0],G=L[1],M=Object(n.useRef)(),B=Object(n.useRef)();function H(e){var t=e.split("||");return r.a.createElement("div",{className:"block justify-evenly border shadow rounded p-2"},["Commit Hash","Commit Author","Commit Timestamp","Commit Message"].map((function(e,a){return n=e,s=t[a],r.a.createElement("div",{className:"flex justify-evenly",key:n},r.a.createElement("div",{className:"font-sans text-gray-900 font-bold mx-2 w-1/4 break-words"},n),r.a.createElement("div",{className:"font-sans text-gray-800 mx-2 w-1/2 break-words"},s));var n,s})))}return Object(n.useEffect)((function(){var t=JSON.stringify(JSON.stringify({repoId:e.repoId}));d()({url:g,method:"POST",headers:{"Content-type":"application/json"},data:{query:'\n query GitConvexApi\n {\n gitConvexApi(route: "'.concat("REPO_DETAILS",'", payload: ').concat(t,"){\n gitRepoStatus {\n gitRemoteData\n gitCurrentBranch\n gitRemoteHost\n gitBranchList \n }\n }\n }\n ")}}).then((function(e){var t=e.data.data.gitConvexApi.gitRepoStatus;l(t)})).catch((function(e){console.log(e)}))}),[e]),r.a.createElement(r.a.Fragment,null,T?r.a.createElement("div",{className:"w-1/2 mx-auto my-auto p-6 rounded shadow bg-white block"},r.a.createElement("div",{className:"mx-auto my-2 p-3 bg-green-300 text-green-800 rounded shadow"},"All commits are pushed to remote")):r.a.createElement(r.a.Fragment,null,r.a.createElement("div",{className:"w-3/4 mx-auto my-auto p-6 rounded shadow bg-white block"},r.a.createElement("div",{className:"m-3 text-2xl font-sans text-ghray-800"},"Available remote repos"),r.a.createElement("div",null,r.a.createElement("select",{className:"border p-3 my-4 text-xl rounded shadow",defaultValue:"checked",onChange:function(){p(!0)},ref:M},r.a.createElement("option",{disabled:!0,hidden:!0,value:"checked"},"Select the remote repo"),o?function(){if(o){var e=o.gitRemoteData;return e.includes("||")?e.split("||").map((function(e){return r.a.createElement("option",{value:e,key:e},e)})):r.a.createElement("option",null,e)}}():null)),u?r.a.createElement("div",null,r.a.createElement("select",{className:"border p-3 my-4 text-xl rounded shadow",defaultValue:"checked",onChange:function(){h(!0),function(){var t=JSON.stringify(JSON.stringify({repoId:e.repoId}));d()({url:g,method:"POST",data:{query:'\n query GitConvexApi\n {\n gitConvexApi(route: "'.concat("GIT_UNPUSHED_COMMITS",'", payload: ').concat(t,"){\n gitUnpushedCommits{\n commits\n }\n }\n }\n ")}}).then((function(e){if(e.data.data&&!e.data.error){var t=e.data.data.gitConvexApi.gitUnpushedCommits.commits;0===t.length&&O(!0),y(Object(R.a)(t))}})).catch((function(e){console.log(e)}))}()},ref:B},r.a.createElement("option",{disabled:!0,hidden:!0,value:"checked"},"Select upstream branch"),o?function(){if(o)return o.gitBranchList.map((function(e){return"NO_BRANCH"!==e?r.a.createElement("option",{value:e,key:e},e):null}))}():null)):null,E&&E.length>0?r.a.createElement("div",{className:"my-2 p-3 rounded bg-gray-300 shadow-md border-gray-100"},r.a.createElement("div",{className:"my-2 font-sans text-2xl font-semibold"},"Commits to be pushed"),r.a.createElement("div",{className:"overflow-auto",style:{height:"200px"}},E.map((function(e,t){return r.a.createElement("div",{key:"unpushed-commit-".concat(t),className:"my-2 border-b-2 block justify-evenly mx-auto"},H(e))})))):r.a.createElement("div",null),F?r.a.createElement(r.a.Fragment,null,r.a.createElement("div",{className:"my-2 mx-auto text-center p-2 rounded shadow bg-red-200 border-red-400 text-red-800"},"Push Failed!")):null,u&&x&&E.length>0&&!q?r.a.createElement("div",{className:"my-4 text-center bg-indigo-400 rounded shadow text-white text-xl font-sans p-2 mx-auto hover:bg-indigo-600 cursor-pointer",onClick:function(){var e,a,n=M.current.value,r=B.current.value;n&&r&&(e=n,a=r,G(!0),d()({url:g,method:"POST",data:{query:'\n mutation GitConvexMutation{\n pushToRemote(repoId: "'.concat(t,'", remoteHost: "').concat(e,'", branch: "').concat(a,'")\n }\n ')}}).then((function(e){e.data.data&&!e.data.error&&"PUSH_FAILED"!==e.data.data.pushToRemote?(I(!0),G(!1)):(P(!0),G(!1))})).catch((function(e){P(!0),G(!1)})))}},"Push changes"):r.a.createElement(r.a.Fragment,null,k?r.a.createElement("div",{className:"my-4 text-center bg-gray-500 rounded shadow text-white text-xl font-sans p-2 mx-auto hover:bg-gray-600 cursor-pointer"},"No Commits to Push"):null),r.a.createElement(r.a.Fragment,null,q?r.a.createElement("div",{className:"my-4 text-center border border-orange-800 text-orange-900 bg-orange-300 rounded shadow text-white text-xl font-sans p-2 mx-auto cursor-pointer"},"Pushing to remote..."):null))))}function L(e){var t=e.stageComponents,a=e.repoId,s=Object(n.useState)(!1),o=Object(i.a)(s,2),l=o[0],c=o[1],m=Object(n.useState)(!1),u=Object(i.a)(m,2),p=u[0],f=u[1],b=Object(n.useState)(!1),x=Object(i.a)(b,2),h=x[0],j=x[1];return Object(n.useEffect)((function(){}),[e]),r.a.createElement(r.a.Fragment,null,r.a.createElement("div",{className:"w-5/6 mx-auto my-auto bg-gray-200 p-6 rounded-md"},r.a.createElement(r.a.Fragment,null,t.length>0&&!l?r.a.createElement(r.a.Fragment,null,r.a.createElement("div",{className:"p-5 font-sans text-2xl font-sans font-bold"},"All these changes will be staged:"),t&&t.map((function(e){return r.a.createElement("div",{className:"p-1 font-sans text-lg mx-4 border-b w-11/12 break-words",key:e},e)})),h?r.a.createElement("div",{className:"my-2 mx-auto text-center p-2 rounded shadow bg-red-200 border-red-400 text-red-800"},"Staging Failed!"):null,p?r.a.createElement("div",{className:"mx-auto my-4 text-center bg-gray-600 text-xl p-3 rounded-md shadow-md font-sans text-white hover:bg-gray-400 cursor-pointer"},"Staging in prgoress..."):r.a.createElement("div",{className:"mx-auto my-4 text-center bg-green-600 text-xl p-3 rounded-md shadow-md font-sans text-white hover:bg-green-400 cursor-pointer",onClick:function(){f(!0),d()({url:g,method:"POST",data:{query:'\n mutation GitConvexMutation{\n stageAllItems(repoId: "'.concat(a,'")\n }\n ')}}).then((function(e){f(!1),e.data.data&&!e.data.error&&"ALL_STAGED"===e.data.data.stageAllItems&&c(!0)})).catch((function(e){f(!1),j(!0)}))}},"Confirm Staging")):r.a.createElement("div",{className:"p-5 bg-white text-black font-sans font-semibold rounded shadow border border-gray-100"},"No Changes for staging..."),l?r.a.createElement("div",{className:"mx-auto my-2 p-3 bg-green-300 text-green-800 rounded- shadow"},"All changes Staged!"):null)))}function q(e){v.b.add(E.a);var t=e.repoId,a=e.stateChange,s=Object(n.useState)([]),o=Object(i.a)(s,2),l=o[0],c=o[1],m=Object(n.useState)([]),u=Object(i.a)(m,2),p=u[0],f=u[1],b=Object(n.useState)(""),x=Object(i.a)(b,2),h=x[0],j=x[1],y=Object(n.useState)([]),w=Object(i.a)(y,2),N=w[0],k=w[1],O=Object(n.useState)(0),C=Object(i.a)(O,2),S=C[0],T=C[1],I=Object(n.useState)(""),A=Object(i.a)(I,2),_=A[0],F=A[1],q=Object(n.useState)([]),G=Object(i.a)(q,2),M=G[0],B=G[1],H=Object(n.useState)(!1),U=Object(i.a)(H,2),J=U[0],V=U[1];Object(n.useEffect)((function(){var t=JSON.stringify(JSON.stringify({repoId:e.repoId})),a=d.a.CancelToken.source();return d()({url:g,method:"POST",headers:{"Content-type":"application/json"},cancelToken:a.token,data:{query:'\n query GitConvexApi{\n gitConvexApi(route: "'.concat("REPO_TRACKED_DIFF",'", payload:').concat(t,")\n {\n gitChanges{\n gitUntrackedFiles\n gitChangedFiles\n }\n }\n }\n ")}}).then((function(e){if(e.data.data){var t=e.data.data.gitConvexApi.gitChanges;c(Object(R.a)(t.gitChangedFiles)),f(Object(R.a)(t.gitUntrackedFiles));var a=Object(R.a)(t.gitChangedFiles),n=Object(R.a)(t.gitUntrackedFiles),r=[];a&&a.forEach((function(e){if(e.split(",").length>0){var t=e.split(",")[1];r.push(t)}})),n&&n.forEach((function(e){e&&((e=e.replace("NO_DIR","")).split(",")?r.push(e.split(",").join("")):r.push(e))})),k([].concat(r))}})).catch((function(e){})),function(){a.cancel()}}),[e,S,_]),Object(n.useEffect)((function(){var t=d.a.CancelToken.source(),a=JSON.stringify(JSON.stringify({repoId:e.repoId}));return d()({url:g,method:"POST",headers:{"Content-type":"application/json"},cancelToken:t.token,data:{query:'\n query GitConvexApi{\n gitConvexApi(route: "'.concat("GIT_STAGED_FILES",'", payload:').concat(a,")\n {\n gitStagedFiles{\n stagedFiles\n }\n }\n }\n ")}}).then((function(e){var t=e.data.data.gitConvexApi.gitStagedFiles.stagedFiles;t&&t.length>0&&B(Object(R.a)(t))})).catch((function(e){})),function(){return t.cancel()}}),[N,e.repoId,S]);function z(){var e=[],a=function(e){return"M"===e?r.a.createElement("div",{className:"p-1 mx-auto text-center w-2/3 text-yellow-700 border border-yellow-500 rounded-md shadow-sm"},"Modified"):"D"===e?r.a.createElement("div",{className:"p-1 mx-auto text-center w-2/3 text-red-700 border bg-red-200 border-red-500 rounded-md shadow-sm"},"Removed"):r.a.createElement("div",{className:"p-1 mx-auto text-center w-2/3 text-indigo-700 border border-indigo-500 rounded-md shadow-sm"},"Untracked")},n=function(e){return r.a.createElement("div",{className:"p-1 mx-auto cursor-pointer bg-green-300 text-white w-2/3 rounded-md shadow-sm hover:shadow-md hover:bg-green-600",onClick:function(a){!function(e,a){var n=S+1;a.target.innerHTML="Staging...",a.target.style.backgroundColor="gray",a.target.disabled=!0,d()({url:g,method:"POST",data:{query:'\n mutation GitConvexMutation{\n stageItem(repoId: "'.concat(t,'", item: "').concat(e,'")\n }\n ')}}).then((function(t){T(n),t.data.data&&!t.data.error&&"ADD_ITEM_SUCCES"===t.data.data.stageItem&&F(e)})).catch((function(e){console.log(e),T(n)}))}(e,a),V(!1)},key:"add-btn-".concat(e)},"Add")};return l&&l.forEach((function(t){if(t.split(",").length>0){var r=t.split(",")[1];e.push([r,a(t.split(",")[0]),n(r)])}})),p&&p.forEach((function(t){t&&((t=t.replace("NO_DIR","")).split(",")?e.push([t.split(",").join(""),a("N"),n(t.split(",").join(""))]):e.push([t,a("N"),n(t)]))})),e}return r.a.createElement(r.a.Fragment,null,h?r.a.createElement("div",{className:"fixed w-full h-full top-0 left-0 right-0 flex overflow-auto",id:"operation-backdrop",style:{background:"rgba(0,0,0,0.6)"},onClick:function(e){"operation-backdrop"===e.target.id&&(j(""),T(S+1),B([]))}},function(e){switch(e){case"stage":return N&&N.length>0?r.a.createElement(L,{repoId:t,stageComponents:N}):r.a.createElement("div",{className:"w-1/2 mx-auto my-auto bg-gray-200 p-6 rounded-md"},r.a.createElement("div",{className:"p-5 bg-white text-black font-sans font-semibold rounded shadow border border-gray-100"},"No Changes for staging..."));case"commit":return r.a.createElement(P,{repoId:t});case"push":return r.a.createElement(D,{repoId:t});default:return null}}(h),r.a.createElement("div",{className:"float-right fixed right-0 top-0 font-semibold my-2 bg-red-500 text-3xl cursor-pointer text-center text-white my-5 align-middle rounded-full w-12 h-12 items-center align-middle shadow-md mr-5",onClick:function(){j("")}},"X")):null,r.a.createElement("div",{className:"my-2 flex mx-auto p-3 justify-around"},[{label:"Stage all changes",color:"blue",key:"stage"},{label:"Commit Changes",color:"green",key:"commit"},{label:"Push to remote",color:"pink",key:"push"}].map((function(e){var t=e.label,a=e.color,n=e.key;return r.a.createElement("div",{className:"my-auto align-middle item-center w-1/4 text-center p-2 rounded-md bg-0 border border-".concat(a,"-500 text-").concat(a,"-700 font-sans cursor-pointer hover:bg-").concat(a,"-500 hover:text-white"),key:n,onClick:function(){return j(n)}},t)}))),z()&&z().length>0?r.a.createElement("div",{className:"p-2 mx-auto rounded shadow border"},r.a.createElement("div",{className:"table-header flex justify-between w-full bg-orange-300 p-3 text-xl font-sans"},["Changes","File Status","Action"].map((function(e,t){return r.a.createElement("div",{key:e,className:"font-bold text-center border-r border-gray-200 ".concat(0===t?"w-3/4":"w-1/4")},e)}))),r.a.createElement("div",{className:"block table-rows w-full overflow-auto",style:{height:"400px"}},r.a.createElement("div",null,z()&&z().map((function(e,t){return r.a.createElement("div",{className:"flex font-sans p-3 border-b-2 border-b border-gray-300",key:"tableItem-".concat(t)},e.map((function(e,t){return r.a.createElement("div",{key:"".concat(e,"-").concat(t),className:"break-all items-center align-middle my-auto ".concat(0===t?"w-3/4 text-left":"w-1/4 text-center")},e)})))}))))):r.a.createElement(r.a.Fragment,null,r.a.createElement("div",{className:"p-2 mx-auto my-10 bg-orange-300 text-xl text-center rounded shadow"},"No files to stage")),r.a.createElement(r.a.Fragment,null,M?function(){if(M&&M.length>0)return r.a.createElement("div",{className:"w-full mx-auto my-20 p-2 border border-gray-200 rounded"},r.a.createElement("div",{className:"flex items-center align-middle my-4"},r.a.createElement("div",{className:"text-5xl font-sans text-gray-800 mx-4"},"Staged Files"),r.a.createElement("div",{className:"p-2 rounded text-white bg-red-700 text-xl rounded shadow cursor-pointer hover:bg-red-800",onClick:function(e){!function(e){var n=S+1;B(),a(),e.target.innerHTML="Removing...",e.target.style.backgroundColor="gray",e.target.disabled=!0,d()({url:g,method:"POST",data:{query:'\n mutation GitConvexMutation{\n removeAllStagedItem(repoId: "'.concat(t,'")\n }\n ')}}).then((function(e){T(n+1),e.data.data&&!e.data.error&&"STAGE_ALL_REMOVE_SUCCESS"===e.data.data.removeAllStagedItem&&B([])})).catch((function(e){console.log(e),T(n+1)}))}(e),V(!1)}},"Remove All Items")),J?r.a.createElement("div",{className:"my-4 mx-auto text-center shadow-md rounded p-4 border border-red-200 text-red-400 font-sans font-semibold"},"Remove item failed. Note that deleted files cannot be removed as a single entity. Use",r.a.createElement("i",{className:"border-b border-gray-600 border-dashed mx-2"},"Remove All Items"),"to perform a complete git reset"):null,r.a.createElement("div",{className:"flex mx-auto p-2 text-center font-sans text-lg text-white bg-indigo-400 rounded"},r.a.createElement("div",{className:"w-3/4"},"Staged File"),r.a.createElement("div",{className:"w-1/2"},"Action")),r.a.createElement("div",{className:"block mx-auto overflow-auto",style:{height:"450px"}},M.map((function(e){return e?r.a.createElement("div",{className:"flex mx-auto my-4 border-b my-auto items-center align-middle py-4",key:e},r.a.createElement("div",{className:"w-3/4 break-all mx-4 text-xl text-gray-800 font-sans"},e),r.a.createElement("div",{className:"w-1/2 mx-auto"},r.a.createElement("div",{className:"mx-auto w-1/2 text-white cursor-pointer break-all text-center p-2 rounded bg-red-500 shadow hover:bg-red-600 hover:shadow-md",onClick:function(n){!function(e,n){var r=S+1;a(),n.target.innerHTML="removing...",n.target.style.backgroundColor="gray",n.target.disabled=!0,d()({url:g,method:"POST",data:{query:'\n mutation GitConvexMutation{\n removeStagedItem(repoId: "'.concat(t,'", item: "').concat(e,'")\n }\n ')}}).then((function(t){if(T(r),t.data.data&&!t.data.error)if("STAGE_REMOVE_SUCCESS"===t.data.data.removeStagedItem){var a=M;a=a.filter((function(t){return t!==e})),B(Object(R.a)(a))}else V(!0)})).catch((function(e){console.log(e),T(r),V(!0)}))}(e,n),V(!1)},key:"remove-btn-".concat(e)},"Remove"))):null}))))}():null))}function G(e){v.b.add(E.a);var t=Object(n.useState)([]),a=Object(i.a)(t,2),s=a[0],o=a[1],l=Object(n.useState)([]),c=Object(i.a)(l,2),m=c[0],p=c[1],f=Object(n.useState)("File View"),b=Object(i.a)(f,2),x=b[0],h=b[1],j=["File View","Git Difference","Git Operations"],y=Object(n.useState)(!1),N=Object(i.a)(y,2),k=N[0],O=N[1],C=Object(n.useState)(!1),S=Object(i.a)(C,2),T=S[0],I=S[1],A=Object(n.useContext)(u).dispatch,_=function(){I(!0)},P=Object(n.useMemo)((function(){return r.a.createElement(F,{repoId:e.repoId})}),[e]),D=Object(n.useMemo)((function(){return r.a.createElement(q,{repoId:e.repoId,stateChange:_})}),[e]);return Object(n.useEffect)((function(){var t=g;I(!1);var a=JSON.stringify(JSON.stringify({repoId:e.repoId}));d()({url:t,method:"POST",headers:{"Content-type":"application/json"},data:{query:'\n query GitConvexApi{\n gitConvexApi(route: "'.concat("REPO_TRACKED_DIFF",'", payload:').concat(a,")\n {\n gitChanges{\n gitUntrackedFiles\n gitChangedFiles\n }\n }\n }\n ")}}).then((function(e){if(e){var t=e.data.data.gitConvexApi.gitChanges,a=t.gitChangedFiles,n=t.gitUntrackedFiles;(a||n)&&(a.length>0||n.length>0)?(o(Object(R.a)(a)),p(Object(R.a)(n)),O(!1),A({type:"GIT_TRACKED_FILES",payload:a}),A({type:"GIT_ACTION_TRACKED_FILES",payload:Object(R.a)(a)}),A({type:"GIT_ACTION_UNTRACKED_FILES",payload:Object(R.a)(n)})):O(!0)}})).catch((function(e){console.log(e),O(!0)}))}),[e,A,x,T]),r.a.createElement(r.a.Fragment,null,k?r.a.createElement(r.a.Fragment,null,r.a.createElement("div",{className:"w-11/12 block mx-auto my-6"},D),r.a.createElement("div",{className:"mt-10 w-11/12 rounded-sm shadow-sm h-full my-auto bock mx-auto text-center align-middle p-6 bg-pink-200 text-xl text-pink-600"},"No changes found in the selected git repo"),r.a.createElement("div",{className:"p-6 rounded-lg border-2 border-gray-100 w-3/4 block mx-auto my-20"},r.a.createElement("div",null,r.a.createElement(w.a,{icon:["fab","creative-commons-zero"],className:"flex text-6xl mt-20 text-center text-gray-300 font-bold mx-auto my-auto h-full w-full"})),r.a.createElement("div",{className:"block text-6xl text-gray-200 mx-auto text-center align-middle"},'"0" changes in repo'))):r.a.createElement(r.a.Fragment,null,r.a.createElement(r.a.Fragment,null,r.a.createElement("div",{className:"flex my-4 mx-auto w-11/12 justify-around font-sans font-semibold rounded-sm shadow-md cursor-pointer"},j.map((function(e){var t="w-full py-3 px-1 text-center border-r border-blue-400 ";return t+=e===x?"bg-blue-100 text-blue-800 border-b border-blue-700":"bg-blue-600 text-white",r.a.createElement("div",{className:"w-full py-3 px-1 text-center border-r border-blue-400 hover:bg-blue-200 hover:text-blue-900 ".concat(t),key:e,onClick:function(t){h(e)}},e)})))),r.a.createElement("div",{className:"w-11/12 block mx-auto my-6"}," ",function(){switch(x){case"File View":if(!k)return r.a.createElement("div",{className:"shadow-sm rounded-sm my-2 block justify-center mx-auto border border-gray-300"},s?function(){var e=[],t=[];if(s&&s.length>0)return s.forEach((function(a,n){var s=a.split(","),o=s[0],i=s[1],l="p-1 ";switch(o){case"M":l+="text-yellow-900 bg-yellow-200",t.push(r.a.createElement("div",{className:"flex mx-auto justify-between",key:i},r.a.createElement("div",{className:"".concat(l," w-11/12 break-all")},i),r.a.createElement("div",{className:"rounded-lg shadow-sm border border-gray-300 p-2 text-center w-1/6 my-auto"},"Modified")));break;case"D":l+="text-red-900 bg-red-200",e.push(r.a.createElement("div",{className:"flex mx-auto justify-between",key:i},r.a.createElement("div",{className:"".concat(l," w-11/12 break-all")},i),r.a.createElement("div",{className:"rounded-sm shadow-sm border border-gray-300 p-2 text-center w-1/6 my-auto"},"Deleted")));break;default:l+="text-indigo-900 bg-indigo-200"}})),r.a.createElement(r.a.Fragment,null,t," ",e)}():r.a.createElement("div",{className:"rounded-lg shadow-md text-center p-4 font-sans"},"Getting file based status..."),m?function(){var e=[],t="";return m.forEach((function(a){var n=a.split(",");n&&(e.push("NO_DIR"!==n[0]?n[0]:"./"),t=e.join("")+n[1])})),e.map((function(e,a){return r.a.createElement("div",{className:"flex",key:"".concat(e,"-").concat(a)},r.a.createElement("div",{className:"bg-indigo-100 text-indigo-800 flex p-2 block w-11/12 break-all"},t),r.a.createElement("div",{className:"rounded-sm shadow-sm border border-gray-300 p-2 text-center w-1/6 text-sm my-auto"},"New / Untracked"))}))}():null);break;case"Git Difference":if(!k)return P;break;case"Git Operations":return D;default:return r.a.createElement("div",{className:"text-xl text-center"}," Invalid Menu Selector! ")}}()," ")))}function M(){v.b.add(y.a);var e=Object(n.useContext)(u),t=e.state,a=e.dispatch,s=t.presentRepo,o=Object(n.useState)(!1),l=Object(i.a)(o,2),c=l[0],m=l[1],p=Object(n.useState)({}),f=Object(i.a)(p,2),b=f[0],x=f[1],h=Object(n.useState)([]),j=Object(i.a)(h,2),E=j[0],N=j[1],k=Object(n.useState)(""),O=Object(i.a)(k,2),C=O[0],S=O[1],A=Object(n.useState)({gitBranchList:"",gitCurrentBranch:"",gitTotalCommits:0,gitTotalTrackedFiles:0}),_=Object(i.a)(A,2),F=_[0],P=_[1],D=Object(n.useState)(!1),L=Object(i.a)(D,2),q=L[0],M=L[1],B=Object(n.useMemo)((function(){if(b&&b.id)return r.a.createElement(G,{repoId:b.id})}),[b]);function H(e,t){return r.a.createElement(r.a.Fragment,null,r.a.createElement("div",{className:"flex p-2 border-b-2 border-indigo-400 border-dashed justify-between mx-2 font-sans text-lg text-gray-700"},r.a.createElement("div",{className:"mx-2"},r.a.createElement(w.a,{icon:["fas",e]})),r.a.createElement("div",{className:"mx-2"},t)))}return Object(n.useEffect)((function(){var e=d.a.CancelToken.source();function t(){var t=b&&b.id;if(t){var a=JSON.stringify(JSON.stringify({repoId:t}));d()({url:g,method:"POST",headers:{"Content-type":"application/json"},cancelToken:e.token,data:{query:'\n query GitConvexApi\n {\n gitConvexApi(route: "'.concat("REPO_DETAILS",'", payload: ').concat(a,"){\n gitRepoStatus {\n gitBranchList\n gitCurrentBranch\n gitTotalCommits\n gitTotalTrackedFiles \n }\n }\n }\n ")}}).then((function(e){P(e.data.data.gitConvexApi.gitRepoStatus)})).catch((function(e){e&&console.log("API GitStatus error occurred : "+e)}))}}function n(){return(n=Object(I.a)(T.a.mark((function t(){return T.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,d()({url:g,method:"POST",cancelToken:e.token,data:{query:'\n query GitConvexApi{\n gitConvexApi(route: "'.concat("FETCH_REPO",'"){\n fetchRepo{\n repoId\n repoName\n repoPath\n }\n }\n }\n ')}}).then((function(e){var t=e.data.data.gitConvexApi.fetchRepo;if(t){var n=t.repoId.map((function(e,a){return{id:t.repoId[a],repoName:t.repoName[a],repoPath:t.repoPath[a]}}));return a({type:"PRESENT_REPO",payload:Object(R.a)(n)}),x(n[0]),N(n),n}}));case 2:return t.abrupt("return",t.sent);case 3:case"end":return t.stop()}}),t)})))).apply(this,arguments)}return s&&s[0]?(N(s[0]),t()):(!function(){n.apply(this,arguments)}(),t()),function(){e.cancel()}}),[b,C,s,a,q]),r.a.createElement("div",{className:"w-full mx-auto block justify-center overflow-x-hidden"},E?r.a.createElement("div",null,r.a.createElement("div",{className:"mx-auto my-6 w-11/12 rounded shadow border border-gray-200"},r.a.createElement("div",{className:"flex justify-around mx-auto align-middle items-around my-4"},r.a.createElement("div",{className:"flex"},r.a.createElement("div",{className:"font-sans font-semibold text-gray-900 my-1"},"Choose saved repository"),r.a.createElement("select",{className:"bg-green-200 text-gray-800 rounded-sm mx-2 outline-none shadow-xs border border-green-500",defaultValue:"checked",onChange:function(e){m(!0),E.length&&E.forEach((function(t){e.target.value===t.repoName&&(x(t),a({type:"GIT_GLOBAL_REPOID",payload:t.id}))}))}},r.a.createElement("option",{defaultChecked:!0,value:"checked",hidden:!0,disabled:!0},"Select a repo"),E.length&&E.map((function(e){return r.a.createElement("option",{value:e.repoName,key:e.repoName},e.repoName)})))),c?r.a.createElement("div",{className:"flex"},r.a.createElement("div",{className:"font-sans font-semibold text-gray-900 my-1"},"Branch"),r.a.createElement("select",{className:"bg-indigo-200 text-gray-800 rounded-sm mx-2 outline-none shadow-xs border border-indigo-500",defaultValue:"checked",onChange:function(e){e.persist(),S(e.currentTarget.value),function(e,t){d()({url:g,method:"POST",data:{query:'\n mutation{\n setBranch(repoId: "'.concat(b.id,'", branch: "').concat(e,'")\n }\n ')}}).then((function(t){t.data.data&&!t.data.error&&S(e)})).catch((function(e){e&&(M(!0),t.target.selectedIndex=0)}))}(e.target.value,e)},onClick:function(){M(!1)}},function(){if(F&&F.gitBranchList)return F.gitBranchList.map((function(e){return"NO_BRANCH"!==e?r.a.createElement("option",{key:e,value:e},e):null}))}())):null),F&&c?r.a.createElement("div",{className:"my-auto flex justify-around p-3 mx-auto"},H("code-branch",F.gitBranchList&&F.gitBranchList.length>0&&!F.gitBranchList[0].match(/NO_BRANCH/gi)?r.a.createElement(r.a.Fragment,null,1===F.gitBranchList.length?"1 branch":F.gitBranchList.length+" branches"):"No Branches"),H("sort-amount-up",F.gitTotalCommits+" Commits"),H("archive",F.gitTotalTrackedFiles+" Tracked Files")):null),c?null:r.a.createElement(r.a.Fragment,null,r.a.createElement("div",{className:"mt-10 w-11/12 rounded-sm shadow-sm h-full my-auto bock mx-auto text-center align-middle p-6 bg-orange-200 text-xl text-orange-900"},"Select a configured repo from the dropdown to perform git related operations"),r.a.createElement("div",{className:"p-6 rounded-lg border-2 border-gray-100 w-3/4 block mx-auto my-20"},r.a.createElement("div",null,r.a.createElement(w.a,{icon:["fas","mouse-pointer"],className:"flex text-6xl mt-20 text-center text-gray-300 font-bold mx-auto my-auto h-full w-full"})),r.a.createElement("div",{className:"block xl:text-6xl lg:text-3xl md:text-2xl my-4 text-gray-200 mx-auto text-center align-middle"},"No repositories selected"))),r.a.createElement("div",null,q?r.a.createElement("div",{className:"p-2 rounded my-2 mx-auto text-center font-sand bg-red-200 text-red-800"},"Branch switching failed.Commit your changes and try again"):null,F&&c&&b.id?B:null)):null)}function B(e){var t=e.repoId,a=Object(n.useState)(""),s=Object(i.a)(a,2),o=s[0],l=s[1],c=Object(n.useState)(""),m=Object(i.a)(c,2),u=m[0],p=m[1],f=Object(n.useRef)();function b(){f.current.value="",l("")}return r.a.createElement("div",{className:"w-3/4 mx-auto my-auto bg-gray-200 p-6 rounded-md"},r.a.createElement("div",{className:"my-auto"},r.a.createElement("div",{className:"mx-auto"},r.a.createElement("input",{type:"text",ref:f,placeholder:"Branch Name",className:"p-3 rounded bg-white text-xl text-gray-700 font-sans font-mono w-full border border-gray-200 shadow",onChange:function(e){l(e.target.value)},onClick:function(){p("")}})),r.a.createElement("div",{className:"bg-indigo-500 p-3 rounded mt-6 mx-auto text-xl font-sans text-white hover:bg-indigo-600 text-center mx-auto cursor-pointer",onClick:function(e){o?(console.log(o),d()({url:g,method:"POST",data:{query:'\n mutation GitConvexMutation{\n addBranch(repoId: "'.concat(t,'", branchName: "').concat(o,'")\n }\n ')}}).then((function(e){if(e.data.data&&!e.data.error){var t=e.data.data.addBranch;p(t),b()}else p("BRANCH_ADD_FAILED"),b()})).catch((function(e){p("BRANCH_ADD_FAILED"),b()}))):p("BRANCH_ADD_FAILED")}},"Add Branch"),"BRANCH_CREATION_SUCCESS"===u?r.a.createElement("div",{className:"w-full bg-green-200 p-1 rounded my-6 mx-auto text-md font-sans text-center mx-auto cursor-pointer"},"New branch has been added to your repo successfully"):null,"BRANCH_ADD_FAILED"===u?r.a.createElement("div",{className:"w-full bg-red-200 p-1 rounded my-6 mx-auto text-md font-sans text-center mx-auto cursor-pointer"},"New branch addition failed!"):null))}function H(e){var t=e.repoId,a=e.actionType,s=Object(n.useState)(),o=Object(i.a)(s,2),l=o[0],c=o[1],m=Object(n.useState)(!1),u=Object(i.a)(m,2),p=u[0],f=u[1],b=Object(n.useState)(!1),x=Object(i.a)(b,2),h=x[0],j=x[1],v=Object(n.useState)([]),E=Object(i.a)(v,2),y=E[0],w=E[1],N=Object(n.useState)(!1),k=Object(i.a)(N,2),O=k[0],C=k[1],S=Object(n.useRef)(),T=Object(n.useRef)();return Object(n.useEffect)((function(){var t=JSON.stringify(JSON.stringify({repoId:e.repoId})),a=d.a.CancelToken.source();return d()({url:g,method:"POST",cancelToken:a.token,headers:{"Content-type":"application/json"},data:{query:'\n query GitConvexApi\n {\n gitConvexApi(route: "'.concat("REPO_DETAILS",'", payload: ').concat(t,"){\n gitRepoStatus {\n gitRemoteData\n gitCurrentBranch\n gitRemoteHost\n gitBranchList \n }\n }\n }\n ")}}).then((function(e){var t=e.data.data.gitConvexApi.gitRepoStatus;c(t)})).catch((function(e){})),function(){return a.cancel()}}),[e]),r.a.createElement(r.a.Fragment,null,r.a.createElement("div",{className:"w-3/4 mx-auto my-auto p-6 rounded shadow bg-white block"},r.a.createElement("div",{className:"m-3 text-2xl font-sans text-ghray-800"},"Available remote repos"),r.a.createElement("div",null,r.a.createElement("select",{className:"border p-3 my-4 text-xl rounded shadow",defaultValue:"checked",onChange:function(){f(!0)},onClick:function(){w([])},ref:S},r.a.createElement("option",{disabled:!0,hidden:!0,value:"checked"},"Select the remote repo"),l?function(){if(l){var e=l.gitRemoteData;return e.includes("||")?e.split("||").map((function(e){return r.a.createElement("option",{value:e,key:e},e)})):r.a.createElement("option",null,e)}}():null)),p?r.a.createElement("div",null,r.a.createElement("select",{className:"border p-3 my-4 text-xl rounded shadow",defaultValue:"checked",onChange:function(){j(!0)},onClick:function(){w([])},ref:T},r.a.createElement("option",{disabled:!0,hidden:!0,value:"checked"},"Select upstream branch"),l?function(){if(l)return l.gitBranchList.map((function(e){return"NO_BRANCH"!==e?r.a.createElement("option",{value:e,key:e},e):null}))}():null)):null,p&&h&&!O?r.a.createElement("div",{className:"my-4 text-center bg-indigo-400 rounded shadow text-white text-xl font-sans p-2 mx-auto hover:bg-indigo-600 cursor-pointer",onClick:function(e){var n,s,o=S.current.value,i=T.current.value;o&&i?(n=o,s=i,C(!0),d()({url:g,method:"POST",data:{query:function(e,n){return"fetch"===a?'mutation GitConvexMutation{\n fetchFromRemote(repoId: "'.concat(t,'", remoteUrl: "').concat(e,'", remoteBranch: "').concat(n,'"){\n status\n fetchedItems\n }\n }\n '):'mutation GitConvexMutation{\n pullFromRemote(repoId: "'.concat(t,'", remoteUrl: "').concat(e,'", remoteBranch: "').concat(n,'"){\n status\n pulledItems\n }\n }\n ')}(n,s)}}).then((function(e){if(C(!1),e.data.data&&!e.data.error){var t={};if((t="fetch"===a?e.data.data.fetchFromRemote:e.data.data.pullFromRemote).status.match(/ABSENT/gi))w([r.a.createElement("div",{className:"text-xl p-2 text-gray-900 font-semibold"},"No changes to ","fetch"===a?"Fetch":"Pull"," from remote")]);else if(t.status.match(/ERROR/gi))w([r.a.createElement("div",{className:"text-xl p-2 text-pink-800 border border-pink-200 shadow rounded font-semibold"},"Error while ","fetch"===a?"Fetching":"Pulling"," ","from remote!")]);else{var n=[];n="fetch"===a?t.fetchedItems:t.pulledItems,w(Object(R.a)(n))}}})).catch((function(e){C(!1),console.error(e),w([r.a.createElement("div",{className:"text-xl p-2 text-pink-800 border border-pink-200 shadow rounded font-semibold"},"Error while ","fetch"===a?"Fetching":"Pulling"," from remote!")])}))):e.target.style.display="none"}},"pull"===a?"Pull from Remote":null,"fetch"===a?"Fetch from Remote":null):null,r.a.createElement("div",null,O?r.a.createElement("div",{className:"my-4 text-center border border-orange-800 text-orange-900 bg-orange-300 rounded shadow text-white text-xl font-sans p-2 mx-auto cursor-pointer"},"pull"===a?"Pulling changes":"Fetching"," from remote..."):null),!O&&y&&y.length>0?r.a.createElement(r.a.Fragment,null,r.a.createElement("div",{className:"p-3 rounded shadow bg-indigo-100 text-md font-sans text-gray-700"},y.map((function(e){return r.a.createElement("div",{className:"my-1 mx-2 break-normal",key:e+"-".concat(Object(_.a)())},e)})))):null))}function U(e){v.b.add(E.a,y.a);var t=Object(n.useState)([]),a=Object(i.a)(t,2),s=a[0],o=a[1],l=Object(n.useState)(!1),c=Object(i.a)(l,2),m=c[0],u=c[1];return Object(n.useEffect)((function(){var t=JSON.stringify(JSON.stringify({repoId:e.repoId}));d()({url:g,method:"POST",data:{query:'\n query GitConvexApi\n {\n gitConvexApi(route: "'.concat("COMMIT_LOGS",'", payload: ').concat(t,"){\n gitCommitLogs {\n commits{\n commitTime\n hash\n author\n commitMessage\n } \n }\n }\n }\n ")}}).then((function(e){var t=e.data.data.gitConvexApi.gitCommitLogs.commits;t&&t.length>0?o(t):u(!0)})).catch((function(e){e&&(u(!0),console.log(e))}))}),[e]),r.a.createElement(r.a.Fragment,null,m?r.a.createElement("div",{className:"p-3 rounded-md shadow-sm block justify-center mx-auto my-4 bg-white w-3/4 text-center"},"No Commit Logs found"):null,s&&s.map((function(e){var t=e.hash,a=e.author,n=e.commitTime,s=e.commitMessage;return r.a.createElement("div",{className:"p-3 pb-6 rounded-md shadow-sm block justify-center mx-auto my-4 bg-white w-full border-b-4 border-blue-400",key:t},r.a.createElement("div",{className:"p-2 text-2xl font-sans text-left"},r.a.createElement(w.a,{icon:["fas","calendar-alt"]}),r.a.createElement("span",{className:"mx-2"},n)),r.a.createElement("div",{className:"p-3 m-3 text-xl text-gray-700 font-sans"},s),r.a.createElement("div",{className:"flex justify-center text-center"},r.a.createElement("div",{className:"rounded-l p-2 shadow-sm bg-indigo-200 text-xl font-sans ont-semibold text-indigo-900 w-1/2"},r.a.createElement(w.a,{icon:["fab","slack-hash"]}),r.a.createElement("span",{className:"mx-2"},t)),r.a.createElement("div",{className:"rounded-r p-2 shadow-sm bg-indigo-200 text-xl font-sans ont-semibold text-indigo-900 w-1/2"},r.a.createElement(w.a,{icon:["fas","at"]}),r.a.createElement("span",{className:"mx-2"},a))))})))}function J(e){var t=e.repoId,a=Object(n.useRef)(),s=Object(n.useRef)(),o=Object(n.useState)(!1),l=Object(i.a)(o,2),c=l[0],m=l[1],u=Object(n.useState)(""),p=Object(i.a)(u,2),f=p[0],b=p[1],x=function(e,t,n){return r.a.createElement("div",{className:"flex justify-between around my-4 align-middle items-center"},r.a.createElement("label",{htmlFor:e,className:"text-gray-700 text-lg font-sans w-1/3"},t),r.a.createElement("div",{className:"w-5/6"},r.a.createElement("input",{id:e,onClick:function(){m(!1),b("")},className:"w-3/4 p-3 rounded shadow-md bg-white text-gray-900 text-lg font-sans outline-none",placeholder:n,ref:"remoteName"===e?a:s,onChange:function(e){var t=e.target.value;"remoteName"===e.target.id&&t.match(/[^a-zA-Z0-9_]/gi)&&(e.target.value=t.replace(/[^a-zA-Z0-9_]/gi,"-"))}})))};var h=function(e,t){return r.a.createElement("div",{className:"my-6 w-1/2 text-center mx-auto p-2 rounded-lg border-".concat(e,"-900 bg-").concat(e,"-200 font-sans text-xl font-semibold border")},t)};return r.a.createElement("div",{className:"xl:w-1/2 lg:w-3/4 md:w-11/12 sm:w-11/12 w-11/12 mx-auto my-auto bg-gray-200 pt-6 rounded-md rounded-b-lg"},r.a.createElement("div",{className:"mx-6 my-6 text-4xl font-semibold font-sans text-gray-800"},"Enter new remote details"),r.a.createElement("div",{className:"my-4 mx-6"},x("remoteName","Enter Remote Name","Give a name for your new remote"),x("remoteUrl","Enter Remote URL","Provide the URL for your remote repo")),c?h("orange","One or more required parameters are empty!"):null,"success"===f?h("green","Remote repo has been added successfully!"):null,"failed"===f?h("red","Failed to add new repo!"):null,r.a.createElement("div",{className:"w-full mt-10 p-3 text-center rounded-b-lg text-xl cursor-pointer shadow bg-green-200 border border-green-700 hover:bg-green-600 hover:text-white",onClick:function(){!function(){var e=a.current.value,n=s.current.value;t&&e&&n?d()({url:g,method:"POST",data:{query:'\n mutation GitConvexMutation{\n addRemoteRepo(repoId: "'.concat(t,'", remoteName: "').concat(e,'", remoteUrl: "').concat(n,'")\n }\n ')}}).then((function(e){e.data.data&&!e.data.error?"REMOTE_ADD_SUCCESS"===e.data.data.addRemoteRepo?(b("success"),a.current.value="",s.current.value=""):b("failed"):b("failed")})).catch((function(e){console.log(e),b("failed")})):m(!0)}()}},"Add New Remote"))}function V(e){v.b.add(E.a,y.a);var t=Object(n.useState)({}),a=Object(i.a)(t,2),s=a[0],o=a[1],l=Object(n.useState)(!1),c=Object(i.a)(l,2),m=c[0],u=c[1],p=Object(n.useState)(""),f=Object(i.a)(p,2),b=f[0],x=f[1],h=Object(n.useState)(!1),j=Object(i.a)(h,2),N=j[0],k=j[1],O=Object(n.useState)(!1),C=Object(i.a)(O,2),S=C[0],T=C[1],R=Object(n.useState)(0),I=Object(i.a)(R,2),A=I[0],F=I[1],P=Object(n.useState)(!1),D=Object(i.a)(P,2),L=D[0],q=D[1],G=Object(n.useState)(""),M=Object(i.a)(G,2),V=M[0],z=M[1],K=Object(n.useMemo)((function(){return r.a.createElement(U,{repoId:b})}),[b]),Y=Object(n.useMemo)((function(){return r.a.createElement(H,{repoId:b,actionType:"fetch"})}),[b]),X=Object(n.useMemo)((function(){return r.a.createElement(H,{repoId:b,actionType:"pull"})}),[b]),W=Object(n.useMemo)((function(){return r.a.createElement(J,{repoId:b})}),[b]);Object(n.useEffect)((function(){var t=g;if(e.parentProps.location){var a=e.parentProps.location.pathname.split("/repository/")[1];x(a);var n=JSON.stringify(JSON.stringify({repoId:a}));d()({url:t,method:"POST",headers:{"Content-type":"application/json"},data:{query:'\n\n query GitConvexApi\n {\n gitConvexApi(route: "'.concat("REPO_DETAILS",'", payload: ').concat(n,"){\n gitRepoStatus {\n gitRemoteData\n gitRepoName\n gitBranchList\n gitCurrentBranch\n gitRemoteHost\n gitTotalCommits\n gitLatestCommit\n gitTrackedFiles\n gitFileBasedCommit\n gitTotalTrackedFiles \n }\n }\n }\n ")}}).then((function(e){if(e.data&&e.data.data&&!e.data.error){var t=e.data.data.gitConvexApi.gitRepoStatus.gitRemoteData;t.includes("||")&&(T(!0),e.data.data.gitConvexApi.gitRepoStatus.gitRemoteData=t.split("||")[0],T(!0),F(t.split("||").length)),o(e.data.data.gitConvexApi.gitRepoStatus)}else u(!0)})).catch((function(e){e&&(console.log("API GitStatus error occurred : "+e),u(!0))}))}}),[e.parentProps,L]);var Z=s.gitRemoteData,$=s.gitRepoName,Q=s.gitBranchList,ee=s.gitCurrentBranch,te=s.gitRemoteHost,ae=s.gitTotalCommits,ne=s.gitLatestCommit,re=s.gitTrackedFiles,se=s.gitFileBasedCommit;return r.a.createElement(r.a.Fragment,null,L?r.a.createElement("div",{className:"fixed w-full h-full top-0 left-0 right-0 flex overflow-auto",id:"repo-backdrop",style:{background:"rgba(0,0,0,0.7)"},onClick:function(e){"repo-backdrop"===e.target.id&&(q(!1),z(""))}},r.a.createElement(r.a.Fragment,null,"fetch"===V?Y:null),r.a.createElement(r.a.Fragment,null,"pull"===V?X:null),r.a.createElement(r.a.Fragment,null,"addRemoteRepo"===V?W:null),r.a.createElement(r.a.Fragment,null,"addBranch"===V?r.a.createElement(B,{repoId:b}):null),r.a.createElement("div",{className:"fixed top-0 right-0 mx-3 font-semibold bg-red-500 text-3xl cursor-pointer text-center text-white my-5 align-middle rounded-full w-12 h-12 items-center align-middle shadow-md mr-5",onClick:function(){q(!1),z("")}},"X")):null,r.a.createElement("div",{className:"w-full fixed bg-gray-600 opacity-50"}),r.a.createElement("div",{className:"xl:overflow-auto lg:overflow-auto md:overflow-none sm:overflow-none rp_repo-view w-full h-full p-6 mx-auto rounded-lg justify-evenly"},s&&!m?r.a.createElement(r.a.Fragment,null,r.a.createElement("div",{className:"flex px-3 py-2"},s?r.a.createElement("div",{className:"align-middle items-center mx-auto w-full flex rounded-md shadow-md border-2 border-gray-100 p-4 justify-evenly"},r.a.createElement("div",{className:"text-md p-2 mx-2"},"Repo Name"),r.a.createElement("div",{className:"bg-blue-100 text-blue-900 p-3 rounded-sm border border-blue-200"},$),r.a.createElement("div",{className:"text-md p-2 mx-2"},"Active Branch"),r.a.createElement("div",{className:"bg-orange-200 rounded-sm text-orange-900 p-3 border border-orange-400"},ee)):null),r.a.createElement("div",{className:"w-full"},r.a.createElement("div",{className:"xl:flex lg:block md:block sm:block my-4 mx-auto justify-around"},s?function(){var e="";return te?(e=te.match(/github/i)?r.a.createElement(w.a,{icon:["fab","github"],className:"text-4xl text-center text-pink-500"}):te.match(/gitlab/i)?r.a.createElement(w.a,{icon:["fab","gitlab"],className:"text-4xl text-center text-pink-400"}):te.match(/bitbucket/i)?r.a.createElement(w.a,{icon:["fab","bitbucket"],className:"text-4xl text-center text-pink-400"}):te.match(/codecommit/i)?r.a.createElement(w.a,{icon:["fab","aws"],className:"text-4xl text-center text-pink-400"}):r.a.createElement(w.a,{icon:["fab","git-square"],className:"text-4xl text-center text-pink-400"}),r.a.createElement(r.a.Fragment,null,N?r.a.createElement(r.a.Fragment,null,r.a.createElement("div",{className:"fixed w-screen left-0 top-0 right-0 bottom-0 overflow-auto p-6",id:"commit-log__backdrop",style:{background:"rgba(0,0,0,0.5)",zIndex:99},onClick:function(e){"commit-log__backdrop"===e.target.id&&k(!1)}},r.a.createElement("div",{className:"fixed top-0 right-0 mx-3 font-semibold bg-red-500 text-3xl cursor-pointer text-center text-white my-5 align-middle rounded-full w-12 h-12 items-center align-middle shadow-md mr-5",onClick:function(){k(!1)}},"X"),r.a.createElement("div",{id:"commit-log__cards",className:"w-3/4 block mx-auto"},K))):null,r.a.createElement("div",{className:"block rounded-md xl:w-1/2 lg:w-3/4 md:w-11/12 sm:w-11/12 w-11/12 shadow-sm border-2 border-dotted border-gray-400 p-1 my-6 mx-auto"},r.a.createElement("div",{className:"block mx-auto my-6"},r.a.createElement("div",{className:"flex justify-evenly items-center"},r.a.createElement("div",{className:"text-lg text-gray-600 w-1/4"},"Remote Host"),r.a.createElement("div",{className:"flex justify-around items-center align-middle w-1/2"},r.a.createElement("div",{className:"w-3/4 flex cursor-pointer justify-center p-4 rounded-md shadow-md border border-dashed my-auto items-center align-middle"},r.a.createElement("div",{className:"mx-2"},e),r.a.createElement("div",{className:"text-xl text-gray-800 border-b border-dashed border-gray-400 w-3/4 text-center"},te)),r.a.createElement("div",{className:"w-1/4"},r.a.createElement("div",{id:"addRemote",className:"rounded-full items-center align-middle w-10 h-10 text-white text-2xl bg-indigo-400 text-center mx-auto shadow hover:bg-indigo-500 cursor-pointer",onMouseEnter:function(e){e.target.innerHTML+='
Click to add a new remote repo
'},onMouseLeave:function(e){e.target.innerHTML="+"},onClick:function(){q(!0),z("addRemoteRepo")}},"+")))),r.a.createElement("div",{className:"flex justify-evenly my-4"},r.a.createElement("div",{className:"text-lg text-gray-600 w-1/4"},"".concat(te," URL")),r.a.createElement("div",{className:"text-blue-400 hover:text-blue-500 cursor-pointer w-1/2 break-words"},Z)),S?r.a.createElement("div",{className:"flex justify-evenly my-2"},r.a.createElement("div",{className:"font-sans text-gray-800 font-semibold w-1/4 border-dotted border-b-2 border-gray-200"},"Entry truncated!"),r.a.createElement("div",{className:"w-1/2 border-dotted border-b-2 border-gray-200"},"Remote repos : ".concat(A))):null),r.a.createElement("div",{className:"block mx-auto my-6"},r.a.createElement("div",{className:"flex justify-evenly my-3"},r.a.createElement("div",{className:"w-1/4 text-md text-gray-600"},"Commit Logs"),r.a.createElement("div",{className:"w-1/2 rounded-md shadow-md p-3 text-center bg-orange-300 cursor-pointer",onClick:function(e){k(!0)}},"Show Commit Logs")))),r.a.createElement("div",{className:"block rounded-md xl:w-1/2 lg:w-3/4 md:w-11/12 sm:w-11/12 w-11/12 shadow-sm border-2 border-dotted border-gray-400 p-1 my-6 mx-auto"},r.a.createElement("div",{className:"block mx-auto my-2"},r.a.createElement("div",{className:"flex justify-around my-3"},r.a.createElement("div",{className:"text-lg text-gray-500 w-1/4"},"Total Commits"),r.a.createElement("div",{className:"text-left text-md text-bold text-black-800 w-1/2"},"".concat(ae," Commits"))),r.a.createElement("div",{className:"flex justify-around my-3"},r.a.createElement("div",{className:"text-lg text-gray-500 w-1/4"},"Latest Commit"),r.a.createElement("div",{className:"text-left text-sm text-bold text-black-900 w-1/2 truncate ..."},ne)),r.a.createElement("div",{className:"flex justify-around mx-auto my-2 align-middle items-center"},r.a.createElement("div",{className:"text-lg text-gray-500 w-1/4"},"Available Branches"),r.a.createElement("div",{className:"w-1/2 flex justify-evenly align-middle items-center"},r.a.createElement("div",{className:"w-3/4 my-auto"},Q&&ee&&Q.map((function(e){return e===ee?r.a.createElement("div",{className:"text-lg font-semibold text-indigo-500",key:"".concat(e,"-").concat(Object(_.a)())},e):r.a.createElement("div",{className:"my-1 font-sans font-semibold",key:"entry-key-".concat(Object(_.a)())},e)}))),r.a.createElement("div",{id:"addBranch",className:"rounded-full items-center align-middle w-10 h-10 text-white text-2xl bg-green-400 text-center mx-auto shadow hover:bg-green-500 cursor-pointer",onMouseEnter:function(e){e.target.innerHTML+='
Click to add a new branch
'},onMouseLeave:function(e){e.target.innerHTML="+"},onClick:function(){q(!0),z("addBranch")}},"+"))),r.a.createElement("div",{className:"flex justify-around mx-auto mt-4"},r.a.createElement("div",{className:"w-1/3 rounded text-center cursor-pointer p-2 bg-indigo-500 hover:bg-indigo-600 text-white font-sans nowrap",onClick:function(){q(!0),z("fetch")}},"Fetch from remote"),r.a.createElement("div",{className:"w-1/3 text-center cursor-pointer rounded text-white p-2 bg-blue-500 hover:bg-blue-600 font-sans",onClick:function(){q(!0),z("pull")}},"Pull from remote")))))):r.a.createElement("div",{className:"p-6 bg-orange-300 text-orange-900 my-4 rounded-lg shadow-md border border-gray-300"},"Fetching details from server...")}():null)),r.a.createElement("div",{className:"block w-11/12 my-6 mx-auto justify-center p-6 rounded-lg bg-gray-100 p-2 shadow-md overflow-auto"},s?function(){if(re&&re.length>0&&"NO_TRACKED_FILES"!==re[0]){var e=[],t=[],a=[];return re.forEach((function(e,n){var s=e.split(":");s[1].includes("directory")?t.push(r.a.createElement("div",{className:"block w-full p-2 border-b border-gray-300",key:"directory-key-".concat(Object(_.a)())},r.a.createElement("div",{className:"flex"},r.a.createElement("div",{className:"w-1/6"},r.a.createElement(w.a,{icon:["fas","folder"],className:"font-sans text-xl text-blue-600"})),r.a.createElement("div",{className:"w-2/4 text-gray-800 text-lg mx-3 font-sans"},s[0]),r.a.createElement("div",{className:"w-2/4 p-2 bg-green-200 text-green-900 truncate ... rounded-lg text-left mx-auto w-3/5"},se[n]?se[n].split(" ").filter((function(e,t){return 0!==t?e:null})).join(" "):null)))):s[1].includes("File")&&a.push(r.a.createElement("div",{className:"block w-full p-2 border-b border-gray-300",key:"file-key-".concat(Object(_.a)())},r.a.createElement("div",{className:"flex"},r.a.createElement("div",{className:"w-1/6"},r.a.createElement(w.a,{icon:["fas","file"],className:"font-sans text-xl text-gray-700"})),r.a.createElement("div",{className:"w-2/4 text-gray-800 text-lg mx-3 font-sans"},s[0]),r.a.createElement("div",{className:"w-2/4 p-2 bg-indigo-200 truncate ... text-indigo-900 rounded-lg text-left mx-auto w-3/5"},se[n]?se[n].split(" ").filter((function(e,t){return 0!==t?e:null})).join(" "):null))))})),e.push(t),e.push(a),r.a.createElement("div",{className:"block mx-auto justify-center p-2 text-blue-600 cursor-pointer hover:text-blue-700",key:"repo-key"},r.a.createElement("div",{className:"flex justify-around w-full p-2 mx-auto pb-6 border-b border-blue-400"},r.a.createElement("div",{className:"w-1/6"}),r.a.createElement("div",{className:"w-2/4"},"File / Directory"),r.a.createElement("div",{className:"w-2/4"},"Latest commit")),e)}return re&&"NO_TRACKED_FILES"===re[0]?r.a.createElement("div",{className:"bg-gray-400 rounded-lg text-black text-2xl text-center"},"No Tracked Files in the repo!"):r.a.createElement("div",{className:"bg-gray-400 rounded-lg text-black text-2xl text-center"},"Loading tracked files...")}():null)):r.a.createElement("div",{className:"text-center mx-auto rounded-lg p-3 shadow-md border border-indigo-200 text-indigo-800"},"Fetching repo details..."),m?r.a.createElement("div",{className:"p-2 text-center mx-auto rounded-lg bg-red-200 text-xl"},"Repo details fetch failed!"):null))}function z(e){v.b.add(E.a,y.a);var t=Object(n.useRef)(),a=Object(n.useContext)(u),s=a.state,o=a.dispatch,l=s.presentRepo,c=Object(n.useState)(""),m=Object(i.a)(c,2),p=m[0],f=m[1],b=Object(n.useState)(0),x=Object(i.a)(b,2),h=x[0],j=x[1],N=Object(n.useState)([]),k=Object(i.a)(N,2),O=k[0],C=k[1],S=Object(n.useState)(!1),T=Object(i.a)(S,2),I=T[0],A=T[1],_=Object(n.useState)({}),F=Object(i.a)(_,2),P=F[0],D=F[1],L=Object(n.useState)(""),q=Object(i.a)(L,2),G=q[0],M=q[1],B=Object(n.useState)(0),H=Object(i.a)(B,2),U=H[0],J=H[1],V=Object(n.useState)(""),z=Object(i.a)(V,2),K=z[0],Y=z[1],X=Object(n.useState)(!1),W=Object(i.a)(X,2),Z=W[0],$=W[1],Q=Object(n.useState)(!1),ee=Object(i.a)(Q,2),te=ee[0],ae=ee[1];Object(n.useEffect)((function(){d()({url:g,method:"POST",data:{query:'\n query GitConvexResults{\n gitConvexApi(route: "'.concat("SETTINGS_DBPATH",'"){\n settingsDatabasePath\n }\n }\n ')}}).then((function(e){if(e.data.data&&!e.data.error){var a=e.data.data.gitConvexApi.settingsDatabasePath;f(a),Y(a),t.current.value=a}})).catch((function(e){console.log(e)})),d()({url:g,method:"POST",data:{query:'\n query GitConvexResults{\n gitConvexApi(route: "'.concat("SETTINGS_REPODETAILS",'"){\n settingsRepoDetails{\n id\n repoPath\n repoName\n timeStamp\n }\n }\n }\n ')}}).then((function(e){if(e.data.data&&!e.data.error){var t=e.data.data.gitConvexApi.settingsRepoDetails;C(Object(R.a)(t))}})).catch((function(e){console.log(e)})),d()({url:g,method:"POST",data:{query:'\n query GitConvexResults{\n gitConvexApi(route: "'.concat("SETTINGS_PORT",'"){\n settingsPortDetails\n }\n }\n ')}}).then((function(e){if(e.data.data&&!e.data.error){var t=e.data.data.gitConvexApi.settingsPortDetails;j(t)}}))}),[e,U]);return r.a.createElement(r.a.Fragment,null,I?r.a.createElement("div",{className:"fixed w-full h-full top-0 left-0 right-0 flex xl:overflow-auto lg:overflow-auto md:overflow-none sm:overflow-none",id:"settings-backdrop",style:{background:"rgba(0,0,0,0.7)"},onClick:function(e){"settings-backdrop"===e.target.id&&(M(""),A(!1),J(U+1))}},P?function(){var e=["Repo ID","Repo Name","Repo Path","Timestamp"],t=[];return Object.keys(P).forEach((function(a,n){t.push({label:e[n],value:P[a]})})),r.a.createElement("div",{className:"w-3/4 p-6 mx-auto my-auto rounded shadow bg-white"},r.a.createElement("div",{className:"mx-4 my-2 text-3xl font-sans text-gray-900"},"The repo below will be removed from Gitconvex records."),r.a.createElement("div",{className:"mx-4 my-1 text-md font-light w-5/6 font-sans italic text-gray-800"},"This will not delete the actual git folder. Just the record from the gitconvex server will be removed"),r.a.createElement("div",{className:"my-2 mx-auto block justify-center w-3/4 p-2"},t.map((function(e){return r.a.createElement("div",{className:"mx-auto flex p-2 font-sans",key:e.label},r.a.createElement("div",{className:"w-2/4 font-semibold"},e.label),r.a.createElement("div",{className:"w-2/4"},e.value))}))),"lodaing"!==G&&"success"!==G?r.a.createElement("div",{className:"cursor-pointer mx-auto my-4 text-center p-3 rounded shadow bg-red-400 hover:bg-red-500 text-white text-xl",onClick:function(){!function(){M("loading");var e=P.id;d()({url:g,method:"POST",data:{query:'\n mutation GitConvexMutation{\n deleteRepo(repoId: "'.concat(e,'"){\n status\n repoId\n }\n }\n ')}}).then((function(e){if(e.data.data&&!e.data.eror){var t=e.data.data.deleteRepo,a=t.status,n=t.repoId;if("DELETE_SUCCESS"===a){if(l&&l.length>0){var r=l[0];r=r.map((function(e){return e.id.toString()===n.toString()?null:e})),o({action:"DELETE_PRESENT_REPO",payload:Object(R.a)(r)})}M("success")}else M("failed")}})).catch((function(e){console.log(e),M("failed")}))}()}},"Confirm Delete"):null,"loading"===G?r.a.createElement("div",{className:"cursor-pointer mx-auto my-4 text-center p-3 text-white rounded shadow bg-gray-400 hover:bg-gray-500 text-white text-xl"},"Deletion in progress"):null,"success"===G?r.a.createElement("div",{className:"p-4 mx-auto text-center font-sans font-semibold bg-green-300 text-green-600 my-4"},"Repo has been deleted!"):null,"failed"===G?r.a.createElement("div",{className:"p-4 mx-auto text-center font-sans font-semibold bg-red-300 my-4"},"Repo deletion failed!"):null)}():null,r.a.createElement("div",{className:"top-0 right-0 fixed float-right font-semibold my-2 bg-red-500 text-3xl cursor-pointer text-center text-white my-5 align-middle rounded-full w-12 h-12 items-center align-middle shadow-md mr-5",onClick:function(){M(""),A(!1),J(U+1)}},"X")):null,r.a.createElement("div",{className:"block w-full h-full pt-5 pb-10 xl:overflow-auto lg:overflow-auto md:overflow-none sm:overflow-none"},r.a.createElement("div",{className:"font-sans text-6xl my-4 mx-10 text-gray-700 block items-center align-middle"},r.a.createElement(w.a,{className:"text-5xl",icon:["fas","cogs"]}),r.a.createElement("span",{className:"mx-10"},"Settings")),r.a.createElement("div",{className:"block my-10 justify-center mx-auto w-11/12"},p?r.a.createElement("div",{className:"settings-data"},r.a.createElement("div",{className:"text-xl text-gray-700 font-sans font-semibold"},"Server data file (file which stores repo details)"),r.a.createElement("div",{className:"my-4"},r.a.createElement("input",{type:"text",className:"p-2 rounded border border-gray-500 bg-gray-200 text-gray-800 w-2/3",ref:t,onChange:function(e){Y(e.target.value),$(!1)},onClick:function(){$(!1)}}),r.a.createElement("div",{className:"text-justify font-sand font-light text-sm my-4 text-gray-500 italic w-2/3"},"The data file can be updated. The data file must be an accessible JSON file with read / write permissions set to it. Also make sure you enter the full path for the file",r.a.createElement("pre",{className:"my-2"},"E.g: /opt/my_data/data-file.json")),p!==K?r.a.createElement("div",{className:"my-4 text-center p-2 font-sans text-white border-green-400 border-2 bg-green-500 rounded-md cursor-pointer shadow w-1/4 hover:bg-green-600",onClick:function(){!function(){if(K){var e=U+1;d()({url:g,method:"POST",data:{query:'\n mutation GitConvexMutation{\n updateRepoDataFile(newDbFile: "'.concat(K.toString(),'")\n }\n ')}}).then((function(t){t.data.data&&!t.data.error&&"DATAFILE_UPDATE_SUCCESS"===t.data.data.updateRepoDataFile?($(!1),J(e),window.location.reload()):($(!0),J(e))})).catch((function(t){console.log("Datafile update error",t),$(!0),J(e)}))}}(),$(!1)}},"Update Data file"):null,Z?r.a.createElement("div",{className:"my-2 p-2 rounded border border-red-300 text-red-700 font-sans font-semibold w-2/3 text-center"},"Data file update failed"):null)):null,O?r.a.createElement("div",{className:"repo-data my-10"},r.a.createElement("div",{className:"text-xl text-gray-700 font-sans font-semibold"},"Saved Repos"),r.a.createElement(r.a.Fragment,null,O&&O.length>0?r.a.createElement(r.a.Fragment,null,r.a.createElement("div",{className:"flex my-4 bg-indigo-500 my-1 w-full rounded text-white bg-white shadow p-3 font-sand text-xl font-semibold"},r.a.createElement("div",{className:"w-1/2 border-r text-center"},"Repo ID"),r.a.createElement("div",{className:"w-1/2 border-r text-center"},"Repo Name"),r.a.createElement("div",{className:"w-1/2 border-r text-center"},"Repo Path"),r.a.createElement("div",{className:"w-1/2 border-r text-center"},"Timestamp"),r.a.createElement("div",{className:"w-1/2 border-r text-center"},"Action")),O.map((function(e){return r.a.createElement("div",{className:"flex my-1 w-full rounded bg-white shadow p-3 font-sans text-gray-800",key:e.id},r.a.createElement("div",{className:"w-1/2 px-2 border-r font-sans break-all"},e.id),r.a.createElement("div",{className:"w-1/2 px-2 border-r font-bold font-sans break-all"},e.repoName),r.a.createElement("div",{className:"w-1/2 px-2 border-r font-sans break-all text-sm font-light text-blue-600"},e.repoPath),r.a.createElement("div",{className:"w-1/2 px-2 border-r font-sans break-all text-sm font-light"},e.timeStamp),r.a.createElement("div",{className:"w-1/2 px-2 border-r font-sans break-all"},r.a.createElement("div",{className:"bg-red-600 p-2 mx-auto my-auto rounded shadow text-center w-1/2 hover:bg-red-400 cursor-pointer",onClick:function(t){A(!0),D(e)}},r.a.createElement(w.a,{color:"white",icon:["fas","trash-alt"]}))))}))):r.a.createElement("div",{className:"my-4 mx-auto bg-gray-200 text-center p-3 rounded shadow w-3/4"},"No repos are being managed by Gitconvex. You can add one from the dashboard"))):null,r.a.createElement("div",{className:"my-2 mx-auto"},r.a.createElement("div",{className:"text-xl font-sans text-gray-800 my-2"},"Active Gitconvex port"),r.a.createElement("div",{className:"flex my-4"},r.a.createElement("input",{type:"text",className:"p-2 rounded border border-gray-500 bg-gray-200 text-gray-800 xl:w-1/2 lg:w-1/3 md:w-1/2 sm:w-1/2 w-1/2",value:h,onChange:function(e){j(e.target.value)}}),r.a.createElement("div",{className:"p-2 text-center mx-4 rounded border text-white bg-indigo-500 xl:w-1/6 lg:w-1/6 md:w-1/5 sm:w-1/4 w-1/4 hover:bg-indigo-600 cursor-pointer",onClick:function(){h&&d()({url:g,method:"POST",data:{query:"\n mutation GitConvexMutation{\n settingsEditPort(newPort: ".concat(h,")\n }\n ")}}).then((function(e){e.data.data&&!e.data.error?console.log(e.data.data.settingsEditPort):te(!0)})).catch((function(e){console.log(e),ae(!0)}))}},"Update Port")),r.a.createElement("div",{className:"text-justify font-sand font-light text-sm my-4 text-gray-500 italic w-2/3"},"Make sure to restart the app and to change the port in the URL after updating it"),te?r.a.createElement("div",{className:"my-2 p-2 rounded border border-red-300 text-red-700 font-sans font-semibold w-1/2 text-center"},"Port update failed"):null))))}function K(e){var t=Object(n.useContext)(u).state,a=Object(n.useState)(""),s=Object(i.a)(a,2),o=s[0],m=s[1],p=Object(n.useState)(""),f=Object(i.a)(p,2),b=f[0],x=f[1],j=Object(n.useState)(""),v=Object(i.a)(j,2),E=v[0],y=v[1],w=Object(n.useMemo)((function(){return r.a.createElement(V,{parentProps:e})}),[e]),N=Object(n.useMemo)((function(){return r.a.createElement(z,null)}),[]),k=Object(n.useMemo)((function(){return r.a.createElement(C,null)}),[]);Object(n.useEffect)((function(){var e=t.hcParams,a=e.osCheck,n=e.gitCheck,r=e.nodeCheck,s=d.a.CancelToken.source();a&&n&&r?(m(a),x(n),y(r)):3===["OS_TYPE","NODE_VERSION","GIT_VERSION"].filter((function(e){return!!localStorage.getItem(e)})).length?(m(localStorage.getItem("OS_TYPE")),y(localStorage.getItem("NODE_VERSION")),x(localStorage.getItem("GIT_VERSION"))):d()({url:g,method:"POST",cancelToken:s.token,data:{query:'\n query GitConvexAPI{\n gitConvexApi(route:"HEALTH_CHECK"){\n healthCheck{\n osCheck\n gitCheck\n nodeCheck\n }\n }\n }\n '}}).then((function(e){if(e.data.data&&!e.data.error){var t=e.data.data.gitConvexApi.healthCheck,a=t.osCheck,n=t.gitCheck,r=t.nodeCheck;m(JSON.parse(a).message),x(JSON.parse(n).message),y(JSON.parse(r).message)}})).catch((function(e){console.log(e)}));return function(){s.cancel()}}),[t.hcParams]);var S={platform:o,gitVersion:b,nodeVersion:E};return r.a.createElement(r.a.Fragment,null,r.a.createElement("div",{className:"xl:flex lg:flex md:block w-full h-screen"},r.a.createElement(h,{parentProps:e}),function(){switch(e.location.pathname){case"/dashboard":return r.a.createElement(O,{params:S});case"/dashboard/repository":return r.a.createElement(M,null);case"/dashboard/settings":return N;case"/dashboard/help":return k;default:return r.a.createElement(c.a,null,r.a.createElement(l.a,{exact:!0,path:"/dashboard/repository/:repoId"},w))}}()))}a(75);function Y(e){var t=Object(n.useState)(!1),a=Object(i.a)(t,2),s=a[0],o=a[1],l=Object(n.useState)(!1),c=Object(i.a)(l,2),m=c[0],p=c[1],f=Object(n.useContext)(u).dispatch;return Object(n.useEffect)((function(){var e=g;d()({url:e,method:"POST",data:{query:'\n query GitConvexAPI{\n gitConvexApi(route:"HEALTH_CHECK"){\n healthCheck{\n osCheck\n gitCheck\n nodeCheck\n }\n }\n }\n '}}).then((function(e){if(e.data.data){var t=e.data.data.gitConvexApi.healthCheck,a=t.osCheck,n=t.gitCheck,r=t.nodeCheck;f({type:"HC_PARAM_ACTION",payload:{osCheck:a,gitCheck:n,nodeCheck:r}}),p(!0)}else o(!0)})).catch((function(e){console.log(e),o(!0)}))}),[f]),r.a.createElement(r.a.Fragment,null,m?e.history.push("/dashboard"):r.a.createElement("div",{className:"w-64 h-full justify-center mx-auto flex my-auto align-center items-center"},r.a.createElement("div",{className:"splash-logo w-64 h-full justify-center mx-auto flex my-auto align-center items-center"},r.a.createElement("div",{className:"p-5 shadow-md border-l-4 border-t-4 border-blue-100 rounded-lg block"},r.a.createElement("div",{className:"splash-logo__image"})),r.a.createElement("div",{className:"logo-label my-3 p-3 text-center block"},r.a.createElement("div",{className:"logo-label__title block text-6xl border-solid border-b-4 border-pink-200"},r.a.createElement("span",{className:"logo-label__title-first font-sans font-bold mx-3"},"Git"),r.a.createElement("span",null,"Convex")),r.a.createElement("div",{className:"block font-mono my-2"},"A visualizer for your git repo"))),s?r.a.createElement("div",{className:"fixed bottom-0 left-0 right-0 w-full p-3 rounded-lg text-center font-sans bg-red-200 border-red-900"},r.a.createElement("div",{className:"h1 text-3xl p-2 m-2 text-red-800"},"Server Unreachable"),r.a.createElement("p",null,"The server is not reachable.Please check if the server module is running.")):null))}var X=a(9);function W(e,t){switch(t.type){case"HC_DONE_SWITCH":return Object(X.a)(Object(X.a)({},e),{},{hcDone:t.payload});case"HC_PARAM_ACTION":var a=t.payload,n=a.osCheck,r=a.gitCheck,s=a.nodeCheck,o=function(e){return JSON.parse(JSON.parse(JSON.stringify(e))).message};return localStorage.setItem("OS_TYPE",o(n)),localStorage.setItem("GIT_VERSION",o(r)),localStorage.setItem("NODE_VERSION",o(s)),Object(X.a)(Object(X.a)({},e),{},{hcParams:{osCheck:o(n),gitCheck:o(r),nodeCheck:o(s)}});case"PRESENT_REPO":return Object(X.a)(Object(X.a)({},e),{},{presentRepo:[].concat(Object(R.a)(e.presentRepo),[t.payload])});case"DELETE_PRESENT_REPO":return Object(X.a)(Object(X.a)({},e),{},{presentRepo:Object(R.a)(t.payload)});case"GIT_TRACKED_FILES":return e.modifiedGitFiles=[],Object(X.a)(Object(X.a)({},e),{},{modifiedGitFiles:[].concat(Object(R.a)(e.modifiedGitFiles),[t.payload])});case"GIT_GLOBAL_REPOID":return e.globalRepoId="",Object(X.a)(Object(X.a)({},e),{},{globalRepoId:t.payload});case"GIT_ACTION_TRACKED_FILES":return e.gitTrackedFiles=[],Object(X.a)(Object(X.a)({},e),{},{gitTrackedFiles:[].concat(Object(R.a)(e.gitTrackedFiles),[t.payload])});case"GIT_ACTION_UNTRACKED_FILES":return e.gitUntrackedFiles=[],Object(X.a)(Object(X.a)({},e),{},{gitUntrackedFiles:[].concat(Object(R.a)(e.gitUntrackedFiles),[t.payload])});default:return Object(X.a)({},e)}}function Z(e){var t=Object(n.useReducer)(W,{hcParams:{},presentRepo:[],modifiedGitFiles:[],globalRepoId:"",gitUntrackedFiles:[],gitTrackedFiles:[]}),a=Object(i.a)(t,2),s=a[0],o=a[1];return r.a.createElement("div",{className:"App w-full h-full"},r.a.createElement(u.Provider,{value:{state:s,dispatch:o}},r.a.createElement(c.a,null,r.a.createElement(l.c,null,r.a.createElement(l.a,{path:"/",exact:!0,component:Y}),r.a.createElement(l.a,{path:"/dashboard",component:K}),r.a.createElement(l.a,{path:"/dashboard/repository",exact:!0,component:K}),r.a.createElement(l.a,{path:"/dashboard/repository/*",component:K})))))}a(76),Boolean("localhost"===window.location.hostname||"[::1]"===window.location.hostname||window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/));o.a.render(r.a.createElement(Z,null),document.getElementById("root")),"serviceWorker"in navigator&&navigator.serviceWorker.ready.then((function(e){e.unregister()})).catch((function(e){console.error(e.message)}))}},[[45,1,2]]]); +//# sourceMappingURL=main.48aad14b.chunk.js.map \ No newline at end of file diff --git a/build/static/js/main.48aad14b.chunk.js.map b/build/static/js/main.48aad14b.chunk.js.map new file mode 100644 index 00000000..9a3e2fe2 --- /dev/null +++ b/build/static/js/main.48aad14b.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../node_modules/prismjs/components lazy /^/.//prism/-.*/.js$/ groupOptions: {} namespace object","context.js","util/env_config.js","Components/DashBoard/DashboardPaneComponents/LeftPane.js","Components/DashBoard/Repository/RepoComponents/AddRepoForm.js","actionStore.js","Components/DashBoard/Repository/RepoComponents/RepoCard.js","Components/DashBoard/Repository/RepoComponents/RepoComponent.js","Components/DashBoard/DashboardPaneComponents/RightPane.js","Components/DashBoard/Help/Help.js","Components/DashBoard/Repository/GitComponents/GitDiffViewComponent.js","Components/DashBoard/Repository/GitComponents/GitOperation/CommitComponent.js","Components/DashBoard/Repository/GitComponents/GitOperation/PushComponent.js","Components/DashBoard/Repository/GitComponents/GitOperation/StageComponent.js","Components/DashBoard/Repository/GitComponents/GitOperation/GitOperationComponent.js","Components/DashBoard/Repository/GitComponents/GitTrackedComponent.js","Components/DashBoard/Repository/RepoComponents/RepositoryAction.js","Components/DashBoard/Repository/RepoComponents/RepoDetailBackdrop/AddBranchComponent.js","Components/DashBoard/Repository/RepoComponents/RepoDetailBackdrop/FetchPullActionComponent.js","Components/DashBoard/Repository/RepoComponents/RepositoryCommitLogComponent.js","Components/DashBoard/Repository/RepoComponents/RepoDetailBackdrop/AddRemoteRepoComponent.js","Components/DashBoard/Repository/RepoComponents/RepositoryDetails.js","Components/DashBoard/Settings/Settings.js","Components/DashBoard/Dashboard.js","Components/SplashScreen.js","reducer.js","App.js","serviceWorker.js","index.js"],"names":["map","webpackAsyncContext","req","__webpack_require__","o","Promise","resolve","then","e","Error","code","ids","id","t","keys","Object","module","exports","ContextProvider","React","createContext","hcDone","platform","git","node","globalRepoId","hcParams","presentRepo","modifiedGitFiles","gitUntrackedFiles","gitTrackedFiles","console","log","process","PORT_GLOBAL_API","window","location","port","globalAPIEndpoint","hostname","LeftPane","props","menuItemParams","link","icon","FolderOutlined","style","color","fontSize","label","SettingsOutlined","HelpOutline","className","onClick","event","parentProps","history","push","entry","to","exact","activeClassName","key","AddRepoForm","useContext","state","dispatch","useState","repoNameState","setRepoName","repoPathState","setRepoPath","repoAddFailed","setRepoAddFailed","repoAddSuccess","setRepoAddSuccess","repoNameRef","useRef","repoPathRef","initCheckRef","resetAlertBanner","type","placeholder","onChange","target","value","ref","htmlFor","formEnable","repoName","repoPath","initCheck","current","checked","payload","JSON","stringify","axios","url","method","data","query","res","error","message","gitConvexApi","addRepo","match","action","catch","err","storeRepoAPI","RepoCard","library","add","fab","fas","repoData","repoFooterData","setRepoFooterData","useEffect","repoId","source","CancelToken","headers","cancelToken","token","gitRepoStatus","cancel","avatar","split","length","tempName","substring","toUpperCase","gitTotalCommits","gitTotalTrackedFiles","gitCurrentBranch","RepoComponent","repo","setRepo","repoFormEnable","setRepoFormEnable","fetchRepoURL","apiResponse","fetchRepo","repoContent","forEach","index","param","repoArray","onMouseEnter","stopPropagation","preventDefault","innerHTML","onMouseLeave","showAvailableRepo","RightPane","params","gitVersion","nodeVersion","repoEntry","Help","href","rel","GitDiffViewComponent","changedFiles","setChangedFiles","diffStatState","setDiffStatState","fileLineDiffState","setFileLineDiffState","activeFileName","setActiveFileName","isApiCalled","setIsApiCalled","isLangSelected","setIsLangSelected","warnStatus","setWarnStatus","lang","setLang","langEnum","js","java","py","c","cpp","go","rust","ts","dart","php","html","json","xml","yaml","yml","rb","jsx","kt","ktm","kts","cs","vb","css","apiEndPoint","gitChangedFiles","gitChanges","languageDetector","fileName","fileType","fileEntry","a","gitFileLineChanges","diffStat","fileDiff","selectedLang","fileDiffStatComponent","includes","splitStat","slice","parts","Date","getTime","toString","statFormat","splitLines","join","line","uuidv4","dangerouslySetInnerHTML","__html","Prism","replace","fileLineDiffComponent","CommitComponent","loading","setLoading","stagedFilesState","setStagedFilesState","commitDone","setCommitDone","commitError","setCommitError","loadingCommit","setLoadingCommit","commitRef","stagedFiles","gitStagedFiles","stagedCount","height","stagedFile","cols","rows","commitMsg","commitChanges","commitHandler","alert","commitComponent","PushComponent","remoteData","setRemoteData","isRemoteSet","setIsRemoteSet","isBranchSet","setIsBranchSet","unpushedCommits","setUnpushedCommits","isCommitEmpty","setIsCommitEmpty","pushDone","setPushDone","pushFailed","setPushFailed","remoteRef","branchRef","commitModel","commit","splitCommit","left","right","repoDetails","defaultValue","disabled","hidden","gitRemoteData","item","remoteHostGenerator","commits","gitUnpushedCommits","getUnpushedCommits","gitBranchList","branch","branchListGenerator","remote","remoteHost","branchName","pushToRemote","StageComponent","stageComponents","allStaged","setAllStaged","setLodaing","errorInd","setErrorInd","stageAllItems","GitOperationComponent","stateChange","setGitTrackedFiles","setGitUntrackedFiles","setAction","list","setList","viewReload","setViewReload","currentStageItem","setCurrensStageitem","stageItems","setStagedItems","unstageFailed","setUnstageFailed","apiData","apiTrackedFiles","apiUnTrackedFiles","componentList","trackedItem","getTableData","tableDataArray","statusPill","status","actionButton","stageItem","localViewReload","backgroundColor","stageGitComponent","background","actionComponent","column","tableData","removeAllStagedItem","removeAllStagedItems","removeStagedItem","localStagedItems","filter","filterItem","getStagedFilesComponent","GitTrackedComponent","gitDiffFilesState","setGitDiffFilesState","gitUntrackedFilesState","setGitUntrackedFilesState","topMenuItemState","setTopMenuItemState","topMenuItems","noChangeMarker","setNoChangeMarker","requestStateChange","setRequestChange","operationStateChangeHandler","memoizedGitDiffView","useMemo","memoizedGitOperationView","styleSelector","deletedArtifacts","modifiedArtifacts","diffFile","splitFile","flag","name","diffPane","untrackedDir","untrackedEntry","splitEntry","untrackedPane","menuComponent","RepositoryAction","selectedFlag","setSelectedFlag","defaultRepo","setDefaultRepo","availableRepos","setAvailableRepos","activeBranch","setActiveBranch","selectedRepoDetails","setSelectedRepoDetails","branchError","setBranchError","memoizedGitTracker","getTopPaneComponent","fetchSelectedRepoStatus","invokeRepoFetchAPI","elm","defaultChecked","persist","currentTarget","selectedIndex","setTrackingBranch","availableBranch","AddBranchComponent","setBranchName","branchAddStatus","setBranchAddStatus","branchNameRef","resetBranchNameText","branchStatus","addBranch","FetchFromRemoteComponent","actionType","result","setResult","getAxiosRequestBody","actionResponse","fetchFromRemote","pullFromRemote","resArray","fetchedItems","pulledItems","display","uuid","RepositoryCommitLogComponent","commitLogs","setCommitLogs","gitCommitLogs","hash","author","commitTime","commitMessage","AddRemoteRepoComponent","remoteNameRef","remoteUrlRef","paramMissing","setParamMissing","addRemoteStatus","setAddRemoteStatus","remoteFormTextComponent","formId","remoteNameVal","statusPillComponent","repoUrl","addRemoteRepo","addRemoteClickHandler","RepositoryDetails","setGitRepoStatus","repoFetchFailed","setRepoFetchFailed","repoIdState","setRepoIdState","showCommitLogs","setShowCommitLogs","isMultiRemote","setIsMultiRemote","multiRemoteCount","setMultiRemoteCount","backdropToggle","setBackdropToggle","memoizedCommitLogComponent","memoizedFetchRemoteComponent","memoizedPullRemoteComponent","memoizedAddRemoteRepoComponent","endpointURL","pathname","gitRemoteLocal","gitRepoName","gitRemoteHost","gitLatestCommit","gitFileBasedCommit","remoteLogo","zIndex","gitRepoLeftPane","formattedFiles","directoryEntry","gitTrackedFileComponent","Settings","dbPathTextRef","dbPath","setDbPath","setPort","setRepoDetails","setBacldropToggle","deleteRepo","setDeleteRepo","deleteRepoStatus","setDeleteRepoStatus","newDbPath","setNewDbPath","dbUpdateFailed","setDbUpdateFailed","portUpdateFailed","setPortUpdateFailed","dbPathText","settingsDatabasePath","repoDetailsArray","settingsRepoDetails","localPort","settingsPortDetails","repoColumn","eror","localState","deleteRepoApiHandler","deleteRepoHandler","updateRepoDataFile","reload","updateDbFileHandler","timeStamp","settingsEditPort","Dashboard","setPlatform","setGitVersion","setNodeVersion","memoizedRepoDetails","memoizedSettings","memoizedHelp","osCheck","gitCheck","nodeCheck","localStorage","getItem","healthCheck","parse","path","renderRightPaneComponent","SplashScreen","showAlert","setShowAlert","hcCheck","setHcCheck","apiURL","reducer","parseValue","setItem","App","useReducer","Provider","component","Boolean","ReactDOM","render","document","getElementById","navigator","serviceWorker","ready","registration","unregister"],"mappings":"wKAAA,IAAIA,EAAM,CACT,kBAAmB,CAClB,GACA,GAED,sBAAuB,CACtB,GACA,GAED,kBAAmB,CAClB,GACA,GAED,sBAAuB,CACtB,GACA,GAED,0BAA2B,CAC1B,GACA,GAED,8BAA+B,CAC9B,GACA,GAED,iBAAkB,CACjB,GACA,GAED,qBAAsB,CACrB,GACA,IAED,oBAAqB,CACpB,GACA,IAED,wBAAyB,CACxB,GACA,IAED,wBAAyB,CACxB,GACA,IAED,4BAA6B,CAC5B,GACA,IAED,iBAAkB,CACjB,GACA,IAED,qBAAsB,CACrB,GACA,IAED,yBAA0B,CACzB,GACA,IAED,6BAA8B,CAC7B,GACA,IAED,iBAAkB,CACjB,GACA,IAED,qBAAsB,CACrB,GACA,IAED,qBAAsB,CACrB,GACA,IAED,yBAA0B,CACzB,GACA,IAED,kBAAmB,CAClB,GACA,IAED,sBAAuB,CACtB,GACA,IAED,sBAAuB,CACtB,IACA,IAED,0BAA2B,CAC1B,IACA,IAED,qBAAsB,CACrB,IACA,IAED,yBAA0B,CACzB,IACA,IAED,oBAAqB,CACpB,IACA,IAED,wBAAyB,CACxB,IACA,IAED,wBAAyB,CACxB,IACA,IAED,4BAA6B,CAC5B,IACA,IAED,oBAAqB,CACpB,IACA,IAED,wBAAyB,CACxB,IACA,IAED,kBAAmB,CAClB,IACA,IAED,sBAAuB,CACtB,IACA,IAED,mBAAoB,CACnB,IACA,IAED,uBAAwB,CACvB,IACA,IAED,mBAAoB,CACnB,IACA,IAED,uBAAwB,CACvB,IACA,IAED,oBAAqB,CACpB,IACA,IAED,wBAAyB,CACxB,IACA,IAED,mBAAoB,CACnB,IACA,IAED,uBAAwB,CACvB,IACA,IAED,iBAAkB,CACjB,IACA,IAED,qBAAsB,CACrB,IACA,IAED,uBAAwB,CACvB,IACA,IAED,2BAA4B,CAC3B,IACA,IAED,0BAA2B,CAC1B,IACA,IAED,8BAA+B,CAC9B,IACA,IAED,iBAAkB,CACjB,IACA,IAED,qBAAsB,CACrB,IACA,IAED,eAAgB,CACf,IACA,IAED,mBAAoB,CACnB,IACA,IAED,iBAAkB,CACjB,IACA,IAED,qBAAsB,CACrB,IACA,IAED,mBAAoB,CACnB,IACA,IAED,uBAAwB,CACvB,IACA,IAED,qBAAsB,CACrB,IACA,IAED,yBAA0B,CACzB,IACA,IAED,mBAAoB,CACnB,IACA,IAED,uBAAwB,CACvB,IACA,IAED,0BAA2B,CAC1B,IACA,IAED,8BAA+B,CAC9B,IACA,IAED,uBAAwB,CACvB,IACA,IAED,2BAA4B,CAC3B,IACA,IAED,kBAAmB,CAClB,IACA,IAED,sBAAuB,CACtB,IACA,IAED,iBAAkB,CACjB,IACA,IAED,qBAAsB,CACrB,IACA,IAED,qBAAsB,CACrB,IACA,IAED,yBAA0B,CACzB,IACA,IAED,oBAAqB,CACpB,IACA,IAED,wBAAyB,CACxB,IACA,IAED,iBAAkB,CACjB,IACA,IAED,qBAAsB,CACrB,IACA,IAED,wBAAyB,CACxB,IACA,IAED,4BAA6B,CAC5B,IACA,IAED,iBAAkB,CACjB,IACA,IAED,qBAAsB,CACrB,IACA,IAED,eAAgB,CACf,IACA,IAED,mBAAoB,CACnB,IACA,IAED,kBAAmB,CAClB,IACA,IAED,sBAAuB,CACtB,IACA,IAED,iBAAkB,CACjB,IACA,IAED,qBAAsB,CACrB,IACA,IAED,kBAAmB,CAClB,IACA,IAED,sBAAuB,CACtB,IACA,IAED,oBAAqB,CACpB,IACA,IAED,wBAAyB,CACxB,IACA,IAED,2BAA4B,CAC3B,IACA,IAED,+BAAgC,CAC/B,IACA,IAED,oBAAqB,CACpB,IACA,IAED,wBAAyB,CACxB,IACA,IAED,kBAAmB,CAClB,IACA,IAED,sBAAuB,CACtB,IACA,IAED,oBAAqB,CACpB,IACA,IAED,wBAAyB,CACxB,IACA,IAED,iBAAkB,CACjB,IACA,IAED,qBAAsB,CACrB,IACA,KAED,oBAAqB,CACpB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,iBAAkB,CACjB,IACA,KAED,qBAAsB,CACrB,IACA,KAED,iBAAkB,CACjB,IACA,KAED,qBAAsB,CACrB,IACA,KAED,oBAAqB,CACpB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,mBAAoB,CACnB,IACA,KAED,uBAAwB,CACvB,IACA,KAED,2BAA4B,CAC3B,IACA,KAED,+BAAgC,CAC/B,IACA,KAED,oBAAqB,CACpB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,sCAAuC,CACtC,IACA,KAED,0CAA2C,CAC1C,IACA,KAED,kBAAmB,CAClB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,qBAAsB,CACrB,IACA,KAED,yBAA0B,CACzB,IACA,KAED,oBAAqB,CACpB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,iBAAkB,CACjB,IACA,KAED,qBAAsB,CACrB,IACA,KAED,mBAAoB,CACnB,IACA,KAED,uBAAwB,CACvB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,0BAA2B,CAC1B,IACA,KAED,oBAAqB,CACpB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,qBAAsB,CACrB,IACA,KAED,yBAA0B,CACzB,IACA,KAED,iBAAkB,CACjB,IACA,KAED,qBAAsB,CACrB,IACA,KAED,kBAAmB,CAClB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,iBAAkB,CACjB,IACA,KAED,qBAAsB,CACrB,IACA,KAED,gBAAiB,CAChB,IACA,KAED,oBAAqB,CACpB,IACA,KAED,qBAAsB,CACrB,IACA,KAED,yBAA0B,CACzB,IACA,KAED,oBAAqB,CACpB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,kBAAmB,CAClB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,4BAA6B,CAC5B,IACA,KAED,qBAAsB,CACrB,IACA,KAED,yBAA0B,CACzB,IACA,KAED,kBAAmB,CAClB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,iBAAkB,CACjB,IACA,KAED,qBAAsB,CACrB,IACA,KAED,kBAAmB,CAClB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,kBAAmB,CAClB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,kBAAmB,CAClB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,uBAAwB,CACvB,IACA,KAED,2BAA4B,CAC3B,IACA,KAED,kBAAmB,CAClB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,qBAAsB,CACrB,IACA,KAED,yBAA0B,CACzB,IACA,KAED,iBAAkB,CACjB,IACA,KAED,qBAAsB,CACrB,IACA,KAED,gBAAiB,CAChB,IACA,KAED,oBAAqB,CACpB,IACA,KAED,eAAgB,CACf,IACA,KAED,mBAAoB,CACnB,IACA,KAED,kBAAmB,CAClB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,qBAAsB,CACrB,IACA,KAED,yBAA0B,CACzB,IACA,KAED,yBAA0B,CACzB,IACA,KAED,6BAA8B,CAC7B,IACA,KAED,wBAAyB,CACxB,IACA,KAED,4BAA6B,CAC5B,IACA,KAED,4BAA6B,CAC5B,IACA,KAED,gCAAiC,CAChC,IACA,KAED,mBAAoB,CACnB,IACA,KAED,uBAAwB,CACvB,IACA,KAED,gBAAiB,CAChB,IACA,KAED,oBAAqB,CACpB,IACA,KAED,uBAAwB,CACvB,IACA,KAED,2BAA4B,CAC3B,IACA,KAED,0BAA2B,CAC1B,IACA,KAED,8BAA+B,CAC9B,IACA,KAED,mBAAoB,CACnB,IACA,KAED,uBAAwB,CACvB,IACA,KAED,kBAAmB,CAClB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,mBAAoB,CACnB,IACA,KAED,uBAAwB,CACvB,IACA,KAED,mBAAoB,CACnB,IACA,KAED,uBAAwB,CACvB,IACA,KAED,iBAAkB,CACjB,IACA,KAED,qBAAsB,CACrB,IACA,KAED,mBAAoB,CACnB,IACA,KAED,uBAAwB,CACvB,IACA,KAED,oBAAqB,CACpB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,oBAAqB,CACpB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,mBAAoB,CACnB,IACA,KAED,uBAAwB,CACvB,IACA,KAED,mBAAoB,CACnB,IACA,KAED,uBAAwB,CACvB,IACA,KAED,kBAAmB,CAClB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,0BAA2B,CAC1B,IACA,KAED,oBAAqB,CACpB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,kBAAmB,CAClB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,4BAA6B,CAC5B,IACA,KAED,kBAAmB,CAClB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,qBAAsB,CACrB,IACA,KAED,yBAA0B,CACzB,IACA,KAED,iBAAkB,CACjB,IACA,KAED,qBAAsB,CACrB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,0BAA2B,CAC1B,IACA,KAED,sBAAuB,CACtB,IACA,KAED,0BAA2B,CAC1B,IACA,KAED,+BAAgC,CAC/B,IACA,KAED,mCAAoC,CACnC,IACA,KAED,oBAAqB,CACpB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,oBAAqB,CACpB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,iBAAkB,CACjB,IACA,KAED,qBAAsB,CACrB,IACA,KAED,mBAAoB,CACnB,IACA,KAED,uBAAwB,CACvB,IACA,KAED,oBAAqB,CACpB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,4BAA6B,CAC5B,IACA,KAED,kBAAmB,CAClB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,kBAAmB,CAClB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,6BAA8B,CAC7B,IACA,KAED,iCAAkC,CACjC,IACA,KAED,kBAAmB,CAClB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,kBAAmB,CAClB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,mBAAoB,CACnB,IACA,KAED,uBAAwB,CACvB,IACA,KAED,iBAAkB,CACjB,IACA,KAED,qBAAsB,CACrB,IACA,KAED,iBAAkB,CACjB,IACA,KAED,qBAAsB,CACrB,IACA,KAED,kBAAmB,CAClB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,4BAA6B,CAC5B,IACA,KAED,mBAAoB,CACnB,IACA,KAED,uBAAwB,CACvB,IACA,KAED,oBAAqB,CACpB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,gBAAiB,CAChB,IACA,KAED,oBAAqB,CACpB,IACA,KAED,oBAAqB,CACpB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,oBAAqB,CACpB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,oBAAqB,CACpB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,uBAAwB,CACvB,IACA,KAED,2BAA4B,CAC3B,IACA,KAED,oBAAqB,CACpB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,kBAAmB,CAClB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,4BAA6B,CAC5B,IACA,KAED,iBAAkB,CACjB,IACA,KAED,qBAAsB,CACrB,IACA,KAED,oBAAqB,CACpB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,mBAAoB,CACnB,IACA,KAED,uBAAwB,CACvB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,4BAA6B,CAC5B,IACA,KAED,wBAAyB,CACxB,IACA,KAED,4BAA6B,CAC5B,IACA,KAED,wBAAyB,CACxB,IACA,KAED,4BAA6B,CAC5B,IACA,KAED,oBAAqB,CACpB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,4BAA6B,CAC5B,IACA,KAED,sBAAuB,CACtB,IACA,KAED,0BAA2B,CAC1B,IACA,KAED,iBAAkB,CACjB,IACA,KAED,qBAAsB,CACrB,IACA,KAED,oBAAqB,CACpB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,kBAAmB,CAClB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,oBAAqB,CACpB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,eAAgB,CACf,IACA,KAED,mBAAoB,CACnB,IACA,KAED,iBAAkB,CACjB,IACA,KAED,qBAAsB,CACrB,IACA,KAED,kBAAmB,CAClB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,eAAgB,CACf,IACA,KAED,mBAAoB,CACnB,IACA,KAED,oBAAqB,CACpB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,mBAAoB,CACnB,IACA,KAED,uBAAwB,CACvB,IACA,KAED,mBAAoB,CACnB,IACA,KAED,uBAAwB,CACvB,IACA,KAED,kBAAmB,CAClB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,iBAAkB,CACjB,IACA,KAED,qBAAsB,CACrB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,0BAA2B,CAC1B,IACA,KAED,4BAA6B,CAC5B,IACA,KAED,gCAAiC,CAChC,IACA,KAED,kBAAmB,CAClB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,kBAAmB,CAClB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,iBAAkB,CACjB,IACA,KAED,qBAAsB,CACrB,IACA,KAED,kBAAmB,CAClB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,mBAAoB,CACnB,IACA,KAED,uBAAwB,CACvB,IACA,KAED,oBAAqB,CACpB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,kBAAmB,CAClB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,2BAA4B,CAC3B,IACA,KAED,+BAAgC,CAC/B,IACA,KAED,uBAAwB,CACvB,IACA,KAED,2BAA4B,CAC3B,IACA,KAED,oBAAqB,CACpB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,0BAA2B,CAC1B,IACA,KAED,2BAA4B,CAC3B,IACA,KAED,+BAAgC,CAC/B,IACA,KAED,iBAAkB,CACjB,IACA,KAED,qBAAsB,CACrB,IACA,KAED,oBAAqB,CACpB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,4BAA6B,CAC5B,IACA,KAED,iBAAkB,CACjB,IACA,KAED,qBAAsB,CACrB,IACA,KAED,iBAAkB,CACjB,IACA,KAED,qBAAsB,CACrB,IACA,KAED,oBAAqB,CACpB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,mBAAoB,CACnB,IACA,KAED,uBAAwB,CACvB,IACA,KAED,mBAAoB,CACnB,IACA,KAED,uBAAwB,CACvB,IACA,KAED,2BAA4B,CAC3B,IACA,KAED,+BAAgC,CAC/B,IACA,KAED,mBAAoB,CACnB,IACA,KAED,uBAAwB,CACvB,IACA,KAED,iBAAkB,CACjB,IACA,KAED,qBAAsB,CACrB,IACA,KAED,iBAAkB,CACjB,IACA,KAED,qBAAsB,CACrB,IACA,KAED,qBAAsB,CACrB,IACA,KAED,yBAA0B,CACzB,IACA,KAED,kBAAmB,CAClB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,iBAAkB,CACjB,IACA,KAED,qBAAsB,CACrB,IACA,KAED,iBAAkB,CACjB,IACA,KAED,qBAAsB,CACrB,IACA,KAED,oBAAqB,CACpB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,kBAAmB,CAClB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,4BAA6B,CAC5B,IACA,KAED,kBAAmB,CAClB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,mBAAoB,CACnB,IACA,KAED,uBAAwB,CACvB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,0BAA2B,CAC1B,IACA,KAED,qBAAsB,CACrB,IACA,KAED,yBAA0B,CACzB,IACA,KAED,kBAAmB,CAClB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,iBAAkB,CACjB,IACA,KAED,qBAAsB,CACrB,IACA,KAED,0BAA2B,CAC1B,IACA,KAED,8BAA+B,CAC9B,IACA,KAED,kBAAmB,CAClB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,kBAAmB,CAClB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,mBAAoB,CACnB,IACA,KAED,uBAAwB,CACvB,IACA,KAED,kBAAmB,CAClB,IACA,KAED,sBAAuB,CACtB,IACA,KAED,oBAAqB,CACpB,IACA,KAED,wBAAyB,CACxB,IACA,KAED,kBAAmB,CAClB,IACA,KA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","file":"static/js/main.48aad14b.chunk.js","sourcesContent":["var map = {\n\t\"./prism-abap.js\": [\n\t\t78,\n\t\t3\n\t],\n\t\"./prism-abap.min.js\": [\n\t\t79,\n\t\t4\n\t],\n\t\"./prism-abnf.js\": [\n\t\t80,\n\t\t5\n\t],\n\t\"./prism-abnf.min.js\": [\n\t\t81,\n\t\t6\n\t],\n\t\"./prism-actionscript.js\": [\n\t\t82,\n\t\t7\n\t],\n\t\"./prism-actionscript.min.js\": [\n\t\t83,\n\t\t8\n\t],\n\t\"./prism-ada.js\": [\n\t\t84,\n\t\t9\n\t],\n\t\"./prism-ada.min.js\": [\n\t\t85,\n\t\t10\n\t],\n\t\"./prism-antlr4.js\": [\n\t\t86,\n\t\t11\n\t],\n\t\"./prism-antlr4.min.js\": [\n\t\t87,\n\t\t12\n\t],\n\t\"./prism-apacheconf.js\": [\n\t\t88,\n\t\t13\n\t],\n\t\"./prism-apacheconf.min.js\": [\n\t\t89,\n\t\t14\n\t],\n\t\"./prism-apl.js\": [\n\t\t90,\n\t\t15\n\t],\n\t\"./prism-apl.min.js\": [\n\t\t91,\n\t\t16\n\t],\n\t\"./prism-applescript.js\": [\n\t\t92,\n\t\t17\n\t],\n\t\"./prism-applescript.min.js\": [\n\t\t93,\n\t\t18\n\t],\n\t\"./prism-aql.js\": [\n\t\t94,\n\t\t19\n\t],\n\t\"./prism-aql.min.js\": [\n\t\t95,\n\t\t20\n\t],\n\t\"./prism-arduino.js\": [\n\t\t96,\n\t\t21\n\t],\n\t\"./prism-arduino.min.js\": [\n\t\t97,\n\t\t22\n\t],\n\t\"./prism-arff.js\": [\n\t\t98,\n\t\t23\n\t],\n\t\"./prism-arff.min.js\": [\n\t\t99,\n\t\t24\n\t],\n\t\"./prism-asciidoc.js\": [\n\t\t100,\n\t\t25\n\t],\n\t\"./prism-asciidoc.min.js\": [\n\t\t101,\n\t\t26\n\t],\n\t\"./prism-asm6502.js\": [\n\t\t102,\n\t\t27\n\t],\n\t\"./prism-asm6502.min.js\": [\n\t\t103,\n\t\t28\n\t],\n\t\"./prism-aspnet.js\": [\n\t\t104,\n\t\t29\n\t],\n\t\"./prism-aspnet.min.js\": [\n\t\t105,\n\t\t30\n\t],\n\t\"./prism-autohotkey.js\": [\n\t\t106,\n\t\t31\n\t],\n\t\"./prism-autohotkey.min.js\": [\n\t\t107,\n\t\t32\n\t],\n\t\"./prism-autoit.js\": [\n\t\t108,\n\t\t33\n\t],\n\t\"./prism-autoit.min.js\": [\n\t\t109,\n\t\t34\n\t],\n\t\"./prism-bash.js\": [\n\t\t110,\n\t\t35\n\t],\n\t\"./prism-bash.min.js\": [\n\t\t111,\n\t\t36\n\t],\n\t\"./prism-basic.js\": [\n\t\t112,\n\t\t37\n\t],\n\t\"./prism-basic.min.js\": [\n\t\t113,\n\t\t38\n\t],\n\t\"./prism-batch.js\": [\n\t\t114,\n\t\t39\n\t],\n\t\"./prism-batch.min.js\": [\n\t\t115,\n\t\t40\n\t],\n\t\"./prism-bbcode.js\": [\n\t\t116,\n\t\t41\n\t],\n\t\"./prism-bbcode.min.js\": [\n\t\t117,\n\t\t42\n\t],\n\t\"./prism-bison.js\": [\n\t\t118,\n\t\t43\n\t],\n\t\"./prism-bison.min.js\": [\n\t\t119,\n\t\t44\n\t],\n\t\"./prism-bnf.js\": [\n\t\t120,\n\t\t45\n\t],\n\t\"./prism-bnf.min.js\": [\n\t\t121,\n\t\t46\n\t],\n\t\"./prism-brainfuck.js\": [\n\t\t122,\n\t\t47\n\t],\n\t\"./prism-brainfuck.min.js\": [\n\t\t123,\n\t\t48\n\t],\n\t\"./prism-brightscript.js\": [\n\t\t124,\n\t\t49\n\t],\n\t\"./prism-brightscript.min.js\": [\n\t\t125,\n\t\t50\n\t],\n\t\"./prism-bro.js\": [\n\t\t126,\n\t\t51\n\t],\n\t\"./prism-bro.min.js\": [\n\t\t127,\n\t\t52\n\t],\n\t\"./prism-c.js\": [\n\t\t128,\n\t\t53\n\t],\n\t\"./prism-c.min.js\": [\n\t\t129,\n\t\t54\n\t],\n\t\"./prism-cil.js\": [\n\t\t130,\n\t\t55\n\t],\n\t\"./prism-cil.min.js\": [\n\t\t131,\n\t\t56\n\t],\n\t\"./prism-clike.js\": [\n\t\t132,\n\t\t57\n\t],\n\t\"./prism-clike.min.js\": [\n\t\t133,\n\t\t58\n\t],\n\t\"./prism-clojure.js\": [\n\t\t134,\n\t\t59\n\t],\n\t\"./prism-clojure.min.js\": [\n\t\t135,\n\t\t60\n\t],\n\t\"./prism-cmake.js\": [\n\t\t136,\n\t\t61\n\t],\n\t\"./prism-cmake.min.js\": [\n\t\t137,\n\t\t62\n\t],\n\t\"./prism-coffeescript.js\": [\n\t\t138,\n\t\t63\n\t],\n\t\"./prism-coffeescript.min.js\": [\n\t\t139,\n\t\t64\n\t],\n\t\"./prism-concurnas.js\": [\n\t\t140,\n\t\t65\n\t],\n\t\"./prism-concurnas.min.js\": [\n\t\t141,\n\t\t66\n\t],\n\t\"./prism-core.js\": [\n\t\t142,\n\t\t67\n\t],\n\t\"./prism-core.min.js\": [\n\t\t143,\n\t\t68\n\t],\n\t\"./prism-cpp.js\": [\n\t\t144,\n\t\t69\n\t],\n\t\"./prism-cpp.min.js\": [\n\t\t145,\n\t\t70\n\t],\n\t\"./prism-crystal.js\": [\n\t\t146,\n\t\t71\n\t],\n\t\"./prism-crystal.min.js\": [\n\t\t147,\n\t\t72\n\t],\n\t\"./prism-csharp.js\": [\n\t\t148,\n\t\t73\n\t],\n\t\"./prism-csharp.min.js\": [\n\t\t149,\n\t\t74\n\t],\n\t\"./prism-csp.js\": [\n\t\t150,\n\t\t75\n\t],\n\t\"./prism-csp.min.js\": [\n\t\t151,\n\t\t76\n\t],\n\t\"./prism-css-extras.js\": [\n\t\t152,\n\t\t77\n\t],\n\t\"./prism-css-extras.min.js\": [\n\t\t153,\n\t\t78\n\t],\n\t\"./prism-css.js\": [\n\t\t154,\n\t\t79\n\t],\n\t\"./prism-css.min.js\": [\n\t\t155,\n\t\t80\n\t],\n\t\"./prism-d.js\": [\n\t\t156,\n\t\t81\n\t],\n\t\"./prism-d.min.js\": [\n\t\t157,\n\t\t82\n\t],\n\t\"./prism-dart.js\": [\n\t\t158,\n\t\t83\n\t],\n\t\"./prism-dart.min.js\": [\n\t\t159,\n\t\t84\n\t],\n\t\"./prism-dax.js\": [\n\t\t160,\n\t\t85\n\t],\n\t\"./prism-dax.min.js\": [\n\t\t161,\n\t\t86\n\t],\n\t\"./prism-diff.js\": [\n\t\t162,\n\t\t87\n\t],\n\t\"./prism-diff.min.js\": [\n\t\t163,\n\t\t88\n\t],\n\t\"./prism-django.js\": [\n\t\t164,\n\t\t89\n\t],\n\t\"./prism-django.min.js\": [\n\t\t165,\n\t\t90\n\t],\n\t\"./prism-dns-zone-file.js\": [\n\t\t166,\n\t\t91\n\t],\n\t\"./prism-dns-zone-file.min.js\": [\n\t\t167,\n\t\t92\n\t],\n\t\"./prism-docker.js\": [\n\t\t168,\n\t\t93\n\t],\n\t\"./prism-docker.min.js\": [\n\t\t169,\n\t\t94\n\t],\n\t\"./prism-ebnf.js\": [\n\t\t170,\n\t\t95\n\t],\n\t\"./prism-ebnf.min.js\": [\n\t\t171,\n\t\t96\n\t],\n\t\"./prism-eiffel.js\": [\n\t\t172,\n\t\t97\n\t],\n\t\"./prism-eiffel.min.js\": [\n\t\t173,\n\t\t98\n\t],\n\t\"./prism-ejs.js\": [\n\t\t174,\n\t\t99\n\t],\n\t\"./prism-ejs.min.js\": [\n\t\t175,\n\t\t100\n\t],\n\t\"./prism-elixir.js\": [\n\t\t176,\n\t\t101\n\t],\n\t\"./prism-elixir.min.js\": [\n\t\t177,\n\t\t102\n\t],\n\t\"./prism-elm.js\": [\n\t\t178,\n\t\t103\n\t],\n\t\"./prism-elm.min.js\": [\n\t\t179,\n\t\t104\n\t],\n\t\"./prism-erb.js\": [\n\t\t180,\n\t\t105\n\t],\n\t\"./prism-erb.min.js\": [\n\t\t181,\n\t\t106\n\t],\n\t\"./prism-erlang.js\": [\n\t\t182,\n\t\t107\n\t],\n\t\"./prism-erlang.min.js\": [\n\t\t183,\n\t\t108\n\t],\n\t\"./prism-etlua.js\": [\n\t\t184,\n\t\t109\n\t],\n\t\"./prism-etlua.min.js\": [\n\t\t185,\n\t\t110\n\t],\n\t\"./prism-excel-formula.js\": [\n\t\t186,\n\t\t111\n\t],\n\t\"./prism-excel-formula.min.js\": [\n\t\t187,\n\t\t112\n\t],\n\t\"./prism-factor.js\": [\n\t\t188,\n\t\t113\n\t],\n\t\"./prism-factor.min.js\": [\n\t\t189,\n\t\t114\n\t],\n\t\"./prism-firestore-security-rules.js\": [\n\t\t190,\n\t\t115\n\t],\n\t\"./prism-firestore-security-rules.min.js\": [\n\t\t191,\n\t\t116\n\t],\n\t\"./prism-flow.js\": [\n\t\t192,\n\t\t117\n\t],\n\t\"./prism-flow.min.js\": [\n\t\t193,\n\t\t118\n\t],\n\t\"./prism-fortran.js\": [\n\t\t194,\n\t\t119\n\t],\n\t\"./prism-fortran.min.js\": [\n\t\t195,\n\t\t120\n\t],\n\t\"./prism-fsharp.js\": [\n\t\t196,\n\t\t121\n\t],\n\t\"./prism-fsharp.min.js\": [\n\t\t197,\n\t\t122\n\t],\n\t\"./prism-ftl.js\": [\n\t\t198,\n\t\t123\n\t],\n\t\"./prism-ftl.min.js\": [\n\t\t199,\n\t\t124\n\t],\n\t\"./prism-gcode.js\": [\n\t\t200,\n\t\t125\n\t],\n\t\"./prism-gcode.min.js\": [\n\t\t201,\n\t\t126\n\t],\n\t\"./prism-gdscript.js\": [\n\t\t202,\n\t\t127\n\t],\n\t\"./prism-gdscript.min.js\": [\n\t\t203,\n\t\t128\n\t],\n\t\"./prism-gedcom.js\": [\n\t\t204,\n\t\t129\n\t],\n\t\"./prism-gedcom.min.js\": [\n\t\t205,\n\t\t130\n\t],\n\t\"./prism-gherkin.js\": [\n\t\t206,\n\t\t131\n\t],\n\t\"./prism-gherkin.min.js\": [\n\t\t207,\n\t\t132\n\t],\n\t\"./prism-git.js\": [\n\t\t208,\n\t\t133\n\t],\n\t\"./prism-git.min.js\": [\n\t\t209,\n\t\t134\n\t],\n\t\"./prism-glsl.js\": [\n\t\t210,\n\t\t135\n\t],\n\t\"./prism-glsl.min.js\": [\n\t\t211,\n\t\t136\n\t],\n\t\"./prism-gml.js\": [\n\t\t212,\n\t\t137\n\t],\n\t\"./prism-gml.min.js\": [\n\t\t213,\n\t\t138\n\t],\n\t\"./prism-go.js\": [\n\t\t214,\n\t\t139\n\t],\n\t\"./prism-go.min.js\": [\n\t\t215,\n\t\t140\n\t],\n\t\"./prism-graphql.js\": [\n\t\t216,\n\t\t141\n\t],\n\t\"./prism-graphql.min.js\": [\n\t\t217,\n\t\t142\n\t],\n\t\"./prism-groovy.js\": [\n\t\t218,\n\t\t143\n\t],\n\t\"./prism-groovy.min.js\": [\n\t\t219,\n\t\t144\n\t],\n\t\"./prism-haml.js\": [\n\t\t220,\n\t\t145\n\t],\n\t\"./prism-haml.min.js\": [\n\t\t221,\n\t\t146\n\t],\n\t\"./prism-handlebars.js\": [\n\t\t222,\n\t\t147\n\t],\n\t\"./prism-handlebars.min.js\": [\n\t\t223,\n\t\t148\n\t],\n\t\"./prism-haskell.js\": [\n\t\t224,\n\t\t149\n\t],\n\t\"./prism-haskell.min.js\": [\n\t\t225,\n\t\t150\n\t],\n\t\"./prism-haxe.js\": [\n\t\t226,\n\t\t151\n\t],\n\t\"./prism-haxe.min.js\": [\n\t\t227,\n\t\t152\n\t],\n\t\"./prism-hcl.js\": [\n\t\t228,\n\t\t153\n\t],\n\t\"./prism-hcl.min.js\": [\n\t\t229,\n\t\t154\n\t],\n\t\"./prism-hpkp.js\": [\n\t\t230,\n\t\t155\n\t],\n\t\"./prism-hpkp.min.js\": [\n\t\t231,\n\t\t156\n\t],\n\t\"./prism-hsts.js\": [\n\t\t232,\n\t\t157\n\t],\n\t\"./prism-hsts.min.js\": [\n\t\t233,\n\t\t158\n\t],\n\t\"./prism-http.js\": [\n\t\t234,\n\t\t159\n\t],\n\t\"./prism-http.min.js\": [\n\t\t235,\n\t\t160\n\t],\n\t\"./prism-ichigojam.js\": [\n\t\t236,\n\t\t161\n\t],\n\t\"./prism-ichigojam.min.js\": [\n\t\t237,\n\t\t162\n\t],\n\t\"./prism-icon.js\": [\n\t\t238,\n\t\t163\n\t],\n\t\"./prism-icon.min.js\": [\n\t\t239,\n\t\t164\n\t],\n\t\"./prism-inform7.js\": [\n\t\t240,\n\t\t165\n\t],\n\t\"./prism-inform7.min.js\": [\n\t\t241,\n\t\t166\n\t],\n\t\"./prism-ini.js\": [\n\t\t242,\n\t\t167\n\t],\n\t\"./prism-ini.min.js\": [\n\t\t243,\n\t\t168\n\t],\n\t\"./prism-io.js\": [\n\t\t244,\n\t\t169\n\t],\n\t\"./prism-io.min.js\": [\n\t\t245,\n\t\t170\n\t],\n\t\"./prism-j.js\": [\n\t\t246,\n\t\t171\n\t],\n\t\"./prism-j.min.js\": [\n\t\t247,\n\t\t172\n\t],\n\t\"./prism-java.js\": [\n\t\t248,\n\t\t173\n\t],\n\t\"./prism-java.min.js\": [\n\t\t249,\n\t\t174\n\t],\n\t\"./prism-javadoc.js\": [\n\t\t250,\n\t\t175\n\t],\n\t\"./prism-javadoc.min.js\": [\n\t\t251,\n\t\t176\n\t],\n\t\"./prism-javadoclike.js\": [\n\t\t252,\n\t\t177\n\t],\n\t\"./prism-javadoclike.min.js\": [\n\t\t253,\n\t\t178\n\t],\n\t\"./prism-javascript.js\": [\n\t\t254,\n\t\t179\n\t],\n\t\"./prism-javascript.min.js\": [\n\t\t255,\n\t\t180\n\t],\n\t\"./prism-javastacktrace.js\": [\n\t\t256,\n\t\t181\n\t],\n\t\"./prism-javastacktrace.min.js\": [\n\t\t257,\n\t\t182\n\t],\n\t\"./prism-jolie.js\": [\n\t\t258,\n\t\t183\n\t],\n\t\"./prism-jolie.min.js\": [\n\t\t259,\n\t\t184\n\t],\n\t\"./prism-jq.js\": [\n\t\t260,\n\t\t185\n\t],\n\t\"./prism-jq.min.js\": [\n\t\t261,\n\t\t186\n\t],\n\t\"./prism-js-extras.js\": [\n\t\t262,\n\t\t187\n\t],\n\t\"./prism-js-extras.min.js\": [\n\t\t263,\n\t\t188\n\t],\n\t\"./prism-js-templates.js\": [\n\t\t264,\n\t\t189\n\t],\n\t\"./prism-js-templates.min.js\": [\n\t\t265,\n\t\t190\n\t],\n\t\"./prism-jsdoc.js\": [\n\t\t266,\n\t\t191\n\t],\n\t\"./prism-jsdoc.min.js\": [\n\t\t267,\n\t\t192\n\t],\n\t\"./prism-json.js\": [\n\t\t268,\n\t\t193\n\t],\n\t\"./prism-json.min.js\": [\n\t\t269,\n\t\t194\n\t],\n\t\"./prism-json5.js\": [\n\t\t270,\n\t\t195\n\t],\n\t\"./prism-json5.min.js\": [\n\t\t271,\n\t\t196\n\t],\n\t\"./prism-jsonp.js\": [\n\t\t272,\n\t\t197\n\t],\n\t\"./prism-jsonp.min.js\": [\n\t\t273,\n\t\t198\n\t],\n\t\"./prism-jsx.js\": [\n\t\t274,\n\t\t199\n\t],\n\t\"./prism-jsx.min.js\": [\n\t\t275,\n\t\t200\n\t],\n\t\"./prism-julia.js\": [\n\t\t276,\n\t\t201\n\t],\n\t\"./prism-julia.min.js\": [\n\t\t277,\n\t\t202\n\t],\n\t\"./prism-keyman.js\": [\n\t\t278,\n\t\t203\n\t],\n\t\"./prism-keyman.min.js\": [\n\t\t279,\n\t\t204\n\t],\n\t\"./prism-kotlin.js\": [\n\t\t280,\n\t\t205\n\t],\n\t\"./prism-kotlin.min.js\": [\n\t\t281,\n\t\t206\n\t],\n\t\"./prism-latex.js\": [\n\t\t282,\n\t\t207\n\t],\n\t\"./prism-latex.min.js\": [\n\t\t283,\n\t\t208\n\t],\n\t\"./prism-latte.js\": [\n\t\t284,\n\t\t209\n\t],\n\t\"./prism-latte.min.js\": [\n\t\t285,\n\t\t210\n\t],\n\t\"./prism-less.js\": [\n\t\t286,\n\t\t211\n\t],\n\t\"./prism-less.min.js\": [\n\t\t287,\n\t\t212\n\t],\n\t\"./prism-lilypond.js\": [\n\t\t288,\n\t\t213\n\t],\n\t\"./prism-lilypond.min.js\": [\n\t\t289,\n\t\t214\n\t],\n\t\"./prism-liquid.js\": [\n\t\t290,\n\t\t215\n\t],\n\t\"./prism-liquid.min.js\": [\n\t\t291,\n\t\t216\n\t],\n\t\"./prism-lisp.js\": [\n\t\t292,\n\t\t217\n\t],\n\t\"./prism-lisp.min.js\": [\n\t\t293,\n\t\t218\n\t],\n\t\"./prism-livescript.js\": [\n\t\t294,\n\t\t219\n\t],\n\t\"./prism-livescript.min.js\": [\n\t\t295,\n\t\t220\n\t],\n\t\"./prism-llvm.js\": [\n\t\t296,\n\t\t221\n\t],\n\t\"./prism-llvm.min.js\": [\n\t\t297,\n\t\t222\n\t],\n\t\"./prism-lolcode.js\": [\n\t\t298,\n\t\t223\n\t],\n\t\"./prism-lolcode.min.js\": [\n\t\t299,\n\t\t224\n\t],\n\t\"./prism-lua.js\": [\n\t\t300,\n\t\t225\n\t],\n\t\"./prism-lua.min.js\": [\n\t\t301,\n\t\t226\n\t],\n\t\"./prism-makefile.js\": [\n\t\t302,\n\t\t227\n\t],\n\t\"./prism-makefile.min.js\": [\n\t\t303,\n\t\t228\n\t],\n\t\"./prism-markdown.js\": [\n\t\t304,\n\t\t229\n\t],\n\t\"./prism-markdown.min.js\": [\n\t\t305,\n\t\t230\n\t],\n\t\"./prism-markup-templating.js\": [\n\t\t306,\n\t\t231\n\t],\n\t\"./prism-markup-templating.min.js\": [\n\t\t307,\n\t\t232\n\t],\n\t\"./prism-markup.js\": [\n\t\t308,\n\t\t233\n\t],\n\t\"./prism-markup.min.js\": [\n\t\t309,\n\t\t234\n\t],\n\t\"./prism-matlab.js\": [\n\t\t310,\n\t\t235\n\t],\n\t\"./prism-matlab.min.js\": [\n\t\t311,\n\t\t236\n\t],\n\t\"./prism-mel.js\": [\n\t\t312,\n\t\t237\n\t],\n\t\"./prism-mel.min.js\": [\n\t\t313,\n\t\t238\n\t],\n\t\"./prism-mizar.js\": [\n\t\t314,\n\t\t239\n\t],\n\t\"./prism-mizar.min.js\": [\n\t\t315,\n\t\t240\n\t],\n\t\"./prism-monkey.js\": [\n\t\t316,\n\t\t241\n\t],\n\t\"./prism-monkey.min.js\": [\n\t\t317,\n\t\t242\n\t],\n\t\"./prism-moonscript.js\": [\n\t\t318,\n\t\t243\n\t],\n\t\"./prism-moonscript.min.js\": [\n\t\t319,\n\t\t244\n\t],\n\t\"./prism-n1ql.js\": [\n\t\t320,\n\t\t245\n\t],\n\t\"./prism-n1ql.min.js\": [\n\t\t321,\n\t\t246\n\t],\n\t\"./prism-n4js.js\": [\n\t\t322,\n\t\t247\n\t],\n\t\"./prism-n4js.min.js\": [\n\t\t323,\n\t\t248\n\t],\n\t\"./prism-nand2tetris-hdl.js\": [\n\t\t324,\n\t\t249\n\t],\n\t\"./prism-nand2tetris-hdl.min.js\": [\n\t\t325,\n\t\t250\n\t],\n\t\"./prism-nasm.js\": [\n\t\t326,\n\t\t251\n\t],\n\t\"./prism-nasm.min.js\": [\n\t\t327,\n\t\t252\n\t],\n\t\"./prism-neon.js\": [\n\t\t328,\n\t\t253\n\t],\n\t\"./prism-neon.min.js\": [\n\t\t329,\n\t\t254\n\t],\n\t\"./prism-nginx.js\": [\n\t\t330,\n\t\t255\n\t],\n\t\"./prism-nginx.min.js\": [\n\t\t331,\n\t\t256\n\t],\n\t\"./prism-nim.js\": [\n\t\t332,\n\t\t257\n\t],\n\t\"./prism-nim.min.js\": [\n\t\t333,\n\t\t258\n\t],\n\t\"./prism-nix.js\": [\n\t\t334,\n\t\t259\n\t],\n\t\"./prism-nix.min.js\": [\n\t\t335,\n\t\t260\n\t],\n\t\"./prism-nsis.js\": [\n\t\t336,\n\t\t261\n\t],\n\t\"./prism-nsis.min.js\": [\n\t\t337,\n\t\t262\n\t],\n\t\"./prism-objectivec.js\": [\n\t\t338,\n\t\t263\n\t],\n\t\"./prism-objectivec.min.js\": [\n\t\t339,\n\t\t264\n\t],\n\t\"./prism-ocaml.js\": [\n\t\t340,\n\t\t265\n\t],\n\t\"./prism-ocaml.min.js\": [\n\t\t341,\n\t\t266\n\t],\n\t\"./prism-opencl.js\": [\n\t\t342,\n\t\t267\n\t],\n\t\"./prism-opencl.min.js\": [\n\t\t343,\n\t\t268\n\t],\n\t\"./prism-oz.js\": [\n\t\t344,\n\t\t269\n\t],\n\t\"./prism-oz.min.js\": [\n\t\t345,\n\t\t270\n\t],\n\t\"./prism-parigp.js\": [\n\t\t346,\n\t\t271\n\t],\n\t\"./prism-parigp.min.js\": [\n\t\t347,\n\t\t272\n\t],\n\t\"./prism-parser.js\": [\n\t\t348,\n\t\t273\n\t],\n\t\"./prism-parser.min.js\": [\n\t\t349,\n\t\t274\n\t],\n\t\"./prism-pascal.js\": [\n\t\t350,\n\t\t275\n\t],\n\t\"./prism-pascal.min.js\": [\n\t\t351,\n\t\t276\n\t],\n\t\"./prism-pascaligo.js\": [\n\t\t352,\n\t\t277\n\t],\n\t\"./prism-pascaligo.min.js\": [\n\t\t353,\n\t\t278\n\t],\n\t\"./prism-pcaxis.js\": [\n\t\t354,\n\t\t279\n\t],\n\t\"./prism-pcaxis.min.js\": [\n\t\t355,\n\t\t280\n\t],\n\t\"./prism-perl.js\": [\n\t\t356,\n\t\t281\n\t],\n\t\"./prism-perl.min.js\": [\n\t\t357,\n\t\t282\n\t],\n\t\"./prism-php-extras.js\": [\n\t\t358,\n\t\t283\n\t],\n\t\"./prism-php-extras.min.js\": [\n\t\t359,\n\t\t284\n\t],\n\t\"./prism-php.js\": [\n\t\t360,\n\t\t285\n\t],\n\t\"./prism-php.min.js\": [\n\t\t361,\n\t\t286\n\t],\n\t\"./prism-phpdoc.js\": [\n\t\t362,\n\t\t287\n\t],\n\t\"./prism-phpdoc.min.js\": [\n\t\t363,\n\t\t288\n\t],\n\t\"./prism-plsql.js\": [\n\t\t364,\n\t\t289\n\t],\n\t\"./prism-plsql.min.js\": [\n\t\t365,\n\t\t290\n\t],\n\t\"./prism-powerquery.js\": [\n\t\t366,\n\t\t291\n\t],\n\t\"./prism-powerquery.min.js\": [\n\t\t367,\n\t\t292\n\t],\n\t\"./prism-powershell.js\": [\n\t\t368,\n\t\t293\n\t],\n\t\"./prism-powershell.min.js\": [\n\t\t369,\n\t\t294\n\t],\n\t\"./prism-processing.js\": [\n\t\t370,\n\t\t295\n\t],\n\t\"./prism-processing.min.js\": [\n\t\t371,\n\t\t296\n\t],\n\t\"./prism-prolog.js\": [\n\t\t372,\n\t\t297\n\t],\n\t\"./prism-prolog.min.js\": [\n\t\t373,\n\t\t298\n\t],\n\t\"./prism-properties.js\": [\n\t\t374,\n\t\t299\n\t],\n\t\"./prism-properties.min.js\": [\n\t\t375,\n\t\t300\n\t],\n\t\"./prism-protobuf.js\": [\n\t\t376,\n\t\t301\n\t],\n\t\"./prism-protobuf.min.js\": [\n\t\t377,\n\t\t302\n\t],\n\t\"./prism-pug.js\": [\n\t\t378,\n\t\t303\n\t],\n\t\"./prism-pug.min.js\": [\n\t\t379,\n\t\t304\n\t],\n\t\"./prism-puppet.js\": [\n\t\t380,\n\t\t305\n\t],\n\t\"./prism-puppet.min.js\": [\n\t\t381,\n\t\t306\n\t],\n\t\"./prism-pure.js\": [\n\t\t382,\n\t\t307\n\t],\n\t\"./prism-pure.min.js\": [\n\t\t383,\n\t\t308\n\t],\n\t\"./prism-python.js\": [\n\t\t384,\n\t\t309\n\t],\n\t\"./prism-python.min.js\": [\n\t\t385,\n\t\t310\n\t],\n\t\"./prism-q.js\": [\n\t\t386,\n\t\t311\n\t],\n\t\"./prism-q.min.js\": [\n\t\t387,\n\t\t312\n\t],\n\t\"./prism-qml.js\": [\n\t\t388,\n\t\t313\n\t],\n\t\"./prism-qml.min.js\": [\n\t\t389,\n\t\t314\n\t],\n\t\"./prism-qore.js\": [\n\t\t390,\n\t\t315\n\t],\n\t\"./prism-qore.min.js\": [\n\t\t391,\n\t\t316\n\t],\n\t\"./prism-r.js\": [\n\t\t392,\n\t\t317\n\t],\n\t\"./prism-r.min.js\": [\n\t\t393,\n\t\t318\n\t],\n\t\"./prism-reason.js\": [\n\t\t394,\n\t\t319\n\t],\n\t\"./prism-reason.min.js\": [\n\t\t395,\n\t\t320\n\t],\n\t\"./prism-regex.js\": [\n\t\t396,\n\t\t321\n\t],\n\t\"./prism-regex.min.js\": [\n\t\t397,\n\t\t322\n\t],\n\t\"./prism-renpy.js\": [\n\t\t398,\n\t\t323\n\t],\n\t\"./prism-renpy.min.js\": [\n\t\t399,\n\t\t324\n\t],\n\t\"./prism-rest.js\": [\n\t\t400,\n\t\t325\n\t],\n\t\"./prism-rest.min.js\": [\n\t\t401,\n\t\t326\n\t],\n\t\"./prism-rip.js\": [\n\t\t402,\n\t\t327\n\t],\n\t\"./prism-rip.min.js\": [\n\t\t403,\n\t\t328\n\t],\n\t\"./prism-roboconf.js\": [\n\t\t404,\n\t\t329\n\t],\n\t\"./prism-roboconf.min.js\": [\n\t\t405,\n\t\t330\n\t],\n\t\"./prism-robotframework.js\": [\n\t\t406,\n\t\t331\n\t],\n\t\"./prism-robotframework.min.js\": [\n\t\t407,\n\t\t332\n\t],\n\t\"./prism-ruby.js\": [\n\t\t408,\n\t\t333\n\t],\n\t\"./prism-ruby.min.js\": [\n\t\t409,\n\t\t334\n\t],\n\t\"./prism-rust.js\": [\n\t\t410,\n\t\t335\n\t],\n\t\"./prism-rust.min.js\": [\n\t\t411,\n\t\t336\n\t],\n\t\"./prism-sas.js\": [\n\t\t412,\n\t\t337\n\t],\n\t\"./prism-sas.min.js\": [\n\t\t413,\n\t\t338\n\t],\n\t\"./prism-sass.js\": [\n\t\t414,\n\t\t339\n\t],\n\t\"./prism-sass.min.js\": [\n\t\t415,\n\t\t340\n\t],\n\t\"./prism-scala.js\": [\n\t\t416,\n\t\t341\n\t],\n\t\"./prism-scala.min.js\": [\n\t\t417,\n\t\t342\n\t],\n\t\"./prism-scheme.js\": [\n\t\t418,\n\t\t343\n\t],\n\t\"./prism-scheme.min.js\": [\n\t\t419,\n\t\t344\n\t],\n\t\"./prism-scss.js\": [\n\t\t420,\n\t\t345\n\t],\n\t\"./prism-scss.min.js\": [\n\t\t421,\n\t\t346\n\t],\n\t\"./prism-shell-session.js\": [\n\t\t422,\n\t\t347\n\t],\n\t\"./prism-shell-session.min.js\": [\n\t\t423,\n\t\t348\n\t],\n\t\"./prism-smalltalk.js\": [\n\t\t424,\n\t\t349\n\t],\n\t\"./prism-smalltalk.min.js\": [\n\t\t425,\n\t\t350\n\t],\n\t\"./prism-smarty.js\": [\n\t\t426,\n\t\t351\n\t],\n\t\"./prism-smarty.min.js\": [\n\t\t427,\n\t\t352\n\t],\n\t\"./prism-solidity.js\": [\n\t\t428,\n\t\t353\n\t],\n\t\"./prism-solidity.min.js\": [\n\t\t429,\n\t\t354\n\t],\n\t\"./prism-solution-file.js\": [\n\t\t430,\n\t\t355\n\t],\n\t\"./prism-solution-file.min.js\": [\n\t\t431,\n\t\t356\n\t],\n\t\"./prism-soy.js\": [\n\t\t432,\n\t\t357\n\t],\n\t\"./prism-soy.min.js\": [\n\t\t433,\n\t\t358\n\t],\n\t\"./prism-sparql.js\": [\n\t\t434,\n\t\t359\n\t],\n\t\"./prism-sparql.min.js\": [\n\t\t435,\n\t\t360\n\t],\n\t\"./prism-splunk-spl.js\": [\n\t\t436,\n\t\t361\n\t],\n\t\"./prism-splunk-spl.min.js\": [\n\t\t437,\n\t\t362\n\t],\n\t\"./prism-sqf.js\": [\n\t\t438,\n\t\t363\n\t],\n\t\"./prism-sqf.min.js\": [\n\t\t439,\n\t\t364\n\t],\n\t\"./prism-sql.js\": [\n\t\t440,\n\t\t365\n\t],\n\t\"./prism-sql.min.js\": [\n\t\t441,\n\t\t366\n\t],\n\t\"./prism-stylus.js\": [\n\t\t442,\n\t\t367\n\t],\n\t\"./prism-stylus.min.js\": [\n\t\t443,\n\t\t368\n\t],\n\t\"./prism-swift.js\": [\n\t\t444,\n\t\t369\n\t],\n\t\"./prism-swift.min.js\": [\n\t\t445,\n\t\t370\n\t],\n\t\"./prism-t4-cs.js\": [\n\t\t446,\n\t\t371\n\t],\n\t\"./prism-t4-cs.min.js\": [\n\t\t447,\n\t\t372\n\t],\n\t\"./prism-t4-templating.js\": [\n\t\t448,\n\t\t373\n\t],\n\t\"./prism-t4-templating.min.js\": [\n\t\t449,\n\t\t374\n\t],\n\t\"./prism-t4-vb.js\": [\n\t\t450,\n\t\t375\n\t],\n\t\"./prism-t4-vb.min.js\": [\n\t\t451,\n\t\t376\n\t],\n\t\"./prism-tap.js\": [\n\t\t452,\n\t\t377\n\t],\n\t\"./prism-tap.min.js\": [\n\t\t453,\n\t\t378\n\t],\n\t\"./prism-tcl.js\": [\n\t\t454,\n\t\t379\n\t],\n\t\"./prism-tcl.min.js\": [\n\t\t455,\n\t\t380\n\t],\n\t\"./prism-textile.js\": [\n\t\t456,\n\t\t381\n\t],\n\t\"./prism-textile.min.js\": [\n\t\t457,\n\t\t382\n\t],\n\t\"./prism-toml.js\": [\n\t\t458,\n\t\t383\n\t],\n\t\"./prism-toml.min.js\": [\n\t\t459,\n\t\t384\n\t],\n\t\"./prism-tsx.js\": [\n\t\t460,\n\t\t385\n\t],\n\t\"./prism-tsx.min.js\": [\n\t\t461,\n\t\t386\n\t],\n\t\"./prism-tt2.js\": [\n\t\t462,\n\t\t387\n\t],\n\t\"./prism-tt2.min.js\": [\n\t\t463,\n\t\t388\n\t],\n\t\"./prism-turtle.js\": [\n\t\t464,\n\t\t389\n\t],\n\t\"./prism-turtle.min.js\": [\n\t\t465,\n\t\t390\n\t],\n\t\"./prism-twig.js\": [\n\t\t466,\n\t\t391\n\t],\n\t\"./prism-twig.min.js\": [\n\t\t467,\n\t\t392\n\t],\n\t\"./prism-typescript.js\": [\n\t\t468,\n\t\t393\n\t],\n\t\"./prism-typescript.min.js\": [\n\t\t469,\n\t\t394\n\t],\n\t\"./prism-vala.js\": [\n\t\t470,\n\t\t395\n\t],\n\t\"./prism-vala.min.js\": [\n\t\t471,\n\t\t396\n\t],\n\t\"./prism-vbnet.js\": [\n\t\t472,\n\t\t397\n\t],\n\t\"./prism-vbnet.min.js\": [\n\t\t473,\n\t\t398\n\t],\n\t\"./prism-velocity.js\": [\n\t\t474,\n\t\t399\n\t],\n\t\"./prism-velocity.min.js\": [\n\t\t475,\n\t\t400\n\t],\n\t\"./prism-verilog.js\": [\n\t\t476,\n\t\t401\n\t],\n\t\"./prism-verilog.min.js\": [\n\t\t477,\n\t\t402\n\t],\n\t\"./prism-vhdl.js\": [\n\t\t478,\n\t\t403\n\t],\n\t\"./prism-vhdl.min.js\": [\n\t\t479,\n\t\t404\n\t],\n\t\"./prism-vim.js\": [\n\t\t480,\n\t\t405\n\t],\n\t\"./prism-vim.min.js\": [\n\t\t481,\n\t\t406\n\t],\n\t\"./prism-visual-basic.js\": [\n\t\t482,\n\t\t407\n\t],\n\t\"./prism-visual-basic.min.js\": [\n\t\t483,\n\t\t408\n\t],\n\t\"./prism-wasm.js\": [\n\t\t484,\n\t\t409\n\t],\n\t\"./prism-wasm.min.js\": [\n\t\t485,\n\t\t410\n\t],\n\t\"./prism-wiki.js\": [\n\t\t486,\n\t\t411\n\t],\n\t\"./prism-wiki.min.js\": [\n\t\t487,\n\t\t412\n\t],\n\t\"./prism-xeora.js\": [\n\t\t488,\n\t\t413\n\t],\n\t\"./prism-xeora.min.js\": [\n\t\t489,\n\t\t414\n\t],\n\t\"./prism-xojo.js\": [\n\t\t490,\n\t\t415\n\t],\n\t\"./prism-xojo.min.js\": [\n\t\t491,\n\t\t416\n\t],\n\t\"./prism-xquery.js\": [\n\t\t492,\n\t\t417\n\t],\n\t\"./prism-xquery.min.js\": [\n\t\t493,\n\t\t418\n\t],\n\t\"./prism-yaml.js\": [\n\t\t494,\n\t\t419\n\t],\n\t\"./prism-yaml.min.js\": [\n\t\t495,\n\t\t420\n\t],\n\t\"./prism-zig.js\": [\n\t\t496,\n\t\t421\n\t],\n\t\"./prism-zig.min.js\": [\n\t\t497,\n\t\t422\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\treturn __webpack_require__.t(id, 7);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 74;\nmodule.exports = webpackAsyncContext;","import React from 'react'\n\nconst contextValues = {\n hcDone: false,\n platform: \"\",\n git:\"\",\n node:\"\",\n globalRepoId: \"\",\n hcParams: {},\n presentRepo: [],\n modifiedGitFiles: [],\n gitUntrackedFiles: [],\n gitTrackedFiles: [] \n}\n\nexport const ContextProvider = React.createContext(contextValues)\n","// Global ENV file for all environment variables\n\n//PORTS LIST\n\nconsole.log(process.env.NODE_ENV);\nexport const PORT_GLOBAL_API =\n process.env.NODE_ENV === \"development\" ? 9001 : window.location.port;\n\n//CONFIG LIST\n\nexport const CONFIG_HTTP_MODE = \"http\";\n\n//API LIST\n\nexport const API_GLOBAL_GQL = \"gitconvexapi\";\n\nexport const globalAPIEndpoint = `${CONFIG_HTTP_MODE}://${window.location.hostname}:${PORT_GLOBAL_API}/${API_GLOBAL_GQL}`;\n\n// ROUTED FOR GLOBAL API\n\nexport const ROUTE_HEALTH_CHECK = \"HEALTH_CHECK\";\nexport const ROUTE_FETCH_REPO = \"FETCH_REPO\";\nexport const ROUTE_ADD_REPO = \"ADD_REPO\";\nexport const ROUTE_REPO_DETAILS = \"REPO_DETAILS\";\nexport const ROUTE_REPO_TRACKED_DIFF = \"REPO_TRACKED_DIFF\";\nexport const ROUTE_REPO_FILE_DIFF = \"REPO_FILE_DIFF\";\nexport const ROUTE_REPO_COMMIT_LOGS = \"COMMIT_LOGS\";\nexport const ROUTE_GIT_STAGED_FILES = \"GIT_STAGED_FILES\";\nexport const ROUTE_GIT_UNPUSHED_COMMITS = \"GIT_UNPUSHED_COMMITS\";\nexport const ROUTE_SETTINGS_DBPATH = \"SETTINGS_DBPATH\";\nexport const ROUTE_SETTINGS_REPODETAILS = \"SETTINGS_REPODETAILS\";\nexport const ROUTE_SETTINGS_PORT = \"SETTINGS_PORT\";\n","import {\n FolderOutlined,\n HelpOutline,\n SettingsOutlined,\n} from \"@material-ui/icons\";\nimport React from \"react\";\nimport { NavLink } from \"react-router-dom\";\n\nexport default function LeftPane(props) {\n const menuItemParams = [\n {\n link: \"/dashboard/repository\",\n icon: (\n \n ),\n label: \"Repositories\",\n },\n {\n link: \"/dashboard/settings\",\n icon: (\n \n ),\n label: \"Settings\",\n },\n {\n link: \"/dashboard/help\",\n icon: (\n \n ),\n label: \"Help\",\n },\n ];\n\n return (\n
\n {\n props.parentProps.history.push(\"/dashboard\");\n }}\n >\n
\n
\n Git\n Convex\n
\n
\n
\n {menuItemParams.map((entry) => {\n return (\n \n
\n
{entry.icon}
\n
\n {entry.label}\n
\n
\n \n );\n })}\n
\n \n );\n}\n","import axios from \"axios\";\nimport React, { useRef, useState, useContext } from \"react\";\nimport { globalAPIEndpoint, ROUTE_ADD_REPO } from \"../../../../util/env_config\";\nimport { DELETE_PRESENT_REPO } from \"../../../../actionStore\";\nimport { ContextProvider } from \"../../../../context\";\n\nexport default function AddRepoForm(props) {\n const { state, dispatch } = useContext(ContextProvider);\n const [repoNameState, setRepoName] = useState(\"\");\n const [repoPathState, setRepoPath] = useState(\"\");\n const [repoAddFailed, setRepoAddFailed] = useState(false);\n const [repoAddSuccess, setRepoAddSuccess] = useState(false);\n\n const repoNameRef = useRef();\n const repoPathRef = useRef();\n const initCheckRef = useRef();\n\n function storeRepoAPI(repoName, repoPath) {\n if (repoName && repoPath) {\n let initCheck = false;\n\n if (initCheckRef.current.checked) {\n initCheck = true;\n }\n\n let payload = JSON.stringify(\n JSON.stringify({ repoName, repoPath, initCheck })\n );\n\n axios({\n url: globalAPIEndpoint,\n method: \"POST\",\n data: {\n query: `\n query GitConvexApi{\n gitConvexApi(route: \"${ROUTE_ADD_REPO}\", payload: ${payload}){\n addRepo{\n message\n }\n }\n }\n `,\n },\n })\n .then((res) => {\n if (res.data && res.data.data && !res.data.error) {\n const { message } = res.data.data.gitConvexApi.addRepo;\n\n if (message && !message.match(/FAIL/g)) {\n setRepoAddSuccess(true);\n setRepoAddFailed(false);\n repoNameRef.current.value = \"\";\n repoPathRef.current.value = \"\";\n initCheckRef.current.value = \"\";\n\n dispatch({\n action: DELETE_PRESENT_REPO,\n payload: [],\n });\n\n console.log(state.presentRepo);\n } else {\n setRepoAddFailed(true);\n setRepoAddSuccess(false);\n }\n } else {\n setRepoAddFailed(true);\n setRepoAddSuccess(false);\n }\n })\n .catch((err) => {\n console.log(err);\n setRepoAddFailed(true);\n setRepoAddSuccess(false);\n });\n } else {\n setRepoAddFailed(true);\n }\n }\n\n function resetAlertBanner() {\n setRepoAddFailed(false);\n setRepoAddSuccess(false);\n }\n\n function repoAddStatusBanner() {\n if (repoAddSuccess) {\n return (\n
\n New repo added\n
\n );\n } else if (repoAddFailed) {\n return (\n
\n Process failed! Please try again\n
\n );\n } else {\n return null;\n }\n }\n\n return (\n
\n
\n {repoAddStatusBanner()}\n
\n Enter Repo Details\n
\n
\n {\n setRepoName(event.target.value);\n }}\n ref={repoNameRef}\n onClick={() => {\n resetAlertBanner();\n }}\n >\n
\n
\n {\n setRepoPath(event.target.value);\n }}\n ref={repoPathRef}\n onClick={() => {\n resetAlertBanner();\n }}\n >\n
\n
\n \n \n Check this if the folder is not a git repo\n \n
\n
\n {\n props.formEnable(false);\n }}\n >\n Close\n
\n {\n storeRepoAPI(repoNameState, repoPathState);\n }}\n >\n Submit\n
\n
\n \n \n );\n}\n","export const HC_PARAM_ACTION = \"HC_PARAM_ACTION\";\nexport const HC_DONE_SWITCH = \"HC_DONE_SWITCH\";\nexport const PRESENT_REPO = \"PRESENT_REPO\";\nexport const GIT_TRACKED_FILES = \"GIT_TRACKED_FILES\";\nexport const GIT_GLOBAL_REPOID = \"GIT_GLOBAL_REPOID\";\nexport const GIT_ACTION_TRACKED_FILES = \"GIT_ACTION_TRACKED_FILES\";\nexport const GIT_ACTION_UNTRACKED_FILES = \"GIT_ACTION_UNTRACKED_FILES\";\nexport const DELETE_PRESENT_REPO = \"DELETE_PRESENT_REPO\";\n","import axios from \"axios\";\nimport React, { useEffect, useState } from \"react\";\nimport { NavLink } from \"react-router-dom\";\nimport {\n globalAPIEndpoint,\n ROUTE_REPO_DETAILS,\n} from \"../../../../util/env_config\";\nimport { library } from \"@fortawesome/fontawesome-svg-core\";\nimport { fab } from \"@fortawesome/free-brands-svg-icons\";\nimport { fas } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\n\nexport default function RepoCard(props) {\n library.add(fab, fas);\n const { repoData } = props;\n\n const [repoFooterData, setRepoFooterData] = useState(\"\");\n\n useEffect(() => {\n let repoId = props.repoData.id;\n const payload = JSON.stringify(JSON.stringify({ repoId: repoId }));\n\n const token = axios.CancelToken;\n const source = token.source();\n\n axios({\n url: globalAPIEndpoint,\n method: \"POST\",\n headers: {\n \"Content-type\": \"application/json\",\n },\n cancelToken: source.token,\n data: {\n query: `\n \n query GitConvexApi\n {\n gitConvexApi(route: \"${ROUTE_REPO_DETAILS}\", payload: ${payload}){\n gitRepoStatus {\n gitTotalCommits\n gitTotalTrackedFiles \n gitCurrentBranch \n }\n }\n }\n `,\n },\n })\n .then((res) => {\n setRepoFooterData(res.data.data.gitConvexApi.gitRepoStatus);\n })\n .catch((err) => {});\n\n return () => {\n source.cancel();\n };\n }, [props]);\n\n const repoName = repoData.repoName;\n var avatar = \"\";\n\n if (repoName) {\n if (repoName.split(\" \").length > 1) {\n let tempName = repoName.split(\" \");\n avatar = tempName[0].substring(0, 1) + tempName[1].substring(0, 1);\n avatar = avatar.toUpperCase();\n } else {\n avatar = repoName.substring(0, 1).toUpperCase();\n }\n }\n\n return (\n \n
\n {avatar}\n
\n
\n {repoData.repoName}\n
\n
\n
\n \n
\n {repoFooterData.gitTotalCommits} Commits\n
\n
\n
\n \n
\n {repoFooterData.gitTotalTrackedFiles} Tracked Files\n
\n
\n
\n \n
\n {repoFooterData.gitCurrentBranch}\n
\n
\n
\n \n );\n}\n","import axios from \"axios\";\nimport React, { useContext, useEffect, useState } from \"react\";\nimport { PRESENT_REPO, DELETE_PRESENT_REPO } from \"../../../../actionStore\";\nimport { ContextProvider } from \"../../../../context\";\nimport {\n globalAPIEndpoint,\n ROUTE_FETCH_REPO,\n} from \"../../../../util/env_config\";\nimport AddRepoFormComponent from \"./AddRepoForm\";\nimport RepoCard from \"./RepoCard\";\n\nexport default function RepoComponent(props) {\n const [repo, setRepo] = useState([]);\n const [repoFormEnable, setRepoFormEnable] = useState(false);\n\n const { dispatch } = useContext(ContextProvider);\n\n useEffect(() => {\n const fetchRepoURL = globalAPIEndpoint;\n\n const token = axios.CancelToken;\n const source = token.source();\n\n axios({\n url: fetchRepoURL,\n method: \"POST\",\n cancelToken: source.token,\n data: {\n query: `\n query GitConvexResults{\n gitConvexApi(route: \"${ROUTE_FETCH_REPO}\"){\n fetchRepo{\n repoId\n repoName\n repoPath\n }\n }\n }\n `,\n },\n }).then((res) => {\n const apiResponse = res.data.data.gitConvexApi.fetchRepo;\n\n if (apiResponse) {\n const { repoId, repoName } = apiResponse;\n let repoContent = [];\n\n repoId.forEach((entry, index) => {\n repoContent.push({ id: entry, repoName: repoName[index] });\n });\n\n setRepo(repoContent);\n\n dispatch({\n type: DELETE_PRESENT_REPO,\n payload: [],\n });\n\n dispatch({\n action: PRESENT_REPO,\n payload: [...repoContent],\n });\n }\n });\n\n return () => {\n source.cancel();\n };\n }, [repoFormEnable, dispatch]);\n\n const showAvailableRepo = () => {\n const repoArray = repo;\n\n return (\n <>\n
\n <>\n {repoArray.length > 0 ? (\n <>\n {repoArray.map((entry) => {\n return ;\n })}\n \n ) : (\n
\n No repos present. Press + to add a new repo\n
\n )}\n \n
\n <>\n {\n setRepoFormEnable(true);\n }}\n onMouseEnter={(event) => {\n event.stopPropagation();\n event.preventDefault();\n let popUp = `
Click to add a new repo
`;\n event.target.innerHTML += popUp;\n }}\n onMouseLeave={(event) => {\n event.target.innerHTML = \"+\";\n }}\n >\n +\n \n \n \n );\n };\n\n const addFormRemove = (param) => {\n setRepoFormEnable(param);\n };\n\n return (\n
\n {!repoFormEnable ? (\n showAvailableRepo()\n ) : (\n \n )}\n
\n );\n}\n","import React from \"react\";\nimport RepoComponent from \"../Repository/RepoComponents/RepoComponent\";\n\nexport default function RightPane(props) {\n const { platform, gitVersion, nodeVersion } = props.params;\n\n const hcParams = [\n {\n label: \"Platform\",\n value: platform,\n },\n {\n label: \"Git\",\n value: gitVersion,\n },\n {\n label: \"Node\",\n value: nodeVersion,\n },\n ];\n\n return (\n <>\n
\n
\n {hcParams.map((entry) => {\n return (\n \n
\n {entry.label}\n
\n {entry.value !== \"\" ? (\n \n {entry.value}\n
\n ) : (\n
\n Invalid\n
\n )}\n
\n );\n })}\n \n {repoEntry()}\n \n \n );\n\n function repoEntry() {\n if (platform && gitVersion && nodeVersion) {\n return ;\n }\n }\n}\n","import { library } from \"@fortawesome/fontawesome-svg-core\";\nimport { fab } from \"@fortawesome/free-brands-svg-icons\";\nimport { fas } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport React from \"react\";\n\nexport default function Help() {\n library.add(fas, fab);\n\n return (\n
\n
\n \n
Help and Support
\n
\n
\n
\n Facing an issue or need any help?\n
\n \n Before raising an issue, make sure you have gone through the\n \n \n \n Documentation\n \n \n
\n\n
\n
\n Have any queries or want to share your feedback?\n
\n
\n
\n Lets have a discussion on\n
\n\n \n
\n \n
discord
\n
\n \n
\n
\n\n
\n
\n You can also use the github issue reporting feature to report any\n issue you find in the platform\n
\n \n
\n \n
Report an issue
\n
\n \n
\n\n
\n
\n gitconvex is open source and please visit the repo if you are\n interested in contributing to the platform\n
\n\n
\n \n
\n \n
\n
gitconvex UI
\n \n\n \n
\n \n
\n
gitconvex server
\n \n
\n
\n
\n );\n}\n","import axios from \"axios\";\nimport * as Prism from \"prismjs\";\nimport React, { useContext, useEffect, useState } from \"react\";\nimport { GIT_TRACKED_FILES } from \"../../../../actionStore\";\nimport { ContextProvider } from \"../../../../context\";\nimport {\n globalAPIEndpoint,\n ROUTE_REPO_FILE_DIFF,\n ROUTE_REPO_TRACKED_DIFF,\n} from \"../../../../util/env_config\";\nimport \"../../../../prism.css\";\n\nimport { v4 as uuidv4 } from \"uuid\";\n\nexport default function GitDiffViewComponent() {\n const { state, dispatch } = useContext(ContextProvider);\n const repoId = state.globalRepoId;\n\n const [changedFiles, setChangedFiles] = useState([]);\n const [diffStatState, setDiffStatState] = useState(\n \"Click on a file item to see the difference\"\n );\n const [fileLineDiffState, setFileLineDiffState] = useState([]);\n const [activeFileName, setActiveFileName] = useState(\"\");\n const [isApiCalled, setIsApiCalled] = useState(false);\n const [isLangSelected, setIsLangSelected] = useState(false);\n const [warnStatus, setWarnStatus] = useState(\"\");\n const [lang, setLang] = useState(\"\");\n\n const langEnum = {\n js: \"javascript\",\n java: \"java\",\n py: \"python\",\n c: \"c\",\n cpp: \"cpp\",\n go: \"go\",\n rust: \"rust\",\n ts: \"typescript\",\n dart: \"dart\",\n php: \"php\",\n html: \"markup\",\n json: \"json\",\n xml: \"markup\",\n yaml: \"yaml\",\n yml: \"yaml\",\n rb: \"ruby\",\n jsx: \"jsx\",\n kt: \"kotlin\",\n ktm: \"kotlin\",\n kts: \"kotlin\",\n cs: \"csharp\",\n vb: \"visual-basic\",\n css: \"css\",\n };\n\n useEffect(() => {\n let repoId = state.globalRepoId;\n\n setIsLangSelected(false);\n setActiveFileName(\"\");\n setFileLineDiffState(\"Click on a file item to see the difference\");\n setDiffStatState(\"Click on a file item to see the difference\");\n let apiEndPoint = globalAPIEndpoint;\n if (repoId) {\n const payload = JSON.stringify(JSON.stringify({ repoId: repoId }));\n\n axios({\n url: apiEndPoint,\n method: \"POST\",\n headers: {\n \"Content-type\": \"application/json\",\n },\n data: {\n query: `\n query GitConvexApi{\n gitConvexApi(route: \"${ROUTE_REPO_TRACKED_DIFF}\", payload:${payload})\n {\n gitChanges{\n gitChangedFiles\n }\n }\n }\n `,\n },\n })\n .then((res) => {\n if (res) {\n if (res.data.data && !res.data.error) {\n var apiData = res.data.data.gitConvexApi.gitChanges;\n const { gitChangedFiles } = apiData;\n setChangedFiles([...gitChangedFiles]);\n setIsApiCalled(true);\n dispatch({ type: GIT_TRACKED_FILES, payload: gitChangedFiles });\n }\n }\n })\n .catch((err) => {\n return err;\n });\n }\n }, [state.globalRepoId, dispatch]);\n\n function getDiffFiles() {\n return (\n <>\n {changedFiles.length >= 1 &&\n changedFiles.map((entry) => {\n if (entry && entry.split(\",\")[0] === \"M\") {\n let fileEntry = entry.split(\",\")[1];\n const styleSelector = \" bg-indigo-100 border-b border-indigo-400\";\n return (\n {\n setActiveFileName(fileEntry);\n fileDiffStatComponent(repoId, fileEntry);\n }}\n key={fileEntry}\n >\n {fileEntry}\n \n );\n } else {\n return null;\n }\n })}\n \n );\n }\n\n const languageDetector = (fileName) => {\n const fileType = fileName.split(\".\")[fileName.split(\".\").length - 1];\n\n if (fileType) {\n setIsLangSelected(true);\n if (fileType in langEnum) {\n return langEnum[fileType];\n } else {\n return \"markup\";\n }\n }\n };\n\n function fileDiffStatComponent(repoId, fileName) {\n const apiEndPoint = globalAPIEndpoint;\n setIsLangSelected(false);\n setWarnStatus(\"\");\n\n const payload = JSON.stringify(\n JSON.stringify({ repoId: repoId, fileName: fileName })\n );\n\n axios({\n url: apiEndPoint,\n method: \"POST\",\n headers: {\n \"Content-type\": \"application/json\",\n },\n data: {\n query: `\n query GitConvexApi{\n gitConvexApi(route: \"${ROUTE_REPO_FILE_DIFF}\", payload:${payload})\n {\n gitFileLineChanges{\n diffStat\n fileDiff\n }\n }\n }\n `,\n },\n })\n .then(async (res) => {\n if (res.data.data && !res.data.error) {\n const {\n diffStat,\n fileDiff,\n } = res.data.data.gitConvexApi.gitFileLineChanges;\n\n if (diffStat[0] === \"NO_STAT\" || fileDiff[0] === \"NO_DIFF\") {\n setWarnStatus(\n \"No difference could be found. Please check if the file is present in the repo!\"\n );\n } else {\n setDiffStatState(diffStat[1]);\n setFileLineDiffState(fileDiff);\n\n var selectedLang = languageDetector(fileName);\n\n await import(\"prismjs/components/prism-\" + selectedLang + \".js\")\n .then(() => {})\n .catch((err) => {\n console.log(err);\n });\n\n setLang(selectedLang);\n }\n } else {\n setWarnStatus(\n \"Error while fetching the file difference. Please try reloading the view!\"\n );\n }\n })\n .catch((err) => {\n console.log(err);\n setWarnStatus(\n \"Error while fetching the file difference. Please try reloading the view!\"\n );\n });\n }\n\n function statFormat() {\n if (diffStatState && diffStatState.includes(\",\")) {\n let splitStat = diffStatState.split(\",\");\n\n return (\n
\n {splitStat[0]}\n {splitStat.slice(1, splitStat.length).map((parts) => {\n if (parts.match(/insert/i)) {\n return (\n \n {parts.toString().split(\" \")[1]}\n \n insertions (+)\n \n \n );\n } else {\n return (\n \n {parts.toString().split(\" \")[1]}\n \n deletions (-)\n \n \n );\n }\n })}\n
\n );\n }\n }\n\n function fileLineDiffComponent() {\n let splitLines = [];\n if (\n fileLineDiffState &&\n fileLineDiffState.join(\"\").split(/@@.*@@/gi) &&\n isLangSelected &&\n lang\n ) {\n let partFile = fileLineDiffState\n .join(\"|__HASH_SEPARATOR__|\")\n .split(/@@.*@@/gi)[1]\n .split(\"|__HASH_SEPARATOR__|\");\n\n splitLines = partFile.map((line) => {\n if (line[0] === \"+\") {\n return (\n
\n
\n                \n              
\n
\n );\n } else if (line[0] === \"-\") {\n return (\n
\n
\n                \n              
\n
\n );\n } else {\n return (\n
\n
\n                \n              
\n
\n );\n }\n });\n }\n\n return (\n
\n {splitLines}\n
\n );\n }\n\n return (\n <>\n {changedFiles && changedFiles.length > 0 ? (\n <>\n
\n
\n {getDiffFiles()}\n
\n\n {!activeFileName ? (\n
\n Click on a file to see difference information\n
\n ) : (\n \"\"\n )}\n\n {warnStatus ? (\n
\n {warnStatus}\n
\n ) : null}\n\n {diffStatState &&\n diffStatState !== \"Click on a file item to see the difference\" &&\n !warnStatus ? (\n
\n {diffStatState ? statFormat() : \"\"}\n {fileLineDiffState &&\n fileLineDiffState !==\n \"Click on a file item to see the difference\" ? (\n
\n {fileLineDiffComponent()}\n
\n ) : (\n \"\"\n )}\n
\n ) : (\n \"\"\n )}\n
\n \n ) : (\n <>\n {isApiCalled ? (\n
\n No Changed files are being tracked currently!\n
\n ) : null}\n \n )}\n \n );\n}\n","import React, { useEffect, useState, useRef } from \"react\";\nimport axios from \"axios\";\nimport {\n globalAPIEndpoint,\n ROUTE_GIT_STAGED_FILES,\n} from \"../../../../../util/env_config\";\n\nexport default function CommitComponent(props) {\n const { repoId } = props;\n\n const [loading, setLoading] = useState(true);\n const [stagedFilesState, setStagedFilesState] = useState([]);\n const [commitDone, setCommitDone] = useState(false);\n const [commitError, setCommitError] = useState(false);\n const [loadingCommit, setLoadingCommit] = useState(false);\n\n const commitRef = useRef();\n\n useEffect(() => {\n const payload = JSON.stringify(JSON.stringify({ repoId: props.repoId }));\n const cancelToken = axios.CancelToken;\n const source = cancelToken.source();\n\n axios({\n url: globalAPIEndpoint,\n method: \"POST\",\n headers: {\n \"Content-type\": \"application/json\",\n },\n cancelToken: source.token,\n data: {\n query: `\n query GitConvexApi{\n gitConvexApi(route: \"${ROUTE_GIT_STAGED_FILES}\", payload:${payload})\n {\n gitStagedFiles{\n stagedFiles\n }\n }\n }\n `,\n },\n })\n .then((res) => {\n const { stagedFiles } = res.data.data.gitConvexApi.gitStagedFiles;\n setLoading(false);\n\n if (stagedFiles && stagedFiles.length > 0) {\n setStagedFilesState([...stagedFiles]);\n }\n })\n .catch((err) => {\n setLoading(false);\n });\n\n return () => {\n source.cancel();\n };\n }, [props]);\n\n function commitHandler(commitMsg) {\n setLoadingCommit(true);\n if (commitMsg.split(\"\\n\") && commitMsg.split(\"\\n\").length > 0) {\n commitMsg = commitMsg.toString().split(\"\\n\").join(\"||\");\n }\n\n axios({\n url: globalAPIEndpoint,\n method: \"POST\",\n data: {\n query: `\n mutation GitConvexMutation{\n commitChanges(repoId: \"${repoId}\", commitMessage: \"${commitMsg}\")\n }\n `,\n },\n })\n .then((res) => {\n setLoadingCommit(false);\n\n if (\n res.data.data &&\n !res.data.error &&\n res.data.data.commitChanges === \"COMMIT_DONE\"\n ) {\n setCommitDone(true);\n } else {\n setCommitError(true);\n }\n })\n .catch((err) => {\n setLoadingCommit(false);\n setCommitError(true);\n });\n }\n\n function commitComponent() {\n if (stagedFilesState && stagedFilesState.length > 0) {\n const stagedCount = stagedFilesState.length;\n\n return (\n <>\n {!commitDone ? (\n
\n
\n {stagedCount} Changes to commit...\n
\n
\n {stagedFilesState.map((stagedFile) => {\n return (\n \n {stagedFile}\n
\n );\n })}\n
\n
Commit Message
\n \n {commitError ? (\n
\n Commit Failed!\n
\n ) : null}\n {loadingCommit ? (\n
\n Committing Changes...\n
\n ) : (\n {\n const commitMsg = commitRef.current.value;\n\n if (commitMsg) {\n commitHandler(commitMsg);\n } else {\n alert(\"Commit message can't be empty\");\n }\n }}\n >\n Commit Changes\n \n )}\n \n ) : (\n
\n All changes are committed!\n
\n )}\n \n );\n }\n }\n\n return (\n
\n {stagedFilesState && stagedFilesState.length > 0 ? (\n commitComponent()\n ) : (\n
\n {loading ? (\n Loading Commits...\n ) : (\n No Staged files to commit\n )}\n
\n )}\n
\n );\n}\n","import React, { useEffect, useState, useRef } from \"react\";\nimport axios from \"axios\";\nimport {\n globalAPIEndpoint,\n ROUTE_REPO_DETAILS,\n ROUTE_GIT_UNPUSHED_COMMITS,\n} from \"../../../../../util/env_config\";\n\nexport default function PushComponent(props) {\n const { repoId } = props;\n\n const [remoteData, setRemoteData] = useState();\n const [isRemoteSet, setIsRemoteSet] = useState(false);\n const [isBranchSet, setIsBranchSet] = useState(false);\n const [unpushedCommits, setUnpushedCommits] = useState([]);\n const [isCommitEmpty, setIsCommitEmpty] = useState(false);\n\n const [pushDone, setPushDone] = useState(false);\n const [pushFailed, setPushFailed] = useState(false);\n const [loading, setLoading] = useState(false);\n\n const remoteRef = useRef();\n const branchRef = useRef();\n\n useEffect(() => {\n let payload = JSON.stringify(JSON.stringify({ repoId: props.repoId }));\n\n axios({\n url: globalAPIEndpoint,\n method: \"POST\",\n headers: {\n \"Content-type\": \"application/json\",\n },\n data: {\n query: `\n query GitConvexApi\n {\n gitConvexApi(route: \"${ROUTE_REPO_DETAILS}\", payload: ${payload}){\n gitRepoStatus {\n gitRemoteData\n gitCurrentBranch\n gitRemoteHost\n gitBranchList \n }\n }\n }\n `,\n },\n })\n .then((res) => {\n const repoDetails = res.data.data.gitConvexApi.gitRepoStatus;\n setRemoteData(repoDetails);\n })\n .catch((err) => {\n console.log(err);\n });\n }, [props]);\n\n function getUnpushedCommits() {\n let payload = JSON.stringify(JSON.stringify({ repoId: props.repoId }));\n\n axios({\n url: globalAPIEndpoint,\n method: \"POST\",\n data: {\n query: `\n query GitConvexApi\n {\n gitConvexApi(route: \"${ROUTE_GIT_UNPUSHED_COMMITS}\", payload: ${payload}){\n gitUnpushedCommits{\n commits\n }\n }\n }\n `,\n },\n })\n .then((res) => {\n if (res.data.data && !res.data.error) {\n const { commits } = res.data.data.gitConvexApi.gitUnpushedCommits;\n if (commits.length === 0) {\n setIsCommitEmpty(true);\n }\n setUnpushedCommits([...commits]);\n }\n })\n .catch((err) => {\n console.log(err);\n });\n }\n\n function remoteHostGenerator() {\n if (remoteData) {\n const { gitRemoteData } = remoteData;\n if (gitRemoteData.includes(\"||\")) {\n return gitRemoteData.split(\"||\").map((item) => {\n return (\n \n );\n });\n } else {\n return ;\n }\n }\n }\n\n function branchListGenerator() {\n if (remoteData) {\n const { gitBranchList } = remoteData;\n\n return gitBranchList.map((branch) => {\n if (branch !== \"NO_BRANCH\") {\n return (\n \n );\n }\n return null;\n });\n }\n }\n\n function commitModel(commit) {\n const modelLabel = [\n \"Commit Hash\",\n \"Commit Author\",\n \"Commit Timestamp\",\n \"Commit Message\",\n ];\n const splitCommit = commit.split(\"||\");\n\n const localModelFormat = (left, right) => {\n return (\n
\n
\n {left}\n
\n
\n {right}\n
\n
\n );\n };\n\n return (\n
\n {modelLabel.map((label, index) => {\n return localModelFormat(label, splitCommit[index]);\n })}\n
\n );\n }\n\n function pushHandler(remote, branch) {\n setLoading(true);\n axios({\n url: globalAPIEndpoint,\n method: \"POST\",\n data: {\n query: `\n mutation GitConvexMutation{\n pushToRemote(repoId: \"${repoId}\", remoteHost: \"${remote}\", branch: \"${branch}\")\n }\n `,\n },\n })\n .then((res) => {\n if (res.data.data && !res.data.error) {\n const pushStatus = res.data.data.pushToRemote;\n if (pushStatus !== \"PUSH_FAILED\") {\n setPushDone(true);\n setLoading(false);\n } else {\n setPushFailed(true);\n setLoading(false);\n }\n } else {\n setPushFailed(true);\n setLoading(false);\n }\n })\n .catch((err) => {\n setPushFailed(true);\n setLoading(false);\n });\n }\n\n return (\n <>\n {!pushDone ? (\n <>\n
\n
\n Available remote repos\n
\n
\n {\n setIsRemoteSet(true);\n }}\n ref={remoteRef}\n >\n \n {remoteData ? remoteHostGenerator() : null}\n \n
\n\n {isRemoteSet ? (\n
\n {\n setIsBranchSet(true);\n getUnpushedCommits();\n }}\n ref={branchRef}\n >\n \n {remoteData ? branchListGenerator() : null}\n \n
\n ) : null}\n\n {unpushedCommits && unpushedCommits.length > 0 ? (\n
\n
\n Commits to be pushed\n
\n
\n {unpushedCommits.map((commits, index) => {\n return (\n \n {commitModel(commits)}\n
\n );\n })}\n
\n
\n ) : (\n
\n )}\n\n {pushFailed ? (\n <>\n
\n Push Failed!\n
\n \n ) : null}\n\n {isRemoteSet &&\n isBranchSet &&\n unpushedCommits.length > 0 &&\n !loading ? (\n {\n const remoteHost = remoteRef.current.value;\n const branchName = branchRef.current.value;\n\n if (remoteHost && branchName) {\n pushHandler(remoteHost, branchName);\n }\n }}\n >\n Push changes\n \n ) : (\n <>\n {isCommitEmpty ? (\n
\n No Commits to Push\n
\n ) : null}\n \n )}\n <>\n {loading ? (\n
\n Pushing to remote...\n
\n ) : null}\n \n \n \n ) : (\n
\n
\n All commits are pushed to remote\n
\n
\n )}\n \n );\n}\n","import React, { useEffect, useState } from \"react\";\nimport axios from \"axios\";\nimport { globalAPIEndpoint } from \"../../../../../util/env_config\";\n\nexport default function StageComponent(props) {\n const { stageComponents, repoId } = props;\n\n const [allStaged, setAllStaged] = useState(false);\n const [loading, setLodaing] = useState(false);\n const [errorInd, setErrorInd] = useState(false);\n\n useEffect(() => {\n if (!props) {\n return;\n }\n }, [props]);\n\n function stageAllChanges() {\n setLodaing(true);\n axios({\n url: globalAPIEndpoint,\n method: \"POST\",\n data: {\n query: `\n mutation GitConvexMutation{\n stageAllItems(repoId: \"${repoId}\")\n }\n `,\n },\n })\n .then((res) => {\n setLodaing(false);\n if (res.data.data && !res.data.error) {\n if (res.data.data.stageAllItems === \"ALL_STAGED\") {\n setAllStaged(true);\n }\n }\n })\n .catch((err) => {\n setLodaing(false);\n setErrorInd(true);\n });\n }\n\n return (\n <>\n
\n <>\n {stageComponents.length > 0 && !allStaged ? (\n <>\n
\n All these changes will be staged:\n
\n {stageComponents &&\n stageComponents.map((item) => {\n return (\n \n {item}\n
\n );\n })}\n {errorInd ? (\n
\n Staging Failed!\n
\n ) : null}\n {loading ? (\n
\n Staging in prgoress...\n
\n ) : (\n {\n stageAllChanges();\n }}\n >\n Confirm Staging\n \n )}\n \n ) : (\n
\n No Changes for staging...\n
\n )}\n {allStaged ? (\n
\n All changes Staged!\n
\n ) : null}\n \n \n \n );\n}\n","import { library } from \"@fortawesome/fontawesome-svg-core\";\nimport { fab } from \"@fortawesome/free-brands-svg-icons\";\nimport axios from \"axios\";\nimport React, { useEffect, useState } from \"react\";\nimport {\n globalAPIEndpoint,\n ROUTE_REPO_TRACKED_DIFF,\n ROUTE_GIT_STAGED_FILES,\n} from \"../../../../../util/env_config\";\nimport CommitComponent from \"./CommitComponent\";\nimport PushComponent from \"./PushComponent\";\nimport StageComponent from \"./StageComponent\";\n\nexport default function GitOperationComponent(props) {\n library.add(fab);\n const { repoId } = props;\n const { stateChange } = props;\n\n const [gitTrackedFiles, setGitTrackedFiles] = useState([]);\n const [gitUntrackedFiles, setGitUntrackedFiles] = useState([]);\n\n const [action, setAction] = useState(\"\");\n const [list, setList] = useState([]);\n const [viewReload, setViewReload] = useState(0);\n const [currentStageItem, setCurrensStageitem] = useState(\"\");\n const [stageItems, setStagedItems] = useState([]);\n const [unstageFailed, setUnstageFailed] = useState(false);\n\n useEffect(() => {\n const payload = JSON.stringify(\n JSON.stringify({\n repoId: props.repoId,\n })\n );\n\n const cancelToken = axios.CancelToken;\n const source = cancelToken.source();\n\n axios({\n url: globalAPIEndpoint,\n method: \"POST\",\n headers: {\n \"Content-type\": \"application/json\",\n },\n cancelToken: source.token,\n data: {\n query: `\n query GitConvexApi{\n gitConvexApi(route: \"${ROUTE_REPO_TRACKED_DIFF}\", payload:${payload})\n {\n gitChanges{\n gitUntrackedFiles\n gitChangedFiles\n }\n }\n }\n `,\n },\n })\n .then((res) => {\n if (res.data.data) {\n var apiData = res.data.data.gitConvexApi.gitChanges;\n\n setGitTrackedFiles([...apiData.gitChangedFiles]);\n setGitUntrackedFiles([...apiData.gitUntrackedFiles]);\n\n const apiTrackedFiles = [...apiData.gitChangedFiles];\n const apiUnTrackedFiles = [...apiData.gitUntrackedFiles];\n\n let componentList = [];\n\n apiTrackedFiles &&\n apiTrackedFiles.forEach((item) => {\n if (item.split(\",\").length > 0) {\n const trackedItem = item.split(\",\")[1];\n componentList.push(trackedItem);\n }\n });\n\n apiUnTrackedFiles &&\n apiUnTrackedFiles.forEach((item) => {\n if (item) {\n item = item.replace(\"NO_DIR\", \"\");\n item.split(\",\")\n ? componentList.push(item.split(\",\").join(\"\"))\n : componentList.push(item);\n }\n });\n\n setList([...componentList]);\n }\n })\n .catch((err) => {\n // console.log(err);\n });\n\n return () => {\n source.cancel();\n };\n }, [props, viewReload, currentStageItem]);\n\n useEffect(() => {\n const cancelToken = axios.CancelToken;\n const source = cancelToken.source();\n\n const payload = JSON.stringify(\n JSON.stringify({\n repoId: props.repoId,\n })\n );\n axios({\n url: globalAPIEndpoint,\n method: \"POST\",\n headers: {\n \"Content-type\": \"application/json\",\n },\n cancelToken: source.token,\n data: {\n query: `\n query GitConvexApi{\n gitConvexApi(route: \"${ROUTE_GIT_STAGED_FILES}\", payload:${payload})\n {\n gitStagedFiles{\n stagedFiles\n }\n }\n }\n `,\n },\n })\n .then((res) => {\n const { stagedFiles } = res.data.data.gitConvexApi.gitStagedFiles;\n\n if (stagedFiles && stagedFiles.length > 0) {\n setStagedItems([...stagedFiles]);\n }\n })\n .catch((err) => {});\n\n return () => {\n return source.cancel();\n };\n }, [list, props.repoId, viewReload]);\n\n const actionButtons = [\n {\n label: \"Stage all changes\",\n color: \"blue\",\n key: \"stage\",\n },\n {\n label: \"Commit Changes\",\n color: \"green\",\n key: \"commit\",\n },\n {\n label: \"Push to remote\",\n color: \"pink\",\n key: \"push\",\n },\n ];\n\n const tableColumns = [\"Changes\", \"File Status\", \"Action\"];\n\n function stageGitComponent(stageItem, event) {\n let localViewReload = viewReload + 1;\n\n event.target.innerHTML = \"Staging...\";\n event.target.style.backgroundColor = \"gray\";\n event.target.disabled = true;\n\n axios({\n url: globalAPIEndpoint,\n method: \"POST\",\n data: {\n query: `\n mutation GitConvexMutation{\n stageItem(repoId: \"${repoId}\", item: \"${stageItem}\")\n }\n `,\n },\n })\n .then((res) => {\n setViewReload(localViewReload);\n\n if (res.data.data && !res.data.error) {\n if (res.data.data.stageItem === \"ADD_ITEM_SUCCES\") {\n setCurrensStageitem(stageItem);\n }\n }\n })\n .catch((err) => {\n console.log(err);\n setViewReload(localViewReload);\n });\n }\n\n function getTableData() {\n let tableDataArray = [];\n\n let statusPill = (status) => {\n if (status === \"M\") {\n return (\n
\n Modified\n
\n );\n } else if (status === \"D\") {\n return (\n
\n Removed\n
\n );\n } else {\n return (\n
\n Untracked\n
\n );\n }\n };\n\n let actionButton = (stageItem) => {\n return (\n {\n stageGitComponent(stageItem, event);\n setUnstageFailed(false);\n }}\n key={`add-btn-${stageItem}`}\n >\n Add\n \n );\n };\n\n gitTrackedFiles &&\n gitTrackedFiles.forEach((item) => {\n if (item.split(\",\").length > 0) {\n const trackedItem = item.split(\",\")[1];\n tableDataArray.push([\n trackedItem,\n statusPill(item.split(\",\")[0]),\n actionButton(trackedItem),\n ]);\n }\n });\n\n gitUntrackedFiles &&\n gitUntrackedFiles.forEach((item) => {\n if (item) {\n item = item.replace(\"NO_DIR\", \"\");\n item.split(\",\")\n ? tableDataArray.push([\n item.split(\",\").join(\"\"),\n statusPill(\"N\"),\n actionButton(item.split(\",\").join(\"\")),\n ])\n : tableDataArray.push([item, statusPill(\"N\"), actionButton(item)]);\n }\n });\n return tableDataArray;\n }\n\n function getStagedFilesComponent() {\n function removeStagedItem(item, event) {\n let localViewReload = viewReload + 1;\n stateChange();\n\n event.target.innerHTML = \"removing...\";\n event.target.style.backgroundColor = \"gray\";\n event.target.disabled = true;\n\n axios({\n url: globalAPIEndpoint,\n method: \"POST\",\n data: {\n query: `\n mutation GitConvexMutation{\n removeStagedItem(repoId: \"${repoId}\", item: \"${item}\")\n }\n `,\n },\n })\n .then((res) => {\n setViewReload(localViewReload);\n if (res.data.data && !res.data.error) {\n if (res.data.data.removeStagedItem === \"STAGE_REMOVE_SUCCESS\") {\n let localStagedItems = stageItems;\n\n localStagedItems = localStagedItems.filter((filterItem) => {\n if (filterItem === item) {\n return false;\n }\n return true;\n });\n\n setStagedItems([...localStagedItems]);\n } else {\n setUnstageFailed(true);\n }\n }\n })\n .catch((err) => {\n console.log(err);\n setViewReload(localViewReload);\n setUnstageFailed(true);\n });\n }\n\n function removeAllStagedItems(event) {\n let localViewReload = viewReload + 1;\n setStagedItems();\n stateChange();\n\n event.target.innerHTML = \"Removing...\";\n event.target.style.backgroundColor = \"gray\";\n event.target.disabled = true;\n\n axios({\n url: globalAPIEndpoint,\n method: \"POST\",\n data: {\n query: `\n mutation GitConvexMutation{\n removeAllStagedItem(repoId: \"${repoId}\")\n }\n `,\n },\n })\n .then((res) => {\n setViewReload(localViewReload + 1);\n if (res.data.data && !res.data.error) {\n if (\n res.data.data.removeAllStagedItem === \"STAGE_ALL_REMOVE_SUCCESS\"\n ) {\n setStagedItems([]);\n }\n }\n })\n .catch((err) => {\n console.log(err);\n setViewReload(localViewReload + 1);\n });\n }\n\n if (stageItems && stageItems.length > 0) {\n return (\n
\n
\n
\n Staged Files\n
\n {\n removeAllStagedItems(event);\n setUnstageFailed(false);\n }}\n >\n Remove All Items\n
\n
\n {unstageFailed ? (\n
\n Remove item failed. Note that deleted files cannot be removed as a\n single entity. Use\n \n Remove All Items\n \n to perform a complete git reset\n
\n ) : null}\n
\n
Staged File
\n
Action
\n
\n \n {stageItems.map((item) => {\n if (item) {\n return (\n \n
\n {item}\n
\n
\n {\n removeStagedItem(item, event);\n setUnstageFailed(false);\n }}\n key={`remove-btn-${item}`}\n >\n Remove\n
\n \n \n );\n }\n return null;\n })}\n \n \n );\n }\n }\n\n function actionComponent(action) {\n switch (action) {\n case \"stage\":\n if (list && list.length > 0) {\n return (\n \n );\n } else {\n return (\n
\n
\n No Changes for staging...\n
\n
\n );\n }\n case \"commit\":\n return ;\n case \"push\":\n return ;\n default:\n return null;\n }\n }\n\n function noChangesComponent() {\n return (\n
\n No files to stage\n
\n );\n }\n\n return (\n <>\n {action ? (\n {\n if (event.target.id === \"operation-backdrop\") {\n setAction(\"\");\n let closeViewCount = viewReload + 1;\n setViewReload(closeViewCount);\n setStagedItems([]);\n }\n }}\n >\n {actionComponent(action)}\n\n {\n setAction(\"\");\n }}\n >\n X\n \n \n ) : null}\n
\n {actionButtons.map((item) => {\n const { label, color, key } = item;\n return (\n setAction(key)}\n >\n {label}\n
\n );\n })}\n \n {getTableData() && getTableData().length > 0 ? (\n
\n
\n {tableColumns.map((column, index) => {\n return (\n \n {column}\n
\n );\n })}\n
\n\n \n
\n {getTableData() &&\n getTableData().map((tableData, index) => {\n return (\n \n {tableData.map((data, index) => {\n return (\n \n {data}\n
\n );\n })}\n \n );\n })}\n \n \n \n ) : (\n <>{noChangesComponent()}\n )}\n <>{stageItems ? getStagedFilesComponent() : null}\n \n );\n}\n","import { library } from \"@fortawesome/fontawesome-svg-core\";\nimport { fab } from \"@fortawesome/free-brands-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport axios from \"axios\";\nimport React, { useContext, useEffect, useMemo, useState } from \"react\";\nimport {\n GIT_TRACKED_FILES,\n GIT_ACTION_TRACKED_FILES,\n GIT_ACTION_UNTRACKED_FILES,\n} from \"../../../../actionStore\";\nimport { ContextProvider } from \"../../../../context\";\nimport {\n globalAPIEndpoint,\n ROUTE_REPO_TRACKED_DIFF,\n} from \"../../../../util/env_config\";\nimport GitDiffViewComponent from \"./GitDiffViewComponent\";\nimport GitOperationComponent from \"./GitOperation/GitOperationComponent\";\n\nexport default function GitTrackedComponent(props) {\n library.add(fab);\n const [gitDiffFilesState, setGitDiffFilesState] = useState([]);\n const [gitUntrackedFilesState, setGitUntrackedFilesState] = useState([]);\n const [topMenuItemState, setTopMenuItemState] = useState(\"File View\");\n const topMenuItems = [\"File View\", \"Git Difference\", \"Git Operations\"];\n const [noChangeMarker, setNoChangeMarker] = useState(false);\n const [requestStateChange, setRequestChange] = useState(false);\n\n const { dispatch } = useContext(ContextProvider);\n\n const operationStateChangeHandler = () => {\n setRequestChange(true);\n };\n\n const memoizedGitDiffView = useMemo(() => {\n return ;\n }, [props]);\n\n const memoizedGitOperationView = useMemo(() => {\n return (\n \n );\n }, [props]);\n\n useEffect(() => {\n let apiEndPoint = globalAPIEndpoint;\n setRequestChange(false);\n\n const payload = JSON.stringify(\n JSON.stringify({\n repoId: props.repoId,\n })\n );\n\n axios({\n url: apiEndPoint,\n method: \"POST\",\n headers: {\n \"Content-type\": \"application/json\",\n },\n data: {\n query: `\n query GitConvexApi{\n gitConvexApi(route: \"${ROUTE_REPO_TRACKED_DIFF}\", payload:${payload})\n {\n gitChanges{\n gitUntrackedFiles\n gitChangedFiles\n }\n }\n }\n `,\n },\n })\n .then((res) => {\n if (res) {\n var apiData = res.data.data.gitConvexApi.gitChanges;\n const { gitChangedFiles, gitUntrackedFiles } = apiData;\n\n if (\n (gitChangedFiles || gitUntrackedFiles) &&\n (gitChangedFiles.length > 0 || gitUntrackedFiles.length > 0)\n ) {\n setGitDiffFilesState([...gitChangedFiles]);\n setGitUntrackedFilesState([...gitUntrackedFiles]);\n setNoChangeMarker(false);\n\n dispatch({\n type: GIT_TRACKED_FILES,\n payload: gitChangedFiles,\n });\n\n dispatch({\n type: GIT_ACTION_TRACKED_FILES,\n payload: [...gitChangedFiles],\n });\n\n dispatch({\n type: GIT_ACTION_UNTRACKED_FILES,\n payload: [...gitUntrackedFiles],\n });\n } else {\n setNoChangeMarker(true);\n }\n }\n })\n .catch((err) => {\n console.log(err);\n setNoChangeMarker(true);\n });\n }, [props, dispatch, topMenuItemState, requestStateChange]);\n\n function diffPane() {\n var deletedArtifacts = [];\n var modifiedArtifacts = [];\n\n if (gitDiffFilesState && gitDiffFilesState.length > 0) {\n gitDiffFilesState.forEach((diffFile, index) => {\n var splitFile = diffFile.split(\",\");\n var flag = splitFile[0];\n var name = splitFile[1];\n var styleSelector = \"p-1 \";\n switch (flag) {\n case \"M\":\n styleSelector += \"text-yellow-900 bg-yellow-200\";\n modifiedArtifacts.push(\n
\n
\n {name}\n
\n
\n Modified\n
\n
\n );\n break;\n case \"D\":\n styleSelector += \"text-red-900 bg-red-200\";\n deletedArtifacts.push(\n
\n
\n {name}\n
\n
\n Deleted\n
\n
\n );\n break;\n default:\n styleSelector += \"text-indigo-900 bg-indigo-200\";\n break;\n }\n });\n\n return (\n <>\n {modifiedArtifacts} {deletedArtifacts}\n \n );\n }\n }\n\n function untrackedPane() {\n let untrackedDir = [];\n let untrackedEntry = \"\";\n gitUntrackedFilesState.forEach((entry) => {\n let splitEntry = entry.split(\",\");\n\n if (splitEntry) {\n untrackedDir.push(splitEntry[0] !== \"NO_DIR\" ? splitEntry[0] : \"./\");\n untrackedEntry = untrackedDir.join(\"\") + splitEntry[1];\n }\n });\n\n return untrackedDir.map((entry, index) => {\n return (\n
\n
\n {untrackedEntry}\n
\n
\n New / Untracked\n
\n
\n );\n });\n }\n\n function menuComponent() {\n const FILE_VIEW = \"File View\";\n const GIT_DIFFERENCE = \"Git Difference\";\n const GIT_OPERATIONS = \"Git Operations\";\n\n switch (topMenuItemState) {\n case FILE_VIEW:\n if (!noChangeMarker) {\n return (\n
\n {gitDiffFilesState ? (\n diffPane()\n ) : (\n
\n Getting file based status...\n
\n )}\n {gitUntrackedFilesState ? untrackedPane() : null}\n
\n );\n }\n break;\n case GIT_DIFFERENCE:\n if (!noChangeMarker) {\n return memoizedGitDiffView;\n }\n break;\n case GIT_OPERATIONS:\n return memoizedGitOperationView;\n default:\n return (\n
Invalid Menu Selector!
\n );\n }\n }\n\n function presentChangeComponent() {\n return (\n <>\n
\n {topMenuItems.map((item) => {\n let styleSelector =\n \"w-full py-3 px-1 text-center border-r border-blue-400 \";\n if (item === topMenuItemState) {\n styleSelector +=\n \"bg-blue-100 text-blue-800 border-b border-blue-700\";\n } else {\n styleSelector += \"bg-blue-600 text-white\";\n }\n return (\n {\n setTopMenuItemState(item);\n }}\n >\n {item}\n
\n );\n })}\n \n \n );\n }\n\n return (\n <>\n {noChangeMarker ? (\n <>\n
\n {memoizedGitOperationView}\n
\n
\n No changes found in the selected git repo\n
\n
\n
\n \n
\n
\n \"0\" changes in repo\n
\n
\n \n ) : (\n <>\n {presentChangeComponent()}\n
{menuComponent()}
\n \n )}\n \n );\n}\n","import { library } from \"@fortawesome/fontawesome-svg-core\";\nimport { fas } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport axios from \"axios\";\nimport React, { useContext, useEffect, useMemo, useState } from \"react\";\nimport { GIT_GLOBAL_REPOID, PRESENT_REPO } from \"../../../../actionStore\";\nimport { ContextProvider } from \"../../../../context\";\nimport {\n globalAPIEndpoint,\n ROUTE_FETCH_REPO,\n ROUTE_REPO_DETAILS,\n} from \"../../../../util/env_config\";\nimport GitTrackedComponent from \"../GitComponents/GitTrackedComponent\";\n\nexport default function RepositoryAction() {\n library.add(fas);\n\n const { state, dispatch } = useContext(ContextProvider);\n const { presentRepo } = state;\n const [selectedFlag, setSelectedFlag] = useState(false);\n const [defaultRepo, setDefaultRepo] = useState({});\n const [availableRepos, setAvailableRepos] = useState([]);\n const [activeBranch, setActiveBranch] = useState(\"\");\n const [selectedRepoDetails, setSelectedRepoDetails] = useState({\n gitBranchList: \"\",\n gitCurrentBranch: \"\",\n gitTotalCommits: 0,\n gitTotalTrackedFiles: 0,\n });\n const [branchError, setBranchError] = useState(false);\n\n const memoizedGitTracker = useMemo(() => {\n if (defaultRepo && defaultRepo.id) {\n return (\n \n );\n }\n }, [defaultRepo]);\n\n useEffect(() => {\n //Effect dep function\n const token = axios.CancelToken;\n const source = token.source();\n\n function fetchSelectedRepoStatus() {\n const repoId = defaultRepo && defaultRepo.id;\n\n if (repoId) {\n const payload = JSON.stringify(JSON.stringify({ repoId: repoId }));\n\n axios({\n url: globalAPIEndpoint,\n method: \"POST\",\n headers: {\n \"Content-type\": \"application/json\",\n },\n cancelToken: source.token,\n data: {\n query: `\n query GitConvexApi\n {\n gitConvexApi(route: \"${ROUTE_REPO_DETAILS}\", payload: ${payload}){\n gitRepoStatus {\n gitBranchList\n gitCurrentBranch\n gitTotalCommits\n gitTotalTrackedFiles \n }\n }\n }\n `,\n },\n })\n .then((res) => {\n setSelectedRepoDetails(res.data.data.gitConvexApi.gitRepoStatus);\n })\n .catch((err) => {\n if (err) {\n console.log(\"API GitStatus error occurred : \" + err);\n }\n });\n }\n }\n\n //Effect dep function\n async function invokeRepoFetchAPI() {\n return await axios({\n url: globalAPIEndpoint,\n method: \"POST\",\n cancelToken: source.token,\n data: {\n query: `\n query GitConvexApi{\n gitConvexApi(route: \"${ROUTE_FETCH_REPO}\"){\n fetchRepo{\n repoId\n repoName\n repoPath\n }\n }\n }\n `,\n },\n }).then((res) => {\n const apiResponse = res.data.data.gitConvexApi.fetchRepo;\n\n if (apiResponse) {\n const repoContent = apiResponse.repoId.map((entry, index) => {\n return {\n id: apiResponse.repoId[index],\n repoName: apiResponse.repoName[index],\n repoPath: apiResponse.repoPath[index],\n };\n });\n\n dispatch({\n type: PRESENT_REPO,\n payload: [...repoContent],\n });\n\n setDefaultRepo(repoContent[0]);\n setAvailableRepos(repoContent);\n return repoContent;\n }\n });\n }\n\n if (presentRepo && presentRepo[0]) {\n setAvailableRepos(presentRepo[0]);\n fetchSelectedRepoStatus();\n } else {\n invokeRepoFetchAPI();\n fetchSelectedRepoStatus();\n }\n\n return () => {\n source.cancel();\n };\n }, [defaultRepo, activeBranch, presentRepo, dispatch, branchError]);\n\n function setTrackingBranch(branchName, event) {\n axios({\n url: globalAPIEndpoint,\n method: \"POST\",\n data: {\n query: `\n mutation{\n setBranch(repoId: \"${defaultRepo.id}\", branch: \"${branchName}\")\n }\n `,\n },\n })\n .then((res) => {\n if (res.data.data && !res.data.error) {\n setActiveBranch(branchName);\n }\n })\n .catch((err) => {\n if (err) {\n setBranchError(true);\n event.target.selectedIndex = 0;\n }\n });\n }\n\n function activeRepoPane() {\n return (\n
\n
\n
\n Choose saved repository\n
\n {\n setSelectedFlag(true);\n availableRepos.length &&\n availableRepos.forEach((elm) => {\n if (event.target.value === elm.repoName) {\n setDefaultRepo(elm);\n dispatch({ type: GIT_GLOBAL_REPOID, payload: elm.id });\n }\n });\n }}\n >\n \n {availableRepos.length &&\n availableRepos.map((entry) => {\n return (\n \n );\n })}\n \n
\n {selectedFlag ? (\n
\n
\n Branch\n
\n {\n event.persist();\n setActiveBranch(event.currentTarget.value);\n setTrackingBranch(event.target.value, event);\n }}\n onClick={() => {\n setBranchError(false);\n }}\n >\n {availableBranch()}\n \n
\n ) : null}\n
\n );\n }\n\n function getTopPaneComponent(icon, value) {\n return (\n <>\n
\n
\n \n
\n
{value}
\n
\n \n );\n }\n\n function availableBranch() {\n if (selectedRepoDetails && selectedRepoDetails.gitBranchList) {\n const { gitBranchList } = selectedRepoDetails;\n\n return gitBranchList.map((branch) => {\n if (branch !== \"NO_BRANCH\") {\n return (\n \n );\n }\n\n return null;\n });\n }\n }\n\n return (\n
\n {availableRepos ? (\n
\n
\n {activeRepoPane()}\n {selectedRepoDetails && selectedFlag ? (\n
\n {getTopPaneComponent(\n \"code-branch\",\n selectedRepoDetails.gitBranchList &&\n selectedRepoDetails.gitBranchList.length > 0 &&\n !selectedRepoDetails.gitBranchList[0].match(\n /NO_BRANCH/gi\n ) ? (\n <>\n {selectedRepoDetails.gitBranchList.length === 1\n ? 1 + \" branch\"\n : selectedRepoDetails.gitBranchList.length +\n \" branches\"}\n \n ) : (\n \"No Branches\"\n )\n )}\n {getTopPaneComponent(\n \"sort-amount-up\",\n selectedRepoDetails.gitTotalCommits + \" Commits\"\n )}\n {getTopPaneComponent(\n \"archive\",\n selectedRepoDetails.gitTotalTrackedFiles + \" Tracked Files\"\n )}\n
\n ) : null}\n
\n {!selectedFlag ? (\n <>\n
\n Select a configured repo from the dropdown to perform git\n related operations\n
\n
\n
\n \n
\n
\n No repositories selected\n
\n
\n \n ) : null}\n
\n {branchError ? (\n
\n Branch switching failed.Commit your changes and try again\n
\n ) : null}\n {selectedRepoDetails && selectedFlag && defaultRepo.id\n ? memoizedGitTracker\n : null}\n
\n
\n ) : null}\n
\n );\n}\n","import React, { useState, useRef } from \"react\";\nimport axios from \"axios\";\nimport { globalAPIEndpoint } from \"../../../../../util/env_config\";\n\nexport default function AddBranchComponent(props) {\n const { repoId } = props;\n const [branchName, setBranchName] = useState(\"\");\n const [branchAddStatus, setBranchAddStatus] = useState(\"\");\n const branchNameRef = useRef();\n\n function resetBranchNameText() {\n branchNameRef.current.value = \"\";\n setBranchName(\"\");\n }\n\n function addBranchClickHandler() {\n axios({\n url: globalAPIEndpoint,\n method: \"POST\",\n data: {\n query: `\n mutation GitConvexMutation{\n addBranch(repoId: \"${repoId}\", branchName: \"${branchName}\")\n }\n `,\n },\n })\n .then((res) => {\n if (res.data.data && !res.data.error) {\n const branchStatus = res.data.data.addBranch;\n setBranchAddStatus(branchStatus);\n resetBranchNameText();\n } else {\n setBranchAddStatus(\"BRANCH_ADD_FAILED\");\n resetBranchNameText();\n }\n })\n .catch((err) => {\n setBranchAddStatus(\"BRANCH_ADD_FAILED\");\n resetBranchNameText();\n });\n }\n\n return (\n
\n
\n
\n {\n setBranchName(event.target.value);\n }}\n onClick={() => {\n setBranchAddStatus(\"\");\n }}\n >\n
\n {\n if (branchName) {\n console.log(branchName);\n addBranchClickHandler();\n } else {\n setBranchAddStatus(\"BRANCH_ADD_FAILED\");\n }\n }}\n >\n Add Branch\n
\n {branchAddStatus === \"BRANCH_CREATION_SUCCESS\" ? (\n
\n New branch has been added to your repo successfully\n
\n ) : null}\n {branchAddStatus === \"BRANCH_ADD_FAILED\" ? (\n
\n New branch addition failed!\n
\n ) : null}\n
\n \n );\n}\n","import React, { useEffect, useState, useRef } from \"react\";\nimport axios from \"axios\";\nimport {\n globalAPIEndpoint,\n ROUTE_REPO_DETAILS,\n} from \"../../../../../util/env_config\";\n\nimport { v4 as uuid } from \"uuid\";\n\nexport default function FetchFromRemoteComponent(props) {\n const { repoId, actionType } = props;\n\n const [remoteData, setRemoteData] = useState();\n const [isRemoteSet, setIsRemoteSet] = useState(false);\n const [isBranchSet, setIsBranchSet] = useState(false);\n const [result, setResult] = useState([]);\n const [loading, setLoading] = useState(false);\n\n const remoteRef = useRef();\n const branchRef = useRef();\n\n useEffect(() => {\n let payload = JSON.stringify(JSON.stringify({ repoId: props.repoId }));\n const cancelToken = axios.CancelToken;\n const source = cancelToken.source();\n\n axios({\n url: globalAPIEndpoint,\n method: \"POST\",\n cancelToken: source.token,\n headers: {\n \"Content-type\": \"application/json\",\n },\n data: {\n query: `\n query GitConvexApi\n {\n gitConvexApi(route: \"${ROUTE_REPO_DETAILS}\", payload: ${payload}){\n gitRepoStatus {\n gitRemoteData\n gitCurrentBranch\n gitRemoteHost\n gitBranchList \n }\n }\n }\n `,\n },\n })\n .then((res) => {\n const repoDetails = res.data.data.gitConvexApi.gitRepoStatus;\n setRemoteData(repoDetails);\n })\n .catch((err) => {\n // console.log(err);\n });\n\n return () => {\n return source.cancel();\n };\n }, [props]);\n\n function remoteHostGenerator() {\n if (remoteData) {\n const { gitRemoteData } = remoteData;\n if (gitRemoteData.includes(\"||\")) {\n return gitRemoteData.split(\"||\").map((item) => {\n return (\n \n );\n });\n } else {\n return ;\n }\n }\n }\n\n function branchListGenerator() {\n if (remoteData) {\n const { gitBranchList } = remoteData;\n\n return gitBranchList.map((branch) => {\n if (branch !== \"NO_BRANCH\") {\n return (\n \n );\n }\n return null;\n });\n }\n }\n\n function actionHandler(remote, branch) {\n setLoading(true);\n\n const getAxiosRequestBody = (remote, branch) => {\n let gqlQuery = \"\";\n if (actionType === \"fetch\") {\n gqlQuery = `mutation GitConvexMutation{\n fetchFromRemote(repoId: \"${repoId}\", remoteUrl: \"${remote}\", remoteBranch: \"${branch}\"){\n status\n fetchedItems\n }\n }\n `;\n } else {\n gqlQuery = `mutation GitConvexMutation{\n pullFromRemote(repoId: \"${repoId}\", remoteUrl: \"${remote}\", remoteBranch: \"${branch}\"){\n status\n pulledItems\n }\n }\n `;\n }\n\n return gqlQuery;\n };\n\n axios({\n url: globalAPIEndpoint,\n method: \"POST\",\n data: {\n query: getAxiosRequestBody(remote, branch),\n },\n })\n .then((res) => {\n setLoading(false);\n if (res.data.data && !res.data.error) {\n let actionResponse = {};\n\n if (actionType === \"fetch\") {\n actionResponse = res.data.data.fetchFromRemote;\n } else {\n actionResponse = res.data.data.pullFromRemote;\n }\n\n if (actionResponse.status.match(/ABSENT/gi)) {\n setResult([\n
\n No changes to {actionType === \"fetch\" ? \"Fetch\" : \"Pull\"} from\n remote\n
,\n ]);\n } else if (actionResponse.status.match(/ERROR/gi)) {\n setResult([\n
\n Error while {actionType === \"fetch\" ? \"Fetching\" : \"Pulling\"}{\" \"}\n from remote!\n
,\n ]);\n } else {\n let resArray = [];\n if (actionType === \"fetch\") {\n resArray = actionResponse.fetchedItems;\n } else {\n resArray = actionResponse.pulledItems;\n }\n setResult([...resArray]);\n }\n }\n })\n .catch((err) => {\n setLoading(false);\n console.error(err);\n setResult([\n
\n Error while {actionType === \"fetch\" ? \"Fetching\" : \"Pulling\"} from\n remote!\n
,\n ]);\n });\n }\n\n return (\n <>\n
\n
\n Available remote repos\n
\n
\n {\n setIsRemoteSet(true);\n }}\n onClick={() => {\n setResult([]);\n }}\n ref={remoteRef}\n >\n \n {remoteData ? remoteHostGenerator() : null}\n \n
\n\n {isRemoteSet ? (\n
\n {\n setIsBranchSet(true);\n }}\n onClick={() => {\n setResult([]);\n }}\n ref={branchRef}\n >\n \n {remoteData ? branchListGenerator() : null}\n \n
\n ) : null}\n\n {isRemoteSet && isBranchSet && !loading ? (\n {\n const remoteHost = remoteRef.current.value;\n const branchName = branchRef.current.value;\n\n if (remoteHost && branchName) {\n actionHandler(remoteHost, branchName);\n } else {\n event.target.style.display = \"none\";\n }\n }}\n >\n {actionType === \"pull\" ? \"Pull from Remote\" : null}\n {actionType === \"fetch\" ? \"Fetch from Remote\" : null}\n
\n ) : null}\n
\n {loading ? (\n
\n {actionType === \"pull\" ? \"Pulling changes\" : \"Fetching\"} from\n remote...\n
\n ) : null}\n
\n\n {!loading && result && result.length > 0 ? (\n <>\n
\n {result.map((result) => {\n return (\n \n {result}\n
\n );\n })}\n \n \n ) : null}\n \n \n );\n}\n","import { library } from \"@fortawesome/fontawesome-svg-core\";\nimport { fab } from \"@fortawesome/free-brands-svg-icons\";\nimport { fas } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport React, { useEffect, useState } from \"react\";\nimport axios from \"axios\";\nimport {\n globalAPIEndpoint,\n ROUTE_REPO_COMMIT_LOGS,\n} from \"../../../../util/env_config\";\n\nexport default function RepositoryCommitLogComponent(props) {\n library.add(fab, fas);\n\n const [commitLogs, setCommitLogs] = useState([]);\n const [isCommitEmpty, setIsCommitEmpty] = useState(false);\n\n useEffect(() => {\n const payload = JSON.stringify(JSON.stringify({ repoId: props.repoId }));\n\n axios({\n url: globalAPIEndpoint,\n method: \"POST\",\n data: {\n query: `\n query GitConvexApi\n {\n gitConvexApi(route: \"${ROUTE_REPO_COMMIT_LOGS}\", payload: ${payload}){\n gitCommitLogs {\n commits{\n commitTime\n hash\n author\n commitMessage\n } \n }\n }\n }\n `,\n },\n })\n .then((res) => {\n const commits = res.data.data.gitConvexApi.gitCommitLogs.commits;\n if (commits && commits.length > 0) {\n setCommitLogs(commits);\n } else {\n setIsCommitEmpty(true);\n }\n })\n .catch((err) => {\n if (err) {\n setIsCommitEmpty(true);\n console.log(err);\n }\n });\n }, [props]);\n\n return (\n <>\n {isCommitEmpty ? (\n
\n No Commit Logs found\n
\n ) : null}\n {commitLogs &&\n commitLogs.map((commit) => {\n const { hash, author, commitTime, commitMessage } = commit;\n return (\n \n
\n \n {commitTime}\n
\n
\n {commitMessage}\n
\n\n
\n
\n \n {hash}\n
\n
\n \n {author}\n
\n
\n \n );\n })}\n \n );\n}\n","import React, { useState, useRef } from \"react\";\nimport axios from \"axios\";\nimport { globalAPIEndpoint } from \"../../../../../util/env_config\";\n\nexport default function AddRemoteRepoComponent({ repoId }) {\n const remoteNameRef = useRef();\n const remoteUrlRef = useRef();\n\n const [paramMissing, setParamMissing] = useState(false);\n const [addRemoteStatus, setAddRemoteStatus] = useState(\"\");\n\n const remoteFormTextComponent = (formId, label, placeholder) => {\n return (\n
\n \n {label}\n \n
\n {\n setParamMissing(false);\n setAddRemoteStatus(\"\");\n }}\n className=\"w-3/4 p-3 rounded shadow-md bg-white text-gray-900 text-lg font-sans outline-none\"\n placeholder={placeholder}\n ref={formId === \"remoteName\" ? remoteNameRef : remoteUrlRef}\n onChange={(event) => {\n const remoteNameVal = event.target.value;\n if (\n event.target.id === \"remoteName\" &&\n remoteNameVal.match(/[^a-zA-Z0-9_]/gi)\n ) {\n event.target.value = remoteNameVal.replace(\n /[^a-zA-Z0-9_]/gi,\n \"-\"\n );\n }\n }}\n >\n
\n
\n );\n };\n\n function addRemoteClickHandler() {\n let repoName = remoteNameRef.current.value;\n let repoUrl = remoteUrlRef.current.value;\n\n if (repoId && repoName && repoUrl) {\n axios({\n url: globalAPIEndpoint,\n method: \"POST\",\n data: {\n query: `\n mutation GitConvexMutation{\n addRemoteRepo(repoId: \"${repoId}\", remoteName: \"${repoName}\", remoteUrl: \"${repoUrl}\")\n }\n `,\n },\n })\n .then((res) => {\n if (res.data.data && !res.data.error) {\n const remoteAddStatus = res.data.data.addRemoteRepo;\n\n if (remoteAddStatus === \"REMOTE_ADD_SUCCESS\") {\n setAddRemoteStatus(\"success\");\n remoteNameRef.current.value = \"\";\n remoteUrlRef.current.value = \"\";\n } else {\n setAddRemoteStatus(\"failed\");\n }\n } else {\n setAddRemoteStatus(\"failed\");\n }\n })\n .catch((err) => {\n console.log(err);\n setAddRemoteStatus(\"failed\");\n });\n } else {\n setParamMissing(true);\n }\n }\n\n const statusPillComponent = (color, message) => {\n return (\n \n {message}\n \n );\n };\n\n return (\n
\n
\n Enter new remote details\n
\n
\n {remoteFormTextComponent(\n \"remoteName\",\n \"Enter Remote Name\",\n \"Give a name for your new remote\"\n )}\n {remoteFormTextComponent(\n \"remoteUrl\",\n \"Enter Remote URL\",\n \"Provide the URL for your remote repo\"\n )}\n
\n {paramMissing\n ? statusPillComponent(\n \"orange\",\n \"One or more required parameters are empty!\"\n )\n : null}\n {addRemoteStatus === \"success\"\n ? statusPillComponent(\n \"green\",\n \"Remote repo has been added successfully!\"\n )\n : null}\n {addRemoteStatus === \"failed\"\n ? statusPillComponent(\"red\", \"Failed to add new repo!\")\n : null}\n {\n addRemoteClickHandler();\n }}\n >\n Add New Remote\n
\n \n );\n}\n","import { library } from \"@fortawesome/fontawesome-svg-core\";\nimport { fab } from \"@fortawesome/free-brands-svg-icons\";\nimport { fas } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport axios from \"axios\";\nimport React, { useEffect, useMemo, useState } from \"react\";\nimport { v4 as uuid } from \"uuid\";\nimport {\n globalAPIEndpoint,\n ROUTE_REPO_DETAILS,\n} from \"../../../../util/env_config\";\nimport AddBranchComponent from \"./RepoDetailBackdrop/AddBranchComponent\";\nimport FetchPullActionComponent from \"./RepoDetailBackdrop/FetchPullActionComponent\";\nimport RepositoryCommitLogComponent from \"./RepositoryCommitLogComponent\";\nimport AddRemoteRepoComponent from \"./RepoDetailBackdrop/AddRemoteRepoComponent\";\n\nexport default function RepositoryDetails(props) {\n library.add(fab, fas);\n const [gitRepoStatus, setGitRepoStatus] = useState({});\n const [repoFetchFailed, setRepoFetchFailed] = useState(false);\n const [repoIdState, setRepoIdState] = useState(\"\");\n const [showCommitLogs, setShowCommitLogs] = useState(false);\n const [isMultiRemote, setIsMultiRemote] = useState(false);\n const [multiRemoteCount, setMultiRemoteCount] = useState(0);\n const [backdropToggle, setBackdropToggle] = useState(false);\n const [action, setAction] = useState(\"\");\n\n const memoizedCommitLogComponent = useMemo(() => {\n return (\n \n );\n }, [repoIdState]);\n\n const memoizedFetchRemoteComponent = useMemo(() => {\n return (\n \n );\n }, [repoIdState]);\n\n const memoizedPullRemoteComponent = useMemo(() => {\n return (\n \n );\n }, [repoIdState]);\n\n const memoizedAddRemoteRepoComponent = useMemo(() => {\n return (\n \n );\n }, [repoIdState]);\n\n useEffect(() => {\n const endpointURL = globalAPIEndpoint;\n\n if (props.parentProps.location) {\n const repoId = props.parentProps.location.pathname.split(\n \"/repository/\"\n )[1];\n\n setRepoIdState(repoId);\n\n const payload = JSON.stringify(JSON.stringify({ repoId: repoId }));\n\n axios({\n url: endpointURL,\n method: \"POST\",\n headers: {\n \"Content-type\": \"application/json\",\n },\n data: {\n query: `\n\n query GitConvexApi\n {\n gitConvexApi(route: \"${ROUTE_REPO_DETAILS}\", payload: ${payload}){\n gitRepoStatus {\n gitRemoteData\n gitRepoName\n gitBranchList\n gitCurrentBranch\n gitRemoteHost\n gitTotalCommits\n gitLatestCommit\n gitTrackedFiles\n gitFileBasedCommit\n gitTotalTrackedFiles \n }\n }\n }\n `,\n },\n })\n .then((res) => {\n if (res.data && res.data.data && !res.data.error) {\n let gitRemoteLocal =\n res.data.data.gitConvexApi.gitRepoStatus.gitRemoteData;\n if (gitRemoteLocal.includes(\"||\")) {\n setIsMultiRemote(true);\n res.data.data.gitConvexApi.gitRepoStatus.gitRemoteData = gitRemoteLocal.split(\n \"||\"\n )[0];\n setIsMultiRemote(true);\n setMultiRemoteCount(gitRemoteLocal.split(\"||\").length);\n }\n setGitRepoStatus(res.data.data.gitConvexApi.gitRepoStatus);\n } else {\n setRepoFetchFailed(true);\n }\n })\n .catch((err) => {\n if (err) {\n console.log(\"API GitStatus error occurred : \" + err);\n setRepoFetchFailed(true);\n }\n });\n }\n }, [props.parentProps, backdropToggle]);\n\n const {\n gitRemoteData,\n gitRepoName,\n gitBranchList,\n gitCurrentBranch,\n gitRemoteHost,\n gitTotalCommits,\n gitLatestCommit,\n gitTrackedFiles,\n gitFileBasedCommit,\n } = gitRepoStatus;\n\n const gitRepoHeaderContent = () => {\n return (\n
\n
Repo Name
\n
\n {gitRepoName}\n
\n
Active Branch
\n
\n {gitCurrentBranch}\n
\n
\n );\n };\n\n const gitRepoLeftPane = () => {\n var remoteLogo = \"\";\n\n if (gitRemoteHost) {\n if (gitRemoteHost.match(/github/i)) {\n remoteLogo = (\n \n );\n } else if (gitRemoteHost.match(/gitlab/i)) {\n remoteLogo = (\n \n );\n } else if (gitRemoteHost.match(/bitbucket/i)) {\n remoteLogo = (\n \n );\n } else if (gitRemoteHost.match(/codecommit/i)) {\n remoteLogo = (\n \n );\n } else {\n remoteLogo = (\n \n );\n }\n\n return (\n <>\n {showCommitLogs ? (\n <>\n {\n if (event.target.id === \"commit-log__backdrop\") {\n setShowCommitLogs(false);\n }\n }}\n >\n {\n setShowCommitLogs(false);\n }}\n >\n X\n \n
\n {memoizedCommitLogComponent}\n
\n \n \n ) : null}\n\n
\n
\n
\n
Remote Host
\n
\n
\n
{remoteLogo}
\n
\n {gitRemoteHost}\n
\n
\n
\n {\n let popUp =\n '
Click to add a new remote repo
';\n event.target.innerHTML += popUp;\n }}\n onMouseLeave={(event) => {\n event.target.innerHTML = \"+\";\n }}\n onClick={() => {\n setBackdropToggle(true);\n setAction(\"addRemoteRepo\");\n }}\n >\n +\n
\n
\n
\n
\n\n
\n
\n {`${gitRemoteHost} URL`}\n
\n
\n {gitRemoteData}\n
\n
\n\n {isMultiRemote ? (\n
\n
\n Entry truncated!\n
\n
\n {`Remote repos : ${multiRemoteCount}`}\n
\n
\n ) : null}\n
\n\n
\n
\n
Commit Logs
\n {\n setShowCommitLogs(true);\n }}\n >\n Show Commit Logs\n
\n
\n \n \n\n
\n
\n
\n
Total Commits
\n
\n {`${gitTotalCommits} Commits`}\n
\n
\n\n
\n
Latest Commit
\n
\n {gitLatestCommit}\n
\n
\n\n
\n
\n Available Branches\n
\n\n
\n
\n {gitBranchList &&\n gitCurrentBranch &&\n gitBranchList.map((entry) => {\n return entry === gitCurrentBranch ? (\n \n {entry}\n
\n ) : (\n \n {entry}\n
\n );\n })}\n
\n {\n let popUp =\n '
Click to add a new branch
';\n event.target.innerHTML += popUp;\n }}\n onMouseLeave={(event) => {\n event.target.innerHTML = \"+\";\n }}\n onClick={() => {\n setBackdropToggle(true);\n setAction(\"addBranch\");\n }}\n >\n +\n
\n
\n \n\n
\n {\n setBackdropToggle(true);\n setAction(\"fetch\");\n }}\n >\n Fetch from remote\n
\n {\n setBackdropToggle(true);\n setAction(\"pull\");\n }}\n >\n Pull from remote\n \n \n \n \n \n );\n } else {\n return (\n
\n Fetching details from server...\n
\n );\n }\n };\n\n const gitTrackedFileComponent = () => {\n if (\n gitTrackedFiles &&\n gitTrackedFiles.length > 0 &&\n gitTrackedFiles[0] !== \"NO_TRACKED_FILES\"\n ) {\n var formattedFiles = [];\n var directoryEntry = [];\n var fileEntry = [];\n\n gitTrackedFiles.forEach((entry, index) => {\n const splitEntry = entry.split(\":\");\n\n if (splitEntry[1].includes(\"directory\")) {\n directoryEntry.push(\n \n
\n
\n \n
\n
\n {splitEntry[0]}\n
\n\n
\n {gitFileBasedCommit[index]\n ? gitFileBasedCommit[index]\n .split(\" \")\n .filter((entry, index) => {\n return index !== 0 ? entry : null;\n })\n .join(\" \")\n : null}\n
\n
\n \n );\n } else if (splitEntry[1].includes(\"File\")) {\n fileEntry.push(\n \n
\n
\n \n
\n
\n {splitEntry[0]}\n
\n
\n {gitFileBasedCommit[index]\n ? gitFileBasedCommit[index]\n .split(\" \")\n .filter((entry, index) => {\n return index !== 0 ? entry : null;\n })\n .join(\" \")\n : null}\n
\n
\n \n );\n }\n });\n\n formattedFiles.push(directoryEntry);\n formattedFiles.push(fileEntry);\n\n return (\n \n
\n
\n
File / Directory
\n
Latest commit
\n
\n {formattedFiles}\n \n );\n } else if (gitTrackedFiles && gitTrackedFiles[0] === \"NO_TRACKED_FILES\") {\n return (\n
\n No Tracked Files in the repo!\n
\n );\n } else {\n return (\n
\n Loading tracked files...\n
\n );\n }\n };\n\n return (\n <>\n {backdropToggle ? (\n {\n if (event.target.id === \"repo-backdrop\") {\n setBackdropToggle(false);\n setAction(\"\");\n }\n }}\n >\n <>{action === \"fetch\" ? memoizedFetchRemoteComponent : null}\n <>{action === \"pull\" ? memoizedPullRemoteComponent : null}\n <>\n {action === \"addRemoteRepo\" ? memoizedAddRemoteRepoComponent : null}\n \n <>\n {action === \"addBranch\" ? (\n \n ) : null}\n \n {\n setBackdropToggle(false);\n setAction(\"\");\n }}\n >\n X\n \n \n ) : null}\n
\n
\n {gitRepoStatus && !repoFetchFailed ? (\n <>\n
\n {gitRepoStatus ? gitRepoHeaderContent() : null}\n
\n
\n
\n {gitRepoStatus ? gitRepoLeftPane() : null}\n
\n
\n
\n {gitRepoStatus ? gitTrackedFileComponent() : null}\n
\n \n ) : (\n
\n Fetching repo details...\n
\n )}\n {repoFetchFailed ? (\n
\n Repo details fetch failed!\n
\n ) : null}\n
\n \n );\n}\n","import { library } from \"@fortawesome/fontawesome-svg-core\";\nimport { fab } from \"@fortawesome/free-brands-svg-icons\";\nimport { fas } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport axios from \"axios\";\nimport React, { useContext, useEffect, useRef, useState } from \"react\";\nimport { DELETE_PRESENT_REPO } from \"../../../actionStore\";\nimport { ContextProvider } from \"../../../context\";\nimport {\n globalAPIEndpoint,\n ROUTE_SETTINGS_DBPATH,\n ROUTE_SETTINGS_PORT,\n ROUTE_SETTINGS_REPODETAILS,\n} from \"../../../util/env_config\";\n\nexport default function Settings(props) {\n library.add(fab, fas);\n\n const dbPathTextRef = useRef();\n\n const { state, dispatch } = useContext(ContextProvider);\n const { presentRepo } = state;\n\n const [dbPath, setDbPath] = useState(\"\");\n const [port, setPort] = useState(0);\n const [repoDetails, setRepoDetails] = useState([]);\n const [backdropToggle, setBacldropToggle] = useState(false);\n const [deleteRepo, setDeleteRepo] = useState({});\n const [deleteRepoStatus, setDeleteRepoStatus] = useState(\"\");\n const [viewReload, setViewReload] = useState(0);\n const [newDbPath, setNewDbPath] = useState(\"\");\n const [dbUpdateFailed, setDbUpdateFailed] = useState(false);\n const [portUpdateFailed, setPortUpdateFailed] = useState(false);\n\n useEffect(() => {\n axios({\n url: globalAPIEndpoint,\n method: \"POST\",\n data: {\n query: `\n query GitConvexResults{\n gitConvexApi(route: \"${ROUTE_SETTINGS_DBPATH}\"){\n settingsDatabasePath\n }\n }\n `,\n },\n })\n .then((res) => {\n if (res.data.data && !res.data.error) {\n const dbPathText = res.data.data.gitConvexApi.settingsDatabasePath;\n setDbPath(dbPathText);\n setNewDbPath(dbPathText);\n\n dbPathTextRef.current.value = dbPathText;\n }\n })\n .catch((err) => {\n console.log(err);\n });\n\n axios({\n url: globalAPIEndpoint,\n method: \"POST\",\n data: {\n query: `\n query GitConvexResults{\n gitConvexApi(route: \"${ROUTE_SETTINGS_REPODETAILS}\"){\n settingsRepoDetails{\n id\n repoPath\n repoName\n timeStamp\n }\n }\n }\n `,\n },\n })\n .then((res) => {\n if (res.data.data && !res.data.error) {\n const repoDetailsArray =\n res.data.data.gitConvexApi.settingsRepoDetails;\n setRepoDetails([...repoDetailsArray]);\n }\n })\n .catch((err) => {\n console.log(err);\n });\n\n axios({\n url: globalAPIEndpoint,\n method: \"POST\",\n data: {\n query: `\n query GitConvexResults{\n gitConvexApi(route: \"${ROUTE_SETTINGS_PORT}\"){\n settingsPortDetails\n }\n }\n `,\n },\n }).then((res) => {\n if (res.data.data && !res.data.error) {\n const localPort = res.data.data.gitConvexApi.settingsPortDetails;\n setPort(localPort);\n }\n });\n }, [props, viewReload]);\n\n const databasePathSettings = () => {\n const updateDbFileHandler = () => {\n if (newDbPath) {\n const localViewReload = viewReload + 1;\n\n axios({\n url: globalAPIEndpoint,\n method: \"POST\",\n data: {\n query: `\n mutation GitConvexMutation{\n updateRepoDataFile(newDbFile: \"${newDbPath.toString()}\")\n }\n `,\n },\n })\n .then((res) => {\n if (res.data.data && !res.data.error) {\n //DATAFILE_UPDATE_SUCCESS\n const updateStatus = res.data.data.updateRepoDataFile;\n\n if (updateStatus === \"DATAFILE_UPDATE_SUCCESS\") {\n setDbUpdateFailed(false);\n setViewReload(localViewReload);\n window.location.reload();\n } else {\n setDbUpdateFailed(true);\n setViewReload(localViewReload);\n }\n } else {\n setDbUpdateFailed(true);\n setViewReload(localViewReload);\n }\n })\n .catch((err) => {\n console.log(\"Datafile update error\", err);\n setDbUpdateFailed(true);\n setViewReload(localViewReload);\n });\n }\n };\n return (\n
\n
\n Server data file (file which stores repo details)\n
\n
\n {\n setNewDbPath(event.target.value);\n setDbUpdateFailed(false);\n }}\n onClick={() => {\n setDbUpdateFailed(false);\n }}\n >\n
\n The data file can be updated. The data file must be an accessible\n JSON file with read / write permissions set to it. Also make sure\n you enter the full path for the file\n
E.g: /opt/my_data/data-file.json
\n
\n {dbPath !== newDbPath ? (\n {\n updateDbFileHandler();\n setDbUpdateFailed(false);\n }}\n >\n Update Data file\n
\n ) : null}\n {dbUpdateFailed ? (\n
\n Data file update failed\n
\n ) : null}\n
\n \n );\n };\n\n function deleteRepoHandler() {\n const repoColumn = [\"Repo ID\", \"Repo Name\", \"Repo Path\", \"Timestamp\"];\n let repoArray = [];\n\n Object.keys(deleteRepo).forEach((key, index) => {\n repoArray.push({ label: repoColumn[index], value: deleteRepo[key] });\n });\n\n return (\n
\n
\n The repo below will be removed from Gitconvex records.\n
\n
\n This will not delete the actual git folder. Just the record from the\n gitconvex server will be removed\n
\n
\n {repoArray.map((item) => {\n return (\n
\n
{item.label}
\n
{item.value}
\n
\n );\n })}\n
\n\n {deleteRepoStatus !== \"lodaing\" && deleteRepoStatus !== \"success\" ? (\n {\n deleteRepoApiHandler();\n }}\n >\n Confirm Delete\n
\n ) : null}\n\n {deleteRepoStatus === \"loading\" ? (\n
\n Deletion in progress\n
\n ) : null}\n {deleteRepoStatus === \"success\" ? (\n
\n Repo has been deleted!\n
\n ) : null}\n {deleteRepoStatus === \"failed\" ? (\n
\n Repo deletion failed!\n
\n ) : null}\n \n );\n }\n\n function deleteRepoApiHandler() {\n setDeleteRepoStatus(\"loading\");\n const { id } = deleteRepo;\n axios({\n url: globalAPIEndpoint,\n method: \"POST\",\n data: {\n query: `\n mutation GitConvexMutation{\n deleteRepo(repoId: \"${id}\"){\n status\n repoId\n }\n }\n `,\n },\n })\n .then((res) => {\n if (res.data.data && !res.data.eror) {\n const { status, repoId } = res.data.data.deleteRepo;\n if (status === \"DELETE_SUCCESS\") {\n if (presentRepo && presentRepo.length > 0) {\n let localState = presentRepo[0];\n\n localState = localState.map((item) => {\n if (item.id.toString() === repoId.toString()) {\n return null;\n } else {\n return item;\n }\n });\n\n dispatch({\n action: DELETE_PRESENT_REPO,\n payload: [...localState],\n });\n }\n\n setDeleteRepoStatus(\"success\");\n } else {\n setDeleteRepoStatus(\"failed\");\n }\n }\n })\n .catch((err) => {\n console.log(err);\n setDeleteRepoStatus(\"failed\");\n });\n }\n\n const repoDetailsSettings = () => {\n return (\n
\n
\n Saved Repos\n
\n <>\n {repoDetails && repoDetails.length > 0 ? (\n <>\n
\n
Repo ID
\n
Repo Name
\n
Repo Path
\n
Timestamp
\n
Action
\n
\n {repoDetails.map((repo) => {\n return (\n \n
\n {repo.id}\n
\n
\n {repo.repoName}\n
\n
\n {repo.repoPath}\n
\n
\n {repo.timeStamp}\n
\n
\n {\n setBacldropToggle(true);\n setDeleteRepo(repo);\n }}\n >\n \n
\n
\n \n );\n })}\n \n ) : (\n
\n No repos are being managed by Gitconvex. You can add one from the\n dashboard\n
\n )}\n \n \n );\n };\n\n function portDetailsSettings() {\n function portUpdateHandler() {\n if (port) {\n axios({\n url: globalAPIEndpoint,\n method: \"POST\",\n data: {\n query: `\n mutation GitConvexMutation{\n settingsEditPort(newPort: ${port})\n }\n `,\n },\n })\n .then((res) => {\n if (res.data.data && !res.data.error) {\n console.log(res.data.data.settingsEditPort);\n } else {\n portUpdateFailed(true);\n }\n })\n .catch((err) => {\n console.log(err);\n setPortUpdateFailed(true);\n });\n }\n }\n\n return (\n
\n
\n Active Gitconvex port\n
\n
\n {\n setPort(event.target.value);\n }}\n >\n {\n portUpdateHandler();\n }}\n >\n Update Port\n
\n
\n
\n Make sure to restart the app and to change the port in the URL after\n updating it\n
\n {portUpdateFailed ? (\n
\n Port update failed\n
\n ) : null}\n \n );\n }\n\n return (\n <>\n {backdropToggle ? (\n {\n if (event.target.id === \"settings-backdrop\") {\n setDeleteRepoStatus(\"\");\n setBacldropToggle(false);\n let localViewReload = viewReload + 1;\n setViewReload(localViewReload);\n }\n }}\n >\n {deleteRepo ? deleteRepoHandler() : null}\n {\n setDeleteRepoStatus(\"\");\n setBacldropToggle(false);\n let localViewReload = viewReload + 1;\n setViewReload(localViewReload);\n }}\n >\n X\n \n \n ) : null}\n
\n
\n \n Settings\n
\n
\n {dbPath ? databasePathSettings() : null}\n {repoDetails ? repoDetailsSettings() : null}\n {portDetailsSettings()}\n
\n
\n \n );\n}\n","import axios from \"axios\";\nimport React, { useContext, useEffect, useMemo, useState } from \"react\";\nimport { BrowserRouter, Route } from \"react-router-dom\";\nimport { ContextProvider } from \"../../context\";\nimport { globalAPIEndpoint } from \"../../util/env_config\";\nimport LeftPane from \"./DashboardPaneComponents/LeftPane\";\nimport RightPane from \"./DashboardPaneComponents/RightPane\";\nimport Help from \"./Help/Help\";\nimport RepositoryAction from \"./Repository/RepoComponents/RepositoryAction\";\nimport RepositoryDetails from \"./Repository/RepoComponents/RepositoryDetails\";\nimport Settings from \"./Settings/Settings\";\n\nexport default function Dashboard(props) {\n const { state } = useContext(ContextProvider);\n\n const [platform, setPlatform] = useState(\"\");\n const [gitVersion, setGitVersion] = useState(\"\");\n const [nodeVersion, setNodeVersion] = useState(\"\");\n\n const memoizedRepoDetails = useMemo(() => {\n return ;\n }, [props]);\n\n const memoizedSettings = useMemo(() => {\n return ;\n }, []);\n\n const memoizedHelp = useMemo(() => {\n return ;\n }, []);\n\n useEffect(() => {\n const { osCheck, gitCheck, nodeCheck } = state.hcParams;\n\n const localStorageItems = [\"OS_TYPE\", \"NODE_VERSION\", \"GIT_VERSION\"];\n\n const token = axios.CancelToken;\n const source = token.source();\n\n if (osCheck && gitCheck && nodeCheck) {\n setPlatform(osCheck);\n setGitVersion(gitCheck);\n setNodeVersion(nodeCheck);\n } else {\n let checkArray = localStorageItems.filter((item) => {\n return localStorage.getItem(item) ? true : false;\n });\n\n if (checkArray.length === 3) {\n setPlatform(localStorage.getItem(\"OS_TYPE\"));\n setNodeVersion(localStorage.getItem(\"NODE_VERSION\"));\n setGitVersion(localStorage.getItem(\"GIT_VERSION\"));\n } else {\n axios({\n url: globalAPIEndpoint,\n method: \"POST\",\n cancelToken: source.token,\n data: {\n query: `\n query GitConvexAPI{\n gitConvexApi(route:\"HEALTH_CHECK\"){\n healthCheck{\n osCheck\n gitCheck\n nodeCheck\n }\n }\n }\n `,\n },\n })\n .then((res) => {\n if (res.data.data && !res.data.error) {\n const {\n osCheck,\n gitCheck,\n nodeCheck,\n } = res.data.data.gitConvexApi.healthCheck;\n\n setPlatform(JSON.parse(osCheck).message);\n setGitVersion(JSON.parse(gitCheck).message);\n setNodeVersion(JSON.parse(nodeCheck).message);\n }\n })\n .catch((err) => {\n console.log(err);\n });\n }\n }\n return () => {\n source.cancel();\n };\n }, [state.hcParams]);\n\n const params = {\n platform,\n gitVersion,\n nodeVersion,\n };\n\n const renderRightPaneComponent = () => {\n switch (props.location.pathname) {\n case \"/dashboard\":\n return ;\n case \"/dashboard/repository\":\n return ;\n case \"/dashboard/settings\":\n return memoizedSettings;\n case \"/dashboard/help\":\n return memoizedHelp;\n default:\n return (\n \n \n {memoizedRepoDetails}\n \n \n );\n }\n };\n\n return (\n <>\n
\n \n {renderRightPaneComponent()}\n
\n \n );\n}\n","import axios from \"axios\";\nimport React, { useContext, useEffect, useState } from \"react\";\nimport { HC_PARAM_ACTION } from \"../actionStore\";\nimport { ContextProvider } from \"../context\";\nimport { globalAPIEndpoint } from \"../util/env_config\";\nimport \"./SplashScreen.css\";\n\nexport default function SplashScreen(props) {\n const [showAlert, setShowAlert] = useState(false);\n const [hcCheck, setHcCheck] = useState(false);\n const { dispatch } = useContext(ContextProvider);\n\n useEffect(() => {\n const apiURL = globalAPIEndpoint;\n axios({\n url: apiURL,\n method: \"POST\",\n data: {\n query: `\n query GitConvexAPI{\n gitConvexApi(route:\"HEALTH_CHECK\"){\n healthCheck{\n osCheck\n gitCheck\n nodeCheck\n }\n }\n }\n `,\n },\n })\n .then((res) => {\n if (res.data.data) {\n const {\n osCheck,\n gitCheck,\n nodeCheck,\n } = res.data.data.gitConvexApi.healthCheck;\n\n dispatch({\n type: HC_PARAM_ACTION,\n payload: {\n osCheck,\n gitCheck,\n nodeCheck,\n },\n });\n setHcCheck(true);\n } else {\n setShowAlert(true);\n }\n })\n .catch((err) => {\n console.log(err);\n setShowAlert(true);\n });\n }, [dispatch]);\n\n return (\n <>\n {!hcCheck ? (\n
\n
\n
\n
\n
\n
\n
\n \n Git\n \n Convex\n
\n
\n A visualizer for your git repo\n
\n
\n
\n\n {showAlert ? (\n
\n
\n Server Unreachable\n
\n

\n The server is not reachable.Please check if the server module is\n running.\n

\n
\n ) : null}\n
\n ) : (\n props.history.push(\"/dashboard\")\n )}\n \n );\n}\n","import {\n HC_PARAM_ACTION,\n HC_DONE_SWITCH,\n PRESENT_REPO,\n GIT_TRACKED_FILES,\n GIT_GLOBAL_REPOID,\n GIT_ACTION_TRACKED_FILES,\n GIT_ACTION_UNTRACKED_FILES,\n DELETE_PRESENT_REPO,\n} from \"./actionStore\";\n\nexport default function reducer(state, action) {\n switch (action.type) {\n case HC_DONE_SWITCH:\n return {\n ...state,\n hcDone: action.payload,\n };\n case HC_PARAM_ACTION:\n const { osCheck, gitCheck, nodeCheck } = action.payload;\n\n const parseValue = (payload) => {\n return JSON.parse(JSON.parse(JSON.stringify(payload))).message;\n };\n\n localStorage.setItem(\"OS_TYPE\", parseValue(osCheck));\n localStorage.setItem(\"GIT_VERSION\", parseValue(gitCheck));\n localStorage.setItem(\"NODE_VERSION\", parseValue(nodeCheck));\n\n return {\n ...state,\n hcParams: {\n osCheck: parseValue(osCheck),\n gitCheck: parseValue(gitCheck),\n nodeCheck: parseValue(nodeCheck),\n },\n };\n case PRESENT_REPO:\n return {\n ...state,\n presentRepo: [...state.presentRepo, action.payload],\n };\n case DELETE_PRESENT_REPO:\n return {\n ...state,\n presentRepo: [...action.payload],\n };\n case GIT_TRACKED_FILES:\n state.modifiedGitFiles = [];\n return {\n ...state,\n modifiedGitFiles: [...state.modifiedGitFiles, action.payload],\n };\n case GIT_GLOBAL_REPOID:\n state.globalRepoId = \"\";\n return {\n ...state,\n globalRepoId: action.payload,\n };\n case GIT_ACTION_TRACKED_FILES:\n state.gitTrackedFiles = [];\n return {\n ...state,\n gitTrackedFiles: [...state.gitTrackedFiles, action.payload],\n };\n case GIT_ACTION_UNTRACKED_FILES:\n state.gitUntrackedFiles = [];\n return {\n ...state,\n gitUntrackedFiles: [...state.gitUntrackedFiles, action.payload],\n };\n default:\n return {\n ...state,\n };\n }\n}\n","import React, { useReducer } from \"react\";\nimport { Route } from \"react-router\";\nimport { BrowserRouter, Switch } from \"react-router-dom\";\nimport \"./App.css\";\nimport Dashboard from \"./Components/DashBoard/Dashboard\";\nimport SplashScreen from \"./Components/SplashScreen\";\nimport { ContextProvider } from \"./context\";\nimport reducer from \"./reducer\";\n\nexport default function App(props) {\n const initialState = {\n hcParams: {},\n presentRepo: [],\n modifiedGitFiles: [],\n globalRepoId: \"\",\n gitUntrackedFiles: [],\n gitTrackedFiles: [],\n };\n const [state, dispatch] = useReducer(reducer, initialState);\n\n return (\n
\n \n \n \n \n \n \n \n \n \n \n
\n );\n}\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.0/8 are considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl, {\n headers: { 'Service-Worker': 'script' }\n })\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready\n .then(registration => {\n registration.unregister();\n })\n .catch(error => {\n console.error(error.message);\n });\n }\n}\n","import React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport App from \"./App\";\nimport \"./index.css\";\nimport \"./prism.css\";\nimport * as serviceWorker from \"./serviceWorker\";\n\nReactDOM.render(, document.getElementById(\"root\"));\n\nserviceWorker.unregister();\n"],"sourceRoot":""} \ No newline at end of file From 67d043ef927e56e6bcbdb8d85e3d53bc447759f1 Mon Sep 17 00:00:00 2001 From: Neel1996 Date: Mon, 13 Jul 2020 16:58:16 +0000 Subject: [PATCH 4/5] Merge pull request #15 from neel1996/gitdiff-issue-fix --- git/gitFileDifferenceAPI.js | 4 ++-- git/gitRemoveStagedItems.js | 2 +- git/gitRepoStatus.js | 2 +- git/gitStageItem.js | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/git/gitFileDifferenceAPI.js b/git/gitFileDifferenceAPI.js index 05e389a5..bd0edf94 100644 --- a/git/gitFileDifferenceAPI.js +++ b/git/gitFileDifferenceAPI.js @@ -25,7 +25,7 @@ async function getGitFileDifference(repoId, fileName) { console.log(err); }); - const diffStat = await execPromisified(`git diff --stat ${fileName}`, { + const diffStat = await execPromisified(`git diff --stat "${fileName}"`, { cwd: repoPath, windowsHide: true, }) @@ -43,7 +43,7 @@ async function getGitFileDifference(repoId, fileName) { }); const fileDiff = await execPromisified( - `git diff -U${fileContentLength} ${fileName}`, + `git diff -U${fileContentLength} "${fileName}"`, { cwd: repoPath, windowsHide: true, diff --git a/git/gitRemoveStagedItems.js b/git/gitRemoveStagedItems.js index fe6081bd..3e9295f7 100644 --- a/git/gitRemoveStagedItems.js +++ b/git/gitRemoveStagedItems.js @@ -6,7 +6,7 @@ const execPromisified = util.promisify(exec); const fetchRepopath = require("../global/fetchGitRepoPath"); const gitRemoveStagedItemApi = async (repoId, item) => { - return await execPromisified(`git reset ${item}`, { + return await execPromisified(`git reset "${item}"`, { cwd: fetchRepopath.getRepoPath(repoId), windowsHide: true, }) diff --git a/git/gitRepoStatus.js b/git/gitRepoStatus.js index 486d3d20..8fc738dd 100644 --- a/git/gitRepoStatus.js +++ b/git/gitRepoStatus.js @@ -224,7 +224,7 @@ const getGitStatus = async (repoPath) => { isGitLogAvailable && (await Promise.all( gitTrackedFileDetails.map(async (gitFile) => { - return await execPromised(`git log -1 --oneline ${gitFile}`, { + return await execPromised(`git log -1 --oneline "${gitFile}"`, { cwd: repoPath, windowsHide: true, }) diff --git a/git/gitStageItem.js b/git/gitStageItem.js index 75b31c12..0cec1212 100644 --- a/git/gitStageItem.js +++ b/git/gitStageItem.js @@ -5,7 +5,7 @@ const execPromisified = util.promisify(exec); const fetchRepopath = require("../global/fetchGitRepoPath"); const gitStageItem = async (repoId, item) => { - return await execPromisified(`git add ${item}`, { + return await execPromisified(`git add "${item}"`, { cwd: fetchRepopath.getRepoPath(repoId), windowsHide: true, }).then(({ stdout, stderr }) => { From 007596a08915919814a3c06f567b28a7d7c3531f Mon Sep 17 00:00:00 2001 From: Neel1996 Date: Tue, 14 Jul 2020 05:35:23 +0000 Subject: [PATCH 5/5] Merge pull request #17 from neel1996/linefeed-fix --- git/gitFetchPullApi.js | 23 +++++++++++++++++++---- git/gitFileDifferenceAPI.js | 4 ++-- 2 files changed, 21 insertions(+), 6 deletions(-) diff --git a/git/gitFetchPullApi.js b/git/gitFetchPullApi.js index 3039607e..79eb6ab7 100644 --- a/git/gitFetchPullApi.js +++ b/git/gitFetchPullApi.js @@ -44,14 +44,22 @@ const gitFetchApi = async (repoId, remoteUrl, remoteBranch) => { }; } - return await execPromisified(`git fetch ${remoteName} ${remoteBranch}`, { + return await execPromisified(`git fetch ${remoteName} ${remoteBranch} -v`, { cwd: fetchRepopath.getRepoPath(repoId), windowsHide: true, }) .then(({ stdout, stderr }) => { if (stdout || stderr) { // Git fetch alone returns the result in the standard error stream - const fetchResponse = stderr.trim().split("\n"); + let responseValue = ""; + if (stdout) { + responseValue += stdout; + } + if (stderr) { + responseValue += stderr; + } + + const fetchResponse = responseValue.trim().split("\n"); console.log("Fetch Response :" + fetchResponse); if (fetchResponse) { @@ -92,13 +100,20 @@ const gitPullApi = async (repoId, remoteUrl, remoteBranch) => { }; } - return await execPromisified(`git pull ${remoteName} ${remoteBranch}`, { + return await execPromisified(`git pull ${remoteName} ${remoteBranch} -v`, { cwd: fetchRepopath.getRepoPath(repoId), windowsHide: true, }) .then(async ({ stdout, stderr }) => { if (stdout || stderr) { - const pullResponse = stderr.trim().split("\n"); + let responseValue = ""; + if (stdout) { + responseValue += stdout; + } + if (stderr) { + responseValue += stderr; + } + const pullResponse = responseValue.trim().split("\n"); if (pullResponse && pullResponse.length > 0) { return { diff --git a/git/gitFileDifferenceAPI.js b/git/gitFileDifferenceAPI.js index bd0edf94..12977ac8 100644 --- a/git/gitFileDifferenceAPI.js +++ b/git/gitFileDifferenceAPI.js @@ -30,7 +30,7 @@ async function getGitFileDifference(repoId, fileName) { windowsHide: true, }) .then(({ stdout, stderr }) => { - if (stdout && !stderr) { + if (stdout) { return stdout.trim().split("\n"); } else { console.log(stderr); @@ -50,7 +50,7 @@ async function getGitFileDifference(repoId, fileName) { } ) .then(({ stdout, stderr }) => { - if (stdout && !stderr) { + if (stdout) { return stdout.trim().split("\n"); } else { console.log(stderr);