From a6db84f4bfe2a9647b7be630747c5ce246416600 Mon Sep 17 00:00:00 2001 From: thomasrosen Date: Sat, 23 Jan 2021 21:38:20 +0000 Subject: [PATCH] thomasrosen published a site update --- asset-manifest.json | 115 ++++++++++-------- index.html | 2 +- ...276f.chunk.css => main.fc67e96e.chunk.css} | 4 +- ...nk.css.map => main.fc67e96e.chunk.css.map} | 2 +- ...ced82474.chunk.js => 10.f5a04c05.chunk.js} | 4 +- ....chunk.js.map => 10.f5a04c05.chunk.js.map} | 2 +- ...280d2d76.chunk.js => 11.c63ba113.chunk.js} | 4 +- ....chunk.js.map => 11.c63ba113.chunk.js.map} | 2 +- static/js/20.b6563f7c.chunk.js | 2 + static/js/20.b6563f7c.chunk.js.map | 1 + ...d149545b.chunk.js => 21.c45e0f55.chunk.js} | 4 +- ....chunk.js.map => 21.c45e0f55.chunk.js.map} | 2 +- static/js/22.bbe9cbd8.chunk.js | 2 + static/js/22.bbe9cbd8.chunk.js.map | 1 + static/js/23.8c6aa554.chunk.js | 2 + static/js/23.8c6aa554.chunk.js.map | 1 + static/js/24.8e366e68.chunk.js | 2 + static/js/24.8e366e68.chunk.js.map | 1 + ...8a9b50dd.chunk.js => 25.6b17775d.chunk.js} | 4 +- ....chunk.js.map => 25.6b17775d.chunk.js.map} | 2 +- ...3cf1011c.chunk.js => 26.ca2de643.chunk.js} | 4 +- ....chunk.js.map => 26.ca2de643.chunk.js.map} | 2 +- static/js/27.e88cc5d7.chunk.js | 2 + static/js/27.e88cc5d7.chunk.js.map | 1 + static/js/28.a1b06358.chunk.js | 2 + static/js/28.a1b06358.chunk.js.map | 1 + ...9d6cc3d7.chunk.js => 29.89a6e6cc.chunk.js} | 4 +- ....chunk.js.map => 29.89a6e6cc.chunk.js.map} | 2 +- ....ce855f6d.chunk.js => 3.c8f2cc1c.chunk.js} | 4 +- ...d.chunk.js.map => 3.c8f2cc1c.chunk.js.map} | 2 +- ...aea0ab21.chunk.js => 30.7acb4b26.chunk.js} | 4 +- ....chunk.js.map => 30.7acb4b26.chunk.js.map} | 2 +- ...bfc63760.chunk.js => 31.ec9715dd.chunk.js} | 4 +- ....chunk.js.map => 31.ec9715dd.chunk.js.map} | 2 +- ...5b2d44d5.chunk.js => 32.a0a2635c.chunk.js} | 4 +- ....chunk.js.map => 32.a0a2635c.chunk.js.map} | 2 +- ...c4b3977c.chunk.js => 33.76dce1fa.chunk.js} | 4 +- ....chunk.js.map => 33.76dce1fa.chunk.js.map} | 2 +- static/js/34.e61f57c0.chunk.js | 2 + static/js/34.e61f57c0.chunk.js.map | 1 + static/js/35.8b4d0f08.chunk.js | 2 + static/js/35.8b4d0f08.chunk.js.map | 1 + ...5523f3dd.chunk.js => 36.b1a2ba70.chunk.js} | 4 +- ....chunk.js.map => 36.b1a2ba70.chunk.js.map} | 2 +- ...4e0332d5.chunk.js => 37.8a62e37f.chunk.js} | 4 +- ....chunk.js.map => 37.8a62e37f.chunk.js.map} | 2 +- ...6aed3d38.chunk.js => 38.19273822.chunk.js} | 4 +- ....chunk.js.map => 38.19273822.chunk.js.map} | 2 +- ....ed1378f5.chunk.js => 4.c8fe3c28.chunk.js} | 4 +- ...5.chunk.js.map => 4.c8fe3c28.chunk.js.map} | 2 +- ....7a1b164e.chunk.js => 5.1044513f.chunk.js} | 4 +- ...e.chunk.js.map => 5.1044513f.chunk.js.map} | 2 +- ....89172bbf.chunk.js => 6.5480cc16.chunk.js} | 4 +- ...f.chunk.js.map => 6.5480cc16.chunk.js.map} | 2 +- ....6ea2860b.chunk.js => 7.2cd57292.chunk.js} | 4 +- ...b.chunk.js.map => 7.2cd57292.chunk.js.map} | 2 +- ....a8c10ad6.chunk.js => 8.7cccddc2.chunk.js} | 4 +- ...6.chunk.js.map => 8.7cccddc2.chunk.js.map} | 2 +- ....5165e41e.chunk.js => 9.49b7d145.chunk.js} | 4 +- ...e.chunk.js.map => 9.49b7d145.chunk.js.map} | 2 +- static/js/main.88eac815.chunk.js | 2 - static/js/main.88eac815.chunk.js.map | 1 - static/js/main.c5ef7ee6.chunk.js | 2 + static/js/main.c5ef7ee6.chunk.js.map | 1 + static/js/runtime-main.342895cd.js | 2 - static/js/runtime-main.342895cd.js.map | 1 - static/js/runtime-main.b5f24269.js | 2 + static/js/runtime-main.b5f24269.js.map | 1 + static/media/EuropeCares.0e31be7f.png | Bin 0 -> 10305 bytes 69 files changed, 160 insertions(+), 119 deletions(-) rename static/css/{main.2109276f.chunk.css => main.fc67e96e.chunk.css} (95%) rename static/css/{main.2109276f.chunk.css.map => main.fc67e96e.chunk.css.map} (97%) rename static/js/{10.ced82474.chunk.js => 10.f5a04c05.chunk.js} (55%) rename static/js/{10.ced82474.chunk.js.map => 10.f5a04c05.chunk.js.map} (72%) rename static/js/{11.280d2d76.chunk.js => 11.c63ba113.chunk.js} (96%) rename static/js/{11.280d2d76.chunk.js.map => 11.c63ba113.chunk.js.map} (99%) create mode 100644 static/js/20.b6563f7c.chunk.js create mode 100644 static/js/20.b6563f7c.chunk.js.map rename static/js/{20.d149545b.chunk.js => 21.c45e0f55.chunk.js} (97%) rename static/js/{20.d149545b.chunk.js.map => 21.c45e0f55.chunk.js.map} (98%) create mode 100644 static/js/22.bbe9cbd8.chunk.js create mode 100644 static/js/22.bbe9cbd8.chunk.js.map create mode 100644 static/js/23.8c6aa554.chunk.js create mode 100644 static/js/23.8c6aa554.chunk.js.map create mode 100644 static/js/24.8e366e68.chunk.js create mode 100644 static/js/24.8e366e68.chunk.js.map rename static/js/{21.8a9b50dd.chunk.js => 25.6b17775d.chunk.js} (98%) rename static/js/{21.8a9b50dd.chunk.js.map => 25.6b17775d.chunk.js.map} (98%) rename static/js/{22.3cf1011c.chunk.js => 26.ca2de643.chunk.js} (98%) rename static/js/{22.3cf1011c.chunk.js.map => 26.ca2de643.chunk.js.map} (98%) create mode 100644 static/js/27.e88cc5d7.chunk.js create mode 100644 static/js/27.e88cc5d7.chunk.js.map create mode 100644 static/js/28.a1b06358.chunk.js create mode 100644 static/js/28.a1b06358.chunk.js.map rename static/js/{23.9d6cc3d7.chunk.js => 29.89a6e6cc.chunk.js} (97%) rename static/js/{23.9d6cc3d7.chunk.js.map => 29.89a6e6cc.chunk.js.map} (98%) rename static/js/{3.ce855f6d.chunk.js => 3.c8f2cc1c.chunk.js} (55%) rename static/js/{3.ce855f6d.chunk.js.map => 3.c8f2cc1c.chunk.js.map} (72%) rename static/js/{24.aea0ab21.chunk.js => 30.7acb4b26.chunk.js} (97%) rename static/js/{24.aea0ab21.chunk.js.map => 30.7acb4b26.chunk.js.map} (98%) rename static/js/{25.bfc63760.chunk.js => 31.ec9715dd.chunk.js} (97%) rename static/js/{25.bfc63760.chunk.js.map => 31.ec9715dd.chunk.js.map} (98%) rename static/js/{26.5b2d44d5.chunk.js => 32.a0a2635c.chunk.js} (97%) rename static/js/{26.5b2d44d5.chunk.js.map => 32.a0a2635c.chunk.js.map} (98%) rename static/js/{27.c4b3977c.chunk.js => 33.76dce1fa.chunk.js} (97%) rename static/js/{27.c4b3977c.chunk.js.map => 33.76dce1fa.chunk.js.map} (98%) create mode 100644 static/js/34.e61f57c0.chunk.js create mode 100644 static/js/34.e61f57c0.chunk.js.map create mode 100644 static/js/35.8b4d0f08.chunk.js create mode 100644 static/js/35.8b4d0f08.chunk.js.map rename static/js/{28.5523f3dd.chunk.js => 36.b1a2ba70.chunk.js} (98%) rename static/js/{28.5523f3dd.chunk.js.map => 36.b1a2ba70.chunk.js.map} (98%) rename static/js/{29.4e0332d5.chunk.js => 37.8a62e37f.chunk.js} (97%) rename static/js/{29.4e0332d5.chunk.js.map => 37.8a62e37f.chunk.js.map} (98%) rename static/js/{30.6aed3d38.chunk.js => 38.19273822.chunk.js} (97%) rename static/js/{30.6aed3d38.chunk.js.map => 38.19273822.chunk.js.map} (98%) rename static/js/{4.ed1378f5.chunk.js => 4.c8fe3c28.chunk.js} (55%) rename static/js/{4.ed1378f5.chunk.js.map => 4.c8fe3c28.chunk.js.map} (72%) rename static/js/{5.7a1b164e.chunk.js => 5.1044513f.chunk.js} (55%) rename static/js/{5.7a1b164e.chunk.js.map => 5.1044513f.chunk.js.map} (72%) rename static/js/{6.89172bbf.chunk.js => 6.5480cc16.chunk.js} (55%) rename static/js/{6.89172bbf.chunk.js.map => 6.5480cc16.chunk.js.map} (72%) rename static/js/{7.6ea2860b.chunk.js => 7.2cd57292.chunk.js} (55%) rename static/js/{7.6ea2860b.chunk.js.map => 7.2cd57292.chunk.js.map} (72%) rename static/js/{8.a8c10ad6.chunk.js => 8.7cccddc2.chunk.js} (55%) rename static/js/{8.a8c10ad6.chunk.js.map => 8.7cccddc2.chunk.js.map} (72%) rename static/js/{9.5165e41e.chunk.js => 9.49b7d145.chunk.js} (55%) rename static/js/{9.5165e41e.chunk.js.map => 9.49b7d145.chunk.js.map} (72%) delete mode 100644 static/js/main.88eac815.chunk.js delete mode 100644 static/js/main.88eac815.chunk.js.map create mode 100644 static/js/main.c5ef7ee6.chunk.js create mode 100644 static/js/main.c5ef7ee6.chunk.js.map delete mode 100644 static/js/runtime-main.342895cd.js delete mode 100644 static/js/runtime-main.342895cd.js.map create mode 100644 static/js/runtime-main.b5f24269.js create mode 100644 static/js/runtime-main.b5f24269.js.map create mode 100644 static/media/EuropeCares.0e31be7f.png diff --git a/asset-manifest.json b/asset-manifest.json index 977a1b6..5caa878 100644 --- a/asset-manifest.json +++ b/asset-manifest.json @@ -1,30 +1,30 @@ { "files": { - "main.css": "/static/css/main.2109276f.chunk.css", - "main.js": "/static/js/main.88eac815.chunk.js", - "main.js.map": "/static/js/main.88eac815.chunk.js.map", - "runtime-main.js": "/static/js/runtime-main.342895cd.js", - "runtime-main.js.map": "/static/js/runtime-main.342895cd.js.map", + "main.css": "/static/css/main.fc67e96e.chunk.css", + "main.js": "/static/js/main.c5ef7ee6.chunk.js", + "main.js.map": "/static/js/main.c5ef7ee6.chunk.js.map", + "runtime-main.js": "/static/js/runtime-main.b5f24269.js", + "runtime-main.js.map": "/static/js/runtime-main.b5f24269.js.map", "static/js/2.ac5abb0a.chunk.js": "/static/js/2.ac5abb0a.chunk.js", "static/js/2.ac5abb0a.chunk.js.map": "/static/js/2.ac5abb0a.chunk.js.map", - "static/js/3.ce855f6d.chunk.js": "/static/js/3.ce855f6d.chunk.js", - "static/js/3.ce855f6d.chunk.js.map": "/static/js/3.ce855f6d.chunk.js.map", - "static/js/4.ed1378f5.chunk.js": "/static/js/4.ed1378f5.chunk.js", - "static/js/4.ed1378f5.chunk.js.map": "/static/js/4.ed1378f5.chunk.js.map", - "static/js/5.7a1b164e.chunk.js": "/static/js/5.7a1b164e.chunk.js", - "static/js/5.7a1b164e.chunk.js.map": "/static/js/5.7a1b164e.chunk.js.map", - "static/js/6.89172bbf.chunk.js": "/static/js/6.89172bbf.chunk.js", - "static/js/6.89172bbf.chunk.js.map": "/static/js/6.89172bbf.chunk.js.map", - "static/js/7.6ea2860b.chunk.js": "/static/js/7.6ea2860b.chunk.js", - "static/js/7.6ea2860b.chunk.js.map": "/static/js/7.6ea2860b.chunk.js.map", - "static/js/8.a8c10ad6.chunk.js": "/static/js/8.a8c10ad6.chunk.js", - "static/js/8.a8c10ad6.chunk.js.map": "/static/js/8.a8c10ad6.chunk.js.map", - "static/js/9.5165e41e.chunk.js": "/static/js/9.5165e41e.chunk.js", - "static/js/9.5165e41e.chunk.js.map": "/static/js/9.5165e41e.chunk.js.map", - "static/js/10.ced82474.chunk.js": "/static/js/10.ced82474.chunk.js", - "static/js/10.ced82474.chunk.js.map": "/static/js/10.ced82474.chunk.js.map", - "static/js/11.280d2d76.chunk.js": "/static/js/11.280d2d76.chunk.js", - "static/js/11.280d2d76.chunk.js.map": "/static/js/11.280d2d76.chunk.js.map", + "static/js/3.c8f2cc1c.chunk.js": "/static/js/3.c8f2cc1c.chunk.js", + "static/js/3.c8f2cc1c.chunk.js.map": "/static/js/3.c8f2cc1c.chunk.js.map", + "static/js/4.c8fe3c28.chunk.js": "/static/js/4.c8fe3c28.chunk.js", + "static/js/4.c8fe3c28.chunk.js.map": "/static/js/4.c8fe3c28.chunk.js.map", + "static/js/5.1044513f.chunk.js": "/static/js/5.1044513f.chunk.js", + "static/js/5.1044513f.chunk.js.map": "/static/js/5.1044513f.chunk.js.map", + "static/js/6.5480cc16.chunk.js": "/static/js/6.5480cc16.chunk.js", + "static/js/6.5480cc16.chunk.js.map": "/static/js/6.5480cc16.chunk.js.map", + "static/js/7.2cd57292.chunk.js": "/static/js/7.2cd57292.chunk.js", + "static/js/7.2cd57292.chunk.js.map": "/static/js/7.2cd57292.chunk.js.map", + "static/js/8.7cccddc2.chunk.js": "/static/js/8.7cccddc2.chunk.js", + "static/js/8.7cccddc2.chunk.js.map": "/static/js/8.7cccddc2.chunk.js.map", + "static/js/9.49b7d145.chunk.js": "/static/js/9.49b7d145.chunk.js", + "static/js/9.49b7d145.chunk.js.map": "/static/js/9.49b7d145.chunk.js.map", + "static/js/10.f5a04c05.chunk.js": "/static/js/10.f5a04c05.chunk.js", + "static/js/10.f5a04c05.chunk.js.map": "/static/js/10.f5a04c05.chunk.js.map", + "static/js/11.c63ba113.chunk.js": "/static/js/11.c63ba113.chunk.js", + "static/js/11.c63ba113.chunk.js.map": "/static/js/11.c63ba113.chunk.js.map", "static/js/12.a1328837.chunk.js": "/static/js/12.a1328837.chunk.js", "static/js/12.a1328837.chunk.js.map": "/static/js/12.a1328837.chunk.js.map", "static/js/13.c5eb29a5.chunk.js": "/static/js/13.c5eb29a5.chunk.js", @@ -41,31 +41,48 @@ "static/js/18.699b91df.chunk.js.map": "/static/js/18.699b91df.chunk.js.map", "static/js/19.1a0dd8ec.chunk.js": "/static/js/19.1a0dd8ec.chunk.js", "static/js/19.1a0dd8ec.chunk.js.map": "/static/js/19.1a0dd8ec.chunk.js.map", - "static/js/20.d149545b.chunk.js": "/static/js/20.d149545b.chunk.js", - "static/js/20.d149545b.chunk.js.map": "/static/js/20.d149545b.chunk.js.map", - "static/js/21.8a9b50dd.chunk.js": "/static/js/21.8a9b50dd.chunk.js", - "static/js/21.8a9b50dd.chunk.js.map": "/static/js/21.8a9b50dd.chunk.js.map", - "static/js/22.3cf1011c.chunk.js": "/static/js/22.3cf1011c.chunk.js", - "static/js/22.3cf1011c.chunk.js.map": "/static/js/22.3cf1011c.chunk.js.map", - "static/js/23.9d6cc3d7.chunk.js": "/static/js/23.9d6cc3d7.chunk.js", - "static/js/23.9d6cc3d7.chunk.js.map": "/static/js/23.9d6cc3d7.chunk.js.map", - "static/js/24.aea0ab21.chunk.js": "/static/js/24.aea0ab21.chunk.js", - "static/js/24.aea0ab21.chunk.js.map": "/static/js/24.aea0ab21.chunk.js.map", - "static/js/25.bfc63760.chunk.js": "/static/js/25.bfc63760.chunk.js", - "static/js/25.bfc63760.chunk.js.map": "/static/js/25.bfc63760.chunk.js.map", - "static/js/26.5b2d44d5.chunk.js": "/static/js/26.5b2d44d5.chunk.js", - "static/js/26.5b2d44d5.chunk.js.map": "/static/js/26.5b2d44d5.chunk.js.map", - "static/js/27.c4b3977c.chunk.js": "/static/js/27.c4b3977c.chunk.js", - "static/js/27.c4b3977c.chunk.js.map": "/static/js/27.c4b3977c.chunk.js.map", - "static/js/28.5523f3dd.chunk.js": "/static/js/28.5523f3dd.chunk.js", - "static/js/28.5523f3dd.chunk.js.map": "/static/js/28.5523f3dd.chunk.js.map", - "static/js/29.4e0332d5.chunk.js": "/static/js/29.4e0332d5.chunk.js", - "static/js/29.4e0332d5.chunk.js.map": "/static/js/29.4e0332d5.chunk.js.map", - "static/js/30.6aed3d38.chunk.js": "/static/js/30.6aed3d38.chunk.js", - "static/js/30.6aed3d38.chunk.js.map": "/static/js/30.6aed3d38.chunk.js.map", + "static/js/20.b6563f7c.chunk.js": "/static/js/20.b6563f7c.chunk.js", + "static/js/20.b6563f7c.chunk.js.map": "/static/js/20.b6563f7c.chunk.js.map", + "static/js/21.c45e0f55.chunk.js": "/static/js/21.c45e0f55.chunk.js", + "static/js/21.c45e0f55.chunk.js.map": "/static/js/21.c45e0f55.chunk.js.map", + "static/js/22.bbe9cbd8.chunk.js": "/static/js/22.bbe9cbd8.chunk.js", + "static/js/22.bbe9cbd8.chunk.js.map": "/static/js/22.bbe9cbd8.chunk.js.map", + "static/js/23.8c6aa554.chunk.js": "/static/js/23.8c6aa554.chunk.js", + "static/js/23.8c6aa554.chunk.js.map": "/static/js/23.8c6aa554.chunk.js.map", + "static/js/24.8e366e68.chunk.js": "/static/js/24.8e366e68.chunk.js", + "static/js/24.8e366e68.chunk.js.map": "/static/js/24.8e366e68.chunk.js.map", + "static/js/25.6b17775d.chunk.js": "/static/js/25.6b17775d.chunk.js", + "static/js/25.6b17775d.chunk.js.map": "/static/js/25.6b17775d.chunk.js.map", + "static/js/26.ca2de643.chunk.js": "/static/js/26.ca2de643.chunk.js", + "static/js/26.ca2de643.chunk.js.map": "/static/js/26.ca2de643.chunk.js.map", + "static/js/27.e88cc5d7.chunk.js": "/static/js/27.e88cc5d7.chunk.js", + "static/js/27.e88cc5d7.chunk.js.map": "/static/js/27.e88cc5d7.chunk.js.map", + "static/js/28.a1b06358.chunk.js": "/static/js/28.a1b06358.chunk.js", + "static/js/28.a1b06358.chunk.js.map": "/static/js/28.a1b06358.chunk.js.map", + "static/js/29.89a6e6cc.chunk.js": "/static/js/29.89a6e6cc.chunk.js", + "static/js/29.89a6e6cc.chunk.js.map": "/static/js/29.89a6e6cc.chunk.js.map", + "static/js/30.7acb4b26.chunk.js": "/static/js/30.7acb4b26.chunk.js", + "static/js/30.7acb4b26.chunk.js.map": "/static/js/30.7acb4b26.chunk.js.map", + "static/js/31.ec9715dd.chunk.js": "/static/js/31.ec9715dd.chunk.js", + "static/js/31.ec9715dd.chunk.js.map": "/static/js/31.ec9715dd.chunk.js.map", + "static/js/32.a0a2635c.chunk.js": "/static/js/32.a0a2635c.chunk.js", + "static/js/32.a0a2635c.chunk.js.map": "/static/js/32.a0a2635c.chunk.js.map", + "static/js/33.76dce1fa.chunk.js": "/static/js/33.76dce1fa.chunk.js", + "static/js/33.76dce1fa.chunk.js.map": "/static/js/33.76dce1fa.chunk.js.map", + "static/js/34.e61f57c0.chunk.js": "/static/js/34.e61f57c0.chunk.js", + "static/js/34.e61f57c0.chunk.js.map": "/static/js/34.e61f57c0.chunk.js.map", + "static/js/35.8b4d0f08.chunk.js": "/static/js/35.8b4d0f08.chunk.js", + "static/js/35.8b4d0f08.chunk.js.map": "/static/js/35.8b4d0f08.chunk.js.map", + "static/js/36.b1a2ba70.chunk.js": "/static/js/36.b1a2ba70.chunk.js", + "static/js/36.b1a2ba70.chunk.js.map": "/static/js/36.b1a2ba70.chunk.js.map", + "static/js/37.8a62e37f.chunk.js": "/static/js/37.8a62e37f.chunk.js", + "static/js/37.8a62e37f.chunk.js.map": "/static/js/37.8a62e37f.chunk.js.map", + "static/js/38.19273822.chunk.js": "/static/js/38.19273822.chunk.js", + "static/js/38.19273822.chunk.js.map": "/static/js/38.19273822.chunk.js.map", "index.html": "/index.html", - "static/css/main.2109276f.chunk.css.map": "/static/css/main.2109276f.chunk.css.map", + "static/css/main.fc67e96e.chunk.css.map": "/static/css/main.fc67e96e.chunk.css.map", "static/js/2.ac5abb0a.chunk.js.LICENSE.txt": "/static/js/2.ac5abb0a.chunk.js.LICENSE.txt", + "static/media/EuropeCares.png": "/static/media/EuropeCares.0e31be7f.png", "static/media/ProfileFrame Blue Bars.png": "/static/media/ProfileFrame Blue Bars.698613ff.png", "static/media/ProfileFrame Green Bars.png": "/static/media/ProfileFrame Green Bars.2876cf32.png", "static/media/ProfileFrame Mixed Bars.png": "/static/media/ProfileFrame Mixed Bars.7615b5e8.png", @@ -83,9 +100,9 @@ "static/media/ru.ftl": "/static/media/ru.bad3de5e.ftl" }, "entrypoints": [ - "static/js/runtime-main.342895cd.js", + "static/js/runtime-main.b5f24269.js", "static/js/2.ac5abb0a.chunk.js", - "static/css/main.2109276f.chunk.css", - "static/js/main.88eac815.chunk.js" + "static/css/main.fc67e96e.chunk.css", + "static/js/main.c5ef7ee6.chunk.js" ] } \ No newline at end of file diff --git a/index.html b/index.html index 63de429..923a89a 100644 --- a/index.html +++ b/index.html @@ -1 +1 @@ -Volt Social Media Frame Generator
\ No newline at end of file +Volt Social Media Frame Generator
\ No newline at end of file diff --git a/static/css/main.2109276f.chunk.css b/static/css/main.fc67e96e.chunk.css similarity index 95% rename from static/css/main.2109276f.chunk.css rename to static/css/main.fc67e96e.chunk.css index 657e887..bbc6aa9 100644 --- a/static/css/main.2109276f.chunk.css +++ b/static/css/main.fc67e96e.chunk.css @@ -1,2 +1,2 @@ -:root{--volt-purple:#582c83;--background:#140022;--editor-purple:#522e77}*{margin:0;padding:0;font-family:"Ubuntu",-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Oxygen","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background-color:#140022;background-color:var(--background)}footer{margin:10vmin 0 0}.locale_chooser{margin:-8vmin 10vmin 10vmin;text-align:center}.App{text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:calc(10px + 2vmin);color:#fff;padding:10vmin}h1{font-size:calc(10px + 10vmin);line-height:.9;margin-top:2vmin}h2{margin:10vh 0 2vh;font-size:calc(10px + 4vmin)}p{max-width:100%;width:calc(40vh + 15vw)}a{color:#fff}a:hover{color:hsla(0,0%,100%,.8)}.HeaderImage{height:calc(10px + 20vmin);max-width:100%}.FinishedFrame{height:36vh;margin:2vh}.FrameChooser .frame{position:relative;display:inline-block;font-size:0;margin:2vh;cursor:pointer;transition:transform .2s ease}.FrameChooser .frame img{height:12vh;pointer-events:none}.FrameChooser .frame:hover{transform-origin:center center;transform:scale(1.1)}.FrameChooser .frame.choosen:after{content:"";position:absolute;top:-.5vh;right:-.5vh;bottom:-.5vh;left:-.5vh;box-shadow:0 0 0 .5vh #fff}.HashtagChooser .hashtag_button{margin:1vmin}.labelButton,button{position:relative;outline:none;border:none;margin:2vh;padding:1vh 2vh;font-size:calc(10px + 2vmin);font-weight:700;cursor:pointer;background:#fff;color:#582c83;color:var(--volt-purple);transition:transform .2s ease}.labelButton:hover,button:hover{transform-origin:center center;transform:scale(1.05)}button.choosen:after{content:"";position:absolute;top:-.5vh;right:-.5vh;bottom:-.5vh;left:-.5vh;box-shadow:0 0 0 .5vh #fff}.labelButton img{display:inline;height:calc(10px + 4vmin);margin:0 2vh 0 -1vh}.labelButton img,.labelButton span{vertical-align:middle}.droparea{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:calc(10px + 10vmin);background:rgba(20,0,34,.7);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);pointer-events:none;opacity:0;transition:opacity .2s ease}.droparea.active{opacity:1}.Editor{pointer-events:all;position:relative;margin:2vh;font-size:0;cursor:move;overflow:hidden;background:#522e77;background:var(--editor-purple)}.Editor .background{pointer-events:none;position:absolute;top:50%;left:50%}.Editor .foreground{pointer-events:none;position:relative;width:36vh;height:36vh}.Editor .hashtag{pointer-events:none;position:absolute;top:0;left:0;width:100%;height:100%} -/*# sourceMappingURL=main.2109276f.chunk.css.map */ \ No newline at end of file +:root{--volt-purple:#582c83;--background:#140022;--editor-purple:#522e77}*{margin:0;padding:0;font-family:"Ubuntu",-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Oxygen","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background-color:#140022;background-color:var(--background)}footer{margin:10vmin 0 0}.locale_chooser{margin:-8vmin 10vmin 10vmin;text-align:center}.App{text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:calc(10px + 2vmin);color:#fff;padding:10vmin}h1{font-size:calc(10px + 10vmin);line-height:.9;margin-top:2vmin}h2{margin:10vh 0 2vh;font-size:calc(10px + 4vmin)}p{max-width:100%;width:calc(40vh + 15vw)}a{color:#fff}a:hover{color:hsla(0,0%,100%,.8)}.HeaderImage{height:calc(10px + 20vmin);max-width:100%}.FinishedFrame{height:36vh;margin:2vh}.FrameChooser .frame{position:relative;display:inline-block;font-size:0;margin:2vh;cursor:pointer;transition:transform .2s ease}.FrameChooser .frame img{height:12vh;pointer-events:none}.FrameChooser .frame:hover{transform-origin:center center;transform:scale(1.1)}.FrameChooser .frame.choosen:after{content:"";position:absolute;top:-.5vh;right:-.5vh;bottom:-.5vh;left:-.5vh;box-shadow:0 0 0 .5vh #fff}.HashtagChooser .hashtag_button{margin:1vmin}.labelButton,button{position:relative;outline:none;border:none;margin:1vh;padding:1vh 2vh;font-size:calc(10px + 2vmin);font-weight:700;cursor:pointer;background:#fff;color:#582c83;color:var(--volt-purple);transition:transform .2s ease}.labelButton:hover,button:hover{transform-origin:center center;transform:scale(1.05)}button.choosen:after{content:"";position:absolute;top:-.5vh;right:-.5vh;bottom:-.5vh;left:-.5vh;box-shadow:0 0 0 .5vh #fff}.labelButton img{display:inline;height:calc(10px + 4vmin);margin:0 2vh 0 -1vh}.labelButton img,.labelButton span{vertical-align:middle}.droparea{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:calc(10px + 10vmin);background:rgba(20,0,34,.7);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);pointer-events:none;opacity:0;transition:opacity .2s ease}.droparea.active{opacity:1}.Editor{pointer-events:all;position:relative;margin:2vh;font-size:0;cursor:move;overflow:hidden;background:#522e77;background:var(--editor-purple)}.Editor .background{pointer-events:none;position:absolute;top:50%;left:50%}.Editor .foreground{pointer-events:none;position:relative;width:36vh;height:36vh}.Editor .hashtag{pointer-events:none;position:absolute;top:0;left:0;width:100%;height:100%} +/*# sourceMappingURL=main.fc67e96e.chunk.css.map */ \ No newline at end of file diff --git a/static/css/main.2109276f.chunk.css.map b/static/css/main.fc67e96e.chunk.css.map similarity index 97% rename from static/css/main.2109276f.chunk.css.map rename to static/css/main.fc67e96e.chunk.css.map index a288965..80ed994 100644 --- a/static/css/main.2109276f.chunk.css.map +++ b/static/css/main.fc67e96e.chunk.css.map @@ -1 +1 @@ -{"version":3,"sources":["webpack://src/App.css"],"names":[],"mappings":"AAAA,MACI,qBAAsB,CACtB,oBAAqB,CACrB,uBACJ,CAEA,EACI,QAAS,CACT,SAAU,CACV,mJAEU,CACV,kCAAmC,CACnC,iCACJ,CAEA,KACI,wBAAmC,CAAnC,kCACJ,CAEA,OACI,iBACJ,CAEA,gBACI,2BAAmC,CACnC,iBACJ,CAEA,KACI,iBAAkB,CAGlB,YAAa,CACb,qBAAsB,CACtB,kBAAmB,CACnB,sBAAuB,CACvB,4BAA6B,CAC7B,UAAY,CACZ,cACJ,CAEA,GACI,6BAA8B,CAC9B,cAAgB,CAChB,gBACJ,CAEA,GACI,iBAAoB,CACpB,4BACJ,CAEA,EACI,cAAe,CACf,uBACJ,CAEA,EACI,UACJ,CACA,QACI,wBACJ,CAEA,aACI,0BAA2B,CAC3B,cACJ,CAEA,eACI,WAAY,CACZ,UACJ,CAEA,qBACI,iBAAkB,CAClB,oBAAqB,CACrB,WAAY,CAEZ,UAAW,CACX,cAAe,CAEf,6BACJ,CACA,yBACI,WAAY,CACZ,mBACJ,CACA,2BACI,8BAA+B,CAC/B,oBACJ,CAIA,mCACI,UAAW,CACX,iBAAkB,CAClB,SAAW,CACX,WAAa,CACb,YAAc,CACd,UAAY,CACZ,0BACJ,CAEA,gCAEI,YACJ,CAEA,oBAEI,iBAAkB,CAClB,YAAa,CACb,WAAY,CACZ,UAAW,CACX,eAAgB,CAChB,4BAA6B,CAC7B,eAAiB,CACjB,cAAe,CAEf,eAAiB,CACjB,aAAyB,CAAzB,wBAAyB,CACzB,6BACJ,CACA,gCAEI,8BAA+B,CAC/B,qBACJ,CACA,qBACI,UAAW,CACX,iBAAkB,CAClB,SAAW,CACX,WAAa,CACb,YAAc,CACd,UAAY,CACZ,0BACJ,CAEA,iBACI,cAAe,CACf,yBAA0B,CAE1B,mBACJ,CACA,mCAHI,qBAKJ,CAGA,UACI,cAAe,CACf,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CAEP,YAAa,CACb,kBAAmB,CACnB,sBAAuB,CAEvB,eAAiB,CACjB,6BAA8B,CAE9B,2BAAgC,CAChC,kCAA2B,CAA3B,0BAA2B,CAE3B,mBAAoB,CACpB,SAAU,CACV,2BACJ,CACA,iBACI,SACJ,CAGA,QACI,kBAAmB,CACnB,iBAAkB,CAClB,UAAW,CACX,WAAY,CACZ,WAAY,CACZ,eAAgB,CAChB,kBAAgC,CAAhC,+BACJ,CACA,oBACI,mBAAoB,CACpB,iBAAkB,CAClB,OAAQ,CACR,QACJ,CACA,oBACI,mBAAoB,CACpB,iBAAkB,CAClB,UAAW,CACX,WACJ,CACA,iBACI,mBAAoB,CACpB,iBAAkB,CAClB,KAAM,CACN,MAAO,CACP,UAAW,CACX,WACJ","file":"main.2109276f.chunk.css","sourcesContent":[":root{\n --volt-purple: #582C83;\n --background: #140022;\n --editor-purple: #522e77;\n}\n\n*{\n margin: 0;\n padding: 0;\n font-family: 'Ubuntu', -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',\n 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',\n sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\nbody{\n background-color: var(--background);\n}\n\nfooter{\n margin: 10vmin 0 0 0;\n}\n\n.locale_chooser{\n margin: -8vmin 10vmin 10vmin 10vmin;\n text-align: center;\n}\n\n.App {\n text-align: center;\n\n /* min-height: 100vh; */\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n font-size: calc(10px + 2vmin);\n color: white;\n padding: 10vmin;\n}\n\nh1{\n font-size: calc(10px + 10vmin);\n line-height: 0.9;\n margin-top: 2vmin;\n}\n\nh2{\n margin: 10vh 0 2vh 0;\n font-size: calc(10px + 4vmin);\n}\n\np{\n max-width: 100%;\n width: calc(40vh + 15vw);\n}\n\na{\n color: white;\n}\na:hover{\n color: rgba(255,255,255,0.8);\n}\n\n.HeaderImage{\n height: calc(10px + 20vmin);\n max-width: 100%;\n}\n\n.FinishedFrame {\n height: 36vh;\n margin: 2vh;\n}\n\n.FrameChooser .frame{\n position: relative;\n display: inline-block;\n font-size: 0;\n\n margin: 2vh;\n cursor: pointer;\n /* box-shadow: 0 0 0 1vh rgba(255,255,255,0); */\n transition: transform 0.2s ease;\n}\n.FrameChooser .frame img{\n height: 12vh;\n pointer-events: none;\n}\n.FrameChooser .frame:hover{\n transform-origin: center center;\n transform: scale(1.1);\n}\n/* .FrameChooser .frame.choosen{\n box-shadow: 0 0 0 1vh white;\n} */\n.FrameChooser .frame.choosen:after {\n content: \"\";\n position: absolute;\n top: -0.5vh;\n right: -0.5vh;\n bottom: -0.5vh;\n left: -0.5vh;\n box-shadow: 0 0 0 0.5vh white;\n}\n\n.HashtagChooser .hashtag_button {\n /* display: block; */\n margin: 1vmin;\n}\n\nbutton,\n.labelButton{\n position: relative;\n outline: none;\n border: none;\n margin: 2vh;\n padding: 1vh 2vh;\n font-size: calc(10px + 2vmin);\n font-weight: bold;\n cursor: pointer;\n\n background: white;\n color: var(--volt-purple);\n transition: transform 0.2s ease;\n}\nbutton:hover,\n.labelButton:hover{\n transform-origin: center center;\n transform: scale(1.05);\n}\nbutton.choosen:after {\n content: \"\";\n position: absolute;\n top: -0.5vh;\n right: -0.5vh;\n bottom: -0.5vh;\n left: -0.5vh;\n box-shadow: 0 0 0 0.5vh white;\n}\n\n.labelButton img{\n display: inline;\n height: calc(10px + 4vmin);\n vertical-align: middle;\n margin: 0 2vh 0 -1vh;\n}\n.labelButton span{\n vertical-align: middle;\n}\n\n\n.droparea{\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n \n display: flex;\n align-items: center;\n justify-content: center;\n\n font-weight: bold;\n font-size: calc(10px + 10vmin);\n\n background: rgba(20, 0, 34, 0.7);\n backdrop-filter: blur(10px);\n\n pointer-events: none;\n opacity: 0;\n transition: opacity 0.2s ease;\n}\n.droparea.active{\n opacity: 1;\n}\n\n\n.Editor{\n pointer-events: all;\n position: relative;\n margin: 2vh;\n font-size: 0;\n cursor: move;\n overflow: hidden;\n background: var(--editor-purple);\n}\n.Editor .background{\n pointer-events: none; \n position: absolute; \n top: 50%;\n left: 50%;\n}\n.Editor .foreground{\n pointer-events: none;\n position: relative;\n width: 36vh;\n height: 36vh;\n}\n.Editor .hashtag{\n pointer-events: none; \n position: absolute; \n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n}\n\n"]} \ No newline at end of file +{"version":3,"sources":["webpack://src/App.css"],"names":[],"mappings":"AAAA,MACI,qBAAsB,CACtB,oBAAqB,CACrB,uBACJ,CAEA,EACI,QAAS,CACT,SAAU,CACV,mJAEU,CACV,kCAAmC,CACnC,iCACJ,CAEA,KACI,wBAAmC,CAAnC,kCACJ,CAEA,OACI,iBACJ,CAEA,gBACI,2BAAmC,CACnC,iBACJ,CAEA,KACI,iBAAkB,CAGlB,YAAa,CACb,qBAAsB,CACtB,kBAAmB,CACnB,sBAAuB,CACvB,4BAA6B,CAC7B,UAAY,CACZ,cACJ,CAEA,GACI,6BAA8B,CAC9B,cAAgB,CAChB,gBACJ,CAEA,GACI,iBAAoB,CACpB,4BACJ,CAEA,EACI,cAAe,CACf,uBACJ,CAEA,EACI,UACJ,CACA,QACI,wBACJ,CAEA,aACI,0BAA2B,CAC3B,cACJ,CAEA,eACI,WAAY,CACZ,UACJ,CAEA,qBACI,iBAAkB,CAClB,oBAAqB,CACrB,WAAY,CAEZ,UAAW,CACX,cAAe,CAEf,6BACJ,CACA,yBACI,WAAY,CACZ,mBACJ,CACA,2BACI,8BAA+B,CAC/B,oBACJ,CAIA,mCACI,UAAW,CACX,iBAAkB,CAClB,SAAW,CACX,WAAa,CACb,YAAc,CACd,UAAY,CACZ,0BACJ,CAEA,gCAEI,YACJ,CAEA,oBAEI,iBAAkB,CAClB,YAAa,CACb,WAAY,CACZ,UAAW,CACX,eAAgB,CAChB,4BAA6B,CAC7B,eAAiB,CACjB,cAAe,CAEf,eAAiB,CACjB,aAAyB,CAAzB,wBAAyB,CACzB,6BACJ,CACA,gCAEI,8BAA+B,CAC/B,qBACJ,CACA,qBACI,UAAW,CACX,iBAAkB,CAClB,SAAW,CACX,WAAa,CACb,YAAc,CACd,UAAY,CACZ,0BACJ,CAEA,iBACI,cAAe,CACf,yBAA0B,CAE1B,mBACJ,CACA,mCAHI,qBAKJ,CAGA,UACI,cAAe,CACf,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CAEP,YAAa,CACb,kBAAmB,CACnB,sBAAuB,CAEvB,eAAiB,CACjB,6BAA8B,CAE9B,2BAAgC,CAChC,kCAA2B,CAA3B,0BAA2B,CAE3B,mBAAoB,CACpB,SAAU,CACV,2BACJ,CACA,iBACI,SACJ,CAGA,QACI,kBAAmB,CACnB,iBAAkB,CAClB,UAAW,CACX,WAAY,CACZ,WAAY,CACZ,eAAgB,CAChB,kBAAgC,CAAhC,+BACJ,CACA,oBACI,mBAAoB,CACpB,iBAAkB,CAClB,OAAQ,CACR,QACJ,CACA,oBACI,mBAAoB,CACpB,iBAAkB,CAClB,UAAW,CACX,WACJ,CACA,iBACI,mBAAoB,CACpB,iBAAkB,CAClB,KAAM,CACN,MAAO,CACP,UAAW,CACX,WACJ","file":"main.fc67e96e.chunk.css","sourcesContent":[":root{\n --volt-purple: #582C83;\n --background: #140022;\n --editor-purple: #522e77;\n}\n\n*{\n margin: 0;\n padding: 0;\n font-family: 'Ubuntu', -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',\n 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',\n sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\nbody{\n background-color: var(--background);\n}\n\nfooter{\n margin: 10vmin 0 0 0;\n}\n\n.locale_chooser{\n margin: -8vmin 10vmin 10vmin 10vmin;\n text-align: center;\n}\n\n.App {\n text-align: center;\n\n /* min-height: 100vh; */\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n font-size: calc(10px + 2vmin);\n color: white;\n padding: 10vmin;\n}\n\nh1{\n font-size: calc(10px + 10vmin);\n line-height: 0.9;\n margin-top: 2vmin;\n}\n\nh2{\n margin: 10vh 0 2vh 0;\n font-size: calc(10px + 4vmin);\n}\n\np{\n max-width: 100%;\n width: calc(40vh + 15vw);\n}\n\na{\n color: white;\n}\na:hover{\n color: rgba(255,255,255,0.8);\n}\n\n.HeaderImage{\n height: calc(10px + 20vmin);\n max-width: 100%;\n}\n\n.FinishedFrame {\n height: 36vh;\n margin: 2vh;\n}\n\n.FrameChooser .frame{\n position: relative;\n display: inline-block;\n font-size: 0;\n\n margin: 2vh;\n cursor: pointer;\n /* box-shadow: 0 0 0 1vh rgba(255,255,255,0); */\n transition: transform 0.2s ease;\n}\n.FrameChooser .frame img{\n height: 12vh;\n pointer-events: none;\n}\n.FrameChooser .frame:hover{\n transform-origin: center center;\n transform: scale(1.1);\n}\n/* .FrameChooser .frame.choosen{\n box-shadow: 0 0 0 1vh white;\n} */\n.FrameChooser .frame.choosen:after {\n content: \"\";\n position: absolute;\n top: -0.5vh;\n right: -0.5vh;\n bottom: -0.5vh;\n left: -0.5vh;\n box-shadow: 0 0 0 0.5vh white;\n}\n\n.HashtagChooser .hashtag_button {\n /* display: block; */\n margin: 1vmin;\n}\n\nbutton,\n.labelButton{\n position: relative;\n outline: none;\n border: none;\n margin: 1vh;\n padding: 1vh 2vh;\n font-size: calc(10px + 2vmin);\n font-weight: bold;\n cursor: pointer;\n\n background: white;\n color: var(--volt-purple);\n transition: transform 0.2s ease;\n}\nbutton:hover,\n.labelButton:hover{\n transform-origin: center center;\n transform: scale(1.05);\n}\nbutton.choosen:after {\n content: \"\";\n position: absolute;\n top: -0.5vh;\n right: -0.5vh;\n bottom: -0.5vh;\n left: -0.5vh;\n box-shadow: 0 0 0 0.5vh white;\n}\n\n.labelButton img{\n display: inline;\n height: calc(10px + 4vmin);\n vertical-align: middle;\n margin: 0 2vh 0 -1vh;\n}\n.labelButton span{\n vertical-align: middle;\n}\n\n\n.droparea{\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n \n display: flex;\n align-items: center;\n justify-content: center;\n\n font-weight: bold;\n font-size: calc(10px + 10vmin);\n\n background: rgba(20, 0, 34, 0.7);\n backdrop-filter: blur(10px);\n\n pointer-events: none;\n opacity: 0;\n transition: opacity 0.2s ease;\n}\n.droparea.active{\n opacity: 1;\n}\n\n\n.Editor{\n pointer-events: all;\n position: relative;\n margin: 2vh;\n font-size: 0;\n cursor: move;\n overflow: hidden;\n background: var(--editor-purple);\n}\n.Editor .background{\n pointer-events: none; \n position: absolute; \n top: 50%;\n left: 50%;\n}\n.Editor .foreground{\n pointer-events: none;\n position: relative;\n width: 36vh;\n height: 36vh;\n}\n.Editor .hashtag{\n pointer-events: none; \n position: absolute; \n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n}\n\n"]} \ No newline at end of file diff --git a/static/js/10.ced82474.chunk.js b/static/js/10.f5a04c05.chunk.js similarity index 55% rename from static/js/10.ced82474.chunk.js rename to static/js/10.f5a04c05.chunk.js index 2e70c97..5fbe199 100644 --- a/static/js/10.ced82474.chunk.js +++ b/static/js/10.f5a04c05.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonpprofile-picture-generator"]=this["webpackJsonpprofile-picture-generator"]||[]).push([[10],{75:function(e,t,r){"use strict";r.r(t),t.default=r.p+"static/media/ru.bad3de5e.ftl"}}]); -//# sourceMappingURL=10.ced82474.chunk.js.map \ No newline at end of file +(this["webpackJsonpprofile-picture-generator"]=this["webpackJsonpprofile-picture-generator"]||[]).push([[10],{83:function(e,t,r){"use strict";r.r(t),t.default=r.p+"static/media/ru.bad3de5e.ftl"}}]); +//# sourceMappingURL=10.f5a04c05.chunk.js.map \ No newline at end of file diff --git a/static/js/10.ced82474.chunk.js.map b/static/js/10.f5a04c05.chunk.js.map similarity index 72% rename from static/js/10.ced82474.chunk.js.map rename to static/js/10.f5a04c05.chunk.js.map index 4636a3c..ce371d4 100644 --- a/static/js/10.ced82474.chunk.js.map +++ b/static/js/10.f5a04c05.chunk.js.map @@ -1 +1 @@ -{"version":3,"sources":["locales/ru.ftl"],"names":[],"mappings":"8IAAA,OAAe,cAA0B","file":"static/js/10.ced82474.chunk.js","sourcesContent":["export default __webpack_public_path__ + \"static/media/ru.bad3de5e.ftl\";"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["locales/ru.ftl"],"names":[],"mappings":"8IAAA,OAAe,cAA0B","file":"static/js/10.f5a04c05.chunk.js","sourcesContent":["export default __webpack_public_path__ + \"static/media/ru.bad3de5e.ftl\";"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/11.280d2d76.chunk.js b/static/js/11.c63ba113.chunk.js similarity index 96% rename from static/js/11.280d2d76.chunk.js rename to static/js/11.c63ba113.chunk.js index 1d8d0c7..fc046b6 100644 --- a/static/js/11.280d2d76.chunk.js +++ b/static/js/11.c63ba113.chunk.js @@ -1,2 +1,2 @@ -(this["webpackJsonpprofile-picture-generator"]=this["webpackJsonpprofile-picture-generator"]||[]).push([[11],{76:function(t,n,e){"use strict";e.r(n),e.d(n,"getCLS",(function(){return v})),e.d(n,"getFCP",(function(){return g})),e.d(n,"getFID",(function(){return h})),e.d(n,"getLCP",(function(){return y})),e.d(n,"getTTFB",(function(){return F}));var i,a,r=function(){return"".concat(Date.now(),"-").concat(Math.floor(8999999999999*Math.random())+1e12)},o=function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:-1;return{name:t,value:n,delta:0,entries:[],id:r(),isFinal:!1}},u=function(t,n){try{if(PerformanceObserver.supportedEntryTypes.includes(t)){var e=new PerformanceObserver((function(t){return t.getEntries().map(n)}));return e.observe({type:t,buffered:!0}),e}}catch(t){}},c=!1,s=!1,p=function(t){c=!t.persisted},f=function(){addEventListener("pagehide",p),addEventListener("beforeunload",(function(){}))},d=function(t){var n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];s||(f(),s=!0),addEventListener("visibilitychange",(function(n){var e=n.timeStamp;"hidden"===document.visibilityState&&t({timeStamp:e,isUnloading:c})}),{capture:!0,once:n})},l=function(t,n,e,i){var a;return function(){e&&n.isFinal&&e.disconnect(),n.value>=0&&(i||n.isFinal||"hidden"===document.visibilityState)&&(n.delta=n.value-(a||0),(n.delta||n.isFinal||void 0===a)&&(t(n),a=n.value))}},v=function(t){var n,e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=o("CLS",0),a=function(t){t.hadRecentInput||(i.value+=t.value,i.entries.push(t),n())},r=u("layout-shift",a);r&&(n=l(t,i,r,e),d((function(t){var e=t.isUnloading;r.takeRecords().map(a),e&&(i.isFinal=!0),n()})))},m=function(){return void 0===i&&(i="hidden"===document.visibilityState?0:1/0,d((function(t){var n=t.timeStamp;return i=n}),!0)),{get timeStamp(){return i}}},g=function(t){var n,e=o("FCP"),i=m(),a=u("paint",(function(t){"first-contentful-paint"===t.name&&t.startTime1&&void 0!==arguments[1]&&arguments[1],i=o("LCP"),a=m(),r=function(t){var e=t.startTime;e1&&void 0!==arguments[1]?arguments[1]:-1;return{name:t,value:n,delta:0,entries:[],id:r(),isFinal:!1}},u=function(t,n){try{if(PerformanceObserver.supportedEntryTypes.includes(t)){var e=new PerformanceObserver((function(t){return t.getEntries().map(n)}));return e.observe({type:t,buffered:!0}),e}}catch(t){}},c=!1,s=!1,p=function(t){c=!t.persisted},f=function(){addEventListener("pagehide",p),addEventListener("beforeunload",(function(){}))},d=function(t){var n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];s||(f(),s=!0),addEventListener("visibilitychange",(function(n){var e=n.timeStamp;"hidden"===document.visibilityState&&t({timeStamp:e,isUnloading:c})}),{capture:!0,once:n})},l=function(t,n,e,i){var a;return function(){e&&n.isFinal&&e.disconnect(),n.value>=0&&(i||n.isFinal||"hidden"===document.visibilityState)&&(n.delta=n.value-(a||0),(n.delta||n.isFinal||void 0===a)&&(t(n),a=n.value))}},v=function(t){var n,e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=o("CLS",0),a=function(t){t.hadRecentInput||(i.value+=t.value,i.entries.push(t),n())},r=u("layout-shift",a);r&&(n=l(t,i,r,e),d((function(t){var e=t.isUnloading;r.takeRecords().map(a),e&&(i.isFinal=!0),n()})))},m=function(){return void 0===i&&(i="hidden"===document.visibilityState?0:1/0,d((function(t){var n=t.timeStamp;return i=n}),!0)),{get timeStamp(){return i}}},g=function(t){var n,e=o("FCP"),i=m(),a=u("paint",(function(t){"first-contentful-paint"===t.name&&t.startTime1&&void 0!==arguments[1]&&arguments[1],i=o("LCP"),a=m(),r=function(t){var e=t.startTime;e1&&void 0!==arguments[1]?arguments[1]:-1;return{name:t,value:n,delta:0,entries:[],id:e(),isFinal:!1}},a=function(t,n){try{if(PerformanceObserver.supportedEntryTypes.includes(t)){var e=new PerformanceObserver((function(t){return t.getEntries().map(n)}));return e.observe({type:t,buffered:!0}),e}}catch(t){}},r=!1,o=!1,s=function(t){r=!t.persisted},u=function(){addEventListener(\"pagehide\",s),addEventListener(\"beforeunload\",(function(){}))},c=function(t){var n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];o||(u(),o=!0),addEventListener(\"visibilitychange\",(function(n){var e=n.timeStamp;\"hidden\"===document.visibilityState&&t({timeStamp:e,isUnloading:r})}),{capture:!0,once:n})},l=function(t,n,e,i){var a;return function(){e&&n.isFinal&&e.disconnect(),n.value>=0&&(i||n.isFinal||\"hidden\"===document.visibilityState)&&(n.delta=n.value-(a||0),(n.delta||n.isFinal||void 0===a)&&(t(n),a=n.value))}},p=function(t){var n,e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=i(\"CLS\",0),o=function(t){t.hadRecentInput||(r.value+=t.value,r.entries.push(t),n())},s=a(\"layout-shift\",o);s&&(n=l(t,r,s,e),c((function(t){var e=t.isUnloading;s.takeRecords().map(o),e&&(r.isFinal=!0),n()})))},d=function(){return void 0===t&&(t=\"hidden\"===document.visibilityState?0:1/0,c((function(n){var e=n.timeStamp;return t=e}),!0)),{get timeStamp(){return t}}},v=function(t){var n,e=i(\"FCP\"),r=d(),o=a(\"paint\",(function(t){\"first-contentful-paint\"===t.name&&t.startTime1&&void 0!==arguments[1]&&arguments[1],r=i(\"LCP\"),o=d(),s=function(t){var e=t.startTime;e1&&void 0!==arguments[1]?arguments[1]:-1;return{name:t,value:n,delta:0,entries:[],id:e(),isFinal:!1}},a=function(t,n){try{if(PerformanceObserver.supportedEntryTypes.includes(t)){var e=new PerformanceObserver((function(t){return t.getEntries().map(n)}));return e.observe({type:t,buffered:!0}),e}}catch(t){}},r=!1,o=!1,s=function(t){r=!t.persisted},u=function(){addEventListener(\"pagehide\",s),addEventListener(\"beforeunload\",(function(){}))},c=function(t){var n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];o||(u(),o=!0),addEventListener(\"visibilitychange\",(function(n){var e=n.timeStamp;\"hidden\"===document.visibilityState&&t({timeStamp:e,isUnloading:r})}),{capture:!0,once:n})},l=function(t,n,e,i){var a;return function(){e&&n.isFinal&&e.disconnect(),n.value>=0&&(i||n.isFinal||\"hidden\"===document.visibilityState)&&(n.delta=n.value-(a||0),(n.delta||n.isFinal||void 0===a)&&(t(n),a=n.value))}},p=function(t){var n,e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=i(\"CLS\",0),o=function(t){t.hadRecentInput||(r.value+=t.value,r.entries.push(t),n())},s=a(\"layout-shift\",o);s&&(n=l(t,r,s,e),c((function(t){var e=t.isUnloading;s.takeRecords().map(o),e&&(r.isFinal=!0),n()})))},d=function(){return void 0===t&&(t=\"hidden\"===document.visibilityState?0:1/0,c((function(n){var e=n.timeStamp;return t=e}),!0)),{get timeStamp(){return t}}},v=function(t){var n,e=i(\"FCP\"),r=d(),o=a(\"paint\",(function(t){\"first-contentful-paint\"===t.name&&t.startTime1&&void 0!==arguments[1]&&arguments[1],r=i(\"LCP\"),o=d(),s=function(t){var e=t.startTime;e1&&(a=1*r),G(n),$(a)}}),[r]),Object(c.useEffect)((function(){var e=function(e,t,n,a,c){var r=Math.max(0,e*n-a)/2,o=Math.max(0,t*n-c)/2;return{rangeMaxX:r,rangeMinX:0-r,rangeMaxY:o,rangeMinY:0-o}}(X*ne,Z*oe,V,ne,oe),t=e.rangeMinX,n=e.rangeMinY,a=e.rangeMaxX,c=e.rangeMaxY;he(t),be(n),xe(a),Ae(c)}),[X,Z,ne,oe,V]),Object(c.useEffect)((function(){U(0),E(0),y(0),R(0),J(1)}),[n]);var me=Object(c.useCallback)((function(e){var t=1*e.target.dataset.x,n=1*e.target.dataset.y,a=Q(t+e.deltaX,ue,ge),c=Q(n+e.deltaY,je,we);e.isFinal?(U(a||0),E(c||0),y(0),R(0)):(y(a-t||0),R(c-n||0))}),[ue,je,ge,we]),Ce=Object(c.useCallback)((function(e,t,n,a){e.preventDefault();var c=Q(1*e.target.dataset.scale+t/200,1,8);J(c||1);var r=1*e.target.dataset.x,o=1*e.target.dataset.y;U(Q(r,ue,ge)||0),E(Q(o,je,we)||0)}),[ue,je,ge,we]);return Object(c.useEffect)((function(){if(!d&&i&&i.current){var e=i.current;e.addEventListener("mousedown",(function(e){e.preventDefault()}),!1),e.addEventListener("touchstart",(function(e){e.preventDefault()}),!1),e.addEventListener("touchend",(function(e){e.preventDefault()}),!1),e.addEventListener("touchmove",(function(e){e.preventDefault()}),!1),g(new A.a(e,{direction:"DIRECTION_ALL"})),w(C()(e)),j(!0)}}),[i,d]),Object(c.useEffect)((function(){if(p&&D&&d&&i&&i.current)return p.on("pan",me),D.wheel(Ce),function(){p.off("pan",me),D.unwheel()}}),[i,me,Ce,d,p,D]),Object(a.jsxs)("div",{className:"Editor",ref:i,"data-x":T,"data-y":k,"data-scale":V,children:[Object(a.jsx)("img",{src:n,ref:O,alt:"",className:"background",style:{width:100*X+"%",height:100*Z+"%",transform:"translate3d(calc(-50% + ".concat(T+S,"px), calc(-50% + ").concat(k+L,"px), 0) scale(").concat(V,",").concat(V,")")}}),Object(a.jsx)("img",{src:o,alt:"",className:"foreground"}),Object(a.jsx)("img",{src:s,alt:"",className:"hashtag"})]})},T=n.p+"static/media/VoltLogoPurple.125355f6.svg",U="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABDgAAAQ4AgMAAACRfoQcAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAJUExURVIud1Iud1Eudgy0J+8AAAADdFJOU//+/Q3dsqEAAATsSURBVHgB7dAxAQAABAAwQtI/ipMCvi3CgiMV6NChQ4cOHTp06NChQ4cOHTp06NChAx06dOjQoUOHDh06dOjQoUOHDh06dOhAhw4dOnTo0KFDhw4dOnTo0KFDhw4dOtChQ4cOHTp06NChQ4cOHTp06NChQ4cOdOjQoUOHDh06dOjQoUOHDh06dOjQoQMdOnTo0KFDhw4dOnTo0KFDhw4dOnToQIcOHTp06NChQ4cOHTp06NChQ4cOHejQoUOHDh06dOjQoUOHDh06dOjQoUMHOnTo0KFDhw4dOnTo0KFDhw4dOnTo0IEOHTp06NChQ4cOHTp06NChQ4cOHTp0oEOHDh06dOjQoUOHDh06dOjQoUOHDh3o0KFDhw4dOnTo0KFDhw4dOnTo0KFDBzp06NChQ4cOHTp06NChQ4cOHTp06NChQIcOHTp06NChQ4cOHTp06NChQ4cOHejQoUOHDh06dOjQoUOHDh06dOjQoUMHOnTo0KFDhw4dOnTo0KFDhw4dOnTo0IEOHTp06NChQ4cOHTp06NChQ4cOHTp0oEOHDh06dOjQoUOHDh06dOjQoUOHDh3o0KFDhw4dOnTo0KFDhw4dOnTo0KFDBzp06NChQ4cOHTp06NChQ4cOHTp06ECHDh06dOjQoUOHDh06dOjQoUOHDh060KFDhw4dOnTo0KFDhw4dOnTo0KFDhw506NChQ4cOHTp06NChQ4cOHTp06NChAx06dOjQoUOHDh06dOjQoUOHDh06dOhAhw4dOnTo0KFDhw4dOnTo0KFDhw4dOtChQ4cOHTp06NChQ4cOHTp06NChQ4cOBTp06NChQ4cOHTp06NChQ4cOHTp06ECHDh06dOjQoUOHDh06dOjQoUOHDh060KFDhw4dOnTo0KFDhw4dOnTo0KFDhw506NChQ4cOHTp06NChQ4cOHTp06NChAx06dOjQoUOHDh06dOjQoUOHDh06dOhAhw4dOnTo0KFDhw4dOnTo0KFDhw4dOtChQ4cOHTp06NChQ4cOHTp06NChQwc6dOjQoUOHDh06dOjQoUOHDh06dOjQgQ4dOnTo0KFDhw4dOnTo0KFDhw4dOnSgQ4cOHTp06NChQ4cOHTp06NChQ4cOHTx06NChQ4cOdOjQoUOHDh06dOjQoUOHDh06dOjQoQMdOnTo0KFDhw4dOnTo0KFDhw4dOnToQIcOHTp06NChQ4cOHTp06NChQ4cOHTrQoUOHDh06dOjQoUOHDh06dOjQoUOHDnTo0KFDhw4dOnTo0KFDhw4dOnTo0KEDHTp06NChQ4cOHTp06NChQ4cOHTp0oEOHDh06dOjQoUOHDh06dOjQoUOHDh3o0KFDhw4dOnTo0KFDhw4dOnTo0KFDBzp06NChQ4cOHTp06NChQ4cOHTp06NCBDh06dOjQoUOHDh06dOjQoUOHDh06dKBDhw4dOnTo0KFDhw4dOnTo0KFDhw4d6NChQ4cOHTp06NChQ4cOHTp06NChQ4cCHTp06NChQ4cOHTp06NChQ4cOHTp0oEOHDh06dOjQoUOHDh06dOjQoUOHDh3o0KFDhw4dOnTo0KFDhw4dOnTo0KFDBzp06NChQ4cOHTp06NChQ4cOHTp06NCBDh06dOjQoUOHDh06dOjQoUOHDh06dKBDhw4dOnTo0KFDhw4dOnTo0KFDhw4dxeoB30xd38yzCvgAAAAASUVORK5CYII=",F="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAALSURBVHgBY2BgAAAAAwABjPg5OgAAAABJRU5ErkJggg==",N=(n(43),n(5)),k=n(21),E=n(20),K=n(31),B={de:"Deutsch",en:"English",es:"Espa\xf1ol",fr:"Fran\xe7ais",it:"Italiano",nl:"Dutch",pl:"Polska",ru:"P\u0443\u0441\u0441\u043a\u0438\u0439"},S=Object.keys(B);function y(e){return _.apply(this,arguments)}function _(){return(_=Object(b.a)(j.a.mark((function e(t){var a,c,r;return j.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,n(47)("./"+t+".ftl");case 2:return a=e.sent,e.next=5,fetch(a.default);case 5:return c=e.sent,e.next=8,c.text();case 8:return r=e.sent,e.abrupt("return",Object(k.a)({},t,new E.b(r)));case 10:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function P(e){return L.apply(this,arguments)}function L(){return(L=Object(b.a)(j.a.mark((function e(t){var n,a;return j.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Promise.all(t.map(y));case 2:return n=e.sent,a=n.reduce((function(e,t){return Object.assign(e,t)})),e.abrupt("return",j.a.mark((function e(){var n,c,r,o;return j.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=Object(N.a)(t),e.prev=1,n.s();case 3:if((c=n.n()).done){e.next=11;break}return r=c.value,(o=new E.a(r)).addResource(a[r]),e.next=9,o;case 9:e.next=3;break;case 11:e.next=16;break;case 13:e.prev=13,e.t0=e.catch(1),n.e(e.t0);case 16:return e.prev=16,n.f(),e.finish(16);case 19:case"end":return e.stop()}}),e,null,[[1,13,16,19]])})));case 5:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function R(e){var t=e.userLocales,n=e.children,r=e.onLocaleChange,o=Object(c.useState)(function(){var e=new E.a("");return e.addResource(new E.b("")),new p.c([e])}()),s=Object(u.a)(o,2),i=s[0],O=s[1];return Object(c.useEffect)((function(){function e(){return(e=Object(b.a)(j.a.mark((function e(){var n,a;return j.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=Object(K.a)(t,S,{defaultLocale:"en"}),r&&r(n),e.next=4,P(n);case 4:a=e.sent,O(new p.c(a()));case 6:case"end":return e.stop()}}),e)})))).apply(this,arguments)}!function(){e.apply(this,arguments)}()}),[t,r]),i?Object(a.jsx)(p.a,{l10n:i,children:n}):Object(a.jsx)("div",{children:"Loading texts\u2026"})}var M=1080;var I=v((function(e){var t=e.getString,n=Object(c.useState)(null),r=Object(u.a)(n,2),o=r[0],s=r[1],d=Object(c.useState)(null),j=Object(u.a)(d,2),b=j[0],p=j[1],g=Object(c.useState)(null),v=Object(u.a)(g,2),w=v[0],A=v[1],m=Object(c.useState)(1),C=Object(u.a)(m,2),Q=C[0],N=C[1],k=Object(c.useState)(null),E=Object(u.a)(k,2),K=E[0],B=E[1],S=Object(c.useState)(0),y=Object(u.a)(S,2),_=y[0],P=y[1],L=Object(c.useState)(0),R=Object(u.a)(L,2),I=R[0],V=R[1],J=Object(c.useState)({x:0,y:0,scale:1}),Y=Object(u.a)(J,2),z=Y[0],X=Y[1],G=Object(c.useCallback)((function(e){s(e)}),[s]),W=Object(c.useCallback)((function(e){p(e)}),[p]),q=Object(c.useCallback)((function(e){var t=e.x,n=e.y,a=e.scale;X({x:t,y:n,scale:a})}),[]),Z=Object(c.useCallback)((function(e){if(e){var t=new FileReader;t.onload=function(t){var n=new Image;n.onload=function(){var a,c;n.width0?e[0]:"")}),[O]);return Object(a.jsx)(R,{userLocales:n,onLocaleChange:l,children:Object(a.jsxs)(a.Fragment,{children:[Object(a.jsx)(I,{}),Object(a.jsx)("div",{className:"locale_chooser",children:Object.entries(B).map((function(e){var t=Object(u.a)(e,2),n=t[0],c=t[1];return Object(a.jsx)("button",{className:n===i?"choosen":"","data-locale":n,onClick:h,children:c},n)}))})]})},"AppLocalizationProvider")})),J=function(e){e&&e instanceof Function&&n.e(11).then(n.bind(null,76)).then((function(t){var n=t.getCLS,a=t.getFID,c=t.getFCP,r=t.getLCP,o=t.getTTFB;n(e),a(e),c(e),r(e),o(e)}))};s.a.render(Object(a.jsx)(r.a.StrictMode,{children:Object(a.jsx)(V,{})}),document.getElementById("root")),J()}},[[48,1,2]]]); -//# sourceMappingURL=main.88eac815.chunk.js.map \ No newline at end of file diff --git a/static/js/main.88eac815.chunk.js.map b/static/js/main.88eac815.chunk.js.map deleted file mode 100644 index 8137572..0000000 --- a/static/js/main.88eac815.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["frames lazy /^/.//.*/.png$/ groupOptions: {} namespace object","hashtags lazy /^/.//.*/.png$/ groupOptions: {} namespace object","locales lazy /^/.//.*/.ftl$/ groupOptions: {} namespace object","FrameChooser.js","Localized.js","HashtagChooser.js","Editor.js","VoltLogoPurple.svg","purpleBG.png","empty_1x1.png","l10n.js","App.js","reportWebVitals.js","index.js"],"names":["map","webpackAsyncContext","req","__webpack_require__","o","Promise","resolve","then","e","Error","code","ids","id","keys","Object","module","exports","FrameChooser","onChange","useState","frames","setFrames","choosenFrame","setChoosenFrame","useEffect","a","all","frame_filename","name","src","new_frames","default","loadFrames","handleImageChoosing","useCallback","event","target","dataset","className","frame","frame_src_path","isChoosen","data-src","onClick","alt","Localized","props","elems","br","Fragment","children","withLocalization","Inner","l10n","React","useContext","FluentContext","createElement","getString","args","fallback","clamp","value","min","max","Math","Editor","backgroundURL","backgroundRatio","frameURL","hashtagURL","editorRef","useRef","backgroundImageRef","hammer_got_init","set_hammer_got_init","hammertime","set_hammertime","hamster","set_hamster","x","set_x","y","set_y","add_x","set_add_x","add_y","set_add_y","scale","set_scale","photoWidth","setPhotoWidth","photoHeight","setPhotoHeight","editorWidth","setEditorWidth","editorHeight","setEditorHeight","rangeMinX","set_rangeMinX","rangeMinY","set_rangeMinY","rangeMaxX","set_rangeMaxX","rangeMaxY","set_rangeMaxY","current","new_editorWidth","offsetWidth","new_editorHeight","offsetHeight","new_photoWidth","new_photoHeight","imageWidth","imageHeight","imageScale","containerWidth","containerHeight","updateRange","handleMove","prev_x","prev_y","new_x","deltaX","new_y","deltaY","isFinal","handleScale","delta","preventDefault","new_scale","element","addEventListener","Hammer","direction","Hamster","on","wheel","off","unwheel","ref","data-x","data-y","data-scale","style","width","height","transform","locales","de","en","es","fr","it","nl","pl","ru","_supportedLocales_","fetchMessages","locale","path","fetch","response","text","messages","FluentResource","createMessagesGenerator","currentLocales","fetched","reduce","obj","cur","assign","generateBundles","bundle","FluentBundle","addResource","f","AppLocalizationProvider","userLocales","onLocaleChange","ReactLocalization","getDefaultBundles","bundles","setBundles","negotiateLanguages","defaultLocale","loadBundles","frameSize","AppLocalized","setFrameURL","setHashtagURL","originalPhoto","setOriginalPhoto","originalPhotoRation","setOriginalPhotoRation","orientation","set_orientation","set_width","set_height","cords","setCords","handleFrameURL","newFrameURL","handleHashtagURL","newHashtagURL","handleCordsChange","handleReadFile","file","reader","FileReader","onload","reader_event","img","Image","callback","view","DataView","result","getUint16","length","byteLength","offset","marker","getUint32","little","tags","i","readAsArrayBuffer","slice","getOrientation","new_orientation","original_ration","readAsDataURL","handleImage","files_event","files","onDrop","acceptedFiles","handleDownload","canvas","document","ctx","getContext","alpha","translate","rotate","PI","width_scaled","height_scaled","drawImage","pngUrl","toDataURL","mergeImages","purpleBG","b64","data","body","appendChild","download","href","click","remove","trigger_download","useDropzone","accept","maxFiles","noKeyboard","isDragActive","getRootProps","VoltLogoPurple","tabIndex","outline","type","display","empty_1x1","navigator","languages","setUserLocales","currentLocale","setCurrentLocale","handleLanguageChange","handleCurrentLocalesChange","entries","data-locale","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","ReactDOM","render","StrictMode","getElementById"],"mappings":"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","file":"static/js/main.88eac815.chunk.js","sourcesContent":["var map = {\n\t\"./ProfileFrame Blue Bars.png\": [\n\t\t49,\n\t\t12\n\t],\n\t\"./ProfileFrame Green Bars.png\": [\n\t\t50,\n\t\t13\n\t],\n\t\"./ProfileFrame Mixed Bars.png\": [\n\t\t51,\n\t\t14\n\t],\n\t\"./ProfileFrame Purple.png\": [\n\t\t52,\n\t\t15\n\t],\n\t\"./ProfileFrame Red Bars.png\": [\n\t\t53,\n\t\t16\n\t],\n\t\"./ProfileFrame White Bars.png\": [\n\t\t54,\n\t\t17\n\t],\n\t\"./ProfileFrame Yellow Bars.png\": [\n\t\t55,\n\t\t18\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__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 41;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./DeineWahl.png\": [\n\t\t56,\n\t\t19\n\t],\n\t\"./Europa.png\": [\n\t\t57,\n\t\t20\n\t],\n\t\"./JetztBistDuDran.png\": [\n\t\t58,\n\t\t21\n\t],\n\t\"./JoinTheChange.png\": [\n\t\t59,\n\t\t22\n\t],\n\t\"./Volt.png\": [\n\t\t60,\n\t\t23\n\t],\n\t\"./Volt21.png\": [\n\t\t61,\n\t\t24\n\t],\n\t\"./VoltEuropa.png\": [\n\t\t62,\n\t\t25\n\t],\n\t\"./VoltRLP.png\": [\n\t\t63,\n\t\t26\n\t],\n\t\"./VoteVolt.png\": [\n\t\t64,\n\t\t27\n\t],\n\t\"./paneuropäisch.png\": [\n\t\t65,\n\t\t28\n\t],\n\t\"./pragmatisch.png\": [\n\t\t66,\n\t\t29\n\t],\n\t\"./progressiv.png\": [\n\t\t67,\n\t\t30\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__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 42;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./de.ftl\": [\n\t\t68,\n\t\t3\n\t],\n\t\"./en.ftl\": [\n\t\t69,\n\t\t4\n\t],\n\t\"./es.ftl\": [\n\t\t70,\n\t\t5\n\t],\n\t\"./fr.ftl\": [\n\t\t71,\n\t\t6\n\t],\n\t\"./it.ftl\": [\n\t\t72,\n\t\t7\n\t],\n\t\"./nl.ftl\": [\n\t\t73,\n\t\t8\n\t],\n\t\"./pl.ftl\": [\n\t\t74,\n\t\t9\n\t],\n\t\"./ru.ftl\": [\n\t\t75,\n\t\t10\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__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 47;\nmodule.exports = webpackAsyncContext;","import { useState, useEffect, useCallback } from 'react'\n\nfunction FrameChooser({onChange}) {\n const [frames, setFrames] = useState([])\n const [choosenFrame, setChoosenFrame] = useState(null)\n\n useEffect(() => {\n async function loadFrames(){\n Promise.all(\n [\n 'ProfileFrame Purple',\n 'ProfileFrame Mixed Bars',\n 'ProfileFrame Yellow Bars',\n 'ProfileFrame Red Bars',\n 'ProfileFrame Blue Bars',\n 'ProfileFrame Green Bars',\n 'ProfileFrame White Bars',\n ]\n .map(async frame_filename => {\n return {\n name: frame_filename,\n src: await import(`./frames/${frame_filename}.png`),\n }\n })\n )\n .then(new_frames => {\n setFrames(new_frames)\n setChoosenFrame(new_frames[0].src.default)\n })\n }\n loadFrames()\n }, [])\n\n const handleImageChoosing = useCallback(event => {\n setChoosenFrame(event.target.dataset.src)\n }, [setChoosenFrame])\n\n useEffect(() => {\n onChange(choosenFrame)\n }, [onChange, choosenFrame])\n\n return (\n
\n {\n frames.map(frame => {\n const frame_src_path = frame.src.default\n const isChoosen = choosenFrame === frame_src_path\n return \n {frame.name}\n
\n })\n } \n \n )\n}\n\nexport default FrameChooser\n","import React from 'react'\nimport {\n Localized as LocalizedOriginal,\n // withLocalization,\n} from '@fluent/react'\n\nimport { FluentContext } from '../node_modules/@fluent/react/esm/context.js'\n\nconst Localized = props => (\n ,\n ...props.elems,\n }}\n >\n {props.children}\n \n)\n\n// A custom withLocalization to have an empty fallback.\n// It is nearly identical to the original.\nfunction withLocalization(Inner) {\n function WithLocalization(props) {\n const l10n = React.useContext(FluentContext)\n\n const getString = (id, args, fallback) => l10n.getString(id, args, fallback || ' ')\n\n return React.createElement(Inner, { getString, ...props })\n }\n return WithLocalization\n}\n\nexport {\n withLocalization,\n Localized,\n Localized as default,\n}\n\n/*\n\nimport { Localized, withLocalization } from '../Localized/'\n\n\nexport default withLocalization(componentName)\n\n\nimport Localized from '../Localized/'\n\n\nimport { withLocalization } from '@fluent/react'\nexport default withLocalization(componentName)\n\n*/\n","import { useState, useEffect, useCallback } from 'react'\nimport { withLocalization } from './Localized.js'\n\nfunction HashtagChooser({ onChange, getString }) {\n const [frames, setFrames] = useState([])\n const [choosenFrame, setChoosenFrame] = useState(null)\n\n useEffect(() => {\n async function loadFrames() {\n Promise.all(\n [\n '',\n 'VoteVolt',\n 'JoinTheChange',\n 'DeineWahl',\n 'JetztBistDuDran',\n 'VoltEuropa',\n 'VoltRLP',\n 'Volt21',\n 'Volt',\n 'paneuropäisch',\n 'pragmatisch',\n 'progressiv',\n 'Europa',\n ]\n .map(async frame_filename => {\n return {\n name: frame_filename,\n src: frame_filename === '' ? '' : await import(`./hashtags/${frame_filename}.png`),\n }\n })\n )\n .then(new_frames => {\n setFrames(new_frames)\n setChoosenFrame(new_frames[0].src.default)\n })\n }\n loadFrames()\n }, [])\n\n const handleImageChoosing = useCallback(event => {\n setChoosenFrame(event.target.dataset.src)\n }, [setChoosenFrame])\n\n useEffect(() => {\n onChange(choosenFrame)\n }, [onChange, choosenFrame])\n\n return (\n
\n {\n frames.map(frame => {\n const frame_src_path = frame.src.default\n const isChoosen = choosenFrame === frame_src_path\n return \n })\n }\n
\n )\n}\n\nexport default withLocalization(HashtagChooser)\n","import { useEffect, useRef, useState, useCallback } from 'react'\n\nimport Hammer from 'hammerjs'\nimport Hamster from 'hamsterjs'\n\nfunction updateRange(imageWidth, imageHeight, imageScale, containerWidth, containerHeight) {\n\n const rangeX = Math.max(0, (imageWidth * imageScale) - containerWidth)\n const rangeY = Math.max(0, (imageHeight * imageScale) - containerHeight)\n\n const rangeMaxX = (rangeX / 2)\n const rangeMinX = 0 - rangeMaxX\n\n const rangeMaxY = (rangeY / 2)\n const rangeMinY = 0 - rangeMaxY\n\n return {\n rangeMaxX,\n rangeMinX,\n rangeMaxY,\n rangeMinY,\n }\n}\n\nfunction clamp(value, min, max) {\n return Math.min(Math.max(min, value), max)\n}\n\n\n\nlet minScale = 1;\nlet maxScale = 8;\n\n\n\nfunction Editor({ onChange, backgroundURL, backgroundRatio, frameURL, hashtagURL }) {\n const editorRef = useRef(null)\n const backgroundImageRef = useRef(null)\n\n const [hammer_got_init, set_hammer_got_init] = useState(false)\n\n const [hammertime, set_hammertime] = useState(null)\n const [hamster, set_hamster] = useState(null)\n\n const [x, set_x] = useState(0)\n const [y, set_y] = useState(0)\n const [add_x, set_add_x] = useState(0)\n const [add_y, set_add_y] = useState(0)\n const [scale, set_scale] = useState(1)\n // const [add_scale, set_add_scale] = useState(0)\n\n const [photoWidth, setPhotoWidth] = useState(300)\n const [photoHeight, setPhotoHeight] = useState(300)\n const [editorWidth, setEditorWidth] = useState(300)\n const [editorHeight, setEditorHeight] = useState(300)\n\n const [rangeMinX, set_rangeMinX] = useState(0)\n const [rangeMinY, set_rangeMinY] = useState(0)\n const [rangeMaxX, set_rangeMaxX] = useState(0)\n const [rangeMaxY, set_rangeMaxY] = useState(0)\n\n useEffect(() => {\n if (!!onChange) {\n onChange({ x, y, scale})\n }\n }, [onChange, x, y, scale])\n\n useEffect(() => {\n if (!!editorRef && !!editorRef.current) {\n const new_editorWidth = editorRef.current.offsetWidth\n const new_editorHeight = editorRef.current.offsetHeight\n setEditorHeight(new_editorHeight)\n setEditorWidth(new_editorWidth)\n\n let new_photoWidth = 1\n let new_photoHeight = 1\n if (backgroundRatio < 1) {\n new_photoWidth = 1 / backgroundRatio\n } else if (backgroundRatio > 1) {\n new_photoHeight = 1 * backgroundRatio\n }\n\n setPhotoWidth(new_photoWidth)\n setPhotoHeight(new_photoHeight)\n }\n }, [backgroundRatio])\n\n useEffect(() => {\n const {\n rangeMinX,\n rangeMinY,\n rangeMaxX,\n rangeMaxY,\n } = updateRange(photoWidth * editorWidth, photoHeight * editorHeight, scale, editorWidth, editorHeight)\n\n set_rangeMinX(rangeMinX)\n set_rangeMinY(rangeMinY)\n set_rangeMaxX(rangeMaxX)\n set_rangeMaxY(rangeMaxY)\n }, [\n photoWidth,\n photoHeight,\n editorWidth,\n editorHeight,\n scale,\n ])\n\n useEffect(() => {\n set_x(0)\n set_y(0)\n set_add_x(0)\n set_add_y(0)\n set_scale(1)\n }, [backgroundURL])\n\n const handleMove = useCallback(event => {\n const prev_x = event.target.dataset.x * 1\n const prev_y = event.target.dataset.y * 1\n\n const new_x = clamp(prev_x + event.deltaX, rangeMinX, rangeMaxX)\n const new_y = clamp(prev_y + event.deltaY, rangeMinY, rangeMaxY)\n\n if (event.isFinal) {\n set_x(new_x || 0)\n set_y(new_y || 0)\n set_add_x(0)\n set_add_y(0)\n }else{\n set_add_x(new_x - prev_x || 0)\n set_add_y(new_y - prev_y || 0)\n }\n }, [\n rangeMinX,\n rangeMinY,\n rangeMaxX,\n rangeMaxY,\n ])\n\n const handleScale = useCallback((event, delta, deltaX, deltaY) => {\n event.preventDefault()\n\n const prev_scale = event.target.dataset.scale * 1\n const new_scale = clamp(prev_scale + delta / 200, minScale, maxScale)\n set_scale(new_scale || 1)\n\n const prev_x = event.target.dataset.x * 1\n const prev_y = event.target.dataset.y * 1\n set_x(clamp(prev_x, rangeMinX, rangeMaxX) || 0)\n set_y(clamp(prev_y, rangeMinY, rangeMaxY) || 0)\n }, [\n rangeMinX,\n rangeMinY,\n rangeMaxX,\n rangeMaxY,\n ])\n\n useEffect(() => {\n if (!hammer_got_init && !!editorRef && !!editorRef.current) {\n const element = editorRef.current\n\n element.addEventListener('mousedown', event => {\n event.preventDefault()\n // event.stopPropagation()\n }, false)\n element.addEventListener(\"touchstart\", event => {\n event.preventDefault()\n // event.stopPropagation()\n }, false)\n element.addEventListener(\"touchend\", event => {\n event.preventDefault()\n // event.stopPropagation()\n }, false)\n element.addEventListener(\"touchmove\", event => {\n event.preventDefault()\n // event.stopPropagation()\n }, false)\n\n set_hammertime(new Hammer(element, {\n direction: 'DIRECTION_ALL',\n }))\n\n set_hamster(Hamster(element))\n\n set_hammer_got_init(true)\n }\n }, [editorRef, hammer_got_init])\n\n useEffect(() => {\n if (!!hammertime && !!hamster && hammer_got_init && !!editorRef && !!editorRef.current) {\n hammertime.on('pan', handleMove)\n hamster.wheel(handleScale)\n\n return function () {\n hammertime.off('pan', handleMove)\n hamster.unwheel()\n }\n }\n }, [editorRef, handleMove, handleScale, hammer_got_init, hammertime, hamster])\n\n return (\n \n \n \n \n \n )\n}\n\nexport default Editor\n","export default __webpack_public_path__ + \"static/media/VoltLogoPurple.125355f6.svg\";","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABDgAAAQ4AgMAAACRfoQcAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAJUExURVIud1Iud1Eudgy0J+8AAAADdFJOU//+/Q3dsqEAAATsSURBVHgB7dAxAQAABAAwQtI/ipMCvi3CgiMV6NChQ4cOHTp06NChQ4cOHTp06NChAx06dOjQoUOHDh06dOjQoUOHDh06dOhAhw4dOnTo0KFDhw4dOnTo0KFDhw4dOtChQ4cOHTp06NChQ4cOHTp06NChQ4cOdOjQoUOHDh06dOjQoUOHDh06dOjQoQMdOnTo0KFDhw4dOnTo0KFDhw4dOnToQIcOHTp06NChQ4cOHTp06NChQ4cOHejQoUOHDh06dOjQoUOHDh06dOjQoUMHOnTo0KFDhw4dOnTo0KFDhw4dOnTo0IEOHTp06NChQ4cOHTp06NChQ4cOHTp0oEOHDh06dOjQoUOHDh06dOjQoUOHDh3o0KFDhw4dOnTo0KFDhw4dOnTo0KFDBzp06NChQ4cOHTp06NChQ4cOHTp06NChQIcOHTp06NChQ4cOHTp06NChQ4cOHejQoUOHDh06dOjQoUOHDh06dOjQoUMHOnTo0KFDhw4dOnTo0KFDhw4dOnTo0IEOHTp06NChQ4cOHTp06NChQ4cOHTp0oEOHDh06dOjQoUOHDh06dOjQoUOHDh3o0KFDhw4dOnTo0KFDhw4dOnTo0KFDBzp06NChQ4cOHTp06NChQ4cOHTp06ECHDh06dOjQoUOHDh06dOjQoUOHDh060KFDhw4dOnTo0KFDhw4dOnTo0KFDhw506NChQ4cOHTp06NChQ4cOHTp06NChAx06dOjQoUOHDh06dOjQoUOHDh06dOhAhw4dOnTo0KFDhw4dOnTo0KFDhw4dOtChQ4cOHTp06NChQ4cOHTp06NChQ4cOBTp06NChQ4cOHTp06NChQ4cOHTp06ECHDh06dOjQoUOHDh06dOjQoUOHDh060KFDhw4dOnTo0KFDhw4dOnTo0KFDhw506NChQ4cOHTp06NChQ4cOHTp06NChAx06dOjQoUOHDh06dOjQoUOHDh06dOhAhw4dOnTo0KFDhw4dOnTo0KFDhw4dOtChQ4cOHTp06NChQ4cOHTp06NChQwc6dOjQoUOHDh06dOjQoUOHDh06dOjQgQ4dOnTo0KFDhw4dOnTo0KFDhw4dOnSgQ4cOHTp06NChQ4cOHTp06NChQ4cOHTx06NChQ4cOdOjQoUOHDh06dOjQoUOHDh06dOjQoQMdOnTo0KFDhw4dOnTo0KFDhw4dOnToQIcOHTp06NChQ4cOHTp06NChQ4cOHTrQoUOHDh06dOjQoUOHDh06dOjQoUOHDnTo0KFDhw4dOnTo0KFDhw4dOnTo0KEDHTp06NChQ4cOHTp06NChQ4cOHTp0oEOHDh06dOjQoUOHDh06dOjQoUOHDh3o0KFDhw4dOnTo0KFDhw4dOnTo0KFDBzp06NChQ4cOHTp06NChQ4cOHTp06NCBDh06dOjQoUOHDh06dOjQoUOHDh06dKBDhw4dOnTo0KFDhw4dOnTo0KFDhw4d6NChQ4cOHTp06NChQ4cOHTp06NChQ4cCHTp06NChQ4cOHTp06NChQ4cOHTp0oEOHDh06dOjQoUOHDh06dOjQoUOHDh3o0KFDhw4dOnTo0KFDhw4dOnTo0KFDBzp06NChQ4cOHTp06NChQ4cOHTp06NCBDh06dOjQoUOHDh06dOjQoUOHDh06dKBDhw4dOnTo0KFDhw4dOnTo0KFDhw4dxeoB30xd38yzCvgAAAAASUVORK5CYII=\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAALSURBVHgBY2BgAAAAAwABjPg5OgAAAABJRU5ErkJggg==\"","import React, { useEffect, useState } from 'react'\n\n// https://projectfluent.org/play/\n\n// import {LocalizationProvider,Localized} from '@fluent/react' // '@fluent/react/compat'\nimport { ReactLocalization, LocalizationProvider } from '@fluent/react'\nimport { FluentBundle, FluentResource } from '@fluent/bundle'\nimport { negotiateLanguages } from '@fluent/langneg'\n\n\nexport const locales = {\n de: 'Deutsch',\n en: 'English',\n es: 'Español',\n fr: 'Français',\n it: 'Italiano',\n nl: 'Dutch',\n pl: 'Polska',\n ru: 'Pусский',\n}\n\nconst _supportedLocales_ = Object.keys(locales)\nconst _defaultLocale_ = 'en'\n\n\nasync function fetchMessages(locale) {\n const path = await import('./locales/' + locale + '.ftl')\n\n const response = await fetch(path.default)\n const messages = await response.text()\n\n return { [locale]: new FluentResource(messages) }\n}\n\nfunction getDefaultBundles() {\n const bundle = new FluentBundle('')\n bundle.addResource(new FluentResource(''))\n return new ReactLocalization([bundle])\n}\n\nasync function createMessagesGenerator(currentLocales) {\n const fetched = await Promise.all(\n currentLocales.map(fetchMessages)\n )\n const messages = fetched.reduce(\n (obj, cur) => Object.assign(obj, cur)\n )\n\n return function* generateBundles() {\n for (const locale of currentLocales) {\n const bundle = new FluentBundle(locale)\n bundle.addResource(messages[locale])\n yield bundle\n }\n }\n}\n\nexport function AppLocalizationProvider({ userLocales, children, onLocaleChange }){\n const [bundles, setBundles] = useState(getDefaultBundles())\n\n useEffect(() => {\n async function loadBundles() {\n const currentLocales = negotiateLanguages(\n userLocales,\n _supportedLocales_,\n { defaultLocale: _defaultLocale_ }\n )\n \n if (!!onLocaleChange) {\n onLocaleChange(currentLocales)\n }\n\n const generateBundles = await createMessagesGenerator(currentLocales)\n setBundles( new ReactLocalization(generateBundles()) )\n }\n loadBundles()\n }, [userLocales, onLocaleChange])\n\n if (!bundles) {\n // Show a loader.\n return
Loading texts…
\n }\n\n return \n {children}\n \n}\n\n","import { useState, useCallback } from 'react'\nimport './App.css'\nimport { useDropzone } from 'react-dropzone'\nimport mergeImages from 'merge-images'\nimport FrameChooser from './FrameChooser.js'\nimport HashtagChooser from './HashtagChooser.js'\nimport Editor from './Editor.js'\nimport VoltLogoPurple from './VoltLogoPurple.svg'\nimport purpleBG from './purpleBG.png'\nimport empty_1x1 from './empty_1x1.png'\n\nimport 'intl-pluralrules'\nimport { AppLocalizationProvider, locales } from './l10n.js'\nimport { withLocalization, Localized } from './Localized.js'\n\n\nconst frameSize = 1080\n\nfunction getOrientation(file, callback) {\n // Source: http://stackoverflow.com/a/32490603\n // (With some modifications: I just made the code fit the style-guide.)\n const reader = new FileReader()\n\n reader.onload = function (event) {\n const view = new DataView(event.target.result)\n\n if (view.getUint16(0, false) !== 0xFFD8) {\n return callback(-2)\n }\n\n const length = view.byteLength\n let offset = 2\n\n while (offset < length) {\n const marker = view.getUint16(offset, false)\n offset += 2\n\n if (marker === 0xFFE1) {\n if (view.getUint32(offset += 2, false) !== 0x45786966) {\n return callback(-1)\n }\n const little = view.getUint16(offset += 6, false) === 0x4949\n offset += view.getUint32(offset + 4, little)\n const tags = view.getUint16(offset, little)\n offset += 2\n\n for (var i = 0; i < tags; i++) {\n if (view.getUint16(offset + (i * 12), little) === 0x0112) {\n return callback(view.getUint16(offset + (i * 12) + 8, little))\n }\n }\n } else if ((marker & 0xFF00) !== 0xFF00) {\n break\n } else {\n offset += view.getUint16(offset, false)\n }\n }\n return callback(-1)\n }\n\n reader.readAsArrayBuffer(file.slice(0, 64 * 1024))\n}\n\nfunction trigger_download(name, data){\n const a = document.createElement('a')\n document.body.appendChild(a)\n // a.target = '_blank'\n a.download = name\n a.href = data\n a.click()\n a.remove()\n}\n\nfunction App({ getString }) { \n const [frameURL, setFrameURL] = useState(null)\n const [hashtagURL, setHashtagURL] = useState(null)\n const [originalPhoto, setOriginalPhoto] = useState(null)\n const [originalPhotoRation, setOriginalPhotoRation] = useState(1)\n const [orientation, set_orientation] = useState(null)\n\n\n // const [combinedImage, set_combinedImage] = useState(null)\n\n const [width, set_width] = useState(0)\n const [height, set_height] = useState(0)\n\n const [cords, setCords] = useState({x:0, y:0, scale:1})\n\n const handleFrameURL = useCallback(newFrameURL => {\n setFrameURL(newFrameURL)\n }, [setFrameURL])\n\n const handleHashtagURL = useCallback(newHashtagURL => {\n setHashtagURL(newHashtagURL)\n }, [setHashtagURL])\n\n const handleCordsChange = useCallback(({x, y, scale}) => {\n setCords({ x, y, scale })\n }, [])\n\n const handleReadFile = useCallback(file => {\n if (!(!!file)) {\n return;\n }\n\n const reader = new FileReader()\n reader.onload = reader_event => {\n const img = new Image()\n img.onload = function () {\n let width, height;\n if (img.width < img.height) {\n height = (img.height / img.width) * frameSize\n width = frameSize\n } else {\n height = frameSize\n width = (img.width / img.height) * frameSize\n }\n\n getOrientation(file, new_orientation => {\n let original_ration = 1\n // use the correct image orientation\n switch (new_orientation) {\n // Source: https://stackoverflow.com/a/30242954/2387277\n // Source: https://stackoverflow.com/questions/19463126/how-to-draw-photo-with-correct-orientation-in-canvas-after-capture-photo-by-usin\n case 2:\n // horizontal flip\n original_ration = height / width\n break\n case 3:\n // 180° rotate left\n original_ration = height / width\n break\n case 4:\n // vertical flip\n original_ration = height / width\n break\n case 5:\n // vertical flip + 90 rotate right\n original_ration = width / height\n break\n case 6:\n // 90° rotate right\n original_ration = width / height\n break\n case 7:\n // horizontal flip + 90 rotate right\n original_ration = width / height\n break\n case 8:\n // 90° rotate left\n original_ration = width / height\n break\n default:\n original_ration = height / width\n break\n }\n\n set_width(width)\n set_height(height)\n setOriginalPhoto(reader_event.target.result)\n set_orientation(new_orientation)\n setOriginalPhotoRation(original_ration)\n })\n }\n img.src = reader_event.target.result\n }\n reader.readAsDataURL(file)\n }, [])\n\n const handleImage = useCallback(files_event => {\n handleReadFile(files_event.target.files[0])\n }, [handleReadFile])\n\n const onDrop = useCallback(acceptedFiles => {\n handleReadFile(acceptedFiles[0])\n }, [handleReadFile])\n\n const handleDownload = useCallback(() => {\n const img = new Image()\n img.onload = function () {\n const canvas = document.createElement('canvas')\n canvas.width = frameSize\n canvas.height = frameSize\n\n const ctx = canvas.getContext('2d', { alpha: true })\n\n // use the correct image orientation\n switch (orientation) {\n // Source: https://stackoverflow.com/a/30242954/2387277\n // Source: https://stackoverflow.com/questions/19463126/how-to-draw-photo-with-correct-orientation-in-canvas-after-capture-photo-by-usin\n case 2:\n // horizontal flip\n ctx.translate(canvas.width, 0)\n ctx.scale(-1, 1)\n break\n case 3:\n // 180° rotate left\n ctx.translate(canvas.width, canvas.height)\n ctx.rotate(Math.PI)\n break\n case 4:\n // vertical flip\n ctx.translate(0, canvas.height)\n ctx.scale(1, -1)\n break\n case 5:\n // vertical flip + 90 rotate right\n ctx.rotate(0.5 * Math.PI)\n ctx.scale(1, -1)\n break\n case 6:\n // 90° rotate right\n ctx.rotate(0.5 * Math.PI)\n ctx.translate(0, -canvas.height)\n break\n case 7:\n // horizontal flip + 90 rotate right\n ctx.rotate(0.5 * Math.PI)\n ctx.translate(canvas.width, -canvas.height)\n ctx.scale(-1, 1)\n break\n case 8:\n // 90° rotate left\n ctx.rotate(-0.5 * Math.PI)\n ctx.translate(-canvas.width, 0)\n break\n default:\n break\n }\n\n\n const width_scaled = width * cords.scale\n const height_scaled = height * cords.scale\n\n ctx.drawImage(\n img,\n cords.x * 3.5 + (frameSize - width_scaled) * 0.5,\n cords.y * 3.5 + (frameSize - height_scaled) * 0.5,\n width_scaled,\n height_scaled,\n )\n // ctx.drawImage(\n // img,\n // ((frameSize - width_scaled) * 0.5),\n // ((frameSize - height_scaled) * 0.5),\n // width_scaled,\n // height_scaled,\n // )\n\n const pngUrl = canvas.toDataURL()\n\n mergeImages([\n purpleBG,\n ...(pngUrl ? [pngUrl] : []),\n ...(frameURL ? [frameURL] : []),\n ...(hashtagURL ? [hashtagURL] : []),\n ])\n .then(b64 => {\n // set_combinedImage(b64)\n trigger_download('volt-profile-picture.png', b64)\n })\n\n }\n img.src = originalPhoto\n }, [\n originalPhoto,\n cords.x,\n cords.y,\n cords.scale,\n orientation,\n frameURL,\n hashtagURL,\n height,\n width,\n ])\n\n const { isDragActive, getRootProps } = useDropzone({\n onDrop,\n accept: 'image/*',\n maxFiles: 1,\n noKeyboard: true,\n })\n\n\n return (\n
\n {getString('alt_volt_logo')}\n

\n\n
\n \n
\n\n

\n

\n\n \n\n {true || !!originalPhoto ? (<>\n

\n \n

\n \n ) : null}\n\n {!!originalPhoto && !!frameURL && !!handleHashtagURL ? (<>\n

\n {/*\n

Edit your Photo:

\n

Your can reposition the image and scale it. Use pinch-to-zoom or scroll to scale.

\n */}\n\n \n\n \n ) : null}\n\n \n
\n )\n}\nconst AppLocalized = withLocalization(App)\n\n\nfunction AppWrapper() {\n const [userLocales, setUserLocales] = useState(navigator.languages)\n const [currentLocale, setCurrentLocale] = useState(null)\n\n const handleLanguageChange = useCallback(event => {\n setUserLocales([event.target.dataset.locale])\n }, [setUserLocales])\n\n const handleCurrentLocalesChange = useCallback(currentLocales => {\n setCurrentLocale(currentLocales.length > 0 ? currentLocales[0] : '')\n }, [setCurrentLocale])\n\n return \n <>\n \n\n
\n {\n Object.entries(locales)\n .map(([locale, name]) => {\n return \n {name}\n \n })\n }\n
\n \n \n}\nexport default withLocalization(AppWrapper)\n\n","const reportWebVitals = onPerfEntry => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry)\n getFID(onPerfEntry)\n getFCP(onPerfEntry)\n getLCP(onPerfEntry)\n getTTFB(onPerfEntry)\n })\n }\n}\n\nexport default reportWebVitals\n","import React from 'react'\nimport ReactDOM from 'react-dom'\nimport App from './App'\nimport reportWebVitals from './reportWebVitals'\n\nReactDOM.render(\n \n \n ,\n document.getElementById('root')\n)\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals()\n"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/main.c5ef7ee6.chunk.js b/static/js/main.c5ef7ee6.chunk.js new file mode 100644 index 0000000..61dd27a --- /dev/null +++ b/static/js/main.c5ef7ee6.chunk.js @@ -0,0 +1,2 @@ +(this["webpackJsonpprofile-picture-generator"]=this["webpackJsonpprofile-picture-generator"]||[]).push([[0],{37:function(e,t,n){},41:function(e,t,n){var a={"./ProfileFrame Blue Bars.png":[49,12],"./ProfileFrame Green Bars.png":[50,13],"./ProfileFrame Mixed Bars.png":[51,14],"./ProfileFrame Purple.png":[52,15],"./ProfileFrame Red Bars.png":[53,16],"./ProfileFrame White Bars.png":[54,17],"./ProfileFrame Yellow Bars.png":[55,18]};function c(e){if(!n.o(a,e))return Promise.resolve().then((function(){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}));var t=a[e],c=t[0];return n.e(t[1]).then((function(){return n(c)}))}c.keys=function(){return Object.keys(a)},c.id=41,e.exports=c},42:function(e,t,n){var a={"./DeineWahl.png":[56,19],"./EUReform.png":[57,20],"./Europa.png":[58,21],"./EuropeCares.png":[59,22],"./European.png":[60,23],"./FutureMadeInEurope.png":[61,24],"./JetztBistDuDran.png":[62,25],"./JoinTheChange.png":[63,26],"./RejoinEU.png":[64,27],"./ValuesOverPower.png":[65,28],"./Volt.png":[66,29],"./Volt21.png":[67,30],"./VoltEuropa.png":[68,31],"./VoltRLP.png":[69,32],"./VoteVolt.png":[70,33],"./ZukunftMadeInEurope.png":[71,34],"./democracy.png":[72,35],"./paneurop\xe4isch.png":[73,36],"./pragmatisch.png":[74,37],"./progressiv.png":[75,38]};function c(e){if(!n.o(a,e))return Promise.resolve().then((function(){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}));var t=a[e],c=t[0];return n.e(t[1]).then((function(){return n(c)}))}c.keys=function(){return Object.keys(a)},c.id=42,e.exports=c},47:function(e,t,n){var a={"./de.ftl":[76,3],"./en.ftl":[77,4],"./es.ftl":[78,5],"./fr.ftl":[79,6],"./it.ftl":[80,7],"./nl.ftl":[81,8],"./pl.ftl":[82,9],"./ru.ftl":[83,10]};function c(e){if(!n.o(a,e))return Promise.resolve().then((function(){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}));var t=a[e],c=t[0];return n.e(t[1]).then((function(){return n(c)}))}c.keys=function(){return Object.keys(a)},c.id=47,e.exports=c},48:function(e,t,n){"use strict";n.r(t);var a=n(1),c=n(0),r=n.n(c),o=n(25),s=n.n(o),i=n(7),u=n(17),O=n(2),h=(n(37),n(30)),l=n(27),d=n(4),j=n.n(d),b=n(9);var f=function(e){var t=e.onChange,r=Object(c.useState)([]),o=Object(O.a)(r,2),s=o[0],i=o[1],u=Object(c.useState)(null),h=Object(O.a)(u,2),l=h[0],d=h[1];Object(c.useEffect)((function(){function e(){return(e=Object(b.a)(j.a.mark((function e(){return j.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:Promise.all(["ProfileFrame Purple","ProfileFrame Mixed Bars","ProfileFrame Yellow Bars","ProfileFrame Red Bars","ProfileFrame Blue Bars","ProfileFrame Green Bars","ProfileFrame White Bars"].map(function(){var e=Object(b.a)(j.a.mark((function e(t){return j.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.t0=t,e.next=3,n(41)("./".concat(t,".png"));case 3:return e.t1=e.sent,e.abrupt("return",{name:e.t0,src:e.t1});case 5:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}())).then((function(e){i(e),d(e[0].src.default)}));case 1:case"end":return e.stop()}}),e)})))).apply(this,arguments)}!function(){e.apply(this,arguments)}()}),[]);var f=Object(c.useCallback)((function(e){d(e.target.dataset.src)}),[d]);return Object(c.useEffect)((function(){t(l)}),[t,l]),Object(a.jsx)("div",{className:"FrameChooser",children:s.map((function(e){var t=e.src.default,n=l===t;return Object(a.jsx)("div",{"data-src":t,className:n?"frame choosen":"frame",onClick:f,children:Object(a.jsx)("img",{alt:e.name,src:t})},t)}))})},p=n(16),g=n(10),v=function(e){return Object(a.jsx)(p.b,Object(i.a)(Object(i.a)({},e),{},{elems:Object(i.a)({br:Object(a.jsx)("br",{})},e.elems),children:Object(a.jsx)(r.a.Fragment,{children:e.children})}),e.id)};function x(e){return function(t){var n=r.a.useContext(g.a);return r.a.createElement(e,Object(i.a)({getString:function(e,t,a){return n.getString(e,t,a||" ")}},t))}}var w=x((function(e){var t=e.onChange,r=e.getString,o=Object(c.useState)([]),s=Object(O.a)(o,2),i=s[0],u=s[1],h=Object(c.useState)(null),l=Object(O.a)(h,2),d=l[0],f=l[1];Object(c.useEffect)((function(){function e(){return(e=Object(b.a)(j.a.mark((function e(){return j.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:Promise.all(["","VoteVolt","JoinTheChange","RejoinEU","DeineWahl","JetztBistDuDran","VoltEuropa","VoltRLP","Volt21","Volt","paneurop\xe4isch","pragmatisch","progressiv","Europa","democracy","EUReform","European","EuropeCares","FutureMadeInEurope","ValuesOverPower","ZukunftMadeInEurope"].map(function(){var e=Object(b.a)(j.a.mark((function e(t){return j.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(e.t0=t,""!==t){e.next=5;break}e.t1="",e.next=8;break;case 5:return e.next=7,n(42)("./".concat(t,".png"));case 7:e.t1=e.sent;case 8:return e.t2=e.t1,e.abrupt("return",{name:e.t0,src:e.t2});case 10:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}())).then((function(e){u(e),f(e[0].src.default)}));case 1:case"end":return e.stop()}}),e)})))).apply(this,arguments)}!function(){e.apply(this,arguments)}()}),[]);var p=Object(c.useCallback)((function(e){f(e.target.dataset.src)}),[f]);return Object(c.useEffect)((function(){t(d)}),[t,d]),Object(a.jsx)("div",{className:"HashtagChooser",children:i.map((function(e){var t=e.src.default,n=d===t;return Object(a.jsx)("button",{"data-src":t,className:n?"hashtag_button choosen":"hashtag_button",onClick:p,children:""===e.name?r("button_no_hashtag"):"#"+e.name},e.name)}))})})),D=n(28),A=n.n(D),m=n(29),C=n.n(m);function Q(e,t,n){return Math.min(Math.max(t,e),n)}var H=function(e){var t=e.onChange,n=e.backgroundURL,r=e.backgroundRatio,o=e.frameURL,s=e.hashtagURL,i=Object(c.useRef)(null),u=Object(c.useRef)(null),h=Object(c.useState)(!1),l=Object(O.a)(h,2),d=l[0],j=l[1],b=Object(c.useState)(null),f=Object(O.a)(b,2),p=f[0],g=f[1],v=Object(c.useState)(null),x=Object(O.a)(v,2),w=x[0],D=x[1],m=Object(c.useState)(0),H=Object(O.a)(m,2),T=H[0],U=H[1],F=Object(c.useState)(0),N=Object(O.a)(F,2),E=N[0],k=N[1],K=Object(c.useState)(0),B=Object(O.a)(K,2),y=B[0],S=B[1],P=Object(c.useState)(0),_=Object(O.a)(P,2),R=_[0],M=_[1],L=Object(c.useState)(1),I=Object(O.a)(L,2),V=I[0],J=I[1],Y=Object(c.useState)(300),z=Object(O.a)(Y,2),X=z[0],G=z[1],W=Object(c.useState)(300),Z=Object(O.a)(W,2),q=Z[0],$=Z[1],ee=Object(c.useState)(300),te=Object(O.a)(ee,2),ne=te[0],ae=te[1],ce=Object(c.useState)(300),re=Object(O.a)(ce,2),oe=re[0],se=re[1],ie=Object(c.useState)(0),ue=Object(O.a)(ie,2),Oe=ue[0],he=ue[1],le=Object(c.useState)(0),de=Object(O.a)(le,2),je=de[0],be=de[1],fe=Object(c.useState)(0),pe=Object(O.a)(fe,2),ge=pe[0],ve=pe[1],xe=Object(c.useState)(0),we=Object(O.a)(xe,2),De=we[0],Ae=we[1];Object(c.useEffect)((function(){t&&t({x:T,y:E,scale:V})}),[t,T,E,V]),Object(c.useEffect)((function(){if(i&&i.current){var e=i.current.offsetWidth,t=i.current.offsetHeight;se(t),ae(e);var n=1,a=1;r<1?n=1/r:r>1&&(a=1*r),G(n),$(a)}}),[r]),Object(c.useEffect)((function(){var e=function(e,t,n,a,c){var r=Math.max(0,e*n-a)/2,o=Math.max(0,t*n-c)/2;return{rangeMaxX:r,rangeMinX:0-r,rangeMaxY:o,rangeMinY:0-o}}(X*ne,q*oe,V,ne,oe),t=e.rangeMinX,n=e.rangeMinY,a=e.rangeMaxX,c=e.rangeMaxY;he(t),be(n),ve(a),Ae(c)}),[X,q,ne,oe,V]),Object(c.useEffect)((function(){U(0),k(0),S(0),M(0),J(1)}),[n]);var me=Object(c.useCallback)((function(e){var t=1*e.target.dataset.x,n=1*e.target.dataset.y,a=Q(t+e.deltaX,Oe,ge),c=Q(n+e.deltaY,je,De);e.isFinal?(U(a||0),k(c||0),S(0),M(0)):(S(a-t||0),M(c-n||0))}),[Oe,je,ge,De]),Ce=Object(c.useCallback)((function(e,t,n,a){e.preventDefault();var c=Q(1*e.target.dataset.scale+t/200,1,8);J(c||1);var r=1*e.target.dataset.x,o=1*e.target.dataset.y;U(Q(r,Oe,ge)||0),k(Q(o,je,De)||0)}),[Oe,je,ge,De]);return Object(c.useEffect)((function(){if(!d&&i&&i.current){var e=i.current;e.addEventListener("mousedown",(function(e){e.preventDefault()}),!1),e.addEventListener("touchstart",(function(e){e.preventDefault()}),!1),e.addEventListener("touchend",(function(e){e.preventDefault()}),!1),e.addEventListener("touchmove",(function(e){e.preventDefault()}),!1),g(new A.a(e,{direction:"DIRECTION_ALL"})),D(C()(e)),j(!0)}}),[i,d]),Object(c.useEffect)((function(){if(p&&w&&d&&i&&i.current)return p.on("pan",me),w.wheel(Ce),function(){p.off("pan",me),w.unwheel()}}),[i,me,Ce,d,p,w]),Object(a.jsxs)("div",{className:"Editor",ref:i,"data-x":T,"data-y":E,"data-scale":V,children:[Object(a.jsx)("img",{src:n,ref:u,alt:"",className:"background",style:{width:100*X+"%",height:100*q+"%",transform:"translate3d(calc(-50% + ".concat(T+y,"px), calc(-50% + ").concat(E+R,"px), 0) scale(").concat(V,",").concat(V,")")}}),Object(a.jsx)("img",{src:o,alt:"",className:"foreground"}),Object(a.jsx)("img",{src:s,alt:"",className:"hashtag"})]})},T=n.p+"static/media/VoltLogoPurple.125355f6.svg",U="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABDgAAAQ4AgMAAACRfoQcAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAJUExURVIud1Iud1Eudgy0J+8AAAADdFJOU//+/Q3dsqEAAATsSURBVHgB7dAxAQAABAAwQtI/ipMCvi3CgiMV6NChQ4cOHTp06NChQ4cOHTp06NChAx06dOjQoUOHDh06dOjQoUOHDh06dOhAhw4dOnTo0KFDhw4dOnTo0KFDhw4dOtChQ4cOHTp06NChQ4cOHTp06NChQ4cOdOjQoUOHDh06dOjQoUOHDh06dOjQoQMdOnTo0KFDhw4dOnTo0KFDhw4dOnToQIcOHTp06NChQ4cOHTp06NChQ4cOHejQoUOHDh06dOjQoUOHDh06dOjQoUMHOnTo0KFDhw4dOnTo0KFDhw4dOnTo0IEOHTp06NChQ4cOHTp06NChQ4cOHTp0oEOHDh06dOjQoUOHDh06dOjQoUOHDh3o0KFDhw4dOnTo0KFDhw4dOnTo0KFDBzp06NChQ4cOHTp06NChQ4cOHTp06NChQIcOHTp06NChQ4cOHTp06NChQ4cOHejQoUOHDh06dOjQoUOHDh06dOjQoUMHOnTo0KFDhw4dOnTo0KFDhw4dOnTo0IEOHTp06NChQ4cOHTp06NChQ4cOHTp0oEOHDh06dOjQoUOHDh06dOjQoUOHDh3o0KFDhw4dOnTo0KFDhw4dOnTo0KFDBzp06NChQ4cOHTp06NChQ4cOHTp06ECHDh06dOjQoUOHDh06dOjQoUOHDh060KFDhw4dOnTo0KFDhw4dOnTo0KFDhw506NChQ4cOHTp06NChQ4cOHTp06NChAx06dOjQoUOHDh06dOjQoUOHDh06dOhAhw4dOnTo0KFDhw4dOnTo0KFDhw4dOtChQ4cOHTp06NChQ4cOHTp06NChQ4cOBTp06NChQ4cOHTp06NChQ4cOHTp06ECHDh06dOjQoUOHDh06dOjQoUOHDh060KFDhw4dOnTo0KFDhw4dOnTo0KFDhw506NChQ4cOHTp06NChQ4cOHTp06NChAx06dOjQoUOHDh06dOjQoUOHDh06dOhAhw4dOnTo0KFDhw4dOnTo0KFDhw4dOtChQ4cOHTp06NChQ4cOHTp06NChQwc6dOjQoUOHDh06dOjQoUOHDh06dOjQgQ4dOnTo0KFDhw4dOnTo0KFDhw4dOnSgQ4cOHTp06NChQ4cOHTp06NChQ4cOHTx06NChQ4cOdOjQoUOHDh06dOjQoUOHDh06dOjQoQMdOnTo0KFDhw4dOnTo0KFDhw4dOnToQIcOHTp06NChQ4cOHTp06NChQ4cOHTrQoUOHDh06dOjQoUOHDh06dOjQoUOHDnTo0KFDhw4dOnTo0KFDhw4dOnTo0KEDHTp06NChQ4cOHTp06NChQ4cOHTp0oEOHDh06dOjQoUOHDh06dOjQoUOHDh3o0KFDhw4dOnTo0KFDhw4dOnTo0KFDBzp06NChQ4cOHTp06NChQ4cOHTp06NCBDh06dOjQoUOHDh06dOjQoUOHDh06dKBDhw4dOnTo0KFDhw4dOnTo0KFDhw4d6NChQ4cOHTp06NChQ4cOHTp06NChQ4cCHTp06NChQ4cOHTp06NChQ4cOHTp0oEOHDh06dOjQoUOHDh06dOjQoUOHDh3o0KFDhw4dOnTo0KFDhw4dOnTo0KFDBzp06NChQ4cOHTp06NChQ4cOHTp06NCBDh06dOjQoUOHDh06dOjQoUOHDh06dKBDhw4dOnTo0KFDhw4dOnTo0KFDhw4dxeoB30xd38yzCvgAAAAASUVORK5CYII=",F="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAALSURBVHgBY2BgAAAAAwABjPg5OgAAAABJRU5ErkJggg==",N=(n(43),n(5)),E=n(21),k=n(20),K=n(31),B={de:"Deutsch",en:"English",es:"Espa\xf1ol",fr:"Fran\xe7ais",it:"Italiano",nl:"Dutch",pl:"Polska",ru:"P\u0443\u0441\u0441\u043a\u0438\u0439"},y=Object.keys(B);function S(e){return P.apply(this,arguments)}function P(){return(P=Object(b.a)(j.a.mark((function e(t){var a,c,r;return j.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,n(47)("./"+t+".ftl");case 2:return a=e.sent,e.next=5,fetch(a.default);case 5:return c=e.sent,e.next=8,c.text();case 8:return r=e.sent,e.abrupt("return",Object(E.a)({},t,new k.b(r)));case 10:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function _(e){return R.apply(this,arguments)}function R(){return(R=Object(b.a)(j.a.mark((function e(t){var n,a;return j.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Promise.all(t.map(S));case 2:return n=e.sent,a=n.reduce((function(e,t){return Object.assign(e,t)})),e.abrupt("return",j.a.mark((function e(){var n,c,r,o;return j.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=Object(N.a)(t),e.prev=1,n.s();case 3:if((c=n.n()).done){e.next=11;break}return r=c.value,(o=new k.a(r)).addResource(a[r]),e.next=9,o;case 9:e.next=3;break;case 11:e.next=16;break;case 13:e.prev=13,e.t0=e.catch(1),n.e(e.t0);case 16:return e.prev=16,n.f(),e.finish(16);case 19:case"end":return e.stop()}}),e,null,[[1,13,16,19]])})));case 5:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function M(e){var t=e.userLocales,n=e.children,r=e.onLocaleChange,o=Object(c.useState)(function(){var e=new k.a("");return e.addResource(new k.b("")),new p.c([e])}()),s=Object(O.a)(o,2),i=s[0],u=s[1];return Object(c.useEffect)((function(){function e(){return(e=Object(b.a)(j.a.mark((function e(){var n,a;return j.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=Object(K.a)(t,y,{defaultLocale:"en"}),r&&r(n),e.next=4,_(n);case 4:a=e.sent,u(new p.c(a()));case 6:case"end":return e.stop()}}),e)})))).apply(this,arguments)}!function(){e.apply(this,arguments)}()}),[t,r]),i?Object(a.jsx)(p.a,{l10n:i,children:n}):Object(a.jsx)("div",{children:"Loading texts\u2026"})}var L=1080;var I=x((function(e){var t=e.getString,n=Object(c.useState)(null),r=Object(O.a)(n,2),o=r[0],s=r[1],d=Object(c.useState)(null),j=Object(O.a)(d,2),b=j[0],p=j[1],g=Object(c.useState)(null),x=Object(O.a)(g,2),D=x[0],A=x[1],m=Object(c.useState)(1),C=Object(O.a)(m,2),Q=C[0],N=C[1],E=Object(c.useState)(null),k=Object(O.a)(E,2),K=k[0],B=k[1],y=Object(c.useState)(0),S=Object(O.a)(y,2),P=S[0],_=S[1],R=Object(c.useState)(0),M=Object(O.a)(R,2),I=M[0],V=M[1],J=Object(c.useState)({x:0,y:0,scale:1}),Y=Object(O.a)(J,2),z=Y[0],X=Y[1],G=Object(c.useCallback)((function(e){s(e)}),[s]),W=Object(c.useCallback)((function(e){p(e)}),[p]),Z=Object(c.useCallback)((function(e){var t=e.x,n=e.y,a=e.scale;X({x:t,y:n,scale:a})}),[]),q=Object(c.useCallback)((function(e){if(e){var t=new FileReader;t.onload=function(t){var n=new Image;n.onload=function(){var a,c;n.width0?e[0]:"")}),[u]);return Object(a.jsx)(M,{userLocales:n,onLocaleChange:l,children:Object(a.jsxs)(a.Fragment,{children:[Object(a.jsx)(I,{}),Object(a.jsx)("div",{className:"locale_chooser",children:Object.entries(B).map((function(e){var t=Object(O.a)(e,2),n=t[0],c=t[1];return Object(a.jsx)("button",{className:n===i?"choosen":"","data-locale":n,onClick:h,children:c},n)}))})]})},"AppLocalizationProvider")})),J=function(e){e&&e instanceof Function&&n.e(11).then(n.bind(null,84)).then((function(t){var n=t.getCLS,a=t.getFID,c=t.getFCP,r=t.getLCP,o=t.getTTFB;n(e),a(e),c(e),r(e),o(e)}))};s.a.render(Object(a.jsx)(r.a.StrictMode,{children:Object(a.jsx)(V,{})}),document.getElementById("root")),J()}},[[48,1,2]]]); +//# sourceMappingURL=main.c5ef7ee6.chunk.js.map \ No newline at end of file diff --git a/static/js/main.c5ef7ee6.chunk.js.map b/static/js/main.c5ef7ee6.chunk.js.map new file mode 100644 index 0000000..e4720f3 --- /dev/null +++ b/static/js/main.c5ef7ee6.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["frames lazy /^/.//.*/.png$/ groupOptions: {} namespace object","hashtags lazy /^/.//.*/.png$/ groupOptions: {} namespace object","locales lazy /^/.//.*/.ftl$/ groupOptions: {} namespace object","FrameChooser.js","Localized.js","HashtagChooser.js","Editor.js","VoltLogoPurple.svg","purpleBG.png","empty_1x1.png","l10n.js","App.js","reportWebVitals.js","index.js"],"names":["map","webpackAsyncContext","req","__webpack_require__","o","Promise","resolve","then","e","Error","code","ids","id","keys","Object","module","exports","FrameChooser","onChange","useState","frames","setFrames","choosenFrame","setChoosenFrame","useEffect","a","all","frame_filename","name","src","new_frames","default","loadFrames","handleImageChoosing","useCallback","event","target","dataset","className","frame","frame_src_path","isChoosen","data-src","onClick","alt","Localized","props","elems","br","Fragment","children","withLocalization","Inner","l10n","React","useContext","FluentContext","createElement","getString","args","fallback","clamp","value","min","max","Math","Editor","backgroundURL","backgroundRatio","frameURL","hashtagURL","editorRef","useRef","backgroundImageRef","hammer_got_init","set_hammer_got_init","hammertime","set_hammertime","hamster","set_hamster","x","set_x","y","set_y","add_x","set_add_x","add_y","set_add_y","scale","set_scale","photoWidth","setPhotoWidth","photoHeight","setPhotoHeight","editorWidth","setEditorWidth","editorHeight","setEditorHeight","rangeMinX","set_rangeMinX","rangeMinY","set_rangeMinY","rangeMaxX","set_rangeMaxX","rangeMaxY","set_rangeMaxY","current","new_editorWidth","offsetWidth","new_editorHeight","offsetHeight","new_photoWidth","new_photoHeight","imageWidth","imageHeight","imageScale","containerWidth","containerHeight","updateRange","handleMove","prev_x","prev_y","new_x","deltaX","new_y","deltaY","isFinal","handleScale","delta","preventDefault","new_scale","element","addEventListener","Hammer","direction","Hamster","on","wheel","off","unwheel","ref","data-x","data-y","data-scale","style","width","height","transform","locales","de","en","es","fr","it","nl","pl","ru","_supportedLocales_","fetchMessages","locale","path","fetch","response","text","messages","FluentResource","createMessagesGenerator","currentLocales","fetched","reduce","obj","cur","assign","generateBundles","bundle","FluentBundle","addResource","f","AppLocalizationProvider","userLocales","onLocaleChange","ReactLocalization","getDefaultBundles","bundles","setBundles","negotiateLanguages","defaultLocale","loadBundles","frameSize","AppLocalized","setFrameURL","setHashtagURL","originalPhoto","setOriginalPhoto","originalPhotoRation","setOriginalPhotoRation","orientation","set_orientation","set_width","set_height","cords","setCords","handleFrameURL","newFrameURL","handleHashtagURL","newHashtagURL","handleCordsChange","handleReadFile","file","reader","FileReader","onload","reader_event","img","Image","callback","view","DataView","result","getUint16","length","byteLength","offset","marker","getUint32","little","tags","i","readAsArrayBuffer","slice","getOrientation","new_orientation","original_ration","readAsDataURL","handleImage","files_event","files","onDrop","acceptedFiles","handleDownload","canvas","document","ctx","getContext","alpha","translate","rotate","PI","width_scaled","height_scaled","drawImage","pngUrl","toDataURL","mergeImages","purpleBG","b64","data","body","appendChild","download","href","click","remove","trigger_download","useDropzone","accept","maxFiles","noKeyboard","isDragActive","getRootProps","VoltLogoPurple","tabIndex","outline","type","display","empty_1x1","navigator","languages","setUserLocales","currentLocale","setCurrentLocale","handleLanguageChange","handleCurrentLocalesChange","entries","data-locale","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","ReactDOM","render","StrictMode","getElementById"],"mappings":"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","file":"static/js/main.c5ef7ee6.chunk.js","sourcesContent":["var map = {\n\t\"./ProfileFrame Blue Bars.png\": [\n\t\t49,\n\t\t12\n\t],\n\t\"./ProfileFrame Green Bars.png\": [\n\t\t50,\n\t\t13\n\t],\n\t\"./ProfileFrame Mixed Bars.png\": [\n\t\t51,\n\t\t14\n\t],\n\t\"./ProfileFrame Purple.png\": [\n\t\t52,\n\t\t15\n\t],\n\t\"./ProfileFrame Red Bars.png\": [\n\t\t53,\n\t\t16\n\t],\n\t\"./ProfileFrame White Bars.png\": [\n\t\t54,\n\t\t17\n\t],\n\t\"./ProfileFrame Yellow Bars.png\": [\n\t\t55,\n\t\t18\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__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 41;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./DeineWahl.png\": [\n\t\t56,\n\t\t19\n\t],\n\t\"./EUReform.png\": [\n\t\t57,\n\t\t20\n\t],\n\t\"./Europa.png\": [\n\t\t58,\n\t\t21\n\t],\n\t\"./EuropeCares.png\": [\n\t\t59,\n\t\t22\n\t],\n\t\"./European.png\": [\n\t\t60,\n\t\t23\n\t],\n\t\"./FutureMadeInEurope.png\": [\n\t\t61,\n\t\t24\n\t],\n\t\"./JetztBistDuDran.png\": [\n\t\t62,\n\t\t25\n\t],\n\t\"./JoinTheChange.png\": [\n\t\t63,\n\t\t26\n\t],\n\t\"./RejoinEU.png\": [\n\t\t64,\n\t\t27\n\t],\n\t\"./ValuesOverPower.png\": [\n\t\t65,\n\t\t28\n\t],\n\t\"./Volt.png\": [\n\t\t66,\n\t\t29\n\t],\n\t\"./Volt21.png\": [\n\t\t67,\n\t\t30\n\t],\n\t\"./VoltEuropa.png\": [\n\t\t68,\n\t\t31\n\t],\n\t\"./VoltRLP.png\": [\n\t\t69,\n\t\t32\n\t],\n\t\"./VoteVolt.png\": [\n\t\t70,\n\t\t33\n\t],\n\t\"./ZukunftMadeInEurope.png\": [\n\t\t71,\n\t\t34\n\t],\n\t\"./democracy.png\": [\n\t\t72,\n\t\t35\n\t],\n\t\"./paneuropäisch.png\": [\n\t\t73,\n\t\t36\n\t],\n\t\"./pragmatisch.png\": [\n\t\t74,\n\t\t37\n\t],\n\t\"./progressiv.png\": [\n\t\t75,\n\t\t38\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__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 42;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./de.ftl\": [\n\t\t76,\n\t\t3\n\t],\n\t\"./en.ftl\": [\n\t\t77,\n\t\t4\n\t],\n\t\"./es.ftl\": [\n\t\t78,\n\t\t5\n\t],\n\t\"./fr.ftl\": [\n\t\t79,\n\t\t6\n\t],\n\t\"./it.ftl\": [\n\t\t80,\n\t\t7\n\t],\n\t\"./nl.ftl\": [\n\t\t81,\n\t\t8\n\t],\n\t\"./pl.ftl\": [\n\t\t82,\n\t\t9\n\t],\n\t\"./ru.ftl\": [\n\t\t83,\n\t\t10\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__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 47;\nmodule.exports = webpackAsyncContext;","import { useState, useEffect, useCallback } from 'react'\n\nfunction FrameChooser({onChange}) {\n const [frames, setFrames] = useState([])\n const [choosenFrame, setChoosenFrame] = useState(null)\n\n useEffect(() => {\n async function loadFrames(){\n Promise.all(\n [\n 'ProfileFrame Purple',\n 'ProfileFrame Mixed Bars',\n 'ProfileFrame Yellow Bars',\n 'ProfileFrame Red Bars',\n 'ProfileFrame Blue Bars',\n 'ProfileFrame Green Bars',\n 'ProfileFrame White Bars',\n ]\n .map(async frame_filename => {\n return {\n name: frame_filename,\n src: await import(`./frames/${frame_filename}.png`),\n }\n })\n )\n .then(new_frames => {\n setFrames(new_frames)\n setChoosenFrame(new_frames[0].src.default)\n })\n }\n loadFrames()\n }, [])\n\n const handleImageChoosing = useCallback(event => {\n setChoosenFrame(event.target.dataset.src)\n }, [setChoosenFrame])\n\n useEffect(() => {\n onChange(choosenFrame)\n }, [onChange, choosenFrame])\n\n return (\n
\n {\n frames.map(frame => {\n const frame_src_path = frame.src.default\n const isChoosen = choosenFrame === frame_src_path\n return \n {frame.name}\n
\n })\n } \n \n )\n}\n\nexport default FrameChooser\n","import React from 'react'\nimport {\n Localized as LocalizedOriginal,\n // withLocalization,\n} from '@fluent/react'\n\nimport { FluentContext } from '../node_modules/@fluent/react/esm/context.js'\n\nconst Localized = props => (\n ,\n ...props.elems,\n }}\n >\n {props.children}\n \n)\n\n// A custom withLocalization to have an empty fallback.\n// It is nearly identical to the original.\nfunction withLocalization(Inner) {\n function WithLocalization(props) {\n const l10n = React.useContext(FluentContext)\n\n const getString = (id, args, fallback) => l10n.getString(id, args, fallback || ' ')\n\n return React.createElement(Inner, { getString, ...props })\n }\n return WithLocalization\n}\n\nexport {\n withLocalization,\n Localized,\n Localized as default,\n}\n\n/*\n\nimport { Localized, withLocalization } from '../Localized/'\n\n\nexport default withLocalization(componentName)\n\n\nimport Localized from '../Localized/'\n\n\nimport { withLocalization } from '@fluent/react'\nexport default withLocalization(componentName)\n\n*/\n","import { useState, useEffect, useCallback } from 'react'\nimport { withLocalization } from './Localized.js'\n\nfunction HashtagChooser({ onChange, getString }) {\n const [frames, setFrames] = useState([])\n const [choosenFrame, setChoosenFrame] = useState(null)\n\n useEffect(() => {\n async function loadFrames() {\n Promise.all(\n [\n '',\n 'VoteVolt',\n 'JoinTheChange',\n 'RejoinEU',\n 'DeineWahl',\n 'JetztBistDuDran',\n 'VoltEuropa',\n 'VoltRLP',\n 'Volt21',\n 'Volt',\n 'paneuropäisch',\n 'pragmatisch',\n 'progressiv',\n 'Europa',\n\n 'democracy',\n 'EUReform',\n 'European',\n 'EuropeCares',\n 'FutureMadeInEurope',\n 'ValuesOverPower',\n 'ZukunftMadeInEurope',\n ]\n .map(async frame_filename => {\n return {\n name: frame_filename,\n src: frame_filename === '' ? '' : await import(`./hashtags/${frame_filename}.png`),\n }\n })\n )\n .then(new_frames => {\n setFrames(new_frames)\n setChoosenFrame(new_frames[0].src.default)\n })\n }\n loadFrames()\n }, [])\n\n const handleImageChoosing = useCallback(event => {\n setChoosenFrame(event.target.dataset.src)\n }, [setChoosenFrame])\n\n useEffect(() => {\n onChange(choosenFrame)\n }, [onChange, choosenFrame])\n\n return (\n
\n {\n frames.map(frame => {\n const frame_src_path = frame.src.default\n const isChoosen = choosenFrame === frame_src_path\n return \n })\n }\n
\n )\n}\n\nexport default withLocalization(HashtagChooser)\n","import { useEffect, useRef, useState, useCallback } from 'react'\n\nimport Hammer from 'hammerjs'\nimport Hamster from 'hamsterjs'\n\nfunction updateRange(imageWidth, imageHeight, imageScale, containerWidth, containerHeight) {\n\n const rangeX = Math.max(0, (imageWidth * imageScale) - containerWidth)\n const rangeY = Math.max(0, (imageHeight * imageScale) - containerHeight)\n\n const rangeMaxX = (rangeX / 2)\n const rangeMinX = 0 - rangeMaxX\n\n const rangeMaxY = (rangeY / 2)\n const rangeMinY = 0 - rangeMaxY\n\n return {\n rangeMaxX,\n rangeMinX,\n rangeMaxY,\n rangeMinY,\n }\n}\n\nfunction clamp(value, min, max) {\n return Math.min(Math.max(min, value), max)\n}\n\n\n\nlet minScale = 1;\nlet maxScale = 8;\n\n\n\nfunction Editor({ onChange, backgroundURL, backgroundRatio, frameURL, hashtagURL }) {\n const editorRef = useRef(null)\n const backgroundImageRef = useRef(null)\n\n const [hammer_got_init, set_hammer_got_init] = useState(false)\n\n const [hammertime, set_hammertime] = useState(null)\n const [hamster, set_hamster] = useState(null)\n\n const [x, set_x] = useState(0)\n const [y, set_y] = useState(0)\n const [add_x, set_add_x] = useState(0)\n const [add_y, set_add_y] = useState(0)\n const [scale, set_scale] = useState(1)\n // const [add_scale, set_add_scale] = useState(0)\n\n const [photoWidth, setPhotoWidth] = useState(300)\n const [photoHeight, setPhotoHeight] = useState(300)\n const [editorWidth, setEditorWidth] = useState(300)\n const [editorHeight, setEditorHeight] = useState(300)\n\n const [rangeMinX, set_rangeMinX] = useState(0)\n const [rangeMinY, set_rangeMinY] = useState(0)\n const [rangeMaxX, set_rangeMaxX] = useState(0)\n const [rangeMaxY, set_rangeMaxY] = useState(0)\n\n useEffect(() => {\n if (!!onChange) {\n onChange({ x, y, scale})\n }\n }, [onChange, x, y, scale])\n\n useEffect(() => {\n if (!!editorRef && !!editorRef.current) {\n const new_editorWidth = editorRef.current.offsetWidth\n const new_editorHeight = editorRef.current.offsetHeight\n setEditorHeight(new_editorHeight)\n setEditorWidth(new_editorWidth)\n\n let new_photoWidth = 1\n let new_photoHeight = 1\n if (backgroundRatio < 1) {\n new_photoWidth = 1 / backgroundRatio\n } else if (backgroundRatio > 1) {\n new_photoHeight = 1 * backgroundRatio\n }\n\n setPhotoWidth(new_photoWidth)\n setPhotoHeight(new_photoHeight)\n }\n }, [backgroundRatio])\n\n useEffect(() => {\n const {\n rangeMinX,\n rangeMinY,\n rangeMaxX,\n rangeMaxY,\n } = updateRange(photoWidth * editorWidth, photoHeight * editorHeight, scale, editorWidth, editorHeight)\n\n set_rangeMinX(rangeMinX)\n set_rangeMinY(rangeMinY)\n set_rangeMaxX(rangeMaxX)\n set_rangeMaxY(rangeMaxY)\n }, [\n photoWidth,\n photoHeight,\n editorWidth,\n editorHeight,\n scale,\n ])\n\n useEffect(() => {\n set_x(0)\n set_y(0)\n set_add_x(0)\n set_add_y(0)\n set_scale(1)\n }, [backgroundURL])\n\n const handleMove = useCallback(event => {\n const prev_x = event.target.dataset.x * 1\n const prev_y = event.target.dataset.y * 1\n\n const new_x = clamp(prev_x + event.deltaX, rangeMinX, rangeMaxX)\n const new_y = clamp(prev_y + event.deltaY, rangeMinY, rangeMaxY)\n\n if (event.isFinal) {\n set_x(new_x || 0)\n set_y(new_y || 0)\n set_add_x(0)\n set_add_y(0)\n }else{\n set_add_x(new_x - prev_x || 0)\n set_add_y(new_y - prev_y || 0)\n }\n }, [\n rangeMinX,\n rangeMinY,\n rangeMaxX,\n rangeMaxY,\n ])\n\n const handleScale = useCallback((event, delta, deltaX, deltaY) => {\n event.preventDefault()\n\n const prev_scale = event.target.dataset.scale * 1\n const new_scale = clamp(prev_scale + delta / 200, minScale, maxScale)\n set_scale(new_scale || 1)\n\n const prev_x = event.target.dataset.x * 1\n const prev_y = event.target.dataset.y * 1\n set_x(clamp(prev_x, rangeMinX, rangeMaxX) || 0)\n set_y(clamp(prev_y, rangeMinY, rangeMaxY) || 0)\n }, [\n rangeMinX,\n rangeMinY,\n rangeMaxX,\n rangeMaxY,\n ])\n\n useEffect(() => {\n if (!hammer_got_init && !!editorRef && !!editorRef.current) {\n const element = editorRef.current\n\n element.addEventListener('mousedown', event => {\n event.preventDefault()\n // event.stopPropagation()\n }, false)\n element.addEventListener(\"touchstart\", event => {\n event.preventDefault()\n // event.stopPropagation()\n }, false)\n element.addEventListener(\"touchend\", event => {\n event.preventDefault()\n // event.stopPropagation()\n }, false)\n element.addEventListener(\"touchmove\", event => {\n event.preventDefault()\n // event.stopPropagation()\n }, false)\n\n set_hammertime(new Hammer(element, {\n direction: 'DIRECTION_ALL',\n }))\n\n set_hamster(Hamster(element))\n\n set_hammer_got_init(true)\n }\n }, [editorRef, hammer_got_init])\n\n useEffect(() => {\n if (!!hammertime && !!hamster && hammer_got_init && !!editorRef && !!editorRef.current) {\n hammertime.on('pan', handleMove)\n hamster.wheel(handleScale)\n\n return function () {\n hammertime.off('pan', handleMove)\n hamster.unwheel()\n }\n }\n }, [editorRef, handleMove, handleScale, hammer_got_init, hammertime, hamster])\n\n return (\n \n \n \n \n \n )\n}\n\nexport default Editor\n","export default __webpack_public_path__ + \"static/media/VoltLogoPurple.125355f6.svg\";","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABDgAAAQ4AgMAAACRfoQcAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAJUExURVIud1Iud1Eudgy0J+8AAAADdFJOU//+/Q3dsqEAAATsSURBVHgB7dAxAQAABAAwQtI/ipMCvi3CgiMV6NChQ4cOHTp06NChQ4cOHTp06NChAx06dOjQoUOHDh06dOjQoUOHDh06dOhAhw4dOnTo0KFDhw4dOnTo0KFDhw4dOtChQ4cOHTp06NChQ4cOHTp06NChQ4cOdOjQoUOHDh06dOjQoUOHDh06dOjQoQMdOnTo0KFDhw4dOnTo0KFDhw4dOnToQIcOHTp06NChQ4cOHTp06NChQ4cOHejQoUOHDh06dOjQoUOHDh06dOjQoUMHOnTo0KFDhw4dOnTo0KFDhw4dOnTo0IEOHTp06NChQ4cOHTp06NChQ4cOHTp0oEOHDh06dOjQoUOHDh06dOjQoUOHDh3o0KFDhw4dOnTo0KFDhw4dOnTo0KFDBzp06NChQ4cOHTp06NChQ4cOHTp06NChQIcOHTp06NChQ4cOHTp06NChQ4cOHejQoUOHDh06dOjQoUOHDh06dOjQoUMHOnTo0KFDhw4dOnTo0KFDhw4dOnTo0IEOHTp06NChQ4cOHTp06NChQ4cOHTp0oEOHDh06dOjQoUOHDh06dOjQoUOHDh3o0KFDhw4dOnTo0KFDhw4dOnTo0KFDBzp06NChQ4cOHTp06NChQ4cOHTp06ECHDh06dOjQoUOHDh06dOjQoUOHDh060KFDhw4dOnTo0KFDhw4dOnTo0KFDhw506NChQ4cOHTp06NChQ4cOHTp06NChAx06dOjQoUOHDh06dOjQoUOHDh06dOhAhw4dOnTo0KFDhw4dOnTo0KFDhw4dOtChQ4cOHTp06NChQ4cOHTp06NChQ4cOBTp06NChQ4cOHTp06NChQ4cOHTp06ECHDh06dOjQoUOHDh06dOjQoUOHDh060KFDhw4dOnTo0KFDhw4dOnTo0KFDhw506NChQ4cOHTp06NChQ4cOHTp06NChAx06dOjQoUOHDh06dOjQoUOHDh06dOhAhw4dOnTo0KFDhw4dOnTo0KFDhw4dOtChQ4cOHTp06NChQ4cOHTp06NChQwc6dOjQoUOHDh06dOjQoUOHDh06dOjQgQ4dOnTo0KFDhw4dOnTo0KFDhw4dOnSgQ4cOHTp06NChQ4cOHTp06NChQ4cOHTx06NChQ4cOdOjQoUOHDh06dOjQoUOHDh06dOjQoQMdOnTo0KFDhw4dOnTo0KFDhw4dOnToQIcOHTp06NChQ4cOHTp06NChQ4cOHTrQoUOHDh06dOjQoUOHDh06dOjQoUOHDnTo0KFDhw4dOnTo0KFDhw4dOnTo0KEDHTp06NChQ4cOHTp06NChQ4cOHTp0oEOHDh06dOjQoUOHDh06dOjQoUOHDh3o0KFDhw4dOnTo0KFDhw4dOnTo0KFDBzp06NChQ4cOHTp06NChQ4cOHTp06NCBDh06dOjQoUOHDh06dOjQoUOHDh06dKBDhw4dOnTo0KFDhw4dOnTo0KFDhw4d6NChQ4cOHTp06NChQ4cOHTp06NChQ4cCHTp06NChQ4cOHTp06NChQ4cOHTp0oEOHDh06dOjQoUOHDh06dOjQoUOHDh3o0KFDhw4dOnTo0KFDhw4dOnTo0KFDBzp06NChQ4cOHTp06NChQ4cOHTp06NCBDh06dOjQoUOHDh06dOjQoUOHDh06dKBDhw4dOnTo0KFDhw4dOnTo0KFDhw4dxeoB30xd38yzCvgAAAAASUVORK5CYII=\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAALSURBVHgBY2BgAAAAAwABjPg5OgAAAABJRU5ErkJggg==\"","import React, { useEffect, useState } from 'react'\n\n// https://projectfluent.org/play/\n\n// import {LocalizationProvider,Localized} from '@fluent/react' // '@fluent/react/compat'\nimport { ReactLocalization, LocalizationProvider } from '@fluent/react'\nimport { FluentBundle, FluentResource } from '@fluent/bundle'\nimport { negotiateLanguages } from '@fluent/langneg'\n\n\nexport const locales = {\n de: 'Deutsch',\n en: 'English',\n es: 'Español',\n fr: 'Français',\n it: 'Italiano',\n nl: 'Dutch',\n pl: 'Polska',\n ru: 'Pусский',\n}\n\nconst _supportedLocales_ = Object.keys(locales)\nconst _defaultLocale_ = 'en'\n\n\nasync function fetchMessages(locale) {\n const path = await import('./locales/' + locale + '.ftl')\n\n const response = await fetch(path.default)\n const messages = await response.text()\n\n return { [locale]: new FluentResource(messages) }\n}\n\nfunction getDefaultBundles() {\n const bundle = new FluentBundle('')\n bundle.addResource(new FluentResource(''))\n return new ReactLocalization([bundle])\n}\n\nasync function createMessagesGenerator(currentLocales) {\n const fetched = await Promise.all(\n currentLocales.map(fetchMessages)\n )\n const messages = fetched.reduce(\n (obj, cur) => Object.assign(obj, cur)\n )\n\n return function* generateBundles() {\n for (const locale of currentLocales) {\n const bundle = new FluentBundle(locale)\n bundle.addResource(messages[locale])\n yield bundle\n }\n }\n}\n\nexport function AppLocalizationProvider({ userLocales, children, onLocaleChange }){\n const [bundles, setBundles] = useState(getDefaultBundles())\n\n useEffect(() => {\n async function loadBundles() {\n const currentLocales = negotiateLanguages(\n userLocales,\n _supportedLocales_,\n { defaultLocale: _defaultLocale_ }\n )\n \n if (!!onLocaleChange) {\n onLocaleChange(currentLocales)\n }\n\n const generateBundles = await createMessagesGenerator(currentLocales)\n setBundles( new ReactLocalization(generateBundles()) )\n }\n loadBundles()\n }, [userLocales, onLocaleChange])\n\n if (!bundles) {\n // Show a loader.\n return
Loading texts…
\n }\n\n return \n {children}\n \n}\n\n","import { useState, useCallback } from 'react'\nimport './App.css'\nimport { useDropzone } from 'react-dropzone'\nimport mergeImages from 'merge-images'\nimport FrameChooser from './FrameChooser.js'\nimport HashtagChooser from './HashtagChooser.js'\nimport Editor from './Editor.js'\nimport VoltLogoPurple from './VoltLogoPurple.svg'\nimport purpleBG from './purpleBG.png'\nimport empty_1x1 from './empty_1x1.png'\n\nimport 'intl-pluralrules'\nimport { AppLocalizationProvider, locales } from './l10n.js'\nimport { withLocalization, Localized } from './Localized.js'\n\n\nconst frameSize = 1080\n\nfunction getOrientation(file, callback) {\n // Source: http://stackoverflow.com/a/32490603\n // (With some modifications: I just made the code fit the style-guide.)\n const reader = new FileReader()\n\n reader.onload = function (event) {\n const view = new DataView(event.target.result)\n\n if (view.getUint16(0, false) !== 0xFFD8) {\n return callback(-2)\n }\n\n const length = view.byteLength\n let offset = 2\n\n while (offset < length) {\n const marker = view.getUint16(offset, false)\n offset += 2\n\n if (marker === 0xFFE1) {\n if (view.getUint32(offset += 2, false) !== 0x45786966) {\n return callback(-1)\n }\n const little = view.getUint16(offset += 6, false) === 0x4949\n offset += view.getUint32(offset + 4, little)\n const tags = view.getUint16(offset, little)\n offset += 2\n\n for (var i = 0; i < tags; i++) {\n if (view.getUint16(offset + (i * 12), little) === 0x0112) {\n return callback(view.getUint16(offset + (i * 12) + 8, little))\n }\n }\n } else if ((marker & 0xFF00) !== 0xFF00) {\n break\n } else {\n offset += view.getUint16(offset, false)\n }\n }\n return callback(-1)\n }\n\n reader.readAsArrayBuffer(file.slice(0, 64 * 1024))\n}\n\nfunction trigger_download(name, data){\n const a = document.createElement('a')\n document.body.appendChild(a)\n // a.target = '_blank'\n a.download = name\n a.href = data\n a.click()\n a.remove()\n}\n\nfunction App({ getString }) { \n const [frameURL, setFrameURL] = useState(null)\n const [hashtagURL, setHashtagURL] = useState(null)\n const [originalPhoto, setOriginalPhoto] = useState(null)\n const [originalPhotoRation, setOriginalPhotoRation] = useState(1)\n const [orientation, set_orientation] = useState(null)\n\n\n // const [combinedImage, set_combinedImage] = useState(null)\n\n const [width, set_width] = useState(0)\n const [height, set_height] = useState(0)\n\n const [cords, setCords] = useState({x:0, y:0, scale:1})\n\n const handleFrameURL = useCallback(newFrameURL => {\n setFrameURL(newFrameURL)\n }, [setFrameURL])\n\n const handleHashtagURL = useCallback(newHashtagURL => {\n setHashtagURL(newHashtagURL)\n }, [setHashtagURL])\n\n const handleCordsChange = useCallback(({x, y, scale}) => {\n setCords({ x, y, scale })\n }, [])\n\n const handleReadFile = useCallback(file => {\n if (!(!!file)) {\n return;\n }\n\n const reader = new FileReader()\n reader.onload = reader_event => {\n const img = new Image()\n img.onload = function () {\n let width, height;\n if (img.width < img.height) {\n height = (img.height / img.width) * frameSize\n width = frameSize\n } else {\n height = frameSize\n width = (img.width / img.height) * frameSize\n }\n\n getOrientation(file, new_orientation => {\n let original_ration = 1\n // use the correct image orientation\n switch (new_orientation) {\n // Source: https://stackoverflow.com/a/30242954/2387277\n // Source: https://stackoverflow.com/questions/19463126/how-to-draw-photo-with-correct-orientation-in-canvas-after-capture-photo-by-usin\n case 2:\n // horizontal flip\n original_ration = height / width\n break\n case 3:\n // 180° rotate left\n original_ration = height / width\n break\n case 4:\n // vertical flip\n original_ration = height / width\n break\n case 5:\n // vertical flip + 90 rotate right\n original_ration = width / height\n break\n case 6:\n // 90° rotate right\n original_ration = width / height\n break\n case 7:\n // horizontal flip + 90 rotate right\n original_ration = width / height\n break\n case 8:\n // 90° rotate left\n original_ration = width / height\n break\n default:\n original_ration = height / width\n break\n }\n\n set_width(width)\n set_height(height)\n setOriginalPhoto(reader_event.target.result)\n set_orientation(new_orientation)\n setOriginalPhotoRation(original_ration)\n })\n }\n img.src = reader_event.target.result\n }\n reader.readAsDataURL(file)\n }, [])\n\n const handleImage = useCallback(files_event => {\n handleReadFile(files_event.target.files[0])\n }, [handleReadFile])\n\n const onDrop = useCallback(acceptedFiles => {\n handleReadFile(acceptedFiles[0])\n }, [handleReadFile])\n\n const handleDownload = useCallback(() => {\n const img = new Image()\n img.onload = function () {\n const canvas = document.createElement('canvas')\n canvas.width = frameSize\n canvas.height = frameSize\n\n const ctx = canvas.getContext('2d', { alpha: true })\n\n // use the correct image orientation\n switch (orientation) {\n // Source: https://stackoverflow.com/a/30242954/2387277\n // Source: https://stackoverflow.com/questions/19463126/how-to-draw-photo-with-correct-orientation-in-canvas-after-capture-photo-by-usin\n case 2:\n // horizontal flip\n ctx.translate(canvas.width, 0)\n ctx.scale(-1, 1)\n break\n case 3:\n // 180° rotate left\n ctx.translate(canvas.width, canvas.height)\n ctx.rotate(Math.PI)\n break\n case 4:\n // vertical flip\n ctx.translate(0, canvas.height)\n ctx.scale(1, -1)\n break\n case 5:\n // vertical flip + 90 rotate right\n ctx.rotate(0.5 * Math.PI)\n ctx.scale(1, -1)\n break\n case 6:\n // 90° rotate right\n ctx.rotate(0.5 * Math.PI)\n ctx.translate(0, -canvas.height)\n break\n case 7:\n // horizontal flip + 90 rotate right\n ctx.rotate(0.5 * Math.PI)\n ctx.translate(canvas.width, -canvas.height)\n ctx.scale(-1, 1)\n break\n case 8:\n // 90° rotate left\n ctx.rotate(-0.5 * Math.PI)\n ctx.translate(-canvas.width, 0)\n break\n default:\n break\n }\n\n\n const width_scaled = width * cords.scale\n const height_scaled = height * cords.scale\n\n ctx.drawImage(\n img,\n cords.x * 3.5 + (frameSize - width_scaled) * 0.5,\n cords.y * 3.5 + (frameSize - height_scaled) * 0.5,\n width_scaled,\n height_scaled,\n )\n // ctx.drawImage(\n // img,\n // ((frameSize - width_scaled) * 0.5),\n // ((frameSize - height_scaled) * 0.5),\n // width_scaled,\n // height_scaled,\n // )\n\n const pngUrl = canvas.toDataURL()\n\n mergeImages([\n purpleBG,\n ...(pngUrl ? [pngUrl] : []),\n ...(frameURL ? [frameURL] : []),\n ...(hashtagURL ? [hashtagURL] : []),\n ])\n .then(b64 => {\n // set_combinedImage(b64)\n trigger_download('volt-profile-picture.png', b64)\n })\n\n }\n img.src = originalPhoto\n }, [\n originalPhoto,\n cords.x,\n cords.y,\n cords.scale,\n orientation,\n frameURL,\n hashtagURL,\n height,\n width,\n ])\n\n const { isDragActive, getRootProps } = useDropzone({\n onDrop,\n accept: 'image/*',\n maxFiles: 1,\n noKeyboard: true,\n })\n\n\n return (\n
\n {getString('alt_volt_logo')}\n

\n\n
\n \n
\n\n

\n

\n\n \n\n {true || !!originalPhoto ? (<>\n

\n \n

\n \n ) : null}\n\n {!!originalPhoto && !!frameURL && !!handleHashtagURL ? (<>\n

\n {/*\n

Edit your Photo:

\n

Your can reposition the image and scale it. Use pinch-to-zoom or scroll to scale.

\n */}\n\n \n\n \n ) : null}\n\n \n
\n )\n}\nconst AppLocalized = withLocalization(App)\n\n\nfunction AppWrapper() {\n const [userLocales, setUserLocales] = useState(navigator.languages)\n const [currentLocale, setCurrentLocale] = useState(null)\n\n const handleLanguageChange = useCallback(event => {\n setUserLocales([event.target.dataset.locale])\n }, [setUserLocales])\n\n const handleCurrentLocalesChange = useCallback(currentLocales => {\n setCurrentLocale(currentLocales.length > 0 ? currentLocales[0] : '')\n }, [setCurrentLocale])\n\n return \n <>\n \n\n
\n {\n Object.entries(locales)\n .map(([locale, name]) => {\n return \n {name}\n \n })\n }\n
\n \n \n}\nexport default withLocalization(AppWrapper)\n\n","const reportWebVitals = onPerfEntry => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry)\n getFID(onPerfEntry)\n getFCP(onPerfEntry)\n getLCP(onPerfEntry)\n getTTFB(onPerfEntry)\n })\n }\n}\n\nexport default reportWebVitals\n","import React from 'react'\nimport ReactDOM from 'react-dom'\nimport App from './App'\nimport reportWebVitals from './reportWebVitals'\n\nReactDOM.render(\n \n \n ,\n document.getElementById('root')\n)\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals()\n"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/runtime-main.342895cd.js b/static/js/runtime-main.342895cd.js deleted file mode 100644 index 1453415..0000000 --- a/static/js/runtime-main.342895cd.js +++ /dev/null @@ -1,2 +0,0 @@ -!function(e){function r(r){for(var n,c,u=r[0],i=r[1],f=r[2],l=0,p=[];l5EMju5d}e7=pBT7AXRDzP3b{;GX$g)R73~?sjS3vtx`6wQtaH&;S5{8@f6g zCIA4X;-5-=mDKVz{s$9DTzjVT7!Cl?GXAM#fQ&3QQX?7ML|YwDHO#d}dZ2VsGf)En z& zeOkS^5%b58itVaF_b(?<|I*Y3&$>c}X)_%fT3MlKb%>~kTwTowA0c0iZ`30FWu;f> zdvyPL`P9Dh?&Mk^MiJ9`JgXcq9I7gTTAoveZ=b@`@y8D^JN;55&Hk3Z1pX5EOW-eo zzXbjg_)Fj~fxiU)68KBtFMS)m{i9v>-NipbN$o2cN%*~dOF+0vjwJFJ|6jh? z*(VJEXw84C#t$zW66KTwj)xGoH(40ie&D1YVdoIL{Rj~rt-jW7D<^P;I z{xO)6;PW*$v+V6Xnxa=BE+TdzD^){}%cfXuhYY!L2YWR~wXoR=au(LPyJ0t7!ik2v z%)fNr*|y7F0vjb28z})|B+w`@CA0rTWqa)&x@g`F=WpTM5!mCG?7~g#@A##a@)%Y3JGYbd0Tha>Sx&=tVT6 z?r<&T80!7VglEl4K&yD9K6A=dphK&`@93{R30u?bxriC58M0+zc-FldYZ|aUo#l18 zzTCUgBPVuUjd$^6?ZWP9op_tlfoaMfmrdYBq?Dg$$eluOjCw(n^L(fRXiL&)g)~CNM{g-tq<1-@PbNfgM;hU=(33;Z2Xu)j}8JEJ9SxlZYw(Ex;yRF-bxS8&xbzQ*@gO)TLLjlmbD7VGX?Qj^;7I25ANWs;goRk6qcpc z%Atb_j3&ZKTifGPdDb>sk)Adx{Ro^@Al{a7FspEppz^6s;o?;^b}JZa1l-1S z#Sdo(OJDBbnP;+U>%BG$);1EYoBLHtgX z!B|5D3zYAq)opFG4x1f$!oi;(U-$r;A=GBzRm#AkOs&oDb6kDf1^e8j{1( znnV$Y#YQr!EBMRf(cYDAIn6I@_{`u^nHV9e1eNBx-5{_aag$1WzxhNv2|3o|ycg!@ zlKUDaG`H~nJfQDbE&Lej)F`ofWE#_{VlKzN_^w-yi2HQuo7a4bd2qI{_;#V6;+T%> z+4c3rExbn-T^jEZn5#~$GhVJbT|o;Ucrn+zasxhO%~tySq2#Q~+R&ytu0iBkeSkkO*Gm#n}M`XwyTf8w!rphAHYKK8Z)U>a`?H z<~UZj*rIfz+nBnLH=XeiahF#}ud}oG9p;%aABT|5-y6D^*f3BlrO53brf50!_(^RB z-t2FfH`(;~j0YURcs;J%kJd1MIQp_#er`DDYuBh+b$TG~1-<#eRQ8*<#H-gOiNDiv zAah3xJ!|EH0ir@ZB@s?huY6 zm*o7KxJ33+-g8BSoY!>U5s&tj>t$QyisWTJDkq`SNh{*064$X_qj5WFf%xI27vsk> zpPlCdi`jH1WNv%B$FHnBY$>XYSjgA_lF^OaCz%D5F>XK}{Lju1?a96Rtn#|y71s2@CZvr>HRwpp}pk%7!%O+Yvy%CY+G zYJCYg>0bQyLY2+tU&;RK+d4QT9oSg2LsEFj_*|Dk6W(4R3Drz`NYIA3rm5&;WT~de z-FPaLsa-YmyWf+ESI{FQSu4qv#e&(ln<<4fr7lwAYV?|b0hIHJia@bcoHp5$A^|FZ z%24*1&3AWxf9SR8ln2C#O8;wT#}<6ca#bRv~FN%phyKko{T%O0A$tt}~do(ijezU4g&V&crfbez2H z7+k5lj0HJusV>tNg@(n%wu58B+Nvx$j%q>ESny5lhn=+&Rqje0_kbp`4JW5)-$#o4 zJjlzbZmf19_ZM}}R^9=Am}AI*Bgc%17-I&W)3MgJtkpIFESeU}119 z|FiwA7_9tOLEwX;0#jLcgWEl5Z{l}DdBFr-R8#bVpM&B=!xYKxp6QIR++&%4cYFFW z_5*zN1kpC}=qtla;II9k38d3xi#8Adon)1hRKn^H(8%xB6^wdORxItr@Ov&C#@%?m ze|PDpblvIm?TXOzZuHpWB!#Pgj2our!#PSJH8)`Nr>wd8W3j<73Lq=VDzRw105^2I zF@gQndM28^tAM=FKm^WXXI9p+WdGLWVYgQtL4{_Ex;rV zuJ1)c%HR|8*IcDvhWIFhnsb{)+?3}PVcWfmiM7H5v!%Z*ysiaYcC8@!tvnDGJtgU< zr@&H>jFdC1q`lD;zY_CT8zs4PQ};!oqvLB9&klsPdcQ6cIgQ zDBrDTs!xsDENmJvtS6aiYBPand&rc)?wt1r6R ze7BVtMV%Vre=O~?Rg0_Lmt6L^-RmD-5rsMla z5`}%_e8OzgORux0hVg2z#*hr(zN~%|naBEU+jB;_Df#TK;Vw-=Y|*1!{$Uc+w`Ld% zP#G^@mGwc$--HhnYlU2Fz9@PEOd|n|6PyBbkkO|y;*%k*$CCm{5<~Yj#}vVzOyS~V z*s98~maP2!#JgU?>U9me_w@3Mza{452M?!~XM9GKui2wW2maoVNl1aSSrp?#eYk^E z;dO#tW3X8Uzg|EzFH z>6$AJ*IMYU#DREQEc3CVE-Qo?rT%C{;wwxvYUEBeVz{xWJks~`jFOpy)_^-Vte6-Y zyR%Y>^orrPga8ly(xhfd-cUj1cADGOu6QXZ0{#!Qe*4aJ@HWd3V@>xtmYdg_&V z5v_pkdNBvmxTJvM$;|+RJC}PG6?U&$iu^FSMEH_ph;0*M6_jUTt5t73_r+!+}dWZxyN%5N-$;tpeZ?f-x|sTUcF^Snfu0!F>I+K_a)v-Wo1|0eNON z>|c^N_C&{jyse_*;_>I}Q_$T1{^n>?FjbPf_XWvoPS`wYyIKekW%LDfNTo>$L%*kT z=6tyO!QIM)P|$s0hs;~Bx8(~^{Q2%F%zKmM`aH)oev+*=hB$8j$ebFZ=VsgRlZvR4 zwz(1!6L5j+Z_ZSXPIlw+xlv>7GLZcf7Dc0b!(60q!$%mm%f;CTecQ5YK-{khZMb89YkR^N}!%{`lLRJJ;vhOyLn=~%HZW*dHc zoZ$Eg27xm$KEy(X?$3?h!Ro~4H|kmX=eviLbtb%qx-G+GJ@i$ad63hjKnW&CCxq=< zR*v#ODPDtK%4aj~?-OmL7jEWyFi30#t$DbKlzbDnp|FamlKht<@5frCeihhM1x?+~hG3Fi7j}2>~(Hk3URCG^`xElpH-@J?R<%K=c*0)kT-X`?O zBsvsTF||tV!R}48YSJiu%A`RBCHj$?2dJm=s zqNm*hdG&m1#RU(%yj>L+8omDSvYRcu`2MH&t{~NvH>?Iw8STxwPt=!ZTFALeV++U4q47u~#an@{S z+{OO0zKc*XNTwA}EnYU~GrN?a${^IL01Xor~5reI4;xYK>4(UI6R zt&P$uV{E_Yq@hE3n?CeHxd$_o)!x?xsClOaKd|WW$QOE=C4PB?N8}c+yU6st#vdC# z|JhvEW8rC`|JkyI&&zY{G~YG6c=AnaFs9q@gKdFgK99@TZo*B^V|ail!8z6GYw{jD zLl`(8>?u=>vt%qvQIUY&(Gp}PT(k$Ip?-qOu-Yna)g@HMa?*KDRNaw~@S zej5u53%CYYy!;^mr-35bH=PREamPBfyySJ`1=TD!A5He1Of z{0${r4L0c90cOPkk5YHe1w5oUxm&Jho%Pj0cr8R6n((f6kF|O4?V5-i&sZnX=BnPP{Mzi)aqO}6VNl{N zj?|T>l=pU-p-s?DEOjlkFvpCx6RFT=$Ze#2vG63FDsSVD^%{}UCppP*+@0w$Mg@G! z4I)c}gQAg5474Qor6NtOpe12^LNMNTn4S$-7$tU09P^sGr`(30EO$aHh?`*I8Vw0T zz=BWeSp^GOS8w&es`+0-IO?OQ2j(AS*7s%+&yvoic{?+tEOo{)4e(|8!}s3$F>C&t z3oCYPJU{RsMVZuwi!kvnPuTy#uJw~ikQdukUlVpmCKWY@ZA=76FH(EOD_GLy+jBd) zG6&QIfaG(Q^dUW;b2*wcPHMui#dY8^PT6t2&9OIatp(Hxy`>iajQZrhbrPp1gDUk4 z9uun#W#91l=Wca1iaAZw0(42U7L8R7_7BL#T89Mvp=VRZ$jp&omT$XtcLpiq zb(QSq!&K{CwC$>=g0VwxgFbYt2mcf}iivj?z~al49y5gZx~5siI2T5j-c3+#hCfx) z9y1v?$lZE{1amd-0jMIL|1p*megTc!+Z&{uNYmZaUK?GtK0%sgLBPGA?{f0MAhba< z)pZ+aw;r%h2?-4!aTC~8%?Z7jOS~#U+e2M#3wZ`rh6=5xF!_Z_(Z>XUl$+j`ZtoK+ z<)=5m2k#&JJlTLol7<6#F_6*|6>bB%xH~Id2YahXYNcMY2Zk@@XqQ(X|BjlMetaliUZEfRy`ynun=6{{r)f;ARqobj3MU(@RDQZPqgEt4Q0o( z+KQU*vuOb#x3T(^)JdVZWRe`D+J{5mVPY)lo)w{hNJg1chXgLZ~ zSiV?ZS@G#_zddZpLb3|s{F2$l*niV{YU9$Z{Txn5=u=~}#E|t%%9Ia~OM&>^aB*PB z>BXA_&E3xujk-dS8yc?9p6z&U!RM=jm{LaT?!Ii9{OGGV{Jn{kPMP`0BhK^&SH!er z@*d`$rA(O9M$V4I3`rXeZLq6CGif;x_+y3zqBjs`dJwdV_Tu>{GK_mYgVlQXn7d#v zBj(ah;YLA=E%H( literal 0 HcmV?d00001