diff --git a/build/asset-manifest.json b/build/asset-manifest.json index b728985..ce399a9 100644 --- a/build/asset-manifest.json +++ b/build/asset-manifest.json @@ -1,150 +1,150 @@ { "files": { "main.css": "/static/css/main.a663b81a.css", - "main.js": "/static/js/main.0e714900.js", - "static/js/1927.1aafad7e.chunk.js": "/static/js/1927.1aafad7e.chunk.js", - "static/js/7590.4b3423e7.chunk.js": "/static/js/7590.4b3423e7.chunk.js", - "static/js/6725.bdc61d81.chunk.js": "/static/js/6725.bdc61d81.chunk.js", - "static/js/8122.97d1d1b0.chunk.js": "/static/js/8122.97d1d1b0.chunk.js", - "static/js/3764.6ddc5f45.chunk.js": "/static/js/3764.6ddc5f45.chunk.js", - "static/js/1070.0aee10dd.chunk.js": "/static/js/1070.0aee10dd.chunk.js", - "static/js/1604.d07d2b04.chunk.js": "/static/js/1604.d07d2b04.chunk.js", - "static/js/4570.a64bdfd2.chunk.js": "/static/js/4570.a64bdfd2.chunk.js", - "static/js/2314.42558de2.chunk.js": "/static/js/2314.42558de2.chunk.js", - "static/js/2330.54c5fbbc.chunk.js": "/static/js/2330.54c5fbbc.chunk.js", - "static/js/6646.415f24f3.chunk.js": "/static/js/6646.415f24f3.chunk.js", - "static/js/599.81184ef0.chunk.js": "/static/js/599.81184ef0.chunk.js", - "static/js/175.5150db6f.chunk.js": "/static/js/175.5150db6f.chunk.js", - "static/js/5817.8a47376a.chunk.js": "/static/js/5817.8a47376a.chunk.js", - "static/js/2427.f0e3fc33.chunk.js": "/static/js/2427.f0e3fc33.chunk.js", - "static/js/4708.c563c609.chunk.js": "/static/js/4708.c563c609.chunk.js", - "static/js/615.2be174b1.chunk.js": "/static/js/615.2be174b1.chunk.js", - "static/js/464.e298dba6.chunk.js": "/static/js/464.e298dba6.chunk.js", - "static/js/3739.8769e1b2.chunk.js": "/static/js/3739.8769e1b2.chunk.js", - "static/js/9295.49a33287.chunk.js": "/static/js/9295.49a33287.chunk.js", - "static/js/9482.431fa633.chunk.js": "/static/js/9482.431fa633.chunk.js", - "static/js/6341.41a81343.chunk.js": "/static/js/6341.41a81343.chunk.js", - "static/js/2975.33357bb7.chunk.js": "/static/js/2975.33357bb7.chunk.js", - "static/js/2478.f009a6d8.chunk.js": "/static/js/2478.f009a6d8.chunk.js", - "static/js/3579.3cc916c8.chunk.js": "/static/js/3579.3cc916c8.chunk.js", - "static/js/719.32d51622.chunk.js": "/static/js/719.32d51622.chunk.js", - "static/js/9558.b34ef5a5.chunk.js": "/static/js/9558.b34ef5a5.chunk.js", - "static/js/7055.17c02ac8.chunk.js": "/static/js/7055.17c02ac8.chunk.js", - "static/js/7454.56be90f1.chunk.js": "/static/js/7454.56be90f1.chunk.js", - "static/js/2279.a76681f1.chunk.js": "/static/js/2279.a76681f1.chunk.js", - "static/js/4304.31723190.chunk.js": "/static/js/4304.31723190.chunk.js", - "static/js/6198.6f00554c.chunk.js": "/static/js/6198.6f00554c.chunk.js", - "static/js/5080.de177e48.chunk.js": "/static/js/5080.de177e48.chunk.js", - "static/js/3275.69eb47c2.chunk.js": "/static/js/3275.69eb47c2.chunk.js", - "static/js/7788.6c34384d.chunk.js": "/static/js/7788.6c34384d.chunk.js", - "static/js/9628.3196b8a7.chunk.js": "/static/js/9628.3196b8a7.chunk.js", - "static/js/6964.115a673c.chunk.js": "/static/js/6964.115a673c.chunk.js", - "static/js/2323.6c5df451.chunk.js": "/static/js/2323.6c5df451.chunk.js", - "static/js/656.93f10b71.chunk.js": "/static/js/656.93f10b71.chunk.js", - "static/js/39.cbc755af.chunk.js": "/static/js/39.cbc755af.chunk.js", - "static/js/6864.cd68bd11.chunk.js": "/static/js/6864.cd68bd11.chunk.js", - "static/js/1638.9875af47.chunk.js": "/static/js/1638.9875af47.chunk.js", - "static/js/463.c6d78824.chunk.js": "/static/js/463.c6d78824.chunk.js", - "static/js/4843.3972fd3d.chunk.js": "/static/js/4843.3972fd3d.chunk.js", - "static/js/4752.99494173.chunk.js": "/static/js/4752.99494173.chunk.js", - "static/js/7688.ea23717e.chunk.js": "/static/js/7688.ea23717e.chunk.js", - "static/js/8064.8fa43fd6.chunk.js": "/static/js/8064.8fa43fd6.chunk.js", - "static/js/8438.7b78bdac.chunk.js": "/static/js/8438.7b78bdac.chunk.js", - "static/js/5474.5b204204.chunk.js": "/static/js/5474.5b204204.chunk.js", - "static/js/7604.2f4330cf.chunk.js": "/static/js/7604.2f4330cf.chunk.js", - "static/js/1215.1041039b.chunk.js": "/static/js/1215.1041039b.chunk.js", - "static/js/8427.824f2fda.chunk.js": "/static/js/8427.824f2fda.chunk.js", - "static/js/231.b382507e.chunk.js": "/static/js/231.b382507e.chunk.js", - "static/js/5376.fa8ed22b.chunk.js": "/static/js/5376.fa8ed22b.chunk.js", - "static/js/2093.a9a49926.chunk.js": "/static/js/2093.a9a49926.chunk.js", - "static/js/4426.d2c486fd.chunk.js": "/static/js/4426.d2c486fd.chunk.js", - "static/js/1928.ac71fd2d.chunk.js": "/static/js/1928.ac71fd2d.chunk.js", - "static/js/308.7282d055.chunk.js": "/static/js/308.7282d055.chunk.js", - "static/js/5536.680c7cf3.chunk.js": "/static/js/5536.680c7cf3.chunk.js", - "static/js/6118.2c336db0.chunk.js": "/static/js/6118.2c336db0.chunk.js", - "static/js/5033.c7631518.chunk.js": "/static/js/5033.c7631518.chunk.js", - "static/js/8731.6a9fba67.chunk.js": "/static/js/8731.6a9fba67.chunk.js", - "static/js/4927.760ce2c8.chunk.js": "/static/js/4927.760ce2c8.chunk.js", - "static/js/8800.33fac856.chunk.js": "/static/js/8800.33fac856.chunk.js", - "static/js/9644.e55df061.chunk.js": "/static/js/9644.e55df061.chunk.js", - "static/js/4265.8b2e34fd.chunk.js": "/static/js/4265.8b2e34fd.chunk.js", - "static/js/4494.5869f822.chunk.js": "/static/js/4494.5869f822.chunk.js", - "static/js/4290.b8c71029.chunk.js": "/static/js/4290.b8c71029.chunk.js", + "main.js": "/static/js/main.ecb84410.js", + "static/js/1927.8bd9ca2b.chunk.js": "/static/js/1927.8bd9ca2b.chunk.js", + "static/js/7590.4eeecba0.chunk.js": "/static/js/7590.4eeecba0.chunk.js", + "static/js/6725.7c418f57.chunk.js": "/static/js/6725.7c418f57.chunk.js", + "static/js/8122.6983dde7.chunk.js": "/static/js/8122.6983dde7.chunk.js", + "static/js/3764.fc97e668.chunk.js": "/static/js/3764.fc97e668.chunk.js", + "static/js/1070.5e4a59ab.chunk.js": "/static/js/1070.5e4a59ab.chunk.js", + "static/js/1604.6f1815c9.chunk.js": "/static/js/1604.6f1815c9.chunk.js", + "static/js/4570.16f915eb.chunk.js": "/static/js/4570.16f915eb.chunk.js", + "static/js/2314.0aa22928.chunk.js": "/static/js/2314.0aa22928.chunk.js", + "static/js/2330.8fdab7e7.chunk.js": "/static/js/2330.8fdab7e7.chunk.js", + "static/js/6646.b4b0212f.chunk.js": "/static/js/6646.b4b0212f.chunk.js", + "static/js/599.faa8b33a.chunk.js": "/static/js/599.faa8b33a.chunk.js", + "static/js/175.b6dc1cac.chunk.js": "/static/js/175.b6dc1cac.chunk.js", + "static/js/5817.d973a9f4.chunk.js": "/static/js/5817.d973a9f4.chunk.js", + "static/js/2427.93a69e62.chunk.js": "/static/js/2427.93a69e62.chunk.js", + "static/js/4708.dde47157.chunk.js": "/static/js/4708.dde47157.chunk.js", + "static/js/615.f00bf140.chunk.js": "/static/js/615.f00bf140.chunk.js", + "static/js/464.bedb1502.chunk.js": "/static/js/464.bedb1502.chunk.js", + "static/js/3739.2b7c1166.chunk.js": "/static/js/3739.2b7c1166.chunk.js", + "static/js/9295.59fc6a29.chunk.js": "/static/js/9295.59fc6a29.chunk.js", + "static/js/9482.94f21712.chunk.js": "/static/js/9482.94f21712.chunk.js", + "static/js/6341.cf5a72b3.chunk.js": "/static/js/6341.cf5a72b3.chunk.js", + "static/js/2975.77712328.chunk.js": "/static/js/2975.77712328.chunk.js", + "static/js/2478.ab5d0879.chunk.js": "/static/js/2478.ab5d0879.chunk.js", + "static/js/3579.a968d629.chunk.js": "/static/js/3579.a968d629.chunk.js", + "static/js/719.3269e2aa.chunk.js": "/static/js/719.3269e2aa.chunk.js", + "static/js/9558.502f5044.chunk.js": "/static/js/9558.502f5044.chunk.js", + "static/js/7055.77becd36.chunk.js": "/static/js/7055.77becd36.chunk.js", + "static/js/7454.27889ff5.chunk.js": "/static/js/7454.27889ff5.chunk.js", + "static/js/2279.b993e63d.chunk.js": "/static/js/2279.b993e63d.chunk.js", + "static/js/4304.f69c13ee.chunk.js": "/static/js/4304.f69c13ee.chunk.js", + "static/js/6198.f2a70477.chunk.js": "/static/js/6198.f2a70477.chunk.js", + "static/js/5080.72505acd.chunk.js": "/static/js/5080.72505acd.chunk.js", + "static/js/3275.be3aeb0a.chunk.js": "/static/js/3275.be3aeb0a.chunk.js", + "static/js/7788.4d8192f4.chunk.js": "/static/js/7788.4d8192f4.chunk.js", + "static/js/9628.57081f00.chunk.js": "/static/js/9628.57081f00.chunk.js", + "static/js/6964.c07f1e98.chunk.js": "/static/js/6964.c07f1e98.chunk.js", + "static/js/2323.2da41445.chunk.js": "/static/js/2323.2da41445.chunk.js", + "static/js/656.c0e04b11.chunk.js": "/static/js/656.c0e04b11.chunk.js", + "static/js/39.1b800acb.chunk.js": "/static/js/39.1b800acb.chunk.js", + "static/js/6864.6844ce13.chunk.js": "/static/js/6864.6844ce13.chunk.js", + "static/js/1638.ddae288b.chunk.js": "/static/js/1638.ddae288b.chunk.js", + "static/js/463.fb1557de.chunk.js": "/static/js/463.fb1557de.chunk.js", + "static/js/4843.7d91a860.chunk.js": "/static/js/4843.7d91a860.chunk.js", + "static/js/4752.ad8dc7a8.chunk.js": "/static/js/4752.ad8dc7a8.chunk.js", + "static/js/7688.26060ca2.chunk.js": "/static/js/7688.26060ca2.chunk.js", + "static/js/8064.7c6b3bcf.chunk.js": "/static/js/8064.7c6b3bcf.chunk.js", + "static/js/8438.a2529207.chunk.js": "/static/js/8438.a2529207.chunk.js", + "static/js/5474.dcb38a6d.chunk.js": "/static/js/5474.dcb38a6d.chunk.js", + "static/js/7604.b53761a5.chunk.js": "/static/js/7604.b53761a5.chunk.js", + "static/js/1215.db8e003b.chunk.js": "/static/js/1215.db8e003b.chunk.js", + "static/js/8427.bf1104b0.chunk.js": "/static/js/8427.bf1104b0.chunk.js", + "static/js/231.712da533.chunk.js": "/static/js/231.712da533.chunk.js", + "static/js/5376.03154f8b.chunk.js": "/static/js/5376.03154f8b.chunk.js", + "static/js/2093.5c3381b1.chunk.js": "/static/js/2093.5c3381b1.chunk.js", + "static/js/4426.ece16b41.chunk.js": "/static/js/4426.ece16b41.chunk.js", + "static/js/1928.0a927d9e.chunk.js": "/static/js/1928.0a927d9e.chunk.js", + "static/js/308.056e0177.chunk.js": "/static/js/308.056e0177.chunk.js", + "static/js/5536.609d0afe.chunk.js": "/static/js/5536.609d0afe.chunk.js", + "static/js/6118.277893f5.chunk.js": "/static/js/6118.277893f5.chunk.js", + "static/js/5033.2af27af0.chunk.js": "/static/js/5033.2af27af0.chunk.js", + "static/js/8731.c5d09571.chunk.js": "/static/js/8731.c5d09571.chunk.js", + "static/js/4927.e27766a2.chunk.js": "/static/js/4927.e27766a2.chunk.js", + "static/js/8800.9922c692.chunk.js": "/static/js/8800.9922c692.chunk.js", + "static/js/9644.35c7103c.chunk.js": "/static/js/9644.35c7103c.chunk.js", + "static/js/4265.1a87f8a3.chunk.js": "/static/js/4265.1a87f8a3.chunk.js", + "static/js/4494.3fc0f687.chunk.js": "/static/js/4494.3fc0f687.chunk.js", + "static/js/4290.d4ff0c15.chunk.js": "/static/js/4290.d4ff0c15.chunk.js", "static/media/defaultProfileImage.png": "/static/media/defaultProfileImage.6c9586e38b84a1d6a118.png", "index.html": "/index.html", "main.a663b81a.css.map": "/static/css/main.a663b81a.css.map", - "main.0e714900.js.map": "/static/js/main.0e714900.js.map", - "1927.1aafad7e.chunk.js.map": "/static/js/1927.1aafad7e.chunk.js.map", - "7590.4b3423e7.chunk.js.map": "/static/js/7590.4b3423e7.chunk.js.map", - "6725.bdc61d81.chunk.js.map": "/static/js/6725.bdc61d81.chunk.js.map", - "8122.97d1d1b0.chunk.js.map": "/static/js/8122.97d1d1b0.chunk.js.map", - "3764.6ddc5f45.chunk.js.map": "/static/js/3764.6ddc5f45.chunk.js.map", - "1070.0aee10dd.chunk.js.map": "/static/js/1070.0aee10dd.chunk.js.map", - "1604.d07d2b04.chunk.js.map": "/static/js/1604.d07d2b04.chunk.js.map", - "4570.a64bdfd2.chunk.js.map": "/static/js/4570.a64bdfd2.chunk.js.map", - "2314.42558de2.chunk.js.map": "/static/js/2314.42558de2.chunk.js.map", - "2330.54c5fbbc.chunk.js.map": "/static/js/2330.54c5fbbc.chunk.js.map", - "6646.415f24f3.chunk.js.map": "/static/js/6646.415f24f3.chunk.js.map", - "599.81184ef0.chunk.js.map": "/static/js/599.81184ef0.chunk.js.map", - "175.5150db6f.chunk.js.map": "/static/js/175.5150db6f.chunk.js.map", - "5817.8a47376a.chunk.js.map": "/static/js/5817.8a47376a.chunk.js.map", - "2427.f0e3fc33.chunk.js.map": "/static/js/2427.f0e3fc33.chunk.js.map", - "4708.c563c609.chunk.js.map": "/static/js/4708.c563c609.chunk.js.map", - "615.2be174b1.chunk.js.map": "/static/js/615.2be174b1.chunk.js.map", - "464.e298dba6.chunk.js.map": "/static/js/464.e298dba6.chunk.js.map", - "3739.8769e1b2.chunk.js.map": "/static/js/3739.8769e1b2.chunk.js.map", - "9295.49a33287.chunk.js.map": "/static/js/9295.49a33287.chunk.js.map", - "9482.431fa633.chunk.js.map": "/static/js/9482.431fa633.chunk.js.map", - "6341.41a81343.chunk.js.map": "/static/js/6341.41a81343.chunk.js.map", - "2975.33357bb7.chunk.js.map": "/static/js/2975.33357bb7.chunk.js.map", - "2478.f009a6d8.chunk.js.map": "/static/js/2478.f009a6d8.chunk.js.map", - "3579.3cc916c8.chunk.js.map": "/static/js/3579.3cc916c8.chunk.js.map", - "719.32d51622.chunk.js.map": "/static/js/719.32d51622.chunk.js.map", - "9558.b34ef5a5.chunk.js.map": "/static/js/9558.b34ef5a5.chunk.js.map", - "7055.17c02ac8.chunk.js.map": "/static/js/7055.17c02ac8.chunk.js.map", - "7454.56be90f1.chunk.js.map": "/static/js/7454.56be90f1.chunk.js.map", - "2279.a76681f1.chunk.js.map": "/static/js/2279.a76681f1.chunk.js.map", - "4304.31723190.chunk.js.map": "/static/js/4304.31723190.chunk.js.map", - "6198.6f00554c.chunk.js.map": "/static/js/6198.6f00554c.chunk.js.map", - "5080.de177e48.chunk.js.map": "/static/js/5080.de177e48.chunk.js.map", - "3275.69eb47c2.chunk.js.map": "/static/js/3275.69eb47c2.chunk.js.map", - "7788.6c34384d.chunk.js.map": "/static/js/7788.6c34384d.chunk.js.map", - "9628.3196b8a7.chunk.js.map": "/static/js/9628.3196b8a7.chunk.js.map", - "6964.115a673c.chunk.js.map": "/static/js/6964.115a673c.chunk.js.map", - "2323.6c5df451.chunk.js.map": "/static/js/2323.6c5df451.chunk.js.map", - "656.93f10b71.chunk.js.map": "/static/js/656.93f10b71.chunk.js.map", - "39.cbc755af.chunk.js.map": "/static/js/39.cbc755af.chunk.js.map", - "6864.cd68bd11.chunk.js.map": "/static/js/6864.cd68bd11.chunk.js.map", - "1638.9875af47.chunk.js.map": "/static/js/1638.9875af47.chunk.js.map", - "463.c6d78824.chunk.js.map": "/static/js/463.c6d78824.chunk.js.map", - "4843.3972fd3d.chunk.js.map": "/static/js/4843.3972fd3d.chunk.js.map", - "4752.99494173.chunk.js.map": "/static/js/4752.99494173.chunk.js.map", - "7688.ea23717e.chunk.js.map": "/static/js/7688.ea23717e.chunk.js.map", - "8064.8fa43fd6.chunk.js.map": "/static/js/8064.8fa43fd6.chunk.js.map", - "8438.7b78bdac.chunk.js.map": "/static/js/8438.7b78bdac.chunk.js.map", - "5474.5b204204.chunk.js.map": "/static/js/5474.5b204204.chunk.js.map", - "7604.2f4330cf.chunk.js.map": "/static/js/7604.2f4330cf.chunk.js.map", - "1215.1041039b.chunk.js.map": "/static/js/1215.1041039b.chunk.js.map", - "8427.824f2fda.chunk.js.map": "/static/js/8427.824f2fda.chunk.js.map", - "231.b382507e.chunk.js.map": "/static/js/231.b382507e.chunk.js.map", - "5376.fa8ed22b.chunk.js.map": "/static/js/5376.fa8ed22b.chunk.js.map", - "2093.a9a49926.chunk.js.map": "/static/js/2093.a9a49926.chunk.js.map", - "4426.d2c486fd.chunk.js.map": "/static/js/4426.d2c486fd.chunk.js.map", - "1928.ac71fd2d.chunk.js.map": "/static/js/1928.ac71fd2d.chunk.js.map", - "308.7282d055.chunk.js.map": "/static/js/308.7282d055.chunk.js.map", - "5536.680c7cf3.chunk.js.map": "/static/js/5536.680c7cf3.chunk.js.map", - "6118.2c336db0.chunk.js.map": "/static/js/6118.2c336db0.chunk.js.map", - "5033.c7631518.chunk.js.map": "/static/js/5033.c7631518.chunk.js.map", - "8731.6a9fba67.chunk.js.map": "/static/js/8731.6a9fba67.chunk.js.map", - "4927.760ce2c8.chunk.js.map": "/static/js/4927.760ce2c8.chunk.js.map", - "8800.33fac856.chunk.js.map": "/static/js/8800.33fac856.chunk.js.map", - "9644.e55df061.chunk.js.map": "/static/js/9644.e55df061.chunk.js.map", - "4265.8b2e34fd.chunk.js.map": "/static/js/4265.8b2e34fd.chunk.js.map", - "4494.5869f822.chunk.js.map": "/static/js/4494.5869f822.chunk.js.map", - "4290.b8c71029.chunk.js.map": "/static/js/4290.b8c71029.chunk.js.map" + "main.ecb84410.js.map": "/static/js/main.ecb84410.js.map", + "1927.8bd9ca2b.chunk.js.map": "/static/js/1927.8bd9ca2b.chunk.js.map", + "7590.4eeecba0.chunk.js.map": "/static/js/7590.4eeecba0.chunk.js.map", + "6725.7c418f57.chunk.js.map": "/static/js/6725.7c418f57.chunk.js.map", + "8122.6983dde7.chunk.js.map": "/static/js/8122.6983dde7.chunk.js.map", + "3764.fc97e668.chunk.js.map": "/static/js/3764.fc97e668.chunk.js.map", + "1070.5e4a59ab.chunk.js.map": "/static/js/1070.5e4a59ab.chunk.js.map", + "1604.6f1815c9.chunk.js.map": "/static/js/1604.6f1815c9.chunk.js.map", + "4570.16f915eb.chunk.js.map": "/static/js/4570.16f915eb.chunk.js.map", + "2314.0aa22928.chunk.js.map": "/static/js/2314.0aa22928.chunk.js.map", + "2330.8fdab7e7.chunk.js.map": "/static/js/2330.8fdab7e7.chunk.js.map", + "6646.b4b0212f.chunk.js.map": "/static/js/6646.b4b0212f.chunk.js.map", + "599.faa8b33a.chunk.js.map": "/static/js/599.faa8b33a.chunk.js.map", + "175.b6dc1cac.chunk.js.map": "/static/js/175.b6dc1cac.chunk.js.map", + "5817.d973a9f4.chunk.js.map": "/static/js/5817.d973a9f4.chunk.js.map", + "2427.93a69e62.chunk.js.map": "/static/js/2427.93a69e62.chunk.js.map", + "4708.dde47157.chunk.js.map": "/static/js/4708.dde47157.chunk.js.map", + "615.f00bf140.chunk.js.map": "/static/js/615.f00bf140.chunk.js.map", + "464.bedb1502.chunk.js.map": "/static/js/464.bedb1502.chunk.js.map", + "3739.2b7c1166.chunk.js.map": "/static/js/3739.2b7c1166.chunk.js.map", + "9295.59fc6a29.chunk.js.map": "/static/js/9295.59fc6a29.chunk.js.map", + "9482.94f21712.chunk.js.map": "/static/js/9482.94f21712.chunk.js.map", + "6341.cf5a72b3.chunk.js.map": "/static/js/6341.cf5a72b3.chunk.js.map", + "2975.77712328.chunk.js.map": "/static/js/2975.77712328.chunk.js.map", + "2478.ab5d0879.chunk.js.map": "/static/js/2478.ab5d0879.chunk.js.map", + "3579.a968d629.chunk.js.map": "/static/js/3579.a968d629.chunk.js.map", + "719.3269e2aa.chunk.js.map": "/static/js/719.3269e2aa.chunk.js.map", + "9558.502f5044.chunk.js.map": "/static/js/9558.502f5044.chunk.js.map", + "7055.77becd36.chunk.js.map": "/static/js/7055.77becd36.chunk.js.map", + "7454.27889ff5.chunk.js.map": "/static/js/7454.27889ff5.chunk.js.map", + "2279.b993e63d.chunk.js.map": "/static/js/2279.b993e63d.chunk.js.map", + "4304.f69c13ee.chunk.js.map": "/static/js/4304.f69c13ee.chunk.js.map", + "6198.f2a70477.chunk.js.map": "/static/js/6198.f2a70477.chunk.js.map", + "5080.72505acd.chunk.js.map": "/static/js/5080.72505acd.chunk.js.map", + "3275.be3aeb0a.chunk.js.map": "/static/js/3275.be3aeb0a.chunk.js.map", + "7788.4d8192f4.chunk.js.map": "/static/js/7788.4d8192f4.chunk.js.map", + "9628.57081f00.chunk.js.map": "/static/js/9628.57081f00.chunk.js.map", + "6964.c07f1e98.chunk.js.map": "/static/js/6964.c07f1e98.chunk.js.map", + "2323.2da41445.chunk.js.map": "/static/js/2323.2da41445.chunk.js.map", + "656.c0e04b11.chunk.js.map": "/static/js/656.c0e04b11.chunk.js.map", + "39.1b800acb.chunk.js.map": "/static/js/39.1b800acb.chunk.js.map", + "6864.6844ce13.chunk.js.map": "/static/js/6864.6844ce13.chunk.js.map", + "1638.ddae288b.chunk.js.map": "/static/js/1638.ddae288b.chunk.js.map", + "463.fb1557de.chunk.js.map": "/static/js/463.fb1557de.chunk.js.map", + "4843.7d91a860.chunk.js.map": "/static/js/4843.7d91a860.chunk.js.map", + "4752.ad8dc7a8.chunk.js.map": "/static/js/4752.ad8dc7a8.chunk.js.map", + "7688.26060ca2.chunk.js.map": "/static/js/7688.26060ca2.chunk.js.map", + "8064.7c6b3bcf.chunk.js.map": "/static/js/8064.7c6b3bcf.chunk.js.map", + "8438.a2529207.chunk.js.map": "/static/js/8438.a2529207.chunk.js.map", + "5474.dcb38a6d.chunk.js.map": "/static/js/5474.dcb38a6d.chunk.js.map", + "7604.b53761a5.chunk.js.map": "/static/js/7604.b53761a5.chunk.js.map", + "1215.db8e003b.chunk.js.map": "/static/js/1215.db8e003b.chunk.js.map", + "8427.bf1104b0.chunk.js.map": "/static/js/8427.bf1104b0.chunk.js.map", + "231.712da533.chunk.js.map": "/static/js/231.712da533.chunk.js.map", + "5376.03154f8b.chunk.js.map": "/static/js/5376.03154f8b.chunk.js.map", + "2093.5c3381b1.chunk.js.map": "/static/js/2093.5c3381b1.chunk.js.map", + "4426.ece16b41.chunk.js.map": "/static/js/4426.ece16b41.chunk.js.map", + "1928.0a927d9e.chunk.js.map": "/static/js/1928.0a927d9e.chunk.js.map", + "308.056e0177.chunk.js.map": "/static/js/308.056e0177.chunk.js.map", + "5536.609d0afe.chunk.js.map": "/static/js/5536.609d0afe.chunk.js.map", + "6118.277893f5.chunk.js.map": "/static/js/6118.277893f5.chunk.js.map", + "5033.2af27af0.chunk.js.map": "/static/js/5033.2af27af0.chunk.js.map", + "8731.c5d09571.chunk.js.map": "/static/js/8731.c5d09571.chunk.js.map", + "4927.e27766a2.chunk.js.map": "/static/js/4927.e27766a2.chunk.js.map", + "8800.9922c692.chunk.js.map": "/static/js/8800.9922c692.chunk.js.map", + "9644.35c7103c.chunk.js.map": "/static/js/9644.35c7103c.chunk.js.map", + "4265.1a87f8a3.chunk.js.map": "/static/js/4265.1a87f8a3.chunk.js.map", + "4494.3fc0f687.chunk.js.map": "/static/js/4494.3fc0f687.chunk.js.map", + "4290.d4ff0c15.chunk.js.map": "/static/js/4290.d4ff0c15.chunk.js.map" }, "entrypoints": [ "static/css/main.a663b81a.css", - "static/js/main.0e714900.js" + "static/js/main.ecb84410.js" ] } \ No newline at end of file diff --git a/build/index.html b/build/index.html index a282094..4defe37 100644 --- a/build/index.html +++ b/build/index.html @@ -1 +1 @@ -ResView
\ No newline at end of file +ResView
\ No newline at end of file diff --git a/build/static/js/1070.0aee10dd.chunk.js b/build/static/js/1070.0aee10dd.chunk.js deleted file mode 100644 index 10c5cab..0000000 --- a/build/static/js/1070.0aee10dd.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkclient=self.webpackChunkclient||[]).push([[1070],{1070:(n,e,t)=>{async function a(n){let e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];await n.addInteractor("externalConnect",(async n=>{const{Connector:e}=await t.e(4304).then(t.bind(t,4304));return new e(n)}),e)}t.d(e,{loadExternalConnectInteraction:()=>a})}}]); -//# sourceMappingURL=1070.0aee10dd.chunk.js.map \ No newline at end of file diff --git a/build/static/js/1070.5e4a59ab.chunk.js b/build/static/js/1070.5e4a59ab.chunk.js new file mode 100644 index 0000000..de825eb --- /dev/null +++ b/build/static/js/1070.5e4a59ab.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkresview=self.webpackChunkresview||[]).push([[1070],{1070:(e,n,t)=>{async function a(e){let n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];await e.addInteractor("externalConnect",(async e=>{const{Connector:n}=await t.e(4304).then(t.bind(t,4304));return new n(e)}),n)}t.d(n,{loadExternalConnectInteraction:()=>a})}}]); +//# sourceMappingURL=1070.5e4a59ab.chunk.js.map \ No newline at end of file diff --git a/build/static/js/1070.0aee10dd.chunk.js.map b/build/static/js/1070.5e4a59ab.chunk.js.map similarity index 87% rename from build/static/js/1070.0aee10dd.chunk.js.map rename to build/static/js/1070.5e4a59ab.chunk.js.map index 7d57f93..4a09084 100644 --- a/build/static/js/1070.0aee10dd.chunk.js.map +++ b/build/static/js/1070.5e4a59ab.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/1070.0aee10dd.chunk.js","mappings":"gGAAOA,eAAeC,EAA+BC,GAAwB,IAAhBC,IAAOC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,KAAAA,UAAA,SAC1DF,EAAOK,cAAc,mBAAmBP,UAC1C,MAAM,UAAEQ,SAAoB,+BAC5B,OAAO,IAAIA,EAAUC,EAAU,GAChCN,EACP,C","sources":["../node_modules/@tsparticles/interaction-external-connect/browser/index.js"],"sourcesContent":["export async function loadExternalConnectInteraction(engine, refresh = true) {\n await engine.addInteractor(\"externalConnect\", async (container) => {\n const { Connector } = await import(\"./Connector.js\");\n return new Connector(container);\n }, refresh);\n}\nexport * from \"./Options/Classes/Connect.js\";\nexport * from \"./Options/Classes/ConnectLinks.js\";\nexport * from \"./Options/Interfaces/IConnect.js\";\nexport * from \"./Options/Interfaces/IConnectLinks.js\";\n"],"names":["async","loadExternalConnectInteraction","engine","refresh","arguments","length","undefined","addInteractor","Connector","container"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/1070.5e4a59ab.chunk.js","mappings":"kGAAOA,eAAeC,EAA+BC,GAAwB,IAAhBC,IAAOC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,KAAAA,UAAA,SAC1DF,EAAOK,cAAc,mBAAmBP,UAC1C,MAAM,UAAEQ,SAAoB,+BAC5B,OAAO,IAAIA,EAAUC,EAAU,GAChCN,EACP,C","sources":["../node_modules/@tsparticles/interaction-external-connect/browser/index.js"],"sourcesContent":["export async function loadExternalConnectInteraction(engine, refresh = true) {\n await engine.addInteractor(\"externalConnect\", async (container) => {\n const { Connector } = await import(\"./Connector.js\");\n return new Connector(container);\n }, refresh);\n}\nexport * from \"./Options/Classes/Connect.js\";\nexport * from \"./Options/Classes/ConnectLinks.js\";\nexport * from \"./Options/Interfaces/IConnect.js\";\nexport * from \"./Options/Interfaces/IConnectLinks.js\";\n"],"names":["async","loadExternalConnectInteraction","engine","refresh","arguments","length","undefined","addInteractor","Connector","container"],"sourceRoot":""} \ No newline at end of file diff --git a/build/static/js/1215.1041039b.chunk.js b/build/static/js/1215.1041039b.chunk.js deleted file mode 100644 index 443e11a..0000000 --- a/build/static/js/1215.1041039b.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkclient=self.webpackChunkclient||[]).push([[1215],{1215:(e,i,t)=>{t.d(i,{LifeUpdater:()=>l});var n=t(4409);class a extends n.PV{constructor(){super(),this.sync=!1}load(e){e&&(super.load(e),void 0!==e.sync&&(this.sync=e.sync))}}class o extends n.PV{constructor(){super(),this.sync=!1}load(e){e&&(super.load(e),void 0!==e.sync&&(this.sync=e.sync))}}class s{constructor(){this.count=0,this.delay=new a,this.duration=new o}load(e){e&&(void 0!==e.count&&(this.count=e.count),this.delay.load(e.delay),this.duration.load(e.duration))}}class l{constructor(e){this.container=e}init(e){const i=this.container,t=e.options.life;t&&(e.life={delay:i.retina.reduceFactor?(0,n.VG)(t.delay.value)*(t.delay.sync?1:(0,n.G0)())/i.retina.reduceFactor*n.Xu:0,delayTime:0,duration:i.retina.reduceFactor?(0,n.VG)(t.duration.value)*(t.duration.sync?1:(0,n.G0)())/i.retina.reduceFactor*n.Xu:0,time:0,count:t.count},e.life.duration<=0&&(e.life.duration=-1),e.life.count<=0&&(e.life.count=-1),e.life&&(e.spawning=e.life.delay>0))}isEnabled(e){return!e.destroyed}loadOptions(e){e.life||(e.life=new s);for(var i=arguments.length,t=new Array(i>1?i-1:0),n=1;n=e.life.delay))return;o=!0,e.spawning=!1,a.delayTime=0,a.time=0}if(-1===a.duration)return;if(e.spawning)return;if(o?a.time=0:a.time+=i.value,a.time0&&e.life.count--,0===e.life.count)return void e.destroy();const s=(0,n.DT)(0,t.width),l=(0,n.DT)(0,t.width);e.position.x=(0,n.BH)(s),e.position.y=(0,n.BH)(l),e.spawning=!0,a.delayTime=0,a.time=0,e.reset();const r=e.options.life;r&&(a.delay=(0,n.VG)(r.delay.value)*n.Xu,a.duration=(0,n.VG)(r.duration.value)*n.Xu)}(e,i,this.container.canvas.size)}}}}]); -//# sourceMappingURL=1215.1041039b.chunk.js.map \ No newline at end of file diff --git a/build/static/js/1215.db8e003b.chunk.js b/build/static/js/1215.db8e003b.chunk.js new file mode 100644 index 0000000..a6eeae7 --- /dev/null +++ b/build/static/js/1215.db8e003b.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkresview=self.webpackChunkresview||[]).push([[1215],{1215:(e,i,t)=>{t.d(i,{LifeUpdater:()=>r});var n=t(4409);class a extends n.PV{constructor(){super(),this.sync=!1}load(e){e&&(super.load(e),void 0!==e.sync&&(this.sync=e.sync))}}class o extends n.PV{constructor(){super(),this.sync=!1}load(e){e&&(super.load(e),void 0!==e.sync&&(this.sync=e.sync))}}class s{constructor(){this.count=0,this.delay=new a,this.duration=new o}load(e){e&&(void 0!==e.count&&(this.count=e.count),this.delay.load(e.delay),this.duration.load(e.duration))}}class r{constructor(e){this.container=e}init(e){const i=this.container,t=e.options.life;t&&(e.life={delay:i.retina.reduceFactor?(0,n.VG)(t.delay.value)*(t.delay.sync?1:(0,n.G0)())/i.retina.reduceFactor*n.Xu:0,delayTime:0,duration:i.retina.reduceFactor?(0,n.VG)(t.duration.value)*(t.duration.sync?1:(0,n.G0)())/i.retina.reduceFactor*n.Xu:0,time:0,count:t.count},e.life.duration<=0&&(e.life.duration=-1),e.life.count<=0&&(e.life.count=-1),e.life&&(e.spawning=e.life.delay>0))}isEnabled(e){return!e.destroyed}loadOptions(e){e.life||(e.life=new s);for(var i=arguments.length,t=new Array(i>1?i-1:0),n=1;n=e.life.delay))return;o=!0,e.spawning=!1,a.delayTime=0,a.time=0}if(-1===a.duration)return;if(e.spawning)return;if(o?a.time=0:a.time+=i.value,a.time0&&e.life.count--,0===e.life.count)return void e.destroy();const s=(0,n.DT)(0,t.width),r=(0,n.DT)(0,t.width);e.position.x=(0,n.BH)(s),e.position.y=(0,n.BH)(r),e.spawning=!0,a.delayTime=0,a.time=0,e.reset();const l=e.options.life;l&&(a.delay=(0,n.VG)(l.delay.value)*n.Xu,a.duration=(0,n.VG)(l.duration.value)*n.Xu)}(e,i,this.container.canvas.size)}}}}]); +//# sourceMappingURL=1215.db8e003b.chunk.js.map \ No newline at end of file diff --git a/build/static/js/1215.1041039b.chunk.js.map b/build/static/js/1215.db8e003b.chunk.js.map similarity index 98% rename from build/static/js/1215.1041039b.chunk.js.map rename to build/static/js/1215.db8e003b.chunk.js.map index 95be797..f497808 100644 --- a/build/static/js/1215.1041039b.chunk.js.map +++ b/build/static/js/1215.db8e003b.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/1215.1041039b.chunk.js","mappings":"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","sources":["../node_modules/@tsparticles/updater-life/browser/Options/Classes/LifeDelay.js","../node_modules/@tsparticles/updater-life/browser/Options/Classes/LifeDuration.js","../node_modules/@tsparticles/updater-life/browser/Options/Classes/Life.js","../node_modules/@tsparticles/updater-life/browser/LifeUpdater.js","../node_modules/@tsparticles/updater-life/browser/Utils.js"],"sourcesContent":["import { ValueWithRandom } from \"@tsparticles/engine\";\nexport class LifeDelay extends ValueWithRandom {\n constructor() {\n super();\n this.sync = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n super.load(data);\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n }\n}\n","import { ValueWithRandom } from \"@tsparticles/engine\";\nexport class LifeDuration extends ValueWithRandom {\n constructor() {\n super();\n this.sync = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n super.load(data);\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n }\n}\n","import { LifeDelay } from \"./LifeDelay.js\";\nimport { LifeDuration } from \"./LifeDuration.js\";\nexport class Life {\n constructor() {\n this.count = 0;\n this.delay = new LifeDelay();\n this.duration = new LifeDuration();\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.count !== undefined) {\n this.count = data.count;\n }\n this.delay.load(data.delay);\n this.duration.load(data.duration);\n }\n}\n","import { getRandom, getRangeValue, millisecondsToSeconds, } from \"@tsparticles/engine\";\nimport { Life } from \"./Options/Classes/Life.js\";\nimport { updateLife } from \"./Utils.js\";\nconst noTime = 0, identity = 1, infiniteValue = -1;\nexport class LifeUpdater {\n constructor(container) {\n this.container = container;\n }\n init(particle) {\n const container = this.container, particlesOptions = particle.options, lifeOptions = particlesOptions.life;\n if (!lifeOptions) {\n return;\n }\n particle.life = {\n delay: container.retina.reduceFactor\n ? ((getRangeValue(lifeOptions.delay.value) * (lifeOptions.delay.sync ? identity : getRandom())) /\n container.retina.reduceFactor) *\n millisecondsToSeconds\n : noTime,\n delayTime: noTime,\n duration: container.retina.reduceFactor\n ? ((getRangeValue(lifeOptions.duration.value) * (lifeOptions.duration.sync ? identity : getRandom())) /\n container.retina.reduceFactor) *\n millisecondsToSeconds\n : noTime,\n time: noTime,\n count: lifeOptions.count,\n };\n if (particle.life.duration <= noTime) {\n particle.life.duration = infiniteValue;\n }\n if (particle.life.count <= noTime) {\n particle.life.count = infiniteValue;\n }\n if (particle.life) {\n particle.spawning = particle.life.delay > noTime;\n }\n }\n isEnabled(particle) {\n return !particle.destroyed;\n }\n loadOptions(options, ...sources) {\n if (!options.life) {\n options.life = new Life();\n }\n for (const source of sources) {\n options.life.load(source?.life);\n }\n }\n update(particle, delta) {\n if (!this.isEnabled(particle) || !particle.life) {\n return;\n }\n updateLife(particle, delta, this.container.canvas.size);\n }\n}\n","import { getRangeValue, millisecondsToSeconds, randomInRange, setRangeValue, } from \"@tsparticles/engine\";\nconst noTime = 0, infiniteValue = -1, noLife = 0, minCanvasSize = 0;\nexport function updateLife(particle, delta, canvasSize) {\n if (!particle.life) {\n return;\n }\n const life = particle.life;\n let justSpawned = false;\n if (particle.spawning) {\n life.delayTime += delta.value;\n if (life.delayTime >= particle.life.delay) {\n justSpawned = true;\n particle.spawning = false;\n life.delayTime = noTime;\n life.time = noTime;\n }\n else {\n return;\n }\n }\n if (life.duration === infiniteValue) {\n return;\n }\n if (particle.spawning) {\n return;\n }\n if (justSpawned) {\n life.time = noTime;\n }\n else {\n life.time += delta.value;\n }\n if (life.time < life.duration) {\n return;\n }\n life.time = noTime;\n if (particle.life.count > noLife) {\n particle.life.count--;\n }\n if (particle.life.count === noLife) {\n particle.destroy();\n return;\n }\n const widthRange = setRangeValue(minCanvasSize, canvasSize.width), heightRange = setRangeValue(minCanvasSize, canvasSize.width);\n particle.position.x = randomInRange(widthRange);\n particle.position.y = randomInRange(heightRange);\n particle.spawning = true;\n life.delayTime = noTime;\n life.time = noTime;\n particle.reset();\n const lifeOptions = particle.options.life;\n if (lifeOptions) {\n life.delay = getRangeValue(lifeOptions.delay.value) * millisecondsToSeconds;\n life.duration = getRangeValue(lifeOptions.duration.value) * millisecondsToSeconds;\n }\n}\n"],"names":["LifeDelay","ValueWithRandom","constructor","super","this","sync","load","data","undefined","LifeDuration","Life","count","delay","duration","LifeUpdater","container","init","particle","lifeOptions","options","life","retina","reduceFactor","getRangeValue","value","getRandom","millisecondsToSeconds","delayTime","time","spawning","isEnabled","destroyed","loadOptions","_len","arguments","length","sources","Array","_key","source","update","delta","canvasSize","justSpawned","destroy","widthRange","setRangeValue","width","heightRange","position","x","randomInRange","y","reset","updateLife","canvas","size"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/1215.db8e003b.chunk.js","mappings":"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","sources":["../node_modules/@tsparticles/updater-life/browser/Options/Classes/LifeDelay.js","../node_modules/@tsparticles/updater-life/browser/Options/Classes/LifeDuration.js","../node_modules/@tsparticles/updater-life/browser/Options/Classes/Life.js","../node_modules/@tsparticles/updater-life/browser/LifeUpdater.js","../node_modules/@tsparticles/updater-life/browser/Utils.js"],"sourcesContent":["import { ValueWithRandom } from \"@tsparticles/engine\";\nexport class LifeDelay extends ValueWithRandom {\n constructor() {\n super();\n this.sync = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n super.load(data);\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n }\n}\n","import { ValueWithRandom } from \"@tsparticles/engine\";\nexport class LifeDuration extends ValueWithRandom {\n constructor() {\n super();\n this.sync = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n super.load(data);\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n }\n}\n","import { LifeDelay } from \"./LifeDelay.js\";\nimport { LifeDuration } from \"./LifeDuration.js\";\nexport class Life {\n constructor() {\n this.count = 0;\n this.delay = new LifeDelay();\n this.duration = new LifeDuration();\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.count !== undefined) {\n this.count = data.count;\n }\n this.delay.load(data.delay);\n this.duration.load(data.duration);\n }\n}\n","import { getRandom, getRangeValue, millisecondsToSeconds, } from \"@tsparticles/engine\";\nimport { Life } from \"./Options/Classes/Life.js\";\nimport { updateLife } from \"./Utils.js\";\nconst noTime = 0, identity = 1, infiniteValue = -1;\nexport class LifeUpdater {\n constructor(container) {\n this.container = container;\n }\n init(particle) {\n const container = this.container, particlesOptions = particle.options, lifeOptions = particlesOptions.life;\n if (!lifeOptions) {\n return;\n }\n particle.life = {\n delay: container.retina.reduceFactor\n ? ((getRangeValue(lifeOptions.delay.value) * (lifeOptions.delay.sync ? identity : getRandom())) /\n container.retina.reduceFactor) *\n millisecondsToSeconds\n : noTime,\n delayTime: noTime,\n duration: container.retina.reduceFactor\n ? ((getRangeValue(lifeOptions.duration.value) * (lifeOptions.duration.sync ? identity : getRandom())) /\n container.retina.reduceFactor) *\n millisecondsToSeconds\n : noTime,\n time: noTime,\n count: lifeOptions.count,\n };\n if (particle.life.duration <= noTime) {\n particle.life.duration = infiniteValue;\n }\n if (particle.life.count <= noTime) {\n particle.life.count = infiniteValue;\n }\n if (particle.life) {\n particle.spawning = particle.life.delay > noTime;\n }\n }\n isEnabled(particle) {\n return !particle.destroyed;\n }\n loadOptions(options, ...sources) {\n if (!options.life) {\n options.life = new Life();\n }\n for (const source of sources) {\n options.life.load(source?.life);\n }\n }\n update(particle, delta) {\n if (!this.isEnabled(particle) || !particle.life) {\n return;\n }\n updateLife(particle, delta, this.container.canvas.size);\n }\n}\n","import { getRangeValue, millisecondsToSeconds, randomInRange, setRangeValue, } from \"@tsparticles/engine\";\nconst noTime = 0, infiniteValue = -1, noLife = 0, minCanvasSize = 0;\nexport function updateLife(particle, delta, canvasSize) {\n if (!particle.life) {\n return;\n }\n const life = particle.life;\n let justSpawned = false;\n if (particle.spawning) {\n life.delayTime += delta.value;\n if (life.delayTime >= particle.life.delay) {\n justSpawned = true;\n particle.spawning = false;\n life.delayTime = noTime;\n life.time = noTime;\n }\n else {\n return;\n }\n }\n if (life.duration === infiniteValue) {\n return;\n }\n if (particle.spawning) {\n return;\n }\n if (justSpawned) {\n life.time = noTime;\n }\n else {\n life.time += delta.value;\n }\n if (life.time < life.duration) {\n return;\n }\n life.time = noTime;\n if (particle.life.count > noLife) {\n particle.life.count--;\n }\n if (particle.life.count === noLife) {\n particle.destroy();\n return;\n }\n const widthRange = setRangeValue(minCanvasSize, canvasSize.width), heightRange = setRangeValue(minCanvasSize, canvasSize.width);\n particle.position.x = randomInRange(widthRange);\n particle.position.y = randomInRange(heightRange);\n particle.spawning = true;\n life.delayTime = noTime;\n life.time = noTime;\n particle.reset();\n const lifeOptions = particle.options.life;\n if (lifeOptions) {\n life.delay = getRangeValue(lifeOptions.delay.value) * millisecondsToSeconds;\n life.duration = getRangeValue(lifeOptions.duration.value) * millisecondsToSeconds;\n }\n}\n"],"names":["LifeDelay","ValueWithRandom","constructor","super","this","sync","load","data","undefined","LifeDuration","Life","count","delay","duration","LifeUpdater","container","init","particle","lifeOptions","options","life","retina","reduceFactor","getRangeValue","value","getRandom","millisecondsToSeconds","delayTime","time","spawning","isEnabled","destroyed","loadOptions","_len","arguments","length","sources","Array","_key","source","update","delta","canvasSize","justSpawned","destroy","widthRange","setRangeValue","width","heightRange","position","x","randomInRange","y","reset","updateLife","canvas","size"],"sourceRoot":""} \ No newline at end of file diff --git a/build/static/js/1604.6f1815c9.chunk.js b/build/static/js/1604.6f1815c9.chunk.js new file mode 100644 index 0000000..6d2149b --- /dev/null +++ b/build/static/js/1604.6f1815c9.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkresview=self.webpackChunkresview||[]).push([[1604],{5582:(t,i,n)=>{n.d(i,{f:()=>o});var s=n(5129);class o{constructor(){this.distance=100,this.links=new s.q}load(t){t&&(void 0!==t.distance&&(this.distance=t.distance),this.links.load(t.links))}}},5129:(t,i,n)=>{n.d(i,{q:()=>o});var s=n(4409);class o{constructor(){this.blink=!1,this.consent=!1,this.opacity=1}load(t){t&&(void 0!==t.blink&&(this.blink=t.blink),void 0!==t.color&&(this.color=s.Oi.create(this.color,t.color)),void 0!==t.consent&&(this.consent=t.consent),void 0!==t.opacity&&(this.opacity=t.opacity))}}},1604:(t,i,n)=>{n.d(i,{loadExternalGrabInteraction:()=>s});n(5582),n(5129);async function s(t){let i=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];await t.addInteractor("externalGrab",(async t=>{const{Grabber:i}=await n.e(6198).then(n.bind(n,6198));return new i(t)}),i)}}}]); +//# sourceMappingURL=1604.6f1815c9.chunk.js.map \ No newline at end of file diff --git a/build/static/js/1604.d07d2b04.chunk.js.map b/build/static/js/1604.6f1815c9.chunk.js.map similarity index 95% rename from build/static/js/1604.d07d2b04.chunk.js.map rename to build/static/js/1604.6f1815c9.chunk.js.map index c3dd5ad..97d53ab 100644 --- a/build/static/js/1604.d07d2b04.chunk.js.map +++ b/build/static/js/1604.6f1815c9.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/1604.d07d2b04.chunk.js","mappings":"+HACO,MAAMA,EACTC,WAAAA,GACIC,KAAKC,SAAW,IAChBD,KAAKE,MAAQ,IAAIC,EAAAA,CACrB,CACAC,IAAAA,CAAKC,GACIA,SAGiBC,IAAlBD,EAAKJ,WACLD,KAAKC,SAAWI,EAAKJ,UAEzBD,KAAKE,MAAME,KAAKC,EAAKH,OACzB,E,gDCbG,MAAMC,EACTJ,WAAAA,GACIC,KAAKO,OAAQ,EACbP,KAAKQ,SAAU,EACfR,KAAKS,QAAU,CACnB,CACAL,IAAAA,CAAKC,GACIA,SAGcC,IAAfD,EAAKE,QACLP,KAAKO,MAAQF,EAAKE,YAEHD,IAAfD,EAAKK,QACLV,KAAKU,MAAQC,EAAAA,GAAaC,OAAOZ,KAAKU,MAAOL,EAAKK,aAEjCJ,IAAjBD,EAAKG,UACLR,KAAKQ,QAAUH,EAAKG,cAEHF,IAAjBD,EAAKI,UACLT,KAAKS,QAAUJ,EAAKI,SAE5B,E,4ECvBGI,eAAeC,EAA4BC,GAAwB,IAAhBC,IAAOC,UAAAC,OAAA,QAAAZ,IAAAW,UAAA,KAAAA,UAAA,SACvDF,EAAOI,cAAc,gBAAgBN,UACvC,MAAM,QAAEO,SAAkB,+BAC1B,OAAO,IAAIA,EAAQC,EAAU,GAC9BL,EACP,C","sources":["../node_modules/@tsparticles/interaction-external-grab/browser/Options/Classes/Grab.js","../node_modules/@tsparticles/interaction-external-grab/browser/Options/Classes/GrabLinks.js","../node_modules/@tsparticles/interaction-external-grab/browser/index.js"],"sourcesContent":["import { GrabLinks } from \"./GrabLinks.js\";\nexport class Grab {\n constructor() {\n this.distance = 100;\n this.links = new GrabLinks();\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n this.links.load(data.links);\n }\n}\n","import { OptionsColor } from \"@tsparticles/engine\";\nexport class GrabLinks {\n constructor() {\n this.blink = false;\n this.consent = false;\n this.opacity = 1;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.blink !== undefined) {\n this.blink = data.blink;\n }\n if (data.color !== undefined) {\n this.color = OptionsColor.create(this.color, data.color);\n }\n if (data.consent !== undefined) {\n this.consent = data.consent;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n }\n}\n","export async function loadExternalGrabInteraction(engine, refresh = true) {\n await engine.addInteractor(\"externalGrab\", async (container) => {\n const { Grabber } = await import(\"./Grabber.js\");\n return new Grabber(container);\n }, refresh);\n}\nexport * from \"./Options/Classes/Grab.js\";\nexport * from \"./Options/Classes/GrabLinks.js\";\nexport * from \"./Options/Interfaces/IGrab.js\";\nexport * from \"./Options/Interfaces/IGrabLinks.js\";\n"],"names":["Grab","constructor","this","distance","links","GrabLinks","load","data","undefined","blink","consent","opacity","color","OptionsColor","create","async","loadExternalGrabInteraction","engine","refresh","arguments","length","addInteractor","Grabber","container"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/1604.6f1815c9.chunk.js","mappings":"iIACO,MAAMA,EACTC,WAAAA,GACIC,KAAKC,SAAW,IAChBD,KAAKE,MAAQ,IAAIC,EAAAA,CACrB,CACAC,IAAAA,CAAKC,GACIA,SAGiBC,IAAlBD,EAAKJ,WACLD,KAAKC,SAAWI,EAAKJ,UAEzBD,KAAKE,MAAME,KAAKC,EAAKH,OACzB,E,gDCbG,MAAMC,EACTJ,WAAAA,GACIC,KAAKO,OAAQ,EACbP,KAAKQ,SAAU,EACfR,KAAKS,QAAU,CACnB,CACAL,IAAAA,CAAKC,GACIA,SAGcC,IAAfD,EAAKE,QACLP,KAAKO,MAAQF,EAAKE,YAEHD,IAAfD,EAAKK,QACLV,KAAKU,MAAQC,EAAAA,GAAaC,OAAOZ,KAAKU,MAAOL,EAAKK,aAEjCJ,IAAjBD,EAAKG,UACLR,KAAKQ,QAAUH,EAAKG,cAEHF,IAAjBD,EAAKI,UACLT,KAAKS,QAAUJ,EAAKI,SAE5B,E,4ECvBGI,eAAeC,EAA4BC,GAAwB,IAAhBC,IAAOC,UAAAC,OAAA,QAAAZ,IAAAW,UAAA,KAAAA,UAAA,SACvDF,EAAOI,cAAc,gBAAgBN,UACvC,MAAM,QAAEO,SAAkB,+BAC1B,OAAO,IAAIA,EAAQC,EAAU,GAC9BL,EACP,C","sources":["../node_modules/@tsparticles/interaction-external-grab/browser/Options/Classes/Grab.js","../node_modules/@tsparticles/interaction-external-grab/browser/Options/Classes/GrabLinks.js","../node_modules/@tsparticles/interaction-external-grab/browser/index.js"],"sourcesContent":["import { GrabLinks } from \"./GrabLinks.js\";\nexport class Grab {\n constructor() {\n this.distance = 100;\n this.links = new GrabLinks();\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n this.links.load(data.links);\n }\n}\n","import { OptionsColor } from \"@tsparticles/engine\";\nexport class GrabLinks {\n constructor() {\n this.blink = false;\n this.consent = false;\n this.opacity = 1;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.blink !== undefined) {\n this.blink = data.blink;\n }\n if (data.color !== undefined) {\n this.color = OptionsColor.create(this.color, data.color);\n }\n if (data.consent !== undefined) {\n this.consent = data.consent;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n }\n}\n","export async function loadExternalGrabInteraction(engine, refresh = true) {\n await engine.addInteractor(\"externalGrab\", async (container) => {\n const { Grabber } = await import(\"./Grabber.js\");\n return new Grabber(container);\n }, refresh);\n}\nexport * from \"./Options/Classes/Grab.js\";\nexport * from \"./Options/Classes/GrabLinks.js\";\nexport * from \"./Options/Interfaces/IGrab.js\";\nexport * from \"./Options/Interfaces/IGrabLinks.js\";\n"],"names":["Grab","constructor","this","distance","links","GrabLinks","load","data","undefined","blink","consent","opacity","color","OptionsColor","create","async","loadExternalGrabInteraction","engine","refresh","arguments","length","addInteractor","Grabber","container"],"sourceRoot":""} \ No newline at end of file diff --git a/build/static/js/1604.d07d2b04.chunk.js b/build/static/js/1604.d07d2b04.chunk.js deleted file mode 100644 index e8d16e2..0000000 --- a/build/static/js/1604.d07d2b04.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkclient=self.webpackChunkclient||[]).push([[1604],{5582:(t,i,n)=>{n.d(i,{f:()=>c});var s=n(5129);class c{constructor(){this.distance=100,this.links=new s.q}load(t){t&&(void 0!==t.distance&&(this.distance=t.distance),this.links.load(t.links))}}},5129:(t,i,n)=>{n.d(i,{q:()=>c});var s=n(4409);class c{constructor(){this.blink=!1,this.consent=!1,this.opacity=1}load(t){t&&(void 0!==t.blink&&(this.blink=t.blink),void 0!==t.color&&(this.color=s.Oi.create(this.color,t.color)),void 0!==t.consent&&(this.consent=t.consent),void 0!==t.opacity&&(this.opacity=t.opacity))}}},1604:(t,i,n)=>{n.d(i,{loadExternalGrabInteraction:()=>s});n(5582),n(5129);async function s(t){let i=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];await t.addInteractor("externalGrab",(async t=>{const{Grabber:i}=await n.e(6198).then(n.bind(n,6198));return new i(t)}),i)}}}]); -//# sourceMappingURL=1604.d07d2b04.chunk.js.map \ No newline at end of file diff --git a/build/static/js/1638.9875af47.chunk.js b/build/static/js/1638.9875af47.chunk.js deleted file mode 100644 index 759bcd5..0000000 --- a/build/static/js/1638.9875af47.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkclient=self.webpackChunkclient||[]).push([[1638],{1638:(e,t,a)=>{a.d(t,{EmojiDrawer:()=>c});var o=a(4409);var n=a(6682);const i='"Twemoji Mozilla", Apple Color Emoji, "Segoe UI Emoji", "Noto Color Emoji", "EmojiOne Color"';class c{constructor(){this._emojiShapeDict=new Map}destroy(){for(const[e,t]of this._emojiShapeDict)t instanceof ImageBitmap&&(null===t||void 0===t||t.close(),this._emojiShapeDict.delete(e))}draw(e){!function(e){const{context:t,particle:a,radius:o,opacity:n}=e,i=a.emojiData,c=2*o,l=t.globalAlpha;i&&(t.globalAlpha=n,t.drawImage(i,-o,-o,c,c),t.globalAlpha=l)}(e)}async init(e){const t=e.actualOptions;if(!n.u.find((e=>(0,o.hn)(e,t.particles.shape.type))))return;const a=[(0,o.Al)(i)],c=n.u.map((e=>t.particles.shape.options[e])).find((e=>!!e));c&&(0,o.wJ)(c,(e=>{e.font&&a.push((0,o.Al)(e.font))})),await Promise.all(a)}particleDestroy(e){delete e.emojiData}particleInit(e,t){var a;const n=t.shapeData;if(null===n||void 0===n||!n.value)return;const c=(0,o.TA)(n.value,t.randomIndexData),l=null!==(a=n.font)&&void 0!==a?a:i;if(!c)return;const s="".concat(c,"_").concat(l),r=this._emojiShapeDict.get(s);if(r)return void(t.emojiData=r);const p=2*(0,o.W9)(t.size.value);let f;const m=(0,o.W9)(t.size.value);if("undefined"!==typeof OffscreenCanvas){const e=new OffscreenCanvas(p,p),t=e.getContext("2d");if(!t)return;t.font="400 ".concat(2*m,"px ").concat(l),t.textBaseline="middle",t.textAlign="center",t.fillText(c,m,m),f=e.transferToImageBitmap()}else{const e=document.createElement("canvas");e.width=p,e.height=p;const t=e.getContext("2d");if(!t)return;t.font="400 ".concat(2*m,"px ").concat(l),t.textBaseline="middle",t.textAlign="center",t.fillText(c,m,m),f=e}this._emojiShapeDict.set(s,f),t.emojiData=f}}}}]); -//# sourceMappingURL=1638.9875af47.chunk.js.map \ No newline at end of file diff --git a/build/static/js/1638.ddae288b.chunk.js b/build/static/js/1638.ddae288b.chunk.js new file mode 100644 index 0000000..cc3e1bf --- /dev/null +++ b/build/static/js/1638.ddae288b.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkresview=self.webpackChunkresview||[]).push([[1638],{1638:(e,t,a)=>{a.d(t,{EmojiDrawer:()=>c});var o=a(4409);var i=a(6682);const n='"Twemoji Mozilla", Apple Color Emoji, "Segoe UI Emoji", "Noto Color Emoji", "EmojiOne Color"';class c{constructor(){this._emojiShapeDict=new Map}destroy(){for(const[e,t]of this._emojiShapeDict)t instanceof ImageBitmap&&(null===t||void 0===t||t.close(),this._emojiShapeDict.delete(e))}draw(e){!function(e){const{context:t,particle:a,radius:o,opacity:i}=e,n=a.emojiData,c=2*o,s=t.globalAlpha;n&&(t.globalAlpha=i,t.drawImage(n,-o,-o,c,c),t.globalAlpha=s)}(e)}async init(e){const t=e.actualOptions;if(!i.u.find((e=>(0,o.hn)(e,t.particles.shape.type))))return;const a=[(0,o.Al)(n)],c=i.u.map((e=>t.particles.shape.options[e])).find((e=>!!e));c&&(0,o.wJ)(c,(e=>{e.font&&a.push((0,o.Al)(e.font))})),await Promise.all(a)}particleDestroy(e){delete e.emojiData}particleInit(e,t){var a;const i=t.shapeData;if(null===i||void 0===i||!i.value)return;const c=(0,o.TA)(i.value,t.randomIndexData),s=null!==(a=i.font)&&void 0!==a?a:n;if(!c)return;const l="".concat(c,"_").concat(s),r=this._emojiShapeDict.get(l);if(r)return void(t.emojiData=r);const p=2*(0,o.W9)(t.size.value);let f;const m=(0,o.W9)(t.size.value);if("undefined"!==typeof OffscreenCanvas){const e=new OffscreenCanvas(p,p),t=e.getContext("2d");if(!t)return;t.font="400 ".concat(2*m,"px ").concat(s),t.textBaseline="middle",t.textAlign="center",t.fillText(c,m,m),f=e.transferToImageBitmap()}else{const e=document.createElement("canvas");e.width=p,e.height=p;const t=e.getContext("2d");if(!t)return;t.font="400 ".concat(2*m,"px ").concat(s),t.textBaseline="middle",t.textAlign="center",t.fillText(c,m,m),f=e}this._emojiShapeDict.set(l,f),t.emojiData=f}}}}]); +//# sourceMappingURL=1638.ddae288b.chunk.js.map \ No newline at end of file diff --git a/build/static/js/1638.9875af47.chunk.js.map b/build/static/js/1638.ddae288b.chunk.js.map similarity index 98% rename from build/static/js/1638.9875af47.chunk.js.map rename to build/static/js/1638.ddae288b.chunk.js.map index 89dbb9c..21ff0a6 100644 --- a/build/static/js/1638.9875af47.chunk.js.map +++ b/build/static/js/1638.ddae288b.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/1638.9875af47.chunk.js","mappings":"uJAGA,MAAMA,EAAc,+FACb,MAAMC,EACTC,WAAAA,GACIC,KAAKC,gBAAkB,IAAIC,GAC/B,CACAC,OAAAA,GACI,IAAK,MAAOC,EAAKC,KAAcL,KAAKC,gBAC5BI,aAAqBC,cACZ,OAATD,QAAS,IAATA,GAAAA,EAAWE,QACXP,KAAKC,gBAAgBO,OAAOJ,GAGxC,CACAK,IAAAA,CAAKC,IChBF,SAAmBA,GACtB,MAAM,QAAEC,EAAO,SAAEC,EAAQ,OAAEC,EAAM,QAAEC,GAAYJ,EAAML,EAAYO,EAASP,UAAuBU,EAAH,EAAcF,EAAiBG,EAAgBL,EAAQM,YAChJZ,IAGLM,EAAQM,YAAcH,EACtBH,EAAQO,UAAUb,GAAYQ,GAASA,EAAQE,EAAUA,GACzDJ,EAAQM,YAAcD,EAC1B,CDSQG,CAAUT,EACd,CACA,UAAMU,CAAKC,GACP,MAAMC,EAAUD,EAAUE,cAC1B,IAAKC,EAAAA,EAAWC,MAAMC,IAAMC,EAAAA,EAAAA,IAAUD,EAAGJ,EAAQM,UAAUC,MAAMC,QAC7D,OAEJ,MAAMC,EAAW,EAACC,EAAAA,EAAAA,IAASnC,IAAeoC,EAAeT,EAAAA,EACpDU,KAAKR,GAAMJ,EAAQM,UAAUC,MAAMP,QAAQI,KAC3CD,MAAMC,KAAQA,IACfO,IACAE,EAAAA,EAAAA,IAA0BF,GAAeJ,IACjCA,EAAMO,MACNL,EAASM,MAAKL,EAAAA,EAAAA,IAASH,EAAMO,MACjC,UAGFE,QAAQC,IAAIR,EACtB,CACAS,eAAAA,CAAgB5B,UACLA,EAASP,SACpB,CACAoC,YAAAA,CAAapB,EAAWT,GAAU,IAAA8B,EAC9B,MAAkBC,EAAY/B,EAAS+B,UACvC,GAAc,OAATA,QAAS,IAATA,IAAAA,EAAWC,MACZ,OAEJ,MAAMC,GAAQC,EAAAA,EAAAA,IAAyBH,EAAUC,MAAOhC,EAASmC,iBAAkBX,EAAqB,QAAjBM,EAAGC,EAAUP,YAAI,IAAAM,EAAAA,EAAI7C,EAC5G,IAAKgD,EACD,OAEJ,MAAMzC,EAAM,GAAH4C,OAAMH,EAAK,KAAAG,OAAIZ,GAAQa,EAAejD,KAAKC,gBAAgBiD,IAAI9C,GACxE,GAAI6C,EAEA,YADArC,EAASP,UAAY4C,GAGzB,MAAME,EAbS,GAaIC,EAAAA,EAAAA,IAAYxC,EAASyC,KAAKT,OAC7C,IAAIvC,EACJ,MAAMiD,GAAUF,EAAAA,EAAAA,IAAYxC,EAASyC,KAAKT,OAC1C,GAA+B,qBAApBW,gBAAiC,CACxC,MAAMC,EAAS,IAAID,gBAAgBJ,EAAYA,GAAaxC,EAAU6C,EAAOC,WAAW,MACxF,IAAK9C,EACD,OAEJA,EAAQyB,KAAO,OAAHY,OArBD,EAqBWM,EAAgB,OAAAN,OAAMZ,GAC5CzB,EAAQ+C,aAAe,SACvB/C,EAAQgD,UAAY,SACpBhD,EAAQiD,SAASf,EAAOS,EAASA,GACjCjD,EAAYmD,EAAOK,uBACvB,KACK,CACD,MAAML,EAASM,SAASC,cAAc,UACtCP,EAAOQ,MAAQb,EACfK,EAAOS,OAASd,EAChB,MAAMxC,EAAU6C,EAAOC,WAAW,MAClC,IAAK9C,EACD,OAEJA,EAAQyB,KAAO,OAAHY,OAnCD,EAmCWM,EAAgB,OAAAN,OAAMZ,GAC5CzB,EAAQ+C,aAAe,SACvB/C,EAAQgD,UAAY,SACpBhD,EAAQiD,SAASf,EAAOS,EAASA,GACjCjD,EAAYmD,CAChB,CACAxD,KAAKC,gBAAgBiE,IAAI9D,EAAKC,GAC9BO,EAASP,UAAYA,CACzB,E","sources":["../node_modules/@tsparticles/shape-emoji/browser/EmojiDrawer.js","../node_modules/@tsparticles/shape-emoji/browser/Utils.js"],"sourcesContent":["import { executeOnSingleOrMultiple, getRangeMax, isInArray, itemFromSingleOrMultiple, loadFont, } from \"@tsparticles/engine\";\nimport { drawEmoji } from \"./Utils.js\";\nimport { validTypes } from \"./Constants.js\";\nconst defaultFont = '\"Twemoji Mozilla\", Apple Color Emoji, \"Segoe UI Emoji\", \"Noto Color Emoji\", \"EmojiOne Color\"';\nexport class EmojiDrawer {\n constructor() {\n this._emojiShapeDict = new Map();\n }\n destroy() {\n for (const [key, emojiData] of this._emojiShapeDict) {\n if (emojiData instanceof ImageBitmap) {\n emojiData?.close();\n this._emojiShapeDict.delete(key);\n }\n }\n }\n draw(data) {\n drawEmoji(data);\n }\n async init(container) {\n const options = container.actualOptions;\n if (!validTypes.find((t) => isInArray(t, options.particles.shape.type))) {\n return;\n }\n const promises = [loadFont(defaultFont)], shapeOptions = validTypes\n .map((t) => options.particles.shape.options[t])\n .find((t) => !!t);\n if (shapeOptions) {\n executeOnSingleOrMultiple(shapeOptions, (shape) => {\n if (shape.font) {\n promises.push(loadFont(shape.font));\n }\n });\n }\n await Promise.all(promises);\n }\n particleDestroy(particle) {\n delete particle.emojiData;\n }\n particleInit(container, particle) {\n const double = 2, shapeData = particle.shapeData;\n if (!shapeData?.value) {\n return;\n }\n const emoji = itemFromSingleOrMultiple(shapeData.value, particle.randomIndexData), font = shapeData.font ?? defaultFont;\n if (!emoji) {\n return;\n }\n const key = `${emoji}_${font}`, existingData = this._emojiShapeDict.get(key);\n if (existingData) {\n particle.emojiData = existingData;\n return;\n }\n const canvasSize = getRangeMax(particle.size.value) * double;\n let emojiData;\n const maxSize = getRangeMax(particle.size.value);\n if (typeof OffscreenCanvas !== \"undefined\") {\n const canvas = new OffscreenCanvas(canvasSize, canvasSize), context = canvas.getContext(\"2d\");\n if (!context) {\n return;\n }\n context.font = `400 ${maxSize * double}px ${font}`;\n context.textBaseline = \"middle\";\n context.textAlign = \"center\";\n context.fillText(emoji, maxSize, maxSize);\n emojiData = canvas.transferToImageBitmap();\n }\n else {\n const canvas = document.createElement(\"canvas\");\n canvas.width = canvasSize;\n canvas.height = canvasSize;\n const context = canvas.getContext(\"2d\");\n if (!context) {\n return;\n }\n context.font = `400 ${maxSize * double}px ${font}`;\n context.textBaseline = \"middle\";\n context.textAlign = \"center\";\n context.fillText(emoji, maxSize, maxSize);\n emojiData = canvas;\n }\n this._emojiShapeDict.set(key, emojiData);\n particle.emojiData = emojiData;\n }\n}\n","export function drawEmoji(data) {\n const { context, particle, radius, opacity } = data, emojiData = particle.emojiData, double = 2, diameter = radius * double, previousAlpha = context.globalAlpha;\n if (!emojiData) {\n return;\n }\n context.globalAlpha = opacity;\n context.drawImage(emojiData, -radius, -radius, diameter, diameter);\n context.globalAlpha = previousAlpha;\n}\n"],"names":["defaultFont","EmojiDrawer","constructor","this","_emojiShapeDict","Map","destroy","key","emojiData","ImageBitmap","close","delete","draw","data","context","particle","radius","opacity","diameter","previousAlpha","globalAlpha","drawImage","drawEmoji","init","container","options","actualOptions","validTypes","find","t","isInArray","particles","shape","type","promises","loadFont","shapeOptions","map","executeOnSingleOrMultiple","font","push","Promise","all","particleDestroy","particleInit","_shapeData$font","shapeData","value","emoji","itemFromSingleOrMultiple","randomIndexData","concat","existingData","get","canvasSize","getRangeMax","size","maxSize","OffscreenCanvas","canvas","getContext","textBaseline","textAlign","fillText","transferToImageBitmap","document","createElement","width","height","set"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/1638.ddae288b.chunk.js","mappings":"yJAGA,MAAMA,EAAc,+FACb,MAAMC,EACTC,WAAAA,GACIC,KAAKC,gBAAkB,IAAIC,GAC/B,CACAC,OAAAA,GACI,IAAK,MAAOC,EAAKC,KAAcL,KAAKC,gBAC5BI,aAAqBC,cACZ,OAATD,QAAS,IAATA,GAAAA,EAAWE,QACXP,KAAKC,gBAAgBO,OAAOJ,GAGxC,CACAK,IAAAA,CAAKC,IChBF,SAAmBA,GACtB,MAAM,QAAEC,EAAO,SAAEC,EAAQ,OAAEC,EAAM,QAAEC,GAAYJ,EAAML,EAAYO,EAASP,UAAuBU,EAAH,EAAcF,EAAiBG,EAAgBL,EAAQM,YAChJZ,IAGLM,EAAQM,YAAcH,EACtBH,EAAQO,UAAUb,GAAYQ,GAASA,EAAQE,EAAUA,GACzDJ,EAAQM,YAAcD,EAC1B,CDSQG,CAAUT,EACd,CACA,UAAMU,CAAKC,GACP,MAAMC,EAAUD,EAAUE,cAC1B,IAAKC,EAAAA,EAAWC,MAAMC,IAAMC,EAAAA,EAAAA,IAAUD,EAAGJ,EAAQM,UAAUC,MAAMC,QAC7D,OAEJ,MAAMC,EAAW,EAACC,EAAAA,EAAAA,IAASnC,IAAeoC,EAAeT,EAAAA,EACpDU,KAAKR,GAAMJ,EAAQM,UAAUC,MAAMP,QAAQI,KAC3CD,MAAMC,KAAQA,IACfO,IACAE,EAAAA,EAAAA,IAA0BF,GAAeJ,IACjCA,EAAMO,MACNL,EAASM,MAAKL,EAAAA,EAAAA,IAASH,EAAMO,MACjC,UAGFE,QAAQC,IAAIR,EACtB,CACAS,eAAAA,CAAgB5B,UACLA,EAASP,SACpB,CACAoC,YAAAA,CAAapB,EAAWT,GAAU,IAAA8B,EAC9B,MAAkBC,EAAY/B,EAAS+B,UACvC,GAAc,OAATA,QAAS,IAATA,IAAAA,EAAWC,MACZ,OAEJ,MAAMC,GAAQC,EAAAA,EAAAA,IAAyBH,EAAUC,MAAOhC,EAASmC,iBAAkBX,EAAqB,QAAjBM,EAAGC,EAAUP,YAAI,IAAAM,EAAAA,EAAI7C,EAC5G,IAAKgD,EACD,OAEJ,MAAMzC,EAAM,GAAH4C,OAAMH,EAAK,KAAAG,OAAIZ,GAAQa,EAAejD,KAAKC,gBAAgBiD,IAAI9C,GACxE,GAAI6C,EAEA,YADArC,EAASP,UAAY4C,GAGzB,MAAME,EAbS,GAaIC,EAAAA,EAAAA,IAAYxC,EAASyC,KAAKT,OAC7C,IAAIvC,EACJ,MAAMiD,GAAUF,EAAAA,EAAAA,IAAYxC,EAASyC,KAAKT,OAC1C,GAA+B,qBAApBW,gBAAiC,CACxC,MAAMC,EAAS,IAAID,gBAAgBJ,EAAYA,GAAaxC,EAAU6C,EAAOC,WAAW,MACxF,IAAK9C,EACD,OAEJA,EAAQyB,KAAO,OAAHY,OArBD,EAqBWM,EAAgB,OAAAN,OAAMZ,GAC5CzB,EAAQ+C,aAAe,SACvB/C,EAAQgD,UAAY,SACpBhD,EAAQiD,SAASf,EAAOS,EAASA,GACjCjD,EAAYmD,EAAOK,uBACvB,KACK,CACD,MAAML,EAASM,SAASC,cAAc,UACtCP,EAAOQ,MAAQb,EACfK,EAAOS,OAASd,EAChB,MAAMxC,EAAU6C,EAAOC,WAAW,MAClC,IAAK9C,EACD,OAEJA,EAAQyB,KAAO,OAAHY,OAnCD,EAmCWM,EAAgB,OAAAN,OAAMZ,GAC5CzB,EAAQ+C,aAAe,SACvB/C,EAAQgD,UAAY,SACpBhD,EAAQiD,SAASf,EAAOS,EAASA,GACjCjD,EAAYmD,CAChB,CACAxD,KAAKC,gBAAgBiE,IAAI9D,EAAKC,GAC9BO,EAASP,UAAYA,CACzB,E","sources":["../node_modules/@tsparticles/shape-emoji/browser/EmojiDrawer.js","../node_modules/@tsparticles/shape-emoji/browser/Utils.js"],"sourcesContent":["import { executeOnSingleOrMultiple, getRangeMax, isInArray, itemFromSingleOrMultiple, loadFont, } from \"@tsparticles/engine\";\nimport { drawEmoji } from \"./Utils.js\";\nimport { validTypes } from \"./Constants.js\";\nconst defaultFont = '\"Twemoji Mozilla\", Apple Color Emoji, \"Segoe UI Emoji\", \"Noto Color Emoji\", \"EmojiOne Color\"';\nexport class EmojiDrawer {\n constructor() {\n this._emojiShapeDict = new Map();\n }\n destroy() {\n for (const [key, emojiData] of this._emojiShapeDict) {\n if (emojiData instanceof ImageBitmap) {\n emojiData?.close();\n this._emojiShapeDict.delete(key);\n }\n }\n }\n draw(data) {\n drawEmoji(data);\n }\n async init(container) {\n const options = container.actualOptions;\n if (!validTypes.find((t) => isInArray(t, options.particles.shape.type))) {\n return;\n }\n const promises = [loadFont(defaultFont)], shapeOptions = validTypes\n .map((t) => options.particles.shape.options[t])\n .find((t) => !!t);\n if (shapeOptions) {\n executeOnSingleOrMultiple(shapeOptions, (shape) => {\n if (shape.font) {\n promises.push(loadFont(shape.font));\n }\n });\n }\n await Promise.all(promises);\n }\n particleDestroy(particle) {\n delete particle.emojiData;\n }\n particleInit(container, particle) {\n const double = 2, shapeData = particle.shapeData;\n if (!shapeData?.value) {\n return;\n }\n const emoji = itemFromSingleOrMultiple(shapeData.value, particle.randomIndexData), font = shapeData.font ?? defaultFont;\n if (!emoji) {\n return;\n }\n const key = `${emoji}_${font}`, existingData = this._emojiShapeDict.get(key);\n if (existingData) {\n particle.emojiData = existingData;\n return;\n }\n const canvasSize = getRangeMax(particle.size.value) * double;\n let emojiData;\n const maxSize = getRangeMax(particle.size.value);\n if (typeof OffscreenCanvas !== \"undefined\") {\n const canvas = new OffscreenCanvas(canvasSize, canvasSize), context = canvas.getContext(\"2d\");\n if (!context) {\n return;\n }\n context.font = `400 ${maxSize * double}px ${font}`;\n context.textBaseline = \"middle\";\n context.textAlign = \"center\";\n context.fillText(emoji, maxSize, maxSize);\n emojiData = canvas.transferToImageBitmap();\n }\n else {\n const canvas = document.createElement(\"canvas\");\n canvas.width = canvasSize;\n canvas.height = canvasSize;\n const context = canvas.getContext(\"2d\");\n if (!context) {\n return;\n }\n context.font = `400 ${maxSize * double}px ${font}`;\n context.textBaseline = \"middle\";\n context.textAlign = \"center\";\n context.fillText(emoji, maxSize, maxSize);\n emojiData = canvas;\n }\n this._emojiShapeDict.set(key, emojiData);\n particle.emojiData = emojiData;\n }\n}\n","export function drawEmoji(data) {\n const { context, particle, radius, opacity } = data, emojiData = particle.emojiData, double = 2, diameter = radius * double, previousAlpha = context.globalAlpha;\n if (!emojiData) {\n return;\n }\n context.globalAlpha = opacity;\n context.drawImage(emojiData, -radius, -radius, diameter, diameter);\n context.globalAlpha = previousAlpha;\n}\n"],"names":["defaultFont","EmojiDrawer","constructor","this","_emojiShapeDict","Map","destroy","key","emojiData","ImageBitmap","close","delete","draw","data","context","particle","radius","opacity","diameter","previousAlpha","globalAlpha","drawImage","drawEmoji","init","container","options","actualOptions","validTypes","find","t","isInArray","particles","shape","type","promises","loadFont","shapeOptions","map","executeOnSingleOrMultiple","font","push","Promise","all","particleDestroy","particleInit","_shapeData$font","shapeData","value","emoji","itemFromSingleOrMultiple","randomIndexData","concat","existingData","get","canvasSize","getRangeMax","size","maxSize","OffscreenCanvas","canvas","getContext","textBaseline","textAlign","fillText","transferToImageBitmap","document","createElement","width","height","set"],"sourceRoot":""} \ No newline at end of file diff --git a/build/static/js/175.5150db6f.chunk.js b/build/static/js/175.5150db6f.chunk.js deleted file mode 100644 index 1328cbe..0000000 --- a/build/static/js/175.5150db6f.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkclient=self.webpackChunkclient||[]).push([[175],{175:(t,a,e)=>{async function n(t){let a=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];await t.addInteractor("particlesAttract",(async t=>{const{Attractor:a}=await e.e(2323).then(e.bind(e,2323));return new a(t)}),a)}e.d(a,{loadParticlesAttractInteraction:()=>n})}}]); -//# sourceMappingURL=175.5150db6f.chunk.js.map \ No newline at end of file diff --git a/build/static/js/175.b6dc1cac.chunk.js b/build/static/js/175.b6dc1cac.chunk.js new file mode 100644 index 0000000..a046b09 --- /dev/null +++ b/build/static/js/175.b6dc1cac.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkresview=self.webpackChunkresview||[]).push([[175],{175:(t,e,a)=>{async function n(t){let e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];await t.addInteractor("particlesAttract",(async t=>{const{Attractor:e}=await a.e(2323).then(a.bind(a,2323));return new e(t)}),e)}a.d(e,{loadParticlesAttractInteraction:()=>n})}}]); +//# sourceMappingURL=175.b6dc1cac.chunk.js.map \ No newline at end of file diff --git a/build/static/js/175.5150db6f.chunk.js.map b/build/static/js/175.b6dc1cac.chunk.js.map similarity index 83% rename from build/static/js/175.5150db6f.chunk.js.map rename to build/static/js/175.b6dc1cac.chunk.js.map index 29673c7..572cf80 100644 --- a/build/static/js/175.5150db6f.chunk.js.map +++ b/build/static/js/175.b6dc1cac.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/175.5150db6f.chunk.js","mappings":"8FAAOA,eAAeC,EAAgCC,GAAwB,IAAhBC,IAAOC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,KAAAA,UAAA,SAC3DF,EAAOK,cAAc,oBAAoBP,UAC3C,MAAM,UAAEQ,SAAoB,+BAC5B,OAAO,IAAIA,EAAUC,EAAU,GAChCN,EACP,C","sources":["../node_modules/@tsparticles/interaction-particles-attract/browser/index.js"],"sourcesContent":["export async function loadParticlesAttractInteraction(engine, refresh = true) {\n await engine.addInteractor(\"particlesAttract\", async (container) => {\n const { Attractor } = await import(\"./Attractor.js\");\n return new Attractor(container);\n }, refresh);\n}\n"],"names":["async","loadParticlesAttractInteraction","engine","refresh","arguments","length","undefined","addInteractor","Attractor","container"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/175.b6dc1cac.chunk.js","mappings":"gGAAOA,eAAeC,EAAgCC,GAAwB,IAAhBC,IAAOC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,KAAAA,UAAA,SAC3DF,EAAOK,cAAc,oBAAoBP,UAC3C,MAAM,UAAEQ,SAAoB,+BAC5B,OAAO,IAAIA,EAAUC,EAAU,GAChCN,EACP,C","sources":["../node_modules/@tsparticles/interaction-particles-attract/browser/index.js"],"sourcesContent":["export async function loadParticlesAttractInteraction(engine, refresh = true) {\n await engine.addInteractor(\"particlesAttract\", async (container) => {\n const { Attractor } = await import(\"./Attractor.js\");\n return new Attractor(container);\n }, refresh);\n}\n"],"names":["async","loadParticlesAttractInteraction","engine","refresh","arguments","length","undefined","addInteractor","Attractor","container"],"sourceRoot":""} \ No newline at end of file diff --git a/build/static/js/1927.1aafad7e.chunk.js b/build/static/js/1927.1aafad7e.chunk.js deleted file mode 100644 index 5bab1dd..0000000 --- a/build/static/js/1927.1aafad7e.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkclient=self.webpackChunkclient||[]).push([[1927],{1927:(t,i,e)=>{e.d(i,{Container:()=>D});var s=e(2496),n=e(8164),o=e(6480),a=e(753);function r(t,i,e){const s=i[e];var n;void 0!==s&&(t[e]=(null!==(n=t[e])&&void 0!==n?n:1)*s)}function h(t,i){let e=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(!i)return;if(!t)return;const s=t.style;if(s)for(const n in i){const t=i[n];t&&s.setProperty(n,t,e?"important":"")}}class l{constructor(t){this.container=t,this._applyPostDrawUpdaters=t=>{for(const e of this._postDrawUpdaters){var i;null===(i=e.afterDraw)||void 0===i||i.call(e,t)}},this._applyPreDrawUpdaters=(t,i,e,s,n,o)=>{for(const h of this._preDrawUpdaters){var a;if(h.getColorStyles){const{fill:o,stroke:a}=h.getColorStyles(i,t,e,s);o&&(n.fill=o),a&&(n.stroke=a)}if(h.getTransformValues){const t=h.getTransformValues(i);for(const i in t)r(o,t,i)}null===(a=h.beforeDraw)||void 0===a||a.call(h,i)}},this._applyResizePlugins=()=>{for(const i of this._resizePlugins){var t;null===(t=i.resize)||void 0===t||t.call(i)}},this._getPluginParticleColors=t=>{let i,e;for(const s of this._colorPlugins)if(!i&&s.particleFillColor&&(i=(0,a.R5)(s.particleFillColor(t))),!e&&s.particleStrokeColor&&(e=(0,a.R5)(s.particleStrokeColor(t))),i&&e)break;return[i,e]},this._initCover=async()=>{const t=this.container.actualOptions.backgroundMask.cover,i=t.color;if(i){const e=(0,a.BN)(i);if(e){const i={...e,a:t.opacity};this._coverColorStyle=(0,a.xx)(i,i.a)}}else await new Promise(((i,e)=>{if(!t.image)return;const s=document.createElement("img");s.addEventListener("load",(()=>{this._coverImage={image:s,opacity:t.opacity},i()})),s.addEventListener("error",(t=>{e(t.error)})),s.src=t.image}))},this._initStyle=()=>{const t=this.element,i=this.container.actualOptions;if(t){this._fullScreen?(this._originalStyle=(0,n.zw)({},t.style),this._setFullScreenStyle()):this._resetOriginalStyle();for(const e in i.style){if(!e||!i.style)continue;const s=i.style[e];s&&t.style.setProperty(e,s,"important")}}},this._initTrail=async()=>{const t=this.container.actualOptions.particles.move.trail,i=t.fill;if(!t.enable)return;const e=1/t.length;if(i.color){const t=(0,a.BN)(i.color);if(!t)return;this._trailFill={color:{...t},opacity:e}}else await new Promise(((t,s)=>{if(!i.image)return;const n=document.createElement("img");n.addEventListener("load",(()=>{this._trailFill={image:n,opacity:e},t()})),n.addEventListener("error",(t=>{s(t.error)})),n.src=i.image}))},this._paintBase=t=>{this.draw((i=>(0,o.Sn)(i,this.size,t)))},this._paintImage=(t,i)=>{this.draw((e=>(0,o.Md)(e,this.size,t,i)))},this._repairStyle=()=>{const t=this.element;t&&(this._safeMutationObserver((t=>t.disconnect())),this._initStyle(),this.initBackground(),this._safeMutationObserver((i=>i.observe(t,{attributes:!0}))))},this._resetOriginalStyle=()=>{const t=this.element,i=this._originalStyle;t&&i&&h(t,i)},this._safeMutationObserver=t=>{this._mutationObserver&&t(this._mutationObserver)},this._setFullScreenStyle=()=>{const t=this.element;if(!t)return;h(t,{position:"fixed",zIndex:this.container.actualOptions.fullScreen.zIndex.toString(10),top:"0",left:"0",width:"100%",height:"100%"},!0)},this.size={height:0,width:0},this._context=null,this._generated=!1,this._preDrawUpdaters=[],this._postDrawUpdaters=[],this._resizePlugins=[],this._colorPlugins=[]}get _fullScreen(){return this.container.actualOptions.fullScreen.enable}clear(){const t=this.container.actualOptions,i=t.particles.move.trail,e=this._trailFill;t.backgroundMask.enable?this.paint():i.enable&&i.length>0&&e?e.color?this._paintBase((0,a.xx)(e.color,e.opacity)):e.image&&this._paintImage(e.image,e.opacity):t.clear&&this.draw((t=>{(0,o.IU)(t,this.size)}))}destroy(){if(this.stop(),this._generated){const t=this.element;null===t||void 0===t||t.remove()}else this._resetOriginalStyle();this._preDrawUpdaters=[],this._postDrawUpdaters=[],this._resizePlugins=[],this._colorPlugins=[]}draw(t){const i=this._context;if(i)return t(i)}drawAsync(t){const i=this._context;if(i)return t(i)}drawParticle(t,i){var e;if(t.spawning||t.destroyed)return;const s=t.getRadius();if(s<=0)return;const n=t.getFillColor(),r=null!==(e=t.getStrokeColor())&&void 0!==e?e:n;let[h,l]=this._getPluginParticleColors(t);h||(h=n),l||(l=r),(h||l)&&this.draw((e=>{var n,r,c,d;const u=this.container,p=u.actualOptions,f=t.options.zIndex,v=1-t.zIndexFactor,_=v**f.opacityRate,g=null!==(n=null!==(r=t.bubble.opacity)&&void 0!==r?r:null===(c=t.opacity)||void 0===c?void 0:c.value)&&void 0!==n?n:1,m=g*_,y=(null!==(d=t.strokeOpacity)&&void 0!==d?d:g)*_,w={},b={fill:h?(0,a.LC)(h,m):void 0};b.stroke=l?(0,a.LC)(l,y):b.fill,this._applyPreDrawUpdaters(e,t,s,m,b,w),(0,o.p0)({container:u,context:e,particle:t,delta:i,colorStyles:b,backgroundMask:p.backgroundMask.enable,composite:p.backgroundMask.composite,radius:s*v**f.sizeRate,opacity:m,shadow:t.options.shadow,transform:w}),this._applyPostDrawUpdaters(t)}))}drawParticlePlugin(t,i,e){this.draw((s=>(0,o.Wb)(s,t,i,e)))}drawPlugin(t,i){this.draw((e=>(0,o.e_)(e,t,i)))}async init(){this._safeMutationObserver((t=>t.disconnect())),this._mutationObserver=(0,n.tG)((t=>{for(const i of t)"attributes"===i.type&&"style"===i.attributeName&&this._repairStyle()})),this.resize(),this._initStyle(),await this._initCover();try{await this._initTrail()}catch(t){(0,n.tZ)().error(t)}this.initBackground(),this._safeMutationObserver((t=>{this.element&&t.observe(this.element,{attributes:!0})})),this.initUpdaters(),this.initPlugins(),this.paint()}initBackground(){const t=this.container.actualOptions.background,i=this.element;if(!i)return;const e=i.style;if(e){if(t.color){const i=(0,a.BN)(t.color);e.backgroundColor=i?(0,a.xx)(i,t.opacity):""}else e.backgroundColor="";e.backgroundImage=t.image||"",e.backgroundPosition=t.position||"",e.backgroundRepeat=t.repeat||"",e.backgroundSize=t.size||""}}initPlugins(){this._resizePlugins=[];for(const[,i]of this.container.plugins){var t;i.resize&&this._resizePlugins.push(i),(null!==(t=i.particleFillColor)&&void 0!==t?t:i.particleStrokeColor)&&this._colorPlugins.push(i)}}initUpdaters(){this._preDrawUpdaters=[],this._postDrawUpdaters=[];for(const e of this.container.particles.updaters){var t,i;e.afterDraw&&this._postDrawUpdaters.push(e),(null!==(t=null!==(i=e.getColorStyles)&&void 0!==i?i:e.getTransformValues)&&void 0!==t?t:e.beforeDraw)&&this._preDrawUpdaters.push(e)}}loadCanvas(t){this._generated&&this.element&&this.element.remove(),this._generated=t.dataset&&s.eb in t.dataset?"true"===t.dataset[s.eb]:this._generated,this.element=t,this.element.ariaHidden="true",this._originalStyle=(0,n.zw)({},this.element.style),this.size.height=t.offsetHeight,this.size.width=t.offsetWidth,this._context=this.element.getContext("2d"),this._safeMutationObserver((t=>{this.element&&t.observe(this.element,{attributes:!0})})),this.container.retina.init(),this.initBackground()}paint(){const t=this.container.actualOptions;this.draw((i=>{t.backgroundMask.enable&&t.backgroundMask.cover?((0,o.IU)(i,this.size),this._coverImage?this._paintImage(this._coverImage.image,this._coverImage.opacity):this._coverColorStyle?this._paintBase(this._coverColorStyle):this._paintBase()):this._paintBase()}))}resize(){if(!this.element)return!1;const t=this.container,i=t.retina.pixelRatio,e=t.canvas.size,s=this.element.offsetWidth*i,n=this.element.offsetHeight*i;if(n===e.height&&s===e.width&&n===this.element.height&&s===this.element.width)return!1;const o={...e};return this.element.width=e.width=this.element.offsetWidth*i,this.element.height=e.height=this.element.offsetHeight*i,this.container.started&&t.particles.setResizeFactor({width:e.width/o.width,height:e.height/o.height}),!0}stop(){this._safeMutationObserver((t=>t.disconnect())),this._mutationObserver=void 0,this.draw((t=>(0,o.IU)(t,this.size)))}async windowResize(){if(!this.element||!this.resize())return;const t=this.container,i=t.updateActualOptions();t.particles.setDensity(),this._applyResizePlugins(),i&&await t.refresh()}}var c=e(5268);function d(t,i,e,s,n){if(s){let s={passive:!0};(0,c.Lm)(n)?s.capture=n:void 0!==n&&(s=n),t.addEventListener(i,e,s)}else{const s=n;t.removeEventListener(i,e,s)}}class u{constructor(t){this.container=t,this._doMouseTouchClick=t=>{const i=this.container,e=i.actualOptions;if(this._canPush){const t=i.interactivity.mouse,s=t.position;if(!s)return;t.clickPosition={...s},t.clickTime=(new Date).getTime();const o=e.interactivity.events.onClick;(0,n.wJ)(o.mode,(t=>this.container.handleClickMode(t)))}if("touchend"===t.type){setTimeout((()=>this._mouseTouchFinish()),500)}},this._handleThemeChange=t=>{const i=t,e=this.container,s=e.options,n=s.defaultThemes,o=i.matches?n.dark:n.light,a=s.themes.find((t=>t.name===o));a&&a.default.auto&&e.loadTheme(o)},this._handleVisibilityChange=()=>{const t=this.container,i=t.actualOptions;this._mouseTouchFinish(),i.pauseOnBlur&&(document&&document.hidden?(t.pageHidden=!0,t.pause()):(t.pageHidden=!1,t.animationStatus?t.play(!0):t.draw(!0)))},this._handleWindowResize=()=>{this._resizeTimeout&&(clearTimeout(this._resizeTimeout),delete this._resizeTimeout);const t=async()=>{const t=this.container.canvas;await(null===t||void 0===t?void 0:t.windowResize())};this._resizeTimeout=setTimeout((()=>{t()}),this.container.actualOptions.interactivity.events.resize.delay*s.Xu)},this._manageInteractivityListeners=(t,i)=>{const e=this._handlers,n=this.container,o=n.actualOptions,a=n.interactivity.element;if(!a)return;const r=a,h=n.canvas.element;h&&(h.style.pointerEvents=r===h?"initial":"none"),(o.interactivity.events.onHover.enable||o.interactivity.events.onClick.enable)&&(d(a,s.Rb,e.mouseMove,i),d(a,s.s7,e.touchStart,i),d(a,s.DG,e.touchMove,i),o.interactivity.events.onClick.enable?(d(a,s.Bp,e.touchEndClick,i),d(a,s.vo,e.mouseUp,i),d(a,s.ms,e.mouseDown,i)):d(a,s.Bp,e.touchEnd,i),d(a,t,e.mouseLeave,i),d(a,s.G3,e.touchCancel,i))},this._manageListeners=t=>{const i=this._handlers,e=this.container,n=e.actualOptions.interactivity.detectsOn,o=e.canvas.element;let a=s.Z0;if("window"===n)e.interactivity.element=window,a=s.sf;else if("parent"===n&&o){var r;e.interactivity.element=null!==(r=o.parentElement)&&void 0!==r?r:o.parentNode}else e.interactivity.element=o;this._manageMediaMatch(t),this._manageResize(t),this._manageInteractivityListeners(a,t),document&&d(document,s.nK,i.visibilityChange,t,!1)},this._manageMediaMatch=t=>{const i=this._handlers,e=(0,n.lV)("(prefers-color-scheme: dark)");e&&(void 0===e.addEventListener?void 0!==e.addListener&&(t?e.addListener(i.oldThemeChange):e.removeListener(i.oldThemeChange)):d(e,"change",i.themeChange,t))},this._manageResize=t=>{const i=this._handlers,e=this.container;if(!e.actualOptions.interactivity.events.resize)return;if("undefined"===typeof ResizeObserver)return void d(window,s.NF,i.resize,t);const n=e.canvas.element;this._resizeObserver&&!t?(n&&this._resizeObserver.unobserve(n),this._resizeObserver.disconnect(),delete this._resizeObserver):!this._resizeObserver&&t&&n&&(this._resizeObserver=new ResizeObserver((t=>{t.find((t=>t.target===n))&&this._handleWindowResize()})),this._resizeObserver.observe(n))},this._mouseDown=()=>{const{interactivity:t}=this.container;if(!t)return;const{mouse:i}=t;i.clicking=!0,i.downPosition=i.position},this._mouseTouchClick=t=>{const i=this.container,e=i.actualOptions,{mouse:s}=i.interactivity;s.inside=!0;let n=!1;const o=s.position;if(o&&e.interactivity.events.onClick.enable){for(const[,t]of i.plugins)if(t.clickPositionValid&&(n=t.clickPositionValid(o),n))break;n||this._doMouseTouchClick(t),s.clicking=!1}},this._mouseTouchFinish=()=>{const t=this.container.interactivity;if(!t)return;const i=t.mouse;delete i.position,delete i.clickPosition,delete i.downPosition,t.status=s.Z0,i.inside=!1,i.clicking=!1},this._mouseTouchMove=t=>{const i=this.container,e=i.actualOptions,n=i.interactivity,o=i.canvas.element;if(null===n||void 0===n||!n.element)return;let a;if(n.mouse.inside=!0,t.type.startsWith("pointer")){this._canPush=!0;const i=t;if(n.element===window){if(o){const t=o.getBoundingClientRect();a={x:i.clientX-t.left,y:i.clientY-t.top}}}else if("parent"===e.interactivity.detectsOn){const t=i.target,e=i.currentTarget;if(t&&e&&o){const s=t.getBoundingClientRect(),n=e.getBoundingClientRect(),r=o.getBoundingClientRect();a={x:i.offsetX+2*s.left-(n.left+r.left),y:i.offsetY+2*s.top-(n.top+r.top)}}else{var r,h;a={x:null!==(r=i.offsetX)&&void 0!==r?r:i.clientX,y:null!==(h=i.offsetY)&&void 0!==h?h:i.clientY}}}else if(i.target===o){var l,c;a={x:null!==(l=i.offsetX)&&void 0!==l?l:i.clientX,y:null!==(c=i.offsetY)&&void 0!==c?c:i.clientY}}}else if(this._canPush="touchmove"!==t.type,o){var d,u;const i=t,e=1,s=i.touches[i.touches.length-e],n=o.getBoundingClientRect(),r=0;a={x:s.clientX-(null!==(d=n.left)&&void 0!==d?d:r),y:s.clientY-(null!==(u=n.top)&&void 0!==u?u:r)}}const p=i.retina.pixelRatio;a&&(a.x*=p,a.y*=p),n.mouse.position=a,n.status=s.Rb},this._touchEnd=t=>{const i=t,e=Array.from(i.changedTouches);for(const s of e)this._touches.delete(s.identifier);this._mouseTouchFinish()},this._touchEndClick=t=>{const i=t,e=Array.from(i.changedTouches);for(const s of e)this._touches.delete(s.identifier);this._mouseTouchClick(t)},this._touchStart=t=>{const i=t,e=Array.from(i.changedTouches);for(const s of e)this._touches.set(s.identifier,performance.now());this._mouseTouchMove(t)},this._canPush=!0,this._touches=new Map,this._handlers={mouseDown:()=>this._mouseDown(),mouseLeave:()=>this._mouseTouchFinish(),mouseMove:t=>this._mouseTouchMove(t),mouseUp:t=>this._mouseTouchClick(t),touchStart:t=>this._touchStart(t),touchMove:t=>this._mouseTouchMove(t),touchEnd:t=>this._touchEnd(t),touchCancel:t=>this._touchEnd(t),touchEndClick:t=>this._touchEndClick(t),visibilityChange:()=>this._handleVisibilityChange(),themeChange:t=>this._handleThemeChange(t),oldThemeChange:t=>this._handleThemeChange(t),resize:()=>{this._handleWindowResize()}}}addListeners(){this._manageListeners(!0)}removeListeners(){this._manageListeners(!1)}}var p=e(8888);class f{constructor(t,i){this.container=i,this._engine=t,this._interactors=[],this._externalInteractors=[],this._particleInteractors=[]}externalInteract(t){for(const i of this._externalInteractors)i.isEnabled()&&i.interact(t)}handleClickMode(t){for(const e of this._externalInteractors){var i;null===(i=e.handleClickMode)||void 0===i||i.call(e,t)}}async init(){this._interactors=await this._engine.getInteractors(this.container,!0),this._externalInteractors=[],this._particleInteractors=[];for(const t of this._interactors){switch(t.type){case"external":this._externalInteractors.push(t);break;case"particles":this._particleInteractors.push(t)}t.init()}}particlesInteract(t,i){for(const e of this._externalInteractors)e.clear(t,i);for(const e of this._particleInteractors)e.isEnabled(t)&&e.interact(t,i)}reset(t){for(const i of this._externalInteractors)i.isEnabled()&&i.reset(t);for(const i of this._particleInteractors)i.isEnabled(t)&&i.reset(t)}}var v=e(8025),_=e(9135),g=e(1189),m=e(8802);const y=.5;function w(t){if(!(0,n.hn)(t.outMode,t.checkModes))return;const i=2*t.radius;t.coord>t.maxCoord-i?t.setCb(-t.radius):t.coord3&&void 0!==arguments[3]?arguments[3]:0;for(const[,_]of t.plugins){const t=void 0!==_.particlePosition?_.particlePosition(i,e):void 0;if(t)return v.p.create(t.x,t.y,s)}const l=t.canvas.size,c=(0,_.Nx)({size:l,position:i}),d=v.p.create(c.x,c.y,s),u=e.getRadius(),p=e.options.move.outModes,f=i=>{w({outMode:i,checkModes:["bounce"],coord:d.x,maxCoord:t.canvas.size.width,setCb:t=>d.x+=t,radius:u})},g=i=>{w({outMode:i,checkModes:["bounce"],coord:d.y,maxCoord:t.canvas.size.height,setCb:t=>d.y+=t,radius:u})};if(f(null!==(n=p.left)&&void 0!==n?n:p.default),f(null!==(o=p.right)&&void 0!==o?o:p.default),g(null!==(a=p.top)&&void 0!==a?a:p.default),g(null!==(r=p.bottom)&&void 0!==r?r:p.default),e._checkOverlap(d,h)){const i=1;return e._calcPosition(t,void 0,s,h+i)}return d},this._calculateVelocity=()=>{const t=(0,_.$m)(this.direction).copy(),i=this.options.move;if("inside"===i.direction||"outside"===i.direction)return t;const e=(0,_.pu)((0,_.VG)(i.angle.value)),s=(0,_.pu)((0,_.VG)(i.angle.offset)),n={left:s-e*y,right:s+e*y};return i.straight||(t.angle+=(0,_.U4)((0,_.DT)(n.left,n.right))),i.random&&"number"===typeof i.speed&&(t.length*=(0,_.G0)()),t},this._checkOverlap=function(t){let i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;const n=e.options.collisions,o=e.getRadius();if(!n.enable)return!1;const a=n.overlap;if(a.enable)return!1;const r=a.retries;if(r>=0&&i>r)throw new Error("".concat(s.dI," particle is overlapping and can't be placed"));return!!e.container.particles.find((i=>(0,_.Yf)(t,i.position){var i;if(!t||!this.roll||!this.backColor&&!this.roll.alter)return t;const e=this.roll.horizontal&&this.roll.vertical?2:1,s=this.roll.horizontal?Math.PI*y:0;return Math.floor(((null!==(i=this.roll.angle)&&void 0!==i?i:0)+s)/(Math.PI/e))%2?this.backColor?this.backColor:this.roll.alter?(0,o.yx)(t,this.roll.alter.type,this.roll.alter.value):t:t},this._initPosition=t=>{var i,e;const s=this.container,o=(0,_.VG)(this.options.zIndex.value);this.position=this._calcPosition(s,t,(0,_.qE)(o,0,s.zLayers)),this.initialPosition=this.position.copy();const a=s.canvas.size;switch(this.moveCenter={...(0,n.E9)(this.options.move.center,a),radius:null!==(i=this.options.move.center.radius)&&void 0!==i?i:0,mode:null!==(e=this.options.move.center.mode)&&void 0!==e?e:"percent"},this.direction=(0,_.JY)(this.options.move.direction,this.position,this.moveCenter),this.options.move.direction){case"inside":this.outType="inside";break;case"outside":this.outType="outside"}this.offset=v.M.origin},this._engine=t}destroy(t){var i;if(this.unbreakable||this.destroyed)return;this.destroyed=!0,this.bubble.inRange=!1,this.slow.inRange=!1;const e=this.container,s=this.pathGenerator,n=e.shapeDrawers.get(this.shape);null===n||void 0===n||null===(i=n.particleDestroy)||void 0===i||i.call(n,this);for(const[,r]of e.plugins){var o;null===(o=r.particleDestroyed)||void 0===o||o.call(r,this,t)}for(const r of e.particles.updaters){var a;null===(a=r.particleDestroyed)||void 0===a||a.call(r,this,t)}null===s||void 0===s||s.reset(this),this._engine.dispatchEvent("particleDestroyed",{container:this.container,data:{particle:this}})}draw(t){const i=this.container,e=i.canvas;for(const[,s]of i.plugins)e.drawParticlePlugin(s,this,t);e.drawParticle(this,t)}getFillColor(){var t;return this._getRollColor(null!==(t=this.bubble.color)&&void 0!==t?t:(0,a.O_)(this.color))}getMass(){return this.getRadius()**2*Math.PI*y}getPosition(){return{x:this.position.x+this.offset.x,y:this.position.y+this.offset.y,z:this.position.z}}getRadius(){var t;return null!==(t=this.bubble.radius)&&void 0!==t?t:this.size.value}getStrokeColor(){var t;return this._getRollColor(null!==(t=this.bubble.color)&&void 0!==t?t:(0,a.O_)(this.strokeColor))}init(t,i,e,o){var r,h,l,c,d,u,p,f,v,y,w;const b=this.container,z=this._engine;this.id=t,this.group=o,this.effectClose=!0,this.effectFill=!0,this.shapeClose=!0,this.shapeFill=!0,this.pathRotation=!1,this.lastPathTime=0,this.destroyed=!1,this.unbreakable=!1,this.rotation=0,this.misplaced=!1,this.retina={maxDistance:{}},this.outType="normal",this.ignoresResizeRatio=!0;const C=b.retina.pixelRatio,x=b.actualOptions,k=(0,m.y)(this._engine,b,x.particles),P=k.effect.type,O=k.shape.type,{reduceDuplicates:T}=k;this.effect=(0,n.TA)(P,this.id,T),this.shape=(0,n.TA)(O,this.id,T);const M=k.effect,S=k.shape;if(e){var D,I;if(null!==(D=e.effect)&&void 0!==D&&D.type){const t=e.effect.type,i=(0,n.TA)(t,this.id,T);i&&(this.effect=i,M.load(e.effect))}if(null!==(I=e.shape)&&void 0!==I&&I.type){const t=e.shape.type,i=(0,n.TA)(t,this.id,T);i&&(this.shape=i,S.load(e.shape))}}this.effectData=function(t,i,e,s){const o=i.options[t];if(o)return(0,n.zw)({close:i.close,fill:i.fill},(0,n.TA)(o,e,s))}(this.effect,M,this.id,T),this.shapeData=function(t,i,e,s){const o=i.options[t];if(o)return(0,n.zw)({close:i.close,fill:i.fill},(0,n.TA)(o,e,s))}(this.shape,S,this.id,T),k.load(e);const R=this.effectData;R&&k.load(R.particles);const E=this.shapeData;E&&k.load(E.particles);const L=new g.k(z,b);L.load(b.actualOptions.interactivity),L.load(k.interactivity),this.interactivity=L,this.effectFill=null!==(r=null===R||void 0===R?void 0:R.fill)&&void 0!==r?r:k.effect.fill,this.effectClose=null!==(h=null===R||void 0===R?void 0:R.close)&&void 0!==h?h:k.effect.close,this.shapeFill=null!==(l=null===E||void 0===E?void 0:E.fill)&&void 0!==l?l:k.shape.fill,this.shapeClose=null!==(c=null===E||void 0===E?void 0:E.close)&&void 0!==c?c:k.shape.close,this.options=k;const F=this.options.move.path;this.pathDelay=(0,_.VG)(F.delay.value)*s.Xu,F.generator&&(this.pathGenerator=this._engine.getPathGenerator(F.generator),this.pathGenerator&&b.addPath(F.generator,this.pathGenerator)&&this.pathGenerator.init(b)),b.retina.initParticle(this),this.size=(0,n.Xs)(this.options.size,C),this.bubble={inRange:!1},this.slow={inRange:!1,factor:1},this._initPosition(i),this.initialVelocity=this._calculateVelocity(),this.velocity=this.initialVelocity.copy();this.moveDecay=1-(0,_.VG)(this.options.move.decay);const A=b.particles;A.setLastZIndex(this.position.z),this.zIndexFactor=this.position.z/b.zLayers,this.sides=24;let G=b.effectDrawers.get(this.effect);G||(G=this._engine.getEffectDrawer(this.effect),G&&b.effectDrawers.set(this.effect,G)),null!==(d=G)&&void 0!==d&&d.loadEffect&&G.loadEffect(this);let V=b.shapeDrawers.get(this.shape);V||(V=this._engine.getShapeDrawer(this.shape),V&&b.shapeDrawers.set(this.shape,V)),null!==(u=V)&&void 0!==u&&u.loadShape&&V.loadShape(this);const B=null===(p=V)||void 0===p?void 0:p.getSidesCount;B&&(this.sides=B(this)),this.spawning=!1,this.shadowColor=(0,a.BN)(this.options.shadow.color);for(const s of A.updaters)s.init(this);for(const s of A.movers){var U;null===(U=s.init)||void 0===U||U.call(s,this)}null===(f=G)||void 0===f||null===(v=f.particleInit)||void 0===v||v.call(f,b,this),null===(y=V)||void 0===y||null===(w=y.particleInit)||void 0===w||w.call(y,b,this);for(const[,s]of b.plugins){var X;null===(X=s.particleCreated)||void 0===X||X.call(s,this)}}isInsideCanvas(){const t=this.getRadius(),i=this.container.canvas.size,e=this.position;return e.x>=-t&&e.y>=-t&&e.y<=i.height+t&&e.x<=i.width+t}isVisible(){return!this.destroyed&&!this.spawning&&this.isInsideCanvas()}reset(){for(const i of this.container.particles.updaters){var t;null===(t=i.reset)||void 0===t||t.call(i,this)}}}class z{constructor(t,i){this.position=t,this.particle=i}}var C=e(4859);const x=.5;class k{constructor(t,i){this.rectangle=t,this.capacity=i,this._subdivide=()=>{const{x:t,y:i}=this.rectangle.position,{width:e,height:s}=this.rectangle.size,{capacity:n}=this;for(let o=0;o<4;o++){const a=o%2;this._subs.push(new k(new C.M_(t+e*x*a,i+s*x*(Math.round(o*x)-a),e*x,s*x),n))}this._divided=!0},this._points=[],this._divided=!1,this._subs=[]}insert(t){return!!this.rectangle.contains(t.position)&&(this._points.lengthi.insert(t)))))}query(t,i){const e=[];if(!t.intersects(this.rectangle))return[];for(const s of this._points)!t.contains(s.position)&&(0,_.Yf)(t.position,s.position)>s.particle.getRadius()&&(!i||i(s.particle))||e.push(s.particle);if(this._divided)for(const s of this._subs)e.push(...s.query(t,i));return e}queryCircle(t,i,e){return this.query(new C.jl(t.x,t.y,i),e)}queryRectangle(t,i,e){return this.query(new C.M_(t.x,t.y,i.width,i.height),e)}}const P=t=>{const{height:i,width:e}=t;return new C.M_(-.25*e,-.25*i,1.5*e,1.5*i)};class O{constructor(t,i){var e=this;this._addToPool=function(){for(var t=arguments.length,i=new Array(t),s=0;s{var s;const n=t.number;if(null===(s=t.number.density)||void 0===s||!s.enable)return void(void 0===e?this._limit=n.limit.value:n.limit&&this._groupLimits.set(e,n.limit.value));const o=this._initDensityFactor(n.density),a=n.value,r=n.limit.value>0?n.limit.value:a,h=Math.min(a,r)*o+i,l=Math.min(this.count,this.filter((t=>t.group===e)).length);void 0===e?this._limit=n.limit.value*o:this._groupLimits.set(e,n.limit.value*o),lh&&this.removeQuantity(l-h,e)},this._initDensityFactor=t=>{const i=this._container;if(!i.canvas.element||!t.enable)return 1;const e=i.canvas.element,s=i.retina.pixelRatio;return e.width*e.height/(t.height*t.width*s**2)},this._pushParticle=(t,i,e,o)=>{try{let s=this._pool.pop();s||(s=new b(this._engine,this._container)),s.init(this._nextId,t,i,e);let n=!0;if(o&&(n=o(s)),!n)return;return this._array.push(s),this._zArray.push(s),this._nextId++,this._engine.dispatchEvent("particleAdded",{container:this._container,data:{particle:s}}),s}catch(a){(0,n.tZ)().warning("".concat(s.dI," adding particle: ").concat(a))}},this._removeParticle=(t,i,e)=>{const s=this._array[t];if(!s||s.group!==i)return!1;const n=this._zArray.indexOf(s);return this._array.splice(t,1),this._zArray.splice(n,1),s.destroy(e),this._engine.dispatchEvent("particleRemoved",{container:this._container,data:{particle:s}}),this._addToPool(s),!0},this._engine=t,this._container=i,this._nextId=0,this._array=[],this._zArray=[],this._pool=[],this._limit=0,this._groupLimits=new Map,this._needsSort=!1,this._lastZIndex=0,this._interactionManager=new f(t,i),this._pluginsInitialized=!1;const o=i.canvas.size;this.quadTree=new k(P(o),4),this.movers=[],this.updaters=[]}get count(){return this._array.length}addManualParticles(){const t=this._container,i=t.actualOptions;for(const e of i.manualParticles)this.addParticle(e.position?(0,n.E9)(e.position,t.canvas.size):void 0,e.options)}addParticle(t,i,e,s){var n;const o=this._container.actualOptions.particles.number.limit,a=void 0===e?this._limit:null!==(n=this._groupLimits.get(e))&&void 0!==n?n:this._limit,r=this.count;if(a>0)if("delete"===o.mode){const t=r+1-a;t>0&&this.removeQuantity(t)}else if("wait"===o.mode&&r>=a)return;return this._pushParticle(t,i,e,s)}clear(){this._array=[],this._zArray=[],this._pluginsInitialized=!1}destroy(){this._array=[],this._zArray=[],this.movers=[],this.updaters=[]}draw(t){const i=this._container,e=i.canvas;e.clear(),this.update(t);for(const[,s]of i.plugins)e.drawPlugin(s,t);for(const s of this._zArray)s.draw(t)}filter(t){return this._array.filter(t)}find(t){return this._array.find(t)}get(t){return this._array[t]}handleClickMode(t){this._interactionManager.handleClickMode(t)}async init(){const t=this._container,i=t.actualOptions;this._lastZIndex=0,this._needsSort=!1,await this.initPlugins();let e=!1;for(const[,n]of t.plugins)if(void 0!==n.particlesInitialization&&(e=n.particlesInitialization()),e)break;if(this.addManualParticles(),!e){const t=i.particles,e=t.groups;for(const i in e){const n=e[i];for(let e=this.count,o=0;o<(null===(s=n.number)||void 0===s?void 0:s.value)&&e1&&void 0!==arguments[1]?arguments[1]:1,e=arguments.length>2?arguments[2]:void 0,s=arguments.length>3?arguments[3]:void 0;if(t<0||t>this.count)return;let n=0;for(let o=t;n!e.has(t);this._array=this.filter(t),this._zArray=this._zArray.filter(t);for(const i of e)this._engine.dispatchEvent("particleRemoved",{container:this._container,data:{particle:i}});this._addToPool(...e)}this._interactionManager.externalInteract(t);for(const a of this._array){for(const i of this.updaters)i.update(a,t);a.destroyed||a.spawning||this._interactionManager.particlesInteract(a,t)}if(delete this._resizeFactor,this._needsSort){const t=this._zArray;t.sort(((t,i)=>i.position.z-t.position.z||t.id-i.id));const i=1;this._lastZIndex=t[t.length-i].position.z,this._needsSort=!1}}}class T{constructor(t){this.container=t,this.pixelRatio=1,this.reduceFactor=1}init(){const t=this.container,i=t.actualOptions;this.pixelRatio=!i.detectRetina||(0,n.B9)()?1:window.devicePixelRatio,this.reduceFactor=1;const e=this.pixelRatio,s=t.canvas;if(s.element){const t=s.element;s.size.width=t.offsetWidth*e,s.size.height=t.offsetHeight*e}const o=i.particles,a=o.move;this.maxSpeed=(0,_.VG)(a.gravity.maxSpeed)*e,this.sizeAnimationSpeed=(0,_.VG)(o.size.animation.speed)*e}initParticle(t){const i=t.options,e=this.pixelRatio,s=i.move,n=s.distance,o=t.retina;o.moveDrift=(0,_.VG)(s.drift)*e,o.moveSpeed=(0,_.VG)(s.speed)*e,o.sizeAnimationSpeed=(0,_.VG)(i.size.animation.speed)*e;const a=o.maxDistance;a.horizontal=void 0!==n.horizontal?n.horizontal*e:void 0,a.vertical=void 0!==n.vertical?n.vertical*e:void 0,o.maxSpeed=(0,_.VG)(s.gravity.maxSpeed)*e}}function M(t){return t&&!t.destroyed}function S(t,i){const e=new p.J(t,i);for(var s=arguments.length,n=new Array(s>2?s-2:0),o=2;o{if(M(this)&&this.actualOptions.pauseOnOutsideViewport)for(const i of t)i.target===this.interactivity.element&&(i.isIntersecting?this.play():this.pause())},this._nextFrame=t=>{try{var i;if(!this._smooth&&void 0!==this._lastFrameTime&&t2&&void 0!==arguments[2]&&arguments[2]?60/(arguments.length>1&&void 0!==arguments[1]?arguments[1]:60):60*t/s.Xu}}(t-this._lastFrameTime,this.fpsLimit,this._smooth);if(this.addLifeTime(e.value),this._lastFrameTime=t,e.value>s.Xu)return void this.draw(!1);if(this.particles.draw(e),!this.alive())return void this.destroy();this.animationStatus&&this.draw(!1)}catch(e){(0,n.tZ)().error("".concat(s.dI," in animation loop"),e)}},this._engine=t,this.id=Symbol(i),this.fpsLimit=120,this._smooth=!1,this._delay=0,this._duration=0,this._lifeTime=0,this._firstStart=!0,this.started=!1,this.destroyed=!1,this._paused=!0,this._lastFrameTime=0,this.zLayers=100,this.pageHidden=!1,this._sourceOptions=e,this._initialSourceOptions=e,this.retina=new T(this),this.canvas=new l(this),this.particles=new O(this._engine,this),this.pathGenerators=new Map,this.interactivity={mouse:{clicking:!1,inside:!1}},this.plugins=new Map,this.effectDrawers=new Map,this.shapeDrawers=new Map,this._options=S(this._engine,this),this.actualOptions=S(this._engine,this),this._eventListeners=new u(this),this._intersectionObserver=(0,n.BR)((t=>this._intersectionManager(t))),this._engine.dispatchEvent("containerBuilt",{container:this})}get animationStatus(){return!this._paused&&!this.pageHidden&&M(this)}get options(){return this._options}get sourceOptions(){return this._sourceOptions}addClickHandler(t){if(!M(this))return;const i=this.interactivity.element;if(!i)return;const e=(i,e,s)=>{if(!M(this))return;const n=this.retina.pixelRatio,o={x:e.x*n,y:e.y*n},a=this.particles.quadTree.queryCircle(o,s*n);t(i,a)};let s=!1,n=!1;i.addEventListener("click",(t=>{if(!M(this))return;const i=t,s={x:i.offsetX||i.clientX,y:i.offsetY||i.clientY};e(t,s,1)})),i.addEventListener("touchstart",(()=>{M(this)&&(s=!0,n=!1)})),i.addEventListener("touchmove",(()=>{M(this)&&(n=!0)})),i.addEventListener("touchend",(t=>{if(M(this)){if(s&&!n){const i=t,s=1;let n=i.touches[i.touches.length-s];if(!n&&(n=i.changedTouches[i.changedTouches.length-s],!n))return;const o=this.canvas.element,a=o?o.getBoundingClientRect():void 0,r=0,h={x:n.clientX-(a?a.left:r),y:n.clientY-(a?a.top:r)};e(t,h,Math.max(n.radiusX,n.radiusY))}s=!1,n=!1}})),i.addEventListener("touchcancel",(()=>{M(this)&&(s=!1,n=!1)}))}addLifeTime(t){this._lifeTime+=t}addPath(t,i){let e=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return!(!M(this)||!e&&this.pathGenerators.has(t))&&(this.pathGenerators.set(t,i),!0)}alive(){return!this._duration||this._lifeTime<=this._duration}destroy(){if(!M(this))return;this.stop(),this.particles.destroy(),this.canvas.destroy();for(const[,n]of this.effectDrawers){var t;null===(t=n.destroy)||void 0===t||t.call(n,this)}for(const[,n]of this.shapeDrawers){var i;null===(i=n.destroy)||void 0===i||i.call(n,this)}for(const n of this.effectDrawers.keys())this.effectDrawers.delete(n);for(const n of this.shapeDrawers.keys())this.shapeDrawers.delete(n);this._engine.clearPlugins(this),this.destroyed=!0;const e=this._engine.dom(),s=e.findIndex((t=>t===this));if(s>=0){const t=1;e.splice(s,t)}this._engine.dispatchEvent("containerDestroyed",{container:this})}draw(t){if(!M(this))return;let i=t;const e=t=>{i&&(this._lastFrameTime=void 0,i=!1),this._nextFrame(t)};this._drawAnimationFrame=requestAnimationFrame((t=>e(t)))}async export(t){let i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};for(const[,e]of this.plugins){if(!e.export)continue;const s=await e.export(t,i);if(s.supported)return s.blob}(0,n.tZ)().error("".concat(s.dI," - Export plugin with type ").concat(t," not found"))}handleClickMode(t){if(M(this)){this.particles.handleClickMode(t);for(const[,e]of this.plugins){var i;null===(i=e.handleClickMode)||void 0===i||i.call(e,t)}}}async init(){if(!M(this))return;const t=this._engine.getSupportedEffects();for(const s of t){const t=this._engine.getEffectDrawer(s);t&&this.effectDrawers.set(s,t)}const i=this._engine.getSupportedShapes();for(const s of i){const t=this._engine.getShapeDrawer(s);t&&this.shapeDrawers.set(s,t)}await this.particles.initPlugins(),this._options=S(this._engine,this,this._initialSourceOptions,this.sourceOptions),this.actualOptions=S(this._engine,this,this._options);const e=await this._engine.getAvailablePlugins(this);for(const[s,h]of e)this.plugins.set(s,h);this.retina.init(),await this.canvas.init(),this.updateActualOptions(),this.canvas.initBackground(),this.canvas.resize(),this.zLayers=this.actualOptions.zLayers,this._duration=(0,_.VG)(this.actualOptions.duration)*s.Xu,this._delay=(0,_.VG)(this.actualOptions.delay)*s.Xu,this._lifeTime=0;this.fpsLimit=this.actualOptions.fpsLimit>0?this.actualOptions.fpsLimit:120,this._smooth=this.actualOptions.smooth;for(const[,s]of this.effectDrawers){var n;await(null===(n=s.init)||void 0===n?void 0:n.call(s,this))}for(const[,s]of this.shapeDrawers){var o;await(null===(o=s.init)||void 0===o?void 0:o.call(s,this))}for(const[,s]of this.plugins){var a;await(null===(a=s.init)||void 0===a?void 0:a.call(s))}this._engine.dispatchEvent("containerInit",{container:this}),await this.particles.init(),this.particles.setDensity();for(const[,s]of this.plugins){var r;null===(r=s.particlesSetup)||void 0===r||r.call(s)}this._engine.dispatchEvent("particlesSetup",{container:this})}async loadTheme(t){M(this)&&(this._currentTheme=t,await this.refresh())}pause(){if(M(this)&&(void 0!==this._drawAnimationFrame&&(cancelAnimationFrame(this._drawAnimationFrame),delete this._drawAnimationFrame),!this._paused)){for(const[,i]of this.plugins){var t;null===(t=i.pause)||void 0===t||t.call(i)}this.pageHidden||(this._paused=!0),this._engine.dispatchEvent("containerPaused",{container:this})}}play(t){if(!M(this))return;const i=this._paused||t;if(!this._firstStart||this.actualOptions.autoPlay){if(this._paused&&(this._paused=!1),i)for(const[,t]of this.plugins)t.play&&t.play();this._engine.dispatchEvent("containerPlay",{container:this}),this.draw(null!==i&&void 0!==i&&i)}else this._firstStart=!1}async refresh(){if(M(this))return this.stop(),this.start()}async reset(){if(M(this))return this._initialSourceOptions=void 0,this._options=S(this._engine,this),this.actualOptions=S(this._engine,this,this._options),this.refresh()}async start(){M(this)&&!this.started&&(await this.init(),this.started=!0,await new Promise((t=>{const i=async()=>{this._eventListeners.addListeners(),this.interactivity.element instanceof HTMLElement&&this._intersectionObserver&&this._intersectionObserver.observe(this.interactivity.element);for(const[,t]of this.plugins){var i;await(null===(i=t.start)||void 0===i?void 0:i.call(t))}this._engine.dispatchEvent("containerStarted",{container:this}),this.play(),t()};this._delayTimeout=setTimeout((()=>{i()}),this._delay)})))}stop(){if(M(this)&&this.started){this._delayTimeout&&(clearTimeout(this._delayTimeout),delete this._delayTimeout),this._firstStart=!0,this.started=!1,this._eventListeners.removeListeners(),this.pause(),this.particles.clear(),this.canvas.stop(),this.interactivity.element instanceof HTMLElement&&this._intersectionObserver&&this._intersectionObserver.unobserve(this.interactivity.element);for(const[,i]of this.plugins){var t;null===(t=i.stop)||void 0===t||t.call(i)}for(const t of this.plugins.keys())this.plugins.delete(t);this._sourceOptions=this._options,this._engine.dispatchEvent("containerStopped",{container:this})}}updateActualOptions(){this.actualOptions.responsive=[];const t=this.actualOptions.setResponsive(this.canvas.size.width,this.retina.pixelRatio,this._options);return this.actualOptions.setTheme(this._currentTheme),this._responsiveMaxWidth!==t&&(this._responsiveMaxWidth=t,!0)}}}}]); -//# sourceMappingURL=1927.1aafad7e.chunk.js.map \ No newline at end of file diff --git a/build/static/js/1927.8bd9ca2b.chunk.js b/build/static/js/1927.8bd9ca2b.chunk.js new file mode 100644 index 0000000..a190d04 --- /dev/null +++ b/build/static/js/1927.8bd9ca2b.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkresview=self.webpackChunkresview||[]).push([[1927],{1927:(t,i,e)=>{e.d(i,{Container:()=>D});var s=e(2496),n=e(8164),o=e(6480),a=e(753);function r(t,i,e){const s=i[e];var n;void 0!==s&&(t[e]=(null!==(n=t[e])&&void 0!==n?n:1)*s)}function h(t,i){let e=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(!i)return;if(!t)return;const s=t.style;if(s)for(const n in i){const t=i[n];t&&s.setProperty(n,t,e?"important":"")}}class l{constructor(t){this.container=t,this._applyPostDrawUpdaters=t=>{for(const e of this._postDrawUpdaters){var i;null===(i=e.afterDraw)||void 0===i||i.call(e,t)}},this._applyPreDrawUpdaters=(t,i,e,s,n,o)=>{for(const h of this._preDrawUpdaters){var a;if(h.getColorStyles){const{fill:o,stroke:a}=h.getColorStyles(i,t,e,s);o&&(n.fill=o),a&&(n.stroke=a)}if(h.getTransformValues){const t=h.getTransformValues(i);for(const i in t)r(o,t,i)}null===(a=h.beforeDraw)||void 0===a||a.call(h,i)}},this._applyResizePlugins=()=>{for(const i of this._resizePlugins){var t;null===(t=i.resize)||void 0===t||t.call(i)}},this._getPluginParticleColors=t=>{let i,e;for(const s of this._colorPlugins)if(!i&&s.particleFillColor&&(i=(0,a.R5)(s.particleFillColor(t))),!e&&s.particleStrokeColor&&(e=(0,a.R5)(s.particleStrokeColor(t))),i&&e)break;return[i,e]},this._initCover=async()=>{const t=this.container.actualOptions.backgroundMask.cover,i=t.color;if(i){const e=(0,a.BN)(i);if(e){const i={...e,a:t.opacity};this._coverColorStyle=(0,a.xx)(i,i.a)}}else await new Promise(((i,e)=>{if(!t.image)return;const s=document.createElement("img");s.addEventListener("load",(()=>{this._coverImage={image:s,opacity:t.opacity},i()})),s.addEventListener("error",(t=>{e(t.error)})),s.src=t.image}))},this._initStyle=()=>{const t=this.element,i=this.container.actualOptions;if(t){this._fullScreen?(this._originalStyle=(0,n.zw)({},t.style),this._setFullScreenStyle()):this._resetOriginalStyle();for(const e in i.style){if(!e||!i.style)continue;const s=i.style[e];s&&t.style.setProperty(e,s,"important")}}},this._initTrail=async()=>{const t=this.container.actualOptions.particles.move.trail,i=t.fill;if(!t.enable)return;const e=1/t.length;if(i.color){const t=(0,a.BN)(i.color);if(!t)return;this._trailFill={color:{...t},opacity:e}}else await new Promise(((t,s)=>{if(!i.image)return;const n=document.createElement("img");n.addEventListener("load",(()=>{this._trailFill={image:n,opacity:e},t()})),n.addEventListener("error",(t=>{s(t.error)})),n.src=i.image}))},this._paintBase=t=>{this.draw((i=>(0,o.Sn)(i,this.size,t)))},this._paintImage=(t,i)=>{this.draw((e=>(0,o.Md)(e,this.size,t,i)))},this._repairStyle=()=>{const t=this.element;t&&(this._safeMutationObserver((t=>t.disconnect())),this._initStyle(),this.initBackground(),this._safeMutationObserver((i=>i.observe(t,{attributes:!0}))))},this._resetOriginalStyle=()=>{const t=this.element,i=this._originalStyle;t&&i&&h(t,i)},this._safeMutationObserver=t=>{this._mutationObserver&&t(this._mutationObserver)},this._setFullScreenStyle=()=>{const t=this.element;if(!t)return;h(t,{position:"fixed",zIndex:this.container.actualOptions.fullScreen.zIndex.toString(10),top:"0",left:"0",width:"100%",height:"100%"},!0)},this.size={height:0,width:0},this._context=null,this._generated=!1,this._preDrawUpdaters=[],this._postDrawUpdaters=[],this._resizePlugins=[],this._colorPlugins=[]}get _fullScreen(){return this.container.actualOptions.fullScreen.enable}clear(){const t=this.container.actualOptions,i=t.particles.move.trail,e=this._trailFill;t.backgroundMask.enable?this.paint():i.enable&&i.length>0&&e?e.color?this._paintBase((0,a.xx)(e.color,e.opacity)):e.image&&this._paintImage(e.image,e.opacity):t.clear&&this.draw((t=>{(0,o.IU)(t,this.size)}))}destroy(){if(this.stop(),this._generated){const t=this.element;null===t||void 0===t||t.remove()}else this._resetOriginalStyle();this._preDrawUpdaters=[],this._postDrawUpdaters=[],this._resizePlugins=[],this._colorPlugins=[]}draw(t){const i=this._context;if(i)return t(i)}drawAsync(t){const i=this._context;if(i)return t(i)}drawParticle(t,i){var e;if(t.spawning||t.destroyed)return;const s=t.getRadius();if(s<=0)return;const n=t.getFillColor(),r=null!==(e=t.getStrokeColor())&&void 0!==e?e:n;let[h,l]=this._getPluginParticleColors(t);h||(h=n),l||(l=r),(h||l)&&this.draw((e=>{var n,r,c,d;const u=this.container,p=u.actualOptions,f=t.options.zIndex,v=1-t.zIndexFactor,_=v**f.opacityRate,g=null!==(n=null!==(r=t.bubble.opacity)&&void 0!==r?r:null===(c=t.opacity)||void 0===c?void 0:c.value)&&void 0!==n?n:1,m=g*_,y=(null!==(d=t.strokeOpacity)&&void 0!==d?d:g)*_,w={},b={fill:h?(0,a.LC)(h,m):void 0};b.stroke=l?(0,a.LC)(l,y):b.fill,this._applyPreDrawUpdaters(e,t,s,m,b,w),(0,o.p0)({container:u,context:e,particle:t,delta:i,colorStyles:b,backgroundMask:p.backgroundMask.enable,composite:p.backgroundMask.composite,radius:s*v**f.sizeRate,opacity:m,shadow:t.options.shadow,transform:w}),this._applyPostDrawUpdaters(t)}))}drawParticlePlugin(t,i,e){this.draw((s=>(0,o.Wb)(s,t,i,e)))}drawPlugin(t,i){this.draw((e=>(0,o.e_)(e,t,i)))}async init(){this._safeMutationObserver((t=>t.disconnect())),this._mutationObserver=(0,n.tG)((t=>{for(const i of t)"attributes"===i.type&&"style"===i.attributeName&&this._repairStyle()})),this.resize(),this._initStyle(),await this._initCover();try{await this._initTrail()}catch(t){(0,n.tZ)().error(t)}this.initBackground(),this._safeMutationObserver((t=>{this.element&&t.observe(this.element,{attributes:!0})})),this.initUpdaters(),this.initPlugins(),this.paint()}initBackground(){const t=this.container.actualOptions.background,i=this.element;if(!i)return;const e=i.style;if(e){if(t.color){const i=(0,a.BN)(t.color);e.backgroundColor=i?(0,a.xx)(i,t.opacity):""}else e.backgroundColor="";e.backgroundImage=t.image||"",e.backgroundPosition=t.position||"",e.backgroundRepeat=t.repeat||"",e.backgroundSize=t.size||""}}initPlugins(){this._resizePlugins=[];for(const[,i]of this.container.plugins){var t;i.resize&&this._resizePlugins.push(i),(null!==(t=i.particleFillColor)&&void 0!==t?t:i.particleStrokeColor)&&this._colorPlugins.push(i)}}initUpdaters(){this._preDrawUpdaters=[],this._postDrawUpdaters=[];for(const e of this.container.particles.updaters){var t,i;e.afterDraw&&this._postDrawUpdaters.push(e),(null!==(t=null!==(i=e.getColorStyles)&&void 0!==i?i:e.getTransformValues)&&void 0!==t?t:e.beforeDraw)&&this._preDrawUpdaters.push(e)}}loadCanvas(t){this._generated&&this.element&&this.element.remove(),this._generated=t.dataset&&s.eb in t.dataset?"true"===t.dataset[s.eb]:this._generated,this.element=t,this.element.ariaHidden="true",this._originalStyle=(0,n.zw)({},this.element.style),this.size.height=t.offsetHeight,this.size.width=t.offsetWidth,this._context=this.element.getContext("2d"),this._safeMutationObserver((t=>{this.element&&t.observe(this.element,{attributes:!0})})),this.container.retina.init(),this.initBackground()}paint(){const t=this.container.actualOptions;this.draw((i=>{t.backgroundMask.enable&&t.backgroundMask.cover?((0,o.IU)(i,this.size),this._coverImage?this._paintImage(this._coverImage.image,this._coverImage.opacity):this._coverColorStyle?this._paintBase(this._coverColorStyle):this._paintBase()):this._paintBase()}))}resize(){if(!this.element)return!1;const t=this.container,i=t.retina.pixelRatio,e=t.canvas.size,s=this.element.offsetWidth*i,n=this.element.offsetHeight*i;if(n===e.height&&s===e.width&&n===this.element.height&&s===this.element.width)return!1;const o={...e};return this.element.width=e.width=this.element.offsetWidth*i,this.element.height=e.height=this.element.offsetHeight*i,this.container.started&&t.particles.setResizeFactor({width:e.width/o.width,height:e.height/o.height}),!0}stop(){this._safeMutationObserver((t=>t.disconnect())),this._mutationObserver=void 0,this.draw((t=>(0,o.IU)(t,this.size)))}async windowResize(){if(!this.element||!this.resize())return;const t=this.container,i=t.updateActualOptions();t.particles.setDensity(),this._applyResizePlugins(),i&&await t.refresh()}}var c=e(5268);function d(t,i,e,s,n){if(s){let s={passive:!0};(0,c.Lm)(n)?s.capture=n:void 0!==n&&(s=n),t.addEventListener(i,e,s)}else{const s=n;t.removeEventListener(i,e,s)}}class u{constructor(t){this.container=t,this._doMouseTouchClick=t=>{const i=this.container,e=i.actualOptions;if(this._canPush){const t=i.interactivity.mouse,s=t.position;if(!s)return;t.clickPosition={...s},t.clickTime=(new Date).getTime();const o=e.interactivity.events.onClick;(0,n.wJ)(o.mode,(t=>this.container.handleClickMode(t)))}if("touchend"===t.type){setTimeout((()=>this._mouseTouchFinish()),500)}},this._handleThemeChange=t=>{const i=t,e=this.container,s=e.options,n=s.defaultThemes,o=i.matches?n.dark:n.light,a=s.themes.find((t=>t.name===o));a&&a.default.auto&&e.loadTheme(o)},this._handleVisibilityChange=()=>{const t=this.container,i=t.actualOptions;this._mouseTouchFinish(),i.pauseOnBlur&&(document&&document.hidden?(t.pageHidden=!0,t.pause()):(t.pageHidden=!1,t.animationStatus?t.play(!0):t.draw(!0)))},this._handleWindowResize=()=>{this._resizeTimeout&&(clearTimeout(this._resizeTimeout),delete this._resizeTimeout);const t=async()=>{const t=this.container.canvas;await(null===t||void 0===t?void 0:t.windowResize())};this._resizeTimeout=setTimeout((()=>{t()}),this.container.actualOptions.interactivity.events.resize.delay*s.Xu)},this._manageInteractivityListeners=(t,i)=>{const e=this._handlers,n=this.container,o=n.actualOptions,a=n.interactivity.element;if(!a)return;const r=a,h=n.canvas.element;h&&(h.style.pointerEvents=r===h?"initial":"none"),(o.interactivity.events.onHover.enable||o.interactivity.events.onClick.enable)&&(d(a,s.Rb,e.mouseMove,i),d(a,s.s7,e.touchStart,i),d(a,s.DG,e.touchMove,i),o.interactivity.events.onClick.enable?(d(a,s.Bp,e.touchEndClick,i),d(a,s.vo,e.mouseUp,i),d(a,s.ms,e.mouseDown,i)):d(a,s.Bp,e.touchEnd,i),d(a,t,e.mouseLeave,i),d(a,s.G3,e.touchCancel,i))},this._manageListeners=t=>{const i=this._handlers,e=this.container,n=e.actualOptions.interactivity.detectsOn,o=e.canvas.element;let a=s.Z0;if("window"===n)e.interactivity.element=window,a=s.sf;else if("parent"===n&&o){var r;e.interactivity.element=null!==(r=o.parentElement)&&void 0!==r?r:o.parentNode}else e.interactivity.element=o;this._manageMediaMatch(t),this._manageResize(t),this._manageInteractivityListeners(a,t),document&&d(document,s.nK,i.visibilityChange,t,!1)},this._manageMediaMatch=t=>{const i=this._handlers,e=(0,n.lV)("(prefers-color-scheme: dark)");e&&(void 0===e.addEventListener?void 0!==e.addListener&&(t?e.addListener(i.oldThemeChange):e.removeListener(i.oldThemeChange)):d(e,"change",i.themeChange,t))},this._manageResize=t=>{const i=this._handlers,e=this.container;if(!e.actualOptions.interactivity.events.resize)return;if("undefined"===typeof ResizeObserver)return void d(window,s.NF,i.resize,t);const n=e.canvas.element;this._resizeObserver&&!t?(n&&this._resizeObserver.unobserve(n),this._resizeObserver.disconnect(),delete this._resizeObserver):!this._resizeObserver&&t&&n&&(this._resizeObserver=new ResizeObserver((t=>{t.find((t=>t.target===n))&&this._handleWindowResize()})),this._resizeObserver.observe(n))},this._mouseDown=()=>{const{interactivity:t}=this.container;if(!t)return;const{mouse:i}=t;i.clicking=!0,i.downPosition=i.position},this._mouseTouchClick=t=>{const i=this.container,e=i.actualOptions,{mouse:s}=i.interactivity;s.inside=!0;let n=!1;const o=s.position;if(o&&e.interactivity.events.onClick.enable){for(const[,t]of i.plugins)if(t.clickPositionValid&&(n=t.clickPositionValid(o),n))break;n||this._doMouseTouchClick(t),s.clicking=!1}},this._mouseTouchFinish=()=>{const t=this.container.interactivity;if(!t)return;const i=t.mouse;delete i.position,delete i.clickPosition,delete i.downPosition,t.status=s.Z0,i.inside=!1,i.clicking=!1},this._mouseTouchMove=t=>{const i=this.container,e=i.actualOptions,n=i.interactivity,o=i.canvas.element;if(null===n||void 0===n||!n.element)return;let a;if(n.mouse.inside=!0,t.type.startsWith("pointer")){this._canPush=!0;const i=t;if(n.element===window){if(o){const t=o.getBoundingClientRect();a={x:i.clientX-t.left,y:i.clientY-t.top}}}else if("parent"===e.interactivity.detectsOn){const t=i.target,e=i.currentTarget;if(t&&e&&o){const s=t.getBoundingClientRect(),n=e.getBoundingClientRect(),r=o.getBoundingClientRect();a={x:i.offsetX+2*s.left-(n.left+r.left),y:i.offsetY+2*s.top-(n.top+r.top)}}else{var r,h;a={x:null!==(r=i.offsetX)&&void 0!==r?r:i.clientX,y:null!==(h=i.offsetY)&&void 0!==h?h:i.clientY}}}else if(i.target===o){var l,c;a={x:null!==(l=i.offsetX)&&void 0!==l?l:i.clientX,y:null!==(c=i.offsetY)&&void 0!==c?c:i.clientY}}}else if(this._canPush="touchmove"!==t.type,o){var d,u;const i=t,e=1,s=i.touches[i.touches.length-e],n=o.getBoundingClientRect(),r=0;a={x:s.clientX-(null!==(d=n.left)&&void 0!==d?d:r),y:s.clientY-(null!==(u=n.top)&&void 0!==u?u:r)}}const p=i.retina.pixelRatio;a&&(a.x*=p,a.y*=p),n.mouse.position=a,n.status=s.Rb},this._touchEnd=t=>{const i=t,e=Array.from(i.changedTouches);for(const s of e)this._touches.delete(s.identifier);this._mouseTouchFinish()},this._touchEndClick=t=>{const i=t,e=Array.from(i.changedTouches);for(const s of e)this._touches.delete(s.identifier);this._mouseTouchClick(t)},this._touchStart=t=>{const i=t,e=Array.from(i.changedTouches);for(const s of e)this._touches.set(s.identifier,performance.now());this._mouseTouchMove(t)},this._canPush=!0,this._touches=new Map,this._handlers={mouseDown:()=>this._mouseDown(),mouseLeave:()=>this._mouseTouchFinish(),mouseMove:t=>this._mouseTouchMove(t),mouseUp:t=>this._mouseTouchClick(t),touchStart:t=>this._touchStart(t),touchMove:t=>this._mouseTouchMove(t),touchEnd:t=>this._touchEnd(t),touchCancel:t=>this._touchEnd(t),touchEndClick:t=>this._touchEndClick(t),visibilityChange:()=>this._handleVisibilityChange(),themeChange:t=>this._handleThemeChange(t),oldThemeChange:t=>this._handleThemeChange(t),resize:()=>{this._handleWindowResize()}}}addListeners(){this._manageListeners(!0)}removeListeners(){this._manageListeners(!1)}}var p=e(8888);class f{constructor(t,i){this.container=i,this._engine=t,this._interactors=[],this._externalInteractors=[],this._particleInteractors=[]}externalInteract(t){for(const i of this._externalInteractors)i.isEnabled()&&i.interact(t)}handleClickMode(t){for(const e of this._externalInteractors){var i;null===(i=e.handleClickMode)||void 0===i||i.call(e,t)}}async init(){this._interactors=await this._engine.getInteractors(this.container,!0),this._externalInteractors=[],this._particleInteractors=[];for(const t of this._interactors){switch(t.type){case"external":this._externalInteractors.push(t);break;case"particles":this._particleInteractors.push(t)}t.init()}}particlesInteract(t,i){for(const e of this._externalInteractors)e.clear(t,i);for(const e of this._particleInteractors)e.isEnabled(t)&&e.interact(t,i)}reset(t){for(const i of this._externalInteractors)i.isEnabled()&&i.reset(t);for(const i of this._particleInteractors)i.isEnabled(t)&&i.reset(t)}}var v=e(8025),_=e(9135),g=e(1189),m=e(8802);const y=.5;function w(t){if(!(0,n.hn)(t.outMode,t.checkModes))return;const i=2*t.radius;t.coord>t.maxCoord-i?t.setCb(-t.radius):t.coord3&&void 0!==arguments[3]?arguments[3]:0;for(const[,_]of t.plugins){const t=void 0!==_.particlePosition?_.particlePosition(i,e):void 0;if(t)return v.p.create(t.x,t.y,s)}const l=t.canvas.size,c=(0,_.Nx)({size:l,position:i}),d=v.p.create(c.x,c.y,s),u=e.getRadius(),p=e.options.move.outModes,f=i=>{w({outMode:i,checkModes:["bounce"],coord:d.x,maxCoord:t.canvas.size.width,setCb:t=>d.x+=t,radius:u})},g=i=>{w({outMode:i,checkModes:["bounce"],coord:d.y,maxCoord:t.canvas.size.height,setCb:t=>d.y+=t,radius:u})};if(f(null!==(n=p.left)&&void 0!==n?n:p.default),f(null!==(o=p.right)&&void 0!==o?o:p.default),g(null!==(a=p.top)&&void 0!==a?a:p.default),g(null!==(r=p.bottom)&&void 0!==r?r:p.default),e._checkOverlap(d,h)){const i=1;return e._calcPosition(t,void 0,s,h+i)}return d},this._calculateVelocity=()=>{const t=(0,_.$m)(this.direction).copy(),i=this.options.move;if("inside"===i.direction||"outside"===i.direction)return t;const e=(0,_.pu)((0,_.VG)(i.angle.value)),s=(0,_.pu)((0,_.VG)(i.angle.offset)),n={left:s-e*y,right:s+e*y};return i.straight||(t.angle+=(0,_.U4)((0,_.DT)(n.left,n.right))),i.random&&"number"===typeof i.speed&&(t.length*=(0,_.G0)()),t},this._checkOverlap=function(t){let i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;const n=e.options.collisions,o=e.getRadius();if(!n.enable)return!1;const a=n.overlap;if(a.enable)return!1;const r=a.retries;if(r>=0&&i>r)throw new Error("".concat(s.dI," particle is overlapping and can't be placed"));return!!e.container.particles.find((i=>(0,_.Yf)(t,i.position){var i;if(!t||!this.roll||!this.backColor&&!this.roll.alter)return t;const e=this.roll.horizontal&&this.roll.vertical?2:1,s=this.roll.horizontal?Math.PI*y:0;return Math.floor(((null!==(i=this.roll.angle)&&void 0!==i?i:0)+s)/(Math.PI/e))%2?this.backColor?this.backColor:this.roll.alter?(0,o.yx)(t,this.roll.alter.type,this.roll.alter.value):t:t},this._initPosition=t=>{var i,e;const s=this.container,o=(0,_.VG)(this.options.zIndex.value);this.position=this._calcPosition(s,t,(0,_.qE)(o,0,s.zLayers)),this.initialPosition=this.position.copy();const a=s.canvas.size;switch(this.moveCenter={...(0,n.E9)(this.options.move.center,a),radius:null!==(i=this.options.move.center.radius)&&void 0!==i?i:0,mode:null!==(e=this.options.move.center.mode)&&void 0!==e?e:"percent"},this.direction=(0,_.JY)(this.options.move.direction,this.position,this.moveCenter),this.options.move.direction){case"inside":this.outType="inside";break;case"outside":this.outType="outside"}this.offset=v.M.origin},this._engine=t}destroy(t){var i;if(this.unbreakable||this.destroyed)return;this.destroyed=!0,this.bubble.inRange=!1,this.slow.inRange=!1;const e=this.container,s=this.pathGenerator,n=e.shapeDrawers.get(this.shape);null===n||void 0===n||null===(i=n.particleDestroy)||void 0===i||i.call(n,this);for(const[,r]of e.plugins){var o;null===(o=r.particleDestroyed)||void 0===o||o.call(r,this,t)}for(const r of e.particles.updaters){var a;null===(a=r.particleDestroyed)||void 0===a||a.call(r,this,t)}null===s||void 0===s||s.reset(this),this._engine.dispatchEvent("particleDestroyed",{container:this.container,data:{particle:this}})}draw(t){const i=this.container,e=i.canvas;for(const[,s]of i.plugins)e.drawParticlePlugin(s,this,t);e.drawParticle(this,t)}getFillColor(){var t;return this._getRollColor(null!==(t=this.bubble.color)&&void 0!==t?t:(0,a.O_)(this.color))}getMass(){return this.getRadius()**2*Math.PI*y}getPosition(){return{x:this.position.x+this.offset.x,y:this.position.y+this.offset.y,z:this.position.z}}getRadius(){var t;return null!==(t=this.bubble.radius)&&void 0!==t?t:this.size.value}getStrokeColor(){var t;return this._getRollColor(null!==(t=this.bubble.color)&&void 0!==t?t:(0,a.O_)(this.strokeColor))}init(t,i,e,o){var r,h,l,c,d,u,p,f,v,y,w;const b=this.container,z=this._engine;this.id=t,this.group=o,this.effectClose=!0,this.effectFill=!0,this.shapeClose=!0,this.shapeFill=!0,this.pathRotation=!1,this.lastPathTime=0,this.destroyed=!1,this.unbreakable=!1,this.rotation=0,this.misplaced=!1,this.retina={maxDistance:{}},this.outType="normal",this.ignoresResizeRatio=!0;const C=b.retina.pixelRatio,x=b.actualOptions,k=(0,m.y)(this._engine,b,x.particles),P=k.effect.type,O=k.shape.type,{reduceDuplicates:T}=k;this.effect=(0,n.TA)(P,this.id,T),this.shape=(0,n.TA)(O,this.id,T);const M=k.effect,S=k.shape;if(e){var D,I;if(null!==(D=e.effect)&&void 0!==D&&D.type){const t=e.effect.type,i=(0,n.TA)(t,this.id,T);i&&(this.effect=i,M.load(e.effect))}if(null!==(I=e.shape)&&void 0!==I&&I.type){const t=e.shape.type,i=(0,n.TA)(t,this.id,T);i&&(this.shape=i,S.load(e.shape))}}this.effectData=function(t,i,e,s){const o=i.options[t];if(o)return(0,n.zw)({close:i.close,fill:i.fill},(0,n.TA)(o,e,s))}(this.effect,M,this.id,T),this.shapeData=function(t,i,e,s){const o=i.options[t];if(o)return(0,n.zw)({close:i.close,fill:i.fill},(0,n.TA)(o,e,s))}(this.shape,S,this.id,T),k.load(e);const R=this.effectData;R&&k.load(R.particles);const E=this.shapeData;E&&k.load(E.particles);const L=new g.k(z,b);L.load(b.actualOptions.interactivity),L.load(k.interactivity),this.interactivity=L,this.effectFill=null!==(r=null===R||void 0===R?void 0:R.fill)&&void 0!==r?r:k.effect.fill,this.effectClose=null!==(h=null===R||void 0===R?void 0:R.close)&&void 0!==h?h:k.effect.close,this.shapeFill=null!==(l=null===E||void 0===E?void 0:E.fill)&&void 0!==l?l:k.shape.fill,this.shapeClose=null!==(c=null===E||void 0===E?void 0:E.close)&&void 0!==c?c:k.shape.close,this.options=k;const F=this.options.move.path;this.pathDelay=(0,_.VG)(F.delay.value)*s.Xu,F.generator&&(this.pathGenerator=this._engine.getPathGenerator(F.generator),this.pathGenerator&&b.addPath(F.generator,this.pathGenerator)&&this.pathGenerator.init(b)),b.retina.initParticle(this),this.size=(0,n.Xs)(this.options.size,C),this.bubble={inRange:!1},this.slow={inRange:!1,factor:1},this._initPosition(i),this.initialVelocity=this._calculateVelocity(),this.velocity=this.initialVelocity.copy();this.moveDecay=1-(0,_.VG)(this.options.move.decay);const A=b.particles;A.setLastZIndex(this.position.z),this.zIndexFactor=this.position.z/b.zLayers,this.sides=24;let G=b.effectDrawers.get(this.effect);G||(G=this._engine.getEffectDrawer(this.effect),G&&b.effectDrawers.set(this.effect,G)),null!==(d=G)&&void 0!==d&&d.loadEffect&&G.loadEffect(this);let V=b.shapeDrawers.get(this.shape);V||(V=this._engine.getShapeDrawer(this.shape),V&&b.shapeDrawers.set(this.shape,V)),null!==(u=V)&&void 0!==u&&u.loadShape&&V.loadShape(this);const B=null===(p=V)||void 0===p?void 0:p.getSidesCount;B&&(this.sides=B(this)),this.spawning=!1,this.shadowColor=(0,a.BN)(this.options.shadow.color);for(const s of A.updaters)s.init(this);for(const s of A.movers){var U;null===(U=s.init)||void 0===U||U.call(s,this)}null===(f=G)||void 0===f||null===(v=f.particleInit)||void 0===v||v.call(f,b,this),null===(y=V)||void 0===y||null===(w=y.particleInit)||void 0===w||w.call(y,b,this);for(const[,s]of b.plugins){var X;null===(X=s.particleCreated)||void 0===X||X.call(s,this)}}isInsideCanvas(){const t=this.getRadius(),i=this.container.canvas.size,e=this.position;return e.x>=-t&&e.y>=-t&&e.y<=i.height+t&&e.x<=i.width+t}isVisible(){return!this.destroyed&&!this.spawning&&this.isInsideCanvas()}reset(){for(const i of this.container.particles.updaters){var t;null===(t=i.reset)||void 0===t||t.call(i,this)}}}class z{constructor(t,i){this.position=t,this.particle=i}}var C=e(4859);const x=.5;class k{constructor(t,i){this.rectangle=t,this.capacity=i,this._subdivide=()=>{const{x:t,y:i}=this.rectangle.position,{width:e,height:s}=this.rectangle.size,{capacity:n}=this;for(let o=0;o<4;o++){const a=o%2;this._subs.push(new k(new C.M_(t+e*x*a,i+s*x*(Math.round(o*x)-a),e*x,s*x),n))}this._divided=!0},this._points=[],this._divided=!1,this._subs=[]}insert(t){return!!this.rectangle.contains(t.position)&&(this._points.lengthi.insert(t)))))}query(t,i){const e=[];if(!t.intersects(this.rectangle))return[];for(const s of this._points)!t.contains(s.position)&&(0,_.Yf)(t.position,s.position)>s.particle.getRadius()&&(!i||i(s.particle))||e.push(s.particle);if(this._divided)for(const s of this._subs)e.push(...s.query(t,i));return e}queryCircle(t,i,e){return this.query(new C.jl(t.x,t.y,i),e)}queryRectangle(t,i,e){return this.query(new C.M_(t.x,t.y,i.width,i.height),e)}}const P=t=>{const{height:i,width:e}=t;return new C.M_(-.25*e,-.25*i,1.5*e,1.5*i)};class O{constructor(t,i){var e=this;this._addToPool=function(){for(var t=arguments.length,i=new Array(t),s=0;s{var s;const n=t.number;if(null===(s=t.number.density)||void 0===s||!s.enable)return void(void 0===e?this._limit=n.limit.value:n.limit&&this._groupLimits.set(e,n.limit.value));const o=this._initDensityFactor(n.density),a=n.value,r=n.limit.value>0?n.limit.value:a,h=Math.min(a,r)*o+i,l=Math.min(this.count,this.filter((t=>t.group===e)).length);void 0===e?this._limit=n.limit.value*o:this._groupLimits.set(e,n.limit.value*o),lh&&this.removeQuantity(l-h,e)},this._initDensityFactor=t=>{const i=this._container;if(!i.canvas.element||!t.enable)return 1;const e=i.canvas.element,s=i.retina.pixelRatio;return e.width*e.height/(t.height*t.width*s**2)},this._pushParticle=(t,i,e,o)=>{try{let s=this._pool.pop();s||(s=new b(this._engine,this._container)),s.init(this._nextId,t,i,e);let n=!0;if(o&&(n=o(s)),!n)return;return this._array.push(s),this._zArray.push(s),this._nextId++,this._engine.dispatchEvent("particleAdded",{container:this._container,data:{particle:s}}),s}catch(a){(0,n.tZ)().warning("".concat(s.dI," adding particle: ").concat(a))}},this._removeParticle=(t,i,e)=>{const s=this._array[t];if(!s||s.group!==i)return!1;const n=this._zArray.indexOf(s);return this._array.splice(t,1),this._zArray.splice(n,1),s.destroy(e),this._engine.dispatchEvent("particleRemoved",{container:this._container,data:{particle:s}}),this._addToPool(s),!0},this._engine=t,this._container=i,this._nextId=0,this._array=[],this._zArray=[],this._pool=[],this._limit=0,this._groupLimits=new Map,this._needsSort=!1,this._lastZIndex=0,this._interactionManager=new f(t,i),this._pluginsInitialized=!1;const o=i.canvas.size;this.quadTree=new k(P(o),4),this.movers=[],this.updaters=[]}get count(){return this._array.length}addManualParticles(){const t=this._container,i=t.actualOptions;for(const e of i.manualParticles)this.addParticle(e.position?(0,n.E9)(e.position,t.canvas.size):void 0,e.options)}addParticle(t,i,e,s){var n;const o=this._container.actualOptions.particles.number.limit,a=void 0===e?this._limit:null!==(n=this._groupLimits.get(e))&&void 0!==n?n:this._limit,r=this.count;if(a>0)if("delete"===o.mode){const t=r+1-a;t>0&&this.removeQuantity(t)}else if("wait"===o.mode&&r>=a)return;return this._pushParticle(t,i,e,s)}clear(){this._array=[],this._zArray=[],this._pluginsInitialized=!1}destroy(){this._array=[],this._zArray=[],this.movers=[],this.updaters=[]}draw(t){const i=this._container,e=i.canvas;e.clear(),this.update(t);for(const[,s]of i.plugins)e.drawPlugin(s,t);for(const s of this._zArray)s.draw(t)}filter(t){return this._array.filter(t)}find(t){return this._array.find(t)}get(t){return this._array[t]}handleClickMode(t){this._interactionManager.handleClickMode(t)}async init(){const t=this._container,i=t.actualOptions;this._lastZIndex=0,this._needsSort=!1,await this.initPlugins();let e=!1;for(const[,n]of t.plugins)if(void 0!==n.particlesInitialization&&(e=n.particlesInitialization()),e)break;if(this.addManualParticles(),!e){const t=i.particles,e=t.groups;for(const i in e){const n=e[i];for(let e=this.count,o=0;o<(null===(s=n.number)||void 0===s?void 0:s.value)&&e1&&void 0!==arguments[1]?arguments[1]:1,e=arguments.length>2?arguments[2]:void 0,s=arguments.length>3?arguments[3]:void 0;if(t<0||t>this.count)return;let n=0;for(let o=t;n!e.has(t);this._array=this.filter(t),this._zArray=this._zArray.filter(t);for(const i of e)this._engine.dispatchEvent("particleRemoved",{container:this._container,data:{particle:i}});this._addToPool(...e)}this._interactionManager.externalInteract(t);for(const a of this._array){for(const i of this.updaters)i.update(a,t);a.destroyed||a.spawning||this._interactionManager.particlesInteract(a,t)}if(delete this._resizeFactor,this._needsSort){const t=this._zArray;t.sort(((t,i)=>i.position.z-t.position.z||t.id-i.id));const i=1;this._lastZIndex=t[t.length-i].position.z,this._needsSort=!1}}}class T{constructor(t){this.container=t,this.pixelRatio=1,this.reduceFactor=1}init(){const t=this.container,i=t.actualOptions;this.pixelRatio=!i.detectRetina||(0,n.B9)()?1:window.devicePixelRatio,this.reduceFactor=1;const e=this.pixelRatio,s=t.canvas;if(s.element){const t=s.element;s.size.width=t.offsetWidth*e,s.size.height=t.offsetHeight*e}const o=i.particles,a=o.move;this.maxSpeed=(0,_.VG)(a.gravity.maxSpeed)*e,this.sizeAnimationSpeed=(0,_.VG)(o.size.animation.speed)*e}initParticle(t){const i=t.options,e=this.pixelRatio,s=i.move,n=s.distance,o=t.retina;o.moveDrift=(0,_.VG)(s.drift)*e,o.moveSpeed=(0,_.VG)(s.speed)*e,o.sizeAnimationSpeed=(0,_.VG)(i.size.animation.speed)*e;const a=o.maxDistance;a.horizontal=void 0!==n.horizontal?n.horizontal*e:void 0,a.vertical=void 0!==n.vertical?n.vertical*e:void 0,o.maxSpeed=(0,_.VG)(s.gravity.maxSpeed)*e}}function M(t){return t&&!t.destroyed}function S(t,i){const e=new p.J(t,i);for(var s=arguments.length,n=new Array(s>2?s-2:0),o=2;o{if(M(this)&&this.actualOptions.pauseOnOutsideViewport)for(const i of t)i.target===this.interactivity.element&&(i.isIntersecting?this.play():this.pause())},this._nextFrame=t=>{try{var i;if(!this._smooth&&void 0!==this._lastFrameTime&&t2&&void 0!==arguments[2]&&arguments[2]?60/(arguments.length>1&&void 0!==arguments[1]?arguments[1]:60):60*t/s.Xu}}(t-this._lastFrameTime,this.fpsLimit,this._smooth);if(this.addLifeTime(e.value),this._lastFrameTime=t,e.value>s.Xu)return void this.draw(!1);if(this.particles.draw(e),!this.alive())return void this.destroy();this.animationStatus&&this.draw(!1)}catch(e){(0,n.tZ)().error("".concat(s.dI," in animation loop"),e)}},this._engine=t,this.id=Symbol(i),this.fpsLimit=120,this._smooth=!1,this._delay=0,this._duration=0,this._lifeTime=0,this._firstStart=!0,this.started=!1,this.destroyed=!1,this._paused=!0,this._lastFrameTime=0,this.zLayers=100,this.pageHidden=!1,this._sourceOptions=e,this._initialSourceOptions=e,this.retina=new T(this),this.canvas=new l(this),this.particles=new O(this._engine,this),this.pathGenerators=new Map,this.interactivity={mouse:{clicking:!1,inside:!1}},this.plugins=new Map,this.effectDrawers=new Map,this.shapeDrawers=new Map,this._options=S(this._engine,this),this.actualOptions=S(this._engine,this),this._eventListeners=new u(this),this._intersectionObserver=(0,n.BR)((t=>this._intersectionManager(t))),this._engine.dispatchEvent("containerBuilt",{container:this})}get animationStatus(){return!this._paused&&!this.pageHidden&&M(this)}get options(){return this._options}get sourceOptions(){return this._sourceOptions}addClickHandler(t){if(!M(this))return;const i=this.interactivity.element;if(!i)return;const e=(i,e,s)=>{if(!M(this))return;const n=this.retina.pixelRatio,o={x:e.x*n,y:e.y*n},a=this.particles.quadTree.queryCircle(o,s*n);t(i,a)};let s=!1,n=!1;i.addEventListener("click",(t=>{if(!M(this))return;const i=t,s={x:i.offsetX||i.clientX,y:i.offsetY||i.clientY};e(t,s,1)})),i.addEventListener("touchstart",(()=>{M(this)&&(s=!0,n=!1)})),i.addEventListener("touchmove",(()=>{M(this)&&(n=!0)})),i.addEventListener("touchend",(t=>{if(M(this)){if(s&&!n){const i=t,s=1;let n=i.touches[i.touches.length-s];if(!n&&(n=i.changedTouches[i.changedTouches.length-s],!n))return;const o=this.canvas.element,a=o?o.getBoundingClientRect():void 0,r=0,h={x:n.clientX-(a?a.left:r),y:n.clientY-(a?a.top:r)};e(t,h,Math.max(n.radiusX,n.radiusY))}s=!1,n=!1}})),i.addEventListener("touchcancel",(()=>{M(this)&&(s=!1,n=!1)}))}addLifeTime(t){this._lifeTime+=t}addPath(t,i){let e=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return!(!M(this)||!e&&this.pathGenerators.has(t))&&(this.pathGenerators.set(t,i),!0)}alive(){return!this._duration||this._lifeTime<=this._duration}destroy(){if(!M(this))return;this.stop(),this.particles.destroy(),this.canvas.destroy();for(const[,n]of this.effectDrawers){var t;null===(t=n.destroy)||void 0===t||t.call(n,this)}for(const[,n]of this.shapeDrawers){var i;null===(i=n.destroy)||void 0===i||i.call(n,this)}for(const n of this.effectDrawers.keys())this.effectDrawers.delete(n);for(const n of this.shapeDrawers.keys())this.shapeDrawers.delete(n);this._engine.clearPlugins(this),this.destroyed=!0;const e=this._engine.dom(),s=e.findIndex((t=>t===this));if(s>=0){const t=1;e.splice(s,t)}this._engine.dispatchEvent("containerDestroyed",{container:this})}draw(t){if(!M(this))return;let i=t;const e=t=>{i&&(this._lastFrameTime=void 0,i=!1),this._nextFrame(t)};this._drawAnimationFrame=requestAnimationFrame((t=>e(t)))}async export(t){let i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};for(const[,e]of this.plugins){if(!e.export)continue;const s=await e.export(t,i);if(s.supported)return s.blob}(0,n.tZ)().error("".concat(s.dI," - Export plugin with type ").concat(t," not found"))}handleClickMode(t){if(M(this)){this.particles.handleClickMode(t);for(const[,e]of this.plugins){var i;null===(i=e.handleClickMode)||void 0===i||i.call(e,t)}}}async init(){if(!M(this))return;const t=this._engine.getSupportedEffects();for(const s of t){const t=this._engine.getEffectDrawer(s);t&&this.effectDrawers.set(s,t)}const i=this._engine.getSupportedShapes();for(const s of i){const t=this._engine.getShapeDrawer(s);t&&this.shapeDrawers.set(s,t)}await this.particles.initPlugins(),this._options=S(this._engine,this,this._initialSourceOptions,this.sourceOptions),this.actualOptions=S(this._engine,this,this._options);const e=await this._engine.getAvailablePlugins(this);for(const[s,h]of e)this.plugins.set(s,h);this.retina.init(),await this.canvas.init(),this.updateActualOptions(),this.canvas.initBackground(),this.canvas.resize(),this.zLayers=this.actualOptions.zLayers,this._duration=(0,_.VG)(this.actualOptions.duration)*s.Xu,this._delay=(0,_.VG)(this.actualOptions.delay)*s.Xu,this._lifeTime=0;this.fpsLimit=this.actualOptions.fpsLimit>0?this.actualOptions.fpsLimit:120,this._smooth=this.actualOptions.smooth;for(const[,s]of this.effectDrawers){var n;await(null===(n=s.init)||void 0===n?void 0:n.call(s,this))}for(const[,s]of this.shapeDrawers){var o;await(null===(o=s.init)||void 0===o?void 0:o.call(s,this))}for(const[,s]of this.plugins){var a;await(null===(a=s.init)||void 0===a?void 0:a.call(s))}this._engine.dispatchEvent("containerInit",{container:this}),await this.particles.init(),this.particles.setDensity();for(const[,s]of this.plugins){var r;null===(r=s.particlesSetup)||void 0===r||r.call(s)}this._engine.dispatchEvent("particlesSetup",{container:this})}async loadTheme(t){M(this)&&(this._currentTheme=t,await this.refresh())}pause(){if(M(this)&&(void 0!==this._drawAnimationFrame&&(cancelAnimationFrame(this._drawAnimationFrame),delete this._drawAnimationFrame),!this._paused)){for(const[,i]of this.plugins){var t;null===(t=i.pause)||void 0===t||t.call(i)}this.pageHidden||(this._paused=!0),this._engine.dispatchEvent("containerPaused",{container:this})}}play(t){if(!M(this))return;const i=this._paused||t;if(!this._firstStart||this.actualOptions.autoPlay){if(this._paused&&(this._paused=!1),i)for(const[,t]of this.plugins)t.play&&t.play();this._engine.dispatchEvent("containerPlay",{container:this}),this.draw(null!==i&&void 0!==i&&i)}else this._firstStart=!1}async refresh(){if(M(this))return this.stop(),this.start()}async reset(){if(M(this))return this._initialSourceOptions=void 0,this._options=S(this._engine,this),this.actualOptions=S(this._engine,this,this._options),this.refresh()}async start(){M(this)&&!this.started&&(await this.init(),this.started=!0,await new Promise((t=>{const i=async()=>{this._eventListeners.addListeners(),this.interactivity.element instanceof HTMLElement&&this._intersectionObserver&&this._intersectionObserver.observe(this.interactivity.element);for(const[,t]of this.plugins){var i;await(null===(i=t.start)||void 0===i?void 0:i.call(t))}this._engine.dispatchEvent("containerStarted",{container:this}),this.play(),t()};this._delayTimeout=setTimeout((()=>{i()}),this._delay)})))}stop(){if(M(this)&&this.started){this._delayTimeout&&(clearTimeout(this._delayTimeout),delete this._delayTimeout),this._firstStart=!0,this.started=!1,this._eventListeners.removeListeners(),this.pause(),this.particles.clear(),this.canvas.stop(),this.interactivity.element instanceof HTMLElement&&this._intersectionObserver&&this._intersectionObserver.unobserve(this.interactivity.element);for(const[,i]of this.plugins){var t;null===(t=i.stop)||void 0===t||t.call(i)}for(const t of this.plugins.keys())this.plugins.delete(t);this._sourceOptions=this._options,this._engine.dispatchEvent("containerStopped",{container:this})}}updateActualOptions(){this.actualOptions.responsive=[];const t=this.actualOptions.setResponsive(this.canvas.size.width,this.retina.pixelRatio,this._options);return this.actualOptions.setTheme(this._currentTheme),this._responsiveMaxWidth!==t&&(this._responsiveMaxWidth=t,!0)}}}}]); +//# sourceMappingURL=1927.8bd9ca2b.chunk.js.map \ No newline at end of file diff --git a/build/static/js/1927.1aafad7e.chunk.js.map b/build/static/js/1927.8bd9ca2b.chunk.js.map similarity index 99% rename from build/static/js/1927.1aafad7e.chunk.js.map rename to build/static/js/1927.8bd9ca2b.chunk.js.map index 5ce8f90..27f7f7a 100644 --- a/build/static/js/1927.1aafad7e.chunk.js.map +++ b/build/static/js/1927.8bd9ca2b.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/1927.1aafad7e.chunk.js","mappings":"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","sources":["../node_modules/@tsparticles/engine/browser/Core/Canvas.js","../node_modules/@tsparticles/engine/browser/Core/Utils/EventListeners.js","../node_modules/@tsparticles/engine/browser/Core/Utils/InteractionManager.js","../node_modules/@tsparticles/engine/browser/Core/Particle.js","../node_modules/@tsparticles/engine/browser/Core/Utils/Point.js","../node_modules/@tsparticles/engine/browser/Core/Utils/QuadTree.js","../node_modules/@tsparticles/engine/browser/Core/Particles.js","../node_modules/@tsparticles/engine/browser/Core/Retina.js","../node_modules/@tsparticles/engine/browser/Core/Container.js"],"sourcesContent":["import { clear, drawParticle, drawParticlePlugin, drawPlugin, paintBase, paintImage } from \"../Utils/CanvasUtils.js\";\nimport { deepExtend, getLogger, safeMutationObserver } from \"../Utils/Utils.js\";\nimport { getStyleFromHsl, getStyleFromRgb, rangeColorToHsl, rangeColorToRgb } from \"../Utils/ColorUtils.js\";\nimport { generatedAttribute } from \"./Utils/Constants.js\";\nfunction setTransformValue(factor, newFactor, key) {\n const newValue = newFactor[key], defaultValue = 1;\n if (newValue !== undefined) {\n factor[key] = (factor[key] ?? defaultValue) * newValue;\n }\n}\nfunction setStyle(canvas, style, important = false) {\n if (!style) {\n return;\n }\n const element = canvas;\n if (!element) {\n return;\n }\n const elementStyle = element.style;\n if (!elementStyle) {\n return;\n }\n for (const key in style) {\n const value = style[key];\n if (!value) {\n continue;\n }\n elementStyle.setProperty(key, value, important ? \"important\" : \"\");\n }\n}\nexport class Canvas {\n constructor(container) {\n this.container = container;\n this._applyPostDrawUpdaters = (particle) => {\n for (const updater of this._postDrawUpdaters) {\n updater.afterDraw?.(particle);\n }\n };\n this._applyPreDrawUpdaters = (ctx, particle, radius, zOpacity, colorStyles, transform) => {\n for (const updater of this._preDrawUpdaters) {\n if (updater.getColorStyles) {\n const { fill, stroke } = updater.getColorStyles(particle, ctx, radius, zOpacity);\n if (fill) {\n colorStyles.fill = fill;\n }\n if (stroke) {\n colorStyles.stroke = stroke;\n }\n }\n if (updater.getTransformValues) {\n const updaterTransform = updater.getTransformValues(particle);\n for (const key in updaterTransform) {\n setTransformValue(transform, updaterTransform, key);\n }\n }\n updater.beforeDraw?.(particle);\n }\n };\n this._applyResizePlugins = () => {\n for (const plugin of this._resizePlugins) {\n plugin.resize?.();\n }\n };\n this._getPluginParticleColors = (particle) => {\n let fColor, sColor;\n for (const plugin of this._colorPlugins) {\n if (!fColor && plugin.particleFillColor) {\n fColor = rangeColorToHsl(plugin.particleFillColor(particle));\n }\n if (!sColor && plugin.particleStrokeColor) {\n sColor = rangeColorToHsl(plugin.particleStrokeColor(particle));\n }\n if (fColor && sColor) {\n break;\n }\n }\n return [fColor, sColor];\n };\n this._initCover = async () => {\n const options = this.container.actualOptions, cover = options.backgroundMask.cover, color = cover.color;\n if (color) {\n const coverRgb = rangeColorToRgb(color);\n if (coverRgb) {\n const coverColor = {\n ...coverRgb,\n a: cover.opacity,\n };\n this._coverColorStyle = getStyleFromRgb(coverColor, coverColor.a);\n }\n }\n else {\n await new Promise((resolve, reject) => {\n if (!cover.image) {\n return;\n }\n const img = document.createElement(\"img\");\n img.addEventListener(\"load\", () => {\n this._coverImage = {\n image: img,\n opacity: cover.opacity,\n };\n resolve();\n });\n img.addEventListener(\"error\", (evt) => {\n reject(evt.error);\n });\n img.src = cover.image;\n });\n }\n };\n this._initStyle = () => {\n const element = this.element, options = this.container.actualOptions;\n if (!element) {\n return;\n }\n if (this._fullScreen) {\n this._originalStyle = deepExtend({}, element.style);\n this._setFullScreenStyle();\n }\n else {\n this._resetOriginalStyle();\n }\n for (const key in options.style) {\n if (!key || !options.style) {\n continue;\n }\n const value = options.style[key];\n if (!value) {\n continue;\n }\n element.style.setProperty(key, value, \"important\");\n }\n };\n this._initTrail = async () => {\n const options = this.container.actualOptions, trail = options.particles.move.trail, trailFill = trail.fill;\n if (!trail.enable) {\n return;\n }\n const factorNumerator = 1, opacity = factorNumerator / trail.length;\n if (trailFill.color) {\n const fillColor = rangeColorToRgb(trailFill.color);\n if (!fillColor) {\n return;\n }\n this._trailFill = {\n color: {\n ...fillColor,\n },\n opacity,\n };\n }\n else {\n await new Promise((resolve, reject) => {\n if (!trailFill.image) {\n return;\n }\n const img = document.createElement(\"img\");\n img.addEventListener(\"load\", () => {\n this._trailFill = {\n image: img,\n opacity,\n };\n resolve();\n });\n img.addEventListener(\"error\", (evt) => {\n reject(evt.error);\n });\n img.src = trailFill.image;\n });\n }\n };\n this._paintBase = (baseColor) => {\n this.draw((ctx) => paintBase(ctx, this.size, baseColor));\n };\n this._paintImage = (image, opacity) => {\n this.draw((ctx) => paintImage(ctx, this.size, image, opacity));\n };\n this._repairStyle = () => {\n const element = this.element;\n if (!element) {\n return;\n }\n this._safeMutationObserver((observer) => observer.disconnect());\n this._initStyle();\n this.initBackground();\n this._safeMutationObserver((observer) => observer.observe(element, { attributes: true }));\n };\n this._resetOriginalStyle = () => {\n const element = this.element, originalStyle = this._originalStyle;\n if (!(element && originalStyle)) {\n return;\n }\n setStyle(element, originalStyle);\n };\n this._safeMutationObserver = (callback) => {\n if (!this._mutationObserver) {\n return;\n }\n callback(this._mutationObserver);\n };\n this._setFullScreenStyle = () => {\n const element = this.element;\n if (!element) {\n return;\n }\n const radix = 10;\n setStyle(element, {\n position: \"fixed\",\n zIndex: this.container.actualOptions.fullScreen.zIndex.toString(radix),\n top: \"0\",\n left: \"0\",\n width: \"100%\",\n height: \"100%\",\n }, true);\n };\n this.size = {\n height: 0,\n width: 0,\n };\n this._context = null;\n this._generated = false;\n this._preDrawUpdaters = [];\n this._postDrawUpdaters = [];\n this._resizePlugins = [];\n this._colorPlugins = [];\n }\n get _fullScreen() {\n return this.container.actualOptions.fullScreen.enable;\n }\n clear() {\n const options = this.container.actualOptions, trail = options.particles.move.trail, trailFill = this._trailFill, minimumLength = 0;\n if (options.backgroundMask.enable) {\n this.paint();\n }\n else if (trail.enable && trail.length > minimumLength && trailFill) {\n if (trailFill.color) {\n this._paintBase(getStyleFromRgb(trailFill.color, trailFill.opacity));\n }\n else if (trailFill.image) {\n this._paintImage(trailFill.image, trailFill.opacity);\n }\n }\n else if (options.clear) {\n this.draw((ctx) => {\n clear(ctx, this.size);\n });\n }\n }\n destroy() {\n this.stop();\n if (this._generated) {\n const element = this.element;\n element?.remove();\n }\n else {\n this._resetOriginalStyle();\n }\n this._preDrawUpdaters = [];\n this._postDrawUpdaters = [];\n this._resizePlugins = [];\n this._colorPlugins = [];\n }\n draw(cb) {\n const ctx = this._context;\n if (!ctx) {\n return;\n }\n return cb(ctx);\n }\n drawAsync(cb) {\n const ctx = this._context;\n if (!ctx) {\n return undefined;\n }\n return cb(ctx);\n }\n drawParticle(particle, delta) {\n if (particle.spawning || particle.destroyed) {\n return;\n }\n const radius = particle.getRadius(), minimumSize = 0;\n if (radius <= minimumSize) {\n return;\n }\n const pfColor = particle.getFillColor(), psColor = particle.getStrokeColor() ?? pfColor;\n let [fColor, sColor] = this._getPluginParticleColors(particle);\n if (!fColor) {\n fColor = pfColor;\n }\n if (!sColor) {\n sColor = psColor;\n }\n if (!fColor && !sColor) {\n return;\n }\n this.draw((ctx) => {\n const container = this.container, options = container.actualOptions, zIndexOptions = particle.options.zIndex, zIndexFactorOffset = 1, zIndexFactor = zIndexFactorOffset - particle.zIndexFactor, zOpacityFactor = zIndexFactor ** zIndexOptions.opacityRate, defaultOpacity = 1, opacity = particle.bubble.opacity ?? particle.opacity?.value ?? defaultOpacity, strokeOpacity = particle.strokeOpacity ?? opacity, zOpacity = opacity * zOpacityFactor, zStrokeOpacity = strokeOpacity * zOpacityFactor, transform = {}, colorStyles = {\n fill: fColor ? getStyleFromHsl(fColor, zOpacity) : undefined,\n };\n colorStyles.stroke = sColor ? getStyleFromHsl(sColor, zStrokeOpacity) : colorStyles.fill;\n this._applyPreDrawUpdaters(ctx, particle, radius, zOpacity, colorStyles, transform);\n drawParticle({\n container,\n context: ctx,\n particle,\n delta,\n colorStyles,\n backgroundMask: options.backgroundMask.enable,\n composite: options.backgroundMask.composite,\n radius: radius * zIndexFactor ** zIndexOptions.sizeRate,\n opacity: zOpacity,\n shadow: particle.options.shadow,\n transform,\n });\n this._applyPostDrawUpdaters(particle);\n });\n }\n drawParticlePlugin(plugin, particle, delta) {\n this.draw((ctx) => drawParticlePlugin(ctx, plugin, particle, delta));\n }\n drawPlugin(plugin, delta) {\n this.draw((ctx) => drawPlugin(ctx, plugin, delta));\n }\n async init() {\n this._safeMutationObserver((obs) => obs.disconnect());\n this._mutationObserver = safeMutationObserver((records) => {\n for (const record of records) {\n if (record.type === \"attributes\" && record.attributeName === \"style\") {\n this._repairStyle();\n }\n }\n });\n this.resize();\n this._initStyle();\n await this._initCover();\n try {\n await this._initTrail();\n }\n catch (e) {\n getLogger().error(e);\n }\n this.initBackground();\n this._safeMutationObserver((obs) => {\n if (!this.element) {\n return;\n }\n obs.observe(this.element, { attributes: true });\n });\n this.initUpdaters();\n this.initPlugins();\n this.paint();\n }\n initBackground() {\n const options = this.container.actualOptions, background = options.background, element = this.element;\n if (!element) {\n return;\n }\n const elementStyle = element.style;\n if (!elementStyle) {\n return;\n }\n if (background.color) {\n const color = rangeColorToRgb(background.color);\n elementStyle.backgroundColor = color ? getStyleFromRgb(color, background.opacity) : \"\";\n }\n else {\n elementStyle.backgroundColor = \"\";\n }\n elementStyle.backgroundImage = background.image || \"\";\n elementStyle.backgroundPosition = background.position || \"\";\n elementStyle.backgroundRepeat = background.repeat || \"\";\n elementStyle.backgroundSize = background.size || \"\";\n }\n initPlugins() {\n this._resizePlugins = [];\n for (const [, plugin] of this.container.plugins) {\n if (plugin.resize) {\n this._resizePlugins.push(plugin);\n }\n if (plugin.particleFillColor ?? plugin.particleStrokeColor) {\n this._colorPlugins.push(plugin);\n }\n }\n }\n initUpdaters() {\n this._preDrawUpdaters = [];\n this._postDrawUpdaters = [];\n for (const updater of this.container.particles.updaters) {\n if (updater.afterDraw) {\n this._postDrawUpdaters.push(updater);\n }\n if (updater.getColorStyles ?? updater.getTransformValues ?? updater.beforeDraw) {\n this._preDrawUpdaters.push(updater);\n }\n }\n }\n loadCanvas(canvas) {\n if (this._generated && this.element) {\n this.element.remove();\n }\n this._generated =\n canvas.dataset && generatedAttribute in canvas.dataset\n ? canvas.dataset[generatedAttribute] === \"true\"\n : this._generated;\n this.element = canvas;\n this.element.ariaHidden = \"true\";\n this._originalStyle = deepExtend({}, this.element.style);\n this.size.height = canvas.offsetHeight;\n this.size.width = canvas.offsetWidth;\n this._context = this.element.getContext(\"2d\");\n this._safeMutationObserver((obs) => {\n if (!this.element) {\n return;\n }\n obs.observe(this.element, { attributes: true });\n });\n this.container.retina.init();\n this.initBackground();\n }\n paint() {\n const options = this.container.actualOptions;\n this.draw((ctx) => {\n if (options.backgroundMask.enable && options.backgroundMask.cover) {\n clear(ctx, this.size);\n if (this._coverImage) {\n this._paintImage(this._coverImage.image, this._coverImage.opacity);\n }\n else if (this._coverColorStyle) {\n this._paintBase(this._coverColorStyle);\n }\n else {\n this._paintBase();\n }\n }\n else {\n this._paintBase();\n }\n });\n }\n resize() {\n if (!this.element) {\n return false;\n }\n const container = this.container, pxRatio = container.retina.pixelRatio, size = container.canvas.size, newSize = {\n width: this.element.offsetWidth * pxRatio,\n height: this.element.offsetHeight * pxRatio,\n };\n if (newSize.height === size.height &&\n newSize.width === size.width &&\n newSize.height === this.element.height &&\n newSize.width === this.element.width) {\n return false;\n }\n const oldSize = { ...size };\n this.element.width = size.width = this.element.offsetWidth * pxRatio;\n this.element.height = size.height = this.element.offsetHeight * pxRatio;\n if (this.container.started) {\n container.particles.setResizeFactor({\n width: size.width / oldSize.width,\n height: size.height / oldSize.height,\n });\n }\n return true;\n }\n stop() {\n this._safeMutationObserver((obs) => obs.disconnect());\n this._mutationObserver = undefined;\n this.draw((ctx) => clear(ctx, this.size));\n }\n async windowResize() {\n if (!this.element || !this.resize()) {\n return;\n }\n const container = this.container, needsRefresh = container.updateActualOptions();\n container.particles.setDensity();\n this._applyResizePlugins();\n if (needsRefresh) {\n await container.refresh();\n }\n }\n}\n","import { executeOnSingleOrMultiple, safeMatchMedia } from \"../../Utils/Utils.js\";\nimport { millisecondsToSeconds, mouseDownEvent, mouseLeaveEvent, mouseMoveEvent, mouseOutEvent, mouseUpEvent, resizeEvent, touchCancelEvent, touchEndEvent, touchMoveEvent, touchStartEvent, visibilityChangeEvent, } from \"./Constants.js\";\nimport { isBoolean } from \"../../Utils/TypeUtils.js\";\nconst double = 2;\nfunction manageListener(element, event, handler, add, options) {\n if (add) {\n let addOptions = { passive: true };\n if (isBoolean(options)) {\n addOptions.capture = options;\n }\n else if (options !== undefined) {\n addOptions = options;\n }\n element.addEventListener(event, handler, addOptions);\n }\n else {\n const removeOptions = options;\n element.removeEventListener(event, handler, removeOptions);\n }\n}\nexport class EventListeners {\n constructor(container) {\n this.container = container;\n this._doMouseTouchClick = (e) => {\n const container = this.container, options = container.actualOptions;\n if (this._canPush) {\n const mouseInteractivity = container.interactivity.mouse, mousePos = mouseInteractivity.position;\n if (!mousePos) {\n return;\n }\n mouseInteractivity.clickPosition = { ...mousePos };\n mouseInteractivity.clickTime = new Date().getTime();\n const onClick = options.interactivity.events.onClick;\n executeOnSingleOrMultiple(onClick.mode, (mode) => this.container.handleClickMode(mode));\n }\n if (e.type === \"touchend\") {\n const touchDelay = 500;\n setTimeout(() => this._mouseTouchFinish(), touchDelay);\n }\n };\n this._handleThemeChange = (e) => {\n const mediaEvent = e, container = this.container, options = container.options, defaultThemes = options.defaultThemes, themeName = mediaEvent.matches ? defaultThemes.dark : defaultThemes.light, theme = options.themes.find((theme) => theme.name === themeName);\n if (theme && theme.default.auto) {\n void container.loadTheme(themeName);\n }\n };\n this._handleVisibilityChange = () => {\n const container = this.container, options = container.actualOptions;\n this._mouseTouchFinish();\n if (!options.pauseOnBlur) {\n return;\n }\n if (document && document.hidden) {\n container.pageHidden = true;\n container.pause();\n }\n else {\n container.pageHidden = false;\n if (container.animationStatus) {\n void container.play(true);\n }\n else {\n void container.draw(true);\n }\n }\n };\n this._handleWindowResize = () => {\n if (this._resizeTimeout) {\n clearTimeout(this._resizeTimeout);\n delete this._resizeTimeout;\n }\n const handleResize = async () => {\n const canvas = this.container.canvas;\n await canvas?.windowResize();\n };\n this._resizeTimeout = setTimeout(() => void handleResize(), this.container.actualOptions.interactivity.events.resize.delay * millisecondsToSeconds);\n };\n this._manageInteractivityListeners = (mouseLeaveTmpEvent, add) => {\n const handlers = this._handlers, container = this.container, options = container.actualOptions;\n const interactivityEl = container.interactivity.element;\n if (!interactivityEl) {\n return;\n }\n const html = interactivityEl, canvasEl = container.canvas.element;\n if (canvasEl) {\n canvasEl.style.pointerEvents = html === canvasEl ? \"initial\" : \"none\";\n }\n if (!(options.interactivity.events.onHover.enable || options.interactivity.events.onClick.enable)) {\n return;\n }\n manageListener(interactivityEl, mouseMoveEvent, handlers.mouseMove, add);\n manageListener(interactivityEl, touchStartEvent, handlers.touchStart, add);\n manageListener(interactivityEl, touchMoveEvent, handlers.touchMove, add);\n if (!options.interactivity.events.onClick.enable) {\n manageListener(interactivityEl, touchEndEvent, handlers.touchEnd, add);\n }\n else {\n manageListener(interactivityEl, touchEndEvent, handlers.touchEndClick, add);\n manageListener(interactivityEl, mouseUpEvent, handlers.mouseUp, add);\n manageListener(interactivityEl, mouseDownEvent, handlers.mouseDown, add);\n }\n manageListener(interactivityEl, mouseLeaveTmpEvent, handlers.mouseLeave, add);\n manageListener(interactivityEl, touchCancelEvent, handlers.touchCancel, add);\n };\n this._manageListeners = (add) => {\n const handlers = this._handlers, container = this.container, options = container.actualOptions, detectType = options.interactivity.detectsOn, canvasEl = container.canvas.element;\n let mouseLeaveTmpEvent = mouseLeaveEvent;\n if (detectType === \"window\") {\n container.interactivity.element = window;\n mouseLeaveTmpEvent = mouseOutEvent;\n }\n else if (detectType === \"parent\" && canvasEl) {\n container.interactivity.element = canvasEl.parentElement ?? canvasEl.parentNode;\n }\n else {\n container.interactivity.element = canvasEl;\n }\n this._manageMediaMatch(add);\n this._manageResize(add);\n this._manageInteractivityListeners(mouseLeaveTmpEvent, add);\n if (document) {\n manageListener(document, visibilityChangeEvent, handlers.visibilityChange, add, false);\n }\n };\n this._manageMediaMatch = (add) => {\n const handlers = this._handlers, mediaMatch = safeMatchMedia(\"(prefers-color-scheme: dark)\");\n if (!mediaMatch) {\n return;\n }\n if (mediaMatch.addEventListener !== undefined) {\n manageListener(mediaMatch, \"change\", handlers.themeChange, add);\n return;\n }\n if (mediaMatch.addListener === undefined) {\n return;\n }\n if (add) {\n mediaMatch.addListener(handlers.oldThemeChange);\n }\n else {\n mediaMatch.removeListener(handlers.oldThemeChange);\n }\n };\n this._manageResize = (add) => {\n const handlers = this._handlers, container = this.container, options = container.actualOptions;\n if (!options.interactivity.events.resize) {\n return;\n }\n if (typeof ResizeObserver === \"undefined\") {\n manageListener(window, resizeEvent, handlers.resize, add);\n return;\n }\n const canvasEl = container.canvas.element;\n if (this._resizeObserver && !add) {\n if (canvasEl) {\n this._resizeObserver.unobserve(canvasEl);\n }\n this._resizeObserver.disconnect();\n delete this._resizeObserver;\n }\n else if (!this._resizeObserver && add && canvasEl) {\n this._resizeObserver = new ResizeObserver((entries) => {\n const entry = entries.find((e) => e.target === canvasEl);\n if (!entry) {\n return;\n }\n this._handleWindowResize();\n });\n this._resizeObserver.observe(canvasEl);\n }\n };\n this._mouseDown = () => {\n const { interactivity } = this.container;\n if (!interactivity) {\n return;\n }\n const { mouse } = interactivity;\n mouse.clicking = true;\n mouse.downPosition = mouse.position;\n };\n this._mouseTouchClick = (e) => {\n const container = this.container, options = container.actualOptions, { mouse } = container.interactivity;\n mouse.inside = true;\n let handled = false;\n const mousePosition = mouse.position;\n if (!mousePosition || !options.interactivity.events.onClick.enable) {\n return;\n }\n for (const [, plugin] of container.plugins) {\n if (!plugin.clickPositionValid) {\n continue;\n }\n handled = plugin.clickPositionValid(mousePosition);\n if (handled) {\n break;\n }\n }\n if (!handled) {\n this._doMouseTouchClick(e);\n }\n mouse.clicking = false;\n };\n this._mouseTouchFinish = () => {\n const interactivity = this.container.interactivity;\n if (!interactivity) {\n return;\n }\n const mouse = interactivity.mouse;\n delete mouse.position;\n delete mouse.clickPosition;\n delete mouse.downPosition;\n interactivity.status = mouseLeaveEvent;\n mouse.inside = false;\n mouse.clicking = false;\n };\n this._mouseTouchMove = (e) => {\n const container = this.container, options = container.actualOptions, interactivity = container.interactivity, canvasEl = container.canvas.element;\n if (!interactivity?.element) {\n return;\n }\n interactivity.mouse.inside = true;\n let pos;\n if (e.type.startsWith(\"pointer\")) {\n this._canPush = true;\n const mouseEvent = e;\n if (interactivity.element === window) {\n if (canvasEl) {\n const clientRect = canvasEl.getBoundingClientRect();\n pos = {\n x: mouseEvent.clientX - clientRect.left,\n y: mouseEvent.clientY - clientRect.top,\n };\n }\n }\n else if (options.interactivity.detectsOn === \"parent\") {\n const source = mouseEvent.target, target = mouseEvent.currentTarget;\n if (source && target && canvasEl) {\n const sourceRect = source.getBoundingClientRect(), targetRect = target.getBoundingClientRect(), canvasRect = canvasEl.getBoundingClientRect();\n pos = {\n x: mouseEvent.offsetX + double * sourceRect.left - (targetRect.left + canvasRect.left),\n y: mouseEvent.offsetY + double * sourceRect.top - (targetRect.top + canvasRect.top),\n };\n }\n else {\n pos = {\n x: mouseEvent.offsetX ?? mouseEvent.clientX,\n y: mouseEvent.offsetY ?? mouseEvent.clientY,\n };\n }\n }\n else if (mouseEvent.target === canvasEl) {\n pos = {\n x: mouseEvent.offsetX ?? mouseEvent.clientX,\n y: mouseEvent.offsetY ?? mouseEvent.clientY,\n };\n }\n }\n else {\n this._canPush = e.type !== \"touchmove\";\n if (canvasEl) {\n const touchEvent = e, lengthOffset = 1, lastTouch = touchEvent.touches[touchEvent.touches.length - lengthOffset], canvasRect = canvasEl.getBoundingClientRect(), defaultCoordinate = 0;\n pos = {\n x: lastTouch.clientX - (canvasRect.left ?? defaultCoordinate),\n y: lastTouch.clientY - (canvasRect.top ?? defaultCoordinate),\n };\n }\n }\n const pxRatio = container.retina.pixelRatio;\n if (pos) {\n pos.x *= pxRatio;\n pos.y *= pxRatio;\n }\n interactivity.mouse.position = pos;\n interactivity.status = mouseMoveEvent;\n };\n this._touchEnd = (e) => {\n const evt = e, touches = Array.from(evt.changedTouches);\n for (const touch of touches) {\n this._touches.delete(touch.identifier);\n }\n this._mouseTouchFinish();\n };\n this._touchEndClick = (e) => {\n const evt = e, touches = Array.from(evt.changedTouches);\n for (const touch of touches) {\n this._touches.delete(touch.identifier);\n }\n this._mouseTouchClick(e);\n };\n this._touchStart = (e) => {\n const evt = e, touches = Array.from(evt.changedTouches);\n for (const touch of touches) {\n this._touches.set(touch.identifier, performance.now());\n }\n this._mouseTouchMove(e);\n };\n this._canPush = true;\n this._touches = new Map();\n this._handlers = {\n mouseDown: () => this._mouseDown(),\n mouseLeave: () => this._mouseTouchFinish(),\n mouseMove: (e) => this._mouseTouchMove(e),\n mouseUp: (e) => this._mouseTouchClick(e),\n touchStart: (e) => this._touchStart(e),\n touchMove: (e) => this._mouseTouchMove(e),\n touchEnd: (e) => this._touchEnd(e),\n touchCancel: (e) => this._touchEnd(e),\n touchEndClick: (e) => this._touchEndClick(e),\n visibilityChange: () => this._handleVisibilityChange(),\n themeChange: (e) => this._handleThemeChange(e),\n oldThemeChange: (e) => this._handleThemeChange(e),\n resize: () => {\n this._handleWindowResize();\n },\n };\n }\n addListeners() {\n this._manageListeners(true);\n }\n removeListeners() {\n this._manageListeners(false);\n }\n}\n","export class InteractionManager {\n constructor(engine, container) {\n this.container = container;\n this._engine = engine;\n this._interactors = [];\n this._externalInteractors = [];\n this._particleInteractors = [];\n }\n externalInteract(delta) {\n for (const interactor of this._externalInteractors) {\n if (interactor.isEnabled()) {\n interactor.interact(delta);\n }\n }\n }\n handleClickMode(mode) {\n for (const interactor of this._externalInteractors) {\n interactor.handleClickMode?.(mode);\n }\n }\n async init() {\n this._interactors = await this._engine.getInteractors(this.container, true);\n this._externalInteractors = [];\n this._particleInteractors = [];\n for (const interactor of this._interactors) {\n switch (interactor.type) {\n case \"external\":\n this._externalInteractors.push(interactor);\n break;\n case \"particles\":\n this._particleInteractors.push(interactor);\n break;\n }\n interactor.init();\n }\n }\n particlesInteract(particle, delta) {\n for (const interactor of this._externalInteractors) {\n interactor.clear(particle, delta);\n }\n for (const interactor of this._particleInteractors) {\n if (interactor.isEnabled(particle)) {\n interactor.interact(particle, delta);\n }\n }\n }\n reset(particle) {\n for (const interactor of this._externalInteractors) {\n if (interactor.isEnabled()) {\n interactor.reset(particle);\n }\n }\n for (const interactor of this._particleInteractors) {\n if (interactor.isEnabled(particle)) {\n interactor.reset(particle);\n }\n }\n }\n}\n","import { Vector, Vector3d } from \"./Utils/Vectors.js\";\nimport { calcExactPositionOrRandomFromSize, clamp, degToRad, getDistance, getParticleBaseVelocity, getParticleDirectionAngle, getRandom, getRangeValue, randomInRange, setRangeValue, } from \"../Utils/NumberUtils.js\";\nimport { deepExtend, getPosition, initParticleNumericAnimationValue, isInArray, itemFromSingleOrMultiple, } from \"../Utils/Utils.js\";\nimport { errorPrefix, millisecondsToSeconds } from \"./Utils/Constants.js\";\nimport { getHslFromAnimation, rangeColorToRgb } from \"../Utils/ColorUtils.js\";\nimport { Interactivity } from \"../Options/Classes/Interactivity/Interactivity.js\";\nimport { alterHsl } from \"../Utils/CanvasUtils.js\";\nimport { loadParticlesOptions } from \"../Utils/OptionsUtils.js\";\nconst defaultRetryCount = 0, double = 2, half = 0.5, squareExp = 2;\nfunction loadEffectData(effect, effectOptions, id, reduceDuplicates) {\n const effectData = effectOptions.options[effect];\n if (!effectData) {\n return;\n }\n return deepExtend({\n close: effectOptions.close,\n fill: effectOptions.fill,\n }, itemFromSingleOrMultiple(effectData, id, reduceDuplicates));\n}\nfunction loadShapeData(shape, shapeOptions, id, reduceDuplicates) {\n const shapeData = shapeOptions.options[shape];\n if (!shapeData) {\n return;\n }\n return deepExtend({\n close: shapeOptions.close,\n fill: shapeOptions.fill,\n }, itemFromSingleOrMultiple(shapeData, id, reduceDuplicates));\n}\nfunction fixOutMode(data) {\n if (!isInArray(data.outMode, data.checkModes)) {\n return;\n }\n const diameter = data.radius * double;\n if (data.coord > data.maxCoord - diameter) {\n data.setCb(-data.radius);\n }\n else if (data.coord < diameter) {\n data.setCb(data.radius);\n }\n}\nexport class Particle {\n constructor(engine, container) {\n this.container = container;\n this._calcPosition = (container, position, zIndex, tryCount = defaultRetryCount) => {\n for (const [, plugin] of container.plugins) {\n const pluginPos = plugin.particlePosition !== undefined ? plugin.particlePosition(position, this) : undefined;\n if (pluginPos) {\n return Vector3d.create(pluginPos.x, pluginPos.y, zIndex);\n }\n }\n const canvasSize = container.canvas.size, exactPosition = calcExactPositionOrRandomFromSize({\n size: canvasSize,\n position: position,\n }), pos = Vector3d.create(exactPosition.x, exactPosition.y, zIndex), radius = this.getRadius(), outModes = this.options.move.outModes, fixHorizontal = (outMode) => {\n fixOutMode({\n outMode,\n checkModes: [\"bounce\"],\n coord: pos.x,\n maxCoord: container.canvas.size.width,\n setCb: (value) => (pos.x += value),\n radius,\n });\n }, fixVertical = (outMode) => {\n fixOutMode({\n outMode,\n checkModes: [\"bounce\"],\n coord: pos.y,\n maxCoord: container.canvas.size.height,\n setCb: (value) => (pos.y += value),\n radius,\n });\n };\n fixHorizontal(outModes.left ?? outModes.default);\n fixHorizontal(outModes.right ?? outModes.default);\n fixVertical(outModes.top ?? outModes.default);\n fixVertical(outModes.bottom ?? outModes.default);\n if (this._checkOverlap(pos, tryCount)) {\n const increment = 1;\n return this._calcPosition(container, undefined, zIndex, tryCount + increment);\n }\n return pos;\n };\n this._calculateVelocity = () => {\n const baseVelocity = getParticleBaseVelocity(this.direction), res = baseVelocity.copy(), moveOptions = this.options.move;\n if (moveOptions.direction === \"inside\" || moveOptions.direction === \"outside\") {\n return res;\n }\n const rad = degToRad(getRangeValue(moveOptions.angle.value)), radOffset = degToRad(getRangeValue(moveOptions.angle.offset)), range = {\n left: radOffset - rad * half,\n right: radOffset + rad * half,\n };\n if (!moveOptions.straight) {\n res.angle += randomInRange(setRangeValue(range.left, range.right));\n }\n if (moveOptions.random && typeof moveOptions.speed === \"number\") {\n res.length *= getRandom();\n }\n return res;\n };\n this._checkOverlap = (pos, tryCount = defaultRetryCount) => {\n const collisionsOptions = this.options.collisions, radius = this.getRadius();\n if (!collisionsOptions.enable) {\n return false;\n }\n const overlapOptions = collisionsOptions.overlap;\n if (overlapOptions.enable) {\n return false;\n }\n const retries = overlapOptions.retries, minRetries = 0;\n if (retries >= minRetries && tryCount > retries) {\n throw new Error(`${errorPrefix} particle is overlapping and can't be placed`);\n }\n return !!this.container.particles.find((particle) => getDistance(pos, particle.position) < radius + particle.getRadius());\n };\n this._getRollColor = (color) => {\n if (!color || !this.roll || (!this.backColor && !this.roll.alter)) {\n return color;\n }\n const rollFactor = 1, none = 0, backFactor = this.roll.horizontal && this.roll.vertical ? double * rollFactor : rollFactor, backSum = this.roll.horizontal ? Math.PI * half : none, rolled = Math.floor(((this.roll.angle ?? none) + backSum) / (Math.PI / backFactor)) % double;\n if (!rolled) {\n return color;\n }\n if (this.backColor) {\n return this.backColor;\n }\n if (this.roll.alter) {\n return alterHsl(color, this.roll.alter.type, this.roll.alter.value);\n }\n return color;\n };\n this._initPosition = (position) => {\n const container = this.container, zIndexValue = getRangeValue(this.options.zIndex.value), minZ = 0;\n this.position = this._calcPosition(container, position, clamp(zIndexValue, minZ, container.zLayers));\n this.initialPosition = this.position.copy();\n const canvasSize = container.canvas.size, defaultRadius = 0;\n this.moveCenter = {\n ...getPosition(this.options.move.center, canvasSize),\n radius: this.options.move.center.radius ?? defaultRadius,\n mode: this.options.move.center.mode ?? \"percent\",\n };\n this.direction = getParticleDirectionAngle(this.options.move.direction, this.position, this.moveCenter);\n switch (this.options.move.direction) {\n case \"inside\":\n this.outType = \"inside\";\n break;\n case \"outside\":\n this.outType = \"outside\";\n break;\n }\n this.offset = Vector.origin;\n };\n this._engine = engine;\n }\n destroy(override) {\n if (this.unbreakable || this.destroyed) {\n return;\n }\n this.destroyed = true;\n this.bubble.inRange = false;\n this.slow.inRange = false;\n const container = this.container, pathGenerator = this.pathGenerator, shapeDrawer = container.shapeDrawers.get(this.shape);\n shapeDrawer?.particleDestroy?.(this);\n for (const [, plugin] of container.plugins) {\n plugin.particleDestroyed?.(this, override);\n }\n for (const updater of container.particles.updaters) {\n updater.particleDestroyed?.(this, override);\n }\n pathGenerator?.reset(this);\n this._engine.dispatchEvent(\"particleDestroyed\", {\n container: this.container,\n data: {\n particle: this,\n },\n });\n }\n draw(delta) {\n const container = this.container, canvas = container.canvas;\n for (const [, plugin] of container.plugins) {\n canvas.drawParticlePlugin(plugin, this, delta);\n }\n canvas.drawParticle(this, delta);\n }\n getFillColor() {\n return this._getRollColor(this.bubble.color ?? getHslFromAnimation(this.color));\n }\n getMass() {\n return this.getRadius() ** squareExp * Math.PI * half;\n }\n getPosition() {\n return {\n x: this.position.x + this.offset.x,\n y: this.position.y + this.offset.y,\n z: this.position.z,\n };\n }\n getRadius() {\n return this.bubble.radius ?? this.size.value;\n }\n getStrokeColor() {\n return this._getRollColor(this.bubble.color ?? getHslFromAnimation(this.strokeColor));\n }\n init(id, position, overrideOptions, group) {\n const container = this.container, engine = this._engine;\n this.id = id;\n this.group = group;\n this.effectClose = true;\n this.effectFill = true;\n this.shapeClose = true;\n this.shapeFill = true;\n this.pathRotation = false;\n this.lastPathTime = 0;\n this.destroyed = false;\n this.unbreakable = false;\n this.rotation = 0;\n this.misplaced = false;\n this.retina = {\n maxDistance: {},\n };\n this.outType = \"normal\";\n this.ignoresResizeRatio = true;\n const pxRatio = container.retina.pixelRatio, mainOptions = container.actualOptions, particlesOptions = loadParticlesOptions(this._engine, container, mainOptions.particles), effectType = particlesOptions.effect.type, shapeType = particlesOptions.shape.type, { reduceDuplicates } = particlesOptions;\n this.effect = itemFromSingleOrMultiple(effectType, this.id, reduceDuplicates);\n this.shape = itemFromSingleOrMultiple(shapeType, this.id, reduceDuplicates);\n const effectOptions = particlesOptions.effect, shapeOptions = particlesOptions.shape;\n if (overrideOptions) {\n if (overrideOptions.effect?.type) {\n const overrideEffectType = overrideOptions.effect.type, effect = itemFromSingleOrMultiple(overrideEffectType, this.id, reduceDuplicates);\n if (effect) {\n this.effect = effect;\n effectOptions.load(overrideOptions.effect);\n }\n }\n if (overrideOptions.shape?.type) {\n const overrideShapeType = overrideOptions.shape.type, shape = itemFromSingleOrMultiple(overrideShapeType, this.id, reduceDuplicates);\n if (shape) {\n this.shape = shape;\n shapeOptions.load(overrideOptions.shape);\n }\n }\n }\n this.effectData = loadEffectData(this.effect, effectOptions, this.id, reduceDuplicates);\n this.shapeData = loadShapeData(this.shape, shapeOptions, this.id, reduceDuplicates);\n particlesOptions.load(overrideOptions);\n const effectData = this.effectData;\n if (effectData) {\n particlesOptions.load(effectData.particles);\n }\n const shapeData = this.shapeData;\n if (shapeData) {\n particlesOptions.load(shapeData.particles);\n }\n const interactivity = new Interactivity(engine, container);\n interactivity.load(container.actualOptions.interactivity);\n interactivity.load(particlesOptions.interactivity);\n this.interactivity = interactivity;\n this.effectFill = effectData?.fill ?? particlesOptions.effect.fill;\n this.effectClose = effectData?.close ?? particlesOptions.effect.close;\n this.shapeFill = shapeData?.fill ?? particlesOptions.shape.fill;\n this.shapeClose = shapeData?.close ?? particlesOptions.shape.close;\n this.options = particlesOptions;\n const pathOptions = this.options.move.path;\n this.pathDelay = getRangeValue(pathOptions.delay.value) * millisecondsToSeconds;\n if (pathOptions.generator) {\n this.pathGenerator = this._engine.getPathGenerator(pathOptions.generator);\n if (this.pathGenerator && container.addPath(pathOptions.generator, this.pathGenerator)) {\n this.pathGenerator.init(container);\n }\n }\n container.retina.initParticle(this);\n this.size = initParticleNumericAnimationValue(this.options.size, pxRatio);\n this.bubble = {\n inRange: false,\n };\n this.slow = {\n inRange: false,\n factor: 1,\n };\n this._initPosition(position);\n this.initialVelocity = this._calculateVelocity();\n this.velocity = this.initialVelocity.copy();\n const decayOffset = 1;\n this.moveDecay = decayOffset - getRangeValue(this.options.move.decay);\n const particles = container.particles;\n particles.setLastZIndex(this.position.z);\n this.zIndexFactor = this.position.z / container.zLayers;\n this.sides = 24;\n let effectDrawer = container.effectDrawers.get(this.effect);\n if (!effectDrawer) {\n effectDrawer = this._engine.getEffectDrawer(this.effect);\n if (effectDrawer) {\n container.effectDrawers.set(this.effect, effectDrawer);\n }\n }\n if (effectDrawer?.loadEffect) {\n effectDrawer.loadEffect(this);\n }\n let shapeDrawer = container.shapeDrawers.get(this.shape);\n if (!shapeDrawer) {\n shapeDrawer = this._engine.getShapeDrawer(this.shape);\n if (shapeDrawer) {\n container.shapeDrawers.set(this.shape, shapeDrawer);\n }\n }\n if (shapeDrawer?.loadShape) {\n shapeDrawer.loadShape(this);\n }\n const sideCountFunc = shapeDrawer?.getSidesCount;\n if (sideCountFunc) {\n this.sides = sideCountFunc(this);\n }\n this.spawning = false;\n this.shadowColor = rangeColorToRgb(this.options.shadow.color);\n for (const updater of particles.updaters) {\n updater.init(this);\n }\n for (const mover of particles.movers) {\n mover.init?.(this);\n }\n effectDrawer?.particleInit?.(container, this);\n shapeDrawer?.particleInit?.(container, this);\n for (const [, plugin] of container.plugins) {\n plugin.particleCreated?.(this);\n }\n }\n isInsideCanvas() {\n const radius = this.getRadius(), canvasSize = this.container.canvas.size, position = this.position;\n return (position.x >= -radius &&\n position.y >= -radius &&\n position.y <= canvasSize.height + radius &&\n position.x <= canvasSize.width + radius);\n }\n isVisible() {\n return !this.destroyed && !this.spawning && this.isInsideCanvas();\n }\n reset() {\n for (const updater of this.container.particles.updaters) {\n updater.reset?.(this);\n }\n }\n}\n","export class Point {\n constructor(position, particle) {\n this.position = position;\n this.particle = particle;\n }\n}\n","import { Circle, Rectangle } from \"./Ranges.js\";\nimport { getDistance } from \"../../Utils/NumberUtils.js\";\nconst half = 0.5, double = 2, subdivideCount = 4;\nexport class QuadTree {\n constructor(rectangle, capacity) {\n this.rectangle = rectangle;\n this.capacity = capacity;\n this._subdivide = () => {\n const { x, y } = this.rectangle.position, { width, height } = this.rectangle.size, { capacity } = this;\n for (let i = 0; i < subdivideCount; i++) {\n const fixedIndex = i % double;\n this._subs.push(new QuadTree(new Rectangle(x + width * half * fixedIndex, y + height * half * (Math.round(i * half) - fixedIndex), width * half, height * half), capacity));\n }\n this._divided = true;\n };\n this._points = [];\n this._divided = false;\n this._subs = [];\n }\n insert(point) {\n if (!this.rectangle.contains(point.position)) {\n return false;\n }\n if (this._points.length < this.capacity) {\n this._points.push(point);\n return true;\n }\n if (!this._divided) {\n this._subdivide();\n }\n return this._subs.some((sub) => sub.insert(point));\n }\n query(range, check) {\n const res = [];\n if (!range.intersects(this.rectangle)) {\n return [];\n }\n for (const p of this._points) {\n if (!range.contains(p.position) &&\n getDistance(range.position, p.position) > p.particle.getRadius() &&\n (!check || check(p.particle))) {\n continue;\n }\n res.push(p.particle);\n }\n if (this._divided) {\n for (const sub of this._subs) {\n res.push(...sub.query(range, check));\n }\n }\n return res;\n }\n queryCircle(position, radius, check) {\n return this.query(new Circle(position.x, position.y, radius), check);\n }\n queryRectangle(position, size, check) {\n return this.query(new Rectangle(position.x, position.y, size.width, size.height), check);\n }\n}\n","import { getLogger, getPosition } from \"../Utils/Utils.js\";\nimport { InteractionManager } from \"./Utils/InteractionManager.js\";\nimport { Particle } from \"./Particle.js\";\nimport { Point } from \"./Utils/Point.js\";\nimport { QuadTree } from \"./Utils/QuadTree.js\";\nimport { Rectangle } from \"./Utils/Ranges.js\";\nimport { errorPrefix } from \"./Utils/Constants.js\";\nconst qTreeCapacity = 4, squareExp = 2, defaultRemoveQuantity = 1;\nconst qTreeRectangle = (canvasSize) => {\n const { height, width } = canvasSize, posOffset = -0.25, sizeFactor = 1.5;\n return new Rectangle(posOffset * width, posOffset * height, sizeFactor * width, sizeFactor * height);\n};\nexport class Particles {\n constructor(engine, container) {\n this._addToPool = (...particles) => {\n for (const particle of particles) {\n this._pool.push(particle);\n }\n };\n this._applyDensity = (options, manualCount, group) => {\n const numberOptions = options.number;\n if (!options.number.density?.enable) {\n if (group === undefined) {\n this._limit = numberOptions.limit.value;\n }\n else if (numberOptions.limit) {\n this._groupLimits.set(group, numberOptions.limit.value);\n }\n return;\n }\n const densityFactor = this._initDensityFactor(numberOptions.density), optParticlesNumber = numberOptions.value, minLimit = 0, optParticlesLimit = numberOptions.limit.value > minLimit ? numberOptions.limit.value : optParticlesNumber, particlesNumber = Math.min(optParticlesNumber, optParticlesLimit) * densityFactor + manualCount, particlesCount = Math.min(this.count, this.filter((t) => t.group === group).length);\n if (group === undefined) {\n this._limit = numberOptions.limit.value * densityFactor;\n }\n else {\n this._groupLimits.set(group, numberOptions.limit.value * densityFactor);\n }\n if (particlesCount < particlesNumber) {\n this.push(Math.abs(particlesNumber - particlesCount), undefined, options, group);\n }\n else if (particlesCount > particlesNumber) {\n this.removeQuantity(particlesCount - particlesNumber, group);\n }\n };\n this._initDensityFactor = (densityOptions) => {\n const container = this._container, defaultFactor = 1;\n if (!container.canvas.element || !densityOptions.enable) {\n return defaultFactor;\n }\n const canvas = container.canvas.element, pxRatio = container.retina.pixelRatio;\n return (canvas.width * canvas.height) / (densityOptions.height * densityOptions.width * pxRatio ** squareExp);\n };\n this._pushParticle = (position, overrideOptions, group, initializer) => {\n try {\n let particle = this._pool.pop();\n if (!particle) {\n particle = new Particle(this._engine, this._container);\n }\n particle.init(this._nextId, position, overrideOptions, group);\n let canAdd = true;\n if (initializer) {\n canAdd = initializer(particle);\n }\n if (!canAdd) {\n return;\n }\n this._array.push(particle);\n this._zArray.push(particle);\n this._nextId++;\n this._engine.dispatchEvent(\"particleAdded\", {\n container: this._container,\n data: {\n particle,\n },\n });\n return particle;\n }\n catch (e) {\n getLogger().warning(`${errorPrefix} adding particle: ${e}`);\n }\n };\n this._removeParticle = (index, group, override) => {\n const particle = this._array[index];\n if (!particle || particle.group !== group) {\n return false;\n }\n const zIdx = this._zArray.indexOf(particle), deleteCount = 1;\n this._array.splice(index, deleteCount);\n this._zArray.splice(zIdx, deleteCount);\n particle.destroy(override);\n this._engine.dispatchEvent(\"particleRemoved\", {\n container: this._container,\n data: {\n particle,\n },\n });\n this._addToPool(particle);\n return true;\n };\n this._engine = engine;\n this._container = container;\n this._nextId = 0;\n this._array = [];\n this._zArray = [];\n this._pool = [];\n this._limit = 0;\n this._groupLimits = new Map();\n this._needsSort = false;\n this._lastZIndex = 0;\n this._interactionManager = new InteractionManager(engine, container);\n this._pluginsInitialized = false;\n const canvasSize = container.canvas.size;\n this.quadTree = new QuadTree(qTreeRectangle(canvasSize), qTreeCapacity);\n this.movers = [];\n this.updaters = [];\n }\n get count() {\n return this._array.length;\n }\n addManualParticles() {\n const container = this._container, options = container.actualOptions;\n for (const particle of options.manualParticles) {\n this.addParticle(particle.position ? getPosition(particle.position, container.canvas.size) : undefined, particle.options);\n }\n }\n addParticle(position, overrideOptions, group, initializer) {\n const limitOptions = this._container.actualOptions.particles.number.limit, limit = group === undefined ? this._limit : this._groupLimits.get(group) ?? this._limit, currentCount = this.count, minLimit = 0;\n if (limit > minLimit) {\n if (limitOptions.mode === \"delete\") {\n const countOffset = 1, minCount = 0, countToRemove = currentCount + countOffset - limit;\n if (countToRemove > minCount) {\n this.removeQuantity(countToRemove);\n }\n }\n else if (limitOptions.mode === \"wait\") {\n if (currentCount >= limit) {\n return;\n }\n }\n }\n return this._pushParticle(position, overrideOptions, group, initializer);\n }\n clear() {\n this._array = [];\n this._zArray = [];\n this._pluginsInitialized = false;\n }\n destroy() {\n this._array = [];\n this._zArray = [];\n this.movers = [];\n this.updaters = [];\n }\n draw(delta) {\n const container = this._container, canvas = container.canvas;\n canvas.clear();\n this.update(delta);\n for (const [, plugin] of container.plugins) {\n canvas.drawPlugin(plugin, delta);\n }\n for (const p of this._zArray) {\n p.draw(delta);\n }\n }\n filter(condition) {\n return this._array.filter(condition);\n }\n find(condition) {\n return this._array.find(condition);\n }\n get(index) {\n return this._array[index];\n }\n handleClickMode(mode) {\n this._interactionManager.handleClickMode(mode);\n }\n async init() {\n const container = this._container, options = container.actualOptions;\n this._lastZIndex = 0;\n this._needsSort = false;\n await this.initPlugins();\n let handled = false;\n for (const [, plugin] of container.plugins) {\n if (plugin.particlesInitialization !== undefined) {\n handled = plugin.particlesInitialization();\n }\n if (handled) {\n break;\n }\n }\n this.addManualParticles();\n if (!handled) {\n const particlesOptions = options.particles, groups = particlesOptions.groups;\n for (const group in groups) {\n const groupOptions = groups[group];\n for (let i = this.count, j = 0; j < groupOptions.number?.value && i < particlesOptions.number.value; i++, j++) {\n this.addParticle(undefined, groupOptions, group);\n }\n }\n for (let i = this.count; i < particlesOptions.number.value; i++) {\n this.addParticle();\n }\n }\n }\n async initPlugins() {\n if (this._pluginsInitialized) {\n return;\n }\n const container = this._container;\n this.movers = await this._engine.getMovers(container, true);\n this.updaters = await this._engine.getUpdaters(container, true);\n await this._interactionManager.init();\n for (const [, pathGenerator] of container.pathGenerators) {\n pathGenerator.init(container);\n }\n }\n push(nb, mouse, overrideOptions, group) {\n for (let i = 0; i < nb; i++) {\n this.addParticle(mouse?.position, overrideOptions, group);\n }\n }\n async redraw() {\n this.clear();\n await this.init();\n this.draw({ value: 0, factor: 0 });\n }\n remove(particle, group, override) {\n this.removeAt(this._array.indexOf(particle), undefined, group, override);\n }\n removeAt(index, quantity = defaultRemoveQuantity, group, override) {\n const minIndex = 0;\n if (index < minIndex || index > this.count) {\n return;\n }\n let deleted = 0;\n for (let i = index; deleted < quantity && i < this.count; i++) {\n if (this._removeParticle(i--, group, override)) {\n deleted++;\n }\n }\n }\n removeQuantity(quantity, group) {\n const defaultIndex = 0;\n this.removeAt(defaultIndex, quantity, group);\n }\n setDensity() {\n const options = this._container.actualOptions, groups = options.particles.groups, manualCount = 0;\n for (const group in groups) {\n this._applyDensity(groups[group], manualCount, group);\n }\n this._applyDensity(options.particles, options.manualParticles.length);\n }\n setLastZIndex(zIndex) {\n this._lastZIndex = zIndex;\n this._needsSort = this._needsSort || this._lastZIndex < zIndex;\n }\n setResizeFactor(factor) {\n this._resizeFactor = factor;\n }\n update(delta) {\n const container = this._container, particlesToDelete = new Set();\n this.quadTree = new QuadTree(qTreeRectangle(container.canvas.size), qTreeCapacity);\n for (const [, pathGenerator] of container.pathGenerators) {\n pathGenerator.update();\n }\n for (const [, plugin] of container.plugins) {\n plugin.update?.(delta);\n }\n const resizeFactor = this._resizeFactor;\n for (const particle of this._array) {\n if (resizeFactor && !particle.ignoresResizeRatio) {\n particle.position.x *= resizeFactor.width;\n particle.position.y *= resizeFactor.height;\n particle.initialPosition.x *= resizeFactor.width;\n particle.initialPosition.y *= resizeFactor.height;\n }\n particle.ignoresResizeRatio = false;\n this._interactionManager.reset(particle);\n for (const [, plugin] of this._container.plugins) {\n if (particle.destroyed) {\n break;\n }\n plugin.particleUpdate?.(particle, delta);\n }\n for (const mover of this.movers) {\n if (mover.isEnabled(particle)) {\n mover.move(particle, delta);\n }\n }\n if (particle.destroyed) {\n particlesToDelete.add(particle);\n continue;\n }\n this.quadTree.insert(new Point(particle.getPosition(), particle));\n }\n if (particlesToDelete.size) {\n const checkDelete = (p) => !particlesToDelete.has(p);\n this._array = this.filter(checkDelete);\n this._zArray = this._zArray.filter(checkDelete);\n for (const particle of particlesToDelete) {\n this._engine.dispatchEvent(\"particleRemoved\", {\n container: this._container,\n data: {\n particle,\n },\n });\n }\n this._addToPool(...particlesToDelete);\n }\n this._interactionManager.externalInteract(delta);\n for (const particle of this._array) {\n for (const updater of this.updaters) {\n updater.update(particle, delta);\n }\n if (!particle.destroyed && !particle.spawning) {\n this._interactionManager.particlesInteract(particle, delta);\n }\n }\n delete this._resizeFactor;\n if (this._needsSort) {\n const zArray = this._zArray;\n zArray.sort((a, b) => b.position.z - a.position.z || a.id - b.id);\n const lengthOffset = 1;\n this._lastZIndex = zArray[zArray.length - lengthOffset].position.z;\n this._needsSort = false;\n }\n }\n}\n","import { getRangeValue } from \"../Utils/NumberUtils.js\";\nimport { isSsr } from \"../Utils/Utils.js\";\nconst defaultRatio = 1, defaultReduceFactor = 1;\nexport class Retina {\n constructor(container) {\n this.container = container;\n this.pixelRatio = defaultRatio;\n this.reduceFactor = defaultReduceFactor;\n }\n init() {\n const container = this.container, options = container.actualOptions;\n this.pixelRatio = !options.detectRetina || isSsr() ? defaultRatio : window.devicePixelRatio;\n this.reduceFactor = defaultReduceFactor;\n const ratio = this.pixelRatio, canvas = container.canvas;\n if (canvas.element) {\n const element = canvas.element;\n canvas.size.width = element.offsetWidth * ratio;\n canvas.size.height = element.offsetHeight * ratio;\n }\n const particles = options.particles, moveOptions = particles.move;\n this.maxSpeed = getRangeValue(moveOptions.gravity.maxSpeed) * ratio;\n this.sizeAnimationSpeed = getRangeValue(particles.size.animation.speed) * ratio;\n }\n initParticle(particle) {\n const options = particle.options, ratio = this.pixelRatio, moveOptions = options.move, moveDistance = moveOptions.distance, props = particle.retina;\n props.moveDrift = getRangeValue(moveOptions.drift) * ratio;\n props.moveSpeed = getRangeValue(moveOptions.speed) * ratio;\n props.sizeAnimationSpeed = getRangeValue(options.size.animation.speed) * ratio;\n const maxDistance = props.maxDistance;\n maxDistance.horizontal = moveDistance.horizontal !== undefined ? moveDistance.horizontal * ratio : undefined;\n maxDistance.vertical = moveDistance.vertical !== undefined ? moveDistance.vertical * ratio : undefined;\n props.maxSpeed = getRangeValue(moveOptions.gravity.maxSpeed) * ratio;\n }\n}\n","import { errorPrefix, millisecondsToSeconds } from \"./Utils/Constants.js\";\nimport { getLogger, safeIntersectionObserver } from \"../Utils/Utils.js\";\nimport { Canvas } from \"./Canvas.js\";\nimport { EventListeners } from \"./Utils/EventListeners.js\";\nimport { Options } from \"../Options/Classes/Options.js\";\nimport { Particles } from \"./Particles.js\";\nimport { Retina } from \"./Retina.js\";\nimport { getRangeValue } from \"../Utils/NumberUtils.js\";\nimport { loadOptions } from \"../Utils/OptionsUtils.js\";\nfunction guardCheck(container) {\n return container && !container.destroyed;\n}\nconst defaultFps = 60;\nfunction initDelta(value, fpsLimit = defaultFps, smooth = false) {\n return {\n value,\n factor: smooth ? defaultFps / fpsLimit : (defaultFps * value) / millisecondsToSeconds,\n };\n}\nfunction loadContainerOptions(engine, container, ...sourceOptionsArr) {\n const options = new Options(engine, container);\n loadOptions(options, ...sourceOptionsArr);\n return options;\n}\nexport class Container {\n constructor(engine, id, sourceOptions) {\n this._intersectionManager = (entries) => {\n if (!guardCheck(this) || !this.actualOptions.pauseOnOutsideViewport) {\n return;\n }\n for (const entry of entries) {\n if (entry.target !== this.interactivity.element) {\n continue;\n }\n if (entry.isIntersecting) {\n void this.play();\n }\n else {\n this.pause();\n }\n }\n };\n this._nextFrame = (timestamp) => {\n try {\n if (!this._smooth &&\n this._lastFrameTime !== undefined &&\n timestamp < this._lastFrameTime + millisecondsToSeconds / this.fpsLimit) {\n this.draw(false);\n return;\n }\n this._lastFrameTime ??= timestamp;\n const delta = initDelta(timestamp - this._lastFrameTime, this.fpsLimit, this._smooth);\n this.addLifeTime(delta.value);\n this._lastFrameTime = timestamp;\n if (delta.value > millisecondsToSeconds) {\n this.draw(false);\n return;\n }\n this.particles.draw(delta);\n if (!this.alive()) {\n this.destroy();\n return;\n }\n if (this.animationStatus) {\n this.draw(false);\n }\n }\n catch (e) {\n getLogger().error(`${errorPrefix} in animation loop`, e);\n }\n };\n this._engine = engine;\n this.id = Symbol(id);\n this.fpsLimit = 120;\n this._smooth = false;\n this._delay = 0;\n this._duration = 0;\n this._lifeTime = 0;\n this._firstStart = true;\n this.started = false;\n this.destroyed = false;\n this._paused = true;\n this._lastFrameTime = 0;\n this.zLayers = 100;\n this.pageHidden = false;\n this._sourceOptions = sourceOptions;\n this._initialSourceOptions = sourceOptions;\n this.retina = new Retina(this);\n this.canvas = new Canvas(this);\n this.particles = new Particles(this._engine, this);\n this.pathGenerators = new Map();\n this.interactivity = {\n mouse: {\n clicking: false,\n inside: false,\n },\n };\n this.plugins = new Map();\n this.effectDrawers = new Map();\n this.shapeDrawers = new Map();\n this._options = loadContainerOptions(this._engine, this);\n this.actualOptions = loadContainerOptions(this._engine, this);\n this._eventListeners = new EventListeners(this);\n this._intersectionObserver = safeIntersectionObserver((entries) => this._intersectionManager(entries));\n this._engine.dispatchEvent(\"containerBuilt\", { container: this });\n }\n get animationStatus() {\n return !this._paused && !this.pageHidden && guardCheck(this);\n }\n get options() {\n return this._options;\n }\n get sourceOptions() {\n return this._sourceOptions;\n }\n addClickHandler(callback) {\n if (!guardCheck(this)) {\n return;\n }\n const el = this.interactivity.element;\n if (!el) {\n return;\n }\n const clickOrTouchHandler = (e, pos, radius) => {\n if (!guardCheck(this)) {\n return;\n }\n const pxRatio = this.retina.pixelRatio, posRetina = {\n x: pos.x * pxRatio,\n y: pos.y * pxRatio,\n }, particles = this.particles.quadTree.queryCircle(posRetina, radius * pxRatio);\n callback(e, particles);\n };\n const clickHandler = (e) => {\n if (!guardCheck(this)) {\n return;\n }\n const mouseEvent = e, pos = {\n x: mouseEvent.offsetX || mouseEvent.clientX,\n y: mouseEvent.offsetY || mouseEvent.clientY,\n }, radius = 1;\n clickOrTouchHandler(e, pos, radius);\n };\n const touchStartHandler = () => {\n if (!guardCheck(this)) {\n return;\n }\n touched = true;\n touchMoved = false;\n };\n const touchMoveHandler = () => {\n if (!guardCheck(this)) {\n return;\n }\n touchMoved = true;\n };\n const touchEndHandler = (e) => {\n if (!guardCheck(this)) {\n return;\n }\n if (touched && !touchMoved) {\n const touchEvent = e;\n const lengthOffset = 1;\n let lastTouch = touchEvent.touches[touchEvent.touches.length - lengthOffset];\n if (!lastTouch) {\n lastTouch = touchEvent.changedTouches[touchEvent.changedTouches.length - lengthOffset];\n if (!lastTouch) {\n return;\n }\n }\n const element = this.canvas.element, canvasRect = element ? element.getBoundingClientRect() : undefined, minCoordinate = 0, pos = {\n x: lastTouch.clientX - (canvasRect ? canvasRect.left : minCoordinate),\n y: lastTouch.clientY - (canvasRect ? canvasRect.top : minCoordinate),\n };\n clickOrTouchHandler(e, pos, Math.max(lastTouch.radiusX, lastTouch.radiusY));\n }\n touched = false;\n touchMoved = false;\n };\n const touchCancelHandler = () => {\n if (!guardCheck(this)) {\n return;\n }\n touched = false;\n touchMoved = false;\n };\n let touched = false, touchMoved = false;\n el.addEventListener(\"click\", clickHandler);\n el.addEventListener(\"touchstart\", touchStartHandler);\n el.addEventListener(\"touchmove\", touchMoveHandler);\n el.addEventListener(\"touchend\", touchEndHandler);\n el.addEventListener(\"touchcancel\", touchCancelHandler);\n }\n addLifeTime(value) {\n this._lifeTime += value;\n }\n addPath(key, generator, override = false) {\n if (!guardCheck(this) || (!override && this.pathGenerators.has(key))) {\n return false;\n }\n this.pathGenerators.set(key, generator);\n return true;\n }\n alive() {\n return !this._duration || this._lifeTime <= this._duration;\n }\n destroy() {\n if (!guardCheck(this)) {\n return;\n }\n this.stop();\n this.particles.destroy();\n this.canvas.destroy();\n for (const [, effectDrawer] of this.effectDrawers) {\n effectDrawer.destroy?.(this);\n }\n for (const [, shapeDrawer] of this.shapeDrawers) {\n shapeDrawer.destroy?.(this);\n }\n for (const key of this.effectDrawers.keys()) {\n this.effectDrawers.delete(key);\n }\n for (const key of this.shapeDrawers.keys()) {\n this.shapeDrawers.delete(key);\n }\n this._engine.clearPlugins(this);\n this.destroyed = true;\n const mainArr = this._engine.dom(), idx = mainArr.findIndex((t) => t === this), minIndex = 0;\n if (idx >= minIndex) {\n const deleteCount = 1;\n mainArr.splice(idx, deleteCount);\n }\n this._engine.dispatchEvent(\"containerDestroyed\", { container: this });\n }\n draw(force) {\n if (!guardCheck(this)) {\n return;\n }\n let refreshTime = force;\n const frame = (timestamp) => {\n if (refreshTime) {\n this._lastFrameTime = undefined;\n refreshTime = false;\n }\n this._nextFrame(timestamp);\n };\n this._drawAnimationFrame = requestAnimationFrame((timestamp) => frame(timestamp));\n }\n async export(type, options = {}) {\n for (const [, plugin] of this.plugins) {\n if (!plugin.export) {\n continue;\n }\n const res = await plugin.export(type, options);\n if (!res.supported) {\n continue;\n }\n return res.blob;\n }\n getLogger().error(`${errorPrefix} - Export plugin with type ${type} not found`);\n }\n handleClickMode(mode) {\n if (!guardCheck(this)) {\n return;\n }\n this.particles.handleClickMode(mode);\n for (const [, plugin] of this.plugins) {\n plugin.handleClickMode?.(mode);\n }\n }\n async init() {\n if (!guardCheck(this)) {\n return;\n }\n const effects = this._engine.getSupportedEffects();\n for (const type of effects) {\n const drawer = this._engine.getEffectDrawer(type);\n if (drawer) {\n this.effectDrawers.set(type, drawer);\n }\n }\n const shapes = this._engine.getSupportedShapes();\n for (const type of shapes) {\n const drawer = this._engine.getShapeDrawer(type);\n if (drawer) {\n this.shapeDrawers.set(type, drawer);\n }\n }\n await this.particles.initPlugins();\n this._options = loadContainerOptions(this._engine, this, this._initialSourceOptions, this.sourceOptions);\n this.actualOptions = loadContainerOptions(this._engine, this, this._options);\n const availablePlugins = await this._engine.getAvailablePlugins(this);\n for (const [id, plugin] of availablePlugins) {\n this.plugins.set(id, plugin);\n }\n this.retina.init();\n await this.canvas.init();\n this.updateActualOptions();\n this.canvas.initBackground();\n this.canvas.resize();\n this.zLayers = this.actualOptions.zLayers;\n this._duration = getRangeValue(this.actualOptions.duration) * millisecondsToSeconds;\n this._delay = getRangeValue(this.actualOptions.delay) * millisecondsToSeconds;\n this._lifeTime = 0;\n const defaultFpsLimit = 120, minFpsLimit = 0;\n this.fpsLimit = this.actualOptions.fpsLimit > minFpsLimit ? this.actualOptions.fpsLimit : defaultFpsLimit;\n this._smooth = this.actualOptions.smooth;\n for (const [, drawer] of this.effectDrawers) {\n await drawer.init?.(this);\n }\n for (const [, drawer] of this.shapeDrawers) {\n await drawer.init?.(this);\n }\n for (const [, plugin] of this.plugins) {\n await plugin.init?.();\n }\n this._engine.dispatchEvent(\"containerInit\", { container: this });\n await this.particles.init();\n this.particles.setDensity();\n for (const [, plugin] of this.plugins) {\n plugin.particlesSetup?.();\n }\n this._engine.dispatchEvent(\"particlesSetup\", { container: this });\n }\n async loadTheme(name) {\n if (!guardCheck(this)) {\n return;\n }\n this._currentTheme = name;\n await this.refresh();\n }\n pause() {\n if (!guardCheck(this)) {\n return;\n }\n if (this._drawAnimationFrame !== undefined) {\n cancelAnimationFrame(this._drawAnimationFrame);\n delete this._drawAnimationFrame;\n }\n if (this._paused) {\n return;\n }\n for (const [, plugin] of this.plugins) {\n plugin.pause?.();\n }\n if (!this.pageHidden) {\n this._paused = true;\n }\n this._engine.dispatchEvent(\"containerPaused\", { container: this });\n }\n play(force) {\n if (!guardCheck(this)) {\n return;\n }\n const needsUpdate = this._paused || force;\n if (this._firstStart && !this.actualOptions.autoPlay) {\n this._firstStart = false;\n return;\n }\n if (this._paused) {\n this._paused = false;\n }\n if (needsUpdate) {\n for (const [, plugin] of this.plugins) {\n if (plugin.play) {\n plugin.play();\n }\n }\n }\n this._engine.dispatchEvent(\"containerPlay\", { container: this });\n this.draw(needsUpdate ?? false);\n }\n async refresh() {\n if (!guardCheck(this)) {\n return;\n }\n this.stop();\n return this.start();\n }\n async reset() {\n if (!guardCheck(this)) {\n return;\n }\n this._initialSourceOptions = undefined;\n this._options = loadContainerOptions(this._engine, this);\n this.actualOptions = loadContainerOptions(this._engine, this, this._options);\n return this.refresh();\n }\n async start() {\n if (!guardCheck(this) || this.started) {\n return;\n }\n await this.init();\n this.started = true;\n await new Promise((resolve) => {\n const start = async () => {\n this._eventListeners.addListeners();\n if (this.interactivity.element instanceof HTMLElement && this._intersectionObserver) {\n this._intersectionObserver.observe(this.interactivity.element);\n }\n for (const [, plugin] of this.plugins) {\n await plugin.start?.();\n }\n this._engine.dispatchEvent(\"containerStarted\", { container: this });\n this.play();\n resolve();\n };\n this._delayTimeout = setTimeout(() => void start(), this._delay);\n });\n }\n stop() {\n if (!guardCheck(this) || !this.started) {\n return;\n }\n if (this._delayTimeout) {\n clearTimeout(this._delayTimeout);\n delete this._delayTimeout;\n }\n this._firstStart = true;\n this.started = false;\n this._eventListeners.removeListeners();\n this.pause();\n this.particles.clear();\n this.canvas.stop();\n if (this.interactivity.element instanceof HTMLElement && this._intersectionObserver) {\n this._intersectionObserver.unobserve(this.interactivity.element);\n }\n for (const [, plugin] of this.plugins) {\n plugin.stop?.();\n }\n for (const key of this.plugins.keys()) {\n this.plugins.delete(key);\n }\n this._sourceOptions = this._options;\n this._engine.dispatchEvent(\"containerStopped\", { container: this });\n }\n updateActualOptions() {\n this.actualOptions.responsive = [];\n const newMaxWidth = this.actualOptions.setResponsive(this.canvas.size.width, this.retina.pixelRatio, this._options);\n this.actualOptions.setTheme(this._currentTheme);\n if (this._responsiveMaxWidth === newMaxWidth) {\n return false;\n }\n this._responsiveMaxWidth = newMaxWidth;\n return true;\n }\n}\n"],"names":["setTransformValue","factor","newFactor","key","newValue","_factor$key","undefined","setStyle","canvas","style","important","arguments","length","elementStyle","value","setProperty","Canvas","constructor","container","this","_applyPostDrawUpdaters","particle","updater","_postDrawUpdaters","_updater$afterDraw","afterDraw","call","_applyPreDrawUpdaters","ctx","radius","zOpacity","colorStyles","transform","_preDrawUpdaters","_updater$beforeDraw","getColorStyles","fill","stroke","getTransformValues","updaterTransform","beforeDraw","_applyResizePlugins","plugin","_resizePlugins","_plugin$resize","resize","_getPluginParticleColors","fColor","sColor","_colorPlugins","particleFillColor","rangeColorToHsl","particleStrokeColor","_initCover","async","cover","actualOptions","backgroundMask","color","coverRgb","rangeColorToRgb","coverColor","a","opacity","_coverColorStyle","getStyleFromRgb","Promise","resolve","reject","image","img","document","createElement","addEventListener","_coverImage","evt","error","src","_initStyle","element","options","_fullScreen","_originalStyle","deepExtend","_setFullScreenStyle","_resetOriginalStyle","_initTrail","trail","particles","move","trailFill","enable","fillColor","_trailFill","_paintBase","baseColor","draw","paintBase","size","_paintImage","paintImage","_repairStyle","_safeMutationObserver","observer","disconnect","initBackground","observe","attributes","originalStyle","callback","_mutationObserver","position","zIndex","fullScreen","toString","top","left","width","height","_context","_generated","clear","paint","destroy","stop","remove","cb","drawAsync","drawParticle","delta","_particle$getStrokeCo","spawning","destroyed","getRadius","pfColor","getFillColor","psColor","getStrokeColor","_ref","_particle$bubble$opac","_particle$opacity","_particle$strokeOpaci","zIndexOptions","zIndexFactor","zOpacityFactor","opacityRate","bubble","zStrokeOpacity","strokeOpacity","getStyleFromHsl","context","composite","sizeRate","shadow","drawParticlePlugin","drawPlugin","init","obs","safeMutationObserver","records","record","type","attributeName","e","getLogger","initUpdaters","initPlugins","background","backgroundColor","backgroundImage","backgroundPosition","backgroundRepeat","repeat","backgroundSize","plugins","_plugin$particleFillC","push","updaters","_ref2","_updater$getColorStyl","loadCanvas","dataset","generatedAttribute","ariaHidden","offsetHeight","offsetWidth","getContext","retina","pxRatio","pixelRatio","newSize","oldSize","started","setResizeFactor","windowResize","needsRefresh","updateActualOptions","setDensity","refresh","manageListener","event","handler","add","addOptions","passive","isBoolean","capture","removeOptions","removeEventListener","EventListeners","_doMouseTouchClick","_canPush","mouseInteractivity","interactivity","mouse","mousePos","clickPosition","clickTime","Date","getTime","onClick","events","executeOnSingleOrMultiple","mode","handleClickMode","setTimeout","_mouseTouchFinish","_handleThemeChange","mediaEvent","defaultThemes","themeName","matches","dark","light","theme","themes","find","name","default","auto","loadTheme","_handleVisibilityChange","pauseOnBlur","hidden","pageHidden","pause","animationStatus","play","_handleWindowResize","_resizeTimeout","clearTimeout","handleResize","delay","millisecondsToSeconds","_manageInteractivityListeners","mouseLeaveTmpEvent","handlers","_handlers","interactivityEl","html","canvasEl","pointerEvents","onHover","mouseMoveEvent","mouseMove","touchStartEvent","touchStart","touchMoveEvent","touchMove","touchEndEvent","touchEndClick","mouseUpEvent","mouseUp","mouseDownEvent","mouseDown","touchEnd","mouseLeave","touchCancelEvent","touchCancel","_manageListeners","detectType","detectsOn","mouseLeaveEvent","window","mouseOutEvent","_canvasEl$parentEleme","parentElement","parentNode","_manageMediaMatch","_manageResize","visibilityChangeEvent","visibilityChange","mediaMatch","safeMatchMedia","addListener","oldThemeChange","removeListener","themeChange","ResizeObserver","resizeEvent","_resizeObserver","unobserve","entries","target","_mouseDown","clicking","downPosition","_mouseTouchClick","inside","handled","mousePosition","clickPositionValid","status","_mouseTouchMove","pos","startsWith","mouseEvent","clientRect","getBoundingClientRect","x","clientX","y","clientY","source","currentTarget","sourceRect","targetRect","canvasRect","offsetX","offsetY","_mouseEvent$offsetX","_mouseEvent$offsetY","_mouseEvent$offsetX2","_mouseEvent$offsetY2","_canvasRect$left","_canvasRect$top","touchEvent","lengthOffset","lastTouch","touches","defaultCoordinate","_touchEnd","Array","from","changedTouches","touch","_touches","delete","identifier","_touchEndClick","_touchStart","set","performance","now","Map","addListeners","removeListeners","InteractionManager","engine","_engine","_interactors","_externalInteractors","_particleInteractors","externalInteract","interactor","isEnabled","interact","_interactor$handleCli","getInteractors","particlesInteract","reset","half","fixOutMode","data","isInArray","outMode","checkModes","diameter","coord","maxCoord","setCb","Particle","_this","_calcPosition","_outModes$left","_outModes$right","_outModes$top","_outModes$bottom","tryCount","pluginPos","particlePosition","Vector3d","create","canvasSize","exactPosition","calcExactPositionOrRandomFromSize","outModes","fixHorizontal","fixVertical","right","bottom","_checkOverlap","increment","_calculateVelocity","res","getParticleBaseVelocity","direction","copy","moveOptions","rad","degToRad","getRangeValue","angle","radOffset","offset","range","straight","randomInRange","setRangeValue","random","speed","getRandom","collisionsOptions","collisions","overlapOptions","overlap","retries","Error","concat","errorPrefix","getDistance","_getRollColor","_this$roll$angle","roll","backColor","alter","backFactor","horizontal","vertical","double","backSum","Math","PI","floor","alterHsl","_initPosition","_this$options$move$ce","_this$options$move$ce2","zIndexValue","clamp","zLayers","initialPosition","moveCenter","getPosition","center","getParticleDirectionAngle","outType","Vector","origin","override","_shapeDrawer$particle","unbreakable","inRange","slow","pathGenerator","shapeDrawer","shapeDrawers","get","shape","particleDestroy","_plugin$particleDestr","particleDestroyed","_updater$particleDest","dispatchEvent","_this$bubble$color","getHslFromAnimation","getMass","z","_this$bubble$radius","_this$bubble$color2","strokeColor","id","overrideOptions","group","_effectData$fill","_effectData$close","_shapeData$fill","_shapeData$close","_effectDrawer","_shapeDrawer","_shapeDrawer2","_effectDrawer2","_effectDrawer2$partic","_shapeDrawer3","_shapeDrawer3$particl","effectClose","effectFill","shapeClose","shapeFill","pathRotation","lastPathTime","rotation","misplaced","maxDistance","ignoresResizeRatio","mainOptions","particlesOptions","loadParticlesOptions","effectType","effect","shapeType","reduceDuplicates","itemFromSingleOrMultiple","effectOptions","shapeOptions","_overrideOptions$effe","_overrideOptions$shap","overrideEffectType","load","overrideShapeType","effectData","close","loadEffectData","shapeData","loadShapeData","Interactivity","pathOptions","path","pathDelay","generator","getPathGenerator","addPath","initParticle","initParticleNumericAnimationValue","initialVelocity","velocity","moveDecay","decay","setLastZIndex","sides","effectDrawer","effectDrawers","getEffectDrawer","loadEffect","getShapeDrawer","loadShape","sideCountFunc","getSidesCount","shadowColor","mover","movers","_mover$init","particleInit","_plugin$particleCreat","particleCreated","isInsideCanvas","isVisible","_updater$reset","Point","QuadTree","rectangle","capacity","_subdivide","i","fixedIndex","_subs","Rectangle","round","_divided","_points","insert","point","contains","some","sub","query","check","intersects","p","queryCircle","Circle","queryRectangle","qTreeRectangle","Particles","_addToPool","_len","_key","_pool","_applyDensity","manualCount","_options$number$densi","numberOptions","number","density","_limit","limit","_groupLimits","densityFactor","_initDensityFactor","optParticlesNumber","optParticlesLimit","particlesNumber","min","particlesCount","count","filter","t","abs","removeQuantity","densityOptions","_container","_pushParticle","initializer","pop","_nextId","canAdd","_array","_zArray","warning","_removeParticle","index","zIdx","indexOf","splice","_needsSort","_lastZIndex","_interactionManager","_pluginsInitialized","quadTree","addManualParticles","manualParticles","addParticle","_this$_groupLimits$ge","limitOptions","currentCount","countToRemove","update","condition","particlesInitialization","groups","groupOptions","j","_groupOptions$number","getMovers","getUpdaters","pathGenerators","nb","redraw","removeAt","quantity","deleted","_resizeFactor","particlesToDelete","Set","_plugin$update","resizeFactor","_plugin$particleUpdat","particleUpdate","checkDelete","has","zArray","sort","b","Retina","reduceFactor","detectRetina","isSsr","devicePixelRatio","ratio","maxSpeed","gravity","sizeAnimationSpeed","animation","moveDistance","distance","props","moveDrift","drift","moveSpeed","guardCheck","loadContainerOptions","Options","sourceOptionsArr","loadOptions","Container","sourceOptions","_intersectionManager","pauseOnOutsideViewport","entry","isIntersecting","_nextFrame","timestamp","_this$_lastFrameTime","_smooth","_lastFrameTime","fpsLimit","initDelta","addLifeTime","alive","Symbol","_delay","_duration","_lifeTime","_firstStart","_paused","_sourceOptions","_initialSourceOptions","_options","_eventListeners","_intersectionObserver","safeIntersectionObserver","addClickHandler","el","clickOrTouchHandler","posRetina","touched","touchMoved","touchStartHandler","touchMoveHandler","minCoordinate","max","radiusX","radiusY","touchCancelHandler","_effectDrawer$destroy","_shapeDrawer$destroy","keys","clearPlugins","mainArr","dom","idx","findIndex","deleteCount","force","refreshTime","frame","_drawAnimationFrame","requestAnimationFrame","export","supported","blob","_plugin$handleClickMo","effects","getSupportedEffects","drawer","shapes","getSupportedShapes","availablePlugins","getAvailablePlugins","duration","smooth","_drawer$init","_drawer$init2","_plugin$init","_plugin$particlesSetu","particlesSetup","_currentTheme","cancelAnimationFrame","_plugin$pause","needsUpdate","autoPlay","start","HTMLElement","_plugin$start","_delayTimeout","_plugin$stop","responsive","newMaxWidth","setResponsive","setTheme","_responsiveMaxWidth"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/1927.8bd9ca2b.chunk.js","mappings":"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","sources":["../node_modules/@tsparticles/engine/browser/Core/Canvas.js","../node_modules/@tsparticles/engine/browser/Core/Utils/EventListeners.js","../node_modules/@tsparticles/engine/browser/Core/Utils/InteractionManager.js","../node_modules/@tsparticles/engine/browser/Core/Particle.js","../node_modules/@tsparticles/engine/browser/Core/Utils/Point.js","../node_modules/@tsparticles/engine/browser/Core/Utils/QuadTree.js","../node_modules/@tsparticles/engine/browser/Core/Particles.js","../node_modules/@tsparticles/engine/browser/Core/Retina.js","../node_modules/@tsparticles/engine/browser/Core/Container.js"],"sourcesContent":["import { clear, drawParticle, drawParticlePlugin, drawPlugin, paintBase, paintImage } from \"../Utils/CanvasUtils.js\";\nimport { deepExtend, getLogger, safeMutationObserver } from \"../Utils/Utils.js\";\nimport { getStyleFromHsl, getStyleFromRgb, rangeColorToHsl, rangeColorToRgb } from \"../Utils/ColorUtils.js\";\nimport { generatedAttribute } from \"./Utils/Constants.js\";\nfunction setTransformValue(factor, newFactor, key) {\n const newValue = newFactor[key], defaultValue = 1;\n if (newValue !== undefined) {\n factor[key] = (factor[key] ?? defaultValue) * newValue;\n }\n}\nfunction setStyle(canvas, style, important = false) {\n if (!style) {\n return;\n }\n const element = canvas;\n if (!element) {\n return;\n }\n const elementStyle = element.style;\n if (!elementStyle) {\n return;\n }\n for (const key in style) {\n const value = style[key];\n if (!value) {\n continue;\n }\n elementStyle.setProperty(key, value, important ? \"important\" : \"\");\n }\n}\nexport class Canvas {\n constructor(container) {\n this.container = container;\n this._applyPostDrawUpdaters = (particle) => {\n for (const updater of this._postDrawUpdaters) {\n updater.afterDraw?.(particle);\n }\n };\n this._applyPreDrawUpdaters = (ctx, particle, radius, zOpacity, colorStyles, transform) => {\n for (const updater of this._preDrawUpdaters) {\n if (updater.getColorStyles) {\n const { fill, stroke } = updater.getColorStyles(particle, ctx, radius, zOpacity);\n if (fill) {\n colorStyles.fill = fill;\n }\n if (stroke) {\n colorStyles.stroke = stroke;\n }\n }\n if (updater.getTransformValues) {\n const updaterTransform = updater.getTransformValues(particle);\n for (const key in updaterTransform) {\n setTransformValue(transform, updaterTransform, key);\n }\n }\n updater.beforeDraw?.(particle);\n }\n };\n this._applyResizePlugins = () => {\n for (const plugin of this._resizePlugins) {\n plugin.resize?.();\n }\n };\n this._getPluginParticleColors = (particle) => {\n let fColor, sColor;\n for (const plugin of this._colorPlugins) {\n if (!fColor && plugin.particleFillColor) {\n fColor = rangeColorToHsl(plugin.particleFillColor(particle));\n }\n if (!sColor && plugin.particleStrokeColor) {\n sColor = rangeColorToHsl(plugin.particleStrokeColor(particle));\n }\n if (fColor && sColor) {\n break;\n }\n }\n return [fColor, sColor];\n };\n this._initCover = async () => {\n const options = this.container.actualOptions, cover = options.backgroundMask.cover, color = cover.color;\n if (color) {\n const coverRgb = rangeColorToRgb(color);\n if (coverRgb) {\n const coverColor = {\n ...coverRgb,\n a: cover.opacity,\n };\n this._coverColorStyle = getStyleFromRgb(coverColor, coverColor.a);\n }\n }\n else {\n await new Promise((resolve, reject) => {\n if (!cover.image) {\n return;\n }\n const img = document.createElement(\"img\");\n img.addEventListener(\"load\", () => {\n this._coverImage = {\n image: img,\n opacity: cover.opacity,\n };\n resolve();\n });\n img.addEventListener(\"error\", (evt) => {\n reject(evt.error);\n });\n img.src = cover.image;\n });\n }\n };\n this._initStyle = () => {\n const element = this.element, options = this.container.actualOptions;\n if (!element) {\n return;\n }\n if (this._fullScreen) {\n this._originalStyle = deepExtend({}, element.style);\n this._setFullScreenStyle();\n }\n else {\n this._resetOriginalStyle();\n }\n for (const key in options.style) {\n if (!key || !options.style) {\n continue;\n }\n const value = options.style[key];\n if (!value) {\n continue;\n }\n element.style.setProperty(key, value, \"important\");\n }\n };\n this._initTrail = async () => {\n const options = this.container.actualOptions, trail = options.particles.move.trail, trailFill = trail.fill;\n if (!trail.enable) {\n return;\n }\n const factorNumerator = 1, opacity = factorNumerator / trail.length;\n if (trailFill.color) {\n const fillColor = rangeColorToRgb(trailFill.color);\n if (!fillColor) {\n return;\n }\n this._trailFill = {\n color: {\n ...fillColor,\n },\n opacity,\n };\n }\n else {\n await new Promise((resolve, reject) => {\n if (!trailFill.image) {\n return;\n }\n const img = document.createElement(\"img\");\n img.addEventListener(\"load\", () => {\n this._trailFill = {\n image: img,\n opacity,\n };\n resolve();\n });\n img.addEventListener(\"error\", (evt) => {\n reject(evt.error);\n });\n img.src = trailFill.image;\n });\n }\n };\n this._paintBase = (baseColor) => {\n this.draw((ctx) => paintBase(ctx, this.size, baseColor));\n };\n this._paintImage = (image, opacity) => {\n this.draw((ctx) => paintImage(ctx, this.size, image, opacity));\n };\n this._repairStyle = () => {\n const element = this.element;\n if (!element) {\n return;\n }\n this._safeMutationObserver((observer) => observer.disconnect());\n this._initStyle();\n this.initBackground();\n this._safeMutationObserver((observer) => observer.observe(element, { attributes: true }));\n };\n this._resetOriginalStyle = () => {\n const element = this.element, originalStyle = this._originalStyle;\n if (!(element && originalStyle)) {\n return;\n }\n setStyle(element, originalStyle);\n };\n this._safeMutationObserver = (callback) => {\n if (!this._mutationObserver) {\n return;\n }\n callback(this._mutationObserver);\n };\n this._setFullScreenStyle = () => {\n const element = this.element;\n if (!element) {\n return;\n }\n const radix = 10;\n setStyle(element, {\n position: \"fixed\",\n zIndex: this.container.actualOptions.fullScreen.zIndex.toString(radix),\n top: \"0\",\n left: \"0\",\n width: \"100%\",\n height: \"100%\",\n }, true);\n };\n this.size = {\n height: 0,\n width: 0,\n };\n this._context = null;\n this._generated = false;\n this._preDrawUpdaters = [];\n this._postDrawUpdaters = [];\n this._resizePlugins = [];\n this._colorPlugins = [];\n }\n get _fullScreen() {\n return this.container.actualOptions.fullScreen.enable;\n }\n clear() {\n const options = this.container.actualOptions, trail = options.particles.move.trail, trailFill = this._trailFill, minimumLength = 0;\n if (options.backgroundMask.enable) {\n this.paint();\n }\n else if (trail.enable && trail.length > minimumLength && trailFill) {\n if (trailFill.color) {\n this._paintBase(getStyleFromRgb(trailFill.color, trailFill.opacity));\n }\n else if (trailFill.image) {\n this._paintImage(trailFill.image, trailFill.opacity);\n }\n }\n else if (options.clear) {\n this.draw((ctx) => {\n clear(ctx, this.size);\n });\n }\n }\n destroy() {\n this.stop();\n if (this._generated) {\n const element = this.element;\n element?.remove();\n }\n else {\n this._resetOriginalStyle();\n }\n this._preDrawUpdaters = [];\n this._postDrawUpdaters = [];\n this._resizePlugins = [];\n this._colorPlugins = [];\n }\n draw(cb) {\n const ctx = this._context;\n if (!ctx) {\n return;\n }\n return cb(ctx);\n }\n drawAsync(cb) {\n const ctx = this._context;\n if (!ctx) {\n return undefined;\n }\n return cb(ctx);\n }\n drawParticle(particle, delta) {\n if (particle.spawning || particle.destroyed) {\n return;\n }\n const radius = particle.getRadius(), minimumSize = 0;\n if (radius <= minimumSize) {\n return;\n }\n const pfColor = particle.getFillColor(), psColor = particle.getStrokeColor() ?? pfColor;\n let [fColor, sColor] = this._getPluginParticleColors(particle);\n if (!fColor) {\n fColor = pfColor;\n }\n if (!sColor) {\n sColor = psColor;\n }\n if (!fColor && !sColor) {\n return;\n }\n this.draw((ctx) => {\n const container = this.container, options = container.actualOptions, zIndexOptions = particle.options.zIndex, zIndexFactorOffset = 1, zIndexFactor = zIndexFactorOffset - particle.zIndexFactor, zOpacityFactor = zIndexFactor ** zIndexOptions.opacityRate, defaultOpacity = 1, opacity = particle.bubble.opacity ?? particle.opacity?.value ?? defaultOpacity, strokeOpacity = particle.strokeOpacity ?? opacity, zOpacity = opacity * zOpacityFactor, zStrokeOpacity = strokeOpacity * zOpacityFactor, transform = {}, colorStyles = {\n fill: fColor ? getStyleFromHsl(fColor, zOpacity) : undefined,\n };\n colorStyles.stroke = sColor ? getStyleFromHsl(sColor, zStrokeOpacity) : colorStyles.fill;\n this._applyPreDrawUpdaters(ctx, particle, radius, zOpacity, colorStyles, transform);\n drawParticle({\n container,\n context: ctx,\n particle,\n delta,\n colorStyles,\n backgroundMask: options.backgroundMask.enable,\n composite: options.backgroundMask.composite,\n radius: radius * zIndexFactor ** zIndexOptions.sizeRate,\n opacity: zOpacity,\n shadow: particle.options.shadow,\n transform,\n });\n this._applyPostDrawUpdaters(particle);\n });\n }\n drawParticlePlugin(plugin, particle, delta) {\n this.draw((ctx) => drawParticlePlugin(ctx, plugin, particle, delta));\n }\n drawPlugin(plugin, delta) {\n this.draw((ctx) => drawPlugin(ctx, plugin, delta));\n }\n async init() {\n this._safeMutationObserver((obs) => obs.disconnect());\n this._mutationObserver = safeMutationObserver((records) => {\n for (const record of records) {\n if (record.type === \"attributes\" && record.attributeName === \"style\") {\n this._repairStyle();\n }\n }\n });\n this.resize();\n this._initStyle();\n await this._initCover();\n try {\n await this._initTrail();\n }\n catch (e) {\n getLogger().error(e);\n }\n this.initBackground();\n this._safeMutationObserver((obs) => {\n if (!this.element) {\n return;\n }\n obs.observe(this.element, { attributes: true });\n });\n this.initUpdaters();\n this.initPlugins();\n this.paint();\n }\n initBackground() {\n const options = this.container.actualOptions, background = options.background, element = this.element;\n if (!element) {\n return;\n }\n const elementStyle = element.style;\n if (!elementStyle) {\n return;\n }\n if (background.color) {\n const color = rangeColorToRgb(background.color);\n elementStyle.backgroundColor = color ? getStyleFromRgb(color, background.opacity) : \"\";\n }\n else {\n elementStyle.backgroundColor = \"\";\n }\n elementStyle.backgroundImage = background.image || \"\";\n elementStyle.backgroundPosition = background.position || \"\";\n elementStyle.backgroundRepeat = background.repeat || \"\";\n elementStyle.backgroundSize = background.size || \"\";\n }\n initPlugins() {\n this._resizePlugins = [];\n for (const [, plugin] of this.container.plugins) {\n if (plugin.resize) {\n this._resizePlugins.push(plugin);\n }\n if (plugin.particleFillColor ?? plugin.particleStrokeColor) {\n this._colorPlugins.push(plugin);\n }\n }\n }\n initUpdaters() {\n this._preDrawUpdaters = [];\n this._postDrawUpdaters = [];\n for (const updater of this.container.particles.updaters) {\n if (updater.afterDraw) {\n this._postDrawUpdaters.push(updater);\n }\n if (updater.getColorStyles ?? updater.getTransformValues ?? updater.beforeDraw) {\n this._preDrawUpdaters.push(updater);\n }\n }\n }\n loadCanvas(canvas) {\n if (this._generated && this.element) {\n this.element.remove();\n }\n this._generated =\n canvas.dataset && generatedAttribute in canvas.dataset\n ? canvas.dataset[generatedAttribute] === \"true\"\n : this._generated;\n this.element = canvas;\n this.element.ariaHidden = \"true\";\n this._originalStyle = deepExtend({}, this.element.style);\n this.size.height = canvas.offsetHeight;\n this.size.width = canvas.offsetWidth;\n this._context = this.element.getContext(\"2d\");\n this._safeMutationObserver((obs) => {\n if (!this.element) {\n return;\n }\n obs.observe(this.element, { attributes: true });\n });\n this.container.retina.init();\n this.initBackground();\n }\n paint() {\n const options = this.container.actualOptions;\n this.draw((ctx) => {\n if (options.backgroundMask.enable && options.backgroundMask.cover) {\n clear(ctx, this.size);\n if (this._coverImage) {\n this._paintImage(this._coverImage.image, this._coverImage.opacity);\n }\n else if (this._coverColorStyle) {\n this._paintBase(this._coverColorStyle);\n }\n else {\n this._paintBase();\n }\n }\n else {\n this._paintBase();\n }\n });\n }\n resize() {\n if (!this.element) {\n return false;\n }\n const container = this.container, pxRatio = container.retina.pixelRatio, size = container.canvas.size, newSize = {\n width: this.element.offsetWidth * pxRatio,\n height: this.element.offsetHeight * pxRatio,\n };\n if (newSize.height === size.height &&\n newSize.width === size.width &&\n newSize.height === this.element.height &&\n newSize.width === this.element.width) {\n return false;\n }\n const oldSize = { ...size };\n this.element.width = size.width = this.element.offsetWidth * pxRatio;\n this.element.height = size.height = this.element.offsetHeight * pxRatio;\n if (this.container.started) {\n container.particles.setResizeFactor({\n width: size.width / oldSize.width,\n height: size.height / oldSize.height,\n });\n }\n return true;\n }\n stop() {\n this._safeMutationObserver((obs) => obs.disconnect());\n this._mutationObserver = undefined;\n this.draw((ctx) => clear(ctx, this.size));\n }\n async windowResize() {\n if (!this.element || !this.resize()) {\n return;\n }\n const container = this.container, needsRefresh = container.updateActualOptions();\n container.particles.setDensity();\n this._applyResizePlugins();\n if (needsRefresh) {\n await container.refresh();\n }\n }\n}\n","import { executeOnSingleOrMultiple, safeMatchMedia } from \"../../Utils/Utils.js\";\nimport { millisecondsToSeconds, mouseDownEvent, mouseLeaveEvent, mouseMoveEvent, mouseOutEvent, mouseUpEvent, resizeEvent, touchCancelEvent, touchEndEvent, touchMoveEvent, touchStartEvent, visibilityChangeEvent, } from \"./Constants.js\";\nimport { isBoolean } from \"../../Utils/TypeUtils.js\";\nconst double = 2;\nfunction manageListener(element, event, handler, add, options) {\n if (add) {\n let addOptions = { passive: true };\n if (isBoolean(options)) {\n addOptions.capture = options;\n }\n else if (options !== undefined) {\n addOptions = options;\n }\n element.addEventListener(event, handler, addOptions);\n }\n else {\n const removeOptions = options;\n element.removeEventListener(event, handler, removeOptions);\n }\n}\nexport class EventListeners {\n constructor(container) {\n this.container = container;\n this._doMouseTouchClick = (e) => {\n const container = this.container, options = container.actualOptions;\n if (this._canPush) {\n const mouseInteractivity = container.interactivity.mouse, mousePos = mouseInteractivity.position;\n if (!mousePos) {\n return;\n }\n mouseInteractivity.clickPosition = { ...mousePos };\n mouseInteractivity.clickTime = new Date().getTime();\n const onClick = options.interactivity.events.onClick;\n executeOnSingleOrMultiple(onClick.mode, (mode) => this.container.handleClickMode(mode));\n }\n if (e.type === \"touchend\") {\n const touchDelay = 500;\n setTimeout(() => this._mouseTouchFinish(), touchDelay);\n }\n };\n this._handleThemeChange = (e) => {\n const mediaEvent = e, container = this.container, options = container.options, defaultThemes = options.defaultThemes, themeName = mediaEvent.matches ? defaultThemes.dark : defaultThemes.light, theme = options.themes.find((theme) => theme.name === themeName);\n if (theme && theme.default.auto) {\n void container.loadTheme(themeName);\n }\n };\n this._handleVisibilityChange = () => {\n const container = this.container, options = container.actualOptions;\n this._mouseTouchFinish();\n if (!options.pauseOnBlur) {\n return;\n }\n if (document && document.hidden) {\n container.pageHidden = true;\n container.pause();\n }\n else {\n container.pageHidden = false;\n if (container.animationStatus) {\n void container.play(true);\n }\n else {\n void container.draw(true);\n }\n }\n };\n this._handleWindowResize = () => {\n if (this._resizeTimeout) {\n clearTimeout(this._resizeTimeout);\n delete this._resizeTimeout;\n }\n const handleResize = async () => {\n const canvas = this.container.canvas;\n await canvas?.windowResize();\n };\n this._resizeTimeout = setTimeout(() => void handleResize(), this.container.actualOptions.interactivity.events.resize.delay * millisecondsToSeconds);\n };\n this._manageInteractivityListeners = (mouseLeaveTmpEvent, add) => {\n const handlers = this._handlers, container = this.container, options = container.actualOptions;\n const interactivityEl = container.interactivity.element;\n if (!interactivityEl) {\n return;\n }\n const html = interactivityEl, canvasEl = container.canvas.element;\n if (canvasEl) {\n canvasEl.style.pointerEvents = html === canvasEl ? \"initial\" : \"none\";\n }\n if (!(options.interactivity.events.onHover.enable || options.interactivity.events.onClick.enable)) {\n return;\n }\n manageListener(interactivityEl, mouseMoveEvent, handlers.mouseMove, add);\n manageListener(interactivityEl, touchStartEvent, handlers.touchStart, add);\n manageListener(interactivityEl, touchMoveEvent, handlers.touchMove, add);\n if (!options.interactivity.events.onClick.enable) {\n manageListener(interactivityEl, touchEndEvent, handlers.touchEnd, add);\n }\n else {\n manageListener(interactivityEl, touchEndEvent, handlers.touchEndClick, add);\n manageListener(interactivityEl, mouseUpEvent, handlers.mouseUp, add);\n manageListener(interactivityEl, mouseDownEvent, handlers.mouseDown, add);\n }\n manageListener(interactivityEl, mouseLeaveTmpEvent, handlers.mouseLeave, add);\n manageListener(interactivityEl, touchCancelEvent, handlers.touchCancel, add);\n };\n this._manageListeners = (add) => {\n const handlers = this._handlers, container = this.container, options = container.actualOptions, detectType = options.interactivity.detectsOn, canvasEl = container.canvas.element;\n let mouseLeaveTmpEvent = mouseLeaveEvent;\n if (detectType === \"window\") {\n container.interactivity.element = window;\n mouseLeaveTmpEvent = mouseOutEvent;\n }\n else if (detectType === \"parent\" && canvasEl) {\n container.interactivity.element = canvasEl.parentElement ?? canvasEl.parentNode;\n }\n else {\n container.interactivity.element = canvasEl;\n }\n this._manageMediaMatch(add);\n this._manageResize(add);\n this._manageInteractivityListeners(mouseLeaveTmpEvent, add);\n if (document) {\n manageListener(document, visibilityChangeEvent, handlers.visibilityChange, add, false);\n }\n };\n this._manageMediaMatch = (add) => {\n const handlers = this._handlers, mediaMatch = safeMatchMedia(\"(prefers-color-scheme: dark)\");\n if (!mediaMatch) {\n return;\n }\n if (mediaMatch.addEventListener !== undefined) {\n manageListener(mediaMatch, \"change\", handlers.themeChange, add);\n return;\n }\n if (mediaMatch.addListener === undefined) {\n return;\n }\n if (add) {\n mediaMatch.addListener(handlers.oldThemeChange);\n }\n else {\n mediaMatch.removeListener(handlers.oldThemeChange);\n }\n };\n this._manageResize = (add) => {\n const handlers = this._handlers, container = this.container, options = container.actualOptions;\n if (!options.interactivity.events.resize) {\n return;\n }\n if (typeof ResizeObserver === \"undefined\") {\n manageListener(window, resizeEvent, handlers.resize, add);\n return;\n }\n const canvasEl = container.canvas.element;\n if (this._resizeObserver && !add) {\n if (canvasEl) {\n this._resizeObserver.unobserve(canvasEl);\n }\n this._resizeObserver.disconnect();\n delete this._resizeObserver;\n }\n else if (!this._resizeObserver && add && canvasEl) {\n this._resizeObserver = new ResizeObserver((entries) => {\n const entry = entries.find((e) => e.target === canvasEl);\n if (!entry) {\n return;\n }\n this._handleWindowResize();\n });\n this._resizeObserver.observe(canvasEl);\n }\n };\n this._mouseDown = () => {\n const { interactivity } = this.container;\n if (!interactivity) {\n return;\n }\n const { mouse } = interactivity;\n mouse.clicking = true;\n mouse.downPosition = mouse.position;\n };\n this._mouseTouchClick = (e) => {\n const container = this.container, options = container.actualOptions, { mouse } = container.interactivity;\n mouse.inside = true;\n let handled = false;\n const mousePosition = mouse.position;\n if (!mousePosition || !options.interactivity.events.onClick.enable) {\n return;\n }\n for (const [, plugin] of container.plugins) {\n if (!plugin.clickPositionValid) {\n continue;\n }\n handled = plugin.clickPositionValid(mousePosition);\n if (handled) {\n break;\n }\n }\n if (!handled) {\n this._doMouseTouchClick(e);\n }\n mouse.clicking = false;\n };\n this._mouseTouchFinish = () => {\n const interactivity = this.container.interactivity;\n if (!interactivity) {\n return;\n }\n const mouse = interactivity.mouse;\n delete mouse.position;\n delete mouse.clickPosition;\n delete mouse.downPosition;\n interactivity.status = mouseLeaveEvent;\n mouse.inside = false;\n mouse.clicking = false;\n };\n this._mouseTouchMove = (e) => {\n const container = this.container, options = container.actualOptions, interactivity = container.interactivity, canvasEl = container.canvas.element;\n if (!interactivity?.element) {\n return;\n }\n interactivity.mouse.inside = true;\n let pos;\n if (e.type.startsWith(\"pointer\")) {\n this._canPush = true;\n const mouseEvent = e;\n if (interactivity.element === window) {\n if (canvasEl) {\n const clientRect = canvasEl.getBoundingClientRect();\n pos = {\n x: mouseEvent.clientX - clientRect.left,\n y: mouseEvent.clientY - clientRect.top,\n };\n }\n }\n else if (options.interactivity.detectsOn === \"parent\") {\n const source = mouseEvent.target, target = mouseEvent.currentTarget;\n if (source && target && canvasEl) {\n const sourceRect = source.getBoundingClientRect(), targetRect = target.getBoundingClientRect(), canvasRect = canvasEl.getBoundingClientRect();\n pos = {\n x: mouseEvent.offsetX + double * sourceRect.left - (targetRect.left + canvasRect.left),\n y: mouseEvent.offsetY + double * sourceRect.top - (targetRect.top + canvasRect.top),\n };\n }\n else {\n pos = {\n x: mouseEvent.offsetX ?? mouseEvent.clientX,\n y: mouseEvent.offsetY ?? mouseEvent.clientY,\n };\n }\n }\n else if (mouseEvent.target === canvasEl) {\n pos = {\n x: mouseEvent.offsetX ?? mouseEvent.clientX,\n y: mouseEvent.offsetY ?? mouseEvent.clientY,\n };\n }\n }\n else {\n this._canPush = e.type !== \"touchmove\";\n if (canvasEl) {\n const touchEvent = e, lengthOffset = 1, lastTouch = touchEvent.touches[touchEvent.touches.length - lengthOffset], canvasRect = canvasEl.getBoundingClientRect(), defaultCoordinate = 0;\n pos = {\n x: lastTouch.clientX - (canvasRect.left ?? defaultCoordinate),\n y: lastTouch.clientY - (canvasRect.top ?? defaultCoordinate),\n };\n }\n }\n const pxRatio = container.retina.pixelRatio;\n if (pos) {\n pos.x *= pxRatio;\n pos.y *= pxRatio;\n }\n interactivity.mouse.position = pos;\n interactivity.status = mouseMoveEvent;\n };\n this._touchEnd = (e) => {\n const evt = e, touches = Array.from(evt.changedTouches);\n for (const touch of touches) {\n this._touches.delete(touch.identifier);\n }\n this._mouseTouchFinish();\n };\n this._touchEndClick = (e) => {\n const evt = e, touches = Array.from(evt.changedTouches);\n for (const touch of touches) {\n this._touches.delete(touch.identifier);\n }\n this._mouseTouchClick(e);\n };\n this._touchStart = (e) => {\n const evt = e, touches = Array.from(evt.changedTouches);\n for (const touch of touches) {\n this._touches.set(touch.identifier, performance.now());\n }\n this._mouseTouchMove(e);\n };\n this._canPush = true;\n this._touches = new Map();\n this._handlers = {\n mouseDown: () => this._mouseDown(),\n mouseLeave: () => this._mouseTouchFinish(),\n mouseMove: (e) => this._mouseTouchMove(e),\n mouseUp: (e) => this._mouseTouchClick(e),\n touchStart: (e) => this._touchStart(e),\n touchMove: (e) => this._mouseTouchMove(e),\n touchEnd: (e) => this._touchEnd(e),\n touchCancel: (e) => this._touchEnd(e),\n touchEndClick: (e) => this._touchEndClick(e),\n visibilityChange: () => this._handleVisibilityChange(),\n themeChange: (e) => this._handleThemeChange(e),\n oldThemeChange: (e) => this._handleThemeChange(e),\n resize: () => {\n this._handleWindowResize();\n },\n };\n }\n addListeners() {\n this._manageListeners(true);\n }\n removeListeners() {\n this._manageListeners(false);\n }\n}\n","export class InteractionManager {\n constructor(engine, container) {\n this.container = container;\n this._engine = engine;\n this._interactors = [];\n this._externalInteractors = [];\n this._particleInteractors = [];\n }\n externalInteract(delta) {\n for (const interactor of this._externalInteractors) {\n if (interactor.isEnabled()) {\n interactor.interact(delta);\n }\n }\n }\n handleClickMode(mode) {\n for (const interactor of this._externalInteractors) {\n interactor.handleClickMode?.(mode);\n }\n }\n async init() {\n this._interactors = await this._engine.getInteractors(this.container, true);\n this._externalInteractors = [];\n this._particleInteractors = [];\n for (const interactor of this._interactors) {\n switch (interactor.type) {\n case \"external\":\n this._externalInteractors.push(interactor);\n break;\n case \"particles\":\n this._particleInteractors.push(interactor);\n break;\n }\n interactor.init();\n }\n }\n particlesInteract(particle, delta) {\n for (const interactor of this._externalInteractors) {\n interactor.clear(particle, delta);\n }\n for (const interactor of this._particleInteractors) {\n if (interactor.isEnabled(particle)) {\n interactor.interact(particle, delta);\n }\n }\n }\n reset(particle) {\n for (const interactor of this._externalInteractors) {\n if (interactor.isEnabled()) {\n interactor.reset(particle);\n }\n }\n for (const interactor of this._particleInteractors) {\n if (interactor.isEnabled(particle)) {\n interactor.reset(particle);\n }\n }\n }\n}\n","import { Vector, Vector3d } from \"./Utils/Vectors.js\";\nimport { calcExactPositionOrRandomFromSize, clamp, degToRad, getDistance, getParticleBaseVelocity, getParticleDirectionAngle, getRandom, getRangeValue, randomInRange, setRangeValue, } from \"../Utils/NumberUtils.js\";\nimport { deepExtend, getPosition, initParticleNumericAnimationValue, isInArray, itemFromSingleOrMultiple, } from \"../Utils/Utils.js\";\nimport { errorPrefix, millisecondsToSeconds } from \"./Utils/Constants.js\";\nimport { getHslFromAnimation, rangeColorToRgb } from \"../Utils/ColorUtils.js\";\nimport { Interactivity } from \"../Options/Classes/Interactivity/Interactivity.js\";\nimport { alterHsl } from \"../Utils/CanvasUtils.js\";\nimport { loadParticlesOptions } from \"../Utils/OptionsUtils.js\";\nconst defaultRetryCount = 0, double = 2, half = 0.5, squareExp = 2;\nfunction loadEffectData(effect, effectOptions, id, reduceDuplicates) {\n const effectData = effectOptions.options[effect];\n if (!effectData) {\n return;\n }\n return deepExtend({\n close: effectOptions.close,\n fill: effectOptions.fill,\n }, itemFromSingleOrMultiple(effectData, id, reduceDuplicates));\n}\nfunction loadShapeData(shape, shapeOptions, id, reduceDuplicates) {\n const shapeData = shapeOptions.options[shape];\n if (!shapeData) {\n return;\n }\n return deepExtend({\n close: shapeOptions.close,\n fill: shapeOptions.fill,\n }, itemFromSingleOrMultiple(shapeData, id, reduceDuplicates));\n}\nfunction fixOutMode(data) {\n if (!isInArray(data.outMode, data.checkModes)) {\n return;\n }\n const diameter = data.radius * double;\n if (data.coord > data.maxCoord - diameter) {\n data.setCb(-data.radius);\n }\n else if (data.coord < diameter) {\n data.setCb(data.radius);\n }\n}\nexport class Particle {\n constructor(engine, container) {\n this.container = container;\n this._calcPosition = (container, position, zIndex, tryCount = defaultRetryCount) => {\n for (const [, plugin] of container.plugins) {\n const pluginPos = plugin.particlePosition !== undefined ? plugin.particlePosition(position, this) : undefined;\n if (pluginPos) {\n return Vector3d.create(pluginPos.x, pluginPos.y, zIndex);\n }\n }\n const canvasSize = container.canvas.size, exactPosition = calcExactPositionOrRandomFromSize({\n size: canvasSize,\n position: position,\n }), pos = Vector3d.create(exactPosition.x, exactPosition.y, zIndex), radius = this.getRadius(), outModes = this.options.move.outModes, fixHorizontal = (outMode) => {\n fixOutMode({\n outMode,\n checkModes: [\"bounce\"],\n coord: pos.x,\n maxCoord: container.canvas.size.width,\n setCb: (value) => (pos.x += value),\n radius,\n });\n }, fixVertical = (outMode) => {\n fixOutMode({\n outMode,\n checkModes: [\"bounce\"],\n coord: pos.y,\n maxCoord: container.canvas.size.height,\n setCb: (value) => (pos.y += value),\n radius,\n });\n };\n fixHorizontal(outModes.left ?? outModes.default);\n fixHorizontal(outModes.right ?? outModes.default);\n fixVertical(outModes.top ?? outModes.default);\n fixVertical(outModes.bottom ?? outModes.default);\n if (this._checkOverlap(pos, tryCount)) {\n const increment = 1;\n return this._calcPosition(container, undefined, zIndex, tryCount + increment);\n }\n return pos;\n };\n this._calculateVelocity = () => {\n const baseVelocity = getParticleBaseVelocity(this.direction), res = baseVelocity.copy(), moveOptions = this.options.move;\n if (moveOptions.direction === \"inside\" || moveOptions.direction === \"outside\") {\n return res;\n }\n const rad = degToRad(getRangeValue(moveOptions.angle.value)), radOffset = degToRad(getRangeValue(moveOptions.angle.offset)), range = {\n left: radOffset - rad * half,\n right: radOffset + rad * half,\n };\n if (!moveOptions.straight) {\n res.angle += randomInRange(setRangeValue(range.left, range.right));\n }\n if (moveOptions.random && typeof moveOptions.speed === \"number\") {\n res.length *= getRandom();\n }\n return res;\n };\n this._checkOverlap = (pos, tryCount = defaultRetryCount) => {\n const collisionsOptions = this.options.collisions, radius = this.getRadius();\n if (!collisionsOptions.enable) {\n return false;\n }\n const overlapOptions = collisionsOptions.overlap;\n if (overlapOptions.enable) {\n return false;\n }\n const retries = overlapOptions.retries, minRetries = 0;\n if (retries >= minRetries && tryCount > retries) {\n throw new Error(`${errorPrefix} particle is overlapping and can't be placed`);\n }\n return !!this.container.particles.find((particle) => getDistance(pos, particle.position) < radius + particle.getRadius());\n };\n this._getRollColor = (color) => {\n if (!color || !this.roll || (!this.backColor && !this.roll.alter)) {\n return color;\n }\n const rollFactor = 1, none = 0, backFactor = this.roll.horizontal && this.roll.vertical ? double * rollFactor : rollFactor, backSum = this.roll.horizontal ? Math.PI * half : none, rolled = Math.floor(((this.roll.angle ?? none) + backSum) / (Math.PI / backFactor)) % double;\n if (!rolled) {\n return color;\n }\n if (this.backColor) {\n return this.backColor;\n }\n if (this.roll.alter) {\n return alterHsl(color, this.roll.alter.type, this.roll.alter.value);\n }\n return color;\n };\n this._initPosition = (position) => {\n const container = this.container, zIndexValue = getRangeValue(this.options.zIndex.value), minZ = 0;\n this.position = this._calcPosition(container, position, clamp(zIndexValue, minZ, container.zLayers));\n this.initialPosition = this.position.copy();\n const canvasSize = container.canvas.size, defaultRadius = 0;\n this.moveCenter = {\n ...getPosition(this.options.move.center, canvasSize),\n radius: this.options.move.center.radius ?? defaultRadius,\n mode: this.options.move.center.mode ?? \"percent\",\n };\n this.direction = getParticleDirectionAngle(this.options.move.direction, this.position, this.moveCenter);\n switch (this.options.move.direction) {\n case \"inside\":\n this.outType = \"inside\";\n break;\n case \"outside\":\n this.outType = \"outside\";\n break;\n }\n this.offset = Vector.origin;\n };\n this._engine = engine;\n }\n destroy(override) {\n if (this.unbreakable || this.destroyed) {\n return;\n }\n this.destroyed = true;\n this.bubble.inRange = false;\n this.slow.inRange = false;\n const container = this.container, pathGenerator = this.pathGenerator, shapeDrawer = container.shapeDrawers.get(this.shape);\n shapeDrawer?.particleDestroy?.(this);\n for (const [, plugin] of container.plugins) {\n plugin.particleDestroyed?.(this, override);\n }\n for (const updater of container.particles.updaters) {\n updater.particleDestroyed?.(this, override);\n }\n pathGenerator?.reset(this);\n this._engine.dispatchEvent(\"particleDestroyed\", {\n container: this.container,\n data: {\n particle: this,\n },\n });\n }\n draw(delta) {\n const container = this.container, canvas = container.canvas;\n for (const [, plugin] of container.plugins) {\n canvas.drawParticlePlugin(plugin, this, delta);\n }\n canvas.drawParticle(this, delta);\n }\n getFillColor() {\n return this._getRollColor(this.bubble.color ?? getHslFromAnimation(this.color));\n }\n getMass() {\n return this.getRadius() ** squareExp * Math.PI * half;\n }\n getPosition() {\n return {\n x: this.position.x + this.offset.x,\n y: this.position.y + this.offset.y,\n z: this.position.z,\n };\n }\n getRadius() {\n return this.bubble.radius ?? this.size.value;\n }\n getStrokeColor() {\n return this._getRollColor(this.bubble.color ?? getHslFromAnimation(this.strokeColor));\n }\n init(id, position, overrideOptions, group) {\n const container = this.container, engine = this._engine;\n this.id = id;\n this.group = group;\n this.effectClose = true;\n this.effectFill = true;\n this.shapeClose = true;\n this.shapeFill = true;\n this.pathRotation = false;\n this.lastPathTime = 0;\n this.destroyed = false;\n this.unbreakable = false;\n this.rotation = 0;\n this.misplaced = false;\n this.retina = {\n maxDistance: {},\n };\n this.outType = \"normal\";\n this.ignoresResizeRatio = true;\n const pxRatio = container.retina.pixelRatio, mainOptions = container.actualOptions, particlesOptions = loadParticlesOptions(this._engine, container, mainOptions.particles), effectType = particlesOptions.effect.type, shapeType = particlesOptions.shape.type, { reduceDuplicates } = particlesOptions;\n this.effect = itemFromSingleOrMultiple(effectType, this.id, reduceDuplicates);\n this.shape = itemFromSingleOrMultiple(shapeType, this.id, reduceDuplicates);\n const effectOptions = particlesOptions.effect, shapeOptions = particlesOptions.shape;\n if (overrideOptions) {\n if (overrideOptions.effect?.type) {\n const overrideEffectType = overrideOptions.effect.type, effect = itemFromSingleOrMultiple(overrideEffectType, this.id, reduceDuplicates);\n if (effect) {\n this.effect = effect;\n effectOptions.load(overrideOptions.effect);\n }\n }\n if (overrideOptions.shape?.type) {\n const overrideShapeType = overrideOptions.shape.type, shape = itemFromSingleOrMultiple(overrideShapeType, this.id, reduceDuplicates);\n if (shape) {\n this.shape = shape;\n shapeOptions.load(overrideOptions.shape);\n }\n }\n }\n this.effectData = loadEffectData(this.effect, effectOptions, this.id, reduceDuplicates);\n this.shapeData = loadShapeData(this.shape, shapeOptions, this.id, reduceDuplicates);\n particlesOptions.load(overrideOptions);\n const effectData = this.effectData;\n if (effectData) {\n particlesOptions.load(effectData.particles);\n }\n const shapeData = this.shapeData;\n if (shapeData) {\n particlesOptions.load(shapeData.particles);\n }\n const interactivity = new Interactivity(engine, container);\n interactivity.load(container.actualOptions.interactivity);\n interactivity.load(particlesOptions.interactivity);\n this.interactivity = interactivity;\n this.effectFill = effectData?.fill ?? particlesOptions.effect.fill;\n this.effectClose = effectData?.close ?? particlesOptions.effect.close;\n this.shapeFill = shapeData?.fill ?? particlesOptions.shape.fill;\n this.shapeClose = shapeData?.close ?? particlesOptions.shape.close;\n this.options = particlesOptions;\n const pathOptions = this.options.move.path;\n this.pathDelay = getRangeValue(pathOptions.delay.value) * millisecondsToSeconds;\n if (pathOptions.generator) {\n this.pathGenerator = this._engine.getPathGenerator(pathOptions.generator);\n if (this.pathGenerator && container.addPath(pathOptions.generator, this.pathGenerator)) {\n this.pathGenerator.init(container);\n }\n }\n container.retina.initParticle(this);\n this.size = initParticleNumericAnimationValue(this.options.size, pxRatio);\n this.bubble = {\n inRange: false,\n };\n this.slow = {\n inRange: false,\n factor: 1,\n };\n this._initPosition(position);\n this.initialVelocity = this._calculateVelocity();\n this.velocity = this.initialVelocity.copy();\n const decayOffset = 1;\n this.moveDecay = decayOffset - getRangeValue(this.options.move.decay);\n const particles = container.particles;\n particles.setLastZIndex(this.position.z);\n this.zIndexFactor = this.position.z / container.zLayers;\n this.sides = 24;\n let effectDrawer = container.effectDrawers.get(this.effect);\n if (!effectDrawer) {\n effectDrawer = this._engine.getEffectDrawer(this.effect);\n if (effectDrawer) {\n container.effectDrawers.set(this.effect, effectDrawer);\n }\n }\n if (effectDrawer?.loadEffect) {\n effectDrawer.loadEffect(this);\n }\n let shapeDrawer = container.shapeDrawers.get(this.shape);\n if (!shapeDrawer) {\n shapeDrawer = this._engine.getShapeDrawer(this.shape);\n if (shapeDrawer) {\n container.shapeDrawers.set(this.shape, shapeDrawer);\n }\n }\n if (shapeDrawer?.loadShape) {\n shapeDrawer.loadShape(this);\n }\n const sideCountFunc = shapeDrawer?.getSidesCount;\n if (sideCountFunc) {\n this.sides = sideCountFunc(this);\n }\n this.spawning = false;\n this.shadowColor = rangeColorToRgb(this.options.shadow.color);\n for (const updater of particles.updaters) {\n updater.init(this);\n }\n for (const mover of particles.movers) {\n mover.init?.(this);\n }\n effectDrawer?.particleInit?.(container, this);\n shapeDrawer?.particleInit?.(container, this);\n for (const [, plugin] of container.plugins) {\n plugin.particleCreated?.(this);\n }\n }\n isInsideCanvas() {\n const radius = this.getRadius(), canvasSize = this.container.canvas.size, position = this.position;\n return (position.x >= -radius &&\n position.y >= -radius &&\n position.y <= canvasSize.height + radius &&\n position.x <= canvasSize.width + radius);\n }\n isVisible() {\n return !this.destroyed && !this.spawning && this.isInsideCanvas();\n }\n reset() {\n for (const updater of this.container.particles.updaters) {\n updater.reset?.(this);\n }\n }\n}\n","export class Point {\n constructor(position, particle) {\n this.position = position;\n this.particle = particle;\n }\n}\n","import { Circle, Rectangle } from \"./Ranges.js\";\nimport { getDistance } from \"../../Utils/NumberUtils.js\";\nconst half = 0.5, double = 2, subdivideCount = 4;\nexport class QuadTree {\n constructor(rectangle, capacity) {\n this.rectangle = rectangle;\n this.capacity = capacity;\n this._subdivide = () => {\n const { x, y } = this.rectangle.position, { width, height } = this.rectangle.size, { capacity } = this;\n for (let i = 0; i < subdivideCount; i++) {\n const fixedIndex = i % double;\n this._subs.push(new QuadTree(new Rectangle(x + width * half * fixedIndex, y + height * half * (Math.round(i * half) - fixedIndex), width * half, height * half), capacity));\n }\n this._divided = true;\n };\n this._points = [];\n this._divided = false;\n this._subs = [];\n }\n insert(point) {\n if (!this.rectangle.contains(point.position)) {\n return false;\n }\n if (this._points.length < this.capacity) {\n this._points.push(point);\n return true;\n }\n if (!this._divided) {\n this._subdivide();\n }\n return this._subs.some((sub) => sub.insert(point));\n }\n query(range, check) {\n const res = [];\n if (!range.intersects(this.rectangle)) {\n return [];\n }\n for (const p of this._points) {\n if (!range.contains(p.position) &&\n getDistance(range.position, p.position) > p.particle.getRadius() &&\n (!check || check(p.particle))) {\n continue;\n }\n res.push(p.particle);\n }\n if (this._divided) {\n for (const sub of this._subs) {\n res.push(...sub.query(range, check));\n }\n }\n return res;\n }\n queryCircle(position, radius, check) {\n return this.query(new Circle(position.x, position.y, radius), check);\n }\n queryRectangle(position, size, check) {\n return this.query(new Rectangle(position.x, position.y, size.width, size.height), check);\n }\n}\n","import { getLogger, getPosition } from \"../Utils/Utils.js\";\nimport { InteractionManager } from \"./Utils/InteractionManager.js\";\nimport { Particle } from \"./Particle.js\";\nimport { Point } from \"./Utils/Point.js\";\nimport { QuadTree } from \"./Utils/QuadTree.js\";\nimport { Rectangle } from \"./Utils/Ranges.js\";\nimport { errorPrefix } from \"./Utils/Constants.js\";\nconst qTreeCapacity = 4, squareExp = 2, defaultRemoveQuantity = 1;\nconst qTreeRectangle = (canvasSize) => {\n const { height, width } = canvasSize, posOffset = -0.25, sizeFactor = 1.5;\n return new Rectangle(posOffset * width, posOffset * height, sizeFactor * width, sizeFactor * height);\n};\nexport class Particles {\n constructor(engine, container) {\n this._addToPool = (...particles) => {\n for (const particle of particles) {\n this._pool.push(particle);\n }\n };\n this._applyDensity = (options, manualCount, group) => {\n const numberOptions = options.number;\n if (!options.number.density?.enable) {\n if (group === undefined) {\n this._limit = numberOptions.limit.value;\n }\n else if (numberOptions.limit) {\n this._groupLimits.set(group, numberOptions.limit.value);\n }\n return;\n }\n const densityFactor = this._initDensityFactor(numberOptions.density), optParticlesNumber = numberOptions.value, minLimit = 0, optParticlesLimit = numberOptions.limit.value > minLimit ? numberOptions.limit.value : optParticlesNumber, particlesNumber = Math.min(optParticlesNumber, optParticlesLimit) * densityFactor + manualCount, particlesCount = Math.min(this.count, this.filter((t) => t.group === group).length);\n if (group === undefined) {\n this._limit = numberOptions.limit.value * densityFactor;\n }\n else {\n this._groupLimits.set(group, numberOptions.limit.value * densityFactor);\n }\n if (particlesCount < particlesNumber) {\n this.push(Math.abs(particlesNumber - particlesCount), undefined, options, group);\n }\n else if (particlesCount > particlesNumber) {\n this.removeQuantity(particlesCount - particlesNumber, group);\n }\n };\n this._initDensityFactor = (densityOptions) => {\n const container = this._container, defaultFactor = 1;\n if (!container.canvas.element || !densityOptions.enable) {\n return defaultFactor;\n }\n const canvas = container.canvas.element, pxRatio = container.retina.pixelRatio;\n return (canvas.width * canvas.height) / (densityOptions.height * densityOptions.width * pxRatio ** squareExp);\n };\n this._pushParticle = (position, overrideOptions, group, initializer) => {\n try {\n let particle = this._pool.pop();\n if (!particle) {\n particle = new Particle(this._engine, this._container);\n }\n particle.init(this._nextId, position, overrideOptions, group);\n let canAdd = true;\n if (initializer) {\n canAdd = initializer(particle);\n }\n if (!canAdd) {\n return;\n }\n this._array.push(particle);\n this._zArray.push(particle);\n this._nextId++;\n this._engine.dispatchEvent(\"particleAdded\", {\n container: this._container,\n data: {\n particle,\n },\n });\n return particle;\n }\n catch (e) {\n getLogger().warning(`${errorPrefix} adding particle: ${e}`);\n }\n };\n this._removeParticle = (index, group, override) => {\n const particle = this._array[index];\n if (!particle || particle.group !== group) {\n return false;\n }\n const zIdx = this._zArray.indexOf(particle), deleteCount = 1;\n this._array.splice(index, deleteCount);\n this._zArray.splice(zIdx, deleteCount);\n particle.destroy(override);\n this._engine.dispatchEvent(\"particleRemoved\", {\n container: this._container,\n data: {\n particle,\n },\n });\n this._addToPool(particle);\n return true;\n };\n this._engine = engine;\n this._container = container;\n this._nextId = 0;\n this._array = [];\n this._zArray = [];\n this._pool = [];\n this._limit = 0;\n this._groupLimits = new Map();\n this._needsSort = false;\n this._lastZIndex = 0;\n this._interactionManager = new InteractionManager(engine, container);\n this._pluginsInitialized = false;\n const canvasSize = container.canvas.size;\n this.quadTree = new QuadTree(qTreeRectangle(canvasSize), qTreeCapacity);\n this.movers = [];\n this.updaters = [];\n }\n get count() {\n return this._array.length;\n }\n addManualParticles() {\n const container = this._container, options = container.actualOptions;\n for (const particle of options.manualParticles) {\n this.addParticle(particle.position ? getPosition(particle.position, container.canvas.size) : undefined, particle.options);\n }\n }\n addParticle(position, overrideOptions, group, initializer) {\n const limitOptions = this._container.actualOptions.particles.number.limit, limit = group === undefined ? this._limit : this._groupLimits.get(group) ?? this._limit, currentCount = this.count, minLimit = 0;\n if (limit > minLimit) {\n if (limitOptions.mode === \"delete\") {\n const countOffset = 1, minCount = 0, countToRemove = currentCount + countOffset - limit;\n if (countToRemove > minCount) {\n this.removeQuantity(countToRemove);\n }\n }\n else if (limitOptions.mode === \"wait\") {\n if (currentCount >= limit) {\n return;\n }\n }\n }\n return this._pushParticle(position, overrideOptions, group, initializer);\n }\n clear() {\n this._array = [];\n this._zArray = [];\n this._pluginsInitialized = false;\n }\n destroy() {\n this._array = [];\n this._zArray = [];\n this.movers = [];\n this.updaters = [];\n }\n draw(delta) {\n const container = this._container, canvas = container.canvas;\n canvas.clear();\n this.update(delta);\n for (const [, plugin] of container.plugins) {\n canvas.drawPlugin(plugin, delta);\n }\n for (const p of this._zArray) {\n p.draw(delta);\n }\n }\n filter(condition) {\n return this._array.filter(condition);\n }\n find(condition) {\n return this._array.find(condition);\n }\n get(index) {\n return this._array[index];\n }\n handleClickMode(mode) {\n this._interactionManager.handleClickMode(mode);\n }\n async init() {\n const container = this._container, options = container.actualOptions;\n this._lastZIndex = 0;\n this._needsSort = false;\n await this.initPlugins();\n let handled = false;\n for (const [, plugin] of container.plugins) {\n if (plugin.particlesInitialization !== undefined) {\n handled = plugin.particlesInitialization();\n }\n if (handled) {\n break;\n }\n }\n this.addManualParticles();\n if (!handled) {\n const particlesOptions = options.particles, groups = particlesOptions.groups;\n for (const group in groups) {\n const groupOptions = groups[group];\n for (let i = this.count, j = 0; j < groupOptions.number?.value && i < particlesOptions.number.value; i++, j++) {\n this.addParticle(undefined, groupOptions, group);\n }\n }\n for (let i = this.count; i < particlesOptions.number.value; i++) {\n this.addParticle();\n }\n }\n }\n async initPlugins() {\n if (this._pluginsInitialized) {\n return;\n }\n const container = this._container;\n this.movers = await this._engine.getMovers(container, true);\n this.updaters = await this._engine.getUpdaters(container, true);\n await this._interactionManager.init();\n for (const [, pathGenerator] of container.pathGenerators) {\n pathGenerator.init(container);\n }\n }\n push(nb, mouse, overrideOptions, group) {\n for (let i = 0; i < nb; i++) {\n this.addParticle(mouse?.position, overrideOptions, group);\n }\n }\n async redraw() {\n this.clear();\n await this.init();\n this.draw({ value: 0, factor: 0 });\n }\n remove(particle, group, override) {\n this.removeAt(this._array.indexOf(particle), undefined, group, override);\n }\n removeAt(index, quantity = defaultRemoveQuantity, group, override) {\n const minIndex = 0;\n if (index < minIndex || index > this.count) {\n return;\n }\n let deleted = 0;\n for (let i = index; deleted < quantity && i < this.count; i++) {\n if (this._removeParticle(i--, group, override)) {\n deleted++;\n }\n }\n }\n removeQuantity(quantity, group) {\n const defaultIndex = 0;\n this.removeAt(defaultIndex, quantity, group);\n }\n setDensity() {\n const options = this._container.actualOptions, groups = options.particles.groups, manualCount = 0;\n for (const group in groups) {\n this._applyDensity(groups[group], manualCount, group);\n }\n this._applyDensity(options.particles, options.manualParticles.length);\n }\n setLastZIndex(zIndex) {\n this._lastZIndex = zIndex;\n this._needsSort = this._needsSort || this._lastZIndex < zIndex;\n }\n setResizeFactor(factor) {\n this._resizeFactor = factor;\n }\n update(delta) {\n const container = this._container, particlesToDelete = new Set();\n this.quadTree = new QuadTree(qTreeRectangle(container.canvas.size), qTreeCapacity);\n for (const [, pathGenerator] of container.pathGenerators) {\n pathGenerator.update();\n }\n for (const [, plugin] of container.plugins) {\n plugin.update?.(delta);\n }\n const resizeFactor = this._resizeFactor;\n for (const particle of this._array) {\n if (resizeFactor && !particle.ignoresResizeRatio) {\n particle.position.x *= resizeFactor.width;\n particle.position.y *= resizeFactor.height;\n particle.initialPosition.x *= resizeFactor.width;\n particle.initialPosition.y *= resizeFactor.height;\n }\n particle.ignoresResizeRatio = false;\n this._interactionManager.reset(particle);\n for (const [, plugin] of this._container.plugins) {\n if (particle.destroyed) {\n break;\n }\n plugin.particleUpdate?.(particle, delta);\n }\n for (const mover of this.movers) {\n if (mover.isEnabled(particle)) {\n mover.move(particle, delta);\n }\n }\n if (particle.destroyed) {\n particlesToDelete.add(particle);\n continue;\n }\n this.quadTree.insert(new Point(particle.getPosition(), particle));\n }\n if (particlesToDelete.size) {\n const checkDelete = (p) => !particlesToDelete.has(p);\n this._array = this.filter(checkDelete);\n this._zArray = this._zArray.filter(checkDelete);\n for (const particle of particlesToDelete) {\n this._engine.dispatchEvent(\"particleRemoved\", {\n container: this._container,\n data: {\n particle,\n },\n });\n }\n this._addToPool(...particlesToDelete);\n }\n this._interactionManager.externalInteract(delta);\n for (const particle of this._array) {\n for (const updater of this.updaters) {\n updater.update(particle, delta);\n }\n if (!particle.destroyed && !particle.spawning) {\n this._interactionManager.particlesInteract(particle, delta);\n }\n }\n delete this._resizeFactor;\n if (this._needsSort) {\n const zArray = this._zArray;\n zArray.sort((a, b) => b.position.z - a.position.z || a.id - b.id);\n const lengthOffset = 1;\n this._lastZIndex = zArray[zArray.length - lengthOffset].position.z;\n this._needsSort = false;\n }\n }\n}\n","import { getRangeValue } from \"../Utils/NumberUtils.js\";\nimport { isSsr } from \"../Utils/Utils.js\";\nconst defaultRatio = 1, defaultReduceFactor = 1;\nexport class Retina {\n constructor(container) {\n this.container = container;\n this.pixelRatio = defaultRatio;\n this.reduceFactor = defaultReduceFactor;\n }\n init() {\n const container = this.container, options = container.actualOptions;\n this.pixelRatio = !options.detectRetina || isSsr() ? defaultRatio : window.devicePixelRatio;\n this.reduceFactor = defaultReduceFactor;\n const ratio = this.pixelRatio, canvas = container.canvas;\n if (canvas.element) {\n const element = canvas.element;\n canvas.size.width = element.offsetWidth * ratio;\n canvas.size.height = element.offsetHeight * ratio;\n }\n const particles = options.particles, moveOptions = particles.move;\n this.maxSpeed = getRangeValue(moveOptions.gravity.maxSpeed) * ratio;\n this.sizeAnimationSpeed = getRangeValue(particles.size.animation.speed) * ratio;\n }\n initParticle(particle) {\n const options = particle.options, ratio = this.pixelRatio, moveOptions = options.move, moveDistance = moveOptions.distance, props = particle.retina;\n props.moveDrift = getRangeValue(moveOptions.drift) * ratio;\n props.moveSpeed = getRangeValue(moveOptions.speed) * ratio;\n props.sizeAnimationSpeed = getRangeValue(options.size.animation.speed) * ratio;\n const maxDistance = props.maxDistance;\n maxDistance.horizontal = moveDistance.horizontal !== undefined ? moveDistance.horizontal * ratio : undefined;\n maxDistance.vertical = moveDistance.vertical !== undefined ? moveDistance.vertical * ratio : undefined;\n props.maxSpeed = getRangeValue(moveOptions.gravity.maxSpeed) * ratio;\n }\n}\n","import { errorPrefix, millisecondsToSeconds } from \"./Utils/Constants.js\";\nimport { getLogger, safeIntersectionObserver } from \"../Utils/Utils.js\";\nimport { Canvas } from \"./Canvas.js\";\nimport { EventListeners } from \"./Utils/EventListeners.js\";\nimport { Options } from \"../Options/Classes/Options.js\";\nimport { Particles } from \"./Particles.js\";\nimport { Retina } from \"./Retina.js\";\nimport { getRangeValue } from \"../Utils/NumberUtils.js\";\nimport { loadOptions } from \"../Utils/OptionsUtils.js\";\nfunction guardCheck(container) {\n return container && !container.destroyed;\n}\nconst defaultFps = 60;\nfunction initDelta(value, fpsLimit = defaultFps, smooth = false) {\n return {\n value,\n factor: smooth ? defaultFps / fpsLimit : (defaultFps * value) / millisecondsToSeconds,\n };\n}\nfunction loadContainerOptions(engine, container, ...sourceOptionsArr) {\n const options = new Options(engine, container);\n loadOptions(options, ...sourceOptionsArr);\n return options;\n}\nexport class Container {\n constructor(engine, id, sourceOptions) {\n this._intersectionManager = (entries) => {\n if (!guardCheck(this) || !this.actualOptions.pauseOnOutsideViewport) {\n return;\n }\n for (const entry of entries) {\n if (entry.target !== this.interactivity.element) {\n continue;\n }\n if (entry.isIntersecting) {\n void this.play();\n }\n else {\n this.pause();\n }\n }\n };\n this._nextFrame = (timestamp) => {\n try {\n if (!this._smooth &&\n this._lastFrameTime !== undefined &&\n timestamp < this._lastFrameTime + millisecondsToSeconds / this.fpsLimit) {\n this.draw(false);\n return;\n }\n this._lastFrameTime ??= timestamp;\n const delta = initDelta(timestamp - this._lastFrameTime, this.fpsLimit, this._smooth);\n this.addLifeTime(delta.value);\n this._lastFrameTime = timestamp;\n if (delta.value > millisecondsToSeconds) {\n this.draw(false);\n return;\n }\n this.particles.draw(delta);\n if (!this.alive()) {\n this.destroy();\n return;\n }\n if (this.animationStatus) {\n this.draw(false);\n }\n }\n catch (e) {\n getLogger().error(`${errorPrefix} in animation loop`, e);\n }\n };\n this._engine = engine;\n this.id = Symbol(id);\n this.fpsLimit = 120;\n this._smooth = false;\n this._delay = 0;\n this._duration = 0;\n this._lifeTime = 0;\n this._firstStart = true;\n this.started = false;\n this.destroyed = false;\n this._paused = true;\n this._lastFrameTime = 0;\n this.zLayers = 100;\n this.pageHidden = false;\n this._sourceOptions = sourceOptions;\n this._initialSourceOptions = sourceOptions;\n this.retina = new Retina(this);\n this.canvas = new Canvas(this);\n this.particles = new Particles(this._engine, this);\n this.pathGenerators = new Map();\n this.interactivity = {\n mouse: {\n clicking: false,\n inside: false,\n },\n };\n this.plugins = new Map();\n this.effectDrawers = new Map();\n this.shapeDrawers = new Map();\n this._options = loadContainerOptions(this._engine, this);\n this.actualOptions = loadContainerOptions(this._engine, this);\n this._eventListeners = new EventListeners(this);\n this._intersectionObserver = safeIntersectionObserver((entries) => this._intersectionManager(entries));\n this._engine.dispatchEvent(\"containerBuilt\", { container: this });\n }\n get animationStatus() {\n return !this._paused && !this.pageHidden && guardCheck(this);\n }\n get options() {\n return this._options;\n }\n get sourceOptions() {\n return this._sourceOptions;\n }\n addClickHandler(callback) {\n if (!guardCheck(this)) {\n return;\n }\n const el = this.interactivity.element;\n if (!el) {\n return;\n }\n const clickOrTouchHandler = (e, pos, radius) => {\n if (!guardCheck(this)) {\n return;\n }\n const pxRatio = this.retina.pixelRatio, posRetina = {\n x: pos.x * pxRatio,\n y: pos.y * pxRatio,\n }, particles = this.particles.quadTree.queryCircle(posRetina, radius * pxRatio);\n callback(e, particles);\n };\n const clickHandler = (e) => {\n if (!guardCheck(this)) {\n return;\n }\n const mouseEvent = e, pos = {\n x: mouseEvent.offsetX || mouseEvent.clientX,\n y: mouseEvent.offsetY || mouseEvent.clientY,\n }, radius = 1;\n clickOrTouchHandler(e, pos, radius);\n };\n const touchStartHandler = () => {\n if (!guardCheck(this)) {\n return;\n }\n touched = true;\n touchMoved = false;\n };\n const touchMoveHandler = () => {\n if (!guardCheck(this)) {\n return;\n }\n touchMoved = true;\n };\n const touchEndHandler = (e) => {\n if (!guardCheck(this)) {\n return;\n }\n if (touched && !touchMoved) {\n const touchEvent = e;\n const lengthOffset = 1;\n let lastTouch = touchEvent.touches[touchEvent.touches.length - lengthOffset];\n if (!lastTouch) {\n lastTouch = touchEvent.changedTouches[touchEvent.changedTouches.length - lengthOffset];\n if (!lastTouch) {\n return;\n }\n }\n const element = this.canvas.element, canvasRect = element ? element.getBoundingClientRect() : undefined, minCoordinate = 0, pos = {\n x: lastTouch.clientX - (canvasRect ? canvasRect.left : minCoordinate),\n y: lastTouch.clientY - (canvasRect ? canvasRect.top : minCoordinate),\n };\n clickOrTouchHandler(e, pos, Math.max(lastTouch.radiusX, lastTouch.radiusY));\n }\n touched = false;\n touchMoved = false;\n };\n const touchCancelHandler = () => {\n if (!guardCheck(this)) {\n return;\n }\n touched = false;\n touchMoved = false;\n };\n let touched = false, touchMoved = false;\n el.addEventListener(\"click\", clickHandler);\n el.addEventListener(\"touchstart\", touchStartHandler);\n el.addEventListener(\"touchmove\", touchMoveHandler);\n el.addEventListener(\"touchend\", touchEndHandler);\n el.addEventListener(\"touchcancel\", touchCancelHandler);\n }\n addLifeTime(value) {\n this._lifeTime += value;\n }\n addPath(key, generator, override = false) {\n if (!guardCheck(this) || (!override && this.pathGenerators.has(key))) {\n return false;\n }\n this.pathGenerators.set(key, generator);\n return true;\n }\n alive() {\n return !this._duration || this._lifeTime <= this._duration;\n }\n destroy() {\n if (!guardCheck(this)) {\n return;\n }\n this.stop();\n this.particles.destroy();\n this.canvas.destroy();\n for (const [, effectDrawer] of this.effectDrawers) {\n effectDrawer.destroy?.(this);\n }\n for (const [, shapeDrawer] of this.shapeDrawers) {\n shapeDrawer.destroy?.(this);\n }\n for (const key of this.effectDrawers.keys()) {\n this.effectDrawers.delete(key);\n }\n for (const key of this.shapeDrawers.keys()) {\n this.shapeDrawers.delete(key);\n }\n this._engine.clearPlugins(this);\n this.destroyed = true;\n const mainArr = this._engine.dom(), idx = mainArr.findIndex((t) => t === this), minIndex = 0;\n if (idx >= minIndex) {\n const deleteCount = 1;\n mainArr.splice(idx, deleteCount);\n }\n this._engine.dispatchEvent(\"containerDestroyed\", { container: this });\n }\n draw(force) {\n if (!guardCheck(this)) {\n return;\n }\n let refreshTime = force;\n const frame = (timestamp) => {\n if (refreshTime) {\n this._lastFrameTime = undefined;\n refreshTime = false;\n }\n this._nextFrame(timestamp);\n };\n this._drawAnimationFrame = requestAnimationFrame((timestamp) => frame(timestamp));\n }\n async export(type, options = {}) {\n for (const [, plugin] of this.plugins) {\n if (!plugin.export) {\n continue;\n }\n const res = await plugin.export(type, options);\n if (!res.supported) {\n continue;\n }\n return res.blob;\n }\n getLogger().error(`${errorPrefix} - Export plugin with type ${type} not found`);\n }\n handleClickMode(mode) {\n if (!guardCheck(this)) {\n return;\n }\n this.particles.handleClickMode(mode);\n for (const [, plugin] of this.plugins) {\n plugin.handleClickMode?.(mode);\n }\n }\n async init() {\n if (!guardCheck(this)) {\n return;\n }\n const effects = this._engine.getSupportedEffects();\n for (const type of effects) {\n const drawer = this._engine.getEffectDrawer(type);\n if (drawer) {\n this.effectDrawers.set(type, drawer);\n }\n }\n const shapes = this._engine.getSupportedShapes();\n for (const type of shapes) {\n const drawer = this._engine.getShapeDrawer(type);\n if (drawer) {\n this.shapeDrawers.set(type, drawer);\n }\n }\n await this.particles.initPlugins();\n this._options = loadContainerOptions(this._engine, this, this._initialSourceOptions, this.sourceOptions);\n this.actualOptions = loadContainerOptions(this._engine, this, this._options);\n const availablePlugins = await this._engine.getAvailablePlugins(this);\n for (const [id, plugin] of availablePlugins) {\n this.plugins.set(id, plugin);\n }\n this.retina.init();\n await this.canvas.init();\n this.updateActualOptions();\n this.canvas.initBackground();\n this.canvas.resize();\n this.zLayers = this.actualOptions.zLayers;\n this._duration = getRangeValue(this.actualOptions.duration) * millisecondsToSeconds;\n this._delay = getRangeValue(this.actualOptions.delay) * millisecondsToSeconds;\n this._lifeTime = 0;\n const defaultFpsLimit = 120, minFpsLimit = 0;\n this.fpsLimit = this.actualOptions.fpsLimit > minFpsLimit ? this.actualOptions.fpsLimit : defaultFpsLimit;\n this._smooth = this.actualOptions.smooth;\n for (const [, drawer] of this.effectDrawers) {\n await drawer.init?.(this);\n }\n for (const [, drawer] of this.shapeDrawers) {\n await drawer.init?.(this);\n }\n for (const [, plugin] of this.plugins) {\n await plugin.init?.();\n }\n this._engine.dispatchEvent(\"containerInit\", { container: this });\n await this.particles.init();\n this.particles.setDensity();\n for (const [, plugin] of this.plugins) {\n plugin.particlesSetup?.();\n }\n this._engine.dispatchEvent(\"particlesSetup\", { container: this });\n }\n async loadTheme(name) {\n if (!guardCheck(this)) {\n return;\n }\n this._currentTheme = name;\n await this.refresh();\n }\n pause() {\n if (!guardCheck(this)) {\n return;\n }\n if (this._drawAnimationFrame !== undefined) {\n cancelAnimationFrame(this._drawAnimationFrame);\n delete this._drawAnimationFrame;\n }\n if (this._paused) {\n return;\n }\n for (const [, plugin] of this.plugins) {\n plugin.pause?.();\n }\n if (!this.pageHidden) {\n this._paused = true;\n }\n this._engine.dispatchEvent(\"containerPaused\", { container: this });\n }\n play(force) {\n if (!guardCheck(this)) {\n return;\n }\n const needsUpdate = this._paused || force;\n if (this._firstStart && !this.actualOptions.autoPlay) {\n this._firstStart = false;\n return;\n }\n if (this._paused) {\n this._paused = false;\n }\n if (needsUpdate) {\n for (const [, plugin] of this.plugins) {\n if (plugin.play) {\n plugin.play();\n }\n }\n }\n this._engine.dispatchEvent(\"containerPlay\", { container: this });\n this.draw(needsUpdate ?? false);\n }\n async refresh() {\n if (!guardCheck(this)) {\n return;\n }\n this.stop();\n return this.start();\n }\n async reset() {\n if (!guardCheck(this)) {\n return;\n }\n this._initialSourceOptions = undefined;\n this._options = loadContainerOptions(this._engine, this);\n this.actualOptions = loadContainerOptions(this._engine, this, this._options);\n return this.refresh();\n }\n async start() {\n if (!guardCheck(this) || this.started) {\n return;\n }\n await this.init();\n this.started = true;\n await new Promise((resolve) => {\n const start = async () => {\n this._eventListeners.addListeners();\n if (this.interactivity.element instanceof HTMLElement && this._intersectionObserver) {\n this._intersectionObserver.observe(this.interactivity.element);\n }\n for (const [, plugin] of this.plugins) {\n await plugin.start?.();\n }\n this._engine.dispatchEvent(\"containerStarted\", { container: this });\n this.play();\n resolve();\n };\n this._delayTimeout = setTimeout(() => void start(), this._delay);\n });\n }\n stop() {\n if (!guardCheck(this) || !this.started) {\n return;\n }\n if (this._delayTimeout) {\n clearTimeout(this._delayTimeout);\n delete this._delayTimeout;\n }\n this._firstStart = true;\n this.started = false;\n this._eventListeners.removeListeners();\n this.pause();\n this.particles.clear();\n this.canvas.stop();\n if (this.interactivity.element instanceof HTMLElement && this._intersectionObserver) {\n this._intersectionObserver.unobserve(this.interactivity.element);\n }\n for (const [, plugin] of this.plugins) {\n plugin.stop?.();\n }\n for (const key of this.plugins.keys()) {\n this.plugins.delete(key);\n }\n this._sourceOptions = this._options;\n this._engine.dispatchEvent(\"containerStopped\", { container: this });\n }\n updateActualOptions() {\n this.actualOptions.responsive = [];\n const newMaxWidth = this.actualOptions.setResponsive(this.canvas.size.width, this.retina.pixelRatio, this._options);\n this.actualOptions.setTheme(this._currentTheme);\n if (this._responsiveMaxWidth === newMaxWidth) {\n return false;\n }\n this._responsiveMaxWidth = newMaxWidth;\n return true;\n }\n}\n"],"names":["setTransformValue","factor","newFactor","key","newValue","_factor$key","undefined","setStyle","canvas","style","important","arguments","length","elementStyle","value","setProperty","Canvas","constructor","container","this","_applyPostDrawUpdaters","particle","updater","_postDrawUpdaters","_updater$afterDraw","afterDraw","call","_applyPreDrawUpdaters","ctx","radius","zOpacity","colorStyles","transform","_preDrawUpdaters","_updater$beforeDraw","getColorStyles","fill","stroke","getTransformValues","updaterTransform","beforeDraw","_applyResizePlugins","plugin","_resizePlugins","_plugin$resize","resize","_getPluginParticleColors","fColor","sColor","_colorPlugins","particleFillColor","rangeColorToHsl","particleStrokeColor","_initCover","async","cover","actualOptions","backgroundMask","color","coverRgb","rangeColorToRgb","coverColor","a","opacity","_coverColorStyle","getStyleFromRgb","Promise","resolve","reject","image","img","document","createElement","addEventListener","_coverImage","evt","error","src","_initStyle","element","options","_fullScreen","_originalStyle","deepExtend","_setFullScreenStyle","_resetOriginalStyle","_initTrail","trail","particles","move","trailFill","enable","fillColor","_trailFill","_paintBase","baseColor","draw","paintBase","size","_paintImage","paintImage","_repairStyle","_safeMutationObserver","observer","disconnect","initBackground","observe","attributes","originalStyle","callback","_mutationObserver","position","zIndex","fullScreen","toString","top","left","width","height","_context","_generated","clear","paint","destroy","stop","remove","cb","drawAsync","drawParticle","delta","_particle$getStrokeCo","spawning","destroyed","getRadius","pfColor","getFillColor","psColor","getStrokeColor","_ref","_particle$bubble$opac","_particle$opacity","_particle$strokeOpaci","zIndexOptions","zIndexFactor","zOpacityFactor","opacityRate","bubble","zStrokeOpacity","strokeOpacity","getStyleFromHsl","context","composite","sizeRate","shadow","drawParticlePlugin","drawPlugin","init","obs","safeMutationObserver","records","record","type","attributeName","e","getLogger","initUpdaters","initPlugins","background","backgroundColor","backgroundImage","backgroundPosition","backgroundRepeat","repeat","backgroundSize","plugins","_plugin$particleFillC","push","updaters","_ref2","_updater$getColorStyl","loadCanvas","dataset","generatedAttribute","ariaHidden","offsetHeight","offsetWidth","getContext","retina","pxRatio","pixelRatio","newSize","oldSize","started","setResizeFactor","windowResize","needsRefresh","updateActualOptions","setDensity","refresh","manageListener","event","handler","add","addOptions","passive","isBoolean","capture","removeOptions","removeEventListener","EventListeners","_doMouseTouchClick","_canPush","mouseInteractivity","interactivity","mouse","mousePos","clickPosition","clickTime","Date","getTime","onClick","events","executeOnSingleOrMultiple","mode","handleClickMode","setTimeout","_mouseTouchFinish","_handleThemeChange","mediaEvent","defaultThemes","themeName","matches","dark","light","theme","themes","find","name","default","auto","loadTheme","_handleVisibilityChange","pauseOnBlur","hidden","pageHidden","pause","animationStatus","play","_handleWindowResize","_resizeTimeout","clearTimeout","handleResize","delay","millisecondsToSeconds","_manageInteractivityListeners","mouseLeaveTmpEvent","handlers","_handlers","interactivityEl","html","canvasEl","pointerEvents","onHover","mouseMoveEvent","mouseMove","touchStartEvent","touchStart","touchMoveEvent","touchMove","touchEndEvent","touchEndClick","mouseUpEvent","mouseUp","mouseDownEvent","mouseDown","touchEnd","mouseLeave","touchCancelEvent","touchCancel","_manageListeners","detectType","detectsOn","mouseLeaveEvent","window","mouseOutEvent","_canvasEl$parentEleme","parentElement","parentNode","_manageMediaMatch","_manageResize","visibilityChangeEvent","visibilityChange","mediaMatch","safeMatchMedia","addListener","oldThemeChange","removeListener","themeChange","ResizeObserver","resizeEvent","_resizeObserver","unobserve","entries","target","_mouseDown","clicking","downPosition","_mouseTouchClick","inside","handled","mousePosition","clickPositionValid","status","_mouseTouchMove","pos","startsWith","mouseEvent","clientRect","getBoundingClientRect","x","clientX","y","clientY","source","currentTarget","sourceRect","targetRect","canvasRect","offsetX","offsetY","_mouseEvent$offsetX","_mouseEvent$offsetY","_mouseEvent$offsetX2","_mouseEvent$offsetY2","_canvasRect$left","_canvasRect$top","touchEvent","lengthOffset","lastTouch","touches","defaultCoordinate","_touchEnd","Array","from","changedTouches","touch","_touches","delete","identifier","_touchEndClick","_touchStart","set","performance","now","Map","addListeners","removeListeners","InteractionManager","engine","_engine","_interactors","_externalInteractors","_particleInteractors","externalInteract","interactor","isEnabled","interact","_interactor$handleCli","getInteractors","particlesInteract","reset","half","fixOutMode","data","isInArray","outMode","checkModes","diameter","coord","maxCoord","setCb","Particle","_this","_calcPosition","_outModes$left","_outModes$right","_outModes$top","_outModes$bottom","tryCount","pluginPos","particlePosition","Vector3d","create","canvasSize","exactPosition","calcExactPositionOrRandomFromSize","outModes","fixHorizontal","fixVertical","right","bottom","_checkOverlap","increment","_calculateVelocity","res","getParticleBaseVelocity","direction","copy","moveOptions","rad","degToRad","getRangeValue","angle","radOffset","offset","range","straight","randomInRange","setRangeValue","random","speed","getRandom","collisionsOptions","collisions","overlapOptions","overlap","retries","Error","concat","errorPrefix","getDistance","_getRollColor","_this$roll$angle","roll","backColor","alter","backFactor","horizontal","vertical","double","backSum","Math","PI","floor","alterHsl","_initPosition","_this$options$move$ce","_this$options$move$ce2","zIndexValue","clamp","zLayers","initialPosition","moveCenter","getPosition","center","getParticleDirectionAngle","outType","Vector","origin","override","_shapeDrawer$particle","unbreakable","inRange","slow","pathGenerator","shapeDrawer","shapeDrawers","get","shape","particleDestroy","_plugin$particleDestr","particleDestroyed","_updater$particleDest","dispatchEvent","_this$bubble$color","getHslFromAnimation","getMass","z","_this$bubble$radius","_this$bubble$color2","strokeColor","id","overrideOptions","group","_effectData$fill","_effectData$close","_shapeData$fill","_shapeData$close","_effectDrawer","_shapeDrawer","_shapeDrawer2","_effectDrawer2","_effectDrawer2$partic","_shapeDrawer3","_shapeDrawer3$particl","effectClose","effectFill","shapeClose","shapeFill","pathRotation","lastPathTime","rotation","misplaced","maxDistance","ignoresResizeRatio","mainOptions","particlesOptions","loadParticlesOptions","effectType","effect","shapeType","reduceDuplicates","itemFromSingleOrMultiple","effectOptions","shapeOptions","_overrideOptions$effe","_overrideOptions$shap","overrideEffectType","load","overrideShapeType","effectData","close","loadEffectData","shapeData","loadShapeData","Interactivity","pathOptions","path","pathDelay","generator","getPathGenerator","addPath","initParticle","initParticleNumericAnimationValue","initialVelocity","velocity","moveDecay","decay","setLastZIndex","sides","effectDrawer","effectDrawers","getEffectDrawer","loadEffect","getShapeDrawer","loadShape","sideCountFunc","getSidesCount","shadowColor","mover","movers","_mover$init","particleInit","_plugin$particleCreat","particleCreated","isInsideCanvas","isVisible","_updater$reset","Point","QuadTree","rectangle","capacity","_subdivide","i","fixedIndex","_subs","Rectangle","round","_divided","_points","insert","point","contains","some","sub","query","check","intersects","p","queryCircle","Circle","queryRectangle","qTreeRectangle","Particles","_addToPool","_len","_key","_pool","_applyDensity","manualCount","_options$number$densi","numberOptions","number","density","_limit","limit","_groupLimits","densityFactor","_initDensityFactor","optParticlesNumber","optParticlesLimit","particlesNumber","min","particlesCount","count","filter","t","abs","removeQuantity","densityOptions","_container","_pushParticle","initializer","pop","_nextId","canAdd","_array","_zArray","warning","_removeParticle","index","zIdx","indexOf","splice","_needsSort","_lastZIndex","_interactionManager","_pluginsInitialized","quadTree","addManualParticles","manualParticles","addParticle","_this$_groupLimits$ge","limitOptions","currentCount","countToRemove","update","condition","particlesInitialization","groups","groupOptions","j","_groupOptions$number","getMovers","getUpdaters","pathGenerators","nb","redraw","removeAt","quantity","deleted","_resizeFactor","particlesToDelete","Set","_plugin$update","resizeFactor","_plugin$particleUpdat","particleUpdate","checkDelete","has","zArray","sort","b","Retina","reduceFactor","detectRetina","isSsr","devicePixelRatio","ratio","maxSpeed","gravity","sizeAnimationSpeed","animation","moveDistance","distance","props","moveDrift","drift","moveSpeed","guardCheck","loadContainerOptions","Options","sourceOptionsArr","loadOptions","Container","sourceOptions","_intersectionManager","pauseOnOutsideViewport","entry","isIntersecting","_nextFrame","timestamp","_this$_lastFrameTime","_smooth","_lastFrameTime","fpsLimit","initDelta","addLifeTime","alive","Symbol","_delay","_duration","_lifeTime","_firstStart","_paused","_sourceOptions","_initialSourceOptions","_options","_eventListeners","_intersectionObserver","safeIntersectionObserver","addClickHandler","el","clickOrTouchHandler","posRetina","touched","touchMoved","touchStartHandler","touchMoveHandler","minCoordinate","max","radiusX","radiusY","touchCancelHandler","_effectDrawer$destroy","_shapeDrawer$destroy","keys","clearPlugins","mainArr","dom","idx","findIndex","deleteCount","force","refreshTime","frame","_drawAnimationFrame","requestAnimationFrame","export","supported","blob","_plugin$handleClickMo","effects","getSupportedEffects","drawer","shapes","getSupportedShapes","availablePlugins","getAvailablePlugins","duration","smooth","_drawer$init","_drawer$init2","_plugin$init","_plugin$particlesSetu","particlesSetup","_currentTheme","cancelAnimationFrame","_plugin$pause","needsUpdate","autoPlay","start","HTMLElement","_plugin$start","_delayTimeout","_plugin$stop","responsive","newMaxWidth","setResponsive","setTheme","_responsiveMaxWidth"],"sourceRoot":""} \ No newline at end of file diff --git a/build/static/js/1928.0a927d9e.chunk.js b/build/static/js/1928.0a927d9e.chunk.js new file mode 100644 index 0000000..cbd5704 --- /dev/null +++ b/build/static/js/1928.0a927d9e.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkresview=self.webpackChunkresview||[]).push([[1928],{1928:(e,a,t)=>{async function i(e){let a=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];await e.addParticleUpdater("opacity",(async e=>{const{OpacityUpdater:a}=await t.e(9644).then(t.bind(t,9644));return new a(e)}),a)}t.d(a,{loadOpacityUpdater:()=>i})}}]); +//# sourceMappingURL=1928.0a927d9e.chunk.js.map \ No newline at end of file diff --git a/build/static/js/1928.ac71fd2d.chunk.js.map b/build/static/js/1928.0a927d9e.chunk.js.map similarity index 83% rename from build/static/js/1928.ac71fd2d.chunk.js.map rename to build/static/js/1928.0a927d9e.chunk.js.map index cf9653b..b805bd3 100644 --- a/build/static/js/1928.ac71fd2d.chunk.js.map +++ b/build/static/js/1928.0a927d9e.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/1928.ac71fd2d.chunk.js","mappings":"gGAAOA,eAAeC,EAAmBC,GAAwB,IAAhBC,IAAOC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,KAAAA,UAAA,SAC9CF,EAAOK,mBAAmB,WAAWP,UACvC,MAAM,eAAEQ,SAAyB,+BACjC,OAAO,IAAIA,EAAeC,EAAU,GACrCN,EACP,C","sources":["../node_modules/@tsparticles/updater-opacity/browser/index.js"],"sourcesContent":["export async function loadOpacityUpdater(engine, refresh = true) {\n await engine.addParticleUpdater(\"opacity\", async (container) => {\n const { OpacityUpdater } = await import(\"./OpacityUpdater.js\");\n return new OpacityUpdater(container);\n }, refresh);\n}\n"],"names":["async","loadOpacityUpdater","engine","refresh","arguments","length","undefined","addParticleUpdater","OpacityUpdater","container"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/1928.0a927d9e.chunk.js","mappings":"kGAAOA,eAAeC,EAAmBC,GAAwB,IAAhBC,IAAOC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,KAAAA,UAAA,SAC9CF,EAAOK,mBAAmB,WAAWP,UACvC,MAAM,eAAEQ,SAAyB,+BACjC,OAAO,IAAIA,EAAeC,EAAU,GACrCN,EACP,C","sources":["../node_modules/@tsparticles/updater-opacity/browser/index.js"],"sourcesContent":["export async function loadOpacityUpdater(engine, refresh = true) {\n await engine.addParticleUpdater(\"opacity\", async (container) => {\n const { OpacityUpdater } = await import(\"./OpacityUpdater.js\");\n return new OpacityUpdater(container);\n }, refresh);\n}\n"],"names":["async","loadOpacityUpdater","engine","refresh","arguments","length","undefined","addParticleUpdater","OpacityUpdater","container"],"sourceRoot":""} \ No newline at end of file diff --git a/build/static/js/1928.ac71fd2d.chunk.js b/build/static/js/1928.ac71fd2d.chunk.js deleted file mode 100644 index 8229820..0000000 --- a/build/static/js/1928.ac71fd2d.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkclient=self.webpackChunkclient||[]).push([[1928],{1928:(t,a,e)=>{async function n(t){let a=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];await t.addParticleUpdater("opacity",(async t=>{const{OpacityUpdater:a}=await e.e(9644).then(e.bind(e,9644));return new a(t)}),a)}e.d(a,{loadOpacityUpdater:()=>n})}}]); -//# sourceMappingURL=1928.ac71fd2d.chunk.js.map \ No newline at end of file diff --git a/build/static/js/2093.5c3381b1.chunk.js b/build/static/js/2093.5c3381b1.chunk.js new file mode 100644 index 0000000..807d0d8 --- /dev/null +++ b/build/static/js/2093.5c3381b1.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkresview=self.webpackChunkresview||[]).push([[2093],{2093:(e,a,i)=>{async function c(e){let a=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];const{CircleDrawer:c}=await i.e(4927).then(i.bind(i,4927));await e.addShape("circle",new c,a)}i.d(a,{loadCircleShape:()=>c})}}]); +//# sourceMappingURL=2093.5c3381b1.chunk.js.map \ No newline at end of file diff --git a/build/static/js/2093.a9a49926.chunk.js.map b/build/static/js/2093.5c3381b1.chunk.js.map similarity index 80% rename from build/static/js/2093.a9a49926.chunk.js.map rename to build/static/js/2093.5c3381b1.chunk.js.map index bc63008..9ff32ad 100644 --- a/build/static/js/2093.a9a49926.chunk.js.map +++ b/build/static/js/2093.5c3381b1.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/2093.a9a49926.chunk.js","mappings":"gGAAOA,eAAeC,EAAgBC,GAAwB,IAAhBC,IAAOC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,KAAAA,UAAA,GACjD,MAAM,aAAEG,SAAuB,qCACzBL,EAAOM,SAAS,SAAU,IAAID,EAAgBJ,EACxD,C","sources":["../node_modules/@tsparticles/shape-circle/browser/index.js"],"sourcesContent":["export async function loadCircleShape(engine, refresh = true) {\n const { CircleDrawer } = await import(\"./CircleDrawer.js\");\n await engine.addShape(\"circle\", new CircleDrawer(), refresh);\n}\n"],"names":["async","loadCircleShape","engine","refresh","arguments","length","undefined","CircleDrawer","addShape"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/2093.5c3381b1.chunk.js","mappings":"kGAAOA,eAAeC,EAAgBC,GAAwB,IAAhBC,IAAOC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,KAAAA,UAAA,GACjD,MAAM,aAAEG,SAAuB,qCACzBL,EAAOM,SAAS,SAAU,IAAID,EAAgBJ,EACxD,C","sources":["../node_modules/@tsparticles/shape-circle/browser/index.js"],"sourcesContent":["export async function loadCircleShape(engine, refresh = true) {\n const { CircleDrawer } = await import(\"./CircleDrawer.js\");\n await engine.addShape(\"circle\", new CircleDrawer(), refresh);\n}\n"],"names":["async","loadCircleShape","engine","refresh","arguments","length","undefined","CircleDrawer","addShape"],"sourceRoot":""} \ No newline at end of file diff --git a/build/static/js/2093.a9a49926.chunk.js b/build/static/js/2093.a9a49926.chunk.js deleted file mode 100644 index 9876929..0000000 --- a/build/static/js/2093.a9a49926.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkclient=self.webpackChunkclient||[]).push([[2093],{2093:(e,a,c)=>{async function n(e){let a=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];const{CircleDrawer:n}=await c.e(4927).then(c.bind(c,4927));await e.addShape("circle",new n,a)}c.d(a,{loadCircleShape:()=>n})}}]); -//# sourceMappingURL=2093.a9a49926.chunk.js.map \ No newline at end of file diff --git a/build/static/js/2279.a76681f1.chunk.js b/build/static/js/2279.a76681f1.chunk.js deleted file mode 100644 index 32ce636..0000000 --- a/build/static/js/2279.a76681f1.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkclient=self.webpackChunkclient||[]).push([[2279],{2279:(e,i,t)=>{t.d(i,{Bubbler:()=>s});var o=t(4409),b=t(8342);function l(e,i,t,b){if(i>=t){const l=e+(i-t)*b;return(0,o.qE)(l,e,i)}if(i{const e=this.container,i=e.actualOptions,t=e.interactivity.mouse.clickPosition,b=i.interactivity.modes.bubble;if(!b||!t)return;e.bubble||(e.bubble={});const l=e.retina.bubbleModeDistance;if(!l||l<0)return;const n=e.particles.quadTree.queryCircle(t,l,(e=>this.isEnabled(e))),{bubble:s}=e;for(const c of n){var u,a,r;if(!s.clicking)continue;c.bubble.inRange=!s.durationEnd;const i=c.getPosition(),n=(0,o.Yf)(i,t),d=((new Date).getTime()-(null!==(u=e.interactivity.mouse.clickTime)&&void 0!==u?u:0))/o.Xu;d>b.duration&&(s.durationEnd=!0),d>2*b.duration&&(s.clicking=!1,s.durationEnd=!1);const v={bubbleObj:{optValue:e.retina.bubbleModeSize,value:c.bubble.radius},particlesObj:{optValue:(0,o.W9)(c.options.size.value)*e.retina.pixelRatio,value:c.size.value},type:"size"};this._process(c,n,d,v);const p={bubbleObj:{optValue:b.opacity,value:c.bubble.opacity},particlesObj:{optValue:(0,o.W9)(c.options.opacity.value),value:null!==(a=null===(r=c.opacity)||void 0===r?void 0:r.value)&&void 0!==a?a:1},type:"opacity"};this._process(c,n,d,p),!s.durationEnd&&n<=l?this._hoverBubbleColor(c,n):delete c.bubble.color}},this._hoverBubble=()=>{const e=this.container,i=e.interactivity.mouse.position,t=e.retina.bubbleModeDistance;if(!t||t<0||!i)return;const b=e.particles.quadTree.queryCircle(i,t,(e=>this.isEnabled(e)));for(const l of b){l.bubble.inRange=!0;const b=l.getPosition(),n=(0,o.Yf)(b,i),s=1-n/t;n<=t?s>=0&&e.interactivity.status===o.Rb&&(this._hoverBubbleSize(l,s),this._hoverBubbleOpacity(l,s),this._hoverBubbleColor(l,s)):this.reset(l),e.interactivity.status===o.Z0&&this.reset(l)}},this._hoverBubbleColor=(e,i,t)=>{const b=this.container.actualOptions,l=null!==t&&void 0!==t?t:b.interactivity.modes.bubble;if(l){if(!e.bubble.finalColor){const i=l.color;if(!i)return;const t=(0,o.TA)(i);e.bubble.finalColor=(0,o.R5)(t)}if(e.bubble.finalColor)if(l.mix){e.bubble.color=void 0;const t=e.getFillColor();e.bubble.color=t?(0,o.K6)((0,o.EY)(t,e.bubble.finalColor,1-i,i)):e.bubble.finalColor}else e.bubble.color=e.bubble.finalColor}},this._hoverBubbleOpacity=(e,i,t)=>{var b,n,s,u;const a=this.container.actualOptions,r=null!==(b=null===t||void 0===t?void 0:t.opacity)&&void 0!==b?b:null===(n=a.interactivity.modes.bubble)||void 0===n?void 0:n.opacity;if(!r)return;const c=e.options.opacity.value,d=l(null!==(s=null===(u=e.opacity)||void 0===u?void 0:u.value)&&void 0!==s?s:1,r,(0,o.W9)(c),i);void 0!==d&&(e.bubble.opacity=d)},this._hoverBubbleSize=(e,i,t)=>{const b=this.container,n=null!==t&&void 0!==t&&t.size?t.size*b.retina.pixelRatio:b.retina.bubbleModeSize;if(void 0===n)return;const s=(0,o.W9)(e.options.size.value)*b.retina.pixelRatio,u=l(e.size.value,n,s,i);void 0!==u&&(e.bubble.radius=u)},this._process=(e,i,t,o)=>{var b;const l=this.container,n=o.bubbleObj.optValue,s=l.actualOptions.interactivity.modes.bubble;if(!s||void 0===n)return;const u=s.duration,a=l.retina.bubbleModeDistance,r=o.particlesObj.optValue,c=o.bubbleObj.value,d=null!==(b=o.particlesObj.value)&&void 0!==b?b:0,v=o.type;if(a&&!(a<0)&&n!==r)if(l.bubble||(l.bubble={}),l.bubble.durationEnd)c&&("size"===v&&delete e.bubble.radius,"opacity"===v&&delete e.bubble.opacity);else if(i<=a){if((null!==c&&void 0!==c?c:d)!==n){const i=d-t*(d-n)/u;"size"===v&&(e.bubble.radius=i),"opacity"===v&&(e.bubble.opacity=i)}}else"size"===v&&delete e.bubble.radius,"opacity"===v&&delete e.bubble.opacity},this._singleSelectorHover=(e,i,t)=>{const b=this.container,l=document.querySelectorAll(i),n=b.actualOptions.interactivity.modes.bubble;n&&l.length&&l.forEach((i=>{const l=i,s=b.retina.pixelRatio,u={x:(l.offsetLeft+.5*l.offsetWidth)*s,y:(l.offsetTop+.5*l.offsetHeight)*s},a=.5*l.offsetWidth*s,r="circle"===t.type?new o.jl(u.x,u.y,a):new o.M_(l.offsetLeft*s,l.offsetTop*s,l.offsetWidth*s,l.offsetHeight*s),c=b.particles.quadTree.query(r,(e=>this.isEnabled(e)));for(const t of c){if(!r.contains(t.getPosition()))continue;t.bubble.inRange=!0;const i=n.divs,b=(0,o.NV)(i,l);t.bubble.div&&t.bubble.div===l||(this.clear(t,e,!0),t.bubble.div=l),this._hoverBubbleSize(t,1,b),this._hoverBubbleOpacity(t,1,b),this._hoverBubbleColor(t,1,b)}}))},e.bubble||(e.bubble={}),this.handleClickMode=i=>{i===n&&(e.bubble||(e.bubble={}),e.bubble.clicking=!0)}}clear(e,i,t){e.bubble.inRange&&!t||(delete e.bubble.div,delete e.bubble.opacity,delete e.bubble.radius,delete e.bubble.color)}init(){const e=this.container,i=e.actualOptions.interactivity.modes.bubble;i&&(e.retina.bubbleModeDistance=i.distance*e.retina.pixelRatio,void 0!==i.size&&(e.retina.bubbleModeSize=i.size*e.retina.pixelRatio))}interact(e){const i=this.container.actualOptions.interactivity.events,t=i.onHover,b=i.onClick,l=t.enable,s=t.mode,u=b.enable,a=b.mode,r=i.onDiv;l&&(0,o.hn)(n,s)?this._hoverBubble():u&&(0,o.hn)(n,a)?this._clickBubble():(0,o.U6)(n,r,((i,t)=>this._singleSelectorHover(e,i,t)))}isEnabled(e){var i;const t=this.container,b=t.actualOptions,l=t.interactivity.mouse,s=(null!==(i=null===e||void 0===e?void 0:e.interactivity)&&void 0!==i?i:b.interactivity).events,{onClick:u,onDiv:a,onHover:r}=s,c=(0,o.iK)(n,a);return!!(c||r.enable&&l.position||u.enable&&l.clickPosition)&&((0,o.hn)(n,r.mode)||(0,o.hn)(n,u.mode)||c)}loadModeOptions(e){e.bubble||(e.bubble=new b.Z);for(var i=arguments.length,t=new Array(i>1?i-1:0),o=1;o{t.d(i,{Bubbler:()=>s});var o=t(4409),b=t(8342);function l(e,i,t,b){if(i>=t){const l=e+(i-t)*b;return(0,o.qE)(l,e,i)}if(i{const e=this.container,i=e.actualOptions,t=e.interactivity.mouse.clickPosition,b=i.interactivity.modes.bubble;if(!b||!t)return;e.bubble||(e.bubble={});const l=e.retina.bubbleModeDistance;if(!l||l<0)return;const n=e.particles.quadTree.queryCircle(t,l,(e=>this.isEnabled(e))),{bubble:s}=e;for(const c of n){var u,a,r;if(!s.clicking)continue;c.bubble.inRange=!s.durationEnd;const i=c.getPosition(),n=(0,o.Yf)(i,t),d=((new Date).getTime()-(null!==(u=e.interactivity.mouse.clickTime)&&void 0!==u?u:0))/o.Xu;d>b.duration&&(s.durationEnd=!0),d>2*b.duration&&(s.clicking=!1,s.durationEnd=!1);const v={bubbleObj:{optValue:e.retina.bubbleModeSize,value:c.bubble.radius},particlesObj:{optValue:(0,o.W9)(c.options.size.value)*e.retina.pixelRatio,value:c.size.value},type:"size"};this._process(c,n,d,v);const p={bubbleObj:{optValue:b.opacity,value:c.bubble.opacity},particlesObj:{optValue:(0,o.W9)(c.options.opacity.value),value:null!==(a=null===(r=c.opacity)||void 0===r?void 0:r.value)&&void 0!==a?a:1},type:"opacity"};this._process(c,n,d,p),!s.durationEnd&&n<=l?this._hoverBubbleColor(c,n):delete c.bubble.color}},this._hoverBubble=()=>{const e=this.container,i=e.interactivity.mouse.position,t=e.retina.bubbleModeDistance;if(!t||t<0||!i)return;const b=e.particles.quadTree.queryCircle(i,t,(e=>this.isEnabled(e)));for(const l of b){l.bubble.inRange=!0;const b=l.getPosition(),n=(0,o.Yf)(b,i),s=1-n/t;n<=t?s>=0&&e.interactivity.status===o.Rb&&(this._hoverBubbleSize(l,s),this._hoverBubbleOpacity(l,s),this._hoverBubbleColor(l,s)):this.reset(l),e.interactivity.status===o.Z0&&this.reset(l)}},this._hoverBubbleColor=(e,i,t)=>{const b=this.container.actualOptions,l=null!==t&&void 0!==t?t:b.interactivity.modes.bubble;if(l){if(!e.bubble.finalColor){const i=l.color;if(!i)return;const t=(0,o.TA)(i);e.bubble.finalColor=(0,o.R5)(t)}if(e.bubble.finalColor)if(l.mix){e.bubble.color=void 0;const t=e.getFillColor();e.bubble.color=t?(0,o.K6)((0,o.EY)(t,e.bubble.finalColor,1-i,i)):e.bubble.finalColor}else e.bubble.color=e.bubble.finalColor}},this._hoverBubbleOpacity=(e,i,t)=>{var b,n,s,u;const a=this.container.actualOptions,r=null!==(b=null===t||void 0===t?void 0:t.opacity)&&void 0!==b?b:null===(n=a.interactivity.modes.bubble)||void 0===n?void 0:n.opacity;if(!r)return;const c=e.options.opacity.value,d=l(null!==(s=null===(u=e.opacity)||void 0===u?void 0:u.value)&&void 0!==s?s:1,r,(0,o.W9)(c),i);void 0!==d&&(e.bubble.opacity=d)},this._hoverBubbleSize=(e,i,t)=>{const b=this.container,n=null!==t&&void 0!==t&&t.size?t.size*b.retina.pixelRatio:b.retina.bubbleModeSize;if(void 0===n)return;const s=(0,o.W9)(e.options.size.value)*b.retina.pixelRatio,u=l(e.size.value,n,s,i);void 0!==u&&(e.bubble.radius=u)},this._process=(e,i,t,o)=>{var b;const l=this.container,n=o.bubbleObj.optValue,s=l.actualOptions.interactivity.modes.bubble;if(!s||void 0===n)return;const u=s.duration,a=l.retina.bubbleModeDistance,r=o.particlesObj.optValue,c=o.bubbleObj.value,d=null!==(b=o.particlesObj.value)&&void 0!==b?b:0,v=o.type;if(a&&!(a<0)&&n!==r)if(l.bubble||(l.bubble={}),l.bubble.durationEnd)c&&("size"===v&&delete e.bubble.radius,"opacity"===v&&delete e.bubble.opacity);else if(i<=a){if((null!==c&&void 0!==c?c:d)!==n){const i=d-t*(d-n)/u;"size"===v&&(e.bubble.radius=i),"opacity"===v&&(e.bubble.opacity=i)}}else"size"===v&&delete e.bubble.radius,"opacity"===v&&delete e.bubble.opacity},this._singleSelectorHover=(e,i,t)=>{const b=this.container,l=document.querySelectorAll(i),n=b.actualOptions.interactivity.modes.bubble;n&&l.length&&l.forEach((i=>{const l=i,s=b.retina.pixelRatio,u={x:(l.offsetLeft+.5*l.offsetWidth)*s,y:(l.offsetTop+.5*l.offsetHeight)*s},a=.5*l.offsetWidth*s,r="circle"===t.type?new o.jl(u.x,u.y,a):new o.M_(l.offsetLeft*s,l.offsetTop*s,l.offsetWidth*s,l.offsetHeight*s),c=b.particles.quadTree.query(r,(e=>this.isEnabled(e)));for(const t of c){if(!r.contains(t.getPosition()))continue;t.bubble.inRange=!0;const i=n.divs,b=(0,o.NV)(i,l);t.bubble.div&&t.bubble.div===l||(this.clear(t,e,!0),t.bubble.div=l),this._hoverBubbleSize(t,1,b),this._hoverBubbleOpacity(t,1,b),this._hoverBubbleColor(t,1,b)}}))},e.bubble||(e.bubble={}),this.handleClickMode=i=>{i===n&&(e.bubble||(e.bubble={}),e.bubble.clicking=!0)}}clear(e,i,t){e.bubble.inRange&&!t||(delete e.bubble.div,delete e.bubble.opacity,delete e.bubble.radius,delete e.bubble.color)}init(){const e=this.container,i=e.actualOptions.interactivity.modes.bubble;i&&(e.retina.bubbleModeDistance=i.distance*e.retina.pixelRatio,void 0!==i.size&&(e.retina.bubbleModeSize=i.size*e.retina.pixelRatio))}interact(e){const i=this.container.actualOptions.interactivity.events,t=i.onHover,b=i.onClick,l=t.enable,s=t.mode,u=b.enable,a=b.mode,r=i.onDiv;l&&(0,o.hn)(n,s)?this._hoverBubble():u&&(0,o.hn)(n,a)?this._clickBubble():(0,o.U6)(n,r,((i,t)=>this._singleSelectorHover(e,i,t)))}isEnabled(e){var i;const t=this.container,b=t.actualOptions,l=t.interactivity.mouse,s=(null!==(i=null===e||void 0===e?void 0:e.interactivity)&&void 0!==i?i:b.interactivity).events,{onClick:u,onDiv:a,onHover:r}=s,c=(0,o.iK)(n,a);return!!(c||r.enable&&l.position||u.enable&&l.clickPosition)&&((0,o.hn)(n,r.mode)||(0,o.hn)(n,u.mode)||c)}loadModeOptions(e){e.bubble||(e.bubble=new b.Z);for(var i=arguments.length,t=new Array(i>1?i-1:0),o=1;o= optionsValue) {\n const value = particleValue + (modeValue - optionsValue) * ratio;\n return clamp(value, particleValue, modeValue);\n }\n else if (modeValue < optionsValue) {\n const value = particleValue - (optionsValue - modeValue) * ratio;\n return clamp(value, modeValue, particleValue);\n }\n}\n","import { Circle, ExternalInteractorBase, Rectangle, colorMix, divMode, divModeExecute, getDistance, getRangeMax, isDivModeEnabled, isInArray, itemFromSingleOrMultiple, millisecondsToSeconds, mouseLeaveEvent, mouseMoveEvent, rangeColorToHsl, rgbToHsl, } from \"@tsparticles/engine\";\nimport { Bubble } from \"./Options/Classes/Bubble.js\";\nimport { calculateBubbleValue } from \"./Utils.js\";\nconst bubbleMode = \"bubble\", minDistance = 0, defaultClickTime = 0, double = 2, defaultOpacity = 1, ratioOffset = 1, defaultBubbleValue = 0, minRatio = 0, half = 0.5, defaultRatio = 1;\nexport class Bubbler extends ExternalInteractorBase {\n constructor(container) {\n super(container);\n this._clickBubble = () => {\n const container = this.container, options = container.actualOptions, mouseClickPos = container.interactivity.mouse.clickPosition, bubbleOptions = options.interactivity.modes.bubble;\n if (!bubbleOptions || !mouseClickPos) {\n return;\n }\n if (!container.bubble) {\n container.bubble = {};\n }\n const distance = container.retina.bubbleModeDistance;\n if (!distance || distance < minDistance) {\n return;\n }\n const query = container.particles.quadTree.queryCircle(mouseClickPos, distance, (p) => this.isEnabled(p)), { bubble } = container;\n for (const particle of query) {\n if (!bubble.clicking) {\n continue;\n }\n particle.bubble.inRange = !bubble.durationEnd;\n const pos = particle.getPosition(), distMouse = getDistance(pos, mouseClickPos), timeSpent = (new Date().getTime() - (container.interactivity.mouse.clickTime ?? defaultClickTime)) /\n millisecondsToSeconds;\n if (timeSpent > bubbleOptions.duration) {\n bubble.durationEnd = true;\n }\n if (timeSpent > bubbleOptions.duration * double) {\n bubble.clicking = false;\n bubble.durationEnd = false;\n }\n const sizeData = {\n bubbleObj: {\n optValue: container.retina.bubbleModeSize,\n value: particle.bubble.radius,\n },\n particlesObj: {\n optValue: getRangeMax(particle.options.size.value) * container.retina.pixelRatio,\n value: particle.size.value,\n },\n type: \"size\",\n };\n this._process(particle, distMouse, timeSpent, sizeData);\n const opacityData = {\n bubbleObj: {\n optValue: bubbleOptions.opacity,\n value: particle.bubble.opacity,\n },\n particlesObj: {\n optValue: getRangeMax(particle.options.opacity.value),\n value: particle.opacity?.value ?? defaultOpacity,\n },\n type: \"opacity\",\n };\n this._process(particle, distMouse, timeSpent, opacityData);\n if (!bubble.durationEnd && distMouse <= distance) {\n this._hoverBubbleColor(particle, distMouse);\n }\n else {\n delete particle.bubble.color;\n }\n }\n };\n this._hoverBubble = () => {\n const container = this.container, mousePos = container.interactivity.mouse.position, distance = container.retina.bubbleModeDistance;\n if (!distance || distance < minDistance || !mousePos) {\n return;\n }\n const query = container.particles.quadTree.queryCircle(mousePos, distance, (p) => this.isEnabled(p));\n for (const particle of query) {\n particle.bubble.inRange = true;\n const pos = particle.getPosition(), pointDistance = getDistance(pos, mousePos), ratio = ratioOffset - pointDistance / distance;\n if (pointDistance <= distance) {\n if (ratio >= minRatio && container.interactivity.status === mouseMoveEvent) {\n this._hoverBubbleSize(particle, ratio);\n this._hoverBubbleOpacity(particle, ratio);\n this._hoverBubbleColor(particle, ratio);\n }\n }\n else {\n this.reset(particle);\n }\n if (container.interactivity.status === mouseLeaveEvent) {\n this.reset(particle);\n }\n }\n };\n this._hoverBubbleColor = (particle, ratio, divBubble) => {\n const options = this.container.actualOptions, bubbleOptions = divBubble ?? options.interactivity.modes.bubble;\n if (!bubbleOptions) {\n return;\n }\n if (!particle.bubble.finalColor) {\n const modeColor = bubbleOptions.color;\n if (!modeColor) {\n return;\n }\n const bubbleColor = itemFromSingleOrMultiple(modeColor);\n particle.bubble.finalColor = rangeColorToHsl(bubbleColor);\n }\n if (!particle.bubble.finalColor) {\n return;\n }\n if (bubbleOptions.mix) {\n particle.bubble.color = undefined;\n const pColor = particle.getFillColor();\n particle.bubble.color = pColor\n ? rgbToHsl(colorMix(pColor, particle.bubble.finalColor, ratioOffset - ratio, ratio))\n : particle.bubble.finalColor;\n }\n else {\n particle.bubble.color = particle.bubble.finalColor;\n }\n };\n this._hoverBubbleOpacity = (particle, ratio, divBubble) => {\n const container = this.container, options = container.actualOptions, modeOpacity = divBubble?.opacity ?? options.interactivity.modes.bubble?.opacity;\n if (!modeOpacity) {\n return;\n }\n const optOpacity = particle.options.opacity.value, pOpacity = particle.opacity?.value ?? defaultOpacity, opacity = calculateBubbleValue(pOpacity, modeOpacity, getRangeMax(optOpacity), ratio);\n if (opacity !== undefined) {\n particle.bubble.opacity = opacity;\n }\n };\n this._hoverBubbleSize = (particle, ratio, divBubble) => {\n const container = this.container, modeSize = divBubble?.size ? divBubble.size * container.retina.pixelRatio : container.retina.bubbleModeSize;\n if (modeSize === undefined) {\n return;\n }\n const optSize = getRangeMax(particle.options.size.value) * container.retina.pixelRatio, pSize = particle.size.value, size = calculateBubbleValue(pSize, modeSize, optSize, ratio);\n if (size !== undefined) {\n particle.bubble.radius = size;\n }\n };\n this._process = (particle, distMouse, timeSpent, data) => {\n const container = this.container, bubbleParam = data.bubbleObj.optValue, options = container.actualOptions, bubbleOptions = options.interactivity.modes.bubble;\n if (!bubbleOptions || bubbleParam === undefined) {\n return;\n }\n const bubbleDuration = bubbleOptions.duration, bubbleDistance = container.retina.bubbleModeDistance, particlesParam = data.particlesObj.optValue, pObjBubble = data.bubbleObj.value, pObj = data.particlesObj.value ?? defaultBubbleValue, type = data.type;\n if (!bubbleDistance || bubbleDistance < minDistance || bubbleParam === particlesParam) {\n return;\n }\n if (!container.bubble) {\n container.bubble = {};\n }\n if (container.bubble.durationEnd) {\n if (pObjBubble) {\n if (type === \"size\") {\n delete particle.bubble.radius;\n }\n if (type === \"opacity\") {\n delete particle.bubble.opacity;\n }\n }\n }\n else {\n if (distMouse <= bubbleDistance) {\n const obj = pObjBubble ?? pObj;\n if (obj !== bubbleParam) {\n const value = pObj - (timeSpent * (pObj - bubbleParam)) / bubbleDuration;\n if (type === \"size\") {\n particle.bubble.radius = value;\n }\n if (type === \"opacity\") {\n particle.bubble.opacity = value;\n }\n }\n }\n else {\n if (type === \"size\") {\n delete particle.bubble.radius;\n }\n if (type === \"opacity\") {\n delete particle.bubble.opacity;\n }\n }\n }\n };\n this._singleSelectorHover = (delta, selector, div) => {\n const container = this.container, selectors = document.querySelectorAll(selector), bubble = container.actualOptions.interactivity.modes.bubble;\n if (!bubble || !selectors.length) {\n return;\n }\n selectors.forEach((item) => {\n const elem = item, pxRatio = container.retina.pixelRatio, pos = {\n x: (elem.offsetLeft + elem.offsetWidth * half) * pxRatio,\n y: (elem.offsetTop + elem.offsetHeight * half) * pxRatio,\n }, repulseRadius = elem.offsetWidth * half * pxRatio, area = div.type === \"circle\"\n ? new Circle(pos.x, pos.y, repulseRadius)\n : new Rectangle(elem.offsetLeft * pxRatio, elem.offsetTop * pxRatio, elem.offsetWidth * pxRatio, elem.offsetHeight * pxRatio), query = container.particles.quadTree.query(area, (p) => this.isEnabled(p));\n for (const particle of query) {\n if (!area.contains(particle.getPosition())) {\n continue;\n }\n particle.bubble.inRange = true;\n const divs = bubble.divs, divBubble = divMode(divs, elem);\n if (!particle.bubble.div || particle.bubble.div !== elem) {\n this.clear(particle, delta, true);\n particle.bubble.div = elem;\n }\n this._hoverBubbleSize(particle, defaultRatio, divBubble);\n this._hoverBubbleOpacity(particle, defaultRatio, divBubble);\n this._hoverBubbleColor(particle, defaultRatio, divBubble);\n }\n });\n };\n if (!container.bubble) {\n container.bubble = {};\n }\n this.handleClickMode = (mode) => {\n if (mode !== bubbleMode) {\n return;\n }\n if (!container.bubble) {\n container.bubble = {};\n }\n container.bubble.clicking = true;\n };\n }\n clear(particle, delta, force) {\n if (particle.bubble.inRange && !force) {\n return;\n }\n delete particle.bubble.div;\n delete particle.bubble.opacity;\n delete particle.bubble.radius;\n delete particle.bubble.color;\n }\n init() {\n const container = this.container, bubble = container.actualOptions.interactivity.modes.bubble;\n if (!bubble) {\n return;\n }\n container.retina.bubbleModeDistance = bubble.distance * container.retina.pixelRatio;\n if (bubble.size !== undefined) {\n container.retina.bubbleModeSize = bubble.size * container.retina.pixelRatio;\n }\n }\n interact(delta) {\n const options = this.container.actualOptions, events = options.interactivity.events, onHover = events.onHover, onClick = events.onClick, hoverEnabled = onHover.enable, hoverMode = onHover.mode, clickEnabled = onClick.enable, clickMode = onClick.mode, divs = events.onDiv;\n if (hoverEnabled && isInArray(bubbleMode, hoverMode)) {\n this._hoverBubble();\n }\n else if (clickEnabled && isInArray(bubbleMode, clickMode)) {\n this._clickBubble();\n }\n else {\n divModeExecute(bubbleMode, divs, (selector, div) => this._singleSelectorHover(delta, selector, div));\n }\n }\n isEnabled(particle) {\n const container = this.container, options = container.actualOptions, mouse = container.interactivity.mouse, events = (particle?.interactivity ?? options.interactivity).events, { onClick, onDiv, onHover } = events, divBubble = isDivModeEnabled(bubbleMode, onDiv);\n if (!(divBubble || (onHover.enable && !!mouse.position) || (onClick.enable && mouse.clickPosition))) {\n return false;\n }\n return isInArray(bubbleMode, onHover.mode) || isInArray(bubbleMode, onClick.mode) || divBubble;\n }\n loadModeOptions(options, ...sources) {\n if (!options.bubble) {\n options.bubble = new Bubble();\n }\n for (const source of sources) {\n options.bubble.load(source?.bubble);\n }\n }\n reset(particle) {\n particle.bubble.inRange = false;\n }\n}\n"],"names":["calculateBubbleValue","particleValue","modeValue","optionsValue","ratio","value","clamp","bubbleMode","Bubbler","ExternalInteractorBase","constructor","container","super","this","_clickBubble","options","actualOptions","mouseClickPos","interactivity","mouse","clickPosition","bubbleOptions","modes","bubble","distance","retina","bubbleModeDistance","query","particles","quadTree","queryCircle","p","isEnabled","particle","_container$interactiv","_particle$opacity$val","_particle$opacity","clicking","inRange","durationEnd","pos","getPosition","distMouse","getDistance","timeSpent","Date","getTime","clickTime","millisecondsToSeconds","duration","sizeData","bubbleObj","optValue","bubbleModeSize","radius","particlesObj","getRangeMax","size","pixelRatio","type","_process","opacityData","opacity","_hoverBubbleColor","color","_hoverBubble","mousePos","position","pointDistance","status","mouseMoveEvent","_hoverBubbleSize","_hoverBubbleOpacity","reset","mouseLeaveEvent","divBubble","finalColor","modeColor","bubbleColor","itemFromSingleOrMultiple","rangeColorToHsl","mix","undefined","pColor","getFillColor","rgbToHsl","colorMix","_divBubble$opacity","_options$interactivit","_particle$opacity$val2","_particle$opacity2","modeOpacity","optOpacity","modeSize","optSize","data","_data$particlesObj$va","bubbleParam","bubbleDuration","bubbleDistance","particlesParam","pObjBubble","pObj","_singleSelectorHover","delta","selector","div","selectors","document","querySelectorAll","length","forEach","item","elem","pxRatio","x","offsetLeft","offsetWidth","y","offsetTop","offsetHeight","repulseRadius","area","Circle","Rectangle","contains","divs","divMode","clear","handleClickMode","mode","force","init","interact","events","onHover","onClick","hoverEnabled","enable","hoverMode","clickEnabled","clickMode","onDiv","isInArray","divModeExecute","_particle$interactivi","isDivModeEnabled","loadModeOptions","Bubble","_len","arguments","sources","Array","_key","source","load"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/2279.b993e63d.chunk.js","mappings":"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","sources":["../node_modules/@tsparticles/interaction-external-bubble/browser/Utils.js","../node_modules/@tsparticles/interaction-external-bubble/browser/Bubbler.js"],"sourcesContent":["import { clamp } from \"@tsparticles/engine\";\nexport function calculateBubbleValue(particleValue, modeValue, optionsValue, ratio) {\n if (modeValue >= optionsValue) {\n const value = particleValue + (modeValue - optionsValue) * ratio;\n return clamp(value, particleValue, modeValue);\n }\n else if (modeValue < optionsValue) {\n const value = particleValue - (optionsValue - modeValue) * ratio;\n return clamp(value, modeValue, particleValue);\n }\n}\n","import { Circle, ExternalInteractorBase, Rectangle, colorMix, divMode, divModeExecute, getDistance, getRangeMax, isDivModeEnabled, isInArray, itemFromSingleOrMultiple, millisecondsToSeconds, mouseLeaveEvent, mouseMoveEvent, rangeColorToHsl, rgbToHsl, } from \"@tsparticles/engine\";\nimport { Bubble } from \"./Options/Classes/Bubble.js\";\nimport { calculateBubbleValue } from \"./Utils.js\";\nconst bubbleMode = \"bubble\", minDistance = 0, defaultClickTime = 0, double = 2, defaultOpacity = 1, ratioOffset = 1, defaultBubbleValue = 0, minRatio = 0, half = 0.5, defaultRatio = 1;\nexport class Bubbler extends ExternalInteractorBase {\n constructor(container) {\n super(container);\n this._clickBubble = () => {\n const container = this.container, options = container.actualOptions, mouseClickPos = container.interactivity.mouse.clickPosition, bubbleOptions = options.interactivity.modes.bubble;\n if (!bubbleOptions || !mouseClickPos) {\n return;\n }\n if (!container.bubble) {\n container.bubble = {};\n }\n const distance = container.retina.bubbleModeDistance;\n if (!distance || distance < minDistance) {\n return;\n }\n const query = container.particles.quadTree.queryCircle(mouseClickPos, distance, (p) => this.isEnabled(p)), { bubble } = container;\n for (const particle of query) {\n if (!bubble.clicking) {\n continue;\n }\n particle.bubble.inRange = !bubble.durationEnd;\n const pos = particle.getPosition(), distMouse = getDistance(pos, mouseClickPos), timeSpent = (new Date().getTime() - (container.interactivity.mouse.clickTime ?? defaultClickTime)) /\n millisecondsToSeconds;\n if (timeSpent > bubbleOptions.duration) {\n bubble.durationEnd = true;\n }\n if (timeSpent > bubbleOptions.duration * double) {\n bubble.clicking = false;\n bubble.durationEnd = false;\n }\n const sizeData = {\n bubbleObj: {\n optValue: container.retina.bubbleModeSize,\n value: particle.bubble.radius,\n },\n particlesObj: {\n optValue: getRangeMax(particle.options.size.value) * container.retina.pixelRatio,\n value: particle.size.value,\n },\n type: \"size\",\n };\n this._process(particle, distMouse, timeSpent, sizeData);\n const opacityData = {\n bubbleObj: {\n optValue: bubbleOptions.opacity,\n value: particle.bubble.opacity,\n },\n particlesObj: {\n optValue: getRangeMax(particle.options.opacity.value),\n value: particle.opacity?.value ?? defaultOpacity,\n },\n type: \"opacity\",\n };\n this._process(particle, distMouse, timeSpent, opacityData);\n if (!bubble.durationEnd && distMouse <= distance) {\n this._hoverBubbleColor(particle, distMouse);\n }\n else {\n delete particle.bubble.color;\n }\n }\n };\n this._hoverBubble = () => {\n const container = this.container, mousePos = container.interactivity.mouse.position, distance = container.retina.bubbleModeDistance;\n if (!distance || distance < minDistance || !mousePos) {\n return;\n }\n const query = container.particles.quadTree.queryCircle(mousePos, distance, (p) => this.isEnabled(p));\n for (const particle of query) {\n particle.bubble.inRange = true;\n const pos = particle.getPosition(), pointDistance = getDistance(pos, mousePos), ratio = ratioOffset - pointDistance / distance;\n if (pointDistance <= distance) {\n if (ratio >= minRatio && container.interactivity.status === mouseMoveEvent) {\n this._hoverBubbleSize(particle, ratio);\n this._hoverBubbleOpacity(particle, ratio);\n this._hoverBubbleColor(particle, ratio);\n }\n }\n else {\n this.reset(particle);\n }\n if (container.interactivity.status === mouseLeaveEvent) {\n this.reset(particle);\n }\n }\n };\n this._hoverBubbleColor = (particle, ratio, divBubble) => {\n const options = this.container.actualOptions, bubbleOptions = divBubble ?? options.interactivity.modes.bubble;\n if (!bubbleOptions) {\n return;\n }\n if (!particle.bubble.finalColor) {\n const modeColor = bubbleOptions.color;\n if (!modeColor) {\n return;\n }\n const bubbleColor = itemFromSingleOrMultiple(modeColor);\n particle.bubble.finalColor = rangeColorToHsl(bubbleColor);\n }\n if (!particle.bubble.finalColor) {\n return;\n }\n if (bubbleOptions.mix) {\n particle.bubble.color = undefined;\n const pColor = particle.getFillColor();\n particle.bubble.color = pColor\n ? rgbToHsl(colorMix(pColor, particle.bubble.finalColor, ratioOffset - ratio, ratio))\n : particle.bubble.finalColor;\n }\n else {\n particle.bubble.color = particle.bubble.finalColor;\n }\n };\n this._hoverBubbleOpacity = (particle, ratio, divBubble) => {\n const container = this.container, options = container.actualOptions, modeOpacity = divBubble?.opacity ?? options.interactivity.modes.bubble?.opacity;\n if (!modeOpacity) {\n return;\n }\n const optOpacity = particle.options.opacity.value, pOpacity = particle.opacity?.value ?? defaultOpacity, opacity = calculateBubbleValue(pOpacity, modeOpacity, getRangeMax(optOpacity), ratio);\n if (opacity !== undefined) {\n particle.bubble.opacity = opacity;\n }\n };\n this._hoverBubbleSize = (particle, ratio, divBubble) => {\n const container = this.container, modeSize = divBubble?.size ? divBubble.size * container.retina.pixelRatio : container.retina.bubbleModeSize;\n if (modeSize === undefined) {\n return;\n }\n const optSize = getRangeMax(particle.options.size.value) * container.retina.pixelRatio, pSize = particle.size.value, size = calculateBubbleValue(pSize, modeSize, optSize, ratio);\n if (size !== undefined) {\n particle.bubble.radius = size;\n }\n };\n this._process = (particle, distMouse, timeSpent, data) => {\n const container = this.container, bubbleParam = data.bubbleObj.optValue, options = container.actualOptions, bubbleOptions = options.interactivity.modes.bubble;\n if (!bubbleOptions || bubbleParam === undefined) {\n return;\n }\n const bubbleDuration = bubbleOptions.duration, bubbleDistance = container.retina.bubbleModeDistance, particlesParam = data.particlesObj.optValue, pObjBubble = data.bubbleObj.value, pObj = data.particlesObj.value ?? defaultBubbleValue, type = data.type;\n if (!bubbleDistance || bubbleDistance < minDistance || bubbleParam === particlesParam) {\n return;\n }\n if (!container.bubble) {\n container.bubble = {};\n }\n if (container.bubble.durationEnd) {\n if (pObjBubble) {\n if (type === \"size\") {\n delete particle.bubble.radius;\n }\n if (type === \"opacity\") {\n delete particle.bubble.opacity;\n }\n }\n }\n else {\n if (distMouse <= bubbleDistance) {\n const obj = pObjBubble ?? pObj;\n if (obj !== bubbleParam) {\n const value = pObj - (timeSpent * (pObj - bubbleParam)) / bubbleDuration;\n if (type === \"size\") {\n particle.bubble.radius = value;\n }\n if (type === \"opacity\") {\n particle.bubble.opacity = value;\n }\n }\n }\n else {\n if (type === \"size\") {\n delete particle.bubble.radius;\n }\n if (type === \"opacity\") {\n delete particle.bubble.opacity;\n }\n }\n }\n };\n this._singleSelectorHover = (delta, selector, div) => {\n const container = this.container, selectors = document.querySelectorAll(selector), bubble = container.actualOptions.interactivity.modes.bubble;\n if (!bubble || !selectors.length) {\n return;\n }\n selectors.forEach((item) => {\n const elem = item, pxRatio = container.retina.pixelRatio, pos = {\n x: (elem.offsetLeft + elem.offsetWidth * half) * pxRatio,\n y: (elem.offsetTop + elem.offsetHeight * half) * pxRatio,\n }, repulseRadius = elem.offsetWidth * half * pxRatio, area = div.type === \"circle\"\n ? new Circle(pos.x, pos.y, repulseRadius)\n : new Rectangle(elem.offsetLeft * pxRatio, elem.offsetTop * pxRatio, elem.offsetWidth * pxRatio, elem.offsetHeight * pxRatio), query = container.particles.quadTree.query(area, (p) => this.isEnabled(p));\n for (const particle of query) {\n if (!area.contains(particle.getPosition())) {\n continue;\n }\n particle.bubble.inRange = true;\n const divs = bubble.divs, divBubble = divMode(divs, elem);\n if (!particle.bubble.div || particle.bubble.div !== elem) {\n this.clear(particle, delta, true);\n particle.bubble.div = elem;\n }\n this._hoverBubbleSize(particle, defaultRatio, divBubble);\n this._hoverBubbleOpacity(particle, defaultRatio, divBubble);\n this._hoverBubbleColor(particle, defaultRatio, divBubble);\n }\n });\n };\n if (!container.bubble) {\n container.bubble = {};\n }\n this.handleClickMode = (mode) => {\n if (mode !== bubbleMode) {\n return;\n }\n if (!container.bubble) {\n container.bubble = {};\n }\n container.bubble.clicking = true;\n };\n }\n clear(particle, delta, force) {\n if (particle.bubble.inRange && !force) {\n return;\n }\n delete particle.bubble.div;\n delete particle.bubble.opacity;\n delete particle.bubble.radius;\n delete particle.bubble.color;\n }\n init() {\n const container = this.container, bubble = container.actualOptions.interactivity.modes.bubble;\n if (!bubble) {\n return;\n }\n container.retina.bubbleModeDistance = bubble.distance * container.retina.pixelRatio;\n if (bubble.size !== undefined) {\n container.retina.bubbleModeSize = bubble.size * container.retina.pixelRatio;\n }\n }\n interact(delta) {\n const options = this.container.actualOptions, events = options.interactivity.events, onHover = events.onHover, onClick = events.onClick, hoverEnabled = onHover.enable, hoverMode = onHover.mode, clickEnabled = onClick.enable, clickMode = onClick.mode, divs = events.onDiv;\n if (hoverEnabled && isInArray(bubbleMode, hoverMode)) {\n this._hoverBubble();\n }\n else if (clickEnabled && isInArray(bubbleMode, clickMode)) {\n this._clickBubble();\n }\n else {\n divModeExecute(bubbleMode, divs, (selector, div) => this._singleSelectorHover(delta, selector, div));\n }\n }\n isEnabled(particle) {\n const container = this.container, options = container.actualOptions, mouse = container.interactivity.mouse, events = (particle?.interactivity ?? options.interactivity).events, { onClick, onDiv, onHover } = events, divBubble = isDivModeEnabled(bubbleMode, onDiv);\n if (!(divBubble || (onHover.enable && !!mouse.position) || (onClick.enable && mouse.clickPosition))) {\n return false;\n }\n return isInArray(bubbleMode, onHover.mode) || isInArray(bubbleMode, onClick.mode) || divBubble;\n }\n loadModeOptions(options, ...sources) {\n if (!options.bubble) {\n options.bubble = new Bubble();\n }\n for (const source of sources) {\n options.bubble.load(source?.bubble);\n }\n }\n reset(particle) {\n particle.bubble.inRange = false;\n }\n}\n"],"names":["calculateBubbleValue","particleValue","modeValue","optionsValue","ratio","value","clamp","bubbleMode","Bubbler","ExternalInteractorBase","constructor","container","super","this","_clickBubble","options","actualOptions","mouseClickPos","interactivity","mouse","clickPosition","bubbleOptions","modes","bubble","distance","retina","bubbleModeDistance","query","particles","quadTree","queryCircle","p","isEnabled","particle","_container$interactiv","_particle$opacity$val","_particle$opacity","clicking","inRange","durationEnd","pos","getPosition","distMouse","getDistance","timeSpent","Date","getTime","clickTime","millisecondsToSeconds","duration","sizeData","bubbleObj","optValue","bubbleModeSize","radius","particlesObj","getRangeMax","size","pixelRatio","type","_process","opacityData","opacity","_hoverBubbleColor","color","_hoverBubble","mousePos","position","pointDistance","status","mouseMoveEvent","_hoverBubbleSize","_hoverBubbleOpacity","reset","mouseLeaveEvent","divBubble","finalColor","modeColor","bubbleColor","itemFromSingleOrMultiple","rangeColorToHsl","mix","undefined","pColor","getFillColor","rgbToHsl","colorMix","_divBubble$opacity","_options$interactivit","_particle$opacity$val2","_particle$opacity2","modeOpacity","optOpacity","modeSize","optSize","data","_data$particlesObj$va","bubbleParam","bubbleDuration","bubbleDistance","particlesParam","pObjBubble","pObj","_singleSelectorHover","delta","selector","div","selectors","document","querySelectorAll","length","forEach","item","elem","pxRatio","x","offsetLeft","offsetWidth","y","offsetTop","offsetHeight","repulseRadius","area","Circle","Rectangle","contains","divs","divMode","clear","handleClickMode","mode","force","init","interact","events","onHover","onClick","hoverEnabled","enable","hoverMode","clickEnabled","clickMode","onDiv","isInArray","divModeExecute","_particle$interactivi","isDivModeEnabled","loadModeOptions","Bubble","_len","arguments","sources","Array","_key","source","load"],"sourceRoot":""} \ No newline at end of file diff --git a/build/static/js/231.712da533.chunk.js b/build/static/js/231.712da533.chunk.js new file mode 100644 index 0000000..2c6a327 --- /dev/null +++ b/build/static/js/231.712da533.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkresview=self.webpackChunkresview||[]).push([[231],{231:(o,e,i)=>{i.d(e,{StrokeColorUpdater:()=>l});var t=i(4409);class l{constructor(o){this.container=o}init(o){var e,i,l;const n=this.container,r=o.options,s=(0,t.TA)(r.stroke,o.id,r.reduceDuplicates);o.strokeWidth=(0,t.VG)(s.width)*n.retina.pixelRatio,o.strokeOpacity=(0,t.VG)(null!==(e=s.opacity)&&void 0!==e?e:1),o.strokeAnimation=null===(i=s.color)||void 0===i?void 0:i.animation;const a=null!==(l=(0,t.R5)(s.color))&&void 0!==l?l:o.getFillColor();a&&(o.strokeColor=(0,t.pz)(a,o.strokeAnimation,n.retina.reduceFactor))}isEnabled(o){const e=o.strokeAnimation,{strokeColor:i}=o;return!o.destroyed&&!o.spawning&&!!e&&(void 0!==(null===i||void 0===i?void 0:i.h.value)&&i.h.enable||void 0!==(null===i||void 0===i?void 0:i.s.value)&&i.s.enable||void 0!==(null===i||void 0===i?void 0:i.l.value)&&i.l.enable)}update(o,e){this.isEnabled(o)&&(0,t.Jv)(o.strokeColor,e)}}}}]); +//# sourceMappingURL=231.712da533.chunk.js.map \ No newline at end of file diff --git a/build/static/js/231.b382507e.chunk.js.map b/build/static/js/231.712da533.chunk.js.map similarity index 96% rename from build/static/js/231.b382507e.chunk.js.map rename to build/static/js/231.712da533.chunk.js.map index b848e8a..25165cc 100644 --- a/build/static/js/231.b382507e.chunk.js.map +++ b/build/static/js/231.712da533.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/231.b382507e.chunk.js","mappings":"8IAEO,MAAMA,EACTC,WAAAA,CAAYC,GACRC,KAAKD,UAAYA,CACrB,CACAE,IAAAA,CAAKC,GAAU,IAAAC,EAAAC,EAAAC,EACX,MAAMN,EAAYC,KAAKD,UAAWO,EAAUJ,EAASI,QAC/CC,GAASC,EAAAA,EAAAA,IAAyBF,EAAQC,OAAQL,EAASO,GAAIH,EAAQI,kBAC7ER,EAASS,aAAcC,EAAAA,EAAAA,IAAcL,EAAOM,OAASd,EAAUe,OAAOC,WACtEb,EAASc,eAAgBJ,EAAAA,EAAAA,IAA4B,QAAfT,EAACI,EAAOU,eAAO,IAAAd,EAAAA,EATtC,GAUfD,EAASgB,gBAA8B,QAAfd,EAAGG,EAAOY,aAAK,IAAAf,OAAA,EAAZA,EAAcgB,UACzC,MAAMC,EAA8C,QAAhChB,GAAGiB,EAAAA,EAAAA,IAAgBf,EAAOY,cAAM,IAAAd,EAAAA,EAAIH,EAASqB,eAC7DF,IACAnB,EAASsB,aAAcC,EAAAA,EAAAA,IAAuBJ,EAAgBnB,EAASgB,gBAAiBnB,EAAUe,OAAOY,cAEjH,CACAC,SAAAA,CAAUzB,GACN,MAAMiB,EAAQjB,EAASgB,iBAAiB,YAAEM,GAAgBtB,EAC1D,OAASA,EAAS0B,YACb1B,EAAS2B,YACRV,SACyBW,KAAd,OAAXN,QAAW,IAAXA,OAAW,EAAXA,EAAaO,EAAEC,QAAuBR,EAAYO,EAAEE,aACxBH,KAAd,OAAXN,QAAW,IAAXA,OAAW,EAAXA,EAAaU,EAAEF,QAAuBR,EAAYU,EAAED,aAC3BH,KAAd,OAAXN,QAAW,IAAXA,OAAW,EAAXA,EAAaW,EAAEH,QAAuBR,EAAYW,EAAEF,OACjE,CACAG,MAAAA,CAAOlC,EAAUmC,GACRrC,KAAK2B,UAAUzB,KAGpBoC,EAAAA,EAAAA,IAAYpC,EAASsB,YAAaa,EACtC,E","sources":["../node_modules/@tsparticles/updater-stroke-color/browser/StrokeColorUpdater.js"],"sourcesContent":["import { getHslAnimationFromHsl, getRangeValue, itemFromSingleOrMultiple, rangeColorToHsl, updateColor, } from \"@tsparticles/engine\";\nconst defaultOpacity = 1;\nexport class StrokeColorUpdater {\n constructor(container) {\n this.container = container;\n }\n init(particle) {\n const container = this.container, options = particle.options;\n const stroke = itemFromSingleOrMultiple(options.stroke, particle.id, options.reduceDuplicates);\n particle.strokeWidth = getRangeValue(stroke.width) * container.retina.pixelRatio;\n particle.strokeOpacity = getRangeValue(stroke.opacity ?? defaultOpacity);\n particle.strokeAnimation = stroke.color?.animation;\n const strokeHslColor = rangeColorToHsl(stroke.color) ?? particle.getFillColor();\n if (strokeHslColor) {\n particle.strokeColor = getHslAnimationFromHsl(strokeHslColor, particle.strokeAnimation, container.retina.reduceFactor);\n }\n }\n isEnabled(particle) {\n const color = particle.strokeAnimation, { strokeColor } = particle;\n return (!particle.destroyed &&\n !particle.spawning &&\n !!color &&\n ((strokeColor?.h.value !== undefined && strokeColor.h.enable) ||\n (strokeColor?.s.value !== undefined && strokeColor.s.enable) ||\n (strokeColor?.l.value !== undefined && strokeColor.l.enable)));\n }\n update(particle, delta) {\n if (!this.isEnabled(particle)) {\n return;\n }\n updateColor(particle.strokeColor, delta);\n }\n}\n"],"names":["StrokeColorUpdater","constructor","container","this","init","particle","_stroke$opacity","_stroke$color","_rangeColorToHsl","options","stroke","itemFromSingleOrMultiple","id","reduceDuplicates","strokeWidth","getRangeValue","width","retina","pixelRatio","strokeOpacity","opacity","strokeAnimation","color","animation","strokeHslColor","rangeColorToHsl","getFillColor","strokeColor","getHslAnimationFromHsl","reduceFactor","isEnabled","destroyed","spawning","undefined","h","value","enable","s","l","update","delta","updateColor"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/231.712da533.chunk.js","mappings":"gJAEO,MAAMA,EACTC,WAAAA,CAAYC,GACRC,KAAKD,UAAYA,CACrB,CACAE,IAAAA,CAAKC,GAAU,IAAAC,EAAAC,EAAAC,EACX,MAAMN,EAAYC,KAAKD,UAAWO,EAAUJ,EAASI,QAC/CC,GAASC,EAAAA,EAAAA,IAAyBF,EAAQC,OAAQL,EAASO,GAAIH,EAAQI,kBAC7ER,EAASS,aAAcC,EAAAA,EAAAA,IAAcL,EAAOM,OAASd,EAAUe,OAAOC,WACtEb,EAASc,eAAgBJ,EAAAA,EAAAA,IAA4B,QAAfT,EAACI,EAAOU,eAAO,IAAAd,EAAAA,EATtC,GAUfD,EAASgB,gBAA8B,QAAfd,EAAGG,EAAOY,aAAK,IAAAf,OAAA,EAAZA,EAAcgB,UACzC,MAAMC,EAA8C,QAAhChB,GAAGiB,EAAAA,EAAAA,IAAgBf,EAAOY,cAAM,IAAAd,EAAAA,EAAIH,EAASqB,eAC7DF,IACAnB,EAASsB,aAAcC,EAAAA,EAAAA,IAAuBJ,EAAgBnB,EAASgB,gBAAiBnB,EAAUe,OAAOY,cAEjH,CACAC,SAAAA,CAAUzB,GACN,MAAMiB,EAAQjB,EAASgB,iBAAiB,YAAEM,GAAgBtB,EAC1D,OAASA,EAAS0B,YACb1B,EAAS2B,YACRV,SACyBW,KAAd,OAAXN,QAAW,IAAXA,OAAW,EAAXA,EAAaO,EAAEC,QAAuBR,EAAYO,EAAEE,aACxBH,KAAd,OAAXN,QAAW,IAAXA,OAAW,EAAXA,EAAaU,EAAEF,QAAuBR,EAAYU,EAAED,aAC3BH,KAAd,OAAXN,QAAW,IAAXA,OAAW,EAAXA,EAAaW,EAAEH,QAAuBR,EAAYW,EAAEF,OACjE,CACAG,MAAAA,CAAOlC,EAAUmC,GACRrC,KAAK2B,UAAUzB,KAGpBoC,EAAAA,EAAAA,IAAYpC,EAASsB,YAAaa,EACtC,E","sources":["../node_modules/@tsparticles/updater-stroke-color/browser/StrokeColorUpdater.js"],"sourcesContent":["import { getHslAnimationFromHsl, getRangeValue, itemFromSingleOrMultiple, rangeColorToHsl, updateColor, } from \"@tsparticles/engine\";\nconst defaultOpacity = 1;\nexport class StrokeColorUpdater {\n constructor(container) {\n this.container = container;\n }\n init(particle) {\n const container = this.container, options = particle.options;\n const stroke = itemFromSingleOrMultiple(options.stroke, particle.id, options.reduceDuplicates);\n particle.strokeWidth = getRangeValue(stroke.width) * container.retina.pixelRatio;\n particle.strokeOpacity = getRangeValue(stroke.opacity ?? defaultOpacity);\n particle.strokeAnimation = stroke.color?.animation;\n const strokeHslColor = rangeColorToHsl(stroke.color) ?? particle.getFillColor();\n if (strokeHslColor) {\n particle.strokeColor = getHslAnimationFromHsl(strokeHslColor, particle.strokeAnimation, container.retina.reduceFactor);\n }\n }\n isEnabled(particle) {\n const color = particle.strokeAnimation, { strokeColor } = particle;\n return (!particle.destroyed &&\n !particle.spawning &&\n !!color &&\n ((strokeColor?.h.value !== undefined && strokeColor.h.enable) ||\n (strokeColor?.s.value !== undefined && strokeColor.s.enable) ||\n (strokeColor?.l.value !== undefined && strokeColor.l.enable)));\n }\n update(particle, delta) {\n if (!this.isEnabled(particle)) {\n return;\n }\n updateColor(particle.strokeColor, delta);\n }\n}\n"],"names":["StrokeColorUpdater","constructor","container","this","init","particle","_stroke$opacity","_stroke$color","_rangeColorToHsl","options","stroke","itemFromSingleOrMultiple","id","reduceDuplicates","strokeWidth","getRangeValue","width","retina","pixelRatio","strokeOpacity","opacity","strokeAnimation","color","animation","strokeHslColor","rangeColorToHsl","getFillColor","strokeColor","getHslAnimationFromHsl","reduceFactor","isEnabled","destroyed","spawning","undefined","h","value","enable","s","l","update","delta","updateColor"],"sourceRoot":""} \ No newline at end of file diff --git a/build/static/js/231.b382507e.chunk.js b/build/static/js/231.b382507e.chunk.js deleted file mode 100644 index 068777b..0000000 --- a/build/static/js/231.b382507e.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkclient=self.webpackChunkclient||[]).push([[231],{231:(o,i,e)=>{e.d(i,{StrokeColorUpdater:()=>l});var t=e(4409);class l{constructor(o){this.container=o}init(o){var i,e,l;const n=this.container,r=o.options,s=(0,t.TA)(r.stroke,o.id,r.reduceDuplicates);o.strokeWidth=(0,t.VG)(s.width)*n.retina.pixelRatio,o.strokeOpacity=(0,t.VG)(null!==(i=s.opacity)&&void 0!==i?i:1),o.strokeAnimation=null===(e=s.color)||void 0===e?void 0:e.animation;const a=null!==(l=(0,t.R5)(s.color))&&void 0!==l?l:o.getFillColor();a&&(o.strokeColor=(0,t.pz)(a,o.strokeAnimation,n.retina.reduceFactor))}isEnabled(o){const i=o.strokeAnimation,{strokeColor:e}=o;return!o.destroyed&&!o.spawning&&!!i&&(void 0!==(null===e||void 0===e?void 0:e.h.value)&&e.h.enable||void 0!==(null===e||void 0===e?void 0:e.s.value)&&e.s.enable||void 0!==(null===e||void 0===e?void 0:e.l.value)&&e.l.enable)}update(o,i){this.isEnabled(o)&&(0,t.Jv)(o.strokeColor,i)}}}}]); -//# sourceMappingURL=231.b382507e.chunk.js.map \ No newline at end of file diff --git a/build/static/js/2314.0aa22928.chunk.js b/build/static/js/2314.0aa22928.chunk.js new file mode 100644 index 0000000..56991dd --- /dev/null +++ b/build/static/js/2314.0aa22928.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkresview=self.webpackChunkresview||[]).push([[2314],{7354:(t,s,e)=>{e.d(s,{$:()=>i});var a=e(4409);class i{constructor(){this.default=!0,this.groups=[],this.quantity=4}load(t){if(!t)return;void 0!==t.default&&(this.default=t.default),void 0!==t.groups&&(this.groups=t.groups.map((t=>t))),this.groups.length||(this.default=!0);const s=t.quantity;void 0!==s&&(this.quantity=(0,a.DT)(s))}}},2314:(t,s,e)=>{e.d(s,{loadExternalPushInteraction:()=>a});e(7354);async function a(t){let s=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];await t.addInteractor("externalPush",(async t=>{const{Pusher:s}=await e.e(3275).then(e.bind(e,3275));return new s(t)}),s)}}}]); +//# sourceMappingURL=2314.0aa22928.chunk.js.map \ No newline at end of file diff --git a/build/static/js/2314.42558de2.chunk.js.map b/build/static/js/2314.0aa22928.chunk.js.map similarity index 93% rename from build/static/js/2314.42558de2.chunk.js.map rename to build/static/js/2314.0aa22928.chunk.js.map index a26b562..1a7cc0d 100644 --- a/build/static/js/2314.42558de2.chunk.js.map +++ b/build/static/js/2314.0aa22928.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/2314.42558de2.chunk.js","mappings":"+HACO,MAAMA,EACTC,WAAAA,GACIC,KAAKC,SAAU,EACfD,KAAKE,OAAS,GACdF,KAAKG,SAAW,CACpB,CACAC,IAAAA,CAAKC,GACD,IAAKA,EACD,YAEiBC,IAAjBD,EAAKJ,UACLD,KAAKC,QAAUI,EAAKJ,cAEJK,IAAhBD,EAAKH,SACLF,KAAKE,OAASG,EAAKH,OAAOK,KAAKC,GAAMA,KAEpCR,KAAKE,OAAOO,SACbT,KAAKC,SAAU,GAEnB,MAAME,EAAWE,EAAKF,cACLG,IAAbH,IACAH,KAAKG,UAAWO,EAAAA,EAAAA,IAAcP,GAEtC,E,oECxBGQ,eAAeC,EAA4BC,GAAwB,IAAhBC,IAAOC,UAAAN,OAAA,QAAAH,IAAAS,UAAA,KAAAA,UAAA,SACvDF,EAAOG,cAAc,gBAAgBL,UACvC,MAAM,OAAEM,SAAiB,+BACzB,OAAO,IAAIA,EAAOC,EAAU,GAC7BJ,EACP,C","sources":["../node_modules/@tsparticles/interaction-external-push/browser/Options/Classes/Push.js","../node_modules/@tsparticles/interaction-external-push/browser/index.js"],"sourcesContent":["import { setRangeValue } from \"@tsparticles/engine\";\nexport class Push {\n constructor() {\n this.default = true;\n this.groups = [];\n this.quantity = 4;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.default !== undefined) {\n this.default = data.default;\n }\n if (data.groups !== undefined) {\n this.groups = data.groups.map((t) => t);\n }\n if (!this.groups.length) {\n this.default = true;\n }\n const quantity = data.quantity;\n if (quantity !== undefined) {\n this.quantity = setRangeValue(quantity);\n }\n }\n}\n","export async function loadExternalPushInteraction(engine, refresh = true) {\n await engine.addInteractor(\"externalPush\", async (container) => {\n const { Pusher } = await import(\"./Pusher.js\");\n return new Pusher(container);\n }, refresh);\n}\nexport * from \"./Options/Classes/Push.js\";\nexport * from \"./Options/Interfaces/IPush.js\";\n"],"names":["Push","constructor","this","default","groups","quantity","load","data","undefined","map","t","length","setRangeValue","async","loadExternalPushInteraction","engine","refresh","arguments","addInteractor","Pusher","container"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/2314.0aa22928.chunk.js","mappings":"iIACO,MAAMA,EACTC,WAAAA,GACIC,KAAKC,SAAU,EACfD,KAAKE,OAAS,GACdF,KAAKG,SAAW,CACpB,CACAC,IAAAA,CAAKC,GACD,IAAKA,EACD,YAEiBC,IAAjBD,EAAKJ,UACLD,KAAKC,QAAUI,EAAKJ,cAEJK,IAAhBD,EAAKH,SACLF,KAAKE,OAASG,EAAKH,OAAOK,KAAKC,GAAMA,KAEpCR,KAAKE,OAAOO,SACbT,KAAKC,SAAU,GAEnB,MAAME,EAAWE,EAAKF,cACLG,IAAbH,IACAH,KAAKG,UAAWO,EAAAA,EAAAA,IAAcP,GAEtC,E,oECxBGQ,eAAeC,EAA4BC,GAAwB,IAAhBC,IAAOC,UAAAN,OAAA,QAAAH,IAAAS,UAAA,KAAAA,UAAA,SACvDF,EAAOG,cAAc,gBAAgBL,UACvC,MAAM,OAAEM,SAAiB,+BACzB,OAAO,IAAIA,EAAOC,EAAU,GAC7BJ,EACP,C","sources":["../node_modules/@tsparticles/interaction-external-push/browser/Options/Classes/Push.js","../node_modules/@tsparticles/interaction-external-push/browser/index.js"],"sourcesContent":["import { setRangeValue } from \"@tsparticles/engine\";\nexport class Push {\n constructor() {\n this.default = true;\n this.groups = [];\n this.quantity = 4;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.default !== undefined) {\n this.default = data.default;\n }\n if (data.groups !== undefined) {\n this.groups = data.groups.map((t) => t);\n }\n if (!this.groups.length) {\n this.default = true;\n }\n const quantity = data.quantity;\n if (quantity !== undefined) {\n this.quantity = setRangeValue(quantity);\n }\n }\n}\n","export async function loadExternalPushInteraction(engine, refresh = true) {\n await engine.addInteractor(\"externalPush\", async (container) => {\n const { Pusher } = await import(\"./Pusher.js\");\n return new Pusher(container);\n }, refresh);\n}\nexport * from \"./Options/Classes/Push.js\";\nexport * from \"./Options/Interfaces/IPush.js\";\n"],"names":["Push","constructor","this","default","groups","quantity","load","data","undefined","map","t","length","setRangeValue","async","loadExternalPushInteraction","engine","refresh","arguments","addInteractor","Pusher","container"],"sourceRoot":""} \ No newline at end of file diff --git a/build/static/js/2314.42558de2.chunk.js b/build/static/js/2314.42558de2.chunk.js deleted file mode 100644 index 643acfa..0000000 --- a/build/static/js/2314.42558de2.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkclient=self.webpackChunkclient||[]).push([[2314],{7354:(t,s,a)=>{a.d(s,{$:()=>n});var e=a(4409);class n{constructor(){this.default=!0,this.groups=[],this.quantity=4}load(t){if(!t)return;void 0!==t.default&&(this.default=t.default),void 0!==t.groups&&(this.groups=t.groups.map((t=>t))),this.groups.length||(this.default=!0);const s=t.quantity;void 0!==s&&(this.quantity=(0,e.DT)(s))}}},2314:(t,s,a)=>{a.d(s,{loadExternalPushInteraction:()=>e});a(7354);async function e(t){let s=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];await t.addInteractor("externalPush",(async t=>{const{Pusher:s}=await a.e(3275).then(a.bind(a,3275));return new s(t)}),s)}}}]); -//# sourceMappingURL=2314.42558de2.chunk.js.map \ No newline at end of file diff --git a/build/static/js/2323.2da41445.chunk.js b/build/static/js/2323.2da41445.chunk.js new file mode 100644 index 0000000..f41e348 --- /dev/null +++ b/build/static/js/2323.2da41445.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkresview=self.webpackChunkresview||[]).push([[2323],{2323:(t,e,a)=>{a.d(e,{Attractor:()=>o});var i=a(4409);class o extends i.U4{constructor(t){super(t)}clear(){}init(){}interact(t){const e=this.container;void 0===t.attractDistance&&(t.attractDistance=(0,i.VG)(t.options.move.attract.distance)*e.retina.pixelRatio);const a=t.attractDistance,o=t.getPosition(),s=e.particles.quadTree.queryCircle(o,a);for(const c of s){if(t===c||!c.options.move.attract.enable||c.destroyed||c.spawning)continue;const e=c.getPosition(),{dx:a,dy:s}=(0,i.vr)(o,e),n=t.options.move.attract.rotate,r=a/(1e3*n.x),l=s/(1e3*n.y),v=c.size.value/t.size.value,u=1/v;t.velocity.x-=r*v,t.velocity.y-=l*v,c.velocity.x+=r*u,c.velocity.y+=l*u}}isEnabled(t){return t.options.move.attract.enable}reset(){}}}}]); +//# sourceMappingURL=2323.2da41445.chunk.js.map \ No newline at end of file diff --git a/build/static/js/2323.6c5df451.chunk.js.map b/build/static/js/2323.2da41445.chunk.js.map similarity index 95% rename from build/static/js/2323.6c5df451.chunk.js.map rename to build/static/js/2323.2da41445.chunk.js.map index 5b2bdde..05ad3ee 100644 --- a/build/static/js/2323.6c5df451.chunk.js.map +++ b/build/static/js/2323.2da41445.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/2323.6c5df451.chunk.js","mappings":"uIAEO,MAAMA,UAAkBC,EAAAA,GAC3BC,WAAAA,CAAYC,GACRC,MAAMD,EACV,CACAE,KAAAA,GACA,CACAC,IAAAA,GACA,CACAC,QAAAA,CAASC,GACL,MAAML,EAAYM,KAAKN,eACIO,IAAvBF,EAAGG,kBACHH,EAAGG,iBAAkBC,EAAAA,EAAAA,IAAcJ,EAAGK,QAAQC,KAAKC,QAAQC,UAAYb,EAAUc,OAAOC,YAE5F,MAAMF,EAAWR,EAAGG,gBAAiBQ,EAAOX,EAAGY,cAAeC,EAAQlB,EAAUmB,UAAUC,SAASC,YAAYL,EAAMH,GACrH,IAAK,MAAMS,KAAMJ,EAAO,CACpB,GAAIb,IAAOiB,IAAOA,EAAGZ,QAAQC,KAAKC,QAAQW,QAAUD,EAAGE,WAAaF,EAAGG,SACnE,SAEJ,MAAMC,EAAOJ,EAAGL,eAAe,GAAEU,EAAE,GAAEC,IAAOC,EAAAA,EAAAA,IAAab,EAAMU,GAAOI,EAASzB,EAAGK,QAAQC,KAAKC,QAAQkB,OAAQC,EAAKJ,GAnB1G,IAmBgHG,EAAOE,GAAoBC,EAAKL,GAnBhJ,IAmBsJE,EAAOI,GAAoBC,EAAWb,EAAGc,KAAKC,MAAQhC,EAAG+B,KAAKC,MAAOC,EAnB1M,EAmBgOH,EAC3P9B,EAAGkC,SAASP,GAAKD,EAAKI,EACtB9B,EAAGkC,SAASL,GAAKD,EAAKE,EACtBb,EAAGiB,SAASP,GAAKD,EAAKO,EACtBhB,EAAGiB,SAASL,GAAKD,EAAKK,CAC1B,CACJ,CACAE,SAAAA,CAAUC,GACN,OAAOA,EAAS/B,QAAQC,KAAKC,QAAQW,MACzC,CACAmB,KAAAA,GACA,E","sources":["../node_modules/@tsparticles/interaction-particles-attract/browser/Attractor.js"],"sourcesContent":["import { ParticlesInteractorBase, getDistances, getRangeValue, } from \"@tsparticles/engine\";\nconst attractFactor = 1000, identity = 1;\nexport class Attractor extends ParticlesInteractorBase {\n constructor(container) {\n super(container);\n }\n clear() {\n }\n init() {\n }\n interact(p1) {\n const container = this.container;\n if (p1.attractDistance === undefined) {\n p1.attractDistance = getRangeValue(p1.options.move.attract.distance) * container.retina.pixelRatio;\n }\n const distance = p1.attractDistance, pos1 = p1.getPosition(), query = container.particles.quadTree.queryCircle(pos1, distance);\n for (const p2 of query) {\n if (p1 === p2 || !p2.options.move.attract.enable || p2.destroyed || p2.spawning) {\n continue;\n }\n const pos2 = p2.getPosition(), { dx, dy } = getDistances(pos1, pos2), rotate = p1.options.move.attract.rotate, ax = dx / (rotate.x * attractFactor), ay = dy / (rotate.y * attractFactor), p1Factor = p2.size.value / p1.size.value, p2Factor = identity / p1Factor;\n p1.velocity.x -= ax * p1Factor;\n p1.velocity.y -= ay * p1Factor;\n p2.velocity.x += ax * p2Factor;\n p2.velocity.y += ay * p2Factor;\n }\n }\n isEnabled(particle) {\n return particle.options.move.attract.enable;\n }\n reset() {\n }\n}\n"],"names":["Attractor","ParticlesInteractorBase","constructor","container","super","clear","init","interact","p1","this","undefined","attractDistance","getRangeValue","options","move","attract","distance","retina","pixelRatio","pos1","getPosition","query","particles","quadTree","queryCircle","p2","enable","destroyed","spawning","pos2","dx","dy","getDistances","rotate","ax","x","ay","y","p1Factor","size","value","p2Factor","velocity","isEnabled","particle","reset"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/2323.2da41445.chunk.js","mappings":"yIAEO,MAAMA,UAAkBC,EAAAA,GAC3BC,WAAAA,CAAYC,GACRC,MAAMD,EACV,CACAE,KAAAA,GACA,CACAC,IAAAA,GACA,CACAC,QAAAA,CAASC,GACL,MAAML,EAAYM,KAAKN,eACIO,IAAvBF,EAAGG,kBACHH,EAAGG,iBAAkBC,EAAAA,EAAAA,IAAcJ,EAAGK,QAAQC,KAAKC,QAAQC,UAAYb,EAAUc,OAAOC,YAE5F,MAAMF,EAAWR,EAAGG,gBAAiBQ,EAAOX,EAAGY,cAAeC,EAAQlB,EAAUmB,UAAUC,SAASC,YAAYL,EAAMH,GACrH,IAAK,MAAMS,KAAMJ,EAAO,CACpB,GAAIb,IAAOiB,IAAOA,EAAGZ,QAAQC,KAAKC,QAAQW,QAAUD,EAAGE,WAAaF,EAAGG,SACnE,SAEJ,MAAMC,EAAOJ,EAAGL,eAAe,GAAEU,EAAE,GAAEC,IAAOC,EAAAA,EAAAA,IAAab,EAAMU,GAAOI,EAASzB,EAAGK,QAAQC,KAAKC,QAAQkB,OAAQC,EAAKJ,GAnB1G,IAmBgHG,EAAOE,GAAoBC,EAAKL,GAnBhJ,IAmBsJE,EAAOI,GAAoBC,EAAWb,EAAGc,KAAKC,MAAQhC,EAAG+B,KAAKC,MAAOC,EAnB1M,EAmBgOH,EAC3P9B,EAAGkC,SAASP,GAAKD,EAAKI,EACtB9B,EAAGkC,SAASL,GAAKD,EAAKE,EACtBb,EAAGiB,SAASP,GAAKD,EAAKO,EACtBhB,EAAGiB,SAASL,GAAKD,EAAKK,CAC1B,CACJ,CACAE,SAAAA,CAAUC,GACN,OAAOA,EAAS/B,QAAQC,KAAKC,QAAQW,MACzC,CACAmB,KAAAA,GACA,E","sources":["../node_modules/@tsparticles/interaction-particles-attract/browser/Attractor.js"],"sourcesContent":["import { ParticlesInteractorBase, getDistances, getRangeValue, } from \"@tsparticles/engine\";\nconst attractFactor = 1000, identity = 1;\nexport class Attractor extends ParticlesInteractorBase {\n constructor(container) {\n super(container);\n }\n clear() {\n }\n init() {\n }\n interact(p1) {\n const container = this.container;\n if (p1.attractDistance === undefined) {\n p1.attractDistance = getRangeValue(p1.options.move.attract.distance) * container.retina.pixelRatio;\n }\n const distance = p1.attractDistance, pos1 = p1.getPosition(), query = container.particles.quadTree.queryCircle(pos1, distance);\n for (const p2 of query) {\n if (p1 === p2 || !p2.options.move.attract.enable || p2.destroyed || p2.spawning) {\n continue;\n }\n const pos2 = p2.getPosition(), { dx, dy } = getDistances(pos1, pos2), rotate = p1.options.move.attract.rotate, ax = dx / (rotate.x * attractFactor), ay = dy / (rotate.y * attractFactor), p1Factor = p2.size.value / p1.size.value, p2Factor = identity / p1Factor;\n p1.velocity.x -= ax * p1Factor;\n p1.velocity.y -= ay * p1Factor;\n p2.velocity.x += ax * p2Factor;\n p2.velocity.y += ay * p2Factor;\n }\n }\n isEnabled(particle) {\n return particle.options.move.attract.enable;\n }\n reset() {\n }\n}\n"],"names":["Attractor","ParticlesInteractorBase","constructor","container","super","clear","init","interact","p1","this","undefined","attractDistance","getRangeValue","options","move","attract","distance","retina","pixelRatio","pos1","getPosition","query","particles","quadTree","queryCircle","p2","enable","destroyed","spawning","pos2","dx","dy","getDistances","rotate","ax","x","ay","y","p1Factor","size","value","p2Factor","velocity","isEnabled","particle","reset"],"sourceRoot":""} \ No newline at end of file diff --git a/build/static/js/2323.6c5df451.chunk.js b/build/static/js/2323.6c5df451.chunk.js deleted file mode 100644 index ae9ceeb..0000000 --- a/build/static/js/2323.6c5df451.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkclient=self.webpackChunkclient||[]).push([[2323],{2323:(t,e,a)=>{a.d(e,{Attractor:()=>o});var i=a(4409);class o extends i.U4{constructor(t){super(t)}clear(){}init(){}interact(t){const e=this.container;void 0===t.attractDistance&&(t.attractDistance=(0,i.VG)(t.options.move.attract.distance)*e.retina.pixelRatio);const a=t.attractDistance,o=t.getPosition(),c=e.particles.quadTree.queryCircle(o,a);for(const n of c){if(t===n||!n.options.move.attract.enable||n.destroyed||n.spawning)continue;const e=n.getPosition(),{dx:a,dy:c}=(0,i.vr)(o,e),s=t.options.move.attract.rotate,r=a/(1e3*s.x),l=c/(1e3*s.y),v=n.size.value/t.size.value,u=1/v;t.velocity.x-=r*v,t.velocity.y-=l*v,n.velocity.x+=r*u,n.velocity.y+=l*u}}isEnabled(t){return t.options.move.attract.enable}reset(){}}}}]); -//# sourceMappingURL=2323.6c5df451.chunk.js.map \ No newline at end of file diff --git a/build/static/js/2330.54c5fbbc.chunk.js b/build/static/js/2330.54c5fbbc.chunk.js deleted file mode 100644 index 895fbb9..0000000 --- a/build/static/js/2330.54c5fbbc.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkclient=self.webpackChunkclient||[]).push([[2330],{6746:(t,n,e)=>{e.d(n,{n:()=>i});var a=e(4409);class i{constructor(){this.quantity=2}load(t){if(!t)return;const n=t.quantity;void 0!==n&&(this.quantity=(0,a.DT)(n))}}},2330:(t,n,e)=>{e.d(n,{loadExternalRemoveInteraction:()=>a});e(6746);async function a(t){let n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];await t.addInteractor("externalRemove",(async t=>{const{Remover:n}=await e.e(7788).then(e.bind(e,7788));return new n(t)}),n)}}}]); -//# sourceMappingURL=2330.54c5fbbc.chunk.js.map \ No newline at end of file diff --git a/build/static/js/2330.8fdab7e7.chunk.js b/build/static/js/2330.8fdab7e7.chunk.js new file mode 100644 index 0000000..cf8a9a8 --- /dev/null +++ b/build/static/js/2330.8fdab7e7.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkresview=self.webpackChunkresview||[]).push([[2330],{6746:(t,e,n)=>{n.d(e,{n:()=>i});var a=n(4409);class i{constructor(){this.quantity=2}load(t){if(!t)return;const e=t.quantity;void 0!==e&&(this.quantity=(0,a.DT)(e))}}},2330:(t,e,n)=>{n.d(e,{loadExternalRemoveInteraction:()=>a});n(6746);async function a(t){let e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];await t.addInteractor("externalRemove",(async t=>{const{Remover:e}=await n.e(7788).then(n.bind(n,7788));return new e(t)}),e)}}}]); +//# sourceMappingURL=2330.8fdab7e7.chunk.js.map \ No newline at end of file diff --git a/build/static/js/2330.54c5fbbc.chunk.js.map b/build/static/js/2330.8fdab7e7.chunk.js.map similarity index 91% rename from build/static/js/2330.54c5fbbc.chunk.js.map rename to build/static/js/2330.8fdab7e7.chunk.js.map index ea3c040..c9efd5c 100644 --- a/build/static/js/2330.54c5fbbc.chunk.js.map +++ b/build/static/js/2330.8fdab7e7.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/2330.54c5fbbc.chunk.js","mappings":"+HACO,MAAMA,EACTC,WAAAA,GACIC,KAAKC,SAAW,CACpB,CACAC,IAAAA,CAAKC,GACD,IAAKA,EACD,OAEJ,MAAMF,EAAWE,EAAKF,cACLG,IAAbH,IACAD,KAAKC,UAAWI,EAAAA,EAAAA,IAAcJ,GAEtC,E,sECbGK,eAAeC,EAA8BC,GAAwB,IAAhBC,IAAOC,UAAAC,OAAA,QAAAP,IAAAM,UAAA,KAAAA,UAAA,SACzDF,EAAOI,cAAc,kBAAkBN,UACzC,MAAM,QAAEO,SAAkB,+BAC1B,OAAO,IAAIA,EAAQC,EAAU,GAC9BL,EACP,C","sources":["../node_modules/@tsparticles/interaction-external-remove/browser/Options/Classes/Remove.js","../node_modules/@tsparticles/interaction-external-remove/browser/index.js"],"sourcesContent":["import { setRangeValue } from \"@tsparticles/engine\";\nexport class Remove {\n constructor() {\n this.quantity = 2;\n }\n load(data) {\n if (!data) {\n return;\n }\n const quantity = data.quantity;\n if (quantity !== undefined) {\n this.quantity = setRangeValue(quantity);\n }\n }\n}\n","export async function loadExternalRemoveInteraction(engine, refresh = true) {\n await engine.addInteractor(\"externalRemove\", async (container) => {\n const { Remover } = await import(\"./Remover.js\");\n return new Remover(container);\n }, refresh);\n}\nexport * from \"./Options/Classes/Remove.js\";\nexport * from \"./Options/Interfaces/IRemove.js\";\n"],"names":["Remove","constructor","this","quantity","load","data","undefined","setRangeValue","async","loadExternalRemoveInteraction","engine","refresh","arguments","length","addInteractor","Remover","container"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/2330.8fdab7e7.chunk.js","mappings":"iIACO,MAAMA,EACTC,WAAAA,GACIC,KAAKC,SAAW,CACpB,CACAC,IAAAA,CAAKC,GACD,IAAKA,EACD,OAEJ,MAAMF,EAAWE,EAAKF,cACLG,IAAbH,IACAD,KAAKC,UAAWI,EAAAA,EAAAA,IAAcJ,GAEtC,E,sECbGK,eAAeC,EAA8BC,GAAwB,IAAhBC,IAAOC,UAAAC,OAAA,QAAAP,IAAAM,UAAA,KAAAA,UAAA,SACzDF,EAAOI,cAAc,kBAAkBN,UACzC,MAAM,QAAEO,SAAkB,+BAC1B,OAAO,IAAIA,EAAQC,EAAU,GAC9BL,EACP,C","sources":["../node_modules/@tsparticles/interaction-external-remove/browser/Options/Classes/Remove.js","../node_modules/@tsparticles/interaction-external-remove/browser/index.js"],"sourcesContent":["import { setRangeValue } from \"@tsparticles/engine\";\nexport class Remove {\n constructor() {\n this.quantity = 2;\n }\n load(data) {\n if (!data) {\n return;\n }\n const quantity = data.quantity;\n if (quantity !== undefined) {\n this.quantity = setRangeValue(quantity);\n }\n }\n}\n","export async function loadExternalRemoveInteraction(engine, refresh = true) {\n await engine.addInteractor(\"externalRemove\", async (container) => {\n const { Remover } = await import(\"./Remover.js\");\n return new Remover(container);\n }, refresh);\n}\nexport * from \"./Options/Classes/Remove.js\";\nexport * from \"./Options/Interfaces/IRemove.js\";\n"],"names":["Remove","constructor","this","quantity","load","data","undefined","setRangeValue","async","loadExternalRemoveInteraction","engine","refresh","arguments","length","addInteractor","Remover","container"],"sourceRoot":""} \ No newline at end of file diff --git a/build/static/js/2427.93a69e62.chunk.js b/build/static/js/2427.93a69e62.chunk.js new file mode 100644 index 0000000..5e6f863 --- /dev/null +++ b/build/static/js/2427.93a69e62.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkresview=self.webpackChunkresview||[]).push([[2427],{1744:(i,t,e)=>{e.d(t,{q:()=>n});var s=e(4409),o=e(6712),a=e(7852);class n{constructor(){this.blink=!1,this.color=new s.Oi,this.color.value="#fff",this.consent=!1,this.distance=100,this.enable=!1,this.frequency=1,this.opacity=1,this.shadow=new o.s,this.triangles=new a.G,this.width=1,this.warp=!1}load(i){i&&(void 0!==i.id&&(this.id=i.id),void 0!==i.blink&&(this.blink=i.blink),this.color=s.Oi.create(this.color,i.color),void 0!==i.consent&&(this.consent=i.consent),void 0!==i.distance&&(this.distance=i.distance),void 0!==i.enable&&(this.enable=i.enable),void 0!==i.frequency&&(this.frequency=i.frequency),void 0!==i.opacity&&(this.opacity=i.opacity),this.shadow.load(i.shadow),this.triangles.load(i.triangles),void 0!==i.width&&(this.width=i.width),void 0!==i.warp&&(this.warp=i.warp))}}},6712:(i,t,e)=>{e.d(t,{s:()=>o});var s=e(4409);class o{constructor(){this.blur=5,this.color=new s.Oi,this.color.value="#000",this.enable=!1}load(i){i&&(void 0!==i.blur&&(this.blur=i.blur),this.color=s.Oi.create(this.color,i.color),void 0!==i.enable&&(this.enable=i.enable))}}},7852:(i,t,e)=>{e.d(t,{G:()=>o});var s=e(4409);class o{constructor(){this.enable=!1,this.frequency=1}load(i){i&&(void 0!==i.color&&(this.color=s.Oi.create(this.color,i.color)),void 0!==i.enable&&(this.enable=i.enable),void 0!==i.frequency&&(this.frequency=i.frequency),void 0!==i.opacity&&(this.opacity=i.opacity))}}},2427:(i,t,e)=>{e.d(t,{loadParticlesLinksInteraction:()=>s});e(1744),e(6712),e(7852);async function s(i){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];const{loadLinksInteraction:s}=await e.e(39).then(e.bind(e,39)),{loadLinksPlugin:o}=await e.e(6864).then(e.bind(e,6864));await s(i,t),await o(i,t)}}}]); +//# sourceMappingURL=2427.93a69e62.chunk.js.map \ No newline at end of file diff --git a/build/static/js/2427.f0e3fc33.chunk.js.map b/build/static/js/2427.93a69e62.chunk.js.map similarity index 97% rename from build/static/js/2427.f0e3fc33.chunk.js.map rename to build/static/js/2427.93a69e62.chunk.js.map index 4191901..62c7901 100644 --- a/build/static/js/2427.f0e3fc33.chunk.js.map +++ b/build/static/js/2427.93a69e62.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/2427.f0e3fc33.chunk.js","mappings":"mJAGO,MAAMA,EACTC,WAAAA,GACIC,KAAKC,OAAQ,EACbD,KAAKE,MAAQ,IAAIC,EAAAA,GACjBH,KAAKE,MAAME,MAAQ,OACnBJ,KAAKK,SAAU,EACfL,KAAKM,SAAW,IAChBN,KAAKO,QAAS,EACdP,KAAKQ,UAAY,EACjBR,KAAKS,QAAU,EACfT,KAAKU,OAAS,IAAIC,EAAAA,EAClBX,KAAKY,UAAY,IAAIC,EAAAA,EACrBb,KAAKc,MAAQ,EACbd,KAAKe,MAAO,CAChB,CACAC,IAAAA,CAAKC,GACIA,SAGWC,IAAZD,EAAKE,KACLnB,KAAKmB,GAAKF,EAAKE,SAEAD,IAAfD,EAAKhB,QACLD,KAAKC,MAAQgB,EAAKhB,OAEtBD,KAAKE,MAAQC,EAAAA,GAAaiB,OAAOpB,KAAKE,MAAOe,EAAKf,YAC7BgB,IAAjBD,EAAKZ,UACLL,KAAKK,QAAUY,EAAKZ,cAEFa,IAAlBD,EAAKX,WACLN,KAAKM,SAAWW,EAAKX,eAELY,IAAhBD,EAAKV,SACLP,KAAKO,OAASU,EAAKV,aAEAW,IAAnBD,EAAKT,YACLR,KAAKQ,UAAYS,EAAKT,gBAELU,IAAjBD,EAAKR,UACLT,KAAKS,QAAUQ,EAAKR,SAExBT,KAAKU,OAAOM,KAAKC,EAAKP,QACtBV,KAAKY,UAAUI,KAAKC,EAAKL,gBACNM,IAAfD,EAAKH,QACLd,KAAKc,MAAQG,EAAKH,YAEJI,IAAdD,EAAKF,OACLf,KAAKe,KAAOE,EAAKF,MAEzB,E,gDCnDG,MAAMJ,EACTZ,WAAAA,GACIC,KAAKqB,KAAO,EACZrB,KAAKE,MAAQ,IAAIC,EAAAA,GACjBH,KAAKE,MAAME,MAAQ,OACnBJ,KAAKO,QAAS,CAClB,CACAS,IAAAA,CAAKC,GACIA,SAGaC,IAAdD,EAAKI,OACLrB,KAAKqB,KAAOJ,EAAKI,MAErBrB,KAAKE,MAAQC,EAAAA,GAAaiB,OAAOpB,KAAKE,MAAOe,EAAKf,YAC9BgB,IAAhBD,EAAKV,SACLP,KAAKO,OAASU,EAAKV,QAE3B,E,gDClBG,MAAMM,EACTd,WAAAA,GACIC,KAAKO,QAAS,EACdP,KAAKQ,UAAY,CACrB,CACAQ,IAAAA,CAAKC,GACIA,SAGcC,IAAfD,EAAKf,QACLF,KAAKE,MAAQC,EAAAA,GAAaiB,OAAOpB,KAAKE,MAAOe,EAAKf,aAElCgB,IAAhBD,EAAKV,SACLP,KAAKO,OAASU,EAAKV,aAEAW,IAAnBD,EAAKT,YACLR,KAAKQ,UAAYS,EAAKT,gBAELU,IAAjBD,EAAKR,UACLT,KAAKS,QAAUQ,EAAKR,SAE5B,E,sFCtBGa,eAAeC,EAA8BC,GAAwB,IAAhBC,IAAOC,UAAAC,OAAA,QAAAT,IAAAQ,UAAA,KAAAA,UAAA,GAC/D,MAAM,qBAAEE,SAA+B,4BAA4B,gBAAEC,SAA0B,qCACzFD,EAAqBJ,EAAQC,SAC7BI,EAAgBL,EAAQC,EAClC,C","sources":["../node_modules/@tsparticles/interaction-particles-links/browser/Options/Classes/Links.js","../node_modules/@tsparticles/interaction-particles-links/browser/Options/Classes/LinksShadow.js","../node_modules/@tsparticles/interaction-particles-links/browser/Options/Classes/LinksTriangle.js","../node_modules/@tsparticles/interaction-particles-links/browser/index.js"],"sourcesContent":["import { OptionsColor } from \"@tsparticles/engine\";\nimport { LinksShadow } from \"./LinksShadow.js\";\nimport { LinksTriangle } from \"./LinksTriangle.js\";\nexport class Links {\n constructor() {\n this.blink = false;\n this.color = new OptionsColor();\n this.color.value = \"#fff\";\n this.consent = false;\n this.distance = 100;\n this.enable = false;\n this.frequency = 1;\n this.opacity = 1;\n this.shadow = new LinksShadow();\n this.triangles = new LinksTriangle();\n this.width = 1;\n this.warp = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.id !== undefined) {\n this.id = data.id;\n }\n if (data.blink !== undefined) {\n this.blink = data.blink;\n }\n this.color = OptionsColor.create(this.color, data.color);\n if (data.consent !== undefined) {\n this.consent = data.consent;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.frequency !== undefined) {\n this.frequency = data.frequency;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n this.shadow.load(data.shadow);\n this.triangles.load(data.triangles);\n if (data.width !== undefined) {\n this.width = data.width;\n }\n if (data.warp !== undefined) {\n this.warp = data.warp;\n }\n }\n}\n","import { OptionsColor } from \"@tsparticles/engine\";\nexport class LinksShadow {\n constructor() {\n this.blur = 5;\n this.color = new OptionsColor();\n this.color.value = \"#000\";\n this.enable = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.blur !== undefined) {\n this.blur = data.blur;\n }\n this.color = OptionsColor.create(this.color, data.color);\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n }\n}\n","import { OptionsColor } from \"@tsparticles/engine\";\nexport class LinksTriangle {\n constructor() {\n this.enable = false;\n this.frequency = 1;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.color !== undefined) {\n this.color = OptionsColor.create(this.color, data.color);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.frequency !== undefined) {\n this.frequency = data.frequency;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n }\n}\n","export async function loadParticlesLinksInteraction(engine, refresh = true) {\n const { loadLinksInteraction } = await import(\"./interaction.js\"), { loadLinksPlugin } = await import(\"./plugin.js\");\n await loadLinksInteraction(engine, refresh);\n await loadLinksPlugin(engine, refresh);\n}\nexport * from \"./Options/Classes/Links.js\";\nexport * from \"./Options/Classes/LinksShadow.js\";\nexport * from \"./Options/Classes/LinksTriangle.js\";\nexport * from \"./Options/Interfaces/ILinks.js\";\nexport * from \"./Options/Interfaces/ILinksShadow.js\";\nexport * from \"./Options/Interfaces/ILinksTriangle.js\";\n"],"names":["Links","constructor","this","blink","color","OptionsColor","value","consent","distance","enable","frequency","opacity","shadow","LinksShadow","triangles","LinksTriangle","width","warp","load","data","undefined","id","create","blur","async","loadParticlesLinksInteraction","engine","refresh","arguments","length","loadLinksInteraction","loadLinksPlugin"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/2427.93a69e62.chunk.js","mappings":"qJAGO,MAAMA,EACTC,WAAAA,GACIC,KAAKC,OAAQ,EACbD,KAAKE,MAAQ,IAAIC,EAAAA,GACjBH,KAAKE,MAAME,MAAQ,OACnBJ,KAAKK,SAAU,EACfL,KAAKM,SAAW,IAChBN,KAAKO,QAAS,EACdP,KAAKQ,UAAY,EACjBR,KAAKS,QAAU,EACfT,KAAKU,OAAS,IAAIC,EAAAA,EAClBX,KAAKY,UAAY,IAAIC,EAAAA,EACrBb,KAAKc,MAAQ,EACbd,KAAKe,MAAO,CAChB,CACAC,IAAAA,CAAKC,GACIA,SAGWC,IAAZD,EAAKE,KACLnB,KAAKmB,GAAKF,EAAKE,SAEAD,IAAfD,EAAKhB,QACLD,KAAKC,MAAQgB,EAAKhB,OAEtBD,KAAKE,MAAQC,EAAAA,GAAaiB,OAAOpB,KAAKE,MAAOe,EAAKf,YAC7BgB,IAAjBD,EAAKZ,UACLL,KAAKK,QAAUY,EAAKZ,cAEFa,IAAlBD,EAAKX,WACLN,KAAKM,SAAWW,EAAKX,eAELY,IAAhBD,EAAKV,SACLP,KAAKO,OAASU,EAAKV,aAEAW,IAAnBD,EAAKT,YACLR,KAAKQ,UAAYS,EAAKT,gBAELU,IAAjBD,EAAKR,UACLT,KAAKS,QAAUQ,EAAKR,SAExBT,KAAKU,OAAOM,KAAKC,EAAKP,QACtBV,KAAKY,UAAUI,KAAKC,EAAKL,gBACNM,IAAfD,EAAKH,QACLd,KAAKc,MAAQG,EAAKH,YAEJI,IAAdD,EAAKF,OACLf,KAAKe,KAAOE,EAAKF,MAEzB,E,gDCnDG,MAAMJ,EACTZ,WAAAA,GACIC,KAAKqB,KAAO,EACZrB,KAAKE,MAAQ,IAAIC,EAAAA,GACjBH,KAAKE,MAAME,MAAQ,OACnBJ,KAAKO,QAAS,CAClB,CACAS,IAAAA,CAAKC,GACIA,SAGaC,IAAdD,EAAKI,OACLrB,KAAKqB,KAAOJ,EAAKI,MAErBrB,KAAKE,MAAQC,EAAAA,GAAaiB,OAAOpB,KAAKE,MAAOe,EAAKf,YAC9BgB,IAAhBD,EAAKV,SACLP,KAAKO,OAASU,EAAKV,QAE3B,E,gDClBG,MAAMM,EACTd,WAAAA,GACIC,KAAKO,QAAS,EACdP,KAAKQ,UAAY,CACrB,CACAQ,IAAAA,CAAKC,GACIA,SAGcC,IAAfD,EAAKf,QACLF,KAAKE,MAAQC,EAAAA,GAAaiB,OAAOpB,KAAKE,MAAOe,EAAKf,aAElCgB,IAAhBD,EAAKV,SACLP,KAAKO,OAASU,EAAKV,aAEAW,IAAnBD,EAAKT,YACLR,KAAKQ,UAAYS,EAAKT,gBAELU,IAAjBD,EAAKR,UACLT,KAAKS,QAAUQ,EAAKR,SAE5B,E,sFCtBGa,eAAeC,EAA8BC,GAAwB,IAAhBC,IAAOC,UAAAC,OAAA,QAAAT,IAAAQ,UAAA,KAAAA,UAAA,GAC/D,MAAM,qBAAEE,SAA+B,4BAA4B,gBAAEC,SAA0B,qCACzFD,EAAqBJ,EAAQC,SAC7BI,EAAgBL,EAAQC,EAClC,C","sources":["../node_modules/@tsparticles/interaction-particles-links/browser/Options/Classes/Links.js","../node_modules/@tsparticles/interaction-particles-links/browser/Options/Classes/LinksShadow.js","../node_modules/@tsparticles/interaction-particles-links/browser/Options/Classes/LinksTriangle.js","../node_modules/@tsparticles/interaction-particles-links/browser/index.js"],"sourcesContent":["import { OptionsColor } from \"@tsparticles/engine\";\nimport { LinksShadow } from \"./LinksShadow.js\";\nimport { LinksTriangle } from \"./LinksTriangle.js\";\nexport class Links {\n constructor() {\n this.blink = false;\n this.color = new OptionsColor();\n this.color.value = \"#fff\";\n this.consent = false;\n this.distance = 100;\n this.enable = false;\n this.frequency = 1;\n this.opacity = 1;\n this.shadow = new LinksShadow();\n this.triangles = new LinksTriangle();\n this.width = 1;\n this.warp = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.id !== undefined) {\n this.id = data.id;\n }\n if (data.blink !== undefined) {\n this.blink = data.blink;\n }\n this.color = OptionsColor.create(this.color, data.color);\n if (data.consent !== undefined) {\n this.consent = data.consent;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.frequency !== undefined) {\n this.frequency = data.frequency;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n this.shadow.load(data.shadow);\n this.triangles.load(data.triangles);\n if (data.width !== undefined) {\n this.width = data.width;\n }\n if (data.warp !== undefined) {\n this.warp = data.warp;\n }\n }\n}\n","import { OptionsColor } from \"@tsparticles/engine\";\nexport class LinksShadow {\n constructor() {\n this.blur = 5;\n this.color = new OptionsColor();\n this.color.value = \"#000\";\n this.enable = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.blur !== undefined) {\n this.blur = data.blur;\n }\n this.color = OptionsColor.create(this.color, data.color);\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n }\n}\n","import { OptionsColor } from \"@tsparticles/engine\";\nexport class LinksTriangle {\n constructor() {\n this.enable = false;\n this.frequency = 1;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.color !== undefined) {\n this.color = OptionsColor.create(this.color, data.color);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.frequency !== undefined) {\n this.frequency = data.frequency;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n }\n}\n","export async function loadParticlesLinksInteraction(engine, refresh = true) {\n const { loadLinksInteraction } = await import(\"./interaction.js\"), { loadLinksPlugin } = await import(\"./plugin.js\");\n await loadLinksInteraction(engine, refresh);\n await loadLinksPlugin(engine, refresh);\n}\nexport * from \"./Options/Classes/Links.js\";\nexport * from \"./Options/Classes/LinksShadow.js\";\nexport * from \"./Options/Classes/LinksTriangle.js\";\nexport * from \"./Options/Interfaces/ILinks.js\";\nexport * from \"./Options/Interfaces/ILinksShadow.js\";\nexport * from \"./Options/Interfaces/ILinksTriangle.js\";\n"],"names":["Links","constructor","this","blink","color","OptionsColor","value","consent","distance","enable","frequency","opacity","shadow","LinksShadow","triangles","LinksTriangle","width","warp","load","data","undefined","id","create","blur","async","loadParticlesLinksInteraction","engine","refresh","arguments","length","loadLinksInteraction","loadLinksPlugin"],"sourceRoot":""} \ No newline at end of file diff --git a/build/static/js/2427.f0e3fc33.chunk.js b/build/static/js/2427.f0e3fc33.chunk.js deleted file mode 100644 index 1a8c4ee..0000000 --- a/build/static/js/2427.f0e3fc33.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkclient=self.webpackChunkclient||[]).push([[2427],{1744:(i,t,e)=>{e.d(t,{q:()=>a});var o=e(4409),s=e(6712),n=e(7852);class a{constructor(){this.blink=!1,this.color=new o.Oi,this.color.value="#fff",this.consent=!1,this.distance=100,this.enable=!1,this.frequency=1,this.opacity=1,this.shadow=new s.s,this.triangles=new n.G,this.width=1,this.warp=!1}load(i){i&&(void 0!==i.id&&(this.id=i.id),void 0!==i.blink&&(this.blink=i.blink),this.color=o.Oi.create(this.color,i.color),void 0!==i.consent&&(this.consent=i.consent),void 0!==i.distance&&(this.distance=i.distance),void 0!==i.enable&&(this.enable=i.enable),void 0!==i.frequency&&(this.frequency=i.frequency),void 0!==i.opacity&&(this.opacity=i.opacity),this.shadow.load(i.shadow),this.triangles.load(i.triangles),void 0!==i.width&&(this.width=i.width),void 0!==i.warp&&(this.warp=i.warp))}}},6712:(i,t,e)=>{e.d(t,{s:()=>s});var o=e(4409);class s{constructor(){this.blur=5,this.color=new o.Oi,this.color.value="#000",this.enable=!1}load(i){i&&(void 0!==i.blur&&(this.blur=i.blur),this.color=o.Oi.create(this.color,i.color),void 0!==i.enable&&(this.enable=i.enable))}}},7852:(i,t,e)=>{e.d(t,{G:()=>s});var o=e(4409);class s{constructor(){this.enable=!1,this.frequency=1}load(i){i&&(void 0!==i.color&&(this.color=o.Oi.create(this.color,i.color)),void 0!==i.enable&&(this.enable=i.enable),void 0!==i.frequency&&(this.frequency=i.frequency),void 0!==i.opacity&&(this.opacity=i.opacity))}}},2427:(i,t,e)=>{e.d(t,{loadParticlesLinksInteraction:()=>o});e(1744),e(6712),e(7852);async function o(i){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];const{loadLinksInteraction:o}=await e.e(39).then(e.bind(e,39)),{loadLinksPlugin:s}=await e.e(6864).then(e.bind(e,6864));await o(i,t),await s(i,t)}}}]); -//# sourceMappingURL=2427.f0e3fc33.chunk.js.map \ No newline at end of file diff --git a/build/static/js/2478.ab5d0879.chunk.js b/build/static/js/2478.ab5d0879.chunk.js new file mode 100644 index 0000000..7ccfb86 --- /dev/null +++ b/build/static/js/2478.ab5d0879.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkresview=self.webpackChunkresview||[]).push([[2478],{2478:(e,t,a)=>{async function n(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];await e.addParticleUpdater("rotate",(async e=>{const{RotateUpdater:t}=await a.e(8427).then(a.bind(a,8427));return new t(e)}),t)}a.d(t,{loadRotateUpdater:()=>n})}}]); +//# sourceMappingURL=2478.ab5d0879.chunk.js.map \ No newline at end of file diff --git a/build/static/js/2478.f009a6d8.chunk.js.map b/build/static/js/2478.ab5d0879.chunk.js.map similarity index 83% rename from build/static/js/2478.f009a6d8.chunk.js.map rename to build/static/js/2478.ab5d0879.chunk.js.map index b0bd0f7..e41d3a3 100644 --- a/build/static/js/2478.f009a6d8.chunk.js.map +++ b/build/static/js/2478.ab5d0879.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/2478.f009a6d8.chunk.js","mappings":"gGAAOA,eAAeC,EAAkBC,GAAwB,IAAhBC,IAAOC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,KAAAA,UAAA,SAC7CF,EAAOK,mBAAmB,UAAUP,UACtC,MAAM,cAAEQ,SAAwB,+BAChC,OAAO,IAAIA,EAAcC,EAAU,GACpCN,EACP,C","sources":["../node_modules/@tsparticles/updater-rotate/browser/index.js"],"sourcesContent":["export async function loadRotateUpdater(engine, refresh = true) {\n await engine.addParticleUpdater(\"rotate\", async (container) => {\n const { RotateUpdater } = await import(\"./RotateUpdater.js\");\n return new RotateUpdater(container);\n }, refresh);\n}\n"],"names":["async","loadRotateUpdater","engine","refresh","arguments","length","undefined","addParticleUpdater","RotateUpdater","container"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/2478.ab5d0879.chunk.js","mappings":"kGAAOA,eAAeC,EAAkBC,GAAwB,IAAhBC,IAAOC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,KAAAA,UAAA,SAC7CF,EAAOK,mBAAmB,UAAUP,UACtC,MAAM,cAAEQ,SAAwB,+BAChC,OAAO,IAAIA,EAAcC,EAAU,GACpCN,EACP,C","sources":["../node_modules/@tsparticles/updater-rotate/browser/index.js"],"sourcesContent":["export async function loadRotateUpdater(engine, refresh = true) {\n await engine.addParticleUpdater(\"rotate\", async (container) => {\n const { RotateUpdater } = await import(\"./RotateUpdater.js\");\n return new RotateUpdater(container);\n }, refresh);\n}\n"],"names":["async","loadRotateUpdater","engine","refresh","arguments","length","undefined","addParticleUpdater","RotateUpdater","container"],"sourceRoot":""} \ No newline at end of file diff --git a/build/static/js/2478.f009a6d8.chunk.js b/build/static/js/2478.f009a6d8.chunk.js deleted file mode 100644 index 20e5572..0000000 --- a/build/static/js/2478.f009a6d8.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkclient=self.webpackChunkclient||[]).push([[2478],{2478:(t,e,a)=>{async function n(t){let e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];await t.addParticleUpdater("rotate",(async t=>{const{RotateUpdater:e}=await a.e(8427).then(a.bind(a,8427));return new e(t)}),e)}a.d(e,{loadRotateUpdater:()=>n})}}]); -//# sourceMappingURL=2478.f009a6d8.chunk.js.map \ No newline at end of file diff --git a/build/static/js/2975.33357bb7.chunk.js b/build/static/js/2975.33357bb7.chunk.js deleted file mode 100644 index 4fed334..0000000 --- a/build/static/js/2975.33357bb7.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkclient=self.webpackChunkclient||[]).push([[2975],{2975:(e,t,a)=>{async function n(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];await e.addParticleUpdater("life",(async e=>{const{LifeUpdater:t}=await a.e(1215).then(a.bind(a,1215));return new t(e)}),t)}a.d(t,{loadLifeUpdater:()=>n})}}]); -//# sourceMappingURL=2975.33357bb7.chunk.js.map \ No newline at end of file diff --git a/build/static/js/2975.77712328.chunk.js b/build/static/js/2975.77712328.chunk.js new file mode 100644 index 0000000..f313b7a --- /dev/null +++ b/build/static/js/2975.77712328.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkresview=self.webpackChunkresview||[]).push([[2975],{2975:(e,a,t)=>{async function i(e){let a=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];await e.addParticleUpdater("life",(async e=>{const{LifeUpdater:a}=await t.e(1215).then(t.bind(t,1215));return new a(e)}),a)}t.d(a,{loadLifeUpdater:()=>i})}}]); +//# sourceMappingURL=2975.77712328.chunk.js.map \ No newline at end of file diff --git a/build/static/js/2975.33357bb7.chunk.js.map b/build/static/js/2975.77712328.chunk.js.map similarity index 83% rename from build/static/js/2975.33357bb7.chunk.js.map rename to build/static/js/2975.77712328.chunk.js.map index 62303d8..8358c00 100644 --- a/build/static/js/2975.33357bb7.chunk.js.map +++ b/build/static/js/2975.77712328.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/2975.33357bb7.chunk.js","mappings":"gGAAOA,eAAeC,EAAgBC,GAAwB,IAAhBC,IAAOC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,KAAAA,UAAA,SAC3CF,EAAOK,mBAAmB,QAAQP,UACpC,MAAM,YAAEQ,SAAsB,+BAC9B,OAAO,IAAIA,EAAYC,EAAU,GAClCN,EACP,C","sources":["../node_modules/@tsparticles/updater-life/browser/index.js"],"sourcesContent":["export async function loadLifeUpdater(engine, refresh = true) {\n await engine.addParticleUpdater(\"life\", async (container) => {\n const { LifeUpdater } = await import(\"./LifeUpdater.js\");\n return new LifeUpdater(container);\n }, refresh);\n}\n"],"names":["async","loadLifeUpdater","engine","refresh","arguments","length","undefined","addParticleUpdater","LifeUpdater","container"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/2975.77712328.chunk.js","mappings":"kGAAOA,eAAeC,EAAgBC,GAAwB,IAAhBC,IAAOC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,KAAAA,UAAA,SAC3CF,EAAOK,mBAAmB,QAAQP,UACpC,MAAM,YAAEQ,SAAsB,+BAC9B,OAAO,IAAIA,EAAYC,EAAU,GAClCN,EACP,C","sources":["../node_modules/@tsparticles/updater-life/browser/index.js"],"sourcesContent":["export async function loadLifeUpdater(engine, refresh = true) {\n await engine.addParticleUpdater(\"life\", async (container) => {\n const { LifeUpdater } = await import(\"./LifeUpdater.js\");\n return new LifeUpdater(container);\n }, refresh);\n}\n"],"names":["async","loadLifeUpdater","engine","refresh","arguments","length","undefined","addParticleUpdater","LifeUpdater","container"],"sourceRoot":""} \ No newline at end of file diff --git a/build/static/js/308.056e0177.chunk.js b/build/static/js/308.056e0177.chunk.js new file mode 100644 index 0000000..622d8ed --- /dev/null +++ b/build/static/js/308.056e0177.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkresview=self.webpackChunkresview||[]).push([[308],{308:(e,t,a)=>{async function n(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];await e.addParticleUpdater("outModes",(async e=>{const{OutOfCanvasUpdater:t}=await a.e(4265).then(a.bind(a,4265));return new t(e)}),t)}a.d(t,{loadOutModesUpdater:()=>n})}}]); +//# sourceMappingURL=308.056e0177.chunk.js.map \ No newline at end of file diff --git a/build/static/js/308.7282d055.chunk.js.map b/build/static/js/308.056e0177.chunk.js.map similarity index 83% rename from build/static/js/308.7282d055.chunk.js.map rename to build/static/js/308.056e0177.chunk.js.map index b7a90f8..8bb6577 100644 --- a/build/static/js/308.7282d055.chunk.js.map +++ b/build/static/js/308.056e0177.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/308.7282d055.chunk.js","mappings":"8FAAOA,eAAeC,EAAoBC,GAAwB,IAAhBC,IAAOC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,KAAAA,UAAA,SAC/CF,EAAOK,mBAAmB,YAAYP,UACxC,MAAM,mBAAEQ,SAA6B,+BACrC,OAAO,IAAIA,EAAmBC,EAAU,GACzCN,EACP,C","sources":["../node_modules/@tsparticles/updater-out-modes/browser/index.js"],"sourcesContent":["export async function loadOutModesUpdater(engine, refresh = true) {\n await engine.addParticleUpdater(\"outModes\", async (container) => {\n const { OutOfCanvasUpdater } = await import(\"./OutOfCanvasUpdater.js\");\n return new OutOfCanvasUpdater(container);\n }, refresh);\n}\n"],"names":["async","loadOutModesUpdater","engine","refresh","arguments","length","undefined","addParticleUpdater","OutOfCanvasUpdater","container"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/308.056e0177.chunk.js","mappings":"gGAAOA,eAAeC,EAAoBC,GAAwB,IAAhBC,IAAOC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,KAAAA,UAAA,SAC/CF,EAAOK,mBAAmB,YAAYP,UACxC,MAAM,mBAAEQ,SAA6B,+BACrC,OAAO,IAAIA,EAAmBC,EAAU,GACzCN,EACP,C","sources":["../node_modules/@tsparticles/updater-out-modes/browser/index.js"],"sourcesContent":["export async function loadOutModesUpdater(engine, refresh = true) {\n await engine.addParticleUpdater(\"outModes\", async (container) => {\n const { OutOfCanvasUpdater } = await import(\"./OutOfCanvasUpdater.js\");\n return new OutOfCanvasUpdater(container);\n }, refresh);\n}\n"],"names":["async","loadOutModesUpdater","engine","refresh","arguments","length","undefined","addParticleUpdater","OutOfCanvasUpdater","container"],"sourceRoot":""} \ No newline at end of file diff --git a/build/static/js/308.7282d055.chunk.js b/build/static/js/308.7282d055.chunk.js deleted file mode 100644 index ed56de2..0000000 --- a/build/static/js/308.7282d055.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkclient=self.webpackChunkclient||[]).push([[308],{308:(e,t,a)=>{async function n(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];await e.addParticleUpdater("outModes",(async e=>{const{OutOfCanvasUpdater:t}=await a.e(4265).then(a.bind(a,4265));return new t(e)}),t)}a.d(t,{loadOutModesUpdater:()=>n})}}]); -//# sourceMappingURL=308.7282d055.chunk.js.map \ No newline at end of file diff --git a/build/static/js/3275.69eb47c2.chunk.js b/build/static/js/3275.69eb47c2.chunk.js deleted file mode 100644 index 011701f..0000000 --- a/build/static/js/3275.69eb47c2.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkclient=self.webpackChunkclient||[]).push([[3275],{3275:(t,s,e)=>{e.d(s,{Pusher:()=>r});var i=e(4409),n=e(7354);class r extends i.sJ{constructor(t){super(t),this.handleClickMode=t=>{if("push"!==t)return;const s=this.container,e=s.actualOptions.interactivity.modes.push;if(!e)return;const n=(0,i.VG)(e.quantity);if(n<=0)return;const r=(0,i.Vh)([void 0,...e.groups]),o=void 0!==r?s.actualOptions.particles.groups[r]:void 0;s.particles.push(n,s.interactivity.mouse,o,r)}}clear(){}init(){}interact(){}isEnabled(){return!0}loadModeOptions(t){t.push||(t.push=new n.$);for(var s=arguments.length,e=new Array(s>1?s-1:0),i=1;i{e.d(t,{Pusher:()=>n});var i=e(4409),r=e(7354);class n extends i.sJ{constructor(s){super(s),this.handleClickMode=s=>{if("push"!==s)return;const t=this.container,e=t.actualOptions.interactivity.modes.push;if(!e)return;const r=(0,i.VG)(e.quantity);if(r<=0)return;const n=(0,i.Vh)([void 0,...e.groups]),o=void 0!==n?t.actualOptions.particles.groups[n]:void 0;t.particles.push(r,t.interactivity.mouse,o,n)}}clear(){}init(){}interact(){}isEnabled(){return!0}loadModeOptions(s){s.push||(s.push=new r.$);for(var t=arguments.length,e=new Array(t>1?t-1:0),i=1;i {\n if (mode !== pushMode) {\n return;\n }\n const container = this.container, options = container.actualOptions, pushOptions = options.interactivity.modes.push;\n if (!pushOptions) {\n return;\n }\n const quantity = getRangeValue(pushOptions.quantity);\n if (quantity <= minQuantity) {\n return;\n }\n const group = itemFromArray([undefined, ...pushOptions.groups]), groupOptions = group !== undefined ? container.actualOptions.particles.groups[group] : undefined;\n void container.particles.push(quantity, container.interactivity.mouse, groupOptions, group);\n };\n }\n clear() {\n }\n init() {\n }\n interact() {\n }\n isEnabled() {\n return true;\n }\n loadModeOptions(options, ...sources) {\n if (!options.push) {\n options.push = new Push();\n }\n for (const source of sources) {\n options.push.load(source?.push);\n }\n }\n reset() {\n }\n}\n"],"names":["Pusher","ExternalInteractorBase","constructor","container","super","this","handleClickMode","mode","pushOptions","actualOptions","interactivity","modes","push","quantity","getRangeValue","group","itemFromArray","undefined","groups","groupOptions","particles","mouse","clear","init","interact","isEnabled","loadModeOptions","options","Push","_len","arguments","length","sources","Array","_key","source","load","reset"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/3275.be3aeb0a.chunk.js","mappings":"gJAGO,MAAMA,UAAeC,EAAAA,GACxBC,WAAAA,CAAYC,GACRC,MAAMD,GACNE,KAAKC,gBAAmBC,IACpB,GALK,SAKDA,EACA,OAEJ,MAAMJ,EAAYE,KAAKF,UAA8CK,EAAzBL,EAAUM,cAAqCC,cAAcC,MAAMC,KAC/G,IAAKJ,EACD,OAEJ,MAAMK,GAAWC,EAAAA,EAAAA,IAAcN,EAAYK,UAC3C,GAAIA,GAbuB,EAcvB,OAEJ,MAAME,GAAQC,EAAAA,EAAAA,IAAc,MAACC,KAAcT,EAAYU,SAAUC,OAAyBF,IAAVF,EAAsBZ,EAAUM,cAAcW,UAAUF,OAAOH,QAASE,EACnJd,EAAUiB,UAAUR,KAAKC,EAAUV,EAAUO,cAAcW,MAAOF,EAAcJ,EAAM,CAEnG,CACAO,KAAAA,GACA,CACAC,IAAAA,GACA,CACAC,QAAAA,GACA,CACAC,SAAAA,GACI,OAAO,CACX,CACAC,eAAAA,CAAgBC,GACPA,EAAQf,OACTe,EAAQf,KAAO,IAAIgB,EAAAA,GACtB,QAAAC,EAAAC,UAAAC,OAHuBC,EAAO,IAAAC,MAAAJ,EAAA,EAAAA,EAAA,KAAAK,EAAA,EAAAA,EAAAL,EAAAK,IAAPF,EAAOE,EAAA,GAAAJ,UAAAI,GAI/B,IAAK,MAAMC,KAAUH,EACjBL,EAAQf,KAAKwB,KAAW,OAAND,QAAM,IAANA,OAAM,EAANA,EAAQvB,KAElC,CACAyB,KAAAA,GACA,E","sources":["../node_modules/@tsparticles/interaction-external-push/browser/Pusher.js"],"sourcesContent":["import { ExternalInteractorBase, getRangeValue, itemFromArray, } from \"@tsparticles/engine\";\nimport { Push } from \"./Options/Classes/Push.js\";\nconst pushMode = \"push\", minQuantity = 0;\nexport class Pusher extends ExternalInteractorBase {\n constructor(container) {\n super(container);\n this.handleClickMode = (mode) => {\n if (mode !== pushMode) {\n return;\n }\n const container = this.container, options = container.actualOptions, pushOptions = options.interactivity.modes.push;\n if (!pushOptions) {\n return;\n }\n const quantity = getRangeValue(pushOptions.quantity);\n if (quantity <= minQuantity) {\n return;\n }\n const group = itemFromArray([undefined, ...pushOptions.groups]), groupOptions = group !== undefined ? container.actualOptions.particles.groups[group] : undefined;\n void container.particles.push(quantity, container.interactivity.mouse, groupOptions, group);\n };\n }\n clear() {\n }\n init() {\n }\n interact() {\n }\n isEnabled() {\n return true;\n }\n loadModeOptions(options, ...sources) {\n if (!options.push) {\n options.push = new Push();\n }\n for (const source of sources) {\n options.push.load(source?.push);\n }\n }\n reset() {\n }\n}\n"],"names":["Pusher","ExternalInteractorBase","constructor","container","super","this","handleClickMode","mode","pushOptions","actualOptions","interactivity","modes","push","quantity","getRangeValue","group","itemFromArray","undefined","groups","groupOptions","particles","mouse","clear","init","interact","isEnabled","loadModeOptions","options","Push","_len","arguments","length","sources","Array","_key","source","load","reset"],"sourceRoot":""} \ No newline at end of file diff --git a/build/static/js/3579.3cc916c8.chunk.js b/build/static/js/3579.3cc916c8.chunk.js deleted file mode 100644 index 6d92620..0000000 --- a/build/static/js/3579.3cc916c8.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkclient=self.webpackChunkclient||[]).push([[3579],{3579:(e,t,a)=>{async function n(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];await e.addParticleUpdater("strokeColor",(async e=>{const{StrokeColorUpdater:t}=await a.e(231).then(a.bind(a,231));return new t(e)}),t)}a.d(t,{loadStrokeColorUpdater:()=>n})}}]); -//# sourceMappingURL=3579.3cc916c8.chunk.js.map \ No newline at end of file diff --git a/build/static/js/3579.a968d629.chunk.js b/build/static/js/3579.a968d629.chunk.js new file mode 100644 index 0000000..e6d97ee --- /dev/null +++ b/build/static/js/3579.a968d629.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkresview=self.webpackChunkresview||[]).push([[3579],{3579:(e,t,r)=>{async function a(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];await e.addParticleUpdater("strokeColor",(async e=>{const{StrokeColorUpdater:t}=await r.e(231).then(r.bind(r,231));return new t(e)}),t)}r.d(t,{loadStrokeColorUpdater:()=>a})}}]); +//# sourceMappingURL=3579.a968d629.chunk.js.map \ No newline at end of file diff --git a/build/static/js/3579.3cc916c8.chunk.js.map b/build/static/js/3579.a968d629.chunk.js.map similarity index 84% rename from build/static/js/3579.3cc916c8.chunk.js.map rename to build/static/js/3579.a968d629.chunk.js.map index a7ad65b..a9e49d5 100644 --- a/build/static/js/3579.3cc916c8.chunk.js.map +++ b/build/static/js/3579.a968d629.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/3579.3cc916c8.chunk.js","mappings":"gGAAOA,eAAeC,EAAuBC,GAAwB,IAAhBC,IAAOC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,KAAAA,UAAA,SAClDF,EAAOK,mBAAmB,eAAeP,UAC3C,MAAM,mBAAEQ,SAA6B,6BACrC,OAAO,IAAIA,EAAmBC,EAAU,GACzCN,EACP,C","sources":["../node_modules/@tsparticles/updater-stroke-color/browser/index.js"],"sourcesContent":["export async function loadStrokeColorUpdater(engine, refresh = true) {\n await engine.addParticleUpdater(\"strokeColor\", async (container) => {\n const { StrokeColorUpdater } = await import(\"./StrokeColorUpdater.js\");\n return new StrokeColorUpdater(container);\n }, refresh);\n}\n"],"names":["async","loadStrokeColorUpdater","engine","refresh","arguments","length","undefined","addParticleUpdater","StrokeColorUpdater","container"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/3579.a968d629.chunk.js","mappings":"kGAAOA,eAAeC,EAAuBC,GAAwB,IAAhBC,IAAOC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,KAAAA,UAAA,SAClDF,EAAOK,mBAAmB,eAAeP,UAC3C,MAAM,mBAAEQ,SAA6B,6BACrC,OAAO,IAAIA,EAAmBC,EAAU,GACzCN,EACP,C","sources":["../node_modules/@tsparticles/updater-stroke-color/browser/index.js"],"sourcesContent":["export async function loadStrokeColorUpdater(engine, refresh = true) {\n await engine.addParticleUpdater(\"strokeColor\", async (container) => {\n const { StrokeColorUpdater } = await import(\"./StrokeColorUpdater.js\");\n return new StrokeColorUpdater(container);\n }, refresh);\n}\n"],"names":["async","loadStrokeColorUpdater","engine","refresh","arguments","length","undefined","addParticleUpdater","StrokeColorUpdater","container"],"sourceRoot":""} \ No newline at end of file diff --git a/build/static/js/3739.2b7c1166.chunk.js b/build/static/js/3739.2b7c1166.chunk.js new file mode 100644 index 0000000..a641953 --- /dev/null +++ b/build/static/js/3739.2b7c1166.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkresview=self.webpackChunkresview||[]).push([[3739],{3739:(e,n,a)=>{async function i(e){let n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];const{LineDrawer:i}=await a.e(7688).then(a.bind(a,7688));await e.addShape("line",new i,n)}a.d(n,{loadLineShape:()=>i})}}]); +//# sourceMappingURL=3739.2b7c1166.chunk.js.map \ No newline at end of file diff --git a/build/static/js/3739.8769e1b2.chunk.js.map b/build/static/js/3739.2b7c1166.chunk.js.map similarity index 79% rename from build/static/js/3739.8769e1b2.chunk.js.map rename to build/static/js/3739.2b7c1166.chunk.js.map index 5898476..8f7b7d3 100644 --- a/build/static/js/3739.8769e1b2.chunk.js.map +++ b/build/static/js/3739.2b7c1166.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/3739.8769e1b2.chunk.js","mappings":"gGAAOA,eAAeC,EAAcC,GAAwB,IAAhBC,IAAOC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,KAAAA,UAAA,GAC/C,MAAM,WAAEG,SAAqB,qCACvBL,EAAOM,SAAS,OAAQ,IAAID,EAAcJ,EACpD,C","sources":["../node_modules/@tsparticles/shape-line/browser/index.js"],"sourcesContent":["export async function loadLineShape(engine, refresh = true) {\n const { LineDrawer } = await import(\"./LineDrawer.js\");\n await engine.addShape(\"line\", new LineDrawer(), refresh);\n}\n"],"names":["async","loadLineShape","engine","refresh","arguments","length","undefined","LineDrawer","addShape"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/3739.2b7c1166.chunk.js","mappings":"kGAAOA,eAAeC,EAAcC,GAAwB,IAAhBC,IAAOC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,KAAAA,UAAA,GAC/C,MAAM,WAAEG,SAAqB,qCACvBL,EAAOM,SAAS,OAAQ,IAAID,EAAcJ,EACpD,C","sources":["../node_modules/@tsparticles/shape-line/browser/index.js"],"sourcesContent":["export async function loadLineShape(engine, refresh = true) {\n const { LineDrawer } = await import(\"./LineDrawer.js\");\n await engine.addShape(\"line\", new LineDrawer(), refresh);\n}\n"],"names":["async","loadLineShape","engine","refresh","arguments","length","undefined","LineDrawer","addShape"],"sourceRoot":""} \ No newline at end of file diff --git a/build/static/js/3739.8769e1b2.chunk.js b/build/static/js/3739.8769e1b2.chunk.js deleted file mode 100644 index b4b540b..0000000 --- a/build/static/js/3739.8769e1b2.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkclient=self.webpackChunkclient||[]).push([[3739],{3739:(e,n,a)=>{async function i(e){let n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];const{LineDrawer:i}=await a.e(7688).then(a.bind(a,7688));await e.addShape("line",new i,n)}a.d(n,{loadLineShape:()=>i})}}]); -//# sourceMappingURL=3739.8769e1b2.chunk.js.map \ No newline at end of file diff --git a/build/static/js/3764.6ddc5f45.chunk.js b/build/static/js/3764.6ddc5f45.chunk.js deleted file mode 100644 index 4860cea..0000000 --- a/build/static/js/3764.6ddc5f45.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkclient=self.webpackChunkclient||[]).push([[3764],{8342:(t,i,s)=>{s.d(i,{Z:()=>c});var e=s(4409),o=s(2575),a=s(8687);class c extends o.u{load(t){super.load(t),t&&(this.divs=(0,e.wJ)(t.divs,(t=>{const i=new a.C;return i.load(t),i})))}}},2575:(t,i,s)=>{s.d(i,{u:()=>o});var e=s(4409);class o{constructor(){this.distance=200,this.duration=.4,this.mix=!1}load(t){if(t){if(void 0!==t.distance&&(this.distance=t.distance),void 0!==t.duration&&(this.duration=t.duration),void 0!==t.mix&&(this.mix=t.mix),void 0!==t.opacity&&(this.opacity=t.opacity),void 0!==t.color){const i=(0,e.cy)(this.color)?void 0:this.color;this.color=(0,e.wJ)(t.color,(t=>e.Oi.create(i,t)))}void 0!==t.size&&(this.size=t.size)}}}},8687:(t,i,s)=>{s.d(i,{C:()=>o});var e=s(2575);class o extends e.u{constructor(){super(),this.selectors=[]}load(t){super.load(t),t&&void 0!==t.selectors&&(this.selectors=t.selectors)}}},3764:(t,i,s)=>{s.d(i,{loadExternalBubbleInteraction:()=>e});s(2575),s(8687),s(8342);async function e(t){let i=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];await t.addInteractor("externalBubble",(async t=>{const{Bubbler:i}=await s.e(2279).then(s.bind(s,2279));return new i(t)}),i)}}}]); -//# sourceMappingURL=3764.6ddc5f45.chunk.js.map \ No newline at end of file diff --git a/build/static/js/3764.fc97e668.chunk.js b/build/static/js/3764.fc97e668.chunk.js new file mode 100644 index 0000000..8335560 --- /dev/null +++ b/build/static/js/3764.fc97e668.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkresview=self.webpackChunkresview||[]).push([[3764],{8342:(s,t,i)=>{i.d(t,{Z:()=>r});var e=i(4409),o=i(2575),a=i(8687);class r extends o.u{load(s){super.load(s),s&&(this.divs=(0,e.wJ)(s.divs,(s=>{const t=new a.C;return t.load(s),t})))}}},2575:(s,t,i)=>{i.d(t,{u:()=>o});var e=i(4409);class o{constructor(){this.distance=200,this.duration=.4,this.mix=!1}load(s){if(s){if(void 0!==s.distance&&(this.distance=s.distance),void 0!==s.duration&&(this.duration=s.duration),void 0!==s.mix&&(this.mix=s.mix),void 0!==s.opacity&&(this.opacity=s.opacity),void 0!==s.color){const t=(0,e.cy)(this.color)?void 0:this.color;this.color=(0,e.wJ)(s.color,(s=>e.Oi.create(t,s)))}void 0!==s.size&&(this.size=s.size)}}}},8687:(s,t,i)=>{i.d(t,{C:()=>o});var e=i(2575);class o extends e.u{constructor(){super(),this.selectors=[]}load(s){super.load(s),s&&void 0!==s.selectors&&(this.selectors=s.selectors)}}},3764:(s,t,i)=>{i.d(t,{loadExternalBubbleInteraction:()=>e});i(2575),i(8687),i(8342);async function e(s){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];await s.addInteractor("externalBubble",(async s=>{const{Bubbler:t}=await i.e(2279).then(i.bind(i,2279));return new t(s)}),t)}}}]); +//# sourceMappingURL=3764.fc97e668.chunk.js.map \ No newline at end of file diff --git a/build/static/js/3764.6ddc5f45.chunk.js.map b/build/static/js/3764.fc97e668.chunk.js.map similarity index 97% rename from build/static/js/3764.6ddc5f45.chunk.js.map rename to build/static/js/3764.fc97e668.chunk.js.map index 187fb52..0eadc60 100644 --- a/build/static/js/3764.6ddc5f45.chunk.js.map +++ b/build/static/js/3764.fc97e668.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/3764.6ddc5f45.chunk.js","mappings":"mJAGO,MAAMA,UAAeC,EAAAA,EACxBC,IAAAA,CAAKC,GACDC,MAAMF,KAAKC,GACNA,IAGLE,KAAKC,MAAOC,EAAAA,EAAAA,IAA0BJ,EAAKG,MAAOE,IAC9C,MAAMC,EAAM,IAAIC,EAAAA,EAEhB,OADAD,EAAIP,KAAKM,GACFC,CAAG,IAElB,E,gDCbG,MAAMR,EACTU,WAAAA,GACIN,KAAKO,SAAW,IAChBP,KAAKQ,SAAW,GAChBR,KAAKS,KAAM,CACf,CACAZ,IAAAA,CAAKC,GACD,GAAKA,EAAL,CAeA,QAZsBY,IAAlBZ,EAAKS,WACLP,KAAKO,SAAWT,EAAKS,eAEHG,IAAlBZ,EAAKU,WACLR,KAAKQ,SAAWV,EAAKU,eAERE,IAAbZ,EAAKW,MACLT,KAAKS,IAAMX,EAAKW,UAECC,IAAjBZ,EAAKa,UACLX,KAAKW,QAAUb,EAAKa,cAELD,IAAfZ,EAAKc,MAAqB,CAC1B,MAAMC,GAAcC,EAAAA,EAAAA,IAAQd,KAAKY,YAASF,EAAYV,KAAKY,MAC3DZ,KAAKY,OAAQV,EAAAA,EAAAA,IAA0BJ,EAAKc,OAAQA,GACzCG,EAAAA,GAAaC,OAAOH,EAAaD,IAEhD,MACkBF,IAAdZ,EAAKmB,OACLjB,KAAKiB,KAAOnB,EAAKmB,KApBrB,CAsBJ,E,gDC/BG,MAAMZ,UAAkBT,EAAAA,EAC3BU,WAAAA,GACIP,QACAC,KAAKkB,UAAY,EACrB,CACArB,IAAAA,CAAKC,GACDC,MAAMF,KAAKC,GACNA,QAGkBY,IAAnBZ,EAAKoB,YACLlB,KAAKkB,UAAYpB,EAAKoB,UAE9B,E,sFCdGC,eAAeC,EAA8BC,GAAwB,IAAhBC,IAAOC,UAAAC,OAAA,QAAAd,IAAAa,UAAA,KAAAA,UAAA,SACzDF,EAAOI,cAAc,kBAAkBN,UACzC,MAAM,QAAEO,SAAkB,+BAC1B,OAAO,IAAIA,EAAQC,EAAU,GAC9BL,EACP,C","sources":["../node_modules/@tsparticles/interaction-external-bubble/browser/Options/Classes/Bubble.js","../node_modules/@tsparticles/interaction-external-bubble/browser/Options/Classes/BubbleBase.js","../node_modules/@tsparticles/interaction-external-bubble/browser/Options/Classes/BubbleDiv.js","../node_modules/@tsparticles/interaction-external-bubble/browser/index.js"],"sourcesContent":["import { executeOnSingleOrMultiple, } from \"@tsparticles/engine\";\nimport { BubbleBase } from \"./BubbleBase.js\";\nimport { BubbleDiv } from \"./BubbleDiv.js\";\nexport class Bubble extends BubbleBase {\n load(data) {\n super.load(data);\n if (!data) {\n return;\n }\n this.divs = executeOnSingleOrMultiple(data.divs, (div) => {\n const tmp = new BubbleDiv();\n tmp.load(div);\n return tmp;\n });\n }\n}\n","import { OptionsColor, executeOnSingleOrMultiple, isArray, } from \"@tsparticles/engine\";\nexport class BubbleBase {\n constructor() {\n this.distance = 200;\n this.duration = 0.4;\n this.mix = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n if (data.duration !== undefined) {\n this.duration = data.duration;\n }\n if (data.mix !== undefined) {\n this.mix = data.mix;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n if (data.color !== undefined) {\n const sourceColor = isArray(this.color) ? undefined : this.color;\n this.color = executeOnSingleOrMultiple(data.color, (color) => {\n return OptionsColor.create(sourceColor, color);\n });\n }\n if (data.size !== undefined) {\n this.size = data.size;\n }\n }\n}\n","import { BubbleBase } from \"./BubbleBase.js\";\nexport class BubbleDiv extends BubbleBase {\n constructor() {\n super();\n this.selectors = [];\n }\n load(data) {\n super.load(data);\n if (!data) {\n return;\n }\n if (data.selectors !== undefined) {\n this.selectors = data.selectors;\n }\n }\n}\n","export async function loadExternalBubbleInteraction(engine, refresh = true) {\n await engine.addInteractor(\"externalBubble\", async (container) => {\n const { Bubbler } = await import(\"./Bubbler.js\");\n return new Bubbler(container);\n }, refresh);\n}\nexport * from \"./Options/Classes/BubbleBase.js\";\nexport * from \"./Options/Classes/BubbleDiv.js\";\nexport * from \"./Options/Classes/Bubble.js\";\nexport * from \"./Options/Interfaces/IBubbleBase.js\";\nexport * from \"./Options/Interfaces/IBubbleDiv.js\";\nexport * from \"./Options/Interfaces/IBubble.js\";\n"],"names":["Bubble","BubbleBase","load","data","super","this","divs","executeOnSingleOrMultiple","div","tmp","BubbleDiv","constructor","distance","duration","mix","undefined","opacity","color","sourceColor","isArray","OptionsColor","create","size","selectors","async","loadExternalBubbleInteraction","engine","refresh","arguments","length","addInteractor","Bubbler","container"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/3764.fc97e668.chunk.js","mappings":"qJAGO,MAAMA,UAAeC,EAAAA,EACxBC,IAAAA,CAAKC,GACDC,MAAMF,KAAKC,GACNA,IAGLE,KAAKC,MAAOC,EAAAA,EAAAA,IAA0BJ,EAAKG,MAAOE,IAC9C,MAAMC,EAAM,IAAIC,EAAAA,EAEhB,OADAD,EAAIP,KAAKM,GACFC,CAAG,IAElB,E,gDCbG,MAAMR,EACTU,WAAAA,GACIN,KAAKO,SAAW,IAChBP,KAAKQ,SAAW,GAChBR,KAAKS,KAAM,CACf,CACAZ,IAAAA,CAAKC,GACD,GAAKA,EAAL,CAeA,QAZsBY,IAAlBZ,EAAKS,WACLP,KAAKO,SAAWT,EAAKS,eAEHG,IAAlBZ,EAAKU,WACLR,KAAKQ,SAAWV,EAAKU,eAERE,IAAbZ,EAAKW,MACLT,KAAKS,IAAMX,EAAKW,UAECC,IAAjBZ,EAAKa,UACLX,KAAKW,QAAUb,EAAKa,cAELD,IAAfZ,EAAKc,MAAqB,CAC1B,MAAMC,GAAcC,EAAAA,EAAAA,IAAQd,KAAKY,YAASF,EAAYV,KAAKY,MAC3DZ,KAAKY,OAAQV,EAAAA,EAAAA,IAA0BJ,EAAKc,OAAQA,GACzCG,EAAAA,GAAaC,OAAOH,EAAaD,IAEhD,MACkBF,IAAdZ,EAAKmB,OACLjB,KAAKiB,KAAOnB,EAAKmB,KApBrB,CAsBJ,E,gDC/BG,MAAMZ,UAAkBT,EAAAA,EAC3BU,WAAAA,GACIP,QACAC,KAAKkB,UAAY,EACrB,CACArB,IAAAA,CAAKC,GACDC,MAAMF,KAAKC,GACNA,QAGkBY,IAAnBZ,EAAKoB,YACLlB,KAAKkB,UAAYpB,EAAKoB,UAE9B,E,sFCdGC,eAAeC,EAA8BC,GAAwB,IAAhBC,IAAOC,UAAAC,OAAA,QAAAd,IAAAa,UAAA,KAAAA,UAAA,SACzDF,EAAOI,cAAc,kBAAkBN,UACzC,MAAM,QAAEO,SAAkB,+BAC1B,OAAO,IAAIA,EAAQC,EAAU,GAC9BL,EACP,C","sources":["../node_modules/@tsparticles/interaction-external-bubble/browser/Options/Classes/Bubble.js","../node_modules/@tsparticles/interaction-external-bubble/browser/Options/Classes/BubbleBase.js","../node_modules/@tsparticles/interaction-external-bubble/browser/Options/Classes/BubbleDiv.js","../node_modules/@tsparticles/interaction-external-bubble/browser/index.js"],"sourcesContent":["import { executeOnSingleOrMultiple, } from \"@tsparticles/engine\";\nimport { BubbleBase } from \"./BubbleBase.js\";\nimport { BubbleDiv } from \"./BubbleDiv.js\";\nexport class Bubble extends BubbleBase {\n load(data) {\n super.load(data);\n if (!data) {\n return;\n }\n this.divs = executeOnSingleOrMultiple(data.divs, (div) => {\n const tmp = new BubbleDiv();\n tmp.load(div);\n return tmp;\n });\n }\n}\n","import { OptionsColor, executeOnSingleOrMultiple, isArray, } from \"@tsparticles/engine\";\nexport class BubbleBase {\n constructor() {\n this.distance = 200;\n this.duration = 0.4;\n this.mix = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n if (data.duration !== undefined) {\n this.duration = data.duration;\n }\n if (data.mix !== undefined) {\n this.mix = data.mix;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n if (data.color !== undefined) {\n const sourceColor = isArray(this.color) ? undefined : this.color;\n this.color = executeOnSingleOrMultiple(data.color, (color) => {\n return OptionsColor.create(sourceColor, color);\n });\n }\n if (data.size !== undefined) {\n this.size = data.size;\n }\n }\n}\n","import { BubbleBase } from \"./BubbleBase.js\";\nexport class BubbleDiv extends BubbleBase {\n constructor() {\n super();\n this.selectors = [];\n }\n load(data) {\n super.load(data);\n if (!data) {\n return;\n }\n if (data.selectors !== undefined) {\n this.selectors = data.selectors;\n }\n }\n}\n","export async function loadExternalBubbleInteraction(engine, refresh = true) {\n await engine.addInteractor(\"externalBubble\", async (container) => {\n const { Bubbler } = await import(\"./Bubbler.js\");\n return new Bubbler(container);\n }, refresh);\n}\nexport * from \"./Options/Classes/BubbleBase.js\";\nexport * from \"./Options/Classes/BubbleDiv.js\";\nexport * from \"./Options/Classes/Bubble.js\";\nexport * from \"./Options/Interfaces/IBubbleBase.js\";\nexport * from \"./Options/Interfaces/IBubbleDiv.js\";\nexport * from \"./Options/Interfaces/IBubble.js\";\n"],"names":["Bubble","BubbleBase","load","data","super","this","divs","executeOnSingleOrMultiple","div","tmp","BubbleDiv","constructor","distance","duration","mix","undefined","opacity","color","sourceColor","isArray","OptionsColor","create","size","selectors","async","loadExternalBubbleInteraction","engine","refresh","arguments","length","addInteractor","Bubbler","container"],"sourceRoot":""} \ No newline at end of file diff --git a/build/static/js/39.1b800acb.chunk.js b/build/static/js/39.1b800acb.chunk.js new file mode 100644 index 0000000..df1285f --- /dev/null +++ b/build/static/js/39.1b800acb.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkresview=self.webpackChunkresview||[]).push([[39],{39:(e,n,t)=>{async function a(e){let n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];await e.addInteractor("particlesLinks",(async e=>{const{Linker:n}=await t.e(6118).then(t.bind(t,6118));return new n(e)}),n)}t.d(n,{loadLinksInteraction:()=>a})}}]); +//# sourceMappingURL=39.1b800acb.chunk.js.map \ No newline at end of file diff --git a/build/static/js/39.cbc755af.chunk.js.map b/build/static/js/39.1b800acb.chunk.js.map similarity index 83% rename from build/static/js/39.cbc755af.chunk.js.map rename to build/static/js/39.1b800acb.chunk.js.map index 812bb9f..c403d60 100644 --- a/build/static/js/39.cbc755af.chunk.js.map +++ b/build/static/js/39.1b800acb.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/39.cbc755af.chunk.js","mappings":"4FAAOA,eAAeC,EAAqBC,GAAwB,IAAhBC,IAAOC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,KAAAA,UAAA,SAChDF,EAAOK,cAAc,kBAAkBP,UACzC,MAAM,OAAEQ,SAAiB,+BACzB,OAAO,IAAIA,EAAOC,EAAU,GAC7BN,EACP,C","sources":["../node_modules/@tsparticles/interaction-particles-links/browser/interaction.js"],"sourcesContent":["export async function loadLinksInteraction(engine, refresh = true) {\n await engine.addInteractor(\"particlesLinks\", async (container) => {\n const { Linker } = await import(\"./Linker.js\");\n return new Linker(container);\n }, refresh);\n}\n"],"names":["async","loadLinksInteraction","engine","refresh","arguments","length","undefined","addInteractor","Linker","container"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/39.1b800acb.chunk.js","mappings":"8FAAOA,eAAeC,EAAqBC,GAAwB,IAAhBC,IAAOC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,KAAAA,UAAA,SAChDF,EAAOK,cAAc,kBAAkBP,UACzC,MAAM,OAAEQ,SAAiB,+BACzB,OAAO,IAAIA,EAAOC,EAAU,GAC7BN,EACP,C","sources":["../node_modules/@tsparticles/interaction-particles-links/browser/interaction.js"],"sourcesContent":["export async function loadLinksInteraction(engine, refresh = true) {\n await engine.addInteractor(\"particlesLinks\", async (container) => {\n const { Linker } = await import(\"./Linker.js\");\n return new Linker(container);\n }, refresh);\n}\n"],"names":["async","loadLinksInteraction","engine","refresh","arguments","length","undefined","addInteractor","Linker","container"],"sourceRoot":""} \ No newline at end of file diff --git a/build/static/js/39.cbc755af.chunk.js b/build/static/js/39.cbc755af.chunk.js deleted file mode 100644 index 368a995..0000000 --- a/build/static/js/39.cbc755af.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkclient=self.webpackChunkclient||[]).push([[39],{39:(n,e,t)=>{async function a(n){let e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];await n.addInteractor("particlesLinks",(async n=>{const{Linker:e}=await t.e(6118).then(t.bind(t,6118));return new e(n)}),e)}t.d(e,{loadLinksInteraction:()=>a})}}]); -//# sourceMappingURL=39.cbc755af.chunk.js.map \ No newline at end of file diff --git a/build/static/js/4265.1a87f8a3.chunk.js b/build/static/js/4265.1a87f8a3.chunk.js new file mode 100644 index 0000000..349537d --- /dev/null +++ b/build/static/js/4265.1a87f8a3.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkresview=self.webpackChunkresview||[]).push([[4265],{4265:(t,i,o)=>{o.d(i,{OutOfCanvasUpdater:()=>d});var e=o(4409);class s{constructor(t){this.container=t,this.modes=["bounce","split"]}update(t,i,o,s){if(!this.modes.includes(s))return;const n=this.container;let r=!1;for(const[,e]of n.plugins)if(void 0!==e.particleBounce&&(r=e.particleBounce(t,o,i)),r)break;if(r)return;const a=t.getPosition(),c=t.offset,d=t.getRadius(),u=(0,e.AE)(a,d),p=n.canvas.size;!function(t){if("bounce"!==t.outMode&&"split"!==t.outMode||"left"!==t.direction&&"right"!==t.direction)return;t.bounds.right<0&&"left"===t.direction?t.particle.position.x=t.size+t.offset.x:t.bounds.left>t.canvasSize.width&&"right"===t.direction&&(t.particle.position.x=t.canvasSize.width-t.size-t.offset.x);const i=t.particle.velocity.x;let o=!1;if("right"===t.direction&&t.bounds.right>=t.canvasSize.width&&i>0||"left"===t.direction&&t.bounds.left<=0&&i<0){const i=(0,e.VG)(t.particle.options.bounce.horizontal.value);t.particle.velocity.x*=-i,o=!0}if(!o)return;const s=t.offset.x+t.size;t.bounds.right>=t.canvasSize.width&&"right"===t.direction?t.particle.position.x=t.canvasSize.width-s:t.bounds.left<=0&&"left"===t.direction&&(t.particle.position.x=s),"split"===t.outMode&&t.particle.destroy()}({particle:t,outMode:s,direction:i,bounds:u,canvasSize:p,offset:c,size:d}),function(t){if("bounce"!==t.outMode&&"split"!==t.outMode||"bottom"!==t.direction&&"top"!==t.direction)return;t.bounds.bottom<0&&"top"===t.direction?t.particle.position.y=t.size+t.offset.y:t.bounds.top>t.canvasSize.height&&"bottom"===t.direction&&(t.particle.position.y=t.canvasSize.height-t.size-t.offset.y);const i=t.particle.velocity.y;let o=!1;if("bottom"===t.direction&&t.bounds.bottom>=t.canvasSize.height&&i>0||"top"===t.direction&&t.bounds.top<=0&&i<0){const i=(0,e.VG)(t.particle.options.bounce.vertical.value);t.particle.velocity.y*=-i,o=!0}if(!o)return;const s=t.offset.y+t.size;t.bounds.bottom>=t.canvasSize.height&&"bottom"===t.direction?t.particle.position.y=t.canvasSize.height-s:t.bounds.top<=0&&"top"===t.direction&&(t.particle.position.y=s),"split"===t.outMode&&t.particle.destroy()}({particle:t,outMode:s,direction:i,bounds:u,canvasSize:p,offset:c,size:d})}}class n{constructor(t){this.container=t,this.modes=["destroy"]}update(t,i,o,s){if(!this.modes.includes(s))return;const n=this.container;switch(t.outType){case"normal":case"outside":if((0,e.Tj)(t.position,n.canvas.size,e.Mi.origin,t.getRadius(),i))return;break;case"inside":{const{dx:i,dy:o}=(0,e.vr)(t.position,t.moveCenter),{x:s,y:n}=t.velocity;if(s<0&&i>t.moveCenter.radius||n<0&&o>t.moveCenter.radius||s>=0&&i<-t.moveCenter.radius||n>=0&&o<-t.moveCenter.radius)return;break}}n.particles.remove(t,void 0,!0)}}class r{constructor(t){this.container=t,this.modes=["none"]}update(t,i,o,s){var n;if(!this.modes.includes(s))return;if(null!==(n=t.options.move.distance.horizontal&&("left"===i||"right"===i))&&void 0!==n?n:t.options.move.distance.vertical&&("top"===i||"bottom"===i))return;const r=t.options.move.gravity,a=this.container,c=a.canvas.size,d=t.getRadius();if(r.enable){const o=t.position;(!r.inverse&&o.y>c.height+d&&"bottom"===i||r.inverse&&o.y<-d&&"top"===i)&&a.particles.remove(t)}else{if(t.velocity.y>0&&t.position.y<=c.height+d||t.velocity.y<0&&t.position.y>=-d||t.velocity.x>0&&t.position.x<=c.width+d||t.velocity.x<0&&t.position.x>=-d)return;(0,e.Tj)(t.position,a.canvas.size,e.Mi.origin,d,i)||a.particles.remove(t)}}}class a{constructor(t){this.container=t,this.modes=["out"]}update(t,i,o,s){if(!this.modes.includes(s))return;const n=this.container;switch(t.outType){case"inside":{const{x:i,y:o}=t.velocity,s=e.Mi.origin;s.length=t.moveCenter.radius,s.angle=t.velocity.angle+Math.PI,s.addTo(e.Mi.create(t.moveCenter));const{dx:r,dy:a}=(0,e.vr)(t.position,s);if(i<=0&&r>=0||o<=0&&a>=0||i>=0&&r<=0||o>=0&&a<=0)return;t.position.x=Math.floor((0,e.BH)({min:0,max:n.canvas.size.width})),t.position.y=Math.floor((0,e.BH)({min:0,max:n.canvas.size.height}));const{dx:c,dy:d}=(0,e.vr)(t.position,t.moveCenter);t.direction=Math.atan2(-d,-c),t.velocity.angle=t.direction;break}default:if((0,e.Tj)(t.position,n.canvas.size,e.Mi.origin,t.getRadius(),i))return;switch(t.outType){case"outside":{t.position.x=Math.floor((0,e.BH)({min:-t.moveCenter.radius,max:t.moveCenter.radius}))+t.moveCenter.x,t.position.y=Math.floor((0,e.BH)({min:-t.moveCenter.radius,max:t.moveCenter.radius}))+t.moveCenter.y;const{dx:i,dy:o}=(0,e.vr)(t.position,t.moveCenter);t.moveCenter.radius&&(t.direction=Math.atan2(o,i),t.velocity.angle=t.direction);break}case"normal":{const o=t.options.move.warp,s=n.canvas.size,r={bottom:s.height+t.getRadius()+t.offset.y,left:-t.getRadius()-t.offset.x,right:s.width+t.getRadius()+t.offset.x,top:-t.getRadius()-t.offset.y},a=t.getRadius(),c=(0,e.AE)(t.position,a);"right"===i&&c.left>s.width+t.offset.x?(t.position.x=r.left,t.initialPosition.x=t.position.x,o||(t.position.y=(0,e.G0)()*s.height,t.initialPosition.y=t.position.y)):"left"===i&&c.right<-t.offset.x&&(t.position.x=r.right,t.initialPosition.x=t.position.x,o||(t.position.y=(0,e.G0)()*s.height,t.initialPosition.y=t.position.y)),"bottom"===i&&c.top>s.height+t.offset.y?(o||(t.position.x=(0,e.G0)()*s.width,t.initialPosition.x=t.position.x),t.position.y=r.top,t.initialPosition.y=t.position.y):"top"===i&&c.bottom<-t.offset.y&&(o||(t.position.x=(0,e.G0)()*s.width,t.initialPosition.x=t.position.x),t.position.y=r.bottom,t.initialPosition.y=t.position.y);break}}}}}const c=(t,i)=>t.default===i||t.bottom===i||t.left===i||t.right===i||t.top===i;class d{constructor(t){this._updateOutMode=(t,i,o,e)=>{for(const s of this.updaters)s.update(t,e,i,o)},this.container=t,this.updaters=[]}init(t){this.updaters=[];const i=t.options.move.outModes;c(i,"bounce")?this.updaters.push(new s(this.container)):c(i,"out")?this.updaters.push(new a(this.container)):c(i,"destroy")?this.updaters.push(new n(this.container)):c(i,"none")&&this.updaters.push(new r(this.container))}isEnabled(t){return!t.destroyed&&!t.spawning}update(t,i){var o,e,s,n;const r=t.options.move.outModes;this._updateOutMode(t,i,null!==(o=r.bottom)&&void 0!==o?o:r.default,"bottom"),this._updateOutMode(t,i,null!==(e=r.left)&&void 0!==e?e:r.default,"left"),this._updateOutMode(t,i,null!==(s=r.right)&&void 0!==s?s:r.default,"right"),this._updateOutMode(t,i,null!==(n=r.top)&&void 0!==n?n:r.default,"top")}}}}]); +//# sourceMappingURL=4265.1a87f8a3.chunk.js.map \ No newline at end of file diff --git a/build/static/js/4265.8b2e34fd.chunk.js.map b/build/static/js/4265.1a87f8a3.chunk.js.map similarity index 99% rename from build/static/js/4265.8b2e34fd.chunk.js.map rename to build/static/js/4265.1a87f8a3.chunk.js.map index b29911f..1dcd8ab 100644 --- a/build/static/js/4265.8b2e34fd.chunk.js.map +++ b/build/static/js/4265.1a87f8a3.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/4265.8b2e34fd.chunk.js","mappings":"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","sources":["../node_modules/@tsparticles/updater-out-modes/browser/BounceOutMode.js","../node_modules/@tsparticles/updater-out-modes/browser/Utils.js","../node_modules/@tsparticles/updater-out-modes/browser/DestroyOutMode.js","../node_modules/@tsparticles/updater-out-modes/browser/NoneOutMode.js","../node_modules/@tsparticles/updater-out-modes/browser/OutOutMode.js","../node_modules/@tsparticles/updater-out-modes/browser/OutOfCanvasUpdater.js"],"sourcesContent":["import { calculateBounds, } from \"@tsparticles/engine\";\nimport { bounceHorizontal, bounceVertical } from \"./Utils.js\";\nexport class BounceOutMode {\n constructor(container) {\n this.container = container;\n this.modes = [\n \"bounce\",\n \"split\",\n ];\n }\n update(particle, direction, delta, outMode) {\n if (!this.modes.includes(outMode)) {\n return;\n }\n const container = this.container;\n let handled = false;\n for (const [, plugin] of container.plugins) {\n if (plugin.particleBounce !== undefined) {\n handled = plugin.particleBounce(particle, delta, direction);\n }\n if (handled) {\n break;\n }\n }\n if (handled) {\n return;\n }\n const pos = particle.getPosition(), offset = particle.offset, size = particle.getRadius(), bounds = calculateBounds(pos, size), canvasSize = container.canvas.size;\n bounceHorizontal({ particle, outMode, direction, bounds, canvasSize, offset, size });\n bounceVertical({ particle, outMode, direction, bounds, canvasSize, offset, size });\n }\n}\n","import { getRangeValue } from \"@tsparticles/engine\";\nconst minVelocity = 0, boundsMin = 0;\nexport function bounceHorizontal(data) {\n if ((data.outMode !== \"bounce\" && data.outMode !== \"split\") ||\n (data.direction !== \"left\" && data.direction !== \"right\")) {\n return;\n }\n if (data.bounds.right < boundsMin && data.direction === \"left\") {\n data.particle.position.x = data.size + data.offset.x;\n }\n else if (data.bounds.left > data.canvasSize.width && data.direction === \"right\") {\n data.particle.position.x = data.canvasSize.width - data.size - data.offset.x;\n }\n const velocity = data.particle.velocity.x;\n let bounced = false;\n if ((data.direction === \"right\" &&\n data.bounds.right >= data.canvasSize.width &&\n velocity > minVelocity) ||\n (data.direction === \"left\" && data.bounds.left <= boundsMin && velocity < minVelocity)) {\n const newVelocity = getRangeValue(data.particle.options.bounce.horizontal.value);\n data.particle.velocity.x *= -newVelocity;\n bounced = true;\n }\n if (!bounced) {\n return;\n }\n const minPos = data.offset.x + data.size;\n if (data.bounds.right >= data.canvasSize.width && data.direction === \"right\") {\n data.particle.position.x = data.canvasSize.width - minPos;\n }\n else if (data.bounds.left <= boundsMin && data.direction === \"left\") {\n data.particle.position.x = minPos;\n }\n if (data.outMode === \"split\") {\n data.particle.destroy();\n }\n}\nexport function bounceVertical(data) {\n if ((data.outMode !== \"bounce\" && data.outMode !== \"split\") ||\n (data.direction !== \"bottom\" && data.direction !== \"top\")) {\n return;\n }\n if (data.bounds.bottom < boundsMin && data.direction === \"top\") {\n data.particle.position.y = data.size + data.offset.y;\n }\n else if (data.bounds.top > data.canvasSize.height && data.direction === \"bottom\") {\n data.particle.position.y = data.canvasSize.height - data.size - data.offset.y;\n }\n const velocity = data.particle.velocity.y;\n let bounced = false;\n if ((data.direction === \"bottom\" &&\n data.bounds.bottom >= data.canvasSize.height &&\n velocity > minVelocity) ||\n (data.direction === \"top\" && data.bounds.top <= boundsMin && velocity < minVelocity)) {\n const newVelocity = getRangeValue(data.particle.options.bounce.vertical.value);\n data.particle.velocity.y *= -newVelocity;\n bounced = true;\n }\n if (!bounced) {\n return;\n }\n const minPos = data.offset.y + data.size;\n if (data.bounds.bottom >= data.canvasSize.height && data.direction === \"bottom\") {\n data.particle.position.y = data.canvasSize.height - minPos;\n }\n else if (data.bounds.top <= boundsMin && data.direction === \"top\") {\n data.particle.position.y = minPos;\n }\n if (data.outMode === \"split\") {\n data.particle.destroy();\n }\n}\n","import { Vector, getDistances, isPointInside, } from \"@tsparticles/engine\";\nconst minVelocity = 0;\nexport class DestroyOutMode {\n constructor(container) {\n this.container = container;\n this.modes = [\"destroy\"];\n }\n update(particle, direction, _delta, outMode) {\n if (!this.modes.includes(outMode)) {\n return;\n }\n const container = this.container;\n switch (particle.outType) {\n case \"normal\":\n case \"outside\":\n if (isPointInside(particle.position, container.canvas.size, Vector.origin, particle.getRadius(), direction)) {\n return;\n }\n break;\n case \"inside\": {\n const { dx, dy } = getDistances(particle.position, particle.moveCenter), { x: vx, y: vy } = particle.velocity;\n if ((vx < minVelocity && dx > particle.moveCenter.radius) ||\n (vy < minVelocity && dy > particle.moveCenter.radius) ||\n (vx >= minVelocity && dx < -particle.moveCenter.radius) ||\n (vy >= minVelocity && dy < -particle.moveCenter.radius)) {\n return;\n }\n break;\n }\n }\n container.particles.remove(particle, undefined, true);\n }\n}\n","import { Vector, isPointInside, } from \"@tsparticles/engine\";\nconst minVelocity = 0;\nexport class NoneOutMode {\n constructor(container) {\n this.container = container;\n this.modes = [\"none\"];\n }\n update(particle, direction, delta, outMode) {\n if (!this.modes.includes(outMode)) {\n return;\n }\n if ((particle.options.move.distance.horizontal &&\n (direction === \"left\" || direction === \"right\")) ??\n (particle.options.move.distance.vertical &&\n (direction === \"top\" || direction === \"bottom\"))) {\n return;\n }\n const gravityOptions = particle.options.move.gravity, container = this.container, canvasSize = container.canvas.size, pRadius = particle.getRadius();\n if (!gravityOptions.enable) {\n if ((particle.velocity.y > minVelocity && particle.position.y <= canvasSize.height + pRadius) ||\n (particle.velocity.y < minVelocity && particle.position.y >= -pRadius) ||\n (particle.velocity.x > minVelocity && particle.position.x <= canvasSize.width + pRadius) ||\n (particle.velocity.x < minVelocity && particle.position.x >= -pRadius)) {\n return;\n }\n if (!isPointInside(particle.position, container.canvas.size, Vector.origin, pRadius, direction)) {\n container.particles.remove(particle);\n }\n }\n else {\n const position = particle.position;\n if ((!gravityOptions.inverse &&\n position.y > canvasSize.height + pRadius &&\n direction === \"bottom\") ||\n (gravityOptions.inverse && position.y < -pRadius && direction === \"top\")) {\n container.particles.remove(particle);\n }\n }\n }\n}\n","import { Vector, calculateBounds, getDistances, getRandom, isPointInside, randomInRange, } from \"@tsparticles/engine\";\nconst minVelocity = 0, minDistance = 0;\nexport class OutOutMode {\n constructor(container) {\n this.container = container;\n this.modes = [\"out\"];\n }\n update(particle, direction, delta, outMode) {\n if (!this.modes.includes(outMode)) {\n return;\n }\n const container = this.container;\n switch (particle.outType) {\n case \"inside\": {\n const { x: vx, y: vy } = particle.velocity;\n const circVec = Vector.origin;\n circVec.length = particle.moveCenter.radius;\n circVec.angle = particle.velocity.angle + Math.PI;\n circVec.addTo(Vector.create(particle.moveCenter));\n const { dx, dy } = getDistances(particle.position, circVec);\n if ((vx <= minVelocity && dx >= minDistance) ||\n (vy <= minVelocity && dy >= minDistance) ||\n (vx >= minVelocity && dx <= minDistance) ||\n (vy >= minVelocity && dy <= minDistance)) {\n return;\n }\n particle.position.x = Math.floor(randomInRange({\n min: 0,\n max: container.canvas.size.width,\n }));\n particle.position.y = Math.floor(randomInRange({\n min: 0,\n max: container.canvas.size.height,\n }));\n const { dx: newDx, dy: newDy } = getDistances(particle.position, particle.moveCenter);\n particle.direction = Math.atan2(-newDy, -newDx);\n particle.velocity.angle = particle.direction;\n break;\n }\n default: {\n if (isPointInside(particle.position, container.canvas.size, Vector.origin, particle.getRadius(), direction)) {\n return;\n }\n switch (particle.outType) {\n case \"outside\": {\n particle.position.x =\n Math.floor(randomInRange({\n min: -particle.moveCenter.radius,\n max: particle.moveCenter.radius,\n })) + particle.moveCenter.x;\n particle.position.y =\n Math.floor(randomInRange({\n min: -particle.moveCenter.radius,\n max: particle.moveCenter.radius,\n })) + particle.moveCenter.y;\n const { dx, dy } = getDistances(particle.position, particle.moveCenter);\n if (particle.moveCenter.radius) {\n particle.direction = Math.atan2(dy, dx);\n particle.velocity.angle = particle.direction;\n }\n break;\n }\n case \"normal\": {\n const warp = particle.options.move.warp, canvasSize = container.canvas.size, newPos = {\n bottom: canvasSize.height + particle.getRadius() + particle.offset.y,\n left: -particle.getRadius() - particle.offset.x,\n right: canvasSize.width + particle.getRadius() + particle.offset.x,\n top: -particle.getRadius() - particle.offset.y,\n }, sizeValue = particle.getRadius(), nextBounds = calculateBounds(particle.position, sizeValue);\n if (direction === \"right\" &&\n nextBounds.left > canvasSize.width + particle.offset.x) {\n particle.position.x = newPos.left;\n particle.initialPosition.x = particle.position.x;\n if (!warp) {\n particle.position.y = getRandom() * canvasSize.height;\n particle.initialPosition.y = particle.position.y;\n }\n }\n else if (direction === \"left\" && nextBounds.right < -particle.offset.x) {\n particle.position.x = newPos.right;\n particle.initialPosition.x = particle.position.x;\n if (!warp) {\n particle.position.y = getRandom() * canvasSize.height;\n particle.initialPosition.y = particle.position.y;\n }\n }\n if (direction === \"bottom\" &&\n nextBounds.top > canvasSize.height + particle.offset.y) {\n if (!warp) {\n particle.position.x = getRandom() * canvasSize.width;\n particle.initialPosition.x = particle.position.x;\n }\n particle.position.y = newPos.top;\n particle.initialPosition.y = particle.position.y;\n }\n else if (direction === \"top\" && nextBounds.bottom < -particle.offset.y) {\n if (!warp) {\n particle.position.x = getRandom() * canvasSize.width;\n particle.initialPosition.x = particle.position.x;\n }\n particle.position.y = newPos.bottom;\n particle.initialPosition.y = particle.position.y;\n }\n break;\n }\n }\n break;\n }\n }\n }\n}\n","import { BounceOutMode } from \"./BounceOutMode.js\";\nimport { DestroyOutMode } from \"./DestroyOutMode.js\";\nimport { NoneOutMode } from \"./NoneOutMode.js\";\nimport { OutOutMode } from \"./OutOutMode.js\";\nconst checkOutMode = (outModes, outMode) => {\n return (outModes.default === outMode ||\n outModes.bottom === outMode ||\n outModes.left === outMode ||\n outModes.right === outMode ||\n outModes.top === outMode);\n};\nexport class OutOfCanvasUpdater {\n constructor(container) {\n this._updateOutMode = (particle, delta, outMode, direction) => {\n for (const updater of this.updaters) {\n updater.update(particle, direction, delta, outMode);\n }\n };\n this.container = container;\n this.updaters = [];\n }\n init(particle) {\n this.updaters = [];\n const outModes = particle.options.move.outModes;\n if (checkOutMode(outModes, \"bounce\")) {\n this.updaters.push(new BounceOutMode(this.container));\n }\n else if (checkOutMode(outModes, \"out\")) {\n this.updaters.push(new OutOutMode(this.container));\n }\n else if (checkOutMode(outModes, \"destroy\")) {\n this.updaters.push(new DestroyOutMode(this.container));\n }\n else if (checkOutMode(outModes, \"none\")) {\n this.updaters.push(new NoneOutMode(this.container));\n }\n }\n isEnabled(particle) {\n return !particle.destroyed && !particle.spawning;\n }\n update(particle, delta) {\n const outModes = particle.options.move.outModes;\n this._updateOutMode(particle, delta, outModes.bottom ?? outModes.default, \"bottom\");\n this._updateOutMode(particle, delta, outModes.left ?? outModes.default, \"left\");\n this._updateOutMode(particle, delta, outModes.right ?? outModes.default, \"right\");\n this._updateOutMode(particle, delta, outModes.top ?? outModes.default, \"top\");\n }\n}\n"],"names":["BounceOutMode","constructor","container","this","modes","update","particle","direction","delta","outMode","includes","handled","plugin","plugins","undefined","particleBounce","pos","getPosition","offset","size","getRadius","bounds","calculateBounds","canvasSize","canvas","data","right","position","x","left","width","velocity","bounced","newVelocity","getRangeValue","options","bounce","horizontal","value","minPos","destroy","bounceHorizontal","bottom","y","top","height","vertical","bounceVertical","DestroyOutMode","_delta","outType","isPointInside","Vector","origin","dx","dy","getDistances","moveCenter","vx","vy","radius","particles","remove","NoneOutMode","_ref","move","distance","gravityOptions","gravity","pRadius","enable","inverse","OutOutMode","circVec","length","angle","Math","PI","addTo","create","floor","randomInRange","min","max","newDx","newDy","atan2","warp","newPos","sizeValue","nextBounds","initialPosition","getRandom","checkOutMode","outModes","default","OutOfCanvasUpdater","_updateOutMode","updater","updaters","init","push","isEnabled","destroyed","spawning","_outModes$bottom","_outModes$left","_outModes$right","_outModes$top"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/4265.1a87f8a3.chunk.js","mappings":"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","sources":["../node_modules/@tsparticles/updater-out-modes/browser/BounceOutMode.js","../node_modules/@tsparticles/updater-out-modes/browser/Utils.js","../node_modules/@tsparticles/updater-out-modes/browser/DestroyOutMode.js","../node_modules/@tsparticles/updater-out-modes/browser/NoneOutMode.js","../node_modules/@tsparticles/updater-out-modes/browser/OutOutMode.js","../node_modules/@tsparticles/updater-out-modes/browser/OutOfCanvasUpdater.js"],"sourcesContent":["import { calculateBounds, } from \"@tsparticles/engine\";\nimport { bounceHorizontal, bounceVertical } from \"./Utils.js\";\nexport class BounceOutMode {\n constructor(container) {\n this.container = container;\n this.modes = [\n \"bounce\",\n \"split\",\n ];\n }\n update(particle, direction, delta, outMode) {\n if (!this.modes.includes(outMode)) {\n return;\n }\n const container = this.container;\n let handled = false;\n for (const [, plugin] of container.plugins) {\n if (plugin.particleBounce !== undefined) {\n handled = plugin.particleBounce(particle, delta, direction);\n }\n if (handled) {\n break;\n }\n }\n if (handled) {\n return;\n }\n const pos = particle.getPosition(), offset = particle.offset, size = particle.getRadius(), bounds = calculateBounds(pos, size), canvasSize = container.canvas.size;\n bounceHorizontal({ particle, outMode, direction, bounds, canvasSize, offset, size });\n bounceVertical({ particle, outMode, direction, bounds, canvasSize, offset, size });\n }\n}\n","import { getRangeValue } from \"@tsparticles/engine\";\nconst minVelocity = 0, boundsMin = 0;\nexport function bounceHorizontal(data) {\n if ((data.outMode !== \"bounce\" && data.outMode !== \"split\") ||\n (data.direction !== \"left\" && data.direction !== \"right\")) {\n return;\n }\n if (data.bounds.right < boundsMin && data.direction === \"left\") {\n data.particle.position.x = data.size + data.offset.x;\n }\n else if (data.bounds.left > data.canvasSize.width && data.direction === \"right\") {\n data.particle.position.x = data.canvasSize.width - data.size - data.offset.x;\n }\n const velocity = data.particle.velocity.x;\n let bounced = false;\n if ((data.direction === \"right\" &&\n data.bounds.right >= data.canvasSize.width &&\n velocity > minVelocity) ||\n (data.direction === \"left\" && data.bounds.left <= boundsMin && velocity < minVelocity)) {\n const newVelocity = getRangeValue(data.particle.options.bounce.horizontal.value);\n data.particle.velocity.x *= -newVelocity;\n bounced = true;\n }\n if (!bounced) {\n return;\n }\n const minPos = data.offset.x + data.size;\n if (data.bounds.right >= data.canvasSize.width && data.direction === \"right\") {\n data.particle.position.x = data.canvasSize.width - minPos;\n }\n else if (data.bounds.left <= boundsMin && data.direction === \"left\") {\n data.particle.position.x = minPos;\n }\n if (data.outMode === \"split\") {\n data.particle.destroy();\n }\n}\nexport function bounceVertical(data) {\n if ((data.outMode !== \"bounce\" && data.outMode !== \"split\") ||\n (data.direction !== \"bottom\" && data.direction !== \"top\")) {\n return;\n }\n if (data.bounds.bottom < boundsMin && data.direction === \"top\") {\n data.particle.position.y = data.size + data.offset.y;\n }\n else if (data.bounds.top > data.canvasSize.height && data.direction === \"bottom\") {\n data.particle.position.y = data.canvasSize.height - data.size - data.offset.y;\n }\n const velocity = data.particle.velocity.y;\n let bounced = false;\n if ((data.direction === \"bottom\" &&\n data.bounds.bottom >= data.canvasSize.height &&\n velocity > minVelocity) ||\n (data.direction === \"top\" && data.bounds.top <= boundsMin && velocity < minVelocity)) {\n const newVelocity = getRangeValue(data.particle.options.bounce.vertical.value);\n data.particle.velocity.y *= -newVelocity;\n bounced = true;\n }\n if (!bounced) {\n return;\n }\n const minPos = data.offset.y + data.size;\n if (data.bounds.bottom >= data.canvasSize.height && data.direction === \"bottom\") {\n data.particle.position.y = data.canvasSize.height - minPos;\n }\n else if (data.bounds.top <= boundsMin && data.direction === \"top\") {\n data.particle.position.y = minPos;\n }\n if (data.outMode === \"split\") {\n data.particle.destroy();\n }\n}\n","import { Vector, getDistances, isPointInside, } from \"@tsparticles/engine\";\nconst minVelocity = 0;\nexport class DestroyOutMode {\n constructor(container) {\n this.container = container;\n this.modes = [\"destroy\"];\n }\n update(particle, direction, _delta, outMode) {\n if (!this.modes.includes(outMode)) {\n return;\n }\n const container = this.container;\n switch (particle.outType) {\n case \"normal\":\n case \"outside\":\n if (isPointInside(particle.position, container.canvas.size, Vector.origin, particle.getRadius(), direction)) {\n return;\n }\n break;\n case \"inside\": {\n const { dx, dy } = getDistances(particle.position, particle.moveCenter), { x: vx, y: vy } = particle.velocity;\n if ((vx < minVelocity && dx > particle.moveCenter.radius) ||\n (vy < minVelocity && dy > particle.moveCenter.radius) ||\n (vx >= minVelocity && dx < -particle.moveCenter.radius) ||\n (vy >= minVelocity && dy < -particle.moveCenter.radius)) {\n return;\n }\n break;\n }\n }\n container.particles.remove(particle, undefined, true);\n }\n}\n","import { Vector, isPointInside, } from \"@tsparticles/engine\";\nconst minVelocity = 0;\nexport class NoneOutMode {\n constructor(container) {\n this.container = container;\n this.modes = [\"none\"];\n }\n update(particle, direction, delta, outMode) {\n if (!this.modes.includes(outMode)) {\n return;\n }\n if ((particle.options.move.distance.horizontal &&\n (direction === \"left\" || direction === \"right\")) ??\n (particle.options.move.distance.vertical &&\n (direction === \"top\" || direction === \"bottom\"))) {\n return;\n }\n const gravityOptions = particle.options.move.gravity, container = this.container, canvasSize = container.canvas.size, pRadius = particle.getRadius();\n if (!gravityOptions.enable) {\n if ((particle.velocity.y > minVelocity && particle.position.y <= canvasSize.height + pRadius) ||\n (particle.velocity.y < minVelocity && particle.position.y >= -pRadius) ||\n (particle.velocity.x > minVelocity && particle.position.x <= canvasSize.width + pRadius) ||\n (particle.velocity.x < minVelocity && particle.position.x >= -pRadius)) {\n return;\n }\n if (!isPointInside(particle.position, container.canvas.size, Vector.origin, pRadius, direction)) {\n container.particles.remove(particle);\n }\n }\n else {\n const position = particle.position;\n if ((!gravityOptions.inverse &&\n position.y > canvasSize.height + pRadius &&\n direction === \"bottom\") ||\n (gravityOptions.inverse && position.y < -pRadius && direction === \"top\")) {\n container.particles.remove(particle);\n }\n }\n }\n}\n","import { Vector, calculateBounds, getDistances, getRandom, isPointInside, randomInRange, } from \"@tsparticles/engine\";\nconst minVelocity = 0, minDistance = 0;\nexport class OutOutMode {\n constructor(container) {\n this.container = container;\n this.modes = [\"out\"];\n }\n update(particle, direction, delta, outMode) {\n if (!this.modes.includes(outMode)) {\n return;\n }\n const container = this.container;\n switch (particle.outType) {\n case \"inside\": {\n const { x: vx, y: vy } = particle.velocity;\n const circVec = Vector.origin;\n circVec.length = particle.moveCenter.radius;\n circVec.angle = particle.velocity.angle + Math.PI;\n circVec.addTo(Vector.create(particle.moveCenter));\n const { dx, dy } = getDistances(particle.position, circVec);\n if ((vx <= minVelocity && dx >= minDistance) ||\n (vy <= minVelocity && dy >= minDistance) ||\n (vx >= minVelocity && dx <= minDistance) ||\n (vy >= minVelocity && dy <= minDistance)) {\n return;\n }\n particle.position.x = Math.floor(randomInRange({\n min: 0,\n max: container.canvas.size.width,\n }));\n particle.position.y = Math.floor(randomInRange({\n min: 0,\n max: container.canvas.size.height,\n }));\n const { dx: newDx, dy: newDy } = getDistances(particle.position, particle.moveCenter);\n particle.direction = Math.atan2(-newDy, -newDx);\n particle.velocity.angle = particle.direction;\n break;\n }\n default: {\n if (isPointInside(particle.position, container.canvas.size, Vector.origin, particle.getRadius(), direction)) {\n return;\n }\n switch (particle.outType) {\n case \"outside\": {\n particle.position.x =\n Math.floor(randomInRange({\n min: -particle.moveCenter.radius,\n max: particle.moveCenter.radius,\n })) + particle.moveCenter.x;\n particle.position.y =\n Math.floor(randomInRange({\n min: -particle.moveCenter.radius,\n max: particle.moveCenter.radius,\n })) + particle.moveCenter.y;\n const { dx, dy } = getDistances(particle.position, particle.moveCenter);\n if (particle.moveCenter.radius) {\n particle.direction = Math.atan2(dy, dx);\n particle.velocity.angle = particle.direction;\n }\n break;\n }\n case \"normal\": {\n const warp = particle.options.move.warp, canvasSize = container.canvas.size, newPos = {\n bottom: canvasSize.height + particle.getRadius() + particle.offset.y,\n left: -particle.getRadius() - particle.offset.x,\n right: canvasSize.width + particle.getRadius() + particle.offset.x,\n top: -particle.getRadius() - particle.offset.y,\n }, sizeValue = particle.getRadius(), nextBounds = calculateBounds(particle.position, sizeValue);\n if (direction === \"right\" &&\n nextBounds.left > canvasSize.width + particle.offset.x) {\n particle.position.x = newPos.left;\n particle.initialPosition.x = particle.position.x;\n if (!warp) {\n particle.position.y = getRandom() * canvasSize.height;\n particle.initialPosition.y = particle.position.y;\n }\n }\n else if (direction === \"left\" && nextBounds.right < -particle.offset.x) {\n particle.position.x = newPos.right;\n particle.initialPosition.x = particle.position.x;\n if (!warp) {\n particle.position.y = getRandom() * canvasSize.height;\n particle.initialPosition.y = particle.position.y;\n }\n }\n if (direction === \"bottom\" &&\n nextBounds.top > canvasSize.height + particle.offset.y) {\n if (!warp) {\n particle.position.x = getRandom() * canvasSize.width;\n particle.initialPosition.x = particle.position.x;\n }\n particle.position.y = newPos.top;\n particle.initialPosition.y = particle.position.y;\n }\n else if (direction === \"top\" && nextBounds.bottom < -particle.offset.y) {\n if (!warp) {\n particle.position.x = getRandom() * canvasSize.width;\n particle.initialPosition.x = particle.position.x;\n }\n particle.position.y = newPos.bottom;\n particle.initialPosition.y = particle.position.y;\n }\n break;\n }\n }\n break;\n }\n }\n }\n}\n","import { BounceOutMode } from \"./BounceOutMode.js\";\nimport { DestroyOutMode } from \"./DestroyOutMode.js\";\nimport { NoneOutMode } from \"./NoneOutMode.js\";\nimport { OutOutMode } from \"./OutOutMode.js\";\nconst checkOutMode = (outModes, outMode) => {\n return (outModes.default === outMode ||\n outModes.bottom === outMode ||\n outModes.left === outMode ||\n outModes.right === outMode ||\n outModes.top === outMode);\n};\nexport class OutOfCanvasUpdater {\n constructor(container) {\n this._updateOutMode = (particle, delta, outMode, direction) => {\n for (const updater of this.updaters) {\n updater.update(particle, direction, delta, outMode);\n }\n };\n this.container = container;\n this.updaters = [];\n }\n init(particle) {\n this.updaters = [];\n const outModes = particle.options.move.outModes;\n if (checkOutMode(outModes, \"bounce\")) {\n this.updaters.push(new BounceOutMode(this.container));\n }\n else if (checkOutMode(outModes, \"out\")) {\n this.updaters.push(new OutOutMode(this.container));\n }\n else if (checkOutMode(outModes, \"destroy\")) {\n this.updaters.push(new DestroyOutMode(this.container));\n }\n else if (checkOutMode(outModes, \"none\")) {\n this.updaters.push(new NoneOutMode(this.container));\n }\n }\n isEnabled(particle) {\n return !particle.destroyed && !particle.spawning;\n }\n update(particle, delta) {\n const outModes = particle.options.move.outModes;\n this._updateOutMode(particle, delta, outModes.bottom ?? outModes.default, \"bottom\");\n this._updateOutMode(particle, delta, outModes.left ?? outModes.default, \"left\");\n this._updateOutMode(particle, delta, outModes.right ?? outModes.default, \"right\");\n this._updateOutMode(particle, delta, outModes.top ?? outModes.default, \"top\");\n }\n}\n"],"names":["BounceOutMode","constructor","container","this","modes","update","particle","direction","delta","outMode","includes","handled","plugin","plugins","undefined","particleBounce","pos","getPosition","offset","size","getRadius","bounds","calculateBounds","canvasSize","canvas","data","right","position","x","left","width","velocity","bounced","newVelocity","getRangeValue","options","bounce","horizontal","value","minPos","destroy","bounceHorizontal","bottom","y","top","height","vertical","bounceVertical","DestroyOutMode","_delta","outType","isPointInside","Vector","origin","dx","dy","getDistances","moveCenter","vx","vy","radius","particles","remove","NoneOutMode","_ref","move","distance","gravityOptions","gravity","pRadius","enable","inverse","OutOutMode","circVec","length","angle","Math","PI","addTo","create","floor","randomInRange","min","max","newDx","newDy","atan2","warp","newPos","sizeValue","nextBounds","initialPosition","getRandom","checkOutMode","outModes","default","OutOfCanvasUpdater","_updateOutMode","updater","updaters","init","push","isEnabled","destroyed","spawning","_outModes$bottom","_outModes$left","_outModes$right","_outModes$top"],"sourceRoot":""} \ No newline at end of file diff --git a/build/static/js/4265.8b2e34fd.chunk.js b/build/static/js/4265.8b2e34fd.chunk.js deleted file mode 100644 index 439153e..0000000 --- a/build/static/js/4265.8b2e34fd.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkclient=self.webpackChunkclient||[]).push([[4265],{4265:(t,i,o)=>{o.d(i,{OutOfCanvasUpdater:()=>d});var e=o(4409);class s{constructor(t){this.container=t,this.modes=["bounce","split"]}update(t,i,o,s){if(!this.modes.includes(s))return;const n=this.container;let r=!1;for(const[,e]of n.plugins)if(void 0!==e.particleBounce&&(r=e.particleBounce(t,o,i)),r)break;if(r)return;const a=t.getPosition(),c=t.offset,d=t.getRadius(),u=(0,e.AE)(a,d),p=n.canvas.size;!function(t){if("bounce"!==t.outMode&&"split"!==t.outMode||"left"!==t.direction&&"right"!==t.direction)return;t.bounds.right<0&&"left"===t.direction?t.particle.position.x=t.size+t.offset.x:t.bounds.left>t.canvasSize.width&&"right"===t.direction&&(t.particle.position.x=t.canvasSize.width-t.size-t.offset.x);const i=t.particle.velocity.x;let o=!1;if("right"===t.direction&&t.bounds.right>=t.canvasSize.width&&i>0||"left"===t.direction&&t.bounds.left<=0&&i<0){const i=(0,e.VG)(t.particle.options.bounce.horizontal.value);t.particle.velocity.x*=-i,o=!0}if(!o)return;const s=t.offset.x+t.size;t.bounds.right>=t.canvasSize.width&&"right"===t.direction?t.particle.position.x=t.canvasSize.width-s:t.bounds.left<=0&&"left"===t.direction&&(t.particle.position.x=s),"split"===t.outMode&&t.particle.destroy()}({particle:t,outMode:s,direction:i,bounds:u,canvasSize:p,offset:c,size:d}),function(t){if("bounce"!==t.outMode&&"split"!==t.outMode||"bottom"!==t.direction&&"top"!==t.direction)return;t.bounds.bottom<0&&"top"===t.direction?t.particle.position.y=t.size+t.offset.y:t.bounds.top>t.canvasSize.height&&"bottom"===t.direction&&(t.particle.position.y=t.canvasSize.height-t.size-t.offset.y);const i=t.particle.velocity.y;let o=!1;if("bottom"===t.direction&&t.bounds.bottom>=t.canvasSize.height&&i>0||"top"===t.direction&&t.bounds.top<=0&&i<0){const i=(0,e.VG)(t.particle.options.bounce.vertical.value);t.particle.velocity.y*=-i,o=!0}if(!o)return;const s=t.offset.y+t.size;t.bounds.bottom>=t.canvasSize.height&&"bottom"===t.direction?t.particle.position.y=t.canvasSize.height-s:t.bounds.top<=0&&"top"===t.direction&&(t.particle.position.y=s),"split"===t.outMode&&t.particle.destroy()}({particle:t,outMode:s,direction:i,bounds:u,canvasSize:p,offset:c,size:d})}}class n{constructor(t){this.container=t,this.modes=["destroy"]}update(t,i,o,s){if(!this.modes.includes(s))return;const n=this.container;switch(t.outType){case"normal":case"outside":if((0,e.Tj)(t.position,n.canvas.size,e.Mi.origin,t.getRadius(),i))return;break;case"inside":{const{dx:i,dy:o}=(0,e.vr)(t.position,t.moveCenter),{x:s,y:n}=t.velocity;if(s<0&&i>t.moveCenter.radius||n<0&&o>t.moveCenter.radius||s>=0&&i<-t.moveCenter.radius||n>=0&&o<-t.moveCenter.radius)return;break}}n.particles.remove(t,void 0,!0)}}class r{constructor(t){this.container=t,this.modes=["none"]}update(t,i,o,s){var n;if(!this.modes.includes(s))return;if(null!==(n=t.options.move.distance.horizontal&&("left"===i||"right"===i))&&void 0!==n?n:t.options.move.distance.vertical&&("top"===i||"bottom"===i))return;const r=t.options.move.gravity,a=this.container,c=a.canvas.size,d=t.getRadius();if(r.enable){const o=t.position;(!r.inverse&&o.y>c.height+d&&"bottom"===i||r.inverse&&o.y<-d&&"top"===i)&&a.particles.remove(t)}else{if(t.velocity.y>0&&t.position.y<=c.height+d||t.velocity.y<0&&t.position.y>=-d||t.velocity.x>0&&t.position.x<=c.width+d||t.velocity.x<0&&t.position.x>=-d)return;(0,e.Tj)(t.position,a.canvas.size,e.Mi.origin,d,i)||a.particles.remove(t)}}}class a{constructor(t){this.container=t,this.modes=["out"]}update(t,i,o,s){if(!this.modes.includes(s))return;const n=this.container;switch(t.outType){case"inside":{const{x:i,y:o}=t.velocity,s=e.Mi.origin;s.length=t.moveCenter.radius,s.angle=t.velocity.angle+Math.PI,s.addTo(e.Mi.create(t.moveCenter));const{dx:r,dy:a}=(0,e.vr)(t.position,s);if(i<=0&&r>=0||o<=0&&a>=0||i>=0&&r<=0||o>=0&&a<=0)return;t.position.x=Math.floor((0,e.BH)({min:0,max:n.canvas.size.width})),t.position.y=Math.floor((0,e.BH)({min:0,max:n.canvas.size.height}));const{dx:c,dy:d}=(0,e.vr)(t.position,t.moveCenter);t.direction=Math.atan2(-d,-c),t.velocity.angle=t.direction;break}default:if((0,e.Tj)(t.position,n.canvas.size,e.Mi.origin,t.getRadius(),i))return;switch(t.outType){case"outside":{t.position.x=Math.floor((0,e.BH)({min:-t.moveCenter.radius,max:t.moveCenter.radius}))+t.moveCenter.x,t.position.y=Math.floor((0,e.BH)({min:-t.moveCenter.radius,max:t.moveCenter.radius}))+t.moveCenter.y;const{dx:i,dy:o}=(0,e.vr)(t.position,t.moveCenter);t.moveCenter.radius&&(t.direction=Math.atan2(o,i),t.velocity.angle=t.direction);break}case"normal":{const o=t.options.move.warp,s=n.canvas.size,r={bottom:s.height+t.getRadius()+t.offset.y,left:-t.getRadius()-t.offset.x,right:s.width+t.getRadius()+t.offset.x,top:-t.getRadius()-t.offset.y},a=t.getRadius(),c=(0,e.AE)(t.position,a);"right"===i&&c.left>s.width+t.offset.x?(t.position.x=r.left,t.initialPosition.x=t.position.x,o||(t.position.y=(0,e.G0)()*s.height,t.initialPosition.y=t.position.y)):"left"===i&&c.right<-t.offset.x&&(t.position.x=r.right,t.initialPosition.x=t.position.x,o||(t.position.y=(0,e.G0)()*s.height,t.initialPosition.y=t.position.y)),"bottom"===i&&c.top>s.height+t.offset.y?(o||(t.position.x=(0,e.G0)()*s.width,t.initialPosition.x=t.position.x),t.position.y=r.top,t.initialPosition.y=t.position.y):"top"===i&&c.bottom<-t.offset.y&&(o||(t.position.x=(0,e.G0)()*s.width,t.initialPosition.x=t.position.x),t.position.y=r.bottom,t.initialPosition.y=t.position.y);break}}}}}const c=(t,i)=>t.default===i||t.bottom===i||t.left===i||t.right===i||t.top===i;class d{constructor(t){this._updateOutMode=(t,i,o,e)=>{for(const s of this.updaters)s.update(t,e,i,o)},this.container=t,this.updaters=[]}init(t){this.updaters=[];const i=t.options.move.outModes;c(i,"bounce")?this.updaters.push(new s(this.container)):c(i,"out")?this.updaters.push(new a(this.container)):c(i,"destroy")?this.updaters.push(new n(this.container)):c(i,"none")&&this.updaters.push(new r(this.container))}isEnabled(t){return!t.destroyed&&!t.spawning}update(t,i){var o,e,s,n;const r=t.options.move.outModes;this._updateOutMode(t,i,null!==(o=r.bottom)&&void 0!==o?o:r.default,"bottom"),this._updateOutMode(t,i,null!==(e=r.left)&&void 0!==e?e:r.default,"left"),this._updateOutMode(t,i,null!==(s=r.right)&&void 0!==s?s:r.default,"right"),this._updateOutMode(t,i,null!==(n=r.top)&&void 0!==n?n:r.default,"top")}}}}]); -//# sourceMappingURL=4265.8b2e34fd.chunk.js.map \ No newline at end of file diff --git a/build/static/js/4290.b8c71029.chunk.js b/build/static/js/4290.b8c71029.chunk.js deleted file mode 100644 index da10553..0000000 --- a/build/static/js/4290.b8c71029.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkclient=self.webpackChunkclient||[]).push([[4290],{4290:(i,n,t)=>{t.d(n,{LinkInstance:()=>o});var e=t(4409);function s(i,n){const t=((s=i.map((i=>i.id))).sort(((i,n)=>i-n)),s.join("_"));var s;let o=n.get(t);return void 0===o&&(o=(0,e.G0)(),n.set(t,o)),o}class o{constructor(i){this.container=i,this._drawLinkLine=(i,n)=>{const t=i.options.links;if(null===t||void 0===t||!t.enable)return;const s=this.container,o=s.actualOptions,l=n.destination,a=i.getPosition(),r=l.getPosition();let c=n.opacity;s.canvas.draw((n=>{var d,k,u;let h;const p=null===(d=i.options.twinkle)||void 0===d?void 0:d.lines;if(null!==p&&void 0!==p&&p.enable){const i=p.frequency,n=(0,e.BN)(p.color);(0,e.G0)(){var s;const o=i.options.links;if(null===o||void 0===o||!o.enable)return;const l=o.triangles;if(!l.enable)return;const a=this.container,r=a.actualOptions,c=n.destination,d=t.destination,k=null!==(s=l.opacity)&&void 0!==s?s:.5*(n.opacity+t.opacity);k<=0||a.canvas.draw((n=>{var t;const s=i.getPosition(),u=c.getPosition(),h=d.getPosition(),p=null!==(t=i.retina.linksDistance)&&void 0!==t?t:0;if((0,e.Yf)(s,u)>p||(0,e.Yf)(h,u)>p||(0,e.Yf)(h,s)>p)return;let f=(0,e.BN)(l.color);if(!f){const n=void 0!==o.id?a.particles.linksColors.get(o.id):a.particles.linksColor;f=(0,e._h)(i,c,n)}f&&function(i){const{context:n,pos1:t,pos2:s,pos3:o,backgroundMask:l,colorTriangle:a,opacityTriangle:r}=i;!function(i,n,t,e){i.beginPath(),i.moveTo(n.x,n.y),i.lineTo(t.x,t.y),i.lineTo(e.x,e.y),i.closePath()}(n,t,s,o),l.enable&&(n.globalCompositeOperation=l.composite),n.fillStyle=(0,e.xx)(a,r),n.fill()}({context:n,pos1:s,pos2:u,pos3:h,backgroundMask:r.backgroundMask,colorTriangle:f,opacityTriangle:k})}))},this._drawTriangles=(i,n,t,e)=>{var s,o,l;const a=t.destination;if(null===(s=i.links)||void 0===s||!s.triangles.enable||null===(o=a.options.links)||void 0===o||!o.triangles.enable)return;const r=null===(l=a.links)||void 0===l?void 0:l.filter((i=>{const n=this._getLinkFrequency(a,i.destination);return a.options.links&&n<=a.options.links.frequency&&e.findIndex((n=>n.destination===i.destination))>=0}));if(null!==r&&void 0!==r&&r.length)for(const c of r){const e=c.destination;this._getTriangleFrequency(n,a,e)>i.links.triangles.frequency||this._drawLinkTriangle(n,t,c)}},this._getLinkFrequency=(i,n)=>s([i,n],this._freqs.links),this._getTriangleFrequency=(i,n,t)=>s([i,n,t],this._freqs.triangles),this._freqs={links:new Map,triangles:new Map}}drawParticle(i,n){const{links:t,options:e}=n;if(null===t||void 0===t||!t.length)return;const s=t.filter((i=>e.links&&(e.links.frequency>=1||this._getLinkFrequency(n,i.destination)<=e.links.frequency)));for(const l of s){var o;this._drawTriangles(e,n,l,s),l.opacity>0&&(null!==(o=n.retina.linksWidth)&&void 0!==o?o:0)>0&&this._drawLinkLine(n,l)}}async init(){this._freqs.links=new Map,this._freqs.triangles=new Map,await Promise.resolve()}particleCreated(i){if(i.links=[],!i.options.links)return;const n=this.container.retina.pixelRatio,{retina:t}=i,{distance:e,width:s}=i.options.links;t.linksDistance=e*n,t.linksWidth=s*n}particleDestroyed(i){i.links=[]}}}}]); -//# sourceMappingURL=4290.b8c71029.chunk.js.map \ No newline at end of file diff --git a/build/static/js/4290.d4ff0c15.chunk.js b/build/static/js/4290.d4ff0c15.chunk.js new file mode 100644 index 0000000..3bcbc78 --- /dev/null +++ b/build/static/js/4290.d4ff0c15.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkresview=self.webpackChunkresview||[]).push([[4290],{4290:(i,n,t)=>{t.d(n,{LinkInstance:()=>o});var e=t(4409);function s(i,n){const t=((s=i.map((i=>i.id))).sort(((i,n)=>i-n)),s.join("_"));var s;let o=n.get(t);return void 0===o&&(o=(0,e.G0)(),n.set(t,o)),o}class o{constructor(i){this.container=i,this._drawLinkLine=(i,n)=>{const t=i.options.links;if(null===t||void 0===t||!t.enable)return;const s=this.container,o=s.actualOptions,l=n.destination,a=i.getPosition(),r=l.getPosition();let c=n.opacity;s.canvas.draw((n=>{var d,k,u;let h;const p=null===(d=i.options.twinkle)||void 0===d?void 0:d.lines;if(null!==p&&void 0!==p&&p.enable){const i=p.frequency,n=(0,e.BN)(p.color);(0,e.G0)(){var s;const o=i.options.links;if(null===o||void 0===o||!o.enable)return;const l=o.triangles;if(!l.enable)return;const a=this.container,r=a.actualOptions,c=n.destination,d=t.destination,k=null!==(s=l.opacity)&&void 0!==s?s:.5*(n.opacity+t.opacity);k<=0||a.canvas.draw((n=>{var t;const s=i.getPosition(),u=c.getPosition(),h=d.getPosition(),p=null!==(t=i.retina.linksDistance)&&void 0!==t?t:0;if((0,e.Yf)(s,u)>p||(0,e.Yf)(h,u)>p||(0,e.Yf)(h,s)>p)return;let f=(0,e.BN)(l.color);if(!f){const n=void 0!==o.id?a.particles.linksColors.get(o.id):a.particles.linksColor;f=(0,e._h)(i,c,n)}f&&function(i){const{context:n,pos1:t,pos2:s,pos3:o,backgroundMask:l,colorTriangle:a,opacityTriangle:r}=i;!function(i,n,t,e){i.beginPath(),i.moveTo(n.x,n.y),i.lineTo(t.x,t.y),i.lineTo(e.x,e.y),i.closePath()}(n,t,s,o),l.enable&&(n.globalCompositeOperation=l.composite),n.fillStyle=(0,e.xx)(a,r),n.fill()}({context:n,pos1:s,pos2:u,pos3:h,backgroundMask:r.backgroundMask,colorTriangle:f,opacityTriangle:k})}))},this._drawTriangles=(i,n,t,e)=>{var s,o,l;const a=t.destination;if(null===(s=i.links)||void 0===s||!s.triangles.enable||null===(o=a.options.links)||void 0===o||!o.triangles.enable)return;const r=null===(l=a.links)||void 0===l?void 0:l.filter((i=>{const n=this._getLinkFrequency(a,i.destination);return a.options.links&&n<=a.options.links.frequency&&e.findIndex((n=>n.destination===i.destination))>=0}));if(null!==r&&void 0!==r&&r.length)for(const c of r){const e=c.destination;this._getTriangleFrequency(n,a,e)>i.links.triangles.frequency||this._drawLinkTriangle(n,t,c)}},this._getLinkFrequency=(i,n)=>s([i,n],this._freqs.links),this._getTriangleFrequency=(i,n,t)=>s([i,n,t],this._freqs.triangles),this._freqs={links:new Map,triangles:new Map}}drawParticle(i,n){const{links:t,options:e}=n;if(null===t||void 0===t||!t.length)return;const s=t.filter((i=>e.links&&(e.links.frequency>=1||this._getLinkFrequency(n,i.destination)<=e.links.frequency)));for(const l of s){var o;this._drawTriangles(e,n,l,s),l.opacity>0&&(null!==(o=n.retina.linksWidth)&&void 0!==o?o:0)>0&&this._drawLinkLine(n,l)}}async init(){this._freqs.links=new Map,this._freqs.triangles=new Map,await Promise.resolve()}particleCreated(i){if(i.links=[],!i.options.links)return;const n=this.container.retina.pixelRatio,{retina:t}=i,{distance:e,width:s}=i.options.links;t.linksDistance=e*n,t.linksWidth=s*n}particleDestroyed(i){i.links=[]}}}}]); +//# sourceMappingURL=4290.d4ff0c15.chunk.js.map \ No newline at end of file diff --git a/build/static/js/4290.b8c71029.chunk.js.map b/build/static/js/4290.d4ff0c15.chunk.js.map similarity index 99% rename from build/static/js/4290.b8c71029.chunk.js.map rename to build/static/js/4290.d4ff0c15.chunk.js.map index 2cc0fe3..89513dc 100644 --- a/build/static/js/4290.b8c71029.chunk.js.map +++ b/build/static/js/4290.d4ff0c15.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/4290.b8c71029.chunk.js","mappings":"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","sources":["../node_modules/@tsparticles/interaction-particles-links/browser/Utils.js","../node_modules/@tsparticles/interaction-particles-links/browser/LinkInstance.js"],"sourcesContent":["import { drawLine, getDistance, getDistances, getRandom, getStyleFromRgb, rangeColorToRgb, } from \"@tsparticles/engine\";\nexport function drawTriangle(context, p1, p2, p3) {\n context.beginPath();\n context.moveTo(p1.x, p1.y);\n context.lineTo(p2.x, p2.y);\n context.lineTo(p3.x, p3.y);\n context.closePath();\n}\nexport function drawLinkLine(params) {\n let drawn = false;\n const { begin, end, maxDistance, context, canvasSize, width, backgroundMask, colorLine, opacity, links } = params;\n if (getDistance(begin, end) <= maxDistance) {\n drawLine(context, begin, end);\n drawn = true;\n }\n else if (links.warp) {\n let pi1;\n let pi2;\n const endNE = {\n x: end.x - canvasSize.width,\n y: end.y,\n };\n const d1 = getDistances(begin, endNE);\n if (d1.distance <= maxDistance) {\n const yi = begin.y - (d1.dy / d1.dx) * begin.x;\n pi1 = { x: 0, y: yi };\n pi2 = { x: canvasSize.width, y: yi };\n }\n else {\n const endSW = {\n x: end.x,\n y: end.y - canvasSize.height,\n };\n const d2 = getDistances(begin, endSW);\n if (d2.distance <= maxDistance) {\n const yi = begin.y - (d2.dy / d2.dx) * begin.x;\n const xi = -yi / (d2.dy / d2.dx);\n pi1 = { x: xi, y: 0 };\n pi2 = { x: xi, y: canvasSize.height };\n }\n else {\n const endSE = {\n x: end.x - canvasSize.width,\n y: end.y - canvasSize.height,\n };\n const d3 = getDistances(begin, endSE);\n if (d3.distance <= maxDistance) {\n const yi = begin.y - (d3.dy / d3.dx) * begin.x;\n const xi = -yi / (d3.dy / d3.dx);\n pi1 = { x: xi, y: yi };\n pi2 = { x: pi1.x + canvasSize.width, y: pi1.y + canvasSize.height };\n }\n }\n }\n if (pi1 && pi2) {\n drawLine(context, begin, pi1);\n drawLine(context, end, pi2);\n drawn = true;\n }\n }\n if (!drawn) {\n return;\n }\n context.lineWidth = width;\n if (backgroundMask.enable) {\n context.globalCompositeOperation = backgroundMask.composite;\n }\n context.strokeStyle = getStyleFromRgb(colorLine, opacity);\n const { shadow } = links;\n if (shadow.enable) {\n const shadowColor = rangeColorToRgb(shadow.color);\n if (shadowColor) {\n context.shadowBlur = shadow.blur;\n context.shadowColor = getStyleFromRgb(shadowColor);\n }\n }\n context.stroke();\n}\nexport function drawLinkTriangle(params) {\n const { context, pos1, pos2, pos3, backgroundMask, colorTriangle, opacityTriangle } = params;\n drawTriangle(context, pos1, pos2, pos3);\n if (backgroundMask.enable) {\n context.globalCompositeOperation = backgroundMask.composite;\n }\n context.fillStyle = getStyleFromRgb(colorTriangle, opacityTriangle);\n context.fill();\n}\nexport function getLinkKey(ids) {\n ids.sort((a, b) => a - b);\n return ids.join(\"_\");\n}\nexport function setLinkFrequency(particles, dictionary) {\n const key = getLinkKey(particles.map((t) => t.id));\n let res = dictionary.get(key);\n if (res === undefined) {\n res = getRandom();\n dictionary.set(key, res);\n }\n return res;\n}\n","import { getDistance, getLinkColor, getRandom, getRangeValue, rangeColorToRgb, } from \"@tsparticles/engine\";\nimport { drawLinkLine, drawLinkTriangle, setLinkFrequency } from \"./Utils.js\";\nconst minOpacity = 0, minWidth = 0, minDistance = 0, half = 0.5, maxFrequency = 1;\nexport class LinkInstance {\n constructor(container) {\n this.container = container;\n this._drawLinkLine = (p1, link) => {\n const p1LinksOptions = p1.options.links;\n if (!p1LinksOptions?.enable) {\n return;\n }\n const container = this.container, options = container.actualOptions, p2 = link.destination, pos1 = p1.getPosition(), pos2 = p2.getPosition();\n let opacity = link.opacity;\n container.canvas.draw((ctx) => {\n let colorLine;\n const twinkle = p1.options.twinkle?.lines;\n if (twinkle?.enable) {\n const twinkleFreq = twinkle.frequency, twinkleRgb = rangeColorToRgb(twinkle.color), twinkling = getRandom() < twinkleFreq;\n if (twinkling && twinkleRgb) {\n colorLine = twinkleRgb;\n opacity = getRangeValue(twinkle.opacity);\n }\n }\n if (!colorLine) {\n const linkColor = p1LinksOptions.id !== undefined\n ? container.particles.linksColors.get(p1LinksOptions.id)\n : container.particles.linksColor;\n colorLine = getLinkColor(p1, p2, linkColor);\n }\n if (!colorLine) {\n return;\n }\n const width = p1.retina.linksWidth ?? minWidth, maxDistance = p1.retina.linksDistance ?? minDistance, { backgroundMask } = options;\n drawLinkLine({\n context: ctx,\n width,\n begin: pos1,\n end: pos2,\n maxDistance,\n canvasSize: container.canvas.size,\n links: p1LinksOptions,\n backgroundMask: backgroundMask,\n colorLine,\n opacity,\n });\n });\n };\n this._drawLinkTriangle = (p1, link1, link2) => {\n const linksOptions = p1.options.links;\n if (!linksOptions?.enable) {\n return;\n }\n const triangleOptions = linksOptions.triangles;\n if (!triangleOptions.enable) {\n return;\n }\n const container = this.container, options = container.actualOptions, p2 = link1.destination, p3 = link2.destination, opacityTriangle = triangleOptions.opacity ?? (link1.opacity + link2.opacity) * half;\n if (opacityTriangle <= minOpacity) {\n return;\n }\n container.canvas.draw((ctx) => {\n const pos1 = p1.getPosition(), pos2 = p2.getPosition(), pos3 = p3.getPosition(), linksDistance = p1.retina.linksDistance ?? minDistance;\n if (getDistance(pos1, pos2) > linksDistance ||\n getDistance(pos3, pos2) > linksDistance ||\n getDistance(pos3, pos1) > linksDistance) {\n return;\n }\n let colorTriangle = rangeColorToRgb(triangleOptions.color);\n if (!colorTriangle) {\n const linkColor = linksOptions.id !== undefined\n ? container.particles.linksColors.get(linksOptions.id)\n : container.particles.linksColor;\n colorTriangle = getLinkColor(p1, p2, linkColor);\n }\n if (!colorTriangle) {\n return;\n }\n drawLinkTriangle({\n context: ctx,\n pos1,\n pos2,\n pos3,\n backgroundMask: options.backgroundMask,\n colorTriangle,\n opacityTriangle,\n });\n });\n };\n this._drawTriangles = (options, p1, link, p1Links) => {\n const p2 = link.destination;\n if (!(options.links?.triangles.enable && p2.options.links?.triangles.enable)) {\n return;\n }\n const vertices = p2.links?.filter((t) => {\n const linkFreq = this._getLinkFrequency(p2, t.destination), minCount = 0;\n return (p2.options.links &&\n linkFreq <= p2.options.links.frequency &&\n p1Links.findIndex((l) => l.destination === t.destination) >= minCount);\n });\n if (!vertices?.length) {\n return;\n }\n for (const vertex of vertices) {\n const p3 = vertex.destination, triangleFreq = this._getTriangleFrequency(p1, p2, p3);\n if (triangleFreq > options.links.triangles.frequency) {\n continue;\n }\n this._drawLinkTriangle(p1, link, vertex);\n }\n };\n this._getLinkFrequency = (p1, p2) => {\n return setLinkFrequency([p1, p2], this._freqs.links);\n };\n this._getTriangleFrequency = (p1, p2, p3) => {\n return setLinkFrequency([p1, p2, p3], this._freqs.triangles);\n };\n this._freqs = {\n links: new Map(),\n triangles: new Map(),\n };\n }\n drawParticle(context, particle) {\n const { links, options } = particle;\n if (!links?.length) {\n return;\n }\n const p1Links = links.filter((l) => options.links &&\n (options.links.frequency >= maxFrequency ||\n this._getLinkFrequency(particle, l.destination) <= options.links.frequency));\n for (const link of p1Links) {\n this._drawTriangles(options, particle, link, p1Links);\n if (link.opacity > minOpacity && (particle.retina.linksWidth ?? minWidth) > minWidth) {\n this._drawLinkLine(particle, link);\n }\n }\n }\n async init() {\n this._freqs.links = new Map();\n this._freqs.triangles = new Map();\n await Promise.resolve();\n }\n particleCreated(particle) {\n particle.links = [];\n if (!particle.options.links) {\n return;\n }\n const ratio = this.container.retina.pixelRatio, { retina } = particle, { distance, width } = particle.options.links;\n retina.linksDistance = distance * ratio;\n retina.linksWidth = width * ratio;\n }\n particleDestroyed(particle) {\n particle.links = [];\n }\n}\n"],"names":["setLinkFrequency","particles","dictionary","key","ids","map","t","id","sort","a","b","join","res","get","undefined","getRandom","set","LinkInstance","constructor","container","this","_drawLinkLine","p1","link","p1LinksOptions","options","links","enable","actualOptions","p2","destination","pos1","getPosition","pos2","opacity","canvas","draw","ctx","_p1$options$twinkle","_p1$retina$linksWidth","_p1$retina$linksDista","colorLine","twinkle","lines","twinkleFreq","frequency","twinkleRgb","rangeColorToRgb","color","getRangeValue","linkColor","linksColors","linksColor","getLinkColor","width","retina","linksWidth","maxDistance","linksDistance","backgroundMask","params","drawn","begin","end","context","canvasSize","getDistance","drawLine","warp","pi1","pi2","endNE","x","y","d1","getDistances","distance","yi","dy","dx","endSW","height","d2","xi","endSE","d3","lineWidth","globalCompositeOperation","composite","strokeStyle","getStyleFromRgb","shadow","shadowColor","shadowBlur","blur","stroke","drawLinkLine","size","_drawLinkTriangle","link1","link2","_triangleOptions$opac","linksOptions","triangleOptions","triangles","p3","opacityTriangle","_p1$retina$linksDista2","pos3","colorTriangle","beginPath","moveTo","lineTo","closePath","drawTriangle","fillStyle","fill","drawLinkTriangle","_drawTriangles","p1Links","_options$links","_p2$options$links","_p2$links","vertices","filter","linkFreq","_getLinkFrequency","findIndex","l","length","vertex","_getTriangleFrequency","_freqs","Map","drawParticle","particle","_particle$retina$link","init","Promise","resolve","particleCreated","ratio","pixelRatio","particleDestroyed"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/4290.d4ff0c15.chunk.js","mappings":"4IA2FO,SAASA,EAAiBC,EAAWC,GACxC,MAAMC,IALiBC,EAKAH,EAAUI,KAAKC,GAAMA,EAAEC,MAJ1CC,MAAK,CAACC,EAAGC,IAAMD,EAAIC,IAChBN,EAAIO,KAAK,MAFb,IAAoBP,EAMvB,IAAIQ,EAAMV,EAAWW,IAAIV,GAKzB,YAJYW,IAARF,IACAA,GAAMG,EAAAA,EAAAA,MACNb,EAAWc,IAAIb,EAAKS,IAEjBA,CACX,CChGO,MAAMK,EACTC,WAAAA,CAAYC,GACRC,KAAKD,UAAYA,EACjBC,KAAKC,cAAgB,CAACC,EAAIC,KACtB,MAAMC,EAAiBF,EAAGG,QAAQC,MAClC,GAAmB,OAAdF,QAAc,IAAdA,IAAAA,EAAgBG,OACjB,OAEJ,MAAMR,EAAYC,KAAKD,UAAWM,EAAUN,EAAUS,cAAeC,EAAKN,EAAKO,YAAaC,EAAOT,EAAGU,cAAeC,EAAOJ,EAAGG,cAC/H,IAAIE,EAAUX,EAAKW,QACnBf,EAAUgB,OAAOC,MAAMC,IAAQ,IAAAC,EAAAC,EAAAC,EAC3B,IAAIC,EACJ,MAAMC,EAA4B,QAArBJ,EAAGhB,EAAGG,QAAQiB,eAAO,IAAAJ,OAAA,EAAlBA,EAAoBK,MACpC,GAAW,OAAPD,QAAO,IAAPA,GAAAA,EAASf,OAAQ,CACjB,MAAMiB,EAAcF,EAAQG,UAAWC,GAAaC,EAAAA,EAAAA,IAAgBL,EAAQM,QAAoBjC,EAAAA,EAAAA,MAAc6B,GAC7FE,IACbL,EAAYK,EACZZ,GAAUe,EAAAA,EAAAA,IAAcP,EAAQR,SAExC,CACA,IAAKO,EAAW,CACZ,MAAMS,OAAkCpC,IAAtBU,EAAejB,GAC3BY,EAAUlB,UAAUkD,YAAYtC,IAAIW,EAAejB,IACnDY,EAAUlB,UAAUmD,WAC1BX,GAAYY,EAAAA,EAAAA,IAAa/B,EAAIO,EAAIqB,EACrC,CACA,IAAKT,EACD,OAEJ,MAAMa,EAA4B,QAAvBf,EAAGjB,EAAGiC,OAAOC,kBAAU,IAAAjB,EAAAA,EA9BjB,EA8B+BkB,EAAqC,QAA1BjB,EAAGlB,EAAGiC,OAAOG,qBAAa,IAAAlB,EAAAA,EA9BnD,GA8BoE,eAAEmB,GAAmBlC,GDxBpI,SAAsBmC,GACzB,IAAIC,GAAQ,EACZ,MAAM,MAAEC,EAAK,IAAEC,EAAG,YAAEN,EAAW,QAAEO,EAAO,WAAEC,EAAU,MAAEX,EAAK,eAAEK,EAAc,UAAElB,EAAS,QAAEP,EAAO,MAAER,GAAUkC,EAC3G,IAAIM,EAAAA,EAAAA,IAAYJ,EAAOC,IAAQN,GAC3BU,EAAAA,EAAAA,IAASH,EAASF,EAAOC,GACzBF,GAAQ,OAEP,GAAInC,EAAM0C,KAAM,CACjB,IAAIC,EACAC,EACJ,MAAMC,EAAQ,CACVC,EAAGT,EAAIS,EAAIP,EAAWX,MACtBmB,EAAGV,EAAIU,GAELC,GAAKC,EAAAA,EAAAA,IAAab,EAAOS,GAC/B,GAAIG,EAAGE,UAAYnB,EAAa,CAC5B,MAAMoB,EAAKf,EAAMW,EAAKC,EAAGI,GAAKJ,EAAGK,GAAMjB,EAAMU,EAC7CH,EAAM,CAAEG,EAAG,EAAGC,EAAGI,GACjBP,EAAM,CAAEE,EAAGP,EAAWX,MAAOmB,EAAGI,EACpC,KACK,CACD,MAAMG,EAAQ,CACVR,EAAGT,EAAIS,EACPC,EAAGV,EAAIU,EAAIR,EAAWgB,QAEpBC,GAAKP,EAAAA,EAAAA,IAAab,EAAOkB,GAC/B,GAAIE,EAAGN,UAAYnB,EAAa,CAC5B,MACM0B,IADKrB,EAAMW,EAAKS,EAAGJ,GAAKI,EAAGH,GAAMjB,EAAMU,IAC3BU,EAAGJ,GAAKI,EAAGH,IAC7BV,EAAM,CAAEG,EAAGW,EAAIV,EAAG,GAClBH,EAAM,CAAEE,EAAGW,EAAIV,EAAGR,EAAWgB,OACjC,KACK,CACD,MAAMG,EAAQ,CACVZ,EAAGT,EAAIS,EAAIP,EAAWX,MACtBmB,EAAGV,EAAIU,EAAIR,EAAWgB,QAEpBI,GAAKV,EAAAA,EAAAA,IAAab,EAAOsB,GAC/B,GAAIC,EAAGT,UAAYnB,EAAa,CAC5B,MAAMoB,EAAKf,EAAMW,EAAKY,EAAGP,GAAKO,EAAGN,GAAMjB,EAAMU,EAE7CH,EAAM,CAAEG,GADIK,GAAMQ,EAAGP,GAAKO,EAAGN,IACdN,EAAGI,GAClBP,EAAM,CAAEE,EAAGH,EAAIG,EAAIP,EAAWX,MAAOmB,EAAGJ,EAAII,EAAIR,EAAWgB,OAC/D,CACJ,CACJ,CACIZ,GAAOC,KACPH,EAAAA,EAAAA,IAASH,EAASF,EAAOO,IACzBF,EAAAA,EAAAA,IAASH,EAASD,EAAKO,GACvBT,GAAQ,EAEhB,CACA,IAAKA,EACD,OAEJG,EAAQsB,UAAYhC,EAChBK,EAAehC,SACfqC,EAAQuB,yBAA2B5B,EAAe6B,WAEtDxB,EAAQyB,aAAcC,EAAAA,EAAAA,IAAgBjD,EAAWP,GACjD,MAAM,OAAEyD,GAAWjE,EACnB,GAAIiE,EAAOhE,OAAQ,CACf,MAAMiE,GAAc7C,EAAAA,EAAAA,IAAgB4C,EAAO3C,OACvC4C,IACA5B,EAAQ6B,WAAaF,EAAOG,KAC5B9B,EAAQ4B,aAAcF,EAAAA,EAAAA,IAAgBE,GAE9C,CACA5B,EAAQ+B,QACZ,CC5CgBC,CAAa,CACThC,QAAS3B,EACTiB,QACAQ,MAAO/B,EACPgC,IAAK9B,EACLwB,cACAQ,WAAY9C,EAAUgB,OAAO8D,KAC7BvE,MAAOF,EACPmC,eAAgBA,EAChBlB,YACAP,WACF,GACJ,EAENd,KAAK8E,kBAAoB,CAAC5E,EAAI6E,EAAOC,KAAU,IAAAC,EAC3C,MAAMC,EAAehF,EAAGG,QAAQC,MAChC,GAAiB,OAAZ4E,QAAY,IAAZA,IAAAA,EAAc3E,OACf,OAEJ,MAAM4E,EAAkBD,EAAaE,UACrC,IAAKD,EAAgB5E,OACjB,OAEJ,MAAMR,EAAYC,KAAKD,UAAWM,EAAUN,EAAUS,cAAeC,EAAKsE,EAAMrE,YAAa2E,EAAKL,EAAMtE,YAAa4E,EAAyC,QAA1BL,EAAGE,EAAgBrE,eAAO,IAAAmE,EAAAA,EAtD9G,IAsDmHF,EAAMjE,QAAUkE,EAAMlE,SACrLwE,GAvDG,GA0DPvF,EAAUgB,OAAOC,MAAMC,IAAQ,IAAAsE,EAC3B,MAAM5E,EAAOT,EAAGU,cAAeC,EAAOJ,EAAGG,cAAe4E,EAAOH,EAAGzE,cAAe0B,EAAuC,QAA1BiD,EAAGrF,EAAGiC,OAAOG,qBAAa,IAAAiD,EAAAA,EA3DtF,EA4DlC,IAAIzC,EAAAA,EAAAA,IAAYnC,EAAME,GAAQyB,IAC1BQ,EAAAA,EAAAA,IAAY0C,EAAM3E,GAAQyB,IAC1BQ,EAAAA,EAAAA,IAAY0C,EAAM7E,GAAQ2B,EAC1B,OAEJ,IAAImD,GAAgB9D,EAAAA,EAAAA,IAAgBwD,EAAgBvD,OACpD,IAAK6D,EAAe,CAChB,MAAM3D,OAAgCpC,IAApBwF,EAAa/F,GACzBY,EAAUlB,UAAUkD,YAAYtC,IAAIyF,EAAa/F,IACjDY,EAAUlB,UAAUmD,WAC1ByD,GAAgBxD,EAAAA,EAAAA,IAAa/B,EAAIO,EAAIqB,EACzC,CACK2D,GDId,SAA0BjD,GAC7B,MAAM,QAAEI,EAAO,KAAEjC,EAAI,KAAEE,EAAI,KAAE2E,EAAI,eAAEjD,EAAc,cAAEkD,EAAa,gBAAEH,GAAoB9C,GA9EnF,SAAsBI,EAAS1C,EAAIO,EAAI4E,GAC1CzC,EAAQ8C,YACR9C,EAAQ+C,OAAOzF,EAAGkD,EAAGlD,EAAGmD,GACxBT,EAAQgD,OAAOnF,EAAG2C,EAAG3C,EAAG4C,GACxBT,EAAQgD,OAAOP,EAAGjC,EAAGiC,EAAGhC,GACxBT,EAAQiD,WACZ,CAyEIC,CAAalD,EAASjC,EAAME,EAAM2E,GAC9BjD,EAAehC,SACfqC,EAAQuB,yBAA2B5B,EAAe6B,WAEtDxB,EAAQmD,WAAYzB,EAAAA,EAAAA,IAAgBmB,EAAeH,GACnD1C,EAAQoD,MACZ,CCTgBC,CAAiB,CACbrD,QAAS3B,EACTN,OACAE,OACA2E,OACAjD,eAAgBlC,EAAQkC,eACxBkD,gBACAH,mBACF,GACJ,EAENtF,KAAKkG,eAAiB,CAAC7F,EAASH,EAAIC,EAAMgG,KAAY,IAAAC,EAAAC,EAAAC,EAClD,MAAM7F,EAAKN,EAAKO,YAChB,GAAmB,QAAb0F,EAAA/F,EAAQC,aAAK,IAAA8F,IAAbA,EAAehB,UAAU7E,QAA0B,QAApB8F,EAAI5F,EAAGJ,QAAQC,aAAK,IAAA+F,IAAhBA,EAAkBjB,UAAU7E,OACjE,OAEJ,MAAMgG,EAAmB,QAAXD,EAAG7F,EAAGH,aAAK,IAAAgG,OAAA,EAARA,EAAUE,QAAQtH,IAC/B,MAAMuH,EAAWzG,KAAK0G,kBAAkBjG,EAAIvB,EAAEwB,aAC9C,OAAQD,EAAGJ,QAAQC,OACfmG,GAAYhG,EAAGJ,QAAQC,MAAMmB,WAC7B0E,EAAQQ,WAAWC,GAAMA,EAAElG,cAAgBxB,EAAEwB,eAHsB,CAGE,IAE7E,GAAa,OAAR6F,QAAQ,IAARA,GAAAA,EAAUM,OAGf,IAAK,MAAMC,KAAUP,EAAU,CAC3B,MAAMlB,EAAKyB,EAAOpG,YAA4BV,KAAK+G,sBAAsB7G,EAAIO,EAAI4E,GAC9DhF,EAAQC,MAAM8E,UAAU3D,WAG3CzB,KAAK8E,kBAAkB5E,EAAIC,EAAM2G,EACrC,GAEJ9G,KAAK0G,kBAAoB,CAACxG,EAAIO,IACnB7B,EAAiB,CAACsB,EAAIO,GAAKT,KAAKgH,OAAO1G,OAElDN,KAAK+G,sBAAwB,CAAC7G,EAAIO,EAAI4E,IAC3BzG,EAAiB,CAACsB,EAAIO,EAAI4E,GAAKrF,KAAKgH,OAAO5B,WAEtDpF,KAAKgH,OAAS,CACV1G,MAAO,IAAI2G,IACX7B,UAAW,IAAI6B,IAEvB,CACAC,YAAAA,CAAatE,EAASuE,GAClB,MAAM,MAAE7G,EAAK,QAAED,GAAY8G,EAC3B,GAAU,OAAL7G,QAAK,IAALA,IAAAA,EAAOuG,OACR,OAEJ,MAAMV,EAAU7F,EAAMkG,QAAQI,GAAMvG,EAAQC,QACvCD,EAAQC,MAAMmB,WA7HqD,GA8HhEzB,KAAK0G,kBAAkBS,EAAUP,EAAElG,cAAgBL,EAAQC,MAAMmB,aACzE,IAAK,MAAMtB,KAAQgG,EAAS,KAAAiB,EACxBpH,KAAKkG,eAAe7F,EAAS8G,EAAUhH,EAAMgG,GACzChG,EAAKW,QAjIF,IAiIqD,QAA3BsG,EAACD,EAAShF,OAAOC,kBAAU,IAAAgF,EAAAA,EAjIvC,MAkIjBpH,KAAKC,cAAckH,EAAUhH,EAErC,CACJ,CACA,UAAMkH,GACFrH,KAAKgH,OAAO1G,MAAQ,IAAI2G,IACxBjH,KAAKgH,OAAO5B,UAAY,IAAI6B,UACtBK,QAAQC,SAClB,CACAC,eAAAA,CAAgBL,GAEZ,GADAA,EAAS7G,MAAQ,IACZ6G,EAAS9G,QAAQC,MAClB,OAEJ,MAAMmH,EAAQzH,KAAKD,UAAUoC,OAAOuF,YAAY,OAAEvF,GAAWgF,GAAU,SAAE3D,EAAQ,MAAEtB,GAAUiF,EAAS9G,QAAQC,MAC9G6B,EAAOG,cAAgBkB,EAAWiE,EAClCtF,EAAOC,WAAaF,EAAQuF,CAChC,CACAE,iBAAAA,CAAkBR,GACdA,EAAS7G,MAAQ,EACrB,E","sources":["../node_modules/@tsparticles/interaction-particles-links/browser/Utils.js","../node_modules/@tsparticles/interaction-particles-links/browser/LinkInstance.js"],"sourcesContent":["import { drawLine, getDistance, getDistances, getRandom, getStyleFromRgb, rangeColorToRgb, } from \"@tsparticles/engine\";\nexport function drawTriangle(context, p1, p2, p3) {\n context.beginPath();\n context.moveTo(p1.x, p1.y);\n context.lineTo(p2.x, p2.y);\n context.lineTo(p3.x, p3.y);\n context.closePath();\n}\nexport function drawLinkLine(params) {\n let drawn = false;\n const { begin, end, maxDistance, context, canvasSize, width, backgroundMask, colorLine, opacity, links } = params;\n if (getDistance(begin, end) <= maxDistance) {\n drawLine(context, begin, end);\n drawn = true;\n }\n else if (links.warp) {\n let pi1;\n let pi2;\n const endNE = {\n x: end.x - canvasSize.width,\n y: end.y,\n };\n const d1 = getDistances(begin, endNE);\n if (d1.distance <= maxDistance) {\n const yi = begin.y - (d1.dy / d1.dx) * begin.x;\n pi1 = { x: 0, y: yi };\n pi2 = { x: canvasSize.width, y: yi };\n }\n else {\n const endSW = {\n x: end.x,\n y: end.y - canvasSize.height,\n };\n const d2 = getDistances(begin, endSW);\n if (d2.distance <= maxDistance) {\n const yi = begin.y - (d2.dy / d2.dx) * begin.x;\n const xi = -yi / (d2.dy / d2.dx);\n pi1 = { x: xi, y: 0 };\n pi2 = { x: xi, y: canvasSize.height };\n }\n else {\n const endSE = {\n x: end.x - canvasSize.width,\n y: end.y - canvasSize.height,\n };\n const d3 = getDistances(begin, endSE);\n if (d3.distance <= maxDistance) {\n const yi = begin.y - (d3.dy / d3.dx) * begin.x;\n const xi = -yi / (d3.dy / d3.dx);\n pi1 = { x: xi, y: yi };\n pi2 = { x: pi1.x + canvasSize.width, y: pi1.y + canvasSize.height };\n }\n }\n }\n if (pi1 && pi2) {\n drawLine(context, begin, pi1);\n drawLine(context, end, pi2);\n drawn = true;\n }\n }\n if (!drawn) {\n return;\n }\n context.lineWidth = width;\n if (backgroundMask.enable) {\n context.globalCompositeOperation = backgroundMask.composite;\n }\n context.strokeStyle = getStyleFromRgb(colorLine, opacity);\n const { shadow } = links;\n if (shadow.enable) {\n const shadowColor = rangeColorToRgb(shadow.color);\n if (shadowColor) {\n context.shadowBlur = shadow.blur;\n context.shadowColor = getStyleFromRgb(shadowColor);\n }\n }\n context.stroke();\n}\nexport function drawLinkTriangle(params) {\n const { context, pos1, pos2, pos3, backgroundMask, colorTriangle, opacityTriangle } = params;\n drawTriangle(context, pos1, pos2, pos3);\n if (backgroundMask.enable) {\n context.globalCompositeOperation = backgroundMask.composite;\n }\n context.fillStyle = getStyleFromRgb(colorTriangle, opacityTriangle);\n context.fill();\n}\nexport function getLinkKey(ids) {\n ids.sort((a, b) => a - b);\n return ids.join(\"_\");\n}\nexport function setLinkFrequency(particles, dictionary) {\n const key = getLinkKey(particles.map((t) => t.id));\n let res = dictionary.get(key);\n if (res === undefined) {\n res = getRandom();\n dictionary.set(key, res);\n }\n return res;\n}\n","import { getDistance, getLinkColor, getRandom, getRangeValue, rangeColorToRgb, } from \"@tsparticles/engine\";\nimport { drawLinkLine, drawLinkTriangle, setLinkFrequency } from \"./Utils.js\";\nconst minOpacity = 0, minWidth = 0, minDistance = 0, half = 0.5, maxFrequency = 1;\nexport class LinkInstance {\n constructor(container) {\n this.container = container;\n this._drawLinkLine = (p1, link) => {\n const p1LinksOptions = p1.options.links;\n if (!p1LinksOptions?.enable) {\n return;\n }\n const container = this.container, options = container.actualOptions, p2 = link.destination, pos1 = p1.getPosition(), pos2 = p2.getPosition();\n let opacity = link.opacity;\n container.canvas.draw((ctx) => {\n let colorLine;\n const twinkle = p1.options.twinkle?.lines;\n if (twinkle?.enable) {\n const twinkleFreq = twinkle.frequency, twinkleRgb = rangeColorToRgb(twinkle.color), twinkling = getRandom() < twinkleFreq;\n if (twinkling && twinkleRgb) {\n colorLine = twinkleRgb;\n opacity = getRangeValue(twinkle.opacity);\n }\n }\n if (!colorLine) {\n const linkColor = p1LinksOptions.id !== undefined\n ? container.particles.linksColors.get(p1LinksOptions.id)\n : container.particles.linksColor;\n colorLine = getLinkColor(p1, p2, linkColor);\n }\n if (!colorLine) {\n return;\n }\n const width = p1.retina.linksWidth ?? minWidth, maxDistance = p1.retina.linksDistance ?? minDistance, { backgroundMask } = options;\n drawLinkLine({\n context: ctx,\n width,\n begin: pos1,\n end: pos2,\n maxDistance,\n canvasSize: container.canvas.size,\n links: p1LinksOptions,\n backgroundMask: backgroundMask,\n colorLine,\n opacity,\n });\n });\n };\n this._drawLinkTriangle = (p1, link1, link2) => {\n const linksOptions = p1.options.links;\n if (!linksOptions?.enable) {\n return;\n }\n const triangleOptions = linksOptions.triangles;\n if (!triangleOptions.enable) {\n return;\n }\n const container = this.container, options = container.actualOptions, p2 = link1.destination, p3 = link2.destination, opacityTriangle = triangleOptions.opacity ?? (link1.opacity + link2.opacity) * half;\n if (opacityTriangle <= minOpacity) {\n return;\n }\n container.canvas.draw((ctx) => {\n const pos1 = p1.getPosition(), pos2 = p2.getPosition(), pos3 = p3.getPosition(), linksDistance = p1.retina.linksDistance ?? minDistance;\n if (getDistance(pos1, pos2) > linksDistance ||\n getDistance(pos3, pos2) > linksDistance ||\n getDistance(pos3, pos1) > linksDistance) {\n return;\n }\n let colorTriangle = rangeColorToRgb(triangleOptions.color);\n if (!colorTriangle) {\n const linkColor = linksOptions.id !== undefined\n ? container.particles.linksColors.get(linksOptions.id)\n : container.particles.linksColor;\n colorTriangle = getLinkColor(p1, p2, linkColor);\n }\n if (!colorTriangle) {\n return;\n }\n drawLinkTriangle({\n context: ctx,\n pos1,\n pos2,\n pos3,\n backgroundMask: options.backgroundMask,\n colorTriangle,\n opacityTriangle,\n });\n });\n };\n this._drawTriangles = (options, p1, link, p1Links) => {\n const p2 = link.destination;\n if (!(options.links?.triangles.enable && p2.options.links?.triangles.enable)) {\n return;\n }\n const vertices = p2.links?.filter((t) => {\n const linkFreq = this._getLinkFrequency(p2, t.destination), minCount = 0;\n return (p2.options.links &&\n linkFreq <= p2.options.links.frequency &&\n p1Links.findIndex((l) => l.destination === t.destination) >= minCount);\n });\n if (!vertices?.length) {\n return;\n }\n for (const vertex of vertices) {\n const p3 = vertex.destination, triangleFreq = this._getTriangleFrequency(p1, p2, p3);\n if (triangleFreq > options.links.triangles.frequency) {\n continue;\n }\n this._drawLinkTriangle(p1, link, vertex);\n }\n };\n this._getLinkFrequency = (p1, p2) => {\n return setLinkFrequency([p1, p2], this._freqs.links);\n };\n this._getTriangleFrequency = (p1, p2, p3) => {\n return setLinkFrequency([p1, p2, p3], this._freqs.triangles);\n };\n this._freqs = {\n links: new Map(),\n triangles: new Map(),\n };\n }\n drawParticle(context, particle) {\n const { links, options } = particle;\n if (!links?.length) {\n return;\n }\n const p1Links = links.filter((l) => options.links &&\n (options.links.frequency >= maxFrequency ||\n this._getLinkFrequency(particle, l.destination) <= options.links.frequency));\n for (const link of p1Links) {\n this._drawTriangles(options, particle, link, p1Links);\n if (link.opacity > minOpacity && (particle.retina.linksWidth ?? minWidth) > minWidth) {\n this._drawLinkLine(particle, link);\n }\n }\n }\n async init() {\n this._freqs.links = new Map();\n this._freqs.triangles = new Map();\n await Promise.resolve();\n }\n particleCreated(particle) {\n particle.links = [];\n if (!particle.options.links) {\n return;\n }\n const ratio = this.container.retina.pixelRatio, { retina } = particle, { distance, width } = particle.options.links;\n retina.linksDistance = distance * ratio;\n retina.linksWidth = width * ratio;\n }\n particleDestroyed(particle) {\n particle.links = [];\n }\n}\n"],"names":["setLinkFrequency","particles","dictionary","key","ids","map","t","id","sort","a","b","join","res","get","undefined","getRandom","set","LinkInstance","constructor","container","this","_drawLinkLine","p1","link","p1LinksOptions","options","links","enable","actualOptions","p2","destination","pos1","getPosition","pos2","opacity","canvas","draw","ctx","_p1$options$twinkle","_p1$retina$linksWidth","_p1$retina$linksDista","colorLine","twinkle","lines","twinkleFreq","frequency","twinkleRgb","rangeColorToRgb","color","getRangeValue","linkColor","linksColors","linksColor","getLinkColor","width","retina","linksWidth","maxDistance","linksDistance","backgroundMask","params","drawn","begin","end","context","canvasSize","getDistance","drawLine","warp","pi1","pi2","endNE","x","y","d1","getDistances","distance","yi","dy","dx","endSW","height","d2","xi","endSE","d3","lineWidth","globalCompositeOperation","composite","strokeStyle","getStyleFromRgb","shadow","shadowColor","shadowBlur","blur","stroke","drawLinkLine","size","_drawLinkTriangle","link1","link2","_triangleOptions$opac","linksOptions","triangleOptions","triangles","p3","opacityTriangle","_p1$retina$linksDista2","pos3","colorTriangle","beginPath","moveTo","lineTo","closePath","drawTriangle","fillStyle","fill","drawLinkTriangle","_drawTriangles","p1Links","_options$links","_p2$options$links","_p2$links","vertices","filter","linkFreq","_getLinkFrequency","findIndex","l","length","vertex","_getTriangleFrequency","_freqs","Map","drawParticle","particle","_particle$retina$link","init","Promise","resolve","particleCreated","ratio","pixelRatio","particleDestroyed"],"sourceRoot":""} \ No newline at end of file diff --git a/build/static/js/4304.31723190.chunk.js b/build/static/js/4304.31723190.chunk.js deleted file mode 100644 index bac7647..0000000 --- a/build/static/js/4304.31723190.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkclient=self.webpackChunkclient||[]).push([[4304],{4304:(t,i,n)=>{n.d(i,{Connector:()=>l});var o=n(4409);class e{constructor(){this.opacity=.5}load(t){t&&void 0!==t.opacity&&(this.opacity=t.opacity)}}class s{constructor(){this.distance=80,this.links=new e,this.radius=60}load(t){t&&(void 0!==t.distance&&(this.distance=t.distance),this.links.load(t.links),void 0!==t.radius&&(this.radius=t.radius))}}const a=0,c=1;function r(t,i,n,e){const s=t.actualOptions.interactivity.modes.connect;if(s)return function(t,i,n,e){const s=Math.floor(n.getRadius()/i.getRadius()),r=i.getFillColor(),d=n.getFillColor();if(!r||!d)return;const l=i.getPosition(),u=n.getPosition(),v=(0,o.EY)(r,d,i.getRadius(),n.getRadius()),h=t.createLinearGradient(l.x,l.y,u.x,u.y);return h.addColorStop(a,(0,o.LC)(r,e)),h.addColorStop((0,o.qE)(s,a,c),(0,o.xx)(v,e)),h.addColorStop(c,(0,o.LC)(d,e)),h}(i,n,e,s.links.opacity)}function d(t,i,n){t.canvas.draw((e=>{var s;const a=r(t,e,i,n);if(!a)return;const c=i.getPosition(),d=n.getPosition();!function(t,i,n,e,s){(0,o.V6)(t,e,s),t.lineWidth=i,t.strokeStyle=n,t.stroke()}(e,null!==(s=i.retina.linksWidth)&&void 0!==s?s:0,a,c,d)}))}class l extends o.sJ{constructor(t){super(t)}clear(){}init(){const t=this.container,i=t.actualOptions.interactivity.modes.connect;i&&(t.retina.connectModeDistance=i.distance*t.retina.pixelRatio,t.retina.connectModeRadius=i.radius*t.retina.pixelRatio)}interact(){const t=this.container;if(t.actualOptions.interactivity.events.onHover.enable&&"pointermove"===t.interactivity.status){const i=t.interactivity.mouse.position,{connectModeDistance:n,connectModeRadius:o}=t.retina;if(!n||n<0||!o||o<0||!i)return;const e=Math.abs(o),s=t.particles.quadTree.queryCircle(i,e,(t=>this.isEnabled(t)));s.forEach(((i,o)=>{const e=i.getPosition();for(const a of s.slice(o+1)){const o=a.getPosition(),s=Math.abs(n),c=Math.abs(e.x-o.x),r=Math.abs(e.y-o.y);c1?i-1:0),o=1;o{n.d(i,{Connector:()=>l});var o=n(4409);class e{constructor(){this.opacity=.5}load(t){t&&void 0!==t.opacity&&(this.opacity=t.opacity)}}class s{constructor(){this.distance=80,this.links=new e,this.radius=60}load(t){t&&(void 0!==t.distance&&(this.distance=t.distance),this.links.load(t.links),void 0!==t.radius&&(this.radius=t.radius))}}const a=0,c=1;function r(t,i,n,e){const s=t.actualOptions.interactivity.modes.connect;if(s)return function(t,i,n,e){const s=Math.floor(n.getRadius()/i.getRadius()),r=i.getFillColor(),d=n.getFillColor();if(!r||!d)return;const l=i.getPosition(),u=n.getPosition(),v=(0,o.EY)(r,d,i.getRadius(),n.getRadius()),h=t.createLinearGradient(l.x,l.y,u.x,u.y);return h.addColorStop(a,(0,o.LC)(r,e)),h.addColorStop((0,o.qE)(s,a,c),(0,o.xx)(v,e)),h.addColorStop(c,(0,o.LC)(d,e)),h}(i,n,e,s.links.opacity)}function d(t,i,n){t.canvas.draw((e=>{var s;const a=r(t,e,i,n);if(!a)return;const c=i.getPosition(),d=n.getPosition();!function(t,i,n,e,s){(0,o.V6)(t,e,s),t.lineWidth=i,t.strokeStyle=n,t.stroke()}(e,null!==(s=i.retina.linksWidth)&&void 0!==s?s:0,a,c,d)}))}class l extends o.sJ{constructor(t){super(t)}clear(){}init(){const t=this.container,i=t.actualOptions.interactivity.modes.connect;i&&(t.retina.connectModeDistance=i.distance*t.retina.pixelRatio,t.retina.connectModeRadius=i.radius*t.retina.pixelRatio)}interact(){const t=this.container;if(t.actualOptions.interactivity.events.onHover.enable&&"pointermove"===t.interactivity.status){const i=t.interactivity.mouse.position,{connectModeDistance:n,connectModeRadius:o}=t.retina;if(!n||n<0||!o||o<0||!i)return;const e=Math.abs(o),s=t.particles.quadTree.queryCircle(i,e,(t=>this.isEnabled(t)));s.forEach(((i,o)=>{const e=i.getPosition();for(const a of s.slice(o+1)){const o=a.getPosition(),s=Math.abs(n),c=Math.abs(e.x-o.x),r=Math.abs(e.y-o.y);c1?i-1:0),o=1;o {\n const ls = lineStyle(container, ctx, p1, p2);\n if (!ls) {\n return;\n }\n const pos1 = p1.getPosition(), pos2 = p2.getPosition();\n drawConnectLine(ctx, p1.retina.linksWidth ?? defaultLinksWidth, ls, pos1, pos2);\n });\n}\n","import { ExternalInteractorBase, isInArray, } from \"@tsparticles/engine\";\nimport { Connect } from \"./Options/Classes/Connect.js\";\nimport { drawConnection } from \"./Utils.js\";\nconst connectMode = \"connect\", minDistance = 0;\nexport class Connector extends ExternalInteractorBase {\n constructor(container) {\n super(container);\n }\n clear() {\n }\n init() {\n const container = this.container, connect = container.actualOptions.interactivity.modes.connect;\n if (!connect) {\n return;\n }\n container.retina.connectModeDistance = connect.distance * container.retina.pixelRatio;\n container.retina.connectModeRadius = connect.radius * container.retina.pixelRatio;\n }\n interact() {\n const container = this.container, options = container.actualOptions;\n if (options.interactivity.events.onHover.enable && container.interactivity.status === \"pointermove\") {\n const mousePos = container.interactivity.mouse.position, { connectModeDistance, connectModeRadius } = container.retina;\n if (!connectModeDistance ||\n connectModeDistance < minDistance ||\n !connectModeRadius ||\n connectModeRadius < minDistance ||\n !mousePos) {\n return;\n }\n const distance = Math.abs(connectModeRadius), query = container.particles.quadTree.queryCircle(mousePos, distance, (p) => this.isEnabled(p));\n query.forEach((p1, i) => {\n const pos1 = p1.getPosition(), indexOffset = 1;\n for (const p2 of query.slice(i + indexOffset)) {\n const pos2 = p2.getPosition(), distMax = Math.abs(connectModeDistance), xDiff = Math.abs(pos1.x - pos2.x), yDiff = Math.abs(pos1.y - pos2.y);\n if (xDiff < distMax && yDiff < distMax) {\n drawConnection(container, p1, p2);\n }\n }\n });\n }\n }\n isEnabled(particle) {\n const container = this.container, mouse = container.interactivity.mouse, events = (particle?.interactivity ?? container.actualOptions.interactivity).events;\n if (!(events.onHover.enable && mouse.position)) {\n return false;\n }\n return isInArray(connectMode, events.onHover.mode);\n }\n loadModeOptions(options, ...sources) {\n if (!options.connect) {\n options.connect = new Connect();\n }\n for (const source of sources) {\n options.connect.load(source?.connect);\n }\n }\n reset() {\n }\n}\n"],"names":["ConnectLinks","constructor","this","opacity","load","data","undefined","Connect","distance","links","radius","gradientMin","gradientMax","lineStyle","container","ctx","p1","p2","connectOptions","actualOptions","interactivity","modes","connect","context","gradStop","Math","floor","getRadius","color1","getFillColor","color2","sourcePos","getPosition","destPos","midRgb","colorMix","grad","createLinearGradient","x","y","addColorStop","getStyleFromHsl","clamp","getStyleFromRgb","gradient","drawConnection","canvas","draw","_p1$retina$linksWidth","ls","pos1","pos2","width","begin","end","drawLine","lineWidth","strokeStyle","stroke","drawConnectLine","retina","linksWidth","Connector","ExternalInteractorBase","super","clear","init","connectModeDistance","pixelRatio","connectModeRadius","interact","events","onHover","enable","status","mousePos","mouse","position","abs","query","particles","quadTree","queryCircle","p","isEnabled","forEach","i","slice","distMax","xDiff","yDiff","particle","_particle$interactivi","isInArray","mode","loadModeOptions","options","_len","arguments","length","sources","Array","_key","source","reset"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/4304.f69c13ee.chunk.js","mappings":"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","sources":["../node_modules/@tsparticles/interaction-external-connect/browser/Options/Classes/ConnectLinks.js","../node_modules/@tsparticles/interaction-external-connect/browser/Options/Classes/Connect.js","../node_modules/@tsparticles/interaction-external-connect/browser/Utils.js","../node_modules/@tsparticles/interaction-external-connect/browser/Connector.js"],"sourcesContent":["export class ConnectLinks {\n constructor() {\n this.opacity = 0.5;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n }\n}\n","import { ConnectLinks } from \"./ConnectLinks.js\";\nexport class Connect {\n constructor() {\n this.distance = 80;\n this.links = new ConnectLinks();\n this.radius = 60;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n this.links.load(data.links);\n if (data.radius !== undefined) {\n this.radius = data.radius;\n }\n }\n}\n","import { clamp, colorMix, drawLine, getStyleFromHsl, getStyleFromRgb, } from \"@tsparticles/engine\";\nconst gradientMin = 0, gradientMax = 1, defaultLinksWidth = 0;\nexport function gradient(context, p1, p2, opacity) {\n const gradStop = Math.floor(p2.getRadius() / p1.getRadius()), color1 = p1.getFillColor(), color2 = p2.getFillColor();\n if (!color1 || !color2) {\n return;\n }\n const sourcePos = p1.getPosition(), destPos = p2.getPosition(), midRgb = colorMix(color1, color2, p1.getRadius(), p2.getRadius()), grad = context.createLinearGradient(sourcePos.x, sourcePos.y, destPos.x, destPos.y);\n grad.addColorStop(gradientMin, getStyleFromHsl(color1, opacity));\n grad.addColorStop(clamp(gradStop, gradientMin, gradientMax), getStyleFromRgb(midRgb, opacity));\n grad.addColorStop(gradientMax, getStyleFromHsl(color2, opacity));\n return grad;\n}\nexport function drawConnectLine(context, width, lineStyle, begin, end) {\n drawLine(context, begin, end);\n context.lineWidth = width;\n context.strokeStyle = lineStyle;\n context.stroke();\n}\nexport function lineStyle(container, ctx, p1, p2) {\n const options = container.actualOptions, connectOptions = options.interactivity.modes.connect;\n if (!connectOptions) {\n return;\n }\n return gradient(ctx, p1, p2, connectOptions.links.opacity);\n}\nexport function drawConnection(container, p1, p2) {\n container.canvas.draw((ctx) => {\n const ls = lineStyle(container, ctx, p1, p2);\n if (!ls) {\n return;\n }\n const pos1 = p1.getPosition(), pos2 = p2.getPosition();\n drawConnectLine(ctx, p1.retina.linksWidth ?? defaultLinksWidth, ls, pos1, pos2);\n });\n}\n","import { ExternalInteractorBase, isInArray, } from \"@tsparticles/engine\";\nimport { Connect } from \"./Options/Classes/Connect.js\";\nimport { drawConnection } from \"./Utils.js\";\nconst connectMode = \"connect\", minDistance = 0;\nexport class Connector extends ExternalInteractorBase {\n constructor(container) {\n super(container);\n }\n clear() {\n }\n init() {\n const container = this.container, connect = container.actualOptions.interactivity.modes.connect;\n if (!connect) {\n return;\n }\n container.retina.connectModeDistance = connect.distance * container.retina.pixelRatio;\n container.retina.connectModeRadius = connect.radius * container.retina.pixelRatio;\n }\n interact() {\n const container = this.container, options = container.actualOptions;\n if (options.interactivity.events.onHover.enable && container.interactivity.status === \"pointermove\") {\n const mousePos = container.interactivity.mouse.position, { connectModeDistance, connectModeRadius } = container.retina;\n if (!connectModeDistance ||\n connectModeDistance < minDistance ||\n !connectModeRadius ||\n connectModeRadius < minDistance ||\n !mousePos) {\n return;\n }\n const distance = Math.abs(connectModeRadius), query = container.particles.quadTree.queryCircle(mousePos, distance, (p) => this.isEnabled(p));\n query.forEach((p1, i) => {\n const pos1 = p1.getPosition(), indexOffset = 1;\n for (const p2 of query.slice(i + indexOffset)) {\n const pos2 = p2.getPosition(), distMax = Math.abs(connectModeDistance), xDiff = Math.abs(pos1.x - pos2.x), yDiff = Math.abs(pos1.y - pos2.y);\n if (xDiff < distMax && yDiff < distMax) {\n drawConnection(container, p1, p2);\n }\n }\n });\n }\n }\n isEnabled(particle) {\n const container = this.container, mouse = container.interactivity.mouse, events = (particle?.interactivity ?? container.actualOptions.interactivity).events;\n if (!(events.onHover.enable && mouse.position)) {\n return false;\n }\n return isInArray(connectMode, events.onHover.mode);\n }\n loadModeOptions(options, ...sources) {\n if (!options.connect) {\n options.connect = new Connect();\n }\n for (const source of sources) {\n options.connect.load(source?.connect);\n }\n }\n reset() {\n }\n}\n"],"names":["ConnectLinks","constructor","this","opacity","load","data","undefined","Connect","distance","links","radius","gradientMin","gradientMax","lineStyle","container","ctx","p1","p2","connectOptions","actualOptions","interactivity","modes","connect","context","gradStop","Math","floor","getRadius","color1","getFillColor","color2","sourcePos","getPosition","destPos","midRgb","colorMix","grad","createLinearGradient","x","y","addColorStop","getStyleFromHsl","clamp","getStyleFromRgb","gradient","drawConnection","canvas","draw","_p1$retina$linksWidth","ls","pos1","pos2","width","begin","end","drawLine","lineWidth","strokeStyle","stroke","drawConnectLine","retina","linksWidth","Connector","ExternalInteractorBase","super","clear","init","connectModeDistance","pixelRatio","connectModeRadius","interact","events","onHover","enable","status","mousePos","mouse","position","abs","query","particles","quadTree","queryCircle","p","isEnabled","forEach","i","slice","distMax","xDiff","yDiff","particle","_particle$interactivi","isInArray","mode","loadModeOptions","options","_len","arguments","length","sources","Array","_key","source","reset"],"sourceRoot":""} \ No newline at end of file diff --git a/build/static/js/4426.d2c486fd.chunk.js b/build/static/js/4426.d2c486fd.chunk.js deleted file mode 100644 index 38abcdc..0000000 --- a/build/static/js/4426.d2c486fd.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkclient=self.webpackChunkclient||[]).push([[4426],{4426:(e,t,a)=>{async function n(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];await e.addParticleUpdater("color",(async e=>{const{ColorUpdater:t}=await a.e(8800).then(a.bind(a,8800));return new t(e)}),t)}a.d(t,{loadColorUpdater:()=>n})}}]); -//# sourceMappingURL=4426.d2c486fd.chunk.js.map \ No newline at end of file diff --git a/build/static/js/4426.ece16b41.chunk.js b/build/static/js/4426.ece16b41.chunk.js new file mode 100644 index 0000000..a8c0021 --- /dev/null +++ b/build/static/js/4426.ece16b41.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkresview=self.webpackChunkresview||[]).push([[4426],{4426:(e,a,t)=>{async function n(e){let a=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];await e.addParticleUpdater("color",(async e=>{const{ColorUpdater:a}=await t.e(8800).then(t.bind(t,8800));return new a(e)}),a)}t.d(a,{loadColorUpdater:()=>n})}}]); +//# sourceMappingURL=4426.ece16b41.chunk.js.map \ No newline at end of file diff --git a/build/static/js/4426.d2c486fd.chunk.js.map b/build/static/js/4426.ece16b41.chunk.js.map similarity index 83% rename from build/static/js/4426.d2c486fd.chunk.js.map rename to build/static/js/4426.ece16b41.chunk.js.map index 2621f32..9da5cce 100644 --- a/build/static/js/4426.d2c486fd.chunk.js.map +++ b/build/static/js/4426.ece16b41.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/4426.d2c486fd.chunk.js","mappings":"gGAAOA,eAAeC,EAAiBC,GAAwB,IAAhBC,IAAOC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,KAAAA,UAAA,SAC5CF,EAAOK,mBAAmB,SAASP,UACrC,MAAM,aAAEQ,SAAuB,+BAC/B,OAAO,IAAIA,EAAaC,EAAU,GACnCN,EACP,C","sources":["../node_modules/@tsparticles/updater-color/browser/index.js"],"sourcesContent":["export async function loadColorUpdater(engine, refresh = true) {\n await engine.addParticleUpdater(\"color\", async (container) => {\n const { ColorUpdater } = await import(\"./ColorUpdater.js\");\n return new ColorUpdater(container);\n }, refresh);\n}\n"],"names":["async","loadColorUpdater","engine","refresh","arguments","length","undefined","addParticleUpdater","ColorUpdater","container"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/4426.ece16b41.chunk.js","mappings":"kGAAOA,eAAeC,EAAiBC,GAAwB,IAAhBC,IAAOC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,KAAAA,UAAA,SAC5CF,EAAOK,mBAAmB,SAASP,UACrC,MAAM,aAAEQ,SAAuB,+BAC/B,OAAO,IAAIA,EAAaC,EAAU,GACnCN,EACP,C","sources":["../node_modules/@tsparticles/updater-color/browser/index.js"],"sourcesContent":["export async function loadColorUpdater(engine, refresh = true) {\n await engine.addParticleUpdater(\"color\", async (container) => {\n const { ColorUpdater } = await import(\"./ColorUpdater.js\");\n return new ColorUpdater(container);\n }, refresh);\n}\n"],"names":["async","loadColorUpdater","engine","refresh","arguments","length","undefined","addParticleUpdater","ColorUpdater","container"],"sourceRoot":""} \ No newline at end of file diff --git a/build/static/js/4494.3fc0f687.chunk.js b/build/static/js/4494.3fc0f687.chunk.js new file mode 100644 index 0000000..a79dfec --- /dev/null +++ b/build/static/js/4494.3fc0f687.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkresview=self.webpackChunkresview||[]).push([[4494],{4494:(e,i,s)=>{s.d(i,{SizeUpdater:()=>o});var n=s(4409);class o{init(e){const i=e.container,s=e.options.size.animation;var o;s.enable&&(e.size.velocity=(null!==(o=e.retina.sizeAnimationSpeed)&&void 0!==o?o:i.retina.sizeAnimationSpeed)/n.a5*i.retina.reduceFactor,s.sync||(e.size.velocity*=(0,n.G0)()))}isEnabled(e){var i,s,n,o;return!e.destroyed&&!e.spawning&&e.size.enable&&((null!==(i=e.size.maxLoops)&&void 0!==i?i:0)<=0||(null!==(s=e.size.maxLoops)&&void 0!==s?s:0)>0&&(null!==(n=e.size.loops)&&void 0!==n?n:0)<(null!==(o=e.size.maxLoops)&&void 0!==o?o:0))}reset(e){e.size.loops=0}update(e,i){this.isEnabled(e)&&(0,n.UC)(e,e.size,!0,e.options.size.animation.destroy,i)}}}}]); +//# sourceMappingURL=4494.3fc0f687.chunk.js.map \ No newline at end of file diff --git a/build/static/js/4494.5869f822.chunk.js.map b/build/static/js/4494.3fc0f687.chunk.js.map similarity index 95% rename from build/static/js/4494.5869f822.chunk.js.map rename to build/static/js/4494.3fc0f687.chunk.js.map index b865ac7..e09ae64 100644 --- a/build/static/js/4494.5869f822.chunk.js.map +++ b/build/static/js/4494.3fc0f687.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/4494.5869f822.chunk.js","mappings":"yIAEO,MAAMA,EACTC,IAAAA,CAAKC,GACD,MAAMC,EAAYD,EAASC,UAAgDC,EAAvBF,EAASG,QAAQC,KAAkCC,UAC7E,IAAAC,EAAtBJ,EAAcK,SACdP,EAASI,KAAKI,UAC0B,QAAnCF,EAACN,EAASS,OAAOC,0BAAkB,IAAAJ,EAAAA,EAAIL,EAAUQ,OAAOC,oBAAsBC,EAAAA,GAC3EV,EAAUQ,OAAOG,aACpBV,EAAcW,OACfb,EAASI,KAAKI,WAAYM,EAAAA,EAAAA,OAGtC,CACAC,SAAAA,CAAUf,GAAU,IAAAgB,EAAAC,EAAAC,EAAAC,EAChB,OAASnB,EAASoB,YACbpB,EAASqB,UACVrB,EAASI,KAAKG,UACU,QAAvBS,EAAChB,EAASI,KAAKkB,gBAAQ,IAAAN,EAAAA,EAjBnB,QAkBuB,QAAvBC,EAACjB,EAASI,KAAKkB,gBAAQ,IAAAL,EAAAA,EAlBvB,OAmBuB,QAApBC,EAAClB,EAASI,KAAKmB,aAAK,IAAAL,EAAAA,EAnBvB,IAmB8D,QAA3BC,EAAKnB,EAASI,KAAKkB,gBAAQ,IAAAH,EAAAA,EAnB9D,GAoBb,CACAK,KAAAA,CAAMxB,GACFA,EAASI,KAAKmB,MAtBL,CAuBb,CACAE,MAAAA,CAAOzB,EAAU0B,GACRC,KAAKZ,UAAUf,KAGpB4B,EAAAA,EAAAA,IAAgB5B,EAAUA,EAASI,MAAM,EAAMJ,EAASG,QAAQC,KAAKC,UAAUwB,QAASH,EAC5F,E","sources":["../node_modules/@tsparticles/updater-size/browser/SizeUpdater.js"],"sourcesContent":["import { getRandom, percentDenominator, updateAnimation, } from \"@tsparticles/engine\";\nconst minLoops = 0;\nexport class SizeUpdater {\n init(particle) {\n const container = particle.container, sizeOptions = particle.options.size, sizeAnimation = sizeOptions.animation;\n if (sizeAnimation.enable) {\n particle.size.velocity =\n ((particle.retina.sizeAnimationSpeed ?? container.retina.sizeAnimationSpeed) / percentDenominator) *\n container.retina.reduceFactor;\n if (!sizeAnimation.sync) {\n particle.size.velocity *= getRandom();\n }\n }\n }\n isEnabled(particle) {\n return (!particle.destroyed &&\n !particle.spawning &&\n particle.size.enable &&\n ((particle.size.maxLoops ?? minLoops) <= minLoops ||\n ((particle.size.maxLoops ?? minLoops) > minLoops &&\n (particle.size.loops ?? minLoops) < (particle.size.maxLoops ?? minLoops))));\n }\n reset(particle) {\n particle.size.loops = minLoops;\n }\n update(particle, delta) {\n if (!this.isEnabled(particle)) {\n return;\n }\n updateAnimation(particle, particle.size, true, particle.options.size.animation.destroy, delta);\n }\n}\n"],"names":["SizeUpdater","init","particle","container","sizeAnimation","options","size","animation","_particle$retina$size","enable","velocity","retina","sizeAnimationSpeed","percentDenominator","reduceFactor","sync","getRandom","isEnabled","_particle$size$maxLoo","_particle$size$maxLoo2","_particle$size$loops","_particle$size$maxLoo3","destroyed","spawning","maxLoops","loops","reset","update","delta","this","updateAnimation","destroy"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/4494.3fc0f687.chunk.js","mappings":"2IAEO,MAAMA,EACTC,IAAAA,CAAKC,GACD,MAAMC,EAAYD,EAASC,UAAgDC,EAAvBF,EAASG,QAAQC,KAAkCC,UAC7E,IAAAC,EAAtBJ,EAAcK,SACdP,EAASI,KAAKI,UAC0B,QAAnCF,EAACN,EAASS,OAAOC,0BAAkB,IAAAJ,EAAAA,EAAIL,EAAUQ,OAAOC,oBAAsBC,EAAAA,GAC3EV,EAAUQ,OAAOG,aACpBV,EAAcW,OACfb,EAASI,KAAKI,WAAYM,EAAAA,EAAAA,OAGtC,CACAC,SAAAA,CAAUf,GAAU,IAAAgB,EAAAC,EAAAC,EAAAC,EAChB,OAASnB,EAASoB,YACbpB,EAASqB,UACVrB,EAASI,KAAKG,UACU,QAAvBS,EAAChB,EAASI,KAAKkB,gBAAQ,IAAAN,EAAAA,EAjBnB,QAkBuB,QAAvBC,EAACjB,EAASI,KAAKkB,gBAAQ,IAAAL,EAAAA,EAlBvB,OAmBuB,QAApBC,EAAClB,EAASI,KAAKmB,aAAK,IAAAL,EAAAA,EAnBvB,IAmB8D,QAA3BC,EAAKnB,EAASI,KAAKkB,gBAAQ,IAAAH,EAAAA,EAnB9D,GAoBb,CACAK,KAAAA,CAAMxB,GACFA,EAASI,KAAKmB,MAtBL,CAuBb,CACAE,MAAAA,CAAOzB,EAAU0B,GACRC,KAAKZ,UAAUf,KAGpB4B,EAAAA,EAAAA,IAAgB5B,EAAUA,EAASI,MAAM,EAAMJ,EAASG,QAAQC,KAAKC,UAAUwB,QAASH,EAC5F,E","sources":["../node_modules/@tsparticles/updater-size/browser/SizeUpdater.js"],"sourcesContent":["import { getRandom, percentDenominator, updateAnimation, } from \"@tsparticles/engine\";\nconst minLoops = 0;\nexport class SizeUpdater {\n init(particle) {\n const container = particle.container, sizeOptions = particle.options.size, sizeAnimation = sizeOptions.animation;\n if (sizeAnimation.enable) {\n particle.size.velocity =\n ((particle.retina.sizeAnimationSpeed ?? container.retina.sizeAnimationSpeed) / percentDenominator) *\n container.retina.reduceFactor;\n if (!sizeAnimation.sync) {\n particle.size.velocity *= getRandom();\n }\n }\n }\n isEnabled(particle) {\n return (!particle.destroyed &&\n !particle.spawning &&\n particle.size.enable &&\n ((particle.size.maxLoops ?? minLoops) <= minLoops ||\n ((particle.size.maxLoops ?? minLoops) > minLoops &&\n (particle.size.loops ?? minLoops) < (particle.size.maxLoops ?? minLoops))));\n }\n reset(particle) {\n particle.size.loops = minLoops;\n }\n update(particle, delta) {\n if (!this.isEnabled(particle)) {\n return;\n }\n updateAnimation(particle, particle.size, true, particle.options.size.animation.destroy, delta);\n }\n}\n"],"names":["SizeUpdater","init","particle","container","sizeAnimation","options","size","animation","_particle$retina$size","enable","velocity","retina","sizeAnimationSpeed","percentDenominator","reduceFactor","sync","getRandom","isEnabled","_particle$size$maxLoo","_particle$size$maxLoo2","_particle$size$loops","_particle$size$maxLoo3","destroyed","spawning","maxLoops","loops","reset","update","delta","this","updateAnimation","destroy"],"sourceRoot":""} \ No newline at end of file diff --git a/build/static/js/4494.5869f822.chunk.js b/build/static/js/4494.5869f822.chunk.js deleted file mode 100644 index 8117bc6..0000000 --- a/build/static/js/4494.5869f822.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkclient=self.webpackChunkclient||[]).push([[4494],{4494:(e,i,s)=>{s.d(i,{SizeUpdater:()=>o});var n=s(4409);class o{init(e){const i=e.container,s=e.options.size.animation;var o;s.enable&&(e.size.velocity=(null!==(o=e.retina.sizeAnimationSpeed)&&void 0!==o?o:i.retina.sizeAnimationSpeed)/n.a5*i.retina.reduceFactor,s.sync||(e.size.velocity*=(0,n.G0)()))}isEnabled(e){var i,s,n,o;return!e.destroyed&&!e.spawning&&e.size.enable&&((null!==(i=e.size.maxLoops)&&void 0!==i?i:0)<=0||(null!==(s=e.size.maxLoops)&&void 0!==s?s:0)>0&&(null!==(n=e.size.loops)&&void 0!==n?n:0)<(null!==(o=e.size.maxLoops)&&void 0!==o?o:0))}reset(e){e.size.loops=0}update(e,i){this.isEnabled(e)&&(0,n.UC)(e,e.size,!0,e.options.size.animation.destroy,i)}}}}]); -//# sourceMappingURL=4494.5869f822.chunk.js.map \ No newline at end of file diff --git a/build/static/js/4570.16f915eb.chunk.js b/build/static/js/4570.16f915eb.chunk.js new file mode 100644 index 0000000..da9c91c --- /dev/null +++ b/build/static/js/4570.16f915eb.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkresview=self.webpackChunkresview||[]).push([[4570],{2189:(e,a,n)=>{async function t(e){let a=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];await e.addInteractor("externalPause",(async e=>{const{Pauser:a}=await n.e(5080).then(n.bind(n,5080));return new a(e)}),a)}n.d(a,{loadExternalPauseInteraction:()=>t})}}]); +//# sourceMappingURL=4570.16f915eb.chunk.js.map \ No newline at end of file diff --git a/build/static/js/4570.a64bdfd2.chunk.js.map b/build/static/js/4570.16f915eb.chunk.js.map similarity index 83% rename from build/static/js/4570.a64bdfd2.chunk.js.map rename to build/static/js/4570.16f915eb.chunk.js.map index 16e4c76..b726e1b 100644 --- a/build/static/js/4570.a64bdfd2.chunk.js.map +++ b/build/static/js/4570.16f915eb.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/4570.a64bdfd2.chunk.js","mappings":"gGAAOA,eAAeC,EAA6BC,GAAwB,IAAhBC,IAAOC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,KAAAA,UAAA,SACxDF,EAAOK,cAAc,iBAAiBP,UACxC,MAAM,OAAEQ,SAAiB,+BACzB,OAAO,IAAIA,EAAOC,EAAU,GAC7BN,EACP,C","sources":["../node_modules/@tsparticles/interaction-external-pause/browser/index.js"],"sourcesContent":["export async function loadExternalPauseInteraction(engine, refresh = true) {\n await engine.addInteractor(\"externalPause\", async (container) => {\n const { Pauser } = await import(\"./Pauser.js\");\n return new Pauser(container);\n }, refresh);\n}\n"],"names":["async","loadExternalPauseInteraction","engine","refresh","arguments","length","undefined","addInteractor","Pauser","container"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/4570.16f915eb.chunk.js","mappings":"kGAAOA,eAAeC,EAA6BC,GAAwB,IAAhBC,IAAOC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,KAAAA,UAAA,SACxDF,EAAOK,cAAc,iBAAiBP,UACxC,MAAM,OAAEQ,SAAiB,+BACzB,OAAO,IAAIA,EAAOC,EAAU,GAC7BN,EACP,C","sources":["../node_modules/@tsparticles/interaction-external-pause/browser/index.js"],"sourcesContent":["export async function loadExternalPauseInteraction(engine, refresh = true) {\n await engine.addInteractor(\"externalPause\", async (container) => {\n const { Pauser } = await import(\"./Pauser.js\");\n return new Pauser(container);\n }, refresh);\n}\n"],"names":["async","loadExternalPauseInteraction","engine","refresh","arguments","length","undefined","addInteractor","Pauser","container"],"sourceRoot":""} \ No newline at end of file diff --git a/build/static/js/4570.a64bdfd2.chunk.js b/build/static/js/4570.a64bdfd2.chunk.js deleted file mode 100644 index 43b7872..0000000 --- a/build/static/js/4570.a64bdfd2.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkclient=self.webpackChunkclient||[]).push([[4570],{2189:(e,n,t)=>{async function a(e){let n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];await e.addInteractor("externalPause",(async e=>{const{Pauser:n}=await t.e(5080).then(t.bind(t,5080));return new n(e)}),n)}t.d(n,{loadExternalPauseInteraction:()=>a})}}]); -//# sourceMappingURL=4570.a64bdfd2.chunk.js.map \ No newline at end of file diff --git a/build/static/js/463.c6d78824.chunk.js b/build/static/js/463.c6d78824.chunk.js deleted file mode 100644 index 2ff4974..0000000 --- a/build/static/js/463.c6d78824.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkclient=self.webpackChunkclient||[]).push([[463],{463:(t,e,a)=>{a.d(e,{zS:()=>p,loadGifImage:()=>u});const o=[0,4,2,1],i=[8,8,4,2];class r{constructor(t){this.pos=0,this.data=new Uint8ClampedArray(t)}getString(t){const e=this.data.slice(this.pos,this.pos+t);return this.pos+=e.length,e.reduce(((t,e)=>t+String.fromCharCode(e)),"")}nextByte(){return this.data[this.pos++]}nextTwoBytes(){return this.pos+=2,this.data[this.pos-2]+(this.data[this.pos-1]<<8)}readSubBlocks(){let t="",e=0;do{e=this.data[this.pos++];for(let a=e;--a>=0;t+=String.fromCharCode(this.data[this.pos++]));}while(0!==e);return t}readSubBlocksBin(){let t=this.data[this.pos],e=0;for(let o=0;0!==t;o+=t+1,t=this.data[this.pos+o])e+=t;const a=new Uint8Array(e);t=this.data[this.pos++];for(let o=0;0!==t;t=this.data[this.pos++])for(let e=t;--e>=0;a[o++]=this.data[this.pos++]);return a}skipSubBlocks(){for(const t=1,e=0;this.data[this.pos]!==e;this.pos+=this.data[this.pos]+t);this.pos++}}const n={x:0,y:0},s=0,l=.5,c=0,h=0,g=0;function f(t,e){const a=[];for(let o=0;o>>3;const d=1<<1+(7&c);h&&(l.localColorTable=f(t,d));const p=t=>{const{r:o,g:i,b:r}=(h?l.localColorTable:e.globalColorTable)[t];return t!==n(null)?{r:o,g:i,b:r,a:255}:{r:o,g:i,b:r,a:a?~~((o+i+r)/3):0}},u=(()=>{try{return new ImageData(l.width,l.height,{colorSpace:"srgb"})}catch(t){if(t instanceof DOMException&&"IndexSizeError"===t.name)return null;throw t}})();if(null==u)throw new EvalError("GIF frame size is to large");const w=t.nextByte(),m=t.readSubBlocksBin(),y=1<{const a=t>>>3,o=7&t;return(m[a]+(m[a+1]<<8)+(m[a+2]<<16)&(1<>>o};if(g){for(let a=0,n=w+1,c=0,h=[[0]],g=0;g<4;g++){if(o[g]=h.length?h.push(h[s].concat(h[s][0])):s!==y&&h.push(h[s].concat(h[a][0]));for(const r of h[a]){const{r:a,g:n,b:s,a:c}=p(r);u.data.set([a,n,s,c],o[g]*l.width+i[g]*e+t%(4*l.width)),t+=4}h.length===1<=l.height&&(r=!0))}}null===s||void 0===s||s(t.pos/(t.data.length-1),r(!1)+1,u,{x:l.left,y:l.top},{width:e.width,height:e.height})}l.image=u,l.bitmap=await createImageBitmap(u)}else{let a=0,o=w+1,i=0,n=-4,c=!1;const h=[[0]];for(;!c;){const t=a;if(a=b(i,o),i+=o,a===y){o=w+1,h.length=y+2;for(let t=0;t=h.length?h.push(h[t].concat(h[t][0])):t!==y&&h.push(h[t].concat(h[a][0]));for(const t of h[a]){const{r:e,g:a,b:o,a:i}=p(t);u.data.set([e,a,o,i],n+=4)}h.length>=1<>>5,i.disposalMethod=(28&r)>>>2,i.userInputDelayFlag=2===(2&r);const n=1===(1&r);i.delayTime=10*t.nextTwoBytes();const s=t.nextByte();n&&o(s),t.pos++;break}case 255:{t.pos++;const a={identifier:t.getString(8),authenticationCode:t.getString(3),data:t.readSubBlocksBin()};e.applicationExtensions.push(a);break}case 254:e.comments.push([a(!1),t.readSubBlocks()]);break;case 1:if(0===e.globalColorTable.length)throw new EvalError("plain text extension without global color table");t.pos++,e.frames[a(!1)].plainTextData={left:t.nextTwoBytes(),top:t.nextTwoBytes(),width:t.nextTwoBytes(),height:t.nextTwoBytes(),charSize:{width:t.nextTwoBytes(),height:t.nextTwoBytes()},foregroundColor:t.nextByte(),backgroundColor:t.nextByte(),text:t.readSubBlocks()};break;default:t.skipSubBlocks()}}(t,e,r,n);break;default:throw new EvalError("undefined block found")}return!1}function p(t){var e;const{context:a,radius:o,particle:i,delta:r}=t,f=i.image;if(null===f||void 0===f||!f.gifData||!f.gif)return;const d=new OffscreenCanvas(f.gifData.width,f.gifData.height),p=d.getContext("2d");if(!p)throw new Error("could not create offscreen canvas context");var u;(p.imageSmoothingQuality="low",p.imageSmoothingEnabled=!1,p.clearRect(n.x,n.y,d.width,d.height),void 0===i.gifLoopCount)&&(i.gifLoopCount=null!==(u=f.gifLoopCount)&&void 0!==u?u:g);let w=null!==(e=i.gifFrame)&&void 0!==e?e:s;const m={x:-f.gifData.width*l,y:-f.gifData.height*l},y=f.gifData.frames[w];if(void 0===i.gifTime&&(i.gifTime=c),y.bitmap){switch(a.scale(o/f.gifData.width,o/f.gifData.height),y.disposalMethod){case 4:case 5:case 6:case 7:case 0:p.drawImage(y.bitmap,y.left,y.top),a.drawImage(d,m.x,m.y),p.clearRect(n.x,n.y,d.width,d.height);break;case 1:p.drawImage(y.bitmap,y.left,y.top),a.drawImage(d,m.x,m.y);break;case 2:p.drawImage(y.bitmap,y.left,y.top),a.drawImage(d,m.x,m.y),p.clearRect(n.x,n.y,d.width,d.height),f.gifData.globalColorTable.length?p.putImageData(f.gifData.backgroundImage,m.x,m.y):p.putImageData(f.gifData.frames[h].image,m.x+y.left,m.y+y.top);break;case 3:{const t=p.getImageData(n.x,n.y,d.width,d.height);p.drawImage(y.bitmap,y.left,y.top),a.drawImage(d,m.x,m.y),p.clearRect(n.x,n.y,d.width,d.height),p.putImageData(t,n.x,n.y)}}if(i.gifTime+=r.value,i.gifTime>y.delayTime){if(i.gifTime-=y.delayTime,++w>=f.gifData.frames.length){if(--i.gifLoopCount<=g)return;w=h,p.clearRect(n.x,n.y,d.width,d.height)}i.gifFrame=w}a.scale(f.gifData.width/o,f.gifData.height/o)}}async function u(t){if("gif"===t.type){t.loading=!0;try{var e;t.gifData=await async function(t,e,a){a||(a=!1);const o=await fetch(t);if(!o.ok&&404===o.status)throw new EvalError("file not found");const i=await o.arrayBuffer(),n={width:0,height:0,totalTime:0,colorRes:0,pixelAspectRatio:0,frames:[],sortFlag:!1,globalColorTable:[],backgroundImage:new ImageData(1,1,{colorSpace:"srgb"}),comments:[],applicationExtensions:[]},s=new r(new Uint8ClampedArray(i));if("GIF89a"!==s.getString(6))throw new Error("not a supported GIF file");n.width=s.nextTwoBytes(),n.height=s.nextTwoBytes();const l=s.nextByte(),c=128===(128&l);n.colorRes=(112&l)>>>4,n.sortFlag=8===(8&l);const h=1<<1+(7&l),g=s.nextByte();n.pixelAspectRatio=s.nextByte(),0!==n.pixelAspectRatio&&(n.pixelAspectRatio=(n.pixelAspectRatio+15)/64),c&&(n.globalColorTable=f(s,h));const p=(()=>{try{return new ImageData(n.width,n.height,{colorSpace:"srgb"})}catch(t){if(t instanceof DOMException&&"IndexSizeError"===t.name)return null;throw t}})();if(null==p)throw new Error("GIF frame size is to large");const{r:u,g:w,b:m}=n.globalColorTable[g];p.data.set(c?[u,w,m,255]:[0,0,0,0]);for(let r=4;r(t&&(b=!0),y),T=t=>(null!=t&&(x=t),x);try{do{b&&(n.frames.push({left:0,top:0,width:0,height:0,disposalMethod:0,image:new ImageData(1,1,{colorSpace:"srgb"}),plainTextData:null,userInputDelayFlag:!1,delayTime:0,sortFlag:!1,localColorTable:[],reserved:0,GCreserved:0}),y++,x=-1,b=!1)}while(!await d(s,n,a,B,T,e));n.frames.length--;for(const t of n.frames){if(t.userInputDelayFlag&&0===t.delayTime){n.totalTime=1/0;break}n.totalTime+=t.delayTime}return n}catch(C){if(C instanceof EvalError)throw new Error("error while parsing frame ".concat(y,' "').concat(C.message,'"'));throw C}}(t.source),t.gifLoopCount=null!==(e=function(t){for(const e of t.applicationExtensions)if(e.identifier+e.authenticationCode==="NETSCAPE2.0")return e.data[1]+(e.data[2]<<8);return NaN}(t.gifData))&&void 0!==e?e:g,t.gifLoopCount||(t.gifLoopCount=1/0)}catch{t.error=!0}t.loading=!1}else{const{loadImage:e}=await Promise.resolve().then(a.bind(a,1977));await e(t)}}}}]); -//# sourceMappingURL=463.c6d78824.chunk.js.map \ No newline at end of file diff --git a/build/static/js/463.fb1557de.chunk.js b/build/static/js/463.fb1557de.chunk.js new file mode 100644 index 0000000..079edec --- /dev/null +++ b/build/static/js/463.fb1557de.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkresview=self.webpackChunkresview||[]).push([[463],{463:(t,e,a)=>{a.d(e,{zS:()=>p,loadGifImage:()=>u});const o=[0,4,2,1],i=[8,8,4,2];class r{constructor(t){this.pos=0,this.data=new Uint8ClampedArray(t)}getString(t){const e=this.data.slice(this.pos,this.pos+t);return this.pos+=e.length,e.reduce(((t,e)=>t+String.fromCharCode(e)),"")}nextByte(){return this.data[this.pos++]}nextTwoBytes(){return this.pos+=2,this.data[this.pos-2]+(this.data[this.pos-1]<<8)}readSubBlocks(){let t="",e=0;do{e=this.data[this.pos++];for(let a=e;--a>=0;t+=String.fromCharCode(this.data[this.pos++]));}while(0!==e);return t}readSubBlocksBin(){let t=this.data[this.pos],e=0;for(let o=0;0!==t;o+=t+1,t=this.data[this.pos+o])e+=t;const a=new Uint8Array(e);t=this.data[this.pos++];for(let o=0;0!==t;t=this.data[this.pos++])for(let e=t;--e>=0;a[o++]=this.data[this.pos++]);return a}skipSubBlocks(){for(const t=1,e=0;this.data[this.pos]!==e;this.pos+=this.data[this.pos]+t);this.pos++}}const n={x:0,y:0},s=0,l=.5,h=0,c=0,g=0;function f(t,e){const a=[];for(let o=0;o>>3;const d=1<<1+(7&h);c&&(l.localColorTable=f(t,d));const p=t=>{const{r:o,g:i,b:r}=(c?l.localColorTable:e.globalColorTable)[t];return t!==n(null)?{r:o,g:i,b:r,a:255}:{r:o,g:i,b:r,a:a?~~((o+i+r)/3):0}},u=(()=>{try{return new ImageData(l.width,l.height,{colorSpace:"srgb"})}catch(t){if(t instanceof DOMException&&"IndexSizeError"===t.name)return null;throw t}})();if(null==u)throw new EvalError("GIF frame size is to large");const w=t.nextByte(),m=t.readSubBlocksBin(),y=1<{const a=t>>>3,o=7&t;return(m[a]+(m[a+1]<<8)+(m[a+2]<<16)&(1<>>o};if(g){for(let a=0,n=w+1,h=0,c=[[0]],g=0;g<4;g++){if(o[g]=c.length?c.push(c[s].concat(c[s][0])):s!==y&&c.push(c[s].concat(c[a][0]));for(const r of c[a]){const{r:a,g:n,b:s,a:h}=p(r);u.data.set([a,n,s,h],o[g]*l.width+i[g]*e+t%(4*l.width)),t+=4}c.length===1<=l.height&&(r=!0))}}null===s||void 0===s||s(t.pos/(t.data.length-1),r(!1)+1,u,{x:l.left,y:l.top},{width:e.width,height:e.height})}l.image=u,l.bitmap=await createImageBitmap(u)}else{let a=0,o=w+1,i=0,n=-4,h=!1;const c=[[0]];for(;!h;){const t=a;if(a=b(i,o),i+=o,a===y){o=w+1,c.length=y+2;for(let t=0;t=c.length?c.push(c[t].concat(c[t][0])):t!==y&&c.push(c[t].concat(c[a][0]));for(const t of c[a]){const{r:e,g:a,b:o,a:i}=p(t);u.data.set([e,a,o,i],n+=4)}c.length>=1<>>5,i.disposalMethod=(28&r)>>>2,i.userInputDelayFlag=2===(2&r);const n=1===(1&r);i.delayTime=10*t.nextTwoBytes();const s=t.nextByte();n&&o(s),t.pos++;break}case 255:{t.pos++;const a={identifier:t.getString(8),authenticationCode:t.getString(3),data:t.readSubBlocksBin()};e.applicationExtensions.push(a);break}case 254:e.comments.push([a(!1),t.readSubBlocks()]);break;case 1:if(0===e.globalColorTable.length)throw new EvalError("plain text extension without global color table");t.pos++,e.frames[a(!1)].plainTextData={left:t.nextTwoBytes(),top:t.nextTwoBytes(),width:t.nextTwoBytes(),height:t.nextTwoBytes(),charSize:{width:t.nextTwoBytes(),height:t.nextTwoBytes()},foregroundColor:t.nextByte(),backgroundColor:t.nextByte(),text:t.readSubBlocks()};break;default:t.skipSubBlocks()}}(t,e,r,n);break;default:throw new EvalError("undefined block found")}return!1}function p(t){var e;const{context:a,radius:o,particle:i,delta:r}=t,f=i.image;if(null===f||void 0===f||!f.gifData||!f.gif)return;const d=new OffscreenCanvas(f.gifData.width,f.gifData.height),p=d.getContext("2d");if(!p)throw new Error("could not create offscreen canvas context");var u;(p.imageSmoothingQuality="low",p.imageSmoothingEnabled=!1,p.clearRect(n.x,n.y,d.width,d.height),void 0===i.gifLoopCount)&&(i.gifLoopCount=null!==(u=f.gifLoopCount)&&void 0!==u?u:g);let w=null!==(e=i.gifFrame)&&void 0!==e?e:s;const m={x:-f.gifData.width*l,y:-f.gifData.height*l},y=f.gifData.frames[w];if(void 0===i.gifTime&&(i.gifTime=h),y.bitmap){switch(a.scale(o/f.gifData.width,o/f.gifData.height),y.disposalMethod){case 4:case 5:case 6:case 7:case 0:p.drawImage(y.bitmap,y.left,y.top),a.drawImage(d,m.x,m.y),p.clearRect(n.x,n.y,d.width,d.height);break;case 1:p.drawImage(y.bitmap,y.left,y.top),a.drawImage(d,m.x,m.y);break;case 2:p.drawImage(y.bitmap,y.left,y.top),a.drawImage(d,m.x,m.y),p.clearRect(n.x,n.y,d.width,d.height),f.gifData.globalColorTable.length?p.putImageData(f.gifData.backgroundImage,m.x,m.y):p.putImageData(f.gifData.frames[c].image,m.x+y.left,m.y+y.top);break;case 3:{const t=p.getImageData(n.x,n.y,d.width,d.height);p.drawImage(y.bitmap,y.left,y.top),a.drawImage(d,m.x,m.y),p.clearRect(n.x,n.y,d.width,d.height),p.putImageData(t,n.x,n.y)}}if(i.gifTime+=r.value,i.gifTime>y.delayTime){if(i.gifTime-=y.delayTime,++w>=f.gifData.frames.length){if(--i.gifLoopCount<=g)return;w=c,p.clearRect(n.x,n.y,d.width,d.height)}i.gifFrame=w}a.scale(f.gifData.width/o,f.gifData.height/o)}}async function u(t){if("gif"===t.type){t.loading=!0;try{var e;t.gifData=await async function(t,e,a){a||(a=!1);const o=await fetch(t);if(!o.ok&&404===o.status)throw new EvalError("file not found");const i=await o.arrayBuffer(),n={width:0,height:0,totalTime:0,colorRes:0,pixelAspectRatio:0,frames:[],sortFlag:!1,globalColorTable:[],backgroundImage:new ImageData(1,1,{colorSpace:"srgb"}),comments:[],applicationExtensions:[]},s=new r(new Uint8ClampedArray(i));if("GIF89a"!==s.getString(6))throw new Error("not a supported GIF file");n.width=s.nextTwoBytes(),n.height=s.nextTwoBytes();const l=s.nextByte(),h=128===(128&l);n.colorRes=(112&l)>>>4,n.sortFlag=8===(8&l);const c=1<<1+(7&l),g=s.nextByte();n.pixelAspectRatio=s.nextByte(),0!==n.pixelAspectRatio&&(n.pixelAspectRatio=(n.pixelAspectRatio+15)/64),h&&(n.globalColorTable=f(s,c));const p=(()=>{try{return new ImageData(n.width,n.height,{colorSpace:"srgb"})}catch(t){if(t instanceof DOMException&&"IndexSizeError"===t.name)return null;throw t}})();if(null==p)throw new Error("GIF frame size is to large");const{r:u,g:w,b:m}=n.globalColorTable[g];p.data.set(h?[u,w,m,255]:[0,0,0,0]);for(let r=4;r(t&&(b=!0),y),T=t=>(null!=t&&(x=t),x);try{do{b&&(n.frames.push({left:0,top:0,width:0,height:0,disposalMethod:0,image:new ImageData(1,1,{colorSpace:"srgb"}),plainTextData:null,userInputDelayFlag:!1,delayTime:0,sortFlag:!1,localColorTable:[],reserved:0,GCreserved:0}),y++,x=-1,b=!1)}while(!await d(s,n,a,B,T,e));n.frames.length--;for(const t of n.frames){if(t.userInputDelayFlag&&0===t.delayTime){n.totalTime=1/0;break}n.totalTime+=t.delayTime}return n}catch(C){if(C instanceof EvalError)throw new Error("error while parsing frame ".concat(y,' "').concat(C.message,'"'));throw C}}(t.source),t.gifLoopCount=null!==(e=function(t){for(const e of t.applicationExtensions)if(e.identifier+e.authenticationCode==="NETSCAPE2.0")return e.data[1]+(e.data[2]<<8);return NaN}(t.gifData))&&void 0!==e?e:g,t.gifLoopCount||(t.gifLoopCount=1/0)}catch{t.error=!0}t.loading=!1}else{const{loadImage:e}=await Promise.resolve().then(a.bind(a,1977));await e(t)}}}}]); +//# sourceMappingURL=463.fb1557de.chunk.js.map \ No newline at end of file diff --git a/build/static/js/463.c6d78824.chunk.js.map b/build/static/js/463.fb1557de.chunk.js.map similarity index 99% rename from build/static/js/463.c6d78824.chunk.js.map rename to build/static/js/463.fb1557de.chunk.js.map index 904b701..d5e3323 100644 --- a/build/static/js/463.c6d78824.chunk.js.map +++ b/build/static/js/463.fb1557de.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/463.c6d78824.chunk.js","mappings":"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","sources":["../node_modules/@tsparticles/shape-image/browser/GifUtils/Constants.js","../node_modules/@tsparticles/shape-image/browser/GifUtils/ByteStream.js","../node_modules/@tsparticles/shape-image/browser/GifUtils/Utils.js"],"sourcesContent":["export const InterlaceOffsets = [0, 4, 2, 1];\nexport const InterlaceSteps = [8, 8, 4, 2];\n","export class ByteStream {\n constructor(bytes) {\n this.pos = 0;\n this.data = new Uint8ClampedArray(bytes);\n }\n getString(count) {\n const slice = this.data.slice(this.pos, this.pos + count);\n this.pos += slice.length;\n return slice.reduce((acc, curr) => acc + String.fromCharCode(curr), \"\");\n }\n nextByte() {\n return this.data[this.pos++];\n }\n nextTwoBytes() {\n const increment = 2, previous = 1, shift = 8;\n this.pos += increment;\n return this.data[this.pos - increment] + (this.data[this.pos - previous] << shift);\n }\n readSubBlocks() {\n let blockString = \"\", size = 0;\n const minCount = 0, emptySize = 0;\n do {\n size = this.data[this.pos++];\n for (let count = size; --count >= minCount; blockString += String.fromCharCode(this.data[this.pos++])) {\n }\n } while (size !== emptySize);\n return blockString;\n }\n readSubBlocksBin() {\n let size = this.data[this.pos], len = 0;\n const emptySize = 0, increment = 1;\n for (let offset = 0; size !== emptySize; offset += size + increment, size = this.data[this.pos + offset]) {\n len += size;\n }\n const blockData = new Uint8Array(len);\n size = this.data[this.pos++];\n for (let i = 0; size !== emptySize; size = this.data[this.pos++]) {\n for (let count = size; --count >= emptySize; blockData[i++] = this.data[this.pos++]) {\n }\n }\n return blockData;\n }\n skipSubBlocks() {\n for (const increment = 1, noData = 0; this.data[this.pos] !== noData; this.pos += this.data[this.pos] + increment) {\n }\n this.pos++;\n }\n}\n","import { InterlaceOffsets, InterlaceSteps } from \"./Constants.js\";\nimport { ByteStream } from \"./ByteStream.js\";\nconst origin = {\n x: 0,\n y: 0,\n}, defaultFrame = 0, half = 0.5, initialTime = 0, firstIndex = 0, defaultLoopCount = 0;\nfunction parseColorTable(byteStream, count) {\n const colors = [];\n for (let i = 0; i < count; i++) {\n colors.push({\n r: byteStream.data[byteStream.pos],\n g: byteStream.data[byteStream.pos + 1],\n b: byteStream.data[byteStream.pos + 2],\n });\n byteStream.pos += 3;\n }\n return colors;\n}\nfunction parseExtensionBlock(byteStream, gif, getFrameIndex, getTransparencyIndex) {\n switch (byteStream.nextByte()) {\n case 249: {\n const frame = gif.frames[getFrameIndex(false)];\n byteStream.pos++;\n const packedByte = byteStream.nextByte();\n frame.GCreserved = (packedByte & 0xe0) >>> 5;\n frame.disposalMethod = (packedByte & 0x1c) >>> 2;\n frame.userInputDelayFlag = (packedByte & 2) === 2;\n const transparencyFlag = (packedByte & 1) === 1;\n frame.delayTime = byteStream.nextTwoBytes() * 0xa;\n const transparencyIndex = byteStream.nextByte();\n if (transparencyFlag) {\n getTransparencyIndex(transparencyIndex);\n }\n byteStream.pos++;\n break;\n }\n case 255: {\n byteStream.pos++;\n const applicationExtension = {\n identifier: byteStream.getString(8),\n authenticationCode: byteStream.getString(3),\n data: byteStream.readSubBlocksBin(),\n };\n gif.applicationExtensions.push(applicationExtension);\n break;\n }\n case 254: {\n gif.comments.push([getFrameIndex(false), byteStream.readSubBlocks()]);\n break;\n }\n case 1: {\n if (gif.globalColorTable.length === 0) {\n throw new EvalError(\"plain text extension without global color table\");\n }\n byteStream.pos++;\n gif.frames[getFrameIndex(false)].plainTextData = {\n left: byteStream.nextTwoBytes(),\n top: byteStream.nextTwoBytes(),\n width: byteStream.nextTwoBytes(),\n height: byteStream.nextTwoBytes(),\n charSize: {\n width: byteStream.nextTwoBytes(),\n height: byteStream.nextTwoBytes(),\n },\n foregroundColor: byteStream.nextByte(),\n backgroundColor: byteStream.nextByte(),\n text: byteStream.readSubBlocks(),\n };\n break;\n }\n default:\n byteStream.skipSubBlocks();\n break;\n }\n}\nasync function parseImageBlock(byteStream, gif, avgAlpha, getFrameIndex, getTransparencyIndex, progressCallback) {\n const frame = gif.frames[getFrameIndex(true)];\n frame.left = byteStream.nextTwoBytes();\n frame.top = byteStream.nextTwoBytes();\n frame.width = byteStream.nextTwoBytes();\n frame.height = byteStream.nextTwoBytes();\n const packedByte = byteStream.nextByte(), localColorTableFlag = (packedByte & 0x80) === 0x80, interlacedFlag = (packedByte & 0x40) === 0x40;\n frame.sortFlag = (packedByte & 0x20) === 0x20;\n frame.reserved = (packedByte & 0x18) >>> 3;\n const localColorCount = 1 << ((packedByte & 7) + 1);\n if (localColorTableFlag) {\n frame.localColorTable = parseColorTable(byteStream, localColorCount);\n }\n const getColor = (index) => {\n const { r, g, b } = (localColorTableFlag ? frame.localColorTable : gif.globalColorTable)[index];\n if (index !== getTransparencyIndex(null)) {\n return { r, g, b, a: 255 };\n }\n return { r, g, b, a: avgAlpha ? ~~((r + g + b) / 3) : 0 };\n };\n const image = (() => {\n try {\n return new ImageData(frame.width, frame.height, { colorSpace: \"srgb\" });\n }\n catch (error) {\n if (error instanceof DOMException && error.name === \"IndexSizeError\") {\n return null;\n }\n throw error;\n }\n })();\n if (image == null) {\n throw new EvalError(\"GIF frame size is to large\");\n }\n const minCodeSize = byteStream.nextByte(), imageData = byteStream.readSubBlocksBin(), clearCode = 1 << minCodeSize;\n const readBits = (pos, len) => {\n const bytePos = pos >>> 3, bitPos = pos & 7;\n return (((imageData[bytePos] + (imageData[bytePos + 1] << 8) + (imageData[bytePos + 2] << 16)) &\n (((1 << len) - 1) << bitPos)) >>>\n bitPos);\n };\n if (interlacedFlag) {\n for (let code = 0, size = minCodeSize + 1, pos = 0, dic = [[0]], pass = 0; pass < 4; pass++) {\n if (InterlaceOffsets[pass] < frame.height) {\n let pixelPos = 0, lineIndex = 0, exit = false;\n while (!exit) {\n const last = code;\n code = readBits(pos, size);\n pos += size + 1;\n if (code === clearCode) {\n size = minCodeSize + 1;\n dic.length = clearCode + 2;\n for (let i = 0; i < dic.length; i++) {\n dic[i] = i < clearCode ? [i] : [];\n }\n }\n else {\n if (code >= dic.length) {\n dic.push(dic[last].concat(dic[last][0]));\n }\n else if (last !== clearCode) {\n dic.push(dic[last].concat(dic[code][0]));\n }\n for (const item of dic[code]) {\n const { r, g, b, a } = getColor(item);\n image.data.set([r, g, b, a], InterlaceOffsets[pass] * frame.width +\n InterlaceSteps[pass] * lineIndex +\n (pixelPos % (frame.width * 4)));\n pixelPos += 4;\n }\n if (dic.length === 1 << size && size < 0xc) {\n size++;\n }\n }\n if (pixelPos === frame.width * 4 * (lineIndex + 1)) {\n lineIndex++;\n if (InterlaceOffsets[pass] + InterlaceSteps[pass] * lineIndex >= frame.height) {\n exit = true;\n }\n }\n }\n }\n progressCallback?.(byteStream.pos / (byteStream.data.length - 1), getFrameIndex(false) + 1, image, { x: frame.left, y: frame.top }, { width: gif.width, height: gif.height });\n }\n frame.image = image;\n frame.bitmap = await createImageBitmap(image);\n }\n else {\n let code = 0, size = minCodeSize + 1, pos = 0, pixelPos = -4, exit = false;\n const dic = [[0]];\n while (!exit) {\n const last = code;\n code = readBits(pos, size);\n pos += size;\n if (code === clearCode) {\n size = minCodeSize + 1;\n dic.length = clearCode + 2;\n for (let i = 0; i < dic.length; i++) {\n dic[i] = i < clearCode ? [i] : [];\n }\n }\n else {\n if (code === clearCode + 1) {\n exit = true;\n break;\n }\n if (code >= dic.length) {\n dic.push(dic[last].concat(dic[last][0]));\n }\n else if (last !== clearCode) {\n dic.push(dic[last].concat(dic[code][0]));\n }\n for (const item of dic[code]) {\n const { r, g, b, a } = getColor(item);\n image.data.set([r, g, b, a], (pixelPos += 4));\n }\n if (dic.length >= 1 << size && size < 0xc) {\n size++;\n }\n }\n }\n frame.image = image;\n frame.bitmap = await createImageBitmap(image);\n progressCallback?.((byteStream.pos + 1) / byteStream.data.length, getFrameIndex(false) + 1, frame.image, { x: frame.left, y: frame.top }, { width: gif.width, height: gif.height });\n }\n}\nasync function parseBlock(byteStream, gif, avgAlpha, getFrameIndex, getTransparencyIndex, progressCallback) {\n switch (byteStream.nextByte()) {\n case 59:\n return true;\n case 44:\n await parseImageBlock(byteStream, gif, avgAlpha, getFrameIndex, getTransparencyIndex, progressCallback);\n break;\n case 33:\n parseExtensionBlock(byteStream, gif, getFrameIndex, getTransparencyIndex);\n break;\n default:\n throw new EvalError(\"undefined block found\");\n }\n return false;\n}\nexport function getGIFLoopAmount(gif) {\n for (const extension of gif.applicationExtensions) {\n if (extension.identifier + extension.authenticationCode !== \"NETSCAPE2.0\") {\n continue;\n }\n return extension.data[1] + (extension.data[2] << 8);\n }\n return NaN;\n}\nexport async function decodeGIF(gifURL, progressCallback, avgAlpha) {\n if (!avgAlpha)\n avgAlpha = false;\n const res = await fetch(gifURL);\n if (!res.ok && res.status === 404) {\n throw new EvalError(\"file not found\");\n }\n const buffer = await res.arrayBuffer();\n const gif = {\n width: 0,\n height: 0,\n totalTime: 0,\n colorRes: 0,\n pixelAspectRatio: 0,\n frames: [],\n sortFlag: false,\n globalColorTable: [],\n backgroundImage: new ImageData(1, 1, { colorSpace: \"srgb\" }),\n comments: [],\n applicationExtensions: [],\n }, byteStream = new ByteStream(new Uint8ClampedArray(buffer));\n if (byteStream.getString(6) !== \"GIF89a\") {\n throw new Error(\"not a supported GIF file\");\n }\n gif.width = byteStream.nextTwoBytes();\n gif.height = byteStream.nextTwoBytes();\n const packedByte = byteStream.nextByte(), globalColorTableFlag = (packedByte & 0x80) === 0x80;\n gif.colorRes = (packedByte & 0x70) >>> 4;\n gif.sortFlag = (packedByte & 8) === 8;\n const globalColorCount = 1 << ((packedByte & 7) + 1), backgroundColorIndex = byteStream.nextByte();\n gif.pixelAspectRatio = byteStream.nextByte();\n if (gif.pixelAspectRatio !== 0) {\n gif.pixelAspectRatio = (gif.pixelAspectRatio + 0xf) / 0x40;\n }\n if (globalColorTableFlag) {\n gif.globalColorTable = parseColorTable(byteStream, globalColorCount);\n }\n const backgroundImage = (() => {\n try {\n return new ImageData(gif.width, gif.height, { colorSpace: \"srgb\" });\n }\n catch (error) {\n if (error instanceof DOMException && error.name === \"IndexSizeError\") {\n return null;\n }\n throw error;\n }\n })();\n if (backgroundImage == null) {\n throw new Error(\"GIF frame size is to large\");\n }\n const { r, g, b } = gif.globalColorTable[backgroundColorIndex];\n backgroundImage.data.set(globalColorTableFlag ? [r, g, b, 255] : [0, 0, 0, 0]);\n for (let i = 4; i < backgroundImage.data.length; i *= 2) {\n backgroundImage.data.copyWithin(i, 0, i);\n }\n gif.backgroundImage = backgroundImage;\n let frameIndex = -1, incrementFrameIndex = true, transparencyIndex = -1;\n const getframeIndex = (increment) => {\n if (increment) {\n incrementFrameIndex = true;\n }\n return frameIndex;\n };\n const getTransparencyIndex = (newValue) => {\n if (newValue != null) {\n transparencyIndex = newValue;\n }\n return transparencyIndex;\n };\n try {\n do {\n if (incrementFrameIndex) {\n gif.frames.push({\n left: 0,\n top: 0,\n width: 0,\n height: 0,\n disposalMethod: 0,\n image: new ImageData(1, 1, { colorSpace: \"srgb\" }),\n plainTextData: null,\n userInputDelayFlag: false,\n delayTime: 0,\n sortFlag: false,\n localColorTable: [],\n reserved: 0,\n GCreserved: 0,\n });\n frameIndex++;\n transparencyIndex = -1;\n incrementFrameIndex = false;\n }\n } while (!(await parseBlock(byteStream, gif, avgAlpha, getframeIndex, getTransparencyIndex, progressCallback)));\n gif.frames.length--;\n for (const frame of gif.frames) {\n if (frame.userInputDelayFlag && frame.delayTime === 0) {\n gif.totalTime = Infinity;\n break;\n }\n gif.totalTime += frame.delayTime;\n }\n return gif;\n }\n catch (error) {\n if (error instanceof EvalError) {\n throw new Error(`error while parsing frame ${frameIndex} \"${error.message}\"`);\n }\n throw error;\n }\n}\nexport function drawGif(data) {\n const { context, radius, particle, delta } = data, image = particle.image;\n if (!image?.gifData || !image.gif) {\n return;\n }\n const offscreenCanvas = new OffscreenCanvas(image.gifData.width, image.gifData.height), offscreenContext = offscreenCanvas.getContext(\"2d\");\n if (!offscreenContext) {\n throw new Error(\"could not create offscreen canvas context\");\n }\n offscreenContext.imageSmoothingQuality = \"low\";\n offscreenContext.imageSmoothingEnabled = false;\n offscreenContext.clearRect(origin.x, origin.y, offscreenCanvas.width, offscreenCanvas.height);\n if (particle.gifLoopCount === undefined) {\n particle.gifLoopCount = image.gifLoopCount ?? defaultLoopCount;\n }\n let frameIndex = particle.gifFrame ?? defaultFrame;\n const pos = { x: -image.gifData.width * half, y: -image.gifData.height * half }, frame = image.gifData.frames[frameIndex];\n if (particle.gifTime === undefined) {\n particle.gifTime = initialTime;\n }\n if (!frame.bitmap) {\n return;\n }\n context.scale(radius / image.gifData.width, radius / image.gifData.height);\n switch (frame.disposalMethod) {\n case 4:\n case 5:\n case 6:\n case 7:\n case 0:\n offscreenContext.drawImage(frame.bitmap, frame.left, frame.top);\n context.drawImage(offscreenCanvas, pos.x, pos.y);\n offscreenContext.clearRect(origin.x, origin.y, offscreenCanvas.width, offscreenCanvas.height);\n break;\n case 1:\n offscreenContext.drawImage(frame.bitmap, frame.left, frame.top);\n context.drawImage(offscreenCanvas, pos.x, pos.y);\n break;\n case 2:\n offscreenContext.drawImage(frame.bitmap, frame.left, frame.top);\n context.drawImage(offscreenCanvas, pos.x, pos.y);\n offscreenContext.clearRect(origin.x, origin.y, offscreenCanvas.width, offscreenCanvas.height);\n if (!image.gifData.globalColorTable.length) {\n offscreenContext.putImageData(image.gifData.frames[firstIndex].image, pos.x + frame.left, pos.y + frame.top);\n }\n else {\n offscreenContext.putImageData(image.gifData.backgroundImage, pos.x, pos.y);\n }\n break;\n case 3:\n {\n const previousImageData = offscreenContext.getImageData(origin.x, origin.y, offscreenCanvas.width, offscreenCanvas.height);\n offscreenContext.drawImage(frame.bitmap, frame.left, frame.top);\n context.drawImage(offscreenCanvas, pos.x, pos.y);\n offscreenContext.clearRect(origin.x, origin.y, offscreenCanvas.width, offscreenCanvas.height);\n offscreenContext.putImageData(previousImageData, origin.x, origin.y);\n }\n break;\n }\n particle.gifTime += delta.value;\n if (particle.gifTime > frame.delayTime) {\n particle.gifTime -= frame.delayTime;\n if (++frameIndex >= image.gifData.frames.length) {\n if (--particle.gifLoopCount <= defaultLoopCount) {\n return;\n }\n frameIndex = firstIndex;\n offscreenContext.clearRect(origin.x, origin.y, offscreenCanvas.width, offscreenCanvas.height);\n }\n particle.gifFrame = frameIndex;\n }\n context.scale(image.gifData.width / radius, image.gifData.height / radius);\n}\nexport async function loadGifImage(image) {\n if (image.type !== \"gif\") {\n const { loadImage } = await import(\"../Utils.js\");\n await loadImage(image);\n return;\n }\n image.loading = true;\n try {\n image.gifData = await decodeGIF(image.source);\n image.gifLoopCount = getGIFLoopAmount(image.gifData) ?? defaultLoopCount;\n if (!image.gifLoopCount) {\n image.gifLoopCount = Infinity;\n }\n }\n catch {\n image.error = true;\n }\n image.loading = false;\n}\n"],"names":["InterlaceOffsets","InterlaceSteps","ByteStream","constructor","bytes","this","pos","data","Uint8ClampedArray","getString","count","slice","length","reduce","acc","curr","String","fromCharCode","nextByte","nextTwoBytes","readSubBlocks","blockString","size","readSubBlocksBin","len","offset","blockData","Uint8Array","i","skipSubBlocks","increment","noData","origin","x","y","defaultFrame","half","initialTime","firstIndex","defaultLoopCount","parseColorTable","byteStream","colors","push","r","g","b","async","parseBlock","gif","avgAlpha","getFrameIndex","getTransparencyIndex","progressCallback","frame","frames","left","top","width","height","packedByte","localColorTableFlag","interlacedFlag","sortFlag","reserved","localColorCount","localColorTable","getColor","index","globalColorTable","a","image","ImageData","colorSpace","error","DOMException","name","EvalError","minCodeSize","imageData","clearCode","readBits","bytePos","bitPos","code","dic","pass","pixelPos","lineIndex","exit","last","concat","item","set","bitmap","createImageBitmap","parseImageBlock","GCreserved","disposalMethod","userInputDelayFlag","transparencyFlag","delayTime","transparencyIndex","applicationExtension","identifier","authenticationCode","applicationExtensions","comments","plainTextData","charSize","foregroundColor","backgroundColor","text","parseExtensionBlock","drawGif","_particle$gifFrame","context","radius","particle","delta","gifData","offscreenCanvas","OffscreenCanvas","offscreenContext","getContext","Error","_image$gifLoopCount","imageSmoothingQuality","imageSmoothingEnabled","clearRect","undefined","gifLoopCount","frameIndex","gifFrame","gifTime","scale","drawImage","putImageData","backgroundImage","previousImageData","getImageData","value","loadGifImage","type","loading","_getGIFLoopAmount","gifURL","res","fetch","ok","status","buffer","arrayBuffer","totalTime","colorRes","pixelAspectRatio","globalColorTableFlag","globalColorCount","backgroundColorIndex","copyWithin","incrementFrameIndex","getframeIndex","newValue","Infinity","message","decodeGIF","source","extension","NaN","getGIFLoopAmount","loadImage"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/463.fb1557de.chunk.js","mappings":"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","sources":["../node_modules/@tsparticles/shape-image/browser/GifUtils/Constants.js","../node_modules/@tsparticles/shape-image/browser/GifUtils/ByteStream.js","../node_modules/@tsparticles/shape-image/browser/GifUtils/Utils.js"],"sourcesContent":["export const InterlaceOffsets = [0, 4, 2, 1];\nexport const InterlaceSteps = [8, 8, 4, 2];\n","export class ByteStream {\n constructor(bytes) {\n this.pos = 0;\n this.data = new Uint8ClampedArray(bytes);\n }\n getString(count) {\n const slice = this.data.slice(this.pos, this.pos + count);\n this.pos += slice.length;\n return slice.reduce((acc, curr) => acc + String.fromCharCode(curr), \"\");\n }\n nextByte() {\n return this.data[this.pos++];\n }\n nextTwoBytes() {\n const increment = 2, previous = 1, shift = 8;\n this.pos += increment;\n return this.data[this.pos - increment] + (this.data[this.pos - previous] << shift);\n }\n readSubBlocks() {\n let blockString = \"\", size = 0;\n const minCount = 0, emptySize = 0;\n do {\n size = this.data[this.pos++];\n for (let count = size; --count >= minCount; blockString += String.fromCharCode(this.data[this.pos++])) {\n }\n } while (size !== emptySize);\n return blockString;\n }\n readSubBlocksBin() {\n let size = this.data[this.pos], len = 0;\n const emptySize = 0, increment = 1;\n for (let offset = 0; size !== emptySize; offset += size + increment, size = this.data[this.pos + offset]) {\n len += size;\n }\n const blockData = new Uint8Array(len);\n size = this.data[this.pos++];\n for (let i = 0; size !== emptySize; size = this.data[this.pos++]) {\n for (let count = size; --count >= emptySize; blockData[i++] = this.data[this.pos++]) {\n }\n }\n return blockData;\n }\n skipSubBlocks() {\n for (const increment = 1, noData = 0; this.data[this.pos] !== noData; this.pos += this.data[this.pos] + increment) {\n }\n this.pos++;\n }\n}\n","import { InterlaceOffsets, InterlaceSteps } from \"./Constants.js\";\nimport { ByteStream } from \"./ByteStream.js\";\nconst origin = {\n x: 0,\n y: 0,\n}, defaultFrame = 0, half = 0.5, initialTime = 0, firstIndex = 0, defaultLoopCount = 0;\nfunction parseColorTable(byteStream, count) {\n const colors = [];\n for (let i = 0; i < count; i++) {\n colors.push({\n r: byteStream.data[byteStream.pos],\n g: byteStream.data[byteStream.pos + 1],\n b: byteStream.data[byteStream.pos + 2],\n });\n byteStream.pos += 3;\n }\n return colors;\n}\nfunction parseExtensionBlock(byteStream, gif, getFrameIndex, getTransparencyIndex) {\n switch (byteStream.nextByte()) {\n case 249: {\n const frame = gif.frames[getFrameIndex(false)];\n byteStream.pos++;\n const packedByte = byteStream.nextByte();\n frame.GCreserved = (packedByte & 0xe0) >>> 5;\n frame.disposalMethod = (packedByte & 0x1c) >>> 2;\n frame.userInputDelayFlag = (packedByte & 2) === 2;\n const transparencyFlag = (packedByte & 1) === 1;\n frame.delayTime = byteStream.nextTwoBytes() * 0xa;\n const transparencyIndex = byteStream.nextByte();\n if (transparencyFlag) {\n getTransparencyIndex(transparencyIndex);\n }\n byteStream.pos++;\n break;\n }\n case 255: {\n byteStream.pos++;\n const applicationExtension = {\n identifier: byteStream.getString(8),\n authenticationCode: byteStream.getString(3),\n data: byteStream.readSubBlocksBin(),\n };\n gif.applicationExtensions.push(applicationExtension);\n break;\n }\n case 254: {\n gif.comments.push([getFrameIndex(false), byteStream.readSubBlocks()]);\n break;\n }\n case 1: {\n if (gif.globalColorTable.length === 0) {\n throw new EvalError(\"plain text extension without global color table\");\n }\n byteStream.pos++;\n gif.frames[getFrameIndex(false)].plainTextData = {\n left: byteStream.nextTwoBytes(),\n top: byteStream.nextTwoBytes(),\n width: byteStream.nextTwoBytes(),\n height: byteStream.nextTwoBytes(),\n charSize: {\n width: byteStream.nextTwoBytes(),\n height: byteStream.nextTwoBytes(),\n },\n foregroundColor: byteStream.nextByte(),\n backgroundColor: byteStream.nextByte(),\n text: byteStream.readSubBlocks(),\n };\n break;\n }\n default:\n byteStream.skipSubBlocks();\n break;\n }\n}\nasync function parseImageBlock(byteStream, gif, avgAlpha, getFrameIndex, getTransparencyIndex, progressCallback) {\n const frame = gif.frames[getFrameIndex(true)];\n frame.left = byteStream.nextTwoBytes();\n frame.top = byteStream.nextTwoBytes();\n frame.width = byteStream.nextTwoBytes();\n frame.height = byteStream.nextTwoBytes();\n const packedByte = byteStream.nextByte(), localColorTableFlag = (packedByte & 0x80) === 0x80, interlacedFlag = (packedByte & 0x40) === 0x40;\n frame.sortFlag = (packedByte & 0x20) === 0x20;\n frame.reserved = (packedByte & 0x18) >>> 3;\n const localColorCount = 1 << ((packedByte & 7) + 1);\n if (localColorTableFlag) {\n frame.localColorTable = parseColorTable(byteStream, localColorCount);\n }\n const getColor = (index) => {\n const { r, g, b } = (localColorTableFlag ? frame.localColorTable : gif.globalColorTable)[index];\n if (index !== getTransparencyIndex(null)) {\n return { r, g, b, a: 255 };\n }\n return { r, g, b, a: avgAlpha ? ~~((r + g + b) / 3) : 0 };\n };\n const image = (() => {\n try {\n return new ImageData(frame.width, frame.height, { colorSpace: \"srgb\" });\n }\n catch (error) {\n if (error instanceof DOMException && error.name === \"IndexSizeError\") {\n return null;\n }\n throw error;\n }\n })();\n if (image == null) {\n throw new EvalError(\"GIF frame size is to large\");\n }\n const minCodeSize = byteStream.nextByte(), imageData = byteStream.readSubBlocksBin(), clearCode = 1 << minCodeSize;\n const readBits = (pos, len) => {\n const bytePos = pos >>> 3, bitPos = pos & 7;\n return (((imageData[bytePos] + (imageData[bytePos + 1] << 8) + (imageData[bytePos + 2] << 16)) &\n (((1 << len) - 1) << bitPos)) >>>\n bitPos);\n };\n if (interlacedFlag) {\n for (let code = 0, size = minCodeSize + 1, pos = 0, dic = [[0]], pass = 0; pass < 4; pass++) {\n if (InterlaceOffsets[pass] < frame.height) {\n let pixelPos = 0, lineIndex = 0, exit = false;\n while (!exit) {\n const last = code;\n code = readBits(pos, size);\n pos += size + 1;\n if (code === clearCode) {\n size = minCodeSize + 1;\n dic.length = clearCode + 2;\n for (let i = 0; i < dic.length; i++) {\n dic[i] = i < clearCode ? [i] : [];\n }\n }\n else {\n if (code >= dic.length) {\n dic.push(dic[last].concat(dic[last][0]));\n }\n else if (last !== clearCode) {\n dic.push(dic[last].concat(dic[code][0]));\n }\n for (const item of dic[code]) {\n const { r, g, b, a } = getColor(item);\n image.data.set([r, g, b, a], InterlaceOffsets[pass] * frame.width +\n InterlaceSteps[pass] * lineIndex +\n (pixelPos % (frame.width * 4)));\n pixelPos += 4;\n }\n if (dic.length === 1 << size && size < 0xc) {\n size++;\n }\n }\n if (pixelPos === frame.width * 4 * (lineIndex + 1)) {\n lineIndex++;\n if (InterlaceOffsets[pass] + InterlaceSteps[pass] * lineIndex >= frame.height) {\n exit = true;\n }\n }\n }\n }\n progressCallback?.(byteStream.pos / (byteStream.data.length - 1), getFrameIndex(false) + 1, image, { x: frame.left, y: frame.top }, { width: gif.width, height: gif.height });\n }\n frame.image = image;\n frame.bitmap = await createImageBitmap(image);\n }\n else {\n let code = 0, size = minCodeSize + 1, pos = 0, pixelPos = -4, exit = false;\n const dic = [[0]];\n while (!exit) {\n const last = code;\n code = readBits(pos, size);\n pos += size;\n if (code === clearCode) {\n size = minCodeSize + 1;\n dic.length = clearCode + 2;\n for (let i = 0; i < dic.length; i++) {\n dic[i] = i < clearCode ? [i] : [];\n }\n }\n else {\n if (code === clearCode + 1) {\n exit = true;\n break;\n }\n if (code >= dic.length) {\n dic.push(dic[last].concat(dic[last][0]));\n }\n else if (last !== clearCode) {\n dic.push(dic[last].concat(dic[code][0]));\n }\n for (const item of dic[code]) {\n const { r, g, b, a } = getColor(item);\n image.data.set([r, g, b, a], (pixelPos += 4));\n }\n if (dic.length >= 1 << size && size < 0xc) {\n size++;\n }\n }\n }\n frame.image = image;\n frame.bitmap = await createImageBitmap(image);\n progressCallback?.((byteStream.pos + 1) / byteStream.data.length, getFrameIndex(false) + 1, frame.image, { x: frame.left, y: frame.top }, { width: gif.width, height: gif.height });\n }\n}\nasync function parseBlock(byteStream, gif, avgAlpha, getFrameIndex, getTransparencyIndex, progressCallback) {\n switch (byteStream.nextByte()) {\n case 59:\n return true;\n case 44:\n await parseImageBlock(byteStream, gif, avgAlpha, getFrameIndex, getTransparencyIndex, progressCallback);\n break;\n case 33:\n parseExtensionBlock(byteStream, gif, getFrameIndex, getTransparencyIndex);\n break;\n default:\n throw new EvalError(\"undefined block found\");\n }\n return false;\n}\nexport function getGIFLoopAmount(gif) {\n for (const extension of gif.applicationExtensions) {\n if (extension.identifier + extension.authenticationCode !== \"NETSCAPE2.0\") {\n continue;\n }\n return extension.data[1] + (extension.data[2] << 8);\n }\n return NaN;\n}\nexport async function decodeGIF(gifURL, progressCallback, avgAlpha) {\n if (!avgAlpha)\n avgAlpha = false;\n const res = await fetch(gifURL);\n if (!res.ok && res.status === 404) {\n throw new EvalError(\"file not found\");\n }\n const buffer = await res.arrayBuffer();\n const gif = {\n width: 0,\n height: 0,\n totalTime: 0,\n colorRes: 0,\n pixelAspectRatio: 0,\n frames: [],\n sortFlag: false,\n globalColorTable: [],\n backgroundImage: new ImageData(1, 1, { colorSpace: \"srgb\" }),\n comments: [],\n applicationExtensions: [],\n }, byteStream = new ByteStream(new Uint8ClampedArray(buffer));\n if (byteStream.getString(6) !== \"GIF89a\") {\n throw new Error(\"not a supported GIF file\");\n }\n gif.width = byteStream.nextTwoBytes();\n gif.height = byteStream.nextTwoBytes();\n const packedByte = byteStream.nextByte(), globalColorTableFlag = (packedByte & 0x80) === 0x80;\n gif.colorRes = (packedByte & 0x70) >>> 4;\n gif.sortFlag = (packedByte & 8) === 8;\n const globalColorCount = 1 << ((packedByte & 7) + 1), backgroundColorIndex = byteStream.nextByte();\n gif.pixelAspectRatio = byteStream.nextByte();\n if (gif.pixelAspectRatio !== 0) {\n gif.pixelAspectRatio = (gif.pixelAspectRatio + 0xf) / 0x40;\n }\n if (globalColorTableFlag) {\n gif.globalColorTable = parseColorTable(byteStream, globalColorCount);\n }\n const backgroundImage = (() => {\n try {\n return new ImageData(gif.width, gif.height, { colorSpace: \"srgb\" });\n }\n catch (error) {\n if (error instanceof DOMException && error.name === \"IndexSizeError\") {\n return null;\n }\n throw error;\n }\n })();\n if (backgroundImage == null) {\n throw new Error(\"GIF frame size is to large\");\n }\n const { r, g, b } = gif.globalColorTable[backgroundColorIndex];\n backgroundImage.data.set(globalColorTableFlag ? [r, g, b, 255] : [0, 0, 0, 0]);\n for (let i = 4; i < backgroundImage.data.length; i *= 2) {\n backgroundImage.data.copyWithin(i, 0, i);\n }\n gif.backgroundImage = backgroundImage;\n let frameIndex = -1, incrementFrameIndex = true, transparencyIndex = -1;\n const getframeIndex = (increment) => {\n if (increment) {\n incrementFrameIndex = true;\n }\n return frameIndex;\n };\n const getTransparencyIndex = (newValue) => {\n if (newValue != null) {\n transparencyIndex = newValue;\n }\n return transparencyIndex;\n };\n try {\n do {\n if (incrementFrameIndex) {\n gif.frames.push({\n left: 0,\n top: 0,\n width: 0,\n height: 0,\n disposalMethod: 0,\n image: new ImageData(1, 1, { colorSpace: \"srgb\" }),\n plainTextData: null,\n userInputDelayFlag: false,\n delayTime: 0,\n sortFlag: false,\n localColorTable: [],\n reserved: 0,\n GCreserved: 0,\n });\n frameIndex++;\n transparencyIndex = -1;\n incrementFrameIndex = false;\n }\n } while (!(await parseBlock(byteStream, gif, avgAlpha, getframeIndex, getTransparencyIndex, progressCallback)));\n gif.frames.length--;\n for (const frame of gif.frames) {\n if (frame.userInputDelayFlag && frame.delayTime === 0) {\n gif.totalTime = Infinity;\n break;\n }\n gif.totalTime += frame.delayTime;\n }\n return gif;\n }\n catch (error) {\n if (error instanceof EvalError) {\n throw new Error(`error while parsing frame ${frameIndex} \"${error.message}\"`);\n }\n throw error;\n }\n}\nexport function drawGif(data) {\n const { context, radius, particle, delta } = data, image = particle.image;\n if (!image?.gifData || !image.gif) {\n return;\n }\n const offscreenCanvas = new OffscreenCanvas(image.gifData.width, image.gifData.height), offscreenContext = offscreenCanvas.getContext(\"2d\");\n if (!offscreenContext) {\n throw new Error(\"could not create offscreen canvas context\");\n }\n offscreenContext.imageSmoothingQuality = \"low\";\n offscreenContext.imageSmoothingEnabled = false;\n offscreenContext.clearRect(origin.x, origin.y, offscreenCanvas.width, offscreenCanvas.height);\n if (particle.gifLoopCount === undefined) {\n particle.gifLoopCount = image.gifLoopCount ?? defaultLoopCount;\n }\n let frameIndex = particle.gifFrame ?? defaultFrame;\n const pos = { x: -image.gifData.width * half, y: -image.gifData.height * half }, frame = image.gifData.frames[frameIndex];\n if (particle.gifTime === undefined) {\n particle.gifTime = initialTime;\n }\n if (!frame.bitmap) {\n return;\n }\n context.scale(radius / image.gifData.width, radius / image.gifData.height);\n switch (frame.disposalMethod) {\n case 4:\n case 5:\n case 6:\n case 7:\n case 0:\n offscreenContext.drawImage(frame.bitmap, frame.left, frame.top);\n context.drawImage(offscreenCanvas, pos.x, pos.y);\n offscreenContext.clearRect(origin.x, origin.y, offscreenCanvas.width, offscreenCanvas.height);\n break;\n case 1:\n offscreenContext.drawImage(frame.bitmap, frame.left, frame.top);\n context.drawImage(offscreenCanvas, pos.x, pos.y);\n break;\n case 2:\n offscreenContext.drawImage(frame.bitmap, frame.left, frame.top);\n context.drawImage(offscreenCanvas, pos.x, pos.y);\n offscreenContext.clearRect(origin.x, origin.y, offscreenCanvas.width, offscreenCanvas.height);\n if (!image.gifData.globalColorTable.length) {\n offscreenContext.putImageData(image.gifData.frames[firstIndex].image, pos.x + frame.left, pos.y + frame.top);\n }\n else {\n offscreenContext.putImageData(image.gifData.backgroundImage, pos.x, pos.y);\n }\n break;\n case 3:\n {\n const previousImageData = offscreenContext.getImageData(origin.x, origin.y, offscreenCanvas.width, offscreenCanvas.height);\n offscreenContext.drawImage(frame.bitmap, frame.left, frame.top);\n context.drawImage(offscreenCanvas, pos.x, pos.y);\n offscreenContext.clearRect(origin.x, origin.y, offscreenCanvas.width, offscreenCanvas.height);\n offscreenContext.putImageData(previousImageData, origin.x, origin.y);\n }\n break;\n }\n particle.gifTime += delta.value;\n if (particle.gifTime > frame.delayTime) {\n particle.gifTime -= frame.delayTime;\n if (++frameIndex >= image.gifData.frames.length) {\n if (--particle.gifLoopCount <= defaultLoopCount) {\n return;\n }\n frameIndex = firstIndex;\n offscreenContext.clearRect(origin.x, origin.y, offscreenCanvas.width, offscreenCanvas.height);\n }\n particle.gifFrame = frameIndex;\n }\n context.scale(image.gifData.width / radius, image.gifData.height / radius);\n}\nexport async function loadGifImage(image) {\n if (image.type !== \"gif\") {\n const { loadImage } = await import(\"../Utils.js\");\n await loadImage(image);\n return;\n }\n image.loading = true;\n try {\n image.gifData = await decodeGIF(image.source);\n image.gifLoopCount = getGIFLoopAmount(image.gifData) ?? defaultLoopCount;\n if (!image.gifLoopCount) {\n image.gifLoopCount = Infinity;\n }\n }\n catch {\n image.error = true;\n }\n image.loading = false;\n}\n"],"names":["InterlaceOffsets","InterlaceSteps","ByteStream","constructor","bytes","this","pos","data","Uint8ClampedArray","getString","count","slice","length","reduce","acc","curr","String","fromCharCode","nextByte","nextTwoBytes","readSubBlocks","blockString","size","readSubBlocksBin","len","offset","blockData","Uint8Array","i","skipSubBlocks","increment","noData","origin","x","y","defaultFrame","half","initialTime","firstIndex","defaultLoopCount","parseColorTable","byteStream","colors","push","r","g","b","async","parseBlock","gif","avgAlpha","getFrameIndex","getTransparencyIndex","progressCallback","frame","frames","left","top","width","height","packedByte","localColorTableFlag","interlacedFlag","sortFlag","reserved","localColorCount","localColorTable","getColor","index","globalColorTable","a","image","ImageData","colorSpace","error","DOMException","name","EvalError","minCodeSize","imageData","clearCode","readBits","bytePos","bitPos","code","dic","pass","pixelPos","lineIndex","exit","last","concat","item","set","bitmap","createImageBitmap","parseImageBlock","GCreserved","disposalMethod","userInputDelayFlag","transparencyFlag","delayTime","transparencyIndex","applicationExtension","identifier","authenticationCode","applicationExtensions","comments","plainTextData","charSize","foregroundColor","backgroundColor","text","parseExtensionBlock","drawGif","_particle$gifFrame","context","radius","particle","delta","gifData","offscreenCanvas","OffscreenCanvas","offscreenContext","getContext","Error","_image$gifLoopCount","imageSmoothingQuality","imageSmoothingEnabled","clearRect","undefined","gifLoopCount","frameIndex","gifFrame","gifTime","scale","drawImage","putImageData","backgroundImage","previousImageData","getImageData","value","loadGifImage","type","loading","_getGIFLoopAmount","gifURL","res","fetch","ok","status","buffer","arrayBuffer","totalTime","colorRes","pixelAspectRatio","globalColorTableFlag","globalColorCount","backgroundColorIndex","copyWithin","incrementFrameIndex","getframeIndex","newValue","Infinity","message","decodeGIF","source","extension","NaN","getGIFLoopAmount","loadImage"],"sourceRoot":""} \ No newline at end of file diff --git a/build/static/js/464.bedb1502.chunk.js b/build/static/js/464.bedb1502.chunk.js new file mode 100644 index 0000000..a61752e --- /dev/null +++ b/build/static/js/464.bedb1502.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkresview=self.webpackChunkresview||[]).push([[464],{1977:(e,a,n)=>{n.d(a,{a:()=>d,d:()=>s,loadImage:()=>c});var o=n(4409);const r=0,t=1,i=/(#(?:[0-9a-f]{2}){2,4}|(#[0-9a-f]{3})|(rgb|hsl)a?\((-?\d+%?[,\s]+){2,3}\s*[\d.]+%?\))|currentcolor/gi;async function c(e){return new Promise((a=>{e.loading=!0;const n=new Image;e.element=n,n.addEventListener("load",(()=>{e.loading=!1,a()})),n.addEventListener("error",(()=>{e.element=void 0,e.error=!0,e.loading=!1,(0,o.tZ)().error("".concat(o.dI," loading image: ").concat(e.source)),a()})),n.src=e.source}))}async function d(e){if("svg"!==e.type)return void await c(e);e.loading=!0;const a=await fetch(e.source);a.ok?e.svgData=await a.text():((0,o.tZ)().error("".concat(o.dI," Image not found")),e.error=!0),e.loading=!1}function s(e,a,n,d){var s,l;const g=function(e,a,n){const{svgData:t}=e;if(!t)return"";const c=(0,o.LC)(a,n);if(t.includes("fill"))return t.replace(i,(()=>c));const d=t.indexOf(">");return"".concat(t.substring(r,d),' fill="').concat(c,'"').concat(t.substring(d))}(e,n,null!==(s=null===(l=d.opacity)||void 0===l?void 0:l.value)&&void 0!==s?s:t),u={color:n,gif:a.gif,data:{...e,svgData:g},loaded:!1,ratio:a.width/a.height,replaceColor:a.replaceColor,source:a.src};return new Promise((a=>{const n=new Blob([g],{type:"image/svg+xml"}),o=URL||window.URL||window.webkitURL||window,r=o.createObjectURL(n),t=new Image;t.addEventListener("load",(()=>{u.loaded=!0,u.element=t,a(u),o.revokeObjectURL(r)}));t.addEventListener("error",(()=>{(async()=>{o.revokeObjectURL(r);const n={...e,error:!1,loading:!0};await c(n),u.loaded=!0,u.element=n.element,a(u)})()})),t.src=r}))}},464:(e,a,n)=>{n.d(a,{loadImageShape:()=>i});var o=n(1977),r=n(4409);const t=3;async function i(e){let a=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];!function(e){e.loadImage||(e.loadImage=async a=>{if(!a.name&&!a.src)throw new Error("".concat(r.dI," no image source provided"));if(e.images||(e.images=[]),!e.images.find((e=>e.name===a.name||e.source===a.src)))try{var i,c;const r={gif:null!==(i=a.gif)&&void 0!==i&&i,name:null!==(c=a.name)&&void 0!==c?c:a.src,source:a.src,type:a.src.substring(a.src.length-t),error:!1,loading:!0,replaceColor:a.replaceColor,ratio:a.width&&a.height?a.width/a.height:void 0};let d;if(e.images.push(r),a.gif){const{loadGifImage:e}=await n.e(463).then(n.bind(n,463));d=e}else d=a.replaceColor?o.a:o.loadImage;await d(r)}catch{var d;throw new Error("".concat(r.dI," ").concat(null!==(d=a.name)&&void 0!==d?d:a.src," not found"))}})}(e);const{ImagePreloaderPlugin:i}=await n.e(4843).then(n.bind(n,4843)),{ImageDrawer:c}=await n.e(4752).then(n.bind(n,4752)),d=new i(e);await e.addPlugin(d,a),await e.addShape(["image","images"],new c(e),a)}}}]); +//# sourceMappingURL=464.bedb1502.chunk.js.map \ No newline at end of file diff --git a/build/static/js/464.e298dba6.chunk.js.map b/build/static/js/464.bedb1502.chunk.js.map similarity index 98% rename from build/static/js/464.e298dba6.chunk.js.map rename to build/static/js/464.bedb1502.chunk.js.map index f3e05d4..6d50521 100644 --- a/build/static/js/464.e298dba6.chunk.js.map +++ b/build/static/js/464.bedb1502.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/464.e298dba6.chunk.js","mappings":"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","sources":["../node_modules/@tsparticles/shape-image/browser/Utils.js","../node_modules/@tsparticles/shape-image/browser/index.js"],"sourcesContent":["import { errorPrefix, getLogger, getStyleFromHsl } from \"@tsparticles/engine\";\nconst stringStart = 0, defaultOpacity = 1;\nconst currentColorRegex = /(#(?:[0-9a-f]{2}){2,4}|(#[0-9a-f]{3})|(rgb|hsl)a?\\((-?\\d+%?[,\\s]+){2,3}\\s*[\\d.]+%?\\))|currentcolor/gi;\nfunction replaceColorSvg(imageShape, color, opacity) {\n const { svgData } = imageShape;\n if (!svgData) {\n return \"\";\n }\n const colorStyle = getStyleFromHsl(color, opacity);\n if (svgData.includes(\"fill\")) {\n return svgData.replace(currentColorRegex, () => colorStyle);\n }\n const preFillIndex = svgData.indexOf(\">\");\n return `${svgData.substring(stringStart, preFillIndex)} fill=\"${colorStyle}\"${svgData.substring(preFillIndex)}`;\n}\nexport async function loadImage(image) {\n return new Promise((resolve) => {\n image.loading = true;\n const img = new Image();\n image.element = img;\n img.addEventListener(\"load\", () => {\n image.loading = false;\n resolve();\n });\n img.addEventListener(\"error\", () => {\n image.element = undefined;\n image.error = true;\n image.loading = false;\n getLogger().error(`${errorPrefix} loading image: ${image.source}`);\n resolve();\n });\n img.src = image.source;\n });\n}\nexport async function downloadSvgImage(image) {\n if (image.type !== \"svg\") {\n await loadImage(image);\n return;\n }\n image.loading = true;\n const response = await fetch(image.source);\n if (!response.ok) {\n getLogger().error(`${errorPrefix} Image not found`);\n image.error = true;\n }\n else {\n image.svgData = await response.text();\n }\n image.loading = false;\n}\nexport function replaceImageColor(image, imageData, color, particle) {\n const svgColoredData = replaceColorSvg(image, color, particle.opacity?.value ?? defaultOpacity), imageRes = {\n color,\n gif: imageData.gif,\n data: {\n ...image,\n svgData: svgColoredData,\n },\n loaded: false,\n ratio: imageData.width / imageData.height,\n replaceColor: imageData.replaceColor,\n source: imageData.src,\n };\n return new Promise((resolve) => {\n const svg = new Blob([svgColoredData], { type: \"image/svg+xml\" }), domUrl = URL || window.URL || window.webkitURL || window, url = domUrl.createObjectURL(svg), img = new Image();\n img.addEventListener(\"load\", () => {\n imageRes.loaded = true;\n imageRes.element = img;\n resolve(imageRes);\n domUrl.revokeObjectURL(url);\n });\n const errorHandler = async () => {\n domUrl.revokeObjectURL(url);\n const img2 = {\n ...image,\n error: false,\n loading: true,\n };\n await loadImage(img2);\n imageRes.loaded = true;\n imageRes.element = img2.element;\n resolve(imageRes);\n };\n img.addEventListener(\"error\", () => void errorHandler());\n img.src = url;\n });\n}\n","import { downloadSvgImage, loadImage } from \"./Utils.js\";\nimport { errorPrefix } from \"@tsparticles/engine\";\nconst extLength = 3;\nfunction addLoadImageToEngine(engine) {\n if (engine.loadImage) {\n return;\n }\n engine.loadImage = async (data) => {\n if (!data.name && !data.src) {\n throw new Error(`${errorPrefix} no image source provided`);\n }\n if (!engine.images) {\n engine.images = [];\n }\n if (engine.images.find((t) => t.name === data.name || t.source === data.src)) {\n return;\n }\n try {\n const image = {\n gif: data.gif ?? false,\n name: data.name ?? data.src,\n source: data.src,\n type: data.src.substring(data.src.length - extLength),\n error: false,\n loading: true,\n replaceColor: data.replaceColor,\n ratio: data.width && data.height ? data.width / data.height : undefined,\n };\n engine.images.push(image);\n let imageFunc;\n if (data.gif) {\n const { loadGifImage } = await import(\"./GifUtils/Utils.js\");\n imageFunc = loadGifImage;\n }\n else {\n imageFunc = data.replaceColor ? downloadSvgImage : loadImage;\n }\n await imageFunc(image);\n }\n catch {\n throw new Error(`${errorPrefix} ${data.name ?? data.src} not found`);\n }\n };\n}\nexport async function loadImageShape(engine, refresh = true) {\n addLoadImageToEngine(engine);\n const { ImagePreloaderPlugin } = await import(\"./ImagePreloader.js\"), { ImageDrawer } = await import(\"./ImageDrawer.js\");\n const preloader = new ImagePreloaderPlugin(engine);\n await engine.addPlugin(preloader, refresh);\n await engine.addShape([\"image\", \"images\"], new ImageDrawer(engine), refresh);\n}\n"],"names":["stringStart","defaultOpacity","currentColorRegex","async","loadImage","image","Promise","resolve","loading","img","Image","element","addEventListener","undefined","error","getLogger","concat","errorPrefix","source","src","downloadSvgImage","type","response","fetch","ok","svgData","text","replaceImageColor","imageData","color","particle","_particle$opacity$val","_particle$opacity","svgColoredData","imageShape","opacity","colorStyle","getStyleFromHsl","includes","replace","preFillIndex","indexOf","substring","replaceColorSvg","value","imageRes","gif","data","loaded","ratio","width","height","replaceColor","svg","Blob","domUrl","URL","window","webkitURL","url","createObjectURL","revokeObjectURL","img2","errorHandler","extLength","loadImageShape","engine","refresh","arguments","length","name","Error","images","find","t","_data$gif","_data$name","imageFunc","push","loadGifImage","_data$name2","addLoadImageToEngine","ImagePreloaderPlugin","ImageDrawer","preloader","addPlugin","addShape"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/464.bedb1502.chunk.js","mappings":"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","sources":["../node_modules/@tsparticles/shape-image/browser/Utils.js","../node_modules/@tsparticles/shape-image/browser/index.js"],"sourcesContent":["import { errorPrefix, getLogger, getStyleFromHsl } from \"@tsparticles/engine\";\nconst stringStart = 0, defaultOpacity = 1;\nconst currentColorRegex = /(#(?:[0-9a-f]{2}){2,4}|(#[0-9a-f]{3})|(rgb|hsl)a?\\((-?\\d+%?[,\\s]+){2,3}\\s*[\\d.]+%?\\))|currentcolor/gi;\nfunction replaceColorSvg(imageShape, color, opacity) {\n const { svgData } = imageShape;\n if (!svgData) {\n return \"\";\n }\n const colorStyle = getStyleFromHsl(color, opacity);\n if (svgData.includes(\"fill\")) {\n return svgData.replace(currentColorRegex, () => colorStyle);\n }\n const preFillIndex = svgData.indexOf(\">\");\n return `${svgData.substring(stringStart, preFillIndex)} fill=\"${colorStyle}\"${svgData.substring(preFillIndex)}`;\n}\nexport async function loadImage(image) {\n return new Promise((resolve) => {\n image.loading = true;\n const img = new Image();\n image.element = img;\n img.addEventListener(\"load\", () => {\n image.loading = false;\n resolve();\n });\n img.addEventListener(\"error\", () => {\n image.element = undefined;\n image.error = true;\n image.loading = false;\n getLogger().error(`${errorPrefix} loading image: ${image.source}`);\n resolve();\n });\n img.src = image.source;\n });\n}\nexport async function downloadSvgImage(image) {\n if (image.type !== \"svg\") {\n await loadImage(image);\n return;\n }\n image.loading = true;\n const response = await fetch(image.source);\n if (!response.ok) {\n getLogger().error(`${errorPrefix} Image not found`);\n image.error = true;\n }\n else {\n image.svgData = await response.text();\n }\n image.loading = false;\n}\nexport function replaceImageColor(image, imageData, color, particle) {\n const svgColoredData = replaceColorSvg(image, color, particle.opacity?.value ?? defaultOpacity), imageRes = {\n color,\n gif: imageData.gif,\n data: {\n ...image,\n svgData: svgColoredData,\n },\n loaded: false,\n ratio: imageData.width / imageData.height,\n replaceColor: imageData.replaceColor,\n source: imageData.src,\n };\n return new Promise((resolve) => {\n const svg = new Blob([svgColoredData], { type: \"image/svg+xml\" }), domUrl = URL || window.URL || window.webkitURL || window, url = domUrl.createObjectURL(svg), img = new Image();\n img.addEventListener(\"load\", () => {\n imageRes.loaded = true;\n imageRes.element = img;\n resolve(imageRes);\n domUrl.revokeObjectURL(url);\n });\n const errorHandler = async () => {\n domUrl.revokeObjectURL(url);\n const img2 = {\n ...image,\n error: false,\n loading: true,\n };\n await loadImage(img2);\n imageRes.loaded = true;\n imageRes.element = img2.element;\n resolve(imageRes);\n };\n img.addEventListener(\"error\", () => void errorHandler());\n img.src = url;\n });\n}\n","import { downloadSvgImage, loadImage } from \"./Utils.js\";\nimport { errorPrefix } from \"@tsparticles/engine\";\nconst extLength = 3;\nfunction addLoadImageToEngine(engine) {\n if (engine.loadImage) {\n return;\n }\n engine.loadImage = async (data) => {\n if (!data.name && !data.src) {\n throw new Error(`${errorPrefix} no image source provided`);\n }\n if (!engine.images) {\n engine.images = [];\n }\n if (engine.images.find((t) => t.name === data.name || t.source === data.src)) {\n return;\n }\n try {\n const image = {\n gif: data.gif ?? false,\n name: data.name ?? data.src,\n source: data.src,\n type: data.src.substring(data.src.length - extLength),\n error: false,\n loading: true,\n replaceColor: data.replaceColor,\n ratio: data.width && data.height ? data.width / data.height : undefined,\n };\n engine.images.push(image);\n let imageFunc;\n if (data.gif) {\n const { loadGifImage } = await import(\"./GifUtils/Utils.js\");\n imageFunc = loadGifImage;\n }\n else {\n imageFunc = data.replaceColor ? downloadSvgImage : loadImage;\n }\n await imageFunc(image);\n }\n catch {\n throw new Error(`${errorPrefix} ${data.name ?? data.src} not found`);\n }\n };\n}\nexport async function loadImageShape(engine, refresh = true) {\n addLoadImageToEngine(engine);\n const { ImagePreloaderPlugin } = await import(\"./ImagePreloader.js\"), { ImageDrawer } = await import(\"./ImageDrawer.js\");\n const preloader = new ImagePreloaderPlugin(engine);\n await engine.addPlugin(preloader, refresh);\n await engine.addShape([\"image\", \"images\"], new ImageDrawer(engine), refresh);\n}\n"],"names":["stringStart","defaultOpacity","currentColorRegex","async","loadImage","image","Promise","resolve","loading","img","Image","element","addEventListener","undefined","error","getLogger","concat","errorPrefix","source","src","downloadSvgImage","type","response","fetch","ok","svgData","text","replaceImageColor","imageData","color","particle","_particle$opacity$val","_particle$opacity","svgColoredData","imageShape","opacity","colorStyle","getStyleFromHsl","includes","replace","preFillIndex","indexOf","substring","replaceColorSvg","value","imageRes","gif","data","loaded","ratio","width","height","replaceColor","svg","Blob","domUrl","URL","window","webkitURL","url","createObjectURL","revokeObjectURL","img2","errorHandler","extLength","loadImageShape","engine","refresh","arguments","length","name","Error","images","find","t","_data$gif","_data$name","imageFunc","push","loadGifImage","_data$name2","addLoadImageToEngine","ImagePreloaderPlugin","ImageDrawer","preloader","addPlugin","addShape"],"sourceRoot":""} \ No newline at end of file diff --git a/build/static/js/464.e298dba6.chunk.js b/build/static/js/464.e298dba6.chunk.js deleted file mode 100644 index fc87ef7..0000000 --- a/build/static/js/464.e298dba6.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkclient=self.webpackChunkclient||[]).push([[464],{1977:(e,a,n)=>{n.d(a,{a:()=>d,d:()=>l,loadImage:()=>c});var o=n(4409);const t=0,r=1,i=/(#(?:[0-9a-f]{2}){2,4}|(#[0-9a-f]{3})|(rgb|hsl)a?\((-?\d+%?[,\s]+){2,3}\s*[\d.]+%?\))|currentcolor/gi;async function c(e){return new Promise((a=>{e.loading=!0;const n=new Image;e.element=n,n.addEventListener("load",(()=>{e.loading=!1,a()})),n.addEventListener("error",(()=>{e.element=void 0,e.error=!0,e.loading=!1,(0,o.tZ)().error("".concat(o.dI," loading image: ").concat(e.source)),a()})),n.src=e.source}))}async function d(e){if("svg"!==e.type)return void await c(e);e.loading=!0;const a=await fetch(e.source);a.ok?e.svgData=await a.text():((0,o.tZ)().error("".concat(o.dI," Image not found")),e.error=!0),e.loading=!1}function l(e,a,n,d){var l,s;const g=function(e,a,n){const{svgData:r}=e;if(!r)return"";const c=(0,o.LC)(a,n);if(r.includes("fill"))return r.replace(i,(()=>c));const d=r.indexOf(">");return"".concat(r.substring(t,d),' fill="').concat(c,'"').concat(r.substring(d))}(e,n,null!==(l=null===(s=d.opacity)||void 0===s?void 0:s.value)&&void 0!==l?l:r),u={color:n,gif:a.gif,data:{...e,svgData:g},loaded:!1,ratio:a.width/a.height,replaceColor:a.replaceColor,source:a.src};return new Promise((a=>{const n=new Blob([g],{type:"image/svg+xml"}),o=URL||window.URL||window.webkitURL||window,t=o.createObjectURL(n),r=new Image;r.addEventListener("load",(()=>{u.loaded=!0,u.element=r,a(u),o.revokeObjectURL(t)}));r.addEventListener("error",(()=>{(async()=>{o.revokeObjectURL(t);const n={...e,error:!1,loading:!0};await c(n),u.loaded=!0,u.element=n.element,a(u)})()})),r.src=t}))}},464:(e,a,n)=>{n.d(a,{loadImageShape:()=>i});var o=n(1977),t=n(4409);const r=3;async function i(e){let a=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];!function(e){e.loadImage||(e.loadImage=async a=>{if(!a.name&&!a.src)throw new Error("".concat(t.dI," no image source provided"));if(e.images||(e.images=[]),!e.images.find((e=>e.name===a.name||e.source===a.src)))try{var i,c;const t={gif:null!==(i=a.gif)&&void 0!==i&&i,name:null!==(c=a.name)&&void 0!==c?c:a.src,source:a.src,type:a.src.substring(a.src.length-r),error:!1,loading:!0,replaceColor:a.replaceColor,ratio:a.width&&a.height?a.width/a.height:void 0};let d;if(e.images.push(t),a.gif){const{loadGifImage:e}=await n.e(463).then(n.bind(n,463));d=e}else d=a.replaceColor?o.a:o.loadImage;await d(t)}catch{var d;throw new Error("".concat(t.dI," ").concat(null!==(d=a.name)&&void 0!==d?d:a.src," not found"))}})}(e);const{ImagePreloaderPlugin:i}=await n.e(4843).then(n.bind(n,4843)),{ImageDrawer:c}=await n.e(4752).then(n.bind(n,4752)),d=new i(e);await e.addPlugin(d,a),await e.addShape(["image","images"],new c(e),a)}}}]); -//# sourceMappingURL=464.e298dba6.chunk.js.map \ No newline at end of file diff --git a/build/static/js/4708.c563c609.chunk.js b/build/static/js/4708.c563c609.chunk.js deleted file mode 100644 index 2fde357..0000000 --- a/build/static/js/4708.c563c609.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkclient=self.webpackChunkclient||[]).push([[4708],{4708:(e,a,n)=>{n.d(a,{loadEasingQuadPlugin:()=>u});var s=n(4409);async function u(){(0,s.nL)("ease-in-quad",(e=>e**2)),(0,s.nL)("ease-out-quad",(e=>1-(1-e)**2)),(0,s.nL)("ease-in-out-quad",(e=>e<.5?2*e**2:1-(-2*e+2)**2/2)),await Promise.resolve()}}}]); -//# sourceMappingURL=4708.c563c609.chunk.js.map \ No newline at end of file diff --git a/build/static/js/4708.dde47157.chunk.js b/build/static/js/4708.dde47157.chunk.js new file mode 100644 index 0000000..730c068 --- /dev/null +++ b/build/static/js/4708.dde47157.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkresview=self.webpackChunkresview||[]).push([[4708],{4708:(e,a,s)=>{s.d(a,{loadEasingQuadPlugin:()=>u});var n=s(4409);async function u(){(0,n.nL)("ease-in-quad",(e=>e**2)),(0,n.nL)("ease-out-quad",(e=>1-(1-e)**2)),(0,n.nL)("ease-in-out-quad",(e=>e<.5?2*e**2:1-(-2*e+2)**2/2)),await Promise.resolve()}}}]); +//# sourceMappingURL=4708.dde47157.chunk.js.map \ No newline at end of file diff --git a/build/static/js/4708.c563c609.chunk.js.map b/build/static/js/4708.dde47157.chunk.js.map similarity index 85% rename from build/static/js/4708.c563c609.chunk.js.map rename to build/static/js/4708.dde47157.chunk.js.map index 16bb26b..757168e 100644 --- a/build/static/js/4708.c563c609.chunk.js.map +++ b/build/static/js/4708.dde47157.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/4708.c563c609.chunk.js","mappings":"kJACOA,eAAeC,KAClBC,EAAAA,EAAAA,IAAU,gBAAiBC,GAAUA,GAAS,KAC9CD,EAAAA,EAAAA,IAAU,iBAAkBC,GAAU,GAAK,EAAIA,IAAU,KACzDD,EAAAA,EAAAA,IAAU,oBAAqBC,GAAWA,EAAQ,GAAM,EAAIA,GAAS,EAAI,IAAM,EAAIA,EAAQ,IAAM,EAAI,UAC/FC,QAAQC,SAClB,C","sources":["../node_modules/@tsparticles/plugin-easing-quad/browser/index.js"],"sourcesContent":["import { addEasing } from \"@tsparticles/engine\";\nexport async function loadEasingQuadPlugin() {\n addEasing(\"ease-in-quad\", (value) => value ** 2);\n addEasing(\"ease-out-quad\", (value) => 1 - (1 - value) ** 2);\n addEasing(\"ease-in-out-quad\", (value) => (value < 0.5 ? 2 * value ** 2 : 1 - (-2 * value + 2) ** 2 / 2));\n await Promise.resolve();\n}\n"],"names":["async","loadEasingQuadPlugin","addEasing","value","Promise","resolve"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/4708.dde47157.chunk.js","mappings":"oJACOA,eAAeC,KAClBC,EAAAA,EAAAA,IAAU,gBAAiBC,GAAUA,GAAS,KAC9CD,EAAAA,EAAAA,IAAU,iBAAkBC,GAAU,GAAK,EAAIA,IAAU,KACzDD,EAAAA,EAAAA,IAAU,oBAAqBC,GAAWA,EAAQ,GAAM,EAAIA,GAAS,EAAI,IAAM,EAAIA,EAAQ,IAAM,EAAI,UAC/FC,QAAQC,SAClB,C","sources":["../node_modules/@tsparticles/plugin-easing-quad/browser/index.js"],"sourcesContent":["import { addEasing } from \"@tsparticles/engine\";\nexport async function loadEasingQuadPlugin() {\n addEasing(\"ease-in-quad\", (value) => value ** 2);\n addEasing(\"ease-out-quad\", (value) => 1 - (1 - value) ** 2);\n addEasing(\"ease-in-out-quad\", (value) => (value < 0.5 ? 2 * value ** 2 : 1 - (-2 * value + 2) ** 2 / 2));\n await Promise.resolve();\n}\n"],"names":["async","loadEasingQuadPlugin","addEasing","value","Promise","resolve"],"sourceRoot":""} \ No newline at end of file diff --git a/build/static/js/4752.99494173.chunk.js b/build/static/js/4752.99494173.chunk.js deleted file mode 100644 index 5376047..0000000 --- a/build/static/js/4752.99494173.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkclient=self.webpackChunkclient||[]).push([[4752,463],{463:(t,e,a)=>{a.d(e,{zS:()=>p,loadGifImage:()=>u});const i=[0,4,2,1],o=[8,8,4,2];class n{constructor(t){this.pos=0,this.data=new Uint8ClampedArray(t)}getString(t){const e=this.data.slice(this.pos,this.pos+t);return this.pos+=e.length,e.reduce(((t,e)=>t+String.fromCharCode(e)),"")}nextByte(){return this.data[this.pos++]}nextTwoBytes(){return this.pos+=2,this.data[this.pos-2]+(this.data[this.pos-1]<<8)}readSubBlocks(){let t="",e=0;do{e=this.data[this.pos++];for(let a=e;--a>=0;t+=String.fromCharCode(this.data[this.pos++]));}while(0!==e);return t}readSubBlocksBin(){let t=this.data[this.pos],e=0;for(let i=0;0!==t;i+=t+1,t=this.data[this.pos+i])e+=t;const a=new Uint8Array(e);t=this.data[this.pos++];for(let i=0;0!==t;t=this.data[this.pos++])for(let e=t;--e>=0;a[i++]=this.data[this.pos++]);return a}skipSubBlocks(){for(const t=1,e=0;this.data[this.pos]!==e;this.pos+=this.data[this.pos]+t);this.pos++}}const s={x:0,y:0},r=0,l=.5,g=0,h=0,c=0;function d(t,e){const a=[];for(let i=0;i>>3;const f=1<<1+(7&g);h&&(l.localColorTable=d(t,f));const p=t=>{const{r:i,g:o,b:n}=(h?l.localColorTable:e.globalColorTable)[t];return t!==s(null)?{r:i,g:o,b:n,a:255}:{r:i,g:o,b:n,a:a?~~((i+o+n)/3):0}},u=(()=>{try{return new ImageData(l.width,l.height,{colorSpace:"srgb"})}catch(t){if(t instanceof DOMException&&"IndexSizeError"===t.name)return null;throw t}})();if(null==u)throw new EvalError("GIF frame size is to large");const m=t.nextByte(),w=t.readSubBlocksBin(),y=1<{const a=t>>>3,i=7&t;return(w[a]+(w[a+1]<<8)+(w[a+2]<<16)&(1<>>i};if(c){for(let a=0,s=m+1,g=0,h=[[0]],c=0;c<4;c++){if(i[c]=h.length?h.push(h[r].concat(h[r][0])):r!==y&&h.push(h[r].concat(h[a][0]));for(const n of h[a]){const{r:a,g:s,b:r,a:g}=p(n);u.data.set([a,s,r,g],i[c]*l.width+o[c]*e+t%(4*l.width)),t+=4}h.length===1<=l.height&&(n=!0))}}null===r||void 0===r||r(t.pos/(t.data.length-1),n(!1)+1,u,{x:l.left,y:l.top},{width:e.width,height:e.height})}l.image=u,l.bitmap=await createImageBitmap(u)}else{let a=0,i=m+1,o=0,s=-4,g=!1;const h=[[0]];for(;!g;){const t=a;if(a=x(o,i),o+=i,a===y){i=m+1,h.length=y+2;for(let t=0;t=h.length?h.push(h[t].concat(h[t][0])):t!==y&&h.push(h[t].concat(h[a][0]));for(const t of h[a]){const{r:e,g:a,b:i,a:o}=p(t);u.data.set([e,a,i,o],s+=4)}h.length>=1<>>5,o.disposalMethod=(28&n)>>>2,o.userInputDelayFlag=2===(2&n);const s=1===(1&n);o.delayTime=10*t.nextTwoBytes();const r=t.nextByte();s&&i(r),t.pos++;break}case 255:{t.pos++;const a={identifier:t.getString(8),authenticationCode:t.getString(3),data:t.readSubBlocksBin()};e.applicationExtensions.push(a);break}case 254:e.comments.push([a(!1),t.readSubBlocks()]);break;case 1:if(0===e.globalColorTable.length)throw new EvalError("plain text extension without global color table");t.pos++,e.frames[a(!1)].plainTextData={left:t.nextTwoBytes(),top:t.nextTwoBytes(),width:t.nextTwoBytes(),height:t.nextTwoBytes(),charSize:{width:t.nextTwoBytes(),height:t.nextTwoBytes()},foregroundColor:t.nextByte(),backgroundColor:t.nextByte(),text:t.readSubBlocks()};break;default:t.skipSubBlocks()}}(t,e,n,s);break;default:throw new EvalError("undefined block found")}return!1}function p(t){var e;const{context:a,radius:i,particle:o,delta:n}=t,d=o.image;if(null===d||void 0===d||!d.gifData||!d.gif)return;const f=new OffscreenCanvas(d.gifData.width,d.gifData.height),p=f.getContext("2d");if(!p)throw new Error("could not create offscreen canvas context");var u;(p.imageSmoothingQuality="low",p.imageSmoothingEnabled=!1,p.clearRect(s.x,s.y,f.width,f.height),void 0===o.gifLoopCount)&&(o.gifLoopCount=null!==(u=d.gifLoopCount)&&void 0!==u?u:c);let m=null!==(e=o.gifFrame)&&void 0!==e?e:r;const w={x:-d.gifData.width*l,y:-d.gifData.height*l},y=d.gifData.frames[m];if(void 0===o.gifTime&&(o.gifTime=g),y.bitmap){switch(a.scale(i/d.gifData.width,i/d.gifData.height),y.disposalMethod){case 4:case 5:case 6:case 7:case 0:p.drawImage(y.bitmap,y.left,y.top),a.drawImage(f,w.x,w.y),p.clearRect(s.x,s.y,f.width,f.height);break;case 1:p.drawImage(y.bitmap,y.left,y.top),a.drawImage(f,w.x,w.y);break;case 2:p.drawImage(y.bitmap,y.left,y.top),a.drawImage(f,w.x,w.y),p.clearRect(s.x,s.y,f.width,f.height),d.gifData.globalColorTable.length?p.putImageData(d.gifData.backgroundImage,w.x,w.y):p.putImageData(d.gifData.frames[h].image,w.x+y.left,w.y+y.top);break;case 3:{const t=p.getImageData(s.x,s.y,f.width,f.height);p.drawImage(y.bitmap,y.left,y.top),a.drawImage(f,w.x,w.y),p.clearRect(s.x,s.y,f.width,f.height),p.putImageData(t,s.x,s.y)}}if(o.gifTime+=n.value,o.gifTime>y.delayTime){if(o.gifTime-=y.delayTime,++m>=d.gifData.frames.length){if(--o.gifLoopCount<=c)return;m=h,p.clearRect(s.x,s.y,f.width,f.height)}o.gifFrame=m}a.scale(d.gifData.width/i,d.gifData.height/i)}}async function u(t){if("gif"===t.type){t.loading=!0;try{var e;t.gifData=await async function(t,e,a){a||(a=!1);const i=await fetch(t);if(!i.ok&&404===i.status)throw new EvalError("file not found");const o=await i.arrayBuffer(),s={width:0,height:0,totalTime:0,colorRes:0,pixelAspectRatio:0,frames:[],sortFlag:!1,globalColorTable:[],backgroundImage:new ImageData(1,1,{colorSpace:"srgb"}),comments:[],applicationExtensions:[]},r=new n(new Uint8ClampedArray(o));if("GIF89a"!==r.getString(6))throw new Error("not a supported GIF file");s.width=r.nextTwoBytes(),s.height=r.nextTwoBytes();const l=r.nextByte(),g=128===(128&l);s.colorRes=(112&l)>>>4,s.sortFlag=8===(8&l);const h=1<<1+(7&l),c=r.nextByte();s.pixelAspectRatio=r.nextByte(),0!==s.pixelAspectRatio&&(s.pixelAspectRatio=(s.pixelAspectRatio+15)/64),g&&(s.globalColorTable=d(r,h));const p=(()=>{try{return new ImageData(s.width,s.height,{colorSpace:"srgb"})}catch(t){if(t instanceof DOMException&&"IndexSizeError"===t.name)return null;throw t}})();if(null==p)throw new Error("GIF frame size is to large");const{r:u,g:m,b:w}=s.globalColorTable[c];p.data.set(g?[u,m,w,255]:[0,0,0,0]);for(let n=4;n(t&&(x=!0),y),I=t=>(null!=t&&(b=t),b);try{do{x&&(s.frames.push({left:0,top:0,width:0,height:0,disposalMethod:0,image:new ImageData(1,1,{colorSpace:"srgb"}),plainTextData:null,userInputDelayFlag:!1,delayTime:0,sortFlag:!1,localColorTable:[],reserved:0,GCreserved:0}),y++,b=-1,x=!1)}while(!await f(r,s,a,C,I,e));s.frames.length--;for(const t of s.frames){if(t.userInputDelayFlag&&0===t.delayTime){s.totalTime=1/0;break}s.totalTime+=t.delayTime}return s}catch(T){if(T instanceof EvalError)throw new Error("error while parsing frame ".concat(y,' "').concat(T.message,'"'));throw T}}(t.source),t.gifLoopCount=null!==(e=function(t){for(const e of t.applicationExtensions)if(e.identifier+e.authenticationCode==="NETSCAPE2.0")return e.data[1]+(e.data[2]<<8);return NaN}(t.gifData))&&void 0!==e?e:c,t.gifLoopCount||(t.gifLoopCount=1/0)}catch{t.error=!0}t.loading=!1}else{const{loadImage:e}=await Promise.resolve().then(a.bind(a,1977));await e(t)}}},4752:(t,e,a)=>{a.d(e,{ImageDrawer:()=>s});var i=a(4409),o=a(1977),n=a(463);class s{constructor(t){this.loadImageShape=async t=>{var e;if(!this._engine.loadImage)throw new Error("".concat(i.dI," image shape not initialized"));await this._engine.loadImage({gif:t.gif,name:t.name,replaceColor:null!==(e=t.replaceColor)&&void 0!==e&&e,src:t.src})},this._engine=t}addImage(t){this._engine.images||(this._engine.images=[]),this._engine.images.push(t)}draw(t){const{context:e,radius:a,particle:i,opacity:o}=t,s=i.image,r=null===s||void 0===s?void 0:s.element;if(s){if(e.globalAlpha=o,s.gif&&s.gifData)(0,n.zS)(t);else if(r){const t=s.ratio,i={x:-a,y:-a},o=2*a;e.drawImage(r,i.x,i.y,o,o/t)}e.globalAlpha=1}}getSidesCount(){return 12}async init(t){const e=t.actualOptions;if(e.preload&&this._engine.loadImage)for(const a of e.preload)await this._engine.loadImage(a)}loadShape(t){if("image"!==t.shape&&"images"!==t.shape)return;this._engine.images||(this._engine.images=[]);const e=t.shapeData;if(!e)return;this._engine.images.find((t=>t.name===e.name||t.source===e.src))||this.loadImageShape(e).then((()=>{this.loadShape(t)}))}particleInit(t,e){var a;if("image"!==e.shape&&"images"!==e.shape)return;this._engine.images||(this._engine.images=[]);const i=this._engine.images,n=e.shapeData;if(!n)return;const s=e.getFillColor(),r=i.find((t=>t.name===n.name||t.source===n.src));if(!r)return;const l=null!==(a=n.replaceColor)&&void 0!==a?a:r.replaceColor;r.loading?setTimeout((()=>{this.particleInit(t,e)})):(async(t,a)=>{let i;var g;r.svgData&&s?i=await(0,o.d)(r,n,s,e):i={color:s,data:r,element:r.element,gif:r.gif,gifData:r.gifData,gifLoopCount:r.gifLoopCount,loaded:!0,ratio:n.width&&n.height?n.width/n.height:null!==(g=r.ratio)&&void 0!==g?g:1,replaceColor:l,source:n.src};i.ratio||(i.ratio=1);const h={image:i,fill:null!==(t=n.fill)&&void 0!==t?t:e.shapeFill,close:null!==(a=n.close)&&void 0!==a?a:e.shapeClose};e.image=h.image,e.shapeFill=h.fill,e.shapeClose=h.close})()}}}}]); -//# sourceMappingURL=4752.99494173.chunk.js.map \ No newline at end of file diff --git a/build/static/js/4752.ad8dc7a8.chunk.js b/build/static/js/4752.ad8dc7a8.chunk.js new file mode 100644 index 0000000..390d4f1 --- /dev/null +++ b/build/static/js/4752.ad8dc7a8.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkresview=self.webpackChunkresview||[]).push([[4752,463],{463:(t,e,a)=>{a.d(e,{zS:()=>p,loadGifImage:()=>u});const i=[0,4,2,1],o=[8,8,4,2];class n{constructor(t){this.pos=0,this.data=new Uint8ClampedArray(t)}getString(t){const e=this.data.slice(this.pos,this.pos+t);return this.pos+=e.length,e.reduce(((t,e)=>t+String.fromCharCode(e)),"")}nextByte(){return this.data[this.pos++]}nextTwoBytes(){return this.pos+=2,this.data[this.pos-2]+(this.data[this.pos-1]<<8)}readSubBlocks(){let t="",e=0;do{e=this.data[this.pos++];for(let a=e;--a>=0;t+=String.fromCharCode(this.data[this.pos++]));}while(0!==e);return t}readSubBlocksBin(){let t=this.data[this.pos],e=0;for(let i=0;0!==t;i+=t+1,t=this.data[this.pos+i])e+=t;const a=new Uint8Array(e);t=this.data[this.pos++];for(let i=0;0!==t;t=this.data[this.pos++])for(let e=t;--e>=0;a[i++]=this.data[this.pos++]);return a}skipSubBlocks(){for(const t=1,e=0;this.data[this.pos]!==e;this.pos+=this.data[this.pos]+t);this.pos++}}const s={x:0,y:0},r=0,l=.5,g=0,h=0,c=0;function d(t,e){const a=[];for(let i=0;i>>3;const f=1<<1+(7&g);h&&(l.localColorTable=d(t,f));const p=t=>{const{r:i,g:o,b:n}=(h?l.localColorTable:e.globalColorTable)[t];return t!==s(null)?{r:i,g:o,b:n,a:255}:{r:i,g:o,b:n,a:a?~~((i+o+n)/3):0}},u=(()=>{try{return new ImageData(l.width,l.height,{colorSpace:"srgb"})}catch(t){if(t instanceof DOMException&&"IndexSizeError"===t.name)return null;throw t}})();if(null==u)throw new EvalError("GIF frame size is to large");const m=t.nextByte(),w=t.readSubBlocksBin(),y=1<{const a=t>>>3,i=7&t;return(w[a]+(w[a+1]<<8)+(w[a+2]<<16)&(1<>>i};if(c){for(let a=0,s=m+1,g=0,h=[[0]],c=0;c<4;c++){if(i[c]=h.length?h.push(h[r].concat(h[r][0])):r!==y&&h.push(h[r].concat(h[a][0]));for(const n of h[a]){const{r:a,g:s,b:r,a:g}=p(n);u.data.set([a,s,r,g],i[c]*l.width+o[c]*e+t%(4*l.width)),t+=4}h.length===1<=l.height&&(n=!0))}}null===r||void 0===r||r(t.pos/(t.data.length-1),n(!1)+1,u,{x:l.left,y:l.top},{width:e.width,height:e.height})}l.image=u,l.bitmap=await createImageBitmap(u)}else{let a=0,i=m+1,o=0,s=-4,g=!1;const h=[[0]];for(;!g;){const t=a;if(a=x(o,i),o+=i,a===y){i=m+1,h.length=y+2;for(let t=0;t=h.length?h.push(h[t].concat(h[t][0])):t!==y&&h.push(h[t].concat(h[a][0]));for(const t of h[a]){const{r:e,g:a,b:i,a:o}=p(t);u.data.set([e,a,i,o],s+=4)}h.length>=1<>>5,o.disposalMethod=(28&n)>>>2,o.userInputDelayFlag=2===(2&n);const s=1===(1&n);o.delayTime=10*t.nextTwoBytes();const r=t.nextByte();s&&i(r),t.pos++;break}case 255:{t.pos++;const a={identifier:t.getString(8),authenticationCode:t.getString(3),data:t.readSubBlocksBin()};e.applicationExtensions.push(a);break}case 254:e.comments.push([a(!1),t.readSubBlocks()]);break;case 1:if(0===e.globalColorTable.length)throw new EvalError("plain text extension without global color table");t.pos++,e.frames[a(!1)].plainTextData={left:t.nextTwoBytes(),top:t.nextTwoBytes(),width:t.nextTwoBytes(),height:t.nextTwoBytes(),charSize:{width:t.nextTwoBytes(),height:t.nextTwoBytes()},foregroundColor:t.nextByte(),backgroundColor:t.nextByte(),text:t.readSubBlocks()};break;default:t.skipSubBlocks()}}(t,e,n,s);break;default:throw new EvalError("undefined block found")}return!1}function p(t){var e;const{context:a,radius:i,particle:o,delta:n}=t,d=o.image;if(null===d||void 0===d||!d.gifData||!d.gif)return;const f=new OffscreenCanvas(d.gifData.width,d.gifData.height),p=f.getContext("2d");if(!p)throw new Error("could not create offscreen canvas context");var u;(p.imageSmoothingQuality="low",p.imageSmoothingEnabled=!1,p.clearRect(s.x,s.y,f.width,f.height),void 0===o.gifLoopCount)&&(o.gifLoopCount=null!==(u=d.gifLoopCount)&&void 0!==u?u:c);let m=null!==(e=o.gifFrame)&&void 0!==e?e:r;const w={x:-d.gifData.width*l,y:-d.gifData.height*l},y=d.gifData.frames[m];if(void 0===o.gifTime&&(o.gifTime=g),y.bitmap){switch(a.scale(i/d.gifData.width,i/d.gifData.height),y.disposalMethod){case 4:case 5:case 6:case 7:case 0:p.drawImage(y.bitmap,y.left,y.top),a.drawImage(f,w.x,w.y),p.clearRect(s.x,s.y,f.width,f.height);break;case 1:p.drawImage(y.bitmap,y.left,y.top),a.drawImage(f,w.x,w.y);break;case 2:p.drawImage(y.bitmap,y.left,y.top),a.drawImage(f,w.x,w.y),p.clearRect(s.x,s.y,f.width,f.height),d.gifData.globalColorTable.length?p.putImageData(d.gifData.backgroundImage,w.x,w.y):p.putImageData(d.gifData.frames[h].image,w.x+y.left,w.y+y.top);break;case 3:{const t=p.getImageData(s.x,s.y,f.width,f.height);p.drawImage(y.bitmap,y.left,y.top),a.drawImage(f,w.x,w.y),p.clearRect(s.x,s.y,f.width,f.height),p.putImageData(t,s.x,s.y)}}if(o.gifTime+=n.value,o.gifTime>y.delayTime){if(o.gifTime-=y.delayTime,++m>=d.gifData.frames.length){if(--o.gifLoopCount<=c)return;m=h,p.clearRect(s.x,s.y,f.width,f.height)}o.gifFrame=m}a.scale(d.gifData.width/i,d.gifData.height/i)}}async function u(t){if("gif"===t.type){t.loading=!0;try{var e;t.gifData=await async function(t,e,a){a||(a=!1);const i=await fetch(t);if(!i.ok&&404===i.status)throw new EvalError("file not found");const o=await i.arrayBuffer(),s={width:0,height:0,totalTime:0,colorRes:0,pixelAspectRatio:0,frames:[],sortFlag:!1,globalColorTable:[],backgroundImage:new ImageData(1,1,{colorSpace:"srgb"}),comments:[],applicationExtensions:[]},r=new n(new Uint8ClampedArray(o));if("GIF89a"!==r.getString(6))throw new Error("not a supported GIF file");s.width=r.nextTwoBytes(),s.height=r.nextTwoBytes();const l=r.nextByte(),g=128===(128&l);s.colorRes=(112&l)>>>4,s.sortFlag=8===(8&l);const h=1<<1+(7&l),c=r.nextByte();s.pixelAspectRatio=r.nextByte(),0!==s.pixelAspectRatio&&(s.pixelAspectRatio=(s.pixelAspectRatio+15)/64),g&&(s.globalColorTable=d(r,h));const p=(()=>{try{return new ImageData(s.width,s.height,{colorSpace:"srgb"})}catch(t){if(t instanceof DOMException&&"IndexSizeError"===t.name)return null;throw t}})();if(null==p)throw new Error("GIF frame size is to large");const{r:u,g:m,b:w}=s.globalColorTable[c];p.data.set(g?[u,m,w,255]:[0,0,0,0]);for(let n=4;n(t&&(x=!0),y),I=t=>(null!=t&&(b=t),b);try{do{x&&(s.frames.push({left:0,top:0,width:0,height:0,disposalMethod:0,image:new ImageData(1,1,{colorSpace:"srgb"}),plainTextData:null,userInputDelayFlag:!1,delayTime:0,sortFlag:!1,localColorTable:[],reserved:0,GCreserved:0}),y++,b=-1,x=!1)}while(!await f(r,s,a,C,I,e));s.frames.length--;for(const t of s.frames){if(t.userInputDelayFlag&&0===t.delayTime){s.totalTime=1/0;break}s.totalTime+=t.delayTime}return s}catch(T){if(T instanceof EvalError)throw new Error("error while parsing frame ".concat(y,' "').concat(T.message,'"'));throw T}}(t.source),t.gifLoopCount=null!==(e=function(t){for(const e of t.applicationExtensions)if(e.identifier+e.authenticationCode==="NETSCAPE2.0")return e.data[1]+(e.data[2]<<8);return NaN}(t.gifData))&&void 0!==e?e:c,t.gifLoopCount||(t.gifLoopCount=1/0)}catch{t.error=!0}t.loading=!1}else{const{loadImage:e}=await Promise.resolve().then(a.bind(a,1977));await e(t)}}},4752:(t,e,a)=>{a.d(e,{ImageDrawer:()=>s});var i=a(4409),o=a(1977),n=a(463);class s{constructor(t){this.loadImageShape=async t=>{var e;if(!this._engine.loadImage)throw new Error("".concat(i.dI," image shape not initialized"));await this._engine.loadImage({gif:t.gif,name:t.name,replaceColor:null!==(e=t.replaceColor)&&void 0!==e&&e,src:t.src})},this._engine=t}addImage(t){this._engine.images||(this._engine.images=[]),this._engine.images.push(t)}draw(t){const{context:e,radius:a,particle:i,opacity:o}=t,s=i.image,r=null===s||void 0===s?void 0:s.element;if(s){if(e.globalAlpha=o,s.gif&&s.gifData)(0,n.zS)(t);else if(r){const t=s.ratio,i={x:-a,y:-a},o=2*a;e.drawImage(r,i.x,i.y,o,o/t)}e.globalAlpha=1}}getSidesCount(){return 12}async init(t){const e=t.actualOptions;if(e.preload&&this._engine.loadImage)for(const a of e.preload)await this._engine.loadImage(a)}loadShape(t){if("image"!==t.shape&&"images"!==t.shape)return;this._engine.images||(this._engine.images=[]);const e=t.shapeData;if(!e)return;this._engine.images.find((t=>t.name===e.name||t.source===e.src))||this.loadImageShape(e).then((()=>{this.loadShape(t)}))}particleInit(t,e){var a;if("image"!==e.shape&&"images"!==e.shape)return;this._engine.images||(this._engine.images=[]);const i=this._engine.images,n=e.shapeData;if(!n)return;const s=e.getFillColor(),r=i.find((t=>t.name===n.name||t.source===n.src));if(!r)return;const l=null!==(a=n.replaceColor)&&void 0!==a?a:r.replaceColor;r.loading?setTimeout((()=>{this.particleInit(t,e)})):(async(t,a)=>{let i;var g;r.svgData&&s?i=await(0,o.d)(r,n,s,e):i={color:s,data:r,element:r.element,gif:r.gif,gifData:r.gifData,gifLoopCount:r.gifLoopCount,loaded:!0,ratio:n.width&&n.height?n.width/n.height:null!==(g=r.ratio)&&void 0!==g?g:1,replaceColor:l,source:n.src};i.ratio||(i.ratio=1);const h={image:i,fill:null!==(t=n.fill)&&void 0!==t?t:e.shapeFill,close:null!==(a=n.close)&&void 0!==a?a:e.shapeClose};e.image=h.image,e.shapeFill=h.fill,e.shapeClose=h.close})()}}}}]); +//# sourceMappingURL=4752.ad8dc7a8.chunk.js.map \ No newline at end of file diff --git a/build/static/js/4752.99494173.chunk.js.map b/build/static/js/4752.ad8dc7a8.chunk.js.map similarity index 99% rename from build/static/js/4752.99494173.chunk.js.map rename to build/static/js/4752.ad8dc7a8.chunk.js.map index 3ffeca0..89b413f 100644 --- a/build/static/js/4752.99494173.chunk.js.map +++ b/build/static/js/4752.ad8dc7a8.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/4752.99494173.chunk.js","mappings":"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","sources":["../node_modules/@tsparticles/shape-image/browser/GifUtils/Constants.js","../node_modules/@tsparticles/shape-image/browser/GifUtils/ByteStream.js","../node_modules/@tsparticles/shape-image/browser/GifUtils/Utils.js","../node_modules/@tsparticles/shape-image/browser/ImageDrawer.js"],"sourcesContent":["export const InterlaceOffsets = [0, 4, 2, 1];\nexport const InterlaceSteps = [8, 8, 4, 2];\n","export class ByteStream {\n constructor(bytes) {\n this.pos = 0;\n this.data = new Uint8ClampedArray(bytes);\n }\n getString(count) {\n const slice = this.data.slice(this.pos, this.pos + count);\n this.pos += slice.length;\n return slice.reduce((acc, curr) => acc + String.fromCharCode(curr), \"\");\n }\n nextByte() {\n return this.data[this.pos++];\n }\n nextTwoBytes() {\n const increment = 2, previous = 1, shift = 8;\n this.pos += increment;\n return this.data[this.pos - increment] + (this.data[this.pos - previous] << shift);\n }\n readSubBlocks() {\n let blockString = \"\", size = 0;\n const minCount = 0, emptySize = 0;\n do {\n size = this.data[this.pos++];\n for (let count = size; --count >= minCount; blockString += String.fromCharCode(this.data[this.pos++])) {\n }\n } while (size !== emptySize);\n return blockString;\n }\n readSubBlocksBin() {\n let size = this.data[this.pos], len = 0;\n const emptySize = 0, increment = 1;\n for (let offset = 0; size !== emptySize; offset += size + increment, size = this.data[this.pos + offset]) {\n len += size;\n }\n const blockData = new Uint8Array(len);\n size = this.data[this.pos++];\n for (let i = 0; size !== emptySize; size = this.data[this.pos++]) {\n for (let count = size; --count >= emptySize; blockData[i++] = this.data[this.pos++]) {\n }\n }\n return blockData;\n }\n skipSubBlocks() {\n for (const increment = 1, noData = 0; this.data[this.pos] !== noData; this.pos += this.data[this.pos] + increment) {\n }\n this.pos++;\n }\n}\n","import { InterlaceOffsets, InterlaceSteps } from \"./Constants.js\";\nimport { ByteStream } from \"./ByteStream.js\";\nconst origin = {\n x: 0,\n y: 0,\n}, defaultFrame = 0, half = 0.5, initialTime = 0, firstIndex = 0, defaultLoopCount = 0;\nfunction parseColorTable(byteStream, count) {\n const colors = [];\n for (let i = 0; i < count; i++) {\n colors.push({\n r: byteStream.data[byteStream.pos],\n g: byteStream.data[byteStream.pos + 1],\n b: byteStream.data[byteStream.pos + 2],\n });\n byteStream.pos += 3;\n }\n return colors;\n}\nfunction parseExtensionBlock(byteStream, gif, getFrameIndex, getTransparencyIndex) {\n switch (byteStream.nextByte()) {\n case 249: {\n const frame = gif.frames[getFrameIndex(false)];\n byteStream.pos++;\n const packedByte = byteStream.nextByte();\n frame.GCreserved = (packedByte & 0xe0) >>> 5;\n frame.disposalMethod = (packedByte & 0x1c) >>> 2;\n frame.userInputDelayFlag = (packedByte & 2) === 2;\n const transparencyFlag = (packedByte & 1) === 1;\n frame.delayTime = byteStream.nextTwoBytes() * 0xa;\n const transparencyIndex = byteStream.nextByte();\n if (transparencyFlag) {\n getTransparencyIndex(transparencyIndex);\n }\n byteStream.pos++;\n break;\n }\n case 255: {\n byteStream.pos++;\n const applicationExtension = {\n identifier: byteStream.getString(8),\n authenticationCode: byteStream.getString(3),\n data: byteStream.readSubBlocksBin(),\n };\n gif.applicationExtensions.push(applicationExtension);\n break;\n }\n case 254: {\n gif.comments.push([getFrameIndex(false), byteStream.readSubBlocks()]);\n break;\n }\n case 1: {\n if (gif.globalColorTable.length === 0) {\n throw new EvalError(\"plain text extension without global color table\");\n }\n byteStream.pos++;\n gif.frames[getFrameIndex(false)].plainTextData = {\n left: byteStream.nextTwoBytes(),\n top: byteStream.nextTwoBytes(),\n width: byteStream.nextTwoBytes(),\n height: byteStream.nextTwoBytes(),\n charSize: {\n width: byteStream.nextTwoBytes(),\n height: byteStream.nextTwoBytes(),\n },\n foregroundColor: byteStream.nextByte(),\n backgroundColor: byteStream.nextByte(),\n text: byteStream.readSubBlocks(),\n };\n break;\n }\n default:\n byteStream.skipSubBlocks();\n break;\n }\n}\nasync function parseImageBlock(byteStream, gif, avgAlpha, getFrameIndex, getTransparencyIndex, progressCallback) {\n const frame = gif.frames[getFrameIndex(true)];\n frame.left = byteStream.nextTwoBytes();\n frame.top = byteStream.nextTwoBytes();\n frame.width = byteStream.nextTwoBytes();\n frame.height = byteStream.nextTwoBytes();\n const packedByte = byteStream.nextByte(), localColorTableFlag = (packedByte & 0x80) === 0x80, interlacedFlag = (packedByte & 0x40) === 0x40;\n frame.sortFlag = (packedByte & 0x20) === 0x20;\n frame.reserved = (packedByte & 0x18) >>> 3;\n const localColorCount = 1 << ((packedByte & 7) + 1);\n if (localColorTableFlag) {\n frame.localColorTable = parseColorTable(byteStream, localColorCount);\n }\n const getColor = (index) => {\n const { r, g, b } = (localColorTableFlag ? frame.localColorTable : gif.globalColorTable)[index];\n if (index !== getTransparencyIndex(null)) {\n return { r, g, b, a: 255 };\n }\n return { r, g, b, a: avgAlpha ? ~~((r + g + b) / 3) : 0 };\n };\n const image = (() => {\n try {\n return new ImageData(frame.width, frame.height, { colorSpace: \"srgb\" });\n }\n catch (error) {\n if (error instanceof DOMException && error.name === \"IndexSizeError\") {\n return null;\n }\n throw error;\n }\n })();\n if (image == null) {\n throw new EvalError(\"GIF frame size is to large\");\n }\n const minCodeSize = byteStream.nextByte(), imageData = byteStream.readSubBlocksBin(), clearCode = 1 << minCodeSize;\n const readBits = (pos, len) => {\n const bytePos = pos >>> 3, bitPos = pos & 7;\n return (((imageData[bytePos] + (imageData[bytePos + 1] << 8) + (imageData[bytePos + 2] << 16)) &\n (((1 << len) - 1) << bitPos)) >>>\n bitPos);\n };\n if (interlacedFlag) {\n for (let code = 0, size = minCodeSize + 1, pos = 0, dic = [[0]], pass = 0; pass < 4; pass++) {\n if (InterlaceOffsets[pass] < frame.height) {\n let pixelPos = 0, lineIndex = 0, exit = false;\n while (!exit) {\n const last = code;\n code = readBits(pos, size);\n pos += size + 1;\n if (code === clearCode) {\n size = minCodeSize + 1;\n dic.length = clearCode + 2;\n for (let i = 0; i < dic.length; i++) {\n dic[i] = i < clearCode ? [i] : [];\n }\n }\n else {\n if (code >= dic.length) {\n dic.push(dic[last].concat(dic[last][0]));\n }\n else if (last !== clearCode) {\n dic.push(dic[last].concat(dic[code][0]));\n }\n for (const item of dic[code]) {\n const { r, g, b, a } = getColor(item);\n image.data.set([r, g, b, a], InterlaceOffsets[pass] * frame.width +\n InterlaceSteps[pass] * lineIndex +\n (pixelPos % (frame.width * 4)));\n pixelPos += 4;\n }\n if (dic.length === 1 << size && size < 0xc) {\n size++;\n }\n }\n if (pixelPos === frame.width * 4 * (lineIndex + 1)) {\n lineIndex++;\n if (InterlaceOffsets[pass] + InterlaceSteps[pass] * lineIndex >= frame.height) {\n exit = true;\n }\n }\n }\n }\n progressCallback?.(byteStream.pos / (byteStream.data.length - 1), getFrameIndex(false) + 1, image, { x: frame.left, y: frame.top }, { width: gif.width, height: gif.height });\n }\n frame.image = image;\n frame.bitmap = await createImageBitmap(image);\n }\n else {\n let code = 0, size = minCodeSize + 1, pos = 0, pixelPos = -4, exit = false;\n const dic = [[0]];\n while (!exit) {\n const last = code;\n code = readBits(pos, size);\n pos += size;\n if (code === clearCode) {\n size = minCodeSize + 1;\n dic.length = clearCode + 2;\n for (let i = 0; i < dic.length; i++) {\n dic[i] = i < clearCode ? [i] : [];\n }\n }\n else {\n if (code === clearCode + 1) {\n exit = true;\n break;\n }\n if (code >= dic.length) {\n dic.push(dic[last].concat(dic[last][0]));\n }\n else if (last !== clearCode) {\n dic.push(dic[last].concat(dic[code][0]));\n }\n for (const item of dic[code]) {\n const { r, g, b, a } = getColor(item);\n image.data.set([r, g, b, a], (pixelPos += 4));\n }\n if (dic.length >= 1 << size && size < 0xc) {\n size++;\n }\n }\n }\n frame.image = image;\n frame.bitmap = await createImageBitmap(image);\n progressCallback?.((byteStream.pos + 1) / byteStream.data.length, getFrameIndex(false) + 1, frame.image, { x: frame.left, y: frame.top }, { width: gif.width, height: gif.height });\n }\n}\nasync function parseBlock(byteStream, gif, avgAlpha, getFrameIndex, getTransparencyIndex, progressCallback) {\n switch (byteStream.nextByte()) {\n case 59:\n return true;\n case 44:\n await parseImageBlock(byteStream, gif, avgAlpha, getFrameIndex, getTransparencyIndex, progressCallback);\n break;\n case 33:\n parseExtensionBlock(byteStream, gif, getFrameIndex, getTransparencyIndex);\n break;\n default:\n throw new EvalError(\"undefined block found\");\n }\n return false;\n}\nexport function getGIFLoopAmount(gif) {\n for (const extension of gif.applicationExtensions) {\n if (extension.identifier + extension.authenticationCode !== \"NETSCAPE2.0\") {\n continue;\n }\n return extension.data[1] + (extension.data[2] << 8);\n }\n return NaN;\n}\nexport async function decodeGIF(gifURL, progressCallback, avgAlpha) {\n if (!avgAlpha)\n avgAlpha = false;\n const res = await fetch(gifURL);\n if (!res.ok && res.status === 404) {\n throw new EvalError(\"file not found\");\n }\n const buffer = await res.arrayBuffer();\n const gif = {\n width: 0,\n height: 0,\n totalTime: 0,\n colorRes: 0,\n pixelAspectRatio: 0,\n frames: [],\n sortFlag: false,\n globalColorTable: [],\n backgroundImage: new ImageData(1, 1, { colorSpace: \"srgb\" }),\n comments: [],\n applicationExtensions: [],\n }, byteStream = new ByteStream(new Uint8ClampedArray(buffer));\n if (byteStream.getString(6) !== \"GIF89a\") {\n throw new Error(\"not a supported GIF file\");\n }\n gif.width = byteStream.nextTwoBytes();\n gif.height = byteStream.nextTwoBytes();\n const packedByte = byteStream.nextByte(), globalColorTableFlag = (packedByte & 0x80) === 0x80;\n gif.colorRes = (packedByte & 0x70) >>> 4;\n gif.sortFlag = (packedByte & 8) === 8;\n const globalColorCount = 1 << ((packedByte & 7) + 1), backgroundColorIndex = byteStream.nextByte();\n gif.pixelAspectRatio = byteStream.nextByte();\n if (gif.pixelAspectRatio !== 0) {\n gif.pixelAspectRatio = (gif.pixelAspectRatio + 0xf) / 0x40;\n }\n if (globalColorTableFlag) {\n gif.globalColorTable = parseColorTable(byteStream, globalColorCount);\n }\n const backgroundImage = (() => {\n try {\n return new ImageData(gif.width, gif.height, { colorSpace: \"srgb\" });\n }\n catch (error) {\n if (error instanceof DOMException && error.name === \"IndexSizeError\") {\n return null;\n }\n throw error;\n }\n })();\n if (backgroundImage == null) {\n throw new Error(\"GIF frame size is to large\");\n }\n const { r, g, b } = gif.globalColorTable[backgroundColorIndex];\n backgroundImage.data.set(globalColorTableFlag ? [r, g, b, 255] : [0, 0, 0, 0]);\n for (let i = 4; i < backgroundImage.data.length; i *= 2) {\n backgroundImage.data.copyWithin(i, 0, i);\n }\n gif.backgroundImage = backgroundImage;\n let frameIndex = -1, incrementFrameIndex = true, transparencyIndex = -1;\n const getframeIndex = (increment) => {\n if (increment) {\n incrementFrameIndex = true;\n }\n return frameIndex;\n };\n const getTransparencyIndex = (newValue) => {\n if (newValue != null) {\n transparencyIndex = newValue;\n }\n return transparencyIndex;\n };\n try {\n do {\n if (incrementFrameIndex) {\n gif.frames.push({\n left: 0,\n top: 0,\n width: 0,\n height: 0,\n disposalMethod: 0,\n image: new ImageData(1, 1, { colorSpace: \"srgb\" }),\n plainTextData: null,\n userInputDelayFlag: false,\n delayTime: 0,\n sortFlag: false,\n localColorTable: [],\n reserved: 0,\n GCreserved: 0,\n });\n frameIndex++;\n transparencyIndex = -1;\n incrementFrameIndex = false;\n }\n } while (!(await parseBlock(byteStream, gif, avgAlpha, getframeIndex, getTransparencyIndex, progressCallback)));\n gif.frames.length--;\n for (const frame of gif.frames) {\n if (frame.userInputDelayFlag && frame.delayTime === 0) {\n gif.totalTime = Infinity;\n break;\n }\n gif.totalTime += frame.delayTime;\n }\n return gif;\n }\n catch (error) {\n if (error instanceof EvalError) {\n throw new Error(`error while parsing frame ${frameIndex} \"${error.message}\"`);\n }\n throw error;\n }\n}\nexport function drawGif(data) {\n const { context, radius, particle, delta } = data, image = particle.image;\n if (!image?.gifData || !image.gif) {\n return;\n }\n const offscreenCanvas = new OffscreenCanvas(image.gifData.width, image.gifData.height), offscreenContext = offscreenCanvas.getContext(\"2d\");\n if (!offscreenContext) {\n throw new Error(\"could not create offscreen canvas context\");\n }\n offscreenContext.imageSmoothingQuality = \"low\";\n offscreenContext.imageSmoothingEnabled = false;\n offscreenContext.clearRect(origin.x, origin.y, offscreenCanvas.width, offscreenCanvas.height);\n if (particle.gifLoopCount === undefined) {\n particle.gifLoopCount = image.gifLoopCount ?? defaultLoopCount;\n }\n let frameIndex = particle.gifFrame ?? defaultFrame;\n const pos = { x: -image.gifData.width * half, y: -image.gifData.height * half }, frame = image.gifData.frames[frameIndex];\n if (particle.gifTime === undefined) {\n particle.gifTime = initialTime;\n }\n if (!frame.bitmap) {\n return;\n }\n context.scale(radius / image.gifData.width, radius / image.gifData.height);\n switch (frame.disposalMethod) {\n case 4:\n case 5:\n case 6:\n case 7:\n case 0:\n offscreenContext.drawImage(frame.bitmap, frame.left, frame.top);\n context.drawImage(offscreenCanvas, pos.x, pos.y);\n offscreenContext.clearRect(origin.x, origin.y, offscreenCanvas.width, offscreenCanvas.height);\n break;\n case 1:\n offscreenContext.drawImage(frame.bitmap, frame.left, frame.top);\n context.drawImage(offscreenCanvas, pos.x, pos.y);\n break;\n case 2:\n offscreenContext.drawImage(frame.bitmap, frame.left, frame.top);\n context.drawImage(offscreenCanvas, pos.x, pos.y);\n offscreenContext.clearRect(origin.x, origin.y, offscreenCanvas.width, offscreenCanvas.height);\n if (!image.gifData.globalColorTable.length) {\n offscreenContext.putImageData(image.gifData.frames[firstIndex].image, pos.x + frame.left, pos.y + frame.top);\n }\n else {\n offscreenContext.putImageData(image.gifData.backgroundImage, pos.x, pos.y);\n }\n break;\n case 3:\n {\n const previousImageData = offscreenContext.getImageData(origin.x, origin.y, offscreenCanvas.width, offscreenCanvas.height);\n offscreenContext.drawImage(frame.bitmap, frame.left, frame.top);\n context.drawImage(offscreenCanvas, pos.x, pos.y);\n offscreenContext.clearRect(origin.x, origin.y, offscreenCanvas.width, offscreenCanvas.height);\n offscreenContext.putImageData(previousImageData, origin.x, origin.y);\n }\n break;\n }\n particle.gifTime += delta.value;\n if (particle.gifTime > frame.delayTime) {\n particle.gifTime -= frame.delayTime;\n if (++frameIndex >= image.gifData.frames.length) {\n if (--particle.gifLoopCount <= defaultLoopCount) {\n return;\n }\n frameIndex = firstIndex;\n offscreenContext.clearRect(origin.x, origin.y, offscreenCanvas.width, offscreenCanvas.height);\n }\n particle.gifFrame = frameIndex;\n }\n context.scale(image.gifData.width / radius, image.gifData.height / radius);\n}\nexport async function loadGifImage(image) {\n if (image.type !== \"gif\") {\n const { loadImage } = await import(\"../Utils.js\");\n await loadImage(image);\n return;\n }\n image.loading = true;\n try {\n image.gifData = await decodeGIF(image.source);\n image.gifLoopCount = getGIFLoopAmount(image.gifData) ?? defaultLoopCount;\n if (!image.gifLoopCount) {\n image.gifLoopCount = Infinity;\n }\n }\n catch {\n image.error = true;\n }\n image.loading = false;\n}\n","import { errorPrefix } from \"@tsparticles/engine\";\nimport { replaceImageColor } from \"./Utils.js\";\nimport { drawGif } from \"./GifUtils/Utils.js\";\nconst double = 2, defaultAlpha = 1, sides = 12, defaultRatio = 1;\nexport class ImageDrawer {\n constructor(engine) {\n this.loadImageShape = async (imageShape) => {\n if (!this._engine.loadImage) {\n throw new Error(`${errorPrefix} image shape not initialized`);\n }\n await this._engine.loadImage({\n gif: imageShape.gif,\n name: imageShape.name,\n replaceColor: imageShape.replaceColor ?? false,\n src: imageShape.src,\n });\n };\n this._engine = engine;\n }\n addImage(image) {\n if (!this._engine.images) {\n this._engine.images = [];\n }\n this._engine.images.push(image);\n }\n draw(data) {\n const { context, radius, particle, opacity } = data, image = particle.image, element = image?.element;\n if (!image) {\n return;\n }\n context.globalAlpha = opacity;\n if (image.gif && image.gifData) {\n drawGif(data);\n }\n else if (element) {\n const ratio = image.ratio, pos = {\n x: -radius,\n y: -radius,\n }, diameter = radius * double;\n context.drawImage(element, pos.x, pos.y, diameter, diameter / ratio);\n }\n context.globalAlpha = defaultAlpha;\n }\n getSidesCount() {\n return sides;\n }\n async init(container) {\n const options = container.actualOptions;\n if (!options.preload || !this._engine.loadImage) {\n return;\n }\n for (const imageData of options.preload) {\n await this._engine.loadImage(imageData);\n }\n }\n loadShape(particle) {\n if (particle.shape !== \"image\" && particle.shape !== \"images\") {\n return;\n }\n if (!this._engine.images) {\n this._engine.images = [];\n }\n const imageData = particle.shapeData;\n if (!imageData) {\n return;\n }\n const image = this._engine.images.find((t) => t.name === imageData.name || t.source === imageData.src);\n if (!image) {\n void this.loadImageShape(imageData).then(() => {\n this.loadShape(particle);\n });\n }\n }\n particleInit(container, particle) {\n if (particle.shape !== \"image\" && particle.shape !== \"images\") {\n return;\n }\n if (!this._engine.images) {\n this._engine.images = [];\n }\n const images = this._engine.images, imageData = particle.shapeData;\n if (!imageData) {\n return;\n }\n const color = particle.getFillColor(), image = images.find((t) => t.name === imageData.name || t.source === imageData.src);\n if (!image) {\n return;\n }\n const replaceColor = imageData.replaceColor ?? image.replaceColor;\n if (image.loading) {\n setTimeout(() => {\n this.particleInit(container, particle);\n });\n return;\n }\n void (async () => {\n let imageRes;\n if (image.svgData && color) {\n imageRes = await replaceImageColor(image, imageData, color, particle);\n }\n else {\n imageRes = {\n color,\n data: image,\n element: image.element,\n gif: image.gif,\n gifData: image.gifData,\n gifLoopCount: image.gifLoopCount,\n loaded: true,\n ratio: imageData.width && imageData.height\n ? imageData.width / imageData.height\n : image.ratio ?? defaultRatio,\n replaceColor: replaceColor,\n source: imageData.src,\n };\n }\n if (!imageRes.ratio) {\n imageRes.ratio = 1;\n }\n const fill = imageData.fill ?? particle.shapeFill, close = imageData.close ?? particle.shapeClose, imageShape = {\n image: imageRes,\n fill,\n close,\n };\n particle.image = imageShape.image;\n particle.shapeFill = imageShape.fill;\n particle.shapeClose = imageShape.close;\n })();\n }\n}\n"],"names":["InterlaceOffsets","InterlaceSteps","ByteStream","constructor","bytes","this","pos","data","Uint8ClampedArray","getString","count","slice","length","reduce","acc","curr","String","fromCharCode","nextByte","nextTwoBytes","readSubBlocks","blockString","size","readSubBlocksBin","len","offset","blockData","Uint8Array","i","skipSubBlocks","increment","noData","origin","x","y","defaultFrame","half","initialTime","firstIndex","defaultLoopCount","parseColorTable","byteStream","colors","push","r","g","b","async","parseBlock","gif","avgAlpha","getFrameIndex","getTransparencyIndex","progressCallback","frame","frames","left","top","width","height","packedByte","localColorTableFlag","interlacedFlag","sortFlag","reserved","localColorCount","localColorTable","getColor","index","globalColorTable","a","image","ImageData","colorSpace","error","DOMException","name","EvalError","minCodeSize","imageData","clearCode","readBits","bytePos","bitPos","code","dic","pass","pixelPos","lineIndex","exit","last","concat","item","set","bitmap","createImageBitmap","parseImageBlock","GCreserved","disposalMethod","userInputDelayFlag","transparencyFlag","delayTime","transparencyIndex","applicationExtension","identifier","authenticationCode","applicationExtensions","comments","plainTextData","charSize","foregroundColor","backgroundColor","text","parseExtensionBlock","drawGif","_particle$gifFrame","context","radius","particle","delta","gifData","offscreenCanvas","OffscreenCanvas","offscreenContext","getContext","Error","_image$gifLoopCount","imageSmoothingQuality","imageSmoothingEnabled","clearRect","undefined","gifLoopCount","frameIndex","gifFrame","gifTime","scale","drawImage","putImageData","backgroundImage","previousImageData","getImageData","value","loadGifImage","type","loading","_getGIFLoopAmount","gifURL","res","fetch","ok","status","buffer","arrayBuffer","totalTime","colorRes","pixelAspectRatio","globalColorTableFlag","globalColorCount","backgroundColorIndex","copyWithin","incrementFrameIndex","getframeIndex","newValue","Infinity","message","decodeGIF","source","extension","NaN","getGIFLoopAmount","loadImage","ImageDrawer","engine","loadImageShape","_imageShape$replaceCo","_engine","errorPrefix","imageShape","replaceColor","src","addImage","images","draw","opacity","element","globalAlpha","ratio","diameter","getSidesCount","init","container","options","actualOptions","preload","loadShape","shape","shapeData","find","t","then","particleInit","_imageData$replaceCol","color","getFillColor","setTimeout","_imageData$fill","_imageData$close","imageRes","_image$ratio","svgData","replaceImageColor","loaded","fill","shapeFill","close","shapeClose"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/4752.ad8dc7a8.chunk.js","mappings":"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","sources":["../node_modules/@tsparticles/shape-image/browser/GifUtils/Constants.js","../node_modules/@tsparticles/shape-image/browser/GifUtils/ByteStream.js","../node_modules/@tsparticles/shape-image/browser/GifUtils/Utils.js","../node_modules/@tsparticles/shape-image/browser/ImageDrawer.js"],"sourcesContent":["export const InterlaceOffsets = [0, 4, 2, 1];\nexport const InterlaceSteps = [8, 8, 4, 2];\n","export class ByteStream {\n constructor(bytes) {\n this.pos = 0;\n this.data = new Uint8ClampedArray(bytes);\n }\n getString(count) {\n const slice = this.data.slice(this.pos, this.pos + count);\n this.pos += slice.length;\n return slice.reduce((acc, curr) => acc + String.fromCharCode(curr), \"\");\n }\n nextByte() {\n return this.data[this.pos++];\n }\n nextTwoBytes() {\n const increment = 2, previous = 1, shift = 8;\n this.pos += increment;\n return this.data[this.pos - increment] + (this.data[this.pos - previous] << shift);\n }\n readSubBlocks() {\n let blockString = \"\", size = 0;\n const minCount = 0, emptySize = 0;\n do {\n size = this.data[this.pos++];\n for (let count = size; --count >= minCount; blockString += String.fromCharCode(this.data[this.pos++])) {\n }\n } while (size !== emptySize);\n return blockString;\n }\n readSubBlocksBin() {\n let size = this.data[this.pos], len = 0;\n const emptySize = 0, increment = 1;\n for (let offset = 0; size !== emptySize; offset += size + increment, size = this.data[this.pos + offset]) {\n len += size;\n }\n const blockData = new Uint8Array(len);\n size = this.data[this.pos++];\n for (let i = 0; size !== emptySize; size = this.data[this.pos++]) {\n for (let count = size; --count >= emptySize; blockData[i++] = this.data[this.pos++]) {\n }\n }\n return blockData;\n }\n skipSubBlocks() {\n for (const increment = 1, noData = 0; this.data[this.pos] !== noData; this.pos += this.data[this.pos] + increment) {\n }\n this.pos++;\n }\n}\n","import { InterlaceOffsets, InterlaceSteps } from \"./Constants.js\";\nimport { ByteStream } from \"./ByteStream.js\";\nconst origin = {\n x: 0,\n y: 0,\n}, defaultFrame = 0, half = 0.5, initialTime = 0, firstIndex = 0, defaultLoopCount = 0;\nfunction parseColorTable(byteStream, count) {\n const colors = [];\n for (let i = 0; i < count; i++) {\n colors.push({\n r: byteStream.data[byteStream.pos],\n g: byteStream.data[byteStream.pos + 1],\n b: byteStream.data[byteStream.pos + 2],\n });\n byteStream.pos += 3;\n }\n return colors;\n}\nfunction parseExtensionBlock(byteStream, gif, getFrameIndex, getTransparencyIndex) {\n switch (byteStream.nextByte()) {\n case 249: {\n const frame = gif.frames[getFrameIndex(false)];\n byteStream.pos++;\n const packedByte = byteStream.nextByte();\n frame.GCreserved = (packedByte & 0xe0) >>> 5;\n frame.disposalMethod = (packedByte & 0x1c) >>> 2;\n frame.userInputDelayFlag = (packedByte & 2) === 2;\n const transparencyFlag = (packedByte & 1) === 1;\n frame.delayTime = byteStream.nextTwoBytes() * 0xa;\n const transparencyIndex = byteStream.nextByte();\n if (transparencyFlag) {\n getTransparencyIndex(transparencyIndex);\n }\n byteStream.pos++;\n break;\n }\n case 255: {\n byteStream.pos++;\n const applicationExtension = {\n identifier: byteStream.getString(8),\n authenticationCode: byteStream.getString(3),\n data: byteStream.readSubBlocksBin(),\n };\n gif.applicationExtensions.push(applicationExtension);\n break;\n }\n case 254: {\n gif.comments.push([getFrameIndex(false), byteStream.readSubBlocks()]);\n break;\n }\n case 1: {\n if (gif.globalColorTable.length === 0) {\n throw new EvalError(\"plain text extension without global color table\");\n }\n byteStream.pos++;\n gif.frames[getFrameIndex(false)].plainTextData = {\n left: byteStream.nextTwoBytes(),\n top: byteStream.nextTwoBytes(),\n width: byteStream.nextTwoBytes(),\n height: byteStream.nextTwoBytes(),\n charSize: {\n width: byteStream.nextTwoBytes(),\n height: byteStream.nextTwoBytes(),\n },\n foregroundColor: byteStream.nextByte(),\n backgroundColor: byteStream.nextByte(),\n text: byteStream.readSubBlocks(),\n };\n break;\n }\n default:\n byteStream.skipSubBlocks();\n break;\n }\n}\nasync function parseImageBlock(byteStream, gif, avgAlpha, getFrameIndex, getTransparencyIndex, progressCallback) {\n const frame = gif.frames[getFrameIndex(true)];\n frame.left = byteStream.nextTwoBytes();\n frame.top = byteStream.nextTwoBytes();\n frame.width = byteStream.nextTwoBytes();\n frame.height = byteStream.nextTwoBytes();\n const packedByte = byteStream.nextByte(), localColorTableFlag = (packedByte & 0x80) === 0x80, interlacedFlag = (packedByte & 0x40) === 0x40;\n frame.sortFlag = (packedByte & 0x20) === 0x20;\n frame.reserved = (packedByte & 0x18) >>> 3;\n const localColorCount = 1 << ((packedByte & 7) + 1);\n if (localColorTableFlag) {\n frame.localColorTable = parseColorTable(byteStream, localColorCount);\n }\n const getColor = (index) => {\n const { r, g, b } = (localColorTableFlag ? frame.localColorTable : gif.globalColorTable)[index];\n if (index !== getTransparencyIndex(null)) {\n return { r, g, b, a: 255 };\n }\n return { r, g, b, a: avgAlpha ? ~~((r + g + b) / 3) : 0 };\n };\n const image = (() => {\n try {\n return new ImageData(frame.width, frame.height, { colorSpace: \"srgb\" });\n }\n catch (error) {\n if (error instanceof DOMException && error.name === \"IndexSizeError\") {\n return null;\n }\n throw error;\n }\n })();\n if (image == null) {\n throw new EvalError(\"GIF frame size is to large\");\n }\n const minCodeSize = byteStream.nextByte(), imageData = byteStream.readSubBlocksBin(), clearCode = 1 << minCodeSize;\n const readBits = (pos, len) => {\n const bytePos = pos >>> 3, bitPos = pos & 7;\n return (((imageData[bytePos] + (imageData[bytePos + 1] << 8) + (imageData[bytePos + 2] << 16)) &\n (((1 << len) - 1) << bitPos)) >>>\n bitPos);\n };\n if (interlacedFlag) {\n for (let code = 0, size = minCodeSize + 1, pos = 0, dic = [[0]], pass = 0; pass < 4; pass++) {\n if (InterlaceOffsets[pass] < frame.height) {\n let pixelPos = 0, lineIndex = 0, exit = false;\n while (!exit) {\n const last = code;\n code = readBits(pos, size);\n pos += size + 1;\n if (code === clearCode) {\n size = minCodeSize + 1;\n dic.length = clearCode + 2;\n for (let i = 0; i < dic.length; i++) {\n dic[i] = i < clearCode ? [i] : [];\n }\n }\n else {\n if (code >= dic.length) {\n dic.push(dic[last].concat(dic[last][0]));\n }\n else if (last !== clearCode) {\n dic.push(dic[last].concat(dic[code][0]));\n }\n for (const item of dic[code]) {\n const { r, g, b, a } = getColor(item);\n image.data.set([r, g, b, a], InterlaceOffsets[pass] * frame.width +\n InterlaceSteps[pass] * lineIndex +\n (pixelPos % (frame.width * 4)));\n pixelPos += 4;\n }\n if (dic.length === 1 << size && size < 0xc) {\n size++;\n }\n }\n if (pixelPos === frame.width * 4 * (lineIndex + 1)) {\n lineIndex++;\n if (InterlaceOffsets[pass] + InterlaceSteps[pass] * lineIndex >= frame.height) {\n exit = true;\n }\n }\n }\n }\n progressCallback?.(byteStream.pos / (byteStream.data.length - 1), getFrameIndex(false) + 1, image, { x: frame.left, y: frame.top }, { width: gif.width, height: gif.height });\n }\n frame.image = image;\n frame.bitmap = await createImageBitmap(image);\n }\n else {\n let code = 0, size = minCodeSize + 1, pos = 0, pixelPos = -4, exit = false;\n const dic = [[0]];\n while (!exit) {\n const last = code;\n code = readBits(pos, size);\n pos += size;\n if (code === clearCode) {\n size = minCodeSize + 1;\n dic.length = clearCode + 2;\n for (let i = 0; i < dic.length; i++) {\n dic[i] = i < clearCode ? [i] : [];\n }\n }\n else {\n if (code === clearCode + 1) {\n exit = true;\n break;\n }\n if (code >= dic.length) {\n dic.push(dic[last].concat(dic[last][0]));\n }\n else if (last !== clearCode) {\n dic.push(dic[last].concat(dic[code][0]));\n }\n for (const item of dic[code]) {\n const { r, g, b, a } = getColor(item);\n image.data.set([r, g, b, a], (pixelPos += 4));\n }\n if (dic.length >= 1 << size && size < 0xc) {\n size++;\n }\n }\n }\n frame.image = image;\n frame.bitmap = await createImageBitmap(image);\n progressCallback?.((byteStream.pos + 1) / byteStream.data.length, getFrameIndex(false) + 1, frame.image, { x: frame.left, y: frame.top }, { width: gif.width, height: gif.height });\n }\n}\nasync function parseBlock(byteStream, gif, avgAlpha, getFrameIndex, getTransparencyIndex, progressCallback) {\n switch (byteStream.nextByte()) {\n case 59:\n return true;\n case 44:\n await parseImageBlock(byteStream, gif, avgAlpha, getFrameIndex, getTransparencyIndex, progressCallback);\n break;\n case 33:\n parseExtensionBlock(byteStream, gif, getFrameIndex, getTransparencyIndex);\n break;\n default:\n throw new EvalError(\"undefined block found\");\n }\n return false;\n}\nexport function getGIFLoopAmount(gif) {\n for (const extension of gif.applicationExtensions) {\n if (extension.identifier + extension.authenticationCode !== \"NETSCAPE2.0\") {\n continue;\n }\n return extension.data[1] + (extension.data[2] << 8);\n }\n return NaN;\n}\nexport async function decodeGIF(gifURL, progressCallback, avgAlpha) {\n if (!avgAlpha)\n avgAlpha = false;\n const res = await fetch(gifURL);\n if (!res.ok && res.status === 404) {\n throw new EvalError(\"file not found\");\n }\n const buffer = await res.arrayBuffer();\n const gif = {\n width: 0,\n height: 0,\n totalTime: 0,\n colorRes: 0,\n pixelAspectRatio: 0,\n frames: [],\n sortFlag: false,\n globalColorTable: [],\n backgroundImage: new ImageData(1, 1, { colorSpace: \"srgb\" }),\n comments: [],\n applicationExtensions: [],\n }, byteStream = new ByteStream(new Uint8ClampedArray(buffer));\n if (byteStream.getString(6) !== \"GIF89a\") {\n throw new Error(\"not a supported GIF file\");\n }\n gif.width = byteStream.nextTwoBytes();\n gif.height = byteStream.nextTwoBytes();\n const packedByte = byteStream.nextByte(), globalColorTableFlag = (packedByte & 0x80) === 0x80;\n gif.colorRes = (packedByte & 0x70) >>> 4;\n gif.sortFlag = (packedByte & 8) === 8;\n const globalColorCount = 1 << ((packedByte & 7) + 1), backgroundColorIndex = byteStream.nextByte();\n gif.pixelAspectRatio = byteStream.nextByte();\n if (gif.pixelAspectRatio !== 0) {\n gif.pixelAspectRatio = (gif.pixelAspectRatio + 0xf) / 0x40;\n }\n if (globalColorTableFlag) {\n gif.globalColorTable = parseColorTable(byteStream, globalColorCount);\n }\n const backgroundImage = (() => {\n try {\n return new ImageData(gif.width, gif.height, { colorSpace: \"srgb\" });\n }\n catch (error) {\n if (error instanceof DOMException && error.name === \"IndexSizeError\") {\n return null;\n }\n throw error;\n }\n })();\n if (backgroundImage == null) {\n throw new Error(\"GIF frame size is to large\");\n }\n const { r, g, b } = gif.globalColorTable[backgroundColorIndex];\n backgroundImage.data.set(globalColorTableFlag ? [r, g, b, 255] : [0, 0, 0, 0]);\n for (let i = 4; i < backgroundImage.data.length; i *= 2) {\n backgroundImage.data.copyWithin(i, 0, i);\n }\n gif.backgroundImage = backgroundImage;\n let frameIndex = -1, incrementFrameIndex = true, transparencyIndex = -1;\n const getframeIndex = (increment) => {\n if (increment) {\n incrementFrameIndex = true;\n }\n return frameIndex;\n };\n const getTransparencyIndex = (newValue) => {\n if (newValue != null) {\n transparencyIndex = newValue;\n }\n return transparencyIndex;\n };\n try {\n do {\n if (incrementFrameIndex) {\n gif.frames.push({\n left: 0,\n top: 0,\n width: 0,\n height: 0,\n disposalMethod: 0,\n image: new ImageData(1, 1, { colorSpace: \"srgb\" }),\n plainTextData: null,\n userInputDelayFlag: false,\n delayTime: 0,\n sortFlag: false,\n localColorTable: [],\n reserved: 0,\n GCreserved: 0,\n });\n frameIndex++;\n transparencyIndex = -1;\n incrementFrameIndex = false;\n }\n } while (!(await parseBlock(byteStream, gif, avgAlpha, getframeIndex, getTransparencyIndex, progressCallback)));\n gif.frames.length--;\n for (const frame of gif.frames) {\n if (frame.userInputDelayFlag && frame.delayTime === 0) {\n gif.totalTime = Infinity;\n break;\n }\n gif.totalTime += frame.delayTime;\n }\n return gif;\n }\n catch (error) {\n if (error instanceof EvalError) {\n throw new Error(`error while parsing frame ${frameIndex} \"${error.message}\"`);\n }\n throw error;\n }\n}\nexport function drawGif(data) {\n const { context, radius, particle, delta } = data, image = particle.image;\n if (!image?.gifData || !image.gif) {\n return;\n }\n const offscreenCanvas = new OffscreenCanvas(image.gifData.width, image.gifData.height), offscreenContext = offscreenCanvas.getContext(\"2d\");\n if (!offscreenContext) {\n throw new Error(\"could not create offscreen canvas context\");\n }\n offscreenContext.imageSmoothingQuality = \"low\";\n offscreenContext.imageSmoothingEnabled = false;\n offscreenContext.clearRect(origin.x, origin.y, offscreenCanvas.width, offscreenCanvas.height);\n if (particle.gifLoopCount === undefined) {\n particle.gifLoopCount = image.gifLoopCount ?? defaultLoopCount;\n }\n let frameIndex = particle.gifFrame ?? defaultFrame;\n const pos = { x: -image.gifData.width * half, y: -image.gifData.height * half }, frame = image.gifData.frames[frameIndex];\n if (particle.gifTime === undefined) {\n particle.gifTime = initialTime;\n }\n if (!frame.bitmap) {\n return;\n }\n context.scale(radius / image.gifData.width, radius / image.gifData.height);\n switch (frame.disposalMethod) {\n case 4:\n case 5:\n case 6:\n case 7:\n case 0:\n offscreenContext.drawImage(frame.bitmap, frame.left, frame.top);\n context.drawImage(offscreenCanvas, pos.x, pos.y);\n offscreenContext.clearRect(origin.x, origin.y, offscreenCanvas.width, offscreenCanvas.height);\n break;\n case 1:\n offscreenContext.drawImage(frame.bitmap, frame.left, frame.top);\n context.drawImage(offscreenCanvas, pos.x, pos.y);\n break;\n case 2:\n offscreenContext.drawImage(frame.bitmap, frame.left, frame.top);\n context.drawImage(offscreenCanvas, pos.x, pos.y);\n offscreenContext.clearRect(origin.x, origin.y, offscreenCanvas.width, offscreenCanvas.height);\n if (!image.gifData.globalColorTable.length) {\n offscreenContext.putImageData(image.gifData.frames[firstIndex].image, pos.x + frame.left, pos.y + frame.top);\n }\n else {\n offscreenContext.putImageData(image.gifData.backgroundImage, pos.x, pos.y);\n }\n break;\n case 3:\n {\n const previousImageData = offscreenContext.getImageData(origin.x, origin.y, offscreenCanvas.width, offscreenCanvas.height);\n offscreenContext.drawImage(frame.bitmap, frame.left, frame.top);\n context.drawImage(offscreenCanvas, pos.x, pos.y);\n offscreenContext.clearRect(origin.x, origin.y, offscreenCanvas.width, offscreenCanvas.height);\n offscreenContext.putImageData(previousImageData, origin.x, origin.y);\n }\n break;\n }\n particle.gifTime += delta.value;\n if (particle.gifTime > frame.delayTime) {\n particle.gifTime -= frame.delayTime;\n if (++frameIndex >= image.gifData.frames.length) {\n if (--particle.gifLoopCount <= defaultLoopCount) {\n return;\n }\n frameIndex = firstIndex;\n offscreenContext.clearRect(origin.x, origin.y, offscreenCanvas.width, offscreenCanvas.height);\n }\n particle.gifFrame = frameIndex;\n }\n context.scale(image.gifData.width / radius, image.gifData.height / radius);\n}\nexport async function loadGifImage(image) {\n if (image.type !== \"gif\") {\n const { loadImage } = await import(\"../Utils.js\");\n await loadImage(image);\n return;\n }\n image.loading = true;\n try {\n image.gifData = await decodeGIF(image.source);\n image.gifLoopCount = getGIFLoopAmount(image.gifData) ?? defaultLoopCount;\n if (!image.gifLoopCount) {\n image.gifLoopCount = Infinity;\n }\n }\n catch {\n image.error = true;\n }\n image.loading = false;\n}\n","import { errorPrefix } from \"@tsparticles/engine\";\nimport { replaceImageColor } from \"./Utils.js\";\nimport { drawGif } from \"./GifUtils/Utils.js\";\nconst double = 2, defaultAlpha = 1, sides = 12, defaultRatio = 1;\nexport class ImageDrawer {\n constructor(engine) {\n this.loadImageShape = async (imageShape) => {\n if (!this._engine.loadImage) {\n throw new Error(`${errorPrefix} image shape not initialized`);\n }\n await this._engine.loadImage({\n gif: imageShape.gif,\n name: imageShape.name,\n replaceColor: imageShape.replaceColor ?? false,\n src: imageShape.src,\n });\n };\n this._engine = engine;\n }\n addImage(image) {\n if (!this._engine.images) {\n this._engine.images = [];\n }\n this._engine.images.push(image);\n }\n draw(data) {\n const { context, radius, particle, opacity } = data, image = particle.image, element = image?.element;\n if (!image) {\n return;\n }\n context.globalAlpha = opacity;\n if (image.gif && image.gifData) {\n drawGif(data);\n }\n else if (element) {\n const ratio = image.ratio, pos = {\n x: -radius,\n y: -radius,\n }, diameter = radius * double;\n context.drawImage(element, pos.x, pos.y, diameter, diameter / ratio);\n }\n context.globalAlpha = defaultAlpha;\n }\n getSidesCount() {\n return sides;\n }\n async init(container) {\n const options = container.actualOptions;\n if (!options.preload || !this._engine.loadImage) {\n return;\n }\n for (const imageData of options.preload) {\n await this._engine.loadImage(imageData);\n }\n }\n loadShape(particle) {\n if (particle.shape !== \"image\" && particle.shape !== \"images\") {\n return;\n }\n if (!this._engine.images) {\n this._engine.images = [];\n }\n const imageData = particle.shapeData;\n if (!imageData) {\n return;\n }\n const image = this._engine.images.find((t) => t.name === imageData.name || t.source === imageData.src);\n if (!image) {\n void this.loadImageShape(imageData).then(() => {\n this.loadShape(particle);\n });\n }\n }\n particleInit(container, particle) {\n if (particle.shape !== \"image\" && particle.shape !== \"images\") {\n return;\n }\n if (!this._engine.images) {\n this._engine.images = [];\n }\n const images = this._engine.images, imageData = particle.shapeData;\n if (!imageData) {\n return;\n }\n const color = particle.getFillColor(), image = images.find((t) => t.name === imageData.name || t.source === imageData.src);\n if (!image) {\n return;\n }\n const replaceColor = imageData.replaceColor ?? image.replaceColor;\n if (image.loading) {\n setTimeout(() => {\n this.particleInit(container, particle);\n });\n return;\n }\n void (async () => {\n let imageRes;\n if (image.svgData && color) {\n imageRes = await replaceImageColor(image, imageData, color, particle);\n }\n else {\n imageRes = {\n color,\n data: image,\n element: image.element,\n gif: image.gif,\n gifData: image.gifData,\n gifLoopCount: image.gifLoopCount,\n loaded: true,\n ratio: imageData.width && imageData.height\n ? imageData.width / imageData.height\n : image.ratio ?? defaultRatio,\n replaceColor: replaceColor,\n source: imageData.src,\n };\n }\n if (!imageRes.ratio) {\n imageRes.ratio = 1;\n }\n const fill = imageData.fill ?? particle.shapeFill, close = imageData.close ?? particle.shapeClose, imageShape = {\n image: imageRes,\n fill,\n close,\n };\n particle.image = imageShape.image;\n particle.shapeFill = imageShape.fill;\n particle.shapeClose = imageShape.close;\n })();\n }\n}\n"],"names":["InterlaceOffsets","InterlaceSteps","ByteStream","constructor","bytes","this","pos","data","Uint8ClampedArray","getString","count","slice","length","reduce","acc","curr","String","fromCharCode","nextByte","nextTwoBytes","readSubBlocks","blockString","size","readSubBlocksBin","len","offset","blockData","Uint8Array","i","skipSubBlocks","increment","noData","origin","x","y","defaultFrame","half","initialTime","firstIndex","defaultLoopCount","parseColorTable","byteStream","colors","push","r","g","b","async","parseBlock","gif","avgAlpha","getFrameIndex","getTransparencyIndex","progressCallback","frame","frames","left","top","width","height","packedByte","localColorTableFlag","interlacedFlag","sortFlag","reserved","localColorCount","localColorTable","getColor","index","globalColorTable","a","image","ImageData","colorSpace","error","DOMException","name","EvalError","minCodeSize","imageData","clearCode","readBits","bytePos","bitPos","code","dic","pass","pixelPos","lineIndex","exit","last","concat","item","set","bitmap","createImageBitmap","parseImageBlock","GCreserved","disposalMethod","userInputDelayFlag","transparencyFlag","delayTime","transparencyIndex","applicationExtension","identifier","authenticationCode","applicationExtensions","comments","plainTextData","charSize","foregroundColor","backgroundColor","text","parseExtensionBlock","drawGif","_particle$gifFrame","context","radius","particle","delta","gifData","offscreenCanvas","OffscreenCanvas","offscreenContext","getContext","Error","_image$gifLoopCount","imageSmoothingQuality","imageSmoothingEnabled","clearRect","undefined","gifLoopCount","frameIndex","gifFrame","gifTime","scale","drawImage","putImageData","backgroundImage","previousImageData","getImageData","value","loadGifImage","type","loading","_getGIFLoopAmount","gifURL","res","fetch","ok","status","buffer","arrayBuffer","totalTime","colorRes","pixelAspectRatio","globalColorTableFlag","globalColorCount","backgroundColorIndex","copyWithin","incrementFrameIndex","getframeIndex","newValue","Infinity","message","decodeGIF","source","extension","NaN","getGIFLoopAmount","loadImage","ImageDrawer","engine","loadImageShape","_imageShape$replaceCo","_engine","errorPrefix","imageShape","replaceColor","src","addImage","images","draw","opacity","element","globalAlpha","ratio","diameter","getSidesCount","init","container","options","actualOptions","preload","loadShape","shape","shapeData","find","t","then","particleInit","_imageData$replaceCol","color","getFillColor","setTimeout","_imageData$fill","_imageData$close","imageRes","_image$ratio","svgData","replaceImageColor","loaded","fill","shapeFill","close","shapeClose"],"sourceRoot":""} \ No newline at end of file diff --git a/build/static/js/4843.3972fd3d.chunk.js b/build/static/js/4843.3972fd3d.chunk.js deleted file mode 100644 index 19a41a0..0000000 --- a/build/static/js/4843.3972fd3d.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkclient=self.webpackChunkclient||[]).push([[4843],{4843:(e,i,s)=>{s.d(i,{ImagePreloaderPlugin:()=>r});class o{constructor(){this.src="",this.gif=!1}load(e){e&&(void 0!==e.gif&&(this.gif=e.gif),void 0!==e.height&&(this.height=e.height),void 0!==e.name&&(this.name=e.name),void 0!==e.replaceColor&&(this.replaceColor=e.replaceColor),void 0!==e.src&&(this.src=e.src),void 0!==e.width&&(this.width=e.width))}}class r{constructor(e){this.id="imagePreloader",this._engine=e}async getPlugin(){return await Promise.resolve(),{}}loadOptions(e,i){if(null===i||void 0===i||!i.preload)return;e.preload||(e.preload=[]);const s=e.preload;for(const r of i.preload){const e=s.find((e=>e.name===r.name||e.src===r.src));if(e)e.load(r);else{const e=new o;e.load(r),s.push(e)}}}needsPlugin(){return!0}}}}]); -//# sourceMappingURL=4843.3972fd3d.chunk.js.map \ No newline at end of file diff --git a/build/static/js/4843.7d91a860.chunk.js b/build/static/js/4843.7d91a860.chunk.js new file mode 100644 index 0000000..a3148e2 --- /dev/null +++ b/build/static/js/4843.7d91a860.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkresview=self.webpackChunkresview||[]).push([[4843],{4843:(e,i,s)=>{s.d(i,{ImagePreloaderPlugin:()=>r});class o{constructor(){this.src="",this.gif=!1}load(e){e&&(void 0!==e.gif&&(this.gif=e.gif),void 0!==e.height&&(this.height=e.height),void 0!==e.name&&(this.name=e.name),void 0!==e.replaceColor&&(this.replaceColor=e.replaceColor),void 0!==e.src&&(this.src=e.src),void 0!==e.width&&(this.width=e.width))}}class r{constructor(e){this.id="imagePreloader",this._engine=e}async getPlugin(){return await Promise.resolve(),{}}loadOptions(e,i){if(null===i||void 0===i||!i.preload)return;e.preload||(e.preload=[]);const s=e.preload;for(const r of i.preload){const e=s.find((e=>e.name===r.name||e.src===r.src));if(e)e.load(r);else{const e=new o;e.load(r),s.push(e)}}}needsPlugin(){return!0}}}}]); +//# sourceMappingURL=4843.7d91a860.chunk.js.map \ No newline at end of file diff --git a/build/static/js/4843.3972fd3d.chunk.js.map b/build/static/js/4843.7d91a860.chunk.js.map similarity index 95% rename from build/static/js/4843.3972fd3d.chunk.js.map rename to build/static/js/4843.7d91a860.chunk.js.map index 6b89035..6785d21 100644 --- a/build/static/js/4843.3972fd3d.chunk.js.map +++ b/build/static/js/4843.7d91a860.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/4843.3972fd3d.chunk.js","mappings":"oIAAO,MAAMA,EACTC,WAAAA,GACIC,KAAKC,IAAM,GACXD,KAAKE,KAAM,CACf,CACAC,IAAAA,CAAKC,GACIA,SAGYC,IAAbD,EAAKF,MACLF,KAAKE,IAAME,EAAKF,UAEAG,IAAhBD,EAAKE,SACLN,KAAKM,OAASF,EAAKE,aAELD,IAAdD,EAAKG,OACLP,KAAKO,KAAOH,EAAKG,WAEKF,IAAtBD,EAAKI,eACLR,KAAKQ,aAAeJ,EAAKI,mBAEZH,IAAbD,EAAKH,MACLD,KAAKC,IAAMG,EAAKH,UAEDI,IAAfD,EAAKK,QACLT,KAAKS,MAAQL,EAAKK,OAE1B,EC1BG,MAAMC,EACTX,WAAAA,CAAYY,GACRX,KAAKY,GAAK,iBACVZ,KAAKa,QAAUF,CACnB,CACA,eAAMG,GAEF,aADMC,QAAQC,UACP,CAAC,CACZ,CACAC,WAAAA,CAAYC,EAASC,GACjB,GAAW,OAANA,QAAM,IAANA,IAAAA,EAAQC,QACT,OAECF,EAAQE,UACTF,EAAQE,QAAU,IAEtB,MAAMC,EAAiBH,EAAQE,QAC/B,IAAK,MAAME,KAAQH,EAAOC,QAAS,CAC/B,MAAMG,EAAWF,EAAeG,MAAMC,GAAMA,EAAElB,OAASe,EAAKf,MAAQkB,EAAExB,MAAQqB,EAAKrB,MACnF,GAAIsB,EACAA,EAASpB,KAAKmB,OAEb,CACD,MAAMF,EAAU,IAAItB,EACpBsB,EAAQjB,KAAKmB,GACbD,EAAeK,KAAKN,EACxB,CACJ,CACJ,CACAO,WAAAA,GACI,OAAO,CACX,E","sources":["../node_modules/@tsparticles/shape-image/browser/Options/Classes/Preload.js","../node_modules/@tsparticles/shape-image/browser/ImagePreloader.js"],"sourcesContent":["export class Preload {\n constructor() {\n this.src = \"\";\n this.gif = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.gif !== undefined) {\n this.gif = data.gif;\n }\n if (data.height !== undefined) {\n this.height = data.height;\n }\n if (data.name !== undefined) {\n this.name = data.name;\n }\n if (data.replaceColor !== undefined) {\n this.replaceColor = data.replaceColor;\n }\n if (data.src !== undefined) {\n this.src = data.src;\n }\n if (data.width !== undefined) {\n this.width = data.width;\n }\n }\n}\n","import { Preload } from \"./Options/Classes/Preload.js\";\nexport class ImagePreloaderPlugin {\n constructor(engine) {\n this.id = \"imagePreloader\";\n this._engine = engine;\n }\n async getPlugin() {\n await Promise.resolve();\n return {};\n }\n loadOptions(options, source) {\n if (!source?.preload) {\n return;\n }\n if (!options.preload) {\n options.preload = [];\n }\n const preloadOptions = options.preload;\n for (const item of source.preload) {\n const existing = preloadOptions.find((t) => t.name === item.name || t.src === item.src);\n if (existing) {\n existing.load(item);\n }\n else {\n const preload = new Preload();\n preload.load(item);\n preloadOptions.push(preload);\n }\n }\n }\n needsPlugin() {\n return true;\n }\n}\n"],"names":["Preload","constructor","this","src","gif","load","data","undefined","height","name","replaceColor","width","ImagePreloaderPlugin","engine","id","_engine","getPlugin","Promise","resolve","loadOptions","options","source","preload","preloadOptions","item","existing","find","t","push","needsPlugin"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/4843.7d91a860.chunk.js","mappings":"sIAAO,MAAMA,EACTC,WAAAA,GACIC,KAAKC,IAAM,GACXD,KAAKE,KAAM,CACf,CACAC,IAAAA,CAAKC,GACIA,SAGYC,IAAbD,EAAKF,MACLF,KAAKE,IAAME,EAAKF,UAEAG,IAAhBD,EAAKE,SACLN,KAAKM,OAASF,EAAKE,aAELD,IAAdD,EAAKG,OACLP,KAAKO,KAAOH,EAAKG,WAEKF,IAAtBD,EAAKI,eACLR,KAAKQ,aAAeJ,EAAKI,mBAEZH,IAAbD,EAAKH,MACLD,KAAKC,IAAMG,EAAKH,UAEDI,IAAfD,EAAKK,QACLT,KAAKS,MAAQL,EAAKK,OAE1B,EC1BG,MAAMC,EACTX,WAAAA,CAAYY,GACRX,KAAKY,GAAK,iBACVZ,KAAKa,QAAUF,CACnB,CACA,eAAMG,GAEF,aADMC,QAAQC,UACP,CAAC,CACZ,CACAC,WAAAA,CAAYC,EAASC,GACjB,GAAW,OAANA,QAAM,IAANA,IAAAA,EAAQC,QACT,OAECF,EAAQE,UACTF,EAAQE,QAAU,IAEtB,MAAMC,EAAiBH,EAAQE,QAC/B,IAAK,MAAME,KAAQH,EAAOC,QAAS,CAC/B,MAAMG,EAAWF,EAAeG,MAAMC,GAAMA,EAAElB,OAASe,EAAKf,MAAQkB,EAAExB,MAAQqB,EAAKrB,MACnF,GAAIsB,EACAA,EAASpB,KAAKmB,OAEb,CACD,MAAMF,EAAU,IAAItB,EACpBsB,EAAQjB,KAAKmB,GACbD,EAAeK,KAAKN,EACxB,CACJ,CACJ,CACAO,WAAAA,GACI,OAAO,CACX,E","sources":["../node_modules/@tsparticles/shape-image/browser/Options/Classes/Preload.js","../node_modules/@tsparticles/shape-image/browser/ImagePreloader.js"],"sourcesContent":["export class Preload {\n constructor() {\n this.src = \"\";\n this.gif = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.gif !== undefined) {\n this.gif = data.gif;\n }\n if (data.height !== undefined) {\n this.height = data.height;\n }\n if (data.name !== undefined) {\n this.name = data.name;\n }\n if (data.replaceColor !== undefined) {\n this.replaceColor = data.replaceColor;\n }\n if (data.src !== undefined) {\n this.src = data.src;\n }\n if (data.width !== undefined) {\n this.width = data.width;\n }\n }\n}\n","import { Preload } from \"./Options/Classes/Preload.js\";\nexport class ImagePreloaderPlugin {\n constructor(engine) {\n this.id = \"imagePreloader\";\n this._engine = engine;\n }\n async getPlugin() {\n await Promise.resolve();\n return {};\n }\n loadOptions(options, source) {\n if (!source?.preload) {\n return;\n }\n if (!options.preload) {\n options.preload = [];\n }\n const preloadOptions = options.preload;\n for (const item of source.preload) {\n const existing = preloadOptions.find((t) => t.name === item.name || t.src === item.src);\n if (existing) {\n existing.load(item);\n }\n else {\n const preload = new Preload();\n preload.load(item);\n preloadOptions.push(preload);\n }\n }\n }\n needsPlugin() {\n return true;\n }\n}\n"],"names":["Preload","constructor","this","src","gif","load","data","undefined","height","name","replaceColor","width","ImagePreloaderPlugin","engine","id","_engine","getPlugin","Promise","resolve","loadOptions","options","source","preload","preloadOptions","item","existing","find","t","push","needsPlugin"],"sourceRoot":""} \ No newline at end of file diff --git a/build/static/js/4927.760ce2c8.chunk.js b/build/static/js/4927.760ce2c8.chunk.js deleted file mode 100644 index 05195e1..0000000 --- a/build/static/js/4927.760ce2c8.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkclient=self.webpackChunkclient||[]).push([[4927],{4927:(n,a,e)=>{e.d(a,{CircleDrawer:()=>r});var c=e(4409);const i=2*Math.PI,t=0,l=0;class r{draw(n){!function(n){const{context:a,particle:e,radius:c}=n;e.circleRange||(e.circleRange={min:0,max:i});const r=e.circleRange;a.arc(t,l,c,r.min,r.max,!1)}(n)}getSidesCount(){return 12}particleInit(n,a){var e;const i=a.shapeData,t=null!==(e=null===i||void 0===i?void 0:i.angle)&&void 0!==e?e:{max:360,min:0};a.circleRange=(0,c.Gv)(t)?{min:(0,c.pu)(t.min),max:(0,c.pu)(t.max)}:{min:0,max:(0,c.pu)(t)}}}}}]); -//# sourceMappingURL=4927.760ce2c8.chunk.js.map \ No newline at end of file diff --git a/build/static/js/4927.e27766a2.chunk.js b/build/static/js/4927.e27766a2.chunk.js new file mode 100644 index 0000000..0aec345 --- /dev/null +++ b/build/static/js/4927.e27766a2.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkresview=self.webpackChunkresview||[]).push([[4927],{4927:(e,a,n)=>{n.d(a,{CircleDrawer:()=>s});var i=n(4409);const c=2*Math.PI,r=0,t=0;class s{draw(e){!function(e){const{context:a,particle:n,radius:i}=e;n.circleRange||(n.circleRange={min:0,max:c});const s=n.circleRange;a.arc(r,t,i,s.min,s.max,!1)}(e)}getSidesCount(){return 12}particleInit(e,a){var n;const c=a.shapeData,r=null!==(n=null===c||void 0===c?void 0:c.angle)&&void 0!==n?n:{max:360,min:0};a.circleRange=(0,i.Gv)(r)?{min:(0,i.pu)(r.min),max:(0,i.pu)(r.max)}:{min:0,max:(0,i.pu)(r)}}}}}]); +//# sourceMappingURL=4927.e27766a2.chunk.js.map \ No newline at end of file diff --git a/build/static/js/4927.760ce2c8.chunk.js.map b/build/static/js/4927.e27766a2.chunk.js.map similarity index 94% rename from build/static/js/4927.760ce2c8.chunk.js.map rename to build/static/js/4927.e27766a2.chunk.js.map index 80480f0..306a824 100644 --- a/build/static/js/4927.760ce2c8.chunk.js.map +++ b/build/static/js/4927.e27766a2.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/4927.760ce2c8.chunk.js","mappings":"0IAAA,MAAkBA,EAAH,EAAcC,KAAKC,GAA2BC,EAAc,EAAdA,EAAoB,ECG1E,MAAMC,EACTC,IAAAA,CAAKC,IDHF,SAAoBA,GACvB,MAAM,QAAEC,EAAO,SAAEC,EAAQ,OAAEC,GAAWH,EACjCE,EAASE,cACVF,EAASE,YAAc,CAAEC,IAJyB,EAIVC,IAAKZ,IAEjD,MAAMU,EAAcF,EAASE,YAC7BH,EAAQM,IAAIV,EAAUA,EAAUM,EAAQC,EAAYC,IAAKD,EAAYE,KAAK,EAC9E,CCHQE,CAAWR,EACf,CACAS,aAAAA,GACI,OANM,EAOV,CACAC,YAAAA,CAAaC,EAAWT,GAAU,IAAAU,EAC9B,MAAMC,EAAYX,EAASW,UAAWC,EAAwB,QAAnBF,EAAY,OAATC,QAAS,IAATA,OAAS,EAATA,EAAWC,aAAK,IAAAF,EAAAA,EAAI,CAC9DN,IAViB,IAWjBD,IAXiC,GAarCH,EAASE,aAAeW,EAAAA,EAAAA,IAASD,GAK3B,CAAET,KAAKW,EAAAA,EAAAA,IAASF,EAAMT,KAAMC,KAAKU,EAAAA,EAAAA,IAASF,EAAMR,MAJhD,CACED,IAf6B,EAgB7BC,KAAKU,EAAAA,EAAAA,IAASF,GAG1B,E","sources":["../node_modules/@tsparticles/shape-circle/browser/Utils.js","../node_modules/@tsparticles/shape-circle/browser/CircleDrawer.js"],"sourcesContent":["const double = 2, doublePI = Math.PI * double, minAngle = 0, origin = { x: 0, y: 0 };\nexport function drawCircle(data) {\n const { context, particle, radius } = data;\n if (!particle.circleRange) {\n particle.circleRange = { min: minAngle, max: doublePI };\n }\n const circleRange = particle.circleRange;\n context.arc(origin.x, origin.y, radius, circleRange.min, circleRange.max, false);\n}\n","import { degToRad, isObject } from \"@tsparticles/engine\";\nimport { drawCircle } from \"./Utils.js\";\nconst sides = 12, maxAngle = 360, minAngle = 0;\nexport class CircleDrawer {\n draw(data) {\n drawCircle(data);\n }\n getSidesCount() {\n return sides;\n }\n particleInit(container, particle) {\n const shapeData = particle.shapeData, angle = shapeData?.angle ?? {\n max: maxAngle,\n min: minAngle,\n };\n particle.circleRange = !isObject(angle)\n ? {\n min: minAngle,\n max: degToRad(angle),\n }\n : { min: degToRad(angle.min), max: degToRad(angle.max) };\n }\n}\n"],"names":["doublePI","Math","PI","origin","CircleDrawer","draw","data","context","particle","radius","circleRange","min","max","arc","drawCircle","getSidesCount","particleInit","container","_shapeData$angle","shapeData","angle","isObject","degToRad"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/4927.e27766a2.chunk.js","mappings":"4IAAA,MAAkBA,EAAH,EAAcC,KAAKC,GAA2BC,EAAc,EAAdA,EAAoB,ECG1E,MAAMC,EACTC,IAAAA,CAAKC,IDHF,SAAoBA,GACvB,MAAM,QAAEC,EAAO,SAAEC,EAAQ,OAAEC,GAAWH,EACjCE,EAASE,cACVF,EAASE,YAAc,CAAEC,IAJyB,EAIVC,IAAKZ,IAEjD,MAAMU,EAAcF,EAASE,YAC7BH,EAAQM,IAAIV,EAAUA,EAAUM,EAAQC,EAAYC,IAAKD,EAAYE,KAAK,EAC9E,CCHQE,CAAWR,EACf,CACAS,aAAAA,GACI,OANM,EAOV,CACAC,YAAAA,CAAaC,EAAWT,GAAU,IAAAU,EAC9B,MAAMC,EAAYX,EAASW,UAAWC,EAAwB,QAAnBF,EAAY,OAATC,QAAS,IAATA,OAAS,EAATA,EAAWC,aAAK,IAAAF,EAAAA,EAAI,CAC9DN,IAViB,IAWjBD,IAXiC,GAarCH,EAASE,aAAeW,EAAAA,EAAAA,IAASD,GAK3B,CAAET,KAAKW,EAAAA,EAAAA,IAASF,EAAMT,KAAMC,KAAKU,EAAAA,EAAAA,IAASF,EAAMR,MAJhD,CACED,IAf6B,EAgB7BC,KAAKU,EAAAA,EAAAA,IAASF,GAG1B,E","sources":["../node_modules/@tsparticles/shape-circle/browser/Utils.js","../node_modules/@tsparticles/shape-circle/browser/CircleDrawer.js"],"sourcesContent":["const double = 2, doublePI = Math.PI * double, minAngle = 0, origin = { x: 0, y: 0 };\nexport function drawCircle(data) {\n const { context, particle, radius } = data;\n if (!particle.circleRange) {\n particle.circleRange = { min: minAngle, max: doublePI };\n }\n const circleRange = particle.circleRange;\n context.arc(origin.x, origin.y, radius, circleRange.min, circleRange.max, false);\n}\n","import { degToRad, isObject } from \"@tsparticles/engine\";\nimport { drawCircle } from \"./Utils.js\";\nconst sides = 12, maxAngle = 360, minAngle = 0;\nexport class CircleDrawer {\n draw(data) {\n drawCircle(data);\n }\n getSidesCount() {\n return sides;\n }\n particleInit(container, particle) {\n const shapeData = particle.shapeData, angle = shapeData?.angle ?? {\n max: maxAngle,\n min: minAngle,\n };\n particle.circleRange = !isObject(angle)\n ? {\n min: minAngle,\n max: degToRad(angle),\n }\n : { min: degToRad(angle.min), max: degToRad(angle.max) };\n }\n}\n"],"names":["doublePI","Math","PI","origin","CircleDrawer","draw","data","context","particle","radius","circleRange","min","max","arc","drawCircle","getSidesCount","particleInit","container","_shapeData$angle","shapeData","angle","isObject","degToRad"],"sourceRoot":""} \ No newline at end of file diff --git a/build/static/js/5033.2af27af0.chunk.js b/build/static/js/5033.2af27af0.chunk.js new file mode 100644 index 0000000..d3d244b --- /dev/null +++ b/build/static/js/5033.2af27af0.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkresview=self.webpackChunkresview||[]).push([[5033],{5033:(n,e,s)=>{s.d(e,{LinksPlugin:()=>i});class i{constructor(){this.id="links"}async getPlugin(n){const{LinkInstance:e}=await s.e(4290).then(s.bind(s,4290));return new e(n)}loadOptions(){}needsPlugin(){return!0}}}}]); +//# sourceMappingURL=5033.2af27af0.chunk.js.map \ No newline at end of file diff --git a/build/static/js/5033.c7631518.chunk.js.map b/build/static/js/5033.2af27af0.chunk.js.map similarity index 84% rename from build/static/js/5033.c7631518.chunk.js.map rename to build/static/js/5033.2af27af0.chunk.js.map index a3e8683..d498ab9 100644 --- a/build/static/js/5033.c7631518.chunk.js.map +++ b/build/static/js/5033.2af27af0.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/5033.c7631518.chunk.js","mappings":"2HAAO,MAAMA,EACTC,WAAAA,GACIC,KAAKC,GAAK,OACd,CACA,eAAMC,CAAUC,GACZ,MAAM,aAAEC,SAAuB,+BAC/B,OAAO,IAAIA,EAAaD,EAC5B,CACAE,WAAAA,GACA,CACAC,WAAAA,GACI,OAAO,CACX,E","sources":["../node_modules/@tsparticles/interaction-particles-links/browser/LinksPlugin.js"],"sourcesContent":["export class LinksPlugin {\n constructor() {\n this.id = \"links\";\n }\n async getPlugin(container) {\n const { LinkInstance } = await import(\"./LinkInstance.js\");\n return new LinkInstance(container);\n }\n loadOptions() {\n }\n needsPlugin() {\n return true;\n }\n}\n"],"names":["LinksPlugin","constructor","this","id","getPlugin","container","LinkInstance","loadOptions","needsPlugin"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/5033.2af27af0.chunk.js","mappings":"6HAAO,MAAMA,EACTC,WAAAA,GACIC,KAAKC,GAAK,OACd,CACA,eAAMC,CAAUC,GACZ,MAAM,aAAEC,SAAuB,+BAC/B,OAAO,IAAIA,EAAaD,EAC5B,CACAE,WAAAA,GACA,CACAC,WAAAA,GACI,OAAO,CACX,E","sources":["../node_modules/@tsparticles/interaction-particles-links/browser/LinksPlugin.js"],"sourcesContent":["export class LinksPlugin {\n constructor() {\n this.id = \"links\";\n }\n async getPlugin(container) {\n const { LinkInstance } = await import(\"./LinkInstance.js\");\n return new LinkInstance(container);\n }\n loadOptions() {\n }\n needsPlugin() {\n return true;\n }\n}\n"],"names":["LinksPlugin","constructor","this","id","getPlugin","container","LinkInstance","loadOptions","needsPlugin"],"sourceRoot":""} \ No newline at end of file diff --git a/build/static/js/5033.c7631518.chunk.js b/build/static/js/5033.c7631518.chunk.js deleted file mode 100644 index 5a551be..0000000 --- a/build/static/js/5033.c7631518.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkclient=self.webpackChunkclient||[]).push([[5033],{5033:(n,e,s)=>{s.d(e,{LinksPlugin:()=>t});class t{constructor(){this.id="links"}async getPlugin(n){const{LinkInstance:e}=await s.e(4290).then(s.bind(s,4290));return new e(n)}loadOptions(){}needsPlugin(){return!0}}}}]); -//# sourceMappingURL=5033.c7631518.chunk.js.map \ No newline at end of file diff --git a/build/static/js/5080.72505acd.chunk.js b/build/static/js/5080.72505acd.chunk.js new file mode 100644 index 0000000..2859df3 --- /dev/null +++ b/build/static/js/5080.72505acd.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkresview=self.webpackChunkresview||[]).push([[5080],{5080:(e,s,t)=>{t.d(s,{Pauser:()=>r});var a=t(4409);class r extends a.sJ{constructor(e){super(e),this.handleClickMode=e=>{if("pause"!==e)return;const s=this.container;s.animationStatus?s.pause():s.play()}}clear(){}init(){}interact(){}isEnabled(){return!0}reset(){}}}}]); +//# sourceMappingURL=5080.72505acd.chunk.js.map \ No newline at end of file diff --git a/build/static/js/5080.de177e48.chunk.js.map b/build/static/js/5080.72505acd.chunk.js.map similarity index 90% rename from build/static/js/5080.de177e48.chunk.js.map rename to build/static/js/5080.72505acd.chunk.js.map index 2d9298e..e320e11 100644 --- a/build/static/js/5080.de177e48.chunk.js.map +++ b/build/static/js/5080.72505acd.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/5080.de177e48.chunk.js","mappings":"oIAEO,MAAMA,UAAeC,EAAAA,GACxBC,WAAAA,CAAYC,GACRC,MAAMD,GACNE,KAAKC,gBAAmBC,IACpB,GALM,UAKFA,EACA,OAEJ,MAAMJ,EAAYE,KAAKF,UACnBA,EAAUK,gBACVL,EAAUM,QAGVN,EAAUO,MACd,CAER,CACAC,KAAAA,GACA,CACAC,IAAAA,GACA,CACAC,QAAAA,GACA,CACAC,SAAAA,GACI,OAAO,CACX,CACAC,KAAAA,GACA,E","sources":["../node_modules/@tsparticles/interaction-external-pause/browser/Pauser.js"],"sourcesContent":["import { ExternalInteractorBase } from \"@tsparticles/engine\";\nconst pauseMode = \"pause\";\nexport class Pauser extends ExternalInteractorBase {\n constructor(container) {\n super(container);\n this.handleClickMode = (mode) => {\n if (mode !== pauseMode) {\n return;\n }\n const container = this.container;\n if (container.animationStatus) {\n container.pause();\n }\n else {\n container.play();\n }\n };\n }\n clear() {\n }\n init() {\n }\n interact() {\n }\n isEnabled() {\n return true;\n }\n reset() {\n }\n}\n"],"names":["Pauser","ExternalInteractorBase","constructor","container","super","this","handleClickMode","mode","animationStatus","pause","play","clear","init","interact","isEnabled","reset"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/5080.72505acd.chunk.js","mappings":"sIAEO,MAAMA,UAAeC,EAAAA,GACxBC,WAAAA,CAAYC,GACRC,MAAMD,GACNE,KAAKC,gBAAmBC,IACpB,GALM,UAKFA,EACA,OAEJ,MAAMJ,EAAYE,KAAKF,UACnBA,EAAUK,gBACVL,EAAUM,QAGVN,EAAUO,MACd,CAER,CACAC,KAAAA,GACA,CACAC,IAAAA,GACA,CACAC,QAAAA,GACA,CACAC,SAAAA,GACI,OAAO,CACX,CACAC,KAAAA,GACA,E","sources":["../node_modules/@tsparticles/interaction-external-pause/browser/Pauser.js"],"sourcesContent":["import { ExternalInteractorBase } from \"@tsparticles/engine\";\nconst pauseMode = \"pause\";\nexport class Pauser extends ExternalInteractorBase {\n constructor(container) {\n super(container);\n this.handleClickMode = (mode) => {\n if (mode !== pauseMode) {\n return;\n }\n const container = this.container;\n if (container.animationStatus) {\n container.pause();\n }\n else {\n container.play();\n }\n };\n }\n clear() {\n }\n init() {\n }\n interact() {\n }\n isEnabled() {\n return true;\n }\n reset() {\n }\n}\n"],"names":["Pauser","ExternalInteractorBase","constructor","container","super","this","handleClickMode","mode","animationStatus","pause","play","clear","init","interact","isEnabled","reset"],"sourceRoot":""} \ No newline at end of file diff --git a/build/static/js/5080.de177e48.chunk.js b/build/static/js/5080.de177e48.chunk.js deleted file mode 100644 index 070c676..0000000 --- a/build/static/js/5080.de177e48.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkclient=self.webpackChunkclient||[]).push([[5080],{5080:(e,s,t)=>{t.d(s,{Pauser:()=>a});var n=t(4409);class a extends n.sJ{constructor(e){super(e),this.handleClickMode=e=>{if("pause"!==e)return;const s=this.container;s.animationStatus?s.pause():s.play()}}clear(){}init(){}interact(){}isEnabled(){return!0}reset(){}}}}]); -//# sourceMappingURL=5080.de177e48.chunk.js.map \ No newline at end of file diff --git a/build/static/js/5376.03154f8b.chunk.js b/build/static/js/5376.03154f8b.chunk.js new file mode 100644 index 0000000..fd91c6b --- /dev/null +++ b/build/static/js/5376.03154f8b.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkresview=self.webpackChunkresview||[]).push([[5376],{5376:(e,a,s)=>{async function n(e){let a=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];await e.addMover("base",(async()=>{const{BaseMover:e}=await s.e(8731).then(s.bind(s,8731));return new e}),a)}s.d(a,{loadBaseMover:()=>n})}}]); +//# sourceMappingURL=5376.03154f8b.chunk.js.map \ No newline at end of file diff --git a/build/static/js/5376.fa8ed22b.chunk.js.map b/build/static/js/5376.03154f8b.chunk.js.map similarity index 81% rename from build/static/js/5376.fa8ed22b.chunk.js.map rename to build/static/js/5376.03154f8b.chunk.js.map index c065ea7..1549741 100644 --- a/build/static/js/5376.fa8ed22b.chunk.js.map +++ b/build/static/js/5376.03154f8b.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/5376.fa8ed22b.chunk.js","mappings":"gGAAOA,eAAeC,EAAcC,GAAwB,IAAhBC,IAAOC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,KAAAA,UAAA,SACzCF,EAAOK,SAAS,QAAQP,UAC1B,MAAM,UAAEQ,SAAoB,+BAC5B,OAAO,IAAIA,CAAW,GACvBL,EACP,C","sources":["../node_modules/@tsparticles/move-base/browser/index.js"],"sourcesContent":["export async function loadBaseMover(engine, refresh = true) {\n await engine.addMover(\"base\", async () => {\n const { BaseMover } = await import(\"./BaseMover.js\");\n return new BaseMover();\n }, refresh);\n}\n"],"names":["async","loadBaseMover","engine","refresh","arguments","length","undefined","addMover","BaseMover"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/5376.03154f8b.chunk.js","mappings":"kGAAOA,eAAeC,EAAcC,GAAwB,IAAhBC,IAAOC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,KAAAA,UAAA,SACzCF,EAAOK,SAAS,QAAQP,UAC1B,MAAM,UAAEQ,SAAoB,+BAC5B,OAAO,IAAIA,CAAW,GACvBL,EACP,C","sources":["../node_modules/@tsparticles/move-base/browser/index.js"],"sourcesContent":["export async function loadBaseMover(engine, refresh = true) {\n await engine.addMover(\"base\", async () => {\n const { BaseMover } = await import(\"./BaseMover.js\");\n return new BaseMover();\n }, refresh);\n}\n"],"names":["async","loadBaseMover","engine","refresh","arguments","length","undefined","addMover","BaseMover"],"sourceRoot":""} \ No newline at end of file diff --git a/build/static/js/5376.fa8ed22b.chunk.js b/build/static/js/5376.fa8ed22b.chunk.js deleted file mode 100644 index 30a2a0b..0000000 --- a/build/static/js/5376.fa8ed22b.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkclient=self.webpackChunkclient||[]).push([[5376],{5376:(e,n,a)=>{async function t(e){let n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];await e.addMover("base",(async()=>{const{BaseMover:e}=await a.e(8731).then(a.bind(a,8731));return new e}),n)}a.d(n,{loadBaseMover:()=>t})}}]); -//# sourceMappingURL=5376.fa8ed22b.chunk.js.map \ No newline at end of file diff --git a/build/static/js/5474.5b204204.chunk.js b/build/static/js/5474.5b204204.chunk.js deleted file mode 100644 index 960c943..0000000 --- a/build/static/js/5474.5b204204.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkclient=self.webpackChunkclient||[]).push([[5474],{5474:(t,e,s)=>{s.d(e,{SquareDrawer:()=>n});const c=Math.sqrt(2);class n{draw(t){!function(t){const{context:e,radius:s}=t,n=s/c,r=2*n;e.rect(-n,-n,r,r)}(t)}getSidesCount(){return 4}}}}]); -//# sourceMappingURL=5474.5b204204.chunk.js.map \ No newline at end of file diff --git a/build/static/js/5474.dcb38a6d.chunk.js b/build/static/js/5474.dcb38a6d.chunk.js new file mode 100644 index 0000000..1aae033 --- /dev/null +++ b/build/static/js/5474.dcb38a6d.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkresview=self.webpackChunkresview||[]).push([[5474],{5474:(e,s,t)=>{t.d(s,{SquareDrawer:()=>c});const r=Math.sqrt(2);class c{draw(e){!function(e){const{context:s,radius:t}=e,c=t/r,n=2*c;s.rect(-c,-c,n,n)}(e)}getSidesCount(){return 4}}}}]); +//# sourceMappingURL=5474.dcb38a6d.chunk.js.map \ No newline at end of file diff --git a/build/static/js/5474.5b204204.chunk.js.map b/build/static/js/5474.dcb38a6d.chunk.js.map similarity index 88% rename from build/static/js/5474.5b204204.chunk.js.map rename to build/static/js/5474.dcb38a6d.chunk.js.map index 07c25f6..30c9aa6 100644 --- a/build/static/js/5474.5b204204.chunk.js.map +++ b/build/static/js/5474.dcb38a6d.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/5474.5b204204.chunk.js","mappings":"4HAAA,MAA4BA,EAAYC,KAAKC,KAApB,GCElB,MAAMC,EACTC,IAAAA,CAAKC,IDFF,SAAoBA,GACvB,MAAM,QAAEC,EAAO,OAAEC,GAAWF,EAAMG,EAAcD,EAASP,EAAWS,EAFM,EAEUD,EACpFF,EAAQI,MAAMF,GAAcA,EAAaC,EAAeA,EAC5D,CCAQE,CAAWN,EACf,CACAO,aAAAA,GACI,OANM,CAOV,E","sources":["../node_modules/@tsparticles/shape-square/browser/Utils.js","../node_modules/@tsparticles/shape-square/browser/SquareDrawer.js"],"sourcesContent":["const fixFactorSquared = 2, fixFactor = Math.sqrt(fixFactorSquared), double = 2;\nexport function drawSquare(data) {\n const { context, radius } = data, fixedRadius = radius / fixFactor, fixedDiameter = fixedRadius * double;\n context.rect(-fixedRadius, -fixedRadius, fixedDiameter, fixedDiameter);\n}\n","import { drawSquare } from \"./Utils.js\";\nconst sides = 4;\nexport class SquareDrawer {\n draw(data) {\n drawSquare(data);\n }\n getSidesCount() {\n return sides;\n }\n}\n"],"names":["fixFactor","Math","sqrt","SquareDrawer","draw","data","context","radius","fixedRadius","fixedDiameter","rect","drawSquare","getSidesCount"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/5474.dcb38a6d.chunk.js","mappings":"8HAAA,MAA4BA,EAAYC,KAAKC,KAApB,GCElB,MAAMC,EACTC,IAAAA,CAAKC,IDFF,SAAoBA,GACvB,MAAM,QAAEC,EAAO,OAAEC,GAAWF,EAAMG,EAAcD,EAASP,EAAWS,EAFM,EAEUD,EACpFF,EAAQI,MAAMF,GAAcA,EAAaC,EAAeA,EAC5D,CCAQE,CAAWN,EACf,CACAO,aAAAA,GACI,OANM,CAOV,E","sources":["../node_modules/@tsparticles/shape-square/browser/Utils.js","../node_modules/@tsparticles/shape-square/browser/SquareDrawer.js"],"sourcesContent":["const fixFactorSquared = 2, fixFactor = Math.sqrt(fixFactorSquared), double = 2;\nexport function drawSquare(data) {\n const { context, radius } = data, fixedRadius = radius / fixFactor, fixedDiameter = fixedRadius * double;\n context.rect(-fixedRadius, -fixedRadius, fixedDiameter, fixedDiameter);\n}\n","import { drawSquare } from \"./Utils.js\";\nconst sides = 4;\nexport class SquareDrawer {\n draw(data) {\n drawSquare(data);\n }\n getSidesCount() {\n return sides;\n }\n}\n"],"names":["fixFactor","Math","sqrt","SquareDrawer","draw","data","context","radius","fixedRadius","fixedDiameter","rect","drawSquare","getSidesCount"],"sourceRoot":""} \ No newline at end of file diff --git a/build/static/js/5536.609d0afe.chunk.js b/build/static/js/5536.609d0afe.chunk.js new file mode 100644 index 0000000..25b60ca --- /dev/null +++ b/build/static/js/5536.609d0afe.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkresview=self.webpackChunkresview||[]).push([[5536],{5536:(e,a,t)=>{async function i(e){let a=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];await e.addParticleUpdater("size",(async()=>{const{SizeUpdater:e}=await t.e(4494).then(t.bind(t,4494));return new e}),a)}t.d(a,{loadSizeUpdater:()=>i})}}]); +//# sourceMappingURL=5536.609d0afe.chunk.js.map \ No newline at end of file diff --git a/build/static/js/5536.680c7cf3.chunk.js.map b/build/static/js/5536.609d0afe.chunk.js.map similarity index 82% rename from build/static/js/5536.680c7cf3.chunk.js.map rename to build/static/js/5536.609d0afe.chunk.js.map index 24f38e7..addb827 100644 --- a/build/static/js/5536.680c7cf3.chunk.js.map +++ b/build/static/js/5536.609d0afe.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/5536.680c7cf3.chunk.js","mappings":"gGAAOA,eAAeC,EAAgBC,GAAwB,IAAhBC,IAAOC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,KAAAA,UAAA,SAC3CF,EAAOK,mBAAmB,QAAQP,UACpC,MAAM,YAAEQ,SAAsB,+BAC9B,OAAO,IAAIA,CAAa,GACzBL,EACP,C","sources":["../node_modules/@tsparticles/updater-size/browser/index.js"],"sourcesContent":["export async function loadSizeUpdater(engine, refresh = true) {\n await engine.addParticleUpdater(\"size\", async () => {\n const { SizeUpdater } = await import(\"./SizeUpdater.js\");\n return new SizeUpdater();\n }, refresh);\n}\n"],"names":["async","loadSizeUpdater","engine","refresh","arguments","length","undefined","addParticleUpdater","SizeUpdater"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/5536.609d0afe.chunk.js","mappings":"kGAAOA,eAAeC,EAAgBC,GAAwB,IAAhBC,IAAOC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,KAAAA,UAAA,SAC3CF,EAAOK,mBAAmB,QAAQP,UACpC,MAAM,YAAEQ,SAAsB,+BAC9B,OAAO,IAAIA,CAAa,GACzBL,EACP,C","sources":["../node_modules/@tsparticles/updater-size/browser/index.js"],"sourcesContent":["export async function loadSizeUpdater(engine, refresh = true) {\n await engine.addParticleUpdater(\"size\", async () => {\n const { SizeUpdater } = await import(\"./SizeUpdater.js\");\n return new SizeUpdater();\n }, refresh);\n}\n"],"names":["async","loadSizeUpdater","engine","refresh","arguments","length","undefined","addParticleUpdater","SizeUpdater"],"sourceRoot":""} \ No newline at end of file diff --git a/build/static/js/5536.680c7cf3.chunk.js b/build/static/js/5536.680c7cf3.chunk.js deleted file mode 100644 index bcce6a8..0000000 --- a/build/static/js/5536.680c7cf3.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkclient=self.webpackChunkclient||[]).push([[5536],{5536:(e,t,a)=>{async function n(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];await e.addParticleUpdater("size",(async()=>{const{SizeUpdater:e}=await a.e(4494).then(a.bind(a,4494));return new e}),t)}a.d(t,{loadSizeUpdater:()=>n})}}]); -//# sourceMappingURL=5536.680c7cf3.chunk.js.map \ No newline at end of file diff --git a/build/static/js/5817.8a47376a.chunk.js b/build/static/js/5817.8a47376a.chunk.js deleted file mode 100644 index b17416d..0000000 --- a/build/static/js/5817.8a47376a.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkclient=self.webpackChunkclient||[]).push([[5817],{5817:(n,e,t)=>{async function i(n){let e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];await n.addInteractor("particlesCollisions",(async n=>{const{Collider:e}=await t.e(656).then(t.bind(t,656));return new e(n)}),e)}t.d(e,{loadParticlesCollisionsInteraction:()=>i})}}]); -//# sourceMappingURL=5817.8a47376a.chunk.js.map \ No newline at end of file diff --git a/build/static/js/5817.d973a9f4.chunk.js b/build/static/js/5817.d973a9f4.chunk.js new file mode 100644 index 0000000..186b154 --- /dev/null +++ b/build/static/js/5817.d973a9f4.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkresview=self.webpackChunkresview||[]).push([[5817],{5817:(e,n,i)=>{async function s(e){let n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];await e.addInteractor("particlesCollisions",(async e=>{const{Collider:n}=await i.e(656).then(i.bind(i,656));return new n(e)}),n)}i.d(n,{loadParticlesCollisionsInteraction:()=>s})}}]); +//# sourceMappingURL=5817.d973a9f4.chunk.js.map \ No newline at end of file diff --git a/build/static/js/5817.8a47376a.chunk.js.map b/build/static/js/5817.d973a9f4.chunk.js.map similarity index 84% rename from build/static/js/5817.8a47376a.chunk.js.map rename to build/static/js/5817.d973a9f4.chunk.js.map index be7ffbf..2b84a53 100644 --- a/build/static/js/5817.8a47376a.chunk.js.map +++ b/build/static/js/5817.d973a9f4.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/5817.8a47376a.chunk.js","mappings":"gGAAOA,eAAeC,EAAmCC,GAAwB,IAAhBC,IAAOC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,KAAAA,UAAA,SAC9DF,EAAOK,cAAc,uBAAuBP,UAC9C,MAAM,SAAEQ,SAAmB,6BAC3B,OAAO,IAAIA,EAASC,EAAU,GAC/BN,EACP,C","sources":["../node_modules/@tsparticles/interaction-particles-collisions/browser/index.js"],"sourcesContent":["export async function loadParticlesCollisionsInteraction(engine, refresh = true) {\n await engine.addInteractor(\"particlesCollisions\", async (container) => {\n const { Collider } = await import(\"./Collider.js\");\n return new Collider(container);\n }, refresh);\n}\n"],"names":["async","loadParticlesCollisionsInteraction","engine","refresh","arguments","length","undefined","addInteractor","Collider","container"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/5817.d973a9f4.chunk.js","mappings":"kGAAOA,eAAeC,EAAmCC,GAAwB,IAAhBC,IAAOC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,KAAAA,UAAA,SAC9DF,EAAOK,cAAc,uBAAuBP,UAC9C,MAAM,SAAEQ,SAAmB,6BAC3B,OAAO,IAAIA,EAASC,EAAU,GAC/BN,EACP,C","sources":["../node_modules/@tsparticles/interaction-particles-collisions/browser/index.js"],"sourcesContent":["export async function loadParticlesCollisionsInteraction(engine, refresh = true) {\n await engine.addInteractor(\"particlesCollisions\", async (container) => {\n const { Collider } = await import(\"./Collider.js\");\n return new Collider(container);\n }, refresh);\n}\n"],"names":["async","loadParticlesCollisionsInteraction","engine","refresh","arguments","length","undefined","addInteractor","Collider","container"],"sourceRoot":""} \ No newline at end of file diff --git a/build/static/js/599.81184ef0.chunk.js b/build/static/js/599.81184ef0.chunk.js deleted file mode 100644 index 07f0e0d..0000000 --- a/build/static/js/599.81184ef0.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkclient=self.webpackChunkclient||[]).push([[599],{599:(e,n,t)=>{async function a(e){let n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];await e.addInteractor("externalSlow",(async e=>{const{Slower:n}=await t.e(6964).then(t.bind(t,6964));return new n(e)}),n)}t.d(n,{loadExternalSlowInteraction:()=>a})}}]); -//# sourceMappingURL=599.81184ef0.chunk.js.map \ No newline at end of file diff --git a/build/static/js/599.faa8b33a.chunk.js b/build/static/js/599.faa8b33a.chunk.js new file mode 100644 index 0000000..fcf1983 --- /dev/null +++ b/build/static/js/599.faa8b33a.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkresview=self.webpackChunkresview||[]).push([[599],{599:(e,n,t)=>{async function a(e){let n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];await e.addInteractor("externalSlow",(async e=>{const{Slower:n}=await t.e(6964).then(t.bind(t,6964));return new n(e)}),n)}t.d(n,{loadExternalSlowInteraction:()=>a})}}]); +//# sourceMappingURL=599.faa8b33a.chunk.js.map \ No newline at end of file diff --git a/build/static/js/599.81184ef0.chunk.js.map b/build/static/js/599.faa8b33a.chunk.js.map similarity index 85% rename from build/static/js/599.81184ef0.chunk.js.map rename to build/static/js/599.faa8b33a.chunk.js.map index 9cf2706..e5f1501 100644 --- a/build/static/js/599.81184ef0.chunk.js.map +++ b/build/static/js/599.faa8b33a.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/599.81184ef0.chunk.js","mappings":"8FAAOA,eAAeC,EAA4BC,GAAwB,IAAhBC,IAAOC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,KAAAA,UAAA,SACvDF,EAAOK,cAAc,gBAAgBP,UACvC,MAAM,OAAEQ,SAAiB,+BACzB,OAAO,IAAIA,EAAOC,EAAU,GAC7BN,EACP,C","sources":["../node_modules/@tsparticles/interaction-external-slow/browser/index.js"],"sourcesContent":["export async function loadExternalSlowInteraction(engine, refresh = true) {\n await engine.addInteractor(\"externalSlow\", async (container) => {\n const { Slower } = await import(\"./Slower.js\");\n return new Slower(container);\n }, refresh);\n}\nexport * from \"./Options/Classes/Slow.js\";\nexport * from \"./Options/Interfaces/ISlow.js\";\n"],"names":["async","loadExternalSlowInteraction","engine","refresh","arguments","length","undefined","addInteractor","Slower","container"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/599.faa8b33a.chunk.js","mappings":"gGAAOA,eAAeC,EAA4BC,GAAwB,IAAhBC,IAAOC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,KAAAA,UAAA,SACvDF,EAAOK,cAAc,gBAAgBP,UACvC,MAAM,OAAEQ,SAAiB,+BACzB,OAAO,IAAIA,EAAOC,EAAU,GAC7BN,EACP,C","sources":["../node_modules/@tsparticles/interaction-external-slow/browser/index.js"],"sourcesContent":["export async function loadExternalSlowInteraction(engine, refresh = true) {\n await engine.addInteractor(\"externalSlow\", async (container) => {\n const { Slower } = await import(\"./Slower.js\");\n return new Slower(container);\n }, refresh);\n}\nexport * from \"./Options/Classes/Slow.js\";\nexport * from \"./Options/Interfaces/ISlow.js\";\n"],"names":["async","loadExternalSlowInteraction","engine","refresh","arguments","length","undefined","addInteractor","Slower","container"],"sourceRoot":""} \ No newline at end of file diff --git a/build/static/js/6118.277893f5.chunk.js b/build/static/js/6118.277893f5.chunk.js new file mode 100644 index 0000000..776db70 --- /dev/null +++ b/build/static/js/6118.277893f5.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkresview=self.webpackChunkresview||[]).push([[6118],{6118:(i,n,s)=>{s.d(n,{Linker:()=>c});var t=s(4409);class e extends t.jl{constructor(i,n,s,t){super(i,n,s),this.canvasSize=t,this.canvasSize={...t}}contains(i){const{width:n,height:s}=this.canvasSize,{x:t,y:e}=i;return super.contains(i)||super.contains({x:t-n,y:e})||super.contains({x:t-n,y:e-s})||super.contains({x:t,y:e-s})}intersects(i){if(super.intersects(i))return!0;const n=i,s=i,e={x:i.position.x-this.canvasSize.width,y:i.position.y-this.canvasSize.height};if(void 0!==s.radius){const i=new t.jl(e.x,e.y,2*s.radius);return super.intersects(i)}if(void 0!==n.size){const i=new t.M_(e.x,e.y,2*n.size.width,2*n.size.height);return super.intersects(i)}return!1}}var o=s(1744);const r=0,a=0;function l(i,n,s,e,o){const{dx:r,dy:a,distance:l}=(0,t.vr)(i,n);if(!o||l<=s)return l;const c={x:Math.abs(r),y:Math.abs(a)},h=Math.min(c.x,e.width-c.x),u=Math.min(c.y,e.height-c.y);return Math.sqrt(h**2+u**2)}class c extends t.U4{constructor(i){super(i),this._setColor=i=>{if(!i.options.links)return;const n=this.linkContainer,s=i.options.links;let e=void 0===s.id?n.particles.linksColor:n.particles.linksColors.get(s.id);if(e)return;const o=s.color;e=(0,t.PG)(o,s.blink,s.consent),void 0===s.id?n.particles.linksColor=e:n.particles.linksColors.set(s.id,e)},this.linkContainer=i}clear(){}init(){this.linkContainer.particles.linksColor=void 0,this.linkContainer.particles.linksColors=new Map}interact(i){var n;if(!i.options.links)return;i.links=[];const s=i.getPosition(),o=this.container,c=o.canvas.size;if(s.xc.width||s.y>c.height)return;const h=i.options.links,u=h.opacity,d=null!==(n=i.retina.linksDistance)&&void 0!==n?n:0,p=h.warp;let k;k=p?new e(s.x,s.y,d,c):new t.jl(s.x,s.y,d);const v=o.particles.quadTree.query(k);for(const t of v){const n=t.options.links;if(i===t||null===n||void 0===n||!n.enable||h.id!==n.id||t.spawning||t.destroyed||!t.links||i.links.some((i=>i.destination===t))||t.links.some((n=>n.destination===i)))continue;const e=t.getPosition();if(e.xc.width||e.y>c.height)continue;const o=l(s,e,d,c,p&&n.warp);if(o>d)continue;const k=(1-o/d)*u;this._setColor(i),i.links.push({destination:t,opacity:k})}}isEnabled(i){var n;return!(null===(n=i.options.links)||void 0===n||!n.enable)}loadParticlesOptions(i){i.links||(i.links=new o.q);for(var n=arguments.length,s=new Array(n>1?n-1:0),t=1;t {\n if (!p1.options.links) {\n return;\n }\n const container = this.linkContainer, linksOptions = p1.options.links;\n let linkColor = linksOptions.id === undefined\n ? container.particles.linksColor\n : container.particles.linksColors.get(linksOptions.id);\n if (linkColor) {\n return;\n }\n const optColor = linksOptions.color;\n linkColor = getLinkRandomColor(optColor, linksOptions.blink, linksOptions.consent);\n if (linksOptions.id === undefined) {\n container.particles.linksColor = linkColor;\n }\n else {\n container.particles.linksColors.set(linksOptions.id, linkColor);\n }\n };\n this.linkContainer = container;\n }\n clear() {\n }\n init() {\n this.linkContainer.particles.linksColor = undefined;\n this.linkContainer.particles.linksColors = new Map();\n }\n interact(p1) {\n if (!p1.options.links) {\n return;\n }\n p1.links = [];\n const pos1 = p1.getPosition(), container = this.container, canvasSize = container.canvas.size;\n if (pos1.x < origin.x || pos1.y < origin.y || pos1.x > canvasSize.width || pos1.y > canvasSize.height) {\n return;\n }\n const linkOpt1 = p1.options.links, optOpacity = linkOpt1.opacity, optDistance = p1.retina.linksDistance ?? minDistance, warp = linkOpt1.warp;\n let range;\n if (warp) {\n range = new CircleWarp(pos1.x, pos1.y, optDistance, canvasSize);\n }\n else {\n range = new Circle(pos1.x, pos1.y, optDistance);\n }\n const query = container.particles.quadTree.query(range);\n for (const p2 of query) {\n const linkOpt2 = p2.options.links;\n if (p1 === p2 ||\n !linkOpt2?.enable ||\n linkOpt1.id !== linkOpt2.id ||\n p2.spawning ||\n p2.destroyed ||\n !p2.links ||\n p1.links.some((t) => t.destination === p2) ||\n p2.links.some((t) => t.destination === p1)) {\n continue;\n }\n const pos2 = p2.getPosition();\n if (pos2.x < origin.x || pos2.y < origin.y || pos2.x > canvasSize.width || pos2.y > canvasSize.height) {\n continue;\n }\n const distance = getLinkDistance(pos1, pos2, optDistance, canvasSize, warp && linkOpt2.warp);\n if (distance > optDistance) {\n continue;\n }\n const opacityLine = (opacityOffset - distance / optDistance) * optOpacity;\n this._setColor(p1);\n p1.links.push({\n destination: p2,\n opacity: opacityLine,\n });\n }\n }\n isEnabled(particle) {\n return !!particle.options.links?.enable;\n }\n loadParticlesOptions(options, ...sources) {\n if (!options.links) {\n options.links = new Links();\n }\n for (const source of sources) {\n options.links.load(source?.links);\n }\n }\n reset() {\n }\n}\n"],"names":["CircleWarp","Circle","constructor","x","y","radius","canvasSize","super","this","contains","point","width","height","intersects","range","rect","circle","newPos","position","undefined","biggerCircle","size","rectSW","Rectangle","origin","getLinkDistance","pos1","pos2","optDistance","warp","dx","dy","distance","getDistances","absDiffs","Math","abs","warpDistances","min","sqrt","Linker","ParticlesInteractorBase","container","_setColor","p1","options","links","linkContainer","linksOptions","linkColor","id","particles","linksColor","linksColors","get","optColor","color","getLinkRandomColor","blink","consent","set","clear","init","Map","interact","_p1$retina$linksDista","getPosition","canvas","linkOpt1","optOpacity","opacity","retina","linksDistance","query","quadTree","p2","linkOpt2","enable","spawning","destroyed","some","t","destination","opacityLine","push","isEnabled","particle","_particle$options$lin","loadParticlesOptions","Links","_len","arguments","length","sources","Array","_key","source","load","reset"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/6118.277893f5.chunk.js","mappings":"sIAEO,MAAMA,UAAmBC,EAAAA,GAC5BC,WAAAA,CAAYC,EAAGC,EAAGC,EAAQC,GACtBC,MAAMJ,EAAGC,EAAGC,GACZG,KAAKF,WAAaA,EAClBE,KAAKF,WAAa,IAAKA,EAC3B,CACAG,QAAAA,CAASC,GACL,MAAM,MAAEC,EAAK,OAAEC,GAAWJ,KAAKF,YAAY,EAAEH,EAAC,EAAEC,GAAMM,EACtD,OAAQH,MAAME,SAASC,IACnBH,MAAME,SAAS,CAAEN,EAAGA,EAAIQ,EAAOP,OAC/BG,MAAME,SAAS,CAAEN,EAAGA,EAAIQ,EAAOP,EAAGA,EAAIQ,KACtCL,MAAME,SAAS,CAAEN,IAAGC,EAAGA,EAAIQ,GACnC,CACAC,UAAAA,CAAWC,GACP,GAAIP,MAAMM,WAAWC,GACjB,OAAO,EAEX,MAAMC,EAAOD,EAAOE,EAASF,EAAOG,EAAS,CACzCd,EAAGW,EAAMI,SAASf,EAAIK,KAAKF,WAAWK,MACtCP,EAAGU,EAAMI,SAASd,EAAII,KAAKF,WAAWM,QAE1C,QAAsBO,IAAlBH,EAAOX,OAAsB,CAC7B,MAAMe,EAAe,IAAInB,EAAAA,GAAOgB,EAAOd,EAAGc,EAAOb,EAvB9C,EAuBiDY,EAAOX,QAC3D,OAAOE,MAAMM,WAAWO,EAC5B,CACK,QAAkBD,IAAdJ,EAAKM,KAAoB,CAC9B,MAAMC,EAAS,IAAIC,EAAAA,GAAUN,EAAOd,EAAGc,EAAOb,EA3B3C,EA2B8CW,EAAKM,KAAKV,MA3BxD,EA2BwEI,EAAKM,KAAKT,QACrF,OAAOL,MAAMM,WAAWS,EAC5B,CACA,OAAO,CACX,E,cC7BJ,MAA0CE,EACnC,EADmCA,EAEnC,EAEP,SAASC,EAAgBC,EAAMC,EAAMC,EAAatB,EAAYuB,GAC1D,MAAM,GAAEC,EAAE,GAAEC,EAAE,SAAEC,IAAaC,EAAAA,EAAAA,IAAaP,EAAMC,GAChD,IAAKE,GAAQG,GAAYJ,EACrB,OAAOI,EAEX,MAAME,EAAW,CACb/B,EAAGgC,KAAKC,IAAIN,GACZ1B,EAAG+B,KAAKC,IAAIL,IACbM,EACIF,KAAKG,IAAIJ,EAAS/B,EAAGG,EAAWK,MAAQuB,EAAS/B,GADrDkC,EAEIF,KAAKG,IAAIJ,EAAS9B,EAAGE,EAAWM,OAASsB,EAAS9B,GAEzD,OAAO+B,KAAKI,KAAKF,GAhBD,EAgBkCA,GAhBlC,EAiBpB,CACO,MAAMG,UAAeC,EAAAA,GACxBvC,WAAAA,CAAYwC,GACRnC,MAAMmC,GACNlC,KAAKmC,UAAaC,IACd,IAAKA,EAAGC,QAAQC,MACZ,OAEJ,MAAMJ,EAAYlC,KAAKuC,cAAeC,EAAeJ,EAAGC,QAAQC,MAChE,IAAIG,OAAgC9B,IAApB6B,EAAaE,GACvBR,EAAUS,UAAUC,WACpBV,EAAUS,UAAUE,YAAYC,IAAIN,EAAaE,IACvD,GAAID,EACA,OAEJ,MAAMM,EAAWP,EAAaQ,MAC9BP,GAAYQ,EAAAA,EAAAA,IAAmBF,EAAUP,EAAaU,MAAOV,EAAaW,cAClDxC,IAApB6B,EAAaE,GACbR,EAAUS,UAAUC,WAAaH,EAGjCP,EAAUS,UAAUE,YAAYO,IAAIZ,EAAaE,GAAID,EACzD,EAEJzC,KAAKuC,cAAgBL,CACzB,CACAmB,KAAAA,GACA,CACAC,IAAAA,GACItD,KAAKuC,cAAcI,UAAUC,gBAAajC,EAC1CX,KAAKuC,cAAcI,UAAUE,YAAc,IAAIU,GACnD,CACAC,QAAAA,CAASpB,GAAI,IAAAqB,EACT,IAAKrB,EAAGC,QAAQC,MACZ,OAEJF,EAAGE,MAAQ,GACX,MAAMpB,EAAOkB,EAAGsB,cAAexB,EAAYlC,KAAKkC,UAAWpC,EAAaoC,EAAUyB,OAAO9C,KACzF,GAAIK,EAAKvB,EAAIqB,GAAYE,EAAKtB,EAAIoB,GAAYE,EAAKvB,EAAIG,EAAWK,OAASe,EAAKtB,EAAIE,EAAWM,OAC3F,OAEJ,MAAMwD,EAAWxB,EAAGC,QAAQC,MAAOuB,EAAaD,EAASE,QAAS1C,EAAqC,QAA1BqC,EAAGrB,EAAG2B,OAAOC,qBAAa,IAAAP,EAAAA,EAvD9F,EAuD+GpC,EAAOuC,EAASvC,KACxI,IAAIf,EAEAA,EADAe,EACQ,IAAI7B,EAAW0B,EAAKvB,EAAGuB,EAAKtB,EAAGwB,EAAatB,GAG5C,IAAIL,EAAAA,GAAOyB,EAAKvB,EAAGuB,EAAKtB,EAAGwB,GAEvC,MAAM6C,EAAQ/B,EAAUS,UAAUuB,SAASD,MAAM3D,GACjD,IAAK,MAAM6D,KAAMF,EAAO,CACpB,MAAMG,EAAWD,EAAG9B,QAAQC,MAC5B,GAAIF,IAAO+B,GACE,OAARC,QAAQ,IAARA,IAAAA,EAAUC,QACXT,EAASlB,KAAO0B,EAAS1B,IACzByB,EAAGG,UACHH,EAAGI,YACFJ,EAAG7B,OACJF,EAAGE,MAAMkC,MAAMC,GAAMA,EAAEC,cAAgBP,KACvCA,EAAG7B,MAAMkC,MAAMC,GAAMA,EAAEC,cAAgBtC,IACvC,SAEJ,MAAMjB,EAAOgD,EAAGT,cAChB,GAAIvC,EAAKxB,EAAIqB,GAAYG,EAAKvB,EAAIoB,GAAYG,EAAKxB,EAAIG,EAAWK,OAASgB,EAAKvB,EAAIE,EAAWM,OAC3F,SAEJ,MAAMoB,EAAWP,EAAgBC,EAAMC,EAAMC,EAAatB,EAAYuB,GAAQ+C,EAAS/C,MACvF,GAAIG,EAAWJ,EACX,SAEJ,MAAMuD,GAvFqB,EAuFUnD,EAAWJ,GAAeyC,EAC/D7D,KAAKmC,UAAUC,GACfA,EAAGE,MAAMsC,KAAK,CACVF,YAAaP,EACbL,QAASa,GAEjB,CACJ,CACAE,SAAAA,CAAUC,GAAU,IAAAC,EAChB,QAA+B,QAAvBA,EAACD,EAASzC,QAAQC,aAAK,IAAAyC,IAAtBA,EAAwBV,OACrC,CACAW,oBAAAA,CAAqB3C,GACZA,EAAQC,QACTD,EAAQC,MAAQ,IAAI2C,EAAAA,GACvB,QAAAC,EAAAC,UAAAC,OAH4BC,EAAO,IAAAC,MAAAJ,EAAA,EAAAA,EAAA,KAAAK,EAAA,EAAAA,EAAAL,EAAAK,IAAPF,EAAOE,EAAA,GAAAJ,UAAAI,GAIpC,IAAK,MAAMC,KAAUH,EACjBhD,EAAQC,MAAMmD,KAAW,OAAND,QAAM,IAANA,OAAM,EAANA,EAAQlD,MAEnC,CACAoD,KAAAA,GACA,E","sources":["../node_modules/@tsparticles/interaction-particles-links/browser/CircleWarp.js","../node_modules/@tsparticles/interaction-particles-links/browser/Linker.js"],"sourcesContent":["import { Circle, Rectangle } from \"@tsparticles/engine\";\nconst double = 2;\nexport class CircleWarp extends Circle {\n constructor(x, y, radius, canvasSize) {\n super(x, y, radius);\n this.canvasSize = canvasSize;\n this.canvasSize = { ...canvasSize };\n }\n contains(point) {\n const { width, height } = this.canvasSize, { x, y } = point;\n return (super.contains(point) ||\n super.contains({ x: x - width, y }) ||\n super.contains({ x: x - width, y: y - height }) ||\n super.contains({ x, y: y - height }));\n }\n intersects(range) {\n if (super.intersects(range)) {\n return true;\n }\n const rect = range, circle = range, newPos = {\n x: range.position.x - this.canvasSize.width,\n y: range.position.y - this.canvasSize.height,\n };\n if (circle.radius !== undefined) {\n const biggerCircle = new Circle(newPos.x, newPos.y, circle.radius * double);\n return super.intersects(biggerCircle);\n }\n else if (rect.size !== undefined) {\n const rectSW = new Rectangle(newPos.x, newPos.y, rect.size.width * double, rect.size.height * double);\n return super.intersects(rectSW);\n }\n return false;\n }\n}\n","import { Circle, ParticlesInteractorBase, getDistances, getLinkRandomColor, } from \"@tsparticles/engine\";\nimport { CircleWarp } from \"./CircleWarp.js\";\nimport { Links } from \"./Options/Classes/Links.js\";\nconst squarePower = 2, opacityOffset = 1, origin = {\n x: 0,\n y: 0,\n}, minDistance = 0;\nfunction getLinkDistance(pos1, pos2, optDistance, canvasSize, warp) {\n const { dx, dy, distance } = getDistances(pos1, pos2);\n if (!warp || distance <= optDistance) {\n return distance;\n }\n const absDiffs = {\n x: Math.abs(dx),\n y: Math.abs(dy),\n }, warpDistances = {\n x: Math.min(absDiffs.x, canvasSize.width - absDiffs.x),\n y: Math.min(absDiffs.y, canvasSize.height - absDiffs.y),\n };\n return Math.sqrt(warpDistances.x ** squarePower + warpDistances.y ** squarePower);\n}\nexport class Linker extends ParticlesInteractorBase {\n constructor(container) {\n super(container);\n this._setColor = (p1) => {\n if (!p1.options.links) {\n return;\n }\n const container = this.linkContainer, linksOptions = p1.options.links;\n let linkColor = linksOptions.id === undefined\n ? container.particles.linksColor\n : container.particles.linksColors.get(linksOptions.id);\n if (linkColor) {\n return;\n }\n const optColor = linksOptions.color;\n linkColor = getLinkRandomColor(optColor, linksOptions.blink, linksOptions.consent);\n if (linksOptions.id === undefined) {\n container.particles.linksColor = linkColor;\n }\n else {\n container.particles.linksColors.set(linksOptions.id, linkColor);\n }\n };\n this.linkContainer = container;\n }\n clear() {\n }\n init() {\n this.linkContainer.particles.linksColor = undefined;\n this.linkContainer.particles.linksColors = new Map();\n }\n interact(p1) {\n if (!p1.options.links) {\n return;\n }\n p1.links = [];\n const pos1 = p1.getPosition(), container = this.container, canvasSize = container.canvas.size;\n if (pos1.x < origin.x || pos1.y < origin.y || pos1.x > canvasSize.width || pos1.y > canvasSize.height) {\n return;\n }\n const linkOpt1 = p1.options.links, optOpacity = linkOpt1.opacity, optDistance = p1.retina.linksDistance ?? minDistance, warp = linkOpt1.warp;\n let range;\n if (warp) {\n range = new CircleWarp(pos1.x, pos1.y, optDistance, canvasSize);\n }\n else {\n range = new Circle(pos1.x, pos1.y, optDistance);\n }\n const query = container.particles.quadTree.query(range);\n for (const p2 of query) {\n const linkOpt2 = p2.options.links;\n if (p1 === p2 ||\n !linkOpt2?.enable ||\n linkOpt1.id !== linkOpt2.id ||\n p2.spawning ||\n p2.destroyed ||\n !p2.links ||\n p1.links.some((t) => t.destination === p2) ||\n p2.links.some((t) => t.destination === p1)) {\n continue;\n }\n const pos2 = p2.getPosition();\n if (pos2.x < origin.x || pos2.y < origin.y || pos2.x > canvasSize.width || pos2.y > canvasSize.height) {\n continue;\n }\n const distance = getLinkDistance(pos1, pos2, optDistance, canvasSize, warp && linkOpt2.warp);\n if (distance > optDistance) {\n continue;\n }\n const opacityLine = (opacityOffset - distance / optDistance) * optOpacity;\n this._setColor(p1);\n p1.links.push({\n destination: p2,\n opacity: opacityLine,\n });\n }\n }\n isEnabled(particle) {\n return !!particle.options.links?.enable;\n }\n loadParticlesOptions(options, ...sources) {\n if (!options.links) {\n options.links = new Links();\n }\n for (const source of sources) {\n options.links.load(source?.links);\n }\n }\n reset() {\n }\n}\n"],"names":["CircleWarp","Circle","constructor","x","y","radius","canvasSize","super","this","contains","point","width","height","intersects","range","rect","circle","newPos","position","undefined","biggerCircle","size","rectSW","Rectangle","origin","getLinkDistance","pos1","pos2","optDistance","warp","dx","dy","distance","getDistances","absDiffs","Math","abs","warpDistances","min","sqrt","Linker","ParticlesInteractorBase","container","_setColor","p1","options","links","linkContainer","linksOptions","linkColor","id","particles","linksColor","linksColors","get","optColor","color","getLinkRandomColor","blink","consent","set","clear","init","Map","interact","_p1$retina$linksDista","getPosition","canvas","linkOpt1","optOpacity","opacity","retina","linksDistance","query","quadTree","p2","linkOpt2","enable","spawning","destroyed","some","t","destination","opacityLine","push","isEnabled","particle","_particle$options$lin","loadParticlesOptions","Links","_len","arguments","length","sources","Array","_key","source","load","reset"],"sourceRoot":""} \ No newline at end of file diff --git a/build/static/js/6118.2c336db0.chunk.js b/build/static/js/6118.2c336db0.chunk.js deleted file mode 100644 index 1be1f91..0000000 --- a/build/static/js/6118.2c336db0.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkclient=self.webpackChunkclient||[]).push([[6118],{6118:(i,n,s)=>{s.d(n,{Linker:()=>c});var t=s(4409);class e extends t.jl{constructor(i,n,s,t){super(i,n,s),this.canvasSize=t,this.canvasSize={...t}}contains(i){const{width:n,height:s}=this.canvasSize,{x:t,y:e}=i;return super.contains(i)||super.contains({x:t-n,y:e})||super.contains({x:t-n,y:e-s})||super.contains({x:t,y:e-s})}intersects(i){if(super.intersects(i))return!0;const n=i,s=i,e={x:i.position.x-this.canvasSize.width,y:i.position.y-this.canvasSize.height};if(void 0!==s.radius){const i=new t.jl(e.x,e.y,2*s.radius);return super.intersects(i)}if(void 0!==n.size){const i=new t.M_(e.x,e.y,2*n.size.width,2*n.size.height);return super.intersects(i)}return!1}}var o=s(1744);const r=0,l=0;function a(i,n,s,e,o){const{dx:r,dy:l,distance:a}=(0,t.vr)(i,n);if(!o||a<=s)return a;const c={x:Math.abs(r),y:Math.abs(l)},h=Math.min(c.x,e.width-c.x),u=Math.min(c.y,e.height-c.y);return Math.sqrt(h**2+u**2)}class c extends t.U4{constructor(i){super(i),this._setColor=i=>{if(!i.options.links)return;const n=this.linkContainer,s=i.options.links;let e=void 0===s.id?n.particles.linksColor:n.particles.linksColors.get(s.id);if(e)return;const o=s.color;e=(0,t.PG)(o,s.blink,s.consent),void 0===s.id?n.particles.linksColor=e:n.particles.linksColors.set(s.id,e)},this.linkContainer=i}clear(){}init(){this.linkContainer.particles.linksColor=void 0,this.linkContainer.particles.linksColors=new Map}interact(i){var n;if(!i.options.links)return;i.links=[];const s=i.getPosition(),o=this.container,c=o.canvas.size;if(s.xc.width||s.y>c.height)return;const h=i.options.links,u=h.opacity,d=null!==(n=i.retina.linksDistance)&&void 0!==n?n:0,p=h.warp;let k;k=p?new e(s.x,s.y,d,c):new t.jl(s.x,s.y,d);const y=o.particles.quadTree.query(k);for(const t of y){const n=t.options.links;if(i===t||null===n||void 0===n||!n.enable||h.id!==n.id||t.spawning||t.destroyed||!t.links||i.links.some((i=>i.destination===t))||t.links.some((n=>n.destination===i)))continue;const e=t.getPosition();if(e.xc.width||e.y>c.height)continue;const o=a(s,e,d,c,p&&n.warp);if(o>d)continue;const k=(1-o/d)*u;this._setColor(i),i.links.push({destination:t,opacity:k})}}isEnabled(i){var n;return!(null===(n=i.options.links)||void 0===n||!n.enable)}loadParticlesOptions(i){i.links||(i.links=new o.q);for(var n=arguments.length,s=new Array(n>1?n-1:0),t=1;t{n.d(a,{u:()=>t});const t=["emoji"]},615:(e,a,n)=>{n.d(a,{loadEmojiShape:()=>i});var t=n(6682);async function i(e){let a=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];const{EmojiDrawer:i}=await n.e(1638).then(n.bind(n,1638));await e.addShape(t.u,new i,a)}}}]); -//# sourceMappingURL=615.2be174b1.chunk.js.map \ No newline at end of file diff --git a/build/static/js/615.f00bf140.chunk.js b/build/static/js/615.f00bf140.chunk.js new file mode 100644 index 0000000..8c5266f --- /dev/null +++ b/build/static/js/615.f00bf140.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkresview=self.webpackChunkresview||[]).push([[615],{6682:(e,a,i)=>{i.d(a,{u:()=>n});const n=["emoji"]},615:(e,a,i)=>{i.d(a,{loadEmojiShape:()=>s});var n=i(6682);async function s(e){let a=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];const{EmojiDrawer:s}=await i.e(1638).then(i.bind(i,1638));await e.addShape(n.u,new s,a)}}}]); +//# sourceMappingURL=615.f00bf140.chunk.js.map \ No newline at end of file diff --git a/build/static/js/615.2be174b1.chunk.js.map b/build/static/js/615.f00bf140.chunk.js.map similarity index 84% rename from build/static/js/615.2be174b1.chunk.js.map rename to build/static/js/615.f00bf140.chunk.js.map index 592b281..59c3bf7 100644 --- a/build/static/js/615.2be174b1.chunk.js.map +++ b/build/static/js/615.f00bf140.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/615.2be174b1.chunk.js","mappings":"gHAAO,MAAMA,EAAa,CAAC,Q,4DCCpBC,eAAeC,EAAeC,GAAwB,IAAhBC,IAAOC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,KAAAA,UAAA,GAChD,MAAM,YAAEG,SAAsB,qCACxBL,EAAOM,SAAST,EAAAA,EAAY,IAAIQ,EAAeJ,EACzD,C","sources":["../node_modules/@tsparticles/shape-emoji/browser/Constants.js","../node_modules/@tsparticles/shape-emoji/browser/index.js"],"sourcesContent":["export const validTypes = [\"emoji\"];\n","import { validTypes } from \"./Constants.js\";\nexport async function loadEmojiShape(engine, refresh = true) {\n const { EmojiDrawer } = await import(\"./EmojiDrawer.js\");\n await engine.addShape(validTypes, new EmojiDrawer(), refresh);\n}\n"],"names":["validTypes","async","loadEmojiShape","engine","refresh","arguments","length","undefined","EmojiDrawer","addShape"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/615.f00bf140.chunk.js","mappings":"kHAAO,MAAMA,EAAa,CAAC,Q,4DCCpBC,eAAeC,EAAeC,GAAwB,IAAhBC,IAAOC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,KAAAA,UAAA,GAChD,MAAM,YAAEG,SAAsB,qCACxBL,EAAOM,SAAST,EAAAA,EAAY,IAAIQ,EAAeJ,EACzD,C","sources":["../node_modules/@tsparticles/shape-emoji/browser/Constants.js","../node_modules/@tsparticles/shape-emoji/browser/index.js"],"sourcesContent":["export const validTypes = [\"emoji\"];\n","import { validTypes } from \"./Constants.js\";\nexport async function loadEmojiShape(engine, refresh = true) {\n const { EmojiDrawer } = await import(\"./EmojiDrawer.js\");\n await engine.addShape(validTypes, new EmojiDrawer(), refresh);\n}\n"],"names":["validTypes","async","loadEmojiShape","engine","refresh","arguments","length","undefined","EmojiDrawer","addShape"],"sourceRoot":""} \ No newline at end of file diff --git a/build/static/js/6198.6f00554c.chunk.js b/build/static/js/6198.6f00554c.chunk.js deleted file mode 100644 index d405d68..0000000 --- a/build/static/js/6198.6f00554c.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkclient=self.webpackChunkclient||[]).push([[6198],{6198:(t,i,n)=>{n.d(i,{Grabber:()=>a});var o=n(4409),e=n(5582);function r(t,i,n,e,r){t.canvas.draw((t=>{var a;const s=i.getPosition();!function(t,i,n,e,r,a){(0,o.V6)(t,n,e),t.strokeStyle=(0,o.xx)(r,a),t.lineWidth=i,t.stroke()}(t,null!==(a=i.retina.linksWidth)&&void 0!==a?a:0,s,r,n,e)}))}class a extends o.sJ{constructor(t){super(t)}clear(){}init(){const t=this.container,i=t.actualOptions.interactivity.modes.grab;i&&(t.retina.grabModeDistance=i.distance*t.retina.pixelRatio)}interact(){const t=this.container,i=t.actualOptions.interactivity;if(!i.modes.grab||!i.events.onHover.enable||t.interactivity.status!==o.Rb)return;const n=t.interactivity.mouse.position;if(!n)return;const e=t.retina.grabModeDistance;if(!e||e<0)return;const a=t.particles.quadTree.queryCircle(n,e,(t=>this.isEnabled(t)));for(const l of a){var s,c;const a=l.getPosition(),d=(0,o.Yf)(a,n);if(d>e)continue;const u=i.modes.grab.links,v=u.opacity,b=v-d*v/e;if(b<=0)continue;const f=null!==(s=u.color)&&void 0!==s?s:null===(c=l.options.links)||void 0===c?void 0:c.color;if(!t.particles.grabLineColor&&f){const n=i.modes.grab.links;t.particles.grabLineColor=(0,o.PG)(f,n.blink,n.consent)}const g=(0,o._h)(l,void 0,t.particles.grabLineColor);g&&r(t,l,g,b,n)}}isEnabled(t){var i;const n=this.container,e=n.interactivity.mouse,r=(null!==(i=null===t||void 0===t?void 0:t.interactivity)&&void 0!==i?i:n.actualOptions.interactivity).events;return r.onHover.enable&&!!e.position&&(0,o.hn)("grab",r.onHover.mode)}loadModeOptions(t){t.grab||(t.grab=new e.f);for(var i=arguments.length,n=new Array(i>1?i-1:0),o=1;o{n.d(i,{Grabber:()=>s});var e=n(4409),o=n(5582);function r(t,i,n,o,r){t.canvas.draw((t=>{var s;const a=i.getPosition();!function(t,i,n,o,r,s){(0,e.V6)(t,n,o),t.strokeStyle=(0,e.xx)(r,s),t.lineWidth=i,t.stroke()}(t,null!==(s=i.retina.linksWidth)&&void 0!==s?s:0,a,r,n,o)}))}class s extends e.sJ{constructor(t){super(t)}clear(){}init(){const t=this.container,i=t.actualOptions.interactivity.modes.grab;i&&(t.retina.grabModeDistance=i.distance*t.retina.pixelRatio)}interact(){const t=this.container,i=t.actualOptions.interactivity;if(!i.modes.grab||!i.events.onHover.enable||t.interactivity.status!==e.Rb)return;const n=t.interactivity.mouse.position;if(!n)return;const o=t.retina.grabModeDistance;if(!o||o<0)return;const s=t.particles.quadTree.queryCircle(n,o,(t=>this.isEnabled(t)));for(const l of s){var a,c;const s=l.getPosition(),v=(0,e.Yf)(s,n);if(v>o)continue;const d=i.modes.grab.links,u=d.opacity,b=u-v*u/o;if(b<=0)continue;const f=null!==(a=d.color)&&void 0!==a?a:null===(c=l.options.links)||void 0===c?void 0:c.color;if(!t.particles.grabLineColor&&f){const n=i.modes.grab.links;t.particles.grabLineColor=(0,e.PG)(f,n.blink,n.consent)}const g=(0,e._h)(l,void 0,t.particles.grabLineColor);g&&r(t,l,g,b,n)}}isEnabled(t){var i;const n=this.container,o=n.interactivity.mouse,r=(null!==(i=null===t||void 0===t?void 0:t.interactivity)&&void 0!==i?i:n.actualOptions.interactivity).events;return r.onHover.enable&&!!o.position&&(0,e.hn)("grab",r.onHover.mode)}loadModeOptions(t){t.grab||(t.grab=new o.f);for(var i=arguments.length,n=new Array(i>1?i-1:0),e=1;e {\n const beginPos = particle.getPosition();\n drawGrabLine(ctx, particle.retina.linksWidth ?? defaultWidth, beginPos, mousePos, lineColor, opacity);\n });\n}\n","import { ExternalInteractorBase, getDistance, getLinkColor, getLinkRandomColor, isInArray, mouseMoveEvent, } from \"@tsparticles/engine\";\nimport { Grab } from \"./Options/Classes/Grab.js\";\nimport { drawGrab } from \"./Utils.js\";\nconst grabMode = \"grab\", minDistance = 0, minOpacity = 0;\nexport class Grabber extends ExternalInteractorBase {\n constructor(container) {\n super(container);\n }\n clear() {\n }\n init() {\n const container = this.container, grab = container.actualOptions.interactivity.modes.grab;\n if (!grab) {\n return;\n }\n container.retina.grabModeDistance = grab.distance * container.retina.pixelRatio;\n }\n interact() {\n const container = this.container, options = container.actualOptions, interactivity = options.interactivity;\n if (!interactivity.modes.grab ||\n !interactivity.events.onHover.enable ||\n container.interactivity.status !== mouseMoveEvent) {\n return;\n }\n const mousePos = container.interactivity.mouse.position;\n if (!mousePos) {\n return;\n }\n const distance = container.retina.grabModeDistance;\n if (!distance || distance < minDistance) {\n return;\n }\n const query = container.particles.quadTree.queryCircle(mousePos, distance, (p) => this.isEnabled(p));\n for (const particle of query) {\n const pos = particle.getPosition(), pointDistance = getDistance(pos, mousePos);\n if (pointDistance > distance) {\n continue;\n }\n const grabLineOptions = interactivity.modes.grab.links, lineOpacity = grabLineOptions.opacity, opacityLine = lineOpacity - (pointDistance * lineOpacity) / distance;\n if (opacityLine <= minOpacity) {\n continue;\n }\n const optColor = grabLineOptions.color ?? particle.options.links?.color;\n if (!container.particles.grabLineColor && optColor) {\n const linksOptions = interactivity.modes.grab.links;\n container.particles.grabLineColor = getLinkRandomColor(optColor, linksOptions.blink, linksOptions.consent);\n }\n const colorLine = getLinkColor(particle, undefined, container.particles.grabLineColor);\n if (!colorLine) {\n continue;\n }\n drawGrab(container, particle, colorLine, opacityLine, mousePos);\n }\n }\n isEnabled(particle) {\n const container = this.container, mouse = container.interactivity.mouse, events = (particle?.interactivity ?? container.actualOptions.interactivity).events;\n return events.onHover.enable && !!mouse.position && isInArray(grabMode, events.onHover.mode);\n }\n loadModeOptions(options, ...sources) {\n if (!options.grab) {\n options.grab = new Grab();\n }\n for (const source of sources) {\n options.grab.load(source?.grab);\n }\n }\n reset() {\n }\n}\n"],"names":["drawGrab","container","particle","lineColor","opacity","mousePos","canvas","draw","ctx","_particle$retina$link","beginPos","getPosition","context","width","begin","end","colorLine","drawLine","strokeStyle","getStyleFromRgb","lineWidth","stroke","drawGrabLine","retina","linksWidth","Grabber","ExternalInteractorBase","constructor","super","clear","init","this","grab","actualOptions","interactivity","modes","grabModeDistance","distance","pixelRatio","interact","events","onHover","enable","status","mouseMoveEvent","mouse","position","query","particles","quadTree","queryCircle","p","isEnabled","_grabLineOptions$colo","_particle$options$lin","pos","pointDistance","getDistance","grabLineOptions","links","lineOpacity","opacityLine","optColor","color","options","grabLineColor","linksOptions","getLinkRandomColor","blink","consent","getLinkColor","undefined","_particle$interactivi","isInArray","mode","loadModeOptions","Grab","_len","arguments","length","sources","Array","_key","source","load","reset"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/6198.f2a70477.chunk.js","mappings":"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","sources":["../node_modules/@tsparticles/interaction-external-grab/browser/Utils.js","../node_modules/@tsparticles/interaction-external-grab/browser/Grabber.js"],"sourcesContent":["import { drawLine, getStyleFromRgb } from \"@tsparticles/engine\";\nconst defaultWidth = 0;\nexport function drawGrabLine(context, width, begin, end, colorLine, opacity) {\n drawLine(context, begin, end);\n context.strokeStyle = getStyleFromRgb(colorLine, opacity);\n context.lineWidth = width;\n context.stroke();\n}\nexport function drawGrab(container, particle, lineColor, opacity, mousePos) {\n container.canvas.draw((ctx) => {\n const beginPos = particle.getPosition();\n drawGrabLine(ctx, particle.retina.linksWidth ?? defaultWidth, beginPos, mousePos, lineColor, opacity);\n });\n}\n","import { ExternalInteractorBase, getDistance, getLinkColor, getLinkRandomColor, isInArray, mouseMoveEvent, } from \"@tsparticles/engine\";\nimport { Grab } from \"./Options/Classes/Grab.js\";\nimport { drawGrab } from \"./Utils.js\";\nconst grabMode = \"grab\", minDistance = 0, minOpacity = 0;\nexport class Grabber extends ExternalInteractorBase {\n constructor(container) {\n super(container);\n }\n clear() {\n }\n init() {\n const container = this.container, grab = container.actualOptions.interactivity.modes.grab;\n if (!grab) {\n return;\n }\n container.retina.grabModeDistance = grab.distance * container.retina.pixelRatio;\n }\n interact() {\n const container = this.container, options = container.actualOptions, interactivity = options.interactivity;\n if (!interactivity.modes.grab ||\n !interactivity.events.onHover.enable ||\n container.interactivity.status !== mouseMoveEvent) {\n return;\n }\n const mousePos = container.interactivity.mouse.position;\n if (!mousePos) {\n return;\n }\n const distance = container.retina.grabModeDistance;\n if (!distance || distance < minDistance) {\n return;\n }\n const query = container.particles.quadTree.queryCircle(mousePos, distance, (p) => this.isEnabled(p));\n for (const particle of query) {\n const pos = particle.getPosition(), pointDistance = getDistance(pos, mousePos);\n if (pointDistance > distance) {\n continue;\n }\n const grabLineOptions = interactivity.modes.grab.links, lineOpacity = grabLineOptions.opacity, opacityLine = lineOpacity - (pointDistance * lineOpacity) / distance;\n if (opacityLine <= minOpacity) {\n continue;\n }\n const optColor = grabLineOptions.color ?? particle.options.links?.color;\n if (!container.particles.grabLineColor && optColor) {\n const linksOptions = interactivity.modes.grab.links;\n container.particles.grabLineColor = getLinkRandomColor(optColor, linksOptions.blink, linksOptions.consent);\n }\n const colorLine = getLinkColor(particle, undefined, container.particles.grabLineColor);\n if (!colorLine) {\n continue;\n }\n drawGrab(container, particle, colorLine, opacityLine, mousePos);\n }\n }\n isEnabled(particle) {\n const container = this.container, mouse = container.interactivity.mouse, events = (particle?.interactivity ?? container.actualOptions.interactivity).events;\n return events.onHover.enable && !!mouse.position && isInArray(grabMode, events.onHover.mode);\n }\n loadModeOptions(options, ...sources) {\n if (!options.grab) {\n options.grab = new Grab();\n }\n for (const source of sources) {\n options.grab.load(source?.grab);\n }\n }\n reset() {\n }\n}\n"],"names":["drawGrab","container","particle","lineColor","opacity","mousePos","canvas","draw","ctx","_particle$retina$link","beginPos","getPosition","context","width","begin","end","colorLine","drawLine","strokeStyle","getStyleFromRgb","lineWidth","stroke","drawGrabLine","retina","linksWidth","Grabber","ExternalInteractorBase","constructor","super","clear","init","this","grab","actualOptions","interactivity","modes","grabModeDistance","distance","pixelRatio","interact","events","onHover","enable","status","mouseMoveEvent","mouse","position","query","particles","quadTree","queryCircle","p","isEnabled","_grabLineOptions$colo","_particle$options$lin","pos","pointDistance","getDistance","grabLineOptions","links","lineOpacity","opacityLine","optColor","color","options","grabLineColor","linksOptions","getLinkRandomColor","blink","consent","getLinkColor","undefined","_particle$interactivi","isInArray","mode","loadModeOptions","Grab","_len","arguments","length","sources","Array","_key","source","load","reset"],"sourceRoot":""} \ No newline at end of file diff --git a/build/static/js/6341.41a81343.chunk.js b/build/static/js/6341.41a81343.chunk.js deleted file mode 100644 index c25085b..0000000 --- a/build/static/js/6341.41a81343.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkclient=self.webpackChunkclient||[]).push([[6341],{6341:(a,e,t)=>{async function n(a){let e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];const{StarDrawer:n}=await t.e(7604).then(t.bind(t,7604));await a.addShape("star",new n,e)}t.d(e,{loadStarShape:()=>n})}}]); -//# sourceMappingURL=6341.41a81343.chunk.js.map \ No newline at end of file diff --git a/build/static/js/6341.cf5a72b3.chunk.js b/build/static/js/6341.cf5a72b3.chunk.js new file mode 100644 index 0000000..de949aa --- /dev/null +++ b/build/static/js/6341.cf5a72b3.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkresview=self.webpackChunkresview||[]).push([[6341],{6341:(e,a,t)=>{async function n(e){let a=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];const{StarDrawer:n}=await t.e(7604).then(t.bind(t,7604));await e.addShape("star",new n,a)}t.d(a,{loadStarShape:()=>n})}}]); +//# sourceMappingURL=6341.cf5a72b3.chunk.js.map \ No newline at end of file diff --git a/build/static/js/6341.41a81343.chunk.js.map b/build/static/js/6341.cf5a72b3.chunk.js.map similarity index 79% rename from build/static/js/6341.41a81343.chunk.js.map rename to build/static/js/6341.cf5a72b3.chunk.js.map index 9d2c6f8..a7ab502 100644 --- a/build/static/js/6341.41a81343.chunk.js.map +++ b/build/static/js/6341.cf5a72b3.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/6341.41a81343.chunk.js","mappings":"gGAAOA,eAAeC,EAAcC,GAAwB,IAAhBC,IAAOC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,KAAAA,UAAA,GAC/C,MAAM,WAAEG,SAAqB,qCACvBL,EAAOM,SAAS,OAAQ,IAAID,EAAcJ,EACpD,C","sources":["../node_modules/@tsparticles/shape-star/browser/index.js"],"sourcesContent":["export async function loadStarShape(engine, refresh = true) {\n const { StarDrawer } = await import(\"./StarDrawer.js\");\n await engine.addShape(\"star\", new StarDrawer(), refresh);\n}\n"],"names":["async","loadStarShape","engine","refresh","arguments","length","undefined","StarDrawer","addShape"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/6341.cf5a72b3.chunk.js","mappings":"kGAAOA,eAAeC,EAAcC,GAAwB,IAAhBC,IAAOC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,KAAAA,UAAA,GAC/C,MAAM,WAAEG,SAAqB,qCACvBL,EAAOM,SAAS,OAAQ,IAAID,EAAcJ,EACpD,C","sources":["../node_modules/@tsparticles/shape-star/browser/index.js"],"sourcesContent":["export async function loadStarShape(engine, refresh = true) {\n const { StarDrawer } = await import(\"./StarDrawer.js\");\n await engine.addShape(\"star\", new StarDrawer(), refresh);\n}\n"],"names":["async","loadStarShape","engine","refresh","arguments","length","undefined","StarDrawer","addShape"],"sourceRoot":""} \ No newline at end of file diff --git a/build/static/js/656.93f10b71.chunk.js b/build/static/js/656.93f10b71.chunk.js deleted file mode 100644 index 784107d..0000000 --- a/build/static/js/656.93f10b71.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkclient=self.webpackChunkclient||[]).push([[656],{656:(o,e,i)=>{i.d(e,{Collider:()=>u});var s=i(4409);const t=.5,n=10,a=0;function d(o,e,i,d,c,l){const r=(0,s.qE)(o.options.collisions.absorb.speed*c.factor/n,a,d);o.size.value+=r*t,i.size.value-=r,d<=l&&(i.size.value=0,i.destroy())}const c=o=>{void 0===o.collisionMaxSpeed&&(o.collisionMaxSpeed=(0,s.VG)(o.options.collisions.maxSpeed)),o.velocity.length>o.collisionMaxSpeed&&(o.velocity.length=o.collisionMaxSpeed)};function l(o,e){(0,s.pE)((0,s.Tg)(o),(0,s.Tg)(e)),c(o),c(e)}function r(o,e,i,s){switch(o.options.collisions.mode){case"absorb":!function(o,e,i,s){const t=o.getRadius(),n=e.getRadius();void 0===t&&void 0!==n?o.destroy():void 0!==t&&void 0===n?e.destroy():void 0!==t&&void 0!==n&&(t>=n?d(o,0,e,n,i,s):d(e,0,o,t,i,s))}(o,e,i,s);break;case"bounce":l(o,e);break;case"destroy":!function(o,e){o.unbreakable||e.unbreakable||l(o,e),void 0===o.getRadius()&&void 0!==e.getRadius()?o.destroy():void 0!==o.getRadius()&&void 0===e.getRadius()?e.destroy():void 0!==o.getRadius()&&void 0!==e.getRadius()&&(o.getRadius()>=e.getRadius()?e:o).destroy()}(o,e)}}class u extends s.U4{constructor(o){super(o)}clear(){}init(){}interact(o,e){if(o.destroyed||o.spawning)return;const i=this.container,t=o.getPosition(),n=o.getRadius(),a=i.particles.quadTree.queryCircle(t,2*n);for(const d of a){if(o===d||!d.options.collisions.enable||o.options.collisions.mode!==d.options.collisions.mode||d.destroyed||d.spawning)continue;const a=d.getPosition(),c=d.getRadius();if(Math.abs(Math.round(t.z)-Math.round(a.z))>n+c)continue;(0,s.Yf)(t,a)>n+c||r(o,d,e,i.retina.pixelRatio)}}isEnabled(o){return o.options.collisions.enable}reset(){}}}}]); -//# sourceMappingURL=656.93f10b71.chunk.js.map \ No newline at end of file diff --git a/build/static/js/656.c0e04b11.chunk.js b/build/static/js/656.c0e04b11.chunk.js new file mode 100644 index 0000000..9c1cdf2 --- /dev/null +++ b/build/static/js/656.c0e04b11.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkresview=self.webpackChunkresview||[]).push([[656],{656:(e,o,i)=>{i.d(o,{Collider:()=>u});var s=i(4409);const t=.5,n=10,a=0;function d(e,o,i,d,c,l){const r=(0,s.qE)(e.options.collisions.absorb.speed*c.factor/n,a,d);e.size.value+=r*t,i.size.value-=r,d<=l&&(i.size.value=0,i.destroy())}const c=e=>{void 0===e.collisionMaxSpeed&&(e.collisionMaxSpeed=(0,s.VG)(e.options.collisions.maxSpeed)),e.velocity.length>e.collisionMaxSpeed&&(e.velocity.length=e.collisionMaxSpeed)};function l(e,o){(0,s.pE)((0,s.Tg)(e),(0,s.Tg)(o)),c(e),c(o)}function r(e,o,i,s){switch(e.options.collisions.mode){case"absorb":!function(e,o,i,s){const t=e.getRadius(),n=o.getRadius();void 0===t&&void 0!==n?e.destroy():void 0!==t&&void 0===n?o.destroy():void 0!==t&&void 0!==n&&(t>=n?d(e,0,o,n,i,s):d(o,0,e,t,i,s))}(e,o,i,s);break;case"bounce":l(e,o);break;case"destroy":!function(e,o){e.unbreakable||o.unbreakable||l(e,o),void 0===e.getRadius()&&void 0!==o.getRadius()?e.destroy():void 0!==e.getRadius()&&void 0===o.getRadius()?o.destroy():void 0!==e.getRadius()&&void 0!==o.getRadius()&&(e.getRadius()>=o.getRadius()?o:e).destroy()}(e,o)}}class u extends s.U4{constructor(e){super(e)}clear(){}init(){}interact(e,o){if(e.destroyed||e.spawning)return;const i=this.container,t=e.getPosition(),n=e.getRadius(),a=i.particles.quadTree.queryCircle(t,2*n);for(const d of a){if(e===d||!d.options.collisions.enable||e.options.collisions.mode!==d.options.collisions.mode||d.destroyed||d.spawning)continue;const a=d.getPosition(),c=d.getRadius();if(Math.abs(Math.round(t.z)-Math.round(a.z))>n+c)continue;(0,s.Yf)(t,a)>n+c||r(e,d,o,i.retina.pixelRatio)}}isEnabled(e){return e.options.collisions.enable}reset(){}}}}]); +//# sourceMappingURL=656.c0e04b11.chunk.js.map \ No newline at end of file diff --git a/build/static/js/656.93f10b71.chunk.js.map b/build/static/js/656.c0e04b11.chunk.js.map similarity index 98% rename from build/static/js/656.93f10b71.chunk.js.map rename to build/static/js/656.c0e04b11.chunk.js.map index fcc14c8..d9fbe09 100644 --- a/build/static/js/656.93f10b71.chunk.js.map +++ b/build/static/js/656.c0e04b11.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/656.93f10b71.chunk.js","mappings":"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","sources":["../node_modules/@tsparticles/interaction-particles-collisions/browser/Absorb.js","../node_modules/@tsparticles/interaction-particles-collisions/browser/Bounce.js","../node_modules/@tsparticles/interaction-particles-collisions/browser/ResolveCollision.js","../node_modules/@tsparticles/interaction-particles-collisions/browser/Destroy.js","../node_modules/@tsparticles/interaction-particles-collisions/browser/Collider.js"],"sourcesContent":["import { clamp } from \"@tsparticles/engine\";\nconst half = 0.5, absorbFactor = 10, minAbsorbFactor = 0;\nfunction updateAbsorb(p1, r1, p2, r2, delta, pixelRatio) {\n const factor = clamp((p1.options.collisions.absorb.speed * delta.factor) / absorbFactor, minAbsorbFactor, r2);\n p1.size.value += factor * half;\n p2.size.value -= factor;\n if (r2 <= pixelRatio) {\n p2.size.value = 0;\n p2.destroy();\n }\n}\nexport function absorb(p1, p2, delta, pixelRatio) {\n const r1 = p1.getRadius(), r2 = p2.getRadius();\n if (r1 === undefined && r2 !== undefined) {\n p1.destroy();\n }\n else if (r1 !== undefined && r2 === undefined) {\n p2.destroy();\n }\n else if (r1 !== undefined && r2 !== undefined) {\n if (r1 >= r2) {\n updateAbsorb(p1, r1, p2, r2, delta, pixelRatio);\n }\n else {\n updateAbsorb(p2, r2, p1, r1, delta, pixelRatio);\n }\n }\n}\n","import { circleBounce, circleBounceDataFromParticle, getRangeValue } from \"@tsparticles/engine\";\nconst fixBounceSpeed = (p) => {\n if (p.collisionMaxSpeed === undefined) {\n p.collisionMaxSpeed = getRangeValue(p.options.collisions.maxSpeed);\n }\n if (p.velocity.length > p.collisionMaxSpeed) {\n p.velocity.length = p.collisionMaxSpeed;\n }\n};\nexport function bounce(p1, p2) {\n circleBounce(circleBounceDataFromParticle(p1), circleBounceDataFromParticle(p2));\n fixBounceSpeed(p1);\n fixBounceSpeed(p2);\n}\n","import { absorb } from \"./Absorb.js\";\nimport { bounce } from \"./Bounce.js\";\nimport { destroy } from \"./Destroy.js\";\nexport function resolveCollision(p1, p2, delta, pixelRatio) {\n switch (p1.options.collisions.mode) {\n case \"absorb\": {\n absorb(p1, p2, delta, pixelRatio);\n break;\n }\n case \"bounce\": {\n bounce(p1, p2);\n break;\n }\n case \"destroy\": {\n destroy(p1, p2);\n break;\n }\n }\n}\n","import { bounce } from \"./Bounce.js\";\nexport function destroy(p1, p2) {\n if (!p1.unbreakable && !p2.unbreakable) {\n bounce(p1, p2);\n }\n if (p1.getRadius() === undefined && p2.getRadius() !== undefined) {\n p1.destroy();\n }\n else if (p1.getRadius() !== undefined && p2.getRadius() === undefined) {\n p2.destroy();\n }\n else if (p1.getRadius() !== undefined && p2.getRadius() !== undefined) {\n const deleteP = p1.getRadius() >= p2.getRadius() ? p2 : p1;\n deleteP.destroy();\n }\n}\n","import { ParticlesInteractorBase, getDistance } from \"@tsparticles/engine\";\nimport { resolveCollision } from \"./ResolveCollision.js\";\nconst double = 2;\nexport class Collider extends ParticlesInteractorBase {\n constructor(container) {\n super(container);\n }\n clear() {\n }\n init() {\n }\n interact(p1, delta) {\n if (p1.destroyed || p1.spawning) {\n return;\n }\n const container = this.container, pos1 = p1.getPosition(), radius1 = p1.getRadius(), query = container.particles.quadTree.queryCircle(pos1, radius1 * double);\n for (const p2 of query) {\n if (p1 === p2 ||\n !p2.options.collisions.enable ||\n p1.options.collisions.mode !== p2.options.collisions.mode ||\n p2.destroyed ||\n p2.spawning) {\n continue;\n }\n const pos2 = p2.getPosition(), radius2 = p2.getRadius();\n if (Math.abs(Math.round(pos1.z) - Math.round(pos2.z)) > radius1 + radius2) {\n continue;\n }\n const dist = getDistance(pos1, pos2), distP = radius1 + radius2;\n if (dist > distP) {\n continue;\n }\n resolveCollision(p1, p2, delta, container.retina.pixelRatio);\n }\n }\n isEnabled(particle) {\n return particle.options.collisions.enable;\n }\n reset() {\n }\n}\n"],"names":["half","absorbFactor","minAbsorbFactor","updateAbsorb","p1","r1","p2","r2","delta","pixelRatio","factor","clamp","options","collisions","absorb","speed","size","value","destroy","fixBounceSpeed","p","undefined","collisionMaxSpeed","getRangeValue","maxSpeed","velocity","length","bounce","circleBounce","circleBounceDataFromParticle","resolveCollision","mode","getRadius","unbreakable","Collider","ParticlesInteractorBase","constructor","container","super","clear","init","interact","destroyed","spawning","this","pos1","getPosition","radius1","query","particles","quadTree","queryCircle","enable","pos2","radius2","Math","abs","round","z","getDistance","retina","isEnabled","particle","reset"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/656.c0e04b11.chunk.js","mappings":"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","sources":["../node_modules/@tsparticles/interaction-particles-collisions/browser/Absorb.js","../node_modules/@tsparticles/interaction-particles-collisions/browser/Bounce.js","../node_modules/@tsparticles/interaction-particles-collisions/browser/ResolveCollision.js","../node_modules/@tsparticles/interaction-particles-collisions/browser/Destroy.js","../node_modules/@tsparticles/interaction-particles-collisions/browser/Collider.js"],"sourcesContent":["import { clamp } from \"@tsparticles/engine\";\nconst half = 0.5, absorbFactor = 10, minAbsorbFactor = 0;\nfunction updateAbsorb(p1, r1, p2, r2, delta, pixelRatio) {\n const factor = clamp((p1.options.collisions.absorb.speed * delta.factor) / absorbFactor, minAbsorbFactor, r2);\n p1.size.value += factor * half;\n p2.size.value -= factor;\n if (r2 <= pixelRatio) {\n p2.size.value = 0;\n p2.destroy();\n }\n}\nexport function absorb(p1, p2, delta, pixelRatio) {\n const r1 = p1.getRadius(), r2 = p2.getRadius();\n if (r1 === undefined && r2 !== undefined) {\n p1.destroy();\n }\n else if (r1 !== undefined && r2 === undefined) {\n p2.destroy();\n }\n else if (r1 !== undefined && r2 !== undefined) {\n if (r1 >= r2) {\n updateAbsorb(p1, r1, p2, r2, delta, pixelRatio);\n }\n else {\n updateAbsorb(p2, r2, p1, r1, delta, pixelRatio);\n }\n }\n}\n","import { circleBounce, circleBounceDataFromParticle, getRangeValue } from \"@tsparticles/engine\";\nconst fixBounceSpeed = (p) => {\n if (p.collisionMaxSpeed === undefined) {\n p.collisionMaxSpeed = getRangeValue(p.options.collisions.maxSpeed);\n }\n if (p.velocity.length > p.collisionMaxSpeed) {\n p.velocity.length = p.collisionMaxSpeed;\n }\n};\nexport function bounce(p1, p2) {\n circleBounce(circleBounceDataFromParticle(p1), circleBounceDataFromParticle(p2));\n fixBounceSpeed(p1);\n fixBounceSpeed(p2);\n}\n","import { absorb } from \"./Absorb.js\";\nimport { bounce } from \"./Bounce.js\";\nimport { destroy } from \"./Destroy.js\";\nexport function resolveCollision(p1, p2, delta, pixelRatio) {\n switch (p1.options.collisions.mode) {\n case \"absorb\": {\n absorb(p1, p2, delta, pixelRatio);\n break;\n }\n case \"bounce\": {\n bounce(p1, p2);\n break;\n }\n case \"destroy\": {\n destroy(p1, p2);\n break;\n }\n }\n}\n","import { bounce } from \"./Bounce.js\";\nexport function destroy(p1, p2) {\n if (!p1.unbreakable && !p2.unbreakable) {\n bounce(p1, p2);\n }\n if (p1.getRadius() === undefined && p2.getRadius() !== undefined) {\n p1.destroy();\n }\n else if (p1.getRadius() !== undefined && p2.getRadius() === undefined) {\n p2.destroy();\n }\n else if (p1.getRadius() !== undefined && p2.getRadius() !== undefined) {\n const deleteP = p1.getRadius() >= p2.getRadius() ? p2 : p1;\n deleteP.destroy();\n }\n}\n","import { ParticlesInteractorBase, getDistance } from \"@tsparticles/engine\";\nimport { resolveCollision } from \"./ResolveCollision.js\";\nconst double = 2;\nexport class Collider extends ParticlesInteractorBase {\n constructor(container) {\n super(container);\n }\n clear() {\n }\n init() {\n }\n interact(p1, delta) {\n if (p1.destroyed || p1.spawning) {\n return;\n }\n const container = this.container, pos1 = p1.getPosition(), radius1 = p1.getRadius(), query = container.particles.quadTree.queryCircle(pos1, radius1 * double);\n for (const p2 of query) {\n if (p1 === p2 ||\n !p2.options.collisions.enable ||\n p1.options.collisions.mode !== p2.options.collisions.mode ||\n p2.destroyed ||\n p2.spawning) {\n continue;\n }\n const pos2 = p2.getPosition(), radius2 = p2.getRadius();\n if (Math.abs(Math.round(pos1.z) - Math.round(pos2.z)) > radius1 + radius2) {\n continue;\n }\n const dist = getDistance(pos1, pos2), distP = radius1 + radius2;\n if (dist > distP) {\n continue;\n }\n resolveCollision(p1, p2, delta, container.retina.pixelRatio);\n }\n }\n isEnabled(particle) {\n return particle.options.collisions.enable;\n }\n reset() {\n }\n}\n"],"names":["half","absorbFactor","minAbsorbFactor","updateAbsorb","p1","r1","p2","r2","delta","pixelRatio","factor","clamp","options","collisions","absorb","speed","size","value","destroy","fixBounceSpeed","p","undefined","collisionMaxSpeed","getRangeValue","maxSpeed","velocity","length","bounce","circleBounce","circleBounceDataFromParticle","resolveCollision","mode","getRadius","unbreakable","Collider","ParticlesInteractorBase","constructor","container","super","clear","init","interact","destroyed","spawning","this","pos1","getPosition","radius1","query","particles","quadTree","queryCircle","enable","pos2","radius2","Math","abs","round","z","getDistance","retina","isEnabled","particle","reset"],"sourceRoot":""} \ No newline at end of file diff --git a/build/static/js/6646.415f24f3.chunk.js b/build/static/js/6646.415f24f3.chunk.js deleted file mode 100644 index 51eb0d6..0000000 --- a/build/static/js/6646.415f24f3.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkclient=self.webpackChunkclient||[]).push([[6646],{9066:(e,s,t)=>{t.d(s,{Z:()=>n});var a=t(4409),i=t(7867),d=t(939);class n extends i._{load(e){super.load(e),e&&(this.divs=(0,a.wJ)(e.divs,(e=>{const s=new d.W;return s.load(e),s})))}}},7867:(e,s,t)=>{t.d(s,{_:()=>a});class a{constructor(){this.distance=200,this.duration=.4,this.factor=100,this.speed=1,this.maxSpeed=50,this.easing="ease-out-quad"}load(e){e&&(void 0!==e.distance&&(this.distance=e.distance),void 0!==e.duration&&(this.duration=e.duration),void 0!==e.easing&&(this.easing=e.easing),void 0!==e.factor&&(this.factor=e.factor),void 0!==e.speed&&(this.speed=e.speed),void 0!==e.maxSpeed&&(this.maxSpeed=e.maxSpeed))}}},939:(e,s,t)=>{t.d(s,{W:()=>i});var a=t(7867);class i extends a._{constructor(){super(),this.selectors=[]}load(e){super.load(e),e&&void 0!==e.selectors&&(this.selectors=e.selectors)}}},6646:(e,s,t)=>{t.d(s,{loadExternalRepulseInteraction:()=>a});t(939),t(9066);async function a(e){let s=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];await e.addInteractor("externalRepulse",(async s=>{const{Repulser:a}=await t.e(9628).then(t.bind(t,9628));return new a(e,s)}),s)}}}]); -//# sourceMappingURL=6646.415f24f3.chunk.js.map \ No newline at end of file diff --git a/build/static/js/6646.b4b0212f.chunk.js b/build/static/js/6646.b4b0212f.chunk.js new file mode 100644 index 0000000..fd0df1c --- /dev/null +++ b/build/static/js/6646.b4b0212f.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkresview=self.webpackChunkresview||[]).push([[6646],{9066:(e,s,t)=>{t.d(s,{Z:()=>o});var a=t(4409),i=t(7867),d=t(939);class o extends i._{load(e){super.load(e),e&&(this.divs=(0,a.wJ)(e.divs,(e=>{const s=new d.W;return s.load(e),s})))}}},7867:(e,s,t)=>{t.d(s,{_:()=>a});class a{constructor(){this.distance=200,this.duration=.4,this.factor=100,this.speed=1,this.maxSpeed=50,this.easing="ease-out-quad"}load(e){e&&(void 0!==e.distance&&(this.distance=e.distance),void 0!==e.duration&&(this.duration=e.duration),void 0!==e.easing&&(this.easing=e.easing),void 0!==e.factor&&(this.factor=e.factor),void 0!==e.speed&&(this.speed=e.speed),void 0!==e.maxSpeed&&(this.maxSpeed=e.maxSpeed))}}},939:(e,s,t)=>{t.d(s,{W:()=>i});var a=t(7867);class i extends a._{constructor(){super(),this.selectors=[]}load(e){super.load(e),e&&void 0!==e.selectors&&(this.selectors=e.selectors)}}},6646:(e,s,t)=>{t.d(s,{loadExternalRepulseInteraction:()=>a});t(939),t(9066);async function a(e){let s=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];await e.addInteractor("externalRepulse",(async s=>{const{Repulser:a}=await t.e(9628).then(t.bind(t,9628));return new a(e,s)}),s)}}}]); +//# sourceMappingURL=6646.b4b0212f.chunk.js.map \ No newline at end of file diff --git a/build/static/js/6646.415f24f3.chunk.js.map b/build/static/js/6646.b4b0212f.chunk.js.map similarity index 96% rename from build/static/js/6646.415f24f3.chunk.js.map rename to build/static/js/6646.b4b0212f.chunk.js.map index 6f2fbab..c151351 100644 --- a/build/static/js/6646.415f24f3.chunk.js.map +++ b/build/static/js/6646.b4b0212f.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/6646.415f24f3.chunk.js","mappings":"kJAGO,MAAMA,UAAgBC,EAAAA,EACzBC,IAAAA,CAAKC,GACDC,MAAMF,KAAKC,GACNA,IAGLE,KAAKC,MAAOC,EAAAA,EAAAA,IAA0BJ,EAAKG,MAAOE,IAC9C,MAAMC,EAAM,IAAIC,EAAAA,EAEhB,OADAD,EAAIP,KAAKM,GACFC,CAAG,IAElB,E,kCCdG,MAAMR,EACTU,WAAAA,GACIN,KAAKO,SAAW,IAChBP,KAAKQ,SAAW,GAChBR,KAAKS,OAAS,IACdT,KAAKU,MAAQ,EACbV,KAAKW,SAAW,GAChBX,KAAKY,OAAS,eAClB,CACAf,IAAAA,CAAKC,GACIA,SAGiBe,IAAlBf,EAAKS,WACLP,KAAKO,SAAWT,EAAKS,eAEHM,IAAlBf,EAAKU,WACLR,KAAKQ,SAAWV,EAAKU,eAELK,IAAhBf,EAAKc,SACLZ,KAAKY,OAASd,EAAKc,aAEHC,IAAhBf,EAAKW,SACLT,KAAKS,OAASX,EAAKW,aAEJI,IAAff,EAAKY,QACLV,KAAKU,MAAQZ,EAAKY,YAEAG,IAAlBf,EAAKa,WACLX,KAAKW,SAAWb,EAAKa,UAE7B,E,+CC9BG,MAAMN,UAAmBT,EAAAA,EAC5BU,WAAAA,GACIP,QACAC,KAAKc,UAAY,EACrB,CACAjB,IAAAA,CAAKC,GACDC,MAAMF,KAAKC,GACNA,QAGkBe,IAAnBf,EAAKgB,YACLd,KAAKc,UAAYhB,EAAKgB,UAE9B,E,8ECdGC,eAAeC,EAA+BC,GAAwB,IAAhBC,IAAOC,UAAAC,OAAA,QAAAP,IAAAM,UAAA,KAAAA,UAAA,SAC1DF,EAAOI,cAAc,mBAAmBN,UAC1C,MAAM,SAAEO,SAAmB,+BAC3B,OAAO,IAAIA,EAASL,EAAQM,EAAU,GACvCL,EACP,C","sources":["../node_modules/@tsparticles/interaction-external-repulse/browser/Options/Classes/Repulse.js","../node_modules/@tsparticles/interaction-external-repulse/browser/Options/Classes/RepulseBase.js","../node_modules/@tsparticles/interaction-external-repulse/browser/Options/Classes/RepulseDiv.js","../node_modules/@tsparticles/interaction-external-repulse/browser/index.js"],"sourcesContent":["import { executeOnSingleOrMultiple, } from \"@tsparticles/engine\";\nimport { RepulseBase } from \"./RepulseBase.js\";\nimport { RepulseDiv } from \"./RepulseDiv.js\";\nexport class Repulse extends RepulseBase {\n load(data) {\n super.load(data);\n if (!data) {\n return;\n }\n this.divs = executeOnSingleOrMultiple(data.divs, (div) => {\n const tmp = new RepulseDiv();\n tmp.load(div);\n return tmp;\n });\n }\n}\n","export class RepulseBase {\n constructor() {\n this.distance = 200;\n this.duration = 0.4;\n this.factor = 100;\n this.speed = 1;\n this.maxSpeed = 50;\n this.easing = \"ease-out-quad\";\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n if (data.duration !== undefined) {\n this.duration = data.duration;\n }\n if (data.easing !== undefined) {\n this.easing = data.easing;\n }\n if (data.factor !== undefined) {\n this.factor = data.factor;\n }\n if (data.speed !== undefined) {\n this.speed = data.speed;\n }\n if (data.maxSpeed !== undefined) {\n this.maxSpeed = data.maxSpeed;\n }\n }\n}\n","import { RepulseBase } from \"./RepulseBase.js\";\nexport class RepulseDiv extends RepulseBase {\n constructor() {\n super();\n this.selectors = [];\n }\n load(data) {\n super.load(data);\n if (!data) {\n return;\n }\n if (data.selectors !== undefined) {\n this.selectors = data.selectors;\n }\n }\n}\n","export async function loadExternalRepulseInteraction(engine, refresh = true) {\n await engine.addInteractor(\"externalRepulse\", async (container) => {\n const { Repulser } = await import(\"./Repulser.js\");\n return new Repulser(engine, container);\n }, refresh);\n}\nexport * from \"./Options/Classes/RepulseBase.js\";\nexport * from \"./Options/Classes/RepulseDiv.js\";\nexport * from \"./Options/Classes/Repulse.js\";\nexport * from \"./Options/Interfaces/IRepulseBase.js\";\nexport * from \"./Options/Interfaces/IRepulseDiv.js\";\nexport * from \"./Options/Interfaces/IRepulse.js\";\n"],"names":["Repulse","RepulseBase","load","data","super","this","divs","executeOnSingleOrMultiple","div","tmp","RepulseDiv","constructor","distance","duration","factor","speed","maxSpeed","easing","undefined","selectors","async","loadExternalRepulseInteraction","engine","refresh","arguments","length","addInteractor","Repulser","container"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/6646.b4b0212f.chunk.js","mappings":"oJAGO,MAAMA,UAAgBC,EAAAA,EACzBC,IAAAA,CAAKC,GACDC,MAAMF,KAAKC,GACNA,IAGLE,KAAKC,MAAOC,EAAAA,EAAAA,IAA0BJ,EAAKG,MAAOE,IAC9C,MAAMC,EAAM,IAAIC,EAAAA,EAEhB,OADAD,EAAIP,KAAKM,GACFC,CAAG,IAElB,E,kCCdG,MAAMR,EACTU,WAAAA,GACIN,KAAKO,SAAW,IAChBP,KAAKQ,SAAW,GAChBR,KAAKS,OAAS,IACdT,KAAKU,MAAQ,EACbV,KAAKW,SAAW,GAChBX,KAAKY,OAAS,eAClB,CACAf,IAAAA,CAAKC,GACIA,SAGiBe,IAAlBf,EAAKS,WACLP,KAAKO,SAAWT,EAAKS,eAEHM,IAAlBf,EAAKU,WACLR,KAAKQ,SAAWV,EAAKU,eAELK,IAAhBf,EAAKc,SACLZ,KAAKY,OAASd,EAAKc,aAEHC,IAAhBf,EAAKW,SACLT,KAAKS,OAASX,EAAKW,aAEJI,IAAff,EAAKY,QACLV,KAAKU,MAAQZ,EAAKY,YAEAG,IAAlBf,EAAKa,WACLX,KAAKW,SAAWb,EAAKa,UAE7B,E,+CC9BG,MAAMN,UAAmBT,EAAAA,EAC5BU,WAAAA,GACIP,QACAC,KAAKc,UAAY,EACrB,CACAjB,IAAAA,CAAKC,GACDC,MAAMF,KAAKC,GACNA,QAGkBe,IAAnBf,EAAKgB,YACLd,KAAKc,UAAYhB,EAAKgB,UAE9B,E,8ECdGC,eAAeC,EAA+BC,GAAwB,IAAhBC,IAAOC,UAAAC,OAAA,QAAAP,IAAAM,UAAA,KAAAA,UAAA,SAC1DF,EAAOI,cAAc,mBAAmBN,UAC1C,MAAM,SAAEO,SAAmB,+BAC3B,OAAO,IAAIA,EAASL,EAAQM,EAAU,GACvCL,EACP,C","sources":["../node_modules/@tsparticles/interaction-external-repulse/browser/Options/Classes/Repulse.js","../node_modules/@tsparticles/interaction-external-repulse/browser/Options/Classes/RepulseBase.js","../node_modules/@tsparticles/interaction-external-repulse/browser/Options/Classes/RepulseDiv.js","../node_modules/@tsparticles/interaction-external-repulse/browser/index.js"],"sourcesContent":["import { executeOnSingleOrMultiple, } from \"@tsparticles/engine\";\nimport { RepulseBase } from \"./RepulseBase.js\";\nimport { RepulseDiv } from \"./RepulseDiv.js\";\nexport class Repulse extends RepulseBase {\n load(data) {\n super.load(data);\n if (!data) {\n return;\n }\n this.divs = executeOnSingleOrMultiple(data.divs, (div) => {\n const tmp = new RepulseDiv();\n tmp.load(div);\n return tmp;\n });\n }\n}\n","export class RepulseBase {\n constructor() {\n this.distance = 200;\n this.duration = 0.4;\n this.factor = 100;\n this.speed = 1;\n this.maxSpeed = 50;\n this.easing = \"ease-out-quad\";\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n if (data.duration !== undefined) {\n this.duration = data.duration;\n }\n if (data.easing !== undefined) {\n this.easing = data.easing;\n }\n if (data.factor !== undefined) {\n this.factor = data.factor;\n }\n if (data.speed !== undefined) {\n this.speed = data.speed;\n }\n if (data.maxSpeed !== undefined) {\n this.maxSpeed = data.maxSpeed;\n }\n }\n}\n","import { RepulseBase } from \"./RepulseBase.js\";\nexport class RepulseDiv extends RepulseBase {\n constructor() {\n super();\n this.selectors = [];\n }\n load(data) {\n super.load(data);\n if (!data) {\n return;\n }\n if (data.selectors !== undefined) {\n this.selectors = data.selectors;\n }\n }\n}\n","export async function loadExternalRepulseInteraction(engine, refresh = true) {\n await engine.addInteractor(\"externalRepulse\", async (container) => {\n const { Repulser } = await import(\"./Repulser.js\");\n return new Repulser(engine, container);\n }, refresh);\n}\nexport * from \"./Options/Classes/RepulseBase.js\";\nexport * from \"./Options/Classes/RepulseDiv.js\";\nexport * from \"./Options/Classes/Repulse.js\";\nexport * from \"./Options/Interfaces/IRepulseBase.js\";\nexport * from \"./Options/Interfaces/IRepulseDiv.js\";\nexport * from \"./Options/Interfaces/IRepulse.js\";\n"],"names":["Repulse","RepulseBase","load","data","super","this","divs","executeOnSingleOrMultiple","div","tmp","RepulseDiv","constructor","distance","duration","factor","speed","maxSpeed","easing","undefined","selectors","async","loadExternalRepulseInteraction","engine","refresh","arguments","length","addInteractor","Repulser","container"],"sourceRoot":""} \ No newline at end of file diff --git a/build/static/js/6725.7c418f57.chunk.js b/build/static/js/6725.7c418f57.chunk.js new file mode 100644 index 0000000..79bc148 --- /dev/null +++ b/build/static/js/6725.7c418f57.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkresview=self.webpackChunkresview||[]).push([[6725],{6725:(t,e,a)=>{async function n(t){let e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];await t.addInteractor("externalAttract",(async e=>{const{Attractor:n}=await a.e(7055).then(a.bind(a,7055));return new n(t,e)}),e)}a.d(e,{loadExternalAttractInteraction:()=>n})}}]); +//# sourceMappingURL=6725.7c418f57.chunk.js.map \ No newline at end of file diff --git a/build/static/js/6725.bdc61d81.chunk.js.map b/build/static/js/6725.7c418f57.chunk.js.map similarity index 85% rename from build/static/js/6725.bdc61d81.chunk.js.map rename to build/static/js/6725.7c418f57.chunk.js.map index 5ef84e1..0f9dc7a 100644 --- a/build/static/js/6725.bdc61d81.chunk.js.map +++ b/build/static/js/6725.7c418f57.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/6725.bdc61d81.chunk.js","mappings":"gGAAOA,eAAeC,EAA+BC,GAAwB,IAAhBC,IAAOC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,KAAAA,UAAA,SAC1DF,EAAOK,cAAc,mBAAmBP,UAC1C,MAAM,UAAEQ,SAAoB,+BAC5B,OAAO,IAAIA,EAAUN,EAAQO,EAAU,GACxCN,EACP,C","sources":["../node_modules/@tsparticles/interaction-external-attract/browser/index.js"],"sourcesContent":["export async function loadExternalAttractInteraction(engine, refresh = true) {\n await engine.addInteractor(\"externalAttract\", async (container) => {\n const { Attractor } = await import(\"./Attractor.js\");\n return new Attractor(engine, container);\n }, refresh);\n}\nexport * from \"./Options/Classes/Attract.js\";\nexport * from \"./Options/Interfaces/IAttract.js\";\n"],"names":["async","loadExternalAttractInteraction","engine","refresh","arguments","length","undefined","addInteractor","Attractor","container"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/6725.7c418f57.chunk.js","mappings":"kGAAOA,eAAeC,EAA+BC,GAAwB,IAAhBC,IAAOC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,KAAAA,UAAA,SAC1DF,EAAOK,cAAc,mBAAmBP,UAC1C,MAAM,UAAEQ,SAAoB,+BAC5B,OAAO,IAAIA,EAAUN,EAAQO,EAAU,GACxCN,EACP,C","sources":["../node_modules/@tsparticles/interaction-external-attract/browser/index.js"],"sourcesContent":["export async function loadExternalAttractInteraction(engine, refresh = true) {\n await engine.addInteractor(\"externalAttract\", async (container) => {\n const { Attractor } = await import(\"./Attractor.js\");\n return new Attractor(engine, container);\n }, refresh);\n}\nexport * from \"./Options/Classes/Attract.js\";\nexport * from \"./Options/Interfaces/IAttract.js\";\n"],"names":["async","loadExternalAttractInteraction","engine","refresh","arguments","length","undefined","addInteractor","Attractor","container"],"sourceRoot":""} \ No newline at end of file diff --git a/build/static/js/6725.bdc61d81.chunk.js b/build/static/js/6725.bdc61d81.chunk.js deleted file mode 100644 index 9757c87..0000000 --- a/build/static/js/6725.bdc61d81.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkclient=self.webpackChunkclient||[]).push([[6725],{6725:(t,n,e)=>{async function a(t){let n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];await t.addInteractor("externalAttract",(async n=>{const{Attractor:a}=await e.e(7055).then(e.bind(e,7055));return new a(t,n)}),n)}e.d(n,{loadExternalAttractInteraction:()=>a})}}]); -//# sourceMappingURL=6725.bdc61d81.chunk.js.map \ No newline at end of file diff --git a/build/static/js/6864.6844ce13.chunk.js b/build/static/js/6864.6844ce13.chunk.js new file mode 100644 index 0000000..87899ce --- /dev/null +++ b/build/static/js/6864.6844ce13.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkresview=self.webpackChunkresview||[]).push([[6864],{6864:(n,e,i)=>{async function s(n){let e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];const{LinksPlugin:s}=await i.e(5033).then(i.bind(i,5033)),a=new s;await n.addPlugin(a,e)}i.d(e,{loadLinksPlugin:()=>s})}}]); +//# sourceMappingURL=6864.6844ce13.chunk.js.map \ No newline at end of file diff --git a/build/static/js/6864.cd68bd11.chunk.js.map b/build/static/js/6864.6844ce13.chunk.js.map similarity index 81% rename from build/static/js/6864.cd68bd11.chunk.js.map rename to build/static/js/6864.6844ce13.chunk.js.map index 9e39d4c..043070a 100644 --- a/build/static/js/6864.cd68bd11.chunk.js.map +++ b/build/static/js/6864.6844ce13.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/6864.cd68bd11.chunk.js","mappings":"gGAAOA,eAAeC,EAAgBC,GAAwB,IAAhBC,IAAOC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,KAAAA,UAAA,GACjD,MAAM,YAAEG,SAAsB,+BAA4BC,EAAS,IAAID,QACjEL,EAAOO,UAAUD,EAAQL,EACnC,C","sources":["../node_modules/@tsparticles/interaction-particles-links/browser/plugin.js"],"sourcesContent":["export async function loadLinksPlugin(engine, refresh = true) {\n const { LinksPlugin } = await import(\"./LinksPlugin.js\"), plugin = new LinksPlugin();\n await engine.addPlugin(plugin, refresh);\n}\n"],"names":["async","loadLinksPlugin","engine","refresh","arguments","length","undefined","LinksPlugin","plugin","addPlugin"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/6864.6844ce13.chunk.js","mappings":"kGAAOA,eAAeC,EAAgBC,GAAwB,IAAhBC,IAAOC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,KAAAA,UAAA,GACjD,MAAM,YAAEG,SAAsB,+BAA4BC,EAAS,IAAID,QACjEL,EAAOO,UAAUD,EAAQL,EACnC,C","sources":["../node_modules/@tsparticles/interaction-particles-links/browser/plugin.js"],"sourcesContent":["export async function loadLinksPlugin(engine, refresh = true) {\n const { LinksPlugin } = await import(\"./LinksPlugin.js\"), plugin = new LinksPlugin();\n await engine.addPlugin(plugin, refresh);\n}\n"],"names":["async","loadLinksPlugin","engine","refresh","arguments","length","undefined","LinksPlugin","plugin","addPlugin"],"sourceRoot":""} \ No newline at end of file diff --git a/build/static/js/6864.cd68bd11.chunk.js b/build/static/js/6864.cd68bd11.chunk.js deleted file mode 100644 index a64e818..0000000 --- a/build/static/js/6864.cd68bd11.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkclient=self.webpackChunkclient||[]).push([[6864],{6864:(n,i,e)=>{async function t(n){let i=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];const{LinksPlugin:t}=await e.e(5033).then(e.bind(e,5033)),l=new t;await n.addPlugin(l,i)}e.d(i,{loadLinksPlugin:()=>t})}}]); -//# sourceMappingURL=6864.cd68bd11.chunk.js.map \ No newline at end of file diff --git a/build/static/js/6964.115a673c.chunk.js b/build/static/js/6964.115a673c.chunk.js deleted file mode 100644 index 0e556e2..0000000 --- a/build/static/js/6964.115a673c.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkclient=self.webpackChunkclient||[]).push([[6964],{6964:(t,o,i)=>{i.d(o,{Slower:()=>e});var s=i(4409);class n{constructor(){this.factor=3,this.radius=200}load(t){t&&(void 0!==t.factor&&(this.factor=t.factor),void 0!==t.radius&&(this.radius=t.radius))}}class e extends s.sJ{constructor(t){super(t)}clear(t,o,i){t.slow.inRange&&!i||(t.slow.factor=1)}init(){const t=this.container,o=t.actualOptions.interactivity.modes.slow;o&&(t.retina.slowModeRadius=o.radius*t.retina.pixelRatio)}interact(){}isEnabled(t){var o;const i=this.container,n=i.interactivity.mouse,e=(null!==(o=null===t||void 0===t?void 0:t.interactivity)&&void 0!==o?o:i.actualOptions.interactivity).events;return e.onHover.enable&&!!n.position&&(0,s.hn)("slow",e.onHover.mode)}loadModeOptions(t){t.slow||(t.slow=new n);for(var o=arguments.length,i=new Array(o>1?o-1:0),s=1;se||(u.inRange=!0,u.factor=l/d)}}}}]); -//# sourceMappingURL=6964.115a673c.chunk.js.map \ No newline at end of file diff --git a/build/static/js/6964.c07f1e98.chunk.js b/build/static/js/6964.c07f1e98.chunk.js new file mode 100644 index 0000000..2ff63c2 --- /dev/null +++ b/build/static/js/6964.c07f1e98.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkresview=self.webpackChunkresview||[]).push([[6964],{6964:(t,o,i)=>{i.d(o,{Slower:()=>n});var s=i(4409);class e{constructor(){this.factor=3,this.radius=200}load(t){t&&(void 0!==t.factor&&(this.factor=t.factor),void 0!==t.radius&&(this.radius=t.radius))}}class n extends s.sJ{constructor(t){super(t)}clear(t,o,i){t.slow.inRange&&!i||(t.slow.factor=1)}init(){const t=this.container,o=t.actualOptions.interactivity.modes.slow;o&&(t.retina.slowModeRadius=o.radius*t.retina.pixelRatio)}interact(){}isEnabled(t){var o;const i=this.container,e=i.interactivity.mouse,n=(null!==(o=null===t||void 0===t?void 0:t.interactivity)&&void 0!==o?o:i.actualOptions.interactivity).events;return n.onHover.enable&&!!e.position&&(0,s.hn)("slow",n.onHover.mode)}loadModeOptions(t){t.slow||(t.slow=new e);for(var o=arguments.length,i=new Array(o>1?o-1:0),s=1;sn||(u.inRange=!0,u.factor=l/d)}}}}]); +//# sourceMappingURL=6964.c07f1e98.chunk.js.map \ No newline at end of file diff --git a/build/static/js/6964.115a673c.chunk.js.map b/build/static/js/6964.c07f1e98.chunk.js.map similarity index 97% rename from build/static/js/6964.115a673c.chunk.js.map rename to build/static/js/6964.c07f1e98.chunk.js.map index 2163ab6..e27eaf9 100644 --- a/build/static/js/6964.115a673c.chunk.js.map +++ b/build/static/js/6964.c07f1e98.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/6964.115a673c.chunk.js","mappings":"oIAAO,MAAMA,EACTC,WAAAA,GACIC,KAAKC,OAAS,EACdD,KAAKE,OAAS,GAClB,CACAC,IAAAA,CAAKC,GACIA,SAGeC,IAAhBD,EAAKH,SACLD,KAAKC,OAASG,EAAKH,aAEHI,IAAhBD,EAAKF,SACLF,KAAKE,OAASE,EAAKF,QAE3B,ECZG,MAAMI,UAAeC,EAAAA,GACxBR,WAAAA,CAAYS,GACRC,MAAMD,EACV,CACAE,KAAAA,CAAMC,EAAUC,EAAOC,GACfF,EAASG,KAAKC,UAAYF,IAG9BF,EAASG,KAAKb,OAAS,EAC3B,CACAe,IAAAA,GACI,MAAMR,EAAYR,KAAKQ,UAAWM,EAAON,EAAUS,cAAcC,cAAcC,MAAML,KAChFA,IAGLN,EAAUY,OAAOC,eAAiBP,EAAKZ,OAASM,EAAUY,OAAOE,WACrE,CACAC,QAAAA,GACA,CACAC,SAAAA,CAAUb,GAAU,IAAAc,EAChB,MAAMjB,EAAYR,KAAKQ,UAAWkB,EAAQlB,EAAUU,cAAcQ,MAAOC,GAAiC,QAAxBF,EAAS,OAARd,QAAQ,IAARA,OAAQ,EAARA,EAAUO,qBAAa,IAAAO,EAAAA,EAAIjB,EAAUS,cAAcC,eAAeS,OACrJ,OAAOA,EAAOC,QAAQC,UAAYH,EAAMI,WAAYC,EAAAA,EAAAA,IAtB3C,OAsB+DJ,EAAOC,QAAQI,KAC3F,CACAC,eAAAA,CAAgBC,GACPA,EAAQpB,OACToB,EAAQpB,KAAO,IAAIhB,GACtB,QAAAqC,EAAAC,UAAAC,OAHuBC,EAAO,IAAAC,MAAAJ,EAAA,EAAAA,EAAA,KAAAK,EAAA,EAAAA,EAAAL,EAAAK,IAAPF,EAAOE,EAAA,GAAAJ,UAAAI,GAI/B,IAAK,MAAMC,KAAUH,EACjBJ,EAAQpB,KAAKX,KAAW,OAANsC,QAAM,IAANA,OAAM,EAANA,EAAQ3B,KAElC,CACA4B,KAAAA,CAAM/B,GACFA,EAASG,KAAKC,SAAU,EACxB,MAAMP,EAAYR,KAAKQ,UAAW0B,EAAU1B,EAAUS,cAAe0B,EAAWnC,EAAUU,cAAcQ,MAAMI,SAAU5B,EAASM,EAAUY,OAAOC,eAAgBuB,EAAcV,EAAQhB,cAAcC,MAAML,KAC5M,IAAK8B,IAAgB1C,GAAUA,EAnCF,IAmCyByC,EAClD,OAEJ,MAAME,EAAclC,EAASmC,cAAeC,GAAOC,EAAAA,EAAAA,IAAYL,EAAUE,GAAcI,EAAkBF,EAAO7C,EAAQgD,EAAaN,EAAY3C,QAAQ,KAAEa,GAASH,EAChKoC,EAAO7C,IAGXY,EAAKC,SAAU,EACfD,EAAKb,OAASgD,EAAkBC,EACpC,E","sources":["../node_modules/@tsparticles/interaction-external-slow/browser/Options/Classes/Slow.js","../node_modules/@tsparticles/interaction-external-slow/browser/Slower.js"],"sourcesContent":["export class Slow {\n constructor() {\n this.factor = 3;\n this.radius = 200;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.factor !== undefined) {\n this.factor = data.factor;\n }\n if (data.radius !== undefined) {\n this.radius = data.radius;\n }\n }\n}\n","import { ExternalInteractorBase, getDistance, isInArray, } from \"@tsparticles/engine\";\nimport { Slow } from \"./Options/Classes/Slow.js\";\nconst slowMode = \"slow\", minRadius = 0;\nexport class Slower extends ExternalInteractorBase {\n constructor(container) {\n super(container);\n }\n clear(particle, delta, force) {\n if (particle.slow.inRange && !force) {\n return;\n }\n particle.slow.factor = 1;\n }\n init() {\n const container = this.container, slow = container.actualOptions.interactivity.modes.slow;\n if (!slow) {\n return;\n }\n container.retina.slowModeRadius = slow.radius * container.retina.pixelRatio;\n }\n interact() {\n }\n isEnabled(particle) {\n const container = this.container, mouse = container.interactivity.mouse, events = (particle?.interactivity ?? container.actualOptions.interactivity).events;\n return events.onHover.enable && !!mouse.position && isInArray(slowMode, events.onHover.mode);\n }\n loadModeOptions(options, ...sources) {\n if (!options.slow) {\n options.slow = new Slow();\n }\n for (const source of sources) {\n options.slow.load(source?.slow);\n }\n }\n reset(particle) {\n particle.slow.inRange = false;\n const container = this.container, options = container.actualOptions, mousePos = container.interactivity.mouse.position, radius = container.retina.slowModeRadius, slowOptions = options.interactivity.modes.slow;\n if (!slowOptions || !radius || radius < minRadius || !mousePos) {\n return;\n }\n const particlePos = particle.getPosition(), dist = getDistance(mousePos, particlePos), proximityFactor = dist / radius, slowFactor = slowOptions.factor, { slow } = particle;\n if (dist > radius) {\n return;\n }\n slow.inRange = true;\n slow.factor = proximityFactor / slowFactor;\n }\n}\n"],"names":["Slow","constructor","this","factor","radius","load","data","undefined","Slower","ExternalInteractorBase","container","super","clear","particle","delta","force","slow","inRange","init","actualOptions","interactivity","modes","retina","slowModeRadius","pixelRatio","interact","isEnabled","_particle$interactivi","mouse","events","onHover","enable","position","isInArray","mode","loadModeOptions","options","_len","arguments","length","sources","Array","_key","source","reset","mousePos","slowOptions","particlePos","getPosition","dist","getDistance","proximityFactor","slowFactor"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/6964.c07f1e98.chunk.js","mappings":"sIAAO,MAAMA,EACTC,WAAAA,GACIC,KAAKC,OAAS,EACdD,KAAKE,OAAS,GAClB,CACAC,IAAAA,CAAKC,GACIA,SAGeC,IAAhBD,EAAKH,SACLD,KAAKC,OAASG,EAAKH,aAEHI,IAAhBD,EAAKF,SACLF,KAAKE,OAASE,EAAKF,QAE3B,ECZG,MAAMI,UAAeC,EAAAA,GACxBR,WAAAA,CAAYS,GACRC,MAAMD,EACV,CACAE,KAAAA,CAAMC,EAAUC,EAAOC,GACfF,EAASG,KAAKC,UAAYF,IAG9BF,EAASG,KAAKb,OAAS,EAC3B,CACAe,IAAAA,GACI,MAAMR,EAAYR,KAAKQ,UAAWM,EAAON,EAAUS,cAAcC,cAAcC,MAAML,KAChFA,IAGLN,EAAUY,OAAOC,eAAiBP,EAAKZ,OAASM,EAAUY,OAAOE,WACrE,CACAC,QAAAA,GACA,CACAC,SAAAA,CAAUb,GAAU,IAAAc,EAChB,MAAMjB,EAAYR,KAAKQ,UAAWkB,EAAQlB,EAAUU,cAAcQ,MAAOC,GAAiC,QAAxBF,EAAS,OAARd,QAAQ,IAARA,OAAQ,EAARA,EAAUO,qBAAa,IAAAO,EAAAA,EAAIjB,EAAUS,cAAcC,eAAeS,OACrJ,OAAOA,EAAOC,QAAQC,UAAYH,EAAMI,WAAYC,EAAAA,EAAAA,IAtB3C,OAsB+DJ,EAAOC,QAAQI,KAC3F,CACAC,eAAAA,CAAgBC,GACPA,EAAQpB,OACToB,EAAQpB,KAAO,IAAIhB,GACtB,QAAAqC,EAAAC,UAAAC,OAHuBC,EAAO,IAAAC,MAAAJ,EAAA,EAAAA,EAAA,KAAAK,EAAA,EAAAA,EAAAL,EAAAK,IAAPF,EAAOE,EAAA,GAAAJ,UAAAI,GAI/B,IAAK,MAAMC,KAAUH,EACjBJ,EAAQpB,KAAKX,KAAW,OAANsC,QAAM,IAANA,OAAM,EAANA,EAAQ3B,KAElC,CACA4B,KAAAA,CAAM/B,GACFA,EAASG,KAAKC,SAAU,EACxB,MAAMP,EAAYR,KAAKQ,UAAW0B,EAAU1B,EAAUS,cAAe0B,EAAWnC,EAAUU,cAAcQ,MAAMI,SAAU5B,EAASM,EAAUY,OAAOC,eAAgBuB,EAAcV,EAAQhB,cAAcC,MAAML,KAC5M,IAAK8B,IAAgB1C,GAAUA,EAnCF,IAmCyByC,EAClD,OAEJ,MAAME,EAAclC,EAASmC,cAAeC,GAAOC,EAAAA,EAAAA,IAAYL,EAAUE,GAAcI,EAAkBF,EAAO7C,EAAQgD,EAAaN,EAAY3C,QAAQ,KAAEa,GAASH,EAChKoC,EAAO7C,IAGXY,EAAKC,SAAU,EACfD,EAAKb,OAASgD,EAAkBC,EACpC,E","sources":["../node_modules/@tsparticles/interaction-external-slow/browser/Options/Classes/Slow.js","../node_modules/@tsparticles/interaction-external-slow/browser/Slower.js"],"sourcesContent":["export class Slow {\n constructor() {\n this.factor = 3;\n this.radius = 200;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.factor !== undefined) {\n this.factor = data.factor;\n }\n if (data.radius !== undefined) {\n this.radius = data.radius;\n }\n }\n}\n","import { ExternalInteractorBase, getDistance, isInArray, } from \"@tsparticles/engine\";\nimport { Slow } from \"./Options/Classes/Slow.js\";\nconst slowMode = \"slow\", minRadius = 0;\nexport class Slower extends ExternalInteractorBase {\n constructor(container) {\n super(container);\n }\n clear(particle, delta, force) {\n if (particle.slow.inRange && !force) {\n return;\n }\n particle.slow.factor = 1;\n }\n init() {\n const container = this.container, slow = container.actualOptions.interactivity.modes.slow;\n if (!slow) {\n return;\n }\n container.retina.slowModeRadius = slow.radius * container.retina.pixelRatio;\n }\n interact() {\n }\n isEnabled(particle) {\n const container = this.container, mouse = container.interactivity.mouse, events = (particle?.interactivity ?? container.actualOptions.interactivity).events;\n return events.onHover.enable && !!mouse.position && isInArray(slowMode, events.onHover.mode);\n }\n loadModeOptions(options, ...sources) {\n if (!options.slow) {\n options.slow = new Slow();\n }\n for (const source of sources) {\n options.slow.load(source?.slow);\n }\n }\n reset(particle) {\n particle.slow.inRange = false;\n const container = this.container, options = container.actualOptions, mousePos = container.interactivity.mouse.position, radius = container.retina.slowModeRadius, slowOptions = options.interactivity.modes.slow;\n if (!slowOptions || !radius || radius < minRadius || !mousePos) {\n return;\n }\n const particlePos = particle.getPosition(), dist = getDistance(mousePos, particlePos), proximityFactor = dist / radius, slowFactor = slowOptions.factor, { slow } = particle;\n if (dist > radius) {\n return;\n }\n slow.inRange = true;\n slow.factor = proximityFactor / slowFactor;\n }\n}\n"],"names":["Slow","constructor","this","factor","radius","load","data","undefined","Slower","ExternalInteractorBase","container","super","clear","particle","delta","force","slow","inRange","init","actualOptions","interactivity","modes","retina","slowModeRadius","pixelRatio","interact","isEnabled","_particle$interactivi","mouse","events","onHover","enable","position","isInArray","mode","loadModeOptions","options","_len","arguments","length","sources","Array","_key","source","reset","mousePos","slowOptions","particlePos","getPosition","dist","getDistance","proximityFactor","slowFactor"],"sourceRoot":""} \ No newline at end of file diff --git a/build/static/js/7055.17c02ac8.chunk.js b/build/static/js/7055.17c02ac8.chunk.js deleted file mode 100644 index 9943554..0000000 --- a/build/static/js/7055.17c02ac8.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkclient=self.webpackChunkclient||[]).push([[7055],{7055:(t,i,a)=>{a.d(i,{Attractor:()=>d});var e=a(4409);const n=1,c=1;function o(t,i,a,o,s){const r=t.actualOptions.interactivity.modes.attract;if(!r)return;const d=t.particles.quadTree.query(o,s);for(const l of d){const{dx:t,dy:o,distance:s}=(0,e.vr)(l.position,i),d=r.speed*r.factor,u=(0,e.qE)((0,e.il)(r.easing)(c-s/a)*d,n,r.maxSpeed),h=e.Mi.create(s?t/s*u:d,s?o/s*u:d);l.position.subFrom(h)}}class s{constructor(){this.distance=200,this.duration=.4,this.easing="ease-out-quad",this.factor=1,this.maxSpeed=50,this.speed=1}load(t){t&&(void 0!==t.distance&&(this.distance=t.distance),void 0!==t.duration&&(this.duration=t.duration),void 0!==t.easing&&(this.easing=t.easing),void 0!==t.factor&&(this.factor=t.factor),void 0!==t.maxSpeed&&(this.maxSpeed=t.maxSpeed),void 0!==t.speed&&(this.speed=t.speed))}}const r="attract";class d extends e.sJ{constructor(t,i){super(i),this._engine=t,i.attract||(i.attract={particles:[]}),this.handleClickMode=t=>{const a=this.container.actualOptions.interactivity.modes.attract;if(a&&t===r){i.attract||(i.attract={particles:[]}),i.attract.clicking=!0,i.attract.count=0;for(const t of i.attract.particles)this.isEnabled(t)&&t.velocity.setTo(t.initialVelocity);i.attract.particles=[],i.attract.finish=!1,setTimeout((()=>{i.destroyed||(i.attract||(i.attract={particles:[]}),i.attract.clicking=!1)}),a.duration*e.Xu)}}}clear(){}init(){const t=this.container,i=t.actualOptions.interactivity.modes.attract;i&&(t.retina.attractModeDistance=i.distance*t.retina.pixelRatio)}interact(){const t=this.container,i=t.actualOptions,a=t.interactivity.status===e.Rb,n=i.interactivity.events,{enable:c,mode:s}=n.onHover,{enable:d,mode:l}=n.onClick;a&&c&&(0,e.hn)(r,s)?function(t,i){const a=t.interactivity.mouse.position,n=t.retina.attractModeDistance;!n||n<0||!a||o(t,a,n,new e.jl(a.x,a.y,n),(t=>i(t)))}(this.container,(t=>this.isEnabled(t))):d&&(0,e.hn)(r,l)&&function(t,i){t.attract||(t.attract={particles:[]});const{attract:a}=t;if(a.finish||(a.count||(a.count=0),a.count++,a.count===t.particles.count&&(a.finish=!0)),a.clicking){const a=t.interactivity.mouse.clickPosition,n=t.retina.attractModeDistance;if(!n||n<0||!a)return;o(t,a,n,new e.jl(a.x,a.y,n),(t=>i(t)))}else!1===a.clicking&&(a.particles=[])}(this.container,(t=>this.isEnabled(t)))}isEnabled(t){var i;const a=this.container,n=a.actualOptions,c=a.interactivity.mouse,o=(null!==(i=null===t||void 0===t?void 0:t.interactivity)&&void 0!==i?i:n.interactivity).events;if((!c.position||!o.onHover.enable)&&(!c.clickPosition||!o.onClick.enable))return!1;const s=o.onHover.mode,d=o.onClick.mode;return(0,e.hn)(r,s)||(0,e.hn)(r,d)}loadModeOptions(t){t.attract||(t.attract=new s);for(var i=arguments.length,a=new Array(i>1?i-1:0),e=1;e{a.d(i,{Attractor:()=>d});var e=a(4409);const n=1,c=1;function s(t,i,a,s,o){const r=t.actualOptions.interactivity.modes.attract;if(!r)return;const d=t.particles.quadTree.query(s,o);for(const l of d){const{dx:t,dy:s,distance:o}=(0,e.vr)(l.position,i),d=r.speed*r.factor,u=(0,e.qE)((0,e.il)(r.easing)(c-o/a)*d,n,r.maxSpeed),h=e.Mi.create(o?t/o*u:d,o?s/o*u:d);l.position.subFrom(h)}}class o{constructor(){this.distance=200,this.duration=.4,this.easing="ease-out-quad",this.factor=1,this.maxSpeed=50,this.speed=1}load(t){t&&(void 0!==t.distance&&(this.distance=t.distance),void 0!==t.duration&&(this.duration=t.duration),void 0!==t.easing&&(this.easing=t.easing),void 0!==t.factor&&(this.factor=t.factor),void 0!==t.maxSpeed&&(this.maxSpeed=t.maxSpeed),void 0!==t.speed&&(this.speed=t.speed))}}const r="attract";class d extends e.sJ{constructor(t,i){super(i),this._engine=t,i.attract||(i.attract={particles:[]}),this.handleClickMode=t=>{const a=this.container.actualOptions.interactivity.modes.attract;if(a&&t===r){i.attract||(i.attract={particles:[]}),i.attract.clicking=!0,i.attract.count=0;for(const t of i.attract.particles)this.isEnabled(t)&&t.velocity.setTo(t.initialVelocity);i.attract.particles=[],i.attract.finish=!1,setTimeout((()=>{i.destroyed||(i.attract||(i.attract={particles:[]}),i.attract.clicking=!1)}),a.duration*e.Xu)}}}clear(){}init(){const t=this.container,i=t.actualOptions.interactivity.modes.attract;i&&(t.retina.attractModeDistance=i.distance*t.retina.pixelRatio)}interact(){const t=this.container,i=t.actualOptions,a=t.interactivity.status===e.Rb,n=i.interactivity.events,{enable:c,mode:o}=n.onHover,{enable:d,mode:l}=n.onClick;a&&c&&(0,e.hn)(r,o)?function(t,i){const a=t.interactivity.mouse.position,n=t.retina.attractModeDistance;!n||n<0||!a||s(t,a,n,new e.jl(a.x,a.y,n),(t=>i(t)))}(this.container,(t=>this.isEnabled(t))):d&&(0,e.hn)(r,l)&&function(t,i){t.attract||(t.attract={particles:[]});const{attract:a}=t;if(a.finish||(a.count||(a.count=0),a.count++,a.count===t.particles.count&&(a.finish=!0)),a.clicking){const a=t.interactivity.mouse.clickPosition,n=t.retina.attractModeDistance;if(!n||n<0||!a)return;s(t,a,n,new e.jl(a.x,a.y,n),(t=>i(t)))}else!1===a.clicking&&(a.particles=[])}(this.container,(t=>this.isEnabled(t)))}isEnabled(t){var i;const a=this.container,n=a.actualOptions,c=a.interactivity.mouse,s=(null!==(i=null===t||void 0===t?void 0:t.interactivity)&&void 0!==i?i:n.interactivity).events;if((!c.position||!s.onHover.enable)&&(!c.clickPosition||!s.onClick.enable))return!1;const o=s.onHover.mode,d=s.onClick.mode;return(0,e.hn)(r,o)||(0,e.hn)(r,d)}loadModeOptions(t){t.attract||(t.attract=new o);for(var i=arguments.length,a=new Array(i>1?i-1:0),e=1;e enabledCb(p));\n }\n else if (attract.clicking === false) {\n attract.particles = [];\n }\n}\nexport function hoverAttract(container, enabledCb) {\n const mousePos = container.interactivity.mouse.position, attractRadius = container.retina.attractModeDistance;\n if (!attractRadius || attractRadius < minRadius || !mousePos) {\n return;\n }\n processAttract(container, mousePos, attractRadius, new Circle(mousePos.x, mousePos.y, attractRadius), (p) => enabledCb(p));\n}\n","export class Attract {\n constructor() {\n this.distance = 200;\n this.duration = 0.4;\n this.easing = \"ease-out-quad\";\n this.factor = 1;\n this.maxSpeed = 50;\n this.speed = 1;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n if (data.duration !== undefined) {\n this.duration = data.duration;\n }\n if (data.easing !== undefined) {\n this.easing = data.easing;\n }\n if (data.factor !== undefined) {\n this.factor = data.factor;\n }\n if (data.maxSpeed !== undefined) {\n this.maxSpeed = data.maxSpeed;\n }\n if (data.speed !== undefined) {\n this.speed = data.speed;\n }\n }\n}\n","import { ExternalInteractorBase, isInArray, millisecondsToSeconds, mouseMoveEvent, } from \"@tsparticles/engine\";\nimport { clickAttract, hoverAttract } from \"./Utils.js\";\nimport { Attract } from \"./Options/Classes/Attract.js\";\nconst attractMode = \"attract\";\nexport class Attractor extends ExternalInteractorBase {\n constructor(engine, container) {\n super(container);\n this._engine = engine;\n if (!container.attract) {\n container.attract = { particles: [] };\n }\n this.handleClickMode = (mode) => {\n const options = this.container.actualOptions, attract = options.interactivity.modes.attract;\n if (!attract || mode !== attractMode) {\n return;\n }\n if (!container.attract) {\n container.attract = { particles: [] };\n }\n container.attract.clicking = true;\n container.attract.count = 0;\n for (const particle of container.attract.particles) {\n if (!this.isEnabled(particle)) {\n continue;\n }\n particle.velocity.setTo(particle.initialVelocity);\n }\n container.attract.particles = [];\n container.attract.finish = false;\n setTimeout(() => {\n if (container.destroyed) {\n return;\n }\n if (!container.attract) {\n container.attract = { particles: [] };\n }\n container.attract.clicking = false;\n }, attract.duration * millisecondsToSeconds);\n };\n }\n clear() {\n }\n init() {\n const container = this.container, attract = container.actualOptions.interactivity.modes.attract;\n if (!attract) {\n return;\n }\n container.retina.attractModeDistance = attract.distance * container.retina.pixelRatio;\n }\n interact() {\n const container = this.container, options = container.actualOptions, mouseMoveStatus = container.interactivity.status === mouseMoveEvent, events = options.interactivity.events, { enable: hoverEnabled, mode: hoverMode } = events.onHover, { enable: clickEnabled, mode: clickMode } = events.onClick;\n if (mouseMoveStatus && hoverEnabled && isInArray(attractMode, hoverMode)) {\n hoverAttract(this.container, (p) => this.isEnabled(p));\n }\n else if (clickEnabled && isInArray(attractMode, clickMode)) {\n clickAttract(this.container, (p) => this.isEnabled(p));\n }\n }\n isEnabled(particle) {\n const container = this.container, options = container.actualOptions, mouse = container.interactivity.mouse, events = (particle?.interactivity ?? options.interactivity).events;\n if ((!mouse.position || !events.onHover.enable) && (!mouse.clickPosition || !events.onClick.enable)) {\n return false;\n }\n const hoverMode = events.onHover.mode, clickMode = events.onClick.mode;\n return isInArray(attractMode, hoverMode) || isInArray(attractMode, clickMode);\n }\n loadModeOptions(options, ...sources) {\n if (!options.attract) {\n options.attract = new Attract();\n }\n for (const source of sources) {\n options.attract.load(source?.attract);\n }\n }\n reset() {\n }\n}\n"],"names":["minFactor","identity","processAttract","container","position","attractRadius","area","queryCb","attractOptions","actualOptions","interactivity","modes","attract","query","particles","quadTree","particle","dx","dy","distance","getDistances","velocity","speed","factor","attractFactor","clamp","getEasing","easing","maxSpeed","normVec","Vector","create","subFrom","Attract","constructor","this","duration","load","data","undefined","attractMode","Attractor","ExternalInteractorBase","engine","super","_engine","handleClickMode","mode","clicking","count","isEnabled","setTo","initialVelocity","finish","setTimeout","destroyed","millisecondsToSeconds","clear","init","retina","attractModeDistance","pixelRatio","interact","options","mouseMoveStatus","status","mouseMoveEvent","events","enable","hoverEnabled","hoverMode","onHover","clickEnabled","clickMode","onClick","isInArray","enabledCb","mousePos","mouse","Circle","x","y","p","hoverAttract","clickPosition","clickAttract","_particle$interactivi","loadModeOptions","_len","arguments","length","sources","Array","_key","source","reset"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/7055.77becd36.chunk.js","mappings":"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","sources":["../node_modules/@tsparticles/interaction-external-attract/browser/Utils.js","../node_modules/@tsparticles/interaction-external-attract/browser/Options/Classes/Attract.js","../node_modules/@tsparticles/interaction-external-attract/browser/Attractor.js"],"sourcesContent":["import { Circle, Vector, clamp, getDistances, getEasing, } from \"@tsparticles/engine\";\nconst minFactor = 1, identity = 1, minRadius = 0;\nfunction processAttract(container, position, attractRadius, area, queryCb) {\n const attractOptions = container.actualOptions.interactivity.modes.attract;\n if (!attractOptions) {\n return;\n }\n const query = container.particles.quadTree.query(area, queryCb);\n for (const particle of query) {\n const { dx, dy, distance } = getDistances(particle.position, position), velocity = attractOptions.speed * attractOptions.factor, attractFactor = clamp(getEasing(attractOptions.easing)(identity - distance / attractRadius) * velocity, minFactor, attractOptions.maxSpeed), normVec = Vector.create(!distance ? velocity : (dx / distance) * attractFactor, !distance ? velocity : (dy / distance) * attractFactor);\n particle.position.subFrom(normVec);\n }\n}\nexport function clickAttract(container, enabledCb) {\n if (!container.attract) {\n container.attract = { particles: [] };\n }\n const { attract } = container;\n if (!attract.finish) {\n if (!attract.count) {\n attract.count = 0;\n }\n attract.count++;\n if (attract.count === container.particles.count) {\n attract.finish = true;\n }\n }\n if (attract.clicking) {\n const mousePos = container.interactivity.mouse.clickPosition, attractRadius = container.retina.attractModeDistance;\n if (!attractRadius || attractRadius < minRadius || !mousePos) {\n return;\n }\n processAttract(container, mousePos, attractRadius, new Circle(mousePos.x, mousePos.y, attractRadius), (p) => enabledCb(p));\n }\n else if (attract.clicking === false) {\n attract.particles = [];\n }\n}\nexport function hoverAttract(container, enabledCb) {\n const mousePos = container.interactivity.mouse.position, attractRadius = container.retina.attractModeDistance;\n if (!attractRadius || attractRadius < minRadius || !mousePos) {\n return;\n }\n processAttract(container, mousePos, attractRadius, new Circle(mousePos.x, mousePos.y, attractRadius), (p) => enabledCb(p));\n}\n","export class Attract {\n constructor() {\n this.distance = 200;\n this.duration = 0.4;\n this.easing = \"ease-out-quad\";\n this.factor = 1;\n this.maxSpeed = 50;\n this.speed = 1;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n if (data.duration !== undefined) {\n this.duration = data.duration;\n }\n if (data.easing !== undefined) {\n this.easing = data.easing;\n }\n if (data.factor !== undefined) {\n this.factor = data.factor;\n }\n if (data.maxSpeed !== undefined) {\n this.maxSpeed = data.maxSpeed;\n }\n if (data.speed !== undefined) {\n this.speed = data.speed;\n }\n }\n}\n","import { ExternalInteractorBase, isInArray, millisecondsToSeconds, mouseMoveEvent, } from \"@tsparticles/engine\";\nimport { clickAttract, hoverAttract } from \"./Utils.js\";\nimport { Attract } from \"./Options/Classes/Attract.js\";\nconst attractMode = \"attract\";\nexport class Attractor extends ExternalInteractorBase {\n constructor(engine, container) {\n super(container);\n this._engine = engine;\n if (!container.attract) {\n container.attract = { particles: [] };\n }\n this.handleClickMode = (mode) => {\n const options = this.container.actualOptions, attract = options.interactivity.modes.attract;\n if (!attract || mode !== attractMode) {\n return;\n }\n if (!container.attract) {\n container.attract = { particles: [] };\n }\n container.attract.clicking = true;\n container.attract.count = 0;\n for (const particle of container.attract.particles) {\n if (!this.isEnabled(particle)) {\n continue;\n }\n particle.velocity.setTo(particle.initialVelocity);\n }\n container.attract.particles = [];\n container.attract.finish = false;\n setTimeout(() => {\n if (container.destroyed) {\n return;\n }\n if (!container.attract) {\n container.attract = { particles: [] };\n }\n container.attract.clicking = false;\n }, attract.duration * millisecondsToSeconds);\n };\n }\n clear() {\n }\n init() {\n const container = this.container, attract = container.actualOptions.interactivity.modes.attract;\n if (!attract) {\n return;\n }\n container.retina.attractModeDistance = attract.distance * container.retina.pixelRatio;\n }\n interact() {\n const container = this.container, options = container.actualOptions, mouseMoveStatus = container.interactivity.status === mouseMoveEvent, events = options.interactivity.events, { enable: hoverEnabled, mode: hoverMode } = events.onHover, { enable: clickEnabled, mode: clickMode } = events.onClick;\n if (mouseMoveStatus && hoverEnabled && isInArray(attractMode, hoverMode)) {\n hoverAttract(this.container, (p) => this.isEnabled(p));\n }\n else if (clickEnabled && isInArray(attractMode, clickMode)) {\n clickAttract(this.container, (p) => this.isEnabled(p));\n }\n }\n isEnabled(particle) {\n const container = this.container, options = container.actualOptions, mouse = container.interactivity.mouse, events = (particle?.interactivity ?? options.interactivity).events;\n if ((!mouse.position || !events.onHover.enable) && (!mouse.clickPosition || !events.onClick.enable)) {\n return false;\n }\n const hoverMode = events.onHover.mode, clickMode = events.onClick.mode;\n return isInArray(attractMode, hoverMode) || isInArray(attractMode, clickMode);\n }\n loadModeOptions(options, ...sources) {\n if (!options.attract) {\n options.attract = new Attract();\n }\n for (const source of sources) {\n options.attract.load(source?.attract);\n }\n }\n reset() {\n }\n}\n"],"names":["minFactor","identity","processAttract","container","position","attractRadius","area","queryCb","attractOptions","actualOptions","interactivity","modes","attract","query","particles","quadTree","particle","dx","dy","distance","getDistances","velocity","speed","factor","attractFactor","clamp","getEasing","easing","maxSpeed","normVec","Vector","create","subFrom","Attract","constructor","this","duration","load","data","undefined","attractMode","Attractor","ExternalInteractorBase","engine","super","_engine","handleClickMode","mode","clicking","count","isEnabled","setTo","initialVelocity","finish","setTimeout","destroyed","millisecondsToSeconds","clear","init","retina","attractModeDistance","pixelRatio","interact","options","mouseMoveStatus","status","mouseMoveEvent","events","enable","hoverEnabled","hoverMode","onHover","clickEnabled","clickMode","onClick","isInArray","enabledCb","mousePos","mouse","Circle","x","y","p","hoverAttract","clickPosition","clickAttract","_particle$interactivi","loadModeOptions","_len","arguments","length","sources","Array","_key","source","reset"],"sourceRoot":""} \ No newline at end of file diff --git a/build/static/js/719.3269e2aa.chunk.js b/build/static/js/719.3269e2aa.chunk.js new file mode 100644 index 0000000..c1ff9b6 --- /dev/null +++ b/build/static/js/719.3269e2aa.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkresview=self.webpackChunkresview||[]).push([[719],{719:(a,e,t)=>{async function i(a){let e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];const{loadBaseMover:i}=await t.e(5376).then(t.bind(t,5376)),{loadCircleShape:d}=await t.e(2093).then(t.bind(t,2093)),{loadColorUpdater:n}=await t.e(4426).then(t.bind(t,4426)),{loadOpacityUpdater:w}=await t.e(1928).then(t.bind(t,1928)),{loadOutModesUpdater:o}=await t.e(308).then(t.bind(t,308)),{loadSizeUpdater:l}=await t.e(5536).then(t.bind(t,5536));await i(a,!1),await d(a,!1),await n(a,!1),await w(a,!1),await o(a,!1),await l(a,!1),await a.refresh(e)}t.d(e,{loadBasic:()=>i})}}]); +//# sourceMappingURL=719.3269e2aa.chunk.js.map \ No newline at end of file diff --git a/build/static/js/719.32d51622.chunk.js.map b/build/static/js/719.3269e2aa.chunk.js.map similarity index 91% rename from build/static/js/719.32d51622.chunk.js.map rename to build/static/js/719.3269e2aa.chunk.js.map index 56284e3..bbe4c95 100644 --- a/build/static/js/719.32d51622.chunk.js.map +++ b/build/static/js/719.3269e2aa.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/719.32d51622.chunk.js","mappings":"8FAAOA,eAAeC,EAAUC,GAAwB,IAAhBC,IAAOC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,KAAAA,UAAA,GAC3C,MAAM,cAAEG,SAAwB,gCAAkC,gBAAEC,SAA0B,gCAAqC,iBAAEC,SAA2B,gCAAsC,mBAAEC,SAA6B,gCAAwC,oBAAEC,SAA8B,8BAA0C,gBAAEC,SAA0B,qCAC7WL,EAAcL,GAAQ,SACtBM,EAAgBN,GAAQ,SACxBO,EAAiBP,GAAQ,SACzBQ,EAAmBR,GAAQ,SAC3BS,EAAoBT,GAAQ,SAC5BU,EAAgBV,GAAQ,SACxBA,EAAOC,QAAQA,EACzB,C","sources":["../node_modules/@tsparticles/basic/browser/index.js"],"sourcesContent":["export async function loadBasic(engine, refresh = true) {\n const { loadBaseMover } = await import(\"@tsparticles/move-base\"), { loadCircleShape } = await import(\"@tsparticles/shape-circle\"), { loadColorUpdater } = await import(\"@tsparticles/updater-color\"), { loadOpacityUpdater } = await import(\"@tsparticles/updater-opacity\"), { loadOutModesUpdater } = await import(\"@tsparticles/updater-out-modes\"), { loadSizeUpdater } = await import(\"@tsparticles/updater-size\");\n await loadBaseMover(engine, false);\n await loadCircleShape(engine, false);\n await loadColorUpdater(engine, false);\n await loadOpacityUpdater(engine, false);\n await loadOutModesUpdater(engine, false);\n await loadSizeUpdater(engine, false);\n await engine.refresh(refresh);\n}\n"],"names":["async","loadBasic","engine","refresh","arguments","length","undefined","loadBaseMover","loadCircleShape","loadColorUpdater","loadOpacityUpdater","loadOutModesUpdater","loadSizeUpdater"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/719.3269e2aa.chunk.js","mappings":"gGAAOA,eAAeC,EAAUC,GAAwB,IAAhBC,IAAOC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,KAAAA,UAAA,GAC3C,MAAM,cAAEG,SAAwB,gCAAkC,gBAAEC,SAA0B,gCAAqC,iBAAEC,SAA2B,gCAAsC,mBAAEC,SAA6B,gCAAwC,oBAAEC,SAA8B,8BAA0C,gBAAEC,SAA0B,qCAC7WL,EAAcL,GAAQ,SACtBM,EAAgBN,GAAQ,SACxBO,EAAiBP,GAAQ,SACzBQ,EAAmBR,GAAQ,SAC3BS,EAAoBT,GAAQ,SAC5BU,EAAgBV,GAAQ,SACxBA,EAAOC,QAAQA,EACzB,C","sources":["../node_modules/@tsparticles/basic/browser/index.js"],"sourcesContent":["export async function loadBasic(engine, refresh = true) {\n const { loadBaseMover } = await import(\"@tsparticles/move-base\"), { loadCircleShape } = await import(\"@tsparticles/shape-circle\"), { loadColorUpdater } = await import(\"@tsparticles/updater-color\"), { loadOpacityUpdater } = await import(\"@tsparticles/updater-opacity\"), { loadOutModesUpdater } = await import(\"@tsparticles/updater-out-modes\"), { loadSizeUpdater } = await import(\"@tsparticles/updater-size\");\n await loadBaseMover(engine, false);\n await loadCircleShape(engine, false);\n await loadColorUpdater(engine, false);\n await loadOpacityUpdater(engine, false);\n await loadOutModesUpdater(engine, false);\n await loadSizeUpdater(engine, false);\n await engine.refresh(refresh);\n}\n"],"names":["async","loadBasic","engine","refresh","arguments","length","undefined","loadBaseMover","loadCircleShape","loadColorUpdater","loadOpacityUpdater","loadOutModesUpdater","loadSizeUpdater"],"sourceRoot":""} \ No newline at end of file diff --git a/build/static/js/719.32d51622.chunk.js b/build/static/js/719.32d51622.chunk.js deleted file mode 100644 index e16bb4d..0000000 --- a/build/static/js/719.32d51622.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkclient=self.webpackChunkclient||[]).push([[719],{719:(a,e,t)=>{async function i(a){let e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];const{loadBaseMover:i}=await t.e(5376).then(t.bind(t,5376)),{loadCircleShape:n}=await t.e(2093).then(t.bind(t,2093)),{loadColorUpdater:d}=await t.e(4426).then(t.bind(t,4426)),{loadOpacityUpdater:l}=await t.e(1928).then(t.bind(t,1928)),{loadOutModesUpdater:w}=await t.e(308).then(t.bind(t,308)),{loadSizeUpdater:o}=await t.e(5536).then(t.bind(t,5536));await i(a,!1),await n(a,!1),await d(a,!1),await l(a,!1),await w(a,!1),await o(a,!1),await a.refresh(e)}t.d(e,{loadBasic:()=>i})}}]); -//# sourceMappingURL=719.32d51622.chunk.js.map \ No newline at end of file diff --git a/build/static/js/7454.27889ff5.chunk.js b/build/static/js/7454.27889ff5.chunk.js new file mode 100644 index 0000000..51fda39 --- /dev/null +++ b/build/static/js/7454.27889ff5.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkresview=self.webpackChunkresview||[]).push([[7454],{7454:(t,e,n)=>{n.d(e,{Bouncer:()=>v});var i=n(4409);const o=2,s=.5,c=Math.PI*s,a=2,r=10;function l(t,e,n,s,a){const r=t.particles.quadTree.query(s,a);for(const l of r)s instanceof i.jl?(0,i.pE)((0,i.Tg)(l),{position:e,radius:n,mass:n**o*c,velocity:i.Mi.origin,factor:i.Mi.origin}):s instanceof i.M_&&(0,i.jo)(l,(0,i.AE)(e,n))}function f(t,e,n,o){(0,i.U6)(n,e,((e,n)=>function(t,e,n,o){const c=document.querySelectorAll(e);c.length&&c.forEach((e=>{const c=e,l=t.retina.pixelRatio,f={x:(c.offsetLeft+c.offsetWidth*s)*l,y:(c.offsetTop+c.offsetHeight*s)*l},u=c.offsetWidth*s*l,d=r*l,v="circle"===n.type?new i.jl(f.x,f.y,u+d):new i.M_(c.offsetLeft*l-d,c.offsetTop*l-d,c.offsetWidth*l+d*a,c.offsetHeight*l+d*a);o(f,u,v)}))}(t,e,n,((e,n,i)=>l(t,e,n,i,o)))))}class u{constructor(){this.distance=200}load(t){t&&void 0!==t.distance&&(this.distance=t.distance)}}const d="bounce";class v extends i.sJ{constructor(t){super(t)}clear(){}init(){const t=this.container,e=t.actualOptions.interactivity.modes.bounce;e&&(t.retina.bounceModeDistance=e.distance*t.retina.pixelRatio)}interact(){const t=this.container,e=t.actualOptions.interactivity.events,n=t.interactivity.status===i.Rb,o=e.onHover.enable,s=e.onHover.mode,c=e.onDiv;n&&o&&(0,i.hn)(d,s)?function(t,e){const n=t.retina.pixelRatio,o=r*n,s=t.interactivity.mouse.position,c=t.retina.bounceModeDistance;!c||c<0||!s||l(t,s,c,new i.jl(s.x,s.y,c+o),e)}(this.container,(t=>this.isEnabled(t))):f(this.container,c,d,(t=>this.isEnabled(t)))}isEnabled(t){var e;const n=this.container,o=n.actualOptions,s=n.interactivity.mouse,c=(null!==(e=null===t||void 0===t?void 0:t.interactivity)&&void 0!==e?e:o.interactivity).events,a=c.onDiv;return!!s.position&&c.onHover.enable&&(0,i.hn)(d,c.onHover.mode)||(0,i.iK)(d,a)}loadModeOptions(t){t.bounce||(t.bounce=new u);for(var e=arguments.length,n=new Array(e>1?e-1:0),i=1;i {\n const elem = item, pxRatio = container.retina.pixelRatio, pos = {\n x: (elem.offsetLeft + elem.offsetWidth * half) * pxRatio,\n y: (elem.offsetTop + elem.offsetHeight * half) * pxRatio,\n }, radius = elem.offsetWidth * half * pxRatio, tolerance = toleranceFactor * pxRatio, area = div.type === \"circle\"\n ? new Circle(pos.x, pos.y, radius + tolerance)\n : new Rectangle(elem.offsetLeft * pxRatio - tolerance, elem.offsetTop * pxRatio - tolerance, elem.offsetWidth * pxRatio + tolerance * double, elem.offsetHeight * pxRatio + tolerance * double);\n bounceCb(pos, radius, area);\n });\n}\nexport function divBounce(container, divs, bounceMode, enabledCb) {\n divModeExecute(bounceMode, divs, (selector, div) => singleSelectorBounce(container, selector, div, (pos, radius, area) => processBounce(container, pos, radius, area, enabledCb)));\n}\nexport function mouseBounce(container, enabledCb) {\n const pxRatio = container.retina.pixelRatio, tolerance = toleranceFactor * pxRatio, mousePos = container.interactivity.mouse.position, radius = container.retina.bounceModeDistance;\n if (!radius || radius < minRadius || !mousePos) {\n return;\n }\n processBounce(container, mousePos, radius, new Circle(mousePos.x, mousePos.y, radius + tolerance), enabledCb);\n}\n","export class Bounce {\n constructor() {\n this.distance = 200;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n }\n}\n","import { ExternalInteractorBase, isDivModeEnabled, isInArray, mouseMoveEvent, } from \"@tsparticles/engine\";\nimport { divBounce, mouseBounce } from \"./Utils.js\";\nimport { Bounce } from \"./Options/Classes/Bounce.js\";\nconst bounceMode = \"bounce\";\nexport class Bouncer extends ExternalInteractorBase {\n constructor(container) {\n super(container);\n }\n clear() {\n }\n init() {\n const container = this.container, bounce = container.actualOptions.interactivity.modes.bounce;\n if (!bounce) {\n return;\n }\n container.retina.bounceModeDistance = bounce.distance * container.retina.pixelRatio;\n }\n interact() {\n const container = this.container, options = container.actualOptions, events = options.interactivity.events, mouseMoveStatus = container.interactivity.status === mouseMoveEvent, hoverEnabled = events.onHover.enable, hoverMode = events.onHover.mode, divs = events.onDiv;\n if (mouseMoveStatus && hoverEnabled && isInArray(bounceMode, hoverMode)) {\n mouseBounce(this.container, (p) => this.isEnabled(p));\n }\n else {\n divBounce(this.container, divs, bounceMode, (p) => this.isEnabled(p));\n }\n }\n isEnabled(particle) {\n const container = this.container, options = container.actualOptions, mouse = container.interactivity.mouse, events = (particle?.interactivity ?? options.interactivity).events, divs = events.onDiv;\n return ((!!mouse.position && events.onHover.enable && isInArray(bounceMode, events.onHover.mode)) ||\n isDivModeEnabled(bounceMode, divs));\n }\n loadModeOptions(options, ...sources) {\n if (!options.bounce) {\n options.bounce = new Bounce();\n }\n for (const source of sources) {\n options.bounce.load(source?.bounce);\n }\n }\n reset() {\n }\n}\n"],"names":["squareExp","half","halfPI","Math","PI","double","toleranceFactor","processBounce","container","position","radius","area","enabledCb","query","particles","quadTree","particle","Circle","circleBounce","circleBounceDataFromParticle","mass","velocity","Vector","origin","factor","Rectangle","rectBounce","calculateBounds","divBounce","divs","bounceMode","divModeExecute","selector","div","bounceCb","document","querySelectorAll","length","forEach","item","elem","pxRatio","retina","pixelRatio","pos","x","offsetLeft","offsetWidth","y","offsetTop","offsetHeight","tolerance","type","singleSelectorBounce","Bounce","constructor","this","distance","load","data","undefined","Bouncer","ExternalInteractorBase","super","clear","init","bounce","actualOptions","interactivity","modes","bounceModeDistance","interact","events","mouseMoveStatus","status","mouseMoveEvent","hoverEnabled","onHover","enable","hoverMode","mode","onDiv","isInArray","mousePos","mouse","mouseBounce","p","isEnabled","_particle$interactivi","options","isDivModeEnabled","loadModeOptions","_len","arguments","sources","Array","_key","source","reset"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/7454.27889ff5.chunk.js","mappings":"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","sources":["../node_modules/@tsparticles/interaction-external-bounce/browser/Utils.js","../node_modules/@tsparticles/interaction-external-bounce/browser/Options/Classes/Bounce.js","../node_modules/@tsparticles/interaction-external-bounce/browser/Bouncer.js"],"sourcesContent":["import { Circle, Rectangle, Vector, calculateBounds, circleBounce, circleBounceDataFromParticle, divModeExecute, rectBounce, } from \"@tsparticles/engine\";\nconst squareExp = 2, half = 0.5, halfPI = Math.PI * half, double = 2, toleranceFactor = 10, minRadius = 0;\nfunction processBounce(container, position, radius, area, enabledCb) {\n const query = container.particles.quadTree.query(area, enabledCb);\n for (const particle of query) {\n if (area instanceof Circle) {\n circleBounce(circleBounceDataFromParticle(particle), {\n position,\n radius,\n mass: radius ** squareExp * halfPI,\n velocity: Vector.origin,\n factor: Vector.origin,\n });\n }\n else if (area instanceof Rectangle) {\n rectBounce(particle, calculateBounds(position, radius));\n }\n }\n}\nfunction singleSelectorBounce(container, selector, div, bounceCb) {\n const query = document.querySelectorAll(selector);\n if (!query.length) {\n return;\n }\n query.forEach((item) => {\n const elem = item, pxRatio = container.retina.pixelRatio, pos = {\n x: (elem.offsetLeft + elem.offsetWidth * half) * pxRatio,\n y: (elem.offsetTop + elem.offsetHeight * half) * pxRatio,\n }, radius = elem.offsetWidth * half * pxRatio, tolerance = toleranceFactor * pxRatio, area = div.type === \"circle\"\n ? new Circle(pos.x, pos.y, radius + tolerance)\n : new Rectangle(elem.offsetLeft * pxRatio - tolerance, elem.offsetTop * pxRatio - tolerance, elem.offsetWidth * pxRatio + tolerance * double, elem.offsetHeight * pxRatio + tolerance * double);\n bounceCb(pos, radius, area);\n });\n}\nexport function divBounce(container, divs, bounceMode, enabledCb) {\n divModeExecute(bounceMode, divs, (selector, div) => singleSelectorBounce(container, selector, div, (pos, radius, area) => processBounce(container, pos, radius, area, enabledCb)));\n}\nexport function mouseBounce(container, enabledCb) {\n const pxRatio = container.retina.pixelRatio, tolerance = toleranceFactor * pxRatio, mousePos = container.interactivity.mouse.position, radius = container.retina.bounceModeDistance;\n if (!radius || radius < minRadius || !mousePos) {\n return;\n }\n processBounce(container, mousePos, radius, new Circle(mousePos.x, mousePos.y, radius + tolerance), enabledCb);\n}\n","export class Bounce {\n constructor() {\n this.distance = 200;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n }\n}\n","import { ExternalInteractorBase, isDivModeEnabled, isInArray, mouseMoveEvent, } from \"@tsparticles/engine\";\nimport { divBounce, mouseBounce } from \"./Utils.js\";\nimport { Bounce } from \"./Options/Classes/Bounce.js\";\nconst bounceMode = \"bounce\";\nexport class Bouncer extends ExternalInteractorBase {\n constructor(container) {\n super(container);\n }\n clear() {\n }\n init() {\n const container = this.container, bounce = container.actualOptions.interactivity.modes.bounce;\n if (!bounce) {\n return;\n }\n container.retina.bounceModeDistance = bounce.distance * container.retina.pixelRatio;\n }\n interact() {\n const container = this.container, options = container.actualOptions, events = options.interactivity.events, mouseMoveStatus = container.interactivity.status === mouseMoveEvent, hoverEnabled = events.onHover.enable, hoverMode = events.onHover.mode, divs = events.onDiv;\n if (mouseMoveStatus && hoverEnabled && isInArray(bounceMode, hoverMode)) {\n mouseBounce(this.container, (p) => this.isEnabled(p));\n }\n else {\n divBounce(this.container, divs, bounceMode, (p) => this.isEnabled(p));\n }\n }\n isEnabled(particle) {\n const container = this.container, options = container.actualOptions, mouse = container.interactivity.mouse, events = (particle?.interactivity ?? options.interactivity).events, divs = events.onDiv;\n return ((!!mouse.position && events.onHover.enable && isInArray(bounceMode, events.onHover.mode)) ||\n isDivModeEnabled(bounceMode, divs));\n }\n loadModeOptions(options, ...sources) {\n if (!options.bounce) {\n options.bounce = new Bounce();\n }\n for (const source of sources) {\n options.bounce.load(source?.bounce);\n }\n }\n reset() {\n }\n}\n"],"names":["squareExp","half","halfPI","Math","PI","double","toleranceFactor","processBounce","container","position","radius","area","enabledCb","query","particles","quadTree","particle","Circle","circleBounce","circleBounceDataFromParticle","mass","velocity","Vector","origin","factor","Rectangle","rectBounce","calculateBounds","divBounce","divs","bounceMode","divModeExecute","selector","div","bounceCb","document","querySelectorAll","length","forEach","item","elem","pxRatio","retina","pixelRatio","pos","x","offsetLeft","offsetWidth","y","offsetTop","offsetHeight","tolerance","type","singleSelectorBounce","Bounce","constructor","this","distance","load","data","undefined","Bouncer","ExternalInteractorBase","super","clear","init","bounce","actualOptions","interactivity","modes","bounceModeDistance","interact","events","mouseMoveStatus","status","mouseMoveEvent","hoverEnabled","onHover","enable","hoverMode","mode","onDiv","isInArray","mousePos","mouse","mouseBounce","p","isEnabled","_particle$interactivi","options","isDivModeEnabled","loadModeOptions","_len","arguments","sources","Array","_key","source","reset"],"sourceRoot":""} \ No newline at end of file diff --git a/build/static/js/7454.56be90f1.chunk.js b/build/static/js/7454.56be90f1.chunk.js deleted file mode 100644 index 98d5ea4..0000000 --- a/build/static/js/7454.56be90f1.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkclient=self.webpackChunkclient||[]).push([[7454],{7454:(t,e,n)=>{n.d(e,{Bouncer:()=>v});var i=n(4409);const o=2,s=.5,c=Math.PI*s,a=2,r=10;function l(t,e,n,s,a){const r=t.particles.quadTree.query(s,a);for(const l of r)s instanceof i.jl?(0,i.pE)((0,i.Tg)(l),{position:e,radius:n,mass:n**o*c,velocity:i.Mi.origin,factor:i.Mi.origin}):s instanceof i.M_&&(0,i.jo)(l,(0,i.AE)(e,n))}function f(t,e,n,o){(0,i.U6)(n,e,((e,n)=>function(t,e,n,o){const c=document.querySelectorAll(e);c.length&&c.forEach((e=>{const c=e,l=t.retina.pixelRatio,f={x:(c.offsetLeft+c.offsetWidth*s)*l,y:(c.offsetTop+c.offsetHeight*s)*l},u=c.offsetWidth*s*l,d=r*l,v="circle"===n.type?new i.jl(f.x,f.y,u+d):new i.M_(c.offsetLeft*l-d,c.offsetTop*l-d,c.offsetWidth*l+d*a,c.offsetHeight*l+d*a);o(f,u,v)}))}(t,e,n,((e,n,i)=>l(t,e,n,i,o)))))}class u{constructor(){this.distance=200}load(t){t&&void 0!==t.distance&&(this.distance=t.distance)}}const d="bounce";class v extends i.sJ{constructor(t){super(t)}clear(){}init(){const t=this.container,e=t.actualOptions.interactivity.modes.bounce;e&&(t.retina.bounceModeDistance=e.distance*t.retina.pixelRatio)}interact(){const t=this.container,e=t.actualOptions.interactivity.events,n=t.interactivity.status===i.Rb,o=e.onHover.enable,s=e.onHover.mode,c=e.onDiv;n&&o&&(0,i.hn)(d,s)?function(t,e){const n=t.retina.pixelRatio,o=r*n,s=t.interactivity.mouse.position,c=t.retina.bounceModeDistance;!c||c<0||!s||l(t,s,c,new i.jl(s.x,s.y,c+o),e)}(this.container,(t=>this.isEnabled(t))):f(this.container,c,d,(t=>this.isEnabled(t)))}isEnabled(t){var e;const n=this.container,o=n.actualOptions,s=n.interactivity.mouse,c=(null!==(e=null===t||void 0===t?void 0:t.interactivity)&&void 0!==e?e:o.interactivity).events,a=c.onDiv;return!!s.position&&c.onHover.enable&&(0,i.hn)(d,c.onHover.mode)||(0,i.iK)(d,a)}loadModeOptions(t){t.bounce||(t.bounce=new u);for(var e=arguments.length,n=new Array(e>1?e-1:0),i=1;i{async function l(a){let e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];await a.addMover("parallax",(async()=>{const{ParallaxMover:a}=await n.e(9558).then(n.bind(n,9558));return new a}),e)}n.d(e,{loadParallaxMover:()=>l})}}]); -//# sourceMappingURL=7590.4b3423e7.chunk.js.map \ No newline at end of file diff --git a/build/static/js/7590.4eeecba0.chunk.js b/build/static/js/7590.4eeecba0.chunk.js new file mode 100644 index 0000000..f6e9ec9 --- /dev/null +++ b/build/static/js/7590.4eeecba0.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkresview=self.webpackChunkresview||[]).push([[7590],{7590:(a,e,n)=>{async function l(a){let e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];await a.addMover("parallax",(async()=>{const{ParallaxMover:a}=await n.e(9558).then(n.bind(n,9558));return new a}),e)}n.d(e,{loadParallaxMover:()=>l})}}]); +//# sourceMappingURL=7590.4eeecba0.chunk.js.map \ No newline at end of file diff --git a/build/static/js/7590.4b3423e7.chunk.js.map b/build/static/js/7590.4eeecba0.chunk.js.map similarity index 82% rename from build/static/js/7590.4b3423e7.chunk.js.map rename to build/static/js/7590.4eeecba0.chunk.js.map index 2aa64e4..9c390c8 100644 --- a/build/static/js/7590.4b3423e7.chunk.js.map +++ b/build/static/js/7590.4eeecba0.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/7590.4b3423e7.chunk.js","mappings":"gGAAOA,eAAeC,EAAkBC,GAAwB,IAAhBC,IAAOC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,KAAAA,UAAA,SAC7CF,EAAOK,SAAS,YAAYP,UAC9B,MAAM,cAAEQ,SAAwB,+BAChC,OAAO,IAAIA,CAAe,GAC3BL,EACP,C","sources":["../node_modules/@tsparticles/move-parallax/browser/index.js"],"sourcesContent":["export async function loadParallaxMover(engine, refresh = true) {\n await engine.addMover(\"parallax\", async () => {\n const { ParallaxMover } = await import(\"./ParallaxMover.js\");\n return new ParallaxMover();\n }, refresh);\n}\n"],"names":["async","loadParallaxMover","engine","refresh","arguments","length","undefined","addMover","ParallaxMover"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/7590.4eeecba0.chunk.js","mappings":"kGAAOA,eAAeC,EAAkBC,GAAwB,IAAhBC,IAAOC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,KAAAA,UAAA,SAC7CF,EAAOK,SAAS,YAAYP,UAC9B,MAAM,cAAEQ,SAAwB,+BAChC,OAAO,IAAIA,CAAe,GAC3BL,EACP,C","sources":["../node_modules/@tsparticles/move-parallax/browser/index.js"],"sourcesContent":["export async function loadParallaxMover(engine, refresh = true) {\n await engine.addMover(\"parallax\", async () => {\n const { ParallaxMover } = await import(\"./ParallaxMover.js\");\n return new ParallaxMover();\n }, refresh);\n}\n"],"names":["async","loadParallaxMover","engine","refresh","arguments","length","undefined","addMover","ParallaxMover"],"sourceRoot":""} \ No newline at end of file diff --git a/build/static/js/7604.2f4330cf.chunk.js b/build/static/js/7604.2f4330cf.chunk.js deleted file mode 100644 index cbff135..0000000 --- a/build/static/js/7604.2f4330cf.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkclient=self.webpackChunkclient||[]).push([[7604],{7604:(t,e,a)=>{a.d(e,{StarDrawer:()=>i});var n=a(4409);const s=0,o=0;class i{draw(t){!function(t){var e;const{context:a,particle:n,radius:i}=t,l=n.sides,r=null!==(e=n.starInset)&&void 0!==e?e:2;a.moveTo(s,o-i);for(let c=0;c{a.d(e,{StarDrawer:()=>r});var s=a(4409);const n=0,o=0;class r{draw(t){!function(t){var e;const{context:a,particle:s,radius:r}=t,i=s.sides,l=null!==(e=s.starInset)&&void 0!==e?e:2;a.moveTo(n,o-r);for(let d=0;d{i.d(a,{LineDrawer:()=>n});class n{draw(e){!function(e){var a;const{context:i,particle:n,radius:s}=e,t=n.shapeData;i.moveTo(-s,0),i.lineTo(s,0),i.lineCap=null!==(a=null===t||void 0===t?void 0:t.cap)&&void 0!==a?a:"butt"}(e)}getSidesCount(){return 1}}}}]); +//# sourceMappingURL=7688.26060ca2.chunk.js.map \ No newline at end of file diff --git a/build/static/js/7688.ea23717e.chunk.js.map b/build/static/js/7688.26060ca2.chunk.js.map similarity index 88% rename from build/static/js/7688.ea23717e.chunk.js.map rename to build/static/js/7688.26060ca2.chunk.js.map index 4125f2b..ee126d9 100644 --- a/build/static/js/7688.ea23717e.chunk.js.map +++ b/build/static/js/7688.26060ca2.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/7688.ea23717e.chunk.js","mappings":"0HAEO,MAAMA,EACTC,IAAAA,CAAKC,ICHF,SAAkBA,GAAM,IAAAC,EAC3B,MAAM,QAAEC,EAAO,SAAEC,EAAQ,OAAEC,GAAWJ,EAAMK,EAAYF,EAASE,UACjEH,EAAQI,QAAQF,EADsE,GAEtFF,EAAQK,OAAOH,EAFuE,GAGtFF,EAAQM,QAAwB,QAAjBP,EAAY,OAATI,QAAS,IAATA,OAAS,EAATA,EAAWI,WAAG,IAAAR,EAAAA,EAAI,MACxC,CDDQS,CAASV,EACb,CACAW,aAAAA,GACI,OANM,CAOV,E","sources":["../node_modules/@tsparticles/shape-line/browser/LineDrawer.js","../node_modules/@tsparticles/shape-line/browser/Utils.js"],"sourcesContent":["import { drawLine } from \"./Utils.js\";\nconst sides = 1;\nexport class LineDrawer {\n draw(data) {\n drawLine(data);\n }\n getSidesCount() {\n return sides;\n }\n}\n","export function drawLine(data) {\n const { context, particle, radius } = data, shapeData = particle.shapeData, centerY = 0;\n context.moveTo(-radius, centerY);\n context.lineTo(radius, centerY);\n context.lineCap = shapeData?.cap ?? \"butt\";\n}\n"],"names":["LineDrawer","draw","data","_shapeData$cap","context","particle","radius","shapeData","moveTo","lineTo","lineCap","cap","drawLine","getSidesCount"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/7688.26060ca2.chunk.js","mappings":"4HAEO,MAAMA,EACTC,IAAAA,CAAKC,ICHF,SAAkBA,GAAM,IAAAC,EAC3B,MAAM,QAAEC,EAAO,SAAEC,EAAQ,OAAEC,GAAWJ,EAAMK,EAAYF,EAASE,UACjEH,EAAQI,QAAQF,EADsE,GAEtFF,EAAQK,OAAOH,EAFuE,GAGtFF,EAAQM,QAAwB,QAAjBP,EAAY,OAATI,QAAS,IAATA,OAAS,EAATA,EAAWI,WAAG,IAAAR,EAAAA,EAAI,MACxC,CDDQS,CAASV,EACb,CACAW,aAAAA,GACI,OANM,CAOV,E","sources":["../node_modules/@tsparticles/shape-line/browser/LineDrawer.js","../node_modules/@tsparticles/shape-line/browser/Utils.js"],"sourcesContent":["import { drawLine } from \"./Utils.js\";\nconst sides = 1;\nexport class LineDrawer {\n draw(data) {\n drawLine(data);\n }\n getSidesCount() {\n return sides;\n }\n}\n","export function drawLine(data) {\n const { context, particle, radius } = data, shapeData = particle.shapeData, centerY = 0;\n context.moveTo(-radius, centerY);\n context.lineTo(radius, centerY);\n context.lineCap = shapeData?.cap ?? \"butt\";\n}\n"],"names":["LineDrawer","draw","data","_shapeData$cap","context","particle","radius","shapeData","moveTo","lineTo","lineCap","cap","drawLine","getSidesCount"],"sourceRoot":""} \ No newline at end of file diff --git a/build/static/js/7688.ea23717e.chunk.js b/build/static/js/7688.ea23717e.chunk.js deleted file mode 100644 index 1c60369..0000000 --- a/build/static/js/7688.ea23717e.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkclient=self.webpackChunkclient||[]).push([[7688],{7688:(e,n,t)=>{t.d(n,{LineDrawer:()=>a});class a{draw(e){!function(e){var n;const{context:t,particle:a,radius:i}=e,l=a.shapeData;t.moveTo(-i,0),t.lineTo(i,0),t.lineCap=null!==(n=null===l||void 0===l?void 0:l.cap)&&void 0!==n?n:"butt"}(e)}getSidesCount(){return 1}}}}]); -//# sourceMappingURL=7688.ea23717e.chunk.js.map \ No newline at end of file diff --git a/build/static/js/7788.4d8192f4.chunk.js b/build/static/js/7788.4d8192f4.chunk.js new file mode 100644 index 0000000..3c72cac --- /dev/null +++ b/build/static/js/7788.4d8192f4.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkresview=self.webpackChunkresview||[]).push([[7788],{7788:(e,r,t)=>{t.d(r,{Remover:()=>i});var o=t(4409),n=t(6746);class i extends o.sJ{constructor(e){super(e),this.handleClickMode=e=>{const r=this.container,t=r.actualOptions;if(!t.interactivity.modes.remove||"remove"!==e)return;const n=(0,o.VG)(t.interactivity.modes.remove.quantity);r.particles.removeQuantity(n)}}clear(){}init(){}interact(){}isEnabled(){return!0}loadModeOptions(e){e.remove||(e.remove=new n.n);for(var r=arguments.length,t=new Array(r>1?r-1:0),o=1;o {\n const container = this.container, options = container.actualOptions;\n if (!options.interactivity.modes.remove || mode !== removeMode) {\n return;\n }\n const removeNb = getRangeValue(options.interactivity.modes.remove.quantity);\n container.particles.removeQuantity(removeNb);\n };\n }\n clear() {\n }\n init() {\n }\n interact() {\n }\n isEnabled() {\n return true;\n }\n loadModeOptions(options, ...sources) {\n if (!options.remove) {\n options.remove = new Remove();\n }\n for (const source of sources) {\n options.remove.load(source?.remove);\n }\n }\n reset() {\n }\n}\n"],"names":["Remover","ExternalInteractorBase","constructor","container","super","this","handleClickMode","mode","options","actualOptions","interactivity","modes","remove","removeNb","getRangeValue","quantity","particles","removeQuantity","clear","init","interact","isEnabled","loadModeOptions","Remove","_len","arguments","length","sources","Array","_key","source","load","reset"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/7788.4d8192f4.chunk.js","mappings":"iJAGO,MAAMA,UAAgBC,EAAAA,GACzBC,WAAAA,CAAYC,GACRC,MAAMD,GACNE,KAAKC,gBAAmBC,IACpB,MAAMJ,EAAYE,KAAKF,UAAWK,EAAUL,EAAUM,cACtD,IAAKD,EAAQE,cAAcC,MAAMC,QAN1B,WAMoCL,EACvC,OAEJ,MAAMM,GAAWC,EAAAA,EAAAA,IAAcN,EAAQE,cAAcC,MAAMC,OAAOG,UAClEZ,EAAUa,UAAUC,eAAeJ,EAAS,CAEpD,CACAK,KAAAA,GACA,CACAC,IAAAA,GACA,CACAC,QAAAA,GACA,CACAC,SAAAA,GACI,OAAO,CACX,CACAC,eAAAA,CAAgBd,GACPA,EAAQI,SACTJ,EAAQI,OAAS,IAAIW,EAAAA,GACxB,QAAAC,EAAAC,UAAAC,OAHuBC,EAAO,IAAAC,MAAAJ,EAAA,EAAAA,EAAA,KAAAK,EAAA,EAAAA,EAAAL,EAAAK,IAAPF,EAAOE,EAAA,GAAAJ,UAAAI,GAI/B,IAAK,MAAMC,KAAUH,EACjBnB,EAAQI,OAAOmB,KAAW,OAAND,QAAM,IAANA,OAAM,EAANA,EAAQlB,OAEpC,CACAoB,KAAAA,GACA,E","sources":["../node_modules/@tsparticles/interaction-external-remove/browser/Remover.js"],"sourcesContent":["import { ExternalInteractorBase, getRangeValue, } from \"@tsparticles/engine\";\nimport { Remove } from \"./Options/Classes/Remove.js\";\nconst removeMode = \"remove\";\nexport class Remover extends ExternalInteractorBase {\n constructor(container) {\n super(container);\n this.handleClickMode = (mode) => {\n const container = this.container, options = container.actualOptions;\n if (!options.interactivity.modes.remove || mode !== removeMode) {\n return;\n }\n const removeNb = getRangeValue(options.interactivity.modes.remove.quantity);\n container.particles.removeQuantity(removeNb);\n };\n }\n clear() {\n }\n init() {\n }\n interact() {\n }\n isEnabled() {\n return true;\n }\n loadModeOptions(options, ...sources) {\n if (!options.remove) {\n options.remove = new Remove();\n }\n for (const source of sources) {\n options.remove.load(source?.remove);\n }\n }\n reset() {\n }\n}\n"],"names":["Remover","ExternalInteractorBase","constructor","container","super","this","handleClickMode","mode","options","actualOptions","interactivity","modes","remove","removeNb","getRangeValue","quantity","particles","removeQuantity","clear","init","interact","isEnabled","loadModeOptions","Remove","_len","arguments","length","sources","Array","_key","source","load","reset"],"sourceRoot":""} \ No newline at end of file diff --git a/build/static/js/7788.6c34384d.chunk.js b/build/static/js/7788.6c34384d.chunk.js deleted file mode 100644 index a1359bb..0000000 --- a/build/static/js/7788.6c34384d.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkclient=self.webpackChunkclient||[]).push([[7788],{7788:(e,t,r)=>{r.d(t,{Remover:()=>i});var n=r(4409),o=r(6746);class i extends n.sJ{constructor(e){super(e),this.handleClickMode=e=>{const t=this.container,r=t.actualOptions;if(!r.interactivity.modes.remove||"remove"!==e)return;const o=(0,n.VG)(r.interactivity.modes.remove.quantity);t.particles.removeQuantity(o)}}clear(){}init(){}interact(){}isEnabled(){return!0}loadModeOptions(e){e.remove||(e.remove=new o.n);for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n{n.d(e,{PolygonDrawer:()=>r});var o=n(7113);class r extends o.L{getCenter(t,e){return{x:-e/(t.sides/3.5),y:-e/.76}}getSidesData(t,e){const n=t.sides;return{count:{denominator:1,numerator:n},length:2.66*e/(n/3)}}}},7113:(t,e,n)=>{n.d(e,{L:()=>s});var o=n(4409);const r=0,a=0;class s{draw(t){const{particle:e,radius:n}=t;!function(t,e,n){const{context:s}=t,i=n.count.numerator*n.count.denominator,u=n.count.numerator/n.count.denominator,c=180*(u-2)/u,d=Math.PI-(0,o.pu)(c);if(s){s.beginPath(),s.translate(e.x,e.y),s.moveTo(r,a);for(let t=0;t{n.d(e,{PolygonDrawer:()=>a});var o=n(7113);class a extends o.L{getCenter(t,e){return{x:-e/(t.sides/3.5),y:-e/.76}}getSidesData(t,e){const n=t.sides;return{count:{denominator:1,numerator:n},length:2.66*e/(n/3)}}}},7113:(t,e,n)=>{n.d(e,{L:()=>s});var o=n(4409);const a=0,r=0;class s{draw(t){const{particle:e,radius:n}=t;!function(t,e,n){const{context:s}=t,i=n.count.numerator*n.count.denominator,u=n.count.numerator/n.count.denominator,c=180*(u-2)/u,l=Math.PI-(0,o.pu)(c);if(s){s.beginPath(),s.translate(e.x,e.y),s.moveTo(a,r);for(let t=0;t{async function a(e){let n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];await e.addInteractor("externalBounce",(async e=>{const{Bouncer:n}=await t.e(7454).then(t.bind(t,7454));return new n(e)}),n)}t.d(n,{loadExternalBounceInteraction:()=>a})}}]); +//# sourceMappingURL=8122.6983dde7.chunk.js.map \ No newline at end of file diff --git a/build/static/js/8122.97d1d1b0.chunk.js.map b/build/static/js/8122.6983dde7.chunk.js.map similarity index 85% rename from build/static/js/8122.97d1d1b0.chunk.js.map rename to build/static/js/8122.6983dde7.chunk.js.map index 819e62a..316c798 100644 --- a/build/static/js/8122.97d1d1b0.chunk.js.map +++ b/build/static/js/8122.6983dde7.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/8122.97d1d1b0.chunk.js","mappings":"gGAAOA,eAAeC,EAA8BC,GAAwB,IAAhBC,IAAOC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,KAAAA,UAAA,SACzDF,EAAOK,cAAc,kBAAkBP,UACzC,MAAM,QAAEQ,SAAkB,+BAC1B,OAAO,IAAIA,EAAQC,EAAU,GAC9BN,EACP,C","sources":["../node_modules/@tsparticles/interaction-external-bounce/browser/index.js"],"sourcesContent":["export async function loadExternalBounceInteraction(engine, refresh = true) {\n await engine.addInteractor(\"externalBounce\", async (container) => {\n const { Bouncer } = await import(\"./Bouncer.js\");\n return new Bouncer(container);\n }, refresh);\n}\nexport * from \"./Options/Classes/Bounce.js\";\nexport * from \"./Options/Interfaces/IBounce.js\";\n"],"names":["async","loadExternalBounceInteraction","engine","refresh","arguments","length","undefined","addInteractor","Bouncer","container"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/8122.6983dde7.chunk.js","mappings":"kGAAOA,eAAeC,EAA8BC,GAAwB,IAAhBC,IAAOC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,KAAAA,UAAA,SACzDF,EAAOK,cAAc,kBAAkBP,UACzC,MAAM,QAAEQ,SAAkB,+BAC1B,OAAO,IAAIA,EAAQC,EAAU,GAC9BN,EACP,C","sources":["../node_modules/@tsparticles/interaction-external-bounce/browser/index.js"],"sourcesContent":["export async function loadExternalBounceInteraction(engine, refresh = true) {\n await engine.addInteractor(\"externalBounce\", async (container) => {\n const { Bouncer } = await import(\"./Bouncer.js\");\n return new Bouncer(container);\n }, refresh);\n}\nexport * from \"./Options/Classes/Bounce.js\";\nexport * from \"./Options/Interfaces/IBounce.js\";\n"],"names":["async","loadExternalBounceInteraction","engine","refresh","arguments","length","undefined","addInteractor","Bouncer","container"],"sourceRoot":""} \ No newline at end of file diff --git a/build/static/js/8122.97d1d1b0.chunk.js b/build/static/js/8122.97d1d1b0.chunk.js deleted file mode 100644 index 4013437..0000000 --- a/build/static/js/8122.97d1d1b0.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkclient=self.webpackChunkclient||[]).push([[8122],{5741:(n,e,t)=>{async function a(n){let e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];await n.addInteractor("externalBounce",(async n=>{const{Bouncer:e}=await t.e(7454).then(t.bind(t,7454));return new e(n)}),e)}t.d(e,{loadExternalBounceInteraction:()=>a})}}]); -//# sourceMappingURL=8122.97d1d1b0.chunk.js.map \ No newline at end of file diff --git a/build/static/js/8427.824f2fda.chunk.js b/build/static/js/8427.824f2fda.chunk.js deleted file mode 100644 index 8009dbe..0000000 --- a/build/static/js/8427.824f2fda.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkclient=self.webpackChunkclient||[]).push([[8427],{8427:(t,e,a)=>{a.d(e,{RotateUpdater:()=>c});var o=a(4409);class i{constructor(){this.enable=!1,this.speed=0,this.decay=0,this.sync=!1}load(t){t&&(void 0!==t.enable&&(this.enable=t.enable),void 0!==t.speed&&(this.speed=(0,o.DT)(t.speed)),void 0!==t.decay&&(this.decay=(0,o.DT)(t.decay)),void 0!==t.sync&&(this.sync=t.sync))}}class n extends o.PV{constructor(){super(),this.animation=new i,this.direction="clockwise",this.path=!1,this.value=0}load(t){t&&(super.load(t),void 0!==t.direction&&(this.direction=t.direction),this.animation.load(t.animation),void 0!==t.path&&(this.path=t.path))}}const s=2*Math.PI;class c{constructor(t){this.container=t}init(t){const e=t.options.rotate;if(!e)return;t.rotate={enable:e.animation.enable,value:(0,o.pu)((0,o.VG)(e.value)),min:0,max:s},t.pathRotation=e.path;let a=e.direction;if("random"===a){a=Math.floor(2*(0,o.G0)())>0?"counter-clockwise":"clockwise"}switch(a){case"counter-clockwise":case"counterClockwise":t.rotate.status="decreasing";break;case"clockwise":t.rotate.status="increasing"}const i=e.animation;i.enable&&(t.rotate.decay=1-(0,o.VG)(i.decay),t.rotate.velocity=(0,o.VG)(i.speed)/360*this.container.retina.reduceFactor,i.sync||(t.rotate.velocity*=(0,o.G0)())),t.rotation=t.rotate.value}isEnabled(t){const e=t.options.rotate;return!!e&&(!t.destroyed&&!t.spawning&&e.animation.enable&&!e.path)}loadOptions(t){t.rotate||(t.rotate=new n);for(var e=arguments.length,a=new Array(e>1?e-1:0),o=1;o{a.d(e,{RotateUpdater:()=>c});var o=a(4409);class i{constructor(){this.enable=!1,this.speed=0,this.decay=0,this.sync=!1}load(t){t&&(void 0!==t.enable&&(this.enable=t.enable),void 0!==t.speed&&(this.speed=(0,o.DT)(t.speed)),void 0!==t.decay&&(this.decay=(0,o.DT)(t.decay)),void 0!==t.sync&&(this.sync=t.sync))}}class s extends o.PV{constructor(){super(),this.animation=new i,this.direction="clockwise",this.path=!1,this.value=0}load(t){t&&(super.load(t),void 0!==t.direction&&(this.direction=t.direction),this.animation.load(t.animation),void 0!==t.path&&(this.path=t.path))}}const n=2*Math.PI;class c{constructor(t){this.container=t}init(t){const e=t.options.rotate;if(!e)return;t.rotate={enable:e.animation.enable,value:(0,o.pu)((0,o.VG)(e.value)),min:0,max:n},t.pathRotation=e.path;let a=e.direction;if("random"===a){a=Math.floor(2*(0,o.G0)())>0?"counter-clockwise":"clockwise"}switch(a){case"counter-clockwise":case"counterClockwise":t.rotate.status="decreasing";break;case"clockwise":t.rotate.status="increasing"}const i=e.animation;i.enable&&(t.rotate.decay=1-(0,o.VG)(i.decay),t.rotate.velocity=(0,o.VG)(i.speed)/360*this.container.retina.reduceFactor,i.sync||(t.rotate.velocity*=(0,o.G0)())),t.rotation=t.rotate.value}isEnabled(t){const e=t.options.rotate;return!!e&&(!t.destroyed&&!t.spawning&&e.animation.enable&&!e.path)}loadOptions(t){t.rotate||(t.rotate=new s);for(var e=arguments.length,a=new Array(e>1?e-1:0),o=1;o minIndex ? \"counter-clockwise\" : \"clockwise\";\n }\n switch (rotateDirection) {\n case \"counter-clockwise\":\n case \"counterClockwise\":\n particle.rotate.status = \"decreasing\";\n break;\n case \"clockwise\":\n particle.rotate.status = \"increasing\";\n break;\n }\n const rotateAnimation = rotateOptions.animation;\n if (rotateAnimation.enable) {\n particle.rotate.decay = identity - getRangeValue(rotateAnimation.decay);\n particle.rotate.velocity =\n (getRangeValue(rotateAnimation.speed) / doublePIDeg) * this.container.retina.reduceFactor;\n if (!rotateAnimation.sync) {\n particle.rotate.velocity *= getRandom();\n }\n }\n particle.rotation = particle.rotate.value;\n }\n isEnabled(particle) {\n const rotate = particle.options.rotate;\n if (!rotate) {\n return false;\n }\n return !particle.destroyed && !particle.spawning && rotate.animation.enable && !rotate.path;\n }\n loadOptions(options, ...sources) {\n if (!options.rotate) {\n options.rotate = new Rotate();\n }\n for (const source of sources) {\n options.rotate.load(source?.rotate);\n }\n }\n update(particle, delta) {\n if (!this.isEnabled(particle)) {\n return;\n }\n if (!particle.rotate) {\n return;\n }\n updateAnimation(particle, particle.rotate, false, \"none\", delta);\n particle.rotation = particle.rotate.value;\n }\n}\n"],"names":["RotateAnimation","constructor","this","enable","speed","decay","sync","load","data","undefined","setRangeValue","Rotate","ValueWithRandom","super","animation","direction","path","value","doublePI","Math","PI","RotateUpdater","container","init","particle","rotateOptions","options","rotate","degToRad","getRangeValue","min","max","pathRotation","rotateDirection","floor","getRandom","status","rotateAnimation","velocity","retina","reduceFactor","rotation","isEnabled","destroyed","spawning","loadOptions","_len","arguments","length","sources","Array","_key","source","update","delta","updateAnimation"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/8427.bf1104b0.chunk.js","mappings":"6IACO,MAAMA,EACTC,WAAAA,GACIC,KAAKC,QAAS,EACdD,KAAKE,MAAQ,EACbF,KAAKG,MAAQ,EACbH,KAAKI,MAAO,CAChB,CACAC,IAAAA,CAAKC,GACIA,SAGeC,IAAhBD,EAAKL,SACLD,KAAKC,OAASK,EAAKL,aAEJM,IAAfD,EAAKJ,QACLF,KAAKE,OAAQM,EAAAA,EAAAA,IAAcF,EAAKJ,aAEjBK,IAAfD,EAAKH,QACLH,KAAKG,OAAQK,EAAAA,EAAAA,IAAcF,EAAKH,aAElBI,IAAdD,EAAKF,OACLJ,KAAKI,KAAOE,EAAKF,MAEzB,ECtBG,MAAMK,UAAeC,EAAAA,GACxBX,WAAAA,GACIY,QACAX,KAAKY,UAAY,IAAId,EACrBE,KAAKa,UAAY,YACjBb,KAAKc,MAAO,EACZd,KAAKe,MAAQ,CACjB,CACAV,IAAAA,CAAKC,GACIA,IAGLK,MAAMN,KAAKC,QACYC,IAAnBD,EAAKO,YACLb,KAAKa,UAAYP,EAAKO,WAE1Bb,KAAKY,UAAUP,KAAKC,EAAKM,gBACPL,IAAdD,EAAKQ,OACLd,KAAKc,KAAOR,EAAKQ,MAEzB,ECpBJ,MAAkBE,EAAH,EAAcC,KAAKC,GAC3B,MAAMC,EACTpB,WAAAA,CAAYqB,GACRpB,KAAKoB,UAAYA,CACrB,CACAC,IAAAA,CAAKC,GACD,MAAMC,EAAgBD,EAASE,QAAQC,OACvC,IAAKF,EACD,OAEJD,EAASG,OAAS,CACdxB,OAAQsB,EAAcX,UAAUX,OAChCc,OAAOW,EAAAA,EAAAA,KAASC,EAAAA,EAAAA,IAAcJ,EAAcR,QAC5Ca,IAAK,EACLC,IAAKb,GAETM,EAASQ,aAAeP,EAAcT,KACtC,IAAIiB,EAAkBR,EAAcV,UACpC,GAAwB,WAApBkB,EAA8B,CAE9BA,EADcd,KAAKe,MAnBhB,GAmBsBC,EAAAA,EAAAA,OAAkC,EACtB,oBAAsB,WAC/D,CACA,OAAQF,GACJ,IAAK,oBACL,IAAK,mBACDT,EAASG,OAAOS,OAAS,aACzB,MACJ,IAAK,YACDZ,EAASG,OAAOS,OAAS,aAGjC,MAAMC,EAAkBZ,EAAcX,UAClCuB,EAAgBlC,SAChBqB,EAASG,OAAOtB,MAjC8B,GAiCXwB,EAAAA,EAAAA,IAAcQ,EAAgBhC,OACjEmB,EAASG,OAAOW,UACXT,EAAAA,EAAAA,IAAcQ,EAAgBjC,OAnC4B,IAmCJF,KAAKoB,UAAUiB,OAAOC,aAC5EH,EAAgB/B,OACjBkB,EAASG,OAAOW,WAAYH,EAAAA,EAAAA,QAGpCX,EAASiB,SAAWjB,EAASG,OAAOV,KACxC,CACAyB,SAAAA,CAAUlB,GACN,MAAMG,EAASH,EAASE,QAAQC,OAChC,QAAKA,KAGGH,EAASmB,YAAcnB,EAASoB,UAAYjB,EAAOb,UAAUX,SAAWwB,EAAOX,KAC3F,CACA6B,WAAAA,CAAYnB,GACHA,EAAQC,SACTD,EAAQC,OAAS,IAAIhB,GACxB,QAAAmC,EAAAC,UAAAC,OAHmBC,EAAO,IAAAC,MAAAJ,EAAA,EAAAA,EAAA,KAAAK,EAAA,EAAAA,EAAAL,EAAAK,IAAPF,EAAOE,EAAA,GAAAJ,UAAAI,GAI3B,IAAK,MAAMC,KAAUH,EACjBvB,EAAQC,OAAOpB,KAAW,OAAN6C,QAAM,IAANA,OAAM,EAANA,EAAQzB,OAEpC,CACA0B,MAAAA,CAAO7B,EAAU8B,GACRpD,KAAKwC,UAAUlB,IAGfA,EAASG,UAGd4B,EAAAA,EAAAA,IAAgB/B,EAAUA,EAASG,QAAQ,EAAO,OAAQ2B,GAC1D9B,EAASiB,SAAWjB,EAASG,OAAOV,MACxC,E","sources":["../node_modules/@tsparticles/updater-rotate/browser/Options/Classes/RotateAnimation.js","../node_modules/@tsparticles/updater-rotate/browser/Options/Classes/Rotate.js","../node_modules/@tsparticles/updater-rotate/browser/RotateUpdater.js"],"sourcesContent":["import { setRangeValue } from \"@tsparticles/engine\";\nexport class RotateAnimation {\n constructor() {\n this.enable = false;\n this.speed = 0;\n this.decay = 0;\n this.sync = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.speed !== undefined) {\n this.speed = setRangeValue(data.speed);\n }\n if (data.decay !== undefined) {\n this.decay = setRangeValue(data.decay);\n }\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n }\n}\n","import { ValueWithRandom, } from \"@tsparticles/engine\";\nimport { RotateAnimation } from \"./RotateAnimation.js\";\nexport class Rotate extends ValueWithRandom {\n constructor() {\n super();\n this.animation = new RotateAnimation();\n this.direction = \"clockwise\";\n this.path = false;\n this.value = 0;\n }\n load(data) {\n if (!data) {\n return;\n }\n super.load(data);\n if (data.direction !== undefined) {\n this.direction = data.direction;\n }\n this.animation.load(data.animation);\n if (data.path !== undefined) {\n this.path = data.path;\n }\n }\n}\n","import { degToRad, getRandom, getRangeValue, updateAnimation, } from \"@tsparticles/engine\";\nimport { Rotate } from \"./Options/Classes/Rotate.js\";\nconst double = 2, doublePI = Math.PI * double, identity = 1, doublePIDeg = 360;\nexport class RotateUpdater {\n constructor(container) {\n this.container = container;\n }\n init(particle) {\n const rotateOptions = particle.options.rotate;\n if (!rotateOptions) {\n return;\n }\n particle.rotate = {\n enable: rotateOptions.animation.enable,\n value: degToRad(getRangeValue(rotateOptions.value)),\n min: 0,\n max: doublePI,\n };\n particle.pathRotation = rotateOptions.path;\n let rotateDirection = rotateOptions.direction;\n if (rotateDirection === \"random\") {\n const index = Math.floor(getRandom() * double), minIndex = 0;\n rotateDirection = index > minIndex ? \"counter-clockwise\" : \"clockwise\";\n }\n switch (rotateDirection) {\n case \"counter-clockwise\":\n case \"counterClockwise\":\n particle.rotate.status = \"decreasing\";\n break;\n case \"clockwise\":\n particle.rotate.status = \"increasing\";\n break;\n }\n const rotateAnimation = rotateOptions.animation;\n if (rotateAnimation.enable) {\n particle.rotate.decay = identity - getRangeValue(rotateAnimation.decay);\n particle.rotate.velocity =\n (getRangeValue(rotateAnimation.speed) / doublePIDeg) * this.container.retina.reduceFactor;\n if (!rotateAnimation.sync) {\n particle.rotate.velocity *= getRandom();\n }\n }\n particle.rotation = particle.rotate.value;\n }\n isEnabled(particle) {\n const rotate = particle.options.rotate;\n if (!rotate) {\n return false;\n }\n return !particle.destroyed && !particle.spawning && rotate.animation.enable && !rotate.path;\n }\n loadOptions(options, ...sources) {\n if (!options.rotate) {\n options.rotate = new Rotate();\n }\n for (const source of sources) {\n options.rotate.load(source?.rotate);\n }\n }\n update(particle, delta) {\n if (!this.isEnabled(particle)) {\n return;\n }\n if (!particle.rotate) {\n return;\n }\n updateAnimation(particle, particle.rotate, false, \"none\", delta);\n particle.rotation = particle.rotate.value;\n }\n}\n"],"names":["RotateAnimation","constructor","this","enable","speed","decay","sync","load","data","undefined","setRangeValue","Rotate","ValueWithRandom","super","animation","direction","path","value","doublePI","Math","PI","RotateUpdater","container","init","particle","rotateOptions","options","rotate","degToRad","getRangeValue","min","max","pathRotation","rotateDirection","floor","getRandom","status","rotateAnimation","velocity","retina","reduceFactor","rotation","isEnabled","destroyed","spawning","loadOptions","_len","arguments","length","sources","Array","_key","source","update","delta","updateAnimation"],"sourceRoot":""} \ No newline at end of file diff --git a/build/static/js/8438.7b78bdac.chunk.js b/build/static/js/8438.7b78bdac.chunk.js deleted file mode 100644 index b73c8c2..0000000 --- a/build/static/js/8438.7b78bdac.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkclient=self.webpackChunkclient||[]).push([[8438],{7113:(t,e,n)=>{n.d(e,{L:()=>s});var r=n(4409);const a=0,o=0;class s{draw(t){const{particle:e,radius:n}=t;!function(t,e,n){const{context:s}=t,u=n.count.numerator*n.count.denominator,i=n.count.numerator/n.count.denominator,c=180*(i-2)/i,l=Math.PI-(0,r.pu)(c);if(s){s.beginPath(),s.translate(e.x,e.y),s.moveTo(a,o);for(let t=0;t{n.d(e,{TriangleDrawer:()=>a});var r=n(7113);class a extends r.L{getCenter(t,e){return{x:-e,y:e/1.66}}getSidesCount(){return 3}getSidesData(t,e){return{count:{denominator:2,numerator:3},length:2*e}}}}}]); -//# sourceMappingURL=8438.7b78bdac.chunk.js.map \ No newline at end of file diff --git a/build/static/js/8438.a2529207.chunk.js b/build/static/js/8438.a2529207.chunk.js new file mode 100644 index 0000000..333b8dd --- /dev/null +++ b/build/static/js/8438.a2529207.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkresview=self.webpackChunkresview||[]).push([[8438],{7113:(t,e,n)=>{n.d(e,{L:()=>s});var r=n(4409);const a=0,o=0;class s{draw(t){const{particle:e,radius:n}=t;!function(t,e,n){const{context:s}=t,u=n.count.numerator*n.count.denominator,i=n.count.numerator/n.count.denominator,c=180*(i-2)/i,d=Math.PI-(0,r.pu)(c);if(s){s.beginPath(),s.translate(e.x,e.y),s.moveTo(a,o);for(let t=0;t{n.d(e,{TriangleDrawer:()=>a});var r=n(7113);class a extends r.L{getCenter(t,e){return{x:-e,y:e/1.66}}getSidesCount(){return 3}getSidesData(t,e){return{count:{denominator:2,numerator:3},length:2*e}}}}}]); +//# sourceMappingURL=8438.a2529207.chunk.js.map \ No newline at end of file diff --git a/build/static/js/8438.7b78bdac.chunk.js.map b/build/static/js/8438.a2529207.chunk.js.map similarity index 96% rename from build/static/js/8438.7b78bdac.chunk.js.map rename to build/static/js/8438.a2529207.chunk.js.map index a10b6c9..83bad4d 100644 --- a/build/static/js/8438.7b78bdac.chunk.js.map +++ b/build/static/js/8438.a2529207.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/8438.7b78bdac.chunk.js","mappings":"+HACA,MAAmBA,EAAc,EAAdA,EAAoB,ECEhC,MAAMC,EACTC,IAAAA,CAAKC,GACD,MAAM,SAAEC,EAAQ,OAAEC,GAAWF,GDH9B,SAAqBA,EAAMG,EAAOC,GACrC,MAAM,QAAEC,GAAYL,EAAMM,EAAYF,EAAKG,MAAMC,UAAYJ,EAAKG,MAAME,YAAaC,EAAeN,EAAKG,MAAMC,UAAYJ,EAAKG,MAAME,YAAaE,EAFzI,KAE0KD,EAF9H,GAE6JA,EAAcE,EAAgBC,KAAKC,IAAKC,EAAAA,EAAAA,IAASJ,GACpQ,GAAKN,EAAL,CAGAA,EAAQW,YACRX,EAAQY,UAAUd,EAAMe,EAAGf,EAAMgB,GACjCd,EAAQe,OAAOvB,EAAUA,GACzB,IAAK,IAAIwB,EAAI,EAAGA,EAAIf,EAAWe,IAC3BhB,EAAQiB,OAAOlB,EAAKmB,OAAQ1B,GAC5BQ,EAAQY,UAAUb,EAAKmB,OAAQ1B,GAC/BQ,EAAQmB,OAAOZ,EAPnB,CASJ,CCTQa,CAAYzB,EAD+B0B,KAAKC,UAAU1B,EAAUC,GAAgBwB,KAAKE,aAAa3B,EAAUC,GAEpH,CACA2B,aAAAA,CAAc5B,GAAU,IAAA6B,EACpB,MAAMC,EAAU9B,EAAS+B,UACzB,OAAOnB,KAAKoB,OAAMC,EAAAA,EAAAA,IAA4B,QAAfJ,EAAQ,OAAPC,QAAO,IAAPA,OAAO,EAAPA,EAASI,aAAK,IAAAL,EAAAA,EARjC,GASjB,E,6DCTG,MAAMM,UAAuBtC,EAAAA,EAChC6B,SAAAA,CAAU1B,EAAUC,GAChB,MAAO,CACHgB,GAAIhB,EACJiB,EAAGjB,EALC,KAOZ,CACA2B,aAAAA,GACI,OATsB,CAU1B,CACAD,YAAAA,CAAa3B,EAAUC,GAEnB,MAAO,CACHK,MAAO,CACHE,YAAa,EACbD,UAAW,GAEfe,OAlB8B,EAYjBrB,EAQrB,E","sources":["../node_modules/@tsparticles/shape-polygon/browser/Utils.js","../node_modules/@tsparticles/shape-polygon/browser/PolygonDrawerBase.js","../node_modules/@tsparticles/shape-polygon/browser/TriangleDrawer.js"],"sourcesContent":["import { degToRad } from \"@tsparticles/engine\";\nconst piDeg = 180, origin = { x: 0, y: 0 }, sidesOffset = 2;\nexport function drawPolygon(data, start, side) {\n const { context } = data, sideCount = side.count.numerator * side.count.denominator, decimalSides = side.count.numerator / side.count.denominator, interiorAngleDegrees = (piDeg * (decimalSides - sidesOffset)) / decimalSides, interiorAngle = Math.PI - degToRad(interiorAngleDegrees);\n if (!context) {\n return;\n }\n context.beginPath();\n context.translate(start.x, start.y);\n context.moveTo(origin.x, origin.y);\n for (let i = 0; i < sideCount; i++) {\n context.lineTo(side.length, origin.y);\n context.translate(side.length, origin.y);\n context.rotate(interiorAngle);\n }\n}\n","import { getRangeValue, } from \"@tsparticles/engine\";\nimport { drawPolygon } from \"./Utils.js\";\nconst defaultSides = 5;\nexport class PolygonDrawerBase {\n draw(data) {\n const { particle, radius } = data, start = this.getCenter(particle, radius), side = this.getSidesData(particle, radius);\n drawPolygon(data, start, side);\n }\n getSidesCount(particle) {\n const polygon = particle.shapeData;\n return Math.round(getRangeValue(polygon?.sides ?? defaultSides));\n }\n}\n","import { PolygonDrawerBase } from \"./PolygonDrawerBase.js\";\nconst yFactor = 1.66, sides = 3, double = 2;\nexport class TriangleDrawer extends PolygonDrawerBase {\n getCenter(particle, radius) {\n return {\n x: -radius,\n y: radius / yFactor,\n };\n }\n getSidesCount() {\n return sides;\n }\n getSidesData(particle, radius) {\n const diameter = radius * double;\n return {\n count: {\n denominator: 2,\n numerator: 3,\n },\n length: diameter,\n };\n }\n}\n"],"names":["origin","PolygonDrawerBase","draw","data","particle","radius","start","side","context","sideCount","count","numerator","denominator","decimalSides","interiorAngleDegrees","interiorAngle","Math","PI","degToRad","beginPath","translate","x","y","moveTo","i","lineTo","length","rotate","drawPolygon","this","getCenter","getSidesData","getSidesCount","_polygon$sides","polygon","shapeData","round","getRangeValue","sides","TriangleDrawer"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/8438.a2529207.chunk.js","mappings":"iIACA,MAAmBA,EAAc,EAAdA,EAAoB,ECEhC,MAAMC,EACTC,IAAAA,CAAKC,GACD,MAAM,SAAEC,EAAQ,OAAEC,GAAWF,GDH9B,SAAqBA,EAAMG,EAAOC,GACrC,MAAM,QAAEC,GAAYL,EAAMM,EAAYF,EAAKG,MAAMC,UAAYJ,EAAKG,MAAME,YAAaC,EAAeN,EAAKG,MAAMC,UAAYJ,EAAKG,MAAME,YAAaE,EAFzI,KAE0KD,EAF9H,GAE6JA,EAAcE,EAAgBC,KAAKC,IAAKC,EAAAA,EAAAA,IAASJ,GACpQ,GAAKN,EAAL,CAGAA,EAAQW,YACRX,EAAQY,UAAUd,EAAMe,EAAGf,EAAMgB,GACjCd,EAAQe,OAAOvB,EAAUA,GACzB,IAAK,IAAIwB,EAAI,EAAGA,EAAIf,EAAWe,IAC3BhB,EAAQiB,OAAOlB,EAAKmB,OAAQ1B,GAC5BQ,EAAQY,UAAUb,EAAKmB,OAAQ1B,GAC/BQ,EAAQmB,OAAOZ,EAPnB,CASJ,CCTQa,CAAYzB,EAD+B0B,KAAKC,UAAU1B,EAAUC,GAAgBwB,KAAKE,aAAa3B,EAAUC,GAEpH,CACA2B,aAAAA,CAAc5B,GAAU,IAAA6B,EACpB,MAAMC,EAAU9B,EAAS+B,UACzB,OAAOnB,KAAKoB,OAAMC,EAAAA,EAAAA,IAA4B,QAAfJ,EAAQ,OAAPC,QAAO,IAAPA,OAAO,EAAPA,EAASI,aAAK,IAAAL,EAAAA,EARjC,GASjB,E,6DCTG,MAAMM,UAAuBtC,EAAAA,EAChC6B,SAAAA,CAAU1B,EAAUC,GAChB,MAAO,CACHgB,GAAIhB,EACJiB,EAAGjB,EALC,KAOZ,CACA2B,aAAAA,GACI,OATsB,CAU1B,CACAD,YAAAA,CAAa3B,EAAUC,GAEnB,MAAO,CACHK,MAAO,CACHE,YAAa,EACbD,UAAW,GAEfe,OAlB8B,EAYjBrB,EAQrB,E","sources":["../node_modules/@tsparticles/shape-polygon/browser/Utils.js","../node_modules/@tsparticles/shape-polygon/browser/PolygonDrawerBase.js","../node_modules/@tsparticles/shape-polygon/browser/TriangleDrawer.js"],"sourcesContent":["import { degToRad } from \"@tsparticles/engine\";\nconst piDeg = 180, origin = { x: 0, y: 0 }, sidesOffset = 2;\nexport function drawPolygon(data, start, side) {\n const { context } = data, sideCount = side.count.numerator * side.count.denominator, decimalSides = side.count.numerator / side.count.denominator, interiorAngleDegrees = (piDeg * (decimalSides - sidesOffset)) / decimalSides, interiorAngle = Math.PI - degToRad(interiorAngleDegrees);\n if (!context) {\n return;\n }\n context.beginPath();\n context.translate(start.x, start.y);\n context.moveTo(origin.x, origin.y);\n for (let i = 0; i < sideCount; i++) {\n context.lineTo(side.length, origin.y);\n context.translate(side.length, origin.y);\n context.rotate(interiorAngle);\n }\n}\n","import { getRangeValue, } from \"@tsparticles/engine\";\nimport { drawPolygon } from \"./Utils.js\";\nconst defaultSides = 5;\nexport class PolygonDrawerBase {\n draw(data) {\n const { particle, radius } = data, start = this.getCenter(particle, radius), side = this.getSidesData(particle, radius);\n drawPolygon(data, start, side);\n }\n getSidesCount(particle) {\n const polygon = particle.shapeData;\n return Math.round(getRangeValue(polygon?.sides ?? defaultSides));\n }\n}\n","import { PolygonDrawerBase } from \"./PolygonDrawerBase.js\";\nconst yFactor = 1.66, sides = 3, double = 2;\nexport class TriangleDrawer extends PolygonDrawerBase {\n getCenter(particle, radius) {\n return {\n x: -radius,\n y: radius / yFactor,\n };\n }\n getSidesCount() {\n return sides;\n }\n getSidesData(particle, radius) {\n const diameter = radius * double;\n return {\n count: {\n denominator: 2,\n numerator: 3,\n },\n length: diameter,\n };\n }\n}\n"],"names":["origin","PolygonDrawerBase","draw","data","particle","radius","start","side","context","sideCount","count","numerator","denominator","decimalSides","interiorAngleDegrees","interiorAngle","Math","PI","degToRad","beginPath","translate","x","y","moveTo","i","lineTo","length","rotate","drawPolygon","this","getCenter","getSidesData","getSidesCount","_polygon$sides","polygon","shapeData","round","getRangeValue","sides","TriangleDrawer"],"sourceRoot":""} \ No newline at end of file diff --git a/build/static/js/8731.6a9fba67.chunk.js b/build/static/js/8731.6a9fba67.chunk.js deleted file mode 100644 index 516b8c5..0000000 --- a/build/static/js/8731.6a9fba67.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkclient=self.webpackChunkclient||[]).push([[8731],{8731:(e,i,n)=>{n.d(i,{BaseMover:()=>s});var t=n(4409);const o=1;function a(e,i,n,a,s,c){!function(e,i){var n;const a=e.options,s=a.move.path;if(!s.enable)return;if(e.lastPathTime<=e.pathDelay)return void(e.lastPathTime+=i.value);const c=null===(n=e.pathGenerator)||void 0===n?void 0:n.generate(e,i);c&&e.velocity.addTo(c);s.clamp&&(e.velocity.x=(0,t.qE)(e.velocity.x,-o,o),e.velocity.y=(0,t.qE)(e.velocity.y,-o,o));e.lastPathTime-=e.pathDelay}(e,c);const l=e.gravity,r=null!==l&&void 0!==l&&l.enable&&l.inverse?-o:o;s&&n&&(e.velocity.x+=s*c.factor/(60*n)),null!==l&&void 0!==l&&l.enable&&n&&(e.velocity.y+=r*(l.acceleration*c.factor)/(60*n));const v=e.moveDecay;e.velocity.multTo(v);const p=e.velocity.mult(n);null!==l&&void 0!==l&&l.enable&&a>0&&(!l.inverse&&p.y>=0&&p.y>=a||l.inverse&&p.y<=0&&p.y<=-a)&&(p.y=r*a,n&&(e.velocity.y=p.y/n));const y=e.options.zIndex,d=(o-e.zIndexFactor)**y.velocityRate;p.multTo(d);const{position:u}=e;u.addTo(p),i.vibrate&&(u.x+=Math.sin(u.x*Math.cos(u.y)),u.y+=Math.cos(u.y*Math.sin(u.x)))}class s{init(e){const i=e.options.move.gravity;e.gravity={enable:i.enable,acceleration:(0,t.VG)(i.acceleration),inverse:i.inverse},function(e){var i;const n=e.container,o=e.options.move.spin;if(!o.enable)return;const a=null!==(i=o.position)&&void 0!==i?i:{x:50,y:50},s={x:.01*a.x*n.canvas.size.width,y:.01*a.y*n.canvas.size.height},c=e.getPosition(),l=(0,t.Yf)(c,s),r=(0,t.VG)(o.acceleration);e.retina.spinAcceleration=r*n.retina.pixelRatio,e.spin={center:s,direction:e.velocity.x>=0?"clockwise":"counter-clockwise",angle:e.velocity.angle,radius:l,acceleration:e.retina.spinAcceleration}}(e)}isEnabled(e){return!e.destroyed&&e.options.move.enable}move(e,i){var n,s,c,l,r;const v=e.options,p=v.move;if(!p.enable)return;const y=e.container,d=y.retina.pixelRatio;null!==(s=(n=e.retina).moveSpeed)&&void 0!==s||(n.moveSpeed=(0,t.VG)(p.speed)*d),null!==(l=(c=e.retina).moveDrift)&&void 0!==l||(c.moveDrift=(0,t.VG)(e.options.move.drift)*d);const u=function(e){return e.slow.inRange?e.slow.factor:o}(e),x=e.retina.moveSpeed*y.retina.reduceFactor,m=e.retina.moveDrift,h=(0,t.W9)(v.size.value)*d,f=x*(p.size?e.getRadius()/h:1)*u*(i.factor||1)/2,b=null!==(r=e.retina.maxSpeed)&&void 0!==r?r:y.retina.maxSpeed;p.spin.enable?function(e,i){const n=e.container;if(!e.spin)return;const t={x:"clockwise"===e.spin.direction?Math.cos:Math.sin,y:"clockwise"===e.spin.direction?Math.sin:Math.cos};e.position.x=e.spin.center.x+e.spin.radius*t.x(e.spin.angle),e.position.y=e.spin.center.y+e.spin.radius*t.y(e.spin.angle),e.spin.radius+=e.spin.acceleration;const a=Math.max(n.canvas.size.width,n.canvas.size.height),s=.5*a;e.spin.radius>s?(e.spin.radius=s,e.spin.acceleration*=-o):e.spin.radius<0&&(e.spin.radius=0,e.spin.acceleration*=-o),e.spin.angle+=.01*i*(o-e.spin.radius/a)}(e,f):a(e,p,f,b,m,i),function(e){var i,n;const o=e.initialPosition,{dx:a,dy:s}=(0,t.vr)(o,e.position),c=Math.abs(a),l=Math.abs(s),{maxDistance:r}=e.retina,v=r.horizontal,p=r.vertical;if(!v&&!p)return;const y=null!==(n=p&&l>=p)&&void 0!==n&&n;if((null!==(i=v&&c>=v)&&void 0!==i&&i||y)&&!e.misplaced)e.misplaced=!!v&&c>v||!!p&&l>p,v&&(e.velocity.x=.5*e.velocity.y-e.velocity.x),p&&(e.velocity.y=.5*e.velocity.x-e.velocity.y);else if((!v||co.x&&n.x>0)&&(n.x*=-(0,t.G0)()),p&&(i.yo.y&&n.y>0)&&(n.y*=-(0,t.G0)())}}(e)}}}}]); -//# sourceMappingURL=8731.6a9fba67.chunk.js.map \ No newline at end of file diff --git a/build/static/js/8731.c5d09571.chunk.js b/build/static/js/8731.c5d09571.chunk.js new file mode 100644 index 0000000..4a6190a --- /dev/null +++ b/build/static/js/8731.c5d09571.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkresview=self.webpackChunkresview||[]).push([[8731],{8731:(e,i,n)=>{n.d(i,{BaseMover:()=>s});var t=n(4409);const o=1;function a(e,i,n,a,s,c){!function(e,i){var n;const a=e.options,s=a.move.path;if(!s.enable)return;if(e.lastPathTime<=e.pathDelay)return void(e.lastPathTime+=i.value);const c=null===(n=e.pathGenerator)||void 0===n?void 0:n.generate(e,i);c&&e.velocity.addTo(c);s.clamp&&(e.velocity.x=(0,t.qE)(e.velocity.x,-o,o),e.velocity.y=(0,t.qE)(e.velocity.y,-o,o));e.lastPathTime-=e.pathDelay}(e,c);const l=e.gravity,r=null!==l&&void 0!==l&&l.enable&&l.inverse?-o:o;s&&n&&(e.velocity.x+=s*c.factor/(60*n)),null!==l&&void 0!==l&&l.enable&&n&&(e.velocity.y+=r*(l.acceleration*c.factor)/(60*n));const v=e.moveDecay;e.velocity.multTo(v);const p=e.velocity.mult(n);null!==l&&void 0!==l&&l.enable&&a>0&&(!l.inverse&&p.y>=0&&p.y>=a||l.inverse&&p.y<=0&&p.y<=-a)&&(p.y=r*a,n&&(e.velocity.y=p.y/n));const y=e.options.zIndex,d=(o-e.zIndexFactor)**y.velocityRate;p.multTo(d);const{position:u}=e;u.addTo(p),i.vibrate&&(u.x+=Math.sin(u.x*Math.cos(u.y)),u.y+=Math.cos(u.y*Math.sin(u.x)))}class s{init(e){const i=e.options.move.gravity;e.gravity={enable:i.enable,acceleration:(0,t.VG)(i.acceleration),inverse:i.inverse},function(e){var i;const n=e.container,o=e.options.move.spin;if(!o.enable)return;const a=null!==(i=o.position)&&void 0!==i?i:{x:50,y:50},s={x:.01*a.x*n.canvas.size.width,y:.01*a.y*n.canvas.size.height},c=e.getPosition(),l=(0,t.Yf)(c,s),r=(0,t.VG)(o.acceleration);e.retina.spinAcceleration=r*n.retina.pixelRatio,e.spin={center:s,direction:e.velocity.x>=0?"clockwise":"counter-clockwise",angle:e.velocity.angle,radius:l,acceleration:e.retina.spinAcceleration}}(e)}isEnabled(e){return!e.destroyed&&e.options.move.enable}move(e,i){var n,s,c,l,r;const v=e.options,p=v.move;if(!p.enable)return;const y=e.container,d=y.retina.pixelRatio;null!==(s=(n=e.retina).moveSpeed)&&void 0!==s||(n.moveSpeed=(0,t.VG)(p.speed)*d),null!==(l=(c=e.retina).moveDrift)&&void 0!==l||(c.moveDrift=(0,t.VG)(e.options.move.drift)*d);const u=function(e){return e.slow.inRange?e.slow.factor:o}(e),x=e.retina.moveSpeed*y.retina.reduceFactor,m=e.retina.moveDrift,h=(0,t.W9)(v.size.value)*d,f=x*(p.size?e.getRadius()/h:1)*u*(i.factor||1)/2,b=null!==(r=e.retina.maxSpeed)&&void 0!==r?r:y.retina.maxSpeed;p.spin.enable?function(e,i){const n=e.container;if(!e.spin)return;const t={x:"clockwise"===e.spin.direction?Math.cos:Math.sin,y:"clockwise"===e.spin.direction?Math.sin:Math.cos};e.position.x=e.spin.center.x+e.spin.radius*t.x(e.spin.angle),e.position.y=e.spin.center.y+e.spin.radius*t.y(e.spin.angle),e.spin.radius+=e.spin.acceleration;const a=Math.max(n.canvas.size.width,n.canvas.size.height),s=.5*a;e.spin.radius>s?(e.spin.radius=s,e.spin.acceleration*=-o):e.spin.radius<0&&(e.spin.radius=0,e.spin.acceleration*=-o),e.spin.angle+=.01*i*(o-e.spin.radius/a)}(e,f):a(e,p,f,b,m,i),function(e){var i,n;const o=e.initialPosition,{dx:a,dy:s}=(0,t.vr)(o,e.position),c=Math.abs(a),l=Math.abs(s),{maxDistance:r}=e.retina,v=r.horizontal,p=r.vertical;if(!v&&!p)return;const y=null!==(n=p&&l>=p)&&void 0!==n&&n;if((null!==(i=v&&c>=v)&&void 0!==i&&i||y)&&!e.misplaced)e.misplaced=!!v&&c>v||!!p&&l>p,v&&(e.velocity.x=.5*e.velocity.y-e.velocity.x),p&&(e.velocity.y=.5*e.velocity.x-e.velocity.y);else if((!v||co.x&&n.x>0)&&(n.x*=-(0,t.G0)()),p&&(i.yo.y&&n.y>0)&&(n.y*=-(0,t.G0)())}}(e)}}}}]); +//# sourceMappingURL=8731.c5d09571.chunk.js.map \ No newline at end of file diff --git a/build/static/js/8731.6a9fba67.chunk.js.map b/build/static/js/8731.c5d09571.chunk.js.map similarity index 99% rename from build/static/js/8731.6a9fba67.chunk.js.map rename to build/static/js/8731.c5d09571.chunk.js.map index 44aa09c..20e6e70 100644 --- a/build/static/js/8731.6a9fba67.chunk.js.map +++ b/build/static/js/8731.c5d09571.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/8731.6a9fba67.chunk.js","mappings":"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","sources":["../node_modules/@tsparticles/move-base/browser/Utils.js","../node_modules/@tsparticles/move-base/browser/BaseMover.js"],"sourcesContent":["import { clamp, getDistance, getDistances, getRandom, getRangeValue, } from \"@tsparticles/engine\";\nconst half = 0.5, minVelocity = 0, identity = 1, moveSpeedFactor = 60, minSpinRadius = 0, spinFactor = 0.01;\nexport function applyDistance(particle) {\n const initialPosition = particle.initialPosition, { dx, dy } = getDistances(initialPosition, particle.position), dxFixed = Math.abs(dx), dyFixed = Math.abs(dy), { maxDistance } = particle.retina, hDistance = maxDistance.horizontal, vDistance = maxDistance.vertical;\n if (!hDistance && !vDistance) {\n return;\n }\n const hasHDistance = (hDistance && dxFixed >= hDistance) ?? false, hasVDistance = (vDistance && dyFixed >= vDistance) ?? false;\n if ((hasHDistance || hasVDistance) && !particle.misplaced) {\n particle.misplaced = (!!hDistance && dxFixed > hDistance) || (!!vDistance && dyFixed > vDistance);\n if (hDistance) {\n particle.velocity.x = particle.velocity.y * half - particle.velocity.x;\n }\n if (vDistance) {\n particle.velocity.y = particle.velocity.x * half - particle.velocity.y;\n }\n }\n else if ((!hDistance || dxFixed < hDistance) && (!vDistance || dyFixed < vDistance) && particle.misplaced) {\n particle.misplaced = false;\n }\n else if (particle.misplaced) {\n const pos = particle.position, vel = particle.velocity;\n if (hDistance &&\n ((pos.x < initialPosition.x && vel.x < minVelocity) || (pos.x > initialPosition.x && vel.x > minVelocity))) {\n vel.x *= -getRandom();\n }\n if (vDistance &&\n ((pos.y < initialPosition.y && vel.y < minVelocity) || (pos.y > initialPosition.y && vel.y > minVelocity))) {\n vel.y *= -getRandom();\n }\n }\n}\nexport function move(particle, moveOptions, moveSpeed, maxSpeed, moveDrift, delta) {\n applyPath(particle, delta);\n const gravityOptions = particle.gravity, gravityFactor = gravityOptions?.enable && gravityOptions.inverse ? -identity : identity;\n if (moveDrift && moveSpeed) {\n particle.velocity.x += (moveDrift * delta.factor) / (moveSpeedFactor * moveSpeed);\n }\n if (gravityOptions?.enable && moveSpeed) {\n particle.velocity.y +=\n (gravityFactor * (gravityOptions.acceleration * delta.factor)) / (moveSpeedFactor * moveSpeed);\n }\n const decay = particle.moveDecay;\n particle.velocity.multTo(decay);\n const velocity = particle.velocity.mult(moveSpeed);\n if (gravityOptions?.enable &&\n maxSpeed > minVelocity &&\n ((!gravityOptions.inverse && velocity.y >= minVelocity && velocity.y >= maxSpeed) ||\n (gravityOptions.inverse && velocity.y <= minVelocity && velocity.y <= -maxSpeed))) {\n velocity.y = gravityFactor * maxSpeed;\n if (moveSpeed) {\n particle.velocity.y = velocity.y / moveSpeed;\n }\n }\n const zIndexOptions = particle.options.zIndex, zVelocityFactor = (identity - particle.zIndexFactor) ** zIndexOptions.velocityRate;\n velocity.multTo(zVelocityFactor);\n const { position } = particle;\n position.addTo(velocity);\n if (moveOptions.vibrate) {\n position.x += Math.sin(position.x * Math.cos(position.y));\n position.y += Math.cos(position.y * Math.sin(position.x));\n }\n}\nexport function spin(particle, moveSpeed) {\n const container = particle.container;\n if (!particle.spin) {\n return;\n }\n const updateFunc = {\n x: particle.spin.direction === \"clockwise\" ? Math.cos : Math.sin,\n y: particle.spin.direction === \"clockwise\" ? Math.sin : Math.cos,\n };\n particle.position.x = particle.spin.center.x + particle.spin.radius * updateFunc.x(particle.spin.angle);\n particle.position.y = particle.spin.center.y + particle.spin.radius * updateFunc.y(particle.spin.angle);\n particle.spin.radius += particle.spin.acceleration;\n const maxCanvasSize = Math.max(container.canvas.size.width, container.canvas.size.height), halfMaxSize = maxCanvasSize * half;\n if (particle.spin.radius > halfMaxSize) {\n particle.spin.radius = halfMaxSize;\n particle.spin.acceleration *= -identity;\n }\n else if (particle.spin.radius < minSpinRadius) {\n particle.spin.radius = minSpinRadius;\n particle.spin.acceleration *= -identity;\n }\n particle.spin.angle += moveSpeed * spinFactor * (identity - particle.spin.radius / maxCanvasSize);\n}\nexport function applyPath(particle, delta) {\n const particlesOptions = particle.options, pathOptions = particlesOptions.move.path, pathEnabled = pathOptions.enable;\n if (!pathEnabled) {\n return;\n }\n if (particle.lastPathTime <= particle.pathDelay) {\n particle.lastPathTime += delta.value;\n return;\n }\n const path = particle.pathGenerator?.generate(particle, delta);\n if (path) {\n particle.velocity.addTo(path);\n }\n if (pathOptions.clamp) {\n particle.velocity.x = clamp(particle.velocity.x, -identity, identity);\n particle.velocity.y = clamp(particle.velocity.y, -identity, identity);\n }\n particle.lastPathTime -= particle.pathDelay;\n}\nexport function getProximitySpeedFactor(particle) {\n return particle.slow.inRange ? particle.slow.factor : identity;\n}\nexport function initSpin(particle) {\n const container = particle.container, options = particle.options, spinOptions = options.move.spin;\n if (!spinOptions.enable) {\n return;\n }\n const spinPos = spinOptions.position ?? { x: 50, y: 50 }, spinFactor = 0.01, spinCenter = {\n x: spinPos.x * spinFactor * container.canvas.size.width,\n y: spinPos.y * spinFactor * container.canvas.size.height,\n }, pos = particle.getPosition(), distance = getDistance(pos, spinCenter), spinAcceleration = getRangeValue(spinOptions.acceleration);\n particle.retina.spinAcceleration = spinAcceleration * container.retina.pixelRatio;\n const minVelocity = 0;\n particle.spin = {\n center: spinCenter,\n direction: particle.velocity.x >= minVelocity ? \"clockwise\" : \"counter-clockwise\",\n angle: particle.velocity.angle,\n radius: distance,\n acceleration: particle.retina.spinAcceleration,\n };\n}\n","import { getRangeMax, getRangeValue } from \"@tsparticles/engine\";\nimport { applyDistance, getProximitySpeedFactor, initSpin, move, spin } from \"./Utils.js\";\nconst diffFactor = 2, defaultSizeFactor = 1, defaultDeltaFactor = 1;\nexport class BaseMover {\n init(particle) {\n const options = particle.options, gravityOptions = options.move.gravity;\n particle.gravity = {\n enable: gravityOptions.enable,\n acceleration: getRangeValue(gravityOptions.acceleration),\n inverse: gravityOptions.inverse,\n };\n initSpin(particle);\n }\n isEnabled(particle) {\n return !particle.destroyed && particle.options.move.enable;\n }\n move(particle, delta) {\n const particleOptions = particle.options, moveOptions = particleOptions.move;\n if (!moveOptions.enable) {\n return;\n }\n const container = particle.container, pxRatio = container.retina.pixelRatio;\n particle.retina.moveSpeed ??= getRangeValue(moveOptions.speed) * pxRatio;\n particle.retina.moveDrift ??= getRangeValue(particle.options.move.drift) * pxRatio;\n const slowFactor = getProximitySpeedFactor(particle), baseSpeed = particle.retina.moveSpeed * container.retina.reduceFactor, moveDrift = particle.retina.moveDrift, maxSize = getRangeMax(particleOptions.size.value) * pxRatio, sizeFactor = moveOptions.size ? particle.getRadius() / maxSize : defaultSizeFactor, deltaFactor = delta.factor || defaultDeltaFactor, moveSpeed = (baseSpeed * sizeFactor * slowFactor * deltaFactor) / diffFactor, maxSpeed = particle.retina.maxSpeed ?? container.retina.maxSpeed;\n if (moveOptions.spin.enable) {\n spin(particle, moveSpeed);\n }\n else {\n move(particle, moveOptions, moveSpeed, maxSpeed, moveDrift, delta);\n }\n applyDistance(particle);\n }\n}\n"],"names":["identity","move","particle","moveOptions","moveSpeed","maxSpeed","moveDrift","delta","_particle$pathGenerat","particlesOptions","options","pathOptions","path","enable","lastPathTime","pathDelay","value","pathGenerator","generate","velocity","addTo","clamp","x","y","applyPath","gravityOptions","gravity","gravityFactor","inverse","factor","acceleration","decay","moveDecay","multTo","mult","zIndexOptions","zIndex","zVelocityFactor","zIndexFactor","velocityRate","position","vibrate","Math","sin","cos","BaseMover","init","getRangeValue","_spinOptions$position","container","spinOptions","spin","spinPos","spinCenter","canvas","size","width","height","pos","getPosition","distance","getDistance","spinAcceleration","retina","pixelRatio","center","direction","angle","radius","initSpin","isEnabled","destroyed","_particle$retina","_particle$retina$move","_particle$retina2","_particle$retina2$mov","_particle$retina$maxS","particleOptions","pxRatio","speed","drift","slowFactor","slow","inRange","getProximitySpeedFactor","baseSpeed","reduceFactor","maxSize","getRangeMax","getRadius","updateFunc","maxCanvasSize","max","halfMaxSize","_ref","_ref2","initialPosition","dx","dy","getDistances","dxFixed","abs","dyFixed","maxDistance","hDistance","horizontal","vDistance","vertical","hasVDistance","misplaced","vel","getRandom","applyDistance"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/8731.c5d09571.chunk.js","mappings":"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","sources":["../node_modules/@tsparticles/move-base/browser/Utils.js","../node_modules/@tsparticles/move-base/browser/BaseMover.js"],"sourcesContent":["import { clamp, getDistance, getDistances, getRandom, getRangeValue, } from \"@tsparticles/engine\";\nconst half = 0.5, minVelocity = 0, identity = 1, moveSpeedFactor = 60, minSpinRadius = 0, spinFactor = 0.01;\nexport function applyDistance(particle) {\n const initialPosition = particle.initialPosition, { dx, dy } = getDistances(initialPosition, particle.position), dxFixed = Math.abs(dx), dyFixed = Math.abs(dy), { maxDistance } = particle.retina, hDistance = maxDistance.horizontal, vDistance = maxDistance.vertical;\n if (!hDistance && !vDistance) {\n return;\n }\n const hasHDistance = (hDistance && dxFixed >= hDistance) ?? false, hasVDistance = (vDistance && dyFixed >= vDistance) ?? false;\n if ((hasHDistance || hasVDistance) && !particle.misplaced) {\n particle.misplaced = (!!hDistance && dxFixed > hDistance) || (!!vDistance && dyFixed > vDistance);\n if (hDistance) {\n particle.velocity.x = particle.velocity.y * half - particle.velocity.x;\n }\n if (vDistance) {\n particle.velocity.y = particle.velocity.x * half - particle.velocity.y;\n }\n }\n else if ((!hDistance || dxFixed < hDistance) && (!vDistance || dyFixed < vDistance) && particle.misplaced) {\n particle.misplaced = false;\n }\n else if (particle.misplaced) {\n const pos = particle.position, vel = particle.velocity;\n if (hDistance &&\n ((pos.x < initialPosition.x && vel.x < minVelocity) || (pos.x > initialPosition.x && vel.x > minVelocity))) {\n vel.x *= -getRandom();\n }\n if (vDistance &&\n ((pos.y < initialPosition.y && vel.y < minVelocity) || (pos.y > initialPosition.y && vel.y > minVelocity))) {\n vel.y *= -getRandom();\n }\n }\n}\nexport function move(particle, moveOptions, moveSpeed, maxSpeed, moveDrift, delta) {\n applyPath(particle, delta);\n const gravityOptions = particle.gravity, gravityFactor = gravityOptions?.enable && gravityOptions.inverse ? -identity : identity;\n if (moveDrift && moveSpeed) {\n particle.velocity.x += (moveDrift * delta.factor) / (moveSpeedFactor * moveSpeed);\n }\n if (gravityOptions?.enable && moveSpeed) {\n particle.velocity.y +=\n (gravityFactor * (gravityOptions.acceleration * delta.factor)) / (moveSpeedFactor * moveSpeed);\n }\n const decay = particle.moveDecay;\n particle.velocity.multTo(decay);\n const velocity = particle.velocity.mult(moveSpeed);\n if (gravityOptions?.enable &&\n maxSpeed > minVelocity &&\n ((!gravityOptions.inverse && velocity.y >= minVelocity && velocity.y >= maxSpeed) ||\n (gravityOptions.inverse && velocity.y <= minVelocity && velocity.y <= -maxSpeed))) {\n velocity.y = gravityFactor * maxSpeed;\n if (moveSpeed) {\n particle.velocity.y = velocity.y / moveSpeed;\n }\n }\n const zIndexOptions = particle.options.zIndex, zVelocityFactor = (identity - particle.zIndexFactor) ** zIndexOptions.velocityRate;\n velocity.multTo(zVelocityFactor);\n const { position } = particle;\n position.addTo(velocity);\n if (moveOptions.vibrate) {\n position.x += Math.sin(position.x * Math.cos(position.y));\n position.y += Math.cos(position.y * Math.sin(position.x));\n }\n}\nexport function spin(particle, moveSpeed) {\n const container = particle.container;\n if (!particle.spin) {\n return;\n }\n const updateFunc = {\n x: particle.spin.direction === \"clockwise\" ? Math.cos : Math.sin,\n y: particle.spin.direction === \"clockwise\" ? Math.sin : Math.cos,\n };\n particle.position.x = particle.spin.center.x + particle.spin.radius * updateFunc.x(particle.spin.angle);\n particle.position.y = particle.spin.center.y + particle.spin.radius * updateFunc.y(particle.spin.angle);\n particle.spin.radius += particle.spin.acceleration;\n const maxCanvasSize = Math.max(container.canvas.size.width, container.canvas.size.height), halfMaxSize = maxCanvasSize * half;\n if (particle.spin.radius > halfMaxSize) {\n particle.spin.radius = halfMaxSize;\n particle.spin.acceleration *= -identity;\n }\n else if (particle.spin.radius < minSpinRadius) {\n particle.spin.radius = minSpinRadius;\n particle.spin.acceleration *= -identity;\n }\n particle.spin.angle += moveSpeed * spinFactor * (identity - particle.spin.radius / maxCanvasSize);\n}\nexport function applyPath(particle, delta) {\n const particlesOptions = particle.options, pathOptions = particlesOptions.move.path, pathEnabled = pathOptions.enable;\n if (!pathEnabled) {\n return;\n }\n if (particle.lastPathTime <= particle.pathDelay) {\n particle.lastPathTime += delta.value;\n return;\n }\n const path = particle.pathGenerator?.generate(particle, delta);\n if (path) {\n particle.velocity.addTo(path);\n }\n if (pathOptions.clamp) {\n particle.velocity.x = clamp(particle.velocity.x, -identity, identity);\n particle.velocity.y = clamp(particle.velocity.y, -identity, identity);\n }\n particle.lastPathTime -= particle.pathDelay;\n}\nexport function getProximitySpeedFactor(particle) {\n return particle.slow.inRange ? particle.slow.factor : identity;\n}\nexport function initSpin(particle) {\n const container = particle.container, options = particle.options, spinOptions = options.move.spin;\n if (!spinOptions.enable) {\n return;\n }\n const spinPos = spinOptions.position ?? { x: 50, y: 50 }, spinFactor = 0.01, spinCenter = {\n x: spinPos.x * spinFactor * container.canvas.size.width,\n y: spinPos.y * spinFactor * container.canvas.size.height,\n }, pos = particle.getPosition(), distance = getDistance(pos, spinCenter), spinAcceleration = getRangeValue(spinOptions.acceleration);\n particle.retina.spinAcceleration = spinAcceleration * container.retina.pixelRatio;\n const minVelocity = 0;\n particle.spin = {\n center: spinCenter,\n direction: particle.velocity.x >= minVelocity ? \"clockwise\" : \"counter-clockwise\",\n angle: particle.velocity.angle,\n radius: distance,\n acceleration: particle.retina.spinAcceleration,\n };\n}\n","import { getRangeMax, getRangeValue } from \"@tsparticles/engine\";\nimport { applyDistance, getProximitySpeedFactor, initSpin, move, spin } from \"./Utils.js\";\nconst diffFactor = 2, defaultSizeFactor = 1, defaultDeltaFactor = 1;\nexport class BaseMover {\n init(particle) {\n const options = particle.options, gravityOptions = options.move.gravity;\n particle.gravity = {\n enable: gravityOptions.enable,\n acceleration: getRangeValue(gravityOptions.acceleration),\n inverse: gravityOptions.inverse,\n };\n initSpin(particle);\n }\n isEnabled(particle) {\n return !particle.destroyed && particle.options.move.enable;\n }\n move(particle, delta) {\n const particleOptions = particle.options, moveOptions = particleOptions.move;\n if (!moveOptions.enable) {\n return;\n }\n const container = particle.container, pxRatio = container.retina.pixelRatio;\n particle.retina.moveSpeed ??= getRangeValue(moveOptions.speed) * pxRatio;\n particle.retina.moveDrift ??= getRangeValue(particle.options.move.drift) * pxRatio;\n const slowFactor = getProximitySpeedFactor(particle), baseSpeed = particle.retina.moveSpeed * container.retina.reduceFactor, moveDrift = particle.retina.moveDrift, maxSize = getRangeMax(particleOptions.size.value) * pxRatio, sizeFactor = moveOptions.size ? particle.getRadius() / maxSize : defaultSizeFactor, deltaFactor = delta.factor || defaultDeltaFactor, moveSpeed = (baseSpeed * sizeFactor * slowFactor * deltaFactor) / diffFactor, maxSpeed = particle.retina.maxSpeed ?? container.retina.maxSpeed;\n if (moveOptions.spin.enable) {\n spin(particle, moveSpeed);\n }\n else {\n move(particle, moveOptions, moveSpeed, maxSpeed, moveDrift, delta);\n }\n applyDistance(particle);\n }\n}\n"],"names":["identity","move","particle","moveOptions","moveSpeed","maxSpeed","moveDrift","delta","_particle$pathGenerat","particlesOptions","options","pathOptions","path","enable","lastPathTime","pathDelay","value","pathGenerator","generate","velocity","addTo","clamp","x","y","applyPath","gravityOptions","gravity","gravityFactor","inverse","factor","acceleration","decay","moveDecay","multTo","mult","zIndexOptions","zIndex","zVelocityFactor","zIndexFactor","velocityRate","position","vibrate","Math","sin","cos","BaseMover","init","getRangeValue","_spinOptions$position","container","spinOptions","spin","spinPos","spinCenter","canvas","size","width","height","pos","getPosition","distance","getDistance","spinAcceleration","retina","pixelRatio","center","direction","angle","radius","initSpin","isEnabled","destroyed","_particle$retina","_particle$retina$move","_particle$retina2","_particle$retina2$mov","_particle$retina$maxS","particleOptions","pxRatio","speed","drift","slowFactor","slow","inRange","getProximitySpeedFactor","baseSpeed","reduceFactor","maxSize","getRangeMax","getRadius","updateFunc","maxCanvasSize","max","halfMaxSize","_ref","_ref2","initialPosition","dx","dy","getDistances","dxFixed","abs","dyFixed","maxDistance","hDistance","horizontal","vDistance","vertical","hasVDistance","misplaced","vel","getRandom","applyDistance"],"sourceRoot":""} \ No newline at end of file diff --git a/build/static/js/8800.33fac856.chunk.js b/build/static/js/8800.33fac856.chunk.js deleted file mode 100644 index a7dac19..0000000 --- a/build/static/js/8800.33fac856.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkclient=self.webpackChunkclient||[]).push([[8800],{8800:(o,i,n)=>{n.d(i,{ColorUpdater:()=>l});var e=n(4409);class l{constructor(o){this.container=o}init(o){const i=(0,e.R5)(o.options.color,o.id,o.options.reduceDuplicates);i&&(o.color=(0,e.pz)(i,o.options.color.animation,this.container.retina.reduceFactor))}isEnabled(o){const{h:i,s:n,l:e}=o.options.color.animation,{color:l}=o;return!o.destroyed&&!o.spawning&&(void 0!==(null===l||void 0===l?void 0:l.h.value)&&i.enable||void 0!==(null===l||void 0===l?void 0:l.s.value)&&n.enable||void 0!==(null===l||void 0===l?void 0:l.l.value)&&e.enable)}update(o,i){(0,e.Jv)(o.color,i)}}}}]); -//# sourceMappingURL=8800.33fac856.chunk.js.map \ No newline at end of file diff --git a/build/static/js/8800.9922c692.chunk.js b/build/static/js/8800.9922c692.chunk.js new file mode 100644 index 0000000..f1e5ff5 --- /dev/null +++ b/build/static/js/8800.9922c692.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkresview=self.webpackChunkresview||[]).push([[8800],{8800:(o,e,i)=>{i.d(e,{ColorUpdater:()=>l});var n=i(4409);class l{constructor(o){this.container=o}init(o){const e=(0,n.R5)(o.options.color,o.id,o.options.reduceDuplicates);e&&(o.color=(0,n.pz)(e,o.options.color.animation,this.container.retina.reduceFactor))}isEnabled(o){const{h:e,s:i,l:n}=o.options.color.animation,{color:l}=o;return!o.destroyed&&!o.spawning&&(void 0!==(null===l||void 0===l?void 0:l.h.value)&&e.enable||void 0!==(null===l||void 0===l?void 0:l.s.value)&&i.enable||void 0!==(null===l||void 0===l?void 0:l.l.value)&&n.enable)}update(o,e){(0,n.Jv)(o.color,e)}}}}]); +//# sourceMappingURL=8800.9922c692.chunk.js.map \ No newline at end of file diff --git a/build/static/js/8800.33fac856.chunk.js.map b/build/static/js/8800.9922c692.chunk.js.map similarity index 94% rename from build/static/js/8800.33fac856.chunk.js.map rename to build/static/js/8800.9922c692.chunk.js.map index 05aa82b..4b013d9 100644 --- a/build/static/js/8800.33fac856.chunk.js.map +++ b/build/static/js/8800.9922c692.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/8800.33fac856.chunk.js","mappings":"0IACO,MAAMA,EACTC,WAAAA,CAAYC,GACRC,KAAKD,UAAYA,CACrB,CACAE,IAAAA,CAAKC,GACD,MAAMC,GAAWC,EAAAA,EAAAA,IAAgBF,EAASG,QAAQC,MAAOJ,EAASK,GAAIL,EAASG,QAAQG,kBACnFL,IACAD,EAASI,OAAQG,EAAAA,EAAAA,IAAuBN,EAAUD,EAASG,QAAQC,MAAMI,UAAWV,KAAKD,UAAUY,OAAOC,cAElH,CACAC,SAAAA,CAAUX,GACN,MAAQY,EAAGC,EAAYC,EAAGC,EAAYC,EAAGC,GAAejB,EAASG,QAAQC,MAAMI,WAAW,MAAEJ,GAAUJ,EACtG,OAASA,EAASkB,YACblB,EAASmB,gBACWC,KAAd,OAALhB,QAAK,IAALA,OAAK,EAALA,EAAOQ,EAAES,QAAuBR,EAAWS,aACrBF,KAAd,OAALhB,QAAK,IAALA,OAAK,EAALA,EAAOU,EAAEO,QAAuBN,EAAWO,aACxBF,KAAd,OAALhB,QAAK,IAALA,OAAK,EAALA,EAAOY,EAAEK,QAAuBJ,EAAWK,OACxD,CACAC,MAAAA,CAAOvB,EAAUwB,IACbC,EAAAA,EAAAA,IAAYzB,EAASI,MAAOoB,EAChC,E","sources":["../node_modules/@tsparticles/updater-color/browser/ColorUpdater.js"],"sourcesContent":["import { getHslAnimationFromHsl, rangeColorToHsl, updateColor, } from \"@tsparticles/engine\";\nexport class ColorUpdater {\n constructor(container) {\n this.container = container;\n }\n init(particle) {\n const hslColor = rangeColorToHsl(particle.options.color, particle.id, particle.options.reduceDuplicates);\n if (hslColor) {\n particle.color = getHslAnimationFromHsl(hslColor, particle.options.color.animation, this.container.retina.reduceFactor);\n }\n }\n isEnabled(particle) {\n const { h: hAnimation, s: sAnimation, l: lAnimation } = particle.options.color.animation, { color } = particle;\n return (!particle.destroyed &&\n !particle.spawning &&\n ((color?.h.value !== undefined && hAnimation.enable) ||\n (color?.s.value !== undefined && sAnimation.enable) ||\n (color?.l.value !== undefined && lAnimation.enable)));\n }\n update(particle, delta) {\n updateColor(particle.color, delta);\n }\n}\n"],"names":["ColorUpdater","constructor","container","this","init","particle","hslColor","rangeColorToHsl","options","color","id","reduceDuplicates","getHslAnimationFromHsl","animation","retina","reduceFactor","isEnabled","h","hAnimation","s","sAnimation","l","lAnimation","destroyed","spawning","undefined","value","enable","update","delta","updateColor"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/8800.9922c692.chunk.js","mappings":"4IACO,MAAMA,EACTC,WAAAA,CAAYC,GACRC,KAAKD,UAAYA,CACrB,CACAE,IAAAA,CAAKC,GACD,MAAMC,GAAWC,EAAAA,EAAAA,IAAgBF,EAASG,QAAQC,MAAOJ,EAASK,GAAIL,EAASG,QAAQG,kBACnFL,IACAD,EAASI,OAAQG,EAAAA,EAAAA,IAAuBN,EAAUD,EAASG,QAAQC,MAAMI,UAAWV,KAAKD,UAAUY,OAAOC,cAElH,CACAC,SAAAA,CAAUX,GACN,MAAQY,EAAGC,EAAYC,EAAGC,EAAYC,EAAGC,GAAejB,EAASG,QAAQC,MAAMI,WAAW,MAAEJ,GAAUJ,EACtG,OAASA,EAASkB,YACblB,EAASmB,gBACWC,KAAd,OAALhB,QAAK,IAALA,OAAK,EAALA,EAAOQ,EAAES,QAAuBR,EAAWS,aACrBF,KAAd,OAALhB,QAAK,IAALA,OAAK,EAALA,EAAOU,EAAEO,QAAuBN,EAAWO,aACxBF,KAAd,OAALhB,QAAK,IAALA,OAAK,EAALA,EAAOY,EAAEK,QAAuBJ,EAAWK,OACxD,CACAC,MAAAA,CAAOvB,EAAUwB,IACbC,EAAAA,EAAAA,IAAYzB,EAASI,MAAOoB,EAChC,E","sources":["../node_modules/@tsparticles/updater-color/browser/ColorUpdater.js"],"sourcesContent":["import { getHslAnimationFromHsl, rangeColorToHsl, updateColor, } from \"@tsparticles/engine\";\nexport class ColorUpdater {\n constructor(container) {\n this.container = container;\n }\n init(particle) {\n const hslColor = rangeColorToHsl(particle.options.color, particle.id, particle.options.reduceDuplicates);\n if (hslColor) {\n particle.color = getHslAnimationFromHsl(hslColor, particle.options.color.animation, this.container.retina.reduceFactor);\n }\n }\n isEnabled(particle) {\n const { h: hAnimation, s: sAnimation, l: lAnimation } = particle.options.color.animation, { color } = particle;\n return (!particle.destroyed &&\n !particle.spawning &&\n ((color?.h.value !== undefined && hAnimation.enable) ||\n (color?.s.value !== undefined && sAnimation.enable) ||\n (color?.l.value !== undefined && lAnimation.enable)));\n }\n update(particle, delta) {\n updateColor(particle.color, delta);\n }\n}\n"],"names":["ColorUpdater","constructor","container","this","init","particle","hslColor","rangeColorToHsl","options","color","id","reduceDuplicates","getHslAnimationFromHsl","animation","retina","reduceFactor","isEnabled","h","hAnimation","s","sAnimation","l","lAnimation","destroyed","spawning","undefined","value","enable","update","delta","updateColor"],"sourceRoot":""} \ No newline at end of file diff --git a/build/static/js/9295.49a33287.chunk.js b/build/static/js/9295.49a33287.chunk.js deleted file mode 100644 index 8419eb3..0000000 --- a/build/static/js/9295.49a33287.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkclient=self.webpackChunkclient||[]).push([[9295],{9295:(n,a,e)=>{async function t(n){let a=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];await async function(n){let a=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];const{PolygonDrawer:t}=await e.e(8064).then(e.bind(e,8064));await n.addShape("polygon",new t,a)}(n,a),await async function(n){let a=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];const{TriangleDrawer:t}=await e.e(8438).then(e.bind(e,8438));await n.addShape("triangle",new t,a)}(n,a)}e.d(a,{loadPolygonShape:()=>t})}}]); -//# sourceMappingURL=9295.49a33287.chunk.js.map \ No newline at end of file diff --git a/build/static/js/9295.59fc6a29.chunk.js b/build/static/js/9295.59fc6a29.chunk.js new file mode 100644 index 0000000..8b68e48 --- /dev/null +++ b/build/static/js/9295.59fc6a29.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkresview=self.webpackChunkresview||[]).push([[9295],{9295:(e,a,n)=>{async function t(e){let a=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];await async function(e){let a=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];const{PolygonDrawer:t}=await n.e(8064).then(n.bind(n,8064));await e.addShape("polygon",new t,a)}(e,a),await async function(e){let a=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];const{TriangleDrawer:t}=await n.e(8438).then(n.bind(n,8438));await e.addShape("triangle",new t,a)}(e,a)}n.d(a,{loadPolygonShape:()=>t})}}]); +//# sourceMappingURL=9295.59fc6a29.chunk.js.map \ No newline at end of file diff --git a/build/static/js/9295.49a33287.chunk.js.map b/build/static/js/9295.59fc6a29.chunk.js.map similarity index 90% rename from build/static/js/9295.49a33287.chunk.js.map rename to build/static/js/9295.59fc6a29.chunk.js.map index 38ddce7..51e658d 100644 --- a/build/static/js/9295.49a33287.chunk.js.map +++ b/build/static/js/9295.59fc6a29.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/9295.49a33287.chunk.js","mappings":"gGAQOA,eAAeC,EAAiBC,GAAwB,IAAhBC,IAAOC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,KAAAA,UAAA,SAR/CJ,eAAuCE,GAAwB,IAAhBC,IAAOC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,KAAAA,UAAA,GACzD,MAAM,cAAEG,SAAwB,qCAC1BL,EAAOM,SAAS,UAAW,IAAID,EAAiBJ,EAC1D,CAMUM,CAAwBP,EAAQC,SALnCH,eAAiCE,GAAwB,IAAhBC,IAAOC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,KAAAA,UAAA,GACnD,MAAM,eAAEM,SAAyB,qCAC3BR,EAAOM,SAAS,WAAY,IAAIE,EAAkBP,EAC5D,CAGUQ,CAAkBT,EAAQC,EACpC,C","sources":["../node_modules/@tsparticles/shape-polygon/browser/index.js"],"sourcesContent":["export async function loadGenericPolygonShape(engine, refresh = true) {\n const { PolygonDrawer } = await import(\"./PolygonDrawer.js\");\n await engine.addShape(\"polygon\", new PolygonDrawer(), refresh);\n}\nexport async function loadTriangleShape(engine, refresh = true) {\n const { TriangleDrawer } = await import(\"./TriangleDrawer.js\");\n await engine.addShape(\"triangle\", new TriangleDrawer(), refresh);\n}\nexport async function loadPolygonShape(engine, refresh = true) {\n await loadGenericPolygonShape(engine, refresh);\n await loadTriangleShape(engine, refresh);\n}\n"],"names":["async","loadPolygonShape","engine","refresh","arguments","length","undefined","PolygonDrawer","addShape","loadGenericPolygonShape","TriangleDrawer","loadTriangleShape"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/9295.59fc6a29.chunk.js","mappings":"kGAQOA,eAAeC,EAAiBC,GAAwB,IAAhBC,IAAOC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,KAAAA,UAAA,SAR/CJ,eAAuCE,GAAwB,IAAhBC,IAAOC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,KAAAA,UAAA,GACzD,MAAM,cAAEG,SAAwB,qCAC1BL,EAAOM,SAAS,UAAW,IAAID,EAAiBJ,EAC1D,CAMUM,CAAwBP,EAAQC,SALnCH,eAAiCE,GAAwB,IAAhBC,IAAOC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,KAAAA,UAAA,GACnD,MAAM,eAAEM,SAAyB,qCAC3BR,EAAOM,SAAS,WAAY,IAAIE,EAAkBP,EAC5D,CAGUQ,CAAkBT,EAAQC,EACpC,C","sources":["../node_modules/@tsparticles/shape-polygon/browser/index.js"],"sourcesContent":["export async function loadGenericPolygonShape(engine, refresh = true) {\n const { PolygonDrawer } = await import(\"./PolygonDrawer.js\");\n await engine.addShape(\"polygon\", new PolygonDrawer(), refresh);\n}\nexport async function loadTriangleShape(engine, refresh = true) {\n const { TriangleDrawer } = await import(\"./TriangleDrawer.js\");\n await engine.addShape(\"triangle\", new TriangleDrawer(), refresh);\n}\nexport async function loadPolygonShape(engine, refresh = true) {\n await loadGenericPolygonShape(engine, refresh);\n await loadTriangleShape(engine, refresh);\n}\n"],"names":["async","loadPolygonShape","engine","refresh","arguments","length","undefined","PolygonDrawer","addShape","loadGenericPolygonShape","TriangleDrawer","loadTriangleShape"],"sourceRoot":""} \ No newline at end of file diff --git a/build/static/js/9482.431fa633.chunk.js b/build/static/js/9482.431fa633.chunk.js deleted file mode 100644 index 6610b73..0000000 --- a/build/static/js/9482.431fa633.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkclient=self.webpackChunkclient||[]).push([[9482],{9482:(e,a,n)=>{async function t(e){let a=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];const{SquareDrawer:t}=await n.e(5474).then(n.bind(n,5474));await e.addShape(["edge","square"],new t,a)}n.d(a,{loadSquareShape:()=>t})}}]); -//# sourceMappingURL=9482.431fa633.chunk.js.map \ No newline at end of file diff --git a/build/static/js/9482.94f21712.chunk.js b/build/static/js/9482.94f21712.chunk.js new file mode 100644 index 0000000..bec1e05 --- /dev/null +++ b/build/static/js/9482.94f21712.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkresview=self.webpackChunkresview||[]).push([[9482],{9482:(e,a,n)=>{async function s(e){let a=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];const{SquareDrawer:s}=await n.e(5474).then(n.bind(n,5474));await e.addShape(["edge","square"],new s,a)}n.d(a,{loadSquareShape:()=>s})}}]); +//# sourceMappingURL=9482.94f21712.chunk.js.map \ No newline at end of file diff --git a/build/static/js/9482.431fa633.chunk.js.map b/build/static/js/9482.94f21712.chunk.js.map similarity index 80% rename from build/static/js/9482.431fa633.chunk.js.map rename to build/static/js/9482.94f21712.chunk.js.map index adeee39..9efed02 100644 --- a/build/static/js/9482.431fa633.chunk.js.map +++ b/build/static/js/9482.94f21712.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/9482.431fa633.chunk.js","mappings":"gGAAOA,eAAeC,EAAgBC,GAAwB,IAAhBC,IAAOC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,KAAAA,UAAA,GACjD,MAAM,aAAEG,SAAuB,qCACzBL,EAAOM,SAAS,CAAC,OAAQ,UAAW,IAAID,EAAgBJ,EAClE,C","sources":["../node_modules/@tsparticles/shape-square/browser/index.js"],"sourcesContent":["export async function loadSquareShape(engine, refresh = true) {\n const { SquareDrawer } = await import(\"./SquareDrawer.js\");\n await engine.addShape([\"edge\", \"square\"], new SquareDrawer(), refresh);\n}\n"],"names":["async","loadSquareShape","engine","refresh","arguments","length","undefined","SquareDrawer","addShape"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/9482.94f21712.chunk.js","mappings":"kGAAOA,eAAeC,EAAgBC,GAAwB,IAAhBC,IAAOC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,KAAAA,UAAA,GACjD,MAAM,aAAEG,SAAuB,qCACzBL,EAAOM,SAAS,CAAC,OAAQ,UAAW,IAAID,EAAgBJ,EAClE,C","sources":["../node_modules/@tsparticles/shape-square/browser/index.js"],"sourcesContent":["export async function loadSquareShape(engine, refresh = true) {\n const { SquareDrawer } = await import(\"./SquareDrawer.js\");\n await engine.addShape([\"edge\", \"square\"], new SquareDrawer(), refresh);\n}\n"],"names":["async","loadSquareShape","engine","refresh","arguments","length","undefined","SquareDrawer","addShape"],"sourceRoot":""} \ No newline at end of file diff --git a/build/static/js/9558.502f5044.chunk.js b/build/static/js/9558.502f5044.chunk.js new file mode 100644 index 0000000..114c756 --- /dev/null +++ b/build/static/js/9558.502f5044.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkresview=self.webpackChunkresview||[]).push([[9558],{9558:(e,t,a)=>{a.d(t,{ParallaxMover:()=>n});var i=a(4409);class n{init(){}isEnabled(e){return!(0,i.B9)()&&!e.destroyed&&e.container.actualOptions.interactivity.events.onHover.parallax.enable}move(e){const t=e.container,a=t.actualOptions.interactivity.events.onHover.parallax;if((0,i.B9)()||!a.enable)return;const n=a.force,s=t.interactivity.mouse.position;if(!s)return;const r=t.canvas.size,o=.5*r.width,c=.5*r.height,l=a.smooth,v=e.getRadius()/n,u=(s.x-o)*v,p=(s.y-c)*v,{offset:f}=e;f.x+=(u-f.x)/l,f.y+=(p-f.y)/l}}}}]); +//# sourceMappingURL=9558.502f5044.chunk.js.map \ No newline at end of file diff --git a/build/static/js/9558.b34ef5a5.chunk.js.map b/build/static/js/9558.502f5044.chunk.js.map similarity index 94% rename from build/static/js/9558.b34ef5a5.chunk.js.map rename to build/static/js/9558.502f5044.chunk.js.map index 0def52b..8aa019a 100644 --- a/build/static/js/9558.b34ef5a5.chunk.js.map +++ b/build/static/js/9558.502f5044.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/9558.b34ef5a5.chunk.js","mappings":"2IAEO,MAAMA,EACTC,IAAAA,GACA,CACAC,SAAAA,CAAUC,GACN,QAASC,EAAAA,EAAAA,QACJD,EAASE,WACVF,EAASG,UAAUC,cAAcC,cAAcC,OAAOC,QAAQC,SAASC,MAC/E,CACAC,IAAAA,CAAKV,GACD,MAAMG,EAAYH,EAASG,UAA8CQ,EAAzBR,EAAUC,cAAyCC,cAAcC,OAAOC,QAAQC,SAChI,IAAIP,EAAAA,EAAAA,QAAYU,EAAgBF,OAC5B,OAEJ,MAAMG,EAAgBD,EAAgBE,MAAOC,EAAWX,EAAUE,cAAcU,MAAMC,SACtF,IAAKF,EACD,OAEJ,MAAMG,EAAad,EAAUe,OAAOC,KAAMC,EAlBrC,GAmBEH,EAAWI,MADwBD,EAlBrC,GAoBEH,EAAWK,OACfC,EAAiBZ,EAAgBa,OAAQC,EAASzB,EAAS0B,YAAcd,EAAee,GACnFb,EAASc,EAAIR,GAAkBK,EADoDE,GAEnFb,EAASe,EAAIT,GAAkBK,GACpC,OAAEK,GAAW9B,EAChB8B,EAAOF,IAAMD,EAAmBG,EAAOF,GAAKL,EAC5CO,EAAOD,IAAMF,EAAmBG,EAAOD,GAAKN,CAChD,E","sources":["../node_modules/@tsparticles/move-parallax/browser/ParallaxMover.js"],"sourcesContent":["import { isSsr } from \"@tsparticles/engine\";\nconst half = 0.5;\nexport class ParallaxMover {\n init() {\n }\n isEnabled(particle) {\n return (!isSsr() &&\n !particle.destroyed &&\n particle.container.actualOptions.interactivity.events.onHover.parallax.enable);\n }\n move(particle) {\n const container = particle.container, options = container.actualOptions, parallaxOptions = options.interactivity.events.onHover.parallax;\n if (isSsr() || !parallaxOptions.enable) {\n return;\n }\n const parallaxForce = parallaxOptions.force, mousePos = container.interactivity.mouse.position;\n if (!mousePos) {\n return;\n }\n const canvasSize = container.canvas.size, canvasCenter = {\n x: canvasSize.width * half,\n y: canvasSize.height * half,\n }, parallaxSmooth = parallaxOptions.smooth, factor = particle.getRadius() / parallaxForce, centerDistance = {\n x: (mousePos.x - canvasCenter.x) * factor,\n y: (mousePos.y - canvasCenter.y) * factor,\n }, { offset } = particle;\n offset.x += (centerDistance.x - offset.x) / parallaxSmooth;\n offset.y += (centerDistance.y - offset.y) / parallaxSmooth;\n }\n}\n"],"names":["ParallaxMover","init","isEnabled","particle","isSsr","destroyed","container","actualOptions","interactivity","events","onHover","parallax","enable","move","parallaxOptions","parallaxForce","force","mousePos","mouse","position","canvasSize","canvas","size","canvasCenter","width","height","parallaxSmooth","smooth","factor","getRadius","centerDistance","x","y","offset"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/9558.502f5044.chunk.js","mappings":"6IAEO,MAAMA,EACTC,IAAAA,GACA,CACAC,SAAAA,CAAUC,GACN,QAASC,EAAAA,EAAAA,QACJD,EAASE,WACVF,EAASG,UAAUC,cAAcC,cAAcC,OAAOC,QAAQC,SAASC,MAC/E,CACAC,IAAAA,CAAKV,GACD,MAAMG,EAAYH,EAASG,UAA8CQ,EAAzBR,EAAUC,cAAyCC,cAAcC,OAAOC,QAAQC,SAChI,IAAIP,EAAAA,EAAAA,QAAYU,EAAgBF,OAC5B,OAEJ,MAAMG,EAAgBD,EAAgBE,MAAOC,EAAWX,EAAUE,cAAcU,MAAMC,SACtF,IAAKF,EACD,OAEJ,MAAMG,EAAad,EAAUe,OAAOC,KAAMC,EAlBrC,GAmBEH,EAAWI,MADwBD,EAlBrC,GAoBEH,EAAWK,OACfC,EAAiBZ,EAAgBa,OAAQC,EAASzB,EAAS0B,YAAcd,EAAee,GACnFb,EAASc,EAAIR,GAAkBK,EADoDE,GAEnFb,EAASe,EAAIT,GAAkBK,GACpC,OAAEK,GAAW9B,EAChB8B,EAAOF,IAAMD,EAAmBG,EAAOF,GAAKL,EAC5CO,EAAOD,IAAMF,EAAmBG,EAAOD,GAAKN,CAChD,E","sources":["../node_modules/@tsparticles/move-parallax/browser/ParallaxMover.js"],"sourcesContent":["import { isSsr } from \"@tsparticles/engine\";\nconst half = 0.5;\nexport class ParallaxMover {\n init() {\n }\n isEnabled(particle) {\n return (!isSsr() &&\n !particle.destroyed &&\n particle.container.actualOptions.interactivity.events.onHover.parallax.enable);\n }\n move(particle) {\n const container = particle.container, options = container.actualOptions, parallaxOptions = options.interactivity.events.onHover.parallax;\n if (isSsr() || !parallaxOptions.enable) {\n return;\n }\n const parallaxForce = parallaxOptions.force, mousePos = container.interactivity.mouse.position;\n if (!mousePos) {\n return;\n }\n const canvasSize = container.canvas.size, canvasCenter = {\n x: canvasSize.width * half,\n y: canvasSize.height * half,\n }, parallaxSmooth = parallaxOptions.smooth, factor = particle.getRadius() / parallaxForce, centerDistance = {\n x: (mousePos.x - canvasCenter.x) * factor,\n y: (mousePos.y - canvasCenter.y) * factor,\n }, { offset } = particle;\n offset.x += (centerDistance.x - offset.x) / parallaxSmooth;\n offset.y += (centerDistance.y - offset.y) / parallaxSmooth;\n }\n}\n"],"names":["ParallaxMover","init","isEnabled","particle","isSsr","destroyed","container","actualOptions","interactivity","events","onHover","parallax","enable","move","parallaxOptions","parallaxForce","force","mousePos","mouse","position","canvasSize","canvas","size","canvasCenter","width","height","parallaxSmooth","smooth","factor","getRadius","centerDistance","x","y","offset"],"sourceRoot":""} \ No newline at end of file diff --git a/build/static/js/9558.b34ef5a5.chunk.js b/build/static/js/9558.b34ef5a5.chunk.js deleted file mode 100644 index 48e4cf6..0000000 --- a/build/static/js/9558.b34ef5a5.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkclient=self.webpackChunkclient||[]).push([[9558],{9558:(e,t,n)=>{n.d(t,{ParallaxMover:()=>i});var a=n(4409);class i{init(){}isEnabled(e){return!(0,a.B9)()&&!e.destroyed&&e.container.actualOptions.interactivity.events.onHover.parallax.enable}move(e){const t=e.container,n=t.actualOptions.interactivity.events.onHover.parallax;if((0,a.B9)()||!n.enable)return;const i=n.force,s=t.interactivity.mouse.position;if(!s)return;const o=t.canvas.size,r=.5*o.width,c=.5*o.height,l=n.smooth,u=e.getRadius()/i,v=(s.x-r)*u,p=(s.y-c)*u,{offset:f}=e;f.x+=(v-f.x)/l,f.y+=(p-f.y)/l}}}}]); -//# sourceMappingURL=9558.b34ef5a5.chunk.js.map \ No newline at end of file diff --git a/build/static/js/9628.3196b8a7.chunk.js b/build/static/js/9628.3196b8a7.chunk.js deleted file mode 100644 index d0df417..0000000 --- a/build/static/js/9628.3196b8a7.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkclient=self.webpackChunkclient||[]).push([[9628],{9628:(e,t,i)=>{i.d(t,{Repulser:()=>c});var s=i(4409),n=i(9066);const o="repulse";class c extends s.sJ{constructor(e,t){super(t),this._clickRepulse=()=>{var e;const t=this.container,i=t.actualOptions.interactivity.modes.repulse;if(!i)return;const n=null!==(e=t.repulse)&&void 0!==e?e:{particles:[]};if(n.finish||(n.count||(n.count=0),n.count++,n.count===t.particles.count&&(n.finish=!0)),n.clicking){const e=t.retina.repulseModeDistance;if(!e||e<0)return;const o=Math.pow(e/6,3),c=t.interactivity.mouse.clickPosition;if(void 0===c)return;const r=new s.jl(c.x,c.y,o),l=t.particles.quadTree.query(r,(e=>this.isEnabled(e)));for(const t of l){const{dx:e,dy:r,distance:l}=(0,s.vr)(c,t.position),a=l**2,u=-o*i.speed/a;if(a<=o){n.particles.push(t);const i=s.Mi.create(e,r);i.length=u,t.velocity.setTo(i)}}}else if(!1===n.clicking){for(const e of n.particles)e.velocity.setTo(e.initialVelocity);n.particles=[]}},this._hoverRepulse=()=>{const e=this.container,t=e.interactivity.mouse.position,i=e.retina.repulseModeDistance;!i||i<0||!t||this._processRepulse(t,i,new s.jl(t.x,t.y,i))},this._processRepulse=(e,t,i,n)=>{var o;const c=this.container,r=c.particles.quadTree.query(i,(e=>this.isEnabled(e))),l=c.actualOptions.interactivity.modes.repulse;if(!l)return;const{easing:a,speed:u,factor:p,maxSpeed:d}=l,f=(0,s.il)(a),h=(null!==(o=null===n||void 0===n?void 0:n.speed)&&void 0!==o?o:u)*p;for(const v of r){const{dx:i,dy:n,distance:o}=(0,s.vr)(v.position,e),c=(0,s.qE)(f(1-o/t)*h,0,d),r=s.Mi.create(o?i/o*c:h,o?n/o*c:h);v.position.addTo(r)}},this._singleSelectorRepulse=(e,t)=>{const i=this.container,n=i.actualOptions.interactivity.modes.repulse;if(!n)return;const o=document.querySelectorAll(e);o.length&&o.forEach((e=>{const o=e,c=i.retina.pixelRatio,r={x:(o.offsetLeft+.5*o.offsetWidth)*c,y:(o.offsetTop+.5*o.offsetHeight)*c},l=.5*o.offsetWidth*c,a="circle"===t.type?new s.jl(r.x,r.y,l):new s.M_(o.offsetLeft*c,o.offsetTop*c,o.offsetWidth*c,o.offsetHeight*c),u=n.divs,p=(0,s.NV)(u,o);this._processRepulse(r,l,a,p)}))},this._engine=e,t.repulse||(t.repulse={particles:[]}),this.handleClickMode=e=>{const i=this.container.actualOptions.interactivity.modes.repulse;if(!i||e!==o)return;t.repulse||(t.repulse={particles:[]});const n=t.repulse;n.clicking=!0,n.count=0;for(const s of t.repulse.particles)this.isEnabled(s)&&s.velocity.setTo(s.initialVelocity);n.particles=[],n.finish=!1,setTimeout((()=>{t.destroyed||(n.clicking=!1)}),i.duration*s.Xu)}}clear(){}init(){const e=this.container,t=e.actualOptions.interactivity.modes.repulse;t&&(e.retina.repulseModeDistance=t.distance*e.retina.pixelRatio)}interact(){const e=this.container,t=e.actualOptions,i=e.interactivity.status===s.Rb,n=t.interactivity.events,c=n.onHover,r=c.enable,l=c.mode,a=n.onClick,u=a.enable,p=a.mode,d=n.onDiv;i&&r&&(0,s.hn)(o,l)?this._hoverRepulse():u&&(0,s.hn)(o,p)?this._clickRepulse():(0,s.U6)(o,d,((e,t)=>this._singleSelectorRepulse(e,t)))}isEnabled(e){var t;const i=this.container,n=i.actualOptions,c=i.interactivity.mouse,r=(null!==(t=null===e||void 0===e?void 0:e.interactivity)&&void 0!==t?t:n.interactivity).events,l=r.onDiv,a=r.onHover,u=r.onClick,p=(0,s.iK)(o,l);if(!(p||a.enable&&c.position||u.enable&&c.clickPosition))return!1;const d=a.mode,f=u.mode;return(0,s.hn)(o,d)||(0,s.hn)(o,f)||p}loadModeOptions(e){e.repulse||(e.repulse=new n.Z);for(var t=arguments.length,i=new Array(t>1?t-1:0),s=1;s{i.d(t,{Repulser:()=>c});var s=i(4409),n=i(9066);const o="repulse";class c extends s.sJ{constructor(e,t){super(t),this._clickRepulse=()=>{var e;const t=this.container,i=t.actualOptions.interactivity.modes.repulse;if(!i)return;const n=null!==(e=t.repulse)&&void 0!==e?e:{particles:[]};if(n.finish||(n.count||(n.count=0),n.count++,n.count===t.particles.count&&(n.finish=!0)),n.clicking){const e=t.retina.repulseModeDistance;if(!e||e<0)return;const o=Math.pow(e/6,3),c=t.interactivity.mouse.clickPosition;if(void 0===c)return;const r=new s.jl(c.x,c.y,o),l=t.particles.quadTree.query(r,(e=>this.isEnabled(e)));for(const t of l){const{dx:e,dy:r,distance:l}=(0,s.vr)(c,t.position),a=l**2,u=-o*i.speed/a;if(a<=o){n.particles.push(t);const i=s.Mi.create(e,r);i.length=u,t.velocity.setTo(i)}}}else if(!1===n.clicking){for(const e of n.particles)e.velocity.setTo(e.initialVelocity);n.particles=[]}},this._hoverRepulse=()=>{const e=this.container,t=e.interactivity.mouse.position,i=e.retina.repulseModeDistance;!i||i<0||!t||this._processRepulse(t,i,new s.jl(t.x,t.y,i))},this._processRepulse=(e,t,i,n)=>{var o;const c=this.container,r=c.particles.quadTree.query(i,(e=>this.isEnabled(e))),l=c.actualOptions.interactivity.modes.repulse;if(!l)return;const{easing:a,speed:u,factor:p,maxSpeed:d}=l,f=(0,s.il)(a),h=(null!==(o=null===n||void 0===n?void 0:n.speed)&&void 0!==o?o:u)*p;for(const v of r){const{dx:i,dy:n,distance:o}=(0,s.vr)(v.position,e),c=(0,s.qE)(f(1-o/t)*h,0,d),r=s.Mi.create(o?i/o*c:h,o?n/o*c:h);v.position.addTo(r)}},this._singleSelectorRepulse=(e,t)=>{const i=this.container,n=i.actualOptions.interactivity.modes.repulse;if(!n)return;const o=document.querySelectorAll(e);o.length&&o.forEach((e=>{const o=e,c=i.retina.pixelRatio,r={x:(o.offsetLeft+.5*o.offsetWidth)*c,y:(o.offsetTop+.5*o.offsetHeight)*c},l=.5*o.offsetWidth*c,a="circle"===t.type?new s.jl(r.x,r.y,l):new s.M_(o.offsetLeft*c,o.offsetTop*c,o.offsetWidth*c,o.offsetHeight*c),u=n.divs,p=(0,s.NV)(u,o);this._processRepulse(r,l,a,p)}))},this._engine=e,t.repulse||(t.repulse={particles:[]}),this.handleClickMode=e=>{const i=this.container.actualOptions.interactivity.modes.repulse;if(!i||e!==o)return;t.repulse||(t.repulse={particles:[]});const n=t.repulse;n.clicking=!0,n.count=0;for(const s of t.repulse.particles)this.isEnabled(s)&&s.velocity.setTo(s.initialVelocity);n.particles=[],n.finish=!1,setTimeout((()=>{t.destroyed||(n.clicking=!1)}),i.duration*s.Xu)}}clear(){}init(){const e=this.container,t=e.actualOptions.interactivity.modes.repulse;t&&(e.retina.repulseModeDistance=t.distance*e.retina.pixelRatio)}interact(){const e=this.container,t=e.actualOptions,i=e.interactivity.status===s.Rb,n=t.interactivity.events,c=n.onHover,r=c.enable,l=c.mode,a=n.onClick,u=a.enable,p=a.mode,d=n.onDiv;i&&r&&(0,s.hn)(o,l)?this._hoverRepulse():u&&(0,s.hn)(o,p)?this._clickRepulse():(0,s.U6)(o,d,((e,t)=>this._singleSelectorRepulse(e,t)))}isEnabled(e){var t;const i=this.container,n=i.actualOptions,c=i.interactivity.mouse,r=(null!==(t=null===e||void 0===e?void 0:e.interactivity)&&void 0!==t?t:n.interactivity).events,l=r.onDiv,a=r.onHover,u=r.onClick,p=(0,s.iK)(o,l);if(!(p||a.enable&&c.position||u.enable&&c.clickPosition))return!1;const d=a.mode,f=u.mode;return(0,s.hn)(o,d)||(0,s.hn)(o,f)||p}loadModeOptions(e){e.repulse||(e.repulse=new n.Z);for(var t=arguments.length,i=new Array(t>1?t-1:0),s=1;s {\n const container = this.container, repulseOptions = container.actualOptions.interactivity.modes.repulse;\n if (!repulseOptions) {\n return;\n }\n const repulse = container.repulse ?? { particles: [] };\n if (!repulse.finish) {\n if (!repulse.count) {\n repulse.count = 0;\n }\n repulse.count++;\n if (repulse.count === container.particles.count) {\n repulse.finish = true;\n }\n }\n if (repulse.clicking) {\n const repulseDistance = container.retina.repulseModeDistance;\n if (!repulseDistance || repulseDistance < minDistance) {\n return;\n }\n const repulseRadius = Math.pow(repulseDistance / repulseRadiusFactor, repulseRadiusPower), mouseClickPos = container.interactivity.mouse.clickPosition;\n if (mouseClickPos === undefined) {\n return;\n }\n const range = new Circle(mouseClickPos.x, mouseClickPos.y, repulseRadius), query = container.particles.quadTree.query(range, (p) => this.isEnabled(p));\n for (const particle of query) {\n const { dx, dy, distance } = getDistances(mouseClickPos, particle.position), d = distance ** squarePower, velocity = repulseOptions.speed, force = (-repulseRadius * velocity) / d;\n if (d <= repulseRadius) {\n repulse.particles.push(particle);\n const vect = Vector.create(dx, dy);\n vect.length = force;\n particle.velocity.setTo(vect);\n }\n }\n }\n else if (repulse.clicking === false) {\n for (const particle of repulse.particles) {\n particle.velocity.setTo(particle.initialVelocity);\n }\n repulse.particles = [];\n }\n };\n this._hoverRepulse = () => {\n const container = this.container, mousePos = container.interactivity.mouse.position, repulseRadius = container.retina.repulseModeDistance;\n if (!repulseRadius || repulseRadius < minRadius || !mousePos) {\n return;\n }\n this._processRepulse(mousePos, repulseRadius, new Circle(mousePos.x, mousePos.y, repulseRadius));\n };\n this._processRepulse = (position, repulseRadius, area, divRepulse) => {\n const container = this.container, query = container.particles.quadTree.query(area, (p) => this.isEnabled(p)), repulseOptions = container.actualOptions.interactivity.modes.repulse;\n if (!repulseOptions) {\n return;\n }\n const { easing, speed, factor, maxSpeed } = repulseOptions, easingFunc = getEasing(easing), velocity = (divRepulse?.speed ?? speed) * factor;\n for (const particle of query) {\n const { dx, dy, distance } = getDistances(particle.position, position), repulseFactor = clamp(easingFunc(easingOffset - distance / repulseRadius) * velocity, minSpeed, maxSpeed), normVec = Vector.create(!distance ? velocity : (dx / distance) * repulseFactor, !distance ? velocity : (dy / distance) * repulseFactor);\n particle.position.addTo(normVec);\n }\n };\n this._singleSelectorRepulse = (selector, div) => {\n const container = this.container, repulse = container.actualOptions.interactivity.modes.repulse;\n if (!repulse) {\n return;\n }\n const query = document.querySelectorAll(selector);\n if (!query.length) {\n return;\n }\n query.forEach((item) => {\n const elem = item, pxRatio = container.retina.pixelRatio, pos = {\n x: (elem.offsetLeft + elem.offsetWidth * half) * pxRatio,\n y: (elem.offsetTop + elem.offsetHeight * half) * pxRatio,\n }, repulseRadius = elem.offsetWidth * half * pxRatio, area = div.type === \"circle\"\n ? new Circle(pos.x, pos.y, repulseRadius)\n : new Rectangle(elem.offsetLeft * pxRatio, elem.offsetTop * pxRatio, elem.offsetWidth * pxRatio, elem.offsetHeight * pxRatio), divs = repulse.divs, divRepulse = divMode(divs, elem);\n this._processRepulse(pos, repulseRadius, area, divRepulse);\n });\n };\n this._engine = engine;\n if (!container.repulse) {\n container.repulse = { particles: [] };\n }\n this.handleClickMode = (mode) => {\n const options = this.container.actualOptions, repulseOpts = options.interactivity.modes.repulse;\n if (!repulseOpts || mode !== repulseMode) {\n return;\n }\n if (!container.repulse) {\n container.repulse = { particles: [] };\n }\n const repulse = container.repulse;\n repulse.clicking = true;\n repulse.count = 0;\n for (const particle of container.repulse.particles) {\n if (!this.isEnabled(particle)) {\n continue;\n }\n particle.velocity.setTo(particle.initialVelocity);\n }\n repulse.particles = [];\n repulse.finish = false;\n setTimeout(() => {\n if (container.destroyed) {\n return;\n }\n repulse.clicking = false;\n }, repulseOpts.duration * millisecondsToSeconds);\n };\n }\n clear() {\n }\n init() {\n const container = this.container, repulse = container.actualOptions.interactivity.modes.repulse;\n if (!repulse) {\n return;\n }\n container.retina.repulseModeDistance = repulse.distance * container.retina.pixelRatio;\n }\n interact() {\n const container = this.container, options = container.actualOptions, mouseMoveStatus = container.interactivity.status === mouseMoveEvent, events = options.interactivity.events, hover = events.onHover, hoverEnabled = hover.enable, hoverMode = hover.mode, click = events.onClick, clickEnabled = click.enable, clickMode = click.mode, divs = events.onDiv;\n if (mouseMoveStatus && hoverEnabled && isInArray(repulseMode, hoverMode)) {\n this._hoverRepulse();\n }\n else if (clickEnabled && isInArray(repulseMode, clickMode)) {\n this._clickRepulse();\n }\n else {\n divModeExecute(repulseMode, divs, (selector, div) => this._singleSelectorRepulse(selector, div));\n }\n }\n isEnabled(particle) {\n const container = this.container, options = container.actualOptions, mouse = container.interactivity.mouse, events = (particle?.interactivity ?? options.interactivity).events, divs = events.onDiv, hover = events.onHover, click = events.onClick, divRepulse = isDivModeEnabled(repulseMode, divs);\n if (!(divRepulse || (hover.enable && !!mouse.position) || (click.enable && mouse.clickPosition))) {\n return false;\n }\n const hoverMode = hover.mode, clickMode = click.mode;\n return isInArray(repulseMode, hoverMode) || isInArray(repulseMode, clickMode) || divRepulse;\n }\n loadModeOptions(options, ...sources) {\n if (!options.repulse) {\n options.repulse = new Repulse();\n }\n for (const source of sources) {\n options.repulse.load(source?.repulse);\n }\n }\n reset() {\n }\n}\n"],"names":["repulseMode","Repulser","ExternalInteractorBase","constructor","engine","container","super","this","_clickRepulse","_container$repulse","repulseOptions","actualOptions","interactivity","modes","repulse","particles","finish","count","clicking","repulseDistance","retina","repulseModeDistance","repulseRadius","Math","pow","mouseClickPos","mouse","clickPosition","undefined","range","Circle","x","y","query","quadTree","p","isEnabled","particle","dx","dy","distance","getDistances","position","d","force","speed","push","vect","Vector","create","length","velocity","setTo","initialVelocity","_hoverRepulse","mousePos","_processRepulse","area","divRepulse","_divRepulse$speed","easing","factor","maxSpeed","easingFunc","getEasing","repulseFactor","clamp","normVec","addTo","_singleSelectorRepulse","selector","div","document","querySelectorAll","forEach","item","elem","pxRatio","pixelRatio","pos","offsetLeft","offsetWidth","offsetTop","offsetHeight","type","Rectangle","divs","divMode","_engine","handleClickMode","mode","repulseOpts","setTimeout","destroyed","duration","millisecondsToSeconds","clear","init","interact","options","mouseMoveStatus","status","mouseMoveEvent","events","hover","onHover","hoverEnabled","enable","hoverMode","click","onClick","clickEnabled","clickMode","onDiv","isInArray","divModeExecute","_particle$interactivi","isDivModeEnabled","loadModeOptions","Repulse","_len","arguments","sources","Array","_key","source","load","reset"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/9628.57081f00.chunk.js","mappings":"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","sources":["../node_modules/@tsparticles/interaction-external-repulse/browser/Repulser.js"],"sourcesContent":["import { Circle, ExternalInteractorBase, Rectangle, Vector, clamp, divMode, divModeExecute, getDistances, getEasing, isDivModeEnabled, isInArray, millisecondsToSeconds, mouseMoveEvent, } from \"@tsparticles/engine\";\nimport { Repulse } from \"./Options/Classes/Repulse.js\";\nconst repulseMode = \"repulse\", minDistance = 0, repulseRadiusFactor = 6, repulseRadiusPower = 3, squarePower = 2, minRadius = 0, minSpeed = 0, easingOffset = 1, half = 0.5;\nexport class Repulser extends ExternalInteractorBase {\n constructor(engine, container) {\n super(container);\n this._clickRepulse = () => {\n const container = this.container, repulseOptions = container.actualOptions.interactivity.modes.repulse;\n if (!repulseOptions) {\n return;\n }\n const repulse = container.repulse ?? { particles: [] };\n if (!repulse.finish) {\n if (!repulse.count) {\n repulse.count = 0;\n }\n repulse.count++;\n if (repulse.count === container.particles.count) {\n repulse.finish = true;\n }\n }\n if (repulse.clicking) {\n const repulseDistance = container.retina.repulseModeDistance;\n if (!repulseDistance || repulseDistance < minDistance) {\n return;\n }\n const repulseRadius = Math.pow(repulseDistance / repulseRadiusFactor, repulseRadiusPower), mouseClickPos = container.interactivity.mouse.clickPosition;\n if (mouseClickPos === undefined) {\n return;\n }\n const range = new Circle(mouseClickPos.x, mouseClickPos.y, repulseRadius), query = container.particles.quadTree.query(range, (p) => this.isEnabled(p));\n for (const particle of query) {\n const { dx, dy, distance } = getDistances(mouseClickPos, particle.position), d = distance ** squarePower, velocity = repulseOptions.speed, force = (-repulseRadius * velocity) / d;\n if (d <= repulseRadius) {\n repulse.particles.push(particle);\n const vect = Vector.create(dx, dy);\n vect.length = force;\n particle.velocity.setTo(vect);\n }\n }\n }\n else if (repulse.clicking === false) {\n for (const particle of repulse.particles) {\n particle.velocity.setTo(particle.initialVelocity);\n }\n repulse.particles = [];\n }\n };\n this._hoverRepulse = () => {\n const container = this.container, mousePos = container.interactivity.mouse.position, repulseRadius = container.retina.repulseModeDistance;\n if (!repulseRadius || repulseRadius < minRadius || !mousePos) {\n return;\n }\n this._processRepulse(mousePos, repulseRadius, new Circle(mousePos.x, mousePos.y, repulseRadius));\n };\n this._processRepulse = (position, repulseRadius, area, divRepulse) => {\n const container = this.container, query = container.particles.quadTree.query(area, (p) => this.isEnabled(p)), repulseOptions = container.actualOptions.interactivity.modes.repulse;\n if (!repulseOptions) {\n return;\n }\n const { easing, speed, factor, maxSpeed } = repulseOptions, easingFunc = getEasing(easing), velocity = (divRepulse?.speed ?? speed) * factor;\n for (const particle of query) {\n const { dx, dy, distance } = getDistances(particle.position, position), repulseFactor = clamp(easingFunc(easingOffset - distance / repulseRadius) * velocity, minSpeed, maxSpeed), normVec = Vector.create(!distance ? velocity : (dx / distance) * repulseFactor, !distance ? velocity : (dy / distance) * repulseFactor);\n particle.position.addTo(normVec);\n }\n };\n this._singleSelectorRepulse = (selector, div) => {\n const container = this.container, repulse = container.actualOptions.interactivity.modes.repulse;\n if (!repulse) {\n return;\n }\n const query = document.querySelectorAll(selector);\n if (!query.length) {\n return;\n }\n query.forEach((item) => {\n const elem = item, pxRatio = container.retina.pixelRatio, pos = {\n x: (elem.offsetLeft + elem.offsetWidth * half) * pxRatio,\n y: (elem.offsetTop + elem.offsetHeight * half) * pxRatio,\n }, repulseRadius = elem.offsetWidth * half * pxRatio, area = div.type === \"circle\"\n ? new Circle(pos.x, pos.y, repulseRadius)\n : new Rectangle(elem.offsetLeft * pxRatio, elem.offsetTop * pxRatio, elem.offsetWidth * pxRatio, elem.offsetHeight * pxRatio), divs = repulse.divs, divRepulse = divMode(divs, elem);\n this._processRepulse(pos, repulseRadius, area, divRepulse);\n });\n };\n this._engine = engine;\n if (!container.repulse) {\n container.repulse = { particles: [] };\n }\n this.handleClickMode = (mode) => {\n const options = this.container.actualOptions, repulseOpts = options.interactivity.modes.repulse;\n if (!repulseOpts || mode !== repulseMode) {\n return;\n }\n if (!container.repulse) {\n container.repulse = { particles: [] };\n }\n const repulse = container.repulse;\n repulse.clicking = true;\n repulse.count = 0;\n for (const particle of container.repulse.particles) {\n if (!this.isEnabled(particle)) {\n continue;\n }\n particle.velocity.setTo(particle.initialVelocity);\n }\n repulse.particles = [];\n repulse.finish = false;\n setTimeout(() => {\n if (container.destroyed) {\n return;\n }\n repulse.clicking = false;\n }, repulseOpts.duration * millisecondsToSeconds);\n };\n }\n clear() {\n }\n init() {\n const container = this.container, repulse = container.actualOptions.interactivity.modes.repulse;\n if (!repulse) {\n return;\n }\n container.retina.repulseModeDistance = repulse.distance * container.retina.pixelRatio;\n }\n interact() {\n const container = this.container, options = container.actualOptions, mouseMoveStatus = container.interactivity.status === mouseMoveEvent, events = options.interactivity.events, hover = events.onHover, hoverEnabled = hover.enable, hoverMode = hover.mode, click = events.onClick, clickEnabled = click.enable, clickMode = click.mode, divs = events.onDiv;\n if (mouseMoveStatus && hoverEnabled && isInArray(repulseMode, hoverMode)) {\n this._hoverRepulse();\n }\n else if (clickEnabled && isInArray(repulseMode, clickMode)) {\n this._clickRepulse();\n }\n else {\n divModeExecute(repulseMode, divs, (selector, div) => this._singleSelectorRepulse(selector, div));\n }\n }\n isEnabled(particle) {\n const container = this.container, options = container.actualOptions, mouse = container.interactivity.mouse, events = (particle?.interactivity ?? options.interactivity).events, divs = events.onDiv, hover = events.onHover, click = events.onClick, divRepulse = isDivModeEnabled(repulseMode, divs);\n if (!(divRepulse || (hover.enable && !!mouse.position) || (click.enable && mouse.clickPosition))) {\n return false;\n }\n const hoverMode = hover.mode, clickMode = click.mode;\n return isInArray(repulseMode, hoverMode) || isInArray(repulseMode, clickMode) || divRepulse;\n }\n loadModeOptions(options, ...sources) {\n if (!options.repulse) {\n options.repulse = new Repulse();\n }\n for (const source of sources) {\n options.repulse.load(source?.repulse);\n }\n }\n reset() {\n }\n}\n"],"names":["repulseMode","Repulser","ExternalInteractorBase","constructor","engine","container","super","this","_clickRepulse","_container$repulse","repulseOptions","actualOptions","interactivity","modes","repulse","particles","finish","count","clicking","repulseDistance","retina","repulseModeDistance","repulseRadius","Math","pow","mouseClickPos","mouse","clickPosition","undefined","range","Circle","x","y","query","quadTree","p","isEnabled","particle","dx","dy","distance","getDistances","position","d","force","speed","push","vect","Vector","create","length","velocity","setTo","initialVelocity","_hoverRepulse","mousePos","_processRepulse","area","divRepulse","_divRepulse$speed","easing","factor","maxSpeed","easingFunc","getEasing","repulseFactor","clamp","normVec","addTo","_singleSelectorRepulse","selector","div","document","querySelectorAll","forEach","item","elem","pxRatio","pixelRatio","pos","offsetLeft","offsetWidth","offsetTop","offsetHeight","type","Rectangle","divs","divMode","_engine","handleClickMode","mode","repulseOpts","setTimeout","destroyed","duration","millisecondsToSeconds","clear","init","interact","options","mouseMoveStatus","status","mouseMoveEvent","events","hover","onHover","hoverEnabled","enable","hoverMode","click","onClick","clickEnabled","clickMode","onDiv","isInArray","divModeExecute","_particle$interactivi","isDivModeEnabled","loadModeOptions","Repulse","_len","arguments","sources","Array","_key","source","load","reset"],"sourceRoot":""} \ No newline at end of file diff --git a/build/static/js/9644.35c7103c.chunk.js b/build/static/js/9644.35c7103c.chunk.js new file mode 100644 index 0000000..272a662 --- /dev/null +++ b/build/static/js/9644.35c7103c.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkresview=self.webpackChunkresview||[]).push([[9644],{9644:(o,i,t)=>{t.d(i,{OpacityUpdater:()=>e});var a=t(4409);class e{constructor(o){this.container=o}init(o){const i=o.options.opacity;o.opacity=(0,a.Xs)(i,1);const t=i.animation;t.enable&&(o.opacity.velocity=(0,a.VG)(t.speed)/a.a5*this.container.retina.reduceFactor,t.sync||(o.opacity.velocity*=(0,a.G0)()))}isEnabled(o){var i,t,a,e;return!o.destroyed&&!o.spawning&&!!o.opacity&&o.opacity.enable&&((null!==(i=o.opacity.maxLoops)&&void 0!==i?i:0)<=0||(null!==(t=o.opacity.maxLoops)&&void 0!==t?t:0)>0&&(null!==(a=o.opacity.loops)&&void 0!==a?a:0)<(null!==(e=o.opacity.maxLoops)&&void 0!==e?e:0))}reset(o){o.opacity&&(o.opacity.time=0,o.opacity.loops=0)}update(o,i){this.isEnabled(o)&&o.opacity&&(0,a.UC)(o,o.opacity,!0,o.options.opacity.animation.destroy,i)}}}}]); +//# sourceMappingURL=9644.35c7103c.chunk.js.map \ No newline at end of file diff --git a/build/static/js/9644.e55df061.chunk.js.map b/build/static/js/9644.35c7103c.chunk.js.map similarity index 96% rename from build/static/js/9644.e55df061.chunk.js.map rename to build/static/js/9644.35c7103c.chunk.js.map index 7291b62..a899fa9 100644 --- a/build/static/js/9644.e55df061.chunk.js.map +++ b/build/static/js/9644.35c7103c.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/9644.e55df061.chunk.js","mappings":"4IACO,MAAMA,EACTC,WAAAA,CAAYC,GACRC,KAAKD,UAAYA,CACrB,CACAE,IAAAA,CAAKC,GACD,MAAMC,EAAiBD,EAASE,QAAQC,QACxCH,EAASG,SAAUC,EAAAA,EAAAA,IAAkCH,EADM,GAE3D,MAAMI,EAAmBJ,EAAeK,UACpCD,EAAiBE,SACjBP,EAASG,QAAQK,UACZC,EAAAA,EAAAA,IAAcJ,EAAiBK,OAASC,EAAAA,GAAsBb,KAAKD,UAAUe,OAAOC,aACpFR,EAAiBS,OAClBd,EAASG,QAAQK,WAAYO,EAAAA,EAAAA,OAGzC,CACAC,SAAAA,CAAUhB,GAAU,IAAAiB,EAAAC,EAAAC,EAAAC,EAEhB,OAASpB,EAASqB,YACbrB,EAASsB,YACRtB,EAASG,SACXH,EAASG,QAAQI,UACU,QAA1BU,EAACjB,EAASG,QAAQoB,gBAAQ,IAAAN,EAAAA,EALlB,QAMsB,QAA1BC,EAAClB,EAASG,QAAQoB,gBAAQ,IAAAL,EAAAA,EANtB,OAOsB,QAAvBC,EAACnB,EAASG,QAAQqB,aAAK,IAAAL,EAAAA,EAPtB,IAO4D,QAA9BC,EAAKpB,EAASG,QAAQoB,gBAAQ,IAAAH,EAAAA,EAP5D,GAQjB,CACAK,KAAAA,CAAMzB,GACEA,EAASG,UACTH,EAASG,QAAQuB,KAAO,EACxB1B,EAASG,QAAQqB,MAAQ,EAEjC,CACAG,MAAAA,CAAO3B,EAAU4B,GACR9B,KAAKkB,UAAUhB,IAAcA,EAASG,UAG3C0B,EAAAA,EAAAA,IAAgB7B,EAAUA,EAASG,SAAS,EAAMH,EAASE,QAAQC,QAAQG,UAAUwB,QAASF,EAClG,E","sources":["../node_modules/@tsparticles/updater-opacity/browser/OpacityUpdater.js"],"sourcesContent":["import { getRandom, getRangeValue, initParticleNumericAnimationValue, percentDenominator, updateAnimation, } from \"@tsparticles/engine\";\nexport class OpacityUpdater {\n constructor(container) {\n this.container = container;\n }\n init(particle) {\n const opacityOptions = particle.options.opacity, pxRatio = 1;\n particle.opacity = initParticleNumericAnimationValue(opacityOptions, pxRatio);\n const opacityAnimation = opacityOptions.animation;\n if (opacityAnimation.enable) {\n particle.opacity.velocity =\n (getRangeValue(opacityAnimation.speed) / percentDenominator) * this.container.retina.reduceFactor;\n if (!opacityAnimation.sync) {\n particle.opacity.velocity *= getRandom();\n }\n }\n }\n isEnabled(particle) {\n const none = 0;\n return (!particle.destroyed &&\n !particle.spawning &&\n !!particle.opacity &&\n particle.opacity.enable &&\n ((particle.opacity.maxLoops ?? none) <= none ||\n ((particle.opacity.maxLoops ?? none) > none &&\n (particle.opacity.loops ?? none) < (particle.opacity.maxLoops ?? none))));\n }\n reset(particle) {\n if (particle.opacity) {\n particle.opacity.time = 0;\n particle.opacity.loops = 0;\n }\n }\n update(particle, delta) {\n if (!this.isEnabled(particle) || !particle.opacity) {\n return;\n }\n updateAnimation(particle, particle.opacity, true, particle.options.opacity.animation.destroy, delta);\n }\n}\n"],"names":["OpacityUpdater","constructor","container","this","init","particle","opacityOptions","options","opacity","initParticleNumericAnimationValue","opacityAnimation","animation","enable","velocity","getRangeValue","speed","percentDenominator","retina","reduceFactor","sync","getRandom","isEnabled","_particle$opacity$max","_particle$opacity$max2","_particle$opacity$loo","_particle$opacity$max3","destroyed","spawning","maxLoops","loops","reset","time","update","delta","updateAnimation","destroy"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/9644.35c7103c.chunk.js","mappings":"8IACO,MAAMA,EACTC,WAAAA,CAAYC,GACRC,KAAKD,UAAYA,CACrB,CACAE,IAAAA,CAAKC,GACD,MAAMC,EAAiBD,EAASE,QAAQC,QACxCH,EAASG,SAAUC,EAAAA,EAAAA,IAAkCH,EADM,GAE3D,MAAMI,EAAmBJ,EAAeK,UACpCD,EAAiBE,SACjBP,EAASG,QAAQK,UACZC,EAAAA,EAAAA,IAAcJ,EAAiBK,OAASC,EAAAA,GAAsBb,KAAKD,UAAUe,OAAOC,aACpFR,EAAiBS,OAClBd,EAASG,QAAQK,WAAYO,EAAAA,EAAAA,OAGzC,CACAC,SAAAA,CAAUhB,GAAU,IAAAiB,EAAAC,EAAAC,EAAAC,EAEhB,OAASpB,EAASqB,YACbrB,EAASsB,YACRtB,EAASG,SACXH,EAASG,QAAQI,UACU,QAA1BU,EAACjB,EAASG,QAAQoB,gBAAQ,IAAAN,EAAAA,EALlB,QAMsB,QAA1BC,EAAClB,EAASG,QAAQoB,gBAAQ,IAAAL,EAAAA,EANtB,OAOsB,QAAvBC,EAACnB,EAASG,QAAQqB,aAAK,IAAAL,EAAAA,EAPtB,IAO4D,QAA9BC,EAAKpB,EAASG,QAAQoB,gBAAQ,IAAAH,EAAAA,EAP5D,GAQjB,CACAK,KAAAA,CAAMzB,GACEA,EAASG,UACTH,EAASG,QAAQuB,KAAO,EACxB1B,EAASG,QAAQqB,MAAQ,EAEjC,CACAG,MAAAA,CAAO3B,EAAU4B,GACR9B,KAAKkB,UAAUhB,IAAcA,EAASG,UAG3C0B,EAAAA,EAAAA,IAAgB7B,EAAUA,EAASG,SAAS,EAAMH,EAASE,QAAQC,QAAQG,UAAUwB,QAASF,EAClG,E","sources":["../node_modules/@tsparticles/updater-opacity/browser/OpacityUpdater.js"],"sourcesContent":["import { getRandom, getRangeValue, initParticleNumericAnimationValue, percentDenominator, updateAnimation, } from \"@tsparticles/engine\";\nexport class OpacityUpdater {\n constructor(container) {\n this.container = container;\n }\n init(particle) {\n const opacityOptions = particle.options.opacity, pxRatio = 1;\n particle.opacity = initParticleNumericAnimationValue(opacityOptions, pxRatio);\n const opacityAnimation = opacityOptions.animation;\n if (opacityAnimation.enable) {\n particle.opacity.velocity =\n (getRangeValue(opacityAnimation.speed) / percentDenominator) * this.container.retina.reduceFactor;\n if (!opacityAnimation.sync) {\n particle.opacity.velocity *= getRandom();\n }\n }\n }\n isEnabled(particle) {\n const none = 0;\n return (!particle.destroyed &&\n !particle.spawning &&\n !!particle.opacity &&\n particle.opacity.enable &&\n ((particle.opacity.maxLoops ?? none) <= none ||\n ((particle.opacity.maxLoops ?? none) > none &&\n (particle.opacity.loops ?? none) < (particle.opacity.maxLoops ?? none))));\n }\n reset(particle) {\n if (particle.opacity) {\n particle.opacity.time = 0;\n particle.opacity.loops = 0;\n }\n }\n update(particle, delta) {\n if (!this.isEnabled(particle) || !particle.opacity) {\n return;\n }\n updateAnimation(particle, particle.opacity, true, particle.options.opacity.animation.destroy, delta);\n }\n}\n"],"names":["OpacityUpdater","constructor","container","this","init","particle","opacityOptions","options","opacity","initParticleNumericAnimationValue","opacityAnimation","animation","enable","velocity","getRangeValue","speed","percentDenominator","retina","reduceFactor","sync","getRandom","isEnabled","_particle$opacity$max","_particle$opacity$max2","_particle$opacity$loo","_particle$opacity$max3","destroyed","spawning","maxLoops","loops","reset","time","update","delta","updateAnimation","destroy"],"sourceRoot":""} \ No newline at end of file diff --git a/build/static/js/9644.e55df061.chunk.js b/build/static/js/9644.e55df061.chunk.js deleted file mode 100644 index 4a211c1..0000000 --- a/build/static/js/9644.e55df061.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkclient=self.webpackChunkclient||[]).push([[9644],{9644:(o,t,i)=>{i.d(t,{OpacityUpdater:()=>c});var a=i(4409);class c{constructor(o){this.container=o}init(o){const t=o.options.opacity;o.opacity=(0,a.Xs)(t,1);const i=t.animation;i.enable&&(o.opacity.velocity=(0,a.VG)(i.speed)/a.a5*this.container.retina.reduceFactor,i.sync||(o.opacity.velocity*=(0,a.G0)()))}isEnabled(o){var t,i,a,c;return!o.destroyed&&!o.spawning&&!!o.opacity&&o.opacity.enable&&((null!==(t=o.opacity.maxLoops)&&void 0!==t?t:0)<=0||(null!==(i=o.opacity.maxLoops)&&void 0!==i?i:0)>0&&(null!==(a=o.opacity.loops)&&void 0!==a?a:0)<(null!==(c=o.opacity.maxLoops)&&void 0!==c?c:0))}reset(o){o.opacity&&(o.opacity.time=0,o.opacity.loops=0)}update(o,t){this.isEnabled(o)&&o.opacity&&(0,a.UC)(o,o.opacity,!0,o.options.opacity.animation.destroy,t)}}}}]); -//# sourceMappingURL=9644.e55df061.chunk.js.map \ No newline at end of file diff --git a/build/static/js/main.0e714900.js b/build/static/js/main.0e714900.js deleted file mode 100644 index 4aa605d..0000000 --- a/build/static/js/main.0e714900.js +++ /dev/null @@ -1,3 +0,0 @@ -/*! For license information please see main.0e714900.js.LICENSE.txt */ -(()=>{var e={5513:(e,t,n)=>{"use strict";n.d(t,{A:()=>ie});var r=function(){function e(e){var t=this;this._insertTag=function(e){var n;n=0===t.tags.length?t.insertionPoint?t.insertionPoint.nextSibling:t.prepend?t.container.firstChild:t.before:t.tags[t.tags.length-1].nextSibling,t.container.insertBefore(e,n),t.tags.push(e)},this.isSpeedy=void 0===e.speedy||e.speedy,this.tags=[],this.ctr=0,this.nonce=e.nonce,this.key=e.key,this.container=e.container,this.prepend=e.prepend,this.insertionPoint=e.insertionPoint,this.before=null}var t=e.prototype;return t.hydrate=function(e){e.forEach(this._insertTag)},t.insert=function(e){this.ctr%(this.isSpeedy?65e3:1)===0&&this._insertTag(function(e){var t=document.createElement("style");return t.setAttribute("data-emotion",e.key),void 0!==e.nonce&&t.setAttribute("nonce",e.nonce),t.appendChild(document.createTextNode("")),t.setAttribute("data-s",""),t}(this));var t=this.tags[this.tags.length-1];if(this.isSpeedy){var n=function(e){if(e.sheet)return e.sheet;for(var t=0;t0?u(x,--y):0,g--,10===v&&(g=1,m--),v}function S(){return v=y2||M(v)>3?"":" "}function P(e,t){for(;--t&&S()&&!(v<48||v>102||v>57&&v<65||v>70&&v<97););return j(e,C()+(t<6&&32==E()&&32==S()))}function N(e){for(;S();)switch(v){case e:return y;case 34:case 39:34!==e&&39!==e&&N(v);break;case 40:41===e&&N(e);break;case 92:S()}return y}function z(e,t){for(;S()&&e+v!==57&&(e+v!==84||47!==E()););return"/*"+j(t,y-1)+"*"+o(47===e?e:S())}function L(e){for(;!M(E());)S();return j(e,y)}var I="-ms-",F="-moz-",D="-webkit-",U="comm",B="rule",W="decl",q="@keyframes";function V(e,t){for(var n="",r=h(e),i=0;i0&&d(F)-b&&p(v>32?X(F+";",r,n,b-1):X(l(F," ","")+";",r,n,b-2),h);break;case 59:F+=";";default:if(p(I=G(F,t,n,m,g,i,f,O,T=[],N=[],b),a),123===M)if(0===g)Y(F,t,I,I,T,a,b,f,N);else switch(99===y&&110===u(F,3)?100:y){case 100:case 108:case 109:case 115:Y(e,I,I,r&&p(G(e,I,I,0,0,i,f,O,i,T=[],b),N),i,N,b,f,r?T:N);break;default:Y(F,I,I,I,[""],N,0,f,N)}}m=g=v=0,w=j=1,O=F="",b=s;break;case 58:b=1+d(F),v=x;default:if(w<1)if(123==M)--w;else if(125==M&&0==w++&&125==k())continue;switch(F+=o(M),M*w){case 38:j=g>0?1:(F+="\f",-1);break;case 44:f[m++]=(d(F)-1)*j,j=1;break;case 64:45===E()&&(F+=A(S())),y=E(),g=b=d(O=F+=L(C())),M++;break;case 45:45===x&&2==d(F)&&(w=0)}}return a}function G(e,t,n,r,o,a,c,u,d,p,m){for(var g=o-1,b=0===o?a:[""],y=h(b),v=0,x=0,_=0;v0?b[k]+" "+S:l(S,/&\f/g,b[k])))&&(d[_++]=E);return w(e,t,n,0===o?B:u,d,p,m)}function K(e,t,n){return w(e,t,n,U,o(v),f(e,2,-2),0)}function X(e,t,n,r){return w(e,t,n,W,f(e,0,r),f(e,r+1,-1),r)}var Q=function(e,t,n){for(var r=0,i=0;r=i,i=E(),38===r&&12===i&&(t[n]=1),!M(i);)S();return j(e,y)},J=function(e,t){return T(function(e,t){var n=-1,r=44;do{switch(M(r)){case 0:38===r&&12===E()&&(t[n]=1),e[n]+=Q(y-1,t,n);break;case 2:e[n]+=A(r);break;case 4:if(44===r){e[++n]=58===E()?"&\f":"",t[n]=e[n].length;break}default:e[n]+=o(r)}}while(r=S());return e}(O(e),t))},Z=new WeakMap,ee=function(e){if("rule"===e.type&&e.parent&&!(e.length<1)){for(var t=e.value,n=e.parent,r=e.column===n.column&&e.line===n.line;"rule"!==n.type;)if(!(n=n.parent))return;if((1!==e.props.length||58===t.charCodeAt(0)||Z.get(n))&&!r){Z.set(e,!0);for(var i=[],o=J(t,i),a=n.props,s=0,l=0;s6)switch(u(e,t+1)){case 109:if(45!==u(e,t+4))break;case 102:return l(e,/(.+:)(.+)-([^]+)/,"$1"+D+"$2-$3$1"+F+(108==u(e,t+3)?"$3":"$2-$3"))+e;case 115:return~c(e,"stretch")?ne(l(e,"stretch","fill-available"),t)+e:e}break;case 4949:if(115!==u(e,t+1))break;case 6444:switch(u(e,d(e)-3-(~c(e,"!important")&&10))){case 107:return l(e,":",":"+D)+e;case 101:return l(e,/(.+:)([^;!]+)(;|!.+)?/,"$1"+D+(45===u(e,14)?"inline-":"")+"box$3$1"+D+"$2$3$1"+I+"$2box$3")+e}break;case 5936:switch(u(e,t+11)){case 114:return D+e+I+l(e,/[svh]\w+-[tblr]{2}/,"tb")+e;case 108:return D+e+I+l(e,/[svh]\w+-[tblr]{2}/,"tb-rl")+e;case 45:return D+e+I+l(e,/[svh]\w+-[tblr]{2}/,"lr")+e}return D+e+I+e+e}return e}var re=[function(e,t,n,r){if(e.length>-1&&!e.return)switch(e.type){case W:e.return=ne(e.value,e.length);break;case q:return V([_(e,{value:l(e.value,"@","@"+D)})],r);case B:if(e.length)return function(e,t){return e.map(t).join("")}(e.props,(function(t){switch(function(e,t){return(e=t.exec(e))?e[0]:e}(t,/(::plac\w+|:read-\w+)/)){case":read-only":case":read-write":return V([_(e,{props:[l(t,/:(read-\w+)/,":-moz-$1")]})],r);case"::placeholder":return V([_(e,{props:[l(t,/:(plac\w+)/,":"+D+"input-$1")]}),_(e,{props:[l(t,/:(plac\w+)/,":-moz-$1")]}),_(e,{props:[l(t,/:(plac\w+)/,I+"input-$1")]})],r)}return""}))}}],ie=function(e){var t=e.key;if("css"===t){var n=document.querySelectorAll("style[data-emotion]:not([data-s])");Array.prototype.forEach.call(n,(function(e){-1!==e.getAttribute("data-emotion").indexOf(" ")&&(document.head.appendChild(e),e.setAttribute("data-s",""))}))}var i=e.stylisPlugins||re;var o,a,s={},l=[];o=e.container||document.head,Array.prototype.forEach.call(document.querySelectorAll('style[data-emotion^="'+t+' "]'),(function(e){for(var t=e.getAttribute("data-emotion").split(" "),n=1;n{"use strict";function r(e){var t=Object.create(null);return function(n){return void 0===t[n]&&(t[n]=e(n)),t[n]}}n.d(t,{A:()=>r})},5756:(e,t,n)=>{"use strict";n.d(t,{C:()=>s,T:()=>c,i:()=>o,w:()=>l});var r=n(5043),i=n(5513),o=(n(2830),n(9436),!0),a=r.createContext("undefined"!==typeof HTMLElement?(0,i.A)({key:"css"}):null);var s=a.Provider,l=function(e){return(0,r.forwardRef)((function(t,n){var i=(0,r.useContext)(a);return e(t,i,n)}))};o||(l=function(e){return function(t){var n=(0,r.useContext)(a);return null===n?(n=(0,i.A)({key:"css"}),r.createElement(a.Provider,{value:n},e(t,n))):e(t,n)}});var c=r.createContext({})},2830:(e,t,n)=>{"use strict";n.d(t,{J:()=>p});var r={animationIterationCount:1,aspectRatio:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1},i=n(918),o=/[A-Z]|^ms/g,a=/_EMO_([^_]+?)_([^]*?)_EMO_/g,s=function(e){return 45===e.charCodeAt(1)},l=function(e){return null!=e&&"boolean"!==typeof e},c=(0,i.A)((function(e){return s(e)?e:e.replace(o,"-$&").toLowerCase()})),u=function(e,t){switch(e){case"animation":case"animationName":if("string"===typeof t)return t.replace(a,(function(e,t,n){return d={name:t,styles:n,next:d},t}))}return 1===r[e]||s(e)||"number"!==typeof t||0===t?t:t+"px"};function f(e,t,n){if(null==n)return"";if(void 0!==n.__emotion_styles)return n;switch(typeof n){case"boolean":return"";case"object":if(1===n.anim)return d={name:n.name,styles:n.styles,next:d},n.name;if(void 0!==n.styles){var r=n.next;if(void 0!==r)for(;void 0!==r;)d={name:r.name,styles:r.styles,next:d},r=r.next;return n.styles+";"}return function(e,t,n){var r="";if(Array.isArray(n))for(var i=0;i=4;++r,i-=4)t=1540483477*(65535&(t=255&e.charCodeAt(r)|(255&e.charCodeAt(++r))<<8|(255&e.charCodeAt(++r))<<16|(255&e.charCodeAt(++r))<<24))+(59797*(t>>>16)<<16),n=1540483477*(65535&(t^=t>>>24))+(59797*(t>>>16)<<16)^1540483477*(65535&n)+(59797*(n>>>16)<<16);switch(i){case 3:n^=(255&e.charCodeAt(r+2))<<16;case 2:n^=(255&e.charCodeAt(r+1))<<8;case 1:n=1540483477*(65535&(n^=255&e.charCodeAt(r)))+(59797*(n>>>16)<<16)}return(((n=1540483477*(65535&(n^=n>>>13))+(59797*(n>>>16)<<16))^n>>>15)>>>0).toString(36)}(i)+l;return{name:c,styles:i,next:d}}},9436:(e,t,n)=>{"use strict";var r;n.d(t,{i:()=>s,s:()=>a});var i=n(5043),o=!!(r||(r=n.t(i,2))).useInsertionEffect&&(r||(r=n.t(i,2))).useInsertionEffect,a=o||function(e){return e()},s=o||i.useLayoutEffect},568:(e,t,n)=>{"use strict";n.r(t),n.d(t,{GlobalStyles:()=>C,StyledEngineProvider:()=>E,ThemeContext:()=>l.T,css:()=>w,default:()=>j,internal_processStyles:()=>M,keyframes:()=>_});var r=n(8168),i=n(5043),o=n(918),a=/^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|disableRemotePlayback|download|draggable|encType|enterKeyHint|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/,s=(0,o.A)((function(e){return a.test(e)||111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&e.charCodeAt(2)<91})),l=n(5756);var c=function(e,t,n){var r=e.key+"-"+t.name;!1===n&&void 0===e.registered[r]&&(e.registered[r]=t.styles)},u=function(e,t,n){c(e,t,n);var r=e.key+"-"+t.name;if(void 0===e.inserted[t.name]){var i=t;do{e.insert(t===i?"."+r:"",i,e.sheet,!0),i=i.next}while(void 0!==i)}},f=n(2830),d=n(9436),h=s,p=function(e){return"theme"!==e},m=function(e){return"string"===typeof e&&e.charCodeAt(0)>96?h:p},g=function(e,t,n){var r;if(t){var i=t.shouldForwardProp;r=e.__emotion_forwardProp&&i?function(t){return e.__emotion_forwardProp(t)&&i(t)}:i}return"function"!==typeof r&&n&&(r=e.__emotion_forwardProp),r},b=function(e){var t=e.cache,n=e.serialized,r=e.isStringTag;return c(t,n,r),(0,d.s)((function(){return u(t,n,r)})),null},y=function e(t,n){var o,a,s=t.__emotion_real===t,c=s&&t.__emotion_base||t;void 0!==n&&(o=n.label,a=n.target);var u=g(t,n,s),d=u||m(c),h=!d("as");return function(){var p=arguments,y=s&&void 0!==t.__emotion_styles?t.__emotion_styles.slice(0):[];if(void 0!==o&&y.push("label:"+o+";"),null==p[0]||void 0===p[0].raw)y.push.apply(y,p);else{0,y.push(p[0][0]);for(var v=p.length,x=1;x{return t(void 0===(r=e)||null===r||0===Object.keys(r).length?n:e);var r}:t;return(0,k.jsx)(x,{styles:r})}function j(e,t){return y(e,t)}"object"===typeof document&&(S=(0,v.A)({key:"css",prepend:!0}));const M=(e,t)=>{Array.isArray(e.__emotion_styles)&&(e.__emotion_styles=t(e.__emotion_styles))}},7266:(e,t,n)=>{"use strict";var r=n(4994);t.X4=h,t.e$=p,t.eM=function(e,t){const n=d(e),r=d(t);return(Math.max(n,r)+.05)/(Math.min(n,r)+.05)},t.a=m;var i=r(n(7245)),o=r(n(1098));function a(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;return(0,o.default)(e,t,n)}function s(e){e=e.slice(1);const t=new RegExp(".{1,".concat(e.length>=6?2:1,"}"),"g");let n=e.match(t);return n&&1===n[0].length&&(n=n.map((e=>e+e))),n?"rgb".concat(4===n.length?"a":"","(").concat(n.map(((e,t)=>t<3?parseInt(e,16):Math.round(parseInt(e,16)/255*1e3)/1e3)).join(", "),")"):""}function l(e){if(e.type)return e;if("#"===e.charAt(0))return l(s(e));const t=e.indexOf("("),n=e.substring(0,t);if(-1===["rgb","rgba","hsl","hsla","color"].indexOf(n))throw new Error((0,i.default)(9,e));let r,o=e.substring(t+1,e.length-1);if("color"===n){if(o=o.split(" "),r=o.shift(),4===o.length&&"/"===o[3].charAt(0)&&(o[3]=o[3].slice(1)),-1===["srgb","display-p3","a98-rgb","prophoto-rgb","rec-2020"].indexOf(r))throw new Error((0,i.default)(10,r))}else o=o.split(",");return o=o.map((e=>parseFloat(e))),{type:n,values:o,colorSpace:r}}const c=e=>{const t=l(e);return t.values.slice(0,3).map(((e,n)=>-1!==t.type.indexOf("hsl")&&0!==n?"".concat(e,"%"):e)).join(" ")};function u(e){const{type:t,colorSpace:n}=e;let{values:r}=e;return-1!==t.indexOf("rgb")?r=r.map(((e,t)=>t<3?parseInt(e,10):e)):-1!==t.indexOf("hsl")&&(r[1]="".concat(r[1],"%"),r[2]="".concat(r[2],"%")),r=-1!==t.indexOf("color")?"".concat(n," ").concat(r.join(" ")):"".concat(r.join(", ")),"".concat(t,"(").concat(r,")")}function f(e){e=l(e);const{values:t}=e,n=t[0],r=t[1]/100,i=t[2]/100,o=r*Math.min(i,1-i),a=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:(e+n/30)%12;return i-o*Math.max(Math.min(t-3,9-t,1),-1)};let s="rgb";const c=[Math.round(255*a(0)),Math.round(255*a(8)),Math.round(255*a(4))];return"hsla"===e.type&&(s+="a",c.push(t[3])),u({type:s,values:c})}function d(e){let t="hsl"===(e=l(e)).type||"hsla"===e.type?l(f(e)).values:e.values;return t=t.map((t=>("color"!==e.type&&(t/=255),t<=.03928?t/12.92:((t+.055)/1.055)**2.4))),Number((.2126*t[0]+.7152*t[1]+.0722*t[2]).toFixed(3))}function h(e,t){return e=l(e),t=a(t),"rgb"!==e.type&&"hsl"!==e.type||(e.type+="a"),"color"===e.type?e.values[3]="/".concat(t):e.values[3]=t,u(e)}function p(e,t){if(e=l(e),t=a(t),-1!==e.type.indexOf("hsl"))e.values[2]*=1-t;else if(-1!==e.type.indexOf("rgb")||-1!==e.type.indexOf("color"))for(let n=0;n<3;n+=1)e.values[n]*=1-t;return u(e)}function m(e,t){if(e=l(e),t=a(t),-1!==e.type.indexOf("hsl"))e.values[2]+=(100-e.values[2])*t;else if(-1!==e.type.indexOf("rgb"))for(let n=0;n<3;n+=1)e.values[n]+=(255-e.values[n])*t;else if(-1!==e.type.indexOf("color"))for(let n=0;n<3;n+=1)e.values[n]+=(1-e.values[n])*t;return u(e)}},8052:(e,t,n)=>{"use strict";var r=n(4994);t.Ay=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const{themeId:t,defaultTheme:n=m,rootShouldForwardProp:r=p,slotShouldForwardProp:l=p}=e,u=e=>(0,c.default)((0,i.default)({},e,{theme:b((0,i.default)({},e,{defaultTheme:n,themeId:t}))}));return u.__mui_systemSx=!0,function(e){let c=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};(0,a.internal_processStyles)(e,(e=>e.filter((e=>!(null!=e&&e.__mui_systemSx)))));const{name:f,slot:h,skipVariantsResolver:m,skipSx:x,overridesResolver:w=y(g(h))}=c,_=(0,o.default)(c,d),k=void 0!==m?m:h&&"Root"!==h&&"root"!==h||!1,S=x||!1;let E=p;"Root"===h||"root"===h?E=r:h?E=l:function(e){return"string"===typeof e&&e.charCodeAt(0)>96}(e)&&(E=void 0);const C=(0,a.default)(e,(0,i.default)({shouldForwardProp:E,label:undefined},_)),j=e=>"function"===typeof e&&e.__emotion_real!==e||(0,s.isPlainObject)(e)?r=>v(e,(0,i.default)({},r,{theme:b({theme:r.theme,defaultTheme:n,themeId:t})})):e,M=function(r){let o=j(r);for(var a=arguments.length,s=new Array(a>1?a-1:0),l=1;l{const r=b((0,i.default)({},e,{defaultTheme:n,themeId:t}));if(!r.components||!r.components[f]||!r.components[f].styleOverrides)return null;const o=r.components[f].styleOverrides,a={};return Object.entries(o).forEach((t=>{let[n,o]=t;a[n]=v(o,(0,i.default)({},e,{theme:r}))})),w(e,a)})),f&&!k&&c.push((e=>{var r;const o=b((0,i.default)({},e,{defaultTheme:n,themeId:t}));return v({variants:null==o||null==(r=o.components)||null==(r=r[f])?void 0:r.variants},(0,i.default)({},e,{theme:o}))})),S||c.push(u);const d=c.length-s.length;if(Array.isArray(r)&&d>0){const e=new Array(d).fill("");o=[...r,...e],o.raw=[...r.raw,...e]}const h=C(o,...c);return e.muiName&&(h.muiName=e.muiName),h};return C.withConfig&&(M.withConfig=C.withConfig),M}},t.MC=p;var i=r(n(4634)),o=r(n(4893)),a=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var n=h(t);if(n&&n.has(e))return n.get(e);var r={__proto__:null},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if("default"!==o&&Object.prototype.hasOwnProperty.call(e,o)){var a=i?Object.getOwnPropertyDescriptor(e,o):null;a&&(a.get||a.set)?Object.defineProperty(r,o,a):r[o]=e[o]}return r.default=e,n&&n.set(e,r),r}(n(568)),s=n(4534),l=(r(n(578)),r(n(2046)),r(n(4989))),c=r(n(9265));const u=["ownerState"],f=["variants"],d=["name","slot","skipVariantsResolver","skipSx","overridesResolver"];function h(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(h=function(e){return e?n:t})(e)}function p(e){return"ownerState"!==e&&"theme"!==e&&"sx"!==e&&"as"!==e}const m=(0,l.default)(),g=e=>e?e.charAt(0).toLowerCase()+e.slice(1):e;function b(e){let{defaultTheme:t,theme:n,themeId:r}=e;return i=n,0===Object.keys(i).length?t:n[r]||n;var i}function y(e){return e?(t,n)=>n[e]:null}function v(e,t){let{ownerState:n}=t,r=(0,o.default)(t,u);const a="function"===typeof e?e((0,i.default)({ownerState:n},r)):e;if(Array.isArray(a))return a.flatMap((e=>v(e,(0,i.default)({ownerState:n},r))));if(a&&"object"===typeof a&&Array.isArray(a.variants)){const{variants:e=[]}=a;let t=(0,o.default)(a,f);return e.forEach((e=>{let o=!0;"function"===typeof e.props?o=e.props((0,i.default)({ownerState:n},r,n)):Object.keys(e.props).forEach((t=>{(null==n?void 0:n[t])!==e.props[t]&&r[t]!==e.props[t]&&(o=!1)})),o&&(Array.isArray(t)||(t=[t]),t.push("function"===typeof e.style?e.style((0,i.default)({ownerState:n},r,n)):e.style))})),t}return a}},9751:(e,t,n)=>{"use strict";n.d(t,{EU:()=>a,NI:()=>o,vf:()=>s,zu:()=>r});const r={xs:0,sm:600,md:900,lg:1200,xl:1536},i={keys:["xs","sm","md","lg","xl"],up:e=>"@media (min-width:".concat(r[e],"px)")};function o(e,t,n){const o=e.theme||{};if(Array.isArray(t)){const e=o.breakpoints||i;return t.reduce(((r,i,o)=>(r[e.up(e.keys[o])]=n(t[o]),r)),{})}if("object"===typeof t){const e=o.breakpoints||i;return Object.keys(t).reduce(((i,o)=>{if(-1!==Object.keys(e.values||r).indexOf(o)){i[e.up(o)]=n(t[o],o)}else{const e=o;i[e]=t[e]}return i}),{})}return n(t)}function a(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};var t;return(null==(t=e.keys)?void 0:t.reduce(((t,n)=>(t[e.up(n)]={},t)),{}))||{}}function s(e,t){return e.reduce(((e,t)=>{const n=e[t];return(!n||0===Object.keys(n).length)&&delete e[t],e}),t)}},9703:(e,t,n)=>{"use strict";function r(e,t){const n=this;if(n.vars&&"function"===typeof n.getColorSchemeSelector){return{[n.getColorSchemeSelector(e).replace(/(\[[^\]]+\])/,"*:where($1)")]:t}}return n.palette.mode===e?t:{}}n.d(t,{A:()=>r})},4853:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(8587),i=n(8168);const o=["values","unit","step"],a=e=>{const t=Object.keys(e).map((t=>({key:t,val:e[t]})))||[];return t.sort(((e,t)=>e.val-t.val)),t.reduce(((e,t)=>(0,i.A)({},e,{[t.key]:t.val})),{})};function s(e){const{values:t={xs:0,sm:600,md:900,lg:1200,xl:1536},unit:n="px",step:s=5}=e,l=(0,r.A)(e,o),c=a(t),u=Object.keys(c);function f(e){const r="number"===typeof t[e]?t[e]:e;return"@media (min-width:".concat(r).concat(n,")")}function d(e){const r="number"===typeof t[e]?t[e]:e;return"@media (max-width:".concat(r-s/100).concat(n,")")}function h(e,r){const i=u.indexOf(r);return"@media (min-width:".concat("number"===typeof t[e]?t[e]:e).concat(n,") and ")+"(max-width:".concat((-1!==i&&"number"===typeof t[u[i]]?t[u[i]]:r)-s/100).concat(n,")")}return(0,i.A)({keys:u,values:c,up:f,down:d,between:h,only:function(e){return u.indexOf(e)+1{"use strict";n.d(t,{A:()=>h});var r=n(8168),i=n(8587),o=n(3216),a=n(4853);const s={borderRadius:4};var l=n(8604);var c=n(8812),u=n(7758),f=n(9703);const d=["breakpoints","palette","spacing","shape"];const h=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const{breakpoints:t={},palette:n={},spacing:h,shape:p={}}=e,m=(0,i.A)(e,d),g=(0,a.A)(t),b=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:8;if(e.mui)return e;const t=(0,l.LX)({spacing:e}),n=function(){for(var e=arguments.length,n=new Array(e),r=0;r{const n=t(e);return"number"===typeof n?"".concat(n,"px"):n})).join(" ")};return n.mui=!0,n}(h);let y=(0,o.A)({breakpoints:g,direction:"ltr",components:{},palette:(0,r.A)({mode:"light"},n),spacing:b,shape:(0,r.A)({},s,p)},m);y.applyStyles=f.A;for(var v=arguments.length,x=new Array(v>1?v-1:0),w=1;w(0,o.A)(e,t)),y),y.unstable_sxConfig=(0,r.A)({},u.A,null==m?void 0:m.unstable_sxConfig),y.unstable_sx=function(e){return(0,c.A)({sx:e,theme:this})},y}},4989:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r.A,private_createBreakpoints:()=>i.A,unstable_applyStyles:()=>o.A});var r=n(8280),i=n(4853),o=n(9703)},3815:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r=n(3216);const i=function(e,t){return t?(0,r.A)(e,t,{clone:!1}):e}},8604:(e,t,n)=>{"use strict";n.d(t,{LX:()=>p,MA:()=>h,_W:()=>m,Lc:()=>y,Ms:()=>v});var r=n(9751),i=n(7162),o=n(3815);const a={m:"margin",p:"padding"},s={t:"Top",r:"Right",b:"Bottom",l:"Left",x:["Left","Right"],y:["Top","Bottom"]},l={marginX:"mx",marginY:"my",paddingX:"px",paddingY:"py"},c=function(e){const t={};return n=>(void 0===t[n]&&(t[n]=e(n)),t[n])}((e=>{if(e.length>2){if(!l[e])return[e];e=l[e]}const[t,n]=e.split(""),r=a[t],i=s[n]||"";return Array.isArray(i)?i.map((e=>r+e)):[r+i]})),u=["m","mt","mr","mb","ml","mx","my","margin","marginTop","marginRight","marginBottom","marginLeft","marginX","marginY","marginInline","marginInlineStart","marginInlineEnd","marginBlock","marginBlockStart","marginBlockEnd"],f=["p","pt","pr","pb","pl","px","py","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","paddingX","paddingY","paddingInline","paddingInlineStart","paddingInlineEnd","paddingBlock","paddingBlockStart","paddingBlockEnd"],d=[...u,...f];function h(e,t,n,r){var o;const a=null!=(o=(0,i.Yn)(e,t,!1))?o:n;return"number"===typeof a?e=>"string"===typeof e?e:a*e:Array.isArray(a)?e=>"string"===typeof e?e:a[e]:"function"===typeof a?a:()=>{}}function p(e){return h(e,"spacing",8)}function m(e,t){if("string"===typeof t||null==t)return t;const n=e(Math.abs(t));return t>=0?n:"number"===typeof n?-n:"-".concat(n)}function g(e,t,n,i){if(-1===t.indexOf(n))return null;const o=function(e,t){return n=>e.reduce(((e,r)=>(e[r]=m(t,n),e)),{})}(c(n),i),a=e[n];return(0,r.NI)(e,a,o)}function b(e,t){const n=p(e.theme);return Object.keys(e).map((r=>g(e,t,r,n))).reduce(o.A,{})}function y(e){return b(e,u)}function v(e){return b(e,f)}function x(e){return b(e,d)}y.propTypes={},y.filterProps=u,v.propTypes={},v.filterProps=f,x.propTypes={},x.filterProps=d},7162:(e,t,n)=>{"use strict";n.d(t,{Ay:()=>s,BO:()=>a,Yn:()=>o});var r=n(410),i=n(9751);function o(e,t){let n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(!t||"string"!==typeof t)return null;if(e&&e.vars&&n){const n="vars.".concat(t).split(".").reduce(((e,t)=>e&&e[t]?e[t]:null),e);if(null!=n)return n}return t.split(".").reduce(((e,t)=>e&&null!=e[t]?e[t]:null),e)}function a(e,t,n){let r,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:n;return r="function"===typeof e?e(n):Array.isArray(e)?e[n]||i:o(e,n)||i,t&&(r=t(r,i,e)),r}const s=function(e){const{prop:t,cssProperty:n=e.prop,themeKey:s,transform:l}=e,c=e=>{if(null==e[t])return null;const c=e[t],u=o(e.theme,s)||{};return(0,i.NI)(e,c,(e=>{let i=a(u,l,e);return e===i&&"string"===typeof e&&(i=a(u,l,"".concat(t).concat("default"===e?"":(0,r.A)(e)),e)),!1===n?i:{[n]:i}}))};return c.propTypes={},c.filterProps=[t],c}},7758:(e,t,n)=>{"use strict";n.d(t,{A:()=>N});var r=n(8604),i=n(7162),o=n(3815);const a=function(){for(var e=arguments.length,t=new Array(e),n=0;n(t.filterProps.forEach((n=>{e[n]=t})),e)),{}),i=e=>Object.keys(e).reduce(((t,n)=>r[n]?(0,o.A)(t,r[n](e)):t),{});return i.propTypes={},i.filterProps=t.reduce(((e,t)=>e.concat(t.filterProps)),[]),i};var s=n(9751);function l(e){return"number"!==typeof e?e:"".concat(e,"px solid")}function c(e,t){return(0,i.Ay)({prop:e,themeKey:"borders",transform:t})}const u=c("border",l),f=c("borderTop",l),d=c("borderRight",l),h=c("borderBottom",l),p=c("borderLeft",l),m=c("borderColor"),g=c("borderTopColor"),b=c("borderRightColor"),y=c("borderBottomColor"),v=c("borderLeftColor"),x=c("outline",l),w=c("outlineColor"),_=e=>{if(void 0!==e.borderRadius&&null!==e.borderRadius){const t=(0,r.MA)(e.theme,"shape.borderRadius",4,"borderRadius"),n=e=>({borderRadius:(0,r._W)(t,e)});return(0,s.NI)(e,e.borderRadius,n)}return null};_.propTypes={},_.filterProps=["borderRadius"];a(u,f,d,h,p,m,g,b,y,v,_,x,w);const k=e=>{if(void 0!==e.gap&&null!==e.gap){const t=(0,r.MA)(e.theme,"spacing",8,"gap"),n=e=>({gap:(0,r._W)(t,e)});return(0,s.NI)(e,e.gap,n)}return null};k.propTypes={},k.filterProps=["gap"];const S=e=>{if(void 0!==e.columnGap&&null!==e.columnGap){const t=(0,r.MA)(e.theme,"spacing",8,"columnGap"),n=e=>({columnGap:(0,r._W)(t,e)});return(0,s.NI)(e,e.columnGap,n)}return null};S.propTypes={},S.filterProps=["columnGap"];const E=e=>{if(void 0!==e.rowGap&&null!==e.rowGap){const t=(0,r.MA)(e.theme,"spacing",8,"rowGap"),n=e=>({rowGap:(0,r._W)(t,e)});return(0,s.NI)(e,e.rowGap,n)}return null};E.propTypes={},E.filterProps=["rowGap"];a(k,S,E,(0,i.Ay)({prop:"gridColumn"}),(0,i.Ay)({prop:"gridRow"}),(0,i.Ay)({prop:"gridAutoFlow"}),(0,i.Ay)({prop:"gridAutoColumns"}),(0,i.Ay)({prop:"gridAutoRows"}),(0,i.Ay)({prop:"gridTemplateColumns"}),(0,i.Ay)({prop:"gridTemplateRows"}),(0,i.Ay)({prop:"gridTemplateAreas"}),(0,i.Ay)({prop:"gridArea"}));function C(e,t){return"grey"===t?t:e}a((0,i.Ay)({prop:"color",themeKey:"palette",transform:C}),(0,i.Ay)({prop:"bgcolor",cssProperty:"backgroundColor",themeKey:"palette",transform:C}),(0,i.Ay)({prop:"backgroundColor",themeKey:"palette",transform:C}));function j(e){return e<=1&&0!==e?"".concat(100*e,"%"):e}const M=(0,i.Ay)({prop:"width",transform:j}),O=e=>{if(void 0!==e.maxWidth&&null!==e.maxWidth){const t=t=>{var n,r;const i=(null==(n=e.theme)||null==(n=n.breakpoints)||null==(n=n.values)?void 0:n[t])||s.zu[t];return i?"px"!==(null==(r=e.theme)||null==(r=r.breakpoints)?void 0:r.unit)?{maxWidth:"".concat(i).concat(e.theme.breakpoints.unit)}:{maxWidth:i}:{maxWidth:j(t)}};return(0,s.NI)(e,e.maxWidth,t)}return null};O.filterProps=["maxWidth"];const T=(0,i.Ay)({prop:"minWidth",transform:j}),A=(0,i.Ay)({prop:"height",transform:j}),R=(0,i.Ay)({prop:"maxHeight",transform:j}),P=(0,i.Ay)({prop:"minHeight",transform:j}),N=((0,i.Ay)({prop:"size",cssProperty:"width",transform:j}),(0,i.Ay)({prop:"size",cssProperty:"height",transform:j}),a(M,O,T,A,R,P,(0,i.Ay)({prop:"boxSizing"})),{border:{themeKey:"borders",transform:l},borderTop:{themeKey:"borders",transform:l},borderRight:{themeKey:"borders",transform:l},borderBottom:{themeKey:"borders",transform:l},borderLeft:{themeKey:"borders",transform:l},borderColor:{themeKey:"palette"},borderTopColor:{themeKey:"palette"},borderRightColor:{themeKey:"palette"},borderBottomColor:{themeKey:"palette"},borderLeftColor:{themeKey:"palette"},outline:{themeKey:"borders",transform:l},outlineColor:{themeKey:"palette"},borderRadius:{themeKey:"shape.borderRadius",style:_},color:{themeKey:"palette",transform:C},bgcolor:{themeKey:"palette",cssProperty:"backgroundColor",transform:C},backgroundColor:{themeKey:"palette",transform:C},p:{style:r.Ms},pt:{style:r.Ms},pr:{style:r.Ms},pb:{style:r.Ms},pl:{style:r.Ms},px:{style:r.Ms},py:{style:r.Ms},padding:{style:r.Ms},paddingTop:{style:r.Ms},paddingRight:{style:r.Ms},paddingBottom:{style:r.Ms},paddingLeft:{style:r.Ms},paddingX:{style:r.Ms},paddingY:{style:r.Ms},paddingInline:{style:r.Ms},paddingInlineStart:{style:r.Ms},paddingInlineEnd:{style:r.Ms},paddingBlock:{style:r.Ms},paddingBlockStart:{style:r.Ms},paddingBlockEnd:{style:r.Ms},m:{style:r.Lc},mt:{style:r.Lc},mr:{style:r.Lc},mb:{style:r.Lc},ml:{style:r.Lc},mx:{style:r.Lc},my:{style:r.Lc},margin:{style:r.Lc},marginTop:{style:r.Lc},marginRight:{style:r.Lc},marginBottom:{style:r.Lc},marginLeft:{style:r.Lc},marginX:{style:r.Lc},marginY:{style:r.Lc},marginInline:{style:r.Lc},marginInlineStart:{style:r.Lc},marginInlineEnd:{style:r.Lc},marginBlock:{style:r.Lc},marginBlockStart:{style:r.Lc},marginBlockEnd:{style:r.Lc},displayPrint:{cssProperty:!1,transform:e=>({"@media print":{display:e}})},display:{},overflow:{},textOverflow:{},visibility:{},whiteSpace:{},flexBasis:{},flexDirection:{},flexWrap:{},justifyContent:{},alignItems:{},alignContent:{},order:{},flex:{},flexGrow:{},flexShrink:{},alignSelf:{},justifyItems:{},justifySelf:{},gap:{style:k},rowGap:{style:E},columnGap:{style:S},gridColumn:{},gridRow:{},gridAutoFlow:{},gridAutoColumns:{},gridAutoRows:{},gridTemplateColumns:{},gridTemplateRows:{},gridTemplateAreas:{},gridArea:{},position:{},zIndex:{themeKey:"zIndex"},top:{},right:{},bottom:{},left:{},boxShadow:{themeKey:"shadows"},width:{transform:j},maxWidth:{style:O},minWidth:{transform:j},height:{transform:j},maxHeight:{transform:j},minHeight:{transform:j},boxSizing:{},fontFamily:{themeKey:"typography"},fontSize:{themeKey:"typography"},fontStyle:{themeKey:"typography"},fontWeight:{themeKey:"typography"},letterSpacing:{},textTransform:{},lineHeight:{},textAlign:{},typography:{cssProperty:!1,themeKey:"typography"}})},9265:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r.A,extendSxProp:()=>u,unstable_createStyleFunctionSx:()=>r.k,unstable_defaultSxConfig:()=>s.A});var r=n(8812),i=n(8168),o=n(8587),a=n(3216),s=n(7758);const l=["sx"],c=e=>{var t,n;const r={systemProps:{},otherProps:{}},i=null!=(t=null==e||null==(n=e.theme)?void 0:n.unstable_sxConfig)?t:s.A;return Object.keys(e).forEach((t=>{i[t]?r.systemProps[t]=e[t]:r.otherProps[t]=e[t]})),r};function u(e){const{sx:t}=e,n=(0,o.A)(e,l),{systemProps:r,otherProps:s}=c(n);let u;return u=Array.isArray(t)?[r,...t]:"function"===typeof t?function(){const e=t(...arguments);return(0,a.Q)(e)?(0,i.A)({},r,e):r}:(0,i.A)({},r,t),(0,i.A)({},s,{sx:u})}},8812:(e,t,n)=>{"use strict";n.d(t,{A:()=>u,k:()=>l});var r=n(410),i=n(3815),o=n(7162),a=n(9751),s=n(7758);function l(){function e(e,t,n,i){const s={[e]:t,theme:n},l=i[e];if(!l)return{[e]:t};const{cssProperty:c=e,themeKey:u,transform:f,style:d}=l;if(null==t)return null;if("typography"===u&&"inherit"===t)return{[e]:t};const h=(0,o.Yn)(n,u)||{};if(d)return d(s);return(0,a.NI)(s,t,(t=>{let n=(0,o.BO)(h,f,t);return t===n&&"string"===typeof t&&(n=(0,o.BO)(h,f,"".concat(e).concat("default"===t?"":(0,r.A)(t)),t)),!1===c?n:{[c]:n}}))}return function t(n){var r;const{sx:o,theme:l={}}=n||{};if(!o)return null;const c=null!=(r=l.unstable_sxConfig)?r:s.A;function u(n){let r=n;if("function"===typeof n)r=n(l);else if("object"!==typeof n)return n;if(!r)return null;const o=(0,a.EU)(l.breakpoints),s=Object.keys(o);let u=o;return Object.keys(r).forEach((n=>{const o=(s=r[n],f=l,"function"===typeof s?s(f):s);var s,f;if(null!==o&&void 0!==o)if("object"===typeof o)if(c[n])u=(0,i.A)(u,e(n,o,l,c));else{const e=(0,a.NI)({theme:l},o,(e=>({[n]:e})));!function(){for(var e=arguments.length,t=new Array(e),n=0;ne.concat(Object.keys(t))),[]),i=new Set(r);return t.every((e=>i.size===Object.keys(e).length))}(e,o)?u=(0,i.A)(u,e):u[n]=t({sx:o,theme:l})}else u=(0,i.A)(u,e(n,o,l,c))})),(0,a.vf)(s,u)}return Array.isArray(o)?o.map(u):u(o)}}const c=l();c.filterProps=["sx"];const u=c},2374:(e,t,n)=>{"use strict";t.A=void 0;var r=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var n=o(t);if(n&&n.has(e))return n.get(e);var r={__proto__:null},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&Object.prototype.hasOwnProperty.call(e,a)){var s=i?Object.getOwnPropertyDescriptor(e,a):null;s&&(s.get||s.set)?Object.defineProperty(r,a,s):r[a]=e[a]}return r.default=e,n&&n.set(e,r),r}(n(5043)),i=n(568);function o(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(o=function(e){return e?n:t})(e)}t.A=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;const t=r.useContext(i.ThemeContext);return t&&(n=t,0!==Object.keys(n).length)?t:e;var n}},410:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r=n(6632);function i(e){if("string"!==typeof e)throw new Error((0,r.A)(7));return e.charAt(0).toUpperCase()+e.slice(1)}},578:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r.A});var r=n(410)},1098:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Number.MIN_SAFE_INTEGER,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Number.MAX_SAFE_INTEGER;return Math.max(t,Math.min(e,n))}},3216:(e,t,n)=>{"use strict";n.d(t,{A:()=>a,Q:()=>i});var r=n(8168);function i(e){if("object"!==typeof e||null===e)return!1;const t=Object.getPrototypeOf(e);return(null===t||t===Object.prototype||null===Object.getPrototypeOf(t))&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)}function o(e){if(!i(e))return e;const t={};return Object.keys(e).forEach((n=>{t[n]=o(e[n])})),t}function a(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{clone:!0};const s=n.clone?(0,r.A)({},e):e;return i(e)&&i(t)&&Object.keys(t).forEach((r=>{"__proto__"!==r&&(i(t[r])&&r in e&&i(e[r])?s[r]=a(e[r],t[r],n):n.clone?s[r]=i(t[r])?o(t[r]):t[r]:s[r]=t[r])})),s}},4534:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r.A,isPlainObject:()=>r.Q});var r=n(3216)},6632:(e,t,n)=>{"use strict";function r(e){let t="https://mui.com/production-error/?code="+e;for(let n=1;nr})},7245:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r.A});var r=n(6632)},2046:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>l,getFunctionName:()=>o});var r=n(2086);const i=/^\s*function(?:\s|\s*\/\*.*\*\/\s*)+([^(\s/]*)\s*/;function o(e){const t="".concat(e).match(i);return t&&t[1]||""}function a(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return e.displayName||e.name||o(e)||t}function s(e,t,n){const r=a(t);return e.displayName||(""!==r?"".concat(n,"(").concat(r,")"):n)}function l(e){if(null!=e){if("string"===typeof e)return e;if("function"===typeof e)return a(e,"Component");if("object"===typeof e)switch(e.$$typeof){case r.ForwardRef:return s(e,e.render,"ForwardRef");case r.Memo:return s(e,e.type,"memo");default:return}}}},219:(e,t,n)=>{"use strict";var r=n(3763),i={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},o={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},a={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},s={};function l(e){return r.isMemo(e)?a:s[e.$$typeof]||i}s[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},s[r.Memo]=a;var c=Object.defineProperty,u=Object.getOwnPropertyNames,f=Object.getOwnPropertySymbols,d=Object.getOwnPropertyDescriptor,h=Object.getPrototypeOf,p=Object.prototype;e.exports=function e(t,n,r){if("string"!==typeof n){if(p){var i=h(n);i&&i!==p&&e(t,i,r)}var a=u(n);f&&(a=a.concat(f(n)));for(var s=l(t),m=l(n),g=0;g{"use strict";var n="function"===typeof Symbol&&Symbol.for,r=n?Symbol.for("react.element"):60103,i=n?Symbol.for("react.portal"):60106,o=n?Symbol.for("react.fragment"):60107,a=n?Symbol.for("react.strict_mode"):60108,s=n?Symbol.for("react.profiler"):60114,l=n?Symbol.for("react.provider"):60109,c=n?Symbol.for("react.context"):60110,u=n?Symbol.for("react.async_mode"):60111,f=n?Symbol.for("react.concurrent_mode"):60111,d=n?Symbol.for("react.forward_ref"):60112,h=n?Symbol.for("react.suspense"):60113,p=n?Symbol.for("react.suspense_list"):60120,m=n?Symbol.for("react.memo"):60115,g=n?Symbol.for("react.lazy"):60116,b=n?Symbol.for("react.block"):60121,y=n?Symbol.for("react.fundamental"):60117,v=n?Symbol.for("react.responder"):60118,x=n?Symbol.for("react.scope"):60119;function w(e){if("object"===typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:switch(e=e.type){case u:case f:case o:case s:case a:case h:return e;default:switch(e=e&&e.$$typeof){case c:case d:case g:case m:case l:return e;default:return t}}case i:return t}}}function _(e){return w(e)===f}t.AsyncMode=u,t.ConcurrentMode=f,t.ContextConsumer=c,t.ContextProvider=l,t.Element=r,t.ForwardRef=d,t.Fragment=o,t.Lazy=g,t.Memo=m,t.Portal=i,t.Profiler=s,t.StrictMode=a,t.Suspense=h,t.isAsyncMode=function(e){return _(e)||w(e)===u},t.isConcurrentMode=_,t.isContextConsumer=function(e){return w(e)===c},t.isContextProvider=function(e){return w(e)===l},t.isElement=function(e){return"object"===typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return w(e)===d},t.isFragment=function(e){return w(e)===o},t.isLazy=function(e){return w(e)===g},t.isMemo=function(e){return w(e)===m},t.isPortal=function(e){return w(e)===i},t.isProfiler=function(e){return w(e)===s},t.isStrictMode=function(e){return w(e)===a},t.isSuspense=function(e){return w(e)===h},t.isValidElementType=function(e){return"string"===typeof e||"function"===typeof e||e===o||e===f||e===s||e===a||e===h||e===p||"object"===typeof e&&null!==e&&(e.$$typeof===g||e.$$typeof===m||e.$$typeof===l||e.$$typeof===c||e.$$typeof===d||e.$$typeof===y||e.$$typeof===v||e.$$typeof===x||e.$$typeof===b)},t.typeOf=w},3763:(e,t,n)=>{"use strict";e.exports=n(4983)},7685:(e,t,n)=>{var r=n(7937)(n(6552),"DataView");e.exports=r},8724:(e,t,n)=>{var r=n(7615),i=n(5051),o=n(2154),a=n(8734),s=n(2662);function l(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t{var r=n(7563),i=n(9935),o=n(4190),a=n(1946),s=n(1714);function l(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t{var r=n(7937)(n(6552),"Map");e.exports=r},4816:(e,t,n)=>{var r=n(7251),i=n(7159),o=n(438),a=n(9394),s=n(6874);function l(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t{var r=n(7937)(n(6552),"Promise");e.exports=r},2070:(e,t,n)=>{var r=n(7937)(n(6552),"Set");e.exports=r},8902:(e,t,n)=>{var r=n(4816),i=n(6179),o=n(6704);function a(e){var t=-1,n=null==e?0:e.length;for(this.__data__=new r;++t{var r=n(7160),i=n(4545),o=n(793),a=n(7760),s=n(3892),l=n(6788);function c(e){var t=this.__data__=new r(e);this.size=t.size}c.prototype.clear=i,c.prototype.delete=o,c.prototype.get=a,c.prototype.has=s,c.prototype.set=l,e.exports=c},9812:(e,t,n)=>{var r=n(6552).Symbol;e.exports=r},2929:(e,t,n)=>{var r=n(6552).Uint8Array;e.exports=r},6600:(e,t,n)=>{var r=n(7937)(n(6552),"WeakMap");e.exports=r},1170:e=>{e.exports=function(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}},7529:e=>{e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length,i=0,o=[];++n{var r=n(8468);e.exports=function(e,t){return!!(null==e?0:e.length)&&r(e,t,0)>-1}},1558:e=>{e.exports=function(e,t,n){for(var r=-1,i=null==e?0:e.length;++r{var r=n(3343),i=n(2777),o=n(4052),a=n(4543),s=n(9194),l=n(1268),c=Object.prototype.hasOwnProperty;e.exports=function(e,t){var n=o(e),u=!n&&i(e),f=!n&&!u&&a(e),d=!n&&!u&&!f&&l(e),h=n||u||f||d,p=h?r(e.length,String):[],m=p.length;for(var g in e)!t&&!c.call(e,g)||h&&("length"==g||f&&("offset"==g||"parent"==g)||d&&("buffer"==g||"byteLength"==g||"byteOffset"==g)||s(g,m))||p.push(g);return p}},149:e=>{e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length,i=Array(r);++n{e.exports=function(e,t){for(var n=-1,r=t.length,i=e.length;++n{e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length;++n{var r=n(1775),i=n(3211);e.exports=function(e,t,n){(void 0!==n&&!i(e[t],n)||void 0===n&&!(t in e))&&r(e,t,n)}},8420:(e,t,n)=>{var r=n(1775),i=n(3211),o=Object.prototype.hasOwnProperty;e.exports=function(e,t,n){var a=e[t];o.call(e,t)&&i(a,n)&&(void 0!==n||t in e)||r(e,t,n)}},1340:(e,t,n)=>{var r=n(3211);e.exports=function(e,t){for(var n=e.length;n--;)if(r(e[n][0],t))return n;return-1}},1775:(e,t,n)=>{var r=n(5654);e.exports=function(e,t,n){"__proto__"==t&&r?r(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}},1817:(e,t,n)=>{var r=n(6686),i=Object.create,o=function(){function e(){}return function(t){if(!r(t))return{};if(i)return i(t);e.prototype=t;var n=new e;return e.prototype=void 0,n}}();e.exports=o},8746:(e,t,n)=>{var r=n(8902),i=n(5866),o=n(1558),a=n(149),s=n(7574),l=n(8114);e.exports=function(e,t,n,c){var u=-1,f=i,d=!0,h=e.length,p=[],m=t.length;if(!h)return p;n&&(t=a(t,s(n))),c?(f=o,d=!1):t.length>=200&&(f=l,d=!1,t=new r(t));e:for(;++u{var r=n(4664),i=n(6516)(r);e.exports=i},5816:e=>{e.exports=function(e,t,n,r){for(var i=e.length,o=n+(r?1:-1);r?o--:++o{var r=n(8895),i=n(7116);e.exports=function e(t,n,o,a,s){var l=-1,c=t.length;for(o||(o=i),s||(s=[]);++l0&&o(u)?n>1?e(u,n-1,o,a,s):r(s,u):a||(s[s.length]=u)}return s}},4258:(e,t,n)=>{var r=n(5906)();e.exports=r},4664:(e,t,n)=>{var r=n(4258),i=n(8673);e.exports=function(e,t){return e&&r(e,t,i)}},2969:(e,t,n)=>{var r=n(5324),i=n(914);e.exports=function(e,t){for(var n=0,o=(t=r(t,e)).length;null!=e&&n{var r=n(8895),i=n(4052);e.exports=function(e,t,n){var o=t(e);return i(e)?o:r(o,n(e))}},6913:(e,t,n)=>{var r=n(9812),i=n(4552),o=n(6095),a=r?r.toStringTag:void 0;e.exports=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":a&&a in Object(e)?i(e):o(e)}},7894:e=>{e.exports=function(e,t){return null!=e&&t in Object(e)}},8468:(e,t,n)=>{var r=n(5816),i=n(644),o=n(4020);e.exports=function(e,t,n){return t===t?o(e,t,n):r(e,i,n)}},5193:(e,t,n)=>{var r=n(6913),i=n(2761);e.exports=function(e){return i(e)&&"[object Arguments]"==r(e)}},7133:(e,t,n)=>{var r=n(6913),i=n(2761);e.exports=function(e){return i(e)&&"[object Date]"==r(e)}},6989:(e,t,n)=>{var r=n(6399),i=n(2761);e.exports=function e(t,n,o,a,s){return t===n||(null==t||null==n||!i(t)&&!i(n)?t!==t&&n!==n:r(t,n,o,a,e,s))}},6399:(e,t,n)=>{var r=n(5538),i=n(3668),o=n(9987),a=n(5752),s=n(6924),l=n(4052),c=n(4543),u=n(1268),f="[object Arguments]",d="[object Array]",h="[object Object]",p=Object.prototype.hasOwnProperty;e.exports=function(e,t,n,m,g,b){var y=l(e),v=l(t),x=y?d:s(e),w=v?d:s(t),_=(x=x==f?h:x)==h,k=(w=w==f?h:w)==h,S=x==w;if(S&&c(e)){if(!c(t))return!1;y=!0,_=!1}if(S&&!_)return b||(b=new r),y||u(e)?i(e,t,n,m,g,b):o(e,t,x,n,m,g,b);if(!(1&n)){var E=_&&p.call(e,"__wrapped__"),C=k&&p.call(t,"__wrapped__");if(E||C){var j=E?e.value():e,M=C?t.value():t;return b||(b=new r),g(j,M,n,m,b)}}return!!S&&(b||(b=new r),a(e,t,n,m,g,b))}},6532:(e,t,n)=>{var r=n(5538),i=n(6989);e.exports=function(e,t,n,o){var a=n.length,s=a,l=!o;if(null==e)return!s;for(e=Object(e);a--;){var c=n[a];if(l&&c[2]?c[1]!==e[c[0]]:!(c[0]in e))return!1}for(;++a{e.exports=function(e){return e!==e}},6954:(e,t,n)=>{var r=n(1629),i=n(7857),o=n(6686),a=n(6996),s=/^\[object .+?Constructor\]$/,l=Function.prototype,c=Object.prototype,u=l.toString,f=c.hasOwnProperty,d=RegExp("^"+u.call(f).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");e.exports=function(e){return!(!o(e)||i(e))&&(r(e)?d:s).test(a(e))}},5428:(e,t,n)=>{var r=n(6913),i=n(6173),o=n(2761),a={};a["[object Float32Array]"]=a["[object Float64Array]"]=a["[object Int8Array]"]=a["[object Int16Array]"]=a["[object Int32Array]"]=a["[object Uint8Array]"]=a["[object Uint8ClampedArray]"]=a["[object Uint16Array]"]=a["[object Uint32Array]"]=!0,a["[object Arguments]"]=a["[object Array]"]=a["[object ArrayBuffer]"]=a["[object Boolean]"]=a["[object DataView]"]=a["[object Date]"]=a["[object Error]"]=a["[object Function]"]=a["[object Map]"]=a["[object Number]"]=a["[object Object]"]=a["[object RegExp]"]=a["[object Set]"]=a["[object String]"]=a["[object WeakMap]"]=!1,e.exports=function(e){return o(e)&&i(e.length)&&!!a[r(e)]}},9096:(e,t,n)=>{var r=n(9256),i=n(5029),o=n(3279),a=n(4052),s=n(3932);e.exports=function(e){return"function"==typeof e?e:null==e?o:"object"==typeof e?a(e)?i(e[0],e[1]):r(e):s(e)}},3713:(e,t,n)=>{var r=n(6140),i=n(1143),o=Object.prototype.hasOwnProperty;e.exports=function(e){if(!r(e))return i(e);var t=[];for(var n in Object(e))o.call(e,n)&&"constructor"!=n&&t.push(n);return t}},8122:(e,t,n)=>{var r=n(6686),i=n(6140),o=n(3516),a=Object.prototype.hasOwnProperty;e.exports=function(e){if(!r(e))return o(e);var t=i(e),n=[];for(var s in e)("constructor"!=s||!t&&a.call(e,s))&&n.push(s);return n}},8883:(e,t,n)=>{var r=n(5652),i=n(6571);e.exports=function(e,t){var n=-1,o=i(e)?Array(e.length):[];return r(e,(function(e,r,i){o[++n]=t(e,r,i)})),o}},9256:(e,t,n)=>{var r=n(6532),i=n(3781),o=n(1310);e.exports=function(e){var t=i(e);return 1==t.length&&t[0][2]?o(t[0][0],t[0][1]):function(n){return n===e||r(n,e,t)}}},5029:(e,t,n)=>{var r=n(6989),i=n(3097),o=n(3366),a=n(2597),s=n(9417),l=n(1310),c=n(914);e.exports=function(e,t){return a(e)&&s(t)?l(c(e),t):function(n){var a=i(n,e);return void 0===a&&a===t?o(n,e):r(t,a,3)}}},3253:(e,t,n)=>{var r=n(5538),i=n(3868),o=n(4258),a=n(3223),s=n(6686),l=n(474),c=n(3737);e.exports=function e(t,n,u,f,d){t!==n&&o(n,(function(o,l){if(d||(d=new r),s(o))a(t,n,l,u,e,f,d);else{var h=f?f(c(t,l),o,l+"",t,n,d):void 0;void 0===h&&(h=o),i(t,l,h)}}),l)}},3223:(e,t,n)=>{var r=n(3868),i=n(4353),o=n(8710),a=n(1980),s=n(310),l=n(2777),c=n(4052),u=n(6272),f=n(4543),d=n(1629),h=n(6686),p=n(2322),m=n(1268),g=n(3737),b=n(1609);e.exports=function(e,t,n,y,v,x,w){var _=g(e,n),k=g(t,n),S=w.get(k);if(S)r(e,n,S);else{var E=x?x(_,k,n+"",e,t,w):void 0,C=void 0===E;if(C){var j=c(k),M=!j&&f(k),O=!j&&!M&&m(k);E=k,j||M||O?c(_)?E=_:u(_)?E=a(_):M?(C=!1,E=i(k,!0)):O?(C=!1,E=o(k,!0)):E=[]:p(k)||l(k)?(E=_,l(_)?E=b(_):h(_)&&!d(_)||(E=s(k))):C=!1}C&&(w.set(k,E),v(E,k,y,x,w),w.delete(k)),r(e,n,E)}}},2536:(e,t,n)=>{var r=n(149),i=n(2969),o=n(9096),a=n(8883),s=n(320),l=n(7574),c=n(5893),u=n(3279),f=n(4052);e.exports=function(e,t,n){t=t.length?r(t,(function(e){return f(e)?function(t){return i(t,1===e.length?e[0]:e)}:e})):[u];var d=-1;t=r(t,l(o));var h=a(e,(function(e,n,i){return{criteria:r(t,(function(t){return t(e)})),index:++d,value:e}}));return s(h,(function(e,t){return c(e,t,n)}))}},4008:(e,t,n)=>{var r=n(7449),i=n(3366);e.exports=function(e,t){return r(e,t,(function(t,n){return i(e,n)}))}},7449:(e,t,n)=>{var r=n(2969),i=n(9261),o=n(5324);e.exports=function(e,t,n){for(var a=-1,s=t.length,l={};++a{e.exports=function(e){return function(t){return null==t?void 0:t[e]}}},2866:(e,t,n)=>{var r=n(2969);e.exports=function(e){return function(t){return r(t,e)}}},5647:(e,t,n)=>{var r=n(3279),i=n(5636),o=n(6350);e.exports=function(e,t){return o(i(e,t,r),e+"")}},9261:(e,t,n)=>{var r=n(8420),i=n(5324),o=n(9194),a=n(6686),s=n(914);e.exports=function(e,t,n,l){if(!a(e))return e;for(var c=-1,u=(t=i(t,e)).length,f=u-1,d=e;null!=d&&++c{var r=n(2541),i=n(5654),o=n(3279),a=i?function(e,t){return i(e,"toString",{configurable:!0,enumerable:!1,value:r(t),writable:!0})}:o;e.exports=a},320:e=>{e.exports=function(e,t){var n=e.length;for(e.sort(t);n--;)e[n]=e[n].value;return e}},3343:e=>{e.exports=function(e,t){for(var n=-1,r=Array(e);++n{var r=n(9812),i=n(149),o=n(4052),a=n(9841),s=r?r.prototype:void 0,l=s?s.toString:void 0;e.exports=function e(t){if("string"==typeof t)return t;if(o(t))return i(t,e)+"";if(a(t))return l?l.call(t):"";var n=t+"";return"0"==n&&1/t==-Infinity?"-0":n}},7574:e=>{e.exports=function(e){return function(t){return e(t)}}},4416:(e,t,n)=>{var r=n(8902),i=n(5866),o=n(1558),a=n(8114),s=n(8182),l=n(2074);e.exports=function(e,t,n){var c=-1,u=i,f=e.length,d=!0,h=[],p=h;if(n)d=!1,u=o;else if(f>=200){var m=t?null:s(e);if(m)return l(m);d=!1,u=a,p=new r}else p=t?[]:h;e:for(;++c{e.exports=function(e,t){return e.has(t)}},5324:(e,t,n)=>{var r=n(4052),i=n(2597),o=n(4079),a=n(1069);e.exports=function(e,t){return r(e)?e:i(e,t)?[e]:o(a(e))}},1516:(e,t,n)=>{var r=n(2929);e.exports=function(e){var t=new e.constructor(e.byteLength);return new r(t).set(new r(e)),t}},4353:(e,t,n)=>{e=n.nmd(e);var r=n(6552),i=t&&!t.nodeType&&t,o=i&&e&&!e.nodeType&&e,a=o&&o.exports===i?r.Buffer:void 0,s=a?a.allocUnsafe:void 0;e.exports=function(e,t){if(t)return e.slice();var n=e.length,r=s?s(n):new e.constructor(n);return e.copy(r),r}},8710:(e,t,n)=>{var r=n(1516);e.exports=function(e,t){var n=t?r(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}},6599:(e,t,n)=>{var r=n(9841);e.exports=function(e,t){if(e!==t){var n=void 0!==e,i=null===e,o=e===e,a=r(e),s=void 0!==t,l=null===t,c=t===t,u=r(t);if(!l&&!u&&!a&&e>t||a&&s&&c&&!l&&!u||i&&s&&c||!n&&c||!o)return 1;if(!i&&!a&&!u&&e{var r=n(6599);e.exports=function(e,t,n){for(var i=-1,o=e.criteria,a=t.criteria,s=o.length,l=n.length;++i=l?c:c*("desc"==n[i]?-1:1)}return e.index-t.index}},1980:e=>{e.exports=function(e,t){var n=-1,r=e.length;for(t||(t=Array(r));++n{var r=n(8420),i=n(1775);e.exports=function(e,t,n,o){var a=!n;n||(n={});for(var s=-1,l=t.length;++s{var r=n(6552)["__core-js_shared__"];e.exports=r},4570:(e,t,n)=>{var r=n(5647),i=n(929);e.exports=function(e){return r((function(t,n){var r=-1,o=n.length,a=o>1?n[o-1]:void 0,s=o>2?n[2]:void 0;for(a=e.length>3&&"function"==typeof a?(o--,a):void 0,s&&i(n[0],n[1],s)&&(a=o<3?void 0:a,o=1),t=Object(t);++r{var r=n(6571);e.exports=function(e,t){return function(n,i){if(null==n)return n;if(!r(n))return e(n,i);for(var o=n.length,a=t?o:-1,s=Object(n);(t?a--:++a{e.exports=function(e){return function(t,n,r){for(var i=-1,o=Object(t),a=r(t),s=a.length;s--;){var l=a[e?s:++i];if(!1===n(o[l],l,o))break}return t}}},8182:(e,t,n)=>{var r=n(2070),i=n(5713),o=n(2074),a=r&&1/o(new r([,-0]))[1]==1/0?function(e){return new r(e)}:i;e.exports=a},5654:(e,t,n)=>{var r=n(7937),i=function(){try{var e=r(Object,"defineProperty");return e({},"",{}),e}catch(t){}}();e.exports=i},3668:(e,t,n)=>{var r=n(8902),i=n(2587),o=n(8114);e.exports=function(e,t,n,a,s,l){var c=1&n,u=e.length,f=t.length;if(u!=f&&!(c&&f>u))return!1;var d=l.get(e),h=l.get(t);if(d&&h)return d==t&&h==e;var p=-1,m=!0,g=2&n?new r:void 0;for(l.set(e,t),l.set(t,e);++p{var r=n(9812),i=n(2929),o=n(3211),a=n(3668),s=n(4160),l=n(2074),c=r?r.prototype:void 0,u=c?c.valueOf:void 0;e.exports=function(e,t,n,r,c,f,d){switch(n){case"[object DataView]":if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case"[object ArrayBuffer]":return!(e.byteLength!=t.byteLength||!f(new i(e),new i(t)));case"[object Boolean]":case"[object Date]":case"[object Number]":return o(+e,+t);case"[object Error]":return e.name==t.name&&e.message==t.message;case"[object RegExp]":case"[object String]":return e==t+"";case"[object Map]":var h=s;case"[object Set]":var p=1&r;if(h||(h=l),e.size!=t.size&&!p)return!1;var m=d.get(e);if(m)return m==t;r|=2,d.set(e,t);var g=a(h(e),h(t),r,c,f,d);return d.delete(e),g;case"[object Symbol]":if(u)return u.call(e)==u.call(t)}return!1}},5752:(e,t,n)=>{var r=n(9395),i=Object.prototype.hasOwnProperty;e.exports=function(e,t,n,o,a,s){var l=1&n,c=r(e),u=c.length;if(u!=r(t).length&&!l)return!1;for(var f=u;f--;){var d=c[f];if(!(l?d in t:i.call(t,d)))return!1}var h=s.get(e),p=s.get(t);if(h&&p)return h==t&&p==e;var m=!0;s.set(e,t),s.set(t,e);for(var g=l;++f{var r=n(819),i=n(5636),o=n(6350);e.exports=function(e){return o(i(e,void 0,r),e+"")}},7105:(e,t,n)=>{var r="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g;e.exports=r},9395:(e,t,n)=>{var r=n(4262),i=n(9621),o=n(8673);e.exports=function(e){return r(e,o,i)}},2622:(e,t,n)=>{var r=n(705);e.exports=function(e,t){var n=e.__data__;return r(t)?n["string"==typeof t?"string":"hash"]:n.map}},3781:(e,t,n)=>{var r=n(9417),i=n(8673);e.exports=function(e){for(var t=i(e),n=t.length;n--;){var o=t[n],a=e[o];t[n]=[o,a,r(a)]}return t}},7937:(e,t,n)=>{var r=n(6954),i=n(4657);e.exports=function(e,t){var n=i(e,t);return r(n)?n:void 0}},5990:(e,t,n)=>{var r=n(3028)(Object.getPrototypeOf,Object);e.exports=r},4552:(e,t,n)=>{var r=n(9812),i=Object.prototype,o=i.hasOwnProperty,a=i.toString,s=r?r.toStringTag:void 0;e.exports=function(e){var t=o.call(e,s),n=e[s];try{e[s]=void 0;var r=!0}catch(l){}var i=a.call(e);return r&&(t?e[s]=n:delete e[s]),i}},9621:(e,t,n)=>{var r=n(7529),i=n(7828),o=Object.prototype.propertyIsEnumerable,a=Object.getOwnPropertySymbols,s=a?function(e){return null==e?[]:(e=Object(e),r(a(e),(function(t){return o.call(e,t)})))}:i;e.exports=s},6924:(e,t,n)=>{var r=n(7685),i=n(5204),o=n(5387),a=n(2070),s=n(6600),l=n(6913),c=n(6996),u="[object Map]",f="[object Promise]",d="[object Set]",h="[object WeakMap]",p="[object DataView]",m=c(r),g=c(i),b=c(o),y=c(a),v=c(s),x=l;(r&&x(new r(new ArrayBuffer(1)))!=p||i&&x(new i)!=u||o&&x(o.resolve())!=f||a&&x(new a)!=d||s&&x(new s)!=h)&&(x=function(e){var t=l(e),n="[object Object]"==t?e.constructor:void 0,r=n?c(n):"";if(r)switch(r){case m:return p;case g:return u;case b:return f;case y:return d;case v:return h}return t}),e.exports=x},4657:e=>{e.exports=function(e,t){return null==e?void 0:e[t]}},9057:(e,t,n)=>{var r=n(5324),i=n(2777),o=n(4052),a=n(9194),s=n(6173),l=n(914);e.exports=function(e,t,n){for(var c=-1,u=(t=r(t,e)).length,f=!1;++c{var r=n(5575);e.exports=function(){this.__data__=r?r(null):{},this.size=0}},5051:e=>{e.exports=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}},2154:(e,t,n)=>{var r=n(5575),i=Object.prototype.hasOwnProperty;e.exports=function(e){var t=this.__data__;if(r){var n=t[e];return"__lodash_hash_undefined__"===n?void 0:n}return i.call(t,e)?t[e]:void 0}},8734:(e,t,n)=>{var r=n(5575),i=Object.prototype.hasOwnProperty;e.exports=function(e){var t=this.__data__;return r?void 0!==t[e]:i.call(t,e)}},2662:(e,t,n)=>{var r=n(5575);e.exports=function(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=r&&void 0===t?"__lodash_hash_undefined__":t,this}},310:(e,t,n)=>{var r=n(1817),i=n(5990),o=n(6140);e.exports=function(e){return"function"!=typeof e.constructor||o(e)?{}:r(i(e))}},7116:(e,t,n)=>{var r=n(9812),i=n(2777),o=n(4052),a=r?r.isConcatSpreadable:void 0;e.exports=function(e){return o(e)||i(e)||!!(a&&e&&e[a])}},9194:e=>{var t=/^(?:0|[1-9]\d*)$/;e.exports=function(e,n){var r=typeof e;return!!(n=null==n?9007199254740991:n)&&("number"==r||"symbol"!=r&&t.test(e))&&e>-1&&e%1==0&&e{var r=n(3211),i=n(6571),o=n(9194),a=n(6686);e.exports=function(e,t,n){if(!a(n))return!1;var s=typeof t;return!!("number"==s?i(n)&&o(t,n.length):"string"==s&&t in n)&&r(n[t],e)}},2597:(e,t,n)=>{var r=n(4052),i=n(9841),o=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,a=/^\w*$/;e.exports=function(e,t){if(r(e))return!1;var n=typeof e;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!i(e))||(a.test(e)||!o.test(e)||null!=t&&e in Object(t))}},705:e=>{e.exports=function(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e}},7857:(e,t,n)=>{var r=n(3440),i=function(){var e=/[^.]+$/.exec(r&&r.keys&&r.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();e.exports=function(e){return!!i&&i in e}},6140:e=>{var t=Object.prototype;e.exports=function(e){var n=e&&e.constructor;return e===("function"==typeof n&&n.prototype||t)}},9417:(e,t,n)=>{var r=n(6686);e.exports=function(e){return e===e&&!r(e)}},7563:e=>{e.exports=function(){this.__data__=[],this.size=0}},9935:(e,t,n)=>{var r=n(1340),i=Array.prototype.splice;e.exports=function(e){var t=this.__data__,n=r(t,e);return!(n<0)&&(n==t.length-1?t.pop():i.call(t,n,1),--this.size,!0)}},4190:(e,t,n)=>{var r=n(1340);e.exports=function(e){var t=this.__data__,n=r(t,e);return n<0?void 0:t[n][1]}},1946:(e,t,n)=>{var r=n(1340);e.exports=function(e){return r(this.__data__,e)>-1}},1714:(e,t,n)=>{var r=n(1340);e.exports=function(e,t){var n=this.__data__,i=r(n,e);return i<0?(++this.size,n.push([e,t])):n[i][1]=t,this}},7251:(e,t,n)=>{var r=n(8724),i=n(7160),o=n(5204);e.exports=function(){this.size=0,this.__data__={hash:new r,map:new(o||i),string:new r}}},7159:(e,t,n)=>{var r=n(2622);e.exports=function(e){var t=r(this,e).delete(e);return this.size-=t?1:0,t}},438:(e,t,n)=>{var r=n(2622);e.exports=function(e){return r(this,e).get(e)}},9394:(e,t,n)=>{var r=n(2622);e.exports=function(e){return r(this,e).has(e)}},6874:(e,t,n)=>{var r=n(2622);e.exports=function(e,t){var n=r(this,e),i=n.size;return n.set(e,t),this.size+=n.size==i?0:1,this}},4160:e=>{e.exports=function(e){var t=-1,n=Array(e.size);return e.forEach((function(e,r){n[++t]=[r,e]})),n}},1310:e=>{e.exports=function(e,t){return function(n){return null!=n&&(n[e]===t&&(void 0!==t||e in Object(n)))}}},8259:(e,t,n)=>{var r=n(5797);e.exports=function(e){var t=r(e,(function(e){return 500===n.size&&n.clear(),e})),n=t.cache;return t}},5575:(e,t,n)=>{var r=n(7937)(Object,"create");e.exports=r},1143:(e,t,n)=>{var r=n(3028)(Object.keys,Object);e.exports=r},3516:e=>{e.exports=function(e){var t=[];if(null!=e)for(var n in Object(e))t.push(n);return t}},6832:(e,t,n)=>{e=n.nmd(e);var r=n(7105),i=t&&!t.nodeType&&t,o=i&&e&&!e.nodeType&&e,a=o&&o.exports===i&&r.process,s=function(){try{var e=o&&o.require&&o.require("util").types;return e||a&&a.binding&&a.binding("util")}catch(t){}}();e.exports=s},6095:e=>{var t=Object.prototype.toString;e.exports=function(e){return t.call(e)}},3028:e=>{e.exports=function(e,t){return function(n){return e(t(n))}}},5636:(e,t,n)=>{var r=n(1170),i=Math.max;e.exports=function(e,t,n){return t=i(void 0===t?e.length-1:t,0),function(){for(var o=arguments,a=-1,s=i(o.length-t,0),l=Array(s);++a{var r=n(7105),i="object"==typeof self&&self&&self.Object===Object&&self,o=r||i||Function("return this")();e.exports=o},3737:e=>{e.exports=function(e,t){if(("constructor"!==t||"function"!==typeof e[t])&&"__proto__"!=t)return e[t]}},6179:e=>{e.exports=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this}},6704:e=>{e.exports=function(e){return this.__data__.has(e)}},2074:e=>{e.exports=function(e){var t=-1,n=Array(e.size);return e.forEach((function(e){n[++t]=e})),n}},6350:(e,t,n)=>{var r=n(8325),i=n(6578)(r);e.exports=i},6578:e=>{var t=Date.now;e.exports=function(e){var n=0,r=0;return function(){var i=t(),o=16-(i-r);if(r=i,o>0){if(++n>=800)return arguments[0]}else n=0;return e.apply(void 0,arguments)}}},4545:(e,t,n)=>{var r=n(7160);e.exports=function(){this.__data__=new r,this.size=0}},793:e=>{e.exports=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}},7760:e=>{e.exports=function(e){return this.__data__.get(e)}},3892:e=>{e.exports=function(e){return this.__data__.has(e)}},6788:(e,t,n)=>{var r=n(7160),i=n(5204),o=n(4816);e.exports=function(e,t){var n=this.__data__;if(n instanceof r){var a=n.__data__;if(!i||a.length<199)return a.push([e,t]),this.size=++n.size,this;n=this.__data__=new o(a)}return n.set(e,t),this.size=n.size,this}},4020:e=>{e.exports=function(e,t,n){for(var r=n-1,i=e.length;++r{var r=n(8259),i=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,o=/\\(\\)?/g,a=r((function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(i,(function(e,n,r,i){t.push(r?i.replace(o,"$1"):n||e)})),t}));e.exports=a},914:(e,t,n)=>{var r=n(9841);e.exports=function(e){if("string"==typeof e||r(e))return e;var t=e+"";return"0"==t&&1/e==-Infinity?"-0":t}},6996:e=>{var t=Function.prototype.toString;e.exports=function(e){if(null!=e){try{return t.call(e)}catch(n){}try{return e+""}catch(n){}}return""}},2541:e=>{e.exports=function(e){return function(){return e}}},3211:e=>{e.exports=function(e,t){return e===t||e!==e&&t!==t}},819:(e,t,n)=>{var r=n(755);e.exports=function(e){return(null==e?0:e.length)?r(e,1):[]}},3097:(e,t,n)=>{var r=n(2969);e.exports=function(e,t,n){var i=null==e?void 0:r(e,t);return void 0===i?n:i}},3366:(e,t,n)=>{var r=n(7894),i=n(9057);e.exports=function(e,t){return null!=e&&i(e,t,r)}},3279:e=>{e.exports=function(e){return e}},2777:(e,t,n)=>{var r=n(5193),i=n(2761),o=Object.prototype,a=o.hasOwnProperty,s=o.propertyIsEnumerable,l=r(function(){return arguments}())?r:function(e){return i(e)&&a.call(e,"callee")&&!s.call(e,"callee")};e.exports=l},4052:e=>{var t=Array.isArray;e.exports=t},6571:(e,t,n)=>{var r=n(1629),i=n(6173);e.exports=function(e){return null!=e&&i(e.length)&&!r(e)}},6272:(e,t,n)=>{var r=n(6571),i=n(2761);e.exports=function(e){return i(e)&&r(e)}},4543:(e,t,n)=>{e=n.nmd(e);var r=n(6552),i=n(14),o=t&&!t.nodeType&&t,a=o&&e&&!e.nodeType&&e,s=a&&a.exports===o?r.Buffer:void 0,l=(s?s.isBuffer:void 0)||i;e.exports=l},3085:(e,t,n)=>{var r=n(7133),i=n(7574),o=n(6832),a=o&&o.isDate,s=a?i(a):r;e.exports=s},9853:(e,t,n)=>{var r=n(6989);e.exports=function(e,t){return r(e,t)}},1629:(e,t,n)=>{var r=n(6913),i=n(6686);e.exports=function(e){if(!i(e))return!1;var t=r(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t}},6173:e=>{e.exports=function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}},6686:e=>{e.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},2761:e=>{e.exports=function(e){return null!=e&&"object"==typeof e}},2322:(e,t,n)=>{var r=n(6913),i=n(5990),o=n(2761),a=Function.prototype,s=Object.prototype,l=a.toString,c=s.hasOwnProperty,u=l.call(Object);e.exports=function(e){if(!o(e)||"[object Object]"!=r(e))return!1;var t=i(e);if(null===t)return!0;var n=c.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&l.call(n)==u}},620:(e,t,n)=>{var r=n(6913),i=n(4052),o=n(2761);e.exports=function(e){return"string"==typeof e||!i(e)&&o(e)&&"[object String]"==r(e)}},9841:(e,t,n)=>{var r=n(6913),i=n(2761);e.exports=function(e){return"symbol"==typeof e||i(e)&&"[object Symbol]"==r(e)}},1268:(e,t,n)=>{var r=n(5428),i=n(7574),o=n(6832),a=o&&o.isTypedArray,s=a?i(a):r;e.exports=s},8673:(e,t,n)=>{var r=n(3204),i=n(3713),o=n(6571);e.exports=function(e){return o(e)?r(e):i(e)}},474:(e,t,n)=>{var r=n(3204),i=n(8122),o=n(6571);e.exports=function(e){return o(e)?r(e,!0):i(e)}},4065:e=>{e.exports=function(e){var t=null==e?0:e.length;return t?e[t-1]:void 0}},3536:function(e,t,n){var r;e=n.nmd(e),function(){var i,o="Expected a function",a="__lodash_hash_undefined__",s="__lodash_placeholder__",l=16,c=32,u=64,f=128,d=256,h=1/0,p=9007199254740991,m=NaN,g=4294967295,b=[["ary",f],["bind",1],["bindKey",2],["curry",8],["curryRight",l],["flip",512],["partial",c],["partialRight",u],["rearg",d]],y="[object Arguments]",v="[object Array]",x="[object Boolean]",w="[object Date]",_="[object Error]",k="[object Function]",S="[object GeneratorFunction]",E="[object Map]",C="[object Number]",j="[object Object]",M="[object Promise]",O="[object RegExp]",T="[object Set]",A="[object String]",R="[object Symbol]",P="[object WeakMap]",N="[object ArrayBuffer]",z="[object DataView]",L="[object Float32Array]",I="[object Float64Array]",F="[object Int8Array]",D="[object Int16Array]",U="[object Int32Array]",B="[object Uint8Array]",W="[object Uint8ClampedArray]",q="[object Uint16Array]",V="[object Uint32Array]",H=/\b__p \+= '';/g,$=/\b(__p \+=) '' \+/g,Y=/(__e\(.*?\)|\b__t\)) \+\n'';/g,G=/&(?:amp|lt|gt|quot|#39);/g,K=/[&<>"']/g,X=RegExp(G.source),Q=RegExp(K.source),J=/<%-([\s\S]+?)%>/g,Z=/<%([\s\S]+?)%>/g,ee=/<%=([\s\S]+?)%>/g,te=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,ne=/^\w*$/,re=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,ie=/[\\^$.*+?()[\]{}|]/g,oe=RegExp(ie.source),ae=/^\s+/,se=/\s/,le=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,ce=/\{\n\/\* \[wrapped with (.+)\] \*/,ue=/,? & /,fe=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,de=/[()=,{}\[\]\/\s]/,he=/\\(\\)?/g,pe=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,me=/\w*$/,ge=/^[-+]0x[0-9a-f]+$/i,be=/^0b[01]+$/i,ye=/^\[object .+?Constructor\]$/,ve=/^0o[0-7]+$/i,xe=/^(?:0|[1-9]\d*)$/,we=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,_e=/($^)/,ke=/['\n\r\u2028\u2029\\]/g,Se="\\ud800-\\udfff",Ee="\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff",Ce="\\u2700-\\u27bf",je="a-z\\xdf-\\xf6\\xf8-\\xff",Me="A-Z\\xc0-\\xd6\\xd8-\\xde",Oe="\\ufe0e\\ufe0f",Te="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Ae="['\u2019]",Re="["+Se+"]",Pe="["+Te+"]",Ne="["+Ee+"]",ze="\\d+",Le="["+Ce+"]",Ie="["+je+"]",Fe="[^"+Se+Te+ze+Ce+je+Me+"]",De="\\ud83c[\\udffb-\\udfff]",Ue="[^"+Se+"]",Be="(?:\\ud83c[\\udde6-\\uddff]){2}",We="[\\ud800-\\udbff][\\udc00-\\udfff]",qe="["+Me+"]",Ve="\\u200d",He="(?:"+Ie+"|"+Fe+")",$e="(?:"+qe+"|"+Fe+")",Ye="(?:['\u2019](?:d|ll|m|re|s|t|ve))?",Ge="(?:['\u2019](?:D|LL|M|RE|S|T|VE))?",Ke="(?:"+Ne+"|"+De+")"+"?",Xe="["+Oe+"]?",Qe=Xe+Ke+("(?:"+Ve+"(?:"+[Ue,Be,We].join("|")+")"+Xe+Ke+")*"),Je="(?:"+[Le,Be,We].join("|")+")"+Qe,Ze="(?:"+[Ue+Ne+"?",Ne,Be,We,Re].join("|")+")",et=RegExp(Ae,"g"),tt=RegExp(Ne,"g"),nt=RegExp(De+"(?="+De+")|"+Ze+Qe,"g"),rt=RegExp([qe+"?"+Ie+"+"+Ye+"(?="+[Pe,qe,"$"].join("|")+")",$e+"+"+Ge+"(?="+[Pe,qe+He,"$"].join("|")+")",qe+"?"+He+"+"+Ye,qe+"+"+Ge,"\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",ze,Je].join("|"),"g"),it=RegExp("["+Ve+Se+Ee+Oe+"]"),ot=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,at=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],st=-1,lt={};lt[L]=lt[I]=lt[F]=lt[D]=lt[U]=lt[B]=lt[W]=lt[q]=lt[V]=!0,lt[y]=lt[v]=lt[N]=lt[x]=lt[z]=lt[w]=lt[_]=lt[k]=lt[E]=lt[C]=lt[j]=lt[O]=lt[T]=lt[A]=lt[P]=!1;var ct={};ct[y]=ct[v]=ct[N]=ct[z]=ct[x]=ct[w]=ct[L]=ct[I]=ct[F]=ct[D]=ct[U]=ct[E]=ct[C]=ct[j]=ct[O]=ct[T]=ct[A]=ct[R]=ct[B]=ct[W]=ct[q]=ct[V]=!0,ct[_]=ct[k]=ct[P]=!1;var ut={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},ft=parseFloat,dt=parseInt,ht="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g,pt="object"==typeof self&&self&&self.Object===Object&&self,mt=ht||pt||Function("return this")(),gt=t&&!t.nodeType&&t,bt=gt&&e&&!e.nodeType&&e,yt=bt&&bt.exports===gt,vt=yt&&ht.process,xt=function(){try{var e=bt&&bt.require&&bt.require("util").types;return e||vt&&vt.binding&&vt.binding("util")}catch(t){}}(),wt=xt&&xt.isArrayBuffer,_t=xt&&xt.isDate,kt=xt&&xt.isMap,St=xt&&xt.isRegExp,Et=xt&&xt.isSet,Ct=xt&&xt.isTypedArray;function jt(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}function Mt(e,t,n,r){for(var i=-1,o=null==e?0:e.length;++i-1}function Nt(e,t,n){for(var r=-1,i=null==e?0:e.length;++r-1;);return n}function rn(e,t){for(var n=e.length;n--&&qt(t,e[n],0)>-1;);return n}var on=Gt({"\xc0":"A","\xc1":"A","\xc2":"A","\xc3":"A","\xc4":"A","\xc5":"A","\xe0":"a","\xe1":"a","\xe2":"a","\xe3":"a","\xe4":"a","\xe5":"a","\xc7":"C","\xe7":"c","\xd0":"D","\xf0":"d","\xc8":"E","\xc9":"E","\xca":"E","\xcb":"E","\xe8":"e","\xe9":"e","\xea":"e","\xeb":"e","\xcc":"I","\xcd":"I","\xce":"I","\xcf":"I","\xec":"i","\xed":"i","\xee":"i","\xef":"i","\xd1":"N","\xf1":"n","\xd2":"O","\xd3":"O","\xd4":"O","\xd5":"O","\xd6":"O","\xd8":"O","\xf2":"o","\xf3":"o","\xf4":"o","\xf5":"o","\xf6":"o","\xf8":"o","\xd9":"U","\xda":"U","\xdb":"U","\xdc":"U","\xf9":"u","\xfa":"u","\xfb":"u","\xfc":"u","\xdd":"Y","\xfd":"y","\xff":"y","\xc6":"Ae","\xe6":"ae","\xde":"Th","\xfe":"th","\xdf":"ss","\u0100":"A","\u0102":"A","\u0104":"A","\u0101":"a","\u0103":"a","\u0105":"a","\u0106":"C","\u0108":"C","\u010a":"C","\u010c":"C","\u0107":"c","\u0109":"c","\u010b":"c","\u010d":"c","\u010e":"D","\u0110":"D","\u010f":"d","\u0111":"d","\u0112":"E","\u0114":"E","\u0116":"E","\u0118":"E","\u011a":"E","\u0113":"e","\u0115":"e","\u0117":"e","\u0119":"e","\u011b":"e","\u011c":"G","\u011e":"G","\u0120":"G","\u0122":"G","\u011d":"g","\u011f":"g","\u0121":"g","\u0123":"g","\u0124":"H","\u0126":"H","\u0125":"h","\u0127":"h","\u0128":"I","\u012a":"I","\u012c":"I","\u012e":"I","\u0130":"I","\u0129":"i","\u012b":"i","\u012d":"i","\u012f":"i","\u0131":"i","\u0134":"J","\u0135":"j","\u0136":"K","\u0137":"k","\u0138":"k","\u0139":"L","\u013b":"L","\u013d":"L","\u013f":"L","\u0141":"L","\u013a":"l","\u013c":"l","\u013e":"l","\u0140":"l","\u0142":"l","\u0143":"N","\u0145":"N","\u0147":"N","\u014a":"N","\u0144":"n","\u0146":"n","\u0148":"n","\u014b":"n","\u014c":"O","\u014e":"O","\u0150":"O","\u014d":"o","\u014f":"o","\u0151":"o","\u0154":"R","\u0156":"R","\u0158":"R","\u0155":"r","\u0157":"r","\u0159":"r","\u015a":"S","\u015c":"S","\u015e":"S","\u0160":"S","\u015b":"s","\u015d":"s","\u015f":"s","\u0161":"s","\u0162":"T","\u0164":"T","\u0166":"T","\u0163":"t","\u0165":"t","\u0167":"t","\u0168":"U","\u016a":"U","\u016c":"U","\u016e":"U","\u0170":"U","\u0172":"U","\u0169":"u","\u016b":"u","\u016d":"u","\u016f":"u","\u0171":"u","\u0173":"u","\u0174":"W","\u0175":"w","\u0176":"Y","\u0177":"y","\u0178":"Y","\u0179":"Z","\u017b":"Z","\u017d":"Z","\u017a":"z","\u017c":"z","\u017e":"z","\u0132":"IJ","\u0133":"ij","\u0152":"Oe","\u0153":"oe","\u0149":"'n","\u017f":"s"}),an=Gt({"&":"&","<":"<",">":">",'"':""","'":"'"});function sn(e){return"\\"+ut[e]}function ln(e){return it.test(e)}function cn(e){var t=-1,n=Array(e.size);return e.forEach((function(e,r){n[++t]=[r,e]})),n}function un(e,t){return function(n){return e(t(n))}}function fn(e,t){for(var n=-1,r=e.length,i=0,o=[];++n",""":'"',"'":"'"});var yn=function e(t){var n=(t=null==t?mt:yn.defaults(mt.Object(),t,yn.pick(mt,at))).Array,r=t.Date,se=t.Error,Se=t.Function,Ee=t.Math,Ce=t.Object,je=t.RegExp,Me=t.String,Oe=t.TypeError,Te=n.prototype,Ae=Se.prototype,Re=Ce.prototype,Pe=t["__core-js_shared__"],Ne=Ae.toString,ze=Re.hasOwnProperty,Le=0,Ie=function(){var e=/[^.]+$/.exec(Pe&&Pe.keys&&Pe.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}(),Fe=Re.toString,De=Ne.call(Ce),Ue=mt._,Be=je("^"+Ne.call(ze).replace(ie,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),We=yt?t.Buffer:i,qe=t.Symbol,Ve=t.Uint8Array,He=We?We.allocUnsafe:i,$e=un(Ce.getPrototypeOf,Ce),Ye=Ce.create,Ge=Re.propertyIsEnumerable,Ke=Te.splice,Xe=qe?qe.isConcatSpreadable:i,Qe=qe?qe.iterator:i,Je=qe?qe.toStringTag:i,Ze=function(){try{var e=fo(Ce,"defineProperty");return e({},"",{}),e}catch(t){}}(),nt=t.clearTimeout!==mt.clearTimeout&&t.clearTimeout,it=r&&r.now!==mt.Date.now&&r.now,ut=t.setTimeout!==mt.setTimeout&&t.setTimeout,ht=Ee.ceil,pt=Ee.floor,gt=Ce.getOwnPropertySymbols,bt=We?We.isBuffer:i,vt=t.isFinite,xt=Te.join,Ut=un(Ce.keys,Ce),Gt=Ee.max,vn=Ee.min,xn=r.now,wn=t.parseInt,_n=Ee.random,kn=Te.reverse,Sn=fo(t,"DataView"),En=fo(t,"Map"),Cn=fo(t,"Promise"),jn=fo(t,"Set"),Mn=fo(t,"WeakMap"),On=fo(Ce,"create"),Tn=Mn&&new Mn,An={},Rn=Fo(Sn),Pn=Fo(En),Nn=Fo(Cn),zn=Fo(jn),Ln=Fo(Mn),In=qe?qe.prototype:i,Fn=In?In.valueOf:i,Dn=In?In.toString:i;function Un(e){if(ts(e)&&!Va(e)&&!(e instanceof Vn)){if(e instanceof qn)return e;if(ze.call(e,"__wrapped__"))return Do(e)}return new qn(e)}var Bn=function(){function e(){}return function(t){if(!es(t))return{};if(Ye)return Ye(t);e.prototype=t;var n=new e;return e.prototype=i,n}}();function Wn(){}function qn(e,t){this.__wrapped__=e,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=i}function Vn(e){this.__wrapped__=e,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=g,this.__views__=[]}function Hn(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t=t?e:t)),e}function lr(e,t,n,r,o,a){var s,l=1&t,c=2&t,u=4&t;if(n&&(s=o?n(e,r,o,a):n(e)),s!==i)return s;if(!es(e))return e;var f=Va(e);if(f){if(s=function(e){var t=e.length,n=new e.constructor(t);t&&"string"==typeof e[0]&&ze.call(e,"index")&&(n.index=e.index,n.input=e.input);return n}(e),!l)return Oi(e,s)}else{var d=mo(e),h=d==k||d==S;if(Ga(e))return ki(e,l);if(d==j||d==y||h&&!o){if(s=c||h?{}:bo(e),!l)return c?function(e,t){return Ti(e,po(e),t)}(e,function(e,t){return e&&Ti(t,Rs(t),e)}(s,e)):function(e,t){return Ti(e,ho(e),t)}(e,ir(s,e))}else{if(!ct[d])return o?e:{};s=function(e,t,n){var r=e.constructor;switch(t){case N:return Si(e);case x:case w:return new r(+e);case z:return function(e,t){var n=t?Si(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}(e,n);case L:case I:case F:case D:case U:case B:case W:case q:case V:return Ei(e,n);case E:return new r;case C:case A:return new r(e);case O:return function(e){var t=new e.constructor(e.source,me.exec(e));return t.lastIndex=e.lastIndex,t}(e);case T:return new r;case R:return i=e,Fn?Ce(Fn.call(i)):{}}var i}(e,d,l)}}a||(a=new Kn);var p=a.get(e);if(p)return p;a.set(e,s),as(e)?e.forEach((function(r){s.add(lr(r,t,n,r,e,a))})):ns(e)&&e.forEach((function(r,i){s.set(i,lr(r,t,n,i,e,a))}));var m=f?i:(u?c?io:ro:c?Rs:As)(e);return Ot(m||e,(function(r,i){m&&(r=e[i=r]),tr(s,i,lr(r,t,n,i,e,a))})),s}function cr(e,t,n){var r=n.length;if(null==e)return!r;for(e=Ce(e);r--;){var o=n[r],a=t[o],s=e[o];if(s===i&&!(o in e)||!a(s))return!1}return!0}function ur(e,t,n){if("function"!=typeof e)throw new Oe(o);return Ao((function(){e.apply(i,n)}),t)}function fr(e,t,n,r){var i=-1,o=Pt,a=!0,s=e.length,l=[],c=t.length;if(!s)return l;n&&(t=zt(t,Zt(n))),r?(o=Nt,a=!1):t.length>=200&&(o=tn,a=!1,t=new Gn(t));e:for(;++i-1},$n.prototype.set=function(e,t){var n=this.__data__,r=nr(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this},Yn.prototype.clear=function(){this.size=0,this.__data__={hash:new Hn,map:new(En||$n),string:new Hn}},Yn.prototype.delete=function(e){var t=co(this,e).delete(e);return this.size-=t?1:0,t},Yn.prototype.get=function(e){return co(this,e).get(e)},Yn.prototype.has=function(e){return co(this,e).has(e)},Yn.prototype.set=function(e,t){var n=co(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this},Gn.prototype.add=Gn.prototype.push=function(e){return this.__data__.set(e,a),this},Gn.prototype.has=function(e){return this.__data__.has(e)},Kn.prototype.clear=function(){this.__data__=new $n,this.size=0},Kn.prototype.delete=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n},Kn.prototype.get=function(e){return this.__data__.get(e)},Kn.prototype.has=function(e){return this.__data__.has(e)},Kn.prototype.set=function(e,t){var n=this.__data__;if(n instanceof $n){var r=n.__data__;if(!En||r.length<199)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new Yn(r)}return n.set(e,t),this.size=n.size,this};var dr=Pi(xr),hr=Pi(wr,!0);function pr(e,t){var n=!0;return dr(e,(function(e,r,i){return n=!!t(e,r,i)})),n}function mr(e,t,n){for(var r=-1,o=e.length;++r0&&n(s)?t>1?br(s,t-1,n,r,i):Lt(i,s):r||(i[i.length]=s)}return i}var yr=Ni(),vr=Ni(!0);function xr(e,t){return e&&yr(e,t,As)}function wr(e,t){return e&&vr(e,t,As)}function _r(e,t){return Rt(t,(function(t){return Qa(e[t])}))}function kr(e,t){for(var n=0,r=(t=vi(t,e)).length;null!=e&&nt}function jr(e,t){return null!=e&&ze.call(e,t)}function Mr(e,t){return null!=e&&t in Ce(e)}function Or(e,t,r){for(var o=r?Nt:Pt,a=e[0].length,s=e.length,l=s,c=n(s),u=1/0,f=[];l--;){var d=e[l];l&&t&&(d=zt(d,Zt(t))),u=vn(d.length,u),c[l]=!r&&(t||a>=120&&d.length>=120)?new Gn(l&&d):i}d=e[0];var h=-1,p=c[0];e:for(;++h=s?l:l*("desc"==n[r]?-1:1)}return e.index-t.index}(e,t,n)}))}function Hr(e,t,n){for(var r=-1,i=t.length,o={};++r-1;)s!==e&&Ke.call(s,l,1),Ke.call(e,l,1);return e}function Yr(e,t){for(var n=e?t.length:0,r=n-1;n--;){var i=t[n];if(n==r||i!==o){var o=i;vo(i)?Ke.call(e,i,1):fi(e,i)}}return e}function Gr(e,t){return e+pt(_n()*(t-e+1))}function Kr(e,t){var n="";if(!e||t<1||t>p)return n;do{t%2&&(n+=e),(t=pt(t/2))&&(e+=e)}while(t);return n}function Xr(e,t){return Ro(jo(e,t,rl),e+"")}function Qr(e){return Qn(Us(e))}function Jr(e,t){var n=Us(e);return zo(n,sr(t,0,n.length))}function Zr(e,t,n,r){if(!es(e))return e;for(var o=-1,a=(t=vi(t,e)).length,s=a-1,l=e;null!=l&&++oo?0:o+t),(r=r>o?o:r)<0&&(r+=o),o=t>r?0:r-t>>>0,t>>>=0;for(var a=n(o);++i>>1,a=e[o];null!==a&&!ls(a)&&(n?a<=t:a=200){var c=t?null:Ki(e);if(c)return dn(c);a=!1,i=tn,l=new Gn}else l=t?[]:s;e:for(;++r=r?e:ri(e,t,n)}var _i=nt||function(e){return mt.clearTimeout(e)};function ki(e,t){if(t)return e.slice();var n=e.length,r=He?He(n):new e.constructor(n);return e.copy(r),r}function Si(e){var t=new e.constructor(e.byteLength);return new Ve(t).set(new Ve(e)),t}function Ei(e,t){var n=t?Si(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}function Ci(e,t){if(e!==t){var n=e!==i,r=null===e,o=e===e,a=ls(e),s=t!==i,l=null===t,c=t===t,u=ls(t);if(!l&&!u&&!a&&e>t||a&&s&&c&&!l&&!u||r&&s&&c||!n&&c||!o)return 1;if(!r&&!a&&!u&&e1?n[o-1]:i,s=o>2?n[2]:i;for(a=e.length>3&&"function"==typeof a?(o--,a):i,s&&xo(n[0],n[1],s)&&(a=o<3?i:a,o=1),t=Ce(t);++r-1?o[a?t[s]:s]:i}}function Di(e){return no((function(t){var n=t.length,r=n,a=qn.prototype.thru;for(e&&t.reverse();r--;){var s=t[r];if("function"!=typeof s)throw new Oe(o);if(a&&!l&&"wrapper"==ao(s))var l=new qn([],!0)}for(r=l?r:n;++r1&&x.reverse(),h&&ul))return!1;var u=a.get(e),f=a.get(t);if(u&&f)return u==t&&f==e;var d=-1,h=!0,p=2&n?new Gn:i;for(a.set(e,t),a.set(t,e);++d-1&&e%1==0&&e1?"& ":"")+t[r],t=t.join(n>2?", ":" "),e.replace(le,"{\n/* [wrapped with "+t+"] */\n")}(r,function(e,t){return Ot(b,(function(n){var r="_."+n[0];t&n[1]&&!Pt(e,r)&&e.push(r)})),e.sort()}(function(e){var t=e.match(ce);return t?t[1].split(ue):[]}(r),n)))}function No(e){var t=0,n=0;return function(){var r=xn(),o=16-(r-n);if(n=r,o>0){if(++t>=800)return arguments[0]}else t=0;return e.apply(i,arguments)}}function zo(e,t){var n=-1,r=e.length,o=r-1;for(t=t===i?r:t;++n1?e[t-1]:i;return n="function"==typeof n?(e.pop(),n):i,oa(e,n)}));function da(e){var t=Un(e);return t.__chain__=!0,t}function ha(e,t){return t(e)}var pa=no((function(e){var t=e.length,n=t?e[0]:0,r=this.__wrapped__,o=function(t){return ar(t,e)};return!(t>1||this.__actions__.length)&&r instanceof Vn&&vo(n)?((r=r.slice(n,+n+(t?1:0))).__actions__.push({func:ha,args:[o],thisArg:i}),new qn(r,this.__chain__).thru((function(e){return t&&!e.length&&e.push(i),e}))):this.thru(o)}));var ma=Ai((function(e,t,n){ze.call(e,n)?++e[n]:or(e,n,1)}));var ga=Fi(qo),ba=Fi(Vo);function ya(e,t){return(Va(e)?Ot:dr)(e,lo(t,3))}function va(e,t){return(Va(e)?Tt:hr)(e,lo(t,3))}var xa=Ai((function(e,t,n){ze.call(e,n)?e[n].push(t):or(e,n,[t])}));var wa=Xr((function(e,t,r){var i=-1,o="function"==typeof t,a=$a(e)?n(e.length):[];return dr(e,(function(e){a[++i]=o?jt(t,e,r):Tr(e,t,r)})),a})),_a=Ai((function(e,t,n){or(e,n,t)}));function ka(e,t){return(Va(e)?zt:Dr)(e,lo(t,3))}var Sa=Ai((function(e,t,n){e[n?0:1].push(t)}),(function(){return[[],[]]}));var Ea=Xr((function(e,t){if(null==e)return[];var n=t.length;return n>1&&xo(e,t[0],t[1])?t=[]:n>2&&xo(t[0],t[1],t[2])&&(t=[t[0]]),Vr(e,br(t,1),[])})),Ca=it||function(){return mt.Date.now()};function ja(e,t,n){return t=n?i:t,t=e&&null==t?e.length:t,Qi(e,f,i,i,i,i,t)}function Ma(e,t){var n;if("function"!=typeof t)throw new Oe(o);return e=ps(e),function(){return--e>0&&(n=t.apply(this,arguments)),e<=1&&(t=i),n}}var Oa=Xr((function(e,t,n){var r=1;if(n.length){var i=fn(n,so(Oa));r|=c}return Qi(e,r,t,n,i)})),Ta=Xr((function(e,t,n){var r=3;if(n.length){var i=fn(n,so(Ta));r|=c}return Qi(t,r,e,n,i)}));function Aa(e,t,n){var r,a,s,l,c,u,f=0,d=!1,h=!1,p=!0;if("function"!=typeof e)throw new Oe(o);function m(t){var n=r,o=a;return r=a=i,f=t,l=e.apply(o,n)}function g(e){var n=e-u;return u===i||n>=t||n<0||h&&e-f>=s}function b(){var e=Ca();if(g(e))return y(e);c=Ao(b,function(e){var n=t-(e-u);return h?vn(n,s-(e-f)):n}(e))}function y(e){return c=i,p&&r?m(e):(r=a=i,l)}function v(){var e=Ca(),n=g(e);if(r=arguments,a=this,u=e,n){if(c===i)return function(e){return f=e,c=Ao(b,t),d?m(e):l}(u);if(h)return _i(c),c=Ao(b,t),m(u)}return c===i&&(c=Ao(b,t)),l}return t=gs(t)||0,es(n)&&(d=!!n.leading,s=(h="maxWait"in n)?Gt(gs(n.maxWait)||0,t):s,p="trailing"in n?!!n.trailing:p),v.cancel=function(){c!==i&&_i(c),f=0,r=u=a=c=i},v.flush=function(){return c===i?l:y(Ca())},v}var Ra=Xr((function(e,t){return ur(e,1,t)})),Pa=Xr((function(e,t,n){return ur(e,gs(t)||0,n)}));function Na(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new Oe(o);var n=function(){var r=arguments,i=t?t.apply(this,r):r[0],o=n.cache;if(o.has(i))return o.get(i);var a=e.apply(this,r);return n.cache=o.set(i,a)||o,a};return n.cache=new(Na.Cache||Yn),n}function za(e){if("function"!=typeof e)throw new Oe(o);return function(){var t=arguments;switch(t.length){case 0:return!e.call(this);case 1:return!e.call(this,t[0]);case 2:return!e.call(this,t[0],t[1]);case 3:return!e.call(this,t[0],t[1],t[2])}return!e.apply(this,t)}}Na.Cache=Yn;var La=xi((function(e,t){var n=(t=1==t.length&&Va(t[0])?zt(t[0],Zt(lo())):zt(br(t,1),Zt(lo()))).length;return Xr((function(r){for(var i=-1,o=vn(r.length,n);++i=t})),qa=Ar(function(){return arguments}())?Ar:function(e){return ts(e)&&ze.call(e,"callee")&&!Ge.call(e,"callee")},Va=n.isArray,Ha=wt?Zt(wt):function(e){return ts(e)&&Er(e)==N};function $a(e){return null!=e&&Za(e.length)&&!Qa(e)}function Ya(e){return ts(e)&&$a(e)}var Ga=bt||gl,Ka=_t?Zt(_t):function(e){return ts(e)&&Er(e)==w};function Xa(e){if(!ts(e))return!1;var t=Er(e);return t==_||"[object DOMException]"==t||"string"==typeof e.message&&"string"==typeof e.name&&!is(e)}function Qa(e){if(!es(e))return!1;var t=Er(e);return t==k||t==S||"[object AsyncFunction]"==t||"[object Proxy]"==t}function Ja(e){return"number"==typeof e&&e==ps(e)}function Za(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=p}function es(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function ts(e){return null!=e&&"object"==typeof e}var ns=kt?Zt(kt):function(e){return ts(e)&&mo(e)==E};function rs(e){return"number"==typeof e||ts(e)&&Er(e)==C}function is(e){if(!ts(e)||Er(e)!=j)return!1;var t=$e(e);if(null===t)return!0;var n=ze.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&Ne.call(n)==De}var os=St?Zt(St):function(e){return ts(e)&&Er(e)==O};var as=Et?Zt(Et):function(e){return ts(e)&&mo(e)==T};function ss(e){return"string"==typeof e||!Va(e)&&ts(e)&&Er(e)==A}function ls(e){return"symbol"==typeof e||ts(e)&&Er(e)==R}var cs=Ct?Zt(Ct):function(e){return ts(e)&&Za(e.length)&&!!lt[Er(e)]};var us=$i(Fr),fs=$i((function(e,t){return e<=t}));function ds(e){if(!e)return[];if($a(e))return ss(e)?mn(e):Oi(e);if(Qe&&e[Qe])return function(e){for(var t,n=[];!(t=e.next()).done;)n.push(t.value);return n}(e[Qe]());var t=mo(e);return(t==E?cn:t==T?dn:Us)(e)}function hs(e){return e?(e=gs(e))===h||e===-1/0?17976931348623157e292*(e<0?-1:1):e===e?e:0:0===e?e:0}function ps(e){var t=hs(e),n=t%1;return t===t?n?t-n:t:0}function ms(e){return e?sr(ps(e),0,g):0}function gs(e){if("number"==typeof e)return e;if(ls(e))return m;if(es(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=es(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=Jt(e);var n=be.test(e);return n||ve.test(e)?dt(e.slice(2),n?2:8):ge.test(e)?m:+e}function bs(e){return Ti(e,Rs(e))}function ys(e){return null==e?"":ci(e)}var vs=Ri((function(e,t){if(So(t)||$a(t))Ti(t,As(t),e);else for(var n in t)ze.call(t,n)&&tr(e,n,t[n])})),xs=Ri((function(e,t){Ti(t,Rs(t),e)})),ws=Ri((function(e,t,n,r){Ti(t,Rs(t),e,r)})),_s=Ri((function(e,t,n,r){Ti(t,As(t),e,r)})),ks=no(ar);var Ss=Xr((function(e,t){e=Ce(e);var n=-1,r=t.length,o=r>2?t[2]:i;for(o&&xo(t[0],t[1],o)&&(r=1);++n1),t})),Ti(e,io(e),n),r&&(n=lr(n,7,eo));for(var i=t.length;i--;)fi(n,t[i]);return n}));var Ls=no((function(e,t){return null==e?{}:function(e,t){return Hr(e,t,(function(t,n){return js(e,n)}))}(e,t)}));function Is(e,t){if(null==e)return{};var n=zt(io(e),(function(e){return[e]}));return t=lo(t),Hr(e,n,(function(e,n){return t(e,n[0])}))}var Fs=Xi(As),Ds=Xi(Rs);function Us(e){return null==e?[]:en(e,As(e))}var Bs=Li((function(e,t,n){return t=t.toLowerCase(),e+(n?Ws(t):t)}));function Ws(e){return Xs(ys(e).toLowerCase())}function qs(e){return(e=ys(e))&&e.replace(we,on).replace(tt,"")}var Vs=Li((function(e,t,n){return e+(n?"-":"")+t.toLowerCase()})),Hs=Li((function(e,t,n){return e+(n?" ":"")+t.toLowerCase()})),$s=zi("toLowerCase");var Ys=Li((function(e,t,n){return e+(n?"_":"")+t.toLowerCase()}));var Gs=Li((function(e,t,n){return e+(n?" ":"")+Xs(t)}));var Ks=Li((function(e,t,n){return e+(n?" ":"")+t.toUpperCase()})),Xs=zi("toUpperCase");function Qs(e,t,n){return e=ys(e),(t=n?i:t)===i?function(e){return ot.test(e)}(e)?function(e){return e.match(rt)||[]}(e):function(e){return e.match(fe)||[]}(e):e.match(t)||[]}var Js=Xr((function(e,t){try{return jt(e,i,t)}catch(n){return Xa(n)?n:new se(n)}})),Zs=no((function(e,t){return Ot(t,(function(t){t=Io(t),or(e,t,Oa(e[t],e))})),e}));function el(e){return function(){return e}}var tl=Di(),nl=Di(!0);function rl(e){return e}function il(e){return zr("function"==typeof e?e:lr(e,1))}var ol=Xr((function(e,t){return function(n){return Tr(n,e,t)}})),al=Xr((function(e,t){return function(n){return Tr(e,n,t)}}));function sl(e,t,n){var r=As(t),i=_r(t,r);null!=n||es(t)&&(i.length||!r.length)||(n=t,t=e,e=this,i=_r(t,As(t)));var o=!(es(n)&&"chain"in n)||!!n.chain,a=Qa(e);return Ot(i,(function(n){var r=t[n];e[n]=r,a&&(e.prototype[n]=function(){var t=this.__chain__;if(o||t){var n=e(this.__wrapped__);return(n.__actions__=Oi(this.__actions__)).push({func:r,args:arguments,thisArg:e}),n.__chain__=t,n}return r.apply(e,Lt([this.value()],arguments))})})),e}function ll(){}var cl=qi(zt),ul=qi(At),fl=qi(Dt);function dl(e){return wo(e)?Yt(Io(e)):function(e){return function(t){return kr(t,e)}}(e)}var hl=Hi(),pl=Hi(!0);function ml(){return[]}function gl(){return!1}var bl=Wi((function(e,t){return e+t}),0),yl=Gi("ceil"),vl=Wi((function(e,t){return e/t}),1),xl=Gi("floor");var wl=Wi((function(e,t){return e*t}),1),_l=Gi("round"),kl=Wi((function(e,t){return e-t}),0);return Un.after=function(e,t){if("function"!=typeof t)throw new Oe(o);return e=ps(e),function(){if(--e<1)return t.apply(this,arguments)}},Un.ary=ja,Un.assign=vs,Un.assignIn=xs,Un.assignInWith=ws,Un.assignWith=_s,Un.at=ks,Un.before=Ma,Un.bind=Oa,Un.bindAll=Zs,Un.bindKey=Ta,Un.castArray=function(){if(!arguments.length)return[];var e=arguments[0];return Va(e)?e:[e]},Un.chain=da,Un.chunk=function(e,t,r){t=(r?xo(e,t,r):t===i)?1:Gt(ps(t),0);var o=null==e?0:e.length;if(!o||t<1)return[];for(var a=0,s=0,l=n(ht(o/t));ao?0:o+n),(r=r===i||r>o?o:ps(r))<0&&(r+=o),r=n>r?0:ms(r);n>>0)?(e=ys(e))&&("string"==typeof t||null!=t&&!os(t))&&!(t=ci(t))&&ln(e)?wi(mn(e),0,n):e.split(t,n):[]},Un.spread=function(e,t){if("function"!=typeof e)throw new Oe(o);return t=null==t?0:Gt(ps(t),0),Xr((function(n){var r=n[t],i=wi(n,0,t);return r&&Lt(i,r),jt(e,this,i)}))},Un.tail=function(e){var t=null==e?0:e.length;return t?ri(e,1,t):[]},Un.take=function(e,t,n){return e&&e.length?ri(e,0,(t=n||t===i?1:ps(t))<0?0:t):[]},Un.takeRight=function(e,t,n){var r=null==e?0:e.length;return r?ri(e,(t=r-(t=n||t===i?1:ps(t)))<0?0:t,r):[]},Un.takeRightWhile=function(e,t){return e&&e.length?hi(e,lo(t,3),!1,!0):[]},Un.takeWhile=function(e,t){return e&&e.length?hi(e,lo(t,3)):[]},Un.tap=function(e,t){return t(e),e},Un.throttle=function(e,t,n){var r=!0,i=!0;if("function"!=typeof e)throw new Oe(o);return es(n)&&(r="leading"in n?!!n.leading:r,i="trailing"in n?!!n.trailing:i),Aa(e,t,{leading:r,maxWait:t,trailing:i})},Un.thru=ha,Un.toArray=ds,Un.toPairs=Fs,Un.toPairsIn=Ds,Un.toPath=function(e){return Va(e)?zt(e,Io):ls(e)?[e]:Oi(Lo(ys(e)))},Un.toPlainObject=bs,Un.transform=function(e,t,n){var r=Va(e),i=r||Ga(e)||cs(e);if(t=lo(t,4),null==n){var o=e&&e.constructor;n=i?r?new o:[]:es(e)&&Qa(o)?Bn($e(e)):{}}return(i?Ot:xr)(e,(function(e,r,i){return t(n,e,r,i)})),n},Un.unary=function(e){return ja(e,1)},Un.union=ta,Un.unionBy=na,Un.unionWith=ra,Un.uniq=function(e){return e&&e.length?ui(e):[]},Un.uniqBy=function(e,t){return e&&e.length?ui(e,lo(t,2)):[]},Un.uniqWith=function(e,t){return t="function"==typeof t?t:i,e&&e.length?ui(e,i,t):[]},Un.unset=function(e,t){return null==e||fi(e,t)},Un.unzip=ia,Un.unzipWith=oa,Un.update=function(e,t,n){return null==e?e:di(e,t,yi(n))},Un.updateWith=function(e,t,n,r){return r="function"==typeof r?r:i,null==e?e:di(e,t,yi(n),r)},Un.values=Us,Un.valuesIn=function(e){return null==e?[]:en(e,Rs(e))},Un.without=aa,Un.words=Qs,Un.wrap=function(e,t){return Ia(yi(t),e)},Un.xor=sa,Un.xorBy=la,Un.xorWith=ca,Un.zip=ua,Un.zipObject=function(e,t){return gi(e||[],t||[],tr)},Un.zipObjectDeep=function(e,t){return gi(e||[],t||[],Zr)},Un.zipWith=fa,Un.entries=Fs,Un.entriesIn=Ds,Un.extend=xs,Un.extendWith=ws,sl(Un,Un),Un.add=bl,Un.attempt=Js,Un.camelCase=Bs,Un.capitalize=Ws,Un.ceil=yl,Un.clamp=function(e,t,n){return n===i&&(n=t,t=i),n!==i&&(n=(n=gs(n))===n?n:0),t!==i&&(t=(t=gs(t))===t?t:0),sr(gs(e),t,n)},Un.clone=function(e){return lr(e,4)},Un.cloneDeep=function(e){return lr(e,5)},Un.cloneDeepWith=function(e,t){return lr(e,5,t="function"==typeof t?t:i)},Un.cloneWith=function(e,t){return lr(e,4,t="function"==typeof t?t:i)},Un.conformsTo=function(e,t){return null==t||cr(e,t,As(t))},Un.deburr=qs,Un.defaultTo=function(e,t){return null==e||e!==e?t:e},Un.divide=vl,Un.endsWith=function(e,t,n){e=ys(e),t=ci(t);var r=e.length,o=n=n===i?r:sr(ps(n),0,r);return(n-=t.length)>=0&&e.slice(n,o)==t},Un.eq=Ua,Un.escape=function(e){return(e=ys(e))&&Q.test(e)?e.replace(K,an):e},Un.escapeRegExp=function(e){return(e=ys(e))&&oe.test(e)?e.replace(ie,"\\$&"):e},Un.every=function(e,t,n){var r=Va(e)?At:pr;return n&&xo(e,t,n)&&(t=i),r(e,lo(t,3))},Un.find=ga,Un.findIndex=qo,Un.findKey=function(e,t){return Bt(e,lo(t,3),xr)},Un.findLast=ba,Un.findLastIndex=Vo,Un.findLastKey=function(e,t){return Bt(e,lo(t,3),wr)},Un.floor=xl,Un.forEach=ya,Un.forEachRight=va,Un.forIn=function(e,t){return null==e?e:yr(e,lo(t,3),Rs)},Un.forInRight=function(e,t){return null==e?e:vr(e,lo(t,3),Rs)},Un.forOwn=function(e,t){return e&&xr(e,lo(t,3))},Un.forOwnRight=function(e,t){return e&&wr(e,lo(t,3))},Un.get=Cs,Un.gt=Ba,Un.gte=Wa,Un.has=function(e,t){return null!=e&&go(e,t,jr)},Un.hasIn=js,Un.head=$o,Un.identity=rl,Un.includes=function(e,t,n,r){e=$a(e)?e:Us(e),n=n&&!r?ps(n):0;var i=e.length;return n<0&&(n=Gt(i+n,0)),ss(e)?n<=i&&e.indexOf(t,n)>-1:!!i&&qt(e,t,n)>-1},Un.indexOf=function(e,t,n){var r=null==e?0:e.length;if(!r)return-1;var i=null==n?0:ps(n);return i<0&&(i=Gt(r+i,0)),qt(e,t,i)},Un.inRange=function(e,t,n){return t=hs(t),n===i?(n=t,t=0):n=hs(n),function(e,t,n){return e>=vn(t,n)&&e=-9007199254740991&&e<=p},Un.isSet=as,Un.isString=ss,Un.isSymbol=ls,Un.isTypedArray=cs,Un.isUndefined=function(e){return e===i},Un.isWeakMap=function(e){return ts(e)&&mo(e)==P},Un.isWeakSet=function(e){return ts(e)&&"[object WeakSet]"==Er(e)},Un.join=function(e,t){return null==e?"":xt.call(e,t)},Un.kebabCase=Vs,Un.last=Xo,Un.lastIndexOf=function(e,t,n){var r=null==e?0:e.length;if(!r)return-1;var o=r;return n!==i&&(o=(o=ps(n))<0?Gt(r+o,0):vn(o,r-1)),t===t?function(e,t,n){for(var r=n+1;r--;)if(e[r]===t)return r;return r}(e,t,o):Wt(e,Ht,o,!0)},Un.lowerCase=Hs,Un.lowerFirst=$s,Un.lt=us,Un.lte=fs,Un.max=function(e){return e&&e.length?mr(e,rl,Cr):i},Un.maxBy=function(e,t){return e&&e.length?mr(e,lo(t,2),Cr):i},Un.mean=function(e){return $t(e,rl)},Un.meanBy=function(e,t){return $t(e,lo(t,2))},Un.min=function(e){return e&&e.length?mr(e,rl,Fr):i},Un.minBy=function(e,t){return e&&e.length?mr(e,lo(t,2),Fr):i},Un.stubArray=ml,Un.stubFalse=gl,Un.stubObject=function(){return{}},Un.stubString=function(){return""},Un.stubTrue=function(){return!0},Un.multiply=wl,Un.nth=function(e,t){return e&&e.length?qr(e,ps(t)):i},Un.noConflict=function(){return mt._===this&&(mt._=Ue),this},Un.noop=ll,Un.now=Ca,Un.pad=function(e,t,n){e=ys(e);var r=(t=ps(t))?pn(e):0;if(!t||r>=t)return e;var i=(t-r)/2;return Vi(pt(i),n)+e+Vi(ht(i),n)},Un.padEnd=function(e,t,n){e=ys(e);var r=(t=ps(t))?pn(e):0;return t&&rt){var r=e;e=t,t=r}if(n||e%1||t%1){var o=_n();return vn(e+o*(t-e+ft("1e-"+((o+"").length-1))),t)}return Gr(e,t)},Un.reduce=function(e,t,n){var r=Va(e)?It:Kt,i=arguments.length<3;return r(e,lo(t,4),n,i,dr)},Un.reduceRight=function(e,t,n){var r=Va(e)?Ft:Kt,i=arguments.length<3;return r(e,lo(t,4),n,i,hr)},Un.repeat=function(e,t,n){return t=(n?xo(e,t,n):t===i)?1:ps(t),Kr(ys(e),t)},Un.replace=function(){var e=arguments,t=ys(e[0]);return e.length<3?t:t.replace(e[1],e[2])},Un.result=function(e,t,n){var r=-1,o=(t=vi(t,e)).length;for(o||(o=1,e=i);++rp)return[];var n=g,r=vn(e,g);t=lo(t),e-=g;for(var i=Qt(r,t);++n=a)return e;var l=n-pn(r);if(l<1)return r;var c=s?wi(s,0,l).join(""):e.slice(0,l);if(o===i)return c+r;if(s&&(l+=c.length-l),os(o)){if(e.slice(l).search(o)){var u,f=c;for(o.global||(o=je(o.source,ys(me.exec(o))+"g")),o.lastIndex=0;u=o.exec(f);)var d=u.index;c=c.slice(0,d===i?l:d)}}else if(e.indexOf(ci(o),l)!=l){var h=c.lastIndexOf(o);h>-1&&(c=c.slice(0,h))}return c+r},Un.unescape=function(e){return(e=ys(e))&&X.test(e)?e.replace(G,bn):e},Un.uniqueId=function(e){var t=++Le;return ys(e)+t},Un.upperCase=Ks,Un.upperFirst=Xs,Un.each=ya,Un.eachRight=va,Un.first=$o,sl(Un,function(){var e={};return xr(Un,(function(t,n){ze.call(Un.prototype,n)||(e[n]=t)})),e}(),{chain:!1}),Un.VERSION="4.17.21",Ot(["bind","bindKey","curry","curryRight","partial","partialRight"],(function(e){Un[e].placeholder=Un})),Ot(["drop","take"],(function(e,t){Vn.prototype[e]=function(n){n=n===i?1:Gt(ps(n),0);var r=this.__filtered__&&!t?new Vn(this):this.clone();return r.__filtered__?r.__takeCount__=vn(n,r.__takeCount__):r.__views__.push({size:vn(n,g),type:e+(r.__dir__<0?"Right":"")}),r},Vn.prototype[e+"Right"]=function(t){return this.reverse()[e](t).reverse()}})),Ot(["filter","map","takeWhile"],(function(e,t){var n=t+1,r=1==n||3==n;Vn.prototype[e]=function(e){var t=this.clone();return t.__iteratees__.push({iteratee:lo(e,3),type:n}),t.__filtered__=t.__filtered__||r,t}})),Ot(["head","last"],(function(e,t){var n="take"+(t?"Right":"");Vn.prototype[e]=function(){return this[n](1).value()[0]}})),Ot(["initial","tail"],(function(e,t){var n="drop"+(t?"":"Right");Vn.prototype[e]=function(){return this.__filtered__?new Vn(this):this[n](1)}})),Vn.prototype.compact=function(){return this.filter(rl)},Vn.prototype.find=function(e){return this.filter(e).head()},Vn.prototype.findLast=function(e){return this.reverse().find(e)},Vn.prototype.invokeMap=Xr((function(e,t){return"function"==typeof e?new Vn(this):this.map((function(n){return Tr(n,e,t)}))})),Vn.prototype.reject=function(e){return this.filter(za(lo(e)))},Vn.prototype.slice=function(e,t){e=ps(e);var n=this;return n.__filtered__&&(e>0||t<0)?new Vn(n):(e<0?n=n.takeRight(-e):e&&(n=n.drop(e)),t!==i&&(n=(t=ps(t))<0?n.dropRight(-t):n.take(t-e)),n)},Vn.prototype.takeRightWhile=function(e){return this.reverse().takeWhile(e).reverse()},Vn.prototype.toArray=function(){return this.take(g)},xr(Vn.prototype,(function(e,t){var n=/^(?:filter|find|map|reject)|While$/.test(t),r=/^(?:head|last)$/.test(t),o=Un[r?"take"+("last"==t?"Right":""):t],a=r||/^find/.test(t);o&&(Un.prototype[t]=function(){var t=this.__wrapped__,s=r?[1]:arguments,l=t instanceof Vn,c=s[0],u=l||Va(t),f=function(e){var t=o.apply(Un,Lt([e],s));return r&&d?t[0]:t};u&&n&&"function"==typeof c&&1!=c.length&&(l=u=!1);var d=this.__chain__,h=!!this.__actions__.length,p=a&&!d,m=l&&!h;if(!a&&u){t=m?t:new Vn(this);var g=e.apply(t,s);return g.__actions__.push({func:ha,args:[f],thisArg:i}),new qn(g,d)}return p&&m?e.apply(this,s):(g=this.thru(f),p?r?g.value()[0]:g.value():g)})})),Ot(["pop","push","shift","sort","splice","unshift"],(function(e){var t=Te[e],n=/^(?:push|sort|unshift)$/.test(e)?"tap":"thru",r=/^(?:pop|shift)$/.test(e);Un.prototype[e]=function(){var e=arguments;if(r&&!this.__chain__){var i=this.value();return t.apply(Va(i)?i:[],e)}return this[n]((function(n){return t.apply(Va(n)?n:[],e)}))}})),xr(Vn.prototype,(function(e,t){var n=Un[t];if(n){var r=n.name+"";ze.call(An,r)||(An[r]=[]),An[r].push({name:t,func:n})}})),An[Ui(i,2).name]=[{name:"wrapper",func:i}],Vn.prototype.clone=function(){var e=new Vn(this.__wrapped__);return e.__actions__=Oi(this.__actions__),e.__dir__=this.__dir__,e.__filtered__=this.__filtered__,e.__iteratees__=Oi(this.__iteratees__),e.__takeCount__=this.__takeCount__,e.__views__=Oi(this.__views__),e},Vn.prototype.reverse=function(){if(this.__filtered__){var e=new Vn(this);e.__dir__=-1,e.__filtered__=!0}else(e=this.clone()).__dir__*=-1;return e},Vn.prototype.value=function(){var e=this.__wrapped__.value(),t=this.__dir__,n=Va(e),r=t<0,i=n?e.length:0,o=function(e,t,n){var r=-1,i=n.length;for(;++r=this.__values__.length;return{done:e,value:e?i:this.__values__[this.__index__++]}},Un.prototype.plant=function(e){for(var t,n=this;n instanceof Wn;){var r=Do(n);r.__index__=0,r.__values__=i,t?o.__wrapped__=r:t=r;var o=r;n=n.__wrapped__}return o.__wrapped__=e,t},Un.prototype.reverse=function(){var e=this.__wrapped__;if(e instanceof Vn){var t=e;return this.__actions__.length&&(t=new Vn(this)),(t=t.reverse()).__actions__.push({func:ha,args:[ea],thisArg:i}),new qn(t,this.__chain__)}return this.thru(ea)},Un.prototype.toJSON=Un.prototype.valueOf=Un.prototype.value=function(){return pi(this.__wrapped__,this.__actions__)},Un.prototype.first=Un.prototype.head,Qe&&(Un.prototype[Qe]=function(){return this}),Un}();mt._=yn,(r=function(){return yn}.call(t,n,t,e))===i||(e.exports=r)}.call(this)},5797:(e,t,n)=>{var r=n(4816);function i(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError("Expected a function");var n=function(){var r=arguments,i=t?t.apply(this,r):r[0],o=n.cache;if(o.has(i))return o.get(i);var a=e.apply(this,r);return n.cache=o.set(i,a)||o,a};return n.cache=new(i.Cache||r),n}i.Cache=r,e.exports=i},4677:(e,t,n)=>{var r=n(3253),i=n(4570)((function(e,t,n){r(e,t,n)}));e.exports=i},5713:e=>{e.exports=function(){}},2616:(e,t,n)=>{var r=n(4008),i=n(5857)((function(e,t){return null==e?{}:r(e,t)}));e.exports=i},3932:(e,t,n)=>{var r=n(396),i=n(2866),o=n(2597),a=n(914);e.exports=function(e){return o(e)?r(a(e)):i(e)}},9613:(e,t,n)=>{var r=n(9261);e.exports=function(e,t,n){return null==e?e:r(e,t,n)}},7424:(e,t,n)=>{var r=n(755),i=n(2536),o=n(5647),a=n(929),s=o((function(e,t){if(null==e)return[];var n=t.length;return n>1&&a(e,t[0],t[1])?t=[]:n>2&&a(t[0],t[1],t[2])&&(t=[t[0]]),i(e,r(t,1),[])}));e.exports=s},7828:e=>{e.exports=function(){return[]}},14:e=>{e.exports=function(){return!1}},1609:(e,t,n)=>{var r=n(6614),i=n(474);e.exports=function(e){return r(e,i(e))}},1069:(e,t,n)=>{var r=n(8541);e.exports=function(e){return null==e?"":r(e)}},9376:(e,t,n)=>{var r=n(4416);e.exports=function(e){return e&&e.length?r(e):[]}},977:(e,t,n)=>{var r=n(9096),i=n(4416);e.exports=function(e,t){return e&&e.length?i(e,r(t,2)):[]}},6757:(e,t,n)=>{var r=n(8746),i=n(5647),o=n(6272),a=i((function(e,t){return o(e)?r(e,t):[]}));e.exports=a},2599:e=>{e.exports=function e(t,n,r){function i(a,s){if(!n[a]){if(!t[a]){if(o)return o(a,!0);throw new Error("Cannot find module '"+a+"'")}s=n[a]={exports:{}},t[a][0].call(s.exports,(function(e){return i(t[a][1][e]||e)}),s,s.exports,e,t,n,r)}return n[a].exports}for(var o=void 0,a=0;a>16),l((65280&r)>>8),l(255&r);return 2==i?l(255&(r=c(e.charAt(n))<<2|c(e.charAt(n+1))>>4)):1==i&&(l((r=c(e.charAt(n))<<10|c(e.charAt(n+1))<<4|c(e.charAt(n+2))>>2)>>8&255),l(255&r)),o},e.fromByteArray=function(e){var t,n,r,i,o=e.length%3,a="";function s(e){return"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e)}for(t=0,r=e.length-o;t>18&63)+s(i>>12&63)+s(i>>6&63)+s(63&i);switch(o){case 1:a=(a+=s((n=e[e.length-1])>>2))+s(n<<4&63)+"==";break;case 2:a=(a=(a+=s((n=(e[e.length-2]<<8)+e[e.length-1])>>10))+s(n>>4&63))+s(n<<2&63)+"="}return a}}(void 0===n?this.base64js={}:n)}).call(this,e("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},e("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/gulp-browserify/node_modules/base64-js/lib/b64.js","/node_modules/gulp-browserify/node_modules/base64-js/lib")},{buffer:3,lYpoI2:11}],3:[function(e,t,n){(function(t,r,i,o,a,s,l,c,u){var f=e("base64-js"),d=e("ieee754");function i(e,t,n){if(!(this instanceof i))return new i(e,t,n);var r,o,a,s,l=typeof e;if("base64"===t&&"string"==l)for(e=(s=e).trim?s.trim():s.replace(/^\s+|\s+$/g,"");e.length%4!=0;)e+="=";if("number"==l)r=T(e);else if("string"==l)r=i.byteLength(e,t);else{if("object"!=l)throw new Error("First argument needs to be a number, array or string.");r=T(e.length)}if(i._useTypedArrays?o=i._augment(new Uint8Array(r)):((o=this).length=r,o._isBuffer=!0),i._useTypedArrays&&"number"==typeof e.byteLength)o._set(e);else if(A(s=e)||i.isBuffer(s)||s&&"object"==typeof s&&"number"==typeof s.length)for(a=0;a>8,n%=256,r.push(n),r.push(t);return r}(t),e,n,r)}function m(e,t,n){var r="";n=Math.min(e.length,n);for(var i=t;i>>0)):(t+1>>0),i}function y(e,t,n,r){if(r||(U("boolean"==typeof n,"missing or invalid endian"),U(null!=t,"missing offset"),U(t+1>>8*(r?o:1-o)}function k(e,t,n,r,i){if(i||(U(null!=t,"missing value"),U("boolean"==typeof r,"missing or invalid endian"),U(null!=n,"missing offset"),U(n+3>>8*(r?o:3-o)&255}function S(e,t,n,r,i){i||(U(null!=t,"missing value"),U("boolean"==typeof r,"missing or invalid endian"),U(null!=n,"missing offset"),U(n+1this.length&&(r=this.length);var o=(r=e.length-t=this.length))return this[e]},i.prototype.readUInt16LE=function(e,t){return g(this,e,!0,t)},i.prototype.readUInt16BE=function(e,t){return g(this,e,!1,t)},i.prototype.readUInt32LE=function(e,t){return b(this,e,!0,t)},i.prototype.readUInt32BE=function(e,t){return b(this,e,!1,t)},i.prototype.readInt8=function(e,t){if(t||(U(null!=e,"missing offset"),U(e=this.length))return 128&this[e]?-1*(255-this[e]+1):this[e]},i.prototype.readInt16LE=function(e,t){return y(this,e,!0,t)},i.prototype.readInt16BE=function(e,t){return y(this,e,!1,t)},i.prototype.readInt32LE=function(e,t){return v(this,e,!0,t)},i.prototype.readInt32BE=function(e,t){return v(this,e,!1,t)},i.prototype.readFloatLE=function(e,t){return x(this,e,!0,t)},i.prototype.readFloatBE=function(e,t){return x(this,e,!1,t)},i.prototype.readDoubleLE=function(e,t){return w(this,e,!0,t)},i.prototype.readDoubleBE=function(e,t){return w(this,e,!1,t)},i.prototype.writeUInt8=function(e,t,n){n||(U(null!=e,"missing value"),U(null!=t,"missing offset"),U(t=this.length||(this[t]=e)},i.prototype.writeUInt16LE=function(e,t,n){_(this,e,t,!0,n)},i.prototype.writeUInt16BE=function(e,t,n){_(this,e,t,!1,n)},i.prototype.writeUInt32LE=function(e,t,n){k(this,e,t,!0,n)},i.prototype.writeUInt32BE=function(e,t,n){k(this,e,t,!1,n)},i.prototype.writeInt8=function(e,t,n){n||(U(null!=e,"missing value"),U(null!=t,"missing offset"),U(t=this.length||(0<=e?this.writeUInt8(e,t,n):this.writeUInt8(255+e+1,t,n))},i.prototype.writeInt16LE=function(e,t,n){S(this,e,t,!0,n)},i.prototype.writeInt16BE=function(e,t,n){S(this,e,t,!1,n)},i.prototype.writeInt32LE=function(e,t,n){E(this,e,t,!0,n)},i.prototype.writeInt32BE=function(e,t,n){E(this,e,t,!1,n)},i.prototype.writeFloatLE=function(e,t,n){C(this,e,t,!0,n)},i.prototype.writeFloatBE=function(e,t,n){C(this,e,t,!1,n)},i.prototype.writeDoubleLE=function(e,t,n){j(this,e,t,!0,n)},i.prototype.writeDoubleBE=function(e,t,n){j(this,e,t,!1,n)},i.prototype.fill=function(e,t,n){if(t=t||0,n=n||this.length,U("number"==typeof(e="string"==typeof(e=e||0)?e.charCodeAt(0):e)&&!isNaN(e),"value is not a number"),U(t<=n,"end < start"),n!==t&&0!==this.length){U(0<=t&&t"},i.prototype.toArrayBuffer=function(){if("undefined"==typeof Uint8Array)throw new Error("Buffer.toArrayBuffer not supported in this browser");if(i._useTypedArrays)return new i(this).buffer;for(var e=new Uint8Array(this.length),t=0,n=e.length;t=t.length||i>=e.length);i++)t[i+n]=e[i];return i}function L(e){try{return decodeURIComponent(e)}catch(e){return String.fromCharCode(65533)}}function I(e,t){U("number"==typeof e,"cannot write a non-number as a number"),U(0<=e,"specified a negative value for writing an unsigned value"),U(e<=t,"value is larger than maximum value for type"),U(Math.floor(e)===e,"value has a fractional component")}function F(e,t,n){U("number"==typeof e,"cannot write a non-number as a number"),U(e<=t,"value larger than maximum allowed value"),U(n<=e,"value smaller than minimum allowed value"),U(Math.floor(e)===e,"value has a fractional component")}function D(e,t,n){U("number"==typeof e,"cannot write a non-number as a number"),U(e<=t,"value larger than maximum allowed value"),U(n<=e,"value smaller than minimum allowed value")}function U(e,t){if(!e)throw new Error(t||"Failed assertion")}i._augment=function(e){return e._isBuffer=!0,e._get=e.get,e._set=e.set,e.get=M.get,e.set=M.set,e.write=M.write,e.toString=M.toString,e.toLocaleString=M.toString,e.toJSON=M.toJSON,e.copy=M.copy,e.slice=M.slice,e.readUInt8=M.readUInt8,e.readUInt16LE=M.readUInt16LE,e.readUInt16BE=M.readUInt16BE,e.readUInt32LE=M.readUInt32LE,e.readUInt32BE=M.readUInt32BE,e.readInt8=M.readInt8,e.readInt16LE=M.readInt16LE,e.readInt16BE=M.readInt16BE,e.readInt32LE=M.readInt32LE,e.readInt32BE=M.readInt32BE,e.readFloatLE=M.readFloatLE,e.readFloatBE=M.readFloatBE,e.readDoubleLE=M.readDoubleLE,e.readDoubleBE=M.readDoubleBE,e.writeUInt8=M.writeUInt8,e.writeUInt16LE=M.writeUInt16LE,e.writeUInt16BE=M.writeUInt16BE,e.writeUInt32LE=M.writeUInt32LE,e.writeUInt32BE=M.writeUInt32BE,e.writeInt8=M.writeInt8,e.writeInt16LE=M.writeInt16LE,e.writeInt16BE=M.writeInt16BE,e.writeInt32LE=M.writeInt32LE,e.writeInt32BE=M.writeInt32BE,e.writeFloatLE=M.writeFloatLE,e.writeFloatBE=M.writeFloatBE,e.writeDoubleLE=M.writeDoubleLE,e.writeDoubleBE=M.writeDoubleBE,e.fill=M.fill,e.inspect=M.inspect,e.toArrayBuffer=M.toArrayBuffer,e}}).call(this,e("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},e("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/gulp-browserify/node_modules/buffer/index.js","/node_modules/gulp-browserify/node_modules/buffer")},{"base64-js":2,buffer:3,ieee754:10,lYpoI2:11}],4:[function(e,t,n){(function(n,r,i,o,a,s,l,c,u){i=e("buffer").Buffer;var f=4,d=new i(f);d.fill(0),t.exports={hash:function(e,t,n,r){for(var o=t(function(e,t){e.length%f!=0&&(n=e.length+(f-e.length%f),e=i.concat([e,d],n));for(var n,r=[],o=t?e.readInt32BE:e.readInt32LE,a=0;am?t=e(t):t.length>5]|=128<>>9<<4)]=t;for(var n=1732584193,r=-271733879,i=-1732584194,o=271733878,a=0;a>>32-i,n)}function p(e,t,n,r,i,o,a){return h(t&n|~t&r,e,t,i,o,a)}function m(e,t,n,r,i,o,a){return h(t&r|n&~r,e,t,i,o,a)}function g(e,t,n,r,i,o,a){return h(t^n^r,e,t,i,o,a)}function b(e,t,n,r,i,o,a){return h(n^(t|~r),e,t,i,o,a)}function y(e,t){var n=(65535&e)+(65535&t);return(e>>16)+(t>>16)+(n>>16)<<16|65535&n}t.exports=function(e){return f.hash(e,d,16)}}).call(this,e("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},e("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/gulp-browserify/node_modules/crypto-browserify/md5.js","/node_modules/gulp-browserify/node_modules/crypto-browserify")},{"./helpers":4,buffer:3,lYpoI2:11}],7:[function(e,t,n){(function(e,n,r,i,o,a,s,l,c){var u;t.exports=u||function(e){for(var t,n=new Array(e),r=0;r>>((3&r)<<3)&255;return n}}).call(this,e("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},e("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/gulp-browserify/node_modules/crypto-browserify/rng.js","/node_modules/gulp-browserify/node_modules/crypto-browserify")},{buffer:3,lYpoI2:11}],8:[function(e,t,n){(function(n,r,i,o,a,s,l,c,u){var f=e("./helpers");function d(e,t){e[t>>5]|=128<<24-t%32,e[15+(t+64>>9<<4)]=t;for(var n,r,i,o=Array(80),a=1732584193,s=-271733879,l=-1732584194,c=271733878,u=-1009589776,f=0;f>16)+(t>>16)+(n>>16)<<16|65535&n}function p(e,t){return e<>>32-t}t.exports=function(e){return f.hash(e,d,20,!0)}}).call(this,e("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},e("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/gulp-browserify/node_modules/crypto-browserify/sha.js","/node_modules/gulp-browserify/node_modules/crypto-browserify")},{"./helpers":4,buffer:3,lYpoI2:11}],9:[function(e,t,n){(function(n,r,i,o,a,s,l,c,u){function f(e,t){var n=(65535&e)+(65535&t);return(e>>16)+(t>>16)+(n>>16)<<16|65535&n}function d(e,t){var n,r=new Array(1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298),i=new Array(1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225),o=new Array(64);e[t>>5]|=128<<24-t%32,e[15+(t+64>>9<<4)]=t;for(var a,s,l=0;l>>t|e<<32-t},m=function(e,t){return e>>>t};t.exports=function(e){return h.hash(e,d,32,!0)}}).call(this,e("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},e("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/gulp-browserify/node_modules/crypto-browserify/sha256.js","/node_modules/gulp-browserify/node_modules/crypto-browserify")},{"./helpers":4,buffer:3,lYpoI2:11}],10:[function(e,t,n){(function(e,t,r,i,o,a,s,l,c){n.read=function(e,t,n,r,i){var o,a,s=8*i-r-1,l=(1<>1,u=-7,f=n?i-1:0,d=n?-1:1;for(i=e[t+f],f+=d,o=i&(1<<-u)-1,i>>=-u,u+=s;0>=-u,u+=r;0>1,f=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,d=r?0:o-1,h=r?1:-1;for(o=t<0||0===t&&1/t<0?1:0,t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,a=c):(a=Math.floor(Math.log(t)/Math.LN2),t*(r=Math.pow(2,-a))<1&&(a--,r*=2),2<=(t+=1<=a+u?f/r:f*Math.pow(2,1-u))*r&&(a++,r/=2),c<=a+u?(s=0,a=c):1<=a+u?(s=(t*r-1)*Math.pow(2,i),a+=u):(s=t*Math.pow(2,u-1)*Math.pow(2,i),a=0));8<=i;e[n+d]=255&s,d+=h,s/=256,i-=8);for(a=a<{"use strict";var r=n(3218);function i(){}function o(){}o.resetWarningCache=i,e.exports=function(){function e(e,t,n,i,o,a){if(a!==r){var s=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw s.name="Invariant Violation",s}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:o,resetWarningCache:i};return n.PropTypes=n,n}},5173:(e,t,n)=>{e.exports=n(1497)()},3218:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},8738:(e,t,n)=>{"use strict";var r,i=n(5043),o=(r=i)&&"object"===typeof r&&"default"in r?r.default:r,a=n(2751),s=new a,l=s.getBrowser(),c=s.getCPU(),u=s.getDevice(),f=s.getEngine(),d=s.getOS(),h=s.getUA(),p=function(e){return s.setUA(e)},m=function(e){if(e){var t=new a(e);return{UA:t,browser:t.getBrowser(),cpu:t.getCPU(),device:t.getDevice(),engine:t.getEngine(),os:t.getOS(),ua:t.getUA(),setUserAgent:function(e){return t.setUA(e)}}}console.error("No userAgent string was provided")},g=Object.freeze({ClientUAInstance:s,browser:l,cpu:c,device:u,engine:f,os:d,ua:h,setUa:p,parseUserAgent:m});function b(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function y(e){return y="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},y(e)}function v(e,t){for(var n=0;n=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function E(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function C(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,i,o=[],a=!0,s=!1;try{for(n=n.call(e);!(a=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);a=!0);}catch(l){s=!0,i=l}finally{try{a||null==n.return||n.return()}finally{if(s)throw i}}return o}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return j(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return j(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function j(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n1&&void 0!==arguments[1]?arguments[1]:"none")},D=function(){return!("undefined"===typeof window||!window.navigator&&!navigator)&&(window.navigator||navigator)},U=function(e){var t=D();return t&&t.platform&&(-1!==t.platform.indexOf(e)||"MacIntel"===t.platform&&t.maxTouchPoints>1&&!window.MSStream)},B=function(e,t,n,r){return function(e){for(var t=1;t1)&&!window.MSStream},Ee=function(){return U("iPad")},Ce=function(){return U("iPhone")},je=function(){return U("iPod")},Me=function(e){return F(e)};function Oe(e){var t=e||g,n=t.device,r=t.browser,i=t.os,o=t.engine,a=t.ua;return{isSmartTV:H(n),isConsole:G(n),isWearable:Y(n),isEmbedded:K(n),isMobileSafari:de(r)||Ee(),isChromium:le(r),isMobile:V(n)||Ee(),isMobileOnly:W(n),isTablet:q(n)||Ee(),isBrowser:$(n),isDesktop:$(n),isAndroid:Z(i),isWinPhone:ne(i),isIOS:re(i)||Ee(),isChrome:ae(r),isFirefox:se(r),isSafari:fe(r),isOpera:he(r),isIE:pe(r),osVersion:ie(i),osName:oe(i),fullBrowserVersion:be(r),browserVersion:ye(r),browserName:ve(r),mobileVendor:X(n),mobileModel:Q(n),engineName:xe(o),engineVersion:we(o),getUA:Me(a),isEdge:ce(r)||ke(a),isYandex:ue(r),deviceType:J(n),isIOS13:Se(),isIPad13:Ee(),isIPhone13:Ce(),isIPod13:je(),isElectron:_e(),isEdgeChromium:ke(a),isLegacyEdge:ce(r)&&!ke(a),isWindows:ee(i),isMacOs:te(i),isMIUI:me(r),isSamsungBrowser:ge(r)}}var Te=H(u),Ae=G(u),Re=Y(u),Pe=K(u),Ne=de(l)||Ee(),ze=le(l),Le=V(u)||Ee(),Ie=W(u),Fe=q(u)||Ee(),De=$(u),Ue=$(u),Be=Z(d),We=ne(d),qe=re(d)||Ee(),Ve=ae(l),He=se(l),$e=fe(l),Ye=he(l),Ge=pe(l),Ke=ie(d),Xe=oe(d),Qe=be(l),Je=ye(l),Ze=ve(l),et=X(u),tt=Q(u),nt=xe(f),rt=we(f),it=Me(h),ot=ce(l)||ke(h),at=ue(l),st=J(u),lt=Se(),ct=Ee(),ut=Ce(),ft=je(),dt=_e(),ht=ke(h),pt=ce(l)&&!ke(h),mt=ee(d),gt=te(d),bt=me(l),yt=ge(l);function vt(e){var t=e||window.navigator.userAgent;return m(t)}t.Fr=Le},2730:(e,t,n)=>{"use strict";var r=n(5043),i=n(8853);function o(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n