@mdn/fred 2.0.2 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (186) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/components/about-tabs/element.css +3 -2
  3. package/components/scrim-inline/element.css +0 -7
  4. package/components/scrim-inline/global.css +10 -0
  5. package/components/social-image/README.md +16 -0
  6. package/components/social-image/sandbox.js +23 -0
  7. package/components/social-image/server.css +28 -0
  8. package/components/social-image/server.js +13 -0
  9. package/l10n/fluent.js +8 -7
  10. package/out/service-worker.js +1 -1
  11. package/out/service-worker.js.map +1 -1
  12. package/out/static/client/5183.ed3575d7370b617c.js +64 -0
  13. package/out/static/client/5183.ed3575d7370b617c.js.map +1 -0
  14. package/out/static/client/7047.7084b7bcf9a47b7b.js +9 -0
  15. package/out/static/client/7047.7084b7bcf9a47b7b.js.map +1 -0
  16. package/out/static/client/{8292.88217634072b2959.js → 8292.5a4929a466c7b3ca.js} +2 -2
  17. package/out/static/client/{8292.88217634072b2959.js.map → 8292.5a4929a466c7b3ca.js.map} +1 -1
  18. package/out/static/client/{index.a7f592ef6e4f2a0e.js → index.0e1f202766cdb426.js} +3 -3
  19. package/out/static/client/{index.a7f592ef6e4f2a0e.js.map → index.0e1f202766cdb426.js.map} +1 -1
  20. package/out/static/client/{runtime.14f0bbf7912ff6c2.js → runtime.076e84c93222dfd0.js} +2 -2
  21. package/out/static/client/{runtime.14f0bbf7912ff6c2.js.map → runtime.076e84c93222dfd0.js.map} +1 -1
  22. package/out/static/client/stats.json +319 -283
  23. package/out/static/client/styles-a11y-menu.bf24a870a8a4969f.js +1 -0
  24. package/out/static/client/styles-advertising.9f2b7bddc08575fc.js +1 -0
  25. package/out/static/client/styles-article-footer.aa9f8d240980b0f4.js +1 -0
  26. package/out/static/client/styles-banner.e738836bac789a8b.js +1 -0
  27. package/out/static/client/styles-baseline-indicator.c062716f3d033dd8.js +1 -0
  28. package/out/static/client/styles-blog-index.818261c8123bc042.js +1 -0
  29. package/out/static/client/styles-blog-post.96ce1680245bbc86.js +1 -0
  30. package/out/static/client/styles-breadcrumbs-bar.ed7d1440bdccf98f.js +1 -0
  31. package/out/static/client/styles-breadcrumbs.7599a269dc584d75.js +1 -0
  32. package/out/static/client/styles-button.de6a7b9b7548d84b.js +1 -0
  33. package/out/static/client/styles-content-section.a8bd7fde04898354.js +1 -0
  34. package/out/static/client/styles-contributor-spotlight.adad2e813e1667fe.js +1 -0
  35. package/out/static/client/styles-curriculum-about.eefa128bb415258c.js +1 -0
  36. package/out/static/client/styles-curriculum-default.a2692218d2b1a1f9.js +1 -0
  37. package/out/static/client/styles-curriculum-landing.2d51b8fce8f12b8d.js +1 -0
  38. package/out/static/client/styles-curriculum-module.f4ae8920ee1c92ff.js +1 -0
  39. package/out/static/client/styles-curriculum-overview.2d7c17b0f0b9bd92.js +1 -0
  40. package/out/static/client/styles-featured-articles.c54e8f6b90567441.js +1 -0
  41. package/out/static/client/styles-footer.cff8d2b7669e06a9.js +1 -0
  42. package/out/static/client/styles-generic-about.b31b672a5d394108.js +1 -0
  43. package/out/static/client/styles-generic-community.f7e5df670c7aeaf3.js +1 -0
  44. package/out/static/client/styles-generic-content.1a9e4b87d8a12a85.js +1 -0
  45. package/out/static/client/styles-generic-layout.76e37948146a2f39.js +1 -0
  46. package/out/static/client/styles-generic-sidebar.c07d266d1382c357.js +1 -0
  47. package/out/static/client/styles-generic-toc.342bb77a42e3cc84.js +1 -0
  48. package/out/static/client/{styles-global.e813b635d036a38b.css → styles-global.63980d9c69df1f6a.css} +2 -2
  49. package/out/static/client/{styles-global.e813b635d036a38b.css.map → styles-global.63980d9c69df1f6a.css.map} +1 -1
  50. package/out/static/client/styles-global.c2e6118d3b833b4a.js +1 -0
  51. package/out/static/client/styles-heading-anchor.79390408a0c88875.js +1 -0
  52. package/out/static/client/styles-homepage-body.20c015a218d0bc96.js +1 -0
  53. package/out/static/client/styles-homepage-contributor-spotlight.21f37f11b3bd4bda.js +1 -0
  54. package/out/static/client/styles-homepage-footer.24e66b627b59d99f.js +1 -0
  55. package/out/static/client/styles-homepage-header.1a75fa94f8bab5a0.js +1 -0
  56. package/out/static/client/styles-homepage-hero.f1bf55f1be2d516d.js +1 -0
  57. package/out/static/client/styles-homepage.cd5bf6213bc06b4e.js +1 -0
  58. package/out/static/client/styles-latest-news.0f32a584ef1ed171.js +1 -0
  59. package/out/static/client/styles-left-sidebar.d7d52289da7ba969.js +1 -0
  60. package/out/static/client/styles-logo.1ff82941fc133017.js +1 -0
  61. package/out/static/client/styles-mandala.2a99de27a8c19d02.js +1 -0
  62. package/out/static/client/styles-menu.13c3394ada0512ef.js +1 -0
  63. package/out/static/client/styles-navigation.f857f577084aa7ef.js +1 -0
  64. package/out/static/client/styles-not-found.0bdc6a72643ebe34.js +1 -0
  65. package/out/static/client/styles-observatory-landing.e709efc8103ee08c.js +1 -0
  66. package/out/static/client/styles-observatory-results.e098740504c0c0f0.js +1 -0
  67. package/out/static/client/styles-page-layout.2ab75fc5b95edf1b.js +1 -0
  68. package/out/static/client/styles-pagination.667a2af3eaebe782.js +1 -0
  69. package/out/static/client/styles-playground.c1339745dabdf1f6.js +1 -0
  70. package/out/static/client/styles-recent-contributions.706333df420f227c.js +1 -0
  71. package/out/static/client/styles-reference-layout.6eaaea648e7e4dce.js +1 -0
  72. package/out/static/client/styles-reference-toc.dcb67aadb5032e3f.js +1 -0
  73. package/out/static/client/styles-sandbox.c14203f7b76d9e70.js +1 -0
  74. package/out/static/client/styles-site-search.ba674569591c3348.js +1 -0
  75. package/out/static/client/styles-social-image.47d082e57762bfb4.css +2 -0
  76. package/out/static/client/styles-social-image.47d082e57762bfb4.css.map +1 -0
  77. package/out/static/client/styles-social-image.f457942a12584899.js +1 -0
  78. package/out/static/client/styles-translation-banner.c0bf41a60bc2fe87.js +1 -0
  79. package/out/static/client/styles-writer-toolbar.e7438b6d8e7c99f4.js +1 -0
  80. package/out/static/client/{styles.519e2a3b2b0392d7.js → styles.cbf2ca4b84823096.js} +2 -2
  81. package/out/static/client/{styles.519e2a3b2b0392d7.js.map → styles.cbf2ca4b84823096.js.map} +1 -1
  82. package/out/static/legacy/{145.f57152daa80bc354.js → 145.e71ec0c1d16bfeb6.js} +2 -2
  83. package/out/static/legacy/{145.f57152daa80bc354.js.map → 145.e71ec0c1d16bfeb6.js.map} +1 -1
  84. package/out/static/legacy/{2439.db04dec0f2bfe008.js → 2439.152ddc8eff5390cc.js} +2 -2
  85. package/out/static/legacy/{2439.db04dec0f2bfe008.js.map → 2439.152ddc8eff5390cc.js.map} +1 -1
  86. package/out/static/legacy/{2569.2ed6f988d52f6cb2.js → 2569.41b52dfae9ff5dbd.js} +2 -2
  87. package/out/static/legacy/{2569.2ed6f988d52f6cb2.js.map → 2569.41b52dfae9ff5dbd.js.map} +1 -1
  88. package/out/static/legacy/{3097.5ee3eace96d8c3ea.js → 3097.89f8c27a39d2d759.js} +2 -2
  89. package/out/static/legacy/{3097.5ee3eace96d8c3ea.js.map → 3097.89f8c27a39d2d759.js.map} +1 -1
  90. package/out/static/legacy/{4624.5f395686fe61b4a3.js → 4624.831090754998070f.js} +2 -2
  91. package/out/static/legacy/{4624.5f395686fe61b4a3.js.map → 4624.831090754998070f.js.map} +1 -1
  92. package/out/static/legacy/{4944.dff54c3109113729.js → 4944.d5de2520acb6bc03.js} +2 -2
  93. package/out/static/legacy/{4944.dff54c3109113729.js.map → 4944.d5de2520acb6bc03.js.map} +1 -1
  94. package/out/static/legacy/{4968.12b8af0a52d054ac.js → 4968.c5c0429688b49438.js} +2 -2
  95. package/out/static/legacy/{4968.12b8af0a52d054ac.js.map → 4968.c5c0429688b49438.js.map} +1 -1
  96. package/out/static/legacy/{652.702c9f7893508b7f.js → 652.984bbafca5a127d6.js} +2 -2
  97. package/out/static/legacy/{652.702c9f7893508b7f.js.map → 652.984bbafca5a127d6.js.map} +1 -1
  98. package/out/static/legacy/{6542.8f8dc41c1b7b4f3d.js → 6542.9ae1d636a2097c7a.js} +2 -2
  99. package/out/static/legacy/{6542.8f8dc41c1b7b4f3d.js.map → 6542.9ae1d636a2097c7a.js.map} +1 -1
  100. package/out/static/legacy/{6786.d37ed4aa6d7a5c1a.js → 6786.c180a40232e02d98.js} +3 -3
  101. package/out/static/legacy/{6786.d37ed4aa6d7a5c1a.js.map → 6786.c180a40232e02d98.js.map} +1 -1
  102. package/out/static/legacy/{8292.88217634072b2959.js → 8292.5a4929a466c7b3ca.js} +2 -2
  103. package/out/static/legacy/{8292.88217634072b2959.js.map → 8292.5a4929a466c7b3ca.js.map} +1 -1
  104. package/out/static/legacy/{8315.525575601119f224.js → 8315.732f4f8af2f04044.js} +2 -2
  105. package/out/static/legacy/{8315.525575601119f224.js.map → 8315.732f4f8af2f04044.js.map} +1 -1
  106. package/out/static/legacy/{8769.d63b4369d16f3391.js → 8769.c0eb10a75d355ed3.js} +2 -2
  107. package/out/static/legacy/{8769.d63b4369d16f3391.js.map → 8769.c0eb10a75d355ed3.js.map} +1 -1
  108. package/out/static/legacy/{9380.d18451f1d350375d.js → 9380.2e09c0a94dc10112.js} +2 -2
  109. package/out/static/legacy/{9380.d18451f1d350375d.js.map → 9380.2e09c0a94dc10112.js.map} +1 -1
  110. package/out/static/legacy/asset-manifest.json +20 -20
  111. package/out/static/legacy/{index.0b85877f879160b2.js → index.5e65b9f52e86ad40.js} +5 -5
  112. package/out/static/legacy/{index.0b85877f879160b2.js.LICENSE.txt → index.5e65b9f52e86ad40.js.LICENSE.txt} +1 -1
  113. package/out/static/legacy/{index.0b85877f879160b2.js.map → index.5e65b9f52e86ad40.js.map} +1 -1
  114. package/out/static/legacy/{index.645247acbde1c666.html → index.6838304b64f32836.html} +1 -1
  115. package/out/static/legacy/stats.json +14 -14
  116. package/out/static/legacy/{yari.46e28128e98126d7.js → yari.c8f274d3a31b194e.js} +6 -6
  117. package/out/static/legacy/{yari.46e28128e98126d7.js.LICENSE.txt → yari.c8f274d3a31b194e.js.LICENSE.txt} +1 -1
  118. package/out/static/legacy/{yari.46e28128e98126d7.js.map → yari.c8f274d3a31b194e.js.map} +1 -1
  119. package/out/static/ssr/8292.js +1 -1
  120. package/out/static/ssr/8292.js.map +1 -1
  121. package/out/static/ssr/index.js +149 -142
  122. package/out/static/ssr/index.js.map +1 -1
  123. package/out/static/ssr/stats.json +4 -4
  124. package/out/twitter-card-summary.46ac2375.png +0 -0
  125. package/package.json +16 -15
  126. package/public/twitter-card-summary.46ac2375.png +0 -0
  127. package/server.js +12 -1
  128. package/out/static/client/5183.e4104aeffa888fd3.js +0 -64
  129. package/out/static/client/5183.e4104aeffa888fd3.js.map +0 -1
  130. package/out/static/client/7047.5a3c9165bf33e8ef.js +0 -9
  131. package/out/static/client/7047.5a3c9165bf33e8ef.js.map +0 -1
  132. package/out/static/client/styles-a11y-menu.49f604eb400e3a1b.js +0 -1
  133. package/out/static/client/styles-advertising.206d401ac1918107.js +0 -1
  134. package/out/static/client/styles-article-footer.bf7a12a8f26de9d8.js +0 -1
  135. package/out/static/client/styles-banner.045fd9429c0b4559.js +0 -1
  136. package/out/static/client/styles-baseline-indicator.1a9a989c5eed2bd0.js +0 -1
  137. package/out/static/client/styles-blog-index.07075fbe70ea701a.js +0 -1
  138. package/out/static/client/styles-blog-post.f096d7b72acc54c7.js +0 -1
  139. package/out/static/client/styles-breadcrumbs-bar.b6d2903779905507.js +0 -1
  140. package/out/static/client/styles-breadcrumbs.7b6a3fca16762395.js +0 -1
  141. package/out/static/client/styles-button.68557b262acc04d5.js +0 -1
  142. package/out/static/client/styles-content-section.8b58198fcbb512cd.js +0 -1
  143. package/out/static/client/styles-contributor-spotlight.65897b7d1c3de5e6.js +0 -1
  144. package/out/static/client/styles-curriculum-about.013603624423e8b7.js +0 -1
  145. package/out/static/client/styles-curriculum-default.8d3cc74e416d99c0.js +0 -1
  146. package/out/static/client/styles-curriculum-landing.95ce2c9c6203fda2.js +0 -1
  147. package/out/static/client/styles-curriculum-module.6bd730e94b6ab4b0.js +0 -1
  148. package/out/static/client/styles-curriculum-overview.31fd536067fb14e7.js +0 -1
  149. package/out/static/client/styles-featured-articles.122a3779cde55236.js +0 -1
  150. package/out/static/client/styles-footer.fedc4476f04ebc15.js +0 -1
  151. package/out/static/client/styles-generic-about.7e63ff8a4b7851ef.js +0 -1
  152. package/out/static/client/styles-generic-community.dae09a544431e63d.js +0 -1
  153. package/out/static/client/styles-generic-content.16d08aa39ea401b9.js +0 -1
  154. package/out/static/client/styles-generic-layout.3e4f2f4951ea186b.js +0 -1
  155. package/out/static/client/styles-generic-sidebar.b2e094fc3c0756ab.js +0 -1
  156. package/out/static/client/styles-generic-toc.cd70dab26a1241d4.js +0 -1
  157. package/out/static/client/styles-global.339e7f9a94da6256.js +0 -1
  158. package/out/static/client/styles-heading-anchor.0deb48e0e151aba3.js +0 -1
  159. package/out/static/client/styles-homepage-body.cb1b213bec93efdd.js +0 -1
  160. package/out/static/client/styles-homepage-contributor-spotlight.1a2acbf06be6d425.js +0 -1
  161. package/out/static/client/styles-homepage-footer.3435c9576666f4a5.js +0 -1
  162. package/out/static/client/styles-homepage-header.6a6b4ebaf675e721.js +0 -1
  163. package/out/static/client/styles-homepage-hero.de64115a608af810.js +0 -1
  164. package/out/static/client/styles-homepage.09583f85e229d2de.js +0 -1
  165. package/out/static/client/styles-latest-news.d7d8beb1f187d6f5.js +0 -1
  166. package/out/static/client/styles-left-sidebar.62e4bdb34c86bc43.js +0 -1
  167. package/out/static/client/styles-logo.15608a14aefd9e51.js +0 -1
  168. package/out/static/client/styles-mandala.18c6e16ec318e10a.js +0 -1
  169. package/out/static/client/styles-menu.8011e6627accb1f3.js +0 -1
  170. package/out/static/client/styles-navigation.507be0a6a4278751.js +0 -1
  171. package/out/static/client/styles-not-found.5abe16a37f65b63a.js +0 -1
  172. package/out/static/client/styles-observatory-landing.2bda92fc6d68c4fc.js +0 -1
  173. package/out/static/client/styles-observatory-results.090bb92b82d036eb.js +0 -1
  174. package/out/static/client/styles-page-layout.ca4cbe58578a57eb.js +0 -1
  175. package/out/static/client/styles-pagination.cacd3f49e3de0552.js +0 -1
  176. package/out/static/client/styles-playground.1c172c9a3a8d9b79.js +0 -1
  177. package/out/static/client/styles-recent-contributions.45d4f26778c7ba5b.js +0 -1
  178. package/out/static/client/styles-reference-layout.d26c1e2e7b6dcf90.js +0 -1
  179. package/out/static/client/styles-reference-toc.bb1b05755fbc1108.js +0 -1
  180. package/out/static/client/styles-sandbox.a14cc003eeaa8914.js +0 -1
  181. package/out/static/client/styles-site-search.76d1310c8fe1b8fb.js +0 -1
  182. package/out/static/client/styles-translation-banner.c9804ae977f28550.js +0 -1
  183. package/out/static/client/styles-writer-toolbar.e88f55bfa22d6f0e.js +0 -1
  184. /package/out/static/client/{5183.e4104aeffa888fd3.js.LICENSE.txt → 5183.ed3575d7370b617c.js.LICENSE.txt} +0 -0
  185. /package/out/static/client/{index.a7f592ef6e4f2a0e.js.LICENSE.txt → index.0e1f202766cdb426.js.LICENSE.txt} +0 -0
  186. /package/out/static/legacy/{6786.d37ed4aa6d7a5c1a.js.LICENSE.txt → 6786.c180a40232e02d98.js.LICENSE.txt} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"3097.5ee3eace96d8c3ea.js","sources":["webpack://@mdn/fred/./node_modules/@mdn/yari/client/src/page-not-found/fallback-link.tsx","webpack://@mdn/fred/./node_modules/@mdn/yari/libs/languages/index.js"],"sourcesContent":["import React from \"react\";\nimport { useLocation } from \"react-router-dom\";\nimport useSWR from \"swr\";\n\nimport { Doc } from \"../../../libs/types\";\nimport NoteCard from \"../ui/molecules/notecards\";\n\nimport LANGUAGES_RAW from \"../../../libs/languages\";\nimport { RETIRED_LOCALES } from \"../../../libs/constants\";\nimport { useLocale } from \"../hooks\";\n\nconst LANGUAGES = new Map(\n Object.entries(LANGUAGES_RAW).map(([locale, data]) => {\n return [locale.toLowerCase(), data];\n })\n);\n\n// TODO IDEA\n// Use https://www.npmjs.com/package/string-similarity\n// to download the /$locale/search-index.json to get a list of all possible\n// URLs and see if we can compare the current URL with one of those\n// for making a great suggestion,\n// like \"Did you mean: <a href=$url>$doctitle</a>?\"\n\nexport default function FallbackLink({ url }: { url: string }) {\n const locale = useLocale();\n const location = useLocation();\n\n const [fallbackCheckURL, setFallbackCheckURL] = React.useState<null | string>(\n null\n );\n\n const { error, data: document } = useSWR<null | Doc>(\n fallbackCheckURL,\n async (url) => {\n const response = await fetch(url);\n if (response.ok) {\n // If the URL is already for the JSON file, use the response\n if (response.url.endsWith(\"/index.json\")) {\n const { doc } = await response.json();\n return doc;\n }\n // Otherwise, use the URL that gave the successful page (potentially\n // including any redirects) and append index.json to get the data needed\n let jsonURL = response.url;\n if (!jsonURL.endsWith(\"/\")) {\n jsonURL += \"/\";\n }\n jsonURL += \"index.json\";\n const jsonResponse = await fetch(jsonURL);\n if (jsonResponse.ok) {\n const { doc } = await jsonResponse.json();\n return doc;\n } else if (jsonResponse.status === 404) {\n return null;\n }\n } else if (response.status === 404) {\n return null;\n }\n throw new Error(`${response.status} on ${url}`);\n },\n { revalidateOnFocus: false }\n );\n\n React.useEffect(() => {\n if (url && url.includes(\"/docs/\") && locale.toLowerCase() !== \"en-us\") {\n // What if we attempt to see if it would be something there in English?\n // We'll use the `index.json` version of the URL\n let enUSURL = url.replace(`/${locale}/`, \"/en-US/\");\n // But of the benefit of local development, devs can use `/404/`\n // instead of `/docs/` to simulate getting to the Page not found page.\n // So remove that when constructing the English index.json URL.\n enUSURL = enUSURL.replace(\"/en-US/404/\", \"/en-US/docs/\");\n\n // The fallback check URL should not force append index.json so it can\n // follow any redirects\n setFallbackCheckURL(enUSURL);\n }\n }, [url, locale, location]);\n\n if (error) {\n return (\n <NoteCard type=\"negative\" extraClasses=\"fallback-document\">\n <h4>Oh no!</h4>\n <p>\n Unfortunately, when trying to look to see if there was an English\n fallback, that check failed. This is either because of a temporary\n network error or because of a bug.\n </p>\n <p>\n The error was: <code>{error.toString()}</code>\n </p>\n </NoteCard>\n );\n } else if (document) {\n return (\n <NoteCard type=\"success\" extraClasses=\"fallback-document\">\n <h4>Good news!</h4>\n <p>\n The page you requested doesn't exist in{\" \"}\n <b>{LANGUAGES.get(locale.toLowerCase())?.English}</b> but it exists in{\" \"}\n <b>English</b>\n </p>\n <p className=\"fallback-link\">\n <a href={document.mdn_url}>\n <b>{document.title}</b>\n <br />\n <small>{document.mdn_url}</small>\n </a>\n </p>\n </NoteCard>\n );\n }\n\n const isRetiredLocale = RETIRED_LOCALES.has(locale.toLowerCase());\n\n if (isRetiredLocale) {\n return (\n <NoteCard type=\"warning\" extraClasses=\"fallback-document\">\n <p>\n The{\" \"}\n <strong>\n {LANGUAGES.get(locale.toLowerCase())?.English} ({locale})\n </strong>{\" \"}\n locale has been retired, and this page doesn't exist in English.\n </p>\n\n <p>\n You may find an archived version of this page in one of these\n repositories:\n <ul>\n <li>\n <a\n className=\"external\"\n href={`https://github.com/mdn/retired-content`}\n >\n mdn/retired-content\n </a>{\" \"}\n for pages that were available when the locale was retired,\n </li>\n <li>\n <a\n className=\"external\"\n href={`https://github.com/mdn/retired-archived-content`}\n >\n mdn/retired-archived-content\n </a>{\" \"}\n for pages that had already been archived before.\n </li>\n </ul>\n </p>\n </NoteCard>\n );\n }\n\n const locationParts = location.pathname\n .split(\"/\")\n .filter((part) => part && ![locale, \"docs\"].includes(part));\n const normalizedLocationParts = locationParts\n .map((part) => part.replace(/_/g, \" \"))\n .reverse();\n\n return (\n <NoteCard type=\"info\" extraClasses=\"fallback-document\">\n <p>\n The page you requested doesn't exist, but you could try a site search\n for:\n <ul>\n {normalizedLocationParts.map((part) => (\n <li>\n <a href={`/${locale}/search?q=${encodeURIComponent(part)}`}>\n <code>{part}</code>\n </a>\n </li>\n ))}\n </ul>\n </p>\n </NoteCard>\n );\n}\n","export default {\n ach: {\n English: \"Acholi\",\n native: \"Acholi\",\n },\n ak: {\n English: \"Akan\",\n native: \"Akan\",\n },\n \"am-et\": {\n English: \"Amharic\",\n native: \"\\u12a0\\u121b\\u122d\\u129b\",\n },\n an: {\n English: \"Aragonese\",\n native: \"aragon\\u00e9s\",\n },\n ar: {\n English: \"Arabic\",\n native: \"\\u0639\\u0631\\u0628\\u064a\",\n },\n as: {\n English: \"Assamese\",\n native: \"\\u0985\\u09b8\\u09ae\\u09c0\\u09af\\u09bc\\u09be\",\n },\n ast: {\n English: \"Asturian\",\n native: \"Asturianu\",\n },\n azz: {\n English: \"Highland Puebla Nahuatl\",\n native: \"nahuatl sierra norte Puebla\",\n },\n be: {\n English: \"Belarusian\",\n native: \"\\u0411\\u0435\\u043b\\u0430\\u0440\\u0443\\u0441\\u043a\\u0430\\u044f\",\n },\n bg: {\n English: \"Bulgarian\",\n native: \"\\u0411\\u044a\\u043b\\u0433\\u0430\\u0440\\u0441\\u043a\\u0438\",\n },\n bm: {\n English: \"Bambara\",\n native: \"Bamanankan\",\n },\n bn: {\n English: \"Bengali\",\n native: \"\\u09ac\\u09be\\u0982\\u09b2\\u09be\",\n },\n br: {\n English: \"Breton\",\n native: \"Brezhoneg\",\n },\n brx: {\n English: \"Bodo\",\n native: \"\\u092c\\u0930'\",\n },\n bs: {\n English: \"Bosnian\",\n native: \"Bosanski\",\n },\n ca: {\n English: \"Catalan\",\n native: \"Catal\\u00e0\",\n },\n \"ca-valencia\": {\n English: \"Catalan (Valencian)\",\n native: \"catal\\u00e0 (valenci\\u00e0)\",\n },\n cak: {\n English: \"Kaqchikel\",\n native: \"Maya Kaqchikel\",\n },\n csb: {\n English: \"Kashubian\",\n native: \"Kasz\\u00ebbsczi\",\n },\n cy: {\n English: \"Welsh\",\n native: \"Cymraeg\",\n },\n da: {\n English: \"Danish\",\n native: \"Dansk\",\n },\n dbg: {\n English: \"Debug Robot\",\n native: \"\\u1e12\\u1e17\\u0180\\u016d\\u0260 \\u0158\\u01ff\\u0180\\u01ff\\u0167\",\n },\n de: {\n English: \"German\",\n native: \"Deutsch\",\n },\n \"de-AT\": {\n English: \"German (Austria)\",\n native: \"Deutsch (\\u00d6sterreich)\",\n },\n \"de-CH\": {\n English: \"German (Switzerland)\",\n native: \"Deutsch (Schweiz)\",\n },\n \"de-DE\": {\n English: \"German (Germany)\",\n native: \"Deutsch (Deutschland)\",\n },\n dsb: {\n English: \"Lower Sorbian\",\n native: \"Dolnoserb\\u0161\\u0107ina\",\n },\n el: {\n English: \"Greek\",\n native: \"\\u0395\\u03bb\\u03bb\\u03b7\\u03bd\\u03b9\\u03ba\\u03ac\",\n },\n \"en-AU\": {\n English: \"English (Australian)\",\n native: \"English (Australian)\",\n },\n \"en-CA\": {\n English: \"English (Canadian)\",\n native: \"English (Canadian)\",\n },\n \"en-GB\": {\n English: \"English (British)\",\n native: \"English (British)\",\n },\n \"en-NZ\": {\n English: \"English (New Zealand)\",\n native: \"English (New Zealand)\",\n },\n \"en-US\": {\n English: \"English (US)\",\n native: \"English (US)\",\n },\n \"en-ZA\": {\n English: \"English (South African)\",\n native: \"English (South African)\",\n },\n eo: {\n English: \"Esperanto\",\n native: \"Esperanto\",\n },\n es: {\n English: \"Spanish\",\n native: \"Espa\\u00f1ol\",\n },\n \"es-AR\": {\n English: \"Spanish (Argentina)\",\n native: \"Espa\\u00f1ol (de Argentina)\",\n },\n \"es-CL\": {\n English: \"Spanish (Chile)\",\n native: \"Espa\\u00f1ol (de Chile)\",\n },\n \"es-ES\": {\n English: \"Spanish (Spain)\",\n native: \"Espa\\u00f1ol (de Espa\\u00f1a)\",\n },\n \"es-MX\": {\n English: \"Spanish (Mexico)\",\n native: \"Espa\\u00f1ol (de M\\u00e9xico)\",\n },\n et: {\n English: \"Estonian\",\n native: \"Eesti keel\",\n },\n eu: {\n English: \"Basque\",\n native: \"Euskara\",\n },\n fa: {\n English: \"Persian\",\n native: \"\\u0641\\u0627\\u0631\\u0633\\u06cc\",\n },\n fi: {\n English: \"Finnish\",\n native: \"suomi\",\n },\n \"fj-FJ\": {\n English: \"Fijian\",\n native: \"Vosa vaka-Viti\",\n },\n fr: {\n English: \"French\",\n native: \"Fran\\u00e7ais\",\n },\n \"fur-IT\": {\n English: \"Friulian\",\n native: \"Furlan\",\n },\n ga: {\n English: \"Irish\",\n native: \"Gaeilge\",\n },\n gd: {\n English: \"Gaelic (Scotland)\",\n native: \"G\\u00e0idhlig\",\n },\n gl: {\n English: \"Galician\",\n native: \"Galego\",\n },\n gn: {\n English: \"Guarani\",\n native: \"Ava\\u00f1e'\\u1ebd\",\n },\n gu: {\n English: \"Gujarati\",\n native: \"\\u0a97\\u0ac1\\u0a9c\\u0ab0\\u0abe\\u0aa4\\u0ac0\",\n },\n \"gu-IN\": {\n English: \"Gujarati (India)\",\n native:\n \"\\u0a97\\u0ac1\\u0a9c\\u0ab0\\u0abe\\u0aa4\\u0ac0 (\\u0aad\\u0abe\\u0ab0\\u0aa4)\",\n },\n he: {\n English: \"Hebrew\",\n native: \"\\u05e2\\u05d1\\u05e8\\u05d9\\u05ea\",\n },\n hi: {\n English: \"Hindi\",\n native: \"\\u0939\\u093f\\u0928\\u094d\\u0926\\u0940\",\n },\n \"hi-IN\": {\n English: \"Hindi (India)\",\n native: \"\\u0939\\u093f\\u0928\\u094d\\u0926\\u0940 (\\u092d\\u093e\\u0930\\u0924)\",\n },\n hsb: {\n English: \"Upper Sorbian\",\n native: \"Hornjoserbsce\",\n },\n hu: {\n English: \"Hungarian\",\n native: \"magyar\",\n },\n \"hy-AM\": {\n English: \"Armenian\",\n native: \"\\u0540\\u0561\\u0575\\u0565\\u0580\\u0565\\u0576\",\n },\n ia: {\n English: \"Interlingua\",\n native: \"Interlingua\",\n },\n id: {\n English: \"Indonesian\",\n native: \"Bahasa Indonesia\",\n },\n is: {\n English: \"Icelandic\",\n native: \"\\u00edslenska\",\n },\n it: {\n English: \"Italian\",\n native: \"Italiano\",\n },\n ja: {\n English: \"Japanese\",\n native: \"\\u65e5\\u672c\\u8a9e\",\n },\n \"ja-JP-mac\": {\n English: \"Japanese\",\n native: \"\\u65e5\\u672c\\u8a9e\",\n },\n kab: {\n English: \"Kabyle\",\n native: \"Taqbaylit\",\n },\n kk: {\n English: \"Kazakh\",\n native: \"\\u049a\\u0430\\u0437\\u0430\\u049b\",\n },\n km: {\n English: \"Khmer\",\n native: \"\\u1781\\u17d2\\u1798\\u17c2\\u179a\",\n },\n kn: {\n English: \"Kannada\",\n native: \"\\u0c95\\u0ca8\\u0ccd\\u0ca8\\u0ca1\",\n },\n ko: {\n English: \"Korean\",\n native: \"\\ud55c\\uad6d\\uc5b4\",\n },\n kok: {\n English: \"Konkani\",\n native: \"\\u0915\\u094b\\u0902\\u0915\\u0928\\u0940\",\n },\n ku: {\n English: \"Kurdish\",\n native: \"Kurd\\u00ee\",\n },\n ks: {\n English: \"Kashmiri\",\n native: \"\\u0643\\u0634\\u0645\\u06cc\\u0631\\u06cc\",\n },\n la: {\n English: \"Latin\",\n native: \"Latina\",\n },\n lg: {\n English: \"Luganda\",\n native: \"Luganda\",\n },\n lij: {\n English: \"Ligurian\",\n native: \"Ligure\",\n },\n lo: {\n English: \"Lao\",\n native: \"\\u0e9e\\u0eb2\\u0eaa\\u0eb2\\u0ea5\\u0eb2\\u0ea7\",\n },\n lt: {\n English: \"Lithuanian\",\n native: \"Lietuvi\\u0173\",\n },\n ltg: {\n English: \"Latgalian\",\n native: \"Latgalie\\u0161u valoda\",\n },\n lv: {\n English: \"Latvian\",\n native: \"Latvie\\u0161u\",\n },\n mai: {\n English: \"Maithili\",\n native:\n \"\\u092e\\u0948\\u0925\\u093f\\u0932\\u0940 \\u09ae\\u09c8\\u09a5\\u09bf\\u09b2\\u09c0\",\n },\n mi: {\n English: \"Maori (Aotearoa)\",\n native: \"M\\u0101ori (Aotearoa)\",\n },\n mk: {\n English: \"Macedonian\",\n native: \"\\u041c\\u0430\\u043a\\u0435\\u0434\\u043e\\u043d\\u0441\\u043a\\u0438\",\n },\n mn: {\n English: \"Mongolian\",\n native: \"\\u041c\\u043e\\u043d\\u0433\\u043e\\u043b\",\n },\n mr: {\n English: \"Marathi\",\n native: \"\\u092e\\u0930\\u093e\\u0920\\u0940\",\n },\n ms: {\n English: \"Malay\",\n native: \"Melayu\",\n },\n my: {\n English: \"Burmese\",\n native: \"\\u1019\\u103c\\u1014\\u103a\\u1019\\u102c\\u1018\\u102c\\u101e\\u102c\",\n },\n \"nb-NO\": {\n English: \"Norwegian (Bokm\\u00e5l)\",\n native: \"Norsk bokm\\u00e5l\",\n },\n \"ne-NP\": {\n English: \"Nepali\",\n native: \"\\u0928\\u0947\\u092a\\u093e\\u0932\\u0940\",\n },\n \"nn-NO\": {\n English: \"Norwegian (Nynorsk)\",\n native: \"Norsk nynorsk\",\n },\n nl: {\n English: \"Dutch\",\n native: \"Nederlands\",\n },\n nr: {\n English: \"Ndebele, South\",\n native: \"isiNdebele\",\n },\n nso: {\n English: \"Northern Sotho\",\n native: \"Sepedi\",\n },\n oc: {\n English: \"Occitan (Lengadocian)\",\n native: \"occitan (lengadocian)\",\n },\n or: {\n English: \"Odia\",\n native: \"\\u0b13\\u0b21\\u0b3c\\u0b3f\\u0b06\",\n },\n pa: {\n English: \"Punjabi\",\n native: \"\\u0a2a\\u0a70\\u0a1c\\u0a3e\\u0a2c\\u0a40\",\n },\n \"pa-IN\": {\n English: \"Punjabi (India)\",\n native: \"\\u0a2a\\u0a70\\u0a1c\\u0a3e\\u0a2c\\u0a40 (\\u0a2d\\u0a3e\\u0a30\\u0a24)\",\n },\n pl: {\n English: \"Polish\",\n native: \"Polski\",\n },\n \"pt-BR\": {\n English: \"Portuguese (Brazilian)\",\n native: \"Portugu\\u00eas (do\\u00a0Brasil)\",\n },\n \"pt-PT\": {\n English: \"Portuguese (Portugal)\",\n native: \"Portugu\\u00eas (Europeu)\",\n },\n rm: {\n English: \"Romansh\",\n native: \"rumantsch\",\n },\n ru: {\n English: \"Russian\",\n native: \"\\u0420\\u0443\\u0441\\u0441\\u043a\\u0438\\u0439\",\n },\n rw: {\n English: \"Kinyarwanda\",\n native: \"Ikinyarwanda\",\n },\n sa: {\n English: \"Sanskrit\",\n native: \"\\u0938\\u0902\\u0938\\u094d\\u0915\\u0943\\u0924\",\n },\n sat: {\n English: \"Santali\",\n native: \"\\u0938\\u0902\\u0924\\u093e\\u0932\\u0940\",\n },\n sah: {\n English: \"Sakha\",\n native: \"\\u0421\\u0430\\u0445\\u0430\\u043b\\u044b\\u044b\",\n },\n si: {\n English: \"Sinhala\",\n native: \"\\u0dc3\\u0dd2\\u0d82\\u0dc4\\u0dbd\",\n },\n sk: {\n English: \"Slovak\",\n native: \"sloven\\u010dina\",\n },\n sl: {\n English: \"Slovenian\",\n native: \"Sloven\\u0161\\u010dina\",\n },\n \"sr-Cyrl\": {\n English: \"Serbian\",\n native: \"\\u0421\\u0440\\u043f\\u0441\\u043a\\u0438\",\n },\n ss: {\n English: \"Siswati\",\n native: \"siSwati\",\n },\n st: {\n English: \"Southern Sotho\",\n native: \"Sesotho\",\n },\n \"sv-SE\": {\n English: \"Swedish\",\n native: \"Svenska\",\n },\n \"ta-IN\": {\n English: \"Tamil (India)\",\n native:\n \"\\u0ba4\\u0bae\\u0bbf\\u0bb4\\u0bcd (\\u0b87\\u0ba8\\u0bcd\\u0ba4\\u0bbf\\u0baf\\u0bbe)\",\n },\n \"ta-LK\": {\n English: \"Tamil (Sri Lanka)\",\n native:\n \"\\u0ba4\\u0bae\\u0bbf\\u0bb4\\u0bcd (\\u0b87\\u0bb2\\u0b99\\u0bcd\\u0b95\\u0bc8)\",\n },\n th: {\n English: \"Thai\",\n native: \"\\u0e44\\u0e17\\u0e22\",\n },\n tr: {\n English: \"Turkish\",\n native: \"T\\u00fcrk\\u00e7e\",\n },\n trs: {\n English: \"Triqui\",\n native: \"Triqui\",\n },\n ts: {\n English: \"Tsonga\",\n native: \"Xitsonga\",\n },\n tsz: {\n English: \"Pur\\u00e9pecha\",\n native: \"Pur\\u00e9pecha\",\n },\n \"tt-RU\": {\n English: \"Tatar\",\n native: \"Tatar\\u00e7a\",\n },\n uk: {\n English: \"Ukrainian\",\n native: \"\\u0423\\u043a\\u0440\\u0430\\u0457\\u043d\\u0441\\u044c\\u043a\\u0430\",\n },\n ur: {\n English: \"Urdu\",\n native: \"\\u0627\\u064f\\u0631\\u062f\\u0648\",\n },\n uz: {\n English: \"Uzbek\",\n native: \"O\\u02bbzbek tili\",\n },\n ve: {\n English: \"Venda\",\n native: \"Tshiven\\u1e13a\",\n },\n vi: {\n English: \"Vietnamese\",\n native: \"Ti\\u1ebfng Vi\\u1ec7t\",\n },\n \"x-testing\": {\n English: \"Testing\",\n native: \"\\u0166\\u1e17\\u015f\\u0167\\u012b\\u019e\\u0260\",\n },\n \"zh-CN\": {\n English: \"Chinese (Simplified)\",\n native: \"\\u4e2d\\u6587 (\\u7b80\\u4f53)\",\n },\n \"zh-TW\": {\n English: \"Chinese (Traditional)\",\n native: \"\\u6b63\\u9ad4\\u4e2d\\u6587 (\\u7e41\\u9ad4)\",\n },\n};\n"],"names":["LANGUAGES","Map","Object","LANGUAGES_RAW","locale","data","FallbackLink","param","_LANGUAGES_get","_LANGUAGES_get1","url","useLocale","location","useLocation","_React_useState","fallbackCheckURL","setFallbackCheckURL","_useSWR","response","jsonURL","jsonResponse","fetch","doc","Error","error","document","React","enUSURL","NoteCard","RETIRED_LOCALES","normalizedLocationParts","locationParts","part","encodeURIComponent"],"mappings":"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"}
