From 3efd6ee8e6802d44b52c06d221d1715b2cc95d9d Mon Sep 17 00:00:00 2001 From: armerian Date: Fri, 22 Nov 2024 05:57:43 +0000 Subject: [PATCH] deploy: 42f88bc354e723206a8bb71866ad296aa5f467be --- ...e5d14a2df77495d60f3c-85b6fdd84273564b38b8.js | 4 ++-- ...4a2df77495d60f3c-85b6fdd84273564b38b8.js.map | 2 +- 404.html | 4 ++-- 404/index.html | 4 ++-- ...317ce8ff5fa304709d5c-4aec07cea9dddc0e8966.js | 6 +++--- ...04709d5c-4aec07cea9dddc0e8966.js.LICENSE.txt | 0 ...e8ff5fa304709d5c-4aec07cea9dddc0e8966.js.map | 2 +- 9780-3ba259c3452652f753b4.js | 1 + 9780-a8e9022df1e7a3e818d1.js | 1 - ...cd4366feb3.js => app-18050993a9467eb68635.js | 6 +++--- ...t => app-18050993a9467eb68635.js.LICENSE.txt | 0 app-18050993a9467eb68635.js.map | 1 + app-615e018ea0cd4366feb3.js.map | 1 - chunk-map.json | 2 +- community/articles/index.html | 6 +++--- community/code-of-conduct/index.html | 4 ++-- community/design-resources/index.html | 4 ++-- community/developer-guide/index.html | 4 ++-- community/index.html | 4 ++-- ...514-newsletter-0-mdx-f36886b8459587aa84ea.js | 4 ++-- ...newsletter-0-mdx-f36886b8459587aa84ea.js.map | 2 +- ...703-newsletter-1-mdx-6e6cc5a2fa5a1944ed2f.js | 4 ++-- ...newsletter-1-mdx-6e6cc5a2fa5a1944ed2f.js.map | 2 +- ...202-newsletter-2-mdx-e968092bfdd5c8d0a2ef.js | 4 ++-- ...newsletter-2-mdx-e968092bfdd5c8d0a2ef.js.map | 2 +- ...029-newsletter-3-mdx-8eec135d6786bdc87c52.js | 4 ++-- ...newsletter-3-mdx-8eec135d6786bdc87c52.js.map | 2 +- ...714-newsletter-4-mdx-cc916af0a0adf47a1f7b.js | 4 ++-- ...newsletter-4-mdx-cc916af0a0adf47a1f7b.js.map | 2 +- ...426-newsletter-5-mdx-9db03b409d4bc7390b4b.js | 4 ++-- ...newsletter-5-mdx-9db03b409d4bc7390b4b.js.map | 2 +- ...208-newsletter-6-mdx-a3d1e5862a50af03ac2f.js | 4 ++-- ...newsletter-6-mdx-a3d1e5862a50af03ac2f.js.map | 2 +- ...-pages-news-list-tsx-e6486fa8c8fdf0d4639e.js | 4 ++-- ...es-news-list-tsx-e6486fa8c8fdf0d4639e.js.map | 2 +- ...ges-news-sign-up-mdx-456e6c66675501c2fa6f.js | 4 ++-- ...news-sign-up-mdx-456e6c66675501c2fa6f.js.map | 2 +- ...ase-notes-0-80-0-mdx-3bab5af82400fbab2392.js | 4 ++-- ...notes-0-80-0-mdx-3bab5af82400fbab2392.js.map | 2 +- ...ase-notes-0-81-0-mdx-62460e5eecc351154290.js | 4 ++-- ...notes-0-81-0-mdx-62460e5eecc351154290.js.map | 2 +- ...ase-notes-0-81-1-mdx-612de28adb01b3ea9f23.js | 4 ++-- ...notes-0-81-1-mdx-612de28adb01b3ea9f23.js.map | 2 +- ...ase-notes-0-82-0-mdx-24a82e6e4be6f3514cb1.js | 4 ++-- ...notes-0-82-0-mdx-24a82e6e4be6f3514cb1.js.map | 2 +- ...ase-notes-0-83-0-mdx-645222faa292d5712048.js | 4 ++-- ...notes-0-83-0-mdx-645222faa292d5712048.js.map | 2 +- ...ase-notes-0-84-0-mdx-412ca391b8efc4e92eb0.js | 4 ++-- ...notes-0-84-0-mdx-412ca391b8efc4e92eb0.js.map | 2 +- ...ase-notes-0-85-0-mdx-d1c6bf3412040cbab3c1.js | 4 ++-- ...notes-0-85-0-mdx-d1c6bf3412040cbab3c1.js.map | 2 +- ...ase-notes-0-86-0-mdx-483f882e67fb3094f255.js | 4 ++-- ...notes-0-86-0-mdx-483f882e67fb3094f255.js.map | 2 +- ...ase-notes-0-87-0-mdx-5130d767712392749f8a.js | 4 ++-- ...notes-0-87-0-mdx-5130d767712392749f8a.js.map | 2 +- ...ase-notes-0-88-0-mdx-1179ffe4c227eebda999.js | 4 ++-- ...notes-0-88-0-mdx-1179ffe4c227eebda999.js.map | 2 +- ...ase-notes-0-89-0-mdx-cb09995a2484dd2b9c86.js | 4 ++-- ...notes-0-89-0-mdx-cb09995a2484dd2b9c86.js.map | 2 +- ...ase-notes-0-89-1-mdx-0eb71009f4635478d6fa.js | 4 ++-- ...notes-0-89-1-mdx-0eb71009f4635478d6fa.js.map | 2 +- ...ase-notes-0-90-0-mdx-a66a9fbd3452cc56eaf4.js | 4 ++-- ...notes-0-90-0-mdx-a66a9fbd3452cc56eaf4.js.map | 2 +- ...ase-notes-0-90-1-mdx-34ad6798bdd5b7df28fc.js | 4 ++-- ...notes-0-90-1-mdx-34ad6798bdd5b7df28fc.js.map | 2 +- ...ase-notes-0-90-2-mdx-3d3cf5c4eaab0ec08dd0.js | 4 ++-- ...notes-0-90-2-mdx-3d3cf5c4eaab0ec08dd0.js.map | 2 +- ...ase-notes-0-90-3-mdx-7a7f9a315be14a6411e5.js | 4 ++-- ...notes-0-90-3-mdx-7a7f9a315be14a6411e5.js.map | 2 +- ...ase-notes-0-91-0-mdx-dc9df7215a625807d574.js | 4 ++-- ...notes-0-91-0-mdx-dc9df7215a625807d574.js.map | 2 +- ...ase-notes-0-92-0-mdx-f416d2d6e492987f9b19.js | 4 ++-- ...notes-0-92-0-mdx-f416d2d6e492987f9b19.js.map | 2 +- ...ase-notes-0-93-0-mdx-ff4c861529d75dd649ec.js | 4 ++-- ...notes-0-93-0-mdx-ff4c861529d75dd649ec.js.map | 2 +- ...ase-notes-0-94-0-mdx-ec5455d5af3dbd04748e.js | 4 ++-- ...notes-0-94-0-mdx-ec5455d5af3dbd04748e.js.map | 2 +- ...ase-notes-0-95-0-mdx-f2ee21c65ed9393c9c26.js | 4 ++-- ...notes-0-95-0-mdx-f2ee21c65ed9393c9c26.js.map | 2 +- ...ase-notes-0-96-0-mdx-dfae23c4c166c4a5b0e2.js | 4 ++-- ...notes-0-96-0-mdx-dfae23c4c166c4a5b0e2.js.map | 2 +- ...ase-notes-0-97-0-mdx-164c59fec4df51baa83e.js | 4 ++-- ...notes-0-97-0-mdx-164c59fec4df51baa83e.js.map | 2 +- ...ase-notes-0-98-0-mdx-4eca1f32c8b0b13df905.js | 4 ++-- ...notes-0-98-0-mdx-4eca1f32c8b0b13df905.js.map | 2 +- ...ase-notes-0-98-1-mdx-f6a9c58a2615bbac101b.js | 4 ++-- ...notes-0-98-1-mdx-f6a9c58a2615bbac101b.js.map | 2 +- ...ase-notes-0-98-2-mdx-b5181e196996073cf4dd.js | 4 ++-- ...notes-0-98-2-mdx-b5181e196996073cf4dd.js.map | 2 +- ...ase-notes-0-98-3-mdx-d486b6ec4527859998c7.js | 4 ++-- ...notes-0-98-3-mdx-d486b6ec4527859998c7.js.map | 2 +- ...ase-notes-0-98-4-mdx-afe528597c2b7d8cdc73.js | 4 ++-- ...notes-0-98-4-mdx-afe528597c2b7d8cdc73.js.map | 2 +- ...ase-notes-0-98-5-mdx-bd51851ce370361d70e9.js | 4 ++-- ...notes-0-98-5-mdx-bd51851ce370361d70e9.js.map | 2 +- ...ase-notes-0-98-6-mdx-1d7d2f27f0761f26e178.js | 4 ++-- ...notes-0-98-6-mdx-1d7d2f27f0761f26e178.js.map | 2 +- ...ase-notes-0-98-7-mdx-7af8fe58c84489f6d02b.js | 4 ++-- ...notes-0-98-7-mdx-7af8fe58c84489f6d02b.js.map | 2 +- ...ase-notes-0-99-0-mdx-c7d42397e8d5b65f09e5.js | 4 ++-- ...notes-0-99-0-mdx-c7d42397e8d5b65f09e5.js.map | 2 +- ...ase-notes-0-99-1-mdx-91b3ecb598722feb7d33.js | 4 ++-- ...notes-0-99-1-mdx-91b3ecb598722feb7d33.js.map | 2 +- ...ase-notes-0-99-2-mdx-7d37fc596ddbff0c0116.js | 4 ++-- ...notes-0-99-2-mdx-7d37fc596ddbff0c0116.js.map | 2 +- ...ase-notes-0-99-3-mdx-3f053cd33e56815e1f05.js | 4 ++-- ...notes-0-99-3-mdx-3f053cd33e56815e1f05.js.map | 2 +- ...ase-notes-0-99-4-mdx-54e31c001c8851fd34d2.js | 4 ++-- ...notes-0-99-4-mdx-54e31c001c8851fd34d2.js.map | 2 +- ...ase-notes-0-99-5-mdx-9da7c30768a34821fcec.js | 4 ++-- ...notes-0-99-5-mdx-9da7c30768a34821fcec.js.map | 2 +- ...ase-notes-0-99-6-mdx-b0ca8d35a532b5c10b0f.js | 4 ++-- ...notes-0-99-6-mdx-b0ca8d35a532b5c10b0f.js.map | 2 +- ...ase-notes-0-99-7-mdx-694260c404aa3c173830.js | 4 ++-- ...notes-0-99-7-mdx-694260c404aa3c173830.js.map | 2 +- ...ase-notes-0-99-8-mdx-594c57ebd054f7511711.js | 4 ++-- ...notes-0-99-8-mdx-594c57ebd054f7511711.js.map | 2 +- ...ase-notes-0-99-9-mdx-2d742c093740babfabd7.js | 4 ++-- ...notes-0-99-9-mdx-2d742c093740babfabd7.js.map | 2 +- ...ease-notes-1-0-0-mdx-0f49438e62f25005b58d.js | 4 ++-- ...-notes-1-0-0-mdx-0f49438e62f25005b58d.js.map | 2 +- ...ease-notes-1-1-0-mdx-0dc11d2355ce66f7cb8d.js | 4 ++-- ...-notes-1-1-0-mdx-0dc11d2355ce66f7cb8d.js.map | 2 +- ...ase-notes-1-10-0-mdx-e2f953d2b2191587771f.js | 4 ++-- ...notes-1-10-0-mdx-e2f953d2b2191587771f.js.map | 2 +- ...ase-notes-1-11-0-mdx-4b0767af94a77b245553.js | 4 ++-- ...notes-1-11-0-mdx-4b0767af94a77b245553.js.map | 2 +- ...ase-notes-1-12-0-mdx-36ec735c906d95376ed3.js | 4 ++-- ...notes-1-12-0-mdx-36ec735c906d95376ed3.js.map | 2 +- ...ase-notes-1-13-0-mdx-46023641d2d815fb6f9c.js | 4 ++-- ...notes-1-13-0-mdx-46023641d2d815fb6f9c.js.map | 2 +- ...ase-notes-1-13-1-mdx-93645040d5b581e095bd.js | 4 ++-- ...notes-1-13-1-mdx-93645040d5b581e095bd.js.map | 2 +- ...ase-notes-1-13-2-mdx-d880a5dc8da6bdaeeae2.js | 4 ++-- ...notes-1-13-2-mdx-d880a5dc8da6bdaeeae2.js.map | 2 +- ...ase-notes-1-13-3-mdx-62f4141e9258cbc8f9a2.js | 4 ++-- ...notes-1-13-3-mdx-62f4141e9258cbc8f9a2.js.map | 2 +- ...ase-notes-1-13-4-mdx-3a251c801fc96eb00f20.js | 4 ++-- ...notes-1-13-4-mdx-3a251c801fc96eb00f20.js.map | 2 +- ...ase-notes-1-14-0-mdx-66adb6a02c166332ce7f.js | 4 ++-- ...notes-1-14-0-mdx-66adb6a02c166332ce7f.js.map | 2 +- ...ase-notes-1-14-1-mdx-b5e8c009009c5f796e07.js | 4 ++-- ...notes-1-14-1-mdx-b5e8c009009c5f796e07.js.map | 2 +- ...ase-notes-1-15-0-mdx-6b31f762374a457bfe89.js | 4 ++-- ...notes-1-15-0-mdx-6b31f762374a457bfe89.js.map | 2 +- ...ase-notes-1-16-0-mdx-20baee11aff69773ab70.js | 4 ++-- ...notes-1-16-0-mdx-20baee11aff69773ab70.js.map | 2 +- ...ase-notes-1-16-1-mdx-0c1b757d82655a1d90eb.js | 4 ++-- ...notes-1-16-1-mdx-0c1b757d82655a1d90eb.js.map | 2 +- ...ase-notes-1-16-2-mdx-3fac52380c38f8d5a5e9.js | 4 ++-- ...notes-1-16-2-mdx-3fac52380c38f8d5a5e9.js.map | 2 +- ...ase-notes-1-17-0-mdx-6d2dcbc572d34d056bd1.js | 4 ++-- ...notes-1-17-0-mdx-6d2dcbc572d34d056bd1.js.map | 2 +- ...ase-notes-1-17-1-mdx-9ad05eed54def3ccb09c.js | 4 ++-- ...notes-1-17-1-mdx-9ad05eed54def3ccb09c.js.map | 2 +- ...ase-notes-1-17-2-mdx-47b12c91cf6a6180b168.js | 4 ++-- ...notes-1-17-2-mdx-47b12c91cf6a6180b168.js.map | 2 +- ...ase-notes-1-18-0-mdx-53b62216c2221323bb93.js | 4 ++-- ...notes-1-18-0-mdx-53b62216c2221323bb93.js.map | 2 +- ...ase-notes-1-19-0-mdx-f019cf9a34f441b7f94d.js | 4 ++-- ...notes-1-19-0-mdx-f019cf9a34f441b7f94d.js.map | 2 +- ...ease-notes-1-2-0-mdx-980bc3928d781822c2f2.js | 4 ++-- ...-notes-1-2-0-mdx-980bc3928d781822c2f2.js.map | 2 +- ...ase-notes-1-20-0-mdx-b77060655aefd4afe7de.js | 4 ++-- ...notes-1-20-0-mdx-b77060655aefd4afe7de.js.map | 2 +- ...ase-notes-1-20-1-mdx-18c67eeaa080d6fc948e.js | 4 ++-- ...notes-1-20-1-mdx-18c67eeaa080d6fc948e.js.map | 2 +- ...ase-notes-1-20-2-mdx-fb1fbbb25dd0d621848c.js | 4 ++-- ...notes-1-20-2-mdx-fb1fbbb25dd0d621848c.js.map | 2 +- ...ase-notes-1-20-3-mdx-5bbc3f456c5194738c4f.js | 4 ++-- ...notes-1-20-3-mdx-5bbc3f456c5194738c4f.js.map | 2 +- ...ase-notes-1-21-0-mdx-8c430926f52e13ca1014.js | 4 ++-- ...notes-1-21-0-mdx-8c430926f52e13ca1014.js.map | 2 +- ...ase-notes-1-22-0-mdx-33c6e4aa7ffdcf0d0b1e.js | 4 ++-- ...notes-1-22-0-mdx-33c6e4aa7ffdcf0d0b1e.js.map | 2 +- ...ase-notes-1-22-1-mdx-f37ba43ed1416446c366.js | 4 ++-- ...notes-1-22-1-mdx-f37ba43ed1416446c366.js.map | 2 +- ...ase-notes-1-23-0-mdx-6093e9de7d41fafe6230.js | 4 ++-- ...notes-1-23-0-mdx-6093e9de7d41fafe6230.js.map | 2 +- ...ase-notes-1-23-1-mdx-afebe24d16803b2c0e65.js | 4 ++-- ...notes-1-23-1-mdx-afebe24d16803b2c0e65.js.map | 2 +- ...ase-notes-1-24-0-mdx-be0370991f98b14abd61.js | 4 ++-- ...notes-1-24-0-mdx-be0370991f98b14abd61.js.map | 2 +- ...ase-notes-1-24-1-mdx-4cb6ca2eccc8d111a9c8.js | 4 ++-- ...notes-1-24-1-mdx-4cb6ca2eccc8d111a9c8.js.map | 2 +- ...ase-notes-1-24-2-mdx-80a4cdfb7d8f0be18a5e.js | 4 ++-- ...notes-1-24-2-mdx-80a4cdfb7d8f0be18a5e.js.map | 2 +- ...ase-notes-1-24-3-mdx-1cbdc7f1c2d005a2df67.js | 4 ++-- ...notes-1-24-3-mdx-1cbdc7f1c2d005a2df67.js.map | 2 +- ...ase-notes-1-25-0-mdx-73d3ecbea6af59ce0959.js | 4 ++-- ...notes-1-25-0-mdx-73d3ecbea6af59ce0959.js.map | 2 +- ...ase-notes-1-25-1-mdx-3963bb93a98db4725d45.js | 4 ++-- ...notes-1-25-1-mdx-3963bb93a98db4725d45.js.map | 2 +- ...ase-notes-1-25-2-mdx-c76d3dcd42a5c163d973.js | 4 ++-- ...notes-1-25-2-mdx-c76d3dcd42a5c163d973.js.map | 2 +- ...ase-notes-1-26-0-mdx-cd2039779f473458b8ce.js | 4 ++-- ...notes-1-26-0-mdx-cd2039779f473458b8ce.js.map | 2 +- ...ase-notes-1-26-1-mdx-38e6b6b718d51ef79d35.js | 4 ++-- ...notes-1-26-1-mdx-38e6b6b718d51ef79d35.js.map | 2 +- ...ase-notes-1-26-2-mdx-447d035769879a4b08e9.js | 4 ++-- ...notes-1-26-2-mdx-447d035769879a4b08e9.js.map | 2 +- ...ase-notes-1-26-3-mdx-95f8e426fb8df84b1253.js | 4 ++-- ...notes-1-26-3-mdx-95f8e426fb8df84b1253.js.map | 2 +- ...ase-notes-1-26-4-mdx-096e01816989f144ab23.js | 4 ++-- ...notes-1-26-4-mdx-096e01816989f144ab23.js.map | 2 +- ...ase-notes-1-27-0-mdx-784f5a5797c6e4b5581b.js | 4 ++-- ...notes-1-27-0-mdx-784f5a5797c6e4b5581b.js.map | 2 +- ...ase-notes-1-27-1-mdx-811e1509a81723531f4b.js | 4 ++-- ...notes-1-27-1-mdx-811e1509a81723531f4b.js.map | 2 +- ...ase-notes-1-27-2-mdx-78801ae5d85f400afcde.js | 4 ++-- ...notes-1-27-2-mdx-78801ae5d85f400afcde.js.map | 2 +- ...ase-notes-1-27-3-mdx-f32d849c2200b9ddced8.js | 4 ++-- ...notes-1-27-3-mdx-f32d849c2200b9ddced8.js.map | 2 +- ...ase-notes-1-28-0-mdx-bf33e4e8e323cbbf92e1.js | 4 ++-- ...notes-1-28-0-mdx-bf33e4e8e323cbbf92e1.js.map | 2 +- ...ase-notes-1-28-1-mdx-3f158139be8c37d14487.js | 4 ++-- ...notes-1-28-1-mdx-3f158139be8c37d14487.js.map | 2 +- ...ase-notes-1-28-2-mdx-dfb01394ebf2da81dcc0.js | 4 ++-- ...notes-1-28-2-mdx-dfb01394ebf2da81dcc0.js.map | 2 +- ...ase-notes-1-28-3-mdx-882d3e2670facf8f4372.js | 4 ++-- ...notes-1-28-3-mdx-882d3e2670facf8f4372.js.map | 2 +- ...ase-notes-1-28-4-mdx-56a09248bf44e23b2b5a.js | 4 ++-- ...notes-1-28-4-mdx-56a09248bf44e23b2b5a.js.map | 2 +- ...ase-notes-1-29-0-mdx-d63fbf993b387cd5882e.js | 4 ++-- ...notes-1-29-0-mdx-d63fbf993b387cd5882e.js.map | 2 +- ...ase-notes-1-29-1-mdx-f39435ce251d4d52af10.js | 4 ++-- ...notes-1-29-1-mdx-f39435ce251d4d52af10.js.map | 2 +- ...ase-notes-1-29-2-mdx-699b879be21df0d4cfe2.js | 4 ++-- ...notes-1-29-2-mdx-699b879be21df0d4cfe2.js.map | 2 +- ...ase-notes-1-29-3-mdx-14fc0fbd86b719912911.js | 4 ++-- ...notes-1-29-3-mdx-14fc0fbd86b719912911.js.map | 2 +- ...ase-notes-1-29-4-mdx-bf70c3735d3c9ad3c0b9.js | 4 ++-- ...notes-1-29-4-mdx-bf70c3735d3c9ad3c0b9.js.map | 2 +- ...ease-notes-1-3-0-mdx-32a76a06b17f55bbe6fa.js | 4 ++-- ...-notes-1-3-0-mdx-32a76a06b17f55bbe6fa.js.map | 2 +- ...ase-notes-1-30-0-mdx-466f00da1ad4b199995f.js | 4 ++-- ...notes-1-30-0-mdx-466f00da1ad4b199995f.js.map | 2 +- ...ase-notes-1-30-1-mdx-aae335dd23fec0d9cb50.js | 4 ++-- ...notes-1-30-1-mdx-aae335dd23fec0d9cb50.js.map | 2 +- ...ase-notes-1-30-2-mdx-301079ab02bf3e6b7611.js | 2 ++ ...notes-1-30-2-mdx-301079ab02bf3e6b7611.js.map | 1 + ...ase-notes-1-31-0-mdx-01947af2ba35416a8eeb.js | 4 ++-- ...notes-1-31-0-mdx-01947af2ba35416a8eeb.js.map | 2 +- ...ase-notes-1-31-1-mdx-be36164f3d1dc1ce0d80.js | 2 ++ ...notes-1-31-1-mdx-be36164f3d1dc1ce0d80.js.map | 1 + ...ease-notes-1-4-0-mdx-d1d75018f189ac283442.js | 4 ++-- ...-notes-1-4-0-mdx-d1d75018f189ac283442.js.map | 2 +- ...ease-notes-1-5-0-mdx-53229ce851b9cabd7542.js | 4 ++-- ...-notes-1-5-0-mdx-53229ce851b9cabd7542.js.map | 2 +- ...ease-notes-1-6-0-mdx-e9178150bf1d180bab5a.js | 4 ++-- ...-notes-1-6-0-mdx-e9178150bf1d180bab5a.js.map | 2 +- ...ease-notes-1-7-0-mdx-650c2d73a5c9d514fa56.js | 4 ++-- ...-notes-1-7-0-mdx-650c2d73a5c9d514fa56.js.map | 2 +- ...ease-notes-1-7-1-mdx-17280222dfd706a5b265.js | 4 ++-- ...-notes-1-7-1-mdx-17280222dfd706a5b265.js.map | 2 +- ...ease-notes-1-7-2-mdx-71251df9f474309ba21b.js | 4 ++-- ...-notes-1-7-2-mdx-71251df9f474309ba21b.js.map | 2 +- ...ease-notes-1-8-0-mdx-b14871559179cd9e10a9.js | 4 ++-- ...-notes-1-8-0-mdx-b14871559179cd9e10a9.js.map | 2 +- ...ease-notes-1-9-0-mdx-c8028dde8fd643f4a218.js | 4 ++-- ...-notes-1-9-0-mdx-c8028dde8fd643f4a218.js.map | 2 +- ...ease-notes-1-9-1-mdx-9bd5cd17e9baac2b3cec.js | 4 ++-- ...-notes-1-9-1-mdx-9bd5cd17e9baac2b3cec.js.map | 2 +- ...ease-notes-1-9-2-mdx-bd1d31219c4310b9066d.js | 4 ++-- ...-notes-1-9-2-mdx-bd1d31219c4310b9066d.js.map | 2 +- ...ease-notes-index-tsx-8f5ded2af1c951272282.js | 4 ++-- ...-notes-index-tsx-8f5ded2af1c951272282.js.map | 2 +- ...lease-notes-list-tsx-89173dbd7acdf926f9aa.js | 2 ++ ...e-notes-list-tsx-89173dbd7acdf926f9aa.js.map | 2 +- ...lease-notes-list-tsx-a619104a12686a973e22.js | 2 -- .../advanced-client-interoperability/index.html | 4 ++-- docs/advanced-custom-attributes/index.html | 4 ++-- docs/advanced-dropwizard-integration/index.html | 6 +++--- docs/advanced-flags-provider/index.html | 4 ++-- docs/advanced-kotlin/index.html | 8 ++++---- docs/advanced-logging/index.html | 6 +++--- docs/advanced-metrics/index.html | 4 ++-- docs/advanced-production-checklist/index.html | 4 ++-- docs/advanced-saml/index.html | 6 +++--- docs/advanced-scala/index.html | 6 +++--- docs/advanced-scalapb/index.html | 6 +++--- .../advanced-spring-boot-integration/index.html | 8 ++++---- .../index.html | 6 +++--- docs/advanced-streaming-backpressure/index.html | 4 ++-- .../index.html | 4 ++-- docs/advanced-structured-logging/index.html | 4 ++-- docs/advanced-unit-testing/index.html | 4 ++-- docs/advanced-zipkin/index.html | 6 +++--- docs/client-circuit-breaker/index.html | 4 ++-- docs/client-custom-http-headers/index.html | 4 ++-- docs/client-decorator/index.html | 4 ++-- docs/client-factory/index.html | 4 ++-- docs/client-grpc/index.html | 4 ++-- docs/client-http/index.html | 4 ++-- docs/client-retrofit/index.html | 6 +++--- docs/client-retry/index.html | 4 ++-- docs/client-service-discovery/index.html | 10 +++++----- docs/client-thrift/index.html | 4 ++-- docs/client-timeouts/index.html | 4 ++-- docs/index.html | 4 ++-- docs/server-access-log/index.html | 4 ++-- docs/server-annotated-service/index.html | 4 ++-- docs/server-basics/index.html | 4 ++-- docs/server-cors/index.html | 4 ++-- docs/server-decorator/index.html | 4 ++-- docs/server-docservice/index.html | 4 ++-- docs/server-graphql/index.html | 6 +++--- docs/server-grpc/index.html | 4 ++-- docs/server-http-file/index.html | 4 ++-- docs/server-multipart/index.html | 4 ++-- docs/server-service-registration/index.html | 10 +++++----- docs/server-servlet/index.html | 8 ++++---- docs/server-sse/index.html | 4 ++-- docs/server-thrift/index.html | 4 ++-- docs/server-timeouts/index.html | 4 ++-- docs/setup/index.html | 6 +++--- ...91141f1afb32b0e2357c-abb1630b96e7bb7b950a.js | 6 +++--- ...b0e2357c-abb1630b96e7bb7b950a.js.LICENSE.txt | 0 ...1f1afb32b0e2357c-abb1630b96e7bb7b950a.js.map | 2 +- index.html | 4 ++-- news/20200514-newsletter-0/index.html | 4 ++-- news/20200703-newsletter-1/index.html | 4 ++-- news/20210202-newsletter-2/index.html | 4 ++-- news/20211029-newsletter-3/index.html | 4 ++-- news/20220714-newsletter-4/index.html | 4 ++-- news/20230426-newsletter-5/index.html | 4 ++-- news/20231208-newsletter-6/index.html | 4 ++-- news/index.html | 4 ++-- news/list/index.html | 4 ++-- news/sign-up/index.html | 4 ++-- page-data/app-data.json | 2 +- page-data/release-notes/1.30.1/page-data.json | 2 +- page-data/release-notes/1.30.2/page-data.json | 5 +++++ page-data/release-notes/1.31.0/page-data.json | 2 +- page-data/release-notes/1.31.1/page-data.json | 5 +++++ page-data/release-notes/page-data.json | 2 +- page-data/sq/d/1102418264.json | 2 +- page-data/sq/d/1217743243.json | 2 +- page-data/sq/d/1552981879.json | 2 +- page-data/sq/d/3172452987.json | 2 +- release-notes/0.80.0/index.html | 4 ++-- release-notes/0.81.0/index.html | 4 ++-- release-notes/0.81.1/index.html | 4 ++-- release-notes/0.82.0/index.html | 4 ++-- release-notes/0.83.0/index.html | 4 ++-- release-notes/0.84.0/index.html | 4 ++-- release-notes/0.85.0/index.html | 4 ++-- release-notes/0.86.0/index.html | 4 ++-- release-notes/0.87.0/index.html | 4 ++-- release-notes/0.88.0/index.html | 4 ++-- release-notes/0.89.0/index.html | 4 ++-- release-notes/0.89.1/index.html | 4 ++-- release-notes/0.90.0/index.html | 4 ++-- release-notes/0.90.1/index.html | 4 ++-- release-notes/0.90.2/index.html | 4 ++-- release-notes/0.90.3/index.html | 4 ++-- release-notes/0.91.0/index.html | 4 ++-- release-notes/0.92.0/index.html | 4 ++-- release-notes/0.93.0/index.html | 4 ++-- release-notes/0.94.0/index.html | 4 ++-- release-notes/0.95.0/index.html | 4 ++-- release-notes/0.96.0/index.html | 4 ++-- release-notes/0.97.0/index.html | 4 ++-- release-notes/0.98.0/index.html | 4 ++-- release-notes/0.98.1/index.html | 4 ++-- release-notes/0.98.2/index.html | 4 ++-- release-notes/0.98.3/index.html | 4 ++-- release-notes/0.98.4/index.html | 4 ++-- release-notes/0.98.5/index.html | 4 ++-- release-notes/0.98.6/index.html | 4 ++-- release-notes/0.98.7/index.html | 4 ++-- release-notes/0.99.0/index.html | 4 ++-- release-notes/0.99.1/index.html | 4 ++-- release-notes/0.99.2/index.html | 4 ++-- release-notes/0.99.3/index.html | 4 ++-- release-notes/0.99.4/index.html | 4 ++-- release-notes/0.99.5/index.html | 4 ++-- release-notes/0.99.6/index.html | 4 ++-- release-notes/0.99.7/index.html | 4 ++-- release-notes/0.99.8/index.html | 4 ++-- release-notes/0.99.9/index.html | 4 ++-- release-notes/1.0.0/index.html | 4 ++-- release-notes/1.1.0/index.html | 4 ++-- release-notes/1.10.0/index.html | 4 ++-- release-notes/1.11.0/index.html | 4 ++-- release-notes/1.12.0/index.html | 4 ++-- release-notes/1.13.0/index.html | 4 ++-- release-notes/1.13.1/index.html | 4 ++-- release-notes/1.13.2/index.html | 4 ++-- release-notes/1.13.3/index.html | 4 ++-- release-notes/1.13.4/index.html | 4 ++-- release-notes/1.14.0/index.html | 4 ++-- release-notes/1.14.1/index.html | 4 ++-- release-notes/1.15.0/index.html | 4 ++-- release-notes/1.16.0/index.html | 4 ++-- release-notes/1.16.1/index.html | 4 ++-- release-notes/1.16.2/index.html | 4 ++-- release-notes/1.17.0/index.html | 4 ++-- release-notes/1.17.1/index.html | 4 ++-- release-notes/1.17.2/index.html | 4 ++-- release-notes/1.18.0/index.html | 4 ++-- release-notes/1.19.0/index.html | 4 ++-- release-notes/1.2.0/index.html | 4 ++-- release-notes/1.20.0/index.html | 4 ++-- release-notes/1.20.1/index.html | 4 ++-- release-notes/1.20.2/index.html | 4 ++-- release-notes/1.20.3/index.html | 4 ++-- release-notes/1.21.0/index.html | 4 ++-- release-notes/1.22.0/index.html | 4 ++-- release-notes/1.22.1/index.html | 4 ++-- release-notes/1.23.0/index.html | 4 ++-- release-notes/1.23.1/index.html | 4 ++-- release-notes/1.24.0/index.html | 4 ++-- release-notes/1.24.1/index.html | 4 ++-- release-notes/1.24.2/index.html | 4 ++-- release-notes/1.24.3/index.html | 4 ++-- release-notes/1.25.0/index.html | 4 ++-- release-notes/1.25.1/index.html | 4 ++-- release-notes/1.25.2/index.html | 4 ++-- release-notes/1.26.0/index.html | 4 ++-- release-notes/1.26.1/index.html | 4 ++-- release-notes/1.26.2/index.html | 4 ++-- release-notes/1.26.3/index.html | 4 ++-- release-notes/1.26.4/index.html | 4 ++-- release-notes/1.27.0/index.html | 4 ++-- release-notes/1.27.1/index.html | 4 ++-- release-notes/1.27.2/index.html | 4 ++-- release-notes/1.27.3/index.html | 4 ++-- release-notes/1.28.0/index.html | 4 ++-- release-notes/1.28.1/index.html | 4 ++-- release-notes/1.28.2/index.html | 4 ++-- release-notes/1.28.3/index.html | 4 ++-- release-notes/1.28.4/index.html | 4 ++-- release-notes/1.29.0/index.html | 4 ++-- release-notes/1.29.1/index.html | 4 ++-- release-notes/1.29.2/index.html | 4 ++-- release-notes/1.29.3/index.html | 4 ++-- release-notes/1.29.4/index.html | 4 ++-- release-notes/1.3.0/index.html | 4 ++-- release-notes/1.30.0/index.html | 4 ++-- release-notes/1.30.1/index.html | 4 ++-- release-notes/1.30.2/index.html | 17 +++++++++++++++++ release-notes/1.31.0/index.html | 6 +++--- release-notes/1.31.1/index.html | 17 +++++++++++++++++ release-notes/1.4.0/index.html | 4 ++-- release-notes/1.5.0/index.html | 4 ++-- release-notes/1.6.0/index.html | 4 ++-- release-notes/1.7.0/index.html | 4 ++-- release-notes/1.7.1/index.html | 4 ++-- release-notes/1.7.2/index.html | 4 ++-- release-notes/1.8.0/index.html | 4 ++-- release-notes/1.9.0/index.html | 4 ++-- release-notes/1.9.1/index.html | 4 ++-- release-notes/1.9.2/index.html | 4 ++-- release-notes/index.html | 8 ++++---- release-notes/list/index.html | 4 ++-- s/discord/index.html | 4 ++-- sitemap/sitemap-0.xml | 2 +- tutorials/grpc/blog/define-service/index.html | 4 ++-- tutorials/grpc/blog/implement-create/index.html | 4 ++-- tutorials/grpc/blog/implement-delete/index.html | 4 ++-- tutorials/grpc/blog/implement-read/index.html | 4 ++-- tutorials/grpc/blog/implement-update/index.html | 4 ++-- tutorials/grpc/blog/index.html | 10 +++++----- tutorials/grpc/blog/run-service/index.html | 4 ++-- tutorials/index.html | 4 ++-- .../rest/blog/add-services-to-server/index.html | 4 ++-- tutorials/rest/blog/create-server/index.html | 4 ++-- tutorials/rest/blog/implement-create/index.html | 4 ++-- tutorials/rest/blog/implement-delete/index.html | 4 ++-- tutorials/rest/blog/implement-read/index.html | 4 ++-- tutorials/rest/blog/implement-update/index.html | 4 ++-- tutorials/rest/blog/index.html | 8 ++++---- .../rest/blog/prepare-data-object/index.html | 4 ++-- tutorials/thrift/blog/define-service/index.html | 4 ++-- .../thrift/blog/implement-create/index.html | 4 ++-- .../thrift/blog/implement-delete/index.html | 4 ++-- tutorials/thrift/blog/implement-read/index.html | 4 ++-- .../thrift/blog/implement-update/index.html | 4 ++-- tutorials/thrift/blog/index.html | 10 +++++----- tutorials/thrift/blog/run-service/index.html | 4 ++-- webpack-runtime-95d5a2cac8d92e224c67.js | 2 ++ webpack-runtime-95d5a2cac8d92e224c67.js.map | 1 + webpack-runtime-df2ac4bf8f220dd8f7de.js | 2 -- webpack-runtime-df2ac4bf8f220dd8f7de.js.map | 1 - webpack.stats.json | 2 +- 486 files changed, 887 insertions(+), 837 deletions(-) rename 56a3e4ec6361b4af94eaa9d2b3158e19b2fcf91b-2f198cdd353187768999.js => 12bf3e15df1f0f820c37e5d14a2df77495d60f3c-85b6fdd84273564b38b8.js (99%) rename 56a3e4ec6361b4af94eaa9d2b3158e19b2fcf91b-2f198cdd353187768999.js.map => 12bf3e15df1f0f820c37e5d14a2df77495d60f3c-85b6fdd84273564b38b8.js.map (99%) rename 4f2b08f064cdf17dbc3512123088454777527436-00bdf03a0f8d59ca7f27.js => 8f791f050038e642675e317ce8ff5fa304709d5c-4aec07cea9dddc0e8966.js (99%) rename 4f2b08f064cdf17dbc3512123088454777527436-00bdf03a0f8d59ca7f27.js.LICENSE.txt => 8f791f050038e642675e317ce8ff5fa304709d5c-4aec07cea9dddc0e8966.js.LICENSE.txt (100%) rename 4f2b08f064cdf17dbc3512123088454777527436-00bdf03a0f8d59ca7f27.js.map => 8f791f050038e642675e317ce8ff5fa304709d5c-4aec07cea9dddc0e8966.js.map (99%) create mode 100644 9780-3ba259c3452652f753b4.js delete mode 100644 9780-a8e9022df1e7a3e818d1.js rename app-615e018ea0cd4366feb3.js => app-18050993a9467eb68635.js (67%) rename app-615e018ea0cd4366feb3.js.LICENSE.txt => app-18050993a9467eb68635.js.LICENSE.txt (100%) create mode 100644 app-18050993a9467eb68635.js.map delete mode 100644 app-615e018ea0cd4366feb3.js.map rename component---src-pages-news-20200514-newsletter-0-mdx-f3a7d662a3ea28d32062.js => component---src-pages-news-20200514-newsletter-0-mdx-f36886b8459587aa84ea.js (95%) rename component---src-pages-news-20200514-newsletter-0-mdx-f3a7d662a3ea28d32062.js.map => component---src-pages-news-20200514-newsletter-0-mdx-f36886b8459587aa84ea.js.map (99%) rename component---src-pages-news-20200703-newsletter-1-mdx-01ee22afda310f353343.js => component---src-pages-news-20200703-newsletter-1-mdx-6e6cc5a2fa5a1944ed2f.js (96%) rename component---src-pages-news-20200703-newsletter-1-mdx-01ee22afda310f353343.js.map => component---src-pages-news-20200703-newsletter-1-mdx-6e6cc5a2fa5a1944ed2f.js.map (99%) rename component---src-pages-news-20210202-newsletter-2-mdx-4f50b9e09afc9aafb82d.js => component---src-pages-news-20210202-newsletter-2-mdx-e968092bfdd5c8d0a2ef.js (96%) rename component---src-pages-news-20210202-newsletter-2-mdx-4f50b9e09afc9aafb82d.js.map => component---src-pages-news-20210202-newsletter-2-mdx-e968092bfdd5c8d0a2ef.js.map (99%) rename component---src-pages-news-20211029-newsletter-3-mdx-4948f709bb694296ee30.js => component---src-pages-news-20211029-newsletter-3-mdx-8eec135d6786bdc87c52.js (96%) rename component---src-pages-news-20211029-newsletter-3-mdx-4948f709bb694296ee30.js.map => component---src-pages-news-20211029-newsletter-3-mdx-8eec135d6786bdc87c52.js.map (99%) rename component---src-pages-news-20220714-newsletter-4-mdx-dbd62a72fc57d8205883.js => component---src-pages-news-20220714-newsletter-4-mdx-cc916af0a0adf47a1f7b.js (96%) rename component---src-pages-news-20220714-newsletter-4-mdx-dbd62a72fc57d8205883.js.map => component---src-pages-news-20220714-newsletter-4-mdx-cc916af0a0adf47a1f7b.js.map (99%) rename component---src-pages-news-20230426-newsletter-5-mdx-d9164420644beb875fb1.js => component---src-pages-news-20230426-newsletter-5-mdx-9db03b409d4bc7390b4b.js (96%) rename component---src-pages-news-20230426-newsletter-5-mdx-d9164420644beb875fb1.js.map => component---src-pages-news-20230426-newsletter-5-mdx-9db03b409d4bc7390b4b.js.map (99%) rename component---src-pages-news-20231208-newsletter-6-mdx-7835aec8ef48bec7f187.js => component---src-pages-news-20231208-newsletter-6-mdx-a3d1e5862a50af03ac2f.js (96%) rename component---src-pages-news-20231208-newsletter-6-mdx-7835aec8ef48bec7f187.js.map => component---src-pages-news-20231208-newsletter-6-mdx-a3d1e5862a50af03ac2f.js.map (99%) rename component---src-pages-news-list-tsx-afa393e5d1eee2f7fc35.js => component---src-pages-news-list-tsx-e6486fa8c8fdf0d4639e.js (82%) rename component---src-pages-news-list-tsx-afa393e5d1eee2f7fc35.js.map => component---src-pages-news-list-tsx-e6486fa8c8fdf0d4639e.js.map (98%) rename component---src-pages-news-sign-up-mdx-f5a018e4cf3fb5b44511.js => component---src-pages-news-sign-up-mdx-456e6c66675501c2fa6f.js (83%) rename component---src-pages-news-sign-up-mdx-f5a018e4cf3fb5b44511.js.map => component---src-pages-news-sign-up-mdx-456e6c66675501c2fa6f.js.map (98%) rename component---src-pages-release-notes-0-80-0-mdx-de40492bad4b7823cecc.js => component---src-pages-release-notes-0-80-0-mdx-3bab5af82400fbab2392.js (97%) rename component---src-pages-release-notes-0-80-0-mdx-de40492bad4b7823cecc.js.map => component---src-pages-release-notes-0-80-0-mdx-3bab5af82400fbab2392.js.map (99%) rename component---src-pages-release-notes-0-81-0-mdx-82d579f39ff324af8a96.js => component---src-pages-release-notes-0-81-0-mdx-62460e5eecc351154290.js (95%) rename component---src-pages-release-notes-0-81-0-mdx-82d579f39ff324af8a96.js.map => component---src-pages-release-notes-0-81-0-mdx-62460e5eecc351154290.js.map (99%) rename component---src-pages-release-notes-0-81-1-mdx-def12c688df3b9ff919c.js => component---src-pages-release-notes-0-81-1-mdx-612de28adb01b3ea9f23.js (88%) rename component---src-pages-release-notes-0-81-1-mdx-def12c688df3b9ff919c.js.map => component---src-pages-release-notes-0-81-1-mdx-612de28adb01b3ea9f23.js.map (99%) rename component---src-pages-release-notes-0-82-0-mdx-46cbe46ad1200826aed5.js => component---src-pages-release-notes-0-82-0-mdx-24a82e6e4be6f3514cb1.js (94%) rename component---src-pages-release-notes-0-82-0-mdx-46cbe46ad1200826aed5.js.map => component---src-pages-release-notes-0-82-0-mdx-24a82e6e4be6f3514cb1.js.map (99%) rename component---src-pages-release-notes-0-83-0-mdx-5e3c3991d210592d895c.js => component---src-pages-release-notes-0-83-0-mdx-645222faa292d5712048.js (94%) rename component---src-pages-release-notes-0-83-0-mdx-5e3c3991d210592d895c.js.map => component---src-pages-release-notes-0-83-0-mdx-645222faa292d5712048.js.map (99%) rename component---src-pages-release-notes-0-84-0-mdx-8c55d297faeb19fd3327.js => component---src-pages-release-notes-0-84-0-mdx-412ca391b8efc4e92eb0.js (97%) rename component---src-pages-release-notes-0-84-0-mdx-8c55d297faeb19fd3327.js.map => component---src-pages-release-notes-0-84-0-mdx-412ca391b8efc4e92eb0.js.map (99%) rename component---src-pages-release-notes-0-85-0-mdx-cb8c65d3253f031c49f4.js => component---src-pages-release-notes-0-85-0-mdx-d1c6bf3412040cbab3c1.js (97%) rename component---src-pages-release-notes-0-85-0-mdx-cb8c65d3253f031c49f4.js.map => component---src-pages-release-notes-0-85-0-mdx-d1c6bf3412040cbab3c1.js.map (99%) rename component---src-pages-release-notes-0-86-0-mdx-4b381a8e7b4f44d7de33.js => component---src-pages-release-notes-0-86-0-mdx-483f882e67fb3094f255.js (95%) rename component---src-pages-release-notes-0-86-0-mdx-4b381a8e7b4f44d7de33.js.map => component---src-pages-release-notes-0-86-0-mdx-483f882e67fb3094f255.js.map (99%) rename component---src-pages-release-notes-0-87-0-mdx-38b2052bf3059687c9bb.js => component---src-pages-release-notes-0-87-0-mdx-5130d767712392749f8a.js (97%) rename component---src-pages-release-notes-0-87-0-mdx-38b2052bf3059687c9bb.js.map => component---src-pages-release-notes-0-87-0-mdx-5130d767712392749f8a.js.map (99%) rename component---src-pages-release-notes-0-88-0-mdx-eda62e6a3f259b4955ee.js => component---src-pages-release-notes-0-88-0-mdx-1179ffe4c227eebda999.js (97%) rename component---src-pages-release-notes-0-88-0-mdx-eda62e6a3f259b4955ee.js.map => component---src-pages-release-notes-0-88-0-mdx-1179ffe4c227eebda999.js.map (99%) rename component---src-pages-release-notes-0-89-0-mdx-ff7014003a00dcb534b8.js => component---src-pages-release-notes-0-89-0-mdx-cb09995a2484dd2b9c86.js (97%) rename component---src-pages-release-notes-0-89-0-mdx-ff7014003a00dcb534b8.js.map => component---src-pages-release-notes-0-89-0-mdx-cb09995a2484dd2b9c86.js.map (99%) rename component---src-pages-release-notes-0-89-1-mdx-bbf896ee652c4bc8c7e8.js => component---src-pages-release-notes-0-89-1-mdx-0eb71009f4635478d6fa.js (85%) rename component---src-pages-release-notes-0-89-1-mdx-bbf896ee652c4bc8c7e8.js.map => component---src-pages-release-notes-0-89-1-mdx-0eb71009f4635478d6fa.js.map (99%) rename component---src-pages-release-notes-0-90-0-mdx-872fc718d9ae22e05a23.js => component---src-pages-release-notes-0-90-0-mdx-a66a9fbd3452cc56eaf4.js (96%) rename component---src-pages-release-notes-0-90-0-mdx-872fc718d9ae22e05a23.js.map => component---src-pages-release-notes-0-90-0-mdx-a66a9fbd3452cc56eaf4.js.map (99%) rename component---src-pages-release-notes-0-90-1-mdx-360d213cb1d788d22798.js => component---src-pages-release-notes-0-90-1-mdx-34ad6798bdd5b7df28fc.js (89%) rename component---src-pages-release-notes-0-90-1-mdx-360d213cb1d788d22798.js.map => component---src-pages-release-notes-0-90-1-mdx-34ad6798bdd5b7df28fc.js.map (99%) rename component---src-pages-release-notes-0-90-2-mdx-b93d5d4100d08b37a104.js => component---src-pages-release-notes-0-90-2-mdx-3d3cf5c4eaab0ec08dd0.js (89%) rename component---src-pages-release-notes-0-90-2-mdx-b93d5d4100d08b37a104.js.map => component---src-pages-release-notes-0-90-2-mdx-3d3cf5c4eaab0ec08dd0.js.map (99%) rename component---src-pages-release-notes-0-90-3-mdx-9391eb8c05977eb72b88.js => component---src-pages-release-notes-0-90-3-mdx-7a7f9a315be14a6411e5.js (91%) rename component---src-pages-release-notes-0-90-3-mdx-9391eb8c05977eb72b88.js.map => component---src-pages-release-notes-0-90-3-mdx-7a7f9a315be14a6411e5.js.map (99%) rename component---src-pages-release-notes-0-91-0-mdx-acc13057200a7c5d6bd1.js => component---src-pages-release-notes-0-91-0-mdx-dc9df7215a625807d574.js (96%) rename component---src-pages-release-notes-0-91-0-mdx-acc13057200a7c5d6bd1.js.map => component---src-pages-release-notes-0-91-0-mdx-dc9df7215a625807d574.js.map (99%) rename component---src-pages-release-notes-0-92-0-mdx-5867452a7963cf9d95d7.js => component---src-pages-release-notes-0-92-0-mdx-f416d2d6e492987f9b19.js (97%) rename component---src-pages-release-notes-0-92-0-mdx-5867452a7963cf9d95d7.js.map => component---src-pages-release-notes-0-92-0-mdx-f416d2d6e492987f9b19.js.map (99%) rename component---src-pages-release-notes-0-93-0-mdx-960f0f2289cf5de796e1.js => component---src-pages-release-notes-0-93-0-mdx-ff4c861529d75dd649ec.js (95%) rename component---src-pages-release-notes-0-93-0-mdx-960f0f2289cf5de796e1.js.map => component---src-pages-release-notes-0-93-0-mdx-ff4c861529d75dd649ec.js.map (99%) rename component---src-pages-release-notes-0-94-0-mdx-594c6fafbad549b362d7.js => component---src-pages-release-notes-0-94-0-mdx-ec5455d5af3dbd04748e.js (96%) rename component---src-pages-release-notes-0-94-0-mdx-594c6fafbad549b362d7.js.map => component---src-pages-release-notes-0-94-0-mdx-ec5455d5af3dbd04748e.js.map (99%) rename component---src-pages-release-notes-0-95-0-mdx-c2689dfc7b6d5496b057.js => component---src-pages-release-notes-0-95-0-mdx-f2ee21c65ed9393c9c26.js (96%) rename component---src-pages-release-notes-0-95-0-mdx-c2689dfc7b6d5496b057.js.map => component---src-pages-release-notes-0-95-0-mdx-f2ee21c65ed9393c9c26.js.map (99%) rename component---src-pages-release-notes-0-96-0-mdx-75b94a00326846eaa8b0.js => component---src-pages-release-notes-0-96-0-mdx-dfae23c4c166c4a5b0e2.js (98%) rename component---src-pages-release-notes-0-96-0-mdx-75b94a00326846eaa8b0.js.map => component---src-pages-release-notes-0-96-0-mdx-dfae23c4c166c4a5b0e2.js.map (99%) rename component---src-pages-release-notes-0-97-0-mdx-90aa2cdcde3adf145bef.js => component---src-pages-release-notes-0-97-0-mdx-164c59fec4df51baa83e.js (98%) rename component---src-pages-release-notes-0-97-0-mdx-90aa2cdcde3adf145bef.js.map => component---src-pages-release-notes-0-97-0-mdx-164c59fec4df51baa83e.js.map (99%) rename component---src-pages-release-notes-0-98-0-mdx-83872ac44cc2b5aa9ba7.js => component---src-pages-release-notes-0-98-0-mdx-4eca1f32c8b0b13df905.js (98%) rename component---src-pages-release-notes-0-98-0-mdx-83872ac44cc2b5aa9ba7.js.map => component---src-pages-release-notes-0-98-0-mdx-4eca1f32c8b0b13df905.js.map (99%) rename component---src-pages-release-notes-0-98-1-mdx-419cba9af236fc4c5fbf.js => component---src-pages-release-notes-0-98-1-mdx-f6a9c58a2615bbac101b.js (90%) rename component---src-pages-release-notes-0-98-1-mdx-419cba9af236fc4c5fbf.js.map => component---src-pages-release-notes-0-98-1-mdx-f6a9c58a2615bbac101b.js.map (99%) rename component---src-pages-release-notes-0-98-2-mdx-eb3a9741e4f9a6e896d6.js => component---src-pages-release-notes-0-98-2-mdx-b5181e196996073cf4dd.js (94%) rename component---src-pages-release-notes-0-98-2-mdx-eb3a9741e4f9a6e896d6.js.map => component---src-pages-release-notes-0-98-2-mdx-b5181e196996073cf4dd.js.map (99%) rename component---src-pages-release-notes-0-98-3-mdx-beaddb70c4dc415c7e40.js => component---src-pages-release-notes-0-98-3-mdx-d486b6ec4527859998c7.js (96%) rename component---src-pages-release-notes-0-98-3-mdx-beaddb70c4dc415c7e40.js.map => component---src-pages-release-notes-0-98-3-mdx-d486b6ec4527859998c7.js.map (99%) rename component---src-pages-release-notes-0-98-4-mdx-6e231286ed71a4518560.js => component---src-pages-release-notes-0-98-4-mdx-afe528597c2b7d8cdc73.js (92%) rename component---src-pages-release-notes-0-98-4-mdx-6e231286ed71a4518560.js.map => component---src-pages-release-notes-0-98-4-mdx-afe528597c2b7d8cdc73.js.map (99%) rename component---src-pages-release-notes-0-98-5-mdx-3ebdcebf6c7a8a4647a5.js => component---src-pages-release-notes-0-98-5-mdx-bd51851ce370361d70e9.js (94%) rename component---src-pages-release-notes-0-98-5-mdx-3ebdcebf6c7a8a4647a5.js.map => component---src-pages-release-notes-0-98-5-mdx-bd51851ce370361d70e9.js.map (99%) rename component---src-pages-release-notes-0-98-6-mdx-428e521a3b6e189cf031.js => component---src-pages-release-notes-0-98-6-mdx-1d7d2f27f0761f26e178.js (92%) rename component---src-pages-release-notes-0-98-6-mdx-428e521a3b6e189cf031.js.map => component---src-pages-release-notes-0-98-6-mdx-1d7d2f27f0761f26e178.js.map (99%) rename component---src-pages-release-notes-0-98-7-mdx-63b471685d2733a3c9e8.js => component---src-pages-release-notes-0-98-7-mdx-7af8fe58c84489f6d02b.js (88%) rename component---src-pages-release-notes-0-98-7-mdx-63b471685d2733a3c9e8.js.map => component---src-pages-release-notes-0-98-7-mdx-7af8fe58c84489f6d02b.js.map (99%) rename component---src-pages-release-notes-0-99-0-mdx-0f3a89e16aaacd4eeba9.js => component---src-pages-release-notes-0-99-0-mdx-c7d42397e8d5b65f09e5.js (97%) rename component---src-pages-release-notes-0-99-0-mdx-0f3a89e16aaacd4eeba9.js.map => component---src-pages-release-notes-0-99-0-mdx-c7d42397e8d5b65f09e5.js.map (99%) rename component---src-pages-release-notes-0-99-1-mdx-8a54ef79112574ef6171.js => component---src-pages-release-notes-0-99-1-mdx-91b3ecb598722feb7d33.js (89%) rename component---src-pages-release-notes-0-99-1-mdx-8a54ef79112574ef6171.js.map => component---src-pages-release-notes-0-99-1-mdx-91b3ecb598722feb7d33.js.map (99%) rename component---src-pages-release-notes-0-99-2-mdx-edff976545b2539cd112.js => component---src-pages-release-notes-0-99-2-mdx-7d37fc596ddbff0c0116.js (88%) rename component---src-pages-release-notes-0-99-2-mdx-edff976545b2539cd112.js.map => component---src-pages-release-notes-0-99-2-mdx-7d37fc596ddbff0c0116.js.map (99%) rename component---src-pages-release-notes-0-99-3-mdx-82a9301adbc0ee60d8c7.js => component---src-pages-release-notes-0-99-3-mdx-3f053cd33e56815e1f05.js (95%) rename component---src-pages-release-notes-0-99-3-mdx-82a9301adbc0ee60d8c7.js.map => component---src-pages-release-notes-0-99-3-mdx-3f053cd33e56815e1f05.js.map (99%) rename component---src-pages-release-notes-0-99-4-mdx-dfd77b75db09d79d70dd.js => component---src-pages-release-notes-0-99-4-mdx-54e31c001c8851fd34d2.js (91%) rename component---src-pages-release-notes-0-99-4-mdx-dfd77b75db09d79d70dd.js.map => component---src-pages-release-notes-0-99-4-mdx-54e31c001c8851fd34d2.js.map (99%) rename component---src-pages-release-notes-0-99-5-mdx-461c15fa576055a2260c.js => component---src-pages-release-notes-0-99-5-mdx-9da7c30768a34821fcec.js (97%) rename component---src-pages-release-notes-0-99-5-mdx-461c15fa576055a2260c.js.map => component---src-pages-release-notes-0-99-5-mdx-9da7c30768a34821fcec.js.map (99%) rename component---src-pages-release-notes-0-99-6-mdx-9640d589c4bbe8a30987.js => component---src-pages-release-notes-0-99-6-mdx-b0ca8d35a532b5c10b0f.js (96%) rename component---src-pages-release-notes-0-99-6-mdx-9640d589c4bbe8a30987.js.map => component---src-pages-release-notes-0-99-6-mdx-b0ca8d35a532b5c10b0f.js.map (99%) rename component---src-pages-release-notes-0-99-7-mdx-b8752b066bb79c5864b0.js => component---src-pages-release-notes-0-99-7-mdx-694260c404aa3c173830.js (98%) rename component---src-pages-release-notes-0-99-7-mdx-b8752b066bb79c5864b0.js.map => component---src-pages-release-notes-0-99-7-mdx-694260c404aa3c173830.js.map (99%) rename component---src-pages-release-notes-0-99-8-mdx-6df638139cf58e444cb0.js => component---src-pages-release-notes-0-99-8-mdx-594c57ebd054f7511711.js (98%) rename component---src-pages-release-notes-0-99-8-mdx-6df638139cf58e444cb0.js.map => component---src-pages-release-notes-0-99-8-mdx-594c57ebd054f7511711.js.map (99%) rename component---src-pages-release-notes-0-99-9-mdx-fd3400e78d06c247426d.js => component---src-pages-release-notes-0-99-9-mdx-2d742c093740babfabd7.js (98%) rename component---src-pages-release-notes-0-99-9-mdx-fd3400e78d06c247426d.js.map => component---src-pages-release-notes-0-99-9-mdx-2d742c093740babfabd7.js.map (99%) rename component---src-pages-release-notes-1-0-0-mdx-78b9f38c8ab5bd5e447d.js => component---src-pages-release-notes-1-0-0-mdx-0f49438e62f25005b58d.js (98%) rename component---src-pages-release-notes-1-0-0-mdx-78b9f38c8ab5bd5e447d.js.map => component---src-pages-release-notes-1-0-0-mdx-0f49438e62f25005b58d.js.map (99%) rename component---src-pages-release-notes-1-1-0-mdx-ca8117c2e066dd10f94b.js => component---src-pages-release-notes-1-1-0-mdx-0dc11d2355ce66f7cb8d.js (95%) rename component---src-pages-release-notes-1-1-0-mdx-ca8117c2e066dd10f94b.js.map => component---src-pages-release-notes-1-1-0-mdx-0dc11d2355ce66f7cb8d.js.map (99%) rename component---src-pages-release-notes-1-10-0-mdx-2cd00f1e213792e6f570.js => component---src-pages-release-notes-1-10-0-mdx-e2f953d2b2191587771f.js (98%) rename component---src-pages-release-notes-1-10-0-mdx-2cd00f1e213792e6f570.js.map => component---src-pages-release-notes-1-10-0-mdx-e2f953d2b2191587771f.js.map (99%) rename component---src-pages-release-notes-1-11-0-mdx-286e2e6f682fe674d6cb.js => component---src-pages-release-notes-1-11-0-mdx-4b0767af94a77b245553.js (94%) rename component---src-pages-release-notes-1-11-0-mdx-286e2e6f682fe674d6cb.js.map => component---src-pages-release-notes-1-11-0-mdx-4b0767af94a77b245553.js.map (99%) rename component---src-pages-release-notes-1-12-0-mdx-cd4d8381ecc2f071b322.js => component---src-pages-release-notes-1-12-0-mdx-36ec735c906d95376ed3.js (98%) rename component---src-pages-release-notes-1-12-0-mdx-cd4d8381ecc2f071b322.js.map => component---src-pages-release-notes-1-12-0-mdx-36ec735c906d95376ed3.js.map (99%) rename component---src-pages-release-notes-1-13-0-mdx-717e6e3f06231d3c23bb.js => component---src-pages-release-notes-1-13-0-mdx-46023641d2d815fb6f9c.js (95%) rename component---src-pages-release-notes-1-13-0-mdx-717e6e3f06231d3c23bb.js.map => component---src-pages-release-notes-1-13-0-mdx-46023641d2d815fb6f9c.js.map (99%) rename component---src-pages-release-notes-1-13-1-mdx-eb7bacac0d265d4c0f72.js => component---src-pages-release-notes-1-13-1-mdx-93645040d5b581e095bd.js (89%) rename component---src-pages-release-notes-1-13-1-mdx-eb7bacac0d265d4c0f72.js.map => component---src-pages-release-notes-1-13-1-mdx-93645040d5b581e095bd.js.map (99%) rename component---src-pages-release-notes-1-13-2-mdx-cbcac08697d52767c077.js => component---src-pages-release-notes-1-13-2-mdx-d880a5dc8da6bdaeeae2.js (91%) rename component---src-pages-release-notes-1-13-2-mdx-cbcac08697d52767c077.js.map => component---src-pages-release-notes-1-13-2-mdx-d880a5dc8da6bdaeeae2.js.map (99%) rename component---src-pages-release-notes-1-13-3-mdx-b5dd2de782662080ac85.js => component---src-pages-release-notes-1-13-3-mdx-62f4141e9258cbc8f9a2.js (93%) rename component---src-pages-release-notes-1-13-3-mdx-b5dd2de782662080ac85.js.map => component---src-pages-release-notes-1-13-3-mdx-62f4141e9258cbc8f9a2.js.map (99%) rename component---src-pages-release-notes-1-13-4-mdx-5b399964c7cb7c94130f.js => component---src-pages-release-notes-1-13-4-mdx-3a251c801fc96eb00f20.js (94%) rename component---src-pages-release-notes-1-13-4-mdx-5b399964c7cb7c94130f.js.map => component---src-pages-release-notes-1-13-4-mdx-3a251c801fc96eb00f20.js.map (99%) rename component---src-pages-release-notes-1-14-0-mdx-01897d6f940d2e898c89.js => component---src-pages-release-notes-1-14-0-mdx-66adb6a02c166332ce7f.js (98%) rename component---src-pages-release-notes-1-14-0-mdx-01897d6f940d2e898c89.js.map => component---src-pages-release-notes-1-14-0-mdx-66adb6a02c166332ce7f.js.map (99%) rename component---src-pages-release-notes-1-14-1-mdx-c2adf5f1a79ef24224ac.js => component---src-pages-release-notes-1-14-1-mdx-b5e8c009009c5f796e07.js (93%) rename component---src-pages-release-notes-1-14-1-mdx-c2adf5f1a79ef24224ac.js.map => component---src-pages-release-notes-1-14-1-mdx-b5e8c009009c5f796e07.js.map (99%) rename component---src-pages-release-notes-1-15-0-mdx-f893811d3e3db81e9a3f.js => component---src-pages-release-notes-1-15-0-mdx-6b31f762374a457bfe89.js (98%) rename component---src-pages-release-notes-1-15-0-mdx-f893811d3e3db81e9a3f.js.map => component---src-pages-release-notes-1-15-0-mdx-6b31f762374a457bfe89.js.map (99%) rename component---src-pages-release-notes-1-16-0-mdx-6a5d037d12b02e1aae79.js => component---src-pages-release-notes-1-16-0-mdx-20baee11aff69773ab70.js (98%) rename component---src-pages-release-notes-1-16-0-mdx-6a5d037d12b02e1aae79.js.map => component---src-pages-release-notes-1-16-0-mdx-20baee11aff69773ab70.js.map (99%) rename component---src-pages-release-notes-1-16-1-mdx-ebef4def1c1c91f7bb89.js => component---src-pages-release-notes-1-16-1-mdx-0c1b757d82655a1d90eb.js (89%) rename component---src-pages-release-notes-1-16-1-mdx-ebef4def1c1c91f7bb89.js.map => component---src-pages-release-notes-1-16-1-mdx-0c1b757d82655a1d90eb.js.map (99%) rename component---src-pages-release-notes-1-16-2-mdx-eda4ae801b634fec9297.js => component---src-pages-release-notes-1-16-2-mdx-3fac52380c38f8d5a5e9.js (89%) rename component---src-pages-release-notes-1-16-2-mdx-eda4ae801b634fec9297.js.map => component---src-pages-release-notes-1-16-2-mdx-3fac52380c38f8d5a5e9.js.map (99%) rename component---src-pages-release-notes-1-17-0-mdx-47e1192a3689d5b9139d.js => component---src-pages-release-notes-1-17-0-mdx-6d2dcbc572d34d056bd1.js (98%) rename component---src-pages-release-notes-1-17-0-mdx-47e1192a3689d5b9139d.js.map => component---src-pages-release-notes-1-17-0-mdx-6d2dcbc572d34d056bd1.js.map (99%) rename component---src-pages-release-notes-1-17-1-mdx-8577cc581324fe9b6629.js => component---src-pages-release-notes-1-17-1-mdx-9ad05eed54def3ccb09c.js (88%) rename component---src-pages-release-notes-1-17-1-mdx-8577cc581324fe9b6629.js.map => component---src-pages-release-notes-1-17-1-mdx-9ad05eed54def3ccb09c.js.map (99%) rename component---src-pages-release-notes-1-17-2-mdx-a4d7274667ab4b2cb423.js => component---src-pages-release-notes-1-17-2-mdx-47b12c91cf6a6180b168.js (89%) rename component---src-pages-release-notes-1-17-2-mdx-a4d7274667ab4b2cb423.js.map => component---src-pages-release-notes-1-17-2-mdx-47b12c91cf6a6180b168.js.map (99%) rename component---src-pages-release-notes-1-18-0-mdx-efe5f820e3684d2f7f0d.js => component---src-pages-release-notes-1-18-0-mdx-53b62216c2221323bb93.js (96%) rename component---src-pages-release-notes-1-18-0-mdx-efe5f820e3684d2f7f0d.js.map => component---src-pages-release-notes-1-18-0-mdx-53b62216c2221323bb93.js.map (99%) rename component---src-pages-release-notes-1-19-0-mdx-783bbc5759103b68a39a.js => component---src-pages-release-notes-1-19-0-mdx-f019cf9a34f441b7f94d.js (97%) rename component---src-pages-release-notes-1-19-0-mdx-783bbc5759103b68a39a.js.map => component---src-pages-release-notes-1-19-0-mdx-f019cf9a34f441b7f94d.js.map (99%) rename component---src-pages-release-notes-1-2-0-mdx-294976f9ec3cecfd1299.js => component---src-pages-release-notes-1-2-0-mdx-980bc3928d781822c2f2.js (97%) rename component---src-pages-release-notes-1-2-0-mdx-294976f9ec3cecfd1299.js.map => component---src-pages-release-notes-1-2-0-mdx-980bc3928d781822c2f2.js.map (99%) rename component---src-pages-release-notes-1-20-0-mdx-9033b4c300aa0f9ea0df.js => component---src-pages-release-notes-1-20-0-mdx-b77060655aefd4afe7de.js (97%) rename component---src-pages-release-notes-1-20-0-mdx-9033b4c300aa0f9ea0df.js.map => component---src-pages-release-notes-1-20-0-mdx-b77060655aefd4afe7de.js.map (99%) rename component---src-pages-release-notes-1-20-1-mdx-fd55774cada4d4579681.js => component---src-pages-release-notes-1-20-1-mdx-18c67eeaa080d6fc948e.js (89%) rename component---src-pages-release-notes-1-20-1-mdx-fd55774cada4d4579681.js.map => component---src-pages-release-notes-1-20-1-mdx-18c67eeaa080d6fc948e.js.map (99%) rename component---src-pages-release-notes-1-20-2-mdx-3f2da2e08b6ecfa2b95f.js => component---src-pages-release-notes-1-20-2-mdx-fb1fbbb25dd0d621848c.js (92%) rename component---src-pages-release-notes-1-20-2-mdx-3f2da2e08b6ecfa2b95f.js.map => component---src-pages-release-notes-1-20-2-mdx-fb1fbbb25dd0d621848c.js.map (99%) rename component---src-pages-release-notes-1-20-3-mdx-1a70e56abd1e8a3d9ad9.js => component---src-pages-release-notes-1-20-3-mdx-5bbc3f456c5194738c4f.js (93%) rename component---src-pages-release-notes-1-20-3-mdx-1a70e56abd1e8a3d9ad9.js.map => component---src-pages-release-notes-1-20-3-mdx-5bbc3f456c5194738c4f.js.map (99%) rename component---src-pages-release-notes-1-21-0-mdx-570864b74ccded4edf91.js => component---src-pages-release-notes-1-21-0-mdx-8c430926f52e13ca1014.js (97%) rename component---src-pages-release-notes-1-21-0-mdx-570864b74ccded4edf91.js.map => component---src-pages-release-notes-1-21-0-mdx-8c430926f52e13ca1014.js.map (99%) rename component---src-pages-release-notes-1-22-0-mdx-2e25ca8d6846cc0e83e8.js => component---src-pages-release-notes-1-22-0-mdx-33c6e4aa7ffdcf0d0b1e.js (97%) rename component---src-pages-release-notes-1-22-0-mdx-2e25ca8d6846cc0e83e8.js.map => component---src-pages-release-notes-1-22-0-mdx-33c6e4aa7ffdcf0d0b1e.js.map (99%) rename component---src-pages-release-notes-1-22-1-mdx-ec2deb1cb61ccde1abff.js => component---src-pages-release-notes-1-22-1-mdx-f37ba43ed1416446c366.js (90%) rename component---src-pages-release-notes-1-22-1-mdx-ec2deb1cb61ccde1abff.js.map => component---src-pages-release-notes-1-22-1-mdx-f37ba43ed1416446c366.js.map (99%) rename component---src-pages-release-notes-1-23-0-mdx-fac4acfb0197fa287c68.js => component---src-pages-release-notes-1-23-0-mdx-6093e9de7d41fafe6230.js (98%) rename component---src-pages-release-notes-1-23-0-mdx-fac4acfb0197fa287c68.js.map => component---src-pages-release-notes-1-23-0-mdx-6093e9de7d41fafe6230.js.map (99%) rename component---src-pages-release-notes-1-23-1-mdx-6078f8262e47cc1b071a.js => component---src-pages-release-notes-1-23-1-mdx-afebe24d16803b2c0e65.js (88%) rename component---src-pages-release-notes-1-23-1-mdx-6078f8262e47cc1b071a.js.map => component---src-pages-release-notes-1-23-1-mdx-afebe24d16803b2c0e65.js.map (99%) rename component---src-pages-release-notes-1-24-0-mdx-0066f4a429ac6fdf158b.js => component---src-pages-release-notes-1-24-0-mdx-be0370991f98b14abd61.js (98%) rename component---src-pages-release-notes-1-24-0-mdx-0066f4a429ac6fdf158b.js.map => component---src-pages-release-notes-1-24-0-mdx-be0370991f98b14abd61.js.map (99%) rename component---src-pages-release-notes-1-24-1-mdx-854395d87ebf48431c0b.js => component---src-pages-release-notes-1-24-1-mdx-4cb6ca2eccc8d111a9c8.js (92%) rename component---src-pages-release-notes-1-24-1-mdx-854395d87ebf48431c0b.js.map => component---src-pages-release-notes-1-24-1-mdx-4cb6ca2eccc8d111a9c8.js.map (99%) rename component---src-pages-release-notes-1-24-2-mdx-7d53ab839078cc318d3d.js => component---src-pages-release-notes-1-24-2-mdx-80a4cdfb7d8f0be18a5e.js (89%) rename component---src-pages-release-notes-1-24-2-mdx-7d53ab839078cc318d3d.js.map => component---src-pages-release-notes-1-24-2-mdx-80a4cdfb7d8f0be18a5e.js.map (99%) rename component---src-pages-release-notes-1-24-3-mdx-ed5ff0d1c998f1025fd1.js => component---src-pages-release-notes-1-24-3-mdx-1cbdc7f1c2d005a2df67.js (92%) rename component---src-pages-release-notes-1-24-3-mdx-ed5ff0d1c998f1025fd1.js.map => component---src-pages-release-notes-1-24-3-mdx-1cbdc7f1c2d005a2df67.js.map (99%) rename component---src-pages-release-notes-1-25-0-mdx-2eda0749a78b5f5b3ea4.js => component---src-pages-release-notes-1-25-0-mdx-73d3ecbea6af59ce0959.js (98%) rename component---src-pages-release-notes-1-25-0-mdx-2eda0749a78b5f5b3ea4.js.map => component---src-pages-release-notes-1-25-0-mdx-73d3ecbea6af59ce0959.js.map (99%) rename component---src-pages-release-notes-1-25-1-mdx-e649a225c8d5a56c3e9a.js => component---src-pages-release-notes-1-25-1-mdx-3963bb93a98db4725d45.js (88%) rename component---src-pages-release-notes-1-25-1-mdx-e649a225c8d5a56c3e9a.js.map => component---src-pages-release-notes-1-25-1-mdx-3963bb93a98db4725d45.js.map (99%) rename component---src-pages-release-notes-1-25-2-mdx-d9fa95dfa43178f9937a.js => component---src-pages-release-notes-1-25-2-mdx-c76d3dcd42a5c163d973.js (89%) rename component---src-pages-release-notes-1-25-2-mdx-d9fa95dfa43178f9937a.js.map => component---src-pages-release-notes-1-25-2-mdx-c76d3dcd42a5c163d973.js.map (99%) rename component---src-pages-release-notes-1-26-0-mdx-eae21966d78cc7ea06ab.js => component---src-pages-release-notes-1-26-0-mdx-cd2039779f473458b8ce.js (97%) rename component---src-pages-release-notes-1-26-0-mdx-eae21966d78cc7ea06ab.js.map => component---src-pages-release-notes-1-26-0-mdx-cd2039779f473458b8ce.js.map (99%) rename component---src-pages-release-notes-1-26-1-mdx-937802d540ca72cff0fd.js => component---src-pages-release-notes-1-26-1-mdx-38e6b6b718d51ef79d35.js (91%) rename component---src-pages-release-notes-1-26-1-mdx-937802d540ca72cff0fd.js.map => component---src-pages-release-notes-1-26-1-mdx-38e6b6b718d51ef79d35.js.map (99%) rename component---src-pages-release-notes-1-26-2-mdx-416f3386edd7a6934648.js => component---src-pages-release-notes-1-26-2-mdx-447d035769879a4b08e9.js (90%) rename component---src-pages-release-notes-1-26-2-mdx-416f3386edd7a6934648.js.map => component---src-pages-release-notes-1-26-2-mdx-447d035769879a4b08e9.js.map (99%) rename component---src-pages-release-notes-1-26-3-mdx-cb40e8d18063e45fc780.js => component---src-pages-release-notes-1-26-3-mdx-95f8e426fb8df84b1253.js (90%) rename component---src-pages-release-notes-1-26-3-mdx-cb40e8d18063e45fc780.js.map => component---src-pages-release-notes-1-26-3-mdx-95f8e426fb8df84b1253.js.map (99%) rename component---src-pages-release-notes-1-26-4-mdx-00478002f611dbb5f58f.js => component---src-pages-release-notes-1-26-4-mdx-096e01816989f144ab23.js (90%) rename component---src-pages-release-notes-1-26-4-mdx-00478002f611dbb5f58f.js.map => component---src-pages-release-notes-1-26-4-mdx-096e01816989f144ab23.js.map (99%) rename component---src-pages-release-notes-1-27-0-mdx-6d02b9899a3541c6b35e.js => component---src-pages-release-notes-1-27-0-mdx-784f5a5797c6e4b5581b.js (98%) rename component---src-pages-release-notes-1-27-0-mdx-6d02b9899a3541c6b35e.js.map => component---src-pages-release-notes-1-27-0-mdx-784f5a5797c6e4b5581b.js.map (99%) rename component---src-pages-release-notes-1-27-1-mdx-8f68c493ff00c5be142d.js => component---src-pages-release-notes-1-27-1-mdx-811e1509a81723531f4b.js (89%) rename component---src-pages-release-notes-1-27-1-mdx-8f68c493ff00c5be142d.js.map => component---src-pages-release-notes-1-27-1-mdx-811e1509a81723531f4b.js.map (99%) rename component---src-pages-release-notes-1-27-2-mdx-a406d6a7ca64e9be1b94.js => component---src-pages-release-notes-1-27-2-mdx-78801ae5d85f400afcde.js (94%) rename component---src-pages-release-notes-1-27-2-mdx-a406d6a7ca64e9be1b94.js.map => component---src-pages-release-notes-1-27-2-mdx-78801ae5d85f400afcde.js.map (99%) rename component---src-pages-release-notes-1-27-3-mdx-f35273e2861e67719ffc.js => component---src-pages-release-notes-1-27-3-mdx-f32d849c2200b9ddced8.js (90%) rename component---src-pages-release-notes-1-27-3-mdx-f35273e2861e67719ffc.js.map => component---src-pages-release-notes-1-27-3-mdx-f32d849c2200b9ddced8.js.map (99%) rename component---src-pages-release-notes-1-28-0-mdx-554ddaa76a716927cf50.js => component---src-pages-release-notes-1-28-0-mdx-bf33e4e8e323cbbf92e1.js (98%) rename component---src-pages-release-notes-1-28-0-mdx-554ddaa76a716927cf50.js.map => component---src-pages-release-notes-1-28-0-mdx-bf33e4e8e323cbbf92e1.js.map (99%) rename component---src-pages-release-notes-1-28-1-mdx-5c516c421d3332e3375d.js => component---src-pages-release-notes-1-28-1-mdx-3f158139be8c37d14487.js (90%) rename component---src-pages-release-notes-1-28-1-mdx-5c516c421d3332e3375d.js.map => component---src-pages-release-notes-1-28-1-mdx-3f158139be8c37d14487.js.map (99%) rename component---src-pages-release-notes-1-28-2-mdx-956e06b3d8b05ea33994.js => component---src-pages-release-notes-1-28-2-mdx-dfb01394ebf2da81dcc0.js (88%) rename component---src-pages-release-notes-1-28-2-mdx-956e06b3d8b05ea33994.js.map => component---src-pages-release-notes-1-28-2-mdx-dfb01394ebf2da81dcc0.js.map (99%) rename component---src-pages-release-notes-1-28-3-mdx-e3c0904b5b1bb8033704.js => component---src-pages-release-notes-1-28-3-mdx-882d3e2670facf8f4372.js (89%) rename component---src-pages-release-notes-1-28-3-mdx-e3c0904b5b1bb8033704.js.map => component---src-pages-release-notes-1-28-3-mdx-882d3e2670facf8f4372.js.map (99%) rename component---src-pages-release-notes-1-28-4-mdx-ecd396e2b410a123406d.js => component---src-pages-release-notes-1-28-4-mdx-56a09248bf44e23b2b5a.js (90%) rename component---src-pages-release-notes-1-28-4-mdx-ecd396e2b410a123406d.js.map => component---src-pages-release-notes-1-28-4-mdx-56a09248bf44e23b2b5a.js.map (99%) rename component---src-pages-release-notes-1-29-0-mdx-9ad175a17dc7b0d956f8.js => component---src-pages-release-notes-1-29-0-mdx-d63fbf993b387cd5882e.js (98%) rename component---src-pages-release-notes-1-29-0-mdx-9ad175a17dc7b0d956f8.js.map => component---src-pages-release-notes-1-29-0-mdx-d63fbf993b387cd5882e.js.map (99%) rename component---src-pages-release-notes-1-29-1-mdx-04764223f697e5929e6e.js => component---src-pages-release-notes-1-29-1-mdx-f39435ce251d4d52af10.js (92%) rename component---src-pages-release-notes-1-29-1-mdx-04764223f697e5929e6e.js.map => component---src-pages-release-notes-1-29-1-mdx-f39435ce251d4d52af10.js.map (99%) rename component---src-pages-release-notes-1-29-2-mdx-bbf72e89739a1b0adfc2.js => component---src-pages-release-notes-1-29-2-mdx-699b879be21df0d4cfe2.js (92%) rename component---src-pages-release-notes-1-29-2-mdx-bbf72e89739a1b0adfc2.js.map => component---src-pages-release-notes-1-29-2-mdx-699b879be21df0d4cfe2.js.map (99%) rename component---src-pages-release-notes-1-29-3-mdx-3d656a8f5dce2655b8fb.js => component---src-pages-release-notes-1-29-3-mdx-14fc0fbd86b719912911.js (92%) rename component---src-pages-release-notes-1-29-3-mdx-3d656a8f5dce2655b8fb.js.map => component---src-pages-release-notes-1-29-3-mdx-14fc0fbd86b719912911.js.map (99%) rename component---src-pages-release-notes-1-29-4-mdx-7944de4ad7fe719fd4ea.js => component---src-pages-release-notes-1-29-4-mdx-bf70c3735d3c9ad3c0b9.js (90%) rename component---src-pages-release-notes-1-29-4-mdx-7944de4ad7fe719fd4ea.js.map => component---src-pages-release-notes-1-29-4-mdx-bf70c3735d3c9ad3c0b9.js.map (99%) rename component---src-pages-release-notes-1-3-0-mdx-0bd39343f8789eb909df.js => component---src-pages-release-notes-1-3-0-mdx-32a76a06b17f55bbe6fa.js (98%) rename component---src-pages-release-notes-1-3-0-mdx-0bd39343f8789eb909df.js.map => component---src-pages-release-notes-1-3-0-mdx-32a76a06b17f55bbe6fa.js.map (99%) rename component---src-pages-release-notes-1-30-0-mdx-efe827d8c1da62a4b7f9.js => component---src-pages-release-notes-1-30-0-mdx-466f00da1ad4b199995f.js (97%) rename component---src-pages-release-notes-1-30-0-mdx-efe827d8c1da62a4b7f9.js.map => component---src-pages-release-notes-1-30-0-mdx-466f00da1ad4b199995f.js.map (99%) rename component---src-pages-release-notes-1-30-1-mdx-4b4e0416ccd00711d04c.js => component---src-pages-release-notes-1-30-1-mdx-aae335dd23fec0d9cb50.js (89%) rename component---src-pages-release-notes-1-30-1-mdx-4b4e0416ccd00711d04c.js.map => component---src-pages-release-notes-1-30-1-mdx-aae335dd23fec0d9cb50.js.map (99%) create mode 100644 component---src-pages-release-notes-1-30-2-mdx-301079ab02bf3e6b7611.js create mode 100644 component---src-pages-release-notes-1-30-2-mdx-301079ab02bf3e6b7611.js.map rename component---src-pages-release-notes-1-31-0-mdx-6fd6e1174c68d3d562ac.js => component---src-pages-release-notes-1-31-0-mdx-01947af2ba35416a8eeb.js (97%) rename component---src-pages-release-notes-1-31-0-mdx-6fd6e1174c68d3d562ac.js.map => component---src-pages-release-notes-1-31-0-mdx-01947af2ba35416a8eeb.js.map (99%) create mode 100644 component---src-pages-release-notes-1-31-1-mdx-be36164f3d1dc1ce0d80.js create mode 100644 component---src-pages-release-notes-1-31-1-mdx-be36164f3d1dc1ce0d80.js.map rename component---src-pages-release-notes-1-4-0-mdx-e934061354265d3c49e4.js => component---src-pages-release-notes-1-4-0-mdx-d1d75018f189ac283442.js (98%) rename component---src-pages-release-notes-1-4-0-mdx-e934061354265d3c49e4.js.map => component---src-pages-release-notes-1-4-0-mdx-d1d75018f189ac283442.js.map (99%) rename component---src-pages-release-notes-1-5-0-mdx-80d6de3e6f80e30f4488.js => component---src-pages-release-notes-1-5-0-mdx-53229ce851b9cabd7542.js (94%) rename component---src-pages-release-notes-1-5-0-mdx-80d6de3e6f80e30f4488.js.map => component---src-pages-release-notes-1-5-0-mdx-53229ce851b9cabd7542.js.map (99%) rename component---src-pages-release-notes-1-6-0-mdx-dce35f0b76a27f96f14a.js => component---src-pages-release-notes-1-6-0-mdx-e9178150bf1d180bab5a.js (98%) rename component---src-pages-release-notes-1-6-0-mdx-dce35f0b76a27f96f14a.js.map => component---src-pages-release-notes-1-6-0-mdx-e9178150bf1d180bab5a.js.map (99%) rename component---src-pages-release-notes-1-7-0-mdx-af773aa5a85d8addd65b.js => component---src-pages-release-notes-1-7-0-mdx-650c2d73a5c9d514fa56.js (96%) rename component---src-pages-release-notes-1-7-0-mdx-af773aa5a85d8addd65b.js.map => component---src-pages-release-notes-1-7-0-mdx-650c2d73a5c9d514fa56.js.map (99%) rename component---src-pages-release-notes-1-7-1-mdx-762f62529674b016c3b6.js => component---src-pages-release-notes-1-7-1-mdx-17280222dfd706a5b265.js (88%) rename component---src-pages-release-notes-1-7-1-mdx-762f62529674b016c3b6.js.map => component---src-pages-release-notes-1-7-1-mdx-17280222dfd706a5b265.js.map (99%) rename component---src-pages-release-notes-1-7-2-mdx-e28c483c32b0663d633e.js => component---src-pages-release-notes-1-7-2-mdx-71251df9f474309ba21b.js (90%) rename component---src-pages-release-notes-1-7-2-mdx-e28c483c32b0663d633e.js.map => component---src-pages-release-notes-1-7-2-mdx-71251df9f474309ba21b.js.map (99%) rename component---src-pages-release-notes-1-8-0-mdx-4dc6e03048c43d52130c.js => component---src-pages-release-notes-1-8-0-mdx-b14871559179cd9e10a9.js (97%) rename component---src-pages-release-notes-1-8-0-mdx-4dc6e03048c43d52130c.js.map => component---src-pages-release-notes-1-8-0-mdx-b14871559179cd9e10a9.js.map (99%) rename component---src-pages-release-notes-1-9-0-mdx-1e1ae32c5be1442a8f5d.js => component---src-pages-release-notes-1-9-0-mdx-c8028dde8fd643f4a218.js (98%) rename component---src-pages-release-notes-1-9-0-mdx-1e1ae32c5be1442a8f5d.js.map => component---src-pages-release-notes-1-9-0-mdx-c8028dde8fd643f4a218.js.map (99%) rename component---src-pages-release-notes-1-9-1-mdx-a1c6a693fd4e6bef5ba0.js => component---src-pages-release-notes-1-9-1-mdx-9bd5cd17e9baac2b3cec.js (91%) rename component---src-pages-release-notes-1-9-1-mdx-a1c6a693fd4e6bef5ba0.js.map => component---src-pages-release-notes-1-9-1-mdx-9bd5cd17e9baac2b3cec.js.map (99%) rename component---src-pages-release-notes-1-9-2-mdx-df4a44bfa855ee141a79.js => component---src-pages-release-notes-1-9-2-mdx-bd1d31219c4310b9066d.js (91%) rename component---src-pages-release-notes-1-9-2-mdx-df4a44bfa855ee141a79.js.map => component---src-pages-release-notes-1-9-2-mdx-bd1d31219c4310b9066d.js.map (99%) rename component---src-pages-release-notes-index-tsx-99863c5f4ef877c8203f.js => component---src-pages-release-notes-index-tsx-8f5ded2af1c951272282.js (62%) rename component---src-pages-release-notes-index-tsx-99863c5f4ef877c8203f.js.map => component---src-pages-release-notes-index-tsx-8f5ded2af1c951272282.js.map (97%) create mode 100644 component---src-pages-release-notes-list-tsx-89173dbd7acdf926f9aa.js rename component---src-pages-release-notes-list-tsx-a619104a12686a973e22.js.map => component---src-pages-release-notes-list-tsx-89173dbd7acdf926f9aa.js.map (98%) delete mode 100644 component---src-pages-release-notes-list-tsx-a619104a12686a973e22.js rename dc35e70c323241989a890bf4e2398c87f84130d4-3679478317fed04c9bb8.js => fc4dfd1a89545bfda32691141f1afb32b0e2357c-abb1630b96e7bb7b950a.js (99%) rename dc35e70c323241989a890bf4e2398c87f84130d4-3679478317fed04c9bb8.js.LICENSE.txt => fc4dfd1a89545bfda32691141f1afb32b0e2357c-abb1630b96e7bb7b950a.js.LICENSE.txt (100%) rename dc35e70c323241989a890bf4e2398c87f84130d4-3679478317fed04c9bb8.js.map => fc4dfd1a89545bfda32691141f1afb32b0e2357c-abb1630b96e7bb7b950a.js.map (99%) create mode 100644 page-data/release-notes/1.30.2/page-data.json create mode 100644 page-data/release-notes/1.31.1/page-data.json create mode 100644 release-notes/1.30.2/index.html create mode 100644 release-notes/1.31.1/index.html create mode 100644 webpack-runtime-95d5a2cac8d92e224c67.js create mode 100644 webpack-runtime-95d5a2cac8d92e224c67.js.map delete mode 100644 webpack-runtime-df2ac4bf8f220dd8f7de.js delete mode 100644 webpack-runtime-df2ac4bf8f220dd8f7de.js.map diff --git a/56a3e4ec6361b4af94eaa9d2b3158e19b2fcf91b-2f198cdd353187768999.js b/12bf3e15df1f0f820c37e5d14a2df77495d60f3c-85b6fdd84273564b38b8.js similarity index 99% rename from 56a3e4ec6361b4af94eaa9d2b3158e19b2fcf91b-2f198cdd353187768999.js rename to 12bf3e15df1f0f820c37e5d14a2df77495d60f3c-85b6fdd84273564b38b8.js index 2f6f53727e8..02e009c86df 100644 --- a/56a3e4ec6361b4af94eaa9d2b3158e19b2fcf91b-2f198cdd353187768999.js +++ b/12bf3e15df1f0f820c37e5d14a2df77495d60f3c-85b6fdd84273564b38b8.js @@ -1,2 +1,2 @@ -(self.webpackChunkarmeria_site=self.webpackChunkarmeria_site||[]).push([[2870],{9498:function(e){e.exports=function(e){var t,n=[].forEach,r=[].some,a=document.body,o=!0,i=" ";function c(t,r){var a=r.appendChild(function(t){var r=document.createElement("li"),a=document.createElement("a");e.listItemClass&&r.setAttribute("class",e.listItemClass);e.onClick&&(a.onclick=e.onClick);e.includeTitleTags&&a.setAttribute("title",t.textContent);e.includeHtml&&t.childNodes.length?n.call(t.childNodes,(function(e){a.appendChild(e.cloneNode(!0))})):a.textContent=t.textContent;return a.setAttribute("href",e.basePath+"#"+t.id),a.setAttribute("class",e.linkClass+i+"node-name--"+t.nodeName+i+e.extraLinkClasses),r.appendChild(a),r}(t));if(t.children.length){var o=l(t.isCollapsed);t.children.forEach((function(e){c(e,o)})),a.appendChild(o)}}function l(t){var n=e.orderedList?"ol":"ul",r=document.createElement(n),a=e.listClass+i+e.extraListClasses;return t&&(a+=i+e.collapsibleClass,a+=i+e.isCollapsedClass),r.setAttribute("class",a),r}function s(t){var n=0;return null!==t&&(n=t.offsetTop,e.hasInnerContainers&&(n+=s(t.offsetParent))),n}function u(t){return t&&-1!==t.className.indexOf(e.collapsibleClass)&&-1!==t.className.indexOf(e.isCollapsedClass)?(t.className=t.className.split(i+e.isCollapsedClass).join(""),u(t.parentNode.parentNode)):t}return{enableTocAnimation:function(){o=!0},disableTocAnimation:function(t){var n=t.target||t.srcElement;"string"==typeof n.className&&-1!==n.className.indexOf(e.linkClass)&&(o=!1)},render:function(e,n){var r=l(!1);if(n.forEach((function(e){c(e,r)})),null!==(t=e||t))return t.firstChild&&t.removeChild(t.firstChild),0===n.length?t:t.appendChild(r)},updateToc:function(c){var l;l=e.scrollContainer&&document.querySelector(e.scrollContainer)?document.querySelector(e.scrollContainer).scrollTop:document.documentElement.scrollTop||a.scrollTop,e.positionFixedSelector&&function(){var n;n=e.scrollContainer&&document.querySelector(e.scrollContainer)?document.querySelector(e.scrollContainer).scrollTop:document.documentElement.scrollTop||a.scrollTop;var r=document.querySelector(e.positionFixedSelector);"auto"===e.fixedSidebarOffset&&(e.fixedSidebarOffset=t.offsetTop),n>e.fixedSidebarOffset?-1===r.className.indexOf(e.positionFixedClass)&&(r.className+=i+e.positionFixedClass):r.className=r.className.split(i+e.positionFixedClass).join("")}();var d,f=c;if(o&&null!==t&&f.length>0){r.call(f,(function(t,n){return s(t)>l+e.headingsOffset+10?(d=f[0===n?n:n-1],!0):n===f.length-1?(d=f[f.length-1],!0):void 0}));var p=t.querySelectorAll("."+e.linkClass);n.call(p,(function(t){t.className=t.className.split(i+e.activeLinkClass).join("")}));var m=t.querySelectorAll("."+e.listItemClass);n.call(m,(function(t){t.className=t.className.split(i+e.activeListItemClass).join("")}));var v=t.querySelector("."+e.linkClass+".node-name--"+d.nodeName+'[href="'+e.basePath+"#"+d.id.replace(/([ #;&,.+*~':"!^$[\]()=>|/@])/g,"\\$1")+'"]');v&&-1===v.className.indexOf(e.activeLinkClass)&&(v.className+=i+e.activeLinkClass);var h=v&&v.parentNode;h&&-1===h.className.indexOf(e.activeListItemClass)&&(h.className+=i+e.activeListItemClass);var g=t.querySelectorAll("."+e.listClass+"."+e.collapsibleClass);n.call(g,(function(t){-1===t.className.indexOf(e.isCollapsedClass)&&(t.className+=i+e.isCollapsedClass)})),v&&v.nextSibling&&-1!==v.nextSibling.className.indexOf(e.isCollapsedClass)&&(v.nextSibling.className=v.nextSibling.className.split(i+e.isCollapsedClass).join("")),u(v&&v.parentNode.parentNode)}}}}},31831:function(e){e.exports={tocSelector:".js-toc",contentSelector:".js-toc-content",headingSelector:"h1, h2, h3",ignoreSelector:".js-toc-ignore",hasInnerContainers:!1,linkClass:"toc-link",extraLinkClasses:"",activeLinkClass:"is-active-link",listClass:"toc-list",extraListClasses:"",isCollapsedClass:"is-collapsed",collapsibleClass:"is-collapsible",listItemClass:"toc-list-item",activeListItemClass:"is-active-li",collapseDepth:0,scrollSmooth:!0,scrollSmoothDuration:420,scrollSmoothOffset:0,scrollEndCallback:function(e){},headingsOffset:1,throttleTimeout:50,positionFixedSelector:null,positionFixedClass:"is-position-fixed",fixedSidebarOffset:"auto",includeHtml:!1,includeTitleTags:!1,onClick:function(e){},orderedList:!0,scrollContainer:null,skipRendering:!1,headingLabelCallback:!1,ignoreHiddenElements:!1,headingObjectCallback:null,basePath:"",disableTocScrollSync:!1}},45520:function(e,t,n){var r,a,o,i;i=void 0!==n.g?n.g:this.window||this.global,a=[],r=function(e){"use strict";var t,r,a,o=n(31831),i={},c={},l=n(9498),s=n(46200),u=n(15912),d=!!(e&&e.document&&e.document.querySelector&&e.addEventListener);if("undefined"!=typeof window||d){var f=Object.prototype.hasOwnProperty;return c.destroy=function(){var e=h(i);null!==e&&(i.skipRendering||e&&(e.innerHTML=""),i.scrollContainer&&document.querySelector(i.scrollContainer)?(document.querySelector(i.scrollContainer).removeEventListener("scroll",this._scrollListener,!1),document.querySelector(i.scrollContainer).removeEventListener("resize",this._scrollListener,!1),t&&document.querySelector(i.scrollContainer).removeEventListener("click",this._clickListener,!1)):(document.removeEventListener("scroll",this._scrollListener,!1),document.removeEventListener("resize",this._scrollListener,!1),t&&document.removeEventListener("click",this._clickListener,!1)))},c.init=function(e){if(d){i=p(o,e||{}),this.options=i,this.state={},i.scrollSmooth&&(i.duration=i.scrollSmoothDuration,i.offset=i.scrollSmoothOffset,c.scrollSmooth=n(56661).initSmoothScrolling(i)),t=l(i),r=s(i),this._buildHtml=t,this._parseContent=r,this._headingsArray=a,c.destroy();var f=v(i);if(null!==f){var g=h(i);if(null!==g&&null!==(a=r.selectHeadings(f,i.headingSelector))){var b=r.nestHeadingsArray(a).nest;i.skipRendering||t.render(g,b),this._scrollListener=m((function(e){t.updateToc(a),!i.disableTocScrollSync&&u(i);var n=e&&e.target&&e.target.scrollingElement&&0===e.target.scrollingElement.scrollTop;(e&&(0===e.eventPhase||null===e.currentTarget)||n)&&(t.updateToc(a),i.scrollEndCallback&&i.scrollEndCallback(e))}),i.throttleTimeout),this._scrollListener(),i.scrollContainer&&document.querySelector(i.scrollContainer)?(document.querySelector(i.scrollContainer).addEventListener("scroll",this._scrollListener,!1),document.querySelector(i.scrollContainer).addEventListener("resize",this._scrollListener,!1)):(document.addEventListener("scroll",this._scrollListener,!1),document.addEventListener("resize",this._scrollListener,!1));var y=null;return this._clickListener=m((function(e){i.scrollSmooth&&t.disableTocAnimation(e),t.updateToc(a),y&&clearTimeout(y),y=setTimeout((function(){t.enableTocAnimation()}),i.scrollSmoothDuration)}),i.throttleTimeout),i.scrollContainer&&document.querySelector(i.scrollContainer)?document.querySelector(i.scrollContainer).addEventListener("click",this._clickListener,!1):document.addEventListener("click",this._clickListener,!1),this}}}},c.refresh=function(e){c.destroy(),c.init(e||this.options)},e.tocbot=c,c}function p(){for(var e={},t=0;t0&&(!(l=n(c))||i!==l.headingLevel);)l&&void 0!==l.children&&(c=l.children),s--;i>=e.collapseDepth&&(o.isCollapsed=!0),c.push(o)}(o,t.nest),t}),{nest:[]})},selectHeadings:function(t,n){var r=n;e.ignoreSelector&&(r=n.split(",").map((function(t){return t.trim()+":not("+e.ignoreSelector+")"})));try{return t.querySelectorAll(r)}catch(a){return console.warn("Headers not found with selector: "+r),null}}}}},56661:function(e,t){t.initSmoothScrolling=function(e){var t=e.duration,n=e.offset,r=location.hash?a(location.href):location.href;function a(e){return e.slice(0,e.lastIndexOf("#"))}document.body.addEventListener("click",(function(o){var i;"a"!==(i=o.target).tagName.toLowerCase()||!(i.hash.length>0||"#"===i.href.charAt(i.href.length-1))||a(i.href)!==r&&a(i.href)+"#"!==r||o.target.className.indexOf("no-smooth-scroll")>-1||"#"===o.target.href.charAt(o.target.href.length-2)&&"!"===o.target.href.charAt(o.target.href.length-1)||-1===o.target.className.indexOf(e.linkClass)||function(e,t){var n,r,a=window.pageYOffset,o={duration:t.duration,offset:t.offset||0,callback:t.callback,easing:t.easing||d},i=document.querySelector('[id="'+decodeURI(e).split("#").join("")+'"]')||document.querySelector('[id="'+e.split("#").join("")+'"]'),c="string"==typeof e?o.offset+(e?i&&i.getBoundingClientRect().top||0:-(document.documentElement.scrollTop||document.body.scrollTop)):e,l="function"==typeof o.duration?o.duration(c):o.duration;function s(e){r=e-n,window.scrollTo(0,o.easing(r,a,c,l)),rt.clientHeight){var n=t.querySelector("."+e.activeListItemClass);n&&(t.scrollTop=n.offsetTop)}}},96759:function(e,t,n){"use strict";n.d(t,{Ch:function(){return D},v3:function(){return M}});n(60128);var r=n(87462),a=n(4942),o=n(29439),i=n(67294),c=n(15663),l=n(80193),s=n(98692),u=n(86416),d=n(15367),f=n(86100),p=n(34856),m=n(68526),v=n(1201),h=n(14552),g=n(75900),b=n.n(g),y=n(82525);var C=n(15671),E=n(43144),x=n(60136),k=n(98557),Z=function(e){(0,x.Z)(n,e);var t=(0,k.Z)(n);function n(){var e;return(0,C.Z)(this,n),(e=t.apply(this,arguments)).state={error:void 0,info:{componentStack:""}},e}return(0,E.Z)(n,[{key:"componentDidCatch",value:function(e,t){this.setState({error:e,info:t})}},{key:"render",value:function(){var e=this.props,t=e.message,n=e.description,r=e.children,a=this.state,o=a.error,c=a.info,l=c&&c.componentStack?c.componentStack:null,s=void 0===t?(o||"").toString():t,u=void 0===n?l:n;return o?i.createElement(I,{type:"error",message:s,description:i.createElement("pre",null,u)}):r}}]),n}(i.Component),N=n(94221),w=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);at?"left":"right"})})),U=(0,c.Z)(X,2),$=U[0],J=U[1],Q=H(0,(function(e,t){!Y&&j&&j({direction:e>t?"top":"bottom"})})),ee=(0,c.Z)(Q,2),te=ee[0],ne=ee[1],re=(0,i.useState)(0),ae=(0,c.Z)(re,2),oe=ae[0],ie=ae[1],ce=(0,i.useState)(0),le=(0,c.Z)(ce,2),se=le[0],ue=le[1],de=(0,i.useState)(0),fe=(0,c.Z)(de,2),pe=fe[0],me=fe[1],ve=(0,i.useState)(0),he=(0,c.Z)(ve,2),ge=he[0],be=he[1],ye=(0,i.useState)(null),Ce=(0,c.Z)(ye,2),Ee=Ce[0],xe=Ce[1],ke=(0,i.useState)(null),Ze=(0,c.Z)(ke,2),Ne=Ze[0],we=Ze[1],Se=(0,i.useState)(0),Oe=(0,c.Z)(Se,2),Pe=Oe[0],Ie=Oe[1],Te=(0,i.useState)(0),Le=(0,c.Z)(Te,2),je=Le[0],Re=Le[1],Ae=function(e){var t=(0,i.useRef)([]),n=(0,i.useState)({}),r=(0,c.Z)(n,2)[1],a=(0,i.useRef)("function"==typeof e?e():e),o=y((function(){var e=a.current;t.current.forEach((function(t){e=t(e)})),t.current=[],a.current=e,r({})}));return[a.current,function(e){t.current.push(e),o()}]}(new Map),We=(0,c.Z)(Ae,2),De=We[0],Me=We[1],qe=function(e,t,n){return(0,i.useMemo)((function(){for(var n,r=new Map,a=t.get(null===(n=e[0])||void 0===n?void 0:n.key)||k,o=a.left+a.width,i=0;i_e?_e:e}Y?N?(Be=0,_e=Math.max(0,oe-Ee)):(Be=Math.min(0,Ee-oe),_e=0):(Be=Math.min(0,Ne-se),_e=0);var Fe=(0,i.useRef)(),Ke=(0,i.useState)(),Ve=(0,c.Z)(Ke,2),Ge=Ve[0],Ye=Ve[1];function Xe(){Ye(Date.now())}function Ue(){window.clearTimeout(Fe.current)}function $e(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:E,t=qe.get(e)||{width:0,height:0,left:0,right:0,top:0};if(Y){var n=$;N?t.right<$?n=t.right:t.right+t.width>$+Ee&&(n=t.right+t.width-Ee):t.left<-$?n=-t.left:t.left+t.width>-$+Ee&&(n=-(t.left+t.width-Ee)),ne(0),J(He(n))}else{var r=te;t.top<-te?r=-t.top:t.top+t.height>-te+Ne&&(r=-(t.top+t.height-Ne)),J(0),ne(He(r))}}!function(e,t){var n=(0,i.useState)(),r=(0,c.Z)(n,2),a=r[0],o=r[1],l=(0,i.useState)(0),s=(0,c.Z)(l,2),u=s[0],d=s[1],f=(0,i.useState)(0),p=(0,c.Z)(f,2),m=p[0],v=p[1],h=(0,i.useState)(),g=(0,c.Z)(h,2),b=g[0],y=g[1],C=(0,i.useRef)(),E=(0,i.useRef)(),x=(0,i.useRef)(null);x.current={onTouchStart:function(e){var t=e.touches[0],n=t.screenX,r=t.screenY;o({x:n,y:r}),window.clearInterval(C.current)},onTouchMove:function(e){if(a){e.preventDefault();var n=e.touches[0],r=n.screenX,i=n.screenY;o({x:r,y:i});var c=r-a.x,l=i-a.y;t(c,l);var s=Date.now();d(s),v(s-u),y({x:c,y:l})}},onTouchEnd:function(){if(a&&(o(null),y(null),b)){var e=b.x/m,n=b.y/m,r=Math.abs(e),i=Math.abs(n);if(Math.max(r,i)<.1)return;var c=e,l=n;C.current=window.setInterval((function(){Math.abs(c)<.01&&Math.abs(l)<.01?window.clearInterval(C.current):t(20*(c*=_),20*(l*=_))}),20)}},onWheel:function(e){var n=e.deltaX,r=e.deltaY,a=0,o=Math.abs(n),i=Math.abs(r);o===i?a="x"===E.current?n:r:o>i?(a=n,E.current="x"):(a=r,E.current="y"),t(-a,-a)&&e.preventDefault()}},i.useEffect((function(){function t(e){x.current.onTouchMove(e)}function n(e){x.current.onTouchEnd(e)}return document.addEventListener("touchmove",t,{passive:!1}),document.addEventListener("touchend",n,{passive:!1}),e.current.addEventListener("touchstart",(function(e){x.current.onTouchStart(e)}),{passive:!1}),e.current.addEventListener("wheel",(function(e){x.current.onWheel(e)})),function(){document.removeEventListener("touchmove",t),document.removeEventListener("touchend",n)}}),[])}(R,(function(e,t){function n(e,t){e((function(e){return He(e+t)}))}if(Y){if(Ee>=oe)return!1;n(J,e)}else{if(Ne>=se)return!1;n(ne,t)}return Ue(),Xe(),!0})),(0,i.useEffect)((function(){return Ue(),Ge&&(Fe.current=window.setTimeout((function(){Ye(0)}),100)),Ue}),[Ge]);var Je=function(e,t,n,r,a){var o,c,l,s=a.tabs,u=a.tabPosition,d=a.rtl;["top","bottom"].includes(u)?(o="width",c=d?"right":"left",l=Math.abs(t.left)):(o="height",c="top",l=-t.top);var f=t[o],p=n[o],m=r[o],v=f;return p+m>f&&(v=f-m),(0,i.useMemo)((function(){if(!s.length)return[0,0];for(var t=s.length,n=t,r=0;rl+v){n=r-1;break}}for(var i=0,u=t-1;u>=0;u-=1)if((e.get(s[u].key)||Z)[c]0,vt=$+Ee=0&&(t=t.substring(n+1));var r=!1,a=e.href;if(a){var o=a.lastIndexOf("?");o>0&&(r="full"===a.substring(o+1),a=a.substring(0,o))}var c="";e.plural&&(c=t.match(/(ch|s|sh|x|z)$/)?"es":"s");var l="";if(t.indexOf("#")>0){var s=t.replace("#",".");l=s,t=r?s:s.replace(/ *\([^)]*\)*/,"()")}else l=t;var u=a?i.createElement(Ce.MS,{href:a,title:l},t):t;return i.createElement("code",null,u,i.createElement("span",{className:"api-link-module--type-link-suffix--g5Weu"},c))},we=function(e){return i.createElement("div",{className:"aspect-ratio-module--wrapper--kXJ36",style:{maxWidth:"number"==typeof e.maxWidth?e.maxWidth+"px":e.maxWidth,"--aspect-ratio":"("+e.width+"/"+e.height+")"}},e.children)},Se=n(94560),Oe=n(78079),Pe=n(50365),Ie=function(e){return i.createElement("div",{style:{maxWidth:"number"==typeof e.value?e.value+"px":e.value,marginLeft:"auto",marginRight:"auto"}},e.children)},Te=n(29089),Le=n(75609);function je(e){var t=e.dependencies.map((function(e){return" implementation '"+e.groupId+":"+e.artifactId+"'"})).join("\n");return"\ndependencies {\n"+(null==e.boms?"":e.boms.map((function(e){var t=e.groupId+":"+e.artifactId;return" implementation platform('"+t+":"+(null!=e.version?e.version:Le[t])+"')"})).join("\n")+"\n\n")+" ...\n"+t+"\n}\n"}function Re(e){var t=e.dependencies.map((function(e){return' implementation("'+e.groupId+":"+e.artifactId+'")'})).join("\n");return"\ndependencies {\n"+(null==e.boms?"":e.boms.map((function(e){var t=e.groupId+":"+e.artifactId;return' implementation(platform("'+t+":"+(null!=e.version?e.version:Le[t])+'"))'})).join("\n")+"\n\n")+" ...\n"+t+"\n}\n"}function Ae(e){var t=e.dependencies.map((function(e){return" \n "+e.groupId+"\n "+e.artifactId+"\n "})).join("\n");return(null==e.boms?"":"\n \n"+e.boms.map((function(e){var t;if(null!=e.version)t=e.version;else{var n=e.groupId+":"+e.artifactId;t=Le[n]}return" \n "+e.groupId+"\n "+e.artifactId+"\n "+t+"\n pom\n import\n "})).join("\n")+"\n \n\n")+"\n\n ...\n"+t+"\n\n"}var We=function(e){return i.createElement(de,null,i.createElement(de.TabPane,{tab:"Gradle",key:"gradle"},i.createElement(Se.Z,{language:"groovy",filename:"build.gradle"},je(e))),i.createElement(de.TabPane,{tab:"Gradle (Kotlin)",key:"gradle_kotlin"},i.createElement(Se.Z,{language:"kotlin",filename:"build.gradle.kts"},Re(e))),i.createElement(de.TabPane,{tab:"Maven",key:"maven"},i.createElement(Se.Z,{language:"xml",filename:"pom.xml"},Ae(e))))},De=n(15671),Me=n(43144),qe=n(60136),ze=n(98557),Be=["className","prefixCls","style","active","status","iconPrefix","icon","wrapperStyle","stepNumber","disabled","description","title","subTitle","progressDot","stepIcon","tailContent","icons","stepIndex","onStepClick","onClick"];function _e(e){return"string"==typeof e}var He=function(e){(0,qe.Z)(n,e);var t=(0,ze.Z)(n);function n(){var e;return(0,De.Z)(this,n),(e=t.apply(this,arguments)).onClick=function(){var t=e.props,n=t.onClick,r=t.onStepClick,a=t.stepIndex;n&&n.apply(void 0,arguments),r(a)},e}return(0,Me.Z)(n,[{key:"renderIconNode",value:function(){var e,t,n=this.props,r=n.prefixCls,o=n.progressDot,c=n.stepIcon,l=n.stepNumber,s=n.status,u=n.title,d=n.description,p=n.icon,m=n.iconPrefix,v=n.icons,h=f()("".concat(r,"-icon"),"".concat(m,"icon"),(e={},(0,a.Z)(e,"".concat(m,"icon-").concat(p),p&&_e(p)),(0,a.Z)(e,"".concat(m,"icon-check"),!p&&"finish"===s&&(v&&!v.finish||!v)),(0,a.Z)(e,"".concat(m,"icon-cross"),!p&&"error"===s&&(v&&!v.error||!v)),e)),g=i.createElement("span",{className:"".concat(r,"-icon-dot")});return t=o?"function"==typeof o?i.createElement("span",{className:"".concat(r,"-icon")},o(g,{index:l-1,status:s,title:u,description:d})):i.createElement("span",{className:"".concat(r,"-icon")},g):p&&!_e(p)?i.createElement("span",{className:"".concat(r,"-icon")},p):v&&v.finish&&"finish"===s?i.createElement("span",{className:"".concat(r,"-icon")},v.finish):v&&v.error&&"error"===s?i.createElement("span",{className:"".concat(r,"-icon")},v.error):p||"finish"===s||"error"===s?i.createElement("span",{className:h}):i.createElement("span",{className:"".concat(r,"-icon")},l),c&&(t=c({index:l-1,status:s,title:u,description:d,node:t})),t}},{key:"render",value:function(){var e,t=this.props,n=t.className,r=t.prefixCls,o=t.style,c=t.active,l=t.status,d=void 0===l?"wait":l,p=(t.iconPrefix,t.icon),m=(t.wrapperStyle,t.stepNumber,t.disabled),v=t.description,h=t.title,g=t.subTitle,b=(t.progressDot,t.stepIcon,t.tailContent),y=(t.icons,t.stepIndex,t.onStepClick),C=t.onClick,E=(0,s.Z)(t,Be),x=f()("".concat(r,"-item"),"".concat(r,"-item-").concat(d),n,(e={},(0,a.Z)(e,"".concat(r,"-item-custom"),p),(0,a.Z)(e,"".concat(r,"-item-active"),c),(0,a.Z)(e,"".concat(r,"-item-disabled"),!0===m),e)),k=(0,u.Z)({},o),Z={};return y&&!m&&(Z.role="button",Z.tabIndex=0,Z.onClick=this.onClick),i.createElement("div",Object.assign({},E,{className:x,style:k}),i.createElement("div",Object.assign({onClick:C},Z,{className:"".concat(r,"-item-container")}),i.createElement("div",{className:"".concat(r,"-item-tail")},b),i.createElement("div",{className:"".concat(r,"-item-icon")},this.renderIconNode()),i.createElement("div",{className:"".concat(r,"-item-content")},i.createElement("div",{className:"".concat(r,"-item-title")},h,g&&i.createElement("div",{title:"string"==typeof g?g:void 0,className:"".concat(r,"-item-subtitle")},g)),v&&i.createElement("div",{className:"".concat(r,"-item-description")},v))))}}]),n}(i.Component),Fe=["prefixCls","style","className","children","direction","type","labelPlacement","iconPrefix","status","size","current","progressDot","stepIcon","initial","icons","onChange"],Ke=function(e){(0,qe.Z)(n,e);var t=(0,ze.Z)(n);function n(){var e;return(0,De.Z)(this,n),(e=t.apply(this,arguments)).onStepClick=function(t){var n=e.props,r=n.onChange,a=n.current;r&&a!==t&&r(t)},e}return(0,Me.Z)(n,[{key:"render",value:function(){var e,t=this,n=this.props,r=n.prefixCls,o=n.style,c=void 0===o?{}:o,l=n.className,d=n.children,m=n.direction,v=n.type,h=n.labelPlacement,g=n.iconPrefix,b=n.status,y=n.size,C=n.current,E=n.progressDot,x=n.stepIcon,k=n.initial,Z=n.icons,N=n.onChange,w=(0,s.Z)(n,Fe),S="navigation"===v,O=E?"vertical":h,P=f()(r,"".concat(r,"-").concat(m),l,(e={},(0,a.Z)(e,"".concat(r,"-").concat(y),y),(0,a.Z)(e,"".concat(r,"-label-").concat(O),"horizontal"===m),(0,a.Z)(e,"".concat(r,"-dot"),!!E),(0,a.Z)(e,"".concat(r,"-navigation"),S),e));return i.createElement("div",Object.assign({className:P,style:c},w),(0,p.Z)(d).map((function(e,n){var a=k+n,o=(0,u.Z)({stepNumber:"".concat(a+1),stepIndex:a,key:a,prefixCls:r,iconPrefix:g,wrapperStyle:c,progressDot:E,stepIcon:x,icons:Z,onStepClick:N&&t.onStepClick},e.props);return"error"===b&&n===C-1&&(o.className="".concat(r,"-next-error")),e.props.status||(o.status=a===C?b:a100?100:e}function tt(e){var t=e.success,n=e.successPercent;return t&&"progress"in t&&((0,ie.Z)(!1,"Progress","`success.progress` is deprecated. Please use `success.percent` instead."),n=t.progress),t&&"percent"in t&&(n=t.percent),n}var nt=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a4&&void 0!==arguments[4]?arguments[4]:0,o=arguments.length>5?arguments[5]:void 0,i=50-r/2,c=0,l=-i,s=0,u=-2*i;switch(o){case"left":c=-i,l=0,s=2*i,u=0;break;case"right":c=i,l=0,s=-2*i,u=0;break;case"bottom":l=i,u=2*i}var d="M 50,50 m ".concat(c,",").concat(l,"\n a ").concat(i,",").concat(i," 0 1 1 ").concat(s,",").concat(-u,"\n a ").concat(i,",").concat(i," 0 1 1 ").concat(-s,",").concat(u),f=2*Math.PI*i,p={stroke:"string"==typeof n?n:void 0,strokeDasharray:"".concat(t/100*(f-a),"px ").concat(f,"px"),strokeDashoffset:"-".concat(a/2+e/100*(f-a),"px"),transition:"stroke-dashoffset .3s ease 0s, stroke-dasharray .3s ease 0s, stroke .3s, stroke-width .06s ease .3s, opacity .3s ease 0s"};return{pathString:d,pathStyle:p}}var gt=function(e){var t,n=e.id,r=e.prefixCls,a=e.strokeWidth,u=e.trailWidth,d=e.gapDegree,p=e.gapPosition,m=e.trailColor,v=e.strokeLinecap,h=e.style,g=e.className,b=e.strokeColor,y=e.percent,C=(0,s.Z)(e,pt),E=ft(n),x="".concat(E,"-gradient"),k=ht(0,100,m,a,d,p),Z=k.pathString,N=k.pathStyle,w=vt(y),S=vt(b),O=S.find((function(e){return e&&"object"===(0,l.Z)(e)})),P=it(w),I=(0,c.Z)(P,1)[0];return i.createElement("svg",(0,o.Z)({className:f()("".concat(r,"-circle"),g),viewBox:"0 0 100 100",style:h,id:n},C),O&&i.createElement("defs",null,i.createElement("linearGradient",{id:x,x1:"100%",y1:"0%",x2:"0%",y2:"0%"},Object.keys(O).sort((function(e,t){return mt(e)-mt(t)})).map((function(e,t){return i.createElement("stop",{key:t,offset:e,stopColor:O[e]})})))),i.createElement("path",{className:"".concat(r,"-circle-trail"),d:Z,stroke:m,strokeLinecap:v,strokeWidth:u||a,fillOpacity:"0",style:N}),(t=0,w.map((function(e,n){var o=S[n]||S[S.length-1],c=o&&"object"===(0,l.Z)(o)?"url(#".concat(x,")"):"",s=ht(t,e,o,a,d,p);return t+=e,i.createElement("path",{key:n,className:"".concat(r,"-circle-path"),d:s.pathString,stroke:c,strokeLinecap:v,strokeWidth:a,opacity:0===e?0:1,fillOpacity:"0",style:s.pathStyle,ref:I[n]})}))).reverse())};gt.defaultProps=ot,gt.displayName="Circle";var bt=gt;var yt=function(e){var t,n,r,o=e.prefixCls,c=e.width,l=e.strokeWidth,s=e.trailColor,u=e.strokeLinecap,d=e.gapPosition,p=e.gapDegree,m=e.type,v=e.children,h=e.success,g=c||120,b={width:g,height:g,fontSize:.15*g+6},y=l||6,C=d||"dashboard"===m&&"bottom"||"top",E="[object Object]"===Object.prototype.toString.call(e.strokeColor),x=function(e){var t=e.success,n=void 0===t?{}:t,r=e.strokeColor;return[n.strokeColor||Qe.ez.green,r||null]}({success:h,strokeColor:e.strokeColor}),k=f()("".concat(o,"-inner"),(0,a.Z)({},"".concat(o,"-circle-gradient"),E));return i.createElement("div",{className:k,style:b},i.createElement(bt,{percent:(t=e,n=t.percent,r=et(tt({success:t.success,successPercent:t.successPercent})),[r,et(et(n)-r)]),strokeWidth:y,trailWidth:y,strokeColor:x,strokeLinecap:u,trailColor:s,prefixCls:o,gapDegree:p||0===p?p:"dashboard"===m?75:void 0,gapPosition:C}),v)},Ct=function(e){for(var t=e.size,n=e.steps,r=e.percent,o=void 0===r?0:r,c=e.strokeWidth,l=void 0===c?8:c,s=e.strokeColor,u=e.trailColor,d=e.prefixCls,p=e.children,m=Math.round(n*(o/100)),v="small"===t?2:14,h=[],g=0;g=100?"success":e||"normal"}},{key:"renderProcessInfo",value:function(e,t){var n,r=this.props,a=r.showInfo,o=r.format,c=r.type,l=r.percent,s=tt(this.props);if(!a)return null;var u="line"===c;return o||"exception"!==t&&"success"!==t?n=(o||function(e){return"".concat(e,"%")})(et(l),et(s)):"exception"===t?n=u?i.createElement($e.Z,null):i.createElement(oe.Z,null):"success"===t&&(n=u?i.createElement(Ue.Z,null):i.createElement(Ge.Z,null)),i.createElement("span",{className:"".concat(e,"-text"),title:"string"==typeof n?n:void 0},n)}},{key:"render",value:function(){return i.createElement(ce.C,null,this.renderProgress)}}]),n}(i.Component);kt.defaultProps={type:"line",percent:0,showInfo:!0,trailColor:null,size:"default",gapDegree:void 0,strokeLinecap:"round"};var Zt=kt,Nt=n(95532),wt={xs:"(max-width: 575px)",sm:"(min-width: 576px)",md:"(min-width: 768px)",lg:"(min-width: 992px)",xl:"(min-width: 1200px)",xxl:"(min-width: 1600px)"},St=new Map,Ot=-1,Pt={},It={matchHandlers:{},dispatch:function(e){return Pt=e,St.forEach((function(e){return e(Pt)})),St.size>=1},subscribe:function(e){return St.size||this.register(),Ot+=1,St.set(Ot,e),e(Pt),Ot},unsubscribe:function(e){St.delete(e),St.size||this.unregister()},unregister:function(){var e=this;Object.keys(wt).forEach((function(t){var n=wt[t],r=e.matchHandlers[n];null==r||r.mql.removeListener(null==r?void 0:r.listener)})),St.clear()},register:function(){var e=this;Object.keys(wt).forEach((function(t){var n=wt[t],r=function(n){var r=n.matches;e.dispatch((0,o.Z)((0,o.Z)({},Pt),(0,a.Z)({},t,r)))},i=window.matchMedia(n);i.addListener(r),e.matchHandlers[n]={mql:i,listener:r},r(i)}))}};var Tt=function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],t=(0,i.useRef)({}),n=(0,Nt.Z)();return(0,i.useEffect)((function(){var r=It.subscribe((function(r){t.current=r,e&&n()}));return function(){return It.unsubscribe(r)}}),[]),t.current},Lt=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a=0?[t.substring(n,r),t.substring(r+1)]:[t.substring(n),void 0],o=a[0],c=a[1];return i.createElement(Ne,{name:o,href:c,plural:t.startsWith("typeplural://")})}return t.includes("://")||t.startsWith("//")?i.createElement(Ce.MS,e):t.startsWith(Kt)?i.createElement(ye.Link,{to:e.href.substring(Kt.length-1),className:e.className},e.children):i.createElement("a",e)},pre:function(e){var t,n=(null===(t=e.children.props.className)||void 0===t?void 0:t.replace(/language-/,""))||"none";return i.createElement(Se.Z,{language:n,filename:e.children.props.filename,highlight:e.children.props.highlight,showlineno:e.children.props.showlineno},e.children.props.children)},h1:function(e){return i.createElement(Ft,Object.assign({level:1},e))},h2:function(e){return i.createElement(Ft,Object.assign({level:2},e))},h3:function(e){return i.createElement(Ft,Object.assign({level:3},e))},h4:function(e){return i.createElement(Ft,Object.assign({level:4},e))},table:function(e){return i.createElement("div",{className:"ant-table ant-table-small ant-table-bordered"},i.createElement("div",{className:"ant-table-container"},i.createElement("div",{className:"ant-table-content"},i.createElement("table",e))))},thead:function(e){return i.createElement("thead",Object.assign({className:"ant-table-thead"},e))},tbody:function(e){return i.createElement("tbody",Object.assign({className:"ant-table-tbody"},e))},tfoot:function(e){return i.createElement("tfoot",Object.assign({className:"ant-table-tfoot"},e))},th:function(e){return i.createElement("th",Object.assign({className:"ant-table-cell"},Gt(e)))},td:function(e){return i.createElement("td",Object.assign({className:"ant-table-cell"},Gt(e)))},AspectRatio:we,CodeBlock:Se.Z,Emoji:Oe.Z,Mailchimp:Pe.Z,MaxWidth:Ie,NoWrap:Te.Z,RequiredDependencies:We,TutorialSteps:Wt,Tabs:function(e){return i.createElement(de,Object.assign({animated:{inkBar:!0,tabPane:!1}},e))},TabPane:de.TabPane,Tip:Ze.Ch,TypeLink:Ne,ThankYou:(0,ge.ZP)((function(){return Promise.all([n.e(532),n.e(5862)]).then(n.bind(n,15862))})),Warning:Ze.v3};function Gt(e){var t=Bt(Bt({},e),{},{rowSpan:e.rowspan,colSpan:e.colspan});return e.align&&(t.style?t.style=Bt(Bt({},t.style),{},{textAlign:e.align}):t.style={textAlign:e.align}),delete t.align,delete t.rowspan,delete t.colspan,t}var Yt=function(e){var t,n,a;(0,i.useLayoutEffect)((function(){return ke().init({tocSelector:'div[class^="mdx-module--pageToc-"]',contentSelector:'div[class^="mdx-module--content-"]',headingSelector:"h1, h2, h3, h4",ignoreHiddenElements:!0}),function(){ke().destroy()}}),[]);var o={};e.candidateMdxNodes.forEach((function(t){var n;t.parent.sourceInstanceName===e.prefix&&((null===(n=t.tableOfContents.items)||void 0===n?void 0:n.length)||0)>0&&(t.isBookmark=!1,void 0===t.parent.relativeDirectory||""===t.parent.relativeDirectory?t.path=t.parent.name:t.path=t.parent.relativeDirectory+"/"+t.parent.name,t.path.endsWith("/index")&&(t.path=t.path.substring(0,t.path.length-6)),"index"===t.path?t.href="/"+e.prefix:t.href="/"+e.prefix+"/"+t.path,o[t.path]=t)}));var c,l=[],s={};Object.entries(e.index).forEach((function(e){var t=e[0],n=e[1];if(Array.isArray(n))for(var r=n,a=0;a1&&t.endsWith("/")?t=t.substring(0,t.length-1):t.endsWith("/index")?t=t.substring(0,t.length-6):t.endsWith("/index.html")&&(t=t.substring(0,t.length-11)),t}}}]); -//# sourceMappingURL=56a3e4ec6361b4af94eaa9d2b3158e19b2fcf91b-2f198cdd353187768999.js.map \ No newline at end of file +(self.webpackChunkarmeria_site=self.webpackChunkarmeria_site||[]).push([[9049],{9498:function(e){e.exports=function(e){var t,n=[].forEach,r=[].some,a=document.body,o=!0,i=" ";function c(t,r){var a=r.appendChild(function(t){var r=document.createElement("li"),a=document.createElement("a");e.listItemClass&&r.setAttribute("class",e.listItemClass);e.onClick&&(a.onclick=e.onClick);e.includeTitleTags&&a.setAttribute("title",t.textContent);e.includeHtml&&t.childNodes.length?n.call(t.childNodes,(function(e){a.appendChild(e.cloneNode(!0))})):a.textContent=t.textContent;return a.setAttribute("href",e.basePath+"#"+t.id),a.setAttribute("class",e.linkClass+i+"node-name--"+t.nodeName+i+e.extraLinkClasses),r.appendChild(a),r}(t));if(t.children.length){var o=l(t.isCollapsed);t.children.forEach((function(e){c(e,o)})),a.appendChild(o)}}function l(t){var n=e.orderedList?"ol":"ul",r=document.createElement(n),a=e.listClass+i+e.extraListClasses;return t&&(a+=i+e.collapsibleClass,a+=i+e.isCollapsedClass),r.setAttribute("class",a),r}function s(t){var n=0;return null!==t&&(n=t.offsetTop,e.hasInnerContainers&&(n+=s(t.offsetParent))),n}function u(t){return t&&-1!==t.className.indexOf(e.collapsibleClass)&&-1!==t.className.indexOf(e.isCollapsedClass)?(t.className=t.className.split(i+e.isCollapsedClass).join(""),u(t.parentNode.parentNode)):t}return{enableTocAnimation:function(){o=!0},disableTocAnimation:function(t){var n=t.target||t.srcElement;"string"==typeof n.className&&-1!==n.className.indexOf(e.linkClass)&&(o=!1)},render:function(e,n){var r=l(!1);if(n.forEach((function(e){c(e,r)})),null!==(t=e||t))return t.firstChild&&t.removeChild(t.firstChild),0===n.length?t:t.appendChild(r)},updateToc:function(c){var l;l=e.scrollContainer&&document.querySelector(e.scrollContainer)?document.querySelector(e.scrollContainer).scrollTop:document.documentElement.scrollTop||a.scrollTop,e.positionFixedSelector&&function(){var n;n=e.scrollContainer&&document.querySelector(e.scrollContainer)?document.querySelector(e.scrollContainer).scrollTop:document.documentElement.scrollTop||a.scrollTop;var r=document.querySelector(e.positionFixedSelector);"auto"===e.fixedSidebarOffset&&(e.fixedSidebarOffset=t.offsetTop),n>e.fixedSidebarOffset?-1===r.className.indexOf(e.positionFixedClass)&&(r.className+=i+e.positionFixedClass):r.className=r.className.split(i+e.positionFixedClass).join("")}();var d,f=c;if(o&&null!==t&&f.length>0){r.call(f,(function(t,n){return s(t)>l+e.headingsOffset+10?(d=f[0===n?n:n-1],!0):n===f.length-1?(d=f[f.length-1],!0):void 0}));var p=t.querySelectorAll("."+e.linkClass);n.call(p,(function(t){t.className=t.className.split(i+e.activeLinkClass).join("")}));var m=t.querySelectorAll("."+e.listItemClass);n.call(m,(function(t){t.className=t.className.split(i+e.activeListItemClass).join("")}));var v=t.querySelector("."+e.linkClass+".node-name--"+d.nodeName+'[href="'+e.basePath+"#"+d.id.replace(/([ #;&,.+*~':"!^$[\]()=>|/@])/g,"\\$1")+'"]');v&&-1===v.className.indexOf(e.activeLinkClass)&&(v.className+=i+e.activeLinkClass);var h=v&&v.parentNode;h&&-1===h.className.indexOf(e.activeListItemClass)&&(h.className+=i+e.activeListItemClass);var g=t.querySelectorAll("."+e.listClass+"."+e.collapsibleClass);n.call(g,(function(t){-1===t.className.indexOf(e.isCollapsedClass)&&(t.className+=i+e.isCollapsedClass)})),v&&v.nextSibling&&-1!==v.nextSibling.className.indexOf(e.isCollapsedClass)&&(v.nextSibling.className=v.nextSibling.className.split(i+e.isCollapsedClass).join("")),u(v&&v.parentNode.parentNode)}}}}},31831:function(e){e.exports={tocSelector:".js-toc",contentSelector:".js-toc-content",headingSelector:"h1, h2, h3",ignoreSelector:".js-toc-ignore",hasInnerContainers:!1,linkClass:"toc-link",extraLinkClasses:"",activeLinkClass:"is-active-link",listClass:"toc-list",extraListClasses:"",isCollapsedClass:"is-collapsed",collapsibleClass:"is-collapsible",listItemClass:"toc-list-item",activeListItemClass:"is-active-li",collapseDepth:0,scrollSmooth:!0,scrollSmoothDuration:420,scrollSmoothOffset:0,scrollEndCallback:function(e){},headingsOffset:1,throttleTimeout:50,positionFixedSelector:null,positionFixedClass:"is-position-fixed",fixedSidebarOffset:"auto",includeHtml:!1,includeTitleTags:!1,onClick:function(e){},orderedList:!0,scrollContainer:null,skipRendering:!1,headingLabelCallback:!1,ignoreHiddenElements:!1,headingObjectCallback:null,basePath:"",disableTocScrollSync:!1}},45520:function(e,t,n){var r,a,o,i;i=void 0!==n.g?n.g:this.window||this.global,a=[],r=function(e){"use strict";var t,r,a,o=n(31831),i={},c={},l=n(9498),s=n(46200),u=n(15912),d=!!(e&&e.document&&e.document.querySelector&&e.addEventListener);if("undefined"!=typeof window||d){var f=Object.prototype.hasOwnProperty;return c.destroy=function(){var e=h(i);null!==e&&(i.skipRendering||e&&(e.innerHTML=""),i.scrollContainer&&document.querySelector(i.scrollContainer)?(document.querySelector(i.scrollContainer).removeEventListener("scroll",this._scrollListener,!1),document.querySelector(i.scrollContainer).removeEventListener("resize",this._scrollListener,!1),t&&document.querySelector(i.scrollContainer).removeEventListener("click",this._clickListener,!1)):(document.removeEventListener("scroll",this._scrollListener,!1),document.removeEventListener("resize",this._scrollListener,!1),t&&document.removeEventListener("click",this._clickListener,!1)))},c.init=function(e){if(d){i=p(o,e||{}),this.options=i,this.state={},i.scrollSmooth&&(i.duration=i.scrollSmoothDuration,i.offset=i.scrollSmoothOffset,c.scrollSmooth=n(56661).initSmoothScrolling(i)),t=l(i),r=s(i),this._buildHtml=t,this._parseContent=r,this._headingsArray=a,c.destroy();var f=v(i);if(null!==f){var g=h(i);if(null!==g&&null!==(a=r.selectHeadings(f,i.headingSelector))){var b=r.nestHeadingsArray(a).nest;i.skipRendering||t.render(g,b),this._scrollListener=m((function(e){t.updateToc(a),!i.disableTocScrollSync&&u(i);var n=e&&e.target&&e.target.scrollingElement&&0===e.target.scrollingElement.scrollTop;(e&&(0===e.eventPhase||null===e.currentTarget)||n)&&(t.updateToc(a),i.scrollEndCallback&&i.scrollEndCallback(e))}),i.throttleTimeout),this._scrollListener(),i.scrollContainer&&document.querySelector(i.scrollContainer)?(document.querySelector(i.scrollContainer).addEventListener("scroll",this._scrollListener,!1),document.querySelector(i.scrollContainer).addEventListener("resize",this._scrollListener,!1)):(document.addEventListener("scroll",this._scrollListener,!1),document.addEventListener("resize",this._scrollListener,!1));var y=null;return this._clickListener=m((function(e){i.scrollSmooth&&t.disableTocAnimation(e),t.updateToc(a),y&&clearTimeout(y),y=setTimeout((function(){t.enableTocAnimation()}),i.scrollSmoothDuration)}),i.throttleTimeout),i.scrollContainer&&document.querySelector(i.scrollContainer)?document.querySelector(i.scrollContainer).addEventListener("click",this._clickListener,!1):document.addEventListener("click",this._clickListener,!1),this}}}},c.refresh=function(e){c.destroy(),c.init(e||this.options)},e.tocbot=c,c}function p(){for(var e={},t=0;t0&&(!(l=n(c))||i!==l.headingLevel);)l&&void 0!==l.children&&(c=l.children),s--;i>=e.collapseDepth&&(o.isCollapsed=!0),c.push(o)}(o,t.nest),t}),{nest:[]})},selectHeadings:function(t,n){var r=n;e.ignoreSelector&&(r=n.split(",").map((function(t){return t.trim()+":not("+e.ignoreSelector+")"})));try{return t.querySelectorAll(r)}catch(a){return console.warn("Headers not found with selector: "+r),null}}}}},56661:function(e,t){t.initSmoothScrolling=function(e){var t=e.duration,n=e.offset,r=location.hash?a(location.href):location.href;function a(e){return e.slice(0,e.lastIndexOf("#"))}document.body.addEventListener("click",(function(o){var i;"a"!==(i=o.target).tagName.toLowerCase()||!(i.hash.length>0||"#"===i.href.charAt(i.href.length-1))||a(i.href)!==r&&a(i.href)+"#"!==r||o.target.className.indexOf("no-smooth-scroll")>-1||"#"===o.target.href.charAt(o.target.href.length-2)&&"!"===o.target.href.charAt(o.target.href.length-1)||-1===o.target.className.indexOf(e.linkClass)||function(e,t){var n,r,a=window.pageYOffset,o={duration:t.duration,offset:t.offset||0,callback:t.callback,easing:t.easing||d},i=document.querySelector('[id="'+decodeURI(e).split("#").join("")+'"]')||document.querySelector('[id="'+e.split("#").join("")+'"]'),c="string"==typeof e?o.offset+(e?i&&i.getBoundingClientRect().top||0:-(document.documentElement.scrollTop||document.body.scrollTop)):e,l="function"==typeof o.duration?o.duration(c):o.duration;function s(e){r=e-n,window.scrollTo(0,o.easing(r,a,c,l)),rt.clientHeight){var n=t.querySelector("."+e.activeListItemClass);n&&(t.scrollTop=n.offsetTop)}}},96759:function(e,t,n){"use strict";n.d(t,{Ch:function(){return D},v3:function(){return M}});n(60128);var r=n(87462),a=n(4942),o=n(29439),i=n(67294),c=n(15663),l=n(80193),s=n(98692),u=n(86416),d=n(15367),f=n(86100),p=n(34856),m=n(68526),v=n(1201),h=n(14552),g=n(75900),b=n.n(g),y=n(82525);var C=n(15671),E=n(43144),x=n(60136),k=n(98557),Z=function(e){(0,x.Z)(n,e);var t=(0,k.Z)(n);function n(){var e;return(0,C.Z)(this,n),(e=t.apply(this,arguments)).state={error:void 0,info:{componentStack:""}},e}return(0,E.Z)(n,[{key:"componentDidCatch",value:function(e,t){this.setState({error:e,info:t})}},{key:"render",value:function(){var e=this.props,t=e.message,n=e.description,r=e.children,a=this.state,o=a.error,c=a.info,l=c&&c.componentStack?c.componentStack:null,s=void 0===t?(o||"").toString():t,u=void 0===n?l:n;return o?i.createElement(I,{type:"error",message:s,description:i.createElement("pre",null,u)}):r}}]),n}(i.Component),N=n(94221),w=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);at?"left":"right"})})),U=(0,c.Z)(X,2),$=U[0],J=U[1],Q=H(0,(function(e,t){!Y&&j&&j({direction:e>t?"top":"bottom"})})),ee=(0,c.Z)(Q,2),te=ee[0],ne=ee[1],re=(0,i.useState)(0),ae=(0,c.Z)(re,2),oe=ae[0],ie=ae[1],ce=(0,i.useState)(0),le=(0,c.Z)(ce,2),se=le[0],ue=le[1],de=(0,i.useState)(0),fe=(0,c.Z)(de,2),pe=fe[0],me=fe[1],ve=(0,i.useState)(0),he=(0,c.Z)(ve,2),ge=he[0],be=he[1],ye=(0,i.useState)(null),Ce=(0,c.Z)(ye,2),Ee=Ce[0],xe=Ce[1],ke=(0,i.useState)(null),Ze=(0,c.Z)(ke,2),Ne=Ze[0],we=Ze[1],Se=(0,i.useState)(0),Oe=(0,c.Z)(Se,2),Pe=Oe[0],Ie=Oe[1],Te=(0,i.useState)(0),Le=(0,c.Z)(Te,2),je=Le[0],Re=Le[1],Ae=function(e){var t=(0,i.useRef)([]),n=(0,i.useState)({}),r=(0,c.Z)(n,2)[1],a=(0,i.useRef)("function"==typeof e?e():e),o=y((function(){var e=a.current;t.current.forEach((function(t){e=t(e)})),t.current=[],a.current=e,r({})}));return[a.current,function(e){t.current.push(e),o()}]}(new Map),We=(0,c.Z)(Ae,2),De=We[0],Me=We[1],qe=function(e,t,n){return(0,i.useMemo)((function(){for(var n,r=new Map,a=t.get(null===(n=e[0])||void 0===n?void 0:n.key)||k,o=a.left+a.width,i=0;i_e?_e:e}Y?N?(Be=0,_e=Math.max(0,oe-Ee)):(Be=Math.min(0,Ee-oe),_e=0):(Be=Math.min(0,Ne-se),_e=0);var Fe=(0,i.useRef)(),Ke=(0,i.useState)(),Ve=(0,c.Z)(Ke,2),Ge=Ve[0],Ye=Ve[1];function Xe(){Ye(Date.now())}function Ue(){window.clearTimeout(Fe.current)}function $e(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:E,t=qe.get(e)||{width:0,height:0,left:0,right:0,top:0};if(Y){var n=$;N?t.right<$?n=t.right:t.right+t.width>$+Ee&&(n=t.right+t.width-Ee):t.left<-$?n=-t.left:t.left+t.width>-$+Ee&&(n=-(t.left+t.width-Ee)),ne(0),J(He(n))}else{var r=te;t.top<-te?r=-t.top:t.top+t.height>-te+Ne&&(r=-(t.top+t.height-Ne)),J(0),ne(He(r))}}!function(e,t){var n=(0,i.useState)(),r=(0,c.Z)(n,2),a=r[0],o=r[1],l=(0,i.useState)(0),s=(0,c.Z)(l,2),u=s[0],d=s[1],f=(0,i.useState)(0),p=(0,c.Z)(f,2),m=p[0],v=p[1],h=(0,i.useState)(),g=(0,c.Z)(h,2),b=g[0],y=g[1],C=(0,i.useRef)(),E=(0,i.useRef)(),x=(0,i.useRef)(null);x.current={onTouchStart:function(e){var t=e.touches[0],n=t.screenX,r=t.screenY;o({x:n,y:r}),window.clearInterval(C.current)},onTouchMove:function(e){if(a){e.preventDefault();var n=e.touches[0],r=n.screenX,i=n.screenY;o({x:r,y:i});var c=r-a.x,l=i-a.y;t(c,l);var s=Date.now();d(s),v(s-u),y({x:c,y:l})}},onTouchEnd:function(){if(a&&(o(null),y(null),b)){var e=b.x/m,n=b.y/m,r=Math.abs(e),i=Math.abs(n);if(Math.max(r,i)<.1)return;var c=e,l=n;C.current=window.setInterval((function(){Math.abs(c)<.01&&Math.abs(l)<.01?window.clearInterval(C.current):t(20*(c*=_),20*(l*=_))}),20)}},onWheel:function(e){var n=e.deltaX,r=e.deltaY,a=0,o=Math.abs(n),i=Math.abs(r);o===i?a="x"===E.current?n:r:o>i?(a=n,E.current="x"):(a=r,E.current="y"),t(-a,-a)&&e.preventDefault()}},i.useEffect((function(){function t(e){x.current.onTouchMove(e)}function n(e){x.current.onTouchEnd(e)}return document.addEventListener("touchmove",t,{passive:!1}),document.addEventListener("touchend",n,{passive:!1}),e.current.addEventListener("touchstart",(function(e){x.current.onTouchStart(e)}),{passive:!1}),e.current.addEventListener("wheel",(function(e){x.current.onWheel(e)})),function(){document.removeEventListener("touchmove",t),document.removeEventListener("touchend",n)}}),[])}(R,(function(e,t){function n(e,t){e((function(e){return He(e+t)}))}if(Y){if(Ee>=oe)return!1;n(J,e)}else{if(Ne>=se)return!1;n(ne,t)}return Ue(),Xe(),!0})),(0,i.useEffect)((function(){return Ue(),Ge&&(Fe.current=window.setTimeout((function(){Ye(0)}),100)),Ue}),[Ge]);var Je=function(e,t,n,r,a){var o,c,l,s=a.tabs,u=a.tabPosition,d=a.rtl;["top","bottom"].includes(u)?(o="width",c=d?"right":"left",l=Math.abs(t.left)):(o="height",c="top",l=-t.top);var f=t[o],p=n[o],m=r[o],v=f;return p+m>f&&(v=f-m),(0,i.useMemo)((function(){if(!s.length)return[0,0];for(var t=s.length,n=t,r=0;rl+v){n=r-1;break}}for(var i=0,u=t-1;u>=0;u-=1)if((e.get(s[u].key)||Z)[c]0,vt=$+Ee=0&&(t=t.substring(n+1));var r=!1,a=e.href;if(a){var o=a.lastIndexOf("?");o>0&&(r="full"===a.substring(o+1),a=a.substring(0,o))}var c="";e.plural&&(c=t.match(/(ch|s|sh|x|z)$/)?"es":"s");var l="";if(t.indexOf("#")>0){var s=t.replace("#",".");l=s,t=r?s:s.replace(/ *\([^)]*\)*/,"()")}else l=t;var u=a?i.createElement(Ce.MS,{href:a,title:l},t):t;return i.createElement("code",null,u,i.createElement("span",{className:"api-link-module--type-link-suffix--g5Weu"},c))},we=function(e){return i.createElement("div",{className:"aspect-ratio-module--wrapper--kXJ36",style:{maxWidth:"number"==typeof e.maxWidth?e.maxWidth+"px":e.maxWidth,"--aspect-ratio":"("+e.width+"/"+e.height+")"}},e.children)},Se=n(94560),Oe=n(78079),Pe=n(50365),Ie=function(e){return i.createElement("div",{style:{maxWidth:"number"==typeof e.value?e.value+"px":e.value,marginLeft:"auto",marginRight:"auto"}},e.children)},Te=n(29089),Le=n(75609);function je(e){var t=e.dependencies.map((function(e){return" implementation '"+e.groupId+":"+e.artifactId+"'"})).join("\n");return"\ndependencies {\n"+(null==e.boms?"":e.boms.map((function(e){var t=e.groupId+":"+e.artifactId;return" implementation platform('"+t+":"+(null!=e.version?e.version:Le[t])+"')"})).join("\n")+"\n\n")+" ...\n"+t+"\n}\n"}function Re(e){var t=e.dependencies.map((function(e){return' implementation("'+e.groupId+":"+e.artifactId+'")'})).join("\n");return"\ndependencies {\n"+(null==e.boms?"":e.boms.map((function(e){var t=e.groupId+":"+e.artifactId;return' implementation(platform("'+t+":"+(null!=e.version?e.version:Le[t])+'"))'})).join("\n")+"\n\n")+" ...\n"+t+"\n}\n"}function Ae(e){var t=e.dependencies.map((function(e){return" \n "+e.groupId+"\n "+e.artifactId+"\n "})).join("\n");return(null==e.boms?"":"\n \n"+e.boms.map((function(e){var t;if(null!=e.version)t=e.version;else{var n=e.groupId+":"+e.artifactId;t=Le[n]}return" \n "+e.groupId+"\n "+e.artifactId+"\n "+t+"\n pom\n import\n "})).join("\n")+"\n \n\n")+"\n\n ...\n"+t+"\n\n"}var We=function(e){return i.createElement(de,null,i.createElement(de.TabPane,{tab:"Gradle",key:"gradle"},i.createElement(Se.Z,{language:"groovy",filename:"build.gradle"},je(e))),i.createElement(de.TabPane,{tab:"Gradle (Kotlin)",key:"gradle_kotlin"},i.createElement(Se.Z,{language:"kotlin",filename:"build.gradle.kts"},Re(e))),i.createElement(de.TabPane,{tab:"Maven",key:"maven"},i.createElement(Se.Z,{language:"xml",filename:"pom.xml"},Ae(e))))},De=n(15671),Me=n(43144),qe=n(60136),ze=n(98557),Be=["className","prefixCls","style","active","status","iconPrefix","icon","wrapperStyle","stepNumber","disabled","description","title","subTitle","progressDot","stepIcon","tailContent","icons","stepIndex","onStepClick","onClick"];function _e(e){return"string"==typeof e}var He=function(e){(0,qe.Z)(n,e);var t=(0,ze.Z)(n);function n(){var e;return(0,De.Z)(this,n),(e=t.apply(this,arguments)).onClick=function(){var t=e.props,n=t.onClick,r=t.onStepClick,a=t.stepIndex;n&&n.apply(void 0,arguments),r(a)},e}return(0,Me.Z)(n,[{key:"renderIconNode",value:function(){var e,t,n=this.props,r=n.prefixCls,o=n.progressDot,c=n.stepIcon,l=n.stepNumber,s=n.status,u=n.title,d=n.description,p=n.icon,m=n.iconPrefix,v=n.icons,h=f()("".concat(r,"-icon"),"".concat(m,"icon"),(e={},(0,a.Z)(e,"".concat(m,"icon-").concat(p),p&&_e(p)),(0,a.Z)(e,"".concat(m,"icon-check"),!p&&"finish"===s&&(v&&!v.finish||!v)),(0,a.Z)(e,"".concat(m,"icon-cross"),!p&&"error"===s&&(v&&!v.error||!v)),e)),g=i.createElement("span",{className:"".concat(r,"-icon-dot")});return t=o?"function"==typeof o?i.createElement("span",{className:"".concat(r,"-icon")},o(g,{index:l-1,status:s,title:u,description:d})):i.createElement("span",{className:"".concat(r,"-icon")},g):p&&!_e(p)?i.createElement("span",{className:"".concat(r,"-icon")},p):v&&v.finish&&"finish"===s?i.createElement("span",{className:"".concat(r,"-icon")},v.finish):v&&v.error&&"error"===s?i.createElement("span",{className:"".concat(r,"-icon")},v.error):p||"finish"===s||"error"===s?i.createElement("span",{className:h}):i.createElement("span",{className:"".concat(r,"-icon")},l),c&&(t=c({index:l-1,status:s,title:u,description:d,node:t})),t}},{key:"render",value:function(){var e,t=this.props,n=t.className,r=t.prefixCls,o=t.style,c=t.active,l=t.status,d=void 0===l?"wait":l,p=(t.iconPrefix,t.icon),m=(t.wrapperStyle,t.stepNumber,t.disabled),v=t.description,h=t.title,g=t.subTitle,b=(t.progressDot,t.stepIcon,t.tailContent),y=(t.icons,t.stepIndex,t.onStepClick),C=t.onClick,E=(0,s.Z)(t,Be),x=f()("".concat(r,"-item"),"".concat(r,"-item-").concat(d),n,(e={},(0,a.Z)(e,"".concat(r,"-item-custom"),p),(0,a.Z)(e,"".concat(r,"-item-active"),c),(0,a.Z)(e,"".concat(r,"-item-disabled"),!0===m),e)),k=(0,u.Z)({},o),Z={};return y&&!m&&(Z.role="button",Z.tabIndex=0,Z.onClick=this.onClick),i.createElement("div",Object.assign({},E,{className:x,style:k}),i.createElement("div",Object.assign({onClick:C},Z,{className:"".concat(r,"-item-container")}),i.createElement("div",{className:"".concat(r,"-item-tail")},b),i.createElement("div",{className:"".concat(r,"-item-icon")},this.renderIconNode()),i.createElement("div",{className:"".concat(r,"-item-content")},i.createElement("div",{className:"".concat(r,"-item-title")},h,g&&i.createElement("div",{title:"string"==typeof g?g:void 0,className:"".concat(r,"-item-subtitle")},g)),v&&i.createElement("div",{className:"".concat(r,"-item-description")},v))))}}]),n}(i.Component),Fe=["prefixCls","style","className","children","direction","type","labelPlacement","iconPrefix","status","size","current","progressDot","stepIcon","initial","icons","onChange"],Ke=function(e){(0,qe.Z)(n,e);var t=(0,ze.Z)(n);function n(){var e;return(0,De.Z)(this,n),(e=t.apply(this,arguments)).onStepClick=function(t){var n=e.props,r=n.onChange,a=n.current;r&&a!==t&&r(t)},e}return(0,Me.Z)(n,[{key:"render",value:function(){var e,t=this,n=this.props,r=n.prefixCls,o=n.style,c=void 0===o?{}:o,l=n.className,d=n.children,m=n.direction,v=n.type,h=n.labelPlacement,g=n.iconPrefix,b=n.status,y=n.size,C=n.current,E=n.progressDot,x=n.stepIcon,k=n.initial,Z=n.icons,N=n.onChange,w=(0,s.Z)(n,Fe),S="navigation"===v,O=E?"vertical":h,P=f()(r,"".concat(r,"-").concat(m),l,(e={},(0,a.Z)(e,"".concat(r,"-").concat(y),y),(0,a.Z)(e,"".concat(r,"-label-").concat(O),"horizontal"===m),(0,a.Z)(e,"".concat(r,"-dot"),!!E),(0,a.Z)(e,"".concat(r,"-navigation"),S),e));return i.createElement("div",Object.assign({className:P,style:c},w),(0,p.Z)(d).map((function(e,n){var a=k+n,o=(0,u.Z)({stepNumber:"".concat(a+1),stepIndex:a,key:a,prefixCls:r,iconPrefix:g,wrapperStyle:c,progressDot:E,stepIcon:x,icons:Z,onStepClick:N&&t.onStepClick},e.props);return"error"===b&&n===C-1&&(o.className="".concat(r,"-next-error")),e.props.status||(o.status=a===C?b:a100?100:e}function tt(e){var t=e.success,n=e.successPercent;return t&&"progress"in t&&((0,ie.Z)(!1,"Progress","`success.progress` is deprecated. Please use `success.percent` instead."),n=t.progress),t&&"percent"in t&&(n=t.percent),n}var nt=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a4&&void 0!==arguments[4]?arguments[4]:0,o=arguments.length>5?arguments[5]:void 0,i=50-r/2,c=0,l=-i,s=0,u=-2*i;switch(o){case"left":c=-i,l=0,s=2*i,u=0;break;case"right":c=i,l=0,s=-2*i,u=0;break;case"bottom":l=i,u=2*i}var d="M 50,50 m ".concat(c,",").concat(l,"\n a ").concat(i,",").concat(i," 0 1 1 ").concat(s,",").concat(-u,"\n a ").concat(i,",").concat(i," 0 1 1 ").concat(-s,",").concat(u),f=2*Math.PI*i,p={stroke:"string"==typeof n?n:void 0,strokeDasharray:"".concat(t/100*(f-a),"px ").concat(f,"px"),strokeDashoffset:"-".concat(a/2+e/100*(f-a),"px"),transition:"stroke-dashoffset .3s ease 0s, stroke-dasharray .3s ease 0s, stroke .3s, stroke-width .06s ease .3s, opacity .3s ease 0s"};return{pathString:d,pathStyle:p}}var gt=function(e){var t,n=e.id,r=e.prefixCls,a=e.strokeWidth,u=e.trailWidth,d=e.gapDegree,p=e.gapPosition,m=e.trailColor,v=e.strokeLinecap,h=e.style,g=e.className,b=e.strokeColor,y=e.percent,C=(0,s.Z)(e,pt),E=ft(n),x="".concat(E,"-gradient"),k=ht(0,100,m,a,d,p),Z=k.pathString,N=k.pathStyle,w=vt(y),S=vt(b),O=S.find((function(e){return e&&"object"===(0,l.Z)(e)})),P=it(w),I=(0,c.Z)(P,1)[0];return i.createElement("svg",(0,o.Z)({className:f()("".concat(r,"-circle"),g),viewBox:"0 0 100 100",style:h,id:n},C),O&&i.createElement("defs",null,i.createElement("linearGradient",{id:x,x1:"100%",y1:"0%",x2:"0%",y2:"0%"},Object.keys(O).sort((function(e,t){return mt(e)-mt(t)})).map((function(e,t){return i.createElement("stop",{key:t,offset:e,stopColor:O[e]})})))),i.createElement("path",{className:"".concat(r,"-circle-trail"),d:Z,stroke:m,strokeLinecap:v,strokeWidth:u||a,fillOpacity:"0",style:N}),(t=0,w.map((function(e,n){var o=S[n]||S[S.length-1],c=o&&"object"===(0,l.Z)(o)?"url(#".concat(x,")"):"",s=ht(t,e,o,a,d,p);return t+=e,i.createElement("path",{key:n,className:"".concat(r,"-circle-path"),d:s.pathString,stroke:c,strokeLinecap:v,strokeWidth:a,opacity:0===e?0:1,fillOpacity:"0",style:s.pathStyle,ref:I[n]})}))).reverse())};gt.defaultProps=ot,gt.displayName="Circle";var bt=gt;var yt=function(e){var t,n,r,o=e.prefixCls,c=e.width,l=e.strokeWidth,s=e.trailColor,u=e.strokeLinecap,d=e.gapPosition,p=e.gapDegree,m=e.type,v=e.children,h=e.success,g=c||120,b={width:g,height:g,fontSize:.15*g+6},y=l||6,C=d||"dashboard"===m&&"bottom"||"top",E="[object Object]"===Object.prototype.toString.call(e.strokeColor),x=function(e){var t=e.success,n=void 0===t?{}:t,r=e.strokeColor;return[n.strokeColor||Qe.ez.green,r||null]}({success:h,strokeColor:e.strokeColor}),k=f()("".concat(o,"-inner"),(0,a.Z)({},"".concat(o,"-circle-gradient"),E));return i.createElement("div",{className:k,style:b},i.createElement(bt,{percent:(t=e,n=t.percent,r=et(tt({success:t.success,successPercent:t.successPercent})),[r,et(et(n)-r)]),strokeWidth:y,trailWidth:y,strokeColor:x,strokeLinecap:u,trailColor:s,prefixCls:o,gapDegree:p||0===p?p:"dashboard"===m?75:void 0,gapPosition:C}),v)},Ct=function(e){for(var t=e.size,n=e.steps,r=e.percent,o=void 0===r?0:r,c=e.strokeWidth,l=void 0===c?8:c,s=e.strokeColor,u=e.trailColor,d=e.prefixCls,p=e.children,m=Math.round(n*(o/100)),v="small"===t?2:14,h=[],g=0;g=100?"success":e||"normal"}},{key:"renderProcessInfo",value:function(e,t){var n,r=this.props,a=r.showInfo,o=r.format,c=r.type,l=r.percent,s=tt(this.props);if(!a)return null;var u="line"===c;return o||"exception"!==t&&"success"!==t?n=(o||function(e){return"".concat(e,"%")})(et(l),et(s)):"exception"===t?n=u?i.createElement($e.Z,null):i.createElement(oe.Z,null):"success"===t&&(n=u?i.createElement(Ue.Z,null):i.createElement(Ge.Z,null)),i.createElement("span",{className:"".concat(e,"-text"),title:"string"==typeof n?n:void 0},n)}},{key:"render",value:function(){return i.createElement(ce.C,null,this.renderProgress)}}]),n}(i.Component);kt.defaultProps={type:"line",percent:0,showInfo:!0,trailColor:null,size:"default",gapDegree:void 0,strokeLinecap:"round"};var Zt=kt,Nt=n(95532),wt={xs:"(max-width: 575px)",sm:"(min-width: 576px)",md:"(min-width: 768px)",lg:"(min-width: 992px)",xl:"(min-width: 1200px)",xxl:"(min-width: 1600px)"},St=new Map,Ot=-1,Pt={},It={matchHandlers:{},dispatch:function(e){return Pt=e,St.forEach((function(e){return e(Pt)})),St.size>=1},subscribe:function(e){return St.size||this.register(),Ot+=1,St.set(Ot,e),e(Pt),Ot},unsubscribe:function(e){St.delete(e),St.size||this.unregister()},unregister:function(){var e=this;Object.keys(wt).forEach((function(t){var n=wt[t],r=e.matchHandlers[n];null==r||r.mql.removeListener(null==r?void 0:r.listener)})),St.clear()},register:function(){var e=this;Object.keys(wt).forEach((function(t){var n=wt[t],r=function(n){var r=n.matches;e.dispatch((0,o.Z)((0,o.Z)({},Pt),(0,a.Z)({},t,r)))},i=window.matchMedia(n);i.addListener(r),e.matchHandlers[n]={mql:i,listener:r},r(i)}))}};var Tt=function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],t=(0,i.useRef)({}),n=(0,Nt.Z)();return(0,i.useEffect)((function(){var r=It.subscribe((function(r){t.current=r,e&&n()}));return function(){return It.unsubscribe(r)}}),[]),t.current},Lt=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a=0?[t.substring(n,r),t.substring(r+1)]:[t.substring(n),void 0],o=a[0],c=a[1];return i.createElement(Ne,{name:o,href:c,plural:t.startsWith("typeplural://")})}return t.includes("://")||t.startsWith("//")?i.createElement(Ce.MS,e):t.startsWith(Kt)?i.createElement(ye.Link,{to:e.href.substring(Kt.length-1),className:e.className},e.children):i.createElement("a",e)},pre:function(e){var t,n=(null===(t=e.children.props.className)||void 0===t?void 0:t.replace(/language-/,""))||"none";return i.createElement(Se.Z,{language:n,filename:e.children.props.filename,highlight:e.children.props.highlight,showlineno:e.children.props.showlineno},e.children.props.children)},h1:function(e){return i.createElement(Ft,Object.assign({level:1},e))},h2:function(e){return i.createElement(Ft,Object.assign({level:2},e))},h3:function(e){return i.createElement(Ft,Object.assign({level:3},e))},h4:function(e){return i.createElement(Ft,Object.assign({level:4},e))},table:function(e){return i.createElement("div",{className:"ant-table ant-table-small ant-table-bordered"},i.createElement("div",{className:"ant-table-container"},i.createElement("div",{className:"ant-table-content"},i.createElement("table",e))))},thead:function(e){return i.createElement("thead",Object.assign({className:"ant-table-thead"},e))},tbody:function(e){return i.createElement("tbody",Object.assign({className:"ant-table-tbody"},e))},tfoot:function(e){return i.createElement("tfoot",Object.assign({className:"ant-table-tfoot"},e))},th:function(e){return i.createElement("th",Object.assign({className:"ant-table-cell"},Gt(e)))},td:function(e){return i.createElement("td",Object.assign({className:"ant-table-cell"},Gt(e)))},AspectRatio:we,CodeBlock:Se.Z,Emoji:Oe.Z,Mailchimp:Pe.Z,MaxWidth:Ie,NoWrap:Te.Z,RequiredDependencies:We,TutorialSteps:Wt,Tabs:function(e){return i.createElement(de,Object.assign({animated:{inkBar:!0,tabPane:!1}},e))},TabPane:de.TabPane,Tip:Ze.Ch,TypeLink:Ne,ThankYou:(0,ge.ZP)((function(){return Promise.all([n.e(532),n.e(5862)]).then(n.bind(n,15862))})),Warning:Ze.v3};function Gt(e){var t=Bt(Bt({},e),{},{rowSpan:e.rowspan,colSpan:e.colspan});return e.align&&(t.style?t.style=Bt(Bt({},t.style),{},{textAlign:e.align}):t.style={textAlign:e.align}),delete t.align,delete t.rowspan,delete t.colspan,t}var Yt=function(e){var t,n,a;(0,i.useLayoutEffect)((function(){return ke().init({tocSelector:'div[class^="mdx-module--pageToc-"]',contentSelector:'div[class^="mdx-module--content-"]',headingSelector:"h1, h2, h3, h4",ignoreHiddenElements:!0}),function(){ke().destroy()}}),[]);var o={};e.candidateMdxNodes.forEach((function(t){var n;t.parent.sourceInstanceName===e.prefix&&((null===(n=t.tableOfContents.items)||void 0===n?void 0:n.length)||0)>0&&(t.isBookmark=!1,void 0===t.parent.relativeDirectory||""===t.parent.relativeDirectory?t.path=t.parent.name:t.path=t.parent.relativeDirectory+"/"+t.parent.name,t.path.endsWith("/index")&&(t.path=t.path.substring(0,t.path.length-6)),"index"===t.path?t.href="/"+e.prefix:t.href="/"+e.prefix+"/"+t.path,o[t.path]=t)}));var c,l=[],s={};Object.entries(e.index).forEach((function(e){var t=e[0],n=e[1];if(Array.isArray(n))for(var r=n,a=0;a1&&t.endsWith("/")?t=t.substring(0,t.length-1):t.endsWith("/index")?t=t.substring(0,t.length-6):t.endsWith("/index.html")&&(t=t.substring(0,t.length-11)),t}}}]); +//# sourceMappingURL=12bf3e15df1f0f820c37e5d14a2df77495d60f3c-85b6fdd84273564b38b8.js.map \ No newline at end of file diff --git a/56a3e4ec6361b4af94eaa9d2b3158e19b2fcf91b-2f198cdd353187768999.js.map b/12bf3e15df1f0f820c37e5d14a2df77495d60f3c-85b6fdd84273564b38b8.js.map similarity index 99% rename from 56a3e4ec6361b4af94eaa9d2b3158e19b2fcf91b-2f198cdd353187768999.js.map rename to 12bf3e15df1f0f820c37e5d14a2df77495d60f3c-85b6fdd84273564b38b8.js.map index f4c721cc928..ca2ab9e6626 100644 --- a/56a3e4ec6361b4af94eaa9d2b3158e19b2fcf91b-2f198cdd353187768999.js.map +++ b/12bf3e15df1f0f820c37e5d14a2df77495d60f3c-85b6fdd84273564b38b8.js.map @@ -1 +1 @@ -{"version":3,"file":"56a3e4ec6361b4af94eaa9d2b3158e19b2fcf91b-2f198cdd353187768999.js","mappings":"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","sources":["webpack://armeria-site/./node_modules/tocbot/src/js/build-html.js","webpack://armeria-site/./node_modules/tocbot/src/js/default-options.js","webpack://armeria-site/./node_modules/tocbot/src/js/index.js","webpack://armeria-site/./node_modules/tocbot/src/js/parse-content.js","webpack://armeria-site/./node_modules/tocbot/src/js/scroll-smooth/index.js","webpack://armeria-site/./node_modules/tocbot/src/js/update-toc-scroll.js","webpack://armeria-site/./node_modules/antd/es/alert/ErrorBoundary.js","webpack://armeria-site/./node_modules/antd/es/alert/index.js","webpack://armeria-site/./node_modules/antd/es/_util/getDataOrAriaProps.js","webpack://armeria-site/./node_modules/@ant-design/icons-svg/es/asn/WarningOutlined.js","webpack://armeria-site/./node_modules/@ant-design/icons/es/icons/WarningOutlined.js","webpack://armeria-site/./src/components/alert.tsx","webpack://armeria-site/./node_modules/rc-tabs/es/hooks/useRaf.js","webpack://armeria-site/./node_modules/rc-tabs/es/TabNavList/TabNode.js","webpack://armeria-site/./node_modules/rc-tabs/es/hooks/useOffsets.js","webpack://armeria-site/./node_modules/rc-tabs/es/hooks/useVisibleRange.js","webpack://armeria-site/./node_modules/rc-dropdown/es/placements.js","webpack://armeria-site/./node_modules/rc-dropdown/es/hooks/useAccessibility.js","webpack://armeria-site/./node_modules/rc-dropdown/es/Dropdown.js","webpack://armeria-site/./node_modules/rc-dropdown/es/index.js","webpack://armeria-site/./node_modules/rc-tabs/es/TabNavList/AddButton.js","webpack://armeria-site/./node_modules/rc-tabs/es/TabNavList/OperationNode.js","webpack://armeria-site/./node_modules/rc-tabs/es/TabContext.js","webpack://armeria-site/./node_modules/rc-tabs/es/hooks/useTouchMove.js","webpack://armeria-site/./node_modules/rc-tabs/es/hooks/useSyncState.js","webpack://armeria-site/./node_modules/rc-tabs/es/TabNavList/index.js","webpack://armeria-site/./node_modules/rc-tabs/es/hooks/useRefs.js","webpack://armeria-site/./node_modules/rc-tabs/es/TabPanelList/index.js","webpack://armeria-site/./node_modules/rc-tabs/es/TabPanelList/TabPane.js","webpack://armeria-site/./node_modules/rc-tabs/es/Tabs.js","webpack://armeria-site/./node_modules/rc-tabs/es/index.js","webpack://armeria-site/./node_modules/@ant-design/icons-svg/es/asn/PlusOutlined.js","webpack://armeria-site/./node_modules/@ant-design/icons/es/icons/PlusOutlined.js","webpack://armeria-site/./node_modules/antd/es/tabs/index.js","webpack://armeria-site/./src/components/api-link.tsx","webpack://armeria-site/./src/components/api-link.module.less","webpack://armeria-site/./src/components/aspect-ratio.tsx","webpack://armeria-site/./src/components/aspect-ratio.module.less","webpack://armeria-site/./src/components/max-width.tsx","webpack://armeria-site/./src/components/required-dependencies.tsx","webpack://armeria-site/./node_modules/rc-steps/es/Step.js","webpack://armeria-site/./node_modules/rc-steps/es/Steps.js","webpack://armeria-site/./node_modules/rc-steps/es/index.js","webpack://armeria-site/./node_modules/antd/es/progress/utils.js","webpack://armeria-site/./node_modules/antd/es/progress/Line.js","webpack://armeria-site/./node_modules/rc-progress/es/common.js","webpack://armeria-site/./node_modules/rc-progress/es/Line.js","webpack://armeria-site/./node_modules/rc-progress/es/hooks/useId.js","webpack://armeria-site/./node_modules/rc-progress/es/Circle.js","webpack://armeria-site/./node_modules/antd/es/progress/Circle.js","webpack://armeria-site/./node_modules/antd/es/progress/Steps.js","webpack://armeria-site/./node_modules/antd/es/progress/progress.js","webpack://armeria-site/./node_modules/antd/es/progress/index.js","webpack://armeria-site/./node_modules/antd/es/_util/responsiveObserve.js","webpack://armeria-site/./node_modules/antd/es/grid/hooks/useBreakpoint.js","webpack://armeria-site/./node_modules/antd/es/steps/index.js","webpack://armeria-site/./src/components/steps.tsx","webpack://armeria-site/./src/layouts/mdx.module.less","webpack://armeria-site/./src/layouts/mdx.tsx","webpack://armeria-site/./src/layouts/page-path.tsx"],"sourcesContent":["/* eslint no-var: off */\n\n/**\n * This file is responsible for building the DOM and updating DOM state.\n *\n * @author Tim Scanlin\n */\n\nmodule.exports = function (options) {\n var forEach = [].forEach;\n var some = [].some;\n var body = document.body;\n var tocElement;\n var currentlyHighlighting = true;\n var SPACE_CHAR = ' ';\n\n /**\n * Create link and list elements.\n * @param {Object} d\n * @param {HTMLElement} container\n * @return {HTMLElement}\n */\n function createEl(d, container) {\n var link = container.appendChild(createLink(d));\n if (d.children.length) {\n var list = createList(d.isCollapsed);\n d.children.forEach(function (child) {\n createEl(child, list);\n });\n link.appendChild(list);\n }\n }\n\n /**\n * Render nested heading array data into a given element.\n * @param {HTMLElement} parent Optional. If provided updates the {@see tocElement} to match.\n * @param {Array} data\n * @return {HTMLElement}\n */\n function render(parent, data) {\n var collapsed = false;\n var container = createList(collapsed);\n data.forEach(function (d) {\n createEl(d, container);\n });\n\n // Return if no TOC element is provided or known.\n tocElement = parent || tocElement;\n if (tocElement === null) {\n return;\n }\n\n // Remove existing child if it exists.\n if (tocElement.firstChild) {\n tocElement.removeChild(tocElement.firstChild);\n }\n\n // Just return the parent and don't append the list if no links are found.\n if (data.length === 0) {\n return tocElement;\n }\n\n // Append the Elements that have been created\n return tocElement.appendChild(container);\n }\n\n /**\n * Create link element.\n * @param {Object} data\n * @return {HTMLElement}\n */\n function createLink(data) {\n var item = document.createElement('li');\n var a = document.createElement('a');\n if (options.listItemClass) {\n item.setAttribute('class', options.listItemClass);\n }\n if (options.onClick) {\n a.onclick = options.onClick;\n }\n if (options.includeTitleTags) {\n a.setAttribute('title', data.textContent);\n }\n if (options.includeHtml && data.childNodes.length) {\n forEach.call(data.childNodes, function (node) {\n a.appendChild(node.cloneNode(true));\n });\n } else {\n // Default behavior.\n a.textContent = data.textContent;\n }\n a.setAttribute('href', options.basePath + '#' + data.id);\n a.setAttribute('class', options.linkClass + SPACE_CHAR + 'node-name--' + data.nodeName + SPACE_CHAR + options.extraLinkClasses);\n item.appendChild(a);\n return item;\n }\n\n /**\n * Create list element.\n * @param {Boolean} isCollapsed\n * @return {HTMLElement}\n */\n function createList(isCollapsed) {\n var listElement = options.orderedList ? 'ol' : 'ul';\n var list = document.createElement(listElement);\n var classes = options.listClass + SPACE_CHAR + options.extraListClasses;\n if (isCollapsed) {\n classes += SPACE_CHAR + options.collapsibleClass;\n classes += SPACE_CHAR + options.isCollapsedClass;\n }\n list.setAttribute('class', classes);\n return list;\n }\n\n /**\n * Update fixed sidebar class.\n * @return {HTMLElement}\n */\n function updateFixedSidebarClass() {\n if (options.scrollContainer && document.querySelector(options.scrollContainer)) {\n var top;\n top = document.querySelector(options.scrollContainer).scrollTop;\n } else {\n top = document.documentElement.scrollTop || body.scrollTop;\n }\n var posFixedEl = document.querySelector(options.positionFixedSelector);\n if (options.fixedSidebarOffset === 'auto') {\n options.fixedSidebarOffset = tocElement.offsetTop;\n }\n if (top > options.fixedSidebarOffset) {\n if (posFixedEl.className.indexOf(options.positionFixedClass) === -1) {\n posFixedEl.className += SPACE_CHAR + options.positionFixedClass;\n }\n } else {\n posFixedEl.className = posFixedEl.className.split(SPACE_CHAR + options.positionFixedClass).join('');\n }\n }\n\n /**\n * Get top position of heading\n * @param {HTMLElement} obj\n * @return {int} position\n */\n function getHeadingTopPos(obj) {\n var position = 0;\n if (obj !== null) {\n position = obj.offsetTop;\n if (options.hasInnerContainers) {\n position += getHeadingTopPos(obj.offsetParent);\n }\n }\n return position;\n }\n\n /**\n * Update TOC highlighting and collpased groupings.\n */\n function updateToc(headingsArray) {\n // If a fixed content container was set\n if (options.scrollContainer && document.querySelector(options.scrollContainer)) {\n var top;\n top = document.querySelector(options.scrollContainer).scrollTop;\n } else {\n top = document.documentElement.scrollTop || body.scrollTop;\n }\n\n // Add fixed class at offset\n if (options.positionFixedSelector) {\n updateFixedSidebarClass();\n }\n\n // Get the top most heading currently visible on the page so we know what to highlight.\n var headings = headingsArray;\n var topHeader;\n // Using some instead of each so that we can escape early.\n if (currentlyHighlighting && tocElement !== null && headings.length > 0) {\n some.call(headings, function (heading, i) {\n if (getHeadingTopPos(heading) > top + options.headingsOffset + 10) {\n // Don't allow negative index value.\n var index = i === 0 ? i : i - 1;\n topHeader = headings[index];\n return true;\n } else if (i === headings.length - 1) {\n // This allows scrolling for the last heading on the page.\n topHeader = headings[headings.length - 1];\n return true;\n }\n });\n\n // Remove the active class from the other tocLinks.\n var tocLinks = tocElement.querySelectorAll('.' + options.linkClass);\n forEach.call(tocLinks, function (tocLink) {\n tocLink.className = tocLink.className.split(SPACE_CHAR + options.activeLinkClass).join('');\n });\n var tocLis = tocElement.querySelectorAll('.' + options.listItemClass);\n forEach.call(tocLis, function (tocLi) {\n tocLi.className = tocLi.className.split(SPACE_CHAR + options.activeListItemClass).join('');\n });\n\n // Add the active class to the active tocLink.\n var activeTocLink = tocElement.querySelector('.' + options.linkClass + '.node-name--' + topHeader.nodeName + '[href=\"' + options.basePath + '#' + topHeader.id.replace(/([ #;&,.+*~':\"!^$[\\]()=>|/@])/g, '\\\\$1') + '\"]');\n if (activeTocLink && activeTocLink.className.indexOf(options.activeLinkClass) === -1) {\n activeTocLink.className += SPACE_CHAR + options.activeLinkClass;\n }\n var li = activeTocLink && activeTocLink.parentNode;\n if (li && li.className.indexOf(options.activeListItemClass) === -1) {\n li.className += SPACE_CHAR + options.activeListItemClass;\n }\n var tocLists = tocElement.querySelectorAll('.' + options.listClass + '.' + options.collapsibleClass);\n\n // Collapse the other collapsible lists.\n forEach.call(tocLists, function (list) {\n if (list.className.indexOf(options.isCollapsedClass) === -1) {\n list.className += SPACE_CHAR + options.isCollapsedClass;\n }\n });\n\n // Expand the active link's collapsible list and its sibling if applicable.\n if (activeTocLink && activeTocLink.nextSibling && activeTocLink.nextSibling.className.indexOf(options.isCollapsedClass) !== -1) {\n activeTocLink.nextSibling.className = activeTocLink.nextSibling.className.split(SPACE_CHAR + options.isCollapsedClass).join('');\n }\n removeCollapsedFromParents(activeTocLink && activeTocLink.parentNode.parentNode);\n }\n }\n\n /**\n * Remove collpased class from parent elements.\n * @param {HTMLElement} element\n * @return {HTMLElement}\n */\n function removeCollapsedFromParents(element) {\n if (element && element.className.indexOf(options.collapsibleClass) !== -1 && element.className.indexOf(options.isCollapsedClass) !== -1) {\n element.className = element.className.split(SPACE_CHAR + options.isCollapsedClass).join('');\n return removeCollapsedFromParents(element.parentNode.parentNode);\n }\n return element;\n }\n\n /**\n * Disable TOC Animation when a link is clicked.\n * @param {Event} event\n */\n function disableTocAnimation(event) {\n var target = event.target || event.srcElement;\n if (typeof target.className !== 'string' || target.className.indexOf(options.linkClass) === -1) {\n return;\n }\n // Bind to tocLink clicks to temporarily disable highlighting\n // while smoothScroll is animating.\n currentlyHighlighting = false;\n }\n\n /**\n * Enable TOC Animation.\n */\n function enableTocAnimation() {\n currentlyHighlighting = true;\n }\n return {\n enableTocAnimation: enableTocAnimation,\n disableTocAnimation: disableTocAnimation,\n render: render,\n updateToc: updateToc\n };\n};","module.exports = {\n // Where to render the table of contents.\n tocSelector: '.js-toc',\n // Where to grab the headings to build the table of contents.\n contentSelector: '.js-toc-content',\n // Which headings to grab inside of the contentSelector element.\n headingSelector: 'h1, h2, h3',\n // Headings that match the ignoreSelector will be skipped.\n ignoreSelector: '.js-toc-ignore',\n // For headings inside relative or absolute positioned containers within content\n hasInnerContainers: false,\n // Main class to add to links.\n linkClass: 'toc-link',\n // Extra classes to add to links.\n extraLinkClasses: '',\n // Class to add to active links,\n // the link corresponding to the top most heading on the page.\n activeLinkClass: 'is-active-link',\n // Main class to add to lists.\n listClass: 'toc-list',\n // Extra classes to add to lists.\n extraListClasses: '',\n // Class that gets added when a list should be collapsed.\n isCollapsedClass: 'is-collapsed',\n // Class that gets added when a list should be able\n // to be collapsed but isn't necessarily collapsed.\n collapsibleClass: 'is-collapsible',\n // Class to add to list items.\n listItemClass: 'toc-list-item',\n // Class to add to active list items.\n activeListItemClass: 'is-active-li',\n // How many heading levels should not be collapsed.\n // For example, number 6 will show everything since\n // there are only 6 heading levels and number 0 will collapse them all.\n // The sections that are hidden will open\n // and close as you scroll to headings within them.\n collapseDepth: 0,\n // Smooth scrolling enabled.\n scrollSmooth: true,\n // Smooth scroll duration.\n scrollSmoothDuration: 420,\n // Smooth scroll offset.\n scrollSmoothOffset: 0,\n // Callback for scroll end.\n scrollEndCallback: function scrollEndCallback(e) {},\n // Headings offset between the headings and the top of the document (this is meant for minor adjustments).\n headingsOffset: 1,\n // Timeout between events firing to make sure it's\n // not too rapid (for performance reasons).\n throttleTimeout: 50,\n // Element to add the positionFixedClass to.\n positionFixedSelector: null,\n // Fixed position class to add to make sidebar fixed after scrolling\n // down past the fixedSidebarOffset.\n positionFixedClass: 'is-position-fixed',\n // fixedSidebarOffset can be any number but by default is set\n // to auto which sets the fixedSidebarOffset to the sidebar\n // element's offsetTop from the top of the document on init.\n fixedSidebarOffset: 'auto',\n // includeHtml can be set to true to include the HTML markup from the\n // heading node instead of just including the textContent.\n includeHtml: false,\n // includeTitleTags automatically sets the html title tag of the link\n // to match the title. This can be useful for SEO purposes or\n // when truncating titles.\n includeTitleTags: false,\n // onclick function to apply to all links in toc. will be called with\n // the event as the first parameter, and this can be used to stop,\n // propagation, prevent default or perform action\n onClick: function onClick(e) {},\n // orderedList can be set to false to generate unordered lists (ul)\n // instead of ordered lists (ol)\n orderedList: true,\n // If there is a fixed article scroll container, set to calculate titles' offset\n scrollContainer: null,\n // prevent ToC DOM rendering if it's already rendered by an external system\n skipRendering: false,\n // Optional callback to change heading labels.\n // For example it can be used to cut down and put ellipses on multiline headings you deem too long.\n // Called each time a heading is parsed. Expects a string and returns the modified label to display.\n // Additionally, the attribute `data-heading-label` may be used on a heading to specify\n // a shorter string to be used in the TOC.\n // function (string) => string\n headingLabelCallback: false,\n // ignore headings that are hidden in DOM\n ignoreHiddenElements: false,\n // Optional callback to modify properties of parsed headings.\n // The heading element is passed in node parameter and information parsed by default parser is provided in obj parameter.\n // Function has to return the same or modified obj.\n // The heading will be excluded from TOC if nothing is returned.\n // function (object, HTMLElement) => object | void\n headingObjectCallback: null,\n // Set the base path, useful if you use a `base` tag in `head`.\n basePath: '',\n // Only takes affect when `tocSelector` is scrolling,\n // keep the toc scroll position in sync with the content.\n disableTocScrollSync: false\n};","/* eslint no-var: off */\n/**\n * Tocbot\n * Tocbot creates a toble of contents based on HTML headings on a page,\n * this allows users to easily jump to different sections of the document.\n * Tocbot was inspired by tocify (http://gregfranko.com/jquery.tocify.js/).\n * The main differences are that it works natively without any need for jquery or jquery UI).\n *\n * @author Tim Scanlin\n */\n\n/* globals define */\n\n(function (root, factory) {\n if (typeof define === 'function' && define.amd) {\n define([], factory(root));\n } else if (typeof exports === 'object') {\n module.exports = factory(root);\n } else {\n root.tocbot = factory(root);\n }\n})(typeof global !== 'undefined' ? global : this.window || this.global, function (root) {\n 'use strict';\n\n // Default options.\n var defaultOptions = require('./default-options.js');\n // Object to store current options.\n var options = {};\n // Object for public APIs.\n var tocbot = {};\n var BuildHtml = require('./build-html.js');\n var ParseContent = require('./parse-content.js');\n var updateTocScroll = require('./update-toc-scroll.js');\n // Keep these variables at top scope once options are passed in.\n var buildHtml;\n var parseContent;\n\n // Just return if its not a browser.\n var supports = !!root && !!root.document && !!root.document.querySelector && !!root.addEventListener; // Feature test\n if (typeof window === 'undefined' && !supports) {\n return;\n }\n var headingsArray;\n\n // From: https://github.com/Raynos/xtend\n var hasOwnProperty = Object.prototype.hasOwnProperty;\n function extend() {\n var target = {};\n for (var i = 0; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n }\n\n // From: https://remysharp.com/2010/07/21/throttling-function-calls\n function throttle(fn, threshhold, scope) {\n threshhold || (threshhold = 250);\n var last;\n var deferTimer;\n return function () {\n var context = scope || this;\n var now = +new Date();\n var args = arguments;\n if (last && now < last + threshhold) {\n // hold on to it\n clearTimeout(deferTimer);\n deferTimer = setTimeout(function () {\n last = now;\n fn.apply(context, args);\n }, threshhold);\n } else {\n last = now;\n fn.apply(context, args);\n }\n };\n }\n function getContentElement(options) {\n try {\n return options.contentElement || document.querySelector(options.contentSelector);\n } catch (e) {\n console.warn('Contents element not found: ' + options.contentSelector); // eslint-disable-line\n return null;\n }\n }\n function getTocElement(options) {\n try {\n return options.tocElement || document.querySelector(options.tocSelector);\n } catch (e) {\n console.warn('TOC element not found: ' + options.tocSelector); // eslint-disable-line\n return null;\n }\n }\n\n /**\n * Destroy tocbot.\n */\n tocbot.destroy = function () {\n var tocElement = getTocElement(options);\n if (tocElement === null) {\n return;\n }\n if (!options.skipRendering) {\n // Clear HTML.\n if (tocElement) {\n tocElement.innerHTML = '';\n }\n }\n\n // Remove event listeners.\n if (options.scrollContainer && document.querySelector(options.scrollContainer)) {\n document.querySelector(options.scrollContainer).removeEventListener('scroll', this._scrollListener, false);\n document.querySelector(options.scrollContainer).removeEventListener('resize', this._scrollListener, false);\n if (buildHtml) {\n document.querySelector(options.scrollContainer).removeEventListener('click', this._clickListener, false);\n }\n } else {\n document.removeEventListener('scroll', this._scrollListener, false);\n document.removeEventListener('resize', this._scrollListener, false);\n if (buildHtml) {\n document.removeEventListener('click', this._clickListener, false);\n }\n }\n };\n\n /**\n * Initialize tocbot.\n * @param {object} customOptions\n */\n tocbot.init = function (customOptions) {\n // feature test\n if (!supports) {\n return;\n }\n\n // Merge defaults with user options.\n // Set to options variable at the top.\n options = extend(defaultOptions, customOptions || {});\n this.options = options;\n this.state = {};\n\n // Init smooth scroll if enabled (default).\n if (options.scrollSmooth) {\n options.duration = options.scrollSmoothDuration;\n options.offset = options.scrollSmoothOffset;\n tocbot.scrollSmooth = require('./scroll-smooth').initSmoothScrolling(options);\n }\n\n // Pass options to these modules.\n buildHtml = BuildHtml(options);\n parseContent = ParseContent(options);\n\n // For testing purposes.\n this._buildHtml = buildHtml;\n this._parseContent = parseContent;\n this._headingsArray = headingsArray;\n\n // Destroy it if it exists first.\n tocbot.destroy();\n var contentElement = getContentElement(options);\n if (contentElement === null) {\n return;\n }\n var tocElement = getTocElement(options);\n if (tocElement === null) {\n return;\n }\n\n // Get headings array.\n headingsArray = parseContent.selectHeadings(contentElement, options.headingSelector);\n // Return if no headings are found.\n if (headingsArray === null) {\n return;\n }\n\n // Build nested headings array.\n var nestedHeadingsObj = parseContent.nestHeadingsArray(headingsArray);\n var nestedHeadings = nestedHeadingsObj.nest;\n\n // Render.\n if (!options.skipRendering) {\n buildHtml.render(tocElement, nestedHeadings);\n }\n\n // Update Sidebar and bind listeners.\n this._scrollListener = throttle(function (e) {\n buildHtml.updateToc(headingsArray);\n !options.disableTocScrollSync && updateTocScroll(options);\n var isTop = e && e.target && e.target.scrollingElement && e.target.scrollingElement.scrollTop === 0;\n if (e && (e.eventPhase === 0 || e.currentTarget === null) || isTop) {\n buildHtml.updateToc(headingsArray);\n if (options.scrollEndCallback) {\n options.scrollEndCallback(e);\n }\n }\n }, options.throttleTimeout);\n this._scrollListener();\n if (options.scrollContainer && document.querySelector(options.scrollContainer)) {\n document.querySelector(options.scrollContainer).addEventListener('scroll', this._scrollListener, false);\n document.querySelector(options.scrollContainer).addEventListener('resize', this._scrollListener, false);\n } else {\n document.addEventListener('scroll', this._scrollListener, false);\n document.addEventListener('resize', this._scrollListener, false);\n }\n\n // Bind click listeners to disable animation.\n var timeout = null;\n this._clickListener = throttle(function (event) {\n if (options.scrollSmooth) {\n buildHtml.disableTocAnimation(event);\n }\n buildHtml.updateToc(headingsArray);\n // Timeout to re-enable the animation.\n timeout && clearTimeout(timeout);\n timeout = setTimeout(function () {\n buildHtml.enableTocAnimation();\n }, options.scrollSmoothDuration);\n }, options.throttleTimeout);\n if (options.scrollContainer && document.querySelector(options.scrollContainer)) {\n document.querySelector(options.scrollContainer).addEventListener('click', this._clickListener, false);\n } else {\n document.addEventListener('click', this._clickListener, false);\n }\n return this;\n };\n\n /**\n * Refresh tocbot.\n */\n tocbot.refresh = function (customOptions) {\n tocbot.destroy();\n tocbot.init(customOptions || this.options);\n };\n\n // Make tocbot available globally.\n root.tocbot = tocbot;\n return tocbot;\n});","/* eslint no-var: off */\n/**\n * This file is responsible for parsing the content from the DOM and making\n * sure data is nested properly.\n *\n * @author Tim Scanlin\n */\n\nmodule.exports = function parseContent(options) {\n var reduce = [].reduce;\n\n /**\n * Get the last item in an array and return a reference to it.\n * @param {Array} array\n * @return {Object}\n */\n function getLastItem(array) {\n return array[array.length - 1];\n }\n\n /**\n * Get heading level for a heading dom node.\n * @param {HTMLElement} heading\n * @return {Number}\n */\n function getHeadingLevel(heading) {\n return +heading.nodeName.toUpperCase().replace('H', '');\n }\n\n /**\n * Get important properties from a heading element and store in a plain object.\n * @param {HTMLElement} heading\n * @return {Object}\n */\n function getHeadingObject(heading) {\n // each node is processed twice by this method because nestHeadingsArray() and addNode() calls it\n // first time heading is real DOM node element, second time it is obj\n // that is causing problem so I am processing only original DOM node\n if (!(heading instanceof window.HTMLElement)) return heading;\n if (options.ignoreHiddenElements && (!heading.offsetHeight || !heading.offsetParent)) {\n return null;\n }\n var headingLabel = heading.getAttribute('data-heading-label') || (options.headingLabelCallback ? String(options.headingLabelCallback(heading.textContent)) : heading.textContent.trim());\n var obj = {\n id: heading.id,\n children: [],\n nodeName: heading.nodeName,\n headingLevel: getHeadingLevel(heading),\n textContent: headingLabel\n };\n if (options.includeHtml) {\n obj.childNodes = heading.childNodes;\n }\n if (options.headingObjectCallback) {\n return options.headingObjectCallback(obj, heading);\n }\n return obj;\n }\n\n /**\n * Add a node to the nested array.\n * @param {Object} node\n * @param {Array} nest\n * @return {Array}\n */\n function addNode(node, nest) {\n var obj = getHeadingObject(node);\n var level = obj.headingLevel;\n var array = nest;\n var lastItem = getLastItem(array);\n var lastItemLevel = lastItem ? lastItem.headingLevel : 0;\n var counter = level - lastItemLevel;\n while (counter > 0) {\n lastItem = getLastItem(array);\n // Handle case where there are multiple h5+ in a row.\n if (lastItem && level === lastItem.headingLevel) {\n break;\n } else if (lastItem && lastItem.children !== undefined) {\n array = lastItem.children;\n }\n counter--;\n }\n if (level >= options.collapseDepth) {\n obj.isCollapsed = true;\n }\n array.push(obj);\n return array;\n }\n\n /**\n * Select headings in content area, exclude any selector in options.ignoreSelector\n * @param {HTMLElement} contentElement\n * @param {Array} headingSelector\n * @return {Array}\n */\n function selectHeadings(contentElement, headingSelector) {\n var selectors = headingSelector;\n if (options.ignoreSelector) {\n selectors = headingSelector.split(',').map(function mapSelectors(selector) {\n return selector.trim() + ':not(' + options.ignoreSelector + ')';\n });\n }\n try {\n return contentElement.querySelectorAll(selectors);\n } catch (e) {\n console.warn('Headers not found with selector: ' + selectors); // eslint-disable-line\n return null;\n }\n }\n\n /**\n * Nest headings array into nested arrays with 'children' property.\n * @param {Array} headingsArray\n * @return {Object}\n */\n function nestHeadingsArray(headingsArray) {\n return reduce.call(headingsArray, function reducer(prev, curr) {\n var currentHeading = getHeadingObject(curr);\n if (currentHeading) {\n addNode(currentHeading, prev.nest);\n }\n return prev;\n }, {\n nest: []\n });\n }\n return {\n nestHeadingsArray: nestHeadingsArray,\n selectHeadings: selectHeadings\n };\n};","/* eslint no-var: off */\n/* globals location, requestAnimationFrame */\n\nexports.initSmoothScrolling = initSmoothScrolling;\nfunction initSmoothScrolling(options) {\n // if (isCssSmoothSCrollSupported()) { return }\n\n var duration = options.duration;\n var offset = options.offset;\n var pageUrl = location.hash ? stripHash(location.href) : location.href;\n delegatedLinkHijacking();\n function delegatedLinkHijacking() {\n document.body.addEventListener('click', onClick, false);\n function onClick(e) {\n if (!isInPageLink(e.target) || e.target.className.indexOf('no-smooth-scroll') > -1 || e.target.href.charAt(e.target.href.length - 2) === '#' && e.target.href.charAt(e.target.href.length - 1) === '!' || e.target.className.indexOf(options.linkClass) === -1) {\n return;\n }\n\n // Don't prevent default or hash doesn't change.\n // e.preventDefault()\n\n jump(e.target.hash, {\n duration: duration,\n offset: offset,\n callback: function callback() {\n setFocus(e.target.hash);\n }\n });\n }\n }\n function isInPageLink(n) {\n return n.tagName.toLowerCase() === 'a' && (n.hash.length > 0 || n.href.charAt(n.href.length - 1) === '#') && (stripHash(n.href) === pageUrl || stripHash(n.href) + '#' === pageUrl);\n }\n function stripHash(url) {\n return url.slice(0, url.lastIndexOf('#'));\n }\n\n // function isCssSmoothSCrollSupported () {\n // return 'scrollBehavior' in document.documentElement.style\n // }\n\n // Adapted from:\n // https://www.nczonline.net/blog/2013/01/15/fixing-skip-to-content-links/\n function setFocus(hash) {\n var element = document.getElementById(hash.substring(1));\n if (element) {\n if (!/^(?:a|select|input|button|textarea)$/i.test(element.tagName)) {\n element.tabIndex = -1;\n }\n element.focus();\n }\n }\n}\nfunction jump(target, options) {\n var start = window.pageYOffset;\n var opt = {\n duration: options.duration,\n offset: options.offset || 0,\n callback: options.callback,\n easing: options.easing || easeInOutQuad\n };\n // This makes ids that start with a number work: ('[id=\"' + decodeURI(target).split('#').join('') + '\"]')\n // DecodeURI for nonASCII hashes, they was encoded, but id was not encoded, it lead to not finding the tgt element by id.\n // And this is for IE: document.body.scrollTop\n // Handle decoded and non-decoded URIs since sometimes URLs automatically transform them (support for internation chars).\n var tgt = document.querySelector('[id=\"' + decodeURI(target).split('#').join('') + '\"]') || document.querySelector('[id=\"' + target.split('#').join('') + '\"]');\n var distance = typeof target === 'string' ? opt.offset + (target ? tgt && tgt.getBoundingClientRect().top || 0 // handle non-existent links better.\n : -(document.documentElement.scrollTop || document.body.scrollTop)) : target;\n var duration = typeof opt.duration === 'function' ? opt.duration(distance) : opt.duration;\n var timeStart;\n var timeElapsed;\n requestAnimationFrame(function (time) {\n timeStart = time;\n loop(time);\n });\n function loop(time) {\n timeElapsed = time - timeStart;\n window.scrollTo(0, opt.easing(timeElapsed, start, distance, duration));\n if (timeElapsed < duration) {\n requestAnimationFrame(loop);\n } else {\n end();\n }\n }\n function end() {\n window.scrollTo(0, start + distance);\n if (typeof opt.callback === 'function') {\n opt.callback();\n }\n }\n\n // Robert Penner's easeInOutQuad - http://robertpenner.com/easing/\n function easeInOutQuad(t, b, c, d) {\n t /= d / 2;\n if (t < 1) return c / 2 * t * t + b;\n t--;\n return -c / 2 * (t * (t - 2) - 1) + b;\n }\n}","/* eslint no-var: off */\n\nmodule.exports = function updateTocScroll(options) {\n var toc = options.tocElement || document.querySelector(options.tocSelector);\n if (toc && toc.scrollHeight > toc.clientHeight) {\n var activeItem = toc.querySelector('.' + options.activeListItemClass);\n if (activeItem) {\n toc.scrollTop = activeItem.offsetTop;\n }\n }\n};","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport * as React from 'react';\nimport Alert from '.';\nvar ErrorBoundary = /*#__PURE__*/function (_React$Component) {\n _inherits(ErrorBoundary, _React$Component);\n var _super = _createSuper(ErrorBoundary);\n function ErrorBoundary() {\n var _this;\n _classCallCheck(this, ErrorBoundary);\n _this = _super.apply(this, arguments);\n _this.state = {\n error: undefined,\n info: {\n componentStack: ''\n }\n };\n return _this;\n }\n _createClass(ErrorBoundary, [{\n key: \"componentDidCatch\",\n value: function componentDidCatch(error, info) {\n this.setState({\n error: error,\n info: info\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n message = _this$props.message,\n description = _this$props.description,\n children = _this$props.children;\n var _this$state = this.state,\n error = _this$state.error,\n info = _this$state.info;\n var componentStack = info && info.componentStack ? info.componentStack : null;\n var errorMessage = typeof message === 'undefined' ? (error || '').toString() : message;\n var errorDescription = typeof description === 'undefined' ? componentStack : description;\n if (error) {\n return /*#__PURE__*/React.createElement(Alert, {\n type: \"error\",\n message: errorMessage,\n description: /*#__PURE__*/React.createElement(\"pre\", null, errorDescription)\n });\n }\n return children;\n }\n }]);\n return ErrorBoundary;\n}(React.Component);\nexport { ErrorBoundary as default };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport CloseOutlined from \"@ant-design/icons/es/icons/CloseOutlined\";\nimport CheckCircleOutlined from \"@ant-design/icons/es/icons/CheckCircleOutlined\";\nimport ExclamationCircleOutlined from \"@ant-design/icons/es/icons/ExclamationCircleOutlined\";\nimport InfoCircleOutlined from \"@ant-design/icons/es/icons/InfoCircleOutlined\";\nimport CloseCircleOutlined from \"@ant-design/icons/es/icons/CloseCircleOutlined\";\nimport CheckCircleFilled from \"@ant-design/icons/es/icons/CheckCircleFilled\";\nimport ExclamationCircleFilled from \"@ant-design/icons/es/icons/ExclamationCircleFilled\";\nimport InfoCircleFilled from \"@ant-design/icons/es/icons/InfoCircleFilled\";\nimport CloseCircleFilled from \"@ant-design/icons/es/icons/CloseCircleFilled\";\nimport CSSMotion from 'rc-motion';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider';\nimport getDataOrAriaProps from '../_util/getDataOrAriaProps';\nimport ErrorBoundary from './ErrorBoundary';\nimport { replaceElement } from '../_util/reactNode';\nvar iconMapFilled = {\n success: CheckCircleFilled,\n info: InfoCircleFilled,\n error: CloseCircleFilled,\n warning: ExclamationCircleFilled\n};\nvar iconMapOutlined = {\n success: CheckCircleOutlined,\n info: InfoCircleOutlined,\n error: CloseCircleOutlined,\n warning: ExclamationCircleOutlined\n};\nvar Alert = function Alert(_a) {\n var _classNames2;\n var description = _a.description,\n customizePrefixCls = _a.prefixCls,\n message = _a.message,\n banner = _a.banner,\n _a$className = _a.className,\n className = _a$className === void 0 ? '' : _a$className,\n style = _a.style,\n onMouseEnter = _a.onMouseEnter,\n onMouseLeave = _a.onMouseLeave,\n onClick = _a.onClick,\n afterClose = _a.afterClose,\n showIcon = _a.showIcon,\n closable = _a.closable,\n closeText = _a.closeText,\n _a$closeIcon = _a.closeIcon,\n closeIcon = _a$closeIcon === void 0 ? /*#__PURE__*/React.createElement(CloseOutlined, null) : _a$closeIcon,\n action = _a.action,\n props = __rest(_a, [\"description\", \"prefixCls\", \"message\", \"banner\", \"className\", \"style\", \"onMouseEnter\", \"onMouseLeave\", \"onClick\", \"afterClose\", \"showIcon\", \"closable\", \"closeText\", \"closeIcon\", \"action\"]);\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n closed = _React$useState2[0],\n setClosed = _React$useState2[1];\n var ref = React.useRef();\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n var prefixCls = getPrefixCls('alert', customizePrefixCls);\n var handleClose = function handleClose(e) {\n var _a;\n setClosed(true);\n (_a = props.onClose) === null || _a === void 0 ? void 0 : _a.call(props, e);\n };\n var getType = function getType() {\n var type = props.type;\n if (type !== undefined) {\n return type;\n } // banner 模式默认为警告\n\n return banner ? 'warning' : 'info';\n }; // closeable when closeText is assigned\n\n var isClosable = closeText ? true : closable;\n var type = getType();\n var renderIconNode = function renderIconNode() {\n var icon = props.icon; // use outline icon in alert with description\n\n var iconType = (description ? iconMapOutlined : iconMapFilled)[type] || null;\n if (icon) {\n return replaceElement(icon, /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-icon\")\n }, icon), function () {\n return {\n className: classNames(\"\".concat(prefixCls, \"-icon\"), _defineProperty({}, icon.props.className, icon.props.className))\n };\n });\n }\n return /*#__PURE__*/React.createElement(iconType, {\n className: \"\".concat(prefixCls, \"-icon\")\n });\n };\n var renderCloseIcon = function renderCloseIcon() {\n return isClosable ? /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: handleClose,\n className: \"\".concat(prefixCls, \"-close-icon\"),\n tabIndex: 0\n }, closeText ? /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-close-text\")\n }, closeText) : closeIcon) : null;\n }; // banner 模式默认有 Icon\n\n var isShowIcon = banner && showIcon === undefined ? true : showIcon;\n var alertCls = classNames(prefixCls, \"\".concat(prefixCls, \"-\").concat(type), (_classNames2 = {}, _defineProperty(_classNames2, \"\".concat(prefixCls, \"-with-description\"), !!description), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-no-icon\"), !isShowIcon), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-banner\"), !!banner), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _classNames2), className);\n var dataOrAriaProps = getDataOrAriaProps(props);\n return /*#__PURE__*/React.createElement(CSSMotion, {\n visible: !closed,\n motionName: \"\".concat(prefixCls, \"-motion\"),\n motionAppear: false,\n motionEnter: false,\n onLeaveStart: function onLeaveStart(node) {\n return {\n maxHeight: node.offsetHeight\n };\n },\n onLeaveEnd: afterClose\n }, function (_ref) {\n var motionClassName = _ref.className,\n motionStyle = _ref.style;\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: ref,\n \"data-show\": !closed,\n className: classNames(alertCls, motionClassName),\n style: _extends(_extends({}, style), motionStyle),\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave,\n onClick: onClick,\n role: \"alert\"\n }, dataOrAriaProps), isShowIcon ? renderIconNode() : null, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-content\")\n }, message ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-message\")\n }, message) : null, description ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-description\")\n }, description) : null), action ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-action\")\n }, action) : null, renderCloseIcon());\n });\n};\nAlert.ErrorBoundary = ErrorBoundary;\nexport default Alert;","export default function getDataOrAriaProps(props) {\n return Object.keys(props).reduce(function (prev, key) {\n if ((key.startsWith('data-') || key.startsWith('aria-') || key === 'role') && !key.startsWith('data-__')) {\n prev[key] = props[key];\n }\n return prev;\n }, {});\n}","// This icon file is generated automatically.\nvar WarningOutlined = {\n \"icon\": {\n \"tag\": \"svg\",\n \"attrs\": {\n \"viewBox\": \"64 64 896 896\",\n \"focusable\": \"false\"\n },\n \"children\": [{\n \"tag\": \"path\",\n \"attrs\": {\n \"d\": \"M464 720a48 48 0 1096 0 48 48 0 10-96 0zm16-304v184c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V416c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8zm475.7 440l-416-720c-6.2-10.7-16.9-16-27.7-16s-21.6 5.3-27.7 16l-416 720C56 877.4 71.4 904 96 904h832c24.6 0 40-26.6 27.7-48zm-783.5-27.9L512 239.9l339.8 588.2H172.2z\"\n }\n }]\n },\n \"name\": \"warning\",\n \"theme\": \"outlined\"\n};\nexport default WarningOutlined;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport WarningOutlinedSvg from \"@ant-design/icons-svg/es/asn/WarningOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar WarningOutlined = function WarningOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: WarningOutlinedSvg\n }));\n};\nWarningOutlined.displayName = 'WarningOutlined';\nexport default /*#__PURE__*/React.forwardRef(WarningOutlined);","import { Alert as AntdAlert } from 'antd';\nimport React, { PropsWithChildren, ReactNode } from 'react';\nimport { InfoCircleOutlined, WarningOutlined } from '@ant-design/icons';\n\ninterface AlertProps {\n type: 'success' | 'info' | 'warning' | 'error';\n showIcon?: boolean;\n style?: React.CSSProperties;\n className?: string;\n icon?: React.ReactNode;\n}\n\nconst Alert = (props: PropsWithChildren): JSX.Element => (\n {props.children}}\n />\n);\n\ninterface TipOrWarningProps {\n children: ReactNode;\n}\n\nconst Tip = (props: TipOrWarningProps): JSX.Element => (\n } showIcon>\n {props.children}\n \n);\nconst Warning = (props: TipOrWarningProps): JSX.Element => (\n } showIcon>\n {props.children}\n \n);\n\nexport { Alert, Tip, Warning };\n","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useRef, useState, useEffect } from 'react';\nimport raf from \"rc-util/es/raf\";\nexport default function useRaf(callback) {\n var rafRef = useRef();\n var removedRef = useRef(false);\n function trigger() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (!removedRef.current) {\n raf.cancel(rafRef.current);\n rafRef.current = raf(function () {\n callback.apply(void 0, args);\n });\n }\n }\n useEffect(function () {\n return function () {\n removedRef.current = true;\n raf.cancel(rafRef.current);\n };\n }, []);\n return trigger;\n}\nexport function useRafState(defaultState) {\n var batchRef = useRef([]);\n var _useState = useState({}),\n _useState2 = _slicedToArray(_useState, 2),\n forceUpdate = _useState2[1];\n var state = useRef(typeof defaultState === 'function' ? defaultState() : defaultState);\n var flushUpdate = useRaf(function () {\n var current = state.current;\n batchRef.current.forEach(function (callback) {\n current = callback(current);\n });\n batchRef.current = [];\n state.current = current;\n forceUpdate({});\n });\n function updater(callback) {\n batchRef.current.push(callback);\n flushUpdate();\n }\n return [state.current, updater];\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport KeyCode from \"rc-util/es/KeyCode\";\nfunction TabNode(_ref, ref) {\n var _classNames;\n var prefixCls = _ref.prefixCls,\n id = _ref.id,\n active = _ref.active,\n _ref$tab = _ref.tab,\n key = _ref$tab.key,\n tab = _ref$tab.tab,\n disabled = _ref$tab.disabled,\n closeIcon = _ref$tab.closeIcon,\n closable = _ref.closable,\n renderWrapper = _ref.renderWrapper,\n removeAriaLabel = _ref.removeAriaLabel,\n editable = _ref.editable,\n onClick = _ref.onClick,\n onRemove = _ref.onRemove,\n onFocus = _ref.onFocus,\n style = _ref.style;\n var tabPrefix = \"\".concat(prefixCls, \"-tab\");\n React.useEffect(function () {\n return onRemove;\n }, []);\n var removable = editable && closable !== false && !disabled;\n function onInternalClick(e) {\n if (disabled) {\n return;\n }\n onClick(e);\n }\n function onRemoveTab(event) {\n event.preventDefault();\n event.stopPropagation();\n editable.onEdit('remove', {\n key: key,\n event: event\n });\n }\n var node = /*#__PURE__*/React.createElement(\"div\", {\n key: key,\n ref: ref,\n className: classNames(tabPrefix, (_classNames = {}, _defineProperty(_classNames, \"\".concat(tabPrefix, \"-with-remove\"), removable), _defineProperty(_classNames, \"\".concat(tabPrefix, \"-active\"), active), _defineProperty(_classNames, \"\".concat(tabPrefix, \"-disabled\"), disabled), _classNames)),\n style: style,\n onClick: onInternalClick\n }, /*#__PURE__*/React.createElement(\"div\", {\n role: \"tab\",\n \"aria-selected\": active,\n id: id && \"\".concat(id, \"-tab-\").concat(key),\n className: \"\".concat(tabPrefix, \"-btn\"),\n \"aria-controls\": id && \"\".concat(id, \"-panel-\").concat(key),\n \"aria-disabled\": disabled,\n tabIndex: disabled ? null : 0,\n onClick: function onClick(e) {\n e.stopPropagation();\n onInternalClick(e);\n },\n onKeyDown: function onKeyDown(e) {\n if ([KeyCode.SPACE, KeyCode.ENTER].includes(e.which)) {\n e.preventDefault();\n onInternalClick(e);\n }\n },\n onFocus: onFocus\n }, tab), removable && /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n \"aria-label\": removeAriaLabel || 'remove',\n tabIndex: 0,\n className: \"\".concat(tabPrefix, \"-remove\"),\n onClick: function onClick(e) {\n e.stopPropagation();\n onRemoveTab(e);\n }\n }, closeIcon || editable.removeIcon || '×'));\n return renderWrapper ? renderWrapper(node) : node;\n}\nexport default /*#__PURE__*/React.forwardRef(TabNode);","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { useMemo } from 'react';\nvar DEFAULT_SIZE = {\n width: 0,\n height: 0,\n left: 0,\n top: 0\n};\nexport default function useOffsets(tabs, tabSizes, holderScrollWidth) {\n return useMemo(function () {\n var _tabs$;\n var map = new Map();\n var lastOffset = tabSizes.get((_tabs$ = tabs[0]) === null || _tabs$ === void 0 ? void 0 : _tabs$.key) || DEFAULT_SIZE;\n var rightOffset = lastOffset.left + lastOffset.width;\n for (var i = 0; i < tabs.length; i += 1) {\n var key = tabs[i].key;\n var data = tabSizes.get(key); // Reuse last one when not exist yet\n\n if (!data) {\n var _tabs;\n data = tabSizes.get((_tabs = tabs[i - 1]) === null || _tabs === void 0 ? void 0 : _tabs.key) || DEFAULT_SIZE;\n }\n var entity = map.get(key) || _objectSpread({}, data); // Right\n\n entity.right = rightOffset - entity.left - entity.width; // Update entity\n\n map.set(key, entity);\n }\n return map;\n }, [tabs.map(function (tab) {\n return tab.key;\n }).join('_'), tabSizes, holderScrollWidth]);\n}","import { useMemo } from 'react';\nvar DEFAULT_SIZE = {\n width: 0,\n height: 0,\n left: 0,\n top: 0,\n right: 0\n};\nexport default function useVisibleRange(tabOffsets, containerSize, tabContentNodeSize, addNodeSize, _ref) {\n var tabs = _ref.tabs,\n tabPosition = _ref.tabPosition,\n rtl = _ref.rtl;\n var unit;\n var position;\n var transformSize;\n if (['top', 'bottom'].includes(tabPosition)) {\n unit = 'width';\n position = rtl ? 'right' : 'left';\n transformSize = Math.abs(containerSize.left);\n } else {\n unit = 'height';\n position = 'top';\n transformSize = -containerSize.top;\n }\n var basicSize = containerSize[unit];\n var tabContentSize = tabContentNodeSize[unit];\n var addSize = addNodeSize[unit];\n var mergedBasicSize = basicSize;\n if (tabContentSize + addSize > basicSize) {\n mergedBasicSize = basicSize - addSize;\n }\n return useMemo(function () {\n if (!tabs.length) {\n return [0, 0];\n }\n var len = tabs.length;\n var endIndex = len;\n for (var i = 0; i < len; i += 1) {\n var offset = tabOffsets.get(tabs[i].key) || DEFAULT_SIZE;\n if (offset[position] + offset[unit] > transformSize + mergedBasicSize) {\n endIndex = i - 1;\n break;\n }\n }\n var startIndex = 0;\n for (var _i = len - 1; _i >= 0; _i -= 1) {\n var _offset = tabOffsets.get(tabs[_i].key) || DEFAULT_SIZE;\n if (_offset[position] < transformSize) {\n startIndex = _i + 1;\n break;\n }\n }\n return [startIndex, endIndex];\n }, [tabOffsets, transformSize, mergedBasicSize, tabPosition, tabs.map(function (tab) {\n return tab.key;\n }).join('_'), rtl]);\n}","var autoAdjustOverflow = {\n adjustX: 1,\n adjustY: 1\n};\nvar targetOffset = [0, 0];\nvar placements = {\n topLeft: {\n points: ['bl', 'tl'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n topCenter: {\n points: ['bc', 'tc'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n topRight: {\n points: ['br', 'tr'],\n overflow: autoAdjustOverflow,\n offset: [0, -4],\n targetOffset: targetOffset\n },\n bottomLeft: {\n points: ['tl', 'bl'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n bottomCenter: {\n points: ['tc', 'bc'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n },\n bottomRight: {\n points: ['tr', 'br'],\n overflow: autoAdjustOverflow,\n offset: [0, 4],\n targetOffset: targetOffset\n }\n};\nexport default placements;","import * as React from 'react';\nimport KeyCode from \"rc-util/es/KeyCode\";\nvar ESC = KeyCode.ESC,\n TAB = KeyCode.TAB;\nexport default function useAccessibility(_ref) {\n var visible = _ref.visible,\n setTriggerVisible = _ref.setTriggerVisible,\n triggerRef = _ref.triggerRef,\n menuRef = _ref.menuRef,\n menuClassName = _ref.menuClassName,\n onVisibleChange = _ref.onVisibleChange;\n var handleCloseMenuAndReturnFocus = function handleCloseMenuAndReturnFocus() {\n if (visible && triggerRef.current) {\n if (triggerRef.current.triggerRef.current) {\n triggerRef.current.triggerRef.current.focus();\n }\n setTriggerVisible(false);\n if (typeof onVisibleChange === 'function') {\n onVisibleChange(false);\n }\n }\n };\n var handleKeyDown = function handleKeyDown(event) {\n switch (event.keyCode) {\n case ESC:\n handleCloseMenuAndReturnFocus();\n break;\n case TAB:\n handleCloseMenuAndReturnFocus();\n break;\n }\n };\n var focusOpenedMenu = function focusOpenedMenu() {\n if (menuRef.current) {\n var _menuRef$current$clas, _menuRef$current$quer, _menuRef$current;\n var menuList = ((_menuRef$current$clas = menuRef.current.className) === null || _menuRef$current$clas === void 0 ? void 0 : _menuRef$current$clas.includes(menuClassName)) ? menuRef.current : (_menuRef$current$quer = (_menuRef$current = menuRef.current).querySelector) === null || _menuRef$current$quer === void 0 ? void 0 : _menuRef$current$quer.call(_menuRef$current, menuClassName);\n if (menuList) {\n menuList['focus'](); // eslint-disable-line @typescript-eslint/dot-notation\n }\n }\n };\n\n React.useEffect(function () {\n if (visible) {\n setTimeout(function () {\n focusOpenedMenu();\n window.addEventListener('keydown', handleKeyDown);\n }, 100);\n return function () {\n window.removeEventListener('keydown', handleKeyDown);\n };\n }\n return function () {\n return null;\n };\n }, [visible]); // eslint-disable-line react-hooks/exhaustive-deps\n\n var returnFocus = function returnFocus() {\n if (visible && triggerRef.current) {\n if (triggerRef.current.triggerRef.current) {\n setTimeout(function () {\n var _triggerRef$current, _triggerRef$current$t, _triggerRef$current$t2;\n (_triggerRef$current = triggerRef.current) === null || _triggerRef$current === void 0 ? void 0 : (_triggerRef$current$t = _triggerRef$current.triggerRef) === null || _triggerRef$current$t === void 0 ? void 0 : (_triggerRef$current$t2 = _triggerRef$current$t.current) === null || _triggerRef$current$t2 === void 0 ? void 0 : _triggerRef$current$t2.focus();\n }, 100);\n }\n }\n };\n return {\n returnFocus: returnFocus\n };\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"arrow\", \"prefixCls\", \"transitionName\", \"animation\", \"align\", \"placement\", \"placements\", \"getPopupContainer\", \"showAction\", \"hideAction\", \"overlayClassName\", \"overlayStyle\", \"visible\", \"trigger\"];\nimport * as React from 'react';\nimport Trigger from 'rc-trigger';\nimport classNames from 'classnames';\nimport Placements from './placements';\nimport useAccessibility from './hooks/useAccessibility';\nimport { supportRef } from \"rc-util/es/ref\";\nfunction Dropdown(props, ref) {\n var _props$arrow = props.arrow,\n arrow = _props$arrow === void 0 ? false : _props$arrow,\n _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-dropdown' : _props$prefixCls,\n transitionName = props.transitionName,\n animation = props.animation,\n align = props.align,\n _props$placement = props.placement,\n placement = _props$placement === void 0 ? 'bottomLeft' : _props$placement,\n _props$placements = props.placements,\n placements = _props$placements === void 0 ? Placements : _props$placements,\n getPopupContainer = props.getPopupContainer,\n showAction = props.showAction,\n hideAction = props.hideAction,\n overlayClassName = props.overlayClassName,\n overlayStyle = props.overlayStyle,\n visible = props.visible,\n _props$trigger = props.trigger,\n trigger = _props$trigger === void 0 ? ['hover'] : _props$trigger,\n otherProps = _objectWithoutProperties(props, _excluded);\n var _React$useState = React.useState(),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n triggerVisible = _React$useState2[0],\n setTriggerVisible = _React$useState2[1];\n var mergedVisible = 'visible' in props ? visible : triggerVisible;\n var triggerRef = React.useRef(null);\n React.useImperativeHandle(ref, function () {\n return triggerRef.current;\n });\n var menuRef = React.useRef(null);\n var menuClassName = \"\".concat(prefixCls, \"-menu\");\n var _useAccessibility = useAccessibility({\n visible: mergedVisible,\n setTriggerVisible: setTriggerVisible,\n triggerRef: triggerRef,\n menuRef: menuRef,\n menuClassName: menuClassName,\n onVisibleChange: props.onVisibleChange\n }),\n returnFocus = _useAccessibility.returnFocus;\n var getOverlayElement = function getOverlayElement() {\n var overlay = props.overlay;\n var overlayElement;\n if (typeof overlay === 'function') {\n overlayElement = overlay();\n } else {\n overlayElement = overlay;\n }\n return overlayElement;\n };\n var onClick = function onClick(e) {\n var onOverlayClick = props.onOverlayClick;\n var overlayProps = getOverlayElement().props;\n setTriggerVisible(false);\n if (onOverlayClick) {\n onOverlayClick(e);\n }\n if (overlayProps.onClick) {\n overlayProps.onClick(e);\n }\n returnFocus();\n };\n var onVisibleChange = function onVisibleChange(newVisible) {\n var onVisibleChangeProp = props.onVisibleChange;\n setTriggerVisible(newVisible);\n if (typeof onVisibleChangeProp === 'function') {\n onVisibleChangeProp(newVisible);\n }\n };\n var getMenuElement = function getMenuElement() {\n var overlayElement = getOverlayElement();\n var extraOverlayProps = {\n prefixCls: menuClassName,\n onClick: onClick,\n ref: supportRef(overlayElement) ? menuRef : undefined\n };\n if (typeof overlayElement.type === 'string') {\n delete extraOverlayProps.prefixCls;\n }\n return /*#__PURE__*/React.createElement(React.Fragment, null, arrow && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-arrow\")\n }), /*#__PURE__*/React.cloneElement(overlayElement, extraOverlayProps));\n };\n var getMenuElementOrLambda = function getMenuElementOrLambda() {\n var overlay = props.overlay;\n if (typeof overlay === 'function') {\n return getMenuElement;\n }\n return getMenuElement();\n };\n var getMinOverlayWidthMatchTrigger = function getMinOverlayWidthMatchTrigger() {\n var minOverlayWidthMatchTrigger = props.minOverlayWidthMatchTrigger,\n alignPoint = props.alignPoint;\n if ('minOverlayWidthMatchTrigger' in props) {\n return minOverlayWidthMatchTrigger;\n }\n return !alignPoint;\n };\n var getOpenClassName = function getOpenClassName() {\n var openClassName = props.openClassName;\n if (openClassName !== undefined) {\n return openClassName;\n }\n return \"\".concat(prefixCls, \"-open\");\n };\n var renderChildren = function renderChildren() {\n var children = props.children;\n var childrenProps = children.props ? children.props : {};\n var childClassName = classNames(childrenProps.className, getOpenClassName());\n return mergedVisible && children ? /*#__PURE__*/React.cloneElement(children, {\n className: childClassName\n }) : children;\n };\n var triggerHideAction = hideAction;\n if (!triggerHideAction && trigger.indexOf('contextMenu') !== -1) {\n triggerHideAction = ['click'];\n }\n return /*#__PURE__*/React.createElement(Trigger, _objectSpread(_objectSpread({\n builtinPlacements: placements\n }, otherProps), {}, {\n prefixCls: prefixCls,\n ref: triggerRef,\n popupClassName: classNames(overlayClassName, _defineProperty({}, \"\".concat(prefixCls, \"-show-arrow\"), arrow)),\n popupStyle: overlayStyle,\n action: trigger,\n showAction: showAction,\n hideAction: triggerHideAction || [],\n popupPlacement: placement,\n popupAlign: align,\n popupTransitionName: transitionName,\n popupAnimation: animation,\n popupVisible: mergedVisible,\n stretch: getMinOverlayWidthMatchTrigger() ? 'minWidth' : '',\n popup: getMenuElementOrLambda(),\n onPopupVisibleChange: onVisibleChange,\n getPopupContainer: getPopupContainer\n }), renderChildren());\n}\nexport default /*#__PURE__*/React.forwardRef(Dropdown);","import Dropdown from './Dropdown';\nexport default Dropdown;","import * as React from 'react';\nfunction AddButton(_ref, ref) {\n var prefixCls = _ref.prefixCls,\n editable = _ref.editable,\n locale = _ref.locale,\n style = _ref.style;\n if (!editable || editable.showAdd === false) {\n return null;\n }\n return /*#__PURE__*/React.createElement(\"button\", {\n ref: ref,\n type: \"button\",\n className: \"\".concat(prefixCls, \"-nav-add\"),\n style: style,\n \"aria-label\": (locale === null || locale === void 0 ? void 0 : locale.addAriaLabel) || 'Add tab',\n onClick: function onClick(event) {\n editable.onEdit('add', {\n event: event\n });\n }\n }, editable.addIcon || '+');\n}\nexport default /*#__PURE__*/React.forwardRef(AddButton);","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { useState, useEffect } from 'react';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport Menu, { MenuItem } from 'rc-menu';\nimport Dropdown from 'rc-dropdown';\nimport AddButton from './AddButton';\nfunction OperationNode(_ref, ref) {\n var prefixCls = _ref.prefixCls,\n id = _ref.id,\n tabs = _ref.tabs,\n locale = _ref.locale,\n mobile = _ref.mobile,\n _ref$moreIcon = _ref.moreIcon,\n moreIcon = _ref$moreIcon === void 0 ? 'More' : _ref$moreIcon,\n moreTransitionName = _ref.moreTransitionName,\n style = _ref.style,\n className = _ref.className,\n editable = _ref.editable,\n tabBarGutter = _ref.tabBarGutter,\n rtl = _ref.rtl,\n removeAriaLabel = _ref.removeAriaLabel,\n onTabClick = _ref.onTabClick;\n\n // ======================== Dropdown ========================\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n open = _useState2[0],\n setOpen = _useState2[1];\n var _useState3 = useState(null),\n _useState4 = _slicedToArray(_useState3, 2),\n selectedKey = _useState4[0],\n setSelectedKey = _useState4[1];\n var popupId = \"\".concat(id, \"-more-popup\");\n var dropdownPrefix = \"\".concat(prefixCls, \"-dropdown\");\n var selectedItemId = selectedKey !== null ? \"\".concat(popupId, \"-\").concat(selectedKey) : null;\n var dropdownAriaLabel = locale === null || locale === void 0 ? void 0 : locale.dropdownAriaLabel;\n function onRemoveTab(event, key) {\n event.preventDefault();\n event.stopPropagation();\n editable.onEdit('remove', {\n key: key,\n event: event\n });\n }\n var menu = /*#__PURE__*/React.createElement(Menu, {\n onClick: function onClick(_ref2) {\n var key = _ref2.key,\n domEvent = _ref2.domEvent;\n onTabClick(key, domEvent);\n setOpen(false);\n },\n id: popupId,\n tabIndex: -1,\n role: \"listbox\",\n \"aria-activedescendant\": selectedItemId,\n selectedKeys: [selectedKey],\n \"aria-label\": dropdownAriaLabel !== undefined ? dropdownAriaLabel : 'expanded dropdown'\n }, tabs.map(function (tab) {\n var removable = editable && tab.closable !== false && !tab.disabled;\n return /*#__PURE__*/React.createElement(MenuItem, {\n key: tab.key,\n id: \"\".concat(popupId, \"-\").concat(tab.key),\n role: \"option\",\n \"aria-controls\": id && \"\".concat(id, \"-panel-\").concat(tab.key),\n disabled: tab.disabled\n }, /*#__PURE__*/React.createElement(\"span\", null, tab.tab), removable && /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n \"aria-label\": removeAriaLabel || 'remove',\n tabIndex: 0,\n className: \"\".concat(dropdownPrefix, \"-menu-item-remove\"),\n onClick: function onClick(e) {\n e.stopPropagation();\n onRemoveTab(e, tab.key);\n }\n }, tab.closeIcon || editable.removeIcon || '×'));\n }));\n function selectOffset(offset) {\n var enabledTabs = tabs.filter(function (tab) {\n return !tab.disabled;\n });\n var selectedIndex = enabledTabs.findIndex(function (tab) {\n return tab.key === selectedKey;\n }) || 0;\n var len = enabledTabs.length;\n for (var i = 0; i < len; i += 1) {\n selectedIndex = (selectedIndex + offset + len) % len;\n var tab = enabledTabs[selectedIndex];\n if (!tab.disabled) {\n setSelectedKey(tab.key);\n return;\n }\n }\n }\n function onKeyDown(e) {\n var which = e.which;\n if (!open) {\n if ([KeyCode.DOWN, KeyCode.SPACE, KeyCode.ENTER].includes(which)) {\n setOpen(true);\n e.preventDefault();\n }\n return;\n }\n switch (which) {\n case KeyCode.UP:\n selectOffset(-1);\n e.preventDefault();\n break;\n case KeyCode.DOWN:\n selectOffset(1);\n e.preventDefault();\n break;\n case KeyCode.ESC:\n setOpen(false);\n break;\n case KeyCode.SPACE:\n case KeyCode.ENTER:\n if (selectedKey !== null) onTabClick(selectedKey, e);\n break;\n }\n } // ========================= Effect =========================\n\n useEffect(function () {\n // We use query element here to avoid React strict warning\n var ele = document.getElementById(selectedItemId);\n if (ele && ele.scrollIntoView) {\n ele.scrollIntoView(false);\n }\n }, [selectedKey]);\n useEffect(function () {\n if (!open) {\n setSelectedKey(null);\n }\n }, [open]); // ========================= Render =========================\n\n var moreStyle = _defineProperty({}, rtl ? 'marginRight' : 'marginLeft', tabBarGutter);\n if (!tabs.length) {\n moreStyle.visibility = 'hidden';\n moreStyle.order = 1;\n }\n var overlayClassName = classNames(_defineProperty({}, \"\".concat(dropdownPrefix, \"-rtl\"), rtl));\n var moreNode = mobile ? null : /*#__PURE__*/React.createElement(Dropdown, {\n prefixCls: dropdownPrefix,\n overlay: menu,\n trigger: ['hover'],\n visible: open,\n transitionName: moreTransitionName,\n onVisibleChange: setOpen,\n overlayClassName: overlayClassName,\n mouseEnterDelay: 0.1,\n mouseLeaveDelay: 0.1\n }, /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n className: \"\".concat(prefixCls, \"-nav-more\"),\n style: moreStyle,\n tabIndex: -1,\n \"aria-hidden\": \"true\",\n \"aria-haspopup\": \"listbox\",\n \"aria-controls\": popupId,\n id: \"\".concat(id, \"-more\"),\n \"aria-expanded\": open,\n onKeyDown: onKeyDown\n }, moreIcon));\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-nav-operations\"), className),\n style: style,\n ref: ref\n }, moreNode, /*#__PURE__*/React.createElement(AddButton, {\n prefixCls: prefixCls,\n locale: locale,\n editable: editable\n }));\n}\nexport default /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(OperationNode), function (_, next) {\n return (\n // https://github.com/ant-design/ant-design/issues/32544\n // We'd better remove syntactic sugar in `rc-menu` since this has perf issue\n next.tabMoving\n );\n});","import { createContext } from 'react';\nexport default /*#__PURE__*/createContext(null);","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { useState, useRef } from 'react';\nvar MIN_SWIPE_DISTANCE = 0.1;\nvar STOP_SWIPE_DISTANCE = 0.01;\nvar REFRESH_INTERVAL = 20;\nvar SPEED_OFF_MULTIPLE = Math.pow(0.995, REFRESH_INTERVAL); // ================================= Hook =================================\n\nexport default function useTouchMove(ref, onOffset) {\n var _useState = useState(),\n _useState2 = _slicedToArray(_useState, 2),\n touchPosition = _useState2[0],\n setTouchPosition = _useState2[1];\n var _useState3 = useState(0),\n _useState4 = _slicedToArray(_useState3, 2),\n lastTimestamp = _useState4[0],\n setLastTimestamp = _useState4[1];\n var _useState5 = useState(0),\n _useState6 = _slicedToArray(_useState5, 2),\n lastTimeDiff = _useState6[0],\n setLastTimeDiff = _useState6[1];\n var _useState7 = useState(),\n _useState8 = _slicedToArray(_useState7, 2),\n lastOffset = _useState8[0],\n setLastOffset = _useState8[1];\n var motionRef = useRef(); // ========================= Events =========================\n // >>> Touch events\n\n function onTouchStart(e) {\n var _e$touches$ = e.touches[0],\n screenX = _e$touches$.screenX,\n screenY = _e$touches$.screenY;\n setTouchPosition({\n x: screenX,\n y: screenY\n });\n window.clearInterval(motionRef.current);\n }\n function onTouchMove(e) {\n if (!touchPosition) return;\n e.preventDefault();\n var _e$touches$2 = e.touches[0],\n screenX = _e$touches$2.screenX,\n screenY = _e$touches$2.screenY;\n setTouchPosition({\n x: screenX,\n y: screenY\n });\n var offsetX = screenX - touchPosition.x;\n var offsetY = screenY - touchPosition.y;\n onOffset(offsetX, offsetY);\n var now = Date.now();\n setLastTimestamp(now);\n setLastTimeDiff(now - lastTimestamp);\n setLastOffset({\n x: offsetX,\n y: offsetY\n });\n }\n function onTouchEnd() {\n if (!touchPosition) return;\n setTouchPosition(null);\n setLastOffset(null); // Swipe if needed\n\n if (lastOffset) {\n var distanceX = lastOffset.x / lastTimeDiff;\n var distanceY = lastOffset.y / lastTimeDiff;\n var absX = Math.abs(distanceX);\n var absY = Math.abs(distanceY); // Skip swipe if low distance\n\n if (Math.max(absX, absY) < MIN_SWIPE_DISTANCE) return;\n var currentX = distanceX;\n var currentY = distanceY;\n motionRef.current = window.setInterval(function () {\n if (Math.abs(currentX) < STOP_SWIPE_DISTANCE && Math.abs(currentY) < STOP_SWIPE_DISTANCE) {\n window.clearInterval(motionRef.current);\n return;\n }\n currentX *= SPEED_OFF_MULTIPLE;\n currentY *= SPEED_OFF_MULTIPLE;\n onOffset(currentX * REFRESH_INTERVAL, currentY * REFRESH_INTERVAL);\n }, REFRESH_INTERVAL);\n }\n } // >>> Wheel event\n\n var lastWheelDirectionRef = useRef();\n function onWheel(e) {\n var deltaX = e.deltaX,\n deltaY = e.deltaY; // Convert both to x & y since wheel only happened on PC\n\n var mixed = 0;\n var absX = Math.abs(deltaX);\n var absY = Math.abs(deltaY);\n if (absX === absY) {\n mixed = lastWheelDirectionRef.current === 'x' ? deltaX : deltaY;\n } else if (absX > absY) {\n mixed = deltaX;\n lastWheelDirectionRef.current = 'x';\n } else {\n mixed = deltaY;\n lastWheelDirectionRef.current = 'y';\n }\n if (onOffset(-mixed, -mixed)) {\n e.preventDefault();\n }\n } // ========================= Effect =========================\n\n var touchEventsRef = useRef(null);\n touchEventsRef.current = {\n onTouchStart: onTouchStart,\n onTouchMove: onTouchMove,\n onTouchEnd: onTouchEnd,\n onWheel: onWheel\n };\n React.useEffect(function () {\n function onProxyTouchStart(e) {\n touchEventsRef.current.onTouchStart(e);\n }\n function onProxyTouchMove(e) {\n touchEventsRef.current.onTouchMove(e);\n }\n function onProxyTouchEnd(e) {\n touchEventsRef.current.onTouchEnd(e);\n }\n function onProxyWheel(e) {\n touchEventsRef.current.onWheel(e);\n }\n document.addEventListener('touchmove', onProxyTouchMove, {\n passive: false\n });\n document.addEventListener('touchend', onProxyTouchEnd, {\n passive: false\n }); // No need to clean up since element removed\n\n ref.current.addEventListener('touchstart', onProxyTouchStart, {\n passive: false\n });\n ref.current.addEventListener('wheel', onProxyWheel);\n return function () {\n document.removeEventListener('touchmove', onProxyTouchMove);\n document.removeEventListener('touchend', onProxyTouchEnd);\n };\n }, []);\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nexport default function useSyncState(defaultState, onChange) {\n var stateRef = React.useRef(defaultState);\n var _React$useState = React.useState({}),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n forceUpdate = _React$useState2[1];\n function setState(updater) {\n var newValue = typeof updater === 'function' ? updater(stateRef.current) : updater;\n if (newValue !== stateRef.current) {\n onChange(newValue, stateRef.current);\n }\n stateRef.current = newValue;\n forceUpdate({});\n }\n return [stateRef.current, setState];\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport * as React from 'react';\nimport { useState, useRef, useEffect } from 'react';\nimport classNames from 'classnames';\nimport raf from \"rc-util/es/raf\";\nimport ResizeObserver from 'rc-resize-observer';\nimport useRaf, { useRafState } from '../hooks/useRaf';\nimport TabNode from './TabNode';\nimport useOffsets from '../hooks/useOffsets';\nimport useVisibleRange from '../hooks/useVisibleRange';\nimport OperationNode from './OperationNode';\nimport TabContext from '../TabContext';\nimport useTouchMove from '../hooks/useTouchMove';\nimport useRefs from '../hooks/useRefs';\nimport AddButton from './AddButton';\nimport useSyncState from '../hooks/useSyncState';\nvar ExtraContent = function ExtraContent(_ref) {\n var position = _ref.position,\n prefixCls = _ref.prefixCls,\n extra = _ref.extra;\n if (!extra) return null;\n var content; // Parse extra\n\n var assertExtra = {};\n if (extra && _typeof(extra) === 'object' && ! /*#__PURE__*/React.isValidElement(extra)) {\n assertExtra = extra;\n } else {\n assertExtra.right = extra;\n }\n if (position === 'right') {\n content = assertExtra.right;\n }\n if (position === 'left') {\n content = assertExtra.left;\n }\n return content ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-extra-content\")\n }, content) : null;\n};\nfunction TabNavList(props, ref) {\n var _classNames;\n var _React$useContext = React.useContext(TabContext),\n prefixCls = _React$useContext.prefixCls,\n tabs = _React$useContext.tabs;\n var className = props.className,\n style = props.style,\n id = props.id,\n animated = props.animated,\n activeKey = props.activeKey,\n rtl = props.rtl,\n extra = props.extra,\n editable = props.editable,\n locale = props.locale,\n tabPosition = props.tabPosition,\n tabBarGutter = props.tabBarGutter,\n children = props.children,\n onTabClick = props.onTabClick,\n onTabScroll = props.onTabScroll;\n var tabsWrapperRef = useRef();\n var tabListRef = useRef();\n var operationsRef = useRef();\n var innerAddButtonRef = useRef();\n var _useRefs = useRefs(),\n _useRefs2 = _slicedToArray(_useRefs, 2),\n getBtnRef = _useRefs2[0],\n removeBtnRef = _useRefs2[1];\n var tabPositionTopOrBottom = tabPosition === 'top' || tabPosition === 'bottom';\n var _useSyncState = useSyncState(0, function (next, prev) {\n if (tabPositionTopOrBottom && onTabScroll) {\n onTabScroll({\n direction: next > prev ? 'left' : 'right'\n });\n }\n }),\n _useSyncState2 = _slicedToArray(_useSyncState, 2),\n transformLeft = _useSyncState2[0],\n setTransformLeft = _useSyncState2[1];\n var _useSyncState3 = useSyncState(0, function (next, prev) {\n if (!tabPositionTopOrBottom && onTabScroll) {\n onTabScroll({\n direction: next > prev ? 'top' : 'bottom'\n });\n }\n }),\n _useSyncState4 = _slicedToArray(_useSyncState3, 2),\n transformTop = _useSyncState4[0],\n setTransformTop = _useSyncState4[1];\n var _useState = useState(0),\n _useState2 = _slicedToArray(_useState, 2),\n wrapperScrollWidth = _useState2[0],\n setWrapperScrollWidth = _useState2[1];\n var _useState3 = useState(0),\n _useState4 = _slicedToArray(_useState3, 2),\n wrapperScrollHeight = _useState4[0],\n setWrapperScrollHeight = _useState4[1];\n var _useState5 = useState(0),\n _useState6 = _slicedToArray(_useState5, 2),\n wrapperContentWidth = _useState6[0],\n setWrapperContentWidth = _useState6[1];\n var _useState7 = useState(0),\n _useState8 = _slicedToArray(_useState7, 2),\n wrapperContentHeight = _useState8[0],\n setWrapperContentHeight = _useState8[1];\n var _useState9 = useState(null),\n _useState10 = _slicedToArray(_useState9, 2),\n wrapperWidth = _useState10[0],\n setWrapperWidth = _useState10[1];\n var _useState11 = useState(null),\n _useState12 = _slicedToArray(_useState11, 2),\n wrapperHeight = _useState12[0],\n setWrapperHeight = _useState12[1];\n var _useState13 = useState(0),\n _useState14 = _slicedToArray(_useState13, 2),\n addWidth = _useState14[0],\n setAddWidth = _useState14[1];\n var _useState15 = useState(0),\n _useState16 = _slicedToArray(_useState15, 2),\n addHeight = _useState16[0],\n setAddHeight = _useState16[1];\n var _useRafState = useRafState(new Map()),\n _useRafState2 = _slicedToArray(_useRafState, 2),\n tabSizes = _useRafState2[0],\n setTabSizes = _useRafState2[1];\n var tabOffsets = useOffsets(tabs, tabSizes, wrapperScrollWidth); // ========================== Util =========================\n\n var operationsHiddenClassName = \"\".concat(prefixCls, \"-nav-operations-hidden\");\n var transformMin = 0;\n var transformMax = 0;\n if (!tabPositionTopOrBottom) {\n transformMin = Math.min(0, wrapperHeight - wrapperScrollHeight);\n transformMax = 0;\n } else if (rtl) {\n transformMin = 0;\n transformMax = Math.max(0, wrapperScrollWidth - wrapperWidth);\n } else {\n transformMin = Math.min(0, wrapperWidth - wrapperScrollWidth);\n transformMax = 0;\n }\n function alignInRange(value) {\n if (value < transformMin) {\n return transformMin;\n }\n if (value > transformMax) {\n return transformMax;\n }\n return value;\n } // ========================= Mobile ========================\n\n var touchMovingRef = useRef();\n var _useState17 = useState(),\n _useState18 = _slicedToArray(_useState17, 2),\n lockAnimation = _useState18[0],\n setLockAnimation = _useState18[1];\n function doLockAnimation() {\n setLockAnimation(Date.now());\n }\n function clearTouchMoving() {\n window.clearTimeout(touchMovingRef.current);\n }\n useTouchMove(tabsWrapperRef, function (offsetX, offsetY) {\n function doMove(setState, offset) {\n setState(function (value) {\n var newValue = alignInRange(value + offset);\n return newValue;\n });\n }\n if (tabPositionTopOrBottom) {\n // Skip scroll if place is enough\n if (wrapperWidth >= wrapperScrollWidth) {\n return false;\n }\n doMove(setTransformLeft, offsetX);\n } else {\n if (wrapperHeight >= wrapperScrollHeight) {\n return false;\n }\n doMove(setTransformTop, offsetY);\n }\n clearTouchMoving();\n doLockAnimation();\n return true;\n });\n useEffect(function () {\n clearTouchMoving();\n if (lockAnimation) {\n touchMovingRef.current = window.setTimeout(function () {\n setLockAnimation(0);\n }, 100);\n }\n return clearTouchMoving;\n }, [lockAnimation]); // ========================= Scroll ========================\n\n function scrollToTab() {\n var key = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : activeKey;\n var tabOffset = tabOffsets.get(key) || {\n width: 0,\n height: 0,\n left: 0,\n right: 0,\n top: 0\n };\n if (tabPositionTopOrBottom) {\n // ============ Align with top & bottom ============\n var newTransform = transformLeft; // RTL\n\n if (rtl) {\n if (tabOffset.right < transformLeft) {\n newTransform = tabOffset.right;\n } else if (tabOffset.right + tabOffset.width > transformLeft + wrapperWidth) {\n newTransform = tabOffset.right + tabOffset.width - wrapperWidth;\n }\n } // LTR\n else if (tabOffset.left < -transformLeft) {\n newTransform = -tabOffset.left;\n } else if (tabOffset.left + tabOffset.width > -transformLeft + wrapperWidth) {\n newTransform = -(tabOffset.left + tabOffset.width - wrapperWidth);\n }\n setTransformTop(0);\n setTransformLeft(alignInRange(newTransform));\n } else {\n // ============ Align with left & right ============\n var _newTransform = transformTop;\n if (tabOffset.top < -transformTop) {\n _newTransform = -tabOffset.top;\n } else if (tabOffset.top + tabOffset.height > -transformTop + wrapperHeight) {\n _newTransform = -(tabOffset.top + tabOffset.height - wrapperHeight);\n }\n setTransformLeft(0);\n setTransformTop(alignInRange(_newTransform));\n }\n } // ========================== Tab ==========================\n // Render tab node & collect tab offset\n\n var _useVisibleRange = useVisibleRange(tabOffsets, {\n width: wrapperWidth,\n height: wrapperHeight,\n left: transformLeft,\n top: transformTop\n }, {\n width: wrapperContentWidth,\n height: wrapperContentHeight\n }, {\n width: addWidth,\n height: addHeight\n }, _objectSpread(_objectSpread({}, props), {}, {\n tabs: tabs\n })),\n _useVisibleRange2 = _slicedToArray(_useVisibleRange, 2),\n visibleStart = _useVisibleRange2[0],\n visibleEnd = _useVisibleRange2[1];\n var tabNodeStyle = {};\n if (tabPosition === 'top' || tabPosition === 'bottom') {\n tabNodeStyle[rtl ? 'marginRight' : 'marginLeft'] = tabBarGutter;\n } else {\n tabNodeStyle.marginTop = tabBarGutter;\n }\n var tabNodes = tabs.map(function (tab, i) {\n var key = tab.key;\n return /*#__PURE__*/React.createElement(TabNode, {\n id: id,\n prefixCls: prefixCls,\n key: key,\n tab: tab\n /* first node should not have margin left */,\n\n style: i === 0 ? undefined : tabNodeStyle,\n closable: tab.closable,\n editable: editable,\n active: key === activeKey,\n renderWrapper: children,\n removeAriaLabel: locale === null || locale === void 0 ? void 0 : locale.removeAriaLabel,\n ref: getBtnRef(key),\n onClick: function onClick(e) {\n onTabClick(key, e);\n },\n onRemove: function onRemove() {\n removeBtnRef(key);\n },\n onFocus: function onFocus() {\n scrollToTab(key);\n doLockAnimation();\n if (!tabsWrapperRef.current) {\n return;\n } // Focus element will make scrollLeft change which we should reset back\n\n if (!rtl) {\n tabsWrapperRef.current.scrollLeft = 0;\n }\n tabsWrapperRef.current.scrollTop = 0;\n }\n });\n });\n var onListHolderResize = useRaf(function () {\n var _tabsWrapperRef$curre, _tabsWrapperRef$curre2, _innerAddButtonRef$cu, _innerAddButtonRef$cu2, _operationsRef$curren, _operationsRef$curren2, _tabListRef$current, _tabListRef$current2, _operationsRef$curren3;\n\n // Update wrapper records\n var offsetWidth = ((_tabsWrapperRef$curre = tabsWrapperRef.current) === null || _tabsWrapperRef$curre === void 0 ? void 0 : _tabsWrapperRef$curre.offsetWidth) || 0;\n var offsetHeight = ((_tabsWrapperRef$curre2 = tabsWrapperRef.current) === null || _tabsWrapperRef$curre2 === void 0 ? void 0 : _tabsWrapperRef$curre2.offsetHeight) || 0;\n var newAddWidth = ((_innerAddButtonRef$cu = innerAddButtonRef.current) === null || _innerAddButtonRef$cu === void 0 ? void 0 : _innerAddButtonRef$cu.offsetWidth) || 0;\n var newAddHeight = ((_innerAddButtonRef$cu2 = innerAddButtonRef.current) === null || _innerAddButtonRef$cu2 === void 0 ? void 0 : _innerAddButtonRef$cu2.offsetHeight) || 0;\n var newOperationWidth = ((_operationsRef$curren = operationsRef.current) === null || _operationsRef$curren === void 0 ? void 0 : _operationsRef$curren.offsetWidth) || 0;\n var newOperationHeight = ((_operationsRef$curren2 = operationsRef.current) === null || _operationsRef$curren2 === void 0 ? void 0 : _operationsRef$curren2.offsetHeight) || 0;\n setWrapperWidth(offsetWidth);\n setWrapperHeight(offsetHeight);\n setAddWidth(newAddWidth);\n setAddHeight(newAddHeight);\n var newWrapperScrollWidth = (((_tabListRef$current = tabListRef.current) === null || _tabListRef$current === void 0 ? void 0 : _tabListRef$current.offsetWidth) || 0) - newAddWidth;\n var newWrapperScrollHeight = (((_tabListRef$current2 = tabListRef.current) === null || _tabListRef$current2 === void 0 ? void 0 : _tabListRef$current2.offsetHeight) || 0) - newAddHeight;\n setWrapperScrollWidth(newWrapperScrollWidth);\n setWrapperScrollHeight(newWrapperScrollHeight);\n var isOperationHidden = (_operationsRef$curren3 = operationsRef.current) === null || _operationsRef$curren3 === void 0 ? void 0 : _operationsRef$curren3.className.includes(operationsHiddenClassName);\n setWrapperContentWidth(newWrapperScrollWidth - (isOperationHidden ? 0 : newOperationWidth));\n setWrapperContentHeight(newWrapperScrollHeight - (isOperationHidden ? 0 : newOperationHeight)); // Update buttons records\n\n setTabSizes(function () {\n var newSizes = new Map();\n tabs.forEach(function (_ref2) {\n var key = _ref2.key;\n var btnNode = getBtnRef(key).current;\n if (btnNode) {\n newSizes.set(key, {\n width: btnNode.offsetWidth,\n height: btnNode.offsetHeight,\n left: btnNode.offsetLeft,\n top: btnNode.offsetTop\n });\n }\n });\n return newSizes;\n });\n }); // ======================== Dropdown =======================\n\n var startHiddenTabs = tabs.slice(0, visibleStart);\n var endHiddenTabs = tabs.slice(visibleEnd + 1);\n var hiddenTabs = [].concat(_toConsumableArray(startHiddenTabs), _toConsumableArray(endHiddenTabs)); // =================== Link & Operations ===================\n\n var _useState19 = useState(),\n _useState20 = _slicedToArray(_useState19, 2),\n inkStyle = _useState20[0],\n setInkStyle = _useState20[1];\n var activeTabOffset = tabOffsets.get(activeKey); // Delay set ink style to avoid remove tab blink\n\n var inkBarRafRef = useRef();\n function cleanInkBarRaf() {\n raf.cancel(inkBarRafRef.current);\n }\n useEffect(function () {\n var newInkStyle = {};\n if (activeTabOffset) {\n if (tabPositionTopOrBottom) {\n if (rtl) {\n newInkStyle.right = activeTabOffset.right;\n } else {\n newInkStyle.left = activeTabOffset.left;\n }\n newInkStyle.width = activeTabOffset.width;\n } else {\n newInkStyle.top = activeTabOffset.top;\n newInkStyle.height = activeTabOffset.height;\n }\n }\n cleanInkBarRaf();\n inkBarRafRef.current = raf(function () {\n setInkStyle(newInkStyle);\n });\n return cleanInkBarRaf;\n }, [activeTabOffset, tabPositionTopOrBottom, rtl]); // ========================= Effect ========================\n\n useEffect(function () {\n scrollToTab();\n }, [activeKey, activeTabOffset, tabOffsets, tabPositionTopOrBottom]); // Should recalculate when rtl changed\n\n useEffect(function () {\n onListHolderResize();\n }, [rtl, tabBarGutter, activeKey, tabs.map(function (tab) {\n return tab.key;\n }).join('_')]); // ========================= Render ========================\n\n var hasDropdown = !!hiddenTabs.length;\n var wrapPrefix = \"\".concat(prefixCls, \"-nav-wrap\");\n var pingLeft;\n var pingRight;\n var pingTop;\n var pingBottom;\n if (tabPositionTopOrBottom) {\n if (rtl) {\n pingRight = transformLeft > 0;\n pingLeft = transformLeft + wrapperWidth < wrapperScrollWidth;\n } else {\n pingLeft = transformLeft < 0;\n pingRight = -transformLeft + wrapperWidth < wrapperScrollWidth;\n }\n } else {\n pingTop = transformTop < 0;\n pingBottom = -transformTop + wrapperHeight < wrapperScrollHeight;\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: ref,\n role: \"tablist\",\n className: classNames(\"\".concat(prefixCls, \"-nav\"), className),\n style: style,\n onKeyDown: function onKeyDown() {\n // No need animation when use keyboard\n doLockAnimation();\n }\n }, /*#__PURE__*/React.createElement(ExtraContent, {\n position: \"left\",\n extra: extra,\n prefixCls: prefixCls\n }), /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: onListHolderResize\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(wrapPrefix, (_classNames = {}, _defineProperty(_classNames, \"\".concat(wrapPrefix, \"-ping-left\"), pingLeft), _defineProperty(_classNames, \"\".concat(wrapPrefix, \"-ping-right\"), pingRight), _defineProperty(_classNames, \"\".concat(wrapPrefix, \"-ping-top\"), pingTop), _defineProperty(_classNames, \"\".concat(wrapPrefix, \"-ping-bottom\"), pingBottom), _classNames)),\n ref: tabsWrapperRef\n }, /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: onListHolderResize\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: tabListRef,\n className: \"\".concat(prefixCls, \"-nav-list\"),\n style: {\n transform: \"translate(\".concat(transformLeft, \"px, \").concat(transformTop, \"px)\"),\n transition: lockAnimation ? 'none' : undefined\n }\n }, tabNodes, /*#__PURE__*/React.createElement(AddButton, {\n ref: innerAddButtonRef,\n prefixCls: prefixCls,\n locale: locale,\n editable: editable,\n style: _objectSpread(_objectSpread({}, tabNodes.length === 0 ? undefined : tabNodeStyle), {}, {\n visibility: hasDropdown ? 'hidden' : null\n })\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-ink-bar\"), _defineProperty({}, \"\".concat(prefixCls, \"-ink-bar-animated\"), animated.inkBar)),\n style: inkStyle\n }))))), /*#__PURE__*/React.createElement(OperationNode, _extends({}, props, {\n removeAriaLabel: locale === null || locale === void 0 ? void 0 : locale.removeAriaLabel,\n ref: operationsRef,\n prefixCls: prefixCls,\n tabs: hiddenTabs,\n className: !hasDropdown && operationsHiddenClassName,\n tabMoving: !!lockAnimation\n })), /*#__PURE__*/React.createElement(ExtraContent, {\n position: \"right\",\n extra: extra,\n prefixCls: prefixCls\n }));\n /* eslint-enable */\n}\n\nexport default /*#__PURE__*/React.forwardRef(TabNavList);","import * as React from 'react';\nimport { useRef } from 'react';\nexport default function useRefs() {\n var cacheRefs = useRef(new Map());\n function getRef(key) {\n if (!cacheRefs.current.has(key)) {\n cacheRefs.current.set(key, /*#__PURE__*/React.createRef());\n }\n return cacheRefs.current.get(key);\n }\n function removeRef(key) {\n cacheRefs.current.delete(key);\n }\n return [getRef, removeRef];\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport TabContext from '../TabContext';\nexport default function TabPanelList(_ref) {\n var id = _ref.id,\n activeKey = _ref.activeKey,\n animated = _ref.animated,\n tabPosition = _ref.tabPosition,\n rtl = _ref.rtl,\n destroyInactiveTabPane = _ref.destroyInactiveTabPane;\n var _React$useContext = React.useContext(TabContext),\n prefixCls = _React$useContext.prefixCls,\n tabs = _React$useContext.tabs;\n var tabPaneAnimated = animated.tabPane;\n var activeIndex = tabs.findIndex(function (tab) {\n return tab.key === activeKey;\n });\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-content-holder\"))\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(\"\".concat(prefixCls, \"-content\"), \"\".concat(prefixCls, \"-content-\").concat(tabPosition), _defineProperty({}, \"\".concat(prefixCls, \"-content-animated\"), tabPaneAnimated)),\n style: activeIndex && tabPaneAnimated ? _defineProperty({}, rtl ? 'marginRight' : 'marginLeft', \"-\".concat(activeIndex, \"00%\")) : null\n }, tabs.map(function (tab) {\n return /*#__PURE__*/React.cloneElement(tab.node, {\n key: tab.key,\n prefixCls: prefixCls,\n tabKey: tab.key,\n id: id,\n animated: tabPaneAnimated,\n active: tab.key === activeKey,\n destroyInactiveTabPane: destroyInactiveTabPane\n });\n })));\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nexport default function TabPane(_ref) {\n var prefixCls = _ref.prefixCls,\n forceRender = _ref.forceRender,\n className = _ref.className,\n style = _ref.style,\n id = _ref.id,\n active = _ref.active,\n animated = _ref.animated,\n destroyInactiveTabPane = _ref.destroyInactiveTabPane,\n tabKey = _ref.tabKey,\n children = _ref.children;\n var _React$useState = React.useState(forceRender),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n visited = _React$useState2[0],\n setVisited = _React$useState2[1];\n React.useEffect(function () {\n if (active) {\n setVisited(true);\n } else if (destroyInactiveTabPane) {\n setVisited(false);\n }\n }, [active, destroyInactiveTabPane]);\n var mergedStyle = {};\n if (!active) {\n if (animated) {\n mergedStyle.visibility = 'hidden';\n mergedStyle.height = 0;\n mergedStyle.overflowY = 'hidden';\n } else {\n mergedStyle.display = 'none';\n }\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n id: id && \"\".concat(id, \"-panel-\").concat(tabKey),\n role: \"tabpanel\",\n tabIndex: active ? 0 : -1,\n \"aria-labelledby\": id && \"\".concat(id, \"-tab-\").concat(tabKey),\n \"aria-hidden\": !active,\n style: _objectSpread(_objectSpread({}, mergedStyle), style),\n className: classNames(\"\".concat(prefixCls, \"-tabpane\"), active && \"\".concat(prefixCls, \"-tabpane-active\"), className)\n }, (active || visited || forceRender) && children);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nvar _excluded = [\"id\", \"prefixCls\", \"className\", \"children\", \"direction\", \"activeKey\", \"defaultActiveKey\", \"editable\", \"animated\", \"tabPosition\", \"tabBarGutter\", \"tabBarStyle\", \"tabBarExtraContent\", \"locale\", \"moreIcon\", \"moreTransitionName\", \"destroyInactiveTabPane\", \"renderTabBar\", \"onChange\", \"onTabClick\", \"onTabScroll\"];\n// Accessibility https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/Tab_Role\nimport * as React from 'react';\nimport { useEffect, useState } from 'react';\nimport classNames from 'classnames';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport isMobile from \"rc-util/es/isMobile\";\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport TabNavList from './TabNavList';\nimport TabPanelList from './TabPanelList';\nimport TabPane from './TabPanelList/TabPane';\nimport TabContext from './TabContext';\n/**\n * Should added antd:\n * - type\n *\n * Removed:\n * - onNextClick\n * - onPrevClick\n * - keyboard\n */\n// Used for accessibility\n\nvar uuid = 0;\nfunction parseTabList(children) {\n return toArray(children).map(function (node) {\n if ( /*#__PURE__*/React.isValidElement(node)) {\n var key = node.key !== undefined ? String(node.key) : undefined;\n return _objectSpread(_objectSpread({\n key: key\n }, node.props), {}, {\n node: node\n });\n }\n return null;\n }).filter(function (tab) {\n return tab;\n });\n}\nfunction Tabs(_ref, ref) {\n var _classNames;\n var id = _ref.id,\n _ref$prefixCls = _ref.prefixCls,\n prefixCls = _ref$prefixCls === void 0 ? 'rc-tabs' : _ref$prefixCls,\n className = _ref.className,\n children = _ref.children,\n direction = _ref.direction,\n activeKey = _ref.activeKey,\n defaultActiveKey = _ref.defaultActiveKey,\n editable = _ref.editable,\n _ref$animated = _ref.animated,\n animated = _ref$animated === void 0 ? {\n inkBar: true,\n tabPane: false\n } : _ref$animated,\n _ref$tabPosition = _ref.tabPosition,\n tabPosition = _ref$tabPosition === void 0 ? 'top' : _ref$tabPosition,\n tabBarGutter = _ref.tabBarGutter,\n tabBarStyle = _ref.tabBarStyle,\n tabBarExtraContent = _ref.tabBarExtraContent,\n locale = _ref.locale,\n moreIcon = _ref.moreIcon,\n moreTransitionName = _ref.moreTransitionName,\n destroyInactiveTabPane = _ref.destroyInactiveTabPane,\n renderTabBar = _ref.renderTabBar,\n onChange = _ref.onChange,\n onTabClick = _ref.onTabClick,\n onTabScroll = _ref.onTabScroll,\n restProps = _objectWithoutProperties(_ref, _excluded);\n var tabs = parseTabList(children);\n var rtl = direction === 'rtl';\n var mergedAnimated;\n if (animated === false) {\n mergedAnimated = {\n inkBar: false,\n tabPane: false\n };\n } else if (animated === true) {\n mergedAnimated = {\n inkBar: true,\n tabPane: true\n };\n } else {\n mergedAnimated = _objectSpread({\n inkBar: true,\n tabPane: false\n }, _typeof(animated) === 'object' ? animated : {});\n } // ======================== Mobile ========================\n\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n mobile = _useState2[0],\n setMobile = _useState2[1];\n useEffect(function () {\n // Only update on the client side\n setMobile(isMobile());\n }, []); // ====================== Active Key ======================\n\n var _useMergedState = useMergedState(function () {\n var _tabs$;\n return (_tabs$ = tabs[0]) === null || _tabs$ === void 0 ? void 0 : _tabs$.key;\n }, {\n value: activeKey,\n defaultValue: defaultActiveKey\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n mergedActiveKey = _useMergedState2[0],\n setMergedActiveKey = _useMergedState2[1];\n var _useState3 = useState(function () {\n return tabs.findIndex(function (tab) {\n return tab.key === mergedActiveKey;\n });\n }),\n _useState4 = _slicedToArray(_useState3, 2),\n activeIndex = _useState4[0],\n setActiveIndex = _useState4[1]; // Reset active key if not exist anymore\n\n useEffect(function () {\n var newActiveIndex = tabs.findIndex(function (tab) {\n return tab.key === mergedActiveKey;\n });\n if (newActiveIndex === -1) {\n var _tabs$newActiveIndex;\n newActiveIndex = Math.max(0, Math.min(activeIndex, tabs.length - 1));\n setMergedActiveKey((_tabs$newActiveIndex = tabs[newActiveIndex]) === null || _tabs$newActiveIndex === void 0 ? void 0 : _tabs$newActiveIndex.key);\n }\n setActiveIndex(newActiveIndex);\n }, [tabs.map(function (tab) {\n return tab.key;\n }).join('_'), mergedActiveKey, activeIndex]); // ===================== Accessibility ====================\n\n var _useMergedState3 = useMergedState(null, {\n value: id\n }),\n _useMergedState4 = _slicedToArray(_useMergedState3, 2),\n mergedId = _useMergedState4[0],\n setMergedId = _useMergedState4[1];\n var mergedTabPosition = tabPosition;\n if (mobile && !['left', 'right'].includes(tabPosition)) {\n mergedTabPosition = 'top';\n } // Async generate id to avoid ssr mapping failed\n\n useEffect(function () {\n if (!id) {\n setMergedId(\"rc-tabs-\".concat(process.env.NODE_ENV === 'test' ? 'test' : uuid));\n uuid += 1;\n }\n }, []); // ======================== Events ========================\n\n function onInternalTabClick(key, e) {\n onTabClick === null || onTabClick === void 0 ? void 0 : onTabClick(key, e);\n var isActiveChanged = key !== mergedActiveKey;\n setMergedActiveKey(key);\n if (isActiveChanged) {\n onChange === null || onChange === void 0 ? void 0 : onChange(key);\n }\n } // ======================== Render ========================\n\n var sharedProps = {\n id: mergedId,\n activeKey: mergedActiveKey,\n animated: mergedAnimated,\n tabPosition: mergedTabPosition,\n rtl: rtl,\n mobile: mobile\n };\n var tabNavBar;\n var tabNavBarProps = _objectSpread(_objectSpread({}, sharedProps), {}, {\n editable: editable,\n locale: locale,\n moreIcon: moreIcon,\n moreTransitionName: moreTransitionName,\n tabBarGutter: tabBarGutter,\n onTabClick: onInternalTabClick,\n onTabScroll: onTabScroll,\n extra: tabBarExtraContent,\n style: tabBarStyle,\n panes: children\n });\n if (renderTabBar) {\n tabNavBar = renderTabBar(tabNavBarProps, TabNavList);\n } else {\n tabNavBar = /*#__PURE__*/React.createElement(TabNavList, tabNavBarProps);\n }\n return /*#__PURE__*/React.createElement(TabContext.Provider, {\n value: {\n tabs: tabs,\n prefixCls: prefixCls\n }\n }, /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: ref,\n id: id,\n className: classNames(prefixCls, \"\".concat(prefixCls, \"-\").concat(mergedTabPosition), (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-mobile\"), mobile), _defineProperty(_classNames, \"\".concat(prefixCls, \"-editable\"), editable), _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), rtl), _classNames), className)\n }, restProps), tabNavBar, /*#__PURE__*/React.createElement(TabPanelList, _extends({\n destroyInactiveTabPane: destroyInactiveTabPane\n }, sharedProps, {\n animated: mergedAnimated\n }))));\n}\nvar ForwardTabs = /*#__PURE__*/React.forwardRef(Tabs);\nForwardTabs.TabPane = TabPane;\nexport default ForwardTabs;","import Tabs from './Tabs';\nimport TabPane from './TabPanelList/TabPane';\nexport { TabPane };\nexport default Tabs;","// This icon file is generated automatically.\nvar PlusOutlined = {\n \"icon\": {\n \"tag\": \"svg\",\n \"attrs\": {\n \"viewBox\": \"64 64 896 896\",\n \"focusable\": \"false\"\n },\n \"children\": [{\n \"tag\": \"defs\",\n \"attrs\": {},\n \"children\": [{\n \"tag\": \"style\",\n \"attrs\": {}\n }]\n }, {\n \"tag\": \"path\",\n \"attrs\": {\n \"d\": \"M482 152h60q8 0 8 8v704q0 8-8 8h-60q-8 0-8-8V160q0-8 8-8z\"\n }\n }, {\n \"tag\": \"path\",\n \"attrs\": {\n \"d\": \"M176 474h672q8 0 8 8v60q0 8-8 8H176q-8 0-8-8v-60q0-8 8-8z\"\n }\n }]\n },\n \"name\": \"plus\",\n \"theme\": \"outlined\"\n};\nexport default PlusOutlined;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport PlusOutlinedSvg from \"@ant-design/icons-svg/es/asn/PlusOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar PlusOutlined = function PlusOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: PlusOutlinedSvg\n }));\n};\nPlusOutlined.displayName = 'PlusOutlined';\nexport default /*#__PURE__*/React.forwardRef(PlusOutlined);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport RcTabs, { TabPane } from 'rc-tabs';\nimport classNames from 'classnames';\nimport EllipsisOutlined from \"@ant-design/icons/es/icons/EllipsisOutlined\";\nimport PlusOutlined from \"@ant-design/icons/es/icons/PlusOutlined\";\nimport CloseOutlined from \"@ant-design/icons/es/icons/CloseOutlined\";\nimport devWarning from '../_util/devWarning';\nimport { ConfigContext } from '../config-provider';\nimport SizeContext from '../config-provider/SizeContext';\nfunction Tabs(_a) {\n var type = _a.type,\n className = _a.className,\n propSize = _a.size,\n _onEdit = _a.onEdit,\n hideAdd = _a.hideAdd,\n centered = _a.centered,\n addIcon = _a.addIcon,\n props = __rest(_a, [\"type\", \"className\", \"size\", \"onEdit\", \"hideAdd\", \"centered\", \"addIcon\"]);\n var customizePrefixCls = props.prefixCls,\n _props$moreIcon = props.moreIcon,\n moreIcon = _props$moreIcon === void 0 ? /*#__PURE__*/React.createElement(EllipsisOutlined, null) : _props$moreIcon;\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n direction = _React$useContext.direction;\n var prefixCls = getPrefixCls('tabs', customizePrefixCls);\n var editable;\n if (type === 'editable-card') {\n editable = {\n onEdit: function onEdit(editType, _ref) {\n var key = _ref.key,\n event = _ref.event;\n _onEdit === null || _onEdit === void 0 ? void 0 : _onEdit(editType === 'add' ? event : key, editType);\n },\n removeIcon: /*#__PURE__*/React.createElement(CloseOutlined, null),\n addIcon: addIcon || /*#__PURE__*/React.createElement(PlusOutlined, null),\n showAdd: hideAdd !== true\n };\n }\n var rootPrefixCls = getPrefixCls();\n devWarning(!('onPrevClick' in props) && !('onNextClick' in props), 'Tabs', '`onPrevClick` and `onNextClick` has been removed. Please use `onTabScroll` instead.');\n return /*#__PURE__*/React.createElement(SizeContext.Consumer, null, function (contextSize) {\n var _classNames;\n var size = propSize !== undefined ? propSize : contextSize;\n return /*#__PURE__*/React.createElement(RcTabs, _extends({\n direction: direction,\n moreTransitionName: \"\".concat(rootPrefixCls, \"-slide-up\")\n }, props, {\n className: classNames((_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-\").concat(size), size), _defineProperty(_classNames, \"\".concat(prefixCls, \"-card\"), ['card', 'editable-card'].includes(type)), _defineProperty(_classNames, \"\".concat(prefixCls, \"-editable-card\"), type === 'editable-card'), _defineProperty(_classNames, \"\".concat(prefixCls, \"-centered\"), centered), _classNames), className),\n editable: editable,\n moreIcon: moreIcon,\n prefixCls: prefixCls\n }));\n });\n}\nTabs.TabPane = TabPane;\nexport default Tabs;","import { OutboundLink } from 'gatsby-plugin-google-analytics';\nimport React from 'react';\n\nimport * as styles from './api-link.module.less';\n\ninterface TypeLinkProps {\n name: string;\n href?: string;\n plural?: boolean;\n}\n\nconst TypeLink: React.FC = (props) => {\n // Decode escaped strings such as <init> that represents a constructor.\n let simpleName = decodeURIComponent(props.name);\n const lastDotIdx = simpleName.lastIndexOf('.');\n if (lastDotIdx >= 0) {\n simpleName = simpleName.substring(lastDotIdx + 1);\n }\n\n let showParams = false;\n let href = props.href;\n if (href) {\n const optionIndex = href.lastIndexOf('?');\n if (optionIndex > 0) {\n showParams = href.substring(optionIndex + 1) === 'full';\n href = href.substring(0, optionIndex);\n }\n }\n\n let suffix = '';\n if (props.plural) {\n if (simpleName.match(/(ch|s|sh|x|z)$/)) {\n suffix = 'es';\n } else {\n suffix = 's';\n }\n }\n\n let title = '';\n if (simpleName.indexOf('#') > 0) {\n const replaced = simpleName.replace('#', '.');\n title = replaced;\n if (showParams) {\n simpleName = replaced;\n } else {\n simpleName = replaced.replace(/ *\\([^)]*\\)*/, '()');\n }\n } else {\n title = simpleName;\n }\n\n const simpleTypeNameWithHref = href ? (\n \n {simpleName}\n \n ) : (\n simpleName\n );\n\n return (\n \n {simpleTypeNameWithHref}\n {suffix}\n \n );\n};\n\nexport { TypeLink };\n","// extracted by mini-css-extract-plugin\nexport var antSteps = \"api-link-module--ant-steps--yihcP\";\nexport var antStepsDot = \"api-link-module--ant-steps-dot--AyopF\";\nexport var antStepsHorizontal = \"api-link-module--ant-steps-horizontal--nCjvD\";\nexport var antStepsItemDescription = \"api-link-module--ant-steps-item-description--8Qvtj\";\nexport var antStepsItemIcon = \"api-link-module--ant-steps-item-icon--2OG17\";\nexport var antStepsItemTitle = \"api-link-module--ant-steps-item-title--ufia3\";\nexport var antStepsSmall = \"api-link-module--ant-steps-small--CTbPQ\";\nexport var antTypography = \"api-link-module--ant-typography--5fRhy\";\nexport var hideOnReducedMotion = \"api-link-module--hideOnReducedMotion--Xfmpn\";\nexport var noBullet = \"api-link-module--noBullet--76dY9\";\nexport var showOnReducedMotion = \"api-link-module--showOnReducedMotion--Wra6x\";\nexport var tweetBox = \"api-link-module--tweet-box--RMUtb\";\nexport var typeLinkSuffix = \"api-link-module--type-link-suffix--g5Weu\";","import React from 'react';\nimport * as styles from './aspect-ratio.module.less';\n\ninterface AspectRatioProps {\n width: number;\n height: number;\n maxWidth: number | string;\n children: React.ReactNode;\n}\n\nconst AspectRatio: React.FC = (props) => (\n \n {props.children}\n \n);\n\nexport default AspectRatio;\n","// extracted by mini-css-extract-plugin\nexport var antSteps = \"aspect-ratio-module--ant-steps--Ixdaz\";\nexport var antStepsDot = \"aspect-ratio-module--ant-steps-dot--wIPQY\";\nexport var antStepsHorizontal = \"aspect-ratio-module--ant-steps-horizontal--kJECu\";\nexport var antStepsItemDescription = \"aspect-ratio-module--ant-steps-item-description--QhXkp\";\nexport var antStepsItemIcon = \"aspect-ratio-module--ant-steps-item-icon--Bu65j\";\nexport var antStepsItemTitle = \"aspect-ratio-module--ant-steps-item-title--S5ITS\";\nexport var antStepsSmall = \"aspect-ratio-module--ant-steps-small--tzZ9w\";\nexport var antTypography = \"aspect-ratio-module--ant-typography--MS5St\";\nexport var hideOnReducedMotion = \"aspect-ratio-module--hideOnReducedMotion--0mtmk\";\nexport var noBullet = \"aspect-ratio-module--noBullet--hA9rY\";\nexport var showOnReducedMotion = \"aspect-ratio-module--showOnReducedMotion--hTJL9\";\nexport var tweetBox = \"aspect-ratio-module--tweet-box--+k2ah\";\nexport var wrapper = \"aspect-ratio-module--wrapper--kXJ36\";","import React from 'react';\n\ninterface MaxWidthProps {\n value: number | string;\n}\n\nconst MaxWidth: React.FC = (props) => (\n \n {props.children}\n \n);\n\nexport default MaxWidth;\n","import React from 'react';\nimport { Tabs as AntdTabs } from 'antd';\nimport CodeBlock from './code-block';\nimport versionsJson from '../../gen-src/versions.json';\n\nconst versions: any = versionsJson;\n\ninterface Dependency {\n groupId: string;\n artifactId: string;\n version?: string;\n}\n\ninterface RequiredDependenciesProps {\n /* eslint-disable react/no-unused-prop-types */\n boms?: Dependency[];\n dependencies: Dependency[];\n /* eslint-enable react/no-unused-prop-types */\n}\n\nfunction gradleBom(boms: Dependency[]) {\n return `${boms\n .map((bom) => {\n const key = `${bom.groupId}:${bom.artifactId}`;\n let version;\n if (bom.version != null) {\n version = bom.version;\n } else {\n version = versions[key];\n }\n return ` implementation platform('${key}:${version}')`;\n })\n .join('\\n')}\\n\\n`;\n}\n\nfunction gradleDependency(props: RequiredDependenciesProps) {\n const statements: string = props.dependencies\n .map(\n (dependency) =>\n ` implementation '${dependency.groupId}:${dependency.artifactId}'`,\n )\n .join('\\n');\n return `\ndependencies {\n${props.boms == null ? '' : gradleBom(props.boms)} ...\n${statements}\n}\n`;\n}\n\nfunction gradleKotlinBom(boms: Dependency[]) {\n return `${boms\n .map((bom) => {\n const key = `${bom.groupId}:${bom.artifactId}`;\n let version;\n if (bom.version != null) {\n version = bom.version;\n } else {\n version = versions[key];\n }\n return ` implementation(platform(\"${key}:${version}\"))`;\n })\n .join('\\n')}\\n\\n`;\n}\n\nfunction gradleKotlinDependency(props: RequiredDependenciesProps) {\n const statements: string = props.dependencies\n .map(\n (dependency) =>\n ` implementation(\"${dependency.groupId}:${dependency.artifactId}\")`,\n )\n .join('\\n');\n return `\ndependencies {\n${props.boms == null ? '' : gradleKotlinBom(props.boms)} ...\n${statements}\n}\n`;\n}\n\nfunction mavenBom(boms: Dependency[]) {\n return `\n \n${boms\n .map((bom) => {\n let version;\n if (bom.version != null) {\n version = bom.version;\n } else {\n const key = `${bom.groupId}:${bom.artifactId}`;\n version = versions[key];\n }\n return ` \n ${bom.groupId}\n ${bom.artifactId}\n ${version}\n pom\n import\n `;\n })\n .join('\\n')}\n \n\\n`;\n}\n\nfunction mavenDependency(props: RequiredDependenciesProps) {\n const statements: string = props.dependencies\n .map((dependency) => {\n return ` \n ${dependency.groupId}\n ${dependency.artifactId}\n `;\n })\n .join('\\n');\n\n return `${props.boms == null ? '' : mavenBom(props.boms)}\n\n ...\n${statements}\n\n`;\n}\n\nconst RequiredDependencies: React.FC = (props) => {\n return (\n \n \n \n {gradleDependency(props)}\n \n \n \n \n {gradleKotlinDependency(props)}\n \n \n \n \n {mavenDependency(props)}\n \n \n \n );\n};\n\nexport default RequiredDependencies;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nvar _excluded = [\"className\", \"prefixCls\", \"style\", \"active\", \"status\", \"iconPrefix\", \"icon\", \"wrapperStyle\", \"stepNumber\", \"disabled\", \"description\", \"title\", \"subTitle\", \"progressDot\", \"stepIcon\", \"tailContent\", \"icons\", \"stepIndex\", \"onStepClick\", \"onClick\"];\n\n/* eslint react/prop-types: 0 */\nimport * as React from 'react';\nimport classNames from 'classnames';\nfunction isString(str) {\n return typeof str === 'string';\n}\nvar Step = /*#__PURE__*/function (_React$Component) {\n _inherits(Step, _React$Component);\n var _super = _createSuper(Step);\n function Step() {\n var _this;\n _classCallCheck(this, Step);\n _this = _super.apply(this, arguments);\n _this.onClick = function () {\n var _this$props = _this.props,\n onClick = _this$props.onClick,\n onStepClick = _this$props.onStepClick,\n stepIndex = _this$props.stepIndex;\n if (onClick) {\n onClick.apply(void 0, arguments);\n }\n onStepClick(stepIndex);\n };\n return _this;\n }\n _createClass(Step, [{\n key: \"renderIconNode\",\n value: function renderIconNode() {\n var _classNames;\n var _this$props2 = this.props,\n prefixCls = _this$props2.prefixCls,\n progressDot = _this$props2.progressDot,\n stepIcon = _this$props2.stepIcon,\n stepNumber = _this$props2.stepNumber,\n status = _this$props2.status,\n title = _this$props2.title,\n description = _this$props2.description,\n icon = _this$props2.icon,\n iconPrefix = _this$props2.iconPrefix,\n icons = _this$props2.icons;\n var iconNode;\n var iconClassName = classNames(\"\".concat(prefixCls, \"-icon\"), \"\".concat(iconPrefix, \"icon\"), (_classNames = {}, _defineProperty(_classNames, \"\".concat(iconPrefix, \"icon-\").concat(icon), icon && isString(icon)), _defineProperty(_classNames, \"\".concat(iconPrefix, \"icon-check\"), !icon && status === 'finish' && (icons && !icons.finish || !icons)), _defineProperty(_classNames, \"\".concat(iconPrefix, \"icon-cross\"), !icon && status === 'error' && (icons && !icons.error || !icons)), _classNames));\n var iconDot = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-icon-dot\")\n }); // `progressDot` enjoy the highest priority\n\n if (progressDot) {\n if (typeof progressDot === 'function') {\n iconNode = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-icon\")\n }, progressDot(iconDot, {\n index: stepNumber - 1,\n status: status,\n title: title,\n description: description\n }));\n } else {\n iconNode = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-icon\")\n }, iconDot);\n }\n } else if (icon && !isString(icon)) {\n iconNode = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-icon\")\n }, icon);\n } else if (icons && icons.finish && status === 'finish') {\n iconNode = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-icon\")\n }, icons.finish);\n } else if (icons && icons.error && status === 'error') {\n iconNode = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-icon\")\n }, icons.error);\n } else if (icon || status === 'finish' || status === 'error') {\n iconNode = /*#__PURE__*/React.createElement(\"span\", {\n className: iconClassName\n });\n } else {\n iconNode = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-icon\")\n }, stepNumber);\n }\n if (stepIcon) {\n iconNode = stepIcon({\n index: stepNumber - 1,\n status: status,\n title: title,\n description: description,\n node: iconNode\n });\n }\n return iconNode;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _classNames2;\n var _this$props3 = this.props,\n className = _this$props3.className,\n prefixCls = _this$props3.prefixCls,\n style = _this$props3.style,\n active = _this$props3.active,\n _this$props3$status = _this$props3.status,\n status = _this$props3$status === void 0 ? 'wait' : _this$props3$status,\n iconPrefix = _this$props3.iconPrefix,\n icon = _this$props3.icon,\n wrapperStyle = _this$props3.wrapperStyle,\n stepNumber = _this$props3.stepNumber,\n disabled = _this$props3.disabled,\n description = _this$props3.description,\n title = _this$props3.title,\n subTitle = _this$props3.subTitle,\n progressDot = _this$props3.progressDot,\n stepIcon = _this$props3.stepIcon,\n tailContent = _this$props3.tailContent,\n icons = _this$props3.icons,\n stepIndex = _this$props3.stepIndex,\n onStepClick = _this$props3.onStepClick,\n onClick = _this$props3.onClick,\n restProps = _objectWithoutProperties(_this$props3, _excluded);\n var classString = classNames(\"\".concat(prefixCls, \"-item\"), \"\".concat(prefixCls, \"-item-\").concat(status), className, (_classNames2 = {}, _defineProperty(_classNames2, \"\".concat(prefixCls, \"-item-custom\"), icon), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-item-active\"), active), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-item-disabled\"), disabled === true), _classNames2));\n var stepItemStyle = _objectSpread({}, style);\n var accessibilityProps = {};\n if (onStepClick && !disabled) {\n accessibilityProps.role = 'button';\n accessibilityProps.tabIndex = 0;\n accessibilityProps.onClick = this.onClick;\n }\n return /*#__PURE__*/React.createElement(\"div\", Object.assign({}, restProps, {\n className: classString,\n style: stepItemStyle\n }), /*#__PURE__*/React.createElement(\"div\", Object.assign({\n onClick: onClick\n }, accessibilityProps, {\n className: \"\".concat(prefixCls, \"-item-container\")\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-item-tail\")\n }, tailContent), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-item-icon\")\n }, this.renderIconNode()), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-item-content\")\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-item-title\")\n }, title, subTitle && /*#__PURE__*/React.createElement(\"div\", {\n title: typeof subTitle === 'string' ? subTitle : undefined,\n className: \"\".concat(prefixCls, \"-item-subtitle\")\n }, subTitle)), description && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-item-description\")\n }, description))));\n }\n }]);\n return Step;\n}(React.Component);\nexport { Step as default };","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nvar _excluded = [\"prefixCls\", \"style\", \"className\", \"children\", \"direction\", \"type\", \"labelPlacement\", \"iconPrefix\", \"status\", \"size\", \"current\", \"progressDot\", \"stepIcon\", \"initial\", \"icons\", \"onChange\"];\n\n/* eslint react/no-did-mount-set-state: 0, react/prop-types: 0 */\nimport React, { cloneElement } from 'react';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport classNames from 'classnames';\nimport Step from './Step';\nvar Steps = /*#__PURE__*/function (_React$Component) {\n _inherits(Steps, _React$Component);\n var _super = _createSuper(Steps);\n function Steps() {\n var _this;\n _classCallCheck(this, Steps);\n _this = _super.apply(this, arguments);\n _this.onStepClick = function (next) {\n var _this$props = _this.props,\n onChange = _this$props.onChange,\n current = _this$props.current;\n if (onChange && current !== next) {\n onChange(next);\n }\n };\n return _this;\n }\n _createClass(Steps, [{\n key: \"render\",\n value: function render() {\n var _classNames,\n _this2 = this;\n var _this$props2 = this.props,\n prefixCls = _this$props2.prefixCls,\n _this$props2$style = _this$props2.style,\n style = _this$props2$style === void 0 ? {} : _this$props2$style,\n className = _this$props2.className,\n children = _this$props2.children,\n direction = _this$props2.direction,\n type = _this$props2.type,\n labelPlacement = _this$props2.labelPlacement,\n iconPrefix = _this$props2.iconPrefix,\n status = _this$props2.status,\n size = _this$props2.size,\n current = _this$props2.current,\n progressDot = _this$props2.progressDot,\n stepIcon = _this$props2.stepIcon,\n initial = _this$props2.initial,\n icons = _this$props2.icons,\n onChange = _this$props2.onChange,\n restProps = _objectWithoutProperties(_this$props2, _excluded);\n var isNav = type === 'navigation';\n var adjustedLabelPlacement = progressDot ? 'vertical' : labelPlacement;\n var classString = classNames(prefixCls, \"\".concat(prefixCls, \"-\").concat(direction), className, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-\").concat(size), size), _defineProperty(_classNames, \"\".concat(prefixCls, \"-label-\").concat(adjustedLabelPlacement), direction === 'horizontal'), _defineProperty(_classNames, \"\".concat(prefixCls, \"-dot\"), !!progressDot), _defineProperty(_classNames, \"\".concat(prefixCls, \"-navigation\"), isNav), _classNames));\n return /*#__PURE__*/React.createElement(\"div\", Object.assign({\n className: classString,\n style: style\n }, restProps), toArray(children).map(function (child, index) {\n var stepNumber = initial + index;\n var childProps = _objectSpread({\n stepNumber: \"\".concat(stepNumber + 1),\n stepIndex: stepNumber,\n key: stepNumber,\n prefixCls: prefixCls,\n iconPrefix: iconPrefix,\n wrapperStyle: style,\n progressDot: progressDot,\n stepIcon: stepIcon,\n icons: icons,\n onStepClick: onChange && _this2.onStepClick\n }, child.props); // fix tail color\n\n if (status === 'error' && index === current - 1) {\n childProps.className = \"\".concat(prefixCls, \"-next-error\");\n }\n if (!child.props.status) {\n if (stepNumber === current) {\n childProps.status = status;\n } else if (stepNumber < current) {\n childProps.status = 'finish';\n } else {\n childProps.status = 'wait';\n }\n }\n childProps.active = stepNumber === current;\n return /*#__PURE__*/cloneElement(child, childProps);\n }));\n }\n }]);\n return Steps;\n}(React.Component);\nexport { Steps as default };\nSteps.Step = Step;\nSteps.defaultProps = {\n type: 'default',\n prefixCls: 'rc-steps',\n iconPrefix: 'rc',\n direction: 'horizontal',\n labelPlacement: 'horizontal',\n initial: 0,\n current: 0,\n status: 'process',\n size: '',\n progressDot: false\n};","import Steps from './Steps';\nimport Step from './Step';\nexport { Step };\nexport default Steps;","import devWarning from '../_util/devWarning';\nexport function validProgress(progress) {\n if (!progress || progress < 0) {\n return 0;\n }\n if (progress > 100) {\n return 100;\n }\n return progress;\n}\nexport function getSuccessPercent(_ref) {\n var success = _ref.success,\n successPercent = _ref.successPercent;\n var percent = successPercent;\n /** @deprecated Use `percent` instead */\n\n if (success && 'progress' in success) {\n devWarning(false, 'Progress', '`success.progress` is deprecated. Please use `success.percent` instead.');\n percent = success.progress;\n }\n if (success && 'percent' in success) {\n percent = success.percent;\n }\n return percent;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport { presetPrimaryColors } from '@ant-design/colors';\nimport { validProgress, getSuccessPercent } from './utils';\n/**\n * @example\n * {\n * \"0%\": \"#afc163\",\n * \"75%\": \"#009900\",\n * \"50%\": \"green\", // ====> '#afc163 0%, #66FF00 25%, #00CC00 50%, #009900 75%, #ffffff 100%'\n * \"25%\": \"#66FF00\",\n * \"100%\": \"#ffffff\"\n * }\n */\n\nexport var sortGradient = function sortGradient(gradients) {\n var tempArr = [];\n Object.keys(gradients).forEach(function (key) {\n var formattedKey = parseFloat(key.replace(/%/g, ''));\n if (!isNaN(formattedKey)) {\n tempArr.push({\n key: formattedKey,\n value: gradients[key]\n });\n }\n });\n tempArr = tempArr.sort(function (a, b) {\n return a.key - b.key;\n });\n return tempArr.map(function (_ref) {\n var key = _ref.key,\n value = _ref.value;\n return \"\".concat(value, \" \").concat(key, \"%\");\n }).join(', ');\n};\n/**\n * Then this man came to realize the truth: Besides six pence, there is the moon. Besides bread and\n * butter, there is the bug. And... Besides women, there is the code.\n *\n * @example\n * {\n * \"0%\": \"#afc163\",\n * \"25%\": \"#66FF00\",\n * \"50%\": \"#00CC00\", // ====> linear-gradient(to right, #afc163 0%, #66FF00 25%,\n * \"75%\": \"#009900\", // #00CC00 50%, #009900 75%, #ffffff 100%)\n * \"100%\": \"#ffffff\"\n * }\n */\n\nexport var handleGradient = function handleGradient(strokeColor, directionConfig) {\n var _strokeColor$from = strokeColor.from,\n from = _strokeColor$from === void 0 ? presetPrimaryColors.blue : _strokeColor$from,\n _strokeColor$to = strokeColor.to,\n to = _strokeColor$to === void 0 ? presetPrimaryColors.blue : _strokeColor$to,\n _strokeColor$directio = strokeColor.direction,\n direction = _strokeColor$directio === void 0 ? directionConfig === 'rtl' ? 'to left' : 'to right' : _strokeColor$directio,\n rest = __rest(strokeColor, [\"from\", \"to\", \"direction\"]);\n if (Object.keys(rest).length !== 0) {\n var sortedGradients = sortGradient(rest);\n return {\n backgroundImage: \"linear-gradient(\".concat(direction, \", \").concat(sortedGradients, \")\")\n };\n }\n return {\n backgroundImage: \"linear-gradient(\".concat(direction, \", \").concat(from, \", \").concat(to, \")\")\n };\n};\nvar Line = function Line(props) {\n var prefixCls = props.prefixCls,\n directionConfig = props.direction,\n percent = props.percent,\n strokeWidth = props.strokeWidth,\n size = props.size,\n strokeColor = props.strokeColor,\n strokeLinecap = props.strokeLinecap,\n children = props.children,\n trailColor = props.trailColor,\n success = props.success;\n var backgroundProps = strokeColor && typeof strokeColor !== 'string' ? handleGradient(strokeColor, directionConfig) : {\n background: strokeColor\n };\n var trailStyle = trailColor ? {\n backgroundColor: trailColor\n } : undefined;\n var percentStyle = _extends({\n width: \"\".concat(validProgress(percent), \"%\"),\n height: strokeWidth || (size === 'small' ? 6 : 8),\n borderRadius: strokeLinecap === 'square' ? 0 : undefined\n }, backgroundProps);\n var successPercent = getSuccessPercent(props);\n var successPercentStyle = {\n width: \"\".concat(validProgress(successPercent), \"%\"),\n height: strokeWidth || (size === 'small' ? 6 : 8),\n borderRadius: strokeLinecap === 'square' ? 0 : undefined,\n backgroundColor: success === null || success === void 0 ? void 0 : success.strokeColor\n };\n var successSegment = successPercent !== undefined ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-success-bg\"),\n style: successPercentStyle\n }) : null;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-outer\")\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-inner\"),\n style: trailStyle\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-bg\"),\n style: percentStyle\n }), successSegment)), children);\n};\nexport default Line;","import { useRef, useEffect } from 'react';\nexport var defaultProps = {\n className: '',\n percent: 0,\n prefixCls: 'rc-progress',\n strokeColor: '#2db7f5',\n strokeLinecap: 'round',\n strokeWidth: 1,\n style: {},\n trailColor: '#D9D9D9',\n trailWidth: 1\n};\nexport var useTransitionDuration = function useTransitionDuration(percentList) {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n var paths = percentList.map(function () {\n return useRef();\n });\n var prevTimeStamp = useRef(null);\n useEffect(function () {\n var now = Date.now();\n var updated = false;\n Object.keys(paths).forEach(function (key) {\n var path = paths[key].current;\n if (!path) {\n return;\n }\n updated = true;\n var pathStyle = path.style;\n pathStyle.transitionDuration = '.3s, .3s, .3s, .06s';\n if (prevTimeStamp.current && now - prevTimeStamp.current < 100) {\n pathStyle.transitionDuration = '0s, 0s';\n }\n });\n if (updated) {\n prevTimeStamp.current = Date.now();\n }\n });\n return [paths];\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"className\", \"percent\", \"prefixCls\", \"strokeColor\", \"strokeLinecap\", \"strokeWidth\", \"style\", \"trailColor\", \"trailWidth\", \"transition\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { useTransitionDuration, defaultProps } from './common';\nvar Line = function Line(_ref) {\n var className = _ref.className,\n percent = _ref.percent,\n prefixCls = _ref.prefixCls,\n strokeColor = _ref.strokeColor,\n strokeLinecap = _ref.strokeLinecap,\n strokeWidth = _ref.strokeWidth,\n style = _ref.style,\n trailColor = _ref.trailColor,\n trailWidth = _ref.trailWidth,\n transition = _ref.transition,\n restProps = _objectWithoutProperties(_ref, _excluded);\n\n // eslint-disable-next-line no-param-reassign\n delete restProps.gapPosition;\n var percentList = Array.isArray(percent) ? percent : [percent];\n var strokeColorList = Array.isArray(strokeColor) ? strokeColor : [strokeColor];\n var _useTransitionDuratio = useTransitionDuration(percentList),\n _useTransitionDuratio2 = _slicedToArray(_useTransitionDuratio, 1),\n paths = _useTransitionDuratio2[0];\n var center = strokeWidth / 2;\n var right = 100 - strokeWidth / 2;\n var pathString = \"M \".concat(strokeLinecap === 'round' ? center : 0, \",\").concat(center, \"\\n L \").concat(strokeLinecap === 'round' ? right : 100, \",\").concat(center);\n var viewBoxString = \"0 0 100 \".concat(strokeWidth);\n var stackPtg = 0;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n className: classNames(\"\".concat(prefixCls, \"-line\"), className),\n viewBox: viewBoxString,\n preserveAspectRatio: \"none\",\n style: style\n }, restProps), /*#__PURE__*/React.createElement(\"path\", {\n className: \"\".concat(prefixCls, \"-line-trail\"),\n d: pathString,\n strokeLinecap: strokeLinecap,\n stroke: trailColor,\n strokeWidth: trailWidth || strokeWidth,\n fillOpacity: \"0\"\n }), percentList.map(function (ptg, index) {\n var dashPercent = 1;\n switch (strokeLinecap) {\n case 'round':\n dashPercent = 1 - strokeWidth / 100;\n break;\n case 'square':\n dashPercent = 1 - strokeWidth / 2 / 100;\n break;\n default:\n dashPercent = 1;\n break;\n }\n var pathStyle = {\n strokeDasharray: \"\".concat(ptg * dashPercent, \"px, 100px\"),\n strokeDashoffset: \"-\".concat(stackPtg, \"px\"),\n transition: transition || 'stroke-dashoffset 0.3s ease 0s, stroke-dasharray .3s ease 0s, stroke 0.3s linear'\n };\n var color = strokeColorList[index] || strokeColorList[strokeColorList.length - 1];\n stackPtg += ptg;\n return /*#__PURE__*/React.createElement(\"path\", {\n key: index,\n className: \"\".concat(prefixCls, \"-line-path\"),\n d: pathString,\n strokeLinecap: strokeLinecap,\n stroke: color,\n strokeWidth: strokeWidth,\n fillOpacity: \"0\",\n ref: paths[index],\n style: pathStyle\n });\n }));\n};\nLine.defaultProps = defaultProps;\nLine.displayName = 'Line';\nexport default Line;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport canUseDom from \"rc-util/es/Dom/canUseDom\";\nvar uuid = 0;\n/** Is client side and not jsdom */\n\nexport var isBrowserClient = process.env.NODE_ENV !== 'test' && canUseDom();\n/** Get unique id for accessibility usage */\n\nfunction getUUID() {\n var retId; // Test never reach\n\n /* istanbul ignore if */\n\n if (isBrowserClient) {\n retId = uuid;\n uuid += 1;\n } else {\n retId = 'TEST_OR_SSR';\n }\n return retId;\n}\nexport default (function (id) {\n // Inner id for accessibility usage. Only work in client side\n var _React$useState = React.useState(),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n innerId = _React$useState2[0],\n setInnerId = _React$useState2[1];\n React.useEffect(function () {\n setInnerId(\"rc_progress_\".concat(getUUID()));\n }, []);\n return id || innerId;\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"id\", \"prefixCls\", \"strokeWidth\", \"trailWidth\", \"gapDegree\", \"gapPosition\", \"trailColor\", \"strokeLinecap\", \"style\", \"className\", \"strokeColor\", \"percent\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { useTransitionDuration, defaultProps } from './common';\nimport useId from './hooks/useId';\nfunction stripPercentToNumber(percent) {\n return +percent.replace('%', '');\n}\nfunction toArray(value) {\n var mergedValue = value !== null && value !== void 0 ? value : [];\n return Array.isArray(mergedValue) ? mergedValue : [mergedValue];\n}\nfunction getPathStyles(offset, percent, strokeColor, strokeWidth) {\n var gapDegree = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;\n var gapPosition = arguments.length > 5 ? arguments[5] : undefined;\n var radius = 50 - strokeWidth / 2;\n var beginPositionX = 0;\n var beginPositionY = -radius;\n var endPositionX = 0;\n var endPositionY = -2 * radius;\n switch (gapPosition) {\n case 'left':\n beginPositionX = -radius;\n beginPositionY = 0;\n endPositionX = 2 * radius;\n endPositionY = 0;\n break;\n case 'right':\n beginPositionX = radius;\n beginPositionY = 0;\n endPositionX = -2 * radius;\n endPositionY = 0;\n break;\n case 'bottom':\n beginPositionY = radius;\n endPositionY = 2 * radius;\n break;\n default:\n }\n var pathString = \"M 50,50 m \".concat(beginPositionX, \",\").concat(beginPositionY, \"\\n a \").concat(radius, \",\").concat(radius, \" 0 1 1 \").concat(endPositionX, \",\").concat(-endPositionY, \"\\n a \").concat(radius, \",\").concat(radius, \" 0 1 1 \").concat(-endPositionX, \",\").concat(endPositionY);\n var len = Math.PI * 2 * radius;\n var pathStyle = {\n stroke: typeof strokeColor === 'string' ? strokeColor : undefined,\n strokeDasharray: \"\".concat(percent / 100 * (len - gapDegree), \"px \").concat(len, \"px\"),\n strokeDashoffset: \"-\".concat(gapDegree / 2 + offset / 100 * (len - gapDegree), \"px\"),\n transition: 'stroke-dashoffset .3s ease 0s, stroke-dasharray .3s ease 0s, stroke .3s, stroke-width .06s ease .3s, opacity .3s ease 0s' // eslint-disable-line\n };\n\n return {\n pathString: pathString,\n pathStyle: pathStyle\n };\n}\nvar Circle = function Circle(_ref) {\n var id = _ref.id,\n prefixCls = _ref.prefixCls,\n strokeWidth = _ref.strokeWidth,\n trailWidth = _ref.trailWidth,\n gapDegree = _ref.gapDegree,\n gapPosition = _ref.gapPosition,\n trailColor = _ref.trailColor,\n strokeLinecap = _ref.strokeLinecap,\n style = _ref.style,\n className = _ref.className,\n strokeColor = _ref.strokeColor,\n percent = _ref.percent,\n restProps = _objectWithoutProperties(_ref, _excluded);\n var mergedId = useId(id);\n var gradientId = \"\".concat(mergedId, \"-gradient\");\n var _getPathStyles = getPathStyles(0, 100, trailColor, strokeWidth, gapDegree, gapPosition),\n pathString = _getPathStyles.pathString,\n pathStyle = _getPathStyles.pathStyle;\n var percentList = toArray(percent);\n var strokeColorList = toArray(strokeColor);\n var gradient = strokeColorList.find(function (color) {\n return color && _typeof(color) === 'object';\n });\n var _useTransitionDuratio = useTransitionDuration(percentList),\n _useTransitionDuratio2 = _slicedToArray(_useTransitionDuratio, 1),\n paths = _useTransitionDuratio2[0];\n var getStokeList = function getStokeList() {\n var stackPtg = 0;\n return percentList.map(function (ptg, index) {\n var color = strokeColorList[index] || strokeColorList[strokeColorList.length - 1];\n var stroke = color && _typeof(color) === 'object' ? \"url(#\".concat(gradientId, \")\") : '';\n var pathStyles = getPathStyles(stackPtg, ptg, color, strokeWidth, gapDegree, gapPosition);\n stackPtg += ptg;\n return /*#__PURE__*/React.createElement(\"path\", {\n key: index,\n className: \"\".concat(prefixCls, \"-circle-path\"),\n d: pathStyles.pathString,\n stroke: stroke,\n strokeLinecap: strokeLinecap,\n strokeWidth: strokeWidth,\n opacity: ptg === 0 ? 0 : 1,\n fillOpacity: \"0\",\n style: pathStyles.pathStyle,\n ref: paths[index]\n });\n });\n };\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n className: classNames(\"\".concat(prefixCls, \"-circle\"), className),\n viewBox: \"0 0 100 100\",\n style: style,\n id: id\n }, restProps), gradient && /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: gradientId,\n x1: \"100%\",\n y1: \"0%\",\n x2: \"0%\",\n y2: \"0%\"\n }, Object.keys(gradient).sort(function (a, b) {\n return stripPercentToNumber(a) - stripPercentToNumber(b);\n }).map(function (key, index) {\n return /*#__PURE__*/React.createElement(\"stop\", {\n key: index,\n offset: key,\n stopColor: gradient[key]\n });\n }))), /*#__PURE__*/React.createElement(\"path\", {\n className: \"\".concat(prefixCls, \"-circle-trail\"),\n d: pathString,\n stroke: trailColor,\n strokeLinecap: strokeLinecap,\n strokeWidth: trailWidth || strokeWidth,\n fillOpacity: \"0\",\n style: pathStyle\n }), getStokeList().reverse());\n};\nCircle.defaultProps = defaultProps;\nCircle.displayName = 'Circle';\nexport default Circle;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport * as React from 'react';\nimport { Circle as RCCircle } from 'rc-progress';\nimport { presetPrimaryColors } from '@ant-design/colors';\nimport classNames from 'classnames';\nimport { validProgress, getSuccessPercent } from './utils';\nfunction getPercentage(_ref) {\n var percent = _ref.percent,\n success = _ref.success,\n successPercent = _ref.successPercent;\n var realSuccessPercent = validProgress(getSuccessPercent({\n success: success,\n successPercent: successPercent\n }));\n return [realSuccessPercent, validProgress(validProgress(percent) - realSuccessPercent)];\n}\nfunction getStrokeColor(_ref2) {\n var _ref2$success = _ref2.success,\n success = _ref2$success === void 0 ? {} : _ref2$success,\n strokeColor = _ref2.strokeColor;\n var successColor = success.strokeColor;\n return [successColor || presetPrimaryColors.green, strokeColor || null];\n}\nvar Circle = function Circle(props) {\n var prefixCls = props.prefixCls,\n width = props.width,\n strokeWidth = props.strokeWidth,\n trailColor = props.trailColor,\n strokeLinecap = props.strokeLinecap,\n gapPosition = props.gapPosition,\n gapDegree = props.gapDegree,\n type = props.type,\n children = props.children,\n success = props.success;\n var circleSize = width || 120;\n var circleStyle = {\n width: circleSize,\n height: circleSize,\n fontSize: circleSize * 0.15 + 6\n };\n var circleWidth = strokeWidth || 6;\n var gapPos = gapPosition || type === 'dashboard' && 'bottom' || 'top';\n var getGapDegree = function getGapDegree() {\n // Support gapDeg = 0 when type = 'dashboard'\n if (gapDegree || gapDegree === 0) {\n return gapDegree;\n }\n if (type === 'dashboard') {\n return 75;\n }\n return undefined;\n }; // using className to style stroke color\n\n var isGradient = Object.prototype.toString.call(props.strokeColor) === '[object Object]';\n var strokeColor = getStrokeColor({\n success: success,\n strokeColor: props.strokeColor\n });\n var wrapperClassName = classNames(\"\".concat(prefixCls, \"-inner\"), _defineProperty({}, \"\".concat(prefixCls, \"-circle-gradient\"), isGradient));\n return /*#__PURE__*/React.createElement(\"div\", {\n className: wrapperClassName,\n style: circleStyle\n }, /*#__PURE__*/React.createElement(RCCircle, {\n percent: getPercentage(props),\n strokeWidth: circleWidth,\n trailWidth: circleWidth,\n strokeColor: strokeColor,\n strokeLinecap: strokeLinecap,\n trailColor: trailColor,\n prefixCls: prefixCls,\n gapDegree: getGapDegree(),\n gapPosition: gapPos\n }), children);\n};\nexport default Circle;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nvar Steps = function Steps(props) {\n var size = props.size,\n steps = props.steps,\n _props$percent = props.percent,\n percent = _props$percent === void 0 ? 0 : _props$percent,\n _props$strokeWidth = props.strokeWidth,\n strokeWidth = _props$strokeWidth === void 0 ? 8 : _props$strokeWidth,\n strokeColor = props.strokeColor,\n trailColor = props.trailColor,\n prefixCls = props.prefixCls,\n children = props.children;\n var current = Math.round(steps * (percent / 100));\n var stepWidth = size === 'small' ? 2 : 14;\n var styledSteps = [];\n for (var i = 0; i < steps; i += 1) {\n styledSteps.push( /*#__PURE__*/React.createElement(\"div\", {\n key: i,\n className: classNames(\"\".concat(prefixCls, \"-steps-item\"), _defineProperty({}, \"\".concat(prefixCls, \"-steps-item-active\"), i <= current - 1)),\n style: {\n backgroundColor: i <= current - 1 ? strokeColor : trailColor,\n width: stepWidth,\n height: strokeWidth\n }\n }));\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-steps-outer\")\n }, styledSteps, children);\n};\nexport default Steps;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport CloseOutlined from \"@ant-design/icons/es/icons/CloseOutlined\";\nimport CheckOutlined from \"@ant-design/icons/es/icons/CheckOutlined\";\nimport CheckCircleFilled from \"@ant-design/icons/es/icons/CheckCircleFilled\";\nimport CloseCircleFilled from \"@ant-design/icons/es/icons/CloseCircleFilled\";\nimport { ConfigConsumer } from '../config-provider';\nimport { tuple } from '../_util/type';\nimport devWarning from '../_util/devWarning';\nimport Line from './Line';\nimport Circle from './Circle';\nimport Steps from './Steps';\nimport { validProgress, getSuccessPercent } from './utils';\nvar ProgressTypes = tuple('line', 'circle', 'dashboard');\nvar ProgressStatuses = tuple('normal', 'exception', 'active', 'success');\nvar Progress = /*#__PURE__*/function (_React$Component) {\n _inherits(Progress, _React$Component);\n var _super = _createSuper(Progress);\n function Progress() {\n var _this;\n _classCallCheck(this, Progress);\n _this = _super.apply(this, arguments);\n _this.renderProgress = function (_ref) {\n var _classNames;\n var getPrefixCls = _ref.getPrefixCls,\n direction = _ref.direction;\n var _assertThisInitialize = _assertThisInitialized(_this),\n props = _assertThisInitialize.props;\n var customizePrefixCls = props.prefixCls,\n className = props.className,\n size = props.size,\n type = props.type,\n steps = props.steps,\n showInfo = props.showInfo,\n strokeColor = props.strokeColor,\n restProps = __rest(props, [\"prefixCls\", \"className\", \"size\", \"type\", \"steps\", \"showInfo\", \"strokeColor\"]);\n var prefixCls = getPrefixCls('progress', customizePrefixCls);\n var progressStatus = _this.getProgressStatus();\n var progressInfo = _this.renderProcessInfo(prefixCls, progressStatus);\n devWarning(!('successPercent' in props), 'Progress', '`successPercent` is deprecated. Please use `success.percent` instead.');\n var progress; // Render progress shape\n\n if (type === 'line') {\n progress = steps ? /*#__PURE__*/React.createElement(Steps, _extends({}, _this.props, {\n strokeColor: typeof strokeColor === 'string' ? strokeColor : undefined,\n prefixCls: prefixCls,\n steps: steps\n }), progressInfo) : /*#__PURE__*/React.createElement(Line, _extends({}, _this.props, {\n prefixCls: prefixCls,\n direction: direction\n }), progressInfo);\n } else if (type === 'circle' || type === 'dashboard') {\n progress = /*#__PURE__*/React.createElement(Circle, _extends({}, _this.props, {\n prefixCls: prefixCls,\n progressStatus: progressStatus\n }), progressInfo);\n }\n var classString = classNames(prefixCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-\").concat(type === 'dashboard' && 'circle' || steps && 'steps' || type), true), _defineProperty(_classNames, \"\".concat(prefixCls, \"-status-\").concat(progressStatus), true), _defineProperty(_classNames, \"\".concat(prefixCls, \"-show-info\"), showInfo), _defineProperty(_classNames, \"\".concat(prefixCls, \"-\").concat(size), size), _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _classNames), className);\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, omit(restProps, ['status', 'format', 'trailColor', 'strokeWidth', 'width', 'gapDegree', 'gapPosition', 'strokeLinecap', 'percent', 'success', 'successPercent']), {\n className: classString\n }), progress);\n };\n return _this;\n }\n _createClass(Progress, [{\n key: \"getPercentNumber\",\n value: function getPercentNumber() {\n var _this$props$percent = this.props.percent,\n percent = _this$props$percent === void 0 ? 0 : _this$props$percent;\n var successPercent = getSuccessPercent(this.props);\n return parseInt(successPercent !== undefined ? successPercent.toString() : percent.toString(), 10);\n }\n }, {\n key: \"getProgressStatus\",\n value: function getProgressStatus() {\n var status = this.props.status;\n if (ProgressStatuses.indexOf(status) < 0 && this.getPercentNumber() >= 100) {\n return 'success';\n }\n return status || 'normal';\n }\n }, {\n key: \"renderProcessInfo\",\n value: function renderProcessInfo(prefixCls, progressStatus) {\n var _this$props = this.props,\n showInfo = _this$props.showInfo,\n format = _this$props.format,\n type = _this$props.type,\n percent = _this$props.percent;\n var successPercent = getSuccessPercent(this.props);\n if (!showInfo) {\n return null;\n }\n var text;\n var textFormatter = format || function (percentNumber) {\n return \"\".concat(percentNumber, \"%\");\n };\n var isLineType = type === 'line';\n if (format || progressStatus !== 'exception' && progressStatus !== 'success') {\n text = textFormatter(validProgress(percent), validProgress(successPercent));\n } else if (progressStatus === 'exception') {\n text = isLineType ? /*#__PURE__*/React.createElement(CloseCircleFilled, null) : /*#__PURE__*/React.createElement(CloseOutlined, null);\n } else if (progressStatus === 'success') {\n text = isLineType ? /*#__PURE__*/React.createElement(CheckCircleFilled, null) : /*#__PURE__*/React.createElement(CheckOutlined, null);\n }\n return /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-text\"),\n title: typeof text === 'string' ? text : undefined\n }, text);\n }\n }, {\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(ConfigConsumer, null, this.renderProgress);\n }\n }]);\n return Progress;\n}(React.Component);\nexport { Progress as default };\nProgress.defaultProps = {\n type: 'line',\n percent: 0,\n showInfo: true,\n // null for different theme definition\n trailColor: null,\n size: 'default',\n gapDegree: undefined,\n strokeLinecap: 'round'\n};","import Progress from './progress';\nexport default Progress;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nexport var responsiveArray = ['xxl', 'xl', 'lg', 'md', 'sm', 'xs'];\nexport var responsiveMap = {\n xs: '(max-width: 575px)',\n sm: '(min-width: 576px)',\n md: '(min-width: 768px)',\n lg: '(min-width: 992px)',\n xl: '(min-width: 1200px)',\n xxl: '(min-width: 1600px)'\n};\nvar subscribers = new Map();\nvar subUid = -1;\nvar screens = {};\nvar responsiveObserve = {\n matchHandlers: {},\n dispatch: function dispatch(pointMap) {\n screens = pointMap;\n subscribers.forEach(function (func) {\n return func(screens);\n });\n return subscribers.size >= 1;\n },\n subscribe: function subscribe(func) {\n if (!subscribers.size) this.register();\n subUid += 1;\n subscribers.set(subUid, func);\n func(screens);\n return subUid;\n },\n unsubscribe: function unsubscribe(token) {\n subscribers[\"delete\"](token);\n if (!subscribers.size) this.unregister();\n },\n unregister: function unregister() {\n var _this = this;\n Object.keys(responsiveMap).forEach(function (screen) {\n var matchMediaQuery = responsiveMap[screen];\n var handler = _this.matchHandlers[matchMediaQuery];\n handler === null || handler === void 0 ? void 0 : handler.mql.removeListener(handler === null || handler === void 0 ? void 0 : handler.listener);\n });\n subscribers.clear();\n },\n register: function register() {\n var _this2 = this;\n Object.keys(responsiveMap).forEach(function (screen) {\n var matchMediaQuery = responsiveMap[screen];\n var listener = function listener(_ref) {\n var matches = _ref.matches;\n _this2.dispatch(_extends(_extends({}, screens), _defineProperty({}, screen, matches)));\n };\n var mql = window.matchMedia(matchMediaQuery);\n mql.addListener(listener);\n _this2.matchHandlers[matchMediaQuery] = {\n mql: mql,\n listener: listener\n };\n listener(mql);\n });\n }\n};\nexport default responsiveObserve;","import { useEffect, useRef } from 'react';\nimport useForceUpdate from '../../_util/hooks/useForceUpdate';\nimport ResponsiveObserve from '../../_util/responsiveObserve';\nfunction useBreakpoint() {\n var refreshOnChange = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n var screensRef = useRef({});\n var forceUpdate = useForceUpdate();\n useEffect(function () {\n var token = ResponsiveObserve.subscribe(function (supportScreens) {\n screensRef.current = supportScreens;\n if (refreshOnChange) {\n forceUpdate();\n }\n });\n return function () {\n return ResponsiveObserve.unsubscribe(token);\n };\n }, []);\n return screensRef.current;\n}\nexport default useBreakpoint;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport RcSteps from 'rc-steps';\nimport CheckOutlined from \"@ant-design/icons/es/icons/CheckOutlined\";\nimport CloseOutlined from \"@ant-design/icons/es/icons/CloseOutlined\";\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider';\nimport Progress from '../progress';\nimport useBreakpoint from '../grid/hooks/useBreakpoint';\nvar Steps = function Steps(props) {\n var _classNames;\n var percent = props.percent,\n size = props.size,\n className = props.className,\n direction = props.direction,\n responsive = props.responsive,\n restProps = __rest(props, [\"percent\", \"size\", \"className\", \"direction\", \"responsive\"]);\n var _useBreakpoint = useBreakpoint(responsive),\n xs = _useBreakpoint.xs;\n var _React$useContext = React.useContext(ConfigContext),\n getPrefixCls = _React$useContext.getPrefixCls,\n rtlDirection = _React$useContext.direction;\n var getDirection = React.useCallback(function () {\n return responsive && xs ? 'vertical' : direction;\n }, [xs, direction]);\n var prefixCls = getPrefixCls('steps', props.prefixCls);\n var iconPrefix = getPrefixCls('', props.iconPrefix);\n var stepsClassName = classNames((_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), rtlDirection === 'rtl'), _defineProperty(_classNames, \"\".concat(prefixCls, \"-with-progress\"), percent !== undefined), _classNames), className);\n var icons = {\n finish: /*#__PURE__*/React.createElement(CheckOutlined, {\n className: \"\".concat(prefixCls, \"-finish-icon\")\n }),\n error: /*#__PURE__*/React.createElement(CloseOutlined, {\n className: \"\".concat(prefixCls, \"-error-icon\")\n })\n };\n var stepIconRender = function stepIconRender(_ref) {\n var node = _ref.node,\n status = _ref.status;\n if (status === 'process' && percent !== undefined) {\n // currently it's hard-coded, since we can't easily read the actually width of icon\n var progressWidth = size === 'small' ? 32 : 40;\n var iconWithProgress = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-progress-icon\")\n }, /*#__PURE__*/React.createElement(Progress, {\n type: \"circle\",\n percent: percent,\n width: progressWidth,\n strokeWidth: 4,\n format: function format() {\n return null;\n }\n }), node);\n return iconWithProgress;\n }\n return node;\n };\n return /*#__PURE__*/React.createElement(RcSteps, _extends({\n icons: icons\n }, restProps, {\n size: size,\n direction: getDirection(),\n stepIcon: stepIconRender,\n prefixCls: prefixCls,\n iconPrefix: iconPrefix,\n className: stepsClassName\n }));\n};\nSteps.Step = RcSteps.Step;\nSteps.defaultProps = {\n current: 0,\n responsive: true\n};\nexport default Steps;","import React, { useState, useEffect } from 'react';\nimport { Steps as AntdSteps, StepsProps } from 'antd';\nimport { graphql, useStaticQuery } from 'gatsby';\n\nconst { Step } = AntdSteps;\n\ninterface TutorialStepProps extends StepsProps {\n position?: 'start' | 'end';\n order?: number;\n stepTitle?: string;\n}\n\nconst TutorialSteps: React.FC = (props) => {\n const {\n allMdx: { nodes: tutorialNodes },\n } = useStaticQuery(graphql`\n query {\n allMdx(\n filter: {\n fileAbsolutePath: { glob: \"**/src/pages/tutorials/**\" }\n frontmatter: { type: { eq: \"step\" } }\n }\n sort: { fields: [frontmatter___order], order: ASC }\n ) {\n nodes {\n frontmatter {\n menuTitle\n order\n }\n parent {\n ... on File {\n relativeDirectory\n }\n }\n }\n }\n }\n `);\n\n const [tutorialType, setTutorialType] = useState('');\n\n useEffect(() => {\n setTutorialType(\n window.location.pathname\n .substr(0, window.location.pathname.lastIndexOf('/'))\n .replace('/tutorials/', ''),\n );\n }, []);\n\n const tutorialSteps = Object.entries(\n tutorialNodes.filter(\n (tutorialNode) => tutorialNode.parent.relativeDirectory === tutorialType,\n ),\n ).map(([key, tutorialNode]) => {\n return (\n \n );\n });\n\n return (\n \n {tutorialSteps}\n \n );\n};\n\nexport default TutorialSteps;\n","// extracted by mini-css-extract-plugin\nexport var antSteps = \"mdx-module--ant-steps--rw32q\";\nexport var antStepsDot = \"mdx-module--ant-steps-dot--y8DqO\";\nexport var antStepsHorizontal = \"mdx-module--ant-steps-horizontal--oMLp8\";\nexport var antStepsItemDescription = \"mdx-module--ant-steps-item-description--fJ3pC\";\nexport var antStepsItemIcon = \"mdx-module--ant-steps-item-icon--Eaj2a\";\nexport var antStepsItemTitle = \"mdx-module--ant-steps-item-title--Az+ek\";\nexport var antStepsSmall = \"mdx-module--ant-steps-small--QCM4X\";\nexport var antTypography = \"mdx-module--ant-typography--UrCcw\";\nexport var button = \"mdx-module--button--ffzqc\";\nexport var buttonLabel = \"mdx-module--buttonLabel--6cDva\";\nexport var content = \"mdx-module--content--TA8vv\";\nexport var editOnGitHub = \"mdx-module--editOnGitHub--9Y8qY\";\nexport var footer = \"mdx-module--footer--91Obx\";\nexport var footerElement = \"mdx-module--footerElement--J3Q+-\";\nexport var globalTocWrapper = \"mdx-module--globalTocWrapper--kK2+Y\";\nexport var hideOnReducedMotion = \"mdx-module--hideOnReducedMotion--VPVyD\";\nexport var newsletter = \"mdx-module--newsletter--GotnL\";\nexport var nextButton = \"mdx-module--nextButton--1Z1SN\";\nexport var noBullet = \"mdx-module--noBullet--6R1Ow\";\nexport var outerWrapper = \"mdx-module--outerWrapper--bvL4M\";\nexport var pageToc = \"mdx-module--pageToc--7+NSp\";\nexport var pageTocWrapper = \"mdx-module--pageTocWrapper--xZfwX\";\nexport var prevButton = \"mdx-module--prevButton--DZUc4\";\nexport var showOnReducedMotion = \"mdx-module--showOnReducedMotion--nw8Vb\";\nexport var tocGroup = \"mdx-module--tocGroup--JbgIw\";\nexport var tocGroupLabel = \"mdx-module--tocGroupLabel--+bd7R\";\nexport var tocLeaf = \"mdx-module--tocLeaf--4CzKj\";\nexport var tocLeafActive = \"mdx-module--tocLeafActive--RMZD1\";\nexport var tweetBox = \"mdx-module--tweet-box--KplNr\";\nexport var wrapper = \"mdx-module--wrapper--qNQpf\";","import { GithubOutlined, LeftOutlined, RightOutlined } from '@ant-design/icons';\nimport loadable from '@loadable/component';\nimport { MDXProvider } from '@mdx-js/react';\nimport { RouteComponentProps } from '@reach/router';\nimport { Button, Layout, Tabs as AntdTabs, Typography } from 'antd';\nimport { Link, withPrefix } from 'gatsby';\nimport { OutboundLink } from 'gatsby-plugin-google-analytics';\nimport React, { useLayoutEffect } from 'react';\nimport StickyBox from 'react-sticky-box';\nimport tocbot from 'tocbot';\n\nimport 'antd/es/table/style';\n\nimport { Tip, Warning } from '../components/alert';\nimport { TypeLink } from '../components/api-link';\nimport AspectRatio from '../components/aspect-ratio';\nimport CodeBlock from '../components/code-block';\nimport Emoji from '../components/emoji';\nimport Mailchimp from '../components/mailchimp';\nimport MaxWidth from '../components/max-width';\nimport NoWrap from '../components/nowrap';\nimport RequiredDependencies from '../components/required-dependencies';\nimport TutorialSteps from '../components/steps';\nimport BaseLayout from './base';\nimport pagePath from './page-path';\nimport * as styles from './mdx.module.less';\n\nconst { Content } = Layout;\nconst { Paragraph, Title } = Typography;\n\ninterface MdxLayoutProps extends RouteComponentProps {\n pageContext: any;\n candidateMdxNodes: any[];\n index: { [section: string]: string[] | { [title: string]: string } };\n prefix: string;\n pageTitle: string;\n pageTitleSuffix: string;\n showPrevNextButton?: boolean;\n noEdit?: boolean;\n menuTitle?: boolean;\n}\n\nconst pathPrefix = withPrefix('/');\n\n// Use our CodeBlock component for and
.\nconst mdxComponents: any = {\n  a: (props: any) => {\n    const href: string = `${props.href || ''}`;\n    if (href.startsWith('type://') || href.startsWith('typeplural://')) {\n      const prefixLength = href.indexOf('://') + 3;\n      const delimiterIndex = href.indexOf(':', prefixLength);\n      const [typeName, actualHref] =\n        delimiterIndex >= 0\n          ? [\n              href.substring(prefixLength, delimiterIndex),\n              href.substring(delimiterIndex + 1),\n            ]\n          : [href.substring(prefixLength), undefined];\n      return (\n        \n      );\n    }\n\n    if (href.includes('://') || href.startsWith('//')) {\n      return ;\n    }\n\n    if (href.startsWith(pathPrefix)) {\n      // Strip the path prefix when passing to \n      // because it will prepend the path prefix.\n      return (\n        \n          {props.children}\n        \n      );\n    }\n\n    // eslint-disable-next-line jsx-a11y/anchor-has-content\n    return ;\n  },\n  pre: (props: any) => {\n    const language =\n      props.children.props.className?.replace(/language-/, '') || 'none';\n    return (\n      \n        {props.children.props.children}\n      \n    );\n  },\n  h1: (props: any) => ,\n  h2: (props: any) => <Title level={2} {...props} />,\n  h3: (props: any) => <Title level={3} {...props} />,\n  h4: (props: any) => <Title level={4} {...props} />,\n  table: (props: any) => {\n    return (\n      <div className=\"ant-table ant-table-small ant-table-bordered\">\n        <div className=\"ant-table-container\">\n          <div className=\"ant-table-content\">\n            <table {...props} />\n          </div>\n        </div>\n      </div>\n    );\n  },\n  thead: (props: any) => {\n    return <thead className=\"ant-table-thead\" {...props} />;\n  },\n  tbody: (props: any) => {\n    return <tbody className=\"ant-table-tbody\" {...props} />;\n  },\n  tfoot: (props: any) => {\n    return <tfoot className=\"ant-table-tfoot\" {...props} />;\n  },\n  th: (props: any) => {\n    return <th className=\"ant-table-cell\" {...filterTableCellProps(props)} />;\n  },\n  td: (props: any) => {\n    return <td className=\"ant-table-cell\" {...filterTableCellProps(props)} />;\n  },\n  AspectRatio,\n  CodeBlock,\n  Emoji,\n  Mailchimp,\n  MaxWidth,\n  NoWrap,\n  RequiredDependencies,\n  TutorialSteps,\n  Tabs: (props: any) => {\n    return <AntdTabs animated={{ inkBar: true, tabPane: false }} {...props} />;\n  },\n  TabPane: AntdTabs.TabPane,\n  Tip,\n  TypeLink,\n  ThankYou: loadable(() => import('../components/thank-you')),\n  Warning,\n};\n\nfunction filterTableCellProps(props: any) {\n  const newProps = {\n    ...props,\n    rowSpan: props.rowspan,\n    colSpan: props.colspan,\n  };\n  if (props.align) {\n    if (newProps.style) {\n      newProps.style = { ...newProps.style, textAlign: props.align };\n    } else {\n      newProps.style = { textAlign: props.align };\n    }\n  }\n\n  delete newProps.align;\n  delete newProps.rowspan;\n  delete newProps.colspan;\n  return newProps;\n}\n\nconst MdxLayout: React.FC<MdxLayoutProps> = (props) => {\n  useLayoutEffect(() => {\n    tocbot.init({\n      // We can't use the full CSS class name here because auto-generated CSS class names\n      // sometimes contain a plug sign, such as `mdx-module--pageToc--7+NSp`.\n      tocSelector: 'div[class^=\"mdx-module--pageToc-\"]', // `.${styles.pageToc}`,\n      contentSelector: 'div[class^=\"mdx-module--content-\"]', // `.${styles.content}`,\n      headingSelector: 'h1, h2, h3, h4',\n      ignoreHiddenElements: true,\n    });\n\n    return () => {\n      tocbot.destroy();\n    };\n  }, []);\n\n  // Create a map of page name and MDX node pair, while adding the 'href' property.\n  const pathToMdxNode: { [name: string]: any } = {};\n  props.candidateMdxNodes.forEach((mdxNode: any) => {\n    if (\n      mdxNode.parent.sourceInstanceName === props.prefix &&\n      (mdxNode.tableOfContents.items?.length || 0) > 0\n    ) {\n      /* eslint-disable no-param-reassign */\n      mdxNode.isBookmark = false;\n      if (\n        typeof mdxNode.parent.relativeDirectory === 'undefined' ||\n        mdxNode.parent.relativeDirectory === ''\n      ) {\n        mdxNode.path = mdxNode.parent.name;\n      } else {\n        mdxNode.path = `${mdxNode.parent.relativeDirectory}/${mdxNode.parent.name}`;\n      }\n\n      if (mdxNode.path.endsWith('/index')) {\n        mdxNode.path = mdxNode.path.substring(0, mdxNode.path.length - 6);\n      }\n\n      if (mdxNode.path === 'index') {\n        mdxNode.href = `/${props.prefix}`;\n      } else {\n        mdxNode.href = `/${props.prefix}/${mdxNode.path}`;\n      }\n      /* eslint-enable no-param-reassign */\n      pathToMdxNode[mdxNode.path] = mdxNode;\n    }\n  });\n\n  // Create a list of MDX pages, ordered as specified in 'index'.\n  const mdxNodes: any[] = [];\n  const groupToMdxNodes: { [group: string]: any[] } = {};\n  let prevMdxNode: any;\n  Object.entries(props.index).forEach(\n    ([groupName, mdxNodePathsOrBookmarks]) => {\n      if (Array.isArray(mdxNodePathsOrBookmarks)) {\n        const mdxNodePaths = mdxNodePathsOrBookmarks;\n        for (let i = 0; i < mdxNodePaths.length; i += 1) {\n          const mdxNodePath = mdxNodePaths[i];\n          const mdxNode = pathToMdxNode[mdxNodePath];\n          if (!mdxNode) {\n            continue;\n          }\n          mdxNodes.push(mdxNode);\n\n          if (prevMdxNode) {\n            // Note: Do not refer to 'prevMdxNode' or 'mdxNode' directly here,\n            //       to avoid creating cyclic references.\n            mdxNode.prevNodePath = prevMdxNode.path;\n            prevMdxNode.nextNodePath = mdxNodePath;\n          }\n          prevMdxNode = mdxNode;\n\n          // Group MDX nodes by its group.\n          const groupedMdxNodes = groupToMdxNodes[groupName];\n          if (groupedMdxNodes) {\n            groupedMdxNodes.push(mdxNode);\n          } else {\n            groupToMdxNodes[groupName] = [mdxNode];\n          }\n        }\n      } else {\n        const bookmarks = mdxNodePathsOrBookmarks;\n        Object.entries(bookmarks).forEach(([bookmarkTitle, bookmarkUrl]) => {\n          // Not really an MDX node, but we fake it.\n          const mdxNode = {\n            isBookmark: true,\n            href: bookmarkUrl,\n            tableOfContents: {\n              items: [\n                {\n                  title: bookmarkTitle,\n                },\n              ],\n            },\n          };\n\n          // Add the fake MDX node to its group, so it appears on the ToC.\n          // Note that we do not add it to mdxNodes because mdxNodes is used for\n          // generating prev/next buttons.\n          const groupedMdxNodes = groupToMdxNodes[groupName];\n          if (groupedMdxNodes) {\n            groupedMdxNodes.push(mdxNode);\n          } else {\n            groupToMdxNodes[groupName] = [mdxNode];\n          }\n        });\n      }\n    },\n  );\n\n  const currentMdxNode = findCurrentMdxNode();\n\n  // Generate some properties required for rendering.\n  const pageTitle = `${props.pageTitle} — ${props.pageTitleSuffix}`;\n  const pageDescription = currentMdxNode?.excerpt\n    ?.replace(/\\w+:\\/\\//g, '')\n    .replace(/\\s+(\\W)/g, '$1')\n    .replace(/(?:\\s|\\r|\\n)+/g, ' ');\n  const relpath = pagePath(props.location).substring(1);\n  const githubHref = props.noEdit\n    ? undefined\n    : `https://github.com/line/armeria/edit/main/site/src/pages/${relpath}${\n        relpath === props.prefix ? '/index' : ''\n      }.mdx`;\n  let prevLabel;\n  let nextLabel;\n  let prevHref;\n  let nextHref;\n  if (props.pageContext.hrefs?.prev) {\n    prevLabel = props.pageContext.hrefs.prev.label;\n    prevHref = props.pageContext.hrefs.prev.href;\n  } else if (currentMdxNode?.prevNodePath) {\n    prevLabel =\n      pathToMdxNode[currentMdxNode.prevNodePath].tableOfContents.items[0].title;\n    prevHref = pathToMdxNode[currentMdxNode.prevNodePath].href;\n  }\n  if (props.pageContext.hrefs?.next) {\n    nextLabel = props.pageContext.hrefs.next.label;\n    nextHref = props.pageContext.hrefs.next.href;\n  } else if (currentMdxNode?.nextNodePath) {\n    nextLabel =\n      pathToMdxNode[currentMdxNode.nextNodePath].tableOfContents.items[0].title;\n    nextHref = pathToMdxNode[currentMdxNode.nextNodePath].href;\n  }\n\n  function findCurrentMdxNode(): any {\n    const path = pagePath(props.location);\n    const prefix = `/${props.prefix}`;\n    const prefixPos = path.indexOf(prefix);\n\n    const fallbackPagePath = 'index';\n    let mdxPath: string | undefined;\n    if (prefixPos < 0) {\n      mdxPath = fallbackPagePath;\n    } else {\n      const pathWithoutPrefix = path.substring(prefixPos + prefix.length);\n      if (pathWithoutPrefix === '' || pathWithoutPrefix === '/') {\n        mdxPath = fallbackPagePath;\n      } else {\n        mdxPath = pathWithoutPrefix.substring(1);\n        if (mdxPath.endsWith('/')) {\n          mdxPath = mdxPath.substring(0, mdxPath.length - 1);\n        }\n      }\n    }\n\n    for (let i = 0; i < mdxNodes.length; i += 1) {\n      const mdxNode = mdxNodes[i];\n      if (mdxPath === mdxNode.path) {\n        return mdxNode;\n      }\n    }\n\n    return undefined;\n  }\n\n  function getMenuName(mdxNode: any, tocItem: any): string {\n    if (props.menuTitle && mdxNode.frontmatter !== undefined) {\n      if (mdxNode.frontmatter.menuTitle !== null) {\n        if (mdxNode.frontmatter.order !== null) {\n          return `${mdxNode.frontmatter.order}. ${mdxNode.frontmatter.menuTitle}`;\n        }\n        return `${mdxNode.frontmatter.menuTitle}`;\n      }\n    }\n\n    return tocItem.title;\n  }\n\n  const globalToc = (\n    <ol>\n      {Object.entries(groupToMdxNodes).map(([group, groupedMdxNodes]) => {\n        function renderMdxNodes() {\n          return groupedMdxNodes.flatMap((mdxNode) => {\n            return mdxNode.tableOfContents.items.map(\n              (tocItem: any, i: number) => {\n                const href = mdxNode.href\n                  ? `${mdxNode.href}${i !== 0 ? tocItem.url : ''}`\n                  : null;\n                const menuName = getMenuName(mdxNode, tocItem);\n                return (\n                  <li\n                    key={href}\n                    className={`${styles.tocLeaf} ${\n                      href === pagePath(props.location)\n                        ? styles.tocLeafActive\n                        : ''\n                    }`}\n                  >\n                    {(() => {\n                      if (href) {\n                        if (href.includes('://')) {\n                          return (\n                            <OutboundLink href={href} title={tocItem.title}>\n                              {tocItem.title}\n                            </OutboundLink>\n                          );\n                        }\n                        return (\n                          <Link to={href} title={menuName}>\n                            {menuName}\n                          </Link>\n                        );\n                      }\n                      return <span>{menuName}</span>;\n                    })()}\n                  </li>\n                );\n              },\n            );\n          });\n        }\n\n        if (group === 'root') {\n          return renderMdxNodes();\n        }\n\n        return (\n          <li key={`group-${group}`} className={styles.tocGroup}>\n            <span className={styles.tocGroupLabel}>{group}</span>\n            <ol>{renderMdxNodes()}</ol>\n          </li>\n        );\n      })}\n    </ol>\n  );\n\n  return (\n    <MDXProvider components={mdxComponents}>\n      <BaseLayout\n        location={props.location}\n        pageTitle={pageTitle}\n        pageDescription={pageDescription}\n        contentClassName={styles.outerWrapper}\n        main={false}\n        extraSidebarContent={globalToc}\n      >\n        <div className={styles.wrapper}>\n          <div className={styles.globalTocWrapper}>\n            <nav>{globalToc}</nav>\n          </div>\n          <div className={styles.content}>\n            <Content className=\"ant-typography\" role=\"main\">\n              {props.children}\n              <div className={styles.footer}>\n                {githubHref ? (\n                  <div className={styles.editOnGitHub}>\n                    <OutboundLink href={githubHref}>\n                      <GithubOutlined /> Edit this page\n                    </OutboundLink>\n                  </div>\n                ) : (\n                  ''\n                )}\n                {props.showPrevNextButton !== false && prevHref ? (\n                  <Link className={styles.prevButton} to={prevHref}>\n                    <Button>\n                      <LeftOutlined />\n                      <span className={styles.buttonLabel}> {prevLabel}</span>\n                    </Button>\n                  </Link>\n                ) : (\n                  ''\n                )}\n                {props.showPrevNextButton !== false && nextHref ? (\n                  <Link className={styles.nextButton} to={nextHref}>\n                    <Button>\n                      <span className={styles.buttonLabel}>{nextLabel} </span>\n                      <RightOutlined />\n                    </Button>\n                  </Link>\n                ) : (\n                  ''\n                )}\n              </div>\n            </Content>\n          </div>\n          <div className={styles.pageTocWrapper} role=\"directory\">\n            <StickyBox offsetTop={24} offsetBottom={24}>\n              <nav>\n                <div className={styles.pageToc} />\n                <div className={styles.newsletter}>\n                  <Paragraph>Like what we're doing?</Paragraph>\n                  <Mailchimp />\n                </div>\n              </nav>\n            </StickyBox>\n          </div>\n        </div>\n      </BaseLayout>\n    </MDXProvider>\n  );\n};\n\nexport default MdxLayout;\n","import { WindowLocation } from '@reach/router';\nimport { withPrefix } from 'gatsby';\n\nconst prefix = withPrefix('/');\n\nexport default (location: WindowLocation) => {\n  let path = location.pathname;\n  if (path.startsWith(prefix)) {\n    path = path.substring(prefix.length - 1);\n  }\n\n  if (path.length > 1 && path.endsWith('/')) {\n    path = path.substring(0, path.length - 1);\n  } else if (path.endsWith('/index')) {\n    path = path.substring(0, path.length - 6);\n  } else if (path.endsWith('/index.html')) {\n    path = path.substring(0, path.length - 11);\n  }\n\n  return path;\n};\n"],"names":["module","exports","options","tocElement","forEach","some","body","document","currentlyHighlighting","SPACE_CHAR","createEl","d","container","link","appendChild","data","item","createElement","a","listItemClass","setAttribute","onClick","onclick","includeTitleTags","textContent","includeHtml","childNodes","length","call","node","cloneNode","basePath","id","linkClass","nodeName","extraLinkClasses","createLink","children","list","createList","isCollapsed","child","listElement","orderedList","classes","listClass","extraListClasses","collapsibleClass","isCollapsedClass","getHeadingTopPos","obj","position","offsetTop","hasInnerContainers","offsetParent","removeCollapsedFromParents","element","className","indexOf","split","join","parentNode","enableTocAnimation","disableTocAnimation","event","target","srcElement","render","parent","firstChild","removeChild","updateToc","headingsArray","top","scrollContainer","querySelector","scrollTop","documentElement","positionFixedSelector","posFixedEl","fixedSidebarOffset","positionFixedClass","updateFixedSidebarClass","topHeader","headings","heading","i","headingsOffset","tocLinks","querySelectorAll","tocLink","activeLinkClass","tocLis","tocLi","activeListItemClass","activeTocLink","replace","li","tocLists","nextSibling","tocSelector","contentSelector","headingSelector","ignoreSelector","collapseDepth","scrollSmooth","scrollSmoothDuration","scrollSmoothOffset","scrollEndCallback","e","throttleTimeout","skipRendering","headingLabelCallback","ignoreHiddenElements","headingObjectCallback","disableTocScrollSync","root","g","this","window","global","buildHtml","parseContent","defaultOptions","tocbot","BuildHtml","ParseContent","updateTocScroll","supports","addEventListener","hasOwnProperty","Object","prototype","destroy","getTocElement","innerHTML","removeEventListener","_scrollListener","_clickListener","init","customOptions","extend","state","duration","offset","_buildHtml","_parseContent","_headingsArray","contentElement","getContentElement","selectHeadings","nestedHeadings","nestHeadingsArray","nest","throttle","isTop","scrollingElement","eventPhase","currentTarget","timeout","clearTimeout","setTimeout","refresh","arguments","source","key","fn","threshhold","scope","last","deferTimer","context","now","Date","args","apply","console","warn","reduce","getLastItem","array","getHeadingLevel","toUpperCase","getHeadingObject","HTMLElement","offsetHeight","headingLabel","getAttribute","String","trim","headingLevel","prev","curr","currentHeading","level","lastItem","counter","undefined","push","addNode","selectors","map","selector","initSmoothScrolling","pageUrl","location","hash","stripHash","href","url","slice","lastIndexOf","n","tagName","toLowerCase","charAt","timeStart","timeElapsed","start","pageYOffset","opt","callback","easing","easeInOutQuad","tgt","decodeURI","distance","getBoundingClientRect","loop","time","scrollTo","requestAnimationFrame","end","t","b","c","jump","getElementById","substring","test","tabIndex","focus","toc","scrollHeight","clientHeight","activeItem","ErrorBoundary","_React$Component","_super","_this","error","info","componentStack","value","setState","_this$props","props","message","description","_this$state","errorMessage","toString","errorDescription","type","__rest","s","p","getOwnPropertySymbols","propertyIsEnumerable","iconMapFilled","success","CheckCircleFilled","InfoCircleFilled","CloseCircleFilled","warning","ExclamationCircleFilled","iconMapOutlined","CheckCircleOutlined","InfoCircleOutlined","CloseCircleOutlined","ExclamationCircleOutlined","Alert","_a","_classNames2","customizePrefixCls","prefixCls","banner","_a$className","style","onMouseEnter","onMouseLeave","afterClose","showIcon","closable","closeText","_a$closeIcon","closeIcon","CloseOutlined","action","_React$useState","_React$useState2","closed","setClosed","ref","_React$useContext","getPrefixCls","direction","handleClose","onClose","isClosable","getType","isShowIcon","alertCls","concat","dataOrAriaProps","keys","startsWith","getDataOrAriaProps","visible","motionName","motionAppear","motionEnter","onLeaveStart","maxHeight","onLeaveEnd","_ref","icon","iconType","motionClassName","motionStyle","role","AntdIcon","displayName","React","_Alert","Tip","Warning","WarningOutlined","useRaf","rafRef","useRef","removedRef","useEffect","current","raf","_len","Array","_key","TabNode","_classNames","active","_ref$tab","tab","disabled","renderWrapper","removeAriaLabel","editable","onRemove","onFocus","tabPrefix","removable","onInternalClick","stopPropagation","onKeyDown","KeyCode","includes","which","preventDefault","onEdit","removeIcon","DEFAULT_SIZE","width","height","left","right","autoAdjustOverflow","adjustX","adjustY","targetOffset","topLeft","points","overflow","topCenter","topRight","bottomLeft","bottomCenter","bottomRight","ESC","TAB","useAccessibility","setTriggerVisible","triggerRef","menuRef","menuClassName","onVisibleChange","handleCloseMenuAndReturnFocus","handleKeyDown","keyCode","_menuRef$current$clas","_menuRef$current$quer","_menuRef$current","menuList","focusOpenedMenu","returnFocus","_triggerRef$current","_triggerRef$current$t","_triggerRef$current$t2","_excluded","Dropdown","_props$arrow","arrow","_props$prefixCls","transitionName","animation","align","_props$placement","placement","_props$placements","placements","getPopupContainer","showAction","hideAction","overlayClassName","overlayStyle","_props$trigger","trigger","otherProps","triggerVisible","mergedVisible","openClassName","childrenProps","childClassName","minOverlayWidthMatchTrigger","alignPoint","getOverlayElement","overlay","onOverlayClick","overlayProps","getMenuElement","overlayElement","extraOverlayProps","triggerHideAction","builtinPlacements","popupClassName","popupStyle","popupPlacement","popupAlign","popupTransitionName","popupAnimation","popupVisible","stretch","popup","onPopupVisibleChange","newVisible","onVisibleChangeProp","AddButton","locale","showAdd","addAriaLabel","addIcon","OperationNode","tabs","mobile","_ref$moreIcon","moreIcon","moreTransitionName","tabBarGutter","rtl","onTabClick","_useState","useState","_useState2","open","setOpen","_useState3","_useState4","selectedKey","setSelectedKey","popupId","dropdownPrefix","selectedItemId","dropdownAriaLabel","menu","_ref2","domEvent","selectedKeys","selectOffset","enabledTabs","filter","selectedIndex","findIndex","len","ele","scrollIntoView","moreStyle","visibility","order","moreNode","mouseEnterDelay","mouseLeaveDelay","_","next","createContext","SPEED_OFF_MULTIPLE","Math","pow","useSyncState","defaultState","onChange","stateRef","forceUpdate","updater","newValue","ExtraContent","content","extra","assertExtra","TabNavList","cacheRefs","TabContext","animated","activeKey","tabPosition","onTabScroll","tabsWrapperRef","tabListRef","operationsRef","innerAddButtonRef","_useRefs","Map","has","set","get","delete","_useRefs2","getBtnRef","removeBtnRef","tabPositionTopOrBottom","_useSyncState","_useSyncState2","transformLeft","setTransformLeft","_useSyncState3","_useSyncState4","transformTop","setTransformTop","wrapperScrollWidth","setWrapperScrollWidth","wrapperScrollHeight","setWrapperScrollHeight","_useState5","_useState6","wrapperContentWidth","setWrapperContentWidth","_useState7","_useState8","wrapperContentHeight","setWrapperContentHeight","_useState9","_useState10","wrapperWidth","setWrapperWidth","_useState11","_useState12","wrapperHeight","setWrapperHeight","_useState13","_useState14","addWidth","setAddWidth","_useState15","_useState16","addHeight","setAddHeight","_useRafState","batchRef","flushUpdate","useRafState","_useRafState2","tabSizes","setTabSizes","tabOffsets","holderScrollWidth","useMemo","_tabs$","lastOffset","rightOffset","_tabs","entity","useOffsets","operationsHiddenClassName","transformMin","transformMax","alignInRange","max","min","touchMovingRef","_useState17","_useState18","lockAnimation","setLockAnimation","doLockAnimation","clearTouchMoving","scrollToTab","tabOffset","newTransform","_newTransform","onOffset","touchPosition","setTouchPosition","lastTimestamp","setLastTimestamp","lastTimeDiff","setLastTimeDiff","setLastOffset","motionRef","lastWheelDirectionRef","touchEventsRef","onTouchStart","_e$touches$","touches","screenX","screenY","x","y","clearInterval","onTouchMove","_e$touches$2","offsetX","offsetY","onTouchEnd","distanceX","distanceY","absX","abs","absY","currentX","currentY","setInterval","onWheel","deltaX","deltaY","mixed","onProxyTouchMove","onProxyTouchEnd","passive","useTouchMove","doMove","_useVisibleRange","containerSize","tabContentNodeSize","addNodeSize","unit","transformSize","basicSize","tabContentSize","addSize","mergedBasicSize","endIndex","startIndex","_i","useVisibleRange","_useVisibleRange2","visibleStart","visibleEnd","tabNodeStyle","marginTop","tabNodes","scrollLeft","onListHolderResize","_tabsWrapperRef$curre","_tabsWrapperRef$curre2","_innerAddButtonRef$cu","_innerAddButtonRef$cu2","_operationsRef$curren","_operationsRef$curren2","_tabListRef$current","_tabListRef$current2","_operationsRef$curren3","offsetWidth","newAddWidth","newAddHeight","newOperationWidth","newOperationHeight","newWrapperScrollWidth","newWrapperScrollHeight","isOperationHidden","newSizes","btnNode","offsetLeft","startHiddenTabs","endHiddenTabs","hiddenTabs","_useState19","_useState20","inkStyle","setInkStyle","activeTabOffset","inkBarRafRef","cleanInkBarRaf","newInkStyle","pingLeft","pingRight","pingTop","pingBottom","hasDropdown","wrapPrefix","onResize","transform","transition","inkBar","tabMoving","TabPanelList","destroyInactiveTabPane","tabPaneAnimated","tabPane","activeIndex","tabKey","TabPane","forceRender","visited","setVisited","mergedStyle","overflowY","display","uuid","Tabs","mergedAnimated","_ref$prefixCls","defaultActiveKey","_ref$animated","_ref$tabPosition","tabBarStyle","tabBarExtraContent","renderTabBar","restProps","toArray","parseTabList","setMobile","isMobile","_useMergedState","useMergedState","defaultValue","_useMergedState2","mergedActiveKey","setMergedActiveKey","setActiveIndex","_tabs$newActiveIndex","newActiveIndex","_useMergedState3","_useMergedState4","mergedId","setMergedId","mergedTabPosition","tabNavBar","sharedProps","tabNavBarProps","isActiveChanged","panes","Provider","ForwardTabs","propSize","size","_onEdit","hideAdd","centered","_props$moreIcon","EllipsisOutlined","editType","rootPrefixCls","devWarning","SizeContext","contextSize","TypeLink","simpleName","decodeURIComponent","name","lastDotIdx","showParams","optionIndex","suffix","plural","match","title","replaced","simpleTypeNameWithHref","OutboundLink","maxWidth","marginLeft","marginRight","versions","gradleDependency","statements","dependencies","dependency","groupId","artifactId","boms","bom","version","gradleKotlinDependency","mavenDependency","_Tabs","CodeBlock","language","filename","isString","str","Step","onStepClick","stepIndex","iconNode","_this$props2","progressDot","stepIcon","stepNumber","status","iconPrefix","icons","iconClassName","finish","iconDot","index","_this$props3","_this$props3$status","wrapperStyle","subTitle","tailContent","classString","stepItemStyle","accessibilityProps","assign","renderIconNode","Steps","_this2","_this$props2$style","labelPlacement","initial","isNav","adjustedLabelPlacement","childProps","cloneElement","defaultProps","validProgress","progress","getSuccessPercent","percent","successPercent","handleGradient","strokeColor","directionConfig","gradients","tempArr","_strokeColor$from","from","_strokeColor$to","to","_strokeColor$directio","rest","sortedGradients","formattedKey","parseFloat","isNaN","sort","backgroundImage","strokeWidth","strokeLinecap","trailColor","backgroundProps","background","trailStyle","backgroundColor","percentStyle","borderRadius","successPercentStyle","successSegment","trailWidth","useTransitionDuration","percentList","paths","prevTimeStamp","updated","path","pathStyle","transitionDuration","gapPosition","isArray","strokeColorList","_useTransitionDuratio","center","pathString","viewBoxString","stackPtg","viewBox","preserveAspectRatio","stroke","fillOpacity","ptg","dashPercent","strokeDasharray","strokeDashoffset","color","isBrowserClient","canUseDom","innerId","setInnerId","retId","stripPercentToNumber","mergedValue","getPathStyles","gapDegree","radius","beginPositionX","beginPositionY","endPositionX","endPositionY","PI","Circle","useId","gradientId","_getPathStyles","gradient","find","x1","y1","x2","y2","stopColor","pathStyles","opacity","reverse","realSuccessPercent","circleSize","circleStyle","fontSize","circleWidth","gapPos","isGradient","_ref2$success","getStrokeColor","wrapperClassName","steps","_props$percent","_props$strokeWidth","round","stepWidth","styledSteps","ProgressStatuses","Progress","renderProgress","showInfo","progressStatus","getProgressStatus","progressInfo","renderProcessInfo","omit","_this$props$percent","parseInt","getPercentNumber","text","format","isLineType","percentNumber","CheckOutlined","C","responsiveMap","xs","sm","md","lg","xl","xxl","subscribers","subUid","screens","matchHandlers","dispatch","pointMap","func","subscribe","register","unsubscribe","token","unregister","screen","matchMediaQuery","handler","mql","removeListener","listener","clear","matches","matchMedia","addListener","refreshOnChange","screensRef","useForceUpdate","supportScreens","responsive","rtlDirection","getDirection","stepsClassName","progressWidth","_Steps","tutorialNodes","useStaticQuery","allMdx","nodes","tutorialType","setTutorialType","pathname","substr","tutorialSteps","entries","tutorialNode","relativeDirectory","frontmatter","menuTitle","buttonLabel","Content","_Layout","Paragraph","_Typography","Title","pathPrefix","withPrefix","mdxComponents","prefixLength","delimiterIndex","typeName","actualHref","Link","pre","_props$children$props","highlight","showlineno","h1","h2","h3","h4","table","thead","tbody","tfoot","th","filterTableCellProps","td","AspectRatio","Emoji","Mailchimp","MaxWidth","NoWrap","RequiredDependencies","TutorialSteps","ThankYou","loadable","newProps","_objectSpread","rowSpan","rowspan","colSpan","colspan","textAlign","_currentMdxNode$excer","_props$pageContext$hr","_props$pageContext$hr2","useLayoutEffect","pathToMdxNode","candidateMdxNodes","mdxNode","_mdxNode$tableOfConte","sourceInstanceName","prefix","tableOfContents","items","isBookmark","endsWith","prevMdxNode","mdxNodes","groupToMdxNodes","groupName","mdxNodePathsOrBookmarks","mdxNodePaths","mdxNodePath","prevNodePath","nextNodePath","groupedMdxNodes","bookmarks","_ref3","bookmarkTitle","prevLabel","nextLabel","prevHref","nextHref","currentMdxNode","mdxPath","pagePath","prefixPos","fallbackPagePath","pathWithoutPrefix","findCurrentMdxNode","pageTitle","pageTitleSuffix","pageDescription","excerpt","relpath","githubHref","noEdit","pageContext","hrefs","label","globalToc","_ref4","group","renderMdxNodes","flatMap","tocItem","menuName","getMenuName","styles","MDXProvider","components","BaseLayout","contentClassName","main","extraSidebarContent","GithubOutlined","showPrevNextButton","_Button","LeftOutlined","RightOutlined","StickyBox","offsetBottom"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"file":"12bf3e15df1f0f820c37e5d14a2df77495d60f3c-85b6fdd84273564b38b8.js","mappings":"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","sources":["webpack://armeria-site/./node_modules/tocbot/src/js/build-html.js","webpack://armeria-site/./node_modules/tocbot/src/js/default-options.js","webpack://armeria-site/./node_modules/tocbot/src/js/index.js","webpack://armeria-site/./node_modules/tocbot/src/js/parse-content.js","webpack://armeria-site/./node_modules/tocbot/src/js/scroll-smooth/index.js","webpack://armeria-site/./node_modules/tocbot/src/js/update-toc-scroll.js","webpack://armeria-site/./node_modules/antd/es/alert/ErrorBoundary.js","webpack://armeria-site/./node_modules/antd/es/alert/index.js","webpack://armeria-site/./node_modules/antd/es/_util/getDataOrAriaProps.js","webpack://armeria-site/./node_modules/@ant-design/icons-svg/es/asn/WarningOutlined.js","webpack://armeria-site/./node_modules/@ant-design/icons/es/icons/WarningOutlined.js","webpack://armeria-site/./src/components/alert.tsx","webpack://armeria-site/./node_modules/rc-tabs/es/hooks/useRaf.js","webpack://armeria-site/./node_modules/rc-tabs/es/TabNavList/TabNode.js","webpack://armeria-site/./node_modules/rc-tabs/es/hooks/useOffsets.js","webpack://armeria-site/./node_modules/rc-tabs/es/hooks/useVisibleRange.js","webpack://armeria-site/./node_modules/rc-dropdown/es/placements.js","webpack://armeria-site/./node_modules/rc-dropdown/es/hooks/useAccessibility.js","webpack://armeria-site/./node_modules/rc-dropdown/es/Dropdown.js","webpack://armeria-site/./node_modules/rc-dropdown/es/index.js","webpack://armeria-site/./node_modules/rc-tabs/es/TabNavList/AddButton.js","webpack://armeria-site/./node_modules/rc-tabs/es/TabNavList/OperationNode.js","webpack://armeria-site/./node_modules/rc-tabs/es/TabContext.js","webpack://armeria-site/./node_modules/rc-tabs/es/hooks/useTouchMove.js","webpack://armeria-site/./node_modules/rc-tabs/es/hooks/useSyncState.js","webpack://armeria-site/./node_modules/rc-tabs/es/TabNavList/index.js","webpack://armeria-site/./node_modules/rc-tabs/es/hooks/useRefs.js","webpack://armeria-site/./node_modules/rc-tabs/es/TabPanelList/index.js","webpack://armeria-site/./node_modules/rc-tabs/es/TabPanelList/TabPane.js","webpack://armeria-site/./node_modules/rc-tabs/es/Tabs.js","webpack://armeria-site/./node_modules/rc-tabs/es/index.js","webpack://armeria-site/./node_modules/@ant-design/icons-svg/es/asn/PlusOutlined.js","webpack://armeria-site/./node_modules/@ant-design/icons/es/icons/PlusOutlined.js","webpack://armeria-site/./node_modules/antd/es/tabs/index.js","webpack://armeria-site/./src/components/api-link.tsx","webpack://armeria-site/./src/components/api-link.module.less","webpack://armeria-site/./src/components/aspect-ratio.tsx","webpack://armeria-site/./src/components/aspect-ratio.module.less","webpack://armeria-site/./src/components/max-width.tsx","webpack://armeria-site/./src/components/required-dependencies.tsx","webpack://armeria-site/./node_modules/rc-steps/es/Step.js","webpack://armeria-site/./node_modules/rc-steps/es/Steps.js","webpack://armeria-site/./node_modules/rc-steps/es/index.js","webpack://armeria-site/./node_modules/antd/es/progress/utils.js","webpack://armeria-site/./node_modules/antd/es/progress/Line.js","webpack://armeria-site/./node_modules/rc-progress/es/common.js","webpack://armeria-site/./node_modules/rc-progress/es/Line.js","webpack://armeria-site/./node_modules/rc-progress/es/hooks/useId.js","webpack://armeria-site/./node_modules/rc-progress/es/Circle.js","webpack://armeria-site/./node_modules/antd/es/progress/Circle.js","webpack://armeria-site/./node_modules/antd/es/progress/Steps.js","webpack://armeria-site/./node_modules/antd/es/progress/progress.js","webpack://armeria-site/./node_modules/antd/es/progress/index.js","webpack://armeria-site/./node_modules/antd/es/_util/responsiveObserve.js","webpack://armeria-site/./node_modules/antd/es/grid/hooks/useBreakpoint.js","webpack://armeria-site/./node_modules/antd/es/steps/index.js","webpack://armeria-site/./src/components/steps.tsx","webpack://armeria-site/./src/layouts/mdx.module.less","webpack://armeria-site/./src/layouts/mdx.tsx","webpack://armeria-site/./src/layouts/page-path.tsx"],"sourcesContent":["/* eslint no-var: off */\n\n/**\n * This file is responsible for building the DOM and updating DOM state.\n *\n * @author Tim Scanlin\n */\n\nmodule.exports = function (options) {\n  var forEach = [].forEach;\n  var some = [].some;\n  var body = document.body;\n  var tocElement;\n  var currentlyHighlighting = true;\n  var SPACE_CHAR = ' ';\n\n  /**\n   * Create link and list elements.\n   * @param {Object} d\n   * @param {HTMLElement} container\n   * @return {HTMLElement}\n   */\n  function createEl(d, container) {\n    var link = container.appendChild(createLink(d));\n    if (d.children.length) {\n      var list = createList(d.isCollapsed);\n      d.children.forEach(function (child) {\n        createEl(child, list);\n      });\n      link.appendChild(list);\n    }\n  }\n\n  /**\n   * Render nested heading array data into a given element.\n   * @param {HTMLElement} parent Optional. If provided updates the {@see tocElement} to match.\n   * @param {Array} data\n   * @return {HTMLElement}\n   */\n  function render(parent, data) {\n    var collapsed = false;\n    var container = createList(collapsed);\n    data.forEach(function (d) {\n      createEl(d, container);\n    });\n\n    // Return if no TOC element is provided or known.\n    tocElement = parent || tocElement;\n    if (tocElement === null) {\n      return;\n    }\n\n    // Remove existing child if it exists.\n    if (tocElement.firstChild) {\n      tocElement.removeChild(tocElement.firstChild);\n    }\n\n    // Just return the parent and don't append the list if no links are found.\n    if (data.length === 0) {\n      return tocElement;\n    }\n\n    // Append the Elements that have been created\n    return tocElement.appendChild(container);\n  }\n\n  /**\n   * Create link element.\n   * @param {Object} data\n   * @return {HTMLElement}\n   */\n  function createLink(data) {\n    var item = document.createElement('li');\n    var a = document.createElement('a');\n    if (options.listItemClass) {\n      item.setAttribute('class', options.listItemClass);\n    }\n    if (options.onClick) {\n      a.onclick = options.onClick;\n    }\n    if (options.includeTitleTags) {\n      a.setAttribute('title', data.textContent);\n    }\n    if (options.includeHtml && data.childNodes.length) {\n      forEach.call(data.childNodes, function (node) {\n        a.appendChild(node.cloneNode(true));\n      });\n    } else {\n      // Default behavior.\n      a.textContent = data.textContent;\n    }\n    a.setAttribute('href', options.basePath + '#' + data.id);\n    a.setAttribute('class', options.linkClass + SPACE_CHAR + 'node-name--' + data.nodeName + SPACE_CHAR + options.extraLinkClasses);\n    item.appendChild(a);\n    return item;\n  }\n\n  /**\n   * Create list element.\n   * @param {Boolean} isCollapsed\n   * @return {HTMLElement}\n   */\n  function createList(isCollapsed) {\n    var listElement = options.orderedList ? 'ol' : 'ul';\n    var list = document.createElement(listElement);\n    var classes = options.listClass + SPACE_CHAR + options.extraListClasses;\n    if (isCollapsed) {\n      classes += SPACE_CHAR + options.collapsibleClass;\n      classes += SPACE_CHAR + options.isCollapsedClass;\n    }\n    list.setAttribute('class', classes);\n    return list;\n  }\n\n  /**\n   * Update fixed sidebar class.\n   * @return {HTMLElement}\n   */\n  function updateFixedSidebarClass() {\n    if (options.scrollContainer && document.querySelector(options.scrollContainer)) {\n      var top;\n      top = document.querySelector(options.scrollContainer).scrollTop;\n    } else {\n      top = document.documentElement.scrollTop || body.scrollTop;\n    }\n    var posFixedEl = document.querySelector(options.positionFixedSelector);\n    if (options.fixedSidebarOffset === 'auto') {\n      options.fixedSidebarOffset = tocElement.offsetTop;\n    }\n    if (top > options.fixedSidebarOffset) {\n      if (posFixedEl.className.indexOf(options.positionFixedClass) === -1) {\n        posFixedEl.className += SPACE_CHAR + options.positionFixedClass;\n      }\n    } else {\n      posFixedEl.className = posFixedEl.className.split(SPACE_CHAR + options.positionFixedClass).join('');\n    }\n  }\n\n  /**\n   * Get top position of heading\n   * @param {HTMLElement} obj\n   * @return {int} position\n   */\n  function getHeadingTopPos(obj) {\n    var position = 0;\n    if (obj !== null) {\n      position = obj.offsetTop;\n      if (options.hasInnerContainers) {\n        position += getHeadingTopPos(obj.offsetParent);\n      }\n    }\n    return position;\n  }\n\n  /**\n   * Update TOC highlighting and collpased groupings.\n   */\n  function updateToc(headingsArray) {\n    // If a fixed content container was set\n    if (options.scrollContainer && document.querySelector(options.scrollContainer)) {\n      var top;\n      top = document.querySelector(options.scrollContainer).scrollTop;\n    } else {\n      top = document.documentElement.scrollTop || body.scrollTop;\n    }\n\n    // Add fixed class at offset\n    if (options.positionFixedSelector) {\n      updateFixedSidebarClass();\n    }\n\n    // Get the top most heading currently visible on the page so we know what to highlight.\n    var headings = headingsArray;\n    var topHeader;\n    // Using some instead of each so that we can escape early.\n    if (currentlyHighlighting && tocElement !== null && headings.length > 0) {\n      some.call(headings, function (heading, i) {\n        if (getHeadingTopPos(heading) > top + options.headingsOffset + 10) {\n          // Don't allow negative index value.\n          var index = i === 0 ? i : i - 1;\n          topHeader = headings[index];\n          return true;\n        } else if (i === headings.length - 1) {\n          // This allows scrolling for the last heading on the page.\n          topHeader = headings[headings.length - 1];\n          return true;\n        }\n      });\n\n      // Remove the active class from the other tocLinks.\n      var tocLinks = tocElement.querySelectorAll('.' + options.linkClass);\n      forEach.call(tocLinks, function (tocLink) {\n        tocLink.className = tocLink.className.split(SPACE_CHAR + options.activeLinkClass).join('');\n      });\n      var tocLis = tocElement.querySelectorAll('.' + options.listItemClass);\n      forEach.call(tocLis, function (tocLi) {\n        tocLi.className = tocLi.className.split(SPACE_CHAR + options.activeListItemClass).join('');\n      });\n\n      // Add the active class to the active tocLink.\n      var activeTocLink = tocElement.querySelector('.' + options.linkClass + '.node-name--' + topHeader.nodeName + '[href=\"' + options.basePath + '#' + topHeader.id.replace(/([ #;&,.+*~':\"!^$[\\]()=>|/@])/g, '\\\\$1') + '\"]');\n      if (activeTocLink && activeTocLink.className.indexOf(options.activeLinkClass) === -1) {\n        activeTocLink.className += SPACE_CHAR + options.activeLinkClass;\n      }\n      var li = activeTocLink && activeTocLink.parentNode;\n      if (li && li.className.indexOf(options.activeListItemClass) === -1) {\n        li.className += SPACE_CHAR + options.activeListItemClass;\n      }\n      var tocLists = tocElement.querySelectorAll('.' + options.listClass + '.' + options.collapsibleClass);\n\n      // Collapse the other collapsible lists.\n      forEach.call(tocLists, function (list) {\n        if (list.className.indexOf(options.isCollapsedClass) === -1) {\n          list.className += SPACE_CHAR + options.isCollapsedClass;\n        }\n      });\n\n      // Expand the active link's collapsible list and its sibling if applicable.\n      if (activeTocLink && activeTocLink.nextSibling && activeTocLink.nextSibling.className.indexOf(options.isCollapsedClass) !== -1) {\n        activeTocLink.nextSibling.className = activeTocLink.nextSibling.className.split(SPACE_CHAR + options.isCollapsedClass).join('');\n      }\n      removeCollapsedFromParents(activeTocLink && activeTocLink.parentNode.parentNode);\n    }\n  }\n\n  /**\n   * Remove collpased class from parent elements.\n   * @param {HTMLElement} element\n   * @return {HTMLElement}\n   */\n  function removeCollapsedFromParents(element) {\n    if (element && element.className.indexOf(options.collapsibleClass) !== -1 && element.className.indexOf(options.isCollapsedClass) !== -1) {\n      element.className = element.className.split(SPACE_CHAR + options.isCollapsedClass).join('');\n      return removeCollapsedFromParents(element.parentNode.parentNode);\n    }\n    return element;\n  }\n\n  /**\n   * Disable TOC Animation when a link is clicked.\n   * @param {Event} event\n   */\n  function disableTocAnimation(event) {\n    var target = event.target || event.srcElement;\n    if (typeof target.className !== 'string' || target.className.indexOf(options.linkClass) === -1) {\n      return;\n    }\n    // Bind to tocLink clicks to temporarily disable highlighting\n    // while smoothScroll is animating.\n    currentlyHighlighting = false;\n  }\n\n  /**\n   * Enable TOC Animation.\n   */\n  function enableTocAnimation() {\n    currentlyHighlighting = true;\n  }\n  return {\n    enableTocAnimation: enableTocAnimation,\n    disableTocAnimation: disableTocAnimation,\n    render: render,\n    updateToc: updateToc\n  };\n};","module.exports = {\n  // Where to render the table of contents.\n  tocSelector: '.js-toc',\n  // Where to grab the headings to build the table of contents.\n  contentSelector: '.js-toc-content',\n  // Which headings to grab inside of the contentSelector element.\n  headingSelector: 'h1, h2, h3',\n  // Headings that match the ignoreSelector will be skipped.\n  ignoreSelector: '.js-toc-ignore',\n  // For headings inside relative or absolute positioned containers within content\n  hasInnerContainers: false,\n  // Main class to add to links.\n  linkClass: 'toc-link',\n  // Extra classes to add to links.\n  extraLinkClasses: '',\n  // Class to add to active links,\n  // the link corresponding to the top most heading on the page.\n  activeLinkClass: 'is-active-link',\n  // Main class to add to lists.\n  listClass: 'toc-list',\n  // Extra classes to add to lists.\n  extraListClasses: '',\n  // Class that gets added when a list should be collapsed.\n  isCollapsedClass: 'is-collapsed',\n  // Class that gets added when a list should be able\n  // to be collapsed but isn't necessarily collapsed.\n  collapsibleClass: 'is-collapsible',\n  // Class to add to list items.\n  listItemClass: 'toc-list-item',\n  // Class to add to active list items.\n  activeListItemClass: 'is-active-li',\n  // How many heading levels should not be collapsed.\n  // For example, number 6 will show everything since\n  // there are only 6 heading levels and number 0 will collapse them all.\n  // The sections that are hidden will open\n  // and close as you scroll to headings within them.\n  collapseDepth: 0,\n  // Smooth scrolling enabled.\n  scrollSmooth: true,\n  // Smooth scroll duration.\n  scrollSmoothDuration: 420,\n  // Smooth scroll offset.\n  scrollSmoothOffset: 0,\n  // Callback for scroll end.\n  scrollEndCallback: function scrollEndCallback(e) {},\n  // Headings offset between the headings and the top of the document (this is meant for minor adjustments).\n  headingsOffset: 1,\n  // Timeout between events firing to make sure it's\n  // not too rapid (for performance reasons).\n  throttleTimeout: 50,\n  // Element to add the positionFixedClass to.\n  positionFixedSelector: null,\n  // Fixed position class to add to make sidebar fixed after scrolling\n  // down past the fixedSidebarOffset.\n  positionFixedClass: 'is-position-fixed',\n  // fixedSidebarOffset can be any number but by default is set\n  // to auto which sets the fixedSidebarOffset to the sidebar\n  // element's offsetTop from the top of the document on init.\n  fixedSidebarOffset: 'auto',\n  // includeHtml can be set to true to include the HTML markup from the\n  // heading node instead of just including the textContent.\n  includeHtml: false,\n  // includeTitleTags automatically sets the html title tag of the link\n  // to match the title. This can be useful for SEO purposes or\n  // when truncating titles.\n  includeTitleTags: false,\n  // onclick function to apply to all links in toc. will be called with\n  // the event as the first parameter, and this can be used to stop,\n  // propagation, prevent default or perform action\n  onClick: function onClick(e) {},\n  // orderedList can be set to false to generate unordered lists (ul)\n  // instead of ordered lists (ol)\n  orderedList: true,\n  // If there is a fixed article scroll container, set to calculate titles' offset\n  scrollContainer: null,\n  // prevent ToC DOM rendering if it's already rendered by an external system\n  skipRendering: false,\n  // Optional callback to change heading labels.\n  // For example it can be used to cut down and put ellipses on multiline headings you deem too long.\n  // Called each time a heading is parsed. Expects a string and returns the modified label to display.\n  // Additionally, the attribute `data-heading-label` may be used on a heading to specify\n  // a shorter string to be used in the TOC.\n  // function (string) => string\n  headingLabelCallback: false,\n  // ignore headings that are hidden in DOM\n  ignoreHiddenElements: false,\n  // Optional callback to modify properties of parsed headings.\n  // The heading element is passed in node parameter and information parsed by default parser is provided in obj parameter.\n  // Function has to return the same or modified obj.\n  // The heading will be excluded from TOC if nothing is returned.\n  // function (object, HTMLElement) => object | void\n  headingObjectCallback: null,\n  // Set the base path, useful if you use a `base` tag in `head`.\n  basePath: '',\n  // Only takes affect when `tocSelector` is scrolling,\n  // keep the toc scroll position in sync with the content.\n  disableTocScrollSync: false\n};","/* eslint no-var: off */\n/**\n * Tocbot\n * Tocbot creates a toble of contents based on HTML headings on a page,\n * this allows users to easily jump to different sections of the document.\n * Tocbot was inspired by tocify (http://gregfranko.com/jquery.tocify.js/).\n * The main differences are that it works natively without any need for jquery or jquery UI).\n *\n * @author Tim Scanlin\n */\n\n/* globals define */\n\n(function (root, factory) {\n  if (typeof define === 'function' && define.amd) {\n    define([], factory(root));\n  } else if (typeof exports === 'object') {\n    module.exports = factory(root);\n  } else {\n    root.tocbot = factory(root);\n  }\n})(typeof global !== 'undefined' ? global : this.window || this.global, function (root) {\n  'use strict';\n\n  // Default options.\n  var defaultOptions = require('./default-options.js');\n  // Object to store current options.\n  var options = {};\n  // Object for public APIs.\n  var tocbot = {};\n  var BuildHtml = require('./build-html.js');\n  var ParseContent = require('./parse-content.js');\n  var updateTocScroll = require('./update-toc-scroll.js');\n  // Keep these variables at top scope once options are passed in.\n  var buildHtml;\n  var parseContent;\n\n  // Just return if its not a browser.\n  var supports = !!root && !!root.document && !!root.document.querySelector && !!root.addEventListener; // Feature test\n  if (typeof window === 'undefined' && !supports) {\n    return;\n  }\n  var headingsArray;\n\n  // From: https://github.com/Raynos/xtend\n  var hasOwnProperty = Object.prototype.hasOwnProperty;\n  function extend() {\n    var target = {};\n    for (var i = 0; i < arguments.length; i++) {\n      var source = arguments[i];\n      for (var key in source) {\n        if (hasOwnProperty.call(source, key)) {\n          target[key] = source[key];\n        }\n      }\n    }\n    return target;\n  }\n\n  // From: https://remysharp.com/2010/07/21/throttling-function-calls\n  function throttle(fn, threshhold, scope) {\n    threshhold || (threshhold = 250);\n    var last;\n    var deferTimer;\n    return function () {\n      var context = scope || this;\n      var now = +new Date();\n      var args = arguments;\n      if (last && now < last + threshhold) {\n        // hold on to it\n        clearTimeout(deferTimer);\n        deferTimer = setTimeout(function () {\n          last = now;\n          fn.apply(context, args);\n        }, threshhold);\n      } else {\n        last = now;\n        fn.apply(context, args);\n      }\n    };\n  }\n  function getContentElement(options) {\n    try {\n      return options.contentElement || document.querySelector(options.contentSelector);\n    } catch (e) {\n      console.warn('Contents element not found: ' + options.contentSelector); // eslint-disable-line\n      return null;\n    }\n  }\n  function getTocElement(options) {\n    try {\n      return options.tocElement || document.querySelector(options.tocSelector);\n    } catch (e) {\n      console.warn('TOC element not found: ' + options.tocSelector); // eslint-disable-line\n      return null;\n    }\n  }\n\n  /**\n   * Destroy tocbot.\n   */\n  tocbot.destroy = function () {\n    var tocElement = getTocElement(options);\n    if (tocElement === null) {\n      return;\n    }\n    if (!options.skipRendering) {\n      // Clear HTML.\n      if (tocElement) {\n        tocElement.innerHTML = '';\n      }\n    }\n\n    // Remove event listeners.\n    if (options.scrollContainer && document.querySelector(options.scrollContainer)) {\n      document.querySelector(options.scrollContainer).removeEventListener('scroll', this._scrollListener, false);\n      document.querySelector(options.scrollContainer).removeEventListener('resize', this._scrollListener, false);\n      if (buildHtml) {\n        document.querySelector(options.scrollContainer).removeEventListener('click', this._clickListener, false);\n      }\n    } else {\n      document.removeEventListener('scroll', this._scrollListener, false);\n      document.removeEventListener('resize', this._scrollListener, false);\n      if (buildHtml) {\n        document.removeEventListener('click', this._clickListener, false);\n      }\n    }\n  };\n\n  /**\n   * Initialize tocbot.\n   * @param {object} customOptions\n   */\n  tocbot.init = function (customOptions) {\n    // feature test\n    if (!supports) {\n      return;\n    }\n\n    // Merge defaults with user options.\n    // Set to options variable at the top.\n    options = extend(defaultOptions, customOptions || {});\n    this.options = options;\n    this.state = {};\n\n    // Init smooth scroll if enabled (default).\n    if (options.scrollSmooth) {\n      options.duration = options.scrollSmoothDuration;\n      options.offset = options.scrollSmoothOffset;\n      tocbot.scrollSmooth = require('./scroll-smooth').initSmoothScrolling(options);\n    }\n\n    // Pass options to these modules.\n    buildHtml = BuildHtml(options);\n    parseContent = ParseContent(options);\n\n    // For testing purposes.\n    this._buildHtml = buildHtml;\n    this._parseContent = parseContent;\n    this._headingsArray = headingsArray;\n\n    // Destroy it if it exists first.\n    tocbot.destroy();\n    var contentElement = getContentElement(options);\n    if (contentElement === null) {\n      return;\n    }\n    var tocElement = getTocElement(options);\n    if (tocElement === null) {\n      return;\n    }\n\n    // Get headings array.\n    headingsArray = parseContent.selectHeadings(contentElement, options.headingSelector);\n    // Return if no headings are found.\n    if (headingsArray === null) {\n      return;\n    }\n\n    // Build nested headings array.\n    var nestedHeadingsObj = parseContent.nestHeadingsArray(headingsArray);\n    var nestedHeadings = nestedHeadingsObj.nest;\n\n    // Render.\n    if (!options.skipRendering) {\n      buildHtml.render(tocElement, nestedHeadings);\n    }\n\n    // Update Sidebar and bind listeners.\n    this._scrollListener = throttle(function (e) {\n      buildHtml.updateToc(headingsArray);\n      !options.disableTocScrollSync && updateTocScroll(options);\n      var isTop = e && e.target && e.target.scrollingElement && e.target.scrollingElement.scrollTop === 0;\n      if (e && (e.eventPhase === 0 || e.currentTarget === null) || isTop) {\n        buildHtml.updateToc(headingsArray);\n        if (options.scrollEndCallback) {\n          options.scrollEndCallback(e);\n        }\n      }\n    }, options.throttleTimeout);\n    this._scrollListener();\n    if (options.scrollContainer && document.querySelector(options.scrollContainer)) {\n      document.querySelector(options.scrollContainer).addEventListener('scroll', this._scrollListener, false);\n      document.querySelector(options.scrollContainer).addEventListener('resize', this._scrollListener, false);\n    } else {\n      document.addEventListener('scroll', this._scrollListener, false);\n      document.addEventListener('resize', this._scrollListener, false);\n    }\n\n    // Bind click listeners to disable animation.\n    var timeout = null;\n    this._clickListener = throttle(function (event) {\n      if (options.scrollSmooth) {\n        buildHtml.disableTocAnimation(event);\n      }\n      buildHtml.updateToc(headingsArray);\n      // Timeout to re-enable the animation.\n      timeout && clearTimeout(timeout);\n      timeout = setTimeout(function () {\n        buildHtml.enableTocAnimation();\n      }, options.scrollSmoothDuration);\n    }, options.throttleTimeout);\n    if (options.scrollContainer && document.querySelector(options.scrollContainer)) {\n      document.querySelector(options.scrollContainer).addEventListener('click', this._clickListener, false);\n    } else {\n      document.addEventListener('click', this._clickListener, false);\n    }\n    return this;\n  };\n\n  /**\n   * Refresh tocbot.\n   */\n  tocbot.refresh = function (customOptions) {\n    tocbot.destroy();\n    tocbot.init(customOptions || this.options);\n  };\n\n  // Make tocbot available globally.\n  root.tocbot = tocbot;\n  return tocbot;\n});","/* eslint no-var: off */\n/**\n * This file is responsible for parsing the content from the DOM and making\n * sure data is nested properly.\n *\n * @author Tim Scanlin\n */\n\nmodule.exports = function parseContent(options) {\n  var reduce = [].reduce;\n\n  /**\n   * Get the last item in an array and return a reference to it.\n   * @param {Array} array\n   * @return {Object}\n   */\n  function getLastItem(array) {\n    return array[array.length - 1];\n  }\n\n  /**\n   * Get heading level for a heading dom node.\n   * @param {HTMLElement} heading\n   * @return {Number}\n   */\n  function getHeadingLevel(heading) {\n    return +heading.nodeName.toUpperCase().replace('H', '');\n  }\n\n  /**\n   * Get important properties from a heading element and store in a plain object.\n   * @param {HTMLElement} heading\n   * @return {Object}\n   */\n  function getHeadingObject(heading) {\n    // each node is processed twice by this method because nestHeadingsArray() and addNode() calls it\n    // first time heading is real DOM node element, second time it is obj\n    // that is causing problem so I am processing only original DOM node\n    if (!(heading instanceof window.HTMLElement)) return heading;\n    if (options.ignoreHiddenElements && (!heading.offsetHeight || !heading.offsetParent)) {\n      return null;\n    }\n    var headingLabel = heading.getAttribute('data-heading-label') || (options.headingLabelCallback ? String(options.headingLabelCallback(heading.textContent)) : heading.textContent.trim());\n    var obj = {\n      id: heading.id,\n      children: [],\n      nodeName: heading.nodeName,\n      headingLevel: getHeadingLevel(heading),\n      textContent: headingLabel\n    };\n    if (options.includeHtml) {\n      obj.childNodes = heading.childNodes;\n    }\n    if (options.headingObjectCallback) {\n      return options.headingObjectCallback(obj, heading);\n    }\n    return obj;\n  }\n\n  /**\n   * Add a node to the nested array.\n   * @param {Object} node\n   * @param {Array} nest\n   * @return {Array}\n   */\n  function addNode(node, nest) {\n    var obj = getHeadingObject(node);\n    var level = obj.headingLevel;\n    var array = nest;\n    var lastItem = getLastItem(array);\n    var lastItemLevel = lastItem ? lastItem.headingLevel : 0;\n    var counter = level - lastItemLevel;\n    while (counter > 0) {\n      lastItem = getLastItem(array);\n      // Handle case where there are multiple h5+ in a row.\n      if (lastItem && level === lastItem.headingLevel) {\n        break;\n      } else if (lastItem && lastItem.children !== undefined) {\n        array = lastItem.children;\n      }\n      counter--;\n    }\n    if (level >= options.collapseDepth) {\n      obj.isCollapsed = true;\n    }\n    array.push(obj);\n    return array;\n  }\n\n  /**\n   * Select headings in content area, exclude any selector in options.ignoreSelector\n   * @param {HTMLElement} contentElement\n   * @param {Array} headingSelector\n   * @return {Array}\n   */\n  function selectHeadings(contentElement, headingSelector) {\n    var selectors = headingSelector;\n    if (options.ignoreSelector) {\n      selectors = headingSelector.split(',').map(function mapSelectors(selector) {\n        return selector.trim() + ':not(' + options.ignoreSelector + ')';\n      });\n    }\n    try {\n      return contentElement.querySelectorAll(selectors);\n    } catch (e) {\n      console.warn('Headers not found with selector: ' + selectors); // eslint-disable-line\n      return null;\n    }\n  }\n\n  /**\n   * Nest headings array into nested arrays with 'children' property.\n   * @param {Array} headingsArray\n   * @return {Object}\n   */\n  function nestHeadingsArray(headingsArray) {\n    return reduce.call(headingsArray, function reducer(prev, curr) {\n      var currentHeading = getHeadingObject(curr);\n      if (currentHeading) {\n        addNode(currentHeading, prev.nest);\n      }\n      return prev;\n    }, {\n      nest: []\n    });\n  }\n  return {\n    nestHeadingsArray: nestHeadingsArray,\n    selectHeadings: selectHeadings\n  };\n};","/* eslint no-var: off */\n/* globals location, requestAnimationFrame */\n\nexports.initSmoothScrolling = initSmoothScrolling;\nfunction initSmoothScrolling(options) {\n  // if (isCssSmoothSCrollSupported()) { return }\n\n  var duration = options.duration;\n  var offset = options.offset;\n  var pageUrl = location.hash ? stripHash(location.href) : location.href;\n  delegatedLinkHijacking();\n  function delegatedLinkHijacking() {\n    document.body.addEventListener('click', onClick, false);\n    function onClick(e) {\n      if (!isInPageLink(e.target) || e.target.className.indexOf('no-smooth-scroll') > -1 || e.target.href.charAt(e.target.href.length - 2) === '#' && e.target.href.charAt(e.target.href.length - 1) === '!' || e.target.className.indexOf(options.linkClass) === -1) {\n        return;\n      }\n\n      // Don't prevent default or hash doesn't change.\n      // e.preventDefault()\n\n      jump(e.target.hash, {\n        duration: duration,\n        offset: offset,\n        callback: function callback() {\n          setFocus(e.target.hash);\n        }\n      });\n    }\n  }\n  function isInPageLink(n) {\n    return n.tagName.toLowerCase() === 'a' && (n.hash.length > 0 || n.href.charAt(n.href.length - 1) === '#') && (stripHash(n.href) === pageUrl || stripHash(n.href) + '#' === pageUrl);\n  }\n  function stripHash(url) {\n    return url.slice(0, url.lastIndexOf('#'));\n  }\n\n  // function isCssSmoothSCrollSupported () {\n  //   return 'scrollBehavior' in document.documentElement.style\n  // }\n\n  // Adapted from:\n  // https://www.nczonline.net/blog/2013/01/15/fixing-skip-to-content-links/\n  function setFocus(hash) {\n    var element = document.getElementById(hash.substring(1));\n    if (element) {\n      if (!/^(?:a|select|input|button|textarea)$/i.test(element.tagName)) {\n        element.tabIndex = -1;\n      }\n      element.focus();\n    }\n  }\n}\nfunction jump(target, options) {\n  var start = window.pageYOffset;\n  var opt = {\n    duration: options.duration,\n    offset: options.offset || 0,\n    callback: options.callback,\n    easing: options.easing || easeInOutQuad\n  };\n  // This makes ids that start with a number work: ('[id=\"' + decodeURI(target).split('#').join('') + '\"]')\n  // DecodeURI for nonASCII hashes, they was encoded, but id was not encoded, it lead to not finding the tgt element by id.\n  // And this is for IE: document.body.scrollTop\n  // Handle decoded and non-decoded URIs since sometimes URLs automatically transform them (support for internation chars).\n  var tgt = document.querySelector('[id=\"' + decodeURI(target).split('#').join('') + '\"]') || document.querySelector('[id=\"' + target.split('#').join('') + '\"]');\n  var distance = typeof target === 'string' ? opt.offset + (target ? tgt && tgt.getBoundingClientRect().top || 0 // handle non-existent links better.\n  : -(document.documentElement.scrollTop || document.body.scrollTop)) : target;\n  var duration = typeof opt.duration === 'function' ? opt.duration(distance) : opt.duration;\n  var timeStart;\n  var timeElapsed;\n  requestAnimationFrame(function (time) {\n    timeStart = time;\n    loop(time);\n  });\n  function loop(time) {\n    timeElapsed = time - timeStart;\n    window.scrollTo(0, opt.easing(timeElapsed, start, distance, duration));\n    if (timeElapsed < duration) {\n      requestAnimationFrame(loop);\n    } else {\n      end();\n    }\n  }\n  function end() {\n    window.scrollTo(0, start + distance);\n    if (typeof opt.callback === 'function') {\n      opt.callback();\n    }\n  }\n\n  // Robert Penner's easeInOutQuad - http://robertpenner.com/easing/\n  function easeInOutQuad(t, b, c, d) {\n    t /= d / 2;\n    if (t < 1) return c / 2 * t * t + b;\n    t--;\n    return -c / 2 * (t * (t - 2) - 1) + b;\n  }\n}","/* eslint no-var: off */\n\nmodule.exports = function updateTocScroll(options) {\n  var toc = options.tocElement || document.querySelector(options.tocSelector);\n  if (toc && toc.scrollHeight > toc.clientHeight) {\n    var activeItem = toc.querySelector('.' + options.activeListItemClass);\n    if (activeItem) {\n      toc.scrollTop = activeItem.offsetTop;\n    }\n  }\n};","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport * as React from 'react';\nimport Alert from '.';\nvar ErrorBoundary = /*#__PURE__*/function (_React$Component) {\n  _inherits(ErrorBoundary, _React$Component);\n  var _super = _createSuper(ErrorBoundary);\n  function ErrorBoundary() {\n    var _this;\n    _classCallCheck(this, ErrorBoundary);\n    _this = _super.apply(this, arguments);\n    _this.state = {\n      error: undefined,\n      info: {\n        componentStack: ''\n      }\n    };\n    return _this;\n  }\n  _createClass(ErrorBoundary, [{\n    key: \"componentDidCatch\",\n    value: function componentDidCatch(error, info) {\n      this.setState({\n        error: error,\n        info: info\n      });\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this$props = this.props,\n        message = _this$props.message,\n        description = _this$props.description,\n        children = _this$props.children;\n      var _this$state = this.state,\n        error = _this$state.error,\n        info = _this$state.info;\n      var componentStack = info && info.componentStack ? info.componentStack : null;\n      var errorMessage = typeof message === 'undefined' ? (error || '').toString() : message;\n      var errorDescription = typeof description === 'undefined' ? componentStack : description;\n      if (error) {\n        return /*#__PURE__*/React.createElement(Alert, {\n          type: \"error\",\n          message: errorMessage,\n          description: /*#__PURE__*/React.createElement(\"pre\", null, errorDescription)\n        });\n      }\n      return children;\n    }\n  }]);\n  return ErrorBoundary;\n}(React.Component);\nexport { ErrorBoundary as default };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nvar __rest = this && this.__rest || function (s, e) {\n  var t = {};\n  for (var p in s) {\n    if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n  }\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n  }\n  return t;\n};\nimport * as React from 'react';\nimport CloseOutlined from \"@ant-design/icons/es/icons/CloseOutlined\";\nimport CheckCircleOutlined from \"@ant-design/icons/es/icons/CheckCircleOutlined\";\nimport ExclamationCircleOutlined from \"@ant-design/icons/es/icons/ExclamationCircleOutlined\";\nimport InfoCircleOutlined from \"@ant-design/icons/es/icons/InfoCircleOutlined\";\nimport CloseCircleOutlined from \"@ant-design/icons/es/icons/CloseCircleOutlined\";\nimport CheckCircleFilled from \"@ant-design/icons/es/icons/CheckCircleFilled\";\nimport ExclamationCircleFilled from \"@ant-design/icons/es/icons/ExclamationCircleFilled\";\nimport InfoCircleFilled from \"@ant-design/icons/es/icons/InfoCircleFilled\";\nimport CloseCircleFilled from \"@ant-design/icons/es/icons/CloseCircleFilled\";\nimport CSSMotion from 'rc-motion';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider';\nimport getDataOrAriaProps from '../_util/getDataOrAriaProps';\nimport ErrorBoundary from './ErrorBoundary';\nimport { replaceElement } from '../_util/reactNode';\nvar iconMapFilled = {\n  success: CheckCircleFilled,\n  info: InfoCircleFilled,\n  error: CloseCircleFilled,\n  warning: ExclamationCircleFilled\n};\nvar iconMapOutlined = {\n  success: CheckCircleOutlined,\n  info: InfoCircleOutlined,\n  error: CloseCircleOutlined,\n  warning: ExclamationCircleOutlined\n};\nvar Alert = function Alert(_a) {\n  var _classNames2;\n  var description = _a.description,\n    customizePrefixCls = _a.prefixCls,\n    message = _a.message,\n    banner = _a.banner,\n    _a$className = _a.className,\n    className = _a$className === void 0 ? '' : _a$className,\n    style = _a.style,\n    onMouseEnter = _a.onMouseEnter,\n    onMouseLeave = _a.onMouseLeave,\n    onClick = _a.onClick,\n    afterClose = _a.afterClose,\n    showIcon = _a.showIcon,\n    closable = _a.closable,\n    closeText = _a.closeText,\n    _a$closeIcon = _a.closeIcon,\n    closeIcon = _a$closeIcon === void 0 ? /*#__PURE__*/React.createElement(CloseOutlined, null) : _a$closeIcon,\n    action = _a.action,\n    props = __rest(_a, [\"description\", \"prefixCls\", \"message\", \"banner\", \"className\", \"style\", \"onMouseEnter\", \"onMouseLeave\", \"onClick\", \"afterClose\", \"showIcon\", \"closable\", \"closeText\", \"closeIcon\", \"action\"]);\n  var _React$useState = React.useState(false),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    closed = _React$useState2[0],\n    setClosed = _React$useState2[1];\n  var ref = React.useRef();\n  var _React$useContext = React.useContext(ConfigContext),\n    getPrefixCls = _React$useContext.getPrefixCls,\n    direction = _React$useContext.direction;\n  var prefixCls = getPrefixCls('alert', customizePrefixCls);\n  var handleClose = function handleClose(e) {\n    var _a;\n    setClosed(true);\n    (_a = props.onClose) === null || _a === void 0 ? void 0 : _a.call(props, e);\n  };\n  var getType = function getType() {\n    var type = props.type;\n    if (type !== undefined) {\n      return type;\n    } // banner 模式默认为警告\n\n    return banner ? 'warning' : 'info';\n  }; // closeable when closeText is assigned\n\n  var isClosable = closeText ? true : closable;\n  var type = getType();\n  var renderIconNode = function renderIconNode() {\n    var icon = props.icon; // use outline icon in alert with description\n\n    var iconType = (description ? iconMapOutlined : iconMapFilled)[type] || null;\n    if (icon) {\n      return replaceElement(icon, /*#__PURE__*/React.createElement(\"span\", {\n        className: \"\".concat(prefixCls, \"-icon\")\n      }, icon), function () {\n        return {\n          className: classNames(\"\".concat(prefixCls, \"-icon\"), _defineProperty({}, icon.props.className, icon.props.className))\n        };\n      });\n    }\n    return /*#__PURE__*/React.createElement(iconType, {\n      className: \"\".concat(prefixCls, \"-icon\")\n    });\n  };\n  var renderCloseIcon = function renderCloseIcon() {\n    return isClosable ? /*#__PURE__*/React.createElement(\"button\", {\n      type: \"button\",\n      onClick: handleClose,\n      className: \"\".concat(prefixCls, \"-close-icon\"),\n      tabIndex: 0\n    }, closeText ? /*#__PURE__*/React.createElement(\"span\", {\n      className: \"\".concat(prefixCls, \"-close-text\")\n    }, closeText) : closeIcon) : null;\n  }; // banner 模式默认有 Icon\n\n  var isShowIcon = banner && showIcon === undefined ? true : showIcon;\n  var alertCls = classNames(prefixCls, \"\".concat(prefixCls, \"-\").concat(type), (_classNames2 = {}, _defineProperty(_classNames2, \"\".concat(prefixCls, \"-with-description\"), !!description), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-no-icon\"), !isShowIcon), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-banner\"), !!banner), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _classNames2), className);\n  var dataOrAriaProps = getDataOrAriaProps(props);\n  return /*#__PURE__*/React.createElement(CSSMotion, {\n    visible: !closed,\n    motionName: \"\".concat(prefixCls, \"-motion\"),\n    motionAppear: false,\n    motionEnter: false,\n    onLeaveStart: function onLeaveStart(node) {\n      return {\n        maxHeight: node.offsetHeight\n      };\n    },\n    onLeaveEnd: afterClose\n  }, function (_ref) {\n    var motionClassName = _ref.className,\n      motionStyle = _ref.style;\n    return /*#__PURE__*/React.createElement(\"div\", _extends({\n      ref: ref,\n      \"data-show\": !closed,\n      className: classNames(alertCls, motionClassName),\n      style: _extends(_extends({}, style), motionStyle),\n      onMouseEnter: onMouseEnter,\n      onMouseLeave: onMouseLeave,\n      onClick: onClick,\n      role: \"alert\"\n    }, dataOrAriaProps), isShowIcon ? renderIconNode() : null, /*#__PURE__*/React.createElement(\"div\", {\n      className: \"\".concat(prefixCls, \"-content\")\n    }, message ? /*#__PURE__*/React.createElement(\"div\", {\n      className: \"\".concat(prefixCls, \"-message\")\n    }, message) : null, description ? /*#__PURE__*/React.createElement(\"div\", {\n      className: \"\".concat(prefixCls, \"-description\")\n    }, description) : null), action ? /*#__PURE__*/React.createElement(\"div\", {\n      className: \"\".concat(prefixCls, \"-action\")\n    }, action) : null, renderCloseIcon());\n  });\n};\nAlert.ErrorBoundary = ErrorBoundary;\nexport default Alert;","export default function getDataOrAriaProps(props) {\n  return Object.keys(props).reduce(function (prev, key) {\n    if ((key.startsWith('data-') || key.startsWith('aria-') || key === 'role') && !key.startsWith('data-__')) {\n      prev[key] = props[key];\n    }\n    return prev;\n  }, {});\n}","// This icon file is generated automatically.\nvar WarningOutlined = {\n  \"icon\": {\n    \"tag\": \"svg\",\n    \"attrs\": {\n      \"viewBox\": \"64 64 896 896\",\n      \"focusable\": \"false\"\n    },\n    \"children\": [{\n      \"tag\": \"path\",\n      \"attrs\": {\n        \"d\": \"M464 720a48 48 0 1096 0 48 48 0 10-96 0zm16-304v184c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V416c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8zm475.7 440l-416-720c-6.2-10.7-16.9-16-27.7-16s-21.6 5.3-27.7 16l-416 720C56 877.4 71.4 904 96 904h832c24.6 0 40-26.6 27.7-48zm-783.5-27.9L512 239.9l339.8 588.2H172.2z\"\n      }\n    }]\n  },\n  \"name\": \"warning\",\n  \"theme\": \"outlined\"\n};\nexport default WarningOutlined;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport WarningOutlinedSvg from \"@ant-design/icons-svg/es/asn/WarningOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar WarningOutlined = function WarningOutlined(props, ref) {\n  return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n    ref: ref,\n    icon: WarningOutlinedSvg\n  }));\n};\nWarningOutlined.displayName = 'WarningOutlined';\nexport default /*#__PURE__*/React.forwardRef(WarningOutlined);","import { Alert as AntdAlert } from 'antd';\nimport React, { PropsWithChildren, ReactNode } from 'react';\nimport { InfoCircleOutlined, WarningOutlined } from '@ant-design/icons';\n\ninterface AlertProps {\n  type: 'success' | 'info' | 'warning' | 'error';\n  showIcon?: boolean;\n  style?: React.CSSProperties;\n  className?: string;\n  icon?: React.ReactNode;\n}\n\nconst Alert = (props: PropsWithChildren<AlertProps>): JSX.Element => (\n  <AntdAlert\n    type={props.type}\n    showIcon={props.showIcon}\n    style={props.style}\n    className={props.className}\n    icon={props.icon}\n    message={<span>{props.children}</span>}\n  />\n);\n\ninterface TipOrWarningProps {\n  children: ReactNode;\n}\n\nconst Tip = (props: TipOrWarningProps): JSX.Element => (\n  <Alert type=\"info\" icon={<InfoCircleOutlined />} showIcon>\n    {props.children}\n  </Alert>\n);\nconst Warning = (props: TipOrWarningProps): JSX.Element => (\n  <Alert type=\"warning\" icon={<WarningOutlined />} showIcon>\n    {props.children}\n  </Alert>\n);\n\nexport { Alert, Tip, Warning };\n","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useRef, useState, useEffect } from 'react';\nimport raf from \"rc-util/es/raf\";\nexport default function useRaf(callback) {\n  var rafRef = useRef();\n  var removedRef = useRef(false);\n  function trigger() {\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n    if (!removedRef.current) {\n      raf.cancel(rafRef.current);\n      rafRef.current = raf(function () {\n        callback.apply(void 0, args);\n      });\n    }\n  }\n  useEffect(function () {\n    return function () {\n      removedRef.current = true;\n      raf.cancel(rafRef.current);\n    };\n  }, []);\n  return trigger;\n}\nexport function useRafState(defaultState) {\n  var batchRef = useRef([]);\n  var _useState = useState({}),\n    _useState2 = _slicedToArray(_useState, 2),\n    forceUpdate = _useState2[1];\n  var state = useRef(typeof defaultState === 'function' ? defaultState() : defaultState);\n  var flushUpdate = useRaf(function () {\n    var current = state.current;\n    batchRef.current.forEach(function (callback) {\n      current = callback(current);\n    });\n    batchRef.current = [];\n    state.current = current;\n    forceUpdate({});\n  });\n  function updater(callback) {\n    batchRef.current.push(callback);\n    flushUpdate();\n  }\n  return [state.current, updater];\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport KeyCode from \"rc-util/es/KeyCode\";\nfunction TabNode(_ref, ref) {\n  var _classNames;\n  var prefixCls = _ref.prefixCls,\n    id = _ref.id,\n    active = _ref.active,\n    _ref$tab = _ref.tab,\n    key = _ref$tab.key,\n    tab = _ref$tab.tab,\n    disabled = _ref$tab.disabled,\n    closeIcon = _ref$tab.closeIcon,\n    closable = _ref.closable,\n    renderWrapper = _ref.renderWrapper,\n    removeAriaLabel = _ref.removeAriaLabel,\n    editable = _ref.editable,\n    onClick = _ref.onClick,\n    onRemove = _ref.onRemove,\n    onFocus = _ref.onFocus,\n    style = _ref.style;\n  var tabPrefix = \"\".concat(prefixCls, \"-tab\");\n  React.useEffect(function () {\n    return onRemove;\n  }, []);\n  var removable = editable && closable !== false && !disabled;\n  function onInternalClick(e) {\n    if (disabled) {\n      return;\n    }\n    onClick(e);\n  }\n  function onRemoveTab(event) {\n    event.preventDefault();\n    event.stopPropagation();\n    editable.onEdit('remove', {\n      key: key,\n      event: event\n    });\n  }\n  var node = /*#__PURE__*/React.createElement(\"div\", {\n    key: key,\n    ref: ref,\n    className: classNames(tabPrefix, (_classNames = {}, _defineProperty(_classNames, \"\".concat(tabPrefix, \"-with-remove\"), removable), _defineProperty(_classNames, \"\".concat(tabPrefix, \"-active\"), active), _defineProperty(_classNames, \"\".concat(tabPrefix, \"-disabled\"), disabled), _classNames)),\n    style: style,\n    onClick: onInternalClick\n  }, /*#__PURE__*/React.createElement(\"div\", {\n    role: \"tab\",\n    \"aria-selected\": active,\n    id: id && \"\".concat(id, \"-tab-\").concat(key),\n    className: \"\".concat(tabPrefix, \"-btn\"),\n    \"aria-controls\": id && \"\".concat(id, \"-panel-\").concat(key),\n    \"aria-disabled\": disabled,\n    tabIndex: disabled ? null : 0,\n    onClick: function onClick(e) {\n      e.stopPropagation();\n      onInternalClick(e);\n    },\n    onKeyDown: function onKeyDown(e) {\n      if ([KeyCode.SPACE, KeyCode.ENTER].includes(e.which)) {\n        e.preventDefault();\n        onInternalClick(e);\n      }\n    },\n    onFocus: onFocus\n  }, tab), removable && /*#__PURE__*/React.createElement(\"button\", {\n    type: \"button\",\n    \"aria-label\": removeAriaLabel || 'remove',\n    tabIndex: 0,\n    className: \"\".concat(tabPrefix, \"-remove\"),\n    onClick: function onClick(e) {\n      e.stopPropagation();\n      onRemoveTab(e);\n    }\n  }, closeIcon || editable.removeIcon || '×'));\n  return renderWrapper ? renderWrapper(node) : node;\n}\nexport default /*#__PURE__*/React.forwardRef(TabNode);","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { useMemo } from 'react';\nvar DEFAULT_SIZE = {\n  width: 0,\n  height: 0,\n  left: 0,\n  top: 0\n};\nexport default function useOffsets(tabs, tabSizes, holderScrollWidth) {\n  return useMemo(function () {\n    var _tabs$;\n    var map = new Map();\n    var lastOffset = tabSizes.get((_tabs$ = tabs[0]) === null || _tabs$ === void 0 ? void 0 : _tabs$.key) || DEFAULT_SIZE;\n    var rightOffset = lastOffset.left + lastOffset.width;\n    for (var i = 0; i < tabs.length; i += 1) {\n      var key = tabs[i].key;\n      var data = tabSizes.get(key); // Reuse last one when not exist yet\n\n      if (!data) {\n        var _tabs;\n        data = tabSizes.get((_tabs = tabs[i - 1]) === null || _tabs === void 0 ? void 0 : _tabs.key) || DEFAULT_SIZE;\n      }\n      var entity = map.get(key) || _objectSpread({}, data); // Right\n\n      entity.right = rightOffset - entity.left - entity.width; // Update entity\n\n      map.set(key, entity);\n    }\n    return map;\n  }, [tabs.map(function (tab) {\n    return tab.key;\n  }).join('_'), tabSizes, holderScrollWidth]);\n}","import { useMemo } from 'react';\nvar DEFAULT_SIZE = {\n  width: 0,\n  height: 0,\n  left: 0,\n  top: 0,\n  right: 0\n};\nexport default function useVisibleRange(tabOffsets, containerSize, tabContentNodeSize, addNodeSize, _ref) {\n  var tabs = _ref.tabs,\n    tabPosition = _ref.tabPosition,\n    rtl = _ref.rtl;\n  var unit;\n  var position;\n  var transformSize;\n  if (['top', 'bottom'].includes(tabPosition)) {\n    unit = 'width';\n    position = rtl ? 'right' : 'left';\n    transformSize = Math.abs(containerSize.left);\n  } else {\n    unit = 'height';\n    position = 'top';\n    transformSize = -containerSize.top;\n  }\n  var basicSize = containerSize[unit];\n  var tabContentSize = tabContentNodeSize[unit];\n  var addSize = addNodeSize[unit];\n  var mergedBasicSize = basicSize;\n  if (tabContentSize + addSize > basicSize) {\n    mergedBasicSize = basicSize - addSize;\n  }\n  return useMemo(function () {\n    if (!tabs.length) {\n      return [0, 0];\n    }\n    var len = tabs.length;\n    var endIndex = len;\n    for (var i = 0; i < len; i += 1) {\n      var offset = tabOffsets.get(tabs[i].key) || DEFAULT_SIZE;\n      if (offset[position] + offset[unit] > transformSize + mergedBasicSize) {\n        endIndex = i - 1;\n        break;\n      }\n    }\n    var startIndex = 0;\n    for (var _i = len - 1; _i >= 0; _i -= 1) {\n      var _offset = tabOffsets.get(tabs[_i].key) || DEFAULT_SIZE;\n      if (_offset[position] < transformSize) {\n        startIndex = _i + 1;\n        break;\n      }\n    }\n    return [startIndex, endIndex];\n  }, [tabOffsets, transformSize, mergedBasicSize, tabPosition, tabs.map(function (tab) {\n    return tab.key;\n  }).join('_'), rtl]);\n}","var autoAdjustOverflow = {\n  adjustX: 1,\n  adjustY: 1\n};\nvar targetOffset = [0, 0];\nvar placements = {\n  topLeft: {\n    points: ['bl', 'tl'],\n    overflow: autoAdjustOverflow,\n    offset: [0, -4],\n    targetOffset: targetOffset\n  },\n  topCenter: {\n    points: ['bc', 'tc'],\n    overflow: autoAdjustOverflow,\n    offset: [0, -4],\n    targetOffset: targetOffset\n  },\n  topRight: {\n    points: ['br', 'tr'],\n    overflow: autoAdjustOverflow,\n    offset: [0, -4],\n    targetOffset: targetOffset\n  },\n  bottomLeft: {\n    points: ['tl', 'bl'],\n    overflow: autoAdjustOverflow,\n    offset: [0, 4],\n    targetOffset: targetOffset\n  },\n  bottomCenter: {\n    points: ['tc', 'bc'],\n    overflow: autoAdjustOverflow,\n    offset: [0, 4],\n    targetOffset: targetOffset\n  },\n  bottomRight: {\n    points: ['tr', 'br'],\n    overflow: autoAdjustOverflow,\n    offset: [0, 4],\n    targetOffset: targetOffset\n  }\n};\nexport default placements;","import * as React from 'react';\nimport KeyCode from \"rc-util/es/KeyCode\";\nvar ESC = KeyCode.ESC,\n  TAB = KeyCode.TAB;\nexport default function useAccessibility(_ref) {\n  var visible = _ref.visible,\n    setTriggerVisible = _ref.setTriggerVisible,\n    triggerRef = _ref.triggerRef,\n    menuRef = _ref.menuRef,\n    menuClassName = _ref.menuClassName,\n    onVisibleChange = _ref.onVisibleChange;\n  var handleCloseMenuAndReturnFocus = function handleCloseMenuAndReturnFocus() {\n    if (visible && triggerRef.current) {\n      if (triggerRef.current.triggerRef.current) {\n        triggerRef.current.triggerRef.current.focus();\n      }\n      setTriggerVisible(false);\n      if (typeof onVisibleChange === 'function') {\n        onVisibleChange(false);\n      }\n    }\n  };\n  var handleKeyDown = function handleKeyDown(event) {\n    switch (event.keyCode) {\n      case ESC:\n        handleCloseMenuAndReturnFocus();\n        break;\n      case TAB:\n        handleCloseMenuAndReturnFocus();\n        break;\n    }\n  };\n  var focusOpenedMenu = function focusOpenedMenu() {\n    if (menuRef.current) {\n      var _menuRef$current$clas, _menuRef$current$quer, _menuRef$current;\n      var menuList = ((_menuRef$current$clas = menuRef.current.className) === null || _menuRef$current$clas === void 0 ? void 0 : _menuRef$current$clas.includes(menuClassName)) ? menuRef.current : (_menuRef$current$quer = (_menuRef$current = menuRef.current).querySelector) === null || _menuRef$current$quer === void 0 ? void 0 : _menuRef$current$quer.call(_menuRef$current, menuClassName);\n      if (menuList) {\n        menuList['focus'](); // eslint-disable-line @typescript-eslint/dot-notation\n      }\n    }\n  };\n\n  React.useEffect(function () {\n    if (visible) {\n      setTimeout(function () {\n        focusOpenedMenu();\n        window.addEventListener('keydown', handleKeyDown);\n      }, 100);\n      return function () {\n        window.removeEventListener('keydown', handleKeyDown);\n      };\n    }\n    return function () {\n      return null;\n    };\n  }, [visible]); // eslint-disable-line react-hooks/exhaustive-deps\n\n  var returnFocus = function returnFocus() {\n    if (visible && triggerRef.current) {\n      if (triggerRef.current.triggerRef.current) {\n        setTimeout(function () {\n          var _triggerRef$current, _triggerRef$current$t, _triggerRef$current$t2;\n          (_triggerRef$current = triggerRef.current) === null || _triggerRef$current === void 0 ? void 0 : (_triggerRef$current$t = _triggerRef$current.triggerRef) === null || _triggerRef$current$t === void 0 ? void 0 : (_triggerRef$current$t2 = _triggerRef$current$t.current) === null || _triggerRef$current$t2 === void 0 ? void 0 : _triggerRef$current$t2.focus();\n        }, 100);\n      }\n    }\n  };\n  return {\n    returnFocus: returnFocus\n  };\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"arrow\", \"prefixCls\", \"transitionName\", \"animation\", \"align\", \"placement\", \"placements\", \"getPopupContainer\", \"showAction\", \"hideAction\", \"overlayClassName\", \"overlayStyle\", \"visible\", \"trigger\"];\nimport * as React from 'react';\nimport Trigger from 'rc-trigger';\nimport classNames from 'classnames';\nimport Placements from './placements';\nimport useAccessibility from './hooks/useAccessibility';\nimport { supportRef } from \"rc-util/es/ref\";\nfunction Dropdown(props, ref) {\n  var _props$arrow = props.arrow,\n    arrow = _props$arrow === void 0 ? false : _props$arrow,\n    _props$prefixCls = props.prefixCls,\n    prefixCls = _props$prefixCls === void 0 ? 'rc-dropdown' : _props$prefixCls,\n    transitionName = props.transitionName,\n    animation = props.animation,\n    align = props.align,\n    _props$placement = props.placement,\n    placement = _props$placement === void 0 ? 'bottomLeft' : _props$placement,\n    _props$placements = props.placements,\n    placements = _props$placements === void 0 ? Placements : _props$placements,\n    getPopupContainer = props.getPopupContainer,\n    showAction = props.showAction,\n    hideAction = props.hideAction,\n    overlayClassName = props.overlayClassName,\n    overlayStyle = props.overlayStyle,\n    visible = props.visible,\n    _props$trigger = props.trigger,\n    trigger = _props$trigger === void 0 ? ['hover'] : _props$trigger,\n    otherProps = _objectWithoutProperties(props, _excluded);\n  var _React$useState = React.useState(),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    triggerVisible = _React$useState2[0],\n    setTriggerVisible = _React$useState2[1];\n  var mergedVisible = 'visible' in props ? visible : triggerVisible;\n  var triggerRef = React.useRef(null);\n  React.useImperativeHandle(ref, function () {\n    return triggerRef.current;\n  });\n  var menuRef = React.useRef(null);\n  var menuClassName = \"\".concat(prefixCls, \"-menu\");\n  var _useAccessibility = useAccessibility({\n      visible: mergedVisible,\n      setTriggerVisible: setTriggerVisible,\n      triggerRef: triggerRef,\n      menuRef: menuRef,\n      menuClassName: menuClassName,\n      onVisibleChange: props.onVisibleChange\n    }),\n    returnFocus = _useAccessibility.returnFocus;\n  var getOverlayElement = function getOverlayElement() {\n    var overlay = props.overlay;\n    var overlayElement;\n    if (typeof overlay === 'function') {\n      overlayElement = overlay();\n    } else {\n      overlayElement = overlay;\n    }\n    return overlayElement;\n  };\n  var onClick = function onClick(e) {\n    var onOverlayClick = props.onOverlayClick;\n    var overlayProps = getOverlayElement().props;\n    setTriggerVisible(false);\n    if (onOverlayClick) {\n      onOverlayClick(e);\n    }\n    if (overlayProps.onClick) {\n      overlayProps.onClick(e);\n    }\n    returnFocus();\n  };\n  var onVisibleChange = function onVisibleChange(newVisible) {\n    var onVisibleChangeProp = props.onVisibleChange;\n    setTriggerVisible(newVisible);\n    if (typeof onVisibleChangeProp === 'function') {\n      onVisibleChangeProp(newVisible);\n    }\n  };\n  var getMenuElement = function getMenuElement() {\n    var overlayElement = getOverlayElement();\n    var extraOverlayProps = {\n      prefixCls: menuClassName,\n      onClick: onClick,\n      ref: supportRef(overlayElement) ? menuRef : undefined\n    };\n    if (typeof overlayElement.type === 'string') {\n      delete extraOverlayProps.prefixCls;\n    }\n    return /*#__PURE__*/React.createElement(React.Fragment, null, arrow && /*#__PURE__*/React.createElement(\"div\", {\n      className: \"\".concat(prefixCls, \"-arrow\")\n    }), /*#__PURE__*/React.cloneElement(overlayElement, extraOverlayProps));\n  };\n  var getMenuElementOrLambda = function getMenuElementOrLambda() {\n    var overlay = props.overlay;\n    if (typeof overlay === 'function') {\n      return getMenuElement;\n    }\n    return getMenuElement();\n  };\n  var getMinOverlayWidthMatchTrigger = function getMinOverlayWidthMatchTrigger() {\n    var minOverlayWidthMatchTrigger = props.minOverlayWidthMatchTrigger,\n      alignPoint = props.alignPoint;\n    if ('minOverlayWidthMatchTrigger' in props) {\n      return minOverlayWidthMatchTrigger;\n    }\n    return !alignPoint;\n  };\n  var getOpenClassName = function getOpenClassName() {\n    var openClassName = props.openClassName;\n    if (openClassName !== undefined) {\n      return openClassName;\n    }\n    return \"\".concat(prefixCls, \"-open\");\n  };\n  var renderChildren = function renderChildren() {\n    var children = props.children;\n    var childrenProps = children.props ? children.props : {};\n    var childClassName = classNames(childrenProps.className, getOpenClassName());\n    return mergedVisible && children ? /*#__PURE__*/React.cloneElement(children, {\n      className: childClassName\n    }) : children;\n  };\n  var triggerHideAction = hideAction;\n  if (!triggerHideAction && trigger.indexOf('contextMenu') !== -1) {\n    triggerHideAction = ['click'];\n  }\n  return /*#__PURE__*/React.createElement(Trigger, _objectSpread(_objectSpread({\n    builtinPlacements: placements\n  }, otherProps), {}, {\n    prefixCls: prefixCls,\n    ref: triggerRef,\n    popupClassName: classNames(overlayClassName, _defineProperty({}, \"\".concat(prefixCls, \"-show-arrow\"), arrow)),\n    popupStyle: overlayStyle,\n    action: trigger,\n    showAction: showAction,\n    hideAction: triggerHideAction || [],\n    popupPlacement: placement,\n    popupAlign: align,\n    popupTransitionName: transitionName,\n    popupAnimation: animation,\n    popupVisible: mergedVisible,\n    stretch: getMinOverlayWidthMatchTrigger() ? 'minWidth' : '',\n    popup: getMenuElementOrLambda(),\n    onPopupVisibleChange: onVisibleChange,\n    getPopupContainer: getPopupContainer\n  }), renderChildren());\n}\nexport default /*#__PURE__*/React.forwardRef(Dropdown);","import Dropdown from './Dropdown';\nexport default Dropdown;","import * as React from 'react';\nfunction AddButton(_ref, ref) {\n  var prefixCls = _ref.prefixCls,\n    editable = _ref.editable,\n    locale = _ref.locale,\n    style = _ref.style;\n  if (!editable || editable.showAdd === false) {\n    return null;\n  }\n  return /*#__PURE__*/React.createElement(\"button\", {\n    ref: ref,\n    type: \"button\",\n    className: \"\".concat(prefixCls, \"-nav-add\"),\n    style: style,\n    \"aria-label\": (locale === null || locale === void 0 ? void 0 : locale.addAriaLabel) || 'Add tab',\n    onClick: function onClick(event) {\n      editable.onEdit('add', {\n        event: event\n      });\n    }\n  }, editable.addIcon || '+');\n}\nexport default /*#__PURE__*/React.forwardRef(AddButton);","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { useState, useEffect } from 'react';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport Menu, { MenuItem } from 'rc-menu';\nimport Dropdown from 'rc-dropdown';\nimport AddButton from './AddButton';\nfunction OperationNode(_ref, ref) {\n  var prefixCls = _ref.prefixCls,\n    id = _ref.id,\n    tabs = _ref.tabs,\n    locale = _ref.locale,\n    mobile = _ref.mobile,\n    _ref$moreIcon = _ref.moreIcon,\n    moreIcon = _ref$moreIcon === void 0 ? 'More' : _ref$moreIcon,\n    moreTransitionName = _ref.moreTransitionName,\n    style = _ref.style,\n    className = _ref.className,\n    editable = _ref.editable,\n    tabBarGutter = _ref.tabBarGutter,\n    rtl = _ref.rtl,\n    removeAriaLabel = _ref.removeAriaLabel,\n    onTabClick = _ref.onTabClick;\n\n  // ======================== Dropdown ========================\n  var _useState = useState(false),\n    _useState2 = _slicedToArray(_useState, 2),\n    open = _useState2[0],\n    setOpen = _useState2[1];\n  var _useState3 = useState(null),\n    _useState4 = _slicedToArray(_useState3, 2),\n    selectedKey = _useState4[0],\n    setSelectedKey = _useState4[1];\n  var popupId = \"\".concat(id, \"-more-popup\");\n  var dropdownPrefix = \"\".concat(prefixCls, \"-dropdown\");\n  var selectedItemId = selectedKey !== null ? \"\".concat(popupId, \"-\").concat(selectedKey) : null;\n  var dropdownAriaLabel = locale === null || locale === void 0 ? void 0 : locale.dropdownAriaLabel;\n  function onRemoveTab(event, key) {\n    event.preventDefault();\n    event.stopPropagation();\n    editable.onEdit('remove', {\n      key: key,\n      event: event\n    });\n  }\n  var menu = /*#__PURE__*/React.createElement(Menu, {\n    onClick: function onClick(_ref2) {\n      var key = _ref2.key,\n        domEvent = _ref2.domEvent;\n      onTabClick(key, domEvent);\n      setOpen(false);\n    },\n    id: popupId,\n    tabIndex: -1,\n    role: \"listbox\",\n    \"aria-activedescendant\": selectedItemId,\n    selectedKeys: [selectedKey],\n    \"aria-label\": dropdownAriaLabel !== undefined ? dropdownAriaLabel : 'expanded dropdown'\n  }, tabs.map(function (tab) {\n    var removable = editable && tab.closable !== false && !tab.disabled;\n    return /*#__PURE__*/React.createElement(MenuItem, {\n      key: tab.key,\n      id: \"\".concat(popupId, \"-\").concat(tab.key),\n      role: \"option\",\n      \"aria-controls\": id && \"\".concat(id, \"-panel-\").concat(tab.key),\n      disabled: tab.disabled\n    }, /*#__PURE__*/React.createElement(\"span\", null, tab.tab), removable && /*#__PURE__*/React.createElement(\"button\", {\n      type: \"button\",\n      \"aria-label\": removeAriaLabel || 'remove',\n      tabIndex: 0,\n      className: \"\".concat(dropdownPrefix, \"-menu-item-remove\"),\n      onClick: function onClick(e) {\n        e.stopPropagation();\n        onRemoveTab(e, tab.key);\n      }\n    }, tab.closeIcon || editable.removeIcon || '×'));\n  }));\n  function selectOffset(offset) {\n    var enabledTabs = tabs.filter(function (tab) {\n      return !tab.disabled;\n    });\n    var selectedIndex = enabledTabs.findIndex(function (tab) {\n      return tab.key === selectedKey;\n    }) || 0;\n    var len = enabledTabs.length;\n    for (var i = 0; i < len; i += 1) {\n      selectedIndex = (selectedIndex + offset + len) % len;\n      var tab = enabledTabs[selectedIndex];\n      if (!tab.disabled) {\n        setSelectedKey(tab.key);\n        return;\n      }\n    }\n  }\n  function onKeyDown(e) {\n    var which = e.which;\n    if (!open) {\n      if ([KeyCode.DOWN, KeyCode.SPACE, KeyCode.ENTER].includes(which)) {\n        setOpen(true);\n        e.preventDefault();\n      }\n      return;\n    }\n    switch (which) {\n      case KeyCode.UP:\n        selectOffset(-1);\n        e.preventDefault();\n        break;\n      case KeyCode.DOWN:\n        selectOffset(1);\n        e.preventDefault();\n        break;\n      case KeyCode.ESC:\n        setOpen(false);\n        break;\n      case KeyCode.SPACE:\n      case KeyCode.ENTER:\n        if (selectedKey !== null) onTabClick(selectedKey, e);\n        break;\n    }\n  } // ========================= Effect =========================\n\n  useEffect(function () {\n    // We use query element here to avoid React strict warning\n    var ele = document.getElementById(selectedItemId);\n    if (ele && ele.scrollIntoView) {\n      ele.scrollIntoView(false);\n    }\n  }, [selectedKey]);\n  useEffect(function () {\n    if (!open) {\n      setSelectedKey(null);\n    }\n  }, [open]); // ========================= Render =========================\n\n  var moreStyle = _defineProperty({}, rtl ? 'marginRight' : 'marginLeft', tabBarGutter);\n  if (!tabs.length) {\n    moreStyle.visibility = 'hidden';\n    moreStyle.order = 1;\n  }\n  var overlayClassName = classNames(_defineProperty({}, \"\".concat(dropdownPrefix, \"-rtl\"), rtl));\n  var moreNode = mobile ? null : /*#__PURE__*/React.createElement(Dropdown, {\n    prefixCls: dropdownPrefix,\n    overlay: menu,\n    trigger: ['hover'],\n    visible: open,\n    transitionName: moreTransitionName,\n    onVisibleChange: setOpen,\n    overlayClassName: overlayClassName,\n    mouseEnterDelay: 0.1,\n    mouseLeaveDelay: 0.1\n  }, /*#__PURE__*/React.createElement(\"button\", {\n    type: \"button\",\n    className: \"\".concat(prefixCls, \"-nav-more\"),\n    style: moreStyle,\n    tabIndex: -1,\n    \"aria-hidden\": \"true\",\n    \"aria-haspopup\": \"listbox\",\n    \"aria-controls\": popupId,\n    id: \"\".concat(id, \"-more\"),\n    \"aria-expanded\": open,\n    onKeyDown: onKeyDown\n  }, moreIcon));\n  return /*#__PURE__*/React.createElement(\"div\", {\n    className: classNames(\"\".concat(prefixCls, \"-nav-operations\"), className),\n    style: style,\n    ref: ref\n  }, moreNode, /*#__PURE__*/React.createElement(AddButton, {\n    prefixCls: prefixCls,\n    locale: locale,\n    editable: editable\n  }));\n}\nexport default /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(OperationNode), function (_, next) {\n  return (\n    // https://github.com/ant-design/ant-design/issues/32544\n    // We'd better remove syntactic sugar in `rc-menu` since this has perf issue\n    next.tabMoving\n  );\n});","import { createContext } from 'react';\nexport default /*#__PURE__*/createContext(null);","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { useState, useRef } from 'react';\nvar MIN_SWIPE_DISTANCE = 0.1;\nvar STOP_SWIPE_DISTANCE = 0.01;\nvar REFRESH_INTERVAL = 20;\nvar SPEED_OFF_MULTIPLE = Math.pow(0.995, REFRESH_INTERVAL); // ================================= Hook =================================\n\nexport default function useTouchMove(ref, onOffset) {\n  var _useState = useState(),\n    _useState2 = _slicedToArray(_useState, 2),\n    touchPosition = _useState2[0],\n    setTouchPosition = _useState2[1];\n  var _useState3 = useState(0),\n    _useState4 = _slicedToArray(_useState3, 2),\n    lastTimestamp = _useState4[0],\n    setLastTimestamp = _useState4[1];\n  var _useState5 = useState(0),\n    _useState6 = _slicedToArray(_useState5, 2),\n    lastTimeDiff = _useState6[0],\n    setLastTimeDiff = _useState6[1];\n  var _useState7 = useState(),\n    _useState8 = _slicedToArray(_useState7, 2),\n    lastOffset = _useState8[0],\n    setLastOffset = _useState8[1];\n  var motionRef = useRef(); // ========================= Events =========================\n  // >>> Touch events\n\n  function onTouchStart(e) {\n    var _e$touches$ = e.touches[0],\n      screenX = _e$touches$.screenX,\n      screenY = _e$touches$.screenY;\n    setTouchPosition({\n      x: screenX,\n      y: screenY\n    });\n    window.clearInterval(motionRef.current);\n  }\n  function onTouchMove(e) {\n    if (!touchPosition) return;\n    e.preventDefault();\n    var _e$touches$2 = e.touches[0],\n      screenX = _e$touches$2.screenX,\n      screenY = _e$touches$2.screenY;\n    setTouchPosition({\n      x: screenX,\n      y: screenY\n    });\n    var offsetX = screenX - touchPosition.x;\n    var offsetY = screenY - touchPosition.y;\n    onOffset(offsetX, offsetY);\n    var now = Date.now();\n    setLastTimestamp(now);\n    setLastTimeDiff(now - lastTimestamp);\n    setLastOffset({\n      x: offsetX,\n      y: offsetY\n    });\n  }\n  function onTouchEnd() {\n    if (!touchPosition) return;\n    setTouchPosition(null);\n    setLastOffset(null); // Swipe if needed\n\n    if (lastOffset) {\n      var distanceX = lastOffset.x / lastTimeDiff;\n      var distanceY = lastOffset.y / lastTimeDiff;\n      var absX = Math.abs(distanceX);\n      var absY = Math.abs(distanceY); // Skip swipe if low distance\n\n      if (Math.max(absX, absY) < MIN_SWIPE_DISTANCE) return;\n      var currentX = distanceX;\n      var currentY = distanceY;\n      motionRef.current = window.setInterval(function () {\n        if (Math.abs(currentX) < STOP_SWIPE_DISTANCE && Math.abs(currentY) < STOP_SWIPE_DISTANCE) {\n          window.clearInterval(motionRef.current);\n          return;\n        }\n        currentX *= SPEED_OFF_MULTIPLE;\n        currentY *= SPEED_OFF_MULTIPLE;\n        onOffset(currentX * REFRESH_INTERVAL, currentY * REFRESH_INTERVAL);\n      }, REFRESH_INTERVAL);\n    }\n  } // >>> Wheel event\n\n  var lastWheelDirectionRef = useRef();\n  function onWheel(e) {\n    var deltaX = e.deltaX,\n      deltaY = e.deltaY; // Convert both to x & y since wheel only happened on PC\n\n    var mixed = 0;\n    var absX = Math.abs(deltaX);\n    var absY = Math.abs(deltaY);\n    if (absX === absY) {\n      mixed = lastWheelDirectionRef.current === 'x' ? deltaX : deltaY;\n    } else if (absX > absY) {\n      mixed = deltaX;\n      lastWheelDirectionRef.current = 'x';\n    } else {\n      mixed = deltaY;\n      lastWheelDirectionRef.current = 'y';\n    }\n    if (onOffset(-mixed, -mixed)) {\n      e.preventDefault();\n    }\n  } // ========================= Effect =========================\n\n  var touchEventsRef = useRef(null);\n  touchEventsRef.current = {\n    onTouchStart: onTouchStart,\n    onTouchMove: onTouchMove,\n    onTouchEnd: onTouchEnd,\n    onWheel: onWheel\n  };\n  React.useEffect(function () {\n    function onProxyTouchStart(e) {\n      touchEventsRef.current.onTouchStart(e);\n    }\n    function onProxyTouchMove(e) {\n      touchEventsRef.current.onTouchMove(e);\n    }\n    function onProxyTouchEnd(e) {\n      touchEventsRef.current.onTouchEnd(e);\n    }\n    function onProxyWheel(e) {\n      touchEventsRef.current.onWheel(e);\n    }\n    document.addEventListener('touchmove', onProxyTouchMove, {\n      passive: false\n    });\n    document.addEventListener('touchend', onProxyTouchEnd, {\n      passive: false\n    }); // No need to clean up since element removed\n\n    ref.current.addEventListener('touchstart', onProxyTouchStart, {\n      passive: false\n    });\n    ref.current.addEventListener('wheel', onProxyWheel);\n    return function () {\n      document.removeEventListener('touchmove', onProxyTouchMove);\n      document.removeEventListener('touchend', onProxyTouchEnd);\n    };\n  }, []);\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nexport default function useSyncState(defaultState, onChange) {\n  var stateRef = React.useRef(defaultState);\n  var _React$useState = React.useState({}),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    forceUpdate = _React$useState2[1];\n  function setState(updater) {\n    var newValue = typeof updater === 'function' ? updater(stateRef.current) : updater;\n    if (newValue !== stateRef.current) {\n      onChange(newValue, stateRef.current);\n    }\n    stateRef.current = newValue;\n    forceUpdate({});\n  }\n  return [stateRef.current, setState];\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport * as React from 'react';\nimport { useState, useRef, useEffect } from 'react';\nimport classNames from 'classnames';\nimport raf from \"rc-util/es/raf\";\nimport ResizeObserver from 'rc-resize-observer';\nimport useRaf, { useRafState } from '../hooks/useRaf';\nimport TabNode from './TabNode';\nimport useOffsets from '../hooks/useOffsets';\nimport useVisibleRange from '../hooks/useVisibleRange';\nimport OperationNode from './OperationNode';\nimport TabContext from '../TabContext';\nimport useTouchMove from '../hooks/useTouchMove';\nimport useRefs from '../hooks/useRefs';\nimport AddButton from './AddButton';\nimport useSyncState from '../hooks/useSyncState';\nvar ExtraContent = function ExtraContent(_ref) {\n  var position = _ref.position,\n    prefixCls = _ref.prefixCls,\n    extra = _ref.extra;\n  if (!extra) return null;\n  var content; // Parse extra\n\n  var assertExtra = {};\n  if (extra && _typeof(extra) === 'object' && ! /*#__PURE__*/React.isValidElement(extra)) {\n    assertExtra = extra;\n  } else {\n    assertExtra.right = extra;\n  }\n  if (position === 'right') {\n    content = assertExtra.right;\n  }\n  if (position === 'left') {\n    content = assertExtra.left;\n  }\n  return content ? /*#__PURE__*/React.createElement(\"div\", {\n    className: \"\".concat(prefixCls, \"-extra-content\")\n  }, content) : null;\n};\nfunction TabNavList(props, ref) {\n  var _classNames;\n  var _React$useContext = React.useContext(TabContext),\n    prefixCls = _React$useContext.prefixCls,\n    tabs = _React$useContext.tabs;\n  var className = props.className,\n    style = props.style,\n    id = props.id,\n    animated = props.animated,\n    activeKey = props.activeKey,\n    rtl = props.rtl,\n    extra = props.extra,\n    editable = props.editable,\n    locale = props.locale,\n    tabPosition = props.tabPosition,\n    tabBarGutter = props.tabBarGutter,\n    children = props.children,\n    onTabClick = props.onTabClick,\n    onTabScroll = props.onTabScroll;\n  var tabsWrapperRef = useRef();\n  var tabListRef = useRef();\n  var operationsRef = useRef();\n  var innerAddButtonRef = useRef();\n  var _useRefs = useRefs(),\n    _useRefs2 = _slicedToArray(_useRefs, 2),\n    getBtnRef = _useRefs2[0],\n    removeBtnRef = _useRefs2[1];\n  var tabPositionTopOrBottom = tabPosition === 'top' || tabPosition === 'bottom';\n  var _useSyncState = useSyncState(0, function (next, prev) {\n      if (tabPositionTopOrBottom && onTabScroll) {\n        onTabScroll({\n          direction: next > prev ? 'left' : 'right'\n        });\n      }\n    }),\n    _useSyncState2 = _slicedToArray(_useSyncState, 2),\n    transformLeft = _useSyncState2[0],\n    setTransformLeft = _useSyncState2[1];\n  var _useSyncState3 = useSyncState(0, function (next, prev) {\n      if (!tabPositionTopOrBottom && onTabScroll) {\n        onTabScroll({\n          direction: next > prev ? 'top' : 'bottom'\n        });\n      }\n    }),\n    _useSyncState4 = _slicedToArray(_useSyncState3, 2),\n    transformTop = _useSyncState4[0],\n    setTransformTop = _useSyncState4[1];\n  var _useState = useState(0),\n    _useState2 = _slicedToArray(_useState, 2),\n    wrapperScrollWidth = _useState2[0],\n    setWrapperScrollWidth = _useState2[1];\n  var _useState3 = useState(0),\n    _useState4 = _slicedToArray(_useState3, 2),\n    wrapperScrollHeight = _useState4[0],\n    setWrapperScrollHeight = _useState4[1];\n  var _useState5 = useState(0),\n    _useState6 = _slicedToArray(_useState5, 2),\n    wrapperContentWidth = _useState6[0],\n    setWrapperContentWidth = _useState6[1];\n  var _useState7 = useState(0),\n    _useState8 = _slicedToArray(_useState7, 2),\n    wrapperContentHeight = _useState8[0],\n    setWrapperContentHeight = _useState8[1];\n  var _useState9 = useState(null),\n    _useState10 = _slicedToArray(_useState9, 2),\n    wrapperWidth = _useState10[0],\n    setWrapperWidth = _useState10[1];\n  var _useState11 = useState(null),\n    _useState12 = _slicedToArray(_useState11, 2),\n    wrapperHeight = _useState12[0],\n    setWrapperHeight = _useState12[1];\n  var _useState13 = useState(0),\n    _useState14 = _slicedToArray(_useState13, 2),\n    addWidth = _useState14[0],\n    setAddWidth = _useState14[1];\n  var _useState15 = useState(0),\n    _useState16 = _slicedToArray(_useState15, 2),\n    addHeight = _useState16[0],\n    setAddHeight = _useState16[1];\n  var _useRafState = useRafState(new Map()),\n    _useRafState2 = _slicedToArray(_useRafState, 2),\n    tabSizes = _useRafState2[0],\n    setTabSizes = _useRafState2[1];\n  var tabOffsets = useOffsets(tabs, tabSizes, wrapperScrollWidth); // ========================== Util =========================\n\n  var operationsHiddenClassName = \"\".concat(prefixCls, \"-nav-operations-hidden\");\n  var transformMin = 0;\n  var transformMax = 0;\n  if (!tabPositionTopOrBottom) {\n    transformMin = Math.min(0, wrapperHeight - wrapperScrollHeight);\n    transformMax = 0;\n  } else if (rtl) {\n    transformMin = 0;\n    transformMax = Math.max(0, wrapperScrollWidth - wrapperWidth);\n  } else {\n    transformMin = Math.min(0, wrapperWidth - wrapperScrollWidth);\n    transformMax = 0;\n  }\n  function alignInRange(value) {\n    if (value < transformMin) {\n      return transformMin;\n    }\n    if (value > transformMax) {\n      return transformMax;\n    }\n    return value;\n  } // ========================= Mobile ========================\n\n  var touchMovingRef = useRef();\n  var _useState17 = useState(),\n    _useState18 = _slicedToArray(_useState17, 2),\n    lockAnimation = _useState18[0],\n    setLockAnimation = _useState18[1];\n  function doLockAnimation() {\n    setLockAnimation(Date.now());\n  }\n  function clearTouchMoving() {\n    window.clearTimeout(touchMovingRef.current);\n  }\n  useTouchMove(tabsWrapperRef, function (offsetX, offsetY) {\n    function doMove(setState, offset) {\n      setState(function (value) {\n        var newValue = alignInRange(value + offset);\n        return newValue;\n      });\n    }\n    if (tabPositionTopOrBottom) {\n      // Skip scroll if place is enough\n      if (wrapperWidth >= wrapperScrollWidth) {\n        return false;\n      }\n      doMove(setTransformLeft, offsetX);\n    } else {\n      if (wrapperHeight >= wrapperScrollHeight) {\n        return false;\n      }\n      doMove(setTransformTop, offsetY);\n    }\n    clearTouchMoving();\n    doLockAnimation();\n    return true;\n  });\n  useEffect(function () {\n    clearTouchMoving();\n    if (lockAnimation) {\n      touchMovingRef.current = window.setTimeout(function () {\n        setLockAnimation(0);\n      }, 100);\n    }\n    return clearTouchMoving;\n  }, [lockAnimation]); // ========================= Scroll ========================\n\n  function scrollToTab() {\n    var key = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : activeKey;\n    var tabOffset = tabOffsets.get(key) || {\n      width: 0,\n      height: 0,\n      left: 0,\n      right: 0,\n      top: 0\n    };\n    if (tabPositionTopOrBottom) {\n      // ============ Align with top & bottom ============\n      var newTransform = transformLeft; // RTL\n\n      if (rtl) {\n        if (tabOffset.right < transformLeft) {\n          newTransform = tabOffset.right;\n        } else if (tabOffset.right + tabOffset.width > transformLeft + wrapperWidth) {\n          newTransform = tabOffset.right + tabOffset.width - wrapperWidth;\n        }\n      } // LTR\n      else if (tabOffset.left < -transformLeft) {\n        newTransform = -tabOffset.left;\n      } else if (tabOffset.left + tabOffset.width > -transformLeft + wrapperWidth) {\n        newTransform = -(tabOffset.left + tabOffset.width - wrapperWidth);\n      }\n      setTransformTop(0);\n      setTransformLeft(alignInRange(newTransform));\n    } else {\n      // ============ Align with left & right ============\n      var _newTransform = transformTop;\n      if (tabOffset.top < -transformTop) {\n        _newTransform = -tabOffset.top;\n      } else if (tabOffset.top + tabOffset.height > -transformTop + wrapperHeight) {\n        _newTransform = -(tabOffset.top + tabOffset.height - wrapperHeight);\n      }\n      setTransformLeft(0);\n      setTransformTop(alignInRange(_newTransform));\n    }\n  } // ========================== Tab ==========================\n  // Render tab node & collect tab offset\n\n  var _useVisibleRange = useVisibleRange(tabOffsets, {\n      width: wrapperWidth,\n      height: wrapperHeight,\n      left: transformLeft,\n      top: transformTop\n    }, {\n      width: wrapperContentWidth,\n      height: wrapperContentHeight\n    }, {\n      width: addWidth,\n      height: addHeight\n    }, _objectSpread(_objectSpread({}, props), {}, {\n      tabs: tabs\n    })),\n    _useVisibleRange2 = _slicedToArray(_useVisibleRange, 2),\n    visibleStart = _useVisibleRange2[0],\n    visibleEnd = _useVisibleRange2[1];\n  var tabNodeStyle = {};\n  if (tabPosition === 'top' || tabPosition === 'bottom') {\n    tabNodeStyle[rtl ? 'marginRight' : 'marginLeft'] = tabBarGutter;\n  } else {\n    tabNodeStyle.marginTop = tabBarGutter;\n  }\n  var tabNodes = tabs.map(function (tab, i) {\n    var key = tab.key;\n    return /*#__PURE__*/React.createElement(TabNode, {\n      id: id,\n      prefixCls: prefixCls,\n      key: key,\n      tab: tab\n      /* first node should not have margin left */,\n\n      style: i === 0 ? undefined : tabNodeStyle,\n      closable: tab.closable,\n      editable: editable,\n      active: key === activeKey,\n      renderWrapper: children,\n      removeAriaLabel: locale === null || locale === void 0 ? void 0 : locale.removeAriaLabel,\n      ref: getBtnRef(key),\n      onClick: function onClick(e) {\n        onTabClick(key, e);\n      },\n      onRemove: function onRemove() {\n        removeBtnRef(key);\n      },\n      onFocus: function onFocus() {\n        scrollToTab(key);\n        doLockAnimation();\n        if (!tabsWrapperRef.current) {\n          return;\n        } // Focus element will make scrollLeft change which we should reset back\n\n        if (!rtl) {\n          tabsWrapperRef.current.scrollLeft = 0;\n        }\n        tabsWrapperRef.current.scrollTop = 0;\n      }\n    });\n  });\n  var onListHolderResize = useRaf(function () {\n    var _tabsWrapperRef$curre, _tabsWrapperRef$curre2, _innerAddButtonRef$cu, _innerAddButtonRef$cu2, _operationsRef$curren, _operationsRef$curren2, _tabListRef$current, _tabListRef$current2, _operationsRef$curren3;\n\n    // Update wrapper records\n    var offsetWidth = ((_tabsWrapperRef$curre = tabsWrapperRef.current) === null || _tabsWrapperRef$curre === void 0 ? void 0 : _tabsWrapperRef$curre.offsetWidth) || 0;\n    var offsetHeight = ((_tabsWrapperRef$curre2 = tabsWrapperRef.current) === null || _tabsWrapperRef$curre2 === void 0 ? void 0 : _tabsWrapperRef$curre2.offsetHeight) || 0;\n    var newAddWidth = ((_innerAddButtonRef$cu = innerAddButtonRef.current) === null || _innerAddButtonRef$cu === void 0 ? void 0 : _innerAddButtonRef$cu.offsetWidth) || 0;\n    var newAddHeight = ((_innerAddButtonRef$cu2 = innerAddButtonRef.current) === null || _innerAddButtonRef$cu2 === void 0 ? void 0 : _innerAddButtonRef$cu2.offsetHeight) || 0;\n    var newOperationWidth = ((_operationsRef$curren = operationsRef.current) === null || _operationsRef$curren === void 0 ? void 0 : _operationsRef$curren.offsetWidth) || 0;\n    var newOperationHeight = ((_operationsRef$curren2 = operationsRef.current) === null || _operationsRef$curren2 === void 0 ? void 0 : _operationsRef$curren2.offsetHeight) || 0;\n    setWrapperWidth(offsetWidth);\n    setWrapperHeight(offsetHeight);\n    setAddWidth(newAddWidth);\n    setAddHeight(newAddHeight);\n    var newWrapperScrollWidth = (((_tabListRef$current = tabListRef.current) === null || _tabListRef$current === void 0 ? void 0 : _tabListRef$current.offsetWidth) || 0) - newAddWidth;\n    var newWrapperScrollHeight = (((_tabListRef$current2 = tabListRef.current) === null || _tabListRef$current2 === void 0 ? void 0 : _tabListRef$current2.offsetHeight) || 0) - newAddHeight;\n    setWrapperScrollWidth(newWrapperScrollWidth);\n    setWrapperScrollHeight(newWrapperScrollHeight);\n    var isOperationHidden = (_operationsRef$curren3 = operationsRef.current) === null || _operationsRef$curren3 === void 0 ? void 0 : _operationsRef$curren3.className.includes(operationsHiddenClassName);\n    setWrapperContentWidth(newWrapperScrollWidth - (isOperationHidden ? 0 : newOperationWidth));\n    setWrapperContentHeight(newWrapperScrollHeight - (isOperationHidden ? 0 : newOperationHeight)); // Update buttons records\n\n    setTabSizes(function () {\n      var newSizes = new Map();\n      tabs.forEach(function (_ref2) {\n        var key = _ref2.key;\n        var btnNode = getBtnRef(key).current;\n        if (btnNode) {\n          newSizes.set(key, {\n            width: btnNode.offsetWidth,\n            height: btnNode.offsetHeight,\n            left: btnNode.offsetLeft,\n            top: btnNode.offsetTop\n          });\n        }\n      });\n      return newSizes;\n    });\n  }); // ======================== Dropdown =======================\n\n  var startHiddenTabs = tabs.slice(0, visibleStart);\n  var endHiddenTabs = tabs.slice(visibleEnd + 1);\n  var hiddenTabs = [].concat(_toConsumableArray(startHiddenTabs), _toConsumableArray(endHiddenTabs)); // =================== Link & Operations ===================\n\n  var _useState19 = useState(),\n    _useState20 = _slicedToArray(_useState19, 2),\n    inkStyle = _useState20[0],\n    setInkStyle = _useState20[1];\n  var activeTabOffset = tabOffsets.get(activeKey); // Delay set ink style to avoid remove tab blink\n\n  var inkBarRafRef = useRef();\n  function cleanInkBarRaf() {\n    raf.cancel(inkBarRafRef.current);\n  }\n  useEffect(function () {\n    var newInkStyle = {};\n    if (activeTabOffset) {\n      if (tabPositionTopOrBottom) {\n        if (rtl) {\n          newInkStyle.right = activeTabOffset.right;\n        } else {\n          newInkStyle.left = activeTabOffset.left;\n        }\n        newInkStyle.width = activeTabOffset.width;\n      } else {\n        newInkStyle.top = activeTabOffset.top;\n        newInkStyle.height = activeTabOffset.height;\n      }\n    }\n    cleanInkBarRaf();\n    inkBarRafRef.current = raf(function () {\n      setInkStyle(newInkStyle);\n    });\n    return cleanInkBarRaf;\n  }, [activeTabOffset, tabPositionTopOrBottom, rtl]); // ========================= Effect ========================\n\n  useEffect(function () {\n    scrollToTab();\n  }, [activeKey, activeTabOffset, tabOffsets, tabPositionTopOrBottom]); // Should recalculate when rtl changed\n\n  useEffect(function () {\n    onListHolderResize();\n  }, [rtl, tabBarGutter, activeKey, tabs.map(function (tab) {\n    return tab.key;\n  }).join('_')]); // ========================= Render ========================\n\n  var hasDropdown = !!hiddenTabs.length;\n  var wrapPrefix = \"\".concat(prefixCls, \"-nav-wrap\");\n  var pingLeft;\n  var pingRight;\n  var pingTop;\n  var pingBottom;\n  if (tabPositionTopOrBottom) {\n    if (rtl) {\n      pingRight = transformLeft > 0;\n      pingLeft = transformLeft + wrapperWidth < wrapperScrollWidth;\n    } else {\n      pingLeft = transformLeft < 0;\n      pingRight = -transformLeft + wrapperWidth < wrapperScrollWidth;\n    }\n  } else {\n    pingTop = transformTop < 0;\n    pingBottom = -transformTop + wrapperHeight < wrapperScrollHeight;\n  }\n  return /*#__PURE__*/React.createElement(\"div\", {\n    ref: ref,\n    role: \"tablist\",\n    className: classNames(\"\".concat(prefixCls, \"-nav\"), className),\n    style: style,\n    onKeyDown: function onKeyDown() {\n      // No need animation when use keyboard\n      doLockAnimation();\n    }\n  }, /*#__PURE__*/React.createElement(ExtraContent, {\n    position: \"left\",\n    extra: extra,\n    prefixCls: prefixCls\n  }), /*#__PURE__*/React.createElement(ResizeObserver, {\n    onResize: onListHolderResize\n  }, /*#__PURE__*/React.createElement(\"div\", {\n    className: classNames(wrapPrefix, (_classNames = {}, _defineProperty(_classNames, \"\".concat(wrapPrefix, \"-ping-left\"), pingLeft), _defineProperty(_classNames, \"\".concat(wrapPrefix, \"-ping-right\"), pingRight), _defineProperty(_classNames, \"\".concat(wrapPrefix, \"-ping-top\"), pingTop), _defineProperty(_classNames, \"\".concat(wrapPrefix, \"-ping-bottom\"), pingBottom), _classNames)),\n    ref: tabsWrapperRef\n  }, /*#__PURE__*/React.createElement(ResizeObserver, {\n    onResize: onListHolderResize\n  }, /*#__PURE__*/React.createElement(\"div\", {\n    ref: tabListRef,\n    className: \"\".concat(prefixCls, \"-nav-list\"),\n    style: {\n      transform: \"translate(\".concat(transformLeft, \"px, \").concat(transformTop, \"px)\"),\n      transition: lockAnimation ? 'none' : undefined\n    }\n  }, tabNodes, /*#__PURE__*/React.createElement(AddButton, {\n    ref: innerAddButtonRef,\n    prefixCls: prefixCls,\n    locale: locale,\n    editable: editable,\n    style: _objectSpread(_objectSpread({}, tabNodes.length === 0 ? undefined : tabNodeStyle), {}, {\n      visibility: hasDropdown ? 'hidden' : null\n    })\n  }), /*#__PURE__*/React.createElement(\"div\", {\n    className: classNames(\"\".concat(prefixCls, \"-ink-bar\"), _defineProperty({}, \"\".concat(prefixCls, \"-ink-bar-animated\"), animated.inkBar)),\n    style: inkStyle\n  }))))), /*#__PURE__*/React.createElement(OperationNode, _extends({}, props, {\n    removeAriaLabel: locale === null || locale === void 0 ? void 0 : locale.removeAriaLabel,\n    ref: operationsRef,\n    prefixCls: prefixCls,\n    tabs: hiddenTabs,\n    className: !hasDropdown && operationsHiddenClassName,\n    tabMoving: !!lockAnimation\n  })), /*#__PURE__*/React.createElement(ExtraContent, {\n    position: \"right\",\n    extra: extra,\n    prefixCls: prefixCls\n  }));\n  /* eslint-enable */\n}\n\nexport default /*#__PURE__*/React.forwardRef(TabNavList);","import * as React from 'react';\nimport { useRef } from 'react';\nexport default function useRefs() {\n  var cacheRefs = useRef(new Map());\n  function getRef(key) {\n    if (!cacheRefs.current.has(key)) {\n      cacheRefs.current.set(key, /*#__PURE__*/React.createRef());\n    }\n    return cacheRefs.current.get(key);\n  }\n  function removeRef(key) {\n    cacheRefs.current.delete(key);\n  }\n  return [getRef, removeRef];\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport TabContext from '../TabContext';\nexport default function TabPanelList(_ref) {\n  var id = _ref.id,\n    activeKey = _ref.activeKey,\n    animated = _ref.animated,\n    tabPosition = _ref.tabPosition,\n    rtl = _ref.rtl,\n    destroyInactiveTabPane = _ref.destroyInactiveTabPane;\n  var _React$useContext = React.useContext(TabContext),\n    prefixCls = _React$useContext.prefixCls,\n    tabs = _React$useContext.tabs;\n  var tabPaneAnimated = animated.tabPane;\n  var activeIndex = tabs.findIndex(function (tab) {\n    return tab.key === activeKey;\n  });\n  return /*#__PURE__*/React.createElement(\"div\", {\n    className: classNames(\"\".concat(prefixCls, \"-content-holder\"))\n  }, /*#__PURE__*/React.createElement(\"div\", {\n    className: classNames(\"\".concat(prefixCls, \"-content\"), \"\".concat(prefixCls, \"-content-\").concat(tabPosition), _defineProperty({}, \"\".concat(prefixCls, \"-content-animated\"), tabPaneAnimated)),\n    style: activeIndex && tabPaneAnimated ? _defineProperty({}, rtl ? 'marginRight' : 'marginLeft', \"-\".concat(activeIndex, \"00%\")) : null\n  }, tabs.map(function (tab) {\n    return /*#__PURE__*/React.cloneElement(tab.node, {\n      key: tab.key,\n      prefixCls: prefixCls,\n      tabKey: tab.key,\n      id: id,\n      animated: tabPaneAnimated,\n      active: tab.key === activeKey,\n      destroyInactiveTabPane: destroyInactiveTabPane\n    });\n  })));\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nexport default function TabPane(_ref) {\n  var prefixCls = _ref.prefixCls,\n    forceRender = _ref.forceRender,\n    className = _ref.className,\n    style = _ref.style,\n    id = _ref.id,\n    active = _ref.active,\n    animated = _ref.animated,\n    destroyInactiveTabPane = _ref.destroyInactiveTabPane,\n    tabKey = _ref.tabKey,\n    children = _ref.children;\n  var _React$useState = React.useState(forceRender),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    visited = _React$useState2[0],\n    setVisited = _React$useState2[1];\n  React.useEffect(function () {\n    if (active) {\n      setVisited(true);\n    } else if (destroyInactiveTabPane) {\n      setVisited(false);\n    }\n  }, [active, destroyInactiveTabPane]);\n  var mergedStyle = {};\n  if (!active) {\n    if (animated) {\n      mergedStyle.visibility = 'hidden';\n      mergedStyle.height = 0;\n      mergedStyle.overflowY = 'hidden';\n    } else {\n      mergedStyle.display = 'none';\n    }\n  }\n  return /*#__PURE__*/React.createElement(\"div\", {\n    id: id && \"\".concat(id, \"-panel-\").concat(tabKey),\n    role: \"tabpanel\",\n    tabIndex: active ? 0 : -1,\n    \"aria-labelledby\": id && \"\".concat(id, \"-tab-\").concat(tabKey),\n    \"aria-hidden\": !active,\n    style: _objectSpread(_objectSpread({}, mergedStyle), style),\n    className: classNames(\"\".concat(prefixCls, \"-tabpane\"), active && \"\".concat(prefixCls, \"-tabpane-active\"), className)\n  }, (active || visited || forceRender) && children);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nvar _excluded = [\"id\", \"prefixCls\", \"className\", \"children\", \"direction\", \"activeKey\", \"defaultActiveKey\", \"editable\", \"animated\", \"tabPosition\", \"tabBarGutter\", \"tabBarStyle\", \"tabBarExtraContent\", \"locale\", \"moreIcon\", \"moreTransitionName\", \"destroyInactiveTabPane\", \"renderTabBar\", \"onChange\", \"onTabClick\", \"onTabScroll\"];\n// Accessibility https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/Tab_Role\nimport * as React from 'react';\nimport { useEffect, useState } from 'react';\nimport classNames from 'classnames';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport isMobile from \"rc-util/es/isMobile\";\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport TabNavList from './TabNavList';\nimport TabPanelList from './TabPanelList';\nimport TabPane from './TabPanelList/TabPane';\nimport TabContext from './TabContext';\n/**\n * Should added antd:\n * - type\n *\n * Removed:\n * - onNextClick\n * - onPrevClick\n * - keyboard\n */\n// Used for accessibility\n\nvar uuid = 0;\nfunction parseTabList(children) {\n  return toArray(children).map(function (node) {\n    if ( /*#__PURE__*/React.isValidElement(node)) {\n      var key = node.key !== undefined ? String(node.key) : undefined;\n      return _objectSpread(_objectSpread({\n        key: key\n      }, node.props), {}, {\n        node: node\n      });\n    }\n    return null;\n  }).filter(function (tab) {\n    return tab;\n  });\n}\nfunction Tabs(_ref, ref) {\n  var _classNames;\n  var id = _ref.id,\n    _ref$prefixCls = _ref.prefixCls,\n    prefixCls = _ref$prefixCls === void 0 ? 'rc-tabs' : _ref$prefixCls,\n    className = _ref.className,\n    children = _ref.children,\n    direction = _ref.direction,\n    activeKey = _ref.activeKey,\n    defaultActiveKey = _ref.defaultActiveKey,\n    editable = _ref.editable,\n    _ref$animated = _ref.animated,\n    animated = _ref$animated === void 0 ? {\n      inkBar: true,\n      tabPane: false\n    } : _ref$animated,\n    _ref$tabPosition = _ref.tabPosition,\n    tabPosition = _ref$tabPosition === void 0 ? 'top' : _ref$tabPosition,\n    tabBarGutter = _ref.tabBarGutter,\n    tabBarStyle = _ref.tabBarStyle,\n    tabBarExtraContent = _ref.tabBarExtraContent,\n    locale = _ref.locale,\n    moreIcon = _ref.moreIcon,\n    moreTransitionName = _ref.moreTransitionName,\n    destroyInactiveTabPane = _ref.destroyInactiveTabPane,\n    renderTabBar = _ref.renderTabBar,\n    onChange = _ref.onChange,\n    onTabClick = _ref.onTabClick,\n    onTabScroll = _ref.onTabScroll,\n    restProps = _objectWithoutProperties(_ref, _excluded);\n  var tabs = parseTabList(children);\n  var rtl = direction === 'rtl';\n  var mergedAnimated;\n  if (animated === false) {\n    mergedAnimated = {\n      inkBar: false,\n      tabPane: false\n    };\n  } else if (animated === true) {\n    mergedAnimated = {\n      inkBar: true,\n      tabPane: true\n    };\n  } else {\n    mergedAnimated = _objectSpread({\n      inkBar: true,\n      tabPane: false\n    }, _typeof(animated) === 'object' ? animated : {});\n  } // ======================== Mobile ========================\n\n  var _useState = useState(false),\n    _useState2 = _slicedToArray(_useState, 2),\n    mobile = _useState2[0],\n    setMobile = _useState2[1];\n  useEffect(function () {\n    // Only update on the client side\n    setMobile(isMobile());\n  }, []); // ====================== Active Key ======================\n\n  var _useMergedState = useMergedState(function () {\n      var _tabs$;\n      return (_tabs$ = tabs[0]) === null || _tabs$ === void 0 ? void 0 : _tabs$.key;\n    }, {\n      value: activeKey,\n      defaultValue: defaultActiveKey\n    }),\n    _useMergedState2 = _slicedToArray(_useMergedState, 2),\n    mergedActiveKey = _useMergedState2[0],\n    setMergedActiveKey = _useMergedState2[1];\n  var _useState3 = useState(function () {\n      return tabs.findIndex(function (tab) {\n        return tab.key === mergedActiveKey;\n      });\n    }),\n    _useState4 = _slicedToArray(_useState3, 2),\n    activeIndex = _useState4[0],\n    setActiveIndex = _useState4[1]; // Reset active key if not exist anymore\n\n  useEffect(function () {\n    var newActiveIndex = tabs.findIndex(function (tab) {\n      return tab.key === mergedActiveKey;\n    });\n    if (newActiveIndex === -1) {\n      var _tabs$newActiveIndex;\n      newActiveIndex = Math.max(0, Math.min(activeIndex, tabs.length - 1));\n      setMergedActiveKey((_tabs$newActiveIndex = tabs[newActiveIndex]) === null || _tabs$newActiveIndex === void 0 ? void 0 : _tabs$newActiveIndex.key);\n    }\n    setActiveIndex(newActiveIndex);\n  }, [tabs.map(function (tab) {\n    return tab.key;\n  }).join('_'), mergedActiveKey, activeIndex]); // ===================== Accessibility ====================\n\n  var _useMergedState3 = useMergedState(null, {\n      value: id\n    }),\n    _useMergedState4 = _slicedToArray(_useMergedState3, 2),\n    mergedId = _useMergedState4[0],\n    setMergedId = _useMergedState4[1];\n  var mergedTabPosition = tabPosition;\n  if (mobile && !['left', 'right'].includes(tabPosition)) {\n    mergedTabPosition = 'top';\n  } // Async generate id to avoid ssr mapping failed\n\n  useEffect(function () {\n    if (!id) {\n      setMergedId(\"rc-tabs-\".concat(process.env.NODE_ENV === 'test' ? 'test' : uuid));\n      uuid += 1;\n    }\n  }, []); // ======================== Events ========================\n\n  function onInternalTabClick(key, e) {\n    onTabClick === null || onTabClick === void 0 ? void 0 : onTabClick(key, e);\n    var isActiveChanged = key !== mergedActiveKey;\n    setMergedActiveKey(key);\n    if (isActiveChanged) {\n      onChange === null || onChange === void 0 ? void 0 : onChange(key);\n    }\n  } // ======================== Render ========================\n\n  var sharedProps = {\n    id: mergedId,\n    activeKey: mergedActiveKey,\n    animated: mergedAnimated,\n    tabPosition: mergedTabPosition,\n    rtl: rtl,\n    mobile: mobile\n  };\n  var tabNavBar;\n  var tabNavBarProps = _objectSpread(_objectSpread({}, sharedProps), {}, {\n    editable: editable,\n    locale: locale,\n    moreIcon: moreIcon,\n    moreTransitionName: moreTransitionName,\n    tabBarGutter: tabBarGutter,\n    onTabClick: onInternalTabClick,\n    onTabScroll: onTabScroll,\n    extra: tabBarExtraContent,\n    style: tabBarStyle,\n    panes: children\n  });\n  if (renderTabBar) {\n    tabNavBar = renderTabBar(tabNavBarProps, TabNavList);\n  } else {\n    tabNavBar = /*#__PURE__*/React.createElement(TabNavList, tabNavBarProps);\n  }\n  return /*#__PURE__*/React.createElement(TabContext.Provider, {\n    value: {\n      tabs: tabs,\n      prefixCls: prefixCls\n    }\n  }, /*#__PURE__*/React.createElement(\"div\", _extends({\n    ref: ref,\n    id: id,\n    className: classNames(prefixCls, \"\".concat(prefixCls, \"-\").concat(mergedTabPosition), (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-mobile\"), mobile), _defineProperty(_classNames, \"\".concat(prefixCls, \"-editable\"), editable), _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), rtl), _classNames), className)\n  }, restProps), tabNavBar, /*#__PURE__*/React.createElement(TabPanelList, _extends({\n    destroyInactiveTabPane: destroyInactiveTabPane\n  }, sharedProps, {\n    animated: mergedAnimated\n  }))));\n}\nvar ForwardTabs = /*#__PURE__*/React.forwardRef(Tabs);\nForwardTabs.TabPane = TabPane;\nexport default ForwardTabs;","import Tabs from './Tabs';\nimport TabPane from './TabPanelList/TabPane';\nexport { TabPane };\nexport default Tabs;","// This icon file is generated automatically.\nvar PlusOutlined = {\n  \"icon\": {\n    \"tag\": \"svg\",\n    \"attrs\": {\n      \"viewBox\": \"64 64 896 896\",\n      \"focusable\": \"false\"\n    },\n    \"children\": [{\n      \"tag\": \"defs\",\n      \"attrs\": {},\n      \"children\": [{\n        \"tag\": \"style\",\n        \"attrs\": {}\n      }]\n    }, {\n      \"tag\": \"path\",\n      \"attrs\": {\n        \"d\": \"M482 152h60q8 0 8 8v704q0 8-8 8h-60q-8 0-8-8V160q0-8 8-8z\"\n      }\n    }, {\n      \"tag\": \"path\",\n      \"attrs\": {\n        \"d\": \"M176 474h672q8 0 8 8v60q0 8-8 8H176q-8 0-8-8v-60q0-8 8-8z\"\n      }\n    }]\n  },\n  \"name\": \"plus\",\n  \"theme\": \"outlined\"\n};\nexport default PlusOutlined;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport PlusOutlinedSvg from \"@ant-design/icons-svg/es/asn/PlusOutlined\";\nimport AntdIcon from '../components/AntdIcon';\nvar PlusOutlined = function PlusOutlined(props, ref) {\n  return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n    ref: ref,\n    icon: PlusOutlinedSvg\n  }));\n};\nPlusOutlined.displayName = 'PlusOutlined';\nexport default /*#__PURE__*/React.forwardRef(PlusOutlined);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar __rest = this && this.__rest || function (s, e) {\n  var t = {};\n  for (var p in s) {\n    if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n  }\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n  }\n  return t;\n};\nimport * as React from 'react';\nimport RcTabs, { TabPane } from 'rc-tabs';\nimport classNames from 'classnames';\nimport EllipsisOutlined from \"@ant-design/icons/es/icons/EllipsisOutlined\";\nimport PlusOutlined from \"@ant-design/icons/es/icons/PlusOutlined\";\nimport CloseOutlined from \"@ant-design/icons/es/icons/CloseOutlined\";\nimport devWarning from '../_util/devWarning';\nimport { ConfigContext } from '../config-provider';\nimport SizeContext from '../config-provider/SizeContext';\nfunction Tabs(_a) {\n  var type = _a.type,\n    className = _a.className,\n    propSize = _a.size,\n    _onEdit = _a.onEdit,\n    hideAdd = _a.hideAdd,\n    centered = _a.centered,\n    addIcon = _a.addIcon,\n    props = __rest(_a, [\"type\", \"className\", \"size\", \"onEdit\", \"hideAdd\", \"centered\", \"addIcon\"]);\n  var customizePrefixCls = props.prefixCls,\n    _props$moreIcon = props.moreIcon,\n    moreIcon = _props$moreIcon === void 0 ? /*#__PURE__*/React.createElement(EllipsisOutlined, null) : _props$moreIcon;\n  var _React$useContext = React.useContext(ConfigContext),\n    getPrefixCls = _React$useContext.getPrefixCls,\n    direction = _React$useContext.direction;\n  var prefixCls = getPrefixCls('tabs', customizePrefixCls);\n  var editable;\n  if (type === 'editable-card') {\n    editable = {\n      onEdit: function onEdit(editType, _ref) {\n        var key = _ref.key,\n          event = _ref.event;\n        _onEdit === null || _onEdit === void 0 ? void 0 : _onEdit(editType === 'add' ? event : key, editType);\n      },\n      removeIcon: /*#__PURE__*/React.createElement(CloseOutlined, null),\n      addIcon: addIcon || /*#__PURE__*/React.createElement(PlusOutlined, null),\n      showAdd: hideAdd !== true\n    };\n  }\n  var rootPrefixCls = getPrefixCls();\n  devWarning(!('onPrevClick' in props) && !('onNextClick' in props), 'Tabs', '`onPrevClick` and `onNextClick` has been removed. Please use `onTabScroll` instead.');\n  return /*#__PURE__*/React.createElement(SizeContext.Consumer, null, function (contextSize) {\n    var _classNames;\n    var size = propSize !== undefined ? propSize : contextSize;\n    return /*#__PURE__*/React.createElement(RcTabs, _extends({\n      direction: direction,\n      moreTransitionName: \"\".concat(rootPrefixCls, \"-slide-up\")\n    }, props, {\n      className: classNames((_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-\").concat(size), size), _defineProperty(_classNames, \"\".concat(prefixCls, \"-card\"), ['card', 'editable-card'].includes(type)), _defineProperty(_classNames, \"\".concat(prefixCls, \"-editable-card\"), type === 'editable-card'), _defineProperty(_classNames, \"\".concat(prefixCls, \"-centered\"), centered), _classNames), className),\n      editable: editable,\n      moreIcon: moreIcon,\n      prefixCls: prefixCls\n    }));\n  });\n}\nTabs.TabPane = TabPane;\nexport default Tabs;","import { OutboundLink } from 'gatsby-plugin-google-analytics';\nimport React from 'react';\n\nimport * as styles from './api-link.module.less';\n\ninterface TypeLinkProps {\n  name: string;\n  href?: string;\n  plural?: boolean;\n}\n\nconst TypeLink: React.FC<TypeLinkProps> = (props) => {\n  // Decode escaped strings such as <init> that represents a constructor.\n  let simpleName = decodeURIComponent(props.name);\n  const lastDotIdx = simpleName.lastIndexOf('.');\n  if (lastDotIdx >= 0) {\n    simpleName = simpleName.substring(lastDotIdx + 1);\n  }\n\n  let showParams = false;\n  let href = props.href;\n  if (href) {\n    const optionIndex = href.lastIndexOf('?');\n    if (optionIndex > 0) {\n      showParams = href.substring(optionIndex + 1) === 'full';\n      href = href.substring(0, optionIndex);\n    }\n  }\n\n  let suffix = '';\n  if (props.plural) {\n    if (simpleName.match(/(ch|s|sh|x|z)$/)) {\n      suffix = 'es';\n    } else {\n      suffix = 's';\n    }\n  }\n\n  let title = '';\n  if (simpleName.indexOf('#') > 0) {\n    const replaced = simpleName.replace('#', '.');\n    title = replaced;\n    if (showParams) {\n      simpleName = replaced;\n    } else {\n      simpleName = replaced.replace(/ *\\([^)]*\\)*/, '()');\n    }\n  } else {\n    title = simpleName;\n  }\n\n  const simpleTypeNameWithHref = href ? (\n    <OutboundLink href={href} title={title}>\n      {simpleName}\n    </OutboundLink>\n  ) : (\n    simpleName\n  );\n\n  return (\n    <code>\n      {simpleTypeNameWithHref}\n      <span className={styles.typeLinkSuffix}>{suffix}</span>\n    </code>\n  );\n};\n\nexport { TypeLink };\n","// extracted by mini-css-extract-plugin\nexport var antSteps = \"api-link-module--ant-steps--yihcP\";\nexport var antStepsDot = \"api-link-module--ant-steps-dot--AyopF\";\nexport var antStepsHorizontal = \"api-link-module--ant-steps-horizontal--nCjvD\";\nexport var antStepsItemDescription = \"api-link-module--ant-steps-item-description--8Qvtj\";\nexport var antStepsItemIcon = \"api-link-module--ant-steps-item-icon--2OG17\";\nexport var antStepsItemTitle = \"api-link-module--ant-steps-item-title--ufia3\";\nexport var antStepsSmall = \"api-link-module--ant-steps-small--CTbPQ\";\nexport var antTypography = \"api-link-module--ant-typography--5fRhy\";\nexport var hideOnReducedMotion = \"api-link-module--hideOnReducedMotion--Xfmpn\";\nexport var noBullet = \"api-link-module--noBullet--76dY9\";\nexport var showOnReducedMotion = \"api-link-module--showOnReducedMotion--Wra6x\";\nexport var tweetBox = \"api-link-module--tweet-box--RMUtb\";\nexport var typeLinkSuffix = \"api-link-module--type-link-suffix--g5Weu\";","import React from 'react';\nimport * as styles from './aspect-ratio.module.less';\n\ninterface AspectRatioProps {\n  width: number;\n  height: number;\n  maxWidth: number | string;\n  children: React.ReactNode;\n}\n\nconst AspectRatio: React.FC<AspectRatioProps> = (props) => (\n  <div\n    className={styles.wrapper}\n    style={{\n      maxWidth:\n        typeof props.maxWidth === 'number'\n          ? `${props.maxWidth}px`\n          : props.maxWidth,\n      // @ts-ignore\n      '--aspect-ratio': `(${props.width}/${props.height})`,\n    }}\n  >\n    {props.children}\n  </div>\n);\n\nexport default AspectRatio;\n","// extracted by mini-css-extract-plugin\nexport var antSteps = \"aspect-ratio-module--ant-steps--Ixdaz\";\nexport var antStepsDot = \"aspect-ratio-module--ant-steps-dot--wIPQY\";\nexport var antStepsHorizontal = \"aspect-ratio-module--ant-steps-horizontal--kJECu\";\nexport var antStepsItemDescription = \"aspect-ratio-module--ant-steps-item-description--QhXkp\";\nexport var antStepsItemIcon = \"aspect-ratio-module--ant-steps-item-icon--Bu65j\";\nexport var antStepsItemTitle = \"aspect-ratio-module--ant-steps-item-title--S5ITS\";\nexport var antStepsSmall = \"aspect-ratio-module--ant-steps-small--tzZ9w\";\nexport var antTypography = \"aspect-ratio-module--ant-typography--MS5St\";\nexport var hideOnReducedMotion = \"aspect-ratio-module--hideOnReducedMotion--0mtmk\";\nexport var noBullet = \"aspect-ratio-module--noBullet--hA9rY\";\nexport var showOnReducedMotion = \"aspect-ratio-module--showOnReducedMotion--hTJL9\";\nexport var tweetBox = \"aspect-ratio-module--tweet-box--+k2ah\";\nexport var wrapper = \"aspect-ratio-module--wrapper--kXJ36\";","import React from 'react';\n\ninterface MaxWidthProps {\n  value: number | string;\n}\n\nconst MaxWidth: React.FC<MaxWidthProps> = (props) => (\n  <div\n    style={{\n      maxWidth:\n        typeof props.value === 'number' ? `${props.value}px` : props.value,\n      marginLeft: 'auto',\n      marginRight: 'auto',\n    }}\n  >\n    {props.children}\n  </div>\n);\n\nexport default MaxWidth;\n","import React from 'react';\nimport { Tabs as AntdTabs } from 'antd';\nimport CodeBlock from './code-block';\nimport versionsJson from '../../gen-src/versions.json';\n\nconst versions: any = versionsJson;\n\ninterface Dependency {\n  groupId: string;\n  artifactId: string;\n  version?: string;\n}\n\ninterface RequiredDependenciesProps {\n  /* eslint-disable react/no-unused-prop-types */\n  boms?: Dependency[];\n  dependencies: Dependency[];\n  /* eslint-enable react/no-unused-prop-types */\n}\n\nfunction gradleBom(boms: Dependency[]) {\n  return `${boms\n    .map((bom) => {\n      const key = `${bom.groupId}:${bom.artifactId}`;\n      let version;\n      if (bom.version != null) {\n        version = bom.version;\n      } else {\n        version = versions[key];\n      }\n      return `    implementation platform('${key}:${version}')`;\n    })\n    .join('\\n')}\\n\\n`;\n}\n\nfunction gradleDependency(props: RequiredDependenciesProps) {\n  const statements: string = props.dependencies\n    .map(\n      (dependency) =>\n        `    implementation '${dependency.groupId}:${dependency.artifactId}'`,\n    )\n    .join('\\n');\n  return `\ndependencies {\n${props.boms == null ? '' : gradleBom(props.boms)}    ...\n${statements}\n}\n`;\n}\n\nfunction gradleKotlinBom(boms: Dependency[]) {\n  return `${boms\n    .map((bom) => {\n      const key = `${bom.groupId}:${bom.artifactId}`;\n      let version;\n      if (bom.version != null) {\n        version = bom.version;\n      } else {\n        version = versions[key];\n      }\n      return `    implementation(platform(\"${key}:${version}\"))`;\n    })\n    .join('\\n')}\\n\\n`;\n}\n\nfunction gradleKotlinDependency(props: RequiredDependenciesProps) {\n  const statements: string = props.dependencies\n    .map(\n      (dependency) =>\n        `    implementation(\"${dependency.groupId}:${dependency.artifactId}\")`,\n    )\n    .join('\\n');\n  return `\ndependencies {\n${props.boms == null ? '' : gradleKotlinBom(props.boms)}    ...\n${statements}\n}\n`;\n}\n\nfunction mavenBom(boms: Dependency[]) {\n  return `<dependencyManagement>\n  <dependencies>\n${boms\n  .map((bom) => {\n    let version;\n    if (bom.version != null) {\n      version = bom.version;\n    } else {\n      const key = `${bom.groupId}:${bom.artifactId}`;\n      version = versions[key];\n    }\n    return `    <dependency>\n      <groupId>${bom.groupId}</groupId>\n      <artifactId>${bom.artifactId}</artifactId>\n      <version>${version}</version>\n      <type>pom</type>\n      <scope>import</scope>\n    </dependency>`;\n  })\n  .join('\\n')}\n  </dependencies>\n</dependencyManagement>\\n`;\n}\n\nfunction mavenDependency(props: RequiredDependenciesProps) {\n  const statements: string = props.dependencies\n    .map((dependency) => {\n      return `  <dependency>\n    <groupId>${dependency.groupId}</groupId>\n    <artifactId>${dependency.artifactId}</artifactId>\n  </dependency>`;\n    })\n    .join('\\n');\n\n  return `${props.boms == null ? '' : mavenBom(props.boms)}\n<dependencies>\n  ...\n${statements}\n</<dependencies>\n`;\n}\n\nconst RequiredDependencies: React.FC<RequiredDependenciesProps> = (props) => {\n  return (\n    <AntdTabs>\n      <AntdTabs.TabPane tab=\"Gradle\" key=\"gradle\">\n        <CodeBlock language=\"groovy\" filename=\"build.gradle\">\n          {gradleDependency(props)}\n        </CodeBlock>\n      </AntdTabs.TabPane>\n      <AntdTabs.TabPane tab=\"Gradle (Kotlin)\" key=\"gradle_kotlin\">\n        <CodeBlock language=\"kotlin\" filename=\"build.gradle.kts\">\n          {gradleKotlinDependency(props)}\n        </CodeBlock>\n      </AntdTabs.TabPane>\n      <AntdTabs.TabPane tab=\"Maven\" key=\"maven\">\n        <CodeBlock language=\"xml\" filename=\"pom.xml\">\n          {mavenDependency(props)}\n        </CodeBlock>\n      </AntdTabs.TabPane>\n    </AntdTabs>\n  );\n};\n\nexport default RequiredDependencies;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nvar _excluded = [\"className\", \"prefixCls\", \"style\", \"active\", \"status\", \"iconPrefix\", \"icon\", \"wrapperStyle\", \"stepNumber\", \"disabled\", \"description\", \"title\", \"subTitle\", \"progressDot\", \"stepIcon\", \"tailContent\", \"icons\", \"stepIndex\", \"onStepClick\", \"onClick\"];\n\n/* eslint react/prop-types: 0 */\nimport * as React from 'react';\nimport classNames from 'classnames';\nfunction isString(str) {\n  return typeof str === 'string';\n}\nvar Step = /*#__PURE__*/function (_React$Component) {\n  _inherits(Step, _React$Component);\n  var _super = _createSuper(Step);\n  function Step() {\n    var _this;\n    _classCallCheck(this, Step);\n    _this = _super.apply(this, arguments);\n    _this.onClick = function () {\n      var _this$props = _this.props,\n        onClick = _this$props.onClick,\n        onStepClick = _this$props.onStepClick,\n        stepIndex = _this$props.stepIndex;\n      if (onClick) {\n        onClick.apply(void 0, arguments);\n      }\n      onStepClick(stepIndex);\n    };\n    return _this;\n  }\n  _createClass(Step, [{\n    key: \"renderIconNode\",\n    value: function renderIconNode() {\n      var _classNames;\n      var _this$props2 = this.props,\n        prefixCls = _this$props2.prefixCls,\n        progressDot = _this$props2.progressDot,\n        stepIcon = _this$props2.stepIcon,\n        stepNumber = _this$props2.stepNumber,\n        status = _this$props2.status,\n        title = _this$props2.title,\n        description = _this$props2.description,\n        icon = _this$props2.icon,\n        iconPrefix = _this$props2.iconPrefix,\n        icons = _this$props2.icons;\n      var iconNode;\n      var iconClassName = classNames(\"\".concat(prefixCls, \"-icon\"), \"\".concat(iconPrefix, \"icon\"), (_classNames = {}, _defineProperty(_classNames, \"\".concat(iconPrefix, \"icon-\").concat(icon), icon && isString(icon)), _defineProperty(_classNames, \"\".concat(iconPrefix, \"icon-check\"), !icon && status === 'finish' && (icons && !icons.finish || !icons)), _defineProperty(_classNames, \"\".concat(iconPrefix, \"icon-cross\"), !icon && status === 'error' && (icons && !icons.error || !icons)), _classNames));\n      var iconDot = /*#__PURE__*/React.createElement(\"span\", {\n        className: \"\".concat(prefixCls, \"-icon-dot\")\n      }); // `progressDot` enjoy the highest priority\n\n      if (progressDot) {\n        if (typeof progressDot === 'function') {\n          iconNode = /*#__PURE__*/React.createElement(\"span\", {\n            className: \"\".concat(prefixCls, \"-icon\")\n          }, progressDot(iconDot, {\n            index: stepNumber - 1,\n            status: status,\n            title: title,\n            description: description\n          }));\n        } else {\n          iconNode = /*#__PURE__*/React.createElement(\"span\", {\n            className: \"\".concat(prefixCls, \"-icon\")\n          }, iconDot);\n        }\n      } else if (icon && !isString(icon)) {\n        iconNode = /*#__PURE__*/React.createElement(\"span\", {\n          className: \"\".concat(prefixCls, \"-icon\")\n        }, icon);\n      } else if (icons && icons.finish && status === 'finish') {\n        iconNode = /*#__PURE__*/React.createElement(\"span\", {\n          className: \"\".concat(prefixCls, \"-icon\")\n        }, icons.finish);\n      } else if (icons && icons.error && status === 'error') {\n        iconNode = /*#__PURE__*/React.createElement(\"span\", {\n          className: \"\".concat(prefixCls, \"-icon\")\n        }, icons.error);\n      } else if (icon || status === 'finish' || status === 'error') {\n        iconNode = /*#__PURE__*/React.createElement(\"span\", {\n          className: iconClassName\n        });\n      } else {\n        iconNode = /*#__PURE__*/React.createElement(\"span\", {\n          className: \"\".concat(prefixCls, \"-icon\")\n        }, stepNumber);\n      }\n      if (stepIcon) {\n        iconNode = stepIcon({\n          index: stepNumber - 1,\n          status: status,\n          title: title,\n          description: description,\n          node: iconNode\n        });\n      }\n      return iconNode;\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _classNames2;\n      var _this$props3 = this.props,\n        className = _this$props3.className,\n        prefixCls = _this$props3.prefixCls,\n        style = _this$props3.style,\n        active = _this$props3.active,\n        _this$props3$status = _this$props3.status,\n        status = _this$props3$status === void 0 ? 'wait' : _this$props3$status,\n        iconPrefix = _this$props3.iconPrefix,\n        icon = _this$props3.icon,\n        wrapperStyle = _this$props3.wrapperStyle,\n        stepNumber = _this$props3.stepNumber,\n        disabled = _this$props3.disabled,\n        description = _this$props3.description,\n        title = _this$props3.title,\n        subTitle = _this$props3.subTitle,\n        progressDot = _this$props3.progressDot,\n        stepIcon = _this$props3.stepIcon,\n        tailContent = _this$props3.tailContent,\n        icons = _this$props3.icons,\n        stepIndex = _this$props3.stepIndex,\n        onStepClick = _this$props3.onStepClick,\n        onClick = _this$props3.onClick,\n        restProps = _objectWithoutProperties(_this$props3, _excluded);\n      var classString = classNames(\"\".concat(prefixCls, \"-item\"), \"\".concat(prefixCls, \"-item-\").concat(status), className, (_classNames2 = {}, _defineProperty(_classNames2, \"\".concat(prefixCls, \"-item-custom\"), icon), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-item-active\"), active), _defineProperty(_classNames2, \"\".concat(prefixCls, \"-item-disabled\"), disabled === true), _classNames2));\n      var stepItemStyle = _objectSpread({}, style);\n      var accessibilityProps = {};\n      if (onStepClick && !disabled) {\n        accessibilityProps.role = 'button';\n        accessibilityProps.tabIndex = 0;\n        accessibilityProps.onClick = this.onClick;\n      }\n      return /*#__PURE__*/React.createElement(\"div\", Object.assign({}, restProps, {\n        className: classString,\n        style: stepItemStyle\n      }), /*#__PURE__*/React.createElement(\"div\", Object.assign({\n        onClick: onClick\n      }, accessibilityProps, {\n        className: \"\".concat(prefixCls, \"-item-container\")\n      }), /*#__PURE__*/React.createElement(\"div\", {\n        className: \"\".concat(prefixCls, \"-item-tail\")\n      }, tailContent), /*#__PURE__*/React.createElement(\"div\", {\n        className: \"\".concat(prefixCls, \"-item-icon\")\n      }, this.renderIconNode()), /*#__PURE__*/React.createElement(\"div\", {\n        className: \"\".concat(prefixCls, \"-item-content\")\n      }, /*#__PURE__*/React.createElement(\"div\", {\n        className: \"\".concat(prefixCls, \"-item-title\")\n      }, title, subTitle && /*#__PURE__*/React.createElement(\"div\", {\n        title: typeof subTitle === 'string' ? subTitle : undefined,\n        className: \"\".concat(prefixCls, \"-item-subtitle\")\n      }, subTitle)), description && /*#__PURE__*/React.createElement(\"div\", {\n        className: \"\".concat(prefixCls, \"-item-description\")\n      }, description))));\n    }\n  }]);\n  return Step;\n}(React.Component);\nexport { Step as default };","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nvar _excluded = [\"prefixCls\", \"style\", \"className\", \"children\", \"direction\", \"type\", \"labelPlacement\", \"iconPrefix\", \"status\", \"size\", \"current\", \"progressDot\", \"stepIcon\", \"initial\", \"icons\", \"onChange\"];\n\n/* eslint react/no-did-mount-set-state: 0, react/prop-types: 0 */\nimport React, { cloneElement } from 'react';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport classNames from 'classnames';\nimport Step from './Step';\nvar Steps = /*#__PURE__*/function (_React$Component) {\n  _inherits(Steps, _React$Component);\n  var _super = _createSuper(Steps);\n  function Steps() {\n    var _this;\n    _classCallCheck(this, Steps);\n    _this = _super.apply(this, arguments);\n    _this.onStepClick = function (next) {\n      var _this$props = _this.props,\n        onChange = _this$props.onChange,\n        current = _this$props.current;\n      if (onChange && current !== next) {\n        onChange(next);\n      }\n    };\n    return _this;\n  }\n  _createClass(Steps, [{\n    key: \"render\",\n    value: function render() {\n      var _classNames,\n        _this2 = this;\n      var _this$props2 = this.props,\n        prefixCls = _this$props2.prefixCls,\n        _this$props2$style = _this$props2.style,\n        style = _this$props2$style === void 0 ? {} : _this$props2$style,\n        className = _this$props2.className,\n        children = _this$props2.children,\n        direction = _this$props2.direction,\n        type = _this$props2.type,\n        labelPlacement = _this$props2.labelPlacement,\n        iconPrefix = _this$props2.iconPrefix,\n        status = _this$props2.status,\n        size = _this$props2.size,\n        current = _this$props2.current,\n        progressDot = _this$props2.progressDot,\n        stepIcon = _this$props2.stepIcon,\n        initial = _this$props2.initial,\n        icons = _this$props2.icons,\n        onChange = _this$props2.onChange,\n        restProps = _objectWithoutProperties(_this$props2, _excluded);\n      var isNav = type === 'navigation';\n      var adjustedLabelPlacement = progressDot ? 'vertical' : labelPlacement;\n      var classString = classNames(prefixCls, \"\".concat(prefixCls, \"-\").concat(direction), className, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-\").concat(size), size), _defineProperty(_classNames, \"\".concat(prefixCls, \"-label-\").concat(adjustedLabelPlacement), direction === 'horizontal'), _defineProperty(_classNames, \"\".concat(prefixCls, \"-dot\"), !!progressDot), _defineProperty(_classNames, \"\".concat(prefixCls, \"-navigation\"), isNav), _classNames));\n      return /*#__PURE__*/React.createElement(\"div\", Object.assign({\n        className: classString,\n        style: style\n      }, restProps), toArray(children).map(function (child, index) {\n        var stepNumber = initial + index;\n        var childProps = _objectSpread({\n          stepNumber: \"\".concat(stepNumber + 1),\n          stepIndex: stepNumber,\n          key: stepNumber,\n          prefixCls: prefixCls,\n          iconPrefix: iconPrefix,\n          wrapperStyle: style,\n          progressDot: progressDot,\n          stepIcon: stepIcon,\n          icons: icons,\n          onStepClick: onChange && _this2.onStepClick\n        }, child.props); // fix tail color\n\n        if (status === 'error' && index === current - 1) {\n          childProps.className = \"\".concat(prefixCls, \"-next-error\");\n        }\n        if (!child.props.status) {\n          if (stepNumber === current) {\n            childProps.status = status;\n          } else if (stepNumber < current) {\n            childProps.status = 'finish';\n          } else {\n            childProps.status = 'wait';\n          }\n        }\n        childProps.active = stepNumber === current;\n        return /*#__PURE__*/cloneElement(child, childProps);\n      }));\n    }\n  }]);\n  return Steps;\n}(React.Component);\nexport { Steps as default };\nSteps.Step = Step;\nSteps.defaultProps = {\n  type: 'default',\n  prefixCls: 'rc-steps',\n  iconPrefix: 'rc',\n  direction: 'horizontal',\n  labelPlacement: 'horizontal',\n  initial: 0,\n  current: 0,\n  status: 'process',\n  size: '',\n  progressDot: false\n};","import Steps from './Steps';\nimport Step from './Step';\nexport { Step };\nexport default Steps;","import devWarning from '../_util/devWarning';\nexport function validProgress(progress) {\n  if (!progress || progress < 0) {\n    return 0;\n  }\n  if (progress > 100) {\n    return 100;\n  }\n  return progress;\n}\nexport function getSuccessPercent(_ref) {\n  var success = _ref.success,\n    successPercent = _ref.successPercent;\n  var percent = successPercent;\n  /** @deprecated Use `percent` instead */\n\n  if (success && 'progress' in success) {\n    devWarning(false, 'Progress', '`success.progress` is deprecated. Please use `success.percent` instead.');\n    percent = success.progress;\n  }\n  if (success && 'percent' in success) {\n    percent = success.percent;\n  }\n  return percent;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nvar __rest = this && this.__rest || function (s, e) {\n  var t = {};\n  for (var p in s) {\n    if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n  }\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n  }\n  return t;\n};\nimport * as React from 'react';\nimport { presetPrimaryColors } from '@ant-design/colors';\nimport { validProgress, getSuccessPercent } from './utils';\n/**\n * @example\n *   {\n *     \"0%\": \"#afc163\",\n *     \"75%\": \"#009900\",\n *     \"50%\": \"green\", // ====> '#afc163 0%, #66FF00 25%, #00CC00 50%, #009900 75%, #ffffff 100%'\n *     \"25%\": \"#66FF00\",\n *     \"100%\": \"#ffffff\"\n *   }\n */\n\nexport var sortGradient = function sortGradient(gradients) {\n  var tempArr = [];\n  Object.keys(gradients).forEach(function (key) {\n    var formattedKey = parseFloat(key.replace(/%/g, ''));\n    if (!isNaN(formattedKey)) {\n      tempArr.push({\n        key: formattedKey,\n        value: gradients[key]\n      });\n    }\n  });\n  tempArr = tempArr.sort(function (a, b) {\n    return a.key - b.key;\n  });\n  return tempArr.map(function (_ref) {\n    var key = _ref.key,\n      value = _ref.value;\n    return \"\".concat(value, \" \").concat(key, \"%\");\n  }).join(', ');\n};\n/**\n * Then this man came to realize the truth: Besides six pence, there is the moon. Besides bread and\n * butter, there is the bug. And... Besides women, there is the code.\n *\n * @example\n *   {\n *     \"0%\": \"#afc163\",\n *     \"25%\": \"#66FF00\",\n *     \"50%\": \"#00CC00\", // ====>  linear-gradient(to right, #afc163 0%, #66FF00 25%,\n *     \"75%\": \"#009900\", //        #00CC00 50%, #009900 75%, #ffffff 100%)\n *     \"100%\": \"#ffffff\"\n *   }\n */\n\nexport var handleGradient = function handleGradient(strokeColor, directionConfig) {\n  var _strokeColor$from = strokeColor.from,\n    from = _strokeColor$from === void 0 ? presetPrimaryColors.blue : _strokeColor$from,\n    _strokeColor$to = strokeColor.to,\n    to = _strokeColor$to === void 0 ? presetPrimaryColors.blue : _strokeColor$to,\n    _strokeColor$directio = strokeColor.direction,\n    direction = _strokeColor$directio === void 0 ? directionConfig === 'rtl' ? 'to left' : 'to right' : _strokeColor$directio,\n    rest = __rest(strokeColor, [\"from\", \"to\", \"direction\"]);\n  if (Object.keys(rest).length !== 0) {\n    var sortedGradients = sortGradient(rest);\n    return {\n      backgroundImage: \"linear-gradient(\".concat(direction, \", \").concat(sortedGradients, \")\")\n    };\n  }\n  return {\n    backgroundImage: \"linear-gradient(\".concat(direction, \", \").concat(from, \", \").concat(to, \")\")\n  };\n};\nvar Line = function Line(props) {\n  var prefixCls = props.prefixCls,\n    directionConfig = props.direction,\n    percent = props.percent,\n    strokeWidth = props.strokeWidth,\n    size = props.size,\n    strokeColor = props.strokeColor,\n    strokeLinecap = props.strokeLinecap,\n    children = props.children,\n    trailColor = props.trailColor,\n    success = props.success;\n  var backgroundProps = strokeColor && typeof strokeColor !== 'string' ? handleGradient(strokeColor, directionConfig) : {\n    background: strokeColor\n  };\n  var trailStyle = trailColor ? {\n    backgroundColor: trailColor\n  } : undefined;\n  var percentStyle = _extends({\n    width: \"\".concat(validProgress(percent), \"%\"),\n    height: strokeWidth || (size === 'small' ? 6 : 8),\n    borderRadius: strokeLinecap === 'square' ? 0 : undefined\n  }, backgroundProps);\n  var successPercent = getSuccessPercent(props);\n  var successPercentStyle = {\n    width: \"\".concat(validProgress(successPercent), \"%\"),\n    height: strokeWidth || (size === 'small' ? 6 : 8),\n    borderRadius: strokeLinecap === 'square' ? 0 : undefined,\n    backgroundColor: success === null || success === void 0 ? void 0 : success.strokeColor\n  };\n  var successSegment = successPercent !== undefined ? /*#__PURE__*/React.createElement(\"div\", {\n    className: \"\".concat(prefixCls, \"-success-bg\"),\n    style: successPercentStyle\n  }) : null;\n  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n    className: \"\".concat(prefixCls, \"-outer\")\n  }, /*#__PURE__*/React.createElement(\"div\", {\n    className: \"\".concat(prefixCls, \"-inner\"),\n    style: trailStyle\n  }, /*#__PURE__*/React.createElement(\"div\", {\n    className: \"\".concat(prefixCls, \"-bg\"),\n    style: percentStyle\n  }), successSegment)), children);\n};\nexport default Line;","import { useRef, useEffect } from 'react';\nexport var defaultProps = {\n  className: '',\n  percent: 0,\n  prefixCls: 'rc-progress',\n  strokeColor: '#2db7f5',\n  strokeLinecap: 'round',\n  strokeWidth: 1,\n  style: {},\n  trailColor: '#D9D9D9',\n  trailWidth: 1\n};\nexport var useTransitionDuration = function useTransitionDuration(percentList) {\n  // eslint-disable-next-line react-hooks/rules-of-hooks\n  var paths = percentList.map(function () {\n    return useRef();\n  });\n  var prevTimeStamp = useRef(null);\n  useEffect(function () {\n    var now = Date.now();\n    var updated = false;\n    Object.keys(paths).forEach(function (key) {\n      var path = paths[key].current;\n      if (!path) {\n        return;\n      }\n      updated = true;\n      var pathStyle = path.style;\n      pathStyle.transitionDuration = '.3s, .3s, .3s, .06s';\n      if (prevTimeStamp.current && now - prevTimeStamp.current < 100) {\n        pathStyle.transitionDuration = '0s, 0s';\n      }\n    });\n    if (updated) {\n      prevTimeStamp.current = Date.now();\n    }\n  });\n  return [paths];\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"className\", \"percent\", \"prefixCls\", \"strokeColor\", \"strokeLinecap\", \"strokeWidth\", \"style\", \"trailColor\", \"trailWidth\", \"transition\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { useTransitionDuration, defaultProps } from './common';\nvar Line = function Line(_ref) {\n  var className = _ref.className,\n    percent = _ref.percent,\n    prefixCls = _ref.prefixCls,\n    strokeColor = _ref.strokeColor,\n    strokeLinecap = _ref.strokeLinecap,\n    strokeWidth = _ref.strokeWidth,\n    style = _ref.style,\n    trailColor = _ref.trailColor,\n    trailWidth = _ref.trailWidth,\n    transition = _ref.transition,\n    restProps = _objectWithoutProperties(_ref, _excluded);\n\n  // eslint-disable-next-line no-param-reassign\n  delete restProps.gapPosition;\n  var percentList = Array.isArray(percent) ? percent : [percent];\n  var strokeColorList = Array.isArray(strokeColor) ? strokeColor : [strokeColor];\n  var _useTransitionDuratio = useTransitionDuration(percentList),\n    _useTransitionDuratio2 = _slicedToArray(_useTransitionDuratio, 1),\n    paths = _useTransitionDuratio2[0];\n  var center = strokeWidth / 2;\n  var right = 100 - strokeWidth / 2;\n  var pathString = \"M \".concat(strokeLinecap === 'round' ? center : 0, \",\").concat(center, \"\\n         L \").concat(strokeLinecap === 'round' ? right : 100, \",\").concat(center);\n  var viewBoxString = \"0 0 100 \".concat(strokeWidth);\n  var stackPtg = 0;\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    className: classNames(\"\".concat(prefixCls, \"-line\"), className),\n    viewBox: viewBoxString,\n    preserveAspectRatio: \"none\",\n    style: style\n  }, restProps), /*#__PURE__*/React.createElement(\"path\", {\n    className: \"\".concat(prefixCls, \"-line-trail\"),\n    d: pathString,\n    strokeLinecap: strokeLinecap,\n    stroke: trailColor,\n    strokeWidth: trailWidth || strokeWidth,\n    fillOpacity: \"0\"\n  }), percentList.map(function (ptg, index) {\n    var dashPercent = 1;\n    switch (strokeLinecap) {\n      case 'round':\n        dashPercent = 1 - strokeWidth / 100;\n        break;\n      case 'square':\n        dashPercent = 1 - strokeWidth / 2 / 100;\n        break;\n      default:\n        dashPercent = 1;\n        break;\n    }\n    var pathStyle = {\n      strokeDasharray: \"\".concat(ptg * dashPercent, \"px, 100px\"),\n      strokeDashoffset: \"-\".concat(stackPtg, \"px\"),\n      transition: transition || 'stroke-dashoffset 0.3s ease 0s, stroke-dasharray .3s ease 0s, stroke 0.3s linear'\n    };\n    var color = strokeColorList[index] || strokeColorList[strokeColorList.length - 1];\n    stackPtg += ptg;\n    return /*#__PURE__*/React.createElement(\"path\", {\n      key: index,\n      className: \"\".concat(prefixCls, \"-line-path\"),\n      d: pathString,\n      strokeLinecap: strokeLinecap,\n      stroke: color,\n      strokeWidth: strokeWidth,\n      fillOpacity: \"0\",\n      ref: paths[index],\n      style: pathStyle\n    });\n  }));\n};\nLine.defaultProps = defaultProps;\nLine.displayName = 'Line';\nexport default Line;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport canUseDom from \"rc-util/es/Dom/canUseDom\";\nvar uuid = 0;\n/** Is client side and not jsdom */\n\nexport var isBrowserClient = process.env.NODE_ENV !== 'test' && canUseDom();\n/** Get unique id for accessibility usage */\n\nfunction getUUID() {\n  var retId; // Test never reach\n\n  /* istanbul ignore if */\n\n  if (isBrowserClient) {\n    retId = uuid;\n    uuid += 1;\n  } else {\n    retId = 'TEST_OR_SSR';\n  }\n  return retId;\n}\nexport default (function (id) {\n  // Inner id for accessibility usage. Only work in client side\n  var _React$useState = React.useState(),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    innerId = _React$useState2[0],\n    setInnerId = _React$useState2[1];\n  React.useEffect(function () {\n    setInnerId(\"rc_progress_\".concat(getUUID()));\n  }, []);\n  return id || innerId;\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"id\", \"prefixCls\", \"strokeWidth\", \"trailWidth\", \"gapDegree\", \"gapPosition\", \"trailColor\", \"strokeLinecap\", \"style\", \"className\", \"strokeColor\", \"percent\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { useTransitionDuration, defaultProps } from './common';\nimport useId from './hooks/useId';\nfunction stripPercentToNumber(percent) {\n  return +percent.replace('%', '');\n}\nfunction toArray(value) {\n  var mergedValue = value !== null && value !== void 0 ? value : [];\n  return Array.isArray(mergedValue) ? mergedValue : [mergedValue];\n}\nfunction getPathStyles(offset, percent, strokeColor, strokeWidth) {\n  var gapDegree = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;\n  var gapPosition = arguments.length > 5 ? arguments[5] : undefined;\n  var radius = 50 - strokeWidth / 2;\n  var beginPositionX = 0;\n  var beginPositionY = -radius;\n  var endPositionX = 0;\n  var endPositionY = -2 * radius;\n  switch (gapPosition) {\n    case 'left':\n      beginPositionX = -radius;\n      beginPositionY = 0;\n      endPositionX = 2 * radius;\n      endPositionY = 0;\n      break;\n    case 'right':\n      beginPositionX = radius;\n      beginPositionY = 0;\n      endPositionX = -2 * radius;\n      endPositionY = 0;\n      break;\n    case 'bottom':\n      beginPositionY = radius;\n      endPositionY = 2 * radius;\n      break;\n    default:\n  }\n  var pathString = \"M 50,50 m \".concat(beginPositionX, \",\").concat(beginPositionY, \"\\n   a \").concat(radius, \",\").concat(radius, \" 0 1 1 \").concat(endPositionX, \",\").concat(-endPositionY, \"\\n   a \").concat(radius, \",\").concat(radius, \" 0 1 1 \").concat(-endPositionX, \",\").concat(endPositionY);\n  var len = Math.PI * 2 * radius;\n  var pathStyle = {\n    stroke: typeof strokeColor === 'string' ? strokeColor : undefined,\n    strokeDasharray: \"\".concat(percent / 100 * (len - gapDegree), \"px \").concat(len, \"px\"),\n    strokeDashoffset: \"-\".concat(gapDegree / 2 + offset / 100 * (len - gapDegree), \"px\"),\n    transition: 'stroke-dashoffset .3s ease 0s, stroke-dasharray .3s ease 0s, stroke .3s, stroke-width .06s ease .3s, opacity .3s ease 0s' // eslint-disable-line\n  };\n\n  return {\n    pathString: pathString,\n    pathStyle: pathStyle\n  };\n}\nvar Circle = function Circle(_ref) {\n  var id = _ref.id,\n    prefixCls = _ref.prefixCls,\n    strokeWidth = _ref.strokeWidth,\n    trailWidth = _ref.trailWidth,\n    gapDegree = _ref.gapDegree,\n    gapPosition = _ref.gapPosition,\n    trailColor = _ref.trailColor,\n    strokeLinecap = _ref.strokeLinecap,\n    style = _ref.style,\n    className = _ref.className,\n    strokeColor = _ref.strokeColor,\n    percent = _ref.percent,\n    restProps = _objectWithoutProperties(_ref, _excluded);\n  var mergedId = useId(id);\n  var gradientId = \"\".concat(mergedId, \"-gradient\");\n  var _getPathStyles = getPathStyles(0, 100, trailColor, strokeWidth, gapDegree, gapPosition),\n    pathString = _getPathStyles.pathString,\n    pathStyle = _getPathStyles.pathStyle;\n  var percentList = toArray(percent);\n  var strokeColorList = toArray(strokeColor);\n  var gradient = strokeColorList.find(function (color) {\n    return color && _typeof(color) === 'object';\n  });\n  var _useTransitionDuratio = useTransitionDuration(percentList),\n    _useTransitionDuratio2 = _slicedToArray(_useTransitionDuratio, 1),\n    paths = _useTransitionDuratio2[0];\n  var getStokeList = function getStokeList() {\n    var stackPtg = 0;\n    return percentList.map(function (ptg, index) {\n      var color = strokeColorList[index] || strokeColorList[strokeColorList.length - 1];\n      var stroke = color && _typeof(color) === 'object' ? \"url(#\".concat(gradientId, \")\") : '';\n      var pathStyles = getPathStyles(stackPtg, ptg, color, strokeWidth, gapDegree, gapPosition);\n      stackPtg += ptg;\n      return /*#__PURE__*/React.createElement(\"path\", {\n        key: index,\n        className: \"\".concat(prefixCls, \"-circle-path\"),\n        d: pathStyles.pathString,\n        stroke: stroke,\n        strokeLinecap: strokeLinecap,\n        strokeWidth: strokeWidth,\n        opacity: ptg === 0 ? 0 : 1,\n        fillOpacity: \"0\",\n        style: pathStyles.pathStyle,\n        ref: paths[index]\n      });\n    });\n  };\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    className: classNames(\"\".concat(prefixCls, \"-circle\"), className),\n    viewBox: \"0 0 100 100\",\n    style: style,\n    id: id\n  }, restProps), gradient && /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n    id: gradientId,\n    x1: \"100%\",\n    y1: \"0%\",\n    x2: \"0%\",\n    y2: \"0%\"\n  }, Object.keys(gradient).sort(function (a, b) {\n    return stripPercentToNumber(a) - stripPercentToNumber(b);\n  }).map(function (key, index) {\n    return /*#__PURE__*/React.createElement(\"stop\", {\n      key: index,\n      offset: key,\n      stopColor: gradient[key]\n    });\n  }))), /*#__PURE__*/React.createElement(\"path\", {\n    className: \"\".concat(prefixCls, \"-circle-trail\"),\n    d: pathString,\n    stroke: trailColor,\n    strokeLinecap: strokeLinecap,\n    strokeWidth: trailWidth || strokeWidth,\n    fillOpacity: \"0\",\n    style: pathStyle\n  }), getStokeList().reverse());\n};\nCircle.defaultProps = defaultProps;\nCircle.displayName = 'Circle';\nexport default Circle;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport * as React from 'react';\nimport { Circle as RCCircle } from 'rc-progress';\nimport { presetPrimaryColors } from '@ant-design/colors';\nimport classNames from 'classnames';\nimport { validProgress, getSuccessPercent } from './utils';\nfunction getPercentage(_ref) {\n  var percent = _ref.percent,\n    success = _ref.success,\n    successPercent = _ref.successPercent;\n  var realSuccessPercent = validProgress(getSuccessPercent({\n    success: success,\n    successPercent: successPercent\n  }));\n  return [realSuccessPercent, validProgress(validProgress(percent) - realSuccessPercent)];\n}\nfunction getStrokeColor(_ref2) {\n  var _ref2$success = _ref2.success,\n    success = _ref2$success === void 0 ? {} : _ref2$success,\n    strokeColor = _ref2.strokeColor;\n  var successColor = success.strokeColor;\n  return [successColor || presetPrimaryColors.green, strokeColor || null];\n}\nvar Circle = function Circle(props) {\n  var prefixCls = props.prefixCls,\n    width = props.width,\n    strokeWidth = props.strokeWidth,\n    trailColor = props.trailColor,\n    strokeLinecap = props.strokeLinecap,\n    gapPosition = props.gapPosition,\n    gapDegree = props.gapDegree,\n    type = props.type,\n    children = props.children,\n    success = props.success;\n  var circleSize = width || 120;\n  var circleStyle = {\n    width: circleSize,\n    height: circleSize,\n    fontSize: circleSize * 0.15 + 6\n  };\n  var circleWidth = strokeWidth || 6;\n  var gapPos = gapPosition || type === 'dashboard' && 'bottom' || 'top';\n  var getGapDegree = function getGapDegree() {\n    // Support gapDeg = 0 when type = 'dashboard'\n    if (gapDegree || gapDegree === 0) {\n      return gapDegree;\n    }\n    if (type === 'dashboard') {\n      return 75;\n    }\n    return undefined;\n  }; // using className to style stroke color\n\n  var isGradient = Object.prototype.toString.call(props.strokeColor) === '[object Object]';\n  var strokeColor = getStrokeColor({\n    success: success,\n    strokeColor: props.strokeColor\n  });\n  var wrapperClassName = classNames(\"\".concat(prefixCls, \"-inner\"), _defineProperty({}, \"\".concat(prefixCls, \"-circle-gradient\"), isGradient));\n  return /*#__PURE__*/React.createElement(\"div\", {\n    className: wrapperClassName,\n    style: circleStyle\n  }, /*#__PURE__*/React.createElement(RCCircle, {\n    percent: getPercentage(props),\n    strokeWidth: circleWidth,\n    trailWidth: circleWidth,\n    strokeColor: strokeColor,\n    strokeLinecap: strokeLinecap,\n    trailColor: trailColor,\n    prefixCls: prefixCls,\n    gapDegree: getGapDegree(),\n    gapPosition: gapPos\n  }), children);\n};\nexport default Circle;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nvar Steps = function Steps(props) {\n  var size = props.size,\n    steps = props.steps,\n    _props$percent = props.percent,\n    percent = _props$percent === void 0 ? 0 : _props$percent,\n    _props$strokeWidth = props.strokeWidth,\n    strokeWidth = _props$strokeWidth === void 0 ? 8 : _props$strokeWidth,\n    strokeColor = props.strokeColor,\n    trailColor = props.trailColor,\n    prefixCls = props.prefixCls,\n    children = props.children;\n  var current = Math.round(steps * (percent / 100));\n  var stepWidth = size === 'small' ? 2 : 14;\n  var styledSteps = [];\n  for (var i = 0; i < steps; i += 1) {\n    styledSteps.push( /*#__PURE__*/React.createElement(\"div\", {\n      key: i,\n      className: classNames(\"\".concat(prefixCls, \"-steps-item\"), _defineProperty({}, \"\".concat(prefixCls, \"-steps-item-active\"), i <= current - 1)),\n      style: {\n        backgroundColor: i <= current - 1 ? strokeColor : trailColor,\n        width: stepWidth,\n        height: strokeWidth\n      }\n    }));\n  }\n  return /*#__PURE__*/React.createElement(\"div\", {\n    className: \"\".concat(prefixCls, \"-steps-outer\")\n  }, styledSteps, children);\n};\nexport default Steps;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nvar __rest = this && this.__rest || function (s, e) {\n  var t = {};\n  for (var p in s) {\n    if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n  }\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n  }\n  return t;\n};\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport CloseOutlined from \"@ant-design/icons/es/icons/CloseOutlined\";\nimport CheckOutlined from \"@ant-design/icons/es/icons/CheckOutlined\";\nimport CheckCircleFilled from \"@ant-design/icons/es/icons/CheckCircleFilled\";\nimport CloseCircleFilled from \"@ant-design/icons/es/icons/CloseCircleFilled\";\nimport { ConfigConsumer } from '../config-provider';\nimport { tuple } from '../_util/type';\nimport devWarning from '../_util/devWarning';\nimport Line from './Line';\nimport Circle from './Circle';\nimport Steps from './Steps';\nimport { validProgress, getSuccessPercent } from './utils';\nvar ProgressTypes = tuple('line', 'circle', 'dashboard');\nvar ProgressStatuses = tuple('normal', 'exception', 'active', 'success');\nvar Progress = /*#__PURE__*/function (_React$Component) {\n  _inherits(Progress, _React$Component);\n  var _super = _createSuper(Progress);\n  function Progress() {\n    var _this;\n    _classCallCheck(this, Progress);\n    _this = _super.apply(this, arguments);\n    _this.renderProgress = function (_ref) {\n      var _classNames;\n      var getPrefixCls = _ref.getPrefixCls,\n        direction = _ref.direction;\n      var _assertThisInitialize = _assertThisInitialized(_this),\n        props = _assertThisInitialize.props;\n      var customizePrefixCls = props.prefixCls,\n        className = props.className,\n        size = props.size,\n        type = props.type,\n        steps = props.steps,\n        showInfo = props.showInfo,\n        strokeColor = props.strokeColor,\n        restProps = __rest(props, [\"prefixCls\", \"className\", \"size\", \"type\", \"steps\", \"showInfo\", \"strokeColor\"]);\n      var prefixCls = getPrefixCls('progress', customizePrefixCls);\n      var progressStatus = _this.getProgressStatus();\n      var progressInfo = _this.renderProcessInfo(prefixCls, progressStatus);\n      devWarning(!('successPercent' in props), 'Progress', '`successPercent` is deprecated. Please use `success.percent` instead.');\n      var progress; // Render progress shape\n\n      if (type === 'line') {\n        progress = steps ? /*#__PURE__*/React.createElement(Steps, _extends({}, _this.props, {\n          strokeColor: typeof strokeColor === 'string' ? strokeColor : undefined,\n          prefixCls: prefixCls,\n          steps: steps\n        }), progressInfo) : /*#__PURE__*/React.createElement(Line, _extends({}, _this.props, {\n          prefixCls: prefixCls,\n          direction: direction\n        }), progressInfo);\n      } else if (type === 'circle' || type === 'dashboard') {\n        progress = /*#__PURE__*/React.createElement(Circle, _extends({}, _this.props, {\n          prefixCls: prefixCls,\n          progressStatus: progressStatus\n        }), progressInfo);\n      }\n      var classString = classNames(prefixCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-\").concat(type === 'dashboard' && 'circle' || steps && 'steps' || type), true), _defineProperty(_classNames, \"\".concat(prefixCls, \"-status-\").concat(progressStatus), true), _defineProperty(_classNames, \"\".concat(prefixCls, \"-show-info\"), showInfo), _defineProperty(_classNames, \"\".concat(prefixCls, \"-\").concat(size), size), _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), _classNames), className);\n      return /*#__PURE__*/React.createElement(\"div\", _extends({}, omit(restProps, ['status', 'format', 'trailColor', 'strokeWidth', 'width', 'gapDegree', 'gapPosition', 'strokeLinecap', 'percent', 'success', 'successPercent']), {\n        className: classString\n      }), progress);\n    };\n    return _this;\n  }\n  _createClass(Progress, [{\n    key: \"getPercentNumber\",\n    value: function getPercentNumber() {\n      var _this$props$percent = this.props.percent,\n        percent = _this$props$percent === void 0 ? 0 : _this$props$percent;\n      var successPercent = getSuccessPercent(this.props);\n      return parseInt(successPercent !== undefined ? successPercent.toString() : percent.toString(), 10);\n    }\n  }, {\n    key: \"getProgressStatus\",\n    value: function getProgressStatus() {\n      var status = this.props.status;\n      if (ProgressStatuses.indexOf(status) < 0 && this.getPercentNumber() >= 100) {\n        return 'success';\n      }\n      return status || 'normal';\n    }\n  }, {\n    key: \"renderProcessInfo\",\n    value: function renderProcessInfo(prefixCls, progressStatus) {\n      var _this$props = this.props,\n        showInfo = _this$props.showInfo,\n        format = _this$props.format,\n        type = _this$props.type,\n        percent = _this$props.percent;\n      var successPercent = getSuccessPercent(this.props);\n      if (!showInfo) {\n        return null;\n      }\n      var text;\n      var textFormatter = format || function (percentNumber) {\n        return \"\".concat(percentNumber, \"%\");\n      };\n      var isLineType = type === 'line';\n      if (format || progressStatus !== 'exception' && progressStatus !== 'success') {\n        text = textFormatter(validProgress(percent), validProgress(successPercent));\n      } else if (progressStatus === 'exception') {\n        text = isLineType ? /*#__PURE__*/React.createElement(CloseCircleFilled, null) : /*#__PURE__*/React.createElement(CloseOutlined, null);\n      } else if (progressStatus === 'success') {\n        text = isLineType ? /*#__PURE__*/React.createElement(CheckCircleFilled, null) : /*#__PURE__*/React.createElement(CheckOutlined, null);\n      }\n      return /*#__PURE__*/React.createElement(\"span\", {\n        className: \"\".concat(prefixCls, \"-text\"),\n        title: typeof text === 'string' ? text : undefined\n      }, text);\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      return /*#__PURE__*/React.createElement(ConfigConsumer, null, this.renderProgress);\n    }\n  }]);\n  return Progress;\n}(React.Component);\nexport { Progress as default };\nProgress.defaultProps = {\n  type: 'line',\n  percent: 0,\n  showInfo: true,\n  // null for different theme definition\n  trailColor: null,\n  size: 'default',\n  gapDegree: undefined,\n  strokeLinecap: 'round'\n};","import Progress from './progress';\nexport default Progress;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nexport var responsiveArray = ['xxl', 'xl', 'lg', 'md', 'sm', 'xs'];\nexport var responsiveMap = {\n  xs: '(max-width: 575px)',\n  sm: '(min-width: 576px)',\n  md: '(min-width: 768px)',\n  lg: '(min-width: 992px)',\n  xl: '(min-width: 1200px)',\n  xxl: '(min-width: 1600px)'\n};\nvar subscribers = new Map();\nvar subUid = -1;\nvar screens = {};\nvar responsiveObserve = {\n  matchHandlers: {},\n  dispatch: function dispatch(pointMap) {\n    screens = pointMap;\n    subscribers.forEach(function (func) {\n      return func(screens);\n    });\n    return subscribers.size >= 1;\n  },\n  subscribe: function subscribe(func) {\n    if (!subscribers.size) this.register();\n    subUid += 1;\n    subscribers.set(subUid, func);\n    func(screens);\n    return subUid;\n  },\n  unsubscribe: function unsubscribe(token) {\n    subscribers[\"delete\"](token);\n    if (!subscribers.size) this.unregister();\n  },\n  unregister: function unregister() {\n    var _this = this;\n    Object.keys(responsiveMap).forEach(function (screen) {\n      var matchMediaQuery = responsiveMap[screen];\n      var handler = _this.matchHandlers[matchMediaQuery];\n      handler === null || handler === void 0 ? void 0 : handler.mql.removeListener(handler === null || handler === void 0 ? void 0 : handler.listener);\n    });\n    subscribers.clear();\n  },\n  register: function register() {\n    var _this2 = this;\n    Object.keys(responsiveMap).forEach(function (screen) {\n      var matchMediaQuery = responsiveMap[screen];\n      var listener = function listener(_ref) {\n        var matches = _ref.matches;\n        _this2.dispatch(_extends(_extends({}, screens), _defineProperty({}, screen, matches)));\n      };\n      var mql = window.matchMedia(matchMediaQuery);\n      mql.addListener(listener);\n      _this2.matchHandlers[matchMediaQuery] = {\n        mql: mql,\n        listener: listener\n      };\n      listener(mql);\n    });\n  }\n};\nexport default responsiveObserve;","import { useEffect, useRef } from 'react';\nimport useForceUpdate from '../../_util/hooks/useForceUpdate';\nimport ResponsiveObserve from '../../_util/responsiveObserve';\nfunction useBreakpoint() {\n  var refreshOnChange = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n  var screensRef = useRef({});\n  var forceUpdate = useForceUpdate();\n  useEffect(function () {\n    var token = ResponsiveObserve.subscribe(function (supportScreens) {\n      screensRef.current = supportScreens;\n      if (refreshOnChange) {\n        forceUpdate();\n      }\n    });\n    return function () {\n      return ResponsiveObserve.unsubscribe(token);\n    };\n  }, []);\n  return screensRef.current;\n}\nexport default useBreakpoint;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar __rest = this && this.__rest || function (s, e) {\n  var t = {};\n  for (var p in s) {\n    if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n  }\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n  }\n  return t;\n};\nimport * as React from 'react';\nimport RcSteps from 'rc-steps';\nimport CheckOutlined from \"@ant-design/icons/es/icons/CheckOutlined\";\nimport CloseOutlined from \"@ant-design/icons/es/icons/CloseOutlined\";\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider';\nimport Progress from '../progress';\nimport useBreakpoint from '../grid/hooks/useBreakpoint';\nvar Steps = function Steps(props) {\n  var _classNames;\n  var percent = props.percent,\n    size = props.size,\n    className = props.className,\n    direction = props.direction,\n    responsive = props.responsive,\n    restProps = __rest(props, [\"percent\", \"size\", \"className\", \"direction\", \"responsive\"]);\n  var _useBreakpoint = useBreakpoint(responsive),\n    xs = _useBreakpoint.xs;\n  var _React$useContext = React.useContext(ConfigContext),\n    getPrefixCls = _React$useContext.getPrefixCls,\n    rtlDirection = _React$useContext.direction;\n  var getDirection = React.useCallback(function () {\n    return responsive && xs ? 'vertical' : direction;\n  }, [xs, direction]);\n  var prefixCls = getPrefixCls('steps', props.prefixCls);\n  var iconPrefix = getPrefixCls('', props.iconPrefix);\n  var stepsClassName = classNames((_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), rtlDirection === 'rtl'), _defineProperty(_classNames, \"\".concat(prefixCls, \"-with-progress\"), percent !== undefined), _classNames), className);\n  var icons = {\n    finish: /*#__PURE__*/React.createElement(CheckOutlined, {\n      className: \"\".concat(prefixCls, \"-finish-icon\")\n    }),\n    error: /*#__PURE__*/React.createElement(CloseOutlined, {\n      className: \"\".concat(prefixCls, \"-error-icon\")\n    })\n  };\n  var stepIconRender = function stepIconRender(_ref) {\n    var node = _ref.node,\n      status = _ref.status;\n    if (status === 'process' && percent !== undefined) {\n      // currently it's hard-coded, since we can't easily read the actually width of icon\n      var progressWidth = size === 'small' ? 32 : 40;\n      var iconWithProgress = /*#__PURE__*/React.createElement(\"div\", {\n        className: \"\".concat(prefixCls, \"-progress-icon\")\n      }, /*#__PURE__*/React.createElement(Progress, {\n        type: \"circle\",\n        percent: percent,\n        width: progressWidth,\n        strokeWidth: 4,\n        format: function format() {\n          return null;\n        }\n      }), node);\n      return iconWithProgress;\n    }\n    return node;\n  };\n  return /*#__PURE__*/React.createElement(RcSteps, _extends({\n    icons: icons\n  }, restProps, {\n    size: size,\n    direction: getDirection(),\n    stepIcon: stepIconRender,\n    prefixCls: prefixCls,\n    iconPrefix: iconPrefix,\n    className: stepsClassName\n  }));\n};\nSteps.Step = RcSteps.Step;\nSteps.defaultProps = {\n  current: 0,\n  responsive: true\n};\nexport default Steps;","import React, { useState, useEffect } from 'react';\nimport { Steps as AntdSteps, StepsProps } from 'antd';\nimport { graphql, useStaticQuery } from 'gatsby';\n\nconst { Step } = AntdSteps;\n\ninterface TutorialStepProps extends StepsProps {\n  position?: 'start' | 'end';\n  order?: number;\n  stepTitle?: string;\n}\n\nconst TutorialSteps: React.FC<TutorialStepProps> = (props) => {\n  const {\n    allMdx: { nodes: tutorialNodes },\n  } = useStaticQuery(graphql`\n    query {\n      allMdx(\n        filter: {\n          fileAbsolutePath: { glob: \"**/src/pages/tutorials/**\" }\n          frontmatter: { type: { eq: \"step\" } }\n        }\n        sort: { fields: [frontmatter___order], order: ASC }\n      ) {\n        nodes {\n          frontmatter {\n            menuTitle\n            order\n          }\n          parent {\n            ... on File {\n              relativeDirectory\n            }\n          }\n        }\n      }\n    }\n  `);\n\n  const [tutorialType, setTutorialType] = useState('');\n\n  useEffect(() => {\n    setTutorialType(\n      window.location.pathname\n        .substr(0, window.location.pathname.lastIndexOf('/'))\n        .replace('/tutorials/', ''),\n    );\n  }, []);\n\n  const tutorialSteps = Object.entries(\n    tutorialNodes.filter(\n      (tutorialNode) => tutorialNode.parent.relativeDirectory === tutorialType,\n    ),\n  ).map(([key, tutorialNode]) => {\n    return (\n      <Step\n        key={key}\n        title={`Step ${tutorialNode.frontmatter.order}`}\n        description={tutorialNode.frontmatter.menuTitle}\n      />\n    );\n  });\n\n  return (\n    <AntdSteps\n      {...props}\n      type=\"default\"\n      direction=\"horizontal\"\n      responsive\n      size=\"small\"\n      progressDot\n      initial={1}\n    >\n      {tutorialSteps}\n    </AntdSteps>\n  );\n};\n\nexport default TutorialSteps;\n","// extracted by mini-css-extract-plugin\nexport var antSteps = \"mdx-module--ant-steps--rw32q\";\nexport var antStepsDot = \"mdx-module--ant-steps-dot--y8DqO\";\nexport var antStepsHorizontal = \"mdx-module--ant-steps-horizontal--oMLp8\";\nexport var antStepsItemDescription = \"mdx-module--ant-steps-item-description--fJ3pC\";\nexport var antStepsItemIcon = \"mdx-module--ant-steps-item-icon--Eaj2a\";\nexport var antStepsItemTitle = \"mdx-module--ant-steps-item-title--Az+ek\";\nexport var antStepsSmall = \"mdx-module--ant-steps-small--QCM4X\";\nexport var antTypography = \"mdx-module--ant-typography--UrCcw\";\nexport var button = \"mdx-module--button--ffzqc\";\nexport var buttonLabel = \"mdx-module--buttonLabel--6cDva\";\nexport var content = \"mdx-module--content--TA8vv\";\nexport var editOnGitHub = \"mdx-module--editOnGitHub--9Y8qY\";\nexport var footer = \"mdx-module--footer--91Obx\";\nexport var footerElement = \"mdx-module--footerElement--J3Q+-\";\nexport var globalTocWrapper = \"mdx-module--globalTocWrapper--kK2+Y\";\nexport var hideOnReducedMotion = \"mdx-module--hideOnReducedMotion--VPVyD\";\nexport var newsletter = \"mdx-module--newsletter--GotnL\";\nexport var nextButton = \"mdx-module--nextButton--1Z1SN\";\nexport var noBullet = \"mdx-module--noBullet--6R1Ow\";\nexport var outerWrapper = \"mdx-module--outerWrapper--bvL4M\";\nexport var pageToc = \"mdx-module--pageToc--7+NSp\";\nexport var pageTocWrapper = \"mdx-module--pageTocWrapper--xZfwX\";\nexport var prevButton = \"mdx-module--prevButton--DZUc4\";\nexport var showOnReducedMotion = \"mdx-module--showOnReducedMotion--nw8Vb\";\nexport var tocGroup = \"mdx-module--tocGroup--JbgIw\";\nexport var tocGroupLabel = \"mdx-module--tocGroupLabel--+bd7R\";\nexport var tocLeaf = \"mdx-module--tocLeaf--4CzKj\";\nexport var tocLeafActive = \"mdx-module--tocLeafActive--RMZD1\";\nexport var tweetBox = \"mdx-module--tweet-box--KplNr\";\nexport var wrapper = \"mdx-module--wrapper--qNQpf\";","import { GithubOutlined, LeftOutlined, RightOutlined } from '@ant-design/icons';\nimport loadable from '@loadable/component';\nimport { MDXProvider } from '@mdx-js/react';\nimport { RouteComponentProps } from '@reach/router';\nimport { Button, Layout, Tabs as AntdTabs, Typography } from 'antd';\nimport { Link, withPrefix } from 'gatsby';\nimport { OutboundLink } from 'gatsby-plugin-google-analytics';\nimport React, { useLayoutEffect } from 'react';\nimport StickyBox from 'react-sticky-box';\nimport tocbot from 'tocbot';\n\nimport 'antd/es/table/style';\n\nimport { Tip, Warning } from '../components/alert';\nimport { TypeLink } from '../components/api-link';\nimport AspectRatio from '../components/aspect-ratio';\nimport CodeBlock from '../components/code-block';\nimport Emoji from '../components/emoji';\nimport Mailchimp from '../components/mailchimp';\nimport MaxWidth from '../components/max-width';\nimport NoWrap from '../components/nowrap';\nimport RequiredDependencies from '../components/required-dependencies';\nimport TutorialSteps from '../components/steps';\nimport BaseLayout from './base';\nimport pagePath from './page-path';\nimport * as styles from './mdx.module.less';\n\nconst { Content } = Layout;\nconst { Paragraph, Title } = Typography;\n\ninterface MdxLayoutProps extends RouteComponentProps {\n  pageContext: any;\n  candidateMdxNodes: any[];\n  index: { [section: string]: string[] | { [title: string]: string } };\n  prefix: string;\n  pageTitle: string;\n  pageTitleSuffix: string;\n  showPrevNextButton?: boolean;\n  noEdit?: boolean;\n  menuTitle?: boolean;\n}\n\nconst pathPrefix = withPrefix('/');\n\n// Use our CodeBlock component for <a> and <pre>.\nconst mdxComponents: any = {\n  a: (props: any) => {\n    const href: string = `${props.href || ''}`;\n    if (href.startsWith('type://') || href.startsWith('typeplural://')) {\n      const prefixLength = href.indexOf('://') + 3;\n      const delimiterIndex = href.indexOf(':', prefixLength);\n      const [typeName, actualHref] =\n        delimiterIndex >= 0\n          ? [\n              href.substring(prefixLength, delimiterIndex),\n              href.substring(delimiterIndex + 1),\n            ]\n          : [href.substring(prefixLength), undefined];\n      return (\n        <TypeLink\n          name={typeName}\n          href={actualHref}\n          plural={href.startsWith('typeplural://')}\n        />\n      );\n    }\n\n    if (href.includes('://') || href.startsWith('//')) {\n      return <OutboundLink {...props} />;\n    }\n\n    if (href.startsWith(pathPrefix)) {\n      // Strip the path prefix when passing to <Link />\n      // because it will prepend the path prefix.\n      return (\n        <Link\n          to={props.href.substring(pathPrefix.length - 1)}\n          className={props.className}\n        >\n          {props.children}\n        </Link>\n      );\n    }\n\n    // eslint-disable-next-line jsx-a11y/anchor-has-content\n    return <a {...props} />;\n  },\n  pre: (props: any) => {\n    const language =\n      props.children.props.className?.replace(/language-/, '') || 'none';\n    return (\n      <CodeBlock\n        language={language}\n        filename={props.children.props.filename}\n        highlight={props.children.props.highlight}\n        showlineno={props.children.props.showlineno}\n      >\n        {props.children.props.children}\n      </CodeBlock>\n    );\n  },\n  h1: (props: any) => <Title level={1} {...props} />,\n  h2: (props: any) => <Title level={2} {...props} />,\n  h3: (props: any) => <Title level={3} {...props} />,\n  h4: (props: any) => <Title level={4} {...props} />,\n  table: (props: any) => {\n    return (\n      <div className=\"ant-table ant-table-small ant-table-bordered\">\n        <div className=\"ant-table-container\">\n          <div className=\"ant-table-content\">\n            <table {...props} />\n          </div>\n        </div>\n      </div>\n    );\n  },\n  thead: (props: any) => {\n    return <thead className=\"ant-table-thead\" {...props} />;\n  },\n  tbody: (props: any) => {\n    return <tbody className=\"ant-table-tbody\" {...props} />;\n  },\n  tfoot: (props: any) => {\n    return <tfoot className=\"ant-table-tfoot\" {...props} />;\n  },\n  th: (props: any) => {\n    return <th className=\"ant-table-cell\" {...filterTableCellProps(props)} />;\n  },\n  td: (props: any) => {\n    return <td className=\"ant-table-cell\" {...filterTableCellProps(props)} />;\n  },\n  AspectRatio,\n  CodeBlock,\n  Emoji,\n  Mailchimp,\n  MaxWidth,\n  NoWrap,\n  RequiredDependencies,\n  TutorialSteps,\n  Tabs: (props: any) => {\n    return <AntdTabs animated={{ inkBar: true, tabPane: false }} {...props} />;\n  },\n  TabPane: AntdTabs.TabPane,\n  Tip,\n  TypeLink,\n  ThankYou: loadable(() => import('../components/thank-you')),\n  Warning,\n};\n\nfunction filterTableCellProps(props: any) {\n  const newProps = {\n    ...props,\n    rowSpan: props.rowspan,\n    colSpan: props.colspan,\n  };\n  if (props.align) {\n    if (newProps.style) {\n      newProps.style = { ...newProps.style, textAlign: props.align };\n    } else {\n      newProps.style = { textAlign: props.align };\n    }\n  }\n\n  delete newProps.align;\n  delete newProps.rowspan;\n  delete newProps.colspan;\n  return newProps;\n}\n\nconst MdxLayout: React.FC<MdxLayoutProps> = (props) => {\n  useLayoutEffect(() => {\n    tocbot.init({\n      // We can't use the full CSS class name here because auto-generated CSS class names\n      // sometimes contain a plug sign, such as `mdx-module--pageToc--7+NSp`.\n      tocSelector: 'div[class^=\"mdx-module--pageToc-\"]', // `.${styles.pageToc}`,\n      contentSelector: 'div[class^=\"mdx-module--content-\"]', // `.${styles.content}`,\n      headingSelector: 'h1, h2, h3, h4',\n      ignoreHiddenElements: true,\n    });\n\n    return () => {\n      tocbot.destroy();\n    };\n  }, []);\n\n  // Create a map of page name and MDX node pair, while adding the 'href' property.\n  const pathToMdxNode: { [name: string]: any } = {};\n  props.candidateMdxNodes.forEach((mdxNode: any) => {\n    if (\n      mdxNode.parent.sourceInstanceName === props.prefix &&\n      (mdxNode.tableOfContents.items?.length || 0) > 0\n    ) {\n      /* eslint-disable no-param-reassign */\n      mdxNode.isBookmark = false;\n      if (\n        typeof mdxNode.parent.relativeDirectory === 'undefined' ||\n        mdxNode.parent.relativeDirectory === ''\n      ) {\n        mdxNode.path = mdxNode.parent.name;\n      } else {\n        mdxNode.path = `${mdxNode.parent.relativeDirectory}/${mdxNode.parent.name}`;\n      }\n\n      if (mdxNode.path.endsWith('/index')) {\n        mdxNode.path = mdxNode.path.substring(0, mdxNode.path.length - 6);\n      }\n\n      if (mdxNode.path === 'index') {\n        mdxNode.href = `/${props.prefix}`;\n      } else {\n        mdxNode.href = `/${props.prefix}/${mdxNode.path}`;\n      }\n      /* eslint-enable no-param-reassign */\n      pathToMdxNode[mdxNode.path] = mdxNode;\n    }\n  });\n\n  // Create a list of MDX pages, ordered as specified in 'index'.\n  const mdxNodes: any[] = [];\n  const groupToMdxNodes: { [group: string]: any[] } = {};\n  let prevMdxNode: any;\n  Object.entries(props.index).forEach(\n    ([groupName, mdxNodePathsOrBookmarks]) => {\n      if (Array.isArray(mdxNodePathsOrBookmarks)) {\n        const mdxNodePaths = mdxNodePathsOrBookmarks;\n        for (let i = 0; i < mdxNodePaths.length; i += 1) {\n          const mdxNodePath = mdxNodePaths[i];\n          const mdxNode = pathToMdxNode[mdxNodePath];\n          if (!mdxNode) {\n            continue;\n          }\n          mdxNodes.push(mdxNode);\n\n          if (prevMdxNode) {\n            // Note: Do not refer to 'prevMdxNode' or 'mdxNode' directly here,\n            //       to avoid creating cyclic references.\n            mdxNode.prevNodePath = prevMdxNode.path;\n            prevMdxNode.nextNodePath = mdxNodePath;\n          }\n          prevMdxNode = mdxNode;\n\n          // Group MDX nodes by its group.\n          const groupedMdxNodes = groupToMdxNodes[groupName];\n          if (groupedMdxNodes) {\n            groupedMdxNodes.push(mdxNode);\n          } else {\n            groupToMdxNodes[groupName] = [mdxNode];\n          }\n        }\n      } else {\n        const bookmarks = mdxNodePathsOrBookmarks;\n        Object.entries(bookmarks).forEach(([bookmarkTitle, bookmarkUrl]) => {\n          // Not really an MDX node, but we fake it.\n          const mdxNode = {\n            isBookmark: true,\n            href: bookmarkUrl,\n            tableOfContents: {\n              items: [\n                {\n                  title: bookmarkTitle,\n                },\n              ],\n            },\n          };\n\n          // Add the fake MDX node to its group, so it appears on the ToC.\n          // Note that we do not add it to mdxNodes because mdxNodes is used for\n          // generating prev/next buttons.\n          const groupedMdxNodes = groupToMdxNodes[groupName];\n          if (groupedMdxNodes) {\n            groupedMdxNodes.push(mdxNode);\n          } else {\n            groupToMdxNodes[groupName] = [mdxNode];\n          }\n        });\n      }\n    },\n  );\n\n  const currentMdxNode = findCurrentMdxNode();\n\n  // Generate some properties required for rendering.\n  const pageTitle = `${props.pageTitle} — ${props.pageTitleSuffix}`;\n  const pageDescription = currentMdxNode?.excerpt\n    ?.replace(/\\w+:\\/\\//g, '')\n    .replace(/\\s+(\\W)/g, '$1')\n    .replace(/(?:\\s|\\r|\\n)+/g, ' ');\n  const relpath = pagePath(props.location).substring(1);\n  const githubHref = props.noEdit\n    ? undefined\n    : `https://github.com/line/armeria/edit/main/site/src/pages/${relpath}${\n        relpath === props.prefix ? '/index' : ''\n      }.mdx`;\n  let prevLabel;\n  let nextLabel;\n  let prevHref;\n  let nextHref;\n  if (props.pageContext.hrefs?.prev) {\n    prevLabel = props.pageContext.hrefs.prev.label;\n    prevHref = props.pageContext.hrefs.prev.href;\n  } else if (currentMdxNode?.prevNodePath) {\n    prevLabel =\n      pathToMdxNode[currentMdxNode.prevNodePath].tableOfContents.items[0].title;\n    prevHref = pathToMdxNode[currentMdxNode.prevNodePath].href;\n  }\n  if (props.pageContext.hrefs?.next) {\n    nextLabel = props.pageContext.hrefs.next.label;\n    nextHref = props.pageContext.hrefs.next.href;\n  } else if (currentMdxNode?.nextNodePath) {\n    nextLabel =\n      pathToMdxNode[currentMdxNode.nextNodePath].tableOfContents.items[0].title;\n    nextHref = pathToMdxNode[currentMdxNode.nextNodePath].href;\n  }\n\n  function findCurrentMdxNode(): any {\n    const path = pagePath(props.location);\n    const prefix = `/${props.prefix}`;\n    const prefixPos = path.indexOf(prefix);\n\n    const fallbackPagePath = 'index';\n    let mdxPath: string | undefined;\n    if (prefixPos < 0) {\n      mdxPath = fallbackPagePath;\n    } else {\n      const pathWithoutPrefix = path.substring(prefixPos + prefix.length);\n      if (pathWithoutPrefix === '' || pathWithoutPrefix === '/') {\n        mdxPath = fallbackPagePath;\n      } else {\n        mdxPath = pathWithoutPrefix.substring(1);\n        if (mdxPath.endsWith('/')) {\n          mdxPath = mdxPath.substring(0, mdxPath.length - 1);\n        }\n      }\n    }\n\n    for (let i = 0; i < mdxNodes.length; i += 1) {\n      const mdxNode = mdxNodes[i];\n      if (mdxPath === mdxNode.path) {\n        return mdxNode;\n      }\n    }\n\n    return undefined;\n  }\n\n  function getMenuName(mdxNode: any, tocItem: any): string {\n    if (props.menuTitle && mdxNode.frontmatter !== undefined) {\n      if (mdxNode.frontmatter.menuTitle !== null) {\n        if (mdxNode.frontmatter.order !== null) {\n          return `${mdxNode.frontmatter.order}. ${mdxNode.frontmatter.menuTitle}`;\n        }\n        return `${mdxNode.frontmatter.menuTitle}`;\n      }\n    }\n\n    return tocItem.title;\n  }\n\n  const globalToc = (\n    <ol>\n      {Object.entries(groupToMdxNodes).map(([group, groupedMdxNodes]) => {\n        function renderMdxNodes() {\n          return groupedMdxNodes.flatMap((mdxNode) => {\n            return mdxNode.tableOfContents.items.map(\n              (tocItem: any, i: number) => {\n                const href = mdxNode.href\n                  ? `${mdxNode.href}${i !== 0 ? tocItem.url : ''}`\n                  : null;\n                const menuName = getMenuName(mdxNode, tocItem);\n                return (\n                  <li\n                    key={href}\n                    className={`${styles.tocLeaf} ${\n                      href === pagePath(props.location)\n                        ? styles.tocLeafActive\n                        : ''\n                    }`}\n                  >\n                    {(() => {\n                      if (href) {\n                        if (href.includes('://')) {\n                          return (\n                            <OutboundLink href={href} title={tocItem.title}>\n                              {tocItem.title}\n                            </OutboundLink>\n                          );\n                        }\n                        return (\n                          <Link to={href} title={menuName}>\n                            {menuName}\n                          </Link>\n                        );\n                      }\n                      return <span>{menuName}</span>;\n                    })()}\n                  </li>\n                );\n              },\n            );\n          });\n        }\n\n        if (group === 'root') {\n          return renderMdxNodes();\n        }\n\n        return (\n          <li key={`group-${group}`} className={styles.tocGroup}>\n            <span className={styles.tocGroupLabel}>{group}</span>\n            <ol>{renderMdxNodes()}</ol>\n          </li>\n        );\n      })}\n    </ol>\n  );\n\n  return (\n    <MDXProvider components={mdxComponents}>\n      <BaseLayout\n        location={props.location}\n        pageTitle={pageTitle}\n        pageDescription={pageDescription}\n        contentClassName={styles.outerWrapper}\n        main={false}\n        extraSidebarContent={globalToc}\n      >\n        <div className={styles.wrapper}>\n          <div className={styles.globalTocWrapper}>\n            <nav>{globalToc}</nav>\n          </div>\n          <div className={styles.content}>\n            <Content className=\"ant-typography\" role=\"main\">\n              {props.children}\n              <div className={styles.footer}>\n                {githubHref ? (\n                  <div className={styles.editOnGitHub}>\n                    <OutboundLink href={githubHref}>\n                      <GithubOutlined /> Edit this page\n                    </OutboundLink>\n                  </div>\n                ) : (\n                  ''\n                )}\n                {props.showPrevNextButton !== false && prevHref ? (\n                  <Link className={styles.prevButton} to={prevHref}>\n                    <Button>\n                      <LeftOutlined />\n                      <span className={styles.buttonLabel}> {prevLabel}</span>\n                    </Button>\n                  </Link>\n                ) : (\n                  ''\n                )}\n                {props.showPrevNextButton !== false && nextHref ? (\n                  <Link className={styles.nextButton} to={nextHref}>\n                    <Button>\n                      <span className={styles.buttonLabel}>{nextLabel} </span>\n                      <RightOutlined />\n                    </Button>\n                  </Link>\n                ) : (\n                  ''\n                )}\n              </div>\n            </Content>\n          </div>\n          <div className={styles.pageTocWrapper} role=\"directory\">\n            <StickyBox offsetTop={24} offsetBottom={24}>\n              <nav>\n                <div className={styles.pageToc} />\n                <div className={styles.newsletter}>\n                  <Paragraph>Like what we're doing?</Paragraph>\n                  <Mailchimp />\n                </div>\n              </nav>\n            </StickyBox>\n          </div>\n        </div>\n      </BaseLayout>\n    </MDXProvider>\n  );\n};\n\nexport default MdxLayout;\n","import { WindowLocation } from '@reach/router';\nimport { withPrefix } from 'gatsby';\n\nconst prefix = withPrefix('/');\n\nexport default (location: WindowLocation) => {\n  let path = location.pathname;\n  if (path.startsWith(prefix)) {\n    path = path.substring(prefix.length - 1);\n  }\n\n  if (path.length > 1 && path.endsWith('/')) {\n    path = path.substring(0, path.length - 1);\n  } else if (path.endsWith('/index')) {\n    path = path.substring(0, path.length - 6);\n  } else if (path.endsWith('/index.html')) {\n    path = path.substring(0, path.length - 11);\n  }\n\n  return path;\n};\n"],"names":["module","exports","options","tocElement","forEach","some","body","document","currentlyHighlighting","SPACE_CHAR","createEl","d","container","link","appendChild","data","item","createElement","a","listItemClass","setAttribute","onClick","onclick","includeTitleTags","textContent","includeHtml","childNodes","length","call","node","cloneNode","basePath","id","linkClass","nodeName","extraLinkClasses","createLink","children","list","createList","isCollapsed","child","listElement","orderedList","classes","listClass","extraListClasses","collapsibleClass","isCollapsedClass","getHeadingTopPos","obj","position","offsetTop","hasInnerContainers","offsetParent","removeCollapsedFromParents","element","className","indexOf","split","join","parentNode","enableTocAnimation","disableTocAnimation","event","target","srcElement","render","parent","firstChild","removeChild","updateToc","headingsArray","top","scrollContainer","querySelector","scrollTop","documentElement","positionFixedSelector","posFixedEl","fixedSidebarOffset","positionFixedClass","updateFixedSidebarClass","topHeader","headings","heading","i","headingsOffset","tocLinks","querySelectorAll","tocLink","activeLinkClass","tocLis","tocLi","activeListItemClass","activeTocLink","replace","li","tocLists","nextSibling","tocSelector","contentSelector","headingSelector","ignoreSelector","collapseDepth","scrollSmooth","scrollSmoothDuration","scrollSmoothOffset","scrollEndCallback","e","throttleTimeout","skipRendering","headingLabelCallback","ignoreHiddenElements","headingObjectCallback","disableTocScrollSync","root","g","this","window","global","buildHtml","parseContent","defaultOptions","tocbot","BuildHtml","ParseContent","updateTocScroll","supports","addEventListener","hasOwnProperty","Object","prototype","destroy","getTocElement","innerHTML","removeEventListener","_scrollListener","_clickListener","init","customOptions","extend","state","duration","offset","_buildHtml","_parseContent","_headingsArray","contentElement","getContentElement","selectHeadings","nestedHeadings","nestHeadingsArray","nest","throttle","isTop","scrollingElement","eventPhase","currentTarget","timeout","clearTimeout","setTimeout","refresh","arguments","source","key","fn","threshhold","scope","last","deferTimer","context","now","Date","args","apply","console","warn","reduce","getLastItem","array","getHeadingLevel","toUpperCase","getHeadingObject","HTMLElement","offsetHeight","headingLabel","getAttribute","String","trim","headingLevel","prev","curr","currentHeading","level","lastItem","counter","undefined","push","addNode","selectors","map","selector","initSmoothScrolling","pageUrl","location","hash","stripHash","href","url","slice","lastIndexOf","n","tagName","toLowerCase","charAt","timeStart","timeElapsed","start","pageYOffset","opt","callback","easing","easeInOutQuad","tgt","decodeURI","distance","getBoundingClientRect","loop","time","scrollTo","requestAnimationFrame","end","t","b","c","jump","getElementById","substring","test","tabIndex","focus","toc","scrollHeight","clientHeight","activeItem","ErrorBoundary","_React$Component","_super","_this","error","info","componentStack","value","setState","_this$props","props","message","description","_this$state","errorMessage","toString","errorDescription","type","__rest","s","p","getOwnPropertySymbols","propertyIsEnumerable","iconMapFilled","success","CheckCircleFilled","InfoCircleFilled","CloseCircleFilled","warning","ExclamationCircleFilled","iconMapOutlined","CheckCircleOutlined","InfoCircleOutlined","CloseCircleOutlined","ExclamationCircleOutlined","Alert","_a","_classNames2","customizePrefixCls","prefixCls","banner","_a$className","style","onMouseEnter","onMouseLeave","afterClose","showIcon","closable","closeText","_a$closeIcon","closeIcon","CloseOutlined","action","_React$useState","_React$useState2","closed","setClosed","ref","_React$useContext","getPrefixCls","direction","handleClose","onClose","isClosable","getType","isShowIcon","alertCls","concat","dataOrAriaProps","keys","startsWith","getDataOrAriaProps","visible","motionName","motionAppear","motionEnter","onLeaveStart","maxHeight","onLeaveEnd","_ref","icon","iconType","motionClassName","motionStyle","role","AntdIcon","displayName","React","_Alert","Tip","Warning","WarningOutlined","useRaf","rafRef","useRef","removedRef","useEffect","current","raf","_len","Array","_key","TabNode","_classNames","active","_ref$tab","tab","disabled","renderWrapper","removeAriaLabel","editable","onRemove","onFocus","tabPrefix","removable","onInternalClick","stopPropagation","onKeyDown","KeyCode","includes","which","preventDefault","onEdit","removeIcon","DEFAULT_SIZE","width","height","left","right","autoAdjustOverflow","adjustX","adjustY","targetOffset","topLeft","points","overflow","topCenter","topRight","bottomLeft","bottomCenter","bottomRight","ESC","TAB","useAccessibility","setTriggerVisible","triggerRef","menuRef","menuClassName","onVisibleChange","handleCloseMenuAndReturnFocus","handleKeyDown","keyCode","_menuRef$current$clas","_menuRef$current$quer","_menuRef$current","menuList","focusOpenedMenu","returnFocus","_triggerRef$current","_triggerRef$current$t","_triggerRef$current$t2","_excluded","Dropdown","_props$arrow","arrow","_props$prefixCls","transitionName","animation","align","_props$placement","placement","_props$placements","placements","getPopupContainer","showAction","hideAction","overlayClassName","overlayStyle","_props$trigger","trigger","otherProps","triggerVisible","mergedVisible","openClassName","childrenProps","childClassName","minOverlayWidthMatchTrigger","alignPoint","getOverlayElement","overlay","onOverlayClick","overlayProps","getMenuElement","overlayElement","extraOverlayProps","triggerHideAction","builtinPlacements","popupClassName","popupStyle","popupPlacement","popupAlign","popupTransitionName","popupAnimation","popupVisible","stretch","popup","onPopupVisibleChange","newVisible","onVisibleChangeProp","AddButton","locale","showAdd","addAriaLabel","addIcon","OperationNode","tabs","mobile","_ref$moreIcon","moreIcon","moreTransitionName","tabBarGutter","rtl","onTabClick","_useState","useState","_useState2","open","setOpen","_useState3","_useState4","selectedKey","setSelectedKey","popupId","dropdownPrefix","selectedItemId","dropdownAriaLabel","menu","_ref2","domEvent","selectedKeys","selectOffset","enabledTabs","filter","selectedIndex","findIndex","len","ele","scrollIntoView","moreStyle","visibility","order","moreNode","mouseEnterDelay","mouseLeaveDelay","_","next","createContext","SPEED_OFF_MULTIPLE","Math","pow","useSyncState","defaultState","onChange","stateRef","forceUpdate","updater","newValue","ExtraContent","content","extra","assertExtra","TabNavList","cacheRefs","TabContext","animated","activeKey","tabPosition","onTabScroll","tabsWrapperRef","tabListRef","operationsRef","innerAddButtonRef","_useRefs","Map","has","set","get","delete","_useRefs2","getBtnRef","removeBtnRef","tabPositionTopOrBottom","_useSyncState","_useSyncState2","transformLeft","setTransformLeft","_useSyncState3","_useSyncState4","transformTop","setTransformTop","wrapperScrollWidth","setWrapperScrollWidth","wrapperScrollHeight","setWrapperScrollHeight","_useState5","_useState6","wrapperContentWidth","setWrapperContentWidth","_useState7","_useState8","wrapperContentHeight","setWrapperContentHeight","_useState9","_useState10","wrapperWidth","setWrapperWidth","_useState11","_useState12","wrapperHeight","setWrapperHeight","_useState13","_useState14","addWidth","setAddWidth","_useState15","_useState16","addHeight","setAddHeight","_useRafState","batchRef","flushUpdate","useRafState","_useRafState2","tabSizes","setTabSizes","tabOffsets","holderScrollWidth","useMemo","_tabs$","lastOffset","rightOffset","_tabs","entity","useOffsets","operationsHiddenClassName","transformMin","transformMax","alignInRange","max","min","touchMovingRef","_useState17","_useState18","lockAnimation","setLockAnimation","doLockAnimation","clearTouchMoving","scrollToTab","tabOffset","newTransform","_newTransform","onOffset","touchPosition","setTouchPosition","lastTimestamp","setLastTimestamp","lastTimeDiff","setLastTimeDiff","setLastOffset","motionRef","lastWheelDirectionRef","touchEventsRef","onTouchStart","_e$touches$","touches","screenX","screenY","x","y","clearInterval","onTouchMove","_e$touches$2","offsetX","offsetY","onTouchEnd","distanceX","distanceY","absX","abs","absY","currentX","currentY","setInterval","onWheel","deltaX","deltaY","mixed","onProxyTouchMove","onProxyTouchEnd","passive","useTouchMove","doMove","_useVisibleRange","containerSize","tabContentNodeSize","addNodeSize","unit","transformSize","basicSize","tabContentSize","addSize","mergedBasicSize","endIndex","startIndex","_i","useVisibleRange","_useVisibleRange2","visibleStart","visibleEnd","tabNodeStyle","marginTop","tabNodes","scrollLeft","onListHolderResize","_tabsWrapperRef$curre","_tabsWrapperRef$curre2","_innerAddButtonRef$cu","_innerAddButtonRef$cu2","_operationsRef$curren","_operationsRef$curren2","_tabListRef$current","_tabListRef$current2","_operationsRef$curren3","offsetWidth","newAddWidth","newAddHeight","newOperationWidth","newOperationHeight","newWrapperScrollWidth","newWrapperScrollHeight","isOperationHidden","newSizes","btnNode","offsetLeft","startHiddenTabs","endHiddenTabs","hiddenTabs","_useState19","_useState20","inkStyle","setInkStyle","activeTabOffset","inkBarRafRef","cleanInkBarRaf","newInkStyle","pingLeft","pingRight","pingTop","pingBottom","hasDropdown","wrapPrefix","onResize","transform","transition","inkBar","tabMoving","TabPanelList","destroyInactiveTabPane","tabPaneAnimated","tabPane","activeIndex","tabKey","TabPane","forceRender","visited","setVisited","mergedStyle","overflowY","display","uuid","Tabs","mergedAnimated","_ref$prefixCls","defaultActiveKey","_ref$animated","_ref$tabPosition","tabBarStyle","tabBarExtraContent","renderTabBar","restProps","toArray","parseTabList","setMobile","isMobile","_useMergedState","useMergedState","defaultValue","_useMergedState2","mergedActiveKey","setMergedActiveKey","setActiveIndex","_tabs$newActiveIndex","newActiveIndex","_useMergedState3","_useMergedState4","mergedId","setMergedId","mergedTabPosition","tabNavBar","sharedProps","tabNavBarProps","isActiveChanged","panes","Provider","ForwardTabs","propSize","size","_onEdit","hideAdd","centered","_props$moreIcon","EllipsisOutlined","editType","rootPrefixCls","devWarning","SizeContext","contextSize","TypeLink","simpleName","decodeURIComponent","name","lastDotIdx","showParams","optionIndex","suffix","plural","match","title","replaced","simpleTypeNameWithHref","OutboundLink","maxWidth","marginLeft","marginRight","versions","gradleDependency","statements","dependencies","dependency","groupId","artifactId","boms","bom","version","gradleKotlinDependency","mavenDependency","_Tabs","CodeBlock","language","filename","isString","str","Step","onStepClick","stepIndex","iconNode","_this$props2","progressDot","stepIcon","stepNumber","status","iconPrefix","icons","iconClassName","finish","iconDot","index","_this$props3","_this$props3$status","wrapperStyle","subTitle","tailContent","classString","stepItemStyle","accessibilityProps","assign","renderIconNode","Steps","_this2","_this$props2$style","labelPlacement","initial","isNav","adjustedLabelPlacement","childProps","cloneElement","defaultProps","validProgress","progress","getSuccessPercent","percent","successPercent","handleGradient","strokeColor","directionConfig","gradients","tempArr","_strokeColor$from","from","_strokeColor$to","to","_strokeColor$directio","rest","sortedGradients","formattedKey","parseFloat","isNaN","sort","backgroundImage","strokeWidth","strokeLinecap","trailColor","backgroundProps","background","trailStyle","backgroundColor","percentStyle","borderRadius","successPercentStyle","successSegment","trailWidth","useTransitionDuration","percentList","paths","prevTimeStamp","updated","path","pathStyle","transitionDuration","gapPosition","isArray","strokeColorList","_useTransitionDuratio","center","pathString","viewBoxString","stackPtg","viewBox","preserveAspectRatio","stroke","fillOpacity","ptg","dashPercent","strokeDasharray","strokeDashoffset","color","isBrowserClient","canUseDom","innerId","setInnerId","retId","stripPercentToNumber","mergedValue","getPathStyles","gapDegree","radius","beginPositionX","beginPositionY","endPositionX","endPositionY","PI","Circle","useId","gradientId","_getPathStyles","gradient","find","x1","y1","x2","y2","stopColor","pathStyles","opacity","reverse","realSuccessPercent","circleSize","circleStyle","fontSize","circleWidth","gapPos","isGradient","_ref2$success","getStrokeColor","wrapperClassName","steps","_props$percent","_props$strokeWidth","round","stepWidth","styledSteps","ProgressStatuses","Progress","renderProgress","showInfo","progressStatus","getProgressStatus","progressInfo","renderProcessInfo","omit","_this$props$percent","parseInt","getPercentNumber","text","format","isLineType","percentNumber","CheckOutlined","C","responsiveMap","xs","sm","md","lg","xl","xxl","subscribers","subUid","screens","matchHandlers","dispatch","pointMap","func","subscribe","register","unsubscribe","token","unregister","screen","matchMediaQuery","handler","mql","removeListener","listener","clear","matches","matchMedia","addListener","refreshOnChange","screensRef","useForceUpdate","supportScreens","responsive","rtlDirection","getDirection","stepsClassName","progressWidth","_Steps","tutorialNodes","useStaticQuery","allMdx","nodes","tutorialType","setTutorialType","pathname","substr","tutorialSteps","entries","tutorialNode","relativeDirectory","frontmatter","menuTitle","buttonLabel","Content","_Layout","Paragraph","_Typography","Title","pathPrefix","withPrefix","mdxComponents","prefixLength","delimiterIndex","typeName","actualHref","Link","pre","_props$children$props","highlight","showlineno","h1","h2","h3","h4","table","thead","tbody","tfoot","th","filterTableCellProps","td","AspectRatio","Emoji","Mailchimp","MaxWidth","NoWrap","RequiredDependencies","TutorialSteps","ThankYou","loadable","newProps","_objectSpread","rowSpan","rowspan","colSpan","colspan","textAlign","_currentMdxNode$excer","_props$pageContext$hr","_props$pageContext$hr2","useLayoutEffect","pathToMdxNode","candidateMdxNodes","mdxNode","_mdxNode$tableOfConte","sourceInstanceName","prefix","tableOfContents","items","isBookmark","endsWith","prevMdxNode","mdxNodes","groupToMdxNodes","groupName","mdxNodePathsOrBookmarks","mdxNodePaths","mdxNodePath","prevNodePath","nextNodePath","groupedMdxNodes","bookmarks","_ref3","bookmarkTitle","prevLabel","nextLabel","prevHref","nextHref","currentMdxNode","mdxPath","pagePath","prefixPos","fallbackPagePath","pathWithoutPrefix","findCurrentMdxNode","pageTitle","pageTitleSuffix","pageDescription","excerpt","relpath","githubHref","noEdit","pageContext","hrefs","label","globalToc","_ref4","group","renderMdxNodes","flatMap","tocItem","menuName","getMenuName","styles","MDXProvider","components","BaseLayout","contentClassName","main","extraSidebarContent","GithubOutlined","showPrevNextButton","_Button","LeftOutlined","RightOutlined","StickyBox","offsetBottom"],"sourceRoot":""}
\ No newline at end of file
diff --git a/404.html b/404.html
index fc84a109228..8256c0f7dd0 100644
--- a/404.html
+++ b/404.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="ie=edge"/><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"/><link href="/styles.d9e09b84e4c27ab3a1b1.css" rel="stylesheet" type="text/css"/><meta name="generator" content="Gatsby 3.15.0"/><link rel="preconnect" href="https://www.google-analytics.com"/><link rel="dns-prefetch" href="https://www.google-analytics.com"/><style>.gatsby-image-wrapper{position:relative;overflow:hidden}.gatsby-image-wrapper picture.object-fit-polyfill{position:static!important}.gatsby-image-wrapper img{bottom:0;height:100%;left:0;margin:0;max-width:none;padding:0;position:absolute;right:0;top:0;width:100%;object-fit:cover}.gatsby-image-wrapper [data-main-image]{opacity:0;transform:translateZ(0);transition:opacity .25s linear;will-change:opacity}.gatsby-image-wrapper-constrained{display:inline-block;vertical-align:top}</style><noscript><style>.gatsby-image-wrapper noscript [data-main-image]{opacity:1!important}.gatsby-image-wrapper [data-placeholder-image]{opacity:0!important}</style></noscript><script type="module">const e="undefined"!=typeof HTMLImageElement&&"loading"in HTMLImageElement.prototype;e&&document.body.addEventListener("load",(function(e){if(void 0===e.target.dataset.mainImage)return;if(void 0===e.target.dataset.gatsbyImageSsr)return;const t=e.target;let a=null,n=t;for(;null===a&&n;)void 0!==n.parentNode.dataset.gatsbyImageWrapper&&(a=n.parentNode),n=n.parentNode;const o=a.querySelector("[data-placeholder-image]"),r=new Image;r.src=t.currentSrc,r.decode().catch((()=>{})).then((()=>{t.style.opacity=1,o&&(o.style.opacity=0,o.style.transition="opacity 500ms linear")}))}),!0);</script><link rel="icon" href="/favicon-32x32.png?v=5d7ae48fc57b82138b93791a4afb4569" type="image/png"/><link rel="icon" href="/favicon.svg?v=5d7ae48fc57b82138b93791a4afb4569" type="image/svg+xml"/><link rel="manifest" href="/manifest.webmanifest" crossorigin="anonymous"/><link rel="apple-touch-icon" sizes="48x48" href="/icons/icon-48x48.png?v=5d7ae48fc57b82138b93791a4afb4569"/><link rel="apple-touch-icon" sizes="72x72" href="/icons/icon-72x72.png?v=5d7ae48fc57b82138b93791a4afb4569"/><link rel="apple-touch-icon" sizes="96x96" href="/icons/icon-96x96.png?v=5d7ae48fc57b82138b93791a4afb4569"/><link rel="apple-touch-icon" sizes="144x144" href="/icons/icon-144x144.png?v=5d7ae48fc57b82138b93791a4afb4569"/><link rel="apple-touch-icon" sizes="192x192" href="/icons/icon-192x192.png?v=5d7ae48fc57b82138b93791a4afb4569"/><link rel="apple-touch-icon" sizes="256x256" href="/icons/icon-256x256.png?v=5d7ae48fc57b82138b93791a4afb4569"/><link rel="apple-touch-icon" sizes="384x384" href="/icons/icon-384x384.png?v=5d7ae48fc57b82138b93791a4afb4569"/><link rel="apple-touch-icon" sizes="512x512" href="/icons/icon-512x512.png?v=5d7ae48fc57b82138b93791a4afb4569"/><link rel="sitemap" type="application/xml" href="/sitemap/sitemap-index.xml"/><title data-react-helmet="true">Not found
404

Like Armeria?
Star us ⭐️

×
Not found
404

Like Armeria?
Star us ⭐️

×
\ No newline at end of file + } \ No newline at end of file diff --git a/404/index.html b/404/index.html index 7fc5390d934..a1aa1949ea0 100644 --- a/404/index.html +++ b/404/index.html @@ -1,4 +1,4 @@ -Not found
404

Like Armeria?
Star us ⭐️

×
Not found
404

Like Armeria?
Star us ⭐️

×
\ No newline at end of file + } \ No newline at end of file diff --git a/4f2b08f064cdf17dbc3512123088454777527436-00bdf03a0f8d59ca7f27.js b/8f791f050038e642675e317ce8ff5fa304709d5c-4aec07cea9dddc0e8966.js similarity index 99% rename from 4f2b08f064cdf17dbc3512123088454777527436-00bdf03a0f8d59ca7f27.js rename to 8f791f050038e642675e317ce8ff5fa304709d5c-4aec07cea9dddc0e8966.js index 98dd8d69b94..5d1e2959e7b 100644 --- a/4f2b08f064cdf17dbc3512123088454777527436-00bdf03a0f8d59ca7f27.js +++ b/8f791f050038e642675e317ce8ff5fa304709d5c-4aec07cea9dddc0e8966.js @@ -1,3 +1,3 @@ -/*! For license information please see 4f2b08f064cdf17dbc3512123088454777527436-00bdf03a0f8d59ca7f27.js.LICENSE.txt */ -(self.webpackChunkarmeria_site=self.webpackChunkarmeria_site||[]).push([[4766],{67228:function(e){e.exports=function(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=new Array(n);t=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o},e.exports.__esModule=!0,e.exports.default=e.exports},319:function(e,n,t){var r=t(23646),a=t(46860),o=t(60379),i=t(98206);e.exports=function(e){return r(e)||a(e)||o(e)||i()},e.exports.__esModule=!0,e.exports.default=e.exports},60379:function(e,n,t){var r=t(67228);e.exports=function(e,n){if(e){if("string"==typeof e)return r(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?r(e,n):void 0}},e.exports.__esModule=!0,e.exports.default=e.exports},18830:function(e,n){"use strict";n.Q=function(e){var n,t=[],r=String(e||""),a=r.indexOf(","),o=0,i=!1;for(;!i;)-1===a&&(a=r.length,i=!0),!(n=r.slice(o,a).trim())&&i||t.push(n),o=a+1,a=r.indexOf(",",o);return t}},18304:function(e){"use strict";e.exports=function(e,t){var r,a,o,i=e||"",s=t||"div",l={},c=0;for(;c=97&&n<=122||n>=65&&n<=90}},42916:function(e,n,t){"use strict";var r=t(32792),a=t(61601);e.exports=function(e){return r(e)||a(e)}},61601:function(e){"use strict";e.exports=function(e){var n="string"==typeof e?e.charCodeAt(0):e;return n>=48&&n<=57}},97645:function(e){"use strict";e.exports=function(e){var n="string"==typeof e?e.charCodeAt(0):e;return n>=97&&n<=102||n>=65&&n<=70||n>=48&&n<=57}},15646:function(e){"use strict";var n;e.exports=function(e){var t,r="&"+e+";";if((n=n||document.createElement("i")).innerHTML=r,59===(t=n.textContent).charCodeAt(t.length-1)&&"semi"!==e)return!1;return t!==r&&t}},34063:function(e,n,t){"use strict";var r=t(37452),a=t(93580),o=t(61601),i=t(97645),s=t(42916),l=t(15646);e.exports=function(e,n){var t,o,i={};n||(n={});for(o in d)t=n[o],i[o]=null==t?d[o]:t;(i.position.indent||i.position.start)&&(i.indent=i.position.indent||[],i.position=i.position.start);return function(e,n){var t,o,i,d,x,k,S,O,_,A,E,N,P,C,j,T,F,L,$,R=n.additional,I=n.nonTerminated,D=n.text,M=n.reference,z=n.warning,B=n.textContext,H=n.referenceContext,U=n.warningContext,G=n.position,q=n.indent||[],Z=e.length,W=0,X=-1,K=G.column||1,V=G.line||1,Y="",J=[];"string"==typeof R&&(R=R.charCodeAt(0));T=Q(),O=z?ee:p,W--,Z++;for(;++W65535&&(A+=u((k-=65536)>>>10|55296),k=56320|1023&k),k=A+u(k))):C!==f&&O(4,L)),k?(ne(),T=Q(),W=$-1,K+=$-P+1,J.push(k),(F=Q()).offset++,M&&M.call(H,k,{start:T,end:F},e.slice(P-1,$)),T=F):(d=e.slice(P-1,$),Y+=d,K+=d.length,W=$-1)}else 10===x&&(V++,X++,K=0),x==x?(Y+=u(x),K++):ne();return J.join("");function Q(){return{line:V,column:K,offset:W+(G.offset||0)}}function ee(e,n){var t=Q();t.column+=n,t.offset+=n,z.call(U,y[e],t,e)}function ne(){Y&&(J.push(Y),D&&D.call(B,Y,{start:T,end:Q()}),Y="")}}(e,i)};var c={}.hasOwnProperty,u=String.fromCharCode,p=Function.prototype,d={warning:null,reference:null,text:null,warningContext:null,referenceContext:null,textContext:null,position:{},additional:null,attribute:!1,nonTerminated:!0},f="named",g="hexadecimal",m="decimal",h={hexadecimal:16,decimal:10},b={};b.named=s,b[m]=o,b[g]=i;var y={};function v(e){return e>=55296&&e<=57343||e>1114111}function w(e){return e>=1&&e<=8||11===e||e>=13&&e<=31||e>=127&&e<=159||e>=64976&&e<=65007||65535==(65535&e)||65534==(65535&e)}y[1]="Named character references must be terminated by a semicolon",y[2]="Numeric character references must be terminated by a semicolon",y[3]="Named character references cannot be empty",y[4]="Numeric character references cannot be empty",y[5]="Named character references must be known",y[6]="Numeric character references cannot be disallowed",y[7]="Numeric character references cannot be outside the permissible Unicode range"},27936:function(e,n,t){var r=function(e){var n=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,t=0,r={},a={manual:e.Prism&&e.Prism.manual,disableWorkerMessageHandler:e.Prism&&e.Prism.disableWorkerMessageHandler,util:{encode:function e(n){return n instanceof o?new o(n.type,e(n.content),n.alias):Array.isArray(n)?n.map(e):n.replace(/&/g,"&").replace(/=p.reach);S+=k.value.length,k=k.next){var O=k.value;if(n.length>e.length)return;if(!(O instanceof o)){var _,A=1;if(y){if(!(_=i(x,S,e,b))||_.index>=e.length)break;var E=_.index,N=_.index+_[0].length,P=S;for(P+=k.value.length;E>=P;)P+=(k=k.next).value.length;if(S=P-=k.value.length,k.value instanceof o)continue;for(var C=k;C!==n.tail&&(Pp.reach&&(p.reach=L);var $=k.prev;if(T&&($=c(n,$,T),S+=T.length),u(n,$,A),k=c(n,$,new o(d,h?a.tokenize(j,h):j,v,j)),F&&c(n,k,F),A>1){var R={cause:d+","+g,reach:L};s(e,n,t,k.prev,S,R),p&&R.reach>p.reach&&(p.reach=R.reach)}}}}}}function l(){var e={value:null,prev:null,next:null},n={value:null,prev:e,next:null};e.next=n,this.head=e,this.tail=n,this.length=0}function c(e,n,t){var r=n.next,a={value:t,prev:n,next:r};return n.next=a,r.prev=a,e.length++,a}function u(e,n,t){for(var r=n.next,a=0;a"+o.content+""},!e.document)return e.addEventListener?(a.disableWorkerMessageHandler||e.addEventListener("message",(function(n){var t=JSON.parse(n.data),r=t.language,o=t.code,i=t.immediateClose;e.postMessage(a.highlight(o,a.languages[r],r)),i&&e.close()}),!1),a):a;var p=a.util.currentScript();function d(){a.manual||a.highlightAll()}if(p&&(a.filename=p.src,p.hasAttribute("data-manual")&&(a.manual=!0)),!a.manual){var f=document.readyState;"loading"===f||"interactive"===f&&p&&p.defer?document.addEventListener("DOMContentLoaded",d):window.requestAnimationFrame?window.requestAnimationFrame(d):window.setTimeout(d,16)}return a}("undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:{});e.exports&&(e.exports=r),void 0!==t.g&&(t.g.Prism=r)},38105:function(e,n,t){"use strict";var r=t(12785),a=t(12720),o=t(57694),i="data";e.exports=function(e,n){var t=r(n),d=n,f=o;if(t in e.normal)return e.property[e.normal[t]];t.length>4&&t.slice(0,4)===i&&s.test(n)&&("-"===n.charAt(4)?d=function(e){var n=e.slice(5).replace(l,p);return i+n.charAt(0).toUpperCase()+n.slice(1)}(n):n=function(e){var n=e.slice(4);if(l.test(n))return e;"-"!==(n=n.replace(c,u)).charAt(0)&&(n="-"+n);return i+n}(n),f=a);return new f(d,n)};var s=/^data[-\w.:]+$/i,l=/-[a-z]/g,c=/[A-Z]/g;function u(e){return"-"+e.toLowerCase()}function p(e){return e.charAt(1).toUpperCase()}},73580:function(e,n,t){"use strict";var r=t(61334),a=t(62625),o=t(31130),i=t(47963),s=t(54502),l=t(14454);e.exports=r([o,a,i,s,l])},54502:function(e,n,t){"use strict";var r=t(11394),a=t(84695),o=r.booleanish,i=r.number,s=r.spaceSeparated;e.exports=a({transform:function(e,n){return"role"===n?n:"aria-"+n.slice(4).toLowerCase()},properties:{ariaActiveDescendant:null,ariaAtomic:o,ariaAutoComplete:null,ariaBusy:o,ariaChecked:o,ariaColCount:i,ariaColIndex:i,ariaColSpan:i,ariaControls:s,ariaCurrent:null,ariaDescribedBy:s,ariaDetails:null,ariaDisabled:o,ariaDropEffect:s,ariaErrorMessage:null,ariaExpanded:o,ariaFlowTo:s,ariaGrabbed:o,ariaHasPopup:null,ariaHidden:o,ariaInvalid:null,ariaKeyShortcuts:null,ariaLabel:null,ariaLabelledBy:s,ariaLevel:i,ariaLive:null,ariaModal:o,ariaMultiLine:o,ariaMultiSelectable:o,ariaOrientation:null,ariaOwns:s,ariaPlaceholder:null,ariaPosInSet:i,ariaPressed:o,ariaReadOnly:o,ariaRelevant:null,ariaRequired:o,ariaRoleDescription:s,ariaRowCount:i,ariaRowIndex:i,ariaRowSpan:i,ariaSelected:o,ariaSetSize:i,ariaSort:null,ariaValueMax:i,ariaValueMin:i,ariaValueNow:i,ariaValueText:null,role:null}})},14454:function(e,n,t){"use strict";var r=t(11394),a=t(84695),o=t(27465),i=r.boolean,s=r.overloadedBoolean,l=r.booleanish,c=r.number,u=r.spaceSeparated,p=r.commaSeparated;e.exports=a({space:"html",attributes:{acceptcharset:"accept-charset",classname:"class",htmlfor:"for",httpequiv:"http-equiv"},transform:o,mustUseProperty:["checked","multiple","muted","selected"],properties:{abbr:null,accept:p,acceptCharset:u,accessKey:u,action:null,allow:null,allowFullScreen:i,allowPaymentRequest:i,allowUserMedia:i,alt:null,as:null,async:i,autoCapitalize:null,autoComplete:u,autoFocus:i,autoPlay:i,capture:i,charSet:null,checked:i,cite:null,className:u,cols:c,colSpan:null,content:null,contentEditable:l,controls:i,controlsList:u,coords:c|p,crossOrigin:null,data:null,dateTime:null,decoding:null,default:i,defer:i,dir:null,dirName:null,disabled:i,download:s,draggable:l,encType:null,enterKeyHint:null,form:null,formAction:null,formEncType:null,formMethod:null,formNoValidate:i,formTarget:null,headers:u,height:c,hidden:i,high:c,href:null,hrefLang:null,htmlFor:u,httpEquiv:u,id:null,imageSizes:null,imageSrcSet:p,inputMode:null,integrity:null,is:null,isMap:i,itemId:null,itemProp:u,itemRef:u,itemScope:i,itemType:u,kind:null,label:null,lang:null,language:null,list:null,loading:null,loop:i,low:c,manifest:null,max:null,maxLength:c,media:null,method:null,min:null,minLength:c,multiple:i,muted:i,name:null,nonce:null,noModule:i,noValidate:i,onAbort:null,onAfterPrint:null,onAuxClick:null,onBeforePrint:null,onBeforeUnload:null,onBlur:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onContextMenu:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnded:null,onError:null,onFocus:null,onFormData:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLanguageChange:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadEnd:null,onLoadStart:null,onMessage:null,onMessageError:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRejectionHandled:null,onReset:null,onResize:null,onScroll:null,onSecurityPolicyViolation:null,onSeeked:null,onSeeking:null,onSelect:null,onSlotChange:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnhandledRejection:null,onUnload:null,onVolumeChange:null,onWaiting:null,onWheel:null,open:i,optimum:c,pattern:null,ping:u,placeholder:null,playsInline:i,poster:null,preload:null,readOnly:i,referrerPolicy:null,rel:u,required:i,reversed:i,rows:c,rowSpan:c,sandbox:u,scope:null,scoped:i,seamless:i,selected:i,shape:null,size:c,sizes:null,slot:null,span:c,spellCheck:l,src:null,srcDoc:null,srcLang:null,srcSet:p,start:c,step:null,style:null,tabIndex:c,target:null,title:null,translate:null,type:null,typeMustMatch:i,useMap:null,value:l,width:c,wrap:null,align:null,aLink:null,archive:u,axis:null,background:null,bgColor:null,border:c,borderColor:null,bottomMargin:c,cellPadding:null,cellSpacing:null,char:null,charOff:null,classId:null,clear:null,code:null,codeBase:null,codeType:null,color:null,compact:i,declare:i,event:null,face:null,frame:null,frameBorder:null,hSpace:c,leftMargin:c,link:null,longDesc:null,lowSrc:null,marginHeight:c,marginWidth:c,noResize:i,noHref:i,noShade:i,noWrap:i,object:null,profile:null,prompt:null,rev:null,rightMargin:c,rules:null,scheme:null,scrolling:l,standby:null,summary:null,text:null,topMargin:c,valueType:null,version:null,vAlign:null,vLink:null,vSpace:c,allowTransparency:null,autoCorrect:null,autoSave:null,disablePictureInPicture:i,disableRemotePlayback:i,prefix:null,property:null,results:c,security:null,unselectable:null}})},27465:function(e,n,t){"use strict";var r=t(24596);e.exports=function(e,n){return r(e,n.toLowerCase())}},24596:function(e){"use strict";e.exports=function(e,n){return n in e?e[n]:n}},84695:function(e,n,t){"use strict";var r=t(12785),a=t(23295),o=t(12720);e.exports=function(e){var n,t,i=e.space,s=e.mustUseProperty||[],l=e.attributes||{},c=e.properties,u=e.transform,p={},d={};for(n in c)t=new o(n,u(l,n),c[n],i),-1!==s.indexOf(n)&&(t.mustUseProperty=!0),p[n]=t,d[r(n)]=n,d[r(t.attribute)]=n;return new a(p,d,i)}},12720:function(e,n,t){"use strict";var r=t(57694),a=t(11394);e.exports=s,s.prototype=new r,s.prototype.defined=!0;var o=["boolean","booleanish","overloadedBoolean","number","commaSeparated","spaceSeparated","commaOrSpaceSeparated"],i=o.length;function s(e,n,t,s){var c,u=-1;for(l(this,"space",s),r.call(this,e,n);++u=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}function p(e,n){if(!(e instanceof n))throw new TypeError("Cannot call a class as a function")}function d(e,n){for(var t=0;t>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+n),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+n),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:r},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:t}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:r},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:r.entity}}],environment:{pattern:RegExp("\\$?"+n),alias:"constant"},variable:r.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},t.inside=e.languages.bash;for(var a=["comment","function-name","for-or-select","assign-left","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],o=r.variable[1].inside,i=0;i>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),e.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),e.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},e.languages.c.string],char:e.languages.c.char,comment:e.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:e.languages.c}}}}),e.languages.insertBefore("c","function",{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/}),delete e.languages.c.boolean}e.exports=n,n.displayName="c",n.aliases=[]},77657:function(e){"use strict";function n(e){e.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/}}e.exports=n,n.displayName="clike",n.aliases=[]},6990:function(e,n,t){"use strict";var r=t(40872);function a(e){e.register(r),function(e){var n=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,t=/\b(?!)\w+(?:\s*\.\s*\w+)*\b/.source.replace(//g,(function(){return n.source}));e.languages.cpp=e.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!)\w+/.source.replace(//g,(function(){return n.source}))),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword:n,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:false|true)\b/}),e.languages.insertBefore("cpp","string",{module:{pattern:RegExp(/(\b(?:import|module)\s+)/.source+"(?:"+/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source+"|"+/(?:\s*:\s*)?|:\s*/.source.replace(//g,(function(){return t}))+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),e.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:e.languages.cpp}}}}),e.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),e.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:e.languages.extend("cpp",{})}}),e.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},e.languages.cpp["base-clause"])}(e)}e.exports=a,a.displayName="cpp",a.aliases=[]},20802:function(e){"use strict";function n(e){!function(e){var n=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-](?:[^;{\s]|\s+(?![\s{]))*(?:;|(?=\s*\{))/,inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+n.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+n.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+n.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:n,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css;var t=e.languages.markup;t&&(t.tag.addInlined("style","css"),t.tag.addAttribute("style","css"))}(e)}e.exports=n,n.displayName="css",n.aliases=[]},3775:function(e){"use strict";function n(e){e.languages.graphql={comment:/#.*/,description:{pattern:/(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,greedy:!0,alias:"string",inside:{"language-markdown":{pattern:/(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,lookbehind:!0,inside:e.languages.markdown}}},string:{pattern:/"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:false|true)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/\b[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"atom-input":{pattern:/\b[A-Z]\w*Input\b/,alias:"class-name"},scalar:/\b(?:Boolean|Float|ID|Int|String)\b/,constant:/\b[A-Z][A-Z_\d]*\b/,"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*|:\s*|\[)[A-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-mutation":{pattern:/(\bmutation\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-query":{pattern:/(\bquery\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,operator:/[!=|&]|\.{3}/,"property-query":/\w+(?=\s*\()/,object:/\w+(?=\s*\{)/,punctuation:/[!(){}\[\]:=,]/,property:/\w+/},e.hooks.add("after-tokenize",(function(e){if("graphql"===e.language)for(var n=e.tokens.filter((function(e){return"string"!=typeof e&&"comment"!==e.type&&"scalar"!==e.type})),t=0;t0)){var s=d(/^\{$/,/^\}$/);if(-1===s)continue;for(var l=t;l=0&&f(c,"variable-input")}}}}function u(e){return n[t+e]}function p(e,n){n=n||0;for(var t=0;t]?|\+[+=]?|!=?|<(?:<=?|=>?)?|>(?:>>?=?|=)?|&[&=]?|\|[|=]?|\/=?|\^=?|%=?)/,lookbehind:!0},punctuation:/\.+|[{}[\];(),:$]/}),e.languages.insertBefore("groovy","string",{shebang:{pattern:/#!.+/,alias:"comment"}}),e.languages.insertBefore("groovy","punctuation",{"spock-block":/\b(?:and|cleanup|expect|given|setup|then|when|where):/}),e.languages.insertBefore("groovy","function",{annotation:{pattern:/(^|[^.])@\w+/,lookbehind:!0,alias:"punctuation"}}),e.hooks.add("wrap",(function(n){if("groovy"===n.language&&"string"===n.type){var t=n.content.value[0];if("'"!=t){var r=/([^\\])(?:\$(?:\{.*?\}|[\w.]+))/;"$"===t&&(r=/([^\$])(?:\$(?:\{.*?\}|[\w.]+))/),n.content.value=n.content.value.replace(/</g,"<").replace(/&/g,"&"),n.content=e.highlight(n.content.value,{expression:{pattern:r,lookbehind:!0,inside:e.languages.groovy}}),n.classes.push("/"===t?"regex":"gstring")}}}))}e.exports=n,n.displayName="groovy",n.aliases=[]},94576:function(e){"use strict";function n(e){!function(e){function n(e){return RegExp("(^(?:"+e+"):[ \t]*(?![ \t]))[^]+","i")}e.languages.http={"request-line":{pattern:/^(?:CONNECT|DELETE|GET|HEAD|OPTIONS|PATCH|POST|PRI|PUT|SEARCH|TRACE)\s(?:https?:\/\/|\/)\S*\sHTTP\/[\d.]+/m,inside:{method:{pattern:/^[A-Z]+\b/,alias:"property"},"request-target":{pattern:/^(\s)(?:https?:\/\/|\/)\S*(?=\s)/,lookbehind:!0,alias:"url",inside:e.languages.uri},"http-version":{pattern:/^(\s)HTTP\/[\d.]+/,lookbehind:!0,alias:"property"}}},"response-status":{pattern:/^HTTP\/[\d.]+ \d+ .+/m,inside:{"http-version":{pattern:/^HTTP\/[\d.]+/,alias:"property"},"status-code":{pattern:/^(\s)\d+(?=\s)/,lookbehind:!0,alias:"number"},"reason-phrase":{pattern:/^(\s).+/,lookbehind:!0,alias:"string"}}},header:{pattern:/^[\w-]+:.+(?:(?:\r\n?|\n)[ \t].+)*/m,inside:{"header-value":[{pattern:n(/Content-Security-Policy/.source),lookbehind:!0,alias:["csp","languages-csp"],inside:e.languages.csp},{pattern:n(/Public-Key-Pins(?:-Report-Only)?/.source),lookbehind:!0,alias:["hpkp","languages-hpkp"],inside:e.languages.hpkp},{pattern:n(/Strict-Transport-Security/.source),lookbehind:!0,alias:["hsts","languages-hsts"],inside:e.languages.hsts},{pattern:n(/[^:]+/.source),lookbehind:!0}],"header-name":{pattern:/^[^:]+/,alias:"keyword"},punctuation:/^:/}}};var t,r=e.languages,a={"application/javascript":r.javascript,"application/json":r.json||r.javascript,"application/xml":r.xml,"text/xml":r.xml,"text/html":r.html,"text/css":r.css,"text/plain":r.plain},o={"application/json":!0,"application/xml":!0};function i(e){var n=e.replace(/^[a-z]+\//,"");return"(?:"+e+"|"+("\\w+/(?:[\\w.-]+\\+)+"+n+"(?![+\\w.-])")+")"}for(var s in a)if(a[s]){t=t||{};var l=o[s]?i(s):s;t[s.replace(/\//g,"-")]={pattern:RegExp("("+/content-type:\s*/.source+l+/(?:(?:\r\n?|\n)[\w-].*)*(?:\r(?:\n|(?!\n))|\n)/.source+")"+/[^ \t\w-][\s\S]*/.source,"i"),lookbehind:!0,inside:a[s]}}t&&e.languages.insertBefore("http","header",t)}(e)}e.exports=n,n.displayName="http",n.aliases=[]},7863:function(e){"use strict";function n(e){!function(e){var n=/\b(?:abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|exports|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|module|native|new|non-sealed|null|open|opens|package|permits|private|protected|provides|public|record|requires|return|sealed|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\b/,t=/(^|[^\w.])(?:[a-z]\w*\s*\.\s*)*(?:[A-Z]\w*\s*\.\s*)*/.source,r={pattern:RegExp(t+/[A-Z](?:[\d_A-Z]*[a-z]\w*)?\b/.source),lookbehind:!0,inside:{namespace:{pattern:/^[a-z]\w*(?:\s*\.\s*[a-z]\w*)*(?:\s*\.)?/,inside:{punctuation:/\./}},punctuation:/\./}};e.languages.java=e.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"/,lookbehind:!0,greedy:!0},"class-name":[r,{pattern:RegExp(t+/[A-Z]\w*(?=\s+\w+\s*[;,=()])/.source),lookbehind:!0,inside:r.inside}],keyword:n,function:[e.languages.clike.function,{pattern:/(::\s*)[a-z_]\w*/,lookbehind:!0}],number:/\b0b[01][01_]*L?\b|\b0x(?:\.[\da-f_p+-]+|[\da-f_]+(?:\.[\da-f_p+-]+)?)\b|(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?\d[\d_]*)?[dfl]?/i,operator:{pattern:/(^|[^.])(?:<<=?|>>>?=?|->|--|\+\+|&&|\|\||::|[?:~]|[-+*/%&|^!=<>]=?)/m,lookbehind:!0}}),e.languages.insertBefore("java","string",{"triple-quoted-string":{pattern:/"""[ \t]*[\r\n](?:(?:"|"")?(?:\\.|[^"\\]))*"""/,greedy:!0,alias:"string"},char:{pattern:/'(?:\\.|[^'\\\r\n]){1,6}'/,greedy:!0}}),e.languages.insertBefore("java","class-name",{annotation:{pattern:/(^|[^.])@\w+(?:\s*\.\s*\w+)*/,lookbehind:!0,alias:"punctuation"},generics:{pattern:/<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&))*>)*>)*>)*>/,inside:{"class-name":r,keyword:n,punctuation:/[<>(),.:]/,operator:/[?&|]/}},namespace:{pattern:RegExp(/(\b(?:exports|import(?:\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\s+)(?!)[a-z]\w*(?:\.[a-z]\w*)*\.?/.source.replace(//g,(function(){return n.source}))),lookbehind:!0,inside:{punctuation:/\./}}})}(e)}e.exports=n,n.displayName="java",n.aliases=[]},88694:function(e){"use strict";function n(e){e.languages.javascript=e.languages.extend("clike",{"class-name":[e.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),e.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,e.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/,lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:e.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:e.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:e.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:e.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:e.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),e.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:e.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),e.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),e.languages.markup&&(e.languages.markup.tag.addInlined("script","javascript"),e.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),e.languages.js=e.languages.javascript}e.exports=n,n.displayName="javascript",n.aliases=["js"]},55628:function(e){"use strict";function n(e){e.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},e.languages.webmanifest=e.languages.json}e.exports=n,n.displayName="json",n.aliases=["webmanifest"]},45339:function(e){"use strict";function n(e){!function(e){e.languages.kotlin=e.languages.extend("clike",{keyword:{pattern:/(^|[^.])\b(?:abstract|actual|annotation|as|break|by|catch|class|companion|const|constructor|continue|crossinline|data|do|dynamic|else|enum|expect|external|final|finally|for|fun|get|if|import|in|infix|init|inline|inner|interface|internal|is|lateinit|noinline|null|object|open|operator|out|override|package|private|protected|public|reified|return|sealed|set|super|suspend|tailrec|this|throw|to|try|typealias|val|var|vararg|when|where|while)\b/,lookbehind:!0},function:[{pattern:/(?:`[^\r\n`]+`|\b\w+)(?=\s*\()/,greedy:!0},{pattern:/(\.)(?:`[^\r\n`]+`|\w+)(?=\s*\{)/,lookbehind:!0,greedy:!0}],number:/\b(?:0[xX][\da-fA-F]+(?:_[\da-fA-F]+)*|0[bB][01]+(?:_[01]+)*|\d+(?:_\d+)*(?:\.\d+(?:_\d+)*)?(?:[eE][+-]?\d+(?:_\d+)*)?[fFL]?)\b/,operator:/\+[+=]?|-[-=>]?|==?=?|!(?:!|==?)?|[\/*%<>]=?|[?:]:?|\.\.|&&|\|\||\b(?:and|inv|or|shl|shr|ushr|xor)\b/}),delete e.languages.kotlin["class-name"];var n={"interpolation-punctuation":{pattern:/^\$\{?|\}$/,alias:"punctuation"},expression:{pattern:/[\s\S]+/,inside:e.languages.kotlin}};e.languages.insertBefore("kotlin","string",{"string-literal":[{pattern:/"""(?:[^$]|\$(?:(?!\{)|\{[^{}]*\}))*?"""/,alias:"multiline",inside:{interpolation:{pattern:/\$(?:[a-z_]\w*|\{[^{}]*\})/i,inside:n},string:/[\s\S]+/}},{pattern:/"(?:[^"\\\r\n$]|\\.|\$(?:(?!\{)|\{[^{}]*\}))*"/,alias:"singleline",inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$(?:[a-z_]\w*|\{[^{}]*\})/i,lookbehind:!0,inside:n},string:/[\s\S]+/}}],char:{pattern:/'(?:[^'\\\r\n]|\\(?:.|u[a-fA-F0-9]{0,4}))'/,greedy:!0}}),delete e.languages.kotlin.string,e.languages.insertBefore("kotlin","keyword",{annotation:{pattern:/\B@(?:\w+:)?(?:[A-Z]\w*|\[[^\]]+\])/,alias:"builtin"}}),e.languages.insertBefore("kotlin","function",{label:{pattern:/\b\w+@|@\w+\b/,alias:"symbol"}}),e.languages.kt=e.languages.kotlin,e.languages.kts=e.languages.kotlin}(e)}e.exports=n,n.displayName="kotlin",n.aliases=["kt","kts"]},40972:function(e){"use strict";function n(e){e.languages.markup={comment:{pattern://,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern://i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},e.languages.markup.tag.inside["attr-value"].inside.entity=e.languages.markup.entity,e.languages.markup.doctype.inside["internal-subset"].inside=e.languages.markup,e.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.value.replace(/&/,"&"))})),Object.defineProperty(e.languages.markup.tag,"addInlined",{value:function(n,t){var r={};r["language-"+t]={pattern:/(^$)/i,lookbehind:!0,inside:e.languages[t]},r.cdata=/^$/i;var a={"included-cdata":{pattern://i,inside:r}};a["language-"+t]={pattern:/[\s\S]+/,inside:e.languages[t]};var o={};o[n]={pattern:RegExp(/(<__[^>]*>)(?:))*\]\]>|(?!)/.source.replace(/__/g,(function(){return n})),"i"),lookbehind:!0,greedy:!0,inside:a},e.languages.insertBefore("markup","cdata",o)}}),Object.defineProperty(e.languages.markup.tag,"addAttribute",{value:function(n,t){e.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+n+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[t,"language-"+t],inside:e.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),e.languages.html=e.languages.markup,e.languages.mathml=e.languages.markup,e.languages.svg=e.languages.markup,e.languages.xml=e.languages.extend("markup",{}),e.languages.ssml=e.languages.xml,e.languages.atom=e.languages.xml,e.languages.rss=e.languages.xml}e.exports=n,n.displayName="markup",n.aliases=["html","mathml","svg","xml","ssml","atom","rss"]},80990:function(e){"use strict";function n(e){!function(e){var n=/\b(?:bool|bytes|double|s?fixed(?:32|64)|float|[su]?int(?:32|64)|string)\b/;e.languages.protobuf=e.languages.extend("clike",{"class-name":[{pattern:/(\b(?:enum|extend|message|service)\s+)[A-Za-z_]\w*(?=\s*\{)/,lookbehind:!0},{pattern:/(\b(?:rpc\s+\w+|returns)\s*\(\s*(?:stream\s+)?)\.?[A-Za-z_]\w*(?:\.[A-Za-z_]\w*)*(?=\s*\))/,lookbehind:!0}],keyword:/\b(?:enum|extend|extensions|import|message|oneof|option|optional|package|public|repeated|required|reserved|returns|rpc(?=\s+\w)|service|stream|syntax|to)\b(?!\s*=\s*\d)/,function:/\b[a-z_]\w*(?=\s*\()/i}),e.languages.insertBefore("protobuf","operator",{map:{pattern:/\bmap<\s*[\w.]+\s*,\s*[\w.]+\s*>(?=\s+[a-z_]\w*\s*[=;])/i,alias:"class-name",inside:{punctuation:/[<>.,]/,builtin:n}},builtin:n,"positional-class-name":{pattern:/(?:\b|\B\.)[a-z_]\w*(?:\.[a-z_]\w*)*(?=\s+[a-z_]\w*\s*[=;])/i,alias:"class-name",inside:{punctuation:/\./}},annotation:{pattern:/(\[\s*)[a-z_]\w*(?=\s*=)/i,lookbehind:!0}})}(e)}e.exports=n,n.displayName="protobuf",n.aliases=[]},29096:function(e,n,t){"use strict";var r=t(7863);function a(e){e.register(r),e.languages.scala=e.languages.extend("java",{"triple-quoted-string":{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string"},string:{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},keyword:/<-|=>|\b(?:abstract|case|catch|class|def|do|else|extends|final|finally|for|forSome|if|implicit|import|lazy|match|new|null|object|override|package|private|protected|return|sealed|self|super|this|throw|trait|try|type|val|var|while|with|yield)\b/,number:/\b0x(?:[\da-f]*\.)?[\da-f]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e\d+)?[dfl]?/i,builtin:/\b(?:Any|AnyRef|AnyVal|Boolean|Byte|Char|Double|Float|Int|Long|Nothing|Short|String|Unit)\b/,symbol:/'[^\d\s\\]\w*/}),e.languages.insertBefore("scala","triple-quoted-string",{"string-interpolation":{pattern:/\b[a-z]\w*(?:"""(?:[^$]|\$(?:[^{]|\{(?:[^{}]|\{[^{}]*\})*\}))*?"""|"(?:[^$"\r\n]|\$(?:[^{]|\{(?:[^{}]|\{[^{}]*\})*\}))*")/i,greedy:!0,inside:{id:{pattern:/^\w+/,greedy:!0,alias:"function"},escape:{pattern:/\\\$"|\$[$"]/,greedy:!0,alias:"symbol"},interpolation:{pattern:/\$(?:\w+|\{(?:[^{}]|\{[^{}]*\})*\})/,greedy:!0,inside:{punctuation:/^\$\{?|\}$/,expression:{pattern:/[\s\S]+/,inside:e.languages.scala}}},string:/[\s\S]+/}}}),delete e.languages.scala["class-name"],delete e.languages.scala.function}e.exports=a,a.displayName="scala",a.aliases=[]},84351:function(e,n,t){"use strict";var r=t(79824);function a(e){e.register(r),function(e){var n=[/"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/.source,/'[^']*'/.source,/\$'(?:[^'\\]|\\[\s\S])*'/.source,/<<-?\s*(["']?)(\w+)\1\s[\s\S]*?[\r\n]\2/.source].join("|");e.languages["shell-session"]={command:{pattern:RegExp(/^/.source+"(?:"+/[^\s@:$#%*!/\\]+@[^\r\n@:$#%*!/\\]+(?::[^\0-\x1F$#%*?"<>:;|]+)?/.source+"|"+/[/~.][^\0-\x1F$#%*?"<>@:;|]*/.source+")?"+/[$#%](?=\s)/.source+/(?:[^\\\r\n \t'"<$]|[ \t](?:(?!#)|#.*$)|\\(?:[^\r]|\r\n?)|\$(?!')|<(?!<)|<>)+/.source.replace(/<>/g,(function(){return n})),"m"),greedy:!0,inside:{info:{pattern:/^[^#$%]+/,alias:"punctuation",inside:{user:/^[^\s@:$#%*!/\\]+@[^\r\n@:$#%*!/\\]+/,punctuation:/:/,path:/[\s\S]+/}},bash:{pattern:/(^[$#%]\s*)\S[\s\S]*/,lookbehind:!0,alias:"language-bash",inside:e.languages.bash},"shell-symbol":{pattern:/^[$#%]/,alias:"important"}}},output:/.(?:.*(?:[\r\n]|.$))*/},e.languages["sh-session"]=e.languages.shellsession=e.languages["shell-session"]}(e)}e.exports=a,a.displayName="shellSession",a.aliases=[]},5697:function(e){"use strict";function n(e){!function(e){var n=/[*&][^\s[\]{},]+/,t=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r="(?:"+t.source+"(?:[ \t]+"+n.source+")?|"+n.source+"(?:[ \t]+"+t.source+")?)",a=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-])(?:[ \t]*(?:(?![#:])|:))*/.source.replace(//g,(function(){return/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source})),o=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function i(e,n){n=(n||"").replace(/m/g,"")+"m";var t=/([:\-,[{]\s*(?:\s<>[ \t]+)?)(?:<>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<>/g,(function(){return r})).replace(/<>/g,(function(){return e}));return RegExp(t,n)}e.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<>/g,(function(){return r}))),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<>[ \t]+)?)<>(?=\s*:\s)/.source.replace(/<>/g,(function(){return r})).replace(/<>/g,(function(){return"(?:"+a+"|"+o+")"}))),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:i(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:i(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:i(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:i(o),lookbehind:!0,greedy:!0},number:{pattern:i(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:t,important:n,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml}(e)}e.exports=n,n.displayName="yaml",n.aliases=["yml"]},17187:function(e,n){"use strict";n.Q=function(e){var n=String(e||"").trim();return""===n?[]:n.split(t)};var t=/[ \t\n\r\f]+/g},76297:function(e){e.exports=function(){for(var e={},t=0;t0&&a(f))g=o(f),m=l(e,n,f,g,m,u-1)-1;else{if(m>=9007199254740991)throw s("Exceed the acceptable array length");e[m]=f}m++}h++}return m};e.exports=l},49974:function(e,n,t){var r=t(1702),a=t(19662),o=t(34374),i=r(r.bind);e.exports=function(e,n){return a(e),void 0===n?e:o?i(e,n):function(){return e.apply(n,arguments)}}},60490:function(e,n,t){var r=t(35005);e.exports=r("document","documentElement")},43157:function(e,n,t){var r=t(84326);e.exports=Array.isArray||function(e){return"Array"==r(e)}},4411:function(e,n,t){var r=t(1702),a=t(47293),o=t(60614),i=t(70648),s=t(35005),l=t(42788),c=function(){},u=[],p=s("Reflect","construct"),d=/^\s*(?:class|function)\b/,f=r(d.exec),g=!d.exec(c),m=function(e){if(!o(e))return!1;try{return p(c,u,e),!0}catch(n){return!1}},h=function(e){if(!o(e))return!1;switch(i(e)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return g||!!f(d,l(e))}catch(n){return!0}};h.sham=!0,e.exports=!p||a((function(){var e;return m(m.call)||!m(Object)||!m((function(){e=!0}))||e}))?h:m},70030:function(e,n,t){var r,a=t(19670),o=t(36048),i=t(80748),s=t(3501),l=t(60490),c=t(80317),u=t(6200),p=u("IE_PROTO"),d=function(){},f=function(e){return"Articles and slides — Armeria community

Articles and slides

English

Slides and videos

gRPC supercharged with Armeria Video by Trustin Lee, a year ago

www.youtube.com/watch?v=g_z_Pbjd0v0
This talk introduces Armeria's gRPC support as well as the core microservice features of Armeria, including service discovery, automatic retries, circuit breakers, distributed tracing and DocService. You'll learn how to have the best available gRPC experience by using such feature.

Hello Armeria, Bye Spring Slides by Gihwan Kim and Kyeongsu Yim, 3 years ago

www.slideshare.net/GihwanKim10/hello-armeria-bye-spring
Learn about the 3 steps for migrating your traditional Spring MVC application to Armeria. This talk also gives a performance highlight on the LINE Channel's migration that enabled the team to build a large payload download API without any concern about thread exhaustion or OutOfMemoryException.

Building an Authentication Microservice at LINE Slides by Dohan Kim, 3 years ago

drive.google.com/file/d/1M2W75eYsd8Vk2LCh2BYpbRRWGZBXw6fP/view
This talk unveils Doorkeeper, the authentication microservice that is responsible for the server-to-server authentication between the microservices in LINE's messaging system. It shows how Doorkeeper leverages the Armeria features such as gRPC, DocService, AuthService, client-side load-balancing and Logback integration.

Introducing Armeria (or Three Principles of a Good Framework) Slides by Trustin Lee, 3 years ago

speakerdeck.com/trustin/introducing-armeria-or-three-principles-of-a-good-framework
This talk introduces the three core principles behind how Trustin Lee and his team designed and implemented Armeria and how they run their community to build the best web and RPC framework. You'll find this talk useful if you are curious to know what Armeria is or what you should focus on to build a good framework.

Talking Kotlin Podcast: Systems design and Kotlin as a backend language Video by Matt Anger, 3 years ago

www.youtube.com/watch?v=XTeEIJ170KE
Learn how DoorDash uses Armeria to build their next generation servers with Kotlin.

Openchat Journey with Armeria Slides by Julie Kim, 3 years ago

www.slideshare.net/JulieKim1/armeriaworkshop2019-openchat-julie
Learn how the LINE Openchat uses Armeria and listen to an episode while adopting Armeria.

Filibuster demo: Auto-instrumentation for Java applications Video by Christopher Meiklejohn, 3 years ago

www.youtube.com/watch?v=BhZLHpxQ7mI
This demo video shows building an application with Armeria and then using Filibuster for automatically testing the failure scenarios caused by remote services and dependencies.

Writing a Java library with better experience Video and slides by Trustin Lee, 4 years ago

www.youtube.com/watch?v=0eQbsVLxmMk

Armeria at talk-server Slides by YoungTae Seok, 5 years ago

speakerdeck.com/delegacy/armeria-at-talk-server
Learn how the core platform of LINE messenger uses Armeria and how they made improvements on push notification using Armeria client.

LINE Bot API with Armeria Slides by Soo Kim, 5 years ago

sookiwi.com/resources/LINE-Bot-API-with-Armeria.pdf

Armeria: A microservice framework well-suited everywhere Video and slides by Trustin Lee, 5 years ago

youtu.be/Vr-0GKUmzo8

Lesson learned from the adoption of Armeria to LINE's authentication system Slides by Masahiro Ide, 5 years ago

speakerdeck.com/line_developers/lesson-learned-from-the-adoption-of-armeria-to-lines-authentication-system

gRPC for the Thrifty: gRPC at Slack Slides by Josh Wills, 6 years ago

static.sched.com/hosted_files/grpconf19/ff/gRPC%20for%20the%20Thrifty.pdf

Armeria: LINE's next generation RPC layer Slides by Trustin Lee, 9 years ago

speakerdeck.com/trustin/armeria-lines-next-generation-rpc-layer

Articles

Building an authorization framework with Armeria - a case study by Doğaç Eldenk, 5 months ago

blog.dogac.dev/building-an-authorization-framework-with-armeria/
Learn how to utilize Armeria decorators and Java/Kotlin annotations to build a flexible authentication and authorization framework for your application.

Customizing Armeria metrics by Seung-hwan Joo, 3 years ago

engineering.linecorp.com/en/blog/customizing-armeria-metrics/
In this second part of the blog series, we show how you can customize Armeria metrics to suit your needs.

Monitoring Prometheus metrics from Armeria by Seung-hwan Joo, 3 years ago

engineering.linecorp.com/en/blog/monitoring-prometheus-metrics-from-armeria/
In this first part of the blog series, we take a look at how you can monitor Prometheus metrics collected with Armeria.

A Bootiful Podcast: Netty and Armeria founder Trustin Lee by Josh Long and Trustin Lee, 4 years ago

spring.io/blog/2021/01/07/a-bootiful-podcast-netty-and-armeria-founder-trustin-lee
Josh Long interviews Netty and Armeria founder Trustin Lee.

Effective gRPC by Viktor Taranenko, 4 years ago

medium.com/dev-genius/effective-grpc-9152bea2cf50
Learn the best practices for working with gRPC and find out how Armeria simplifies your setup with its out-of-the-box gRPC-Web support and auto-generated online debug tool, removing the needs for proxy servers such as Envoy.

Using Circuit Breakers with Armeria by Seung-hwan Joo, 4 years ago

engineering.linecorp.com/en/blog/circuit-breakers-armeria/

Using Reactive Streams with Armeria - Part 2 by Ik-hoon Um, 4 years ago

engineering.linecorp.com/en/blog/reactive-streams-armeria-2/

Using Reactive Streams with Armeria - Part 1 by Ik-hoon Um, 5 years ago

engineering.linecorp.com/en/blog/reactive-streams-armeria-1/

Monitoring a Spring Boot app in Kubernetes – What I learned from Devoxx Belgium 2019 by Teodor Vasilev, 5 years ago

engineering.linecorp.com/en/blog/monitoring-a-spring-boot-app-in-kubernetes-what-i-learned-from-devoxx-belgium-2019/

Make your GitHub contributions calendar greener (featuring Armeria Sprint)! by Seo-yeon Lee, 6 years ago

engineering.linecorp.com/en/blog/armeria-sprint-1/

Thank you for contributing to Armeria! by Seo-yeon Lee, 6 years ago

engineering.linecorp.com/en/blog/thank-you-for-contributing-to-armeria/

Making a basic web server with Java & Armeria by In-seong Yoon, 6 years ago

engineering.linecorp.com/en/blog/making-a-basic-server-with-java-armeria/

Applying CircuitBreaker to Channel Gateway by Jong-hun Shin, 8 years ago

engineering.linecorp.com/en/blog/applying-circuitbreaker-to-channel-gateway/

Circuit breakers for distributed services by Yuichi Ono, 8 years ago

engineering.linecorp.com/en/blog/circuit-breakers-for-distributed-services/

Open-sourcing Armeria by Trustin Lee, 9 years ago

engineering.linecorp.com/en/blog/open-sourcing-armeria/

Japanese

Slides and videos

Spring Web MVCのマイクロサービス化の経緯と今 (Spring Fest 2021) Slides and video by 平井一史, 3 years ago

youtu.be/_btrKTahk20
LINE STOREの課題をArmeriaを使って、どう改善してきたかを説明しています。
  • Armeria tomcatを使ったSpring Web MVCとの連携
  • Armeria clientを使ったバックエンドAPIサーバとの連携

Spring BootユーザのためのArmeria入門 Slides, video and article by 松﨑学, 4 years ago

matsumana.info/blog/2020/07/30/introduce-to-armeria-for-spring-users/
Spring Bootユーザ向けに、以下の内容について説明されています。
  • Armeriaが提供する機能、その中でもSREの観点で特に嬉しい機能
  • ArmeriaをSpring BootとIntegrationして使う場合のコード例
  • Spring Bootで実装されている既存のサービスへのArmeria導入シナリオ例

gRPC at OA Dev team (LINE Developer Meetup #66) Video and slides by 奥山裕也, 4 years ago

youtu.be/eLPWgw45QyY?t=953
LINE Official Account 開発室での gRPC サーバー開発について紹介するセッションの中で, gRPC フレームワークとして Armeria を選定した理由や Armeria であれば gRPC サーバーで欲しい機能が簡単に実装できることが取り上げられています.

ArmeriaとCentral Dogmaから学ぶ、マイクロサービスに必要な機能 Slides and article by 松﨑学, 5 years ago

matsumana.info/blog/2019/07/31/learn-from-armeria-and-central-dogma/

LINE スタンプショップにおける Zipkin 利用事例 Slides by 林康司, 川田裕貴, 6 years ago

www.slideshare.net/linecorp/line-zipkin

Articles

Reactive Streamsでマイクロサービスを繋ぐ (gRPC, RSocket) by 小林杏理, 4 years ago

blog.aanrii.me/entry/2020/08/30/210000
Reactive Streamsで相互に繋がり、双方向通信するアプリケーションの実装をしてみます. gRPCとRSocket、それぞれで実装し、Backpressureによる流速制御を試します.

Let’s play Reactive Streams with Armeria vol.2 by Ik-hoon Um, 4 years ago

engineering.linecorp.com/ja/blog/reactive-streams-with-armeria-2/

Let’s play Reactive Streams with Armeria vol.1 by Ik-hoon Um, 5 years ago

engineering.linecorp.com/ja/blog/reactive-streams-with-armeria-1/

Devoxx Belgiumで学んだ方法でKubernetes上のSpring Bootをモニタリングする by Teodor Vasilev, 5 years ago

engineering.linecorp.com/ja/blog/monitoring-a-spring-boot-app-in-kubernetes-what-i-learned-from-devoxx-belgium-2019/

Spring BootとArmeriaでHTTP/2のh2cを試す by 開田陽介, 5 years ago

hirakida29.hatenablog.com/entry/2019/11/30/231927

Armeriaで始めるDNSのSRV Recordを使った クライアントサイドロードバランシング by wreulicke, 5 years ago

progret.hatenadiary.com/entry/2019/06/26/144923

GitHub Contributions グラフを緑豊かにしてみましょう (feat. Armeria Sprint) by Seo-yeon Lee, 6 years ago

engineering.linecorp.com/ja/blog/armeria-sprint-1/

オープンソース「Armeria」のコントリビュータのためのイベントを開催しました by Seo-yeon Lee, 6 years ago

engineering.linecorp.com/ja/blog/thank-you-for-contributing-to-armeria/

ArmeriaアプリをCentral Dogmaと連携させてKubernetes上で動かす by 松﨑学, 6 years ago

matsumana.info/blog/2018/11/12/armeria-with-centraldogma-on-k8s/

実践マイクロサービス — コンポーネント分割やトラブル回避の考え方をLINEの導入事例に学ぶ by 佐藤春旗, 6 years ago

employment.en-japan.com/engineerhub/entry/2018/10/09/110000

ArmeriaのCircuit Breaker by 松﨑学, 6 years ago

matsumana.info/blog/2018/09/29/armeria-circuit-breaker/

Armeria w/ Zipkin by 松﨑学, 6 years ago

matsumana.info/blog/2018/09/04/armeria-with-zipkin/

Getting started Armeria w/ Spring Boot by 松﨑学, 6 years ago

matsumana.info/blog/2018/08/20/getting-started-armeria-with-spring-boot/

マイクロサービスフレームワークArmeriaを始める by 岸田哉生, 7 years ago

nowokay.hatenablog.com/entry/20180409/1523306612

RxJava 2とArmeriaでマイクロサービスを非同期化してみた by 川田裕貴, 7 years ago

engineering.linecorp.com/ja/blog/asynchronous-micro-service-in-rxjava-2-armeria/

チャネルゲートウェイへのCircuit Breakerの適用 by Jong-hun Shin, 8 years ago

engineering.linecorp.com/ja/blog/applying-circuitbreaker-to-channel-gateway/

分散サービス環境へのCircuit Breakerの適用 by 小野侑一, 8 years ago

engineering.linecorp.com/ja/blog/circuit-breakers-for-distributed-services/

社内プロジェクト「Armeria」をオープンソース化するために行った6つのステップ by Trustin Lee, 9 years ago

engineering.linecorp.com/ja/blog/open-sourcing-armeria/

Korean

Slides and videos

Armeria를 소개합니다 Video and slides by 이희승, 3 years ago

youtu.be/jlKb61lHOOw

인증 마이크로서비스 Armeria로 개발하기 Video and slides by 김도한, 3 years ago

youtu.be/k1xh2rC_MbI

라인 개발자들이 Spring 대신 Armeria 쓴 이유는? Video and slides by 김기환, 임경수, 3 years ago

youtu.be/aoQO_bkYW94

비동기 서버 그까이꺼, Request Scoping만 알면 끝! Video and slides by 송민우, 4 years ago

tv.naver.com/v/16974450

Armeria: 어디서나 잘 어울리는 마이크로서비스 프레임워크 Video by 이희승, 5 years ago

tv.naver.com/v/11267414

Articles

Armeria의 WebClient를 더 쉽게 테스트하기 by 최영서, a year ago

easywritten.com/post/easy-test-with-armeria-webclient/
Armeria의 WebClient API를 예제와 함께 소개하고, 좀 더 나은 테스트 편의성을 위해 AssertJ 스타일의 테스트용 클라이언트 API를 디자인한 경험을 공유합니다.

Armeria와 Spring Boot Actuator 연동 중 겪은 버그 해결하기 by 최영서, a year ago

easywritten.com/post/challenging-integration-of-armeria-with-spring-boot-actuator/
Armeria의 Spring Boot Actuator 연동 기능에서 버그를 발견하고, 원인을 분석한 경험을 공유합니다.

Armeria로 WebSocket 서비스 만들기 by 최영서, a year ago

easywritten.com/post/using-websocket-protocol-with-armeria/
Armeria 1.24.0에서 추가된 WebSocket API를 분석하고, Armeria로 WebSocket 서버를 직접 작성하고 테스트해 봅니다.

Armeria & Spring Boot에서 Prometheus 지표 수집하기 by 최영서, a year ago

easywritten.com/post/prometheus-monitoring-with-armeria-and-spring-boot/
Armeria의 성능 지표를 Prometheus로 수집하는 방법을 구체적인 코드와 함께 소개합니다. 그 외에 Spring Boot Actuator와의 연동 기능도 보여줍니다.

Armeria와 Spring Boot 연동하기 by 최영서, a year ago

easywritten.com/post/using-armeria-with-spring-boot/
Armeria와 Spring Boot를 연동하면 좋은 점을 소개하고 구체적인 연동 방법을 보여줍니다. 간단한 형태의 REST 서비스도 Armeria로 구현해 봅니다.

오픈 소스에 숟가락 얹기 (Armeria 문서에 기여하기) by 최영서, 2 years ago

easywritten.com/post/easy-way-to-contribute-to-open-source/
Armeria 문서화에 기여한 경험담을 공유합니다.

Kotlin + Armeria + gRPC 사용기 - Protocol Buffers 편 by 안덕기, 3 years ago

dgahn.tistory.com/6
Kotlin과 Armeria, gRPC를 이용해 구현한 RPC 서비스와 어노테이션 기반의 REST 서비스를 구현해 보고 둘을 비교합니다.

Kotlin + Armeria + gRPC 사용기 - gRPC 스트림편 by 안덕기, 3 years ago

dgahn.tistory.com/5
Kotlin과 Armeria, gRPC를 이용해 스트리밍 RPC를 구현하고 테스트 코드도 작성해 봅니다.

[실습] Kotlin + Armeria + gRPC 사용기 - 기본편 by 안덕기, 3 years ago

dgahn.tistory.com/4
간단한 예제를 통해 Kotlin과 Armeria를 이용해 IntelliJ IDEA 개발 환경 하에서 gRPC 서버를 구현하고 DocService로 호출해 봅니다.

Armeria 지표 커스터마이징하기 by 주승환, 3 years ago

engineering.linecorp.com/ko/blog/armeria-metrics-customizing/
Armeria에서 수집한 Prometheus 지표를 커스터마이징하는 방법을 알아봅니다. Armeria를 처음 사용해 보시는 분들도 쉽게 따라 할 수 있도록 간단한 실습 예제와 함께 작성했습니다.

Armeria에서 Prometheus 지표 모니터링하기 by 주승환, 3 years ago

engineering.linecorp.com/ko/blog/armeria-prometheus-monitoring/
Armeria에서 수집한 Prometheus 지표를 모니터링하는 방법을 살펴봅니다. Armeria를 처음 사용해 보시는 분들도 쉽게 따라 할 수 있도록 간단한 실습 예제와 함께 작성했습니다.

Spring WebFlux와 Armeria 살펴보기 (Mono, Flux, gRPC, Thrift) by 빨간색소년, 4 years ago

sjh836.tistory.com/176

Armeria로 Reactive Streams와 놀자! – 2 by 엄익훈, 4 years ago

engineering.linecorp.com/ko/blog/reactive-streams-with-armeria-2/

Armeria로 Reactive Streams와 놀자! – 1 by 엄익훈, 5 years ago

engineering.linecorp.com/ko/blog/reactive-streams-with-armeria-1/

Armeria의 서킷 브레이커 사용해 보기 by 주승환, 5 years ago

engineering.linecorp.com/ko/blog/try-armeria-circuit-breaker/

Spring WebFlux와 Armeria를 이용하여 Microservice에 필요한 Reactive + RPC 동시에 잡기 by 이준행, 5 years ago

d2.naver.com/helloworld/6080222

생애 첫 오픈 소스 기여 경험 (feat. Armeria) by 강우진, 5 years ago

engineering.linecorp.com/ko/blog/my-first-opensource-contribution-to-armeria/

2019 컨트리뷰톤 (feat. Armeria) by 허원철, 5 years ago

heowc.dev/2019/11/04/2019-contributon-feat-armeria/

Armeria 컨트리뷰션 회고 by 김준호, 5 years ago

junojunho.github.io/review-contribution-on-armeria/

첫 오픈 소스 컨트리뷰션 경험기 by 김종민, 5 years ago

jongmin92.github.io/2019/05/18/Etc/open-source-experience/

GitHub Contributions 그래프를 푸릇푸릇하게 만들어보아요 (feat. Armeria Sprint) by 이서연, 6 years ago

engineering.linecorp.com/ko/blog/armeria-sprint-1/

오픈소스 Armeria의 기여자를 위한 이벤트를 진행하였습니다 by 이서연, 6 years ago

engineering.linecorp.com/ko/blog/thank-you-for-contributing-to-armeria/

Channel Gateway에 Circuit Breaker 적용 by 신종훈, 8 years ago

engineering.linecorp.com/ko/blog/applying-circuitbreaker-to-channel-gateway/

분산 서비스 환경에 대한 Circuit Breaker 적용 by Yuichi Ono, 8 years ago

engineering.linecorp.com/ko/blog/circuit-breakers-for-distributed-services/

Armeria 오픈소스화 이야기 by 이희승, 9 years ago

engineering.linecorp.com/ko/blog/open-sourcing-armeria/

Like Armeria?
Star us ⭐️

×
Articles and slides — Armeria community

Articles and slides

English

Slides and videos

gRPC supercharged with Armeria Video by Trustin Lee, a year ago

www.youtube.com/watch?v=g_z_Pbjd0v0
This talk introduces Armeria's gRPC support as well as the core microservice features of Armeria, including service discovery, automatic retries, circuit breakers, distributed tracing and DocService. You'll learn how to have the best available gRPC experience by using such feature.

Hello Armeria, Bye Spring Slides by Gihwan Kim and Kyeongsu Yim, 3 years ago

www.slideshare.net/GihwanKim10/hello-armeria-bye-spring
Learn about the 3 steps for migrating your traditional Spring MVC application to Armeria. This talk also gives a performance highlight on the LINE Channel's migration that enabled the team to build a large payload download API without any concern about thread exhaustion or OutOfMemoryException.

Building an Authentication Microservice at LINE Slides by Dohan Kim, 3 years ago

drive.google.com/file/d/1M2W75eYsd8Vk2LCh2BYpbRRWGZBXw6fP/view
This talk unveils Doorkeeper, the authentication microservice that is responsible for the server-to-server authentication between the microservices in LINE's messaging system. It shows how Doorkeeper leverages the Armeria features such as gRPC, DocService, AuthService, client-side load-balancing and Logback integration.

Introducing Armeria (or Three Principles of a Good Framework) Slides by Trustin Lee, 3 years ago

speakerdeck.com/trustin/introducing-armeria-or-three-principles-of-a-good-framework
This talk introduces the three core principles behind how Trustin Lee and his team designed and implemented Armeria and how they run their community to build the best web and RPC framework. You'll find this talk useful if you are curious to know what Armeria is or what you should focus on to build a good framework.

Talking Kotlin Podcast: Systems design and Kotlin as a backend language Video by Matt Anger, 3 years ago

www.youtube.com/watch?v=XTeEIJ170KE
Learn how DoorDash uses Armeria to build their next generation servers with Kotlin.

Openchat Journey with Armeria Slides by Julie Kim, 3 years ago

www.slideshare.net/JulieKim1/armeriaworkshop2019-openchat-julie
Learn how the LINE Openchat uses Armeria and listen to an episode while adopting Armeria.

Filibuster demo: Auto-instrumentation for Java applications Video by Christopher Meiklejohn, 3 years ago

www.youtube.com/watch?v=BhZLHpxQ7mI
This demo video shows building an application with Armeria and then using Filibuster for automatically testing the failure scenarios caused by remote services and dependencies.

Writing a Java library with better experience Video and slides by Trustin Lee, 4 years ago

www.youtube.com/watch?v=0eQbsVLxmMk

Armeria at talk-server Slides by YoungTae Seok, 5 years ago

speakerdeck.com/delegacy/armeria-at-talk-server
Learn how the core platform of LINE messenger uses Armeria and how they made improvements on push notification using Armeria client.

LINE Bot API with Armeria Slides by Soo Kim, 5 years ago

sookiwi.com/resources/LINE-Bot-API-with-Armeria.pdf

Armeria: A microservice framework well-suited everywhere Video and slides by Trustin Lee, 5 years ago

youtu.be/Vr-0GKUmzo8

Lesson learned from the adoption of Armeria to LINE's authentication system Slides by Masahiro Ide, 5 years ago

speakerdeck.com/line_developers/lesson-learned-from-the-adoption-of-armeria-to-lines-authentication-system

gRPC for the Thrifty: gRPC at Slack Slides by Josh Wills, 6 years ago

static.sched.com/hosted_files/grpconf19/ff/gRPC%20for%20the%20Thrifty.pdf

Armeria: LINE's next generation RPC layer Slides by Trustin Lee, 9 years ago

speakerdeck.com/trustin/armeria-lines-next-generation-rpc-layer

Articles

Building an authorization framework with Armeria - a case study by Doğaç Eldenk, 6 months ago

blog.dogac.dev/building-an-authorization-framework-with-armeria/
Learn how to utilize Armeria decorators and Java/Kotlin annotations to build a flexible authentication and authorization framework for your application.

Customizing Armeria metrics by Seung-hwan Joo, 3 years ago

engineering.linecorp.com/en/blog/customizing-armeria-metrics/
In this second part of the blog series, we show how you can customize Armeria metrics to suit your needs.

Monitoring Prometheus metrics from Armeria by Seung-hwan Joo, 3 years ago

engineering.linecorp.com/en/blog/monitoring-prometheus-metrics-from-armeria/
In this first part of the blog series, we take a look at how you can monitor Prometheus metrics collected with Armeria.

A Bootiful Podcast: Netty and Armeria founder Trustin Lee by Josh Long and Trustin Lee, 4 years ago

spring.io/blog/2021/01/07/a-bootiful-podcast-netty-and-armeria-founder-trustin-lee
Josh Long interviews Netty and Armeria founder Trustin Lee.

Effective gRPC by Viktor Taranenko, 4 years ago

medium.com/dev-genius/effective-grpc-9152bea2cf50
Learn the best practices for working with gRPC and find out how Armeria simplifies your setup with its out-of-the-box gRPC-Web support and auto-generated online debug tool, removing the needs for proxy servers such as Envoy.

Using Circuit Breakers with Armeria by Seung-hwan Joo, 4 years ago

engineering.linecorp.com/en/blog/circuit-breakers-armeria/

Using Reactive Streams with Armeria - Part 2 by Ik-hoon Um, 4 years ago

engineering.linecorp.com/en/blog/reactive-streams-armeria-2/

Using Reactive Streams with Armeria - Part 1 by Ik-hoon Um, 5 years ago

engineering.linecorp.com/en/blog/reactive-streams-armeria-1/

Monitoring a Spring Boot app in Kubernetes – What I learned from Devoxx Belgium 2019 by Teodor Vasilev, 5 years ago

engineering.linecorp.com/en/blog/monitoring-a-spring-boot-app-in-kubernetes-what-i-learned-from-devoxx-belgium-2019/

Make your GitHub contributions calendar greener (featuring Armeria Sprint)! by Seo-yeon Lee, 6 years ago

engineering.linecorp.com/en/blog/armeria-sprint-1/

Thank you for contributing to Armeria! by Seo-yeon Lee, 6 years ago

engineering.linecorp.com/en/blog/thank-you-for-contributing-to-armeria/

Making a basic web server with Java & Armeria by In-seong Yoon, 6 years ago

engineering.linecorp.com/en/blog/making-a-basic-server-with-java-armeria/

Applying CircuitBreaker to Channel Gateway by Jong-hun Shin, 8 years ago

engineering.linecorp.com/en/blog/applying-circuitbreaker-to-channel-gateway/

Circuit breakers for distributed services by Yuichi Ono, 8 years ago

engineering.linecorp.com/en/blog/circuit-breakers-for-distributed-services/

Open-sourcing Armeria by Trustin Lee, 9 years ago

engineering.linecorp.com/en/blog/open-sourcing-armeria/

Japanese

Slides and videos

Spring Web MVCのマイクロサービス化の経緯と今 (Spring Fest 2021) Slides and video by 平井一史, 3 years ago

youtu.be/_btrKTahk20
LINE STOREの課題をArmeriaを使って、どう改善してきたかを説明しています。
  • Armeria tomcatを使ったSpring Web MVCとの連携
  • Armeria clientを使ったバックエンドAPIサーバとの連携

Spring BootユーザのためのArmeria入門 Slides, video and article by 松﨑学, 4 years ago

matsumana.info/blog/2020/07/30/introduce-to-armeria-for-spring-users/
Spring Bootユーザ向けに、以下の内容について説明されています。
  • Armeriaが提供する機能、その中でもSREの観点で特に嬉しい機能
  • ArmeriaをSpring BootとIntegrationして使う場合のコード例
  • Spring Bootで実装されている既存のサービスへのArmeria導入シナリオ例

gRPC at OA Dev team (LINE Developer Meetup #66) Video and slides by 奥山裕也, 4 years ago

youtu.be/eLPWgw45QyY?t=953
LINE Official Account 開発室での gRPC サーバー開発について紹介するセッションの中で, gRPC フレームワークとして Armeria を選定した理由や Armeria であれば gRPC サーバーで欲しい機能が簡単に実装できることが取り上げられています.

ArmeriaとCentral Dogmaから学ぶ、マイクロサービスに必要な機能 Slides and article by 松﨑学, 5 years ago

matsumana.info/blog/2019/07/31/learn-from-armeria-and-central-dogma/

LINE スタンプショップにおける Zipkin 利用事例 Slides by 林康司, 川田裕貴, 6 years ago

www.slideshare.net/linecorp/line-zipkin

Articles

Reactive Streamsでマイクロサービスを繋ぐ (gRPC, RSocket) by 小林杏理, 4 years ago

blog.aanrii.me/entry/2020/08/30/210000
Reactive Streamsで相互に繋がり、双方向通信するアプリケーションの実装をしてみます. gRPCとRSocket、それぞれで実装し、Backpressureによる流速制御を試します.

Let’s play Reactive Streams with Armeria vol.2 by Ik-hoon Um, 4 years ago

engineering.linecorp.com/ja/blog/reactive-streams-with-armeria-2/

Let’s play Reactive Streams with Armeria vol.1 by Ik-hoon Um, 5 years ago

engineering.linecorp.com/ja/blog/reactive-streams-with-armeria-1/

Devoxx Belgiumで学んだ方法でKubernetes上のSpring Bootをモニタリングする by Teodor Vasilev, 5 years ago

engineering.linecorp.com/ja/blog/monitoring-a-spring-boot-app-in-kubernetes-what-i-learned-from-devoxx-belgium-2019/

Spring BootとArmeriaでHTTP/2のh2cを試す by 開田陽介, 5 years ago

hirakida29.hatenablog.com/entry/2019/11/30/231927

Armeriaで始めるDNSのSRV Recordを使った クライアントサイドロードバランシング by wreulicke, 5 years ago

progret.hatenadiary.com/entry/2019/06/26/144923

GitHub Contributions グラフを緑豊かにしてみましょう (feat. Armeria Sprint) by Seo-yeon Lee, 6 years ago

engineering.linecorp.com/ja/blog/armeria-sprint-1/

オープンソース「Armeria」のコントリビュータのためのイベントを開催しました by Seo-yeon Lee, 6 years ago

engineering.linecorp.com/ja/blog/thank-you-for-contributing-to-armeria/

ArmeriaアプリをCentral Dogmaと連携させてKubernetes上で動かす by 松﨑学, 6 years ago

matsumana.info/blog/2018/11/12/armeria-with-centraldogma-on-k8s/

実践マイクロサービス — コンポーネント分割やトラブル回避の考え方をLINEの導入事例に学ぶ by 佐藤春旗, 6 years ago

employment.en-japan.com/engineerhub/entry/2018/10/09/110000

ArmeriaのCircuit Breaker by 松﨑学, 6 years ago

matsumana.info/blog/2018/09/29/armeria-circuit-breaker/

Armeria w/ Zipkin by 松﨑学, 6 years ago

matsumana.info/blog/2018/09/04/armeria-with-zipkin/

Getting started Armeria w/ Spring Boot by 松﨑学, 6 years ago

matsumana.info/blog/2018/08/20/getting-started-armeria-with-spring-boot/

マイクロサービスフレームワークArmeriaを始める by 岸田哉生, 7 years ago

nowokay.hatenablog.com/entry/20180409/1523306612

RxJava 2とArmeriaでマイクロサービスを非同期化してみた by 川田裕貴, 7 years ago

engineering.linecorp.com/ja/blog/asynchronous-micro-service-in-rxjava-2-armeria/

チャネルゲートウェイへのCircuit Breakerの適用 by Jong-hun Shin, 8 years ago

engineering.linecorp.com/ja/blog/applying-circuitbreaker-to-channel-gateway/

分散サービス環境へのCircuit Breakerの適用 by 小野侑一, 8 years ago

engineering.linecorp.com/ja/blog/circuit-breakers-for-distributed-services/

社内プロジェクト「Armeria」をオープンソース化するために行った6つのステップ by Trustin Lee, 9 years ago

engineering.linecorp.com/ja/blog/open-sourcing-armeria/

Korean

Slides and videos

Armeria를 소개합니다 Video and slides by 이희승, 3 years ago

youtu.be/jlKb61lHOOw

인증 마이크로서비스 Armeria로 개발하기 Video and slides by 김도한, 3 years ago

youtu.be/k1xh2rC_MbI

라인 개발자들이 Spring 대신 Armeria 쓴 이유는? Video and slides by 김기환, 임경수, 3 years ago

youtu.be/aoQO_bkYW94

비동기 서버 그까이꺼, Request Scoping만 알면 끝! Video and slides by 송민우, 4 years ago

tv.naver.com/v/16974450

Armeria: 어디서나 잘 어울리는 마이크로서비스 프레임워크 Video by 이희승, 5 years ago

tv.naver.com/v/11267414

Articles

Armeria의 WebClient를 더 쉽게 테스트하기 by 최영서, a year ago

easywritten.com/post/easy-test-with-armeria-webclient/
Armeria의 WebClient API를 예제와 함께 소개하고, 좀 더 나은 테스트 편의성을 위해 AssertJ 스타일의 테스트용 클라이언트 API를 디자인한 경험을 공유합니다.

Armeria와 Spring Boot Actuator 연동 중 겪은 버그 해결하기 by 최영서, a year ago

easywritten.com/post/challenging-integration-of-armeria-with-spring-boot-actuator/
Armeria의 Spring Boot Actuator 연동 기능에서 버그를 발견하고, 원인을 분석한 경험을 공유합니다.

Armeria로 WebSocket 서비스 만들기 by 최영서, a year ago

easywritten.com/post/using-websocket-protocol-with-armeria/
Armeria 1.24.0에서 추가된 WebSocket API를 분석하고, Armeria로 WebSocket 서버를 직접 작성하고 테스트해 봅니다.

Armeria & Spring Boot에서 Prometheus 지표 수집하기 by 최영서, a year ago

easywritten.com/post/prometheus-monitoring-with-armeria-and-spring-boot/
Armeria의 성능 지표를 Prometheus로 수집하는 방법을 구체적인 코드와 함께 소개합니다. 그 외에 Spring Boot Actuator와의 연동 기능도 보여줍니다.

Armeria와 Spring Boot 연동하기 by 최영서, a year ago

easywritten.com/post/using-armeria-with-spring-boot/
Armeria와 Spring Boot를 연동하면 좋은 점을 소개하고 구체적인 연동 방법을 보여줍니다. 간단한 형태의 REST 서비스도 Armeria로 구현해 봅니다.

오픈 소스에 숟가락 얹기 (Armeria 문서에 기여하기) by 최영서, 2 years ago

easywritten.com/post/easy-way-to-contribute-to-open-source/
Armeria 문서화에 기여한 경험담을 공유합니다.

Kotlin + Armeria + gRPC 사용기 - Protocol Buffers 편 by 안덕기, 3 years ago

dgahn.tistory.com/6
Kotlin과 Armeria, gRPC를 이용해 구현한 RPC 서비스와 어노테이션 기반의 REST 서비스를 구현해 보고 둘을 비교합니다.

Kotlin + Armeria + gRPC 사용기 - gRPC 스트림편 by 안덕기, 3 years ago

dgahn.tistory.com/5
Kotlin과 Armeria, gRPC를 이용해 스트리밍 RPC를 구현하고 테스트 코드도 작성해 봅니다.

[실습] Kotlin + Armeria + gRPC 사용기 - 기본편 by 안덕기, 3 years ago

dgahn.tistory.com/4
간단한 예제를 통해 Kotlin과 Armeria를 이용해 IntelliJ IDEA 개발 환경 하에서 gRPC 서버를 구현하고 DocService로 호출해 봅니다.

Armeria 지표 커스터마이징하기 by 주승환, 3 years ago

engineering.linecorp.com/ko/blog/armeria-metrics-customizing/
Armeria에서 수집한 Prometheus 지표를 커스터마이징하는 방법을 알아봅니다. Armeria를 처음 사용해 보시는 분들도 쉽게 따라 할 수 있도록 간단한 실습 예제와 함께 작성했습니다.

Armeria에서 Prometheus 지표 모니터링하기 by 주승환, 3 years ago

engineering.linecorp.com/ko/blog/armeria-prometheus-monitoring/
Armeria에서 수집한 Prometheus 지표를 모니터링하는 방법을 살펴봅니다. Armeria를 처음 사용해 보시는 분들도 쉽게 따라 할 수 있도록 간단한 실습 예제와 함께 작성했습니다.

Spring WebFlux와 Armeria 살펴보기 (Mono, Flux, gRPC, Thrift) by 빨간색소년, 4 years ago

sjh836.tistory.com/176

Armeria로 Reactive Streams와 놀자! – 2 by 엄익훈, 4 years ago

engineering.linecorp.com/ko/blog/reactive-streams-with-armeria-2/

Armeria로 Reactive Streams와 놀자! – 1 by 엄익훈, 5 years ago

engineering.linecorp.com/ko/blog/reactive-streams-with-armeria-1/

Armeria의 서킷 브레이커 사용해 보기 by 주승환, 5 years ago

engineering.linecorp.com/ko/blog/try-armeria-circuit-breaker/

Spring WebFlux와 Armeria를 이용하여 Microservice에 필요한 Reactive + RPC 동시에 잡기 by 이준행, 5 years ago

d2.naver.com/helloworld/6080222

생애 첫 오픈 소스 기여 경험 (feat. Armeria) by 강우진, 5 years ago

engineering.linecorp.com/ko/blog/my-first-opensource-contribution-to-armeria/

2019 컨트리뷰톤 (feat. Armeria) by 허원철, 5 years ago

heowc.dev/2019/11/04/2019-contributon-feat-armeria/

Armeria 컨트리뷰션 회고 by 김준호, 5 years ago

junojunho.github.io/review-contribution-on-armeria/

첫 오픈 소스 컨트리뷰션 경험기 by 김종민, 6 years ago

jongmin92.github.io/2019/05/18/Etc/open-source-experience/

GitHub Contributions 그래프를 푸릇푸릇하게 만들어보아요 (feat. Armeria Sprint) by 이서연, 6 years ago

engineering.linecorp.com/ko/blog/armeria-sprint-1/

오픈소스 Armeria의 기여자를 위한 이벤트를 진행하였습니다 by 이서연, 6 years ago

engineering.linecorp.com/ko/blog/thank-you-for-contributing-to-armeria/

Channel Gateway에 Circuit Breaker 적용 by 신종훈, 8 years ago

engineering.linecorp.com/ko/blog/applying-circuitbreaker-to-channel-gateway/

분산 서비스 환경에 대한 Circuit Breaker 적용 by Yuichi Ono, 8 years ago

engineering.linecorp.com/ko/blog/circuit-breakers-for-distributed-services/

Armeria 오픈소스화 이야기 by 이희승, 9 years ago

engineering.linecorp.com/ko/blog/open-sourcing-armeria/

Like Armeria?
Star us ⭐️

×
\ No newline at end of file + } \ No newline at end of file diff --git a/community/code-of-conduct/index.html b/community/code-of-conduct/index.html index 185ef4f7122..492f245c9e8 100644 --- a/community/code-of-conduct/index.html +++ b/community/code-of-conduct/index.html @@ -1,4 +1,4 @@ -Code of Conduct — Armeria community

Code of Conduct

Our Pledge

We as members, contributors, and leaders pledge to make participation in our +Code of Conduct — Armeria community

Code of Conduct

Our Pledge

We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, @@ -63,4 +63,4 @@ - } \ No newline at end of file + } \ No newline at end of file diff --git a/community/design-resources/index.html b/community/design-resources/index.html index 2d10dc1ca7b..08b1c2ce974 100644 --- a/community/design-resources/index.html +++ b/community/design-resources/index.html @@ -1,4 +1,4 @@ -Design resources — Armeria community

Design resources

Rules