1
+ {"version":3,"file":"3097.89f8c27a39d2d759.js","sources":["webpack://@mdn/fred/./node_modules/@mdn/yari/client/src/page-not-found/fallback-link.tsx","webpack://@mdn/fred/./node_modules/@mdn/yari/libs/languages/index.js"],"sourcesContent":["import React from \"react\";\nimport { useLocation } from \"react-router-dom\";\nimport useSWR from \"swr\";\n\nimport { Doc } from \"../../../libs/types\";\nimport NoteCard from \"../ui/molecules/notecards\";\n\nimport LANGUAGES_RAW from \"../../../libs/languages\";\nimport { RETIRED_LOCALES } from \"../../../libs/constants\";\nimport { useLocale } from \"../hooks\";\n\nconst LANGUAGES = new Map(\n Object.entries(LANGUAGES_RAW).map(([locale, data]) => {\n return [locale.toLowerCase(), data];\n })\n);\n\n// TODO IDEA\n// Use https://www.npmjs.com/package/string-similarity\n// to download the /$locale/search-index.json to get a list of all possible\n// URLs and see if we can compare the current URL with one of those\n// for making a great suggestion,\n// like \"Did you mean: <a href=$url>$doctitle</a>?\"\n\nexport default function FallbackLink({ url }: { url: string }) {\n const locale = useLocale();\n const location = useLocation();\n\n const [fallbackCheckURL, setFallbackCheckURL] = React.useState<null | string>(\n null\n );\n\n const { error, data: document } = useSWR<null | Doc>(\n fallbackCheckURL,\n async (url) => {\n const response = await fetch(url);\n if (response.ok) {\n // If the URL is already for the JSON file, use the response\n if (response.url.endsWith(\"/index.json\")) {\n const { doc } = await response.json();\n return doc;\n }\n // Otherwise, use the URL that gave the successful page (potentially\n // including any redirects) and append index.json to get the data needed\n let jsonURL = response.url;\n if (!jsonURL.endsWith(\"/\")) {\n jsonURL += \"/\";\n }\n jsonURL += \"index.json\";\n const jsonResponse = await fetch(jsonURL);\n if (jsonResponse.ok) {\n const { doc } = await jsonResponse.json();\n return doc;\n } else if (jsonResponse.status === 404) {\n return null;\n }\n } else if (response.status === 404) {\n return null;\n }\n throw new Error(`${response.status} on ${url}`);\n },\n { revalidateOnFocus: false }\n );\n\n React.useEffect(() => {\n if (url && url.includes(\"/docs/\") && locale.toLowerCase() !== \"en-us\") {\n // What if we attempt to see if it would be something there in English?\n // We'll use the `index.json` version of the URL\n let enUSURL = url.replace(`/${locale}/`, \"/en-US/\");\n // But of the benefit of local development, devs can use `/404/`\n // instead of `/docs/` to simulate getting to the Page not found page.\n // So remove that when constructing the English index.json URL.\n enUSURL = enUSURL.replace(\"/en-US/404/\", \"/en-US/docs/\");\n\n // The fallback check URL should not force append index.json so it can\n // follow any redirects\n setFallbackCheckURL(enUSURL);\n }\n }, [url, locale, location]);\n\n if (error) {\n return (\n <NoteCard type=\"negative\" extraClasses=\"fallback-document\">\n <h4>Oh no!</h4>\n <p>\n Unfortunately, when trying to look to see if there was an English\n fallback, that check failed. This is either because of a temporary\n network error or because of a bug.\n </p>\n <p>\n The error was: <code>{error.toString()}</code>\n </p>\n </NoteCard>\n );\n } else if (document) {\n return (\n <NoteCard type=\"success\" extraClasses=\"fallback-document\">\n <h4>Good news!</h4>\n <p>\n The page you requested doesn't exist in{\" \"}\n <b>{LANGUAGES.get(locale.toLowerCase())?.English}</b> but it exists in{\" \"}\n <b>English</b>\n </p>\n <p className=\"fallback-link\">\n <a href={document.mdn_url}>\n <b>{document.title}</b>\n <br />\n <small>{document.mdn_url}</small>\n </a>\n </p>\n </NoteCard>\n );\n }\n\n const isRetiredLocale = RETIRED_LOCALES.has(locale.toLowerCase());\n\n if (isRetiredLocale) {\n return (\n <NoteCard type=\"warning\" extraClasses=\"fallback-document\">\n <p>\n The{\" \"}\n <strong>\n {LANGUAGES.get(locale.toLowerCase())?.English} ({locale})\n </strong>{\" \"}\n locale has been retired, and this page doesn't exist in English.\n </p>\n\n <p>\n You may find an archived version of this page in one of these\n repositories:\n <ul>\n <li>\n <a\n className=\"external\"\n href={`https://github.com/mdn/retired-content`}\n >\n mdn/retired-content\n </a>{\" \"}\n for pages that were available when the locale was retired,\n </li>\n <li>\n <a\n className=\"external\"\n href={`https://github.com/mdn/retired-archived-content`}\n >\n mdn/retired-archived-content\n </a>{\" \"}\n for pages that had already been archived before.\n </li>\n </ul>\n </p>\n </NoteCard>\n );\n }\n\n const locationParts = location.pathname\n .split(\"/\")\n .filter((part) => part && ![locale, \"docs\"].includes(part));\n const normalizedLocationParts = locationParts\n .map((part) => part.replace(/_/g, \" \"))\n .reverse();\n\n return (\n <NoteCard type=\"info\" extraClasses=\"fallback-document\">\n <p>\n The page you requested doesn't exist, but you could try a site search\n for:\n <ul>\n {normalizedLocationParts.map((part) => (\n <li>\n <a href={`/${locale}/search?q=${encodeURIComponent(part)}`}>\n <code>{part}</code>\n </a>\n </li>\n ))}\n </ul>\n </p>\n </NoteCard>\n );\n}\n","export default {\n ach: {\n English: \"Acholi\",\n native: \"Acholi\",\n },\n ak: {\n English: \"Akan\",\n native: \"Akan\",\n },\n \"am-et\": {\n English: \"Amharic\",\n native: \"\\u12a0\\u121b\\u122d\\u129b\",\n },\n an: {\n English: \"Aragonese\",\n native: \"aragon\\u00e9s\",\n },\n ar: {\n English: \"Arabic\",\n native: \"\\u0639\\u0631\\u0628\\u064a\",\n },\n as: {\n English: \"Assamese\",\n native: \"\\u0985\\u09b8\\u09ae\\u09c0\\u09af\\u09bc\\u09be\",\n },\n ast: {\n English: \"Asturian\",\n native: \"Asturianu\",\n },\n azz: {\n English: \"Highland Puebla Nahuatl\",\n native: \"nahuatl sierra norte Puebla\",\n },\n be: {\n English: \"Belarusian\",\n native: \"\\u0411\\u0435\\u043b\\u0430\\u0440\\u0443\\u0441\\u043a\\u0430\\u044f\",\n },\n bg: {\n English: \"Bulgarian\",\n native: \"\\u0411\\u044a\\u043b\\u0433\\u0430\\u0440\\u0441\\u043a\\u0438\",\n },\n bm: {\n English: \"Bambara\",\n native: \"Bamanankan\",\n },\n bn: {\n English: \"Bengali\",\n native: \"\\u09ac\\u09be\\u0982\\u09b2\\u09be\",\n },\n br: {\n English: \"Breton\",\n native: \"Brezhoneg\",\n },\n brx: {\n English: \"Bodo\",\n native: \"\\u092c\\u0930'\",\n },\n bs: {\n English: \"Bosnian\",\n native: \"Bosanski\",\n },\n ca: {\n English: \"Catalan\",\n native: \"Catal\\u00e0\",\n },\n \"ca-valencia\": {\n English: \"Catalan (Valencian)\",\n native: \"catal\\u00e0 (valenci\\u00e0)\",\n },\n cak: {\n English: \"Kaqchikel\",\n native: \"Maya Kaqchikel\",\n },\n csb: {\n English: \"Kashubian\",\n native: \"Kasz\\u00ebbsczi\",\n },\n cy: {\n English: \"Welsh\",\n native: \"Cymraeg\",\n },\n da: {\n English: \"Danish\",\n native: \"Dansk\",\n },\n dbg: {\n English: \"Debug Robot\",\n native: \"\\u1e12\\u1e17\\u0180\\u016d\\u0260 \\u0158\\u01ff\\u0180\\u01ff\\u0167\",\n },\n de: {\n English: \"German\",\n native: \"Deutsch\",\n },\n \"de-AT\": {\n English: \"German (Austria)\",\n native: \"Deutsch (\\u00d6sterreich)\",\n },\n \"de-CH\": {\n English: \"German (Switzerland)\",\n native: \"Deutsch (Schweiz)\",\n },\n \"de-DE\": {\n English: \"German (Germany)\",\n native: \"Deutsch (Deutschland)\",\n },\n dsb: {\n English: \"Lower Sorbian\",\n native: \"Dolnoserb\\u0161\\u0107ina\",\n },\n el: {\n English: \"Greek\",\n native: \"\\u0395\\u03bb\\u03bb\\u03b7\\u03bd\\u03b9\\u03ba\\u03ac\",\n },\n \"en-AU\": {\n English: \"English (Australian)\",\n native: \"English (Australian)\",\n },\n \"en-CA\": {\n English: \"English (Canadian)\",\n native: \"English (Canadian)\",\n },\n \"en-GB\": {\n English: \"English (British)\",\n native: \"English (British)\",\n },\n \"en-NZ\": {\n English: \"English (New Zealand)\",\n native: \"English (New Zealand)\",\n },\n \"en-US\": {\n English: \"English (US)\",\n native: \"English (US)\",\n },\n \"en-ZA\": {\n English: \"English (South African)\",\n native: \"English (South African)\",\n },\n eo: {\n English: \"Esperanto\",\n native: \"Esperanto\",\n },\n es: {\n English: \"Spanish\",\n native: \"Espa\\u00f1ol\",\n },\n \"es-AR\": {\n English: \"Spanish (Argentina)\",\n native: \"Espa\\u00f1ol (de Argentina)\",\n },\n \"es-CL\": {\n English: \"Spanish (Chile)\",\n native: \"Espa\\u00f1ol (de Chile)\",\n },\n \"es-ES\": {\n English: \"Spanish (Spain)\",\n native: \"Espa\\u00f1ol (de Espa\\u00f1a)\",\n },\n \"es-MX\": {\n English: \"Spanish (Mexico)\",\n native: \"Espa\\u00f1ol (de M\\u00e9xico)\",\n },\n et: {\n English: \"Estonian\",\n native: \"Eesti keel\",\n },\n eu: {\n English: \"Basque\",\n native: \"Euskara\",\n },\n fa: {\n English: \"Persian\",\n native: \"\\u0641\\u0627\\u0631\\u0633\\u06cc\",\n },\n fi: {\n English: \"Finnish\",\n native: \"suomi\",\n },\n \"fj-FJ\": {\n English: \"Fijian\",\n native: \"Vosa vaka-Viti\",\n },\n fr: {\n English: \"French\",\n native: \"Fran\\u00e7ais\",\n },\n \"fur-IT\": {\n English: \"Friulian\",\n native: \"Furlan\",\n },\n ga: {\n English: \"Irish\",\n native: \"Gaeilge\",\n },\n gd: {\n English: \"Gaelic (Scotland)\",\n native: \"G\\u00e0idhlig\",\n },\n gl: {\n English: \"Galician\",\n native: \"Galego\",\n },\n gn: {\n English: \"Guarani\",\n native: \"Ava\\u00f1e'\\u1ebd\",\n },\n gu: {\n English: \"Gujarati\",\n native: \"\\u0a97\\u0ac1\\u0a9c\\u0ab0\\u0abe\\u0aa4\\u0ac0\",\n },\n \"gu-IN\": {\n English: \"Gujarati (India)\",\n native:\n \"\\u0a97\\u0ac1\\u0a9c\\u0ab0\\u0abe\\u0aa4\\u0ac0 (\\u0aad\\u0abe\\u0ab0\\u0aa4)\",\n },\n he: {\n English: \"Hebrew\",\n native: \"\\u05e2\\u05d1\\u05e8\\u05d9\\u05ea\",\n },\n hi: {\n English: \"Hindi\",\n native: \"\\u0939\\u093f\\u0928\\u094d\\u0926\\u0940\",\n },\n \"hi-IN\": {\n English: \"Hindi (India)\",\n native: \"\\u0939\\u093f\\u0928\\u094d\\u0926\\u0940 (\\u092d\\u093e\\u0930\\u0924)\",\n },\n hsb: {\n English: \"Upper Sorbian\",\n native: \"Hornjoserbsce\",\n },\n hu: {\n English: \"Hungarian\",\n native: \"magyar\",\n },\n \"hy-AM\": {\n English: \"Armenian\",\n native: \"\\u0540\\u0561\\u0575\\u0565\\u0580\\u0565\\u0576\",\n },\n ia: {\n English: \"Interlingua\",\n native: \"Interlingua\",\n },\n id: {\n English: \"Indonesian\",\n native: \"Bahasa Indonesia\",\n },\n is: {\n English: \"Icelandic\",\n native: \"\\u00edslenska\",\n },\n it: {\n English: \"Italian\",\n native: \"Italiano\",\n },\n ja: {\n English: \"Japanese\",\n native: \"\\u65e5\\u672c\\u8a9e\",\n },\n \"ja-JP-mac\": {\n English: \"Japanese\",\n native: \"\\u65e5\\u672c\\u8a9e\",\n },\n kab: {\n English: \"Kabyle\",\n native: \"Taqbaylit\",\n },\n kk: {\n English: \"Kazakh\",\n native: \"\\u049a\\u0430\\u0437\\u0430\\u049b\",\n },\n km: {\n English: \"Khmer\",\n native: \"\\u1781\\u17d2\\u1798\\u17c2\\u179a\",\n },\n kn: {\n English: \"Kannada\",\n native: \"\\u0c95\\u0ca8\\u0ccd\\u0ca8\\u0ca1\",\n },\n ko: {\n English: \"Korean\",\n native: \"\\ud55c\\uad6d\\uc5b4\",\n },\n kok: {\n English: \"Konkani\",\n native: \"\\u0915\\u094b\\u0902\\u0915\\u0928\\u0940\",\n },\n ku: {\n English: \"Kurdish\",\n native: \"Kurd\\u00ee\",\n },\n ks: {\n English: \"Kashmiri\",\n native: \"\\u0643\\u0634\\u0645\\u06cc\\u0631\\u06cc\",\n },\n la: {\n English: \"Latin\",\n native: \"Latina\",\n },\n lg: {\n English: \"Luganda\",\n native: \"Luganda\",\n },\n lij: {\n English: \"Ligurian\",\n native: \"Ligure\",\n },\n lo: {\n English: \"Lao\",\n native: \"\\u0e9e\\u0eb2\\u0eaa\\u0eb2\\u0ea5\\u0eb2\\u0ea7\",\n },\n lt: {\n English: \"Lithuanian\",\n native: \"Lietuvi\\u0173\",\n },\n ltg: {\n English: \"Latgalian\",\n native: \"Latgalie\\u0161u valoda\",\n },\n lv: {\n English: \"Latvian\",\n native: \"Latvie\\u0161u\",\n },\n mai: {\n English: \"Maithili\",\n native:\n \"\\u092e\\u0948\\u0925\\u093f\\u0932\\u0940 \\u09ae\\u09c8\\u09a5\\u09bf\\u09b2\\u09c0\",\n },\n mi: {\n English: \"Maori (Aotearoa)\",\n native: \"M\\u0101ori (Aotearoa)\",\n },\n mk: {\n English: \"Macedonian\",\n native: \"\\u041c\\u0430\\u043a\\u0435\\u0434\\u043e\\u043d\\u0441\\u043a\\u0438\",\n },\n mn: {\n English: \"Mongolian\",\n native: \"\\u041c\\u043e\\u043d\\u0433\\u043e\\u043b\",\n },\n mr: {\n English: \"Marathi\",\n native: \"\\u092e\\u0930\\u093e\\u0920\\u0940\",\n },\n ms: {\n English: \"Malay\",\n native: \"Melayu\",\n },\n my: {\n English: \"Burmese\",\n native: \"\\u1019\\u103c\\u1014\\u103a\\u1019\\u102c\\u1018\\u102c\\u101e\\u102c\",\n },\n \"nb-NO\": {\n English: \"Norwegian (Bokm\\u00e5l)\",\n native: \"Norsk bokm\\u00e5l\",\n },\n \"ne-NP\": {\n English: \"Nepali\",\n native: \"\\u0928\\u0947\\u092a\\u093e\\u0932\\u0940\",\n },\n \"nn-NO\": {\n English: \"Norwegian (Nynorsk)\",\n native: \"Norsk nynorsk\",\n },\n nl: {\n English: \"Dutch\",\n native: \"Nederlands\",\n },\n nr: {\n English: \"Ndebele, South\",\n native: \"isiNdebele\",\n },\n nso: {\n English: \"Northern Sotho\",\n native: \"Sepedi\",\n },\n oc: {\n English: \"Occitan (Lengadocian)\",\n native: \"occitan (lengadocian)\",\n },\n or: {\n English: \"Odia\",\n native: \"\\u0b13\\u0b21\\u0b3c\\u0b3f\\u0b06\",\n },\n pa: {\n English: \"Punjabi\",\n native: \"\\u0a2a\\u0a70\\u0a1c\\u0a3e\\u0a2c\\u0a40\",\n },\n \"pa-IN\": {\n English: \"Punjabi (India)\",\n native: \"\\u0a2a\\u0a70\\u0a1c\\u0a3e\\u0a2c\\u0a40 (\\u0a2d\\u0a3e\\u0a30\\u0a24)\",\n },\n pl: {\n English: \"Polish\",\n native: \"Polski\",\n },\n \"pt-BR\": {\n English: \"Portuguese (Brazilian)\",\n native: \"Portugu\\u00eas (do\\u00a0Brasil)\",\n },\n \"pt-PT\": {\n English: \"Portuguese (Portugal)\",\n native: \"Portugu\\u00eas (Europeu)\",\n },\n rm: {\n English: \"Romansh\",\n native: \"rumantsch\",\n },\n ru: {\n English: \"Russian\",\n native: \"\\u0420\\u0443\\u0441\\u0441\\u043a\\u0438\\u0439\",\n },\n rw: {\n English: \"Kinyarwanda\",\n native: \"Ikinyarwanda\",\n },\n sa: {\n English: \"Sanskrit\",\n native: \"\\u0938\\u0902\\u0938\\u094d\\u0915\\u0943\\u0924\",\n },\n sat: {\n English: \"Santali\",\n native: \"\\u0938\\u0902\\u0924\\u093e\\u0932\\u0940\",\n },\n sah: {\n English: \"Sakha\",\n native: \"\\u0421\\u0430\\u0445\\u0430\\u043b\\u044b\\u044b\",\n },\n si: {\n English: \"Sinhala\",\n native: \"\\u0dc3\\u0dd2\\u0d82\\u0dc4\\u0dbd\",\n },\n sk: {\n English: \"Slovak\",\n native: \"sloven\\u010dina\",\n },\n sl: {\n English: \"Slovenian\",\n native: \"Sloven\\u0161\\u010dina\",\n },\n \"sr-Cyrl\": {\n English: \"Serbian\",\n native: \"\\u0421\\u0440\\u043f\\u0441\\u043a\\u0438\",\n },\n ss: {\n English: \"Siswati\",\n native: \"siSwati\",\n },\n st: {\n English: \"Southern Sotho\",\n native: \"Sesotho\",\n },\n \"sv-SE\": {\n English: \"Swedish\",\n native: \"Svenska\",\n },\n \"ta-IN\": {\n English: \"Tamil (India)\",\n native:\n \"\\u0ba4\\u0bae\\u0bbf\\u0bb4\\u0bcd (\\u0b87\\u0ba8\\u0bcd\\u0ba4\\u0bbf\\u0baf\\u0bbe)\",\n },\n \"ta-LK\": {\n English: \"Tamil (Sri Lanka)\",\n native:\n \"\\u0ba4\\u0bae\\u0bbf\\u0bb4\\u0bcd (\\u0b87\\u0bb2\\u0b99\\u0bcd\\u0b95\\u0bc8)\",\n },\n th: {\n English: \"Thai\",\n native: \"\\u0e44\\u0e17\\u0e22\",\n },\n tr: {\n English: \"Turkish\",\n native: \"T\\u00fcrk\\u00e7e\",\n },\n trs: {\n English: \"Triqui\",\n native: \"Triqui\",\n },\n ts: {\n English: \"Tsonga\",\n native: \"Xitsonga\",\n },\n tsz: {\n English: \"Pur\\u00e9pecha\",\n native: \"Pur\\u00e9pecha\",\n },\n \"tt-RU\": {\n English: \"Tatar\",\n native: \"Tatar\\u00e7a\",\n },\n uk: {\n English: \"Ukrainian\",\n native: \"\\u0423\\u043a\\u0440\\u0430\\u0457\\u043d\\u0441\\u044c\\u043a\\u0430\",\n },\n ur: {\n English: \"Urdu\",\n native: \"\\u0627\\u064f\\u0631\\u062f\\u0648\",\n },\n uz: {\n English: \"Uzbek\",\n native: \"O\\u02bbzbek tili\",\n },\n ve: {\n English: \"Venda\",\n native: \"Tshiven\\u1e13a\",\n },\n vi: {\n English: \"Vietnamese\",\n native: \"Ti\\u1ebfng Vi\\u1ec7t\",\n },\n \"x-testing\": {\n English: \"Testing\",\n native: \"\\u0166\\u1e17\\u015f\\u0167\\u012b\\u019e\\u0260\",\n },\n \"zh-CN\": {\n English: \"Chinese (Simplified)\",\n native: \"\\u4e2d\\u6587 (\\u7b80\\u4f53)\",\n },\n \"zh-TW\": {\n English: \"Chinese (Traditional)\",\n native: \"\\u6b63\\u9ad4\\u4e2d\\u6587 (\\u7e41\\u9ad4)\",\n },\n};\n"],"names":["LANGUAGES","Map","Object","LANGUAGES_RAW","locale","data","FallbackLink","param","_LANGUAGES_get","_LANGUAGES_get1","url","useLocale","location","useLocation","_React_useState","fallbackCheckURL","setFallbackCheckURL","_useSWR","response","jsonURL","jsonResponse","fetch","doc","Error","error","document","React","enUSURL","NoteCard","RETIRED_LOCALES","normalizedLocationParts","locationParts","part","encodeURIComponent"],"mappings":"gxCAWA,IAAMA,EAAY,IAAIC,IACpBC,OAAO,OAAO,CAACC,EAAAA,CAAaA,EAAE,GAAG,CAAC,Y,aAAEC,EAAAA,CAAAA,CAAAA,EAAAA,CAAQC,EAAAA,CAAAA,CAAAA,EAAAA,CAC1C,MAAO,CAACD,EAAO,WAAW,GAAIC,EAAK,AACrC,IAUa,SAASC,EAAaC,CAAwB,E,IA4E/CC,EAsBDC,EAlG0BC,EAAFH,EAAEG,GAAG,CAClCN,EAASO,AAAAA,GAAAA,EAAAA,EAAAA,AAAAA,IACTC,EAAWC,AAAAA,GAAAA,EAAAA,EAAAA,AAAAA,IAE+BC,EAAAA,EAAAA,EAAAA,QAAc,CAC5D,SADKC,EAAyCD,CAAAA,CAAAA,EAAAA,CAAvBE,EAAuBF,CAAAA,CAAAA,EAAAA,CAIdG,EAAAA,AAAAA,GAAAA,EAAAA,EAAAA,AAAAA,EAChCF,EACA,SAAOL,CAAG,M,0BACFQ,EASAC,EAKEC,E,suCAdS,O,EAAMC,MAAMX,G,YACzBQ,AADEA,CAAAA,EAAW,UACJ,EAAE,CAAXA,MAAAA,C,SAEEA,EAAS,GAAG,CAAC,QAAQ,CAAC,eAAtBA,MAAAA,C,KACc,O,EAAMA,EAAS,IAAI,G,eACnC,MAAO,C,EADS,SAARI,GAAG,C,QAUQ,MAJjB,AAACH,AADDA,CAAAA,EAAUD,EAAS,GAAG,AAAD,EACZ,QAAQ,CAAC,MACpBC,CAAAA,GAAW,GAAE,EAGM,C,EAAME,MAD3BF,GAAW,c,YAEPC,AADEA,CAAAA,EAAe,UACJ,EAAE,CAAfA,MAAAA,C,KACc,O,EAAMA,EAAa,IAAI,G,QAElC,GAAIA,AAAwB,MAAxBA,EAAa,MAAM,CAC5B,MAAO,C,EAAA,K,qCAEJ,GAAIF,AAAoB,MAApBA,EAAS,MAAM,CACxB,MAAO,C,EAAA,K,kBAET,MAAM,AAAIK,MAAO,GAAwBb,MAAAA,CAAtBQ,EAAS,MAAM,CAAC,QAAU,OAAJR,G,GAC3C,E,gLACA,CAAE,kBAAmB,EAAM,GA7BrBc,EAA0BP,EAA1BO,KAAK,CAAQC,EAAaR,EAAnB,IAAI,CAgDnB,GAhBAS,EAAAA,SAAe,CAAC,WACd,GAAIhB,GAAOA,EAAI,QAAQ,CAAC,WAAaN,AAAyB,UAAzBA,EAAO,WAAW,GAAgB,CAGrE,IAAIuB,EAAUjB,EAAI,OAAO,CAAE,IAAU,OAAPN,EAAO,KAAI,WAQzCY,EAJAW,EAAUA,EAAQ,OAAO,CAAC,cAAe,gBAK3C,CACF,EAAG,CAACjB,EAAKN,EAAQQ,EAAS,EAEtBY,EACF,OACE,gBAACI,EAAAA,CAAQA,CAAAA,CAAC,KAAK,WAAW,aAAa,mB,EACrC,gBAAC,UAAG,UACJ,gBAAC,SAAE,2KAKH,gBAAC,SAAE,kBACc,gBAAC,YAAMJ,EAAM,QAAQ,MAIrC,GAAIC,EACT,OACE,gBAACG,EAAAA,CAAQA,CAAAA,CAAC,KAAK,UAAU,aAAa,mB,EACpC,gBAAC,UAAG,cACJ,gBAAC,SAAE,0CACuC,IACxC,gBAAC,eAAGpB,CAAAA,EAAAA,EAAU,GAAG,CAACJ,EAAO,WAAW,GAAE,EAAlCI,KAAAA,EAAAA,EAAqC,OAAO,EAAK,oBAAkB,IACvE,gBAAC,SAAE,YAEL,gBAAC,KAAE,UAAU,e,EACX,gBAAC,KAAE,KAAMiB,EAAS,OAAO,A,EACvB,gBAAC,SAAGA,EAAS,KAAK,EAClB,gBAAC,WACD,gBAAC,aAAOA,EAAS,OAAO,KASlC,GAFwBI,EAAAA,EAAAA,CAAAA,GAAmB,CAACzB,EAAO,WAAW,IAG5D,OACE,gBAACwB,EAAAA,CAAQA,CAAAA,CAAC,KAAK,UAAU,aAAa,mB,EACpC,gBAAC,SAAE,MACG,IACJ,gBAAC,oBACEnB,CAAAA,EAAAA,EAAU,GAAG,CAACL,EAAO,WAAW,GAAE,EAAlCK,KAAAA,EAAAA,EAAqC,OAAO,CAAC,KAAGL,EAAO,KAChD,IAAI,oEAIhB,gBAAC,SAAE,8EAGD,gBAAC,UACC,gBAAC,UACC,gBAAC,KACC,UAAU,WACV,KAAM,wC,EACP,uBAEI,IAAI,8DAGX,gBAAC,UACC,gBAAC,KACC,UAAU,WACV,KAAM,iD,EACP,gCAEI,IAAI,uDAYrB,IAAM0B,EAA0BC,AAHVnB,EAAS,QAAQ,CACpC,KAAK,CAAC,KACN,MAAM,CAAC,SAACoB,CAAI,E,OAAKA,GAAQ,CAAC,CAAC5B,EAAQ,OAAO,CAAC,QAAQ,CAAC4B,E,GAEpD,GAAG,CAAC,SAACA,CAAI,E,OAAKA,EAAK,OAAO,CAAC,KAAM,I,GACjC,OAAO,GAEV,OACE,gBAACJ,EAAAA,CAAQA,CAAAA,CAAC,KAAK,OAAO,aAAa,mB,EACjC,gBAAC,SAAE,6EAGD,gBAAC,UACEE,EAAwB,GAAG,CAAC,SAACE,CAAI,E,OAChC,gBAAC,UACC,gBAAC,KAAE,KAAO,IAAsBC,MAAAA,CAAnB7B,EAAO,cAAqC,OAAzB6B,mBAAmBD,G,EACjD,gBAAC,YAAMA,I,KAQvB,C,gCCnLA,MAAe,CACb,IAAK,CACH,QAAS,SACT,OAAQ,QACV,EACA,GAAI,CACF,QAAS,OACT,OAAQ,MACV,EACA,QAAS,CACP,QAAS,UACT,OAAQ,MACV,EACA,GAAI,CACF,QAAS,YACT,OAAQ,aACV,EACA,GAAI,CACF,QAAS,SACT,OAAQ,MACV,EACA,GAAI,CACF,QAAS,WACT,OAAQ,SACV,EACA,IAAK,CACH,QAAS,WACT,OAAQ,WACV,EACA,IAAK,CACH,QAAS,0BACT,OAAQ,6BACV,EACA,GAAI,CACF,QAAS,aACT,OAAQ,YACV,EACA,GAAI,CACF,QAAS,YACT,OAAQ,WACV,EACA,GAAI,CACF,QAAS,UACT,OAAQ,YACV,EACA,GAAI,CACF,QAAS,UACT,OAAQ,OACV,EACA,GAAI,CACF,QAAS,SACT,OAAQ,WACV,EACA,IAAK,CACH,QAAS,OACT,OAAQ,KACV,EACA,GAAI,CACF,QAAS,UACT,OAAQ,UACV,EACA,GAAI,CACF,QAAS,UACT,OAAQ,WACV,EACA,cAAe,CACb,QAAS,sBACT,OAAQ,yBACV,EACA,IAAK,CACH,QAAS,YACT,OAAQ,gBACV,EACA,IAAK,CACH,QAAS,YACT,OAAQ,eACV,EACA,GAAI,CACF,QAAS,QACT,OAAQ,SACV,EACA,GAAI,CACF,QAAS,SACT,OAAQ,OACV,EACA,IAAK,CACH,QAAS,cACT,OAAQ,aACV,EACA,GAAI,CACF,QAAS,SACT,OAAQ,SACV,EACA,QAAS,CACP,QAAS,mBACT,OAAQ,yBACV,EACA,QAAS,CACP,QAAS,uBACT,OAAQ,mBACV,EACA,QAAS,CACP,QAAS,mBACT,OAAQ,uBACV,EACA,IAAK,CACH,QAAS,gBACT,OAAQ,gBACV,EACA,GAAI,CACF,QAAS,QACT,OAAQ,UACV,EACA,QAAS,CACP,QAAS,uBACT,OAAQ,sBACV,EACA,QAAS,CACP,QAAS,qBACT,OAAQ,oBACV,EACA,QAAS,CACP,QAAS,oBACT,OAAQ,mBACV,EACA,QAAS,CACP,QAAS,wBACT,OAAQ,uBACV,EACA,QAAS,CACP,QAAS,eACT,OAAQ,cACV,EACA,QAAS,CACP,QAAS,0BACT,OAAQ,yBACV,EACA,GAAI,CACF,QAAS,YACT,OAAQ,WACV,EACA,GAAI,CACF,QAAS,UACT,OAAQ,YACV,EACA,QAAS,CACP,QAAS,sBACT,OAAQ,2BACV,EACA,QAAS,CACP,QAAS,kBACT,OAAQ,uBACV,EACA,QAAS,CACP,QAAS,kBACT,OAAQ,2BACV,EACA,QAAS,CACP,QAAS,mBACT,OAAQ,2BACV,EACA,GAAI,CACF,QAAS,WACT,OAAQ,YACV,EACA,GAAI,CACF,QAAS,SACT,OAAQ,SACV,EACA,GAAI,CACF,QAAS,UACT,OAAQ,OACV,EACA,GAAI,CACF,QAAS,UACT,OAAQ,OACV,EACA,QAAS,CACP,QAAS,SACT,OAAQ,gBACV,EACA,GAAI,CACF,QAAS,SACT,OAAQ,aACV,EACA,SAAU,CACR,QAAS,WACT,OAAQ,QACV,EACA,GAAI,CACF,QAAS,QACT,OAAQ,SACV,EACA,GAAI,CACF,QAAS,oBACT,OAAQ,aACV,EACA,GAAI,CACF,QAAS,WACT,OAAQ,QACV,EACA,GAAI,CACF,QAAS,UACT,OAAQ,YACV,EACA,GAAI,CACF,QAAS,WACT,OAAQ,SACV,EACA,QAAS,CACP,QAAS,mBACT,OACE,gBACJ,EACA,GAAI,CACF,QAAS,SACT,OAAQ,OACV,EACA,GAAI,CACF,QAAS,QACT,OAAQ,QACV,EACA,QAAS,CACP,QAAS,gBACT,OAAQ,eACV,EACA,IAAK,CACH,QAAS,gBACT,OAAQ,eACV,EACA,GAAI,CACF,QAAS,YACT,OAAQ,QACV,EACA,QAAS,CACP,QAAS,WACT,OAAQ,SACV,EACA,GAAI,CACF,QAAS,cACT,OAAQ,aACV,EACA,GAAI,CACF,QAAS,aACT,OAAQ,kBACV,EACA,GAAI,CACF,QAAS,YACT,OAAQ,aACV,EACA,GAAI,CACF,QAAS,UACT,OAAQ,UACV,EACA,GAAI,CACF,QAAS,WACT,OAAQ,KACV,EACA,YAAa,CACX,QAAS,WACT,OAAQ,KACV,EACA,IAAK,CACH,QAAS,SACT,OAAQ,WACV,EACA,GAAI,CACF,QAAS,SACT,OAAQ,OACV,EACA,GAAI,CACF,QAAS,QACT,OAAQ,OACV,EACA,GAAI,CACF,QAAS,UACT,OAAQ,OACV,EACA,GAAI,CACF,QAAS,SACT,OAAQ,KACV,EACA,IAAK,CACH,QAAS,UACT,OAAQ,QACV,EACA,GAAI,CACF,QAAS,UACT,OAAQ,UACV,EACA,GAAI,CACF,QAAS,WACT,OAAQ,QACV,EACA,GAAI,CACF,QAAS,QACT,OAAQ,QACV,EACA,GAAI,CACF,QAAS,UACT,OAAQ,SACV,EACA,IAAK,CACH,QAAS,WACT,OAAQ,QACV,EACA,GAAI,CACF,QAAS,MACT,OAAQ,SACV,EACA,GAAI,CACF,QAAS,aACT,OAAQ,UACV,EACA,IAAK,CACH,QAAS,YACT,OAAQ,mBACV,EACA,GAAI,CACF,QAAS,UACT,OAAQ,UACV,EACA,IAAK,CACH,QAAS,WACT,OACE,eACJ,EACA,GAAI,CACF,QAAS,mBACT,OAAQ,kBACV,EACA,GAAI,CACF,QAAS,aACT,OAAQ,YACV,EACA,GAAI,CACF,QAAS,YACT,OAAQ,QACV,EACA,GAAI,CACF,QAAS,UACT,OAAQ,OACV,EACA,GAAI,CACF,QAAS,QACT,OAAQ,QACV,EACA,GAAI,CACF,QAAS,UACT,OAAQ,YACV,EACA,QAAS,CACP,QAAS,wBACT,OAAQ,iBACV,EACA,QAAS,CACP,QAAS,SACT,OAAQ,QACV,EACA,QAAS,CACP,QAAS,sBACT,OAAQ,eACV,EACA,GAAI,CACF,QAAS,QACT,OAAQ,YACV,EACA,GAAI,CACF,QAAS,iBACT,OAAQ,YACV,EACA,IAAK,CACH,QAAS,iBACT,OAAQ,QACV,EACA,GAAI,CACF,QAAS,wBACT,OAAQ,uBACV,EACA,GAAI,CACF,QAAS,OACT,OAAQ,OACV,EACA,GAAI,CACF,QAAS,UACT,OAAQ,QACV,EACA,QAAS,CACP,QAAS,kBACT,OAAQ,eACV,EACA,GAAI,CACF,QAAS,SACT,OAAQ,QACV,EACA,QAAS,CACP,QAAS,yBACT,OAAQ,6BACV,EACA,QAAS,CACP,QAAS,wBACT,OAAQ,wBACV,EACA,GAAI,CACF,QAAS,UACT,OAAQ,WACV,EACA,GAAI,CACF,QAAS,UACT,OAAQ,SACV,EACA,GAAI,CACF,QAAS,cACT,OAAQ,cACV,EACA,GAAI,CACF,QAAS,WACT,OAAQ,SACV,EACA,IAAK,CACH,QAAS,UACT,OAAQ,QACV,EACA,IAAK,CACH,QAAS,QACT,OAAQ,SACV,EACA,GAAI,CACF,QAAS,UACT,OAAQ,OACV,EACA,GAAI,CACF,QAAS,SACT,OAAQ,YACV,EACA,GAAI,CACF,QAAS,YACT,OAAQ,aACV,EACA,UAAW,CACT,QAAS,UACT,OAAQ,QACV,EACA,GAAI,CACF,QAAS,UACT,OAAQ,SACV,EACA,GAAI,CACF,QAAS,iBACT,OAAQ,SACV,EACA,QAAS,CACP,QAAS,UACT,OAAQ,SACV,EACA,QAAS,CACP,QAAS,gBACT,OACE,iBACJ,EACA,QAAS,CACP,QAAS,oBACT,OACE,gBACJ,EACA,GAAI,CACF,QAAS,OACT,OAAQ,KACV,EACA,GAAI,CACF,QAAS,UACT,OAAQ,cACV,EACA,IAAK,CACH,QAAS,SACT,OAAQ,QACV,EACA,GAAI,CACF,QAAS,SACT,OAAQ,UACV,EACA,IAAK,CACH,QAAS,eACT,OAAQ,cACV,EACA,QAAS,CACP,QAAS,QACT,OAAQ,YACV,EACA,GAAI,CACF,QAAS,YACT,OAAQ,YACV,EACA,GAAI,CACF,QAAS,OACT,OAAQ,OACV,EACA,GAAI,CACF,QAAS,QACT,OAAQ,aACV,EACA,GAAI,CACF,QAAS,QACT,OAAQ,WACV,EACA,GAAI,CACF,QAAS,aACT,OAAQ,YACV,EACA,YAAa,CACX,QAAS,UACT,OAAQ,SACV,EACA,QAAS,CACP,QAAS,uBACT,OAAQ,SACV,EACA,QAAS,CACP,QAAS,wBACT,OAAQ,WACV,CACF,C"}
@@ -1,2 +1,2 @@
1
- export const __rspack_esm_id="4624";export const __rspack_esm_ids=["4624"];export const __webpack_modules__={17043(e,t,r){r.r(t),r.d(t,{default:()=>s});var n=r(96540),l=r(3322),a=r(25572),o=r.n(a),c=r(19806),u=r.n(c),i=r(5438);function m(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function s(){var e,t=(0,i.TU)(),r=(e=n.useState(void 0),function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,l=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=l){var a=[],o=!0,c=!1;try{for(l=l.call(e);!(o=(r=l.next()).done)&&(a.push(r.value),2!==a.length);o=!0);}catch(e){c=!0,n=e}finally{try{o||null==l.return||l.return()}finally{if(c)throw n}}return a}}(e,2)||function(e,t){if(e){if("string"==typeof e)return m(e,2);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return m(e,2)}}(e,2)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),a=r[0],c=r[1];return n.useEffect(function(){if(t)try{var e=localStorage.getItem("viewed-documents"),r=JSON.parse(e||"[]"),n=[],l=!0,a=!1,o=void 0;try{for(var u,i=r[Symbol.iterator]();!(l=(u=i.next()).done);l=!0){var m=u.value;n.push({url:m.url,title:m.title,timestamp:m.timestamp})}}catch(e){a=!0,o=e}finally{try{l||null==i.return||i.return()}finally{if(a)throw o}}c(n)}catch(e){console.warn("Failed to read recently viewed documents from localStorage",e),c(null)}},[t]),n.createElement("article",{id:"recently-viewed-documents","aria-labelledby":"recently-viewed-documents"},n.createElement("h3",null,"Recently viewed documents"),void 0===a?n.createElement(d,null,"Loading recently viewed documents"):null===a?n.createElement(d,null,"This feature requires cookies"):a.length?n.createElement("table",null,n.createElement("thead",null,n.createElement("tr",null,n.createElement("th",null,"Document"),n.createElement("th",null,"When"))),n.createElement("tbody",null,a.map(function(e){return n.createElement("tr",{key:e.url},n.createElement("td",null,n.createElement(l.N_,{to:e.url},e.title," ",n.createElement("small",null,e.url))),n.createElement("td",null,o()(new Date(e.timestamp)).fromNow()))}))):n.createElement(d,null,"No recently viewed documents at the moment"))}function d(e){var t=e.children;return n.createElement("p",{className:"notification"},t)}o().extend(u())}};
2
- //# sourceMappingURL=4624.5f395686fe61b4a3.js.map
1
+ export const __rspack_esm_id="4624";export const __rspack_esm_ids=["4624"];export const __webpack_modules__={17043(e,t,r){r.r(t),r.d(t,{default:()=>s});var n=r(96540),l=r(3433),a=r(25572),o=r.n(a),c=r(19806),u=r.n(c),i=r(5438);function m(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function s(){var e,t=(0,i.TU)(),r=(e=n.useState(void 0),function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,l=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=l){var a=[],o=!0,c=!1;try{for(l=l.call(e);!(o=(r=l.next()).done)&&(a.push(r.value),2!==a.length);o=!0);}catch(e){c=!0,n=e}finally{try{o||null==l.return||l.return()}finally{if(c)throw n}}return a}}(e,2)||function(e,t){if(e){if("string"==typeof e)return m(e,2);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return m(e,2)}}(e,2)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),a=r[0],c=r[1];return n.useEffect(function(){if(t)try{var e=localStorage.getItem("viewed-documents"),r=JSON.parse(e||"[]"),n=[],l=!0,a=!1,o=void 0;try{for(var u,i=r[Symbol.iterator]();!(l=(u=i.next()).done);l=!0){var m=u.value;n.push({url:m.url,title:m.title,timestamp:m.timestamp})}}catch(e){a=!0,o=e}finally{try{l||null==i.return||i.return()}finally{if(a)throw o}}c(n)}catch(e){console.warn("Failed to read recently viewed documents from localStorage",e),c(null)}},[t]),n.createElement("article",{id:"recently-viewed-documents","aria-labelledby":"recently-viewed-documents"},n.createElement("h3",null,"Recently viewed documents"),void 0===a?n.createElement(d,null,"Loading recently viewed documents"):null===a?n.createElement(d,null,"This feature requires cookies"):a.length?n.createElement("table",null,n.createElement("thead",null,n.createElement("tr",null,n.createElement("th",null,"Document"),n.createElement("th",null,"When"))),n.createElement("tbody",null,a.map(function(e){return n.createElement("tr",{key:e.url},n.createElement("td",null,n.createElement(l.N_,{to:e.url},e.title," ",n.createElement("small",null,e.url))),n.createElement("td",null,o()(new Date(e.timestamp)).fromNow()))}))):n.createElement(d,null,"No recently viewed documents at the moment"))}function d(e){var t=e.children;return n.createElement("p",{className:"notification"},t)}o().extend(u())}};
2
+ //# sourceMappingURL=4624.831090754998070f.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"4624.5f395686fe61b4a3.js","sources":["webpack://@mdn/fred/./node_modules/@mdn/yari/client/src/writers-homepage/viewed-documents.tsx"],"sourcesContent":["import React from \"react\";\nimport { Link } from \"react-router-dom\";\nimport dayjs from \"dayjs\";\nimport relativeTime from \"dayjs/plugin/relativeTime\";\n\nimport \"./viewed-documents.scss\";\nimport { usePageVisibility } from \"../hooks\";\n\ndayjs.extend(relativeTime);\n\ntype Entry = {\n url: string;\n title: string;\n timestamp: number;\n};\n\nexport default function ViewedDocuments() {\n const isVisible = usePageVisibility();\n // undefined - list is still being loaded\n // null - list could not be loaded (e.g., if localStorage is disabled)\n // Entry[] - list was loaded (but could be empty)\n const [entries, setEntries] = React.useState<Entry[] | null | undefined>(\n undefined\n );\n\n const VIEWED_DOCUMENTS_STORAGE_KEY = \"viewed-documents\";\n\n React.useEffect(() => {\n if (isVisible) {\n try {\n const data = localStorage.getItem(VIEWED_DOCUMENTS_STORAGE_KEY);\n const previousVisits = JSON.parse(data || \"[]\");\n const newEntries: Entry[] = [];\n for (const visit of previousVisits) {\n newEntries.push({\n url: visit.url,\n title: visit.title,\n timestamp: visit.timestamp,\n });\n }\n\n setEntries(newEntries);\n } catch (err) {\n // If localStorage is not supported, there are no viewed documents\n console.warn(\n \"Failed to read recently viewed documents from localStorage\",\n err\n );\n setEntries(null);\n }\n }\n }, [isVisible]);\n\n return (\n <article\n id=\"recently-viewed-documents\"\n aria-labelledby=\"recently-viewed-documents\"\n >\n <h3>Recently viewed documents</h3>\n {entries === undefined ? (\n <Banner>Loading recently viewed documents</Banner>\n ) : entries === null ? (\n <Banner>This feature requires cookies</Banner>\n ) : entries.length ? (\n <table>\n <thead>\n <tr>\n <th>Document</th>\n <th>When</th>\n </tr>\n </thead>\n <tbody>\n {entries.map((entry) => {\n return (\n <tr key={entry.url}>\n <td>\n <Link to={entry.url}>\n {entry.title} <small>{entry.url}</small>\n </Link>\n </td>\n <td>{dayjs(new Date(entry.timestamp)).fromNow()}</td>\n </tr>\n );\n })}\n </tbody>\n </table>\n ) : (\n <Banner>No recently viewed documents at the moment</Banner>\n )}\n </article>\n );\n}\n\nfunction Banner({ children }) {\n return <p className=\"notification\">{children}</p>;\n}\n"],"names":["ViewedDocuments","isVisible","usePageVisibility","_React_useState","undefined","entries","setEntries","React","data","localStorage","previousVisits","JSON","newEntries","_iteratorError","visit","err","console","Banner","entry","Link","dayjs","Date","param","children","relativeTime"],"mappings":"yUAgBe,SAASA,IACtB,I,EAAMC,EAAYC,AAAAA,GAAAA,EAAAA,EAAAA,AAAAA,IAIYC,G,EAAAA,EAAAA,QAAc,CAC1CC,Q,sOAAAA,I,gHAAAA,I,qDAAAA,G,uOAAAA,G,IAAAA,I,6KADKC,EAAuBF,CAAAA,CAAAA,EAAAA,CAAdG,EAAcH,CAAAA,CAAAA,EAAAA,CAgC9B,OA1BAI,EAAAA,SAAe,CAAC,WACd,GAAIN,EACF,GAAI,CACF,IAAMO,EAAOC,aAAa,OAAO,CALF,oBAMzBC,EAAiBC,KAAK,KAAK,CAACH,GAAQ,MACpCI,EAAsB,EAAE,CACzBC,EAAAA,GAAAA,EAAAA,GAAAA,EAAAA,O,IAAL,QAAKA,EAAAA,EAAeH,CAAc,CAAdA,OAAAA,QAAAA,CAAAA,GAAfG,CAAAA,CAAAA,EAAAA,AAAAA,CAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,AAAAA,EAAAA,EAAAA,GAA+B,CAA/BA,IAAMC,EAAND,EAAAA,KAAAA,CACHD,EAAW,IAAI,CAAC,CACd,IAAKE,EAAM,GAAG,CACd,MAAOA,EAAM,KAAK,CAClB,UAAWA,EAAM,SAAS,AAC5B,EACF,C,UANKD,EAAAA,GAAAA,EAAAA,C,aAAAA,GAAAA,AAAAA,MAAAA,EAAAA,MAAAA,EAAAA,EAAAA,MAAAA,E,YAAAA,E,MAAAA,C,EAQLP,EAAWM,EACb,CAAE,MAAOG,EAAK,CAEZC,QAAQ,IAAI,CACV,6DACAD,GAEFT,EAAW,KACb,CAEJ,EAAG,CAACL,EAAU,EAGZ,gBAAC,WACC,GAAG,4BACH,kBAAgB,2B,EAEhB,gBAAC,UAAG,6BACHI,AAAYD,SAAZC,EACC,gBAACY,EAAAA,KAAO,qCACNZ,AAAY,OAAZA,EACF,gBAACY,EAAAA,KAAO,iCACNZ,EAAQ,MAAM,CAChB,gBAAC,aACC,gBAAC,aACC,gBAAC,UACC,gBAAC,UAAG,YACJ,gBAAC,UAAG,UAGR,gBAAC,aACEA,EAAQ,GAAG,CAAC,SAACa,CAAK,EACjB,OACE,gBAAC,MAAG,IAAKA,EAAM,GAAG,A,EAChB,gBAAC,UACC,gBAACC,EAAAA,EAAIA,CAAAA,CAAC,GAAID,EAAM,GAAG,A,EAChBA,EAAM,KAAK,CAAC,IAAC,gBAAC,aAAOA,EAAM,GAAG,IAGnC,gBAAC,UAAIE,IAAM,IAAIC,KAAKH,EAAM,SAAS,GAAG,OAAO,IAGnD,KAIJ,gBAACD,EAAAA,KAAO,8CAIhB,CAEA,SAASA,EAAOK,CAAY,E,IAAVC,EAAFD,EAAEC,QAAQ,CACxB,OAAO,gBAAC,KAAE,UAAU,c,EAAgBA,EACtC,CAvFAH,IAAAA,MAAY,CAACI,I"}
1
+ {"version":3,"file":"4624.831090754998070f.js","sources":["webpack://@mdn/fred/./node_modules/@mdn/yari/client/src/writers-homepage/viewed-documents.tsx"],"sourcesContent":["import React from \"react\";\nimport { Link } from \"react-router-dom\";\nimport dayjs from \"dayjs\";\nimport relativeTime from \"dayjs/plugin/relativeTime\";\n\nimport \"./viewed-documents.scss\";\nimport { usePageVisibility } from \"../hooks\";\n\ndayjs.extend(relativeTime);\n\ntype Entry = {\n url: string;\n title: string;\n timestamp: number;\n};\n\nexport default function ViewedDocuments() {\n const isVisible = usePageVisibility();\n // undefined - list is still being loaded\n // null - list could not be loaded (e.g., if localStorage is disabled)\n // Entry[] - list was loaded (but could be empty)\n const [entries, setEntries] = React.useState<Entry[] | null | undefined>(\n undefined\n );\n\n const VIEWED_DOCUMENTS_STORAGE_KEY = \"viewed-documents\";\n\n React.useEffect(() => {\n if (isVisible) {\n try {\n const data = localStorage.getItem(VIEWED_DOCUMENTS_STORAGE_KEY);\n const previousVisits = JSON.parse(data || \"[]\");\n const newEntries: Entry[] = [];\n for (const visit of previousVisits) {\n newEntries.push({\n url: visit.url,\n title: visit.title,\n timestamp: visit.timestamp,\n });\n }\n\n setEntries(newEntries);\n } catch (err) {\n // If localStorage is not supported, there are no viewed documents\n console.warn(\n \"Failed to read recently viewed documents from localStorage\",\n err\n );\n setEntries(null);\n }\n }\n }, [isVisible]);\n\n return (\n <article\n id=\"recently-viewed-documents\"\n aria-labelledby=\"recently-viewed-documents\"\n >\n <h3>Recently viewed documents</h3>\n {entries === undefined ? (\n <Banner>Loading recently viewed documents</Banner>\n ) : entries === null ? (\n <Banner>This feature requires cookies</Banner>\n ) : entries.length ? (\n <table>\n <thead>\n <tr>\n <th>Document</th>\n <th>When</th>\n </tr>\n </thead>\n <tbody>\n {entries.map((entry) => {\n return (\n <tr key={entry.url}>\n <td>\n <Link to={entry.url}>\n {entry.title} <small>{entry.url}</small>\n </Link>\n </td>\n <td>{dayjs(new Date(entry.timestamp)).fromNow()}</td>\n </tr>\n );\n })}\n </tbody>\n </table>\n ) : (\n <Banner>No recently viewed documents at the moment</Banner>\n )}\n </article>\n );\n}\n\nfunction Banner({ children }) {\n return <p className=\"notification\">{children}</p>;\n}\n"],"names":["ViewedDocuments","isVisible","usePageVisibility","_React_useState","undefined","entries","setEntries","React","data","localStorage","previousVisits","JSON","newEntries","_iteratorError","visit","err","console","Banner","entry","Link","dayjs","Date","param","children","relativeTime"],"mappings":"yUAgBe,SAASA,IACtB,I,EAAMC,EAAYC,AAAAA,GAAAA,EAAAA,EAAAA,AAAAA,IAIYC,G,EAAAA,EAAAA,QAAc,CAC1CC,Q,sOAAAA,I,gHAAAA,I,qDAAAA,G,uOAAAA,G,IAAAA,I,6KADKC,EAAuBF,CAAAA,CAAAA,EAAAA,CAAdG,EAAcH,CAAAA,CAAAA,EAAAA,CAgC9B,OA1BAI,EAAAA,SAAe,CAAC,WACd,GAAIN,EACF,GAAI,CACF,IAAMO,EAAOC,aAAa,OAAO,CALF,oBAMzBC,EAAiBC,KAAK,KAAK,CAACH,GAAQ,MACpCI,EAAsB,EAAE,CACzBC,EAAAA,GAAAA,EAAAA,GAAAA,EAAAA,O,IAAL,QAAKA,EAAAA,EAAeH,CAAc,CAAdA,OAAAA,QAAAA,CAAAA,GAAfG,CAAAA,CAAAA,EAAAA,AAAAA,CAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,AAAAA,EAAAA,EAAAA,GAA+B,CAA/BA,IAAMC,EAAND,EAAAA,KAAAA,CACHD,EAAW,IAAI,CAAC,CACd,IAAKE,EAAM,GAAG,CACd,MAAOA,EAAM,KAAK,CAClB,UAAWA,EAAM,SAAS,AAC5B,EACF,C,UANKD,EAAAA,GAAAA,EAAAA,C,aAAAA,GAAAA,AAAAA,MAAAA,EAAAA,MAAAA,EAAAA,EAAAA,MAAAA,E,YAAAA,E,MAAAA,C,EAQLP,EAAWM,EACb,CAAE,MAAOG,EAAK,CAEZC,QAAQ,IAAI,CACV,6DACAD,GAEFT,EAAW,KACb,CAEJ,EAAG,CAACL,EAAU,EAGZ,gBAAC,WACC,GAAG,4BACH,kBAAgB,2B,EAEhB,gBAAC,UAAG,6BACHI,AAAYD,SAAZC,EACC,gBAACY,EAAAA,KAAO,qCACNZ,AAAY,OAAZA,EACF,gBAACY,EAAAA,KAAO,iCACNZ,EAAQ,MAAM,CAChB,gBAAC,aACC,gBAAC,aACC,gBAAC,UACC,gBAAC,UAAG,YACJ,gBAAC,UAAG,UAGR,gBAAC,aACEA,EAAQ,GAAG,CAAC,SAACa,CAAK,EACjB,OACE,gBAAC,MAAG,IAAKA,EAAM,GAAG,A,EAChB,gBAAC,UACC,gBAACC,EAAAA,EAAIA,CAAAA,CAAC,GAAID,EAAM,GAAG,A,EAChBA,EAAM,KAAK,CAAC,IAAC,gBAAC,aAAOA,EAAM,GAAG,IAGnC,gBAAC,UAAIE,IAAM,IAAIC,KAAKH,EAAM,SAAS,GAAG,OAAO,IAGnD,KAIJ,gBAACD,EAAAA,KAAO,8CAIhB,CAEA,SAASA,EAAOK,CAAY,E,IAAVC,EAAFD,EAAEC,QAAQ,CACxB,OAAO,gBAAC,KAAE,UAAU,c,EAAgBA,EACtC,CAvFAH,IAAAA,MAAY,CAACI,I"}