@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.
- package/CHANGELOG.md +33 -0
- package/components/about-tabs/element.css +3 -2
- package/components/scrim-inline/element.css +0 -7
- package/components/scrim-inline/global.css +10 -0
- package/components/social-image/README.md +16 -0
- package/components/social-image/sandbox.js +23 -0
- package/components/social-image/server.css +28 -0
- package/components/social-image/server.js +13 -0
- package/l10n/fluent.js +8 -7
- package/out/service-worker.js +1 -1
- package/out/service-worker.js.map +1 -1
- package/out/static/client/5183.ed3575d7370b617c.js +64 -0
- package/out/static/client/5183.ed3575d7370b617c.js.map +1 -0
- package/out/static/client/7047.7084b7bcf9a47b7b.js +9 -0
- package/out/static/client/7047.7084b7bcf9a47b7b.js.map +1 -0
- package/out/static/client/{8292.88217634072b2959.js → 8292.5a4929a466c7b3ca.js} +2 -2
- package/out/static/client/{8292.88217634072b2959.js.map → 8292.5a4929a466c7b3ca.js.map} +1 -1
- package/out/static/client/{index.a7f592ef6e4f2a0e.js → index.0e1f202766cdb426.js} +3 -3
- package/out/static/client/{index.a7f592ef6e4f2a0e.js.map → index.0e1f202766cdb426.js.map} +1 -1
- package/out/static/client/{runtime.14f0bbf7912ff6c2.js → runtime.076e84c93222dfd0.js} +2 -2
- package/out/static/client/{runtime.14f0bbf7912ff6c2.js.map → runtime.076e84c93222dfd0.js.map} +1 -1
- package/out/static/client/stats.json +319 -283
- package/out/static/client/styles-a11y-menu.bf24a870a8a4969f.js +1 -0
- package/out/static/client/styles-advertising.9f2b7bddc08575fc.js +1 -0
- package/out/static/client/styles-article-footer.aa9f8d240980b0f4.js +1 -0
- package/out/static/client/styles-banner.e738836bac789a8b.js +1 -0
- package/out/static/client/styles-baseline-indicator.c062716f3d033dd8.js +1 -0
- package/out/static/client/styles-blog-index.818261c8123bc042.js +1 -0
- package/out/static/client/styles-blog-post.96ce1680245bbc86.js +1 -0
- package/out/static/client/styles-breadcrumbs-bar.ed7d1440bdccf98f.js +1 -0
- package/out/static/client/styles-breadcrumbs.7599a269dc584d75.js +1 -0
- package/out/static/client/styles-button.de6a7b9b7548d84b.js +1 -0
- package/out/static/client/styles-content-section.a8bd7fde04898354.js +1 -0
- package/out/static/client/styles-contributor-spotlight.adad2e813e1667fe.js +1 -0
- package/out/static/client/styles-curriculum-about.eefa128bb415258c.js +1 -0
- package/out/static/client/styles-curriculum-default.a2692218d2b1a1f9.js +1 -0
- package/out/static/client/styles-curriculum-landing.2d51b8fce8f12b8d.js +1 -0
- package/out/static/client/styles-curriculum-module.f4ae8920ee1c92ff.js +1 -0
- package/out/static/client/styles-curriculum-overview.2d7c17b0f0b9bd92.js +1 -0
- package/out/static/client/styles-featured-articles.c54e8f6b90567441.js +1 -0
- package/out/static/client/styles-footer.cff8d2b7669e06a9.js +1 -0
- package/out/static/client/styles-generic-about.b31b672a5d394108.js +1 -0
- package/out/static/client/styles-generic-community.f7e5df670c7aeaf3.js +1 -0
- package/out/static/client/styles-generic-content.1a9e4b87d8a12a85.js +1 -0
- package/out/static/client/styles-generic-layout.76e37948146a2f39.js +1 -0
- package/out/static/client/styles-generic-sidebar.c07d266d1382c357.js +1 -0
- package/out/static/client/styles-generic-toc.342bb77a42e3cc84.js +1 -0
- package/out/static/client/{styles-global.e813b635d036a38b.css → styles-global.63980d9c69df1f6a.css} +2 -2
- package/out/static/client/{styles-global.e813b635d036a38b.css.map → styles-global.63980d9c69df1f6a.css.map} +1 -1
- package/out/static/client/styles-global.c2e6118d3b833b4a.js +1 -0
- package/out/static/client/styles-heading-anchor.79390408a0c88875.js +1 -0
- package/out/static/client/styles-homepage-body.20c015a218d0bc96.js +1 -0
- package/out/static/client/styles-homepage-contributor-spotlight.21f37f11b3bd4bda.js +1 -0
- package/out/static/client/styles-homepage-footer.24e66b627b59d99f.js +1 -0
- package/out/static/client/styles-homepage-header.1a75fa94f8bab5a0.js +1 -0
- package/out/static/client/styles-homepage-hero.f1bf55f1be2d516d.js +1 -0
- package/out/static/client/styles-homepage.cd5bf6213bc06b4e.js +1 -0
- package/out/static/client/styles-latest-news.0f32a584ef1ed171.js +1 -0
- package/out/static/client/styles-left-sidebar.d7d52289da7ba969.js +1 -0
- package/out/static/client/styles-logo.1ff82941fc133017.js +1 -0
- package/out/static/client/styles-mandala.2a99de27a8c19d02.js +1 -0
- package/out/static/client/styles-menu.13c3394ada0512ef.js +1 -0
- package/out/static/client/styles-navigation.f857f577084aa7ef.js +1 -0
- package/out/static/client/styles-not-found.0bdc6a72643ebe34.js +1 -0
- package/out/static/client/styles-observatory-landing.e709efc8103ee08c.js +1 -0
- package/out/static/client/styles-observatory-results.e098740504c0c0f0.js +1 -0
- package/out/static/client/styles-page-layout.2ab75fc5b95edf1b.js +1 -0
- package/out/static/client/styles-pagination.667a2af3eaebe782.js +1 -0
- package/out/static/client/styles-playground.c1339745dabdf1f6.js +1 -0
- package/out/static/client/styles-recent-contributions.706333df420f227c.js +1 -0
- package/out/static/client/styles-reference-layout.6eaaea648e7e4dce.js +1 -0
- package/out/static/client/styles-reference-toc.dcb67aadb5032e3f.js +1 -0
- package/out/static/client/styles-sandbox.c14203f7b76d9e70.js +1 -0
- package/out/static/client/styles-site-search.ba674569591c3348.js +1 -0
- package/out/static/client/styles-social-image.47d082e57762bfb4.css +2 -0
- package/out/static/client/styles-social-image.47d082e57762bfb4.css.map +1 -0
- package/out/static/client/styles-social-image.f457942a12584899.js +1 -0
- package/out/static/client/styles-translation-banner.c0bf41a60bc2fe87.js +1 -0
- package/out/static/client/styles-writer-toolbar.e7438b6d8e7c99f4.js +1 -0
- package/out/static/client/{styles.519e2a3b2b0392d7.js → styles.cbf2ca4b84823096.js} +2 -2
- package/out/static/client/{styles.519e2a3b2b0392d7.js.map → styles.cbf2ca4b84823096.js.map} +1 -1
- package/out/static/legacy/{145.f57152daa80bc354.js → 145.e71ec0c1d16bfeb6.js} +2 -2
- package/out/static/legacy/{145.f57152daa80bc354.js.map → 145.e71ec0c1d16bfeb6.js.map} +1 -1
- package/out/static/legacy/{2439.db04dec0f2bfe008.js → 2439.152ddc8eff5390cc.js} +2 -2
- package/out/static/legacy/{2439.db04dec0f2bfe008.js.map → 2439.152ddc8eff5390cc.js.map} +1 -1
- package/out/static/legacy/{2569.2ed6f988d52f6cb2.js → 2569.41b52dfae9ff5dbd.js} +2 -2
- package/out/static/legacy/{2569.2ed6f988d52f6cb2.js.map → 2569.41b52dfae9ff5dbd.js.map} +1 -1
- package/out/static/legacy/{3097.5ee3eace96d8c3ea.js → 3097.89f8c27a39d2d759.js} +2 -2
- package/out/static/legacy/{3097.5ee3eace96d8c3ea.js.map → 3097.89f8c27a39d2d759.js.map} +1 -1
- package/out/static/legacy/{4624.5f395686fe61b4a3.js → 4624.831090754998070f.js} +2 -2
- package/out/static/legacy/{4624.5f395686fe61b4a3.js.map → 4624.831090754998070f.js.map} +1 -1
- package/out/static/legacy/{4944.dff54c3109113729.js → 4944.d5de2520acb6bc03.js} +2 -2
- package/out/static/legacy/{4944.dff54c3109113729.js.map → 4944.d5de2520acb6bc03.js.map} +1 -1
- package/out/static/legacy/{4968.12b8af0a52d054ac.js → 4968.c5c0429688b49438.js} +2 -2
- package/out/static/legacy/{4968.12b8af0a52d054ac.js.map → 4968.c5c0429688b49438.js.map} +1 -1
- package/out/static/legacy/{652.702c9f7893508b7f.js → 652.984bbafca5a127d6.js} +2 -2
- package/out/static/legacy/{652.702c9f7893508b7f.js.map → 652.984bbafca5a127d6.js.map} +1 -1
- package/out/static/legacy/{6542.8f8dc41c1b7b4f3d.js → 6542.9ae1d636a2097c7a.js} +2 -2
- package/out/static/legacy/{6542.8f8dc41c1b7b4f3d.js.map → 6542.9ae1d636a2097c7a.js.map} +1 -1
- package/out/static/legacy/{6786.d37ed4aa6d7a5c1a.js → 6786.c180a40232e02d98.js} +3 -3
- package/out/static/legacy/{6786.d37ed4aa6d7a5c1a.js.map → 6786.c180a40232e02d98.js.map} +1 -1
- package/out/static/legacy/{8292.88217634072b2959.js → 8292.5a4929a466c7b3ca.js} +2 -2
- package/out/static/legacy/{8292.88217634072b2959.js.map → 8292.5a4929a466c7b3ca.js.map} +1 -1
- package/out/static/legacy/{8315.525575601119f224.js → 8315.732f4f8af2f04044.js} +2 -2
- package/out/static/legacy/{8315.525575601119f224.js.map → 8315.732f4f8af2f04044.js.map} +1 -1
- package/out/static/legacy/{8769.d63b4369d16f3391.js → 8769.c0eb10a75d355ed3.js} +2 -2
- package/out/static/legacy/{8769.d63b4369d16f3391.js.map → 8769.c0eb10a75d355ed3.js.map} +1 -1
- package/out/static/legacy/{9380.d18451f1d350375d.js → 9380.2e09c0a94dc10112.js} +2 -2
- package/out/static/legacy/{9380.d18451f1d350375d.js.map → 9380.2e09c0a94dc10112.js.map} +1 -1
- package/out/static/legacy/asset-manifest.json +20 -20
- package/out/static/legacy/{index.0b85877f879160b2.js → index.5e65b9f52e86ad40.js} +5 -5
- package/out/static/legacy/{index.0b85877f879160b2.js.LICENSE.txt → index.5e65b9f52e86ad40.js.LICENSE.txt} +1 -1
- package/out/static/legacy/{index.0b85877f879160b2.js.map → index.5e65b9f52e86ad40.js.map} +1 -1
- package/out/static/legacy/{index.645247acbde1c666.html → index.6838304b64f32836.html} +1 -1
- package/out/static/legacy/stats.json +14 -14
- package/out/static/legacy/{yari.46e28128e98126d7.js → yari.c8f274d3a31b194e.js} +6 -6
- package/out/static/legacy/{yari.46e28128e98126d7.js.LICENSE.txt → yari.c8f274d3a31b194e.js.LICENSE.txt} +1 -1
- package/out/static/legacy/{yari.46e28128e98126d7.js.map → yari.c8f274d3a31b194e.js.map} +1 -1
- package/out/static/ssr/8292.js +1 -1
- package/out/static/ssr/8292.js.map +1 -1
- package/out/static/ssr/index.js +149 -142
- package/out/static/ssr/index.js.map +1 -1
- package/out/static/ssr/stats.json +4 -4
- package/out/twitter-card-summary.46ac2375.png +0 -0
- package/package.json +16 -15
- package/public/twitter-card-summary.46ac2375.png +0 -0
- package/server.js +12 -1
- package/out/static/client/5183.e4104aeffa888fd3.js +0 -64
- package/out/static/client/5183.e4104aeffa888fd3.js.map +0 -1
- package/out/static/client/7047.5a3c9165bf33e8ef.js +0 -9
- package/out/static/client/7047.5a3c9165bf33e8ef.js.map +0 -1
- package/out/static/client/styles-a11y-menu.49f604eb400e3a1b.js +0 -1
- package/out/static/client/styles-advertising.206d401ac1918107.js +0 -1
- package/out/static/client/styles-article-footer.bf7a12a8f26de9d8.js +0 -1
- package/out/static/client/styles-banner.045fd9429c0b4559.js +0 -1
- package/out/static/client/styles-baseline-indicator.1a9a989c5eed2bd0.js +0 -1
- package/out/static/client/styles-blog-index.07075fbe70ea701a.js +0 -1
- package/out/static/client/styles-blog-post.f096d7b72acc54c7.js +0 -1
- package/out/static/client/styles-breadcrumbs-bar.b6d2903779905507.js +0 -1
- package/out/static/client/styles-breadcrumbs.7b6a3fca16762395.js +0 -1
- package/out/static/client/styles-button.68557b262acc04d5.js +0 -1
- package/out/static/client/styles-content-section.8b58198fcbb512cd.js +0 -1
- package/out/static/client/styles-contributor-spotlight.65897b7d1c3de5e6.js +0 -1
- package/out/static/client/styles-curriculum-about.013603624423e8b7.js +0 -1
- package/out/static/client/styles-curriculum-default.8d3cc74e416d99c0.js +0 -1
- package/out/static/client/styles-curriculum-landing.95ce2c9c6203fda2.js +0 -1
- package/out/static/client/styles-curriculum-module.6bd730e94b6ab4b0.js +0 -1
- package/out/static/client/styles-curriculum-overview.31fd536067fb14e7.js +0 -1
- package/out/static/client/styles-featured-articles.122a3779cde55236.js +0 -1
- package/out/static/client/styles-footer.fedc4476f04ebc15.js +0 -1
- package/out/static/client/styles-generic-about.7e63ff8a4b7851ef.js +0 -1
- package/out/static/client/styles-generic-community.dae09a544431e63d.js +0 -1
- package/out/static/client/styles-generic-content.16d08aa39ea401b9.js +0 -1
- package/out/static/client/styles-generic-layout.3e4f2f4951ea186b.js +0 -1
- package/out/static/client/styles-generic-sidebar.b2e094fc3c0756ab.js +0 -1
- package/out/static/client/styles-generic-toc.cd70dab26a1241d4.js +0 -1
- package/out/static/client/styles-global.339e7f9a94da6256.js +0 -1
- package/out/static/client/styles-heading-anchor.0deb48e0e151aba3.js +0 -1
- package/out/static/client/styles-homepage-body.cb1b213bec93efdd.js +0 -1
- package/out/static/client/styles-homepage-contributor-spotlight.1a2acbf06be6d425.js +0 -1
- package/out/static/client/styles-homepage-footer.3435c9576666f4a5.js +0 -1
- package/out/static/client/styles-homepage-header.6a6b4ebaf675e721.js +0 -1
- package/out/static/client/styles-homepage-hero.de64115a608af810.js +0 -1
- package/out/static/client/styles-homepage.09583f85e229d2de.js +0 -1
- package/out/static/client/styles-latest-news.d7d8beb1f187d6f5.js +0 -1
- package/out/static/client/styles-left-sidebar.62e4bdb34c86bc43.js +0 -1
- package/out/static/client/styles-logo.15608a14aefd9e51.js +0 -1
- package/out/static/client/styles-mandala.18c6e16ec318e10a.js +0 -1
- package/out/static/client/styles-menu.8011e6627accb1f3.js +0 -1
- package/out/static/client/styles-navigation.507be0a6a4278751.js +0 -1
- package/out/static/client/styles-not-found.5abe16a37f65b63a.js +0 -1
- package/out/static/client/styles-observatory-landing.2bda92fc6d68c4fc.js +0 -1
- package/out/static/client/styles-observatory-results.090bb92b82d036eb.js +0 -1
- package/out/static/client/styles-page-layout.ca4cbe58578a57eb.js +0 -1
- package/out/static/client/styles-pagination.cacd3f49e3de0552.js +0 -1
- package/out/static/client/styles-playground.1c172c9a3a8d9b79.js +0 -1
- package/out/static/client/styles-recent-contributions.45d4f26778c7ba5b.js +0 -1
- package/out/static/client/styles-reference-layout.d26c1e2e7b6dcf90.js +0 -1
- package/out/static/client/styles-reference-toc.bb1b05755fbc1108.js +0 -1
- package/out/static/client/styles-sandbox.a14cc003eeaa8914.js +0 -1
- package/out/static/client/styles-site-search.76d1310c8fe1b8fb.js +0 -1
- package/out/static/client/styles-translation-banner.c9804ae977f28550.js +0 -1
- package/out/static/client/styles-writer-toolbar.e88f55bfa22d6f0e.js +0 -1
- /package/out/static/client/{5183.e4104aeffa888fd3.js.LICENSE.txt → 5183.ed3575d7370b617c.js.LICENSE.txt} +0 -0
- /package/out/static/client/{index.a7f592ef6e4f2a0e.js.LICENSE.txt → index.0e1f202766cdb426.js.LICENSE.txt} +0 -0
- /package/out/static/legacy/{6786.d37ed4aa6d7a5c1a.js.LICENSE.txt → 6786.c180a40232e02d98.js.LICENSE.txt} +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const __rspack_esm_id="2439";export const __rspack_esm_ids=["2439"];export const __webpack_modules__={56922(e,t,n){n.r(t),n.d(t,{default:()=>g});var r=n(96540),l=n(3322),a=n(92177);function o(e){return({bad_bcd_queries:"Bad BCD queries",bad_pre_tags:"Bad <pre> tags",unsafe_html:"Unsafe HTML"})[e]||e.charAt(0).toUpperCase()+e.slice(1).replace(/_/g," ")}var c=n(66786),u=n(38365),i=n(5438);function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function m(e,t,n,r,l,a,o){try{var c=e[a](o),u=c.value}catch(e){n(e);return}c.done?t(u):Promise.resolve(u).then(r,l)}function f(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}function p(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}function y(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,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=(n=l.next()).done)&&(a.push(n.value),!t||a.length!==t);o=!0);}catch(e){c=!0,r=e}finally{try{o||null==l.return||l.return()}finally{if(c)throw r}}return a}}(e,t)||v(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function d(e){return function(e){if(Array.isArray(e))return s(e)}(e)||function(e){if("u">typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||v(e)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function b(e){return e&&"u">typeof Symbol&&e.constructor===Symbol?"symbol":typeof e}function v(e,t){if(e){if("string"==typeof e)return s(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return s(e,t)}}var h=Object.freeze({mdn_url:"",title:"",popularity:"",fixableFlaws:"",flaws:[],page:1,sort_by:"popularity",sort_reverse:!1,search_flaws:[]});function E(){var e=y((0,l.ok)(),2),t=e[0],n=e[1],a=(0,r.useMemo)(function(){var e=d(t.entries()).reduce(function(e,t){var n=y(t,2),r=n[0],l=n[1];return Object.prototype.hasOwnProperty.call(e,r)?Array.isArray(e[r])?e[r]=d(e[r]).concat([l]):e[r]=[e[r],l]:e[r]=l,e},{});return e.page&&(e.page=parseInt(e.page)),f({},h,e)},[t]),o=(0,r.useCallback)(function(e){n(Object.fromEntries(Object.entries(f({},a,e)).filter(function(e){var t=y(e,2),n=t[0],r=t[1];return JSON.stringify(h[n])!==JSON.stringify(r)})))},[a,n]),c=!0,u=!1,i=void 0;try{for(var s,m=["flaws","search_flaws"][Symbol.iterator]();!(c=(s=m.next()).done);c=!0){var p=s.value;a[p]&&!Array.isArray(a[p])&&(a[p]=[a[p]])}}catch(e){u=!0,i=e}finally{try{c||null==m.return||m.return()}finally{if(u)throw i}}return[a,o]}function g(){var e=(0,i.Ym)(),t=y(E(),1)[0],n=y((0,r.useState)(null),2),o=n[0],u=n[1];(0,r.useEffect)(function(){var e="Documents with flaws";o&&(e="(".concat(o.counts.found.toLocaleString()," found) ").concat(e)),document.title=e},[o]);var s=(0,r.useCallback)(function(){var n=t.sort_by,r=t.sort_reverse,a=t.page,o=function(e,t){if(null==e)return{};var n,r,l,a={};if("u">typeof Reflect&&Reflect.ownKeys){for(l=0,n=Reflect.ownKeys(e);l<n.length;l++)r=n[l],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r]);return a}if(a=function(e,t){if(null==e)return{};var n,r,l={},a=Object.getOwnPropertyNames(e);for(r=0;r<a.length;r++)n=a[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(l[n]=e[n]);return l}(e,t),Object.getOwnPropertySymbols)for(l=0,n=Object.getOwnPropertySymbols(e);l<n.length;l++)r=n[l],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r]);return a}(t,["sort_by","sort_reverse","page"]),c=(0,l.PI)(p(f({},o),{page:String(a),locale:e,sort:n,reverse:JSON.stringify(r)}));return"/_flaws?".concat(c.toString())},[e,t]),d=(0,a.Ay)(s(),function(e){var t;return(t=function(){var t;return function(e,t){var n,r,l,a={label:0,sent:function(){if(1&l[0])throw l[1];return l[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),c=Object.defineProperty;return c(o,"next",{value:u(0)}),c(o,"throw",{value:u(1)}),c(o,"return",{value:u(2)}),"function"==typeof Symbol&&c(o,Symbol.iterator,{value:function(){return this}}),o;function u(c){return function(u){var i=[c,u];if(n)throw TypeError("Generator is already executing.");for(;o&&(o=0,i[0]&&(a=0)),a;)try{if(n=1,r&&(l=2&i[0]?r.return:i[0]?r.throw||((l=r.return)&&l.call(r),0):r.next)&&!(l=l.call(r,i[1])).done)return l;switch(r=0,l&&(i=[2&i[0],l.value]),i[0]){case 0:case 1:l=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(l=(l=a.trys).length>0&&l[l.length-1])&&(6===i[0]||2===i[0])){a=0;continue}if(3===i[0]&&(!l||i[1]>l[0]&&i[1]<l[3])){a.label=i[1];break}if(6===i[0]&&a.label<l[1]){a.label=l[1],l=i;break}if(l&&a.label<l[2]){a.label=l[2],a.ops.push(i);break}l[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],r=0}finally{n=l=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}}}(this,function(n){switch(n.label){case 0:return n.trys.push([0,2,,3]),[4,fetch(e)];case 1:return t=n.sent(),[3,3];case 2:throw n.sent();case 3:if(!t.ok)throw Error("".concat(t.status," on ").concat(e));if(!t.headers.get("content-type").includes("application/json"))throw Error("Response is not JSON (".concat(t.headers.get("content-type"),")"));return[2,t.json()]}})},function(){var e=this,n=arguments;return new Promise(function(r,l){var a=t.apply(e,n);function o(e){m(a,r,l,o,c,"next",e)}function c(e){m(a,r,l,o,c,"throw",e)}o(void 0)})})()},{}),b=d.data,v=d.error,h=d.isValidating;(0,r.useEffect)(function(){b&&u(b)},[b]);var g=r.createElement("small",null,"\xa0");b||v?h&&(g=r.createElement("small",null,"Reloading...")):g=o?r.createElement("small",null,"Reloading..."):r.createElement("small",null,"Loading...");var k=t.page,P=o?o.counts.pages:0;return r.createElement(c.K,{className:"all-flaws",standalone:!0},g,v&&r.createElement(w,{error:v}),o&&r.createElement("div",{className:"filter-documents"},r.createElement(j,{flawLevels:o.flawLevels}),r.createElement(S,{locale:e,counts:o.counts,documents:o.documents,pageCount:P,page:k})),b&&b.counts&&r.createElement(_,{counts:b.counts.flaws}),b&&r.createElement(O,{times:b.times}))}function w(e){var t=e.error;return r.createElement("div",{className:"error-message search-error"},r.createElement("h3",null,"Search error"),r.createElement("pre",null,t.toString()))}function O(e){var t,n=e.times;return r.createElement("div",{className:"search-times"},r.createElement("p",null,"Time to find built documents ",(t=n.built)>1e3?"".concat((t/1e3).toFixed(1)," seconds"):"".concat(Math.trunc(t)," milliseconds")))}function j(e){var t=e.flawLevels,n=y(E(),2),l=n[0],a=n[1],c=y((0,r.useState)(l),2),u=c[0],i=c[1],s=y((0,r.useState)(function(e){var t=[],n=!0,r=!1,l=void 0;try{for(var a,o=e[Symbol.iterator]();!(n=(a=o.next()).done);n=!0){var c=a.value,u=y(c.split(":",2),2),i=u[0],s=u[1];t.push({flaw:i,search:s})}}catch(e){r=!0,l=e}finally{try{n||null==o.return||o.return()}finally{if(r)throw l}}return t}(l.search_flaws)),2),m=s[0],v=s[1];function g(){a(u)}(0,r.useEffect)(function(){var e=d(document.querySelectorAll('ul.search-flaws-rows input[type="search"]')).filter(function(e){return!e.value});e.length&&e[e.length-1].focus()},[m]);var w=!function(e,t){var n=new Set(Object.keys(e)),r=new Set(Object.keys(t));if(n.size!==r.size)return!1;var l=!0,a=!1,o=void 0;try{for(var c,u=n[Symbol.iterator]();!(l=(c=u.next()).done);l=!0){var i=c.value;if(!r.has(i))return!1}}catch(e){a=!0,o=e}finally{try{l||null==u.return||u.return()}finally{if(a)throw o}}return Object.entries(e).every(function(e){var n=y(e,2),r=n[0],l=n[1],a=t[r];return(void 0===l?"undefined":b(l))===(void 0===a?"undefined":b(a))&&(Array.isArray(l)?l.length===a.length&&l.every(function(e,t){return e===a[t]}):l===a)})}(h,u),O=m.some(function(e){return!e.search.trim()});return r.createElement("div",{className:"filters"},r.createElement("h3",null,"Filters"),r.createElement("form",{onSubmit:function(e){e.preventDefault(),g()}},r.createElement("div",null,r.createElement("h4",null,"Document"),r.createElement("input",{type:"search",placeholder:"Filter by document URI",value:u.mdn_url,onChange:function(e){i(p(f({},u),{mdn_url:e.target.value}))},onBlur:g}),r.createElement("input",{type:"search",placeholder:"Filter by document title",value:u.title,onChange:function(e){i(p(f({},u),{title:e.target.value}))},onBlur:g})),r.createElement("div",null,r.createElement("h4",null,"Popularity"),r.createElement("input",{type:"search",placeholder:"E.g. < 100",value:u.popularity||"",onChange:function(e){i(p(f({},u),{popularity:e.target.value}))},onBlur:g})),r.createElement("div",null,r.createElement("h4",null,"Flaws"),r.createElement("select",{multiple:!0,value:u.flaws,onChange:function(e){var t=d(e.target.selectedOptions).map(function(e){return e.value});i(p(f({},u),{flaws:t}))}},t&&t.map(function(e){return r.createElement("option",{key:e.name,value:e.name},o(e.name)," ",e.ignored&&"(ignored)")}))),r.createElement("div",null,r.createElement("h4",null,"Search inside flaws"),r.createElement("ul",{className:"search-flaws-rows"},m.map(function(e,n){return r.createElement("li",{key:"".concat(e.flaw,":").concat(n)},r.createElement("select",{value:e.flaw,onChange:function(e){var t=d(m);t[n].flaw=e.target.value,v(t)}},t&&t.filter(function(e){return!e.ignored}).map(function(e){return r.createElement("option",{key:e.name,value:e.name},o(e.name))})),r.createElement("input",{type:"search",placeholder:"Search expression (e.g. jsxref)",value:e.search,onChange:function(e){v(m.map(function(t,r){return n===r&&(t.search=e.target.value),t}))},onBlur:function(){var e=m.map(function(e){return"".concat(e.flaw,":").concat(e.search)});i(p(f({},u),{search_flaws:e})),g()}}),r.createElement("button",{type:"button",title:"Remove search row",onClick:function(){var e=d(m);e.splice(n,1),v(e)}},"-"))})),r.createElement("button",{type:"button",title:"Add search row",disabled:O,onClick:function(){v(d(m).concat(d([{flaw:"macros",search:""}])))}},"+")),r.createElement("div",null,r.createElement("h4",null,"Fixable flaws"),r.createElement("input",{type:"search",placeholder:"E.g. >0",value:u.fixableFlaws||"",onChange:function(e){i(p(f({},u),{fixableFlaws:e.target.value}))},onBlur:g})),r.createElement("div",null,r.createElement("h4",null,"\xa0"),r.createElement("button",{type:"submit"},"Filter now"),w&&r.createElement("button",{type:"button",onClick:function(e){e.preventDefault(),i(h),a(h)}},"Reset filters"))))}function S(e){var t=e.locale,n=e.counts,a=e.documents,c=e.pageCount,i=e.page,s=y(E(),2),m=s[0],f=s[1];function p(e){var t=e.id,n=e.title;return r.createElement("th",{onClick:function(){f(m.sort_by===t?{sort_reverse:!m.sort_reverse}:{sort_by:t})},className:"sortable"},n," ",m.sort_by===t?m.sort_reverse?"↓":"↑":null)}function d(e,t){var n=e.split(RegExp("(".concat(t,")"),"gi"));return r.createElement("span",null," ",n.map(function(e,n){return r.createElement("span",{key:n,style:e.toLowerCase()===t.toLowerCase()?{fontWeight:"bold"}:{}},e)})," ")}return r.createElement("div",{className:"documents"},r.createElement("h3",null,"Documents with flaws found (",n.found.toLocaleString(),")"," ",c>1&&r.createElement("span",{className:"page"},"page ",i,"/",c)),n.built?r.createElement("h4",{className:"subheader"},n.built.toLocaleString()," documents built (",t,")"):r.createElement(k,{locale:t}),r.createElement("table",null,r.createElement("thead",null,r.createElement("tr",null,r.createElement(p,{id:"mdn_url",title:"Document"}),r.createElement(p,{id:"popularity",title:"Popularity"}),r.createElement(p,{id:"flaws",title:"Flaws"}))),r.createElement("tbody",null,a.map(function(e){var t,n,a,c,u,i,s,f,p;return r.createElement("tr",{key:e.mdn_url},r.createElement("td",null,r.createElement(l.N_,{to:"".concat(e.mdn_url,"#_flaws"),title:e.title,target:"_blank"},(n=(t=y(e.mdn_url.split(/\/docs\//,2),2))[0],a=t[1],r.createElement(r.Fragment,null,r.createElement("span",{className:"url-prefix"},n,"/docs/"),r.createElement("span",{className:"url-slug"},m.mdn_url?d(a,m.mdn_url):a)))),r.createElement("span",{className:"document-title-preview"},m.title?d(e.title,m.title):e.title)),r.createElement("td",{className:e.popularity.ranking?"":"no-popularity",title:e.popularity.ranking?"Meaning there are ".concat(e.popularity.ranking-1," more popular pages than this"):"Meaning it has no ranking. Most likely a very rare (or new) document"},e.popularity.ranking?"".concat((c=e.popularity.ranking,u=["th","st","nd","rd"],i=c%100,c.toLocaleString()+(u[(i-20)%10]||u[i]||u[0]))):"n/a"),r.createElement("td",{className:"document-flaws"},(f=(s=e.flaws).reduce(function(e,t){return t.countFixable+e},0),p=s.map(function(e){return"".concat(o(e.name),": ").concat(e.value)}),r.createElement(r.Fragment,null,p.join(", ")," ",r.createElement("span",{className:"document-flaws-fixable"},"(",f," fixable)")))))}))),r.createElement(u.m,{last:c}))}function k(e){var t=e.locale;return r.createElement("div",{className:"notecard warning document-warnings"},r.createElement("h4",null,"No documents have been built, so no flaws can be found"),r.createElement("p",null,"Run ",r.createElement("code",null,"yarn build --locale ",t.toLowerCase())," to build all documents for the current locale."))}function _(e){var t=e.counts,n=Object.entries(t.type).sort(function(e,t){return e[1]-t[1]}),l=Object.entries(t.macros).sort(function(e,t){return e[1]-t[1]});return r.createElement("div",{className:"flaw-counts"},r.createElement("h3",null,"Flaws counts"),r.createElement("table",null,r.createElement("tbody",null,r.createElement("tr",null,r.createElement("td",null,"Total"),r.createElement("td",null,r.createElement("b",null,t.total.toLocaleString()))),r.createElement("tr",null,r.createElement("td",null,"Fixable"),r.createElement("td",null,r.createElement("b",null,t.fixable.toLocaleString()))))),r.createElement("h4",null,"Breakdown by type"),r.createElement("table",null,r.createElement("thead",null,r.createElement("tr",null,r.createElement("th",null,"Type"),r.createElement("th",null,"Count"))),r.createElement("tbody",null,n.map(function(e){var t=y(e,2),n=t[0],l=t[1];return r.createElement("tr",{key:n},r.createElement("td",null,o(n)),r.createElement("td",null,r.createElement("b",null,l.toLocaleString())))}))),r.createElement("h4",null,"Breakdown by ",r.createElement("code",null,"macros")," flaws"),r.createElement("table",null,r.createElement("thead",null,r.createElement("tr",null,r.createElement("th",null,"Name"),r.createElement("th",null,"Count"))),r.createElement("tbody",null,l.map(function(e){var t=y(e,2),n=t[0],l=t[1];return r.createElement("tr",{key:n},r.createElement("td",null,r.createElement("code",null,n)),r.createElement("td",null,r.createElement("b",null,l.toLocaleString())))}))))}},38365(e,t,n){n.d(t,{m:()=>m});var r=n(3322),l=n(24826),a=n(96540);function o(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function c(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function u(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,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=(n=l.next()).done)&&(a.push(n.value),!t||a.length!==t);o=!0);}catch(e){c=!0,r=e}finally{try{o||null==l.return||l.return()}finally{if(c)throw r}}return a}}(e,t)||function(e,t){if(e){if("string"==typeof e)return o(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return o(e,t)}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}var i="page";function s(e){var t=e.page,n=e.children,l=e.onClick,o=e.disabled,s=u((0,r.ok)(),2),m=s[0],f=s[1];return a.createElement(r.N_,{to:{},className:o?"disabled":"",onClick:function(e){if(e.preventDefault(),!o){var n,r;l&&l(t),f((n=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){c(e,t,n[t])})}return e}({},Object.fromEntries(m.entries())),r=null!=(r=c({},i,t.toString()))?r:{},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(r)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(r)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(r,e))}),n)),window.setTimeout(function(){return document.documentElement.scrollTo()})}}},n||t)}function m(e){var t=e.first,n=void 0===t?1:t,o=e.last,c=e.endPadding,m=void 0===c?2:c,f=e.middlePadding,p=void 0===f?2:f,y=e.onChange,d=parseInt(u((0,r.ok)(),1)[0].get(i)||"",10)||n,b=Math.max(d-p,n),v=Math.min(b+2*p+1,o+1),h=(0,l.y1)(n,Math.min(m,b)),E=(0,l.y1)(b,v),g=(0,l.y1)(Math.max(o+1-m,v),o+1),w=function(e){y&&y(e,d)};return n===o?a.createElement(a.Fragment,null):a.createElement("div",{className:"pagination"},a.createElement(s,{page:d-1,onClick:w,disabled:d===n},"← Previous"),h.map(function(e){return a.createElement(s,{key:e,page:e,onClick:w})}),!!h.length&&h[h.length-1]+1!==E[0]&&"…",E.map(function(e){return d===e?a.createElement("span",{className:"current-page",key:e},e):a.createElement(s,{key:e,page:e,onClick:w})}),!!g.length&&E[E.length-1]+1!==g[0]&&"…",g.map(function(e){return a.createElement(s,{key:e,page:e,onClick:w})}),a.createElement(s,{page:d+1,onClick:w,disabled:d===o},"Next →"))}}};
|
|
2
|
-
//# sourceMappingURL=2439.
|
|
1
|
+
export const __rspack_esm_id="2439";export const __rspack_esm_ids=["2439"];export const __webpack_modules__={56922(e,t,n){n.r(t),n.d(t,{default:()=>g});var r=n(96540),l=n(3433),a=n(92177);function o(e){return({bad_bcd_queries:"Bad BCD queries",bad_pre_tags:"Bad <pre> tags",unsafe_html:"Unsafe HTML"})[e]||e.charAt(0).toUpperCase()+e.slice(1).replace(/_/g," ")}var c=n(66786),u=n(38365),i=n(5438);function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function m(e,t,n,r,l,a,o){try{var c=e[a](o),u=c.value}catch(e){n(e);return}c.done?t(u):Promise.resolve(u).then(r,l)}function f(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}function p(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}function y(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,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=(n=l.next()).done)&&(a.push(n.value),!t||a.length!==t);o=!0);}catch(e){c=!0,r=e}finally{try{o||null==l.return||l.return()}finally{if(c)throw r}}return a}}(e,t)||v(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function d(e){return function(e){if(Array.isArray(e))return s(e)}(e)||function(e){if("u">typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||v(e)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function b(e){return e&&"u">typeof Symbol&&e.constructor===Symbol?"symbol":typeof e}function v(e,t){if(e){if("string"==typeof e)return s(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return s(e,t)}}var h=Object.freeze({mdn_url:"",title:"",popularity:"",fixableFlaws:"",flaws:[],page:1,sort_by:"popularity",sort_reverse:!1,search_flaws:[]});function E(){var e=y((0,l.ok)(),2),t=e[0],n=e[1],a=(0,r.useMemo)(function(){var e=d(t.entries()).reduce(function(e,t){var n=y(t,2),r=n[0],l=n[1];return Object.prototype.hasOwnProperty.call(e,r)?Array.isArray(e[r])?e[r]=d(e[r]).concat([l]):e[r]=[e[r],l]:e[r]=l,e},{});return e.page&&(e.page=parseInt(e.page)),f({},h,e)},[t]),o=(0,r.useCallback)(function(e){n(Object.fromEntries(Object.entries(f({},a,e)).filter(function(e){var t=y(e,2),n=t[0],r=t[1];return JSON.stringify(h[n])!==JSON.stringify(r)})))},[a,n]),c=!0,u=!1,i=void 0;try{for(var s,m=["flaws","search_flaws"][Symbol.iterator]();!(c=(s=m.next()).done);c=!0){var p=s.value;a[p]&&!Array.isArray(a[p])&&(a[p]=[a[p]])}}catch(e){u=!0,i=e}finally{try{c||null==m.return||m.return()}finally{if(u)throw i}}return[a,o]}function g(){var e=(0,i.Ym)(),t=y(E(),1)[0],n=y((0,r.useState)(null),2),o=n[0],u=n[1];(0,r.useEffect)(function(){var e="Documents with flaws";o&&(e="(".concat(o.counts.found.toLocaleString()," found) ").concat(e)),document.title=e},[o]);var s=(0,r.useCallback)(function(){var n=t.sort_by,r=t.sort_reverse,a=t.page,o=function(e,t){if(null==e)return{};var n,r,l,a={};if("u">typeof Reflect&&Reflect.ownKeys){for(l=0,n=Reflect.ownKeys(e);l<n.length;l++)r=n[l],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r]);return a}if(a=function(e,t){if(null==e)return{};var n,r,l={},a=Object.getOwnPropertyNames(e);for(r=0;r<a.length;r++)n=a[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(l[n]=e[n]);return l}(e,t),Object.getOwnPropertySymbols)for(l=0,n=Object.getOwnPropertySymbols(e);l<n.length;l++)r=n[l],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r]);return a}(t,["sort_by","sort_reverse","page"]),c=(0,l.PI)(p(f({},o),{page:String(a),locale:e,sort:n,reverse:JSON.stringify(r)}));return"/_flaws?".concat(c.toString())},[e,t]),d=(0,a.Ay)(s(),function(e){var t;return(t=function(){var t;return function(e,t){var n,r,l,a={label:0,sent:function(){if(1&l[0])throw l[1];return l[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),c=Object.defineProperty;return c(o,"next",{value:u(0)}),c(o,"throw",{value:u(1)}),c(o,"return",{value:u(2)}),"function"==typeof Symbol&&c(o,Symbol.iterator,{value:function(){return this}}),o;function u(c){return function(u){var i=[c,u];if(n)throw TypeError("Generator is already executing.");for(;o&&(o=0,i[0]&&(a=0)),a;)try{if(n=1,r&&(l=2&i[0]?r.return:i[0]?r.throw||((l=r.return)&&l.call(r),0):r.next)&&!(l=l.call(r,i[1])).done)return l;switch(r=0,l&&(i=[2&i[0],l.value]),i[0]){case 0:case 1:l=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(l=(l=a.trys).length>0&&l[l.length-1])&&(6===i[0]||2===i[0])){a=0;continue}if(3===i[0]&&(!l||i[1]>l[0]&&i[1]<l[3])){a.label=i[1];break}if(6===i[0]&&a.label<l[1]){a.label=l[1],l=i;break}if(l&&a.label<l[2]){a.label=l[2],a.ops.push(i);break}l[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],r=0}finally{n=l=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}}}(this,function(n){switch(n.label){case 0:return n.trys.push([0,2,,3]),[4,fetch(e)];case 1:return t=n.sent(),[3,3];case 2:throw n.sent();case 3:if(!t.ok)throw Error("".concat(t.status," on ").concat(e));if(!t.headers.get("content-type").includes("application/json"))throw Error("Response is not JSON (".concat(t.headers.get("content-type"),")"));return[2,t.json()]}})},function(){var e=this,n=arguments;return new Promise(function(r,l){var a=t.apply(e,n);function o(e){m(a,r,l,o,c,"next",e)}function c(e){m(a,r,l,o,c,"throw",e)}o(void 0)})})()},{}),b=d.data,v=d.error,h=d.isValidating;(0,r.useEffect)(function(){b&&u(b)},[b]);var g=r.createElement("small",null,"\xa0");b||v?h&&(g=r.createElement("small",null,"Reloading...")):g=o?r.createElement("small",null,"Reloading..."):r.createElement("small",null,"Loading...");var k=t.page,P=o?o.counts.pages:0;return r.createElement(c.K,{className:"all-flaws",standalone:!0},g,v&&r.createElement(w,{error:v}),o&&r.createElement("div",{className:"filter-documents"},r.createElement(j,{flawLevels:o.flawLevels}),r.createElement(S,{locale:e,counts:o.counts,documents:o.documents,pageCount:P,page:k})),b&&b.counts&&r.createElement(_,{counts:b.counts.flaws}),b&&r.createElement(O,{times:b.times}))}function w(e){var t=e.error;return r.createElement("div",{className:"error-message search-error"},r.createElement("h3",null,"Search error"),r.createElement("pre",null,t.toString()))}function O(e){var t,n=e.times;return r.createElement("div",{className:"search-times"},r.createElement("p",null,"Time to find built documents ",(t=n.built)>1e3?"".concat((t/1e3).toFixed(1)," seconds"):"".concat(Math.trunc(t)," milliseconds")))}function j(e){var t=e.flawLevels,n=y(E(),2),l=n[0],a=n[1],c=y((0,r.useState)(l),2),u=c[0],i=c[1],s=y((0,r.useState)(function(e){var t=[],n=!0,r=!1,l=void 0;try{for(var a,o=e[Symbol.iterator]();!(n=(a=o.next()).done);n=!0){var c=a.value,u=y(c.split(":",2),2),i=u[0],s=u[1];t.push({flaw:i,search:s})}}catch(e){r=!0,l=e}finally{try{n||null==o.return||o.return()}finally{if(r)throw l}}return t}(l.search_flaws)),2),m=s[0],v=s[1];function g(){a(u)}(0,r.useEffect)(function(){var e=d(document.querySelectorAll('ul.search-flaws-rows input[type="search"]')).filter(function(e){return!e.value});e.length&&e[e.length-1].focus()},[m]);var w=!function(e,t){var n=new Set(Object.keys(e)),r=new Set(Object.keys(t));if(n.size!==r.size)return!1;var l=!0,a=!1,o=void 0;try{for(var c,u=n[Symbol.iterator]();!(l=(c=u.next()).done);l=!0){var i=c.value;if(!r.has(i))return!1}}catch(e){a=!0,o=e}finally{try{l||null==u.return||u.return()}finally{if(a)throw o}}return Object.entries(e).every(function(e){var n=y(e,2),r=n[0],l=n[1],a=t[r];return(void 0===l?"undefined":b(l))===(void 0===a?"undefined":b(a))&&(Array.isArray(l)?l.length===a.length&&l.every(function(e,t){return e===a[t]}):l===a)})}(h,u),O=m.some(function(e){return!e.search.trim()});return r.createElement("div",{className:"filters"},r.createElement("h3",null,"Filters"),r.createElement("form",{onSubmit:function(e){e.preventDefault(),g()}},r.createElement("div",null,r.createElement("h4",null,"Document"),r.createElement("input",{type:"search",placeholder:"Filter by document URI",value:u.mdn_url,onChange:function(e){i(p(f({},u),{mdn_url:e.target.value}))},onBlur:g}),r.createElement("input",{type:"search",placeholder:"Filter by document title",value:u.title,onChange:function(e){i(p(f({},u),{title:e.target.value}))},onBlur:g})),r.createElement("div",null,r.createElement("h4",null,"Popularity"),r.createElement("input",{type:"search",placeholder:"E.g. < 100",value:u.popularity||"",onChange:function(e){i(p(f({},u),{popularity:e.target.value}))},onBlur:g})),r.createElement("div",null,r.createElement("h4",null,"Flaws"),r.createElement("select",{multiple:!0,value:u.flaws,onChange:function(e){var t=d(e.target.selectedOptions).map(function(e){return e.value});i(p(f({},u),{flaws:t}))}},t&&t.map(function(e){return r.createElement("option",{key:e.name,value:e.name},o(e.name)," ",e.ignored&&"(ignored)")}))),r.createElement("div",null,r.createElement("h4",null,"Search inside flaws"),r.createElement("ul",{className:"search-flaws-rows"},m.map(function(e,n){return r.createElement("li",{key:"".concat(e.flaw,":").concat(n)},r.createElement("select",{value:e.flaw,onChange:function(e){var t=d(m);t[n].flaw=e.target.value,v(t)}},t&&t.filter(function(e){return!e.ignored}).map(function(e){return r.createElement("option",{key:e.name,value:e.name},o(e.name))})),r.createElement("input",{type:"search",placeholder:"Search expression (e.g. jsxref)",value:e.search,onChange:function(e){v(m.map(function(t,r){return n===r&&(t.search=e.target.value),t}))},onBlur:function(){var e=m.map(function(e){return"".concat(e.flaw,":").concat(e.search)});i(p(f({},u),{search_flaws:e})),g()}}),r.createElement("button",{type:"button",title:"Remove search row",onClick:function(){var e=d(m);e.splice(n,1),v(e)}},"-"))})),r.createElement("button",{type:"button",title:"Add search row",disabled:O,onClick:function(){v(d(m).concat(d([{flaw:"macros",search:""}])))}},"+")),r.createElement("div",null,r.createElement("h4",null,"Fixable flaws"),r.createElement("input",{type:"search",placeholder:"E.g. >0",value:u.fixableFlaws||"",onChange:function(e){i(p(f({},u),{fixableFlaws:e.target.value}))},onBlur:g})),r.createElement("div",null,r.createElement("h4",null,"\xa0"),r.createElement("button",{type:"submit"},"Filter now"),w&&r.createElement("button",{type:"button",onClick:function(e){e.preventDefault(),i(h),a(h)}},"Reset filters"))))}function S(e){var t=e.locale,n=e.counts,a=e.documents,c=e.pageCount,i=e.page,s=y(E(),2),m=s[0],f=s[1];function p(e){var t=e.id,n=e.title;return r.createElement("th",{onClick:function(){f(m.sort_by===t?{sort_reverse:!m.sort_reverse}:{sort_by:t})},className:"sortable"},n," ",m.sort_by===t?m.sort_reverse?"↓":"↑":null)}function d(e,t){var n=e.split(RegExp("(".concat(t,")"),"gi"));return r.createElement("span",null," ",n.map(function(e,n){return r.createElement("span",{key:n,style:e.toLowerCase()===t.toLowerCase()?{fontWeight:"bold"}:{}},e)})," ")}return r.createElement("div",{className:"documents"},r.createElement("h3",null,"Documents with flaws found (",n.found.toLocaleString(),")"," ",c>1&&r.createElement("span",{className:"page"},"page ",i,"/",c)),n.built?r.createElement("h4",{className:"subheader"},n.built.toLocaleString()," documents built (",t,")"):r.createElement(k,{locale:t}),r.createElement("table",null,r.createElement("thead",null,r.createElement("tr",null,r.createElement(p,{id:"mdn_url",title:"Document"}),r.createElement(p,{id:"popularity",title:"Popularity"}),r.createElement(p,{id:"flaws",title:"Flaws"}))),r.createElement("tbody",null,a.map(function(e){var t,n,a,c,u,i,s,f,p;return r.createElement("tr",{key:e.mdn_url},r.createElement("td",null,r.createElement(l.N_,{to:"".concat(e.mdn_url,"#_flaws"),title:e.title,target:"_blank"},(n=(t=y(e.mdn_url.split(/\/docs\//,2),2))[0],a=t[1],r.createElement(r.Fragment,null,r.createElement("span",{className:"url-prefix"},n,"/docs/"),r.createElement("span",{className:"url-slug"},m.mdn_url?d(a,m.mdn_url):a)))),r.createElement("span",{className:"document-title-preview"},m.title?d(e.title,m.title):e.title)),r.createElement("td",{className:e.popularity.ranking?"":"no-popularity",title:e.popularity.ranking?"Meaning there are ".concat(e.popularity.ranking-1," more popular pages than this"):"Meaning it has no ranking. Most likely a very rare (or new) document"},e.popularity.ranking?"".concat((c=e.popularity.ranking,u=["th","st","nd","rd"],i=c%100,c.toLocaleString()+(u[(i-20)%10]||u[i]||u[0]))):"n/a"),r.createElement("td",{className:"document-flaws"},(f=(s=e.flaws).reduce(function(e,t){return t.countFixable+e},0),p=s.map(function(e){return"".concat(o(e.name),": ").concat(e.value)}),r.createElement(r.Fragment,null,p.join(", ")," ",r.createElement("span",{className:"document-flaws-fixable"},"(",f," fixable)")))))}))),r.createElement(u.m,{last:c}))}function k(e){var t=e.locale;return r.createElement("div",{className:"notecard warning document-warnings"},r.createElement("h4",null,"No documents have been built, so no flaws can be found"),r.createElement("p",null,"Run ",r.createElement("code",null,"yarn build --locale ",t.toLowerCase())," to build all documents for the current locale."))}function _(e){var t=e.counts,n=Object.entries(t.type).sort(function(e,t){return e[1]-t[1]}),l=Object.entries(t.macros).sort(function(e,t){return e[1]-t[1]});return r.createElement("div",{className:"flaw-counts"},r.createElement("h3",null,"Flaws counts"),r.createElement("table",null,r.createElement("tbody",null,r.createElement("tr",null,r.createElement("td",null,"Total"),r.createElement("td",null,r.createElement("b",null,t.total.toLocaleString()))),r.createElement("tr",null,r.createElement("td",null,"Fixable"),r.createElement("td",null,r.createElement("b",null,t.fixable.toLocaleString()))))),r.createElement("h4",null,"Breakdown by type"),r.createElement("table",null,r.createElement("thead",null,r.createElement("tr",null,r.createElement("th",null,"Type"),r.createElement("th",null,"Count"))),r.createElement("tbody",null,n.map(function(e){var t=y(e,2),n=t[0],l=t[1];return r.createElement("tr",{key:n},r.createElement("td",null,o(n)),r.createElement("td",null,r.createElement("b",null,l.toLocaleString())))}))),r.createElement("h4",null,"Breakdown by ",r.createElement("code",null,"macros")," flaws"),r.createElement("table",null,r.createElement("thead",null,r.createElement("tr",null,r.createElement("th",null,"Name"),r.createElement("th",null,"Count"))),r.createElement("tbody",null,l.map(function(e){var t=y(e,2),n=t[0],l=t[1];return r.createElement("tr",{key:n},r.createElement("td",null,r.createElement("code",null,n)),r.createElement("td",null,r.createElement("b",null,l.toLocaleString())))}))))}},38365(e,t,n){n.d(t,{m:()=>m});var r=n(3433),l=n(24826),a=n(96540);function o(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function c(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function u(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n,r,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=(n=l.next()).done)&&(a.push(n.value),!t||a.length!==t);o=!0);}catch(e){c=!0,r=e}finally{try{o||null==l.return||l.return()}finally{if(c)throw r}}return a}}(e,t)||function(e,t){if(e){if("string"==typeof e)return o(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if("Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return o(e,t)}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}var i="page";function s(e){var t=e.page,n=e.children,l=e.onClick,o=e.disabled,s=u((0,r.ok)(),2),m=s[0],f=s[1];return a.createElement(r.N_,{to:{},className:o?"disabled":"",onClick:function(e){if(e.preventDefault(),!o){var n,r;l&&l(t),f((n=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){c(e,t,n[t])})}return e}({},Object.fromEntries(m.entries())),r=null!=(r=c({},i,t.toString()))?r:{},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(r)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n.push.apply(n,r)}return n})(Object(r)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(r,e))}),n)),window.setTimeout(function(){return document.documentElement.scrollTo()})}}},n||t)}function m(e){var t=e.first,n=void 0===t?1:t,o=e.last,c=e.endPadding,m=void 0===c?2:c,f=e.middlePadding,p=void 0===f?2:f,y=e.onChange,d=parseInt(u((0,r.ok)(),1)[0].get(i)||"",10)||n,b=Math.max(d-p,n),v=Math.min(b+2*p+1,o+1),h=(0,l.y1)(n,Math.min(m,b)),E=(0,l.y1)(b,v),g=(0,l.y1)(Math.max(o+1-m,v),o+1),w=function(e){y&&y(e,d)};return n===o?a.createElement(a.Fragment,null):a.createElement("div",{className:"pagination"},a.createElement(s,{page:d-1,onClick:w,disabled:d===n},"← Previous"),h.map(function(e){return a.createElement(s,{key:e,page:e,onClick:w})}),!!h.length&&h[h.length-1]+1!==E[0]&&"…",E.map(function(e){return d===e?a.createElement("span",{className:"current-page",key:e},e):a.createElement(s,{key:e,page:e,onClick:w})}),!!g.length&&E[E.length-1]+1!==g[0]&&"…",g.map(function(e){return a.createElement(s,{key:e,page:e,onClick:w})}),a.createElement(s,{page:d+1,onClick:w,disabled:d===o},"Next →"))}}};
|
|
2
|
+
//# sourceMappingURL=2439.152ddc8eff5390cc.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"2439.db04dec0f2bfe008.js","sources":["webpack://@mdn/fred/./node_modules/@mdn/yari/client/src/flaw-utils.js","webpack://@mdn/fred/./node_modules/@mdn/yari/client/src/flaws/index.tsx","webpack://@mdn/fred/./node_modules/@mdn/yari/client/src/ui/molecules/paginator/index.tsx"],"sourcesContent":["/**\n * This file serves to help flaws when displayed one at a time and when\n * displayed in batches.\n *\n */\n\nexport function humanizeFlawName(name) {\n const verboseNames = {\n // List all the names that can't be nicely computed by the fallback()\n // function.\n bad_bcd_queries: \"Bad BCD queries\",\n bad_pre_tags: \"Bad <pre> tags\",\n unsafe_html: \"Unsafe HTML\",\n };\n function fallback() {\n return name.charAt(0).toUpperCase() + name.slice(1).replace(/_/g, \" \");\n }\n return verboseNames[name] || fallback();\n}\n","import React, { useCallback, useEffect, useMemo, useState } from \"react\";\nimport { createSearchParams, Link, useSearchParams } from \"react-router-dom\";\nimport useSWR from \"swr\";\n\nimport \"./index.scss\";\n\nimport { humanizeFlawName } from \"../flaw-utils\";\nimport { MainContentContainer } from \"../ui/atoms/page-content\";\nimport { Paginator } from \"../ui/molecules/paginator\";\nimport { useLocale } from \"../hooks\";\n\ninterface DocumentPopularity {\n value: number;\n ranking: number;\n}\n\ninterface DocumentFlaws {\n name: string;\n value: number | string;\n countFixable: number;\n}\ninterface Document {\n mdn_url: string;\n modified: string;\n title: string;\n popularity: DocumentPopularity;\n flaws: DocumentFlaws[];\n}\n\ntype Count = { [key: string]: number };\n\ninterface FlawsCounts {\n total: number;\n fixable: number;\n type: Count;\n macros: Count;\n}\n\ninterface Counts {\n found: number;\n built: number;\n pages: number;\n flaws: FlawsCounts;\n}\n\ninterface Times {\n built: number;\n}\n\ninterface FlawLevel {\n name: string;\n level: string;\n ignored: boolean;\n}\n\ninterface Data {\n counts: Counts;\n documents: Document[];\n times: Times;\n flawLevels: FlawLevel[];\n}\n\ninterface Filters {\n mdn_url: string;\n title: string;\n popularity: string;\n fixableFlaws: string;\n flaws: string[];\n page: number;\n sort_by: string;\n sort_reverse: boolean;\n search_flaws: string[];\n}\n\nconst defaultFilters: Filters = Object.freeze({\n mdn_url: \"\",\n title: \"\",\n popularity: \"\",\n fixableFlaws: \"\",\n flaws: [],\n page: 1,\n sort_by: \"popularity\",\n sort_reverse: false,\n search_flaws: [],\n});\n\nfunction withoutDefaultFilters(filters: Filters): Partial<Filters> {\n return Object.fromEntries(\n Object.entries(filters).filter(\n ([key, value]) =>\n JSON.stringify(defaultFilters[key]) !== JSON.stringify(value)\n )\n );\n}\n\n/**\n * Returns an array where\n * first element is the currently set (or default) filters\n * second element is a function to update a given set of partial filters.\n * NOTE: This only changes the given filters, and doesn't reset what is missing\n */\nfunction useFiltersURL(): [Filters, (filters: Partial<Filters>) => void] {\n const [searchParams, setSearchParams] = useSearchParams();\n\n function groupParamsByKey(params: URLSearchParams): any {\n return [...params.entries()].reduce((acc, tuple) => {\n // getting the key and value from each tuple\n const [key, val] = tuple;\n if (Object.prototype.hasOwnProperty.call(acc, key)) {\n // if the current key is already an array, we'll add the value to it\n if (Array.isArray(acc[key])) {\n acc[key] = [...acc[key], val];\n } else {\n // if it's not an array, but contains a value, we'll convert it into an array\n // and add the current value to it\n acc[key] = [acc[key], val];\n }\n } else {\n // plain assignment if no special case is present\n acc[key] = val;\n }\n return acc;\n }, {});\n }\n\n const filters = useMemo(() => {\n const searchParamsObject = groupParamsByKey(searchParams);\n if (searchParamsObject.page) {\n searchParamsObject.page = parseInt(searchParamsObject.page);\n }\n return { ...defaultFilters, ...searchParamsObject };\n }, [searchParams]);\n\n const updateFiltersURL = useCallback(\n (partialFilters: Partial<Filters>) => {\n const newSearchParams = withoutDefaultFilters({\n ...filters,\n ...partialFilters,\n }) as Record<string, string | string[]>;\n setSearchParams(newSearchParams);\n },\n [filters, setSearchParams]\n );\n\n const mustBeArrayKeys = [\"flaws\", \"search_flaws\"];\n for (const key of mustBeArrayKeys) {\n if (filters[key] && !Array.isArray(filters[key])) {\n filters[key] = [filters[key]];\n }\n }\n\n return [filters, updateFiltersURL];\n}\n\nexport default function AllFlaws() {\n const locale = useLocale();\n const [filters] = useFiltersURL();\n const [lastData, setLastData] = useState<Data | null>(null);\n\n useEffect(() => {\n let title = \"Documents with flaws\";\n if (lastData) {\n title = `(${lastData.counts.found.toLocaleString()} found) ${title}`;\n }\n document.title = title;\n }, [lastData]);\n\n const getAPIUrl = useCallback(() => {\n const { sort_by, sort_reverse, page, ...restFilters } = filters;\n const params = createSearchParams({\n ...restFilters,\n page: String(page),\n locale,\n sort: sort_by,\n reverse: JSON.stringify(sort_reverse),\n });\n return `/_flaws?${params.toString()}`;\n }, [locale, filters]);\n\n const { data, error, isValidating } = useSWR<Data, Error>(\n getAPIUrl(),\n async (url) => {\n let response;\n try {\n response = await fetch(url);\n } catch (ex) {\n throw ex;\n }\n if (!response.ok) {\n throw new Error(`${response.status} on ${url}`);\n }\n if (!response.headers.get(\"content-type\").includes(\"application/json\")) {\n throw new Error(\n `Response is not JSON (${response.headers.get(\"content-type\")})`\n );\n }\n // Always return a promise!\n return response.json();\n },\n {\n // revalidateOnFocus: false\n }\n );\n\n useEffect(() => {\n if (data) {\n setLastData(data);\n }\n }, [data]);\n\n // XXX there's something weird about this logic\n let loading: React.ReactNode = <small> </small>;\n if (!data && !error) {\n if (lastData) {\n loading = <small>Reloading...</small>;\n } else {\n loading = <small>Loading...</small>;\n }\n } else if (isValidating) {\n loading = <small>Reloading...</small>;\n }\n\n const { page } = filters;\n const pageCount = lastData ? lastData.counts.pages : 0;\n return (\n <MainContentContainer className=\"all-flaws\" standalone={true}>\n {loading}\n {error && <ShowSearchError error={error} />}\n {lastData && (\n <div className=\"filter-documents\">\n <FilterControls flawLevels={lastData.flawLevels} />\n <DocumentsTable\n locale={locale}\n counts={lastData.counts}\n documents={lastData.documents}\n pageCount={pageCount}\n page={page}\n />\n </div>\n )}\n {data && data.counts && <AllFlawCounts counts={data.counts.flaws} />}\n {data && <BuildTimes times={data.times} />}\n </MainContentContainer>\n );\n}\n\nfunction ShowSearchError({ error }) {\n return (\n <div className=\"error-message search-error\">\n <h3>Search error</h3>\n <pre>{error.toString()}</pre>\n </div>\n );\n}\n\nfunction BuildTimes({ times }: { times: Times }) {\n function format(ms: number) {\n if (ms > 1000) {\n const s = ms / 1000;\n return `${s.toFixed(1)} seconds`;\n } else {\n return `${Math.trunc(ms)} milliseconds`;\n }\n }\n return (\n <div className=\"search-times\">\n <p>Time to find built documents {format(times.built)}</p>\n </div>\n );\n}\n\ninterface SearchFlawRow {\n flaw: string;\n search: string;\n}\n\nfunction serializeSearchFlaws(rows: SearchFlawRow[]) {\n return rows.map((row) => `${row.flaw}:${row.search}`);\n}\n\nfunction deserializeSearchFlaws(list: string[]) {\n const rows: SearchFlawRow[] = [];\n for (const row of list) {\n const [flaw, search] = row.split(\":\", 2);\n rows.push({ flaw, search });\n }\n return rows;\n}\n\nfunction FilterControls({ flawLevels }: { flawLevels: FlawLevel[] }) {\n const [initialFilters, updateFiltersURL] = useFiltersURL();\n const [filters, setFilters] = useState(initialFilters);\n const [searchFlawsRows, setSearchFlawsRows] = useState<SearchFlawRow[]>(\n deserializeSearchFlaws(initialFilters.search_flaws)\n );\n\n useEffect(() => {\n // A little convenience DOM trick to put focus on the search input\n // after you've added a row or used the <select>\n const searchInputs = [\n ...document.querySelectorAll<HTMLInputElement>(\n 'ul.search-flaws-rows input[type=\"search\"]'\n ),\n ].filter((input) => !input.value);\n if (searchInputs.length) {\n searchInputs[searchInputs.length - 1].focus();\n }\n }, [searchFlawsRows]);\n\n function refreshFilters() {\n updateFiltersURL(filters);\n }\n\n let hasFilters = !equalObjects(defaultFilters, filters);\n\n let hasEmptySearchFlawsRow = searchFlawsRows.some(\n (row) => !row.search.trim()\n );\n\n function resetFilters(event: React.MouseEvent) {\n event.preventDefault();\n setFilters(defaultFilters);\n updateFiltersURL(defaultFilters);\n }\n\n return (\n <div className=\"filters\">\n <h3>Filters</h3>\n <form\n onSubmit={(event) => {\n event.preventDefault();\n refreshFilters();\n }}\n >\n <div>\n <h4>Document</h4>\n <input\n type=\"search\"\n placeholder=\"Filter by document URI\"\n value={filters.mdn_url}\n onChange={(event) => {\n setFilters({ ...filters, mdn_url: event.target.value });\n }}\n onBlur={refreshFilters}\n />\n <input\n type=\"search\"\n placeholder=\"Filter by document title\"\n value={filters.title}\n onChange={(event) => {\n setFilters({ ...filters, title: event.target.value });\n }}\n onBlur={refreshFilters}\n />\n </div>\n\n <div>\n <h4>Popularity</h4>\n <input\n type=\"search\"\n placeholder=\"E.g. < 100\"\n value={filters.popularity || \"\"}\n onChange={(event) => {\n setFilters({ ...filters, popularity: event.target.value });\n }}\n onBlur={refreshFilters}\n />\n </div>\n <div>\n <h4>Flaws</h4>\n <select\n multiple={true}\n value={filters.flaws}\n onChange={(event) => {\n const flaws = [...event.target.selectedOptions].map(\n (opt) => opt.value\n );\n setFilters({ ...filters, flaws });\n }}\n >\n {flawLevels &&\n flawLevels.map((flawLevel) => {\n return (\n <option key={flawLevel.name} value={flawLevel.name}>\n {humanizeFlawName(flawLevel.name)}{\" \"}\n {flawLevel.ignored && \"(ignored)\"}\n </option>\n );\n })}\n </select>\n </div>\n <div>\n <h4>Search inside flaws</h4>\n <ul className=\"search-flaws-rows\">\n {searchFlawsRows.map((row, i) => {\n return (\n <li key={`${row.flaw}:${i}`}>\n <select\n value={row.flaw}\n onChange={(event) => {\n const clone = [...searchFlawsRows];\n clone[i].flaw = event.target.value;\n setSearchFlawsRows(clone);\n }}\n >\n {flawLevels &&\n flawLevels\n .filter((flawLevel) => !flawLevel.ignored)\n .map((flawLevel) => {\n return (\n <option key={flawLevel.name} value={flawLevel.name}>\n {humanizeFlawName(flawLevel.name)}\n </option>\n );\n })}\n </select>\n <input\n type=\"search\"\n placeholder=\"Search expression (e.g. jsxref)\"\n value={row.search}\n onChange={(event) => {\n setSearchFlawsRows(\n searchFlawsRows.map((row, j) => {\n if (i === j) {\n row.search = event.target.value;\n }\n return row;\n })\n );\n }}\n onBlur={() => {\n const serialized = serializeSearchFlaws(searchFlawsRows);\n setFilters({ ...filters, search_flaws: serialized });\n refreshFilters();\n }}\n />\n <button\n type=\"button\"\n title=\"Remove search row\"\n onClick={() => {\n const clone = [...searchFlawsRows];\n clone.splice(i, 1);\n setSearchFlawsRows(clone);\n\n // const serialized = serializeSearchFlaws(searchFlawsRows);\n // setFilters({ ...filters, search_flaws: serialized });\n // refreshFilters()\n }}\n >\n -\n </button>\n </li>\n );\n })}\n </ul>\n <button\n type=\"button\"\n title=\"Add search row\"\n disabled={hasEmptySearchFlawsRow}\n onClick={() => {\n setSearchFlawsRows([\n ...searchFlawsRows,\n ...[\n {\n flaw: \"macros\",\n search: \"\",\n },\n ],\n ]);\n }}\n >\n +\n </button>\n </div>\n\n <div>\n <h4>Fixable flaws</h4>\n <input\n type=\"search\"\n placeholder=\"E.g. >0\"\n value={filters.fixableFlaws || \"\"}\n onChange={(event) => {\n setFilters({ ...filters, fixableFlaws: event.target.value });\n }}\n onBlur={refreshFilters}\n />\n </div>\n\n <div>\n <h4> </h4>\n <button type=\"submit\">Filter now</button>\n {hasFilters && (\n <button type=\"button\" onClick={resetFilters}>\n Reset filters\n </button>\n )}\n </div>\n </form>\n </div>\n );\n}\n\nfunction equalObjects(obj1: object, obj2: object) {\n const keys1 = new Set(Object.keys(obj1));\n const keys2 = new Set(Object.keys(obj2));\n if (keys1.size !== keys2.size) {\n return false;\n }\n for (const key of keys1) {\n if (!keys2.has(key)) {\n return false;\n }\n }\n\n return Object.entries(obj1).every(([key, value]) => {\n const value2 = obj2[key];\n if (typeof value !== typeof value2) {\n return false;\n }\n if (Array.isArray(value)) {\n return (\n value.length === value2.length && value.every((v, i) => v === value2[i])\n );\n } else {\n return value === value2;\n }\n });\n}\n\nfunction DocumentsTable({\n locale,\n counts,\n documents,\n pageCount,\n page,\n}: {\n locale: string;\n counts: Counts;\n documents: Document[];\n pageCount: number;\n page: number;\n}) {\n const [filters, updateFiltersURL] = useFiltersURL();\n\n function setSort(key: string): void {\n updateFiltersURL(\n filters.sort_by === key\n ? { sort_reverse: !filters.sort_reverse }\n : { sort_by: key }\n );\n }\n // https://gist.github.com/jlbruno/1535691/db35b4f3af3dcbb42babc01541410f291a8e8fac\n function getGetOrdinal(n: number) {\n const s = [\"th\", \"st\", \"nd\", \"rd\"];\n const v = n % 100;\n return n.toLocaleString() + (s[(v - 20) % 10] || s[v] || s[0]);\n }\n\n function summarizeFlaws(flaws: DocumentFlaws[]) {\n // Return a one-liner about all the flaws\n const totalCountFixable = flaws.reduce(\n (acc, flaw) => flaw.countFixable + acc,\n 0\n );\n const bits = flaws.map((flaw) => {\n return `${humanizeFlawName(flaw.name)}: ${flaw.value}`;\n });\n return (\n <>\n {bits.join(\", \")}{\" \"}\n <span className=\"document-flaws-fixable\">\n ({totalCountFixable} fixable)\n </span>\n </>\n );\n }\n\n function TH({ id, title }: { id: string; title: string }) {\n return (\n <th onClick={() => setSort(id)} className=\"sortable\">\n {title}{\" \"}\n {filters.sort_by === id ? (filters.sort_reverse ? \"↓\" : \"↑\") : null}\n </th>\n );\n }\n\n function getHighlightedText(text: string, highlight: string) {\n // Split on highlight term and include term into parts, ignore case\n const parts = text.split(new RegExp(`(${highlight})`, \"gi\"));\n return (\n <span>\n {\" \"}\n {parts.map((part, i) => (\n <span\n key={i}\n style={\n part.toLowerCase() === highlight.toLowerCase()\n ? { fontWeight: \"bold\" }\n : {}\n }\n >\n {part}\n </span>\n ))}{\" \"}\n </span>\n );\n }\n\n function showBriefURL(uri: string) {\n const [left, right] = uri.split(/\\/docs\\//, 2);\n return (\n <>\n <span className=\"url-prefix\">{left}/docs/</span>\n <span className=\"url-slug\">\n {filters.mdn_url ? getHighlightedText(right, filters.mdn_url) : right}\n </span>\n </>\n );\n }\n\n return (\n <div className=\"documents\">\n <h3>\n Documents with flaws found ({counts.found.toLocaleString()}){\" \"}\n {pageCount > 1 && (\n <span className=\"page\">\n page {page}/{pageCount}\n </span>\n )}\n </h3>\n {!counts.built ? (\n <WarnAboutNothingBuilt locale={locale} />\n ) : (\n <h4 className=\"subheader\">\n {counts.built.toLocaleString()} documents built ({locale})\n </h4>\n )}\n\n <table>\n <thead>\n <tr>\n <TH id=\"mdn_url\" title=\"Document\" />\n <TH id=\"popularity\" title=\"Popularity\" />\n <TH id=\"flaws\" title=\"Flaws\" />\n </tr>\n </thead>\n <tbody>\n {documents.map((doc: Document) => {\n return (\n <tr key={doc.mdn_url}>\n <td>\n <Link\n to={`${doc.mdn_url}#_flaws`}\n title={doc.title}\n target=\"_blank\"\n >\n {showBriefURL(doc.mdn_url)}\n </Link>\n <span className=\"document-title-preview\">\n {filters.title\n ? getHighlightedText(doc.title, filters.title)\n : doc.title}\n </span>\n </td>\n <td\n className={doc.popularity.ranking ? \"\" : \"no-popularity\"}\n title={\n doc.popularity.ranking\n ? `Meaning there are ${\n doc.popularity.ranking - 1\n } more popular pages than this`\n : \"Meaning it has no ranking. Most likely a very rare (or new) document\"\n }\n >\n {!doc.popularity.ranking\n ? \"n/a\"\n : `${getGetOrdinal(doc.popularity.ranking)}`}\n </td>\n <td className=\"document-flaws\">{summarizeFlaws(doc.flaws)}</td>\n </tr>\n );\n })}\n </tbody>\n </table>\n\n <Paginator last={pageCount} />\n </div>\n );\n}\n\nfunction WarnAboutNothingBuilt({ locale }) {\n return (\n <div className=\"notecard warning document-warnings\">\n <h4>No documents have been built, so no flaws can be found</h4>\n <p>\n Run <code>yarn build --locale {locale.toLowerCase()}</code> to build all\n documents for the current locale.\n </p>\n </div>\n );\n}\n\nfunction AllFlawCounts({ counts }: { counts: FlawsCounts }) {\n const typesSorted = Object.entries(counts.type).sort((a, b) => {\n return a[1] - b[1];\n });\n const macrosSorted = Object.entries(counts.macros).sort((a, b) => {\n return a[1] - b[1];\n });\n return (\n <div className=\"flaw-counts\">\n <h3>Flaws counts</h3>\n <table>\n <tbody>\n <tr>\n <td>Total</td>\n <td>\n <b>{counts.total.toLocaleString()}</b>\n </td>\n </tr>\n <tr>\n <td>Fixable</td>\n <td>\n <b>{counts.fixable.toLocaleString()}</b>\n </td>\n </tr>\n </tbody>\n </table>\n\n <h4>Breakdown by type</h4>\n <table>\n <thead>\n <tr>\n <th>Type</th>\n <th>Count</th>\n </tr>\n </thead>\n <tbody>\n {typesSorted.map(([key, value]) => {\n return (\n <tr key={key}>\n <td>{humanizeFlawName(key)}</td>\n <td>\n <b>{value.toLocaleString()}</b>\n </td>\n </tr>\n );\n })}\n </tbody>\n </table>\n <h4>\n Breakdown by <code>macros</code> flaws\n </h4>\n <table>\n <thead>\n <tr>\n <th>Name</th>\n <th>Count</th>\n </tr>\n </thead>\n <tbody>\n {macrosSorted.map(([key, value]) => {\n return (\n <tr key={key}>\n <td>\n <code>{key}</code>\n </td>\n <td>\n <b>{value.toLocaleString()}</b>\n </td>\n </tr>\n );\n })}\n </tbody>\n </table>\n </div>\n );\n}\n","import { Link, useSearchParams } from \"react-router-dom\";\nimport { range } from \"../../../utils\";\n\nconst PARAM = \"page\";\n\nfunction PageLink({\n page,\n children,\n onClick,\n disabled,\n}: {\n page: number;\n children?: React.ReactNode;\n onClick?: (page: number) => unknown;\n disabled?: boolean;\n}) {\n const [searchParams, setSearchParams] = useSearchParams();\n\n return (\n <Link\n to={{}}\n className={disabled ? \"disabled\" : \"\"}\n onClick={(event) => {\n event.preventDefault();\n if (disabled) {\n return;\n }\n\n onClick && onClick(page);\n setSearchParams({\n ...Object.fromEntries(searchParams.entries()),\n [PARAM]: page.toString(),\n });\n\n window.setTimeout(() => document.documentElement.scrollTo());\n }}\n >\n {children || page}\n </Link>\n );\n}\n\nexport function Paginator({\n first = 1,\n last,\n endPadding = 2,\n middlePadding = 2,\n onChange,\n}: {\n first?: number;\n last: number;\n endPadding?: number;\n middlePadding?: number;\n onChange?: (page: number, oldPage: number) => unknown;\n}) {\n const [searchParams] = useSearchParams();\n const current = parseInt(searchParams.get(PARAM) || \"\", 10) || first;\n const middleFirst = Math.max(current - middlePadding, first);\n const middleLast = Math.min(middleFirst + middlePadding * 2 + 1, last + 1);\n const left = range(first, Math.min(endPadding, middleFirst));\n const middle = range(middleFirst, middleLast);\n const right = range(Math.max(last + 1 - endPadding, middleLast), last + 1);\n\n const onClick = (page: number) => {\n onChange && onChange(page, current);\n };\n\n if (first === last) {\n // There are no pages, so return nothing\n return <></>;\n }\n\n return (\n <div className=\"pagination\">\n <PageLink\n page={current - 1}\n onClick={onClick}\n disabled={current === first}\n >\n ← Previous\n </PageLink>\n {left.map((page) => (\n <PageLink key={page} page={page} onClick={onClick} />\n ))}\n {Boolean(left.length) && left[left.length - 1] + 1 !== middle[0] && \"…\"}\n {middle.map((page) =>\n current === page ? (\n <span className=\"current-page\" key={page}>\n {page}\n </span>\n ) : (\n <PageLink key={page} page={page} onClick={onClick} />\n )\n )}\n {Boolean(right.length) &&\n middle[middle.length - 1] + 1 !== right[0] &&\n \"…\"}\n {right.map((page) => (\n <PageLink key={page} page={page} onClick={onClick} />\n ))}\n <PageLink\n page={current + 1}\n onClick={onClick}\n disabled={current === last}\n >\n Next →\n </PageLink>\n </div>\n );\n}\n"],"names":["defaultFilters","Object","useFiltersURL","_useSearchParams","searchParams","setSearchParams","filters","useMemo","searchParamsObject","params","acc","tuple","_tuple","key","val","Array","parseInt","updateFiltersURL","useCallback","partialFilters","value","JSON","_iteratorError","mustBeArrayKeys","AllFlaws","locale","useLocale","_useFiltersURL","_useState","lastData","setLastData","useEffect","title","document","getAPIUrl","sort_by","sort_reverse","page","restFilters","createSearchParams","String","_useSWR","url","response","fetch","ex","Error","data","error","isValidating","loading","pageCount","MainContentContainer","ShowSearchError","FilterControls","DocumentsTable","AllFlawCounts","BuildTimes","param","ms","times","s","Math","flawLevels","initialFilters","setFilters","_useState1","deserializeSearchFlaws","list","rows","row","_row_split","flaw","search","searchFlawsRows","setSearchFlawsRows","refreshFilters","searchInputs","input","hasFilters","equalObjects","obj1","obj2","keys1","Set","keys2","value2","_type_of","v","i","hasEmptySearchFlawsRow","event","flaws","opt","flawLevel","humanizeFlawName","clone","j","serialized","counts","documents","TH","id","getHighlightedText","text","highlight","parts","RegExp","part","WarnAboutNothingBuilt","doc","_uri_split","left","right","n","totalCountFixable","bits","Link","Paginator","typesSorted","a","b","macrosSorted","PARAM","PageLink","children","onClick","disabled","window","first","last","endPadding","middlePadding","onChange","current","middleFirst","middleLast","range","middle","Boolean"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"2439.152ddc8eff5390cc.js","sources":["webpack://@mdn/fred/./node_modules/@mdn/yari/client/src/flaw-utils.js","webpack://@mdn/fred/./node_modules/@mdn/yari/client/src/flaws/index.tsx","webpack://@mdn/fred/./node_modules/@mdn/yari/client/src/ui/molecules/paginator/index.tsx"],"sourcesContent":["/**\n * This file serves to help flaws when displayed one at a time and when\n * displayed in batches.\n *\n */\n\nexport function humanizeFlawName(name) {\n const verboseNames = {\n // List all the names that can't be nicely computed by the fallback()\n // function.\n bad_bcd_queries: \"Bad BCD queries\",\n bad_pre_tags: \"Bad <pre> tags\",\n unsafe_html: \"Unsafe HTML\",\n };\n function fallback() {\n return name.charAt(0).toUpperCase() + name.slice(1).replace(/_/g, \" \");\n }\n return verboseNames[name] || fallback();\n}\n","import React, { useCallback, useEffect, useMemo, useState } from \"react\";\nimport { createSearchParams, Link, useSearchParams } from \"react-router-dom\";\nimport useSWR from \"swr\";\n\nimport \"./index.scss\";\n\nimport { humanizeFlawName } from \"../flaw-utils\";\nimport { MainContentContainer } from \"../ui/atoms/page-content\";\nimport { Paginator } from \"../ui/molecules/paginator\";\nimport { useLocale } from \"../hooks\";\n\ninterface DocumentPopularity {\n value: number;\n ranking: number;\n}\n\ninterface DocumentFlaws {\n name: string;\n value: number | string;\n countFixable: number;\n}\ninterface Document {\n mdn_url: string;\n modified: string;\n title: string;\n popularity: DocumentPopularity;\n flaws: DocumentFlaws[];\n}\n\ntype Count = { [key: string]: number };\n\ninterface FlawsCounts {\n total: number;\n fixable: number;\n type: Count;\n macros: Count;\n}\n\ninterface Counts {\n found: number;\n built: number;\n pages: number;\n flaws: FlawsCounts;\n}\n\ninterface Times {\n built: number;\n}\n\ninterface FlawLevel {\n name: string;\n level: string;\n ignored: boolean;\n}\n\ninterface Data {\n counts: Counts;\n documents: Document[];\n times: Times;\n flawLevels: FlawLevel[];\n}\n\ninterface Filters {\n mdn_url: string;\n title: string;\n popularity: string;\n fixableFlaws: string;\n flaws: string[];\n page: number;\n sort_by: string;\n sort_reverse: boolean;\n search_flaws: string[];\n}\n\nconst defaultFilters: Filters = Object.freeze({\n mdn_url: \"\",\n title: \"\",\n popularity: \"\",\n fixableFlaws: \"\",\n flaws: [],\n page: 1,\n sort_by: \"popularity\",\n sort_reverse: false,\n search_flaws: [],\n});\n\nfunction withoutDefaultFilters(filters: Filters): Partial<Filters> {\n return Object.fromEntries(\n Object.entries(filters).filter(\n ([key, value]) =>\n JSON.stringify(defaultFilters[key]) !== JSON.stringify(value)\n )\n );\n}\n\n/**\n * Returns an array where\n * first element is the currently set (or default) filters\n * second element is a function to update a given set of partial filters.\n * NOTE: This only changes the given filters, and doesn't reset what is missing\n */\nfunction useFiltersURL(): [Filters, (filters: Partial<Filters>) => void] {\n const [searchParams, setSearchParams] = useSearchParams();\n\n function groupParamsByKey(params: URLSearchParams): any {\n return [...params.entries()].reduce((acc, tuple) => {\n // getting the key and value from each tuple\n const [key, val] = tuple;\n if (Object.prototype.hasOwnProperty.call(acc, key)) {\n // if the current key is already an array, we'll add the value to it\n if (Array.isArray(acc[key])) {\n acc[key] = [...acc[key], val];\n } else {\n // if it's not an array, but contains a value, we'll convert it into an array\n // and add the current value to it\n acc[key] = [acc[key], val];\n }\n } else {\n // plain assignment if no special case is present\n acc[key] = val;\n }\n return acc;\n }, {});\n }\n\n const filters = useMemo(() => {\n const searchParamsObject = groupParamsByKey(searchParams);\n if (searchParamsObject.page) {\n searchParamsObject.page = parseInt(searchParamsObject.page);\n }\n return { ...defaultFilters, ...searchParamsObject };\n }, [searchParams]);\n\n const updateFiltersURL = useCallback(\n (partialFilters: Partial<Filters>) => {\n const newSearchParams = withoutDefaultFilters({\n ...filters,\n ...partialFilters,\n }) as Record<string, string | string[]>;\n setSearchParams(newSearchParams);\n },\n [filters, setSearchParams]\n );\n\n const mustBeArrayKeys = [\"flaws\", \"search_flaws\"];\n for (const key of mustBeArrayKeys) {\n if (filters[key] && !Array.isArray(filters[key])) {\n filters[key] = [filters[key]];\n }\n }\n\n return [filters, updateFiltersURL];\n}\n\nexport default function AllFlaws() {\n const locale = useLocale();\n const [filters] = useFiltersURL();\n const [lastData, setLastData] = useState<Data | null>(null);\n\n useEffect(() => {\n let title = \"Documents with flaws\";\n if (lastData) {\n title = `(${lastData.counts.found.toLocaleString()} found) ${title}`;\n }\n document.title = title;\n }, [lastData]);\n\n const getAPIUrl = useCallback(() => {\n const { sort_by, sort_reverse, page, ...restFilters } = filters;\n const params = createSearchParams({\n ...restFilters,\n page: String(page),\n locale,\n sort: sort_by,\n reverse: JSON.stringify(sort_reverse),\n });\n return `/_flaws?${params.toString()}`;\n }, [locale, filters]);\n\n const { data, error, isValidating } = useSWR<Data, Error>(\n getAPIUrl(),\n async (url) => {\n let response;\n try {\n response = await fetch(url);\n } catch (ex) {\n throw ex;\n }\n if (!response.ok) {\n throw new Error(`${response.status} on ${url}`);\n }\n if (!response.headers.get(\"content-type\").includes(\"application/json\")) {\n throw new Error(\n `Response is not JSON (${response.headers.get(\"content-type\")})`\n );\n }\n // Always return a promise!\n return response.json();\n },\n {\n // revalidateOnFocus: false\n }\n );\n\n useEffect(() => {\n if (data) {\n setLastData(data);\n }\n }, [data]);\n\n // XXX there's something weird about this logic\n let loading: React.ReactNode = <small> </small>;\n if (!data && !error) {\n if (lastData) {\n loading = <small>Reloading...</small>;\n } else {\n loading = <small>Loading...</small>;\n }\n } else if (isValidating) {\n loading = <small>Reloading...</small>;\n }\n\n const { page } = filters;\n const pageCount = lastData ? lastData.counts.pages : 0;\n return (\n <MainContentContainer className=\"all-flaws\" standalone={true}>\n {loading}\n {error && <ShowSearchError error={error} />}\n {lastData && (\n <div className=\"filter-documents\">\n <FilterControls flawLevels={lastData.flawLevels} />\n <DocumentsTable\n locale={locale}\n counts={lastData.counts}\n documents={lastData.documents}\n pageCount={pageCount}\n page={page}\n />\n </div>\n )}\n {data && data.counts && <AllFlawCounts counts={data.counts.flaws} />}\n {data && <BuildTimes times={data.times} />}\n </MainContentContainer>\n );\n}\n\nfunction ShowSearchError({ error }) {\n return (\n <div className=\"error-message search-error\">\n <h3>Search error</h3>\n <pre>{error.toString()}</pre>\n </div>\n );\n}\n\nfunction BuildTimes({ times }: { times: Times }) {\n function format(ms: number) {\n if (ms > 1000) {\n const s = ms / 1000;\n return `${s.toFixed(1)} seconds`;\n } else {\n return `${Math.trunc(ms)} milliseconds`;\n }\n }\n return (\n <div className=\"search-times\">\n <p>Time to find built documents {format(times.built)}</p>\n </div>\n );\n}\n\ninterface SearchFlawRow {\n flaw: string;\n search: string;\n}\n\nfunction serializeSearchFlaws(rows: SearchFlawRow[]) {\n return rows.map((row) => `${row.flaw}:${row.search}`);\n}\n\nfunction deserializeSearchFlaws(list: string[]) {\n const rows: SearchFlawRow[] = [];\n for (const row of list) {\n const [flaw, search] = row.split(\":\", 2);\n rows.push({ flaw, search });\n }\n return rows;\n}\n\nfunction FilterControls({ flawLevels }: { flawLevels: FlawLevel[] }) {\n const [initialFilters, updateFiltersURL] = useFiltersURL();\n const [filters, setFilters] = useState(initialFilters);\n const [searchFlawsRows, setSearchFlawsRows] = useState<SearchFlawRow[]>(\n deserializeSearchFlaws(initialFilters.search_flaws)\n );\n\n useEffect(() => {\n // A little convenience DOM trick to put focus on the search input\n // after you've added a row or used the <select>\n const searchInputs = [\n ...document.querySelectorAll<HTMLInputElement>(\n 'ul.search-flaws-rows input[type=\"search\"]'\n ),\n ].filter((input) => !input.value);\n if (searchInputs.length) {\n searchInputs[searchInputs.length - 1].focus();\n }\n }, [searchFlawsRows]);\n\n function refreshFilters() {\n updateFiltersURL(filters);\n }\n\n let hasFilters = !equalObjects(defaultFilters, filters);\n\n let hasEmptySearchFlawsRow = searchFlawsRows.some(\n (row) => !row.search.trim()\n );\n\n function resetFilters(event: React.MouseEvent) {\n event.preventDefault();\n setFilters(defaultFilters);\n updateFiltersURL(defaultFilters);\n }\n\n return (\n <div className=\"filters\">\n <h3>Filters</h3>\n <form\n onSubmit={(event) => {\n event.preventDefault();\n refreshFilters();\n }}\n >\n <div>\n <h4>Document</h4>\n <input\n type=\"search\"\n placeholder=\"Filter by document URI\"\n value={filters.mdn_url}\n onChange={(event) => {\n setFilters({ ...filters, mdn_url: event.target.value });\n }}\n onBlur={refreshFilters}\n />\n <input\n type=\"search\"\n placeholder=\"Filter by document title\"\n value={filters.title}\n onChange={(event) => {\n setFilters({ ...filters, title: event.target.value });\n }}\n onBlur={refreshFilters}\n />\n </div>\n\n <div>\n <h4>Popularity</h4>\n <input\n type=\"search\"\n placeholder=\"E.g. < 100\"\n value={filters.popularity || \"\"}\n onChange={(event) => {\n setFilters({ ...filters, popularity: event.target.value });\n }}\n onBlur={refreshFilters}\n />\n </div>\n <div>\n <h4>Flaws</h4>\n <select\n multiple={true}\n value={filters.flaws}\n onChange={(event) => {\n const flaws = [...event.target.selectedOptions].map(\n (opt) => opt.value\n );\n setFilters({ ...filters, flaws });\n }}\n >\n {flawLevels &&\n flawLevels.map((flawLevel) => {\n return (\n <option key={flawLevel.name} value={flawLevel.name}>\n {humanizeFlawName(flawLevel.name)}{\" \"}\n {flawLevel.ignored && \"(ignored)\"}\n </option>\n );\n })}\n </select>\n </div>\n <div>\n <h4>Search inside flaws</h4>\n <ul className=\"search-flaws-rows\">\n {searchFlawsRows.map((row, i) => {\n return (\n <li key={`${row.flaw}:${i}`}>\n <select\n value={row.flaw}\n onChange={(event) => {\n const clone = [...searchFlawsRows];\n clone[i].flaw = event.target.value;\n setSearchFlawsRows(clone);\n }}\n >\n {flawLevels &&\n flawLevels\n .filter((flawLevel) => !flawLevel.ignored)\n .map((flawLevel) => {\n return (\n <option key={flawLevel.name} value={flawLevel.name}>\n {humanizeFlawName(flawLevel.name)}\n </option>\n );\n })}\n </select>\n <input\n type=\"search\"\n placeholder=\"Search expression (e.g. jsxref)\"\n value={row.search}\n onChange={(event) => {\n setSearchFlawsRows(\n searchFlawsRows.map((row, j) => {\n if (i === j) {\n row.search = event.target.value;\n }\n return row;\n })\n );\n }}\n onBlur={() => {\n const serialized = serializeSearchFlaws(searchFlawsRows);\n setFilters({ ...filters, search_flaws: serialized });\n refreshFilters();\n }}\n />\n <button\n type=\"button\"\n title=\"Remove search row\"\n onClick={() => {\n const clone = [...searchFlawsRows];\n clone.splice(i, 1);\n setSearchFlawsRows(clone);\n\n // const serialized = serializeSearchFlaws(searchFlawsRows);\n // setFilters({ ...filters, search_flaws: serialized });\n // refreshFilters()\n }}\n >\n -\n </button>\n </li>\n );\n })}\n </ul>\n <button\n type=\"button\"\n title=\"Add search row\"\n disabled={hasEmptySearchFlawsRow}\n onClick={() => {\n setSearchFlawsRows([\n ...searchFlawsRows,\n ...[\n {\n flaw: \"macros\",\n search: \"\",\n },\n ],\n ]);\n }}\n >\n +\n </button>\n </div>\n\n <div>\n <h4>Fixable flaws</h4>\n <input\n type=\"search\"\n placeholder=\"E.g. >0\"\n value={filters.fixableFlaws || \"\"}\n onChange={(event) => {\n setFilters({ ...filters, fixableFlaws: event.target.value });\n }}\n onBlur={refreshFilters}\n />\n </div>\n\n <div>\n <h4> </h4>\n <button type=\"submit\">Filter now</button>\n {hasFilters && (\n <button type=\"button\" onClick={resetFilters}>\n Reset filters\n </button>\n )}\n </div>\n </form>\n </div>\n );\n}\n\nfunction equalObjects(obj1: object, obj2: object) {\n const keys1 = new Set(Object.keys(obj1));\n const keys2 = new Set(Object.keys(obj2));\n if (keys1.size !== keys2.size) {\n return false;\n }\n for (const key of keys1) {\n if (!keys2.has(key)) {\n return false;\n }\n }\n\n return Object.entries(obj1).every(([key, value]) => {\n const value2 = obj2[key];\n if (typeof value !== typeof value2) {\n return false;\n }\n if (Array.isArray(value)) {\n return (\n value.length === value2.length && value.every((v, i) => v === value2[i])\n );\n } else {\n return value === value2;\n }\n });\n}\n\nfunction DocumentsTable({\n locale,\n counts,\n documents,\n pageCount,\n page,\n}: {\n locale: string;\n counts: Counts;\n documents: Document[];\n pageCount: number;\n page: number;\n}) {\n const [filters, updateFiltersURL] = useFiltersURL();\n\n function setSort(key: string): void {\n updateFiltersURL(\n filters.sort_by === key\n ? { sort_reverse: !filters.sort_reverse }\n : { sort_by: key }\n );\n }\n // https://gist.github.com/jlbruno/1535691/db35b4f3af3dcbb42babc01541410f291a8e8fac\n function getGetOrdinal(n: number) {\n const s = [\"th\", \"st\", \"nd\", \"rd\"];\n const v = n % 100;\n return n.toLocaleString() + (s[(v - 20) % 10] || s[v] || s[0]);\n }\n\n function summarizeFlaws(flaws: DocumentFlaws[]) {\n // Return a one-liner about all the flaws\n const totalCountFixable = flaws.reduce(\n (acc, flaw) => flaw.countFixable + acc,\n 0\n );\n const bits = flaws.map((flaw) => {\n return `${humanizeFlawName(flaw.name)}: ${flaw.value}`;\n });\n return (\n <>\n {bits.join(\", \")}{\" \"}\n <span className=\"document-flaws-fixable\">\n ({totalCountFixable} fixable)\n </span>\n </>\n );\n }\n\n function TH({ id, title }: { id: string; title: string }) {\n return (\n <th onClick={() => setSort(id)} className=\"sortable\">\n {title}{\" \"}\n {filters.sort_by === id ? (filters.sort_reverse ? \"↓\" : \"↑\") : null}\n </th>\n );\n }\n\n function getHighlightedText(text: string, highlight: string) {\n // Split on highlight term and include term into parts, ignore case\n const parts = text.split(new RegExp(`(${highlight})`, \"gi\"));\n return (\n <span>\n {\" \"}\n {parts.map((part, i) => (\n <span\n key={i}\n style={\n part.toLowerCase() === highlight.toLowerCase()\n ? { fontWeight: \"bold\" }\n : {}\n }\n >\n {part}\n </span>\n ))}{\" \"}\n </span>\n );\n }\n\n function showBriefURL(uri: string) {\n const [left, right] = uri.split(/\\/docs\\//, 2);\n return (\n <>\n <span className=\"url-prefix\">{left}/docs/</span>\n <span className=\"url-slug\">\n {filters.mdn_url ? getHighlightedText(right, filters.mdn_url) : right}\n </span>\n </>\n );\n }\n\n return (\n <div className=\"documents\">\n <h3>\n Documents with flaws found ({counts.found.toLocaleString()}){\" \"}\n {pageCount > 1 && (\n <span className=\"page\">\n page {page}/{pageCount}\n </span>\n )}\n </h3>\n {!counts.built ? (\n <WarnAboutNothingBuilt locale={locale} />\n ) : (\n <h4 className=\"subheader\">\n {counts.built.toLocaleString()} documents built ({locale})\n </h4>\n )}\n\n <table>\n <thead>\n <tr>\n <TH id=\"mdn_url\" title=\"Document\" />\n <TH id=\"popularity\" title=\"Popularity\" />\n <TH id=\"flaws\" title=\"Flaws\" />\n </tr>\n </thead>\n <tbody>\n {documents.map((doc: Document) => {\n return (\n <tr key={doc.mdn_url}>\n <td>\n <Link\n to={`${doc.mdn_url}#_flaws`}\n title={doc.title}\n target=\"_blank\"\n >\n {showBriefURL(doc.mdn_url)}\n </Link>\n <span className=\"document-title-preview\">\n {filters.title\n ? getHighlightedText(doc.title, filters.title)\n : doc.title}\n </span>\n </td>\n <td\n className={doc.popularity.ranking ? \"\" : \"no-popularity\"}\n title={\n doc.popularity.ranking\n ? `Meaning there are ${\n doc.popularity.ranking - 1\n } more popular pages than this`\n : \"Meaning it has no ranking. Most likely a very rare (or new) document\"\n }\n >\n {!doc.popularity.ranking\n ? \"n/a\"\n : `${getGetOrdinal(doc.popularity.ranking)}`}\n </td>\n <td className=\"document-flaws\">{summarizeFlaws(doc.flaws)}</td>\n </tr>\n );\n })}\n </tbody>\n </table>\n\n <Paginator last={pageCount} />\n </div>\n );\n}\n\nfunction WarnAboutNothingBuilt({ locale }) {\n return (\n <div className=\"notecard warning document-warnings\">\n <h4>No documents have been built, so no flaws can be found</h4>\n <p>\n Run <code>yarn build --locale {locale.toLowerCase()}</code> to build all\n documents for the current locale.\n </p>\n </div>\n );\n}\n\nfunction AllFlawCounts({ counts }: { counts: FlawsCounts }) {\n const typesSorted = Object.entries(counts.type).sort((a, b) => {\n return a[1] - b[1];\n });\n const macrosSorted = Object.entries(counts.macros).sort((a, b) => {\n return a[1] - b[1];\n });\n return (\n <div className=\"flaw-counts\">\n <h3>Flaws counts</h3>\n <table>\n <tbody>\n <tr>\n <td>Total</td>\n <td>\n <b>{counts.total.toLocaleString()}</b>\n </td>\n </tr>\n <tr>\n <td>Fixable</td>\n <td>\n <b>{counts.fixable.toLocaleString()}</b>\n </td>\n </tr>\n </tbody>\n </table>\n\n <h4>Breakdown by type</h4>\n <table>\n <thead>\n <tr>\n <th>Type</th>\n <th>Count</th>\n </tr>\n </thead>\n <tbody>\n {typesSorted.map(([key, value]) => {\n return (\n <tr key={key}>\n <td>{humanizeFlawName(key)}</td>\n <td>\n <b>{value.toLocaleString()}</b>\n </td>\n </tr>\n );\n })}\n </tbody>\n </table>\n <h4>\n Breakdown by <code>macros</code> flaws\n </h4>\n <table>\n <thead>\n <tr>\n <th>Name</th>\n <th>Count</th>\n </tr>\n </thead>\n <tbody>\n {macrosSorted.map(([key, value]) => {\n return (\n <tr key={key}>\n <td>\n <code>{key}</code>\n </td>\n <td>\n <b>{value.toLocaleString()}</b>\n </td>\n </tr>\n );\n })}\n </tbody>\n </table>\n </div>\n );\n}\n","import { Link, useSearchParams } from \"react-router-dom\";\nimport { range } from \"../../../utils\";\n\nconst PARAM = \"page\";\n\nfunction PageLink({\n page,\n children,\n onClick,\n disabled,\n}: {\n page: number;\n children?: React.ReactNode;\n onClick?: (page: number) => unknown;\n disabled?: boolean;\n}) {\n const [searchParams, setSearchParams] = useSearchParams();\n\n return (\n <Link\n to={{}}\n className={disabled ? \"disabled\" : \"\"}\n onClick={(event) => {\n event.preventDefault();\n if (disabled) {\n return;\n }\n\n onClick && onClick(page);\n setSearchParams({\n ...Object.fromEntries(searchParams.entries()),\n [PARAM]: page.toString(),\n });\n\n window.setTimeout(() => document.documentElement.scrollTo());\n }}\n >\n {children || page}\n </Link>\n );\n}\n\nexport function Paginator({\n first = 1,\n last,\n endPadding = 2,\n middlePadding = 2,\n onChange,\n}: {\n first?: number;\n last: number;\n endPadding?: number;\n middlePadding?: number;\n onChange?: (page: number, oldPage: number) => unknown;\n}) {\n const [searchParams] = useSearchParams();\n const current = parseInt(searchParams.get(PARAM) || \"\", 10) || first;\n const middleFirst = Math.max(current - middlePadding, first);\n const middleLast = Math.min(middleFirst + middlePadding * 2 + 1, last + 1);\n const left = range(first, Math.min(endPadding, middleFirst));\n const middle = range(middleFirst, middleLast);\n const right = range(Math.max(last + 1 - endPadding, middleLast), last + 1);\n\n const onClick = (page: number) => {\n onChange && onChange(page, current);\n };\n\n if (first === last) {\n // There are no pages, so return nothing\n return <></>;\n }\n\n return (\n <div className=\"pagination\">\n <PageLink\n page={current - 1}\n onClick={onClick}\n disabled={current === first}\n >\n ← Previous\n </PageLink>\n {left.map((page) => (\n <PageLink key={page} page={page} onClick={onClick} />\n ))}\n {Boolean(left.length) && left[left.length - 1] + 1 !== middle[0] && \"…\"}\n {middle.map((page) =>\n current === page ? (\n <span className=\"current-page\" key={page}>\n {page}\n </span>\n ) : (\n <PageLink key={page} page={page} onClick={onClick} />\n )\n )}\n {Boolean(right.length) &&\n middle[middle.length - 1] + 1 !== right[0] &&\n \"…\"}\n {right.map((page) => (\n <PageLink key={page} page={page} onClick={onClick} />\n ))}\n <PageLink\n page={current + 1}\n onClick={onClick}\n disabled={current === last}\n >\n Next →\n </PageLink>\n </div>\n );\n}\n"],"names":["defaultFilters","Object","useFiltersURL","_useSearchParams","searchParams","setSearchParams","filters","useMemo","searchParamsObject","params","acc","tuple","_tuple","key","val","Array","parseInt","updateFiltersURL","useCallback","partialFilters","value","JSON","_iteratorError","mustBeArrayKeys","AllFlaws","locale","useLocale","_useFiltersURL","_useState","lastData","setLastData","useEffect","title","document","getAPIUrl","sort_by","sort_reverse","page","restFilters","createSearchParams","String","_useSWR","url","response","fetch","ex","Error","data","error","isValidating","loading","pageCount","MainContentContainer","ShowSearchError","FilterControls","DocumentsTable","AllFlawCounts","BuildTimes","param","ms","times","s","Math","flawLevels","initialFilters","setFilters","_useState1","deserializeSearchFlaws","list","rows","row","_row_split","flaw","search","searchFlawsRows","setSearchFlawsRows","refreshFilters","searchInputs","input","hasFilters","equalObjects","obj1","obj2","keys1","Set","keys2","value2","_type_of","v","i","hasEmptySearchFlawsRow","event","flaws","opt","flawLevel","humanizeFlawName","clone","j","serialized","counts","documents","TH","id","getHighlightedText","text","highlight","parts","RegExp","part","WarnAboutNothingBuilt","doc","_uri_split","left","right","n","totalCountFixable","bits","Link","Paginator","typesSorted","a","b","macrosSorted","PARAM","PageLink","children","onClick","disabled","window","first","last","endPadding","middlePadding","onChange","current","middleFirst","middleLast","range","middle","Boolean"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const __rspack_esm_id="2569";export const __rspack_esm_ids=["2569"];export const __webpack_modules__={95456(e,t,l){l.r(t),l.d(t,{default:()=>m});var n=l(96540),c=l(
|
|
2
|
-
//# sourceMappingURL=2569.
|
|
1
|
+
export const __rspack_esm_id="2569";export const __rspack_esm_ids=["2569"];export const __webpack_modules__={95456(e,t,l){l.r(t),l.d(t,{default:()=>m});var n=l(96540),c=l(3433),a=l(66786),r=l(30967),o=l(5438),i=n.lazy(function(){return l.e("4624").then(l.bind(l,17043))});function m(){var e=(0,o.hX)(),t=(0,o.Ym)();return n.createElement(a.K,null,n.createElement("div",{className:"container",id:"writers-homepage"},n.createElement("h2",null,"Writer's home page"),n.createElement(r.v,{id:"writers-hp"}),!e&&n.createElement(n.Suspense,{fallback:null},n.createElement(i,null)),n.createElement("h3",null,"Sample pages"),n.createElement("ul",null,n.createElement("li",null,n.createElement(c.N_,{to:"/en-US/docs/MDN/Kitchensink"},"The Kitchensink (en-US)")),n.createElement("li",null,n.createElement(c.N_,{to:"/".concat(t,"/docs/Web/HTML")},"Web/HTML index"),n.createElement("ul",null,n.createElement("li",null,n.createElement(c.N_,{to:"/".concat(t,"/docs/Web/HTML/Element/video")},"HTML/video")))),n.createElement("li",null,n.createElement(c.N_,{to:"/".concat(t,"/docs/Web/API")},"Web/API index"),n.createElement("ul",null,n.createElement("li",null,n.createElement(c.N_,{to:"/".concat(t,"/docs/Web/API/Fetch_API/Using_Fetch")},"Using Fetch API")))),n.createElement("li",null,n.createElement(c.N_,{to:"/".concat(t,"/docs/Web/CSS")},"Web/CSS index"),n.createElement("ul",null,n.createElement("li",null,n.createElement(c.N_,{to:"/".concat(t,"/docs/Web/CSS/Specificity")},"CSS Specificity")))),n.createElement("li",null,n.createElement(c.N_,{to:"/".concat(t,"/docs/Web/JavaScript")},"Web/JavaScript index"),n.createElement("ul",null,n.createElement("li",null,n.createElement(c.N_,{to:"/".concat(t,"/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach")},"Array.prototype.forEach()")))),n.createElement("li",null,n.createElement(c.N_,{to:"/".concat(t,"/docs/Mozilla/Add-ons/WebExtensions/Browser_support_for_JavaScript_APIs")},"Page with lots of BCD tables")),n.createElement("li",null,n.createElement(c.N_,{to:"/".concat(t,"/docs/Web/API/Document/#Browser_compatibility")},"Largest BCD table"))),n.createElement("h3",null,"Tools"),n.createElement("ul",null,n.createElement("li",null,n.createElement(c.N_,{to:"/".concat(t,"/_translations")},"Translations")),n.createElement("li",null,n.createElement(c.N_,{to:"/".concat(t,"/_sitemap")},"Sitemap")),n.createElement("li",null,n.createElement(c.N_,{to:"/".concat(t,"/_flaws")},"Flaws Dashboard")))))}}};
|
|
2
|
+
//# sourceMappingURL=2569.41b52dfae9ff5dbd.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"2569.
|
|
1
|
+
{"version":3,"file":"2569.41b52dfae9ff5dbd.js","sources":["webpack://@mdn/fred/./node_modules/@mdn/yari/client/src/writers-homepage/index.tsx"],"sourcesContent":["import React from \"react\";\nimport { Link } from \"react-router-dom\";\nimport { MainContentContainer } from \"../ui/atoms/page-content\";\nimport { Search } from \"../ui/molecules/search\";\nimport { useIsServer, useLocale } from \"../hooks\";\nimport \"./index.scss\";\n\n// Lazy sub-components\nconst ViewedDocuments = React.lazy(() => import(\"./viewed-documents\"));\n\nexport default function WritersHomepage() {\n const isServer = useIsServer();\n const locale = useLocale();\n\n return (\n <MainContentContainer>\n <div className=\"container\" id=\"writers-homepage\">\n <h2>Writer's home page</h2>\n\n <Search id=\"writers-hp\" />\n\n {!isServer && (\n <React.Suspense fallback={null}>\n <ViewedDocuments />\n </React.Suspense>\n )}\n\n <h3>Sample pages</h3>\n <ul>\n <li>\n <Link to=\"/en-US/docs/MDN/Kitchensink\">\n The Kitchensink (en-US)\n </Link>\n </li>\n <li>\n <Link to={`/${locale}/docs/Web/HTML`}>Web/HTML index</Link>\n <ul>\n <li>\n <Link to={`/${locale}/docs/Web/HTML/Element/video`}>\n HTML/video\n </Link>\n </li>\n </ul>\n </li>\n\n <li>\n <Link to={`/${locale}/docs/Web/API`}>Web/API index</Link>\n <ul>\n <li>\n <Link to={`/${locale}/docs/Web/API/Fetch_API/Using_Fetch`}>\n Using Fetch API\n </Link>\n </li>\n </ul>\n </li>\n <li>\n <Link to={`/${locale}/docs/Web/CSS`}>Web/CSS index</Link>\n <ul>\n <li>\n <Link to={`/${locale}/docs/Web/CSS/Specificity`}>\n CSS Specificity\n </Link>\n </li>\n </ul>\n </li>\n <li>\n <Link to={`/${locale}/docs/Web/JavaScript`}>\n Web/JavaScript index\n </Link>\n <ul>\n <li>\n <Link\n to={`/${locale}/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach`}\n >\n Array.prototype.forEach()\n </Link>\n </li>\n </ul>\n </li>\n <li>\n <Link\n to={`/${locale}/docs/Mozilla/Add-ons/WebExtensions/Browser_support_for_JavaScript_APIs`}\n >\n Page with lots of BCD tables\n </Link>\n </li>\n <li>\n <Link\n to={`/${locale}/docs/Web/API/Document/#Browser_compatibility`}\n >\n Largest BCD table\n </Link>\n </li>\n </ul>\n <h3>Tools</h3>\n <ul>\n <li>\n <Link to={`/${locale}/_translations`}>Translations</Link>\n </li>\n <li>\n <Link to={`/${locale}/_sitemap`}>Sitemap</Link>\n </li>\n <li>\n <Link to={`/${locale}/_flaws`}>Flaws Dashboard</Link>\n </li>\n </ul>\n </div>\n </MainContentContainer>\n );\n}\n"],"names":["ViewedDocuments","React","WritersHomepage","isServer","useIsServer","locale","useLocale","MainContentContainer","Search","Link"],"mappings":"iNAQMA,EAAkBC,EAAAA,IAAU,CAAC,W,OAAM,iC,GAE1B,SAASC,IACtB,IAAMC,EAAWC,AAAAA,GAAAA,EAAAA,EAAAA,AAAAA,IACXC,EAASC,AAAAA,GAAAA,EAAAA,EAAAA,AAAAA,IAEf,OACE,gBAACC,EAAAA,CAAoBA,CAAAA,KACnB,gBAAC,OAAI,UAAU,YAAY,GAAG,kB,EAC5B,gBAAC,UAAG,sBAEJ,gBAACC,EAAAA,CAAMA,CAAAA,CAAC,GAAG,Y,GAEV,CAACL,GACA,gBAACF,EAAAA,QAAc,EAAC,SAAU,I,EACxB,gBAACD,EAAAA,OAIL,gBAAC,UAAG,gBACJ,gBAAC,UACC,gBAAC,UACC,gBAACS,EAAAA,EAAIA,CAAAA,CAAC,GAAG,6B,EAA8B,4BAIzC,gBAAC,UACC,gBAACA,EAAAA,EAAIA,CAAAA,CAAC,GAAK,IAAU,OAAPJ,EAAO,iB,EAAiB,kBACtC,gBAAC,UACC,gBAAC,UACC,gBAACI,EAAAA,EAAIA,CAAAA,CAAC,GAAK,IAAU,OAAPJ,EAAO,+B,EAA+B,iBAO1D,gBAAC,UACC,gBAACI,EAAAA,EAAIA,CAAAA,CAAC,GAAK,IAAU,OAAPJ,EAAO,gB,EAAgB,iBACrC,gBAAC,UACC,gBAAC,UACC,gBAACI,EAAAA,EAAIA,CAAAA,CAAC,GAAK,IAAU,OAAPJ,EAAO,sC,EAAsC,sBAMjE,gBAAC,UACC,gBAACI,EAAAA,EAAIA,CAAAA,CAAC,GAAK,IAAU,OAAPJ,EAAO,gB,EAAgB,iBACrC,gBAAC,UACC,gBAAC,UACC,gBAACI,EAAAA,EAAIA,CAAAA,CAAC,GAAK,IAAU,OAAPJ,EAAO,4B,EAA4B,sBAMvD,gBAAC,UACC,gBAACI,EAAAA,EAAIA,CAAAA,CAAC,GAAK,IAAU,OAAPJ,EAAO,uB,EAAuB,wBAG5C,gBAAC,UACC,gBAAC,UACC,gBAACI,EAAAA,EAAIA,CAAAA,CACH,GAAK,IAAU,OAAPJ,EAAO,8D,EAChB,gCAMP,gBAAC,UACC,gBAACI,EAAAA,EAAIA,CAAAA,CACH,GAAK,IAAU,OAAPJ,EAAO,0E,EAChB,iCAIH,gBAAC,UACC,gBAACI,EAAAA,EAAIA,CAAAA,CACH,GAAK,IAAU,OAAPJ,EAAO,gD,EAChB,uBAKL,gBAAC,UAAG,SACJ,gBAAC,UACC,gBAAC,UACC,gBAACI,EAAAA,EAAIA,CAAAA,CAAC,GAAK,IAAU,OAAPJ,EAAO,iB,EAAiB,iBAExC,gBAAC,UACC,gBAACI,EAAAA,EAAIA,CAAAA,CAAC,GAAK,IAAU,OAAPJ,EAAO,Y,EAAY,YAEnC,gBAAC,UACC,gBAACI,EAAAA,EAAIA,CAAAA,CAAC,GAAK,IAAU,OAAPJ,EAAO,U,EAAU,sBAM3C,C"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const __rspack_esm_id="3097";export const __rspack_esm_ids=["3097"];export const __webpack_modules__={35552(e,n,a){a.r(n),a.d(n,{default:()=>v});var i=a(96540),t=a(3322),l=a(92177),r=a(16969),s=a(23510),h=a(75372),o=a(5438);function u(e,n){(null==n||n>e.length)&&(n=e.length);for(var a=0,i=Array(n);a<n;a++)i[a]=e[a];return i}function c(e,n,a,i,t,l,r){try{var s=e[l](r),h=s.value}catch(e){a(e);return}s.done?n(h):Promise.resolve(h).then(i,t)}function g(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var a,i,t=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var l=[],r=!0,s=!1;try{for(t=t.call(e);!(r=(a=t.next()).done)&&(l.push(a.value),!n||l.length!==n);r=!0);}catch(e){s=!0,i=e}finally{try{r||null==t.return||t.return()}finally{if(s)throw i}}return l}}(e,n)||function(e,n){if(e){if("string"==typeof e)return u(e,n);var a=Object.prototype.toString.call(e).slice(8,-1);if("Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a)return Array.from(a);if("Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return u(e,n)}}(e,n)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}var E=new Map(Object.entries(s.A).map(function(e){var n=g(e,2),a=n[0],i=n[1];return[a.toLowerCase(),i]}));function v(e){var n,a,s=e.url,u=(0,o.Ym)(),v=(0,t.zy)(),d=g(i.useState(null),2),m=d[0],f=d[1],p=(0,l.Ay)(m,function(e){var n;return(n=function(){var n,a,i;return function(e,n){var a,i,t,l={label:0,sent:function(){if(1&t[0])throw t[1];return t[1]},trys:[],ops:[]},r=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),s=Object.defineProperty;return s(r,"next",{value:h(0)}),s(r,"throw",{value:h(1)}),s(r,"return",{value:h(2)}),"function"==typeof Symbol&&s(r,Symbol.iterator,{value:function(){return this}}),r;function h(s){return function(h){var o=[s,h];if(a)throw TypeError("Generator is already executing.");for(;r&&(r=0,o[0]&&(l=0)),l;)try{if(a=1,i&&(t=2&o[0]?i.return:o[0]?i.throw||((t=i.return)&&t.call(i),0):i.next)&&!(t=t.call(i,o[1])).done)return t;switch(i=0,t&&(o=[2&o[0],t.value]),o[0]){case 0:case 1:t=o;break;case 4:return l.label++,{value:o[1],done:!1};case 5:l.label++,i=o[1],o=[0];continue;case 7:o=l.ops.pop(),l.trys.pop();continue;default:if(!(t=(t=l.trys).length>0&&t[t.length-1])&&(6===o[0]||2===o[0])){l=0;continue}if(3===o[0]&&(!t||o[1]>t[0]&&o[1]<t[3])){l.label=o[1];break}if(6===o[0]&&l.label<t[1]){l.label=t[1],t=o;break}if(t&&l.label<t[2]){l.label=t[2],l.ops.push(o);break}t[2]&&l.ops.pop(),l.trys.pop();continue}o=n.call(e,l)}catch(e){o=[6,e],i=0}finally{a=t=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}}}(this,function(t){switch(t.label){case 0:return[4,fetch(e)];case 1:if(!(n=t.sent()).ok)return[3,8];if(!n.url.endsWith("/index.json"))return[3,3];return[4,n.json()];case 2:case 5:return[2,t.sent().doc];case 3:return(a=n.url).endsWith("/")||(a+="/"),[4,fetch(a+="index.json")];case 4:if(!(i=t.sent()).ok)return[3,6];return[4,i.json()];case 6:if(404===i.status)return[2,null];t.label=7;case 7:return[3,9];case 8:if(404===n.status)return[2,null];t.label=9;case 9:throw Error("".concat(n.status," on ").concat(e))}})},function(){var e=this,a=arguments;return new Promise(function(i,t){var l=n.apply(e,a);function r(e){c(l,i,t,r,s,"next",e)}function s(e){c(l,i,t,r,s,"throw",e)}r(void 0)})})()},{revalidateOnFocus:!1}),b=p.error,k=p.data;if(i.useEffect(function(){if(s&&s.includes("/docs/")&&"en-us"!==u.toLowerCase()){var e=s.replace("/".concat(u,"/"),"/en-US/");f(e=e.replace("/en-US/404/","/en-US/docs/"))}},[s,u,v]),b)return i.createElement(r.A,{type:"negative",extraClasses:"fallback-document"},i.createElement("h4",null,"Oh no!"),i.createElement("p",null,"Unfortunately, when trying to look to see if there was an English fallback, that check failed. This is either because of a temporary network error or because of a bug."),i.createElement("p",null,"The error was: ",i.createElement("code",null,b.toString())));if(k)return i.createElement(r.A,{type:"success",extraClasses:"fallback-document"},i.createElement("h4",null,"Good news!"),i.createElement("p",null,"The page you requested doesn't exist in"," ",i.createElement("b",null,null==(n=E.get(u.toLowerCase()))?void 0:n.English)," but it exists in"," ",i.createElement("b",null,"English")),i.createElement("p",{className:"fallback-link"},i.createElement("a",{href:k.mdn_url},i.createElement("b",null,k.title),i.createElement("br",null),i.createElement("small",null,k.mdn_url))));if(h.sc.has(u.toLowerCase()))return i.createElement(r.A,{type:"warning",extraClasses:"fallback-document"},i.createElement("p",null,"The"," ",i.createElement("strong",null,null==(a=E.get(u.toLowerCase()))?void 0:a.English," (",u,")")," ","locale has been retired, and this page doesn't exist in English."),i.createElement("p",null,"You may find an archived version of this page in one of these repositories:",i.createElement("ul",null,i.createElement("li",null,i.createElement("a",{className:"external",href:"https://github.com/mdn/retired-content"},"mdn/retired-content")," ","for pages that were available when the locale was retired,"),i.createElement("li",null,i.createElement("a",{className:"external",href:"https://github.com/mdn/retired-archived-content"},"mdn/retired-archived-content")," ","for pages that had already been archived before."))));var y=v.pathname.split("/").filter(function(e){return e&&![u,"docs"].includes(e)}).map(function(e){return e.replace(/_/g," ")}).reverse();return i.createElement(r.A,{type:"info",extraClasses:"fallback-document"},i.createElement("p",null,"The page you requested doesn't exist, but you could try a site search for:",i.createElement("ul",null,y.map(function(e){return i.createElement("li",null,i.createElement("a",{href:"/".concat(u,"/search?q=").concat(encodeURIComponent(e))},i.createElement("code",null,e)))}))))}},23510(e,n,a){a.d(n,{A:()=>i});let i={ach:{English:"Acholi",native:"Acholi"},ak:{English:"Akan",native:"Akan"},"am-et":{English:"Amharic",native:"አማርኛ"},an:{English:"Aragonese",native:"aragon\xe9s"},ar:{English:"Arabic",native:"عربي"},as:{English:"Assamese",native:"অসমীয়া"},ast:{English:"Asturian",native:"Asturianu"},azz:{English:"Highland Puebla Nahuatl",native:"nahuatl sierra norte Puebla"},be:{English:"Belarusian",native:"Беларуская"},bg:{English:"Bulgarian",native:"Български"},bm:{English:"Bambara",native:"Bamanankan"},bn:{English:"Bengali",native:"বাংলা"},br:{English:"Breton",native:"Brezhoneg"},brx:{English:"Bodo",native:"बर'"},bs:{English:"Bosnian",native:"Bosanski"},ca:{English:"Catalan",native:"Catal\xe0"},"ca-valencia":{English:"Catalan (Valencian)",native:"catal\xe0 (valenci\xe0)"},cak:{English:"Kaqchikel",native:"Maya Kaqchikel"},csb:{English:"Kashubian",native:"Kasz\xebbsczi"},cy:{English:"Welsh",native:"Cymraeg"},da:{English:"Danish",native:"Dansk"},dbg:{English:"Debug Robot",native:"Ḓḗƀŭɠ Řǿƀǿŧ"},de:{English:"German",native:"Deutsch"},"de-AT":{English:"German (Austria)",native:"Deutsch (\xd6sterreich)"},"de-CH":{English:"German (Switzerland)",native:"Deutsch (Schweiz)"},"de-DE":{English:"German (Germany)",native:"Deutsch (Deutschland)"},dsb:{English:"Lower Sorbian",native:"Dolnoserbšćina"},el:{English:"Greek",native:"Ελληνικά"},"en-AU":{English:"English (Australian)",native:"English (Australian)"},"en-CA":{English:"English (Canadian)",native:"English (Canadian)"},"en-GB":{English:"English (British)",native:"English (British)"},"en-NZ":{English:"English (New Zealand)",native:"English (New Zealand)"},"en-US":{English:"English (US)",native:"English (US)"},"en-ZA":{English:"English (South African)",native:"English (South African)"},eo:{English:"Esperanto",native:"Esperanto"},es:{English:"Spanish",native:"Espa\xf1ol"},"es-AR":{English:"Spanish (Argentina)",native:"Espa\xf1ol (de Argentina)"},"es-CL":{English:"Spanish (Chile)",native:"Espa\xf1ol (de Chile)"},"es-ES":{English:"Spanish (Spain)",native:"Espa\xf1ol (de Espa\xf1a)"},"es-MX":{English:"Spanish (Mexico)",native:"Espa\xf1ol (de M\xe9xico)"},et:{English:"Estonian",native:"Eesti keel"},eu:{English:"Basque",native:"Euskara"},fa:{English:"Persian",native:"فارسی"},fi:{English:"Finnish",native:"suomi"},"fj-FJ":{English:"Fijian",native:"Vosa vaka-Viti"},fr:{English:"French",native:"Fran\xe7ais"},"fur-IT":{English:"Friulian",native:"Furlan"},ga:{English:"Irish",native:"Gaeilge"},gd:{English:"Gaelic (Scotland)",native:"G\xe0idhlig"},gl:{English:"Galician",native:"Galego"},gn:{English:"Guarani",native:"Ava\xf1e'ẽ"},gu:{English:"Gujarati",native:"ગુજરાતી"},"gu-IN":{English:"Gujarati (India)",native:"ગુજરાતી (ભારત)"},he:{English:"Hebrew",native:"עברית"},hi:{English:"Hindi",native:"हिन्दी"},"hi-IN":{English:"Hindi (India)",native:"हिन्दी (भारत)"},hsb:{English:"Upper Sorbian",native:"Hornjoserbsce"},hu:{English:"Hungarian",native:"magyar"},"hy-AM":{English:"Armenian",native:"Հայերեն"},ia:{English:"Interlingua",native:"Interlingua"},id:{English:"Indonesian",native:"Bahasa Indonesia"},is:{English:"Icelandic",native:"\xedslenska"},it:{English:"Italian",native:"Italiano"},ja:{English:"Japanese",native:"日本語"},"ja-JP-mac":{English:"Japanese",native:"日本語"},kab:{English:"Kabyle",native:"Taqbaylit"},kk:{English:"Kazakh",native:"Қазақ"},km:{English:"Khmer",native:"ខ្មែរ"},kn:{English:"Kannada",native:"ಕನ್ನಡ"},ko:{English:"Korean",native:"한국어"},kok:{English:"Konkani",native:"कोंकनी"},ku:{English:"Kurdish",native:"Kurd\xee"},ks:{English:"Kashmiri",native:"كشمیری"},la:{English:"Latin",native:"Latina"},lg:{English:"Luganda",native:"Luganda"},lij:{English:"Ligurian",native:"Ligure"},lo:{English:"Lao",native:"ພາສາລາວ"},lt:{English:"Lithuanian",native:"Lietuvių"},ltg:{English:"Latgalian",native:"Latgaliešu valoda"},lv:{English:"Latvian",native:"Latviešu"},mai:{English:"Maithili",native:"मैथिली মৈথিলী"},mi:{English:"Maori (Aotearoa)",native:"Māori (Aotearoa)"},mk:{English:"Macedonian",native:"Македонски"},mn:{English:"Mongolian",native:"Монгол"},mr:{English:"Marathi",native:"मराठी"},ms:{English:"Malay",native:"Melayu"},my:{English:"Burmese",native:"မြန်မာဘာသာ"},"nb-NO":{English:"Norwegian (Bokm\xe5l)",native:"Norsk bokm\xe5l"},"ne-NP":{English:"Nepali",native:"नेपाली"},"nn-NO":{English:"Norwegian (Nynorsk)",native:"Norsk nynorsk"},nl:{English:"Dutch",native:"Nederlands"},nr:{English:"Ndebele, South",native:"isiNdebele"},nso:{English:"Northern Sotho",native:"Sepedi"},oc:{English:"Occitan (Lengadocian)",native:"occitan (lengadocian)"},or:{English:"Odia",native:"ଓଡ଼ିଆ"},pa:{English:"Punjabi",native:"ਪੰਜਾਬੀ"},"pa-IN":{English:"Punjabi (India)",native:"ਪੰਜਾਬੀ (ਭਾਰਤ)"},pl:{English:"Polish",native:"Polski"},"pt-BR":{English:"Portuguese (Brazilian)",native:"Portugu\xeas (do\xa0Brasil)"},"pt-PT":{English:"Portuguese (Portugal)",native:"Portugu\xeas (Europeu)"},rm:{English:"Romansh",native:"rumantsch"},ru:{English:"Russian",native:"Русский"},rw:{English:"Kinyarwanda",native:"Ikinyarwanda"},sa:{English:"Sanskrit",native:"संस्कृत"},sat:{English:"Santali",native:"संताली"},sah:{English:"Sakha",native:"Сахалыы"},si:{English:"Sinhala",native:"සිංහල"},sk:{English:"Slovak",native:"slovenčina"},sl:{English:"Slovenian",native:"Slovenščina"},"sr-Cyrl":{English:"Serbian",native:"Српски"},ss:{English:"Siswati",native:"siSwati"},st:{English:"Southern Sotho",native:"Sesotho"},"sv-SE":{English:"Swedish",native:"Svenska"},"ta-IN":{English:"Tamil (India)",native:"தமிழ் (இந்தியா)"},"ta-LK":{English:"Tamil (Sri Lanka)",native:"தமிழ் (இலங்கை)"},th:{English:"Thai",native:"ไทย"},tr:{English:"Turkish",native:"T\xfcrk\xe7e"},trs:{English:"Triqui",native:"Triqui"},ts:{English:"Tsonga",native:"Xitsonga"},tsz:{English:"Pur\xe9pecha",native:"Pur\xe9pecha"},"tt-RU":{English:"Tatar",native:"Tatar\xe7a"},uk:{English:"Ukrainian",native:"Українська"},ur:{English:"Urdu",native:"اُردو"},uz:{English:"Uzbek",native:"Oʻzbek tili"},ve:{English:"Venda",native:"Tshivenḓa"},vi:{English:"Vietnamese",native:"Tiếng Việt"},"x-testing":{English:"Testing",native:"Ŧḗşŧīƞɠ"},"zh-CN":{English:"Chinese (Simplified)",native:"中文 (简体)"},"zh-TW":{English:"Chinese (Traditional)",native:"正體中文 (繁體)"}}}};
|
|
2
|
-
//# sourceMappingURL=3097.
|
|
1
|
+
export const __rspack_esm_id="3097";export const __rspack_esm_ids=["3097"];export const __webpack_modules__={35552(e,n,a){a.r(n),a.d(n,{default:()=>v});var i=a(96540),t=a(3433),l=a(92177),r=a(16969),s=a(23510),h=a(75372),o=a(5438);function u(e,n){(null==n||n>e.length)&&(n=e.length);for(var a=0,i=Array(n);a<n;a++)i[a]=e[a];return i}function c(e,n,a,i,t,l,r){try{var s=e[l](r),h=s.value}catch(e){a(e);return}s.done?n(h):Promise.resolve(h).then(i,t)}function g(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var a,i,t=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var l=[],r=!0,s=!1;try{for(t=t.call(e);!(r=(a=t.next()).done)&&(l.push(a.value),!n||l.length!==n);r=!0);}catch(e){s=!0,i=e}finally{try{r||null==t.return||t.return()}finally{if(s)throw i}}return l}}(e,n)||function(e,n){if(e){if("string"==typeof e)return u(e,n);var a=Object.prototype.toString.call(e).slice(8,-1);if("Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a)return Array.from(a);if("Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return u(e,n)}}(e,n)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}var E=new Map(Object.entries(s.A).map(function(e){var n=g(e,2),a=n[0],i=n[1];return[a.toLowerCase(),i]}));function v(e){var n,a,s=e.url,u=(0,o.Ym)(),v=(0,t.zy)(),d=g(i.useState(null),2),m=d[0],f=d[1],p=(0,l.Ay)(m,function(e){var n;return(n=function(){var n,a,i;return function(e,n){var a,i,t,l={label:0,sent:function(){if(1&t[0])throw t[1];return t[1]},trys:[],ops:[]},r=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),s=Object.defineProperty;return s(r,"next",{value:h(0)}),s(r,"throw",{value:h(1)}),s(r,"return",{value:h(2)}),"function"==typeof Symbol&&s(r,Symbol.iterator,{value:function(){return this}}),r;function h(s){return function(h){var o=[s,h];if(a)throw TypeError("Generator is already executing.");for(;r&&(r=0,o[0]&&(l=0)),l;)try{if(a=1,i&&(t=2&o[0]?i.return:o[0]?i.throw||((t=i.return)&&t.call(i),0):i.next)&&!(t=t.call(i,o[1])).done)return t;switch(i=0,t&&(o=[2&o[0],t.value]),o[0]){case 0:case 1:t=o;break;case 4:return l.label++,{value:o[1],done:!1};case 5:l.label++,i=o[1],o=[0];continue;case 7:o=l.ops.pop(),l.trys.pop();continue;default:if(!(t=(t=l.trys).length>0&&t[t.length-1])&&(6===o[0]||2===o[0])){l=0;continue}if(3===o[0]&&(!t||o[1]>t[0]&&o[1]<t[3])){l.label=o[1];break}if(6===o[0]&&l.label<t[1]){l.label=t[1],t=o;break}if(t&&l.label<t[2]){l.label=t[2],l.ops.push(o);break}t[2]&&l.ops.pop(),l.trys.pop();continue}o=n.call(e,l)}catch(e){o=[6,e],i=0}finally{a=t=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}}}(this,function(t){switch(t.label){case 0:return[4,fetch(e)];case 1:if(!(n=t.sent()).ok)return[3,8];if(!n.url.endsWith("/index.json"))return[3,3];return[4,n.json()];case 2:case 5:return[2,t.sent().doc];case 3:return(a=n.url).endsWith("/")||(a+="/"),[4,fetch(a+="index.json")];case 4:if(!(i=t.sent()).ok)return[3,6];return[4,i.json()];case 6:if(404===i.status)return[2,null];t.label=7;case 7:return[3,9];case 8:if(404===n.status)return[2,null];t.label=9;case 9:throw Error("".concat(n.status," on ").concat(e))}})},function(){var e=this,a=arguments;return new Promise(function(i,t){var l=n.apply(e,a);function r(e){c(l,i,t,r,s,"next",e)}function s(e){c(l,i,t,r,s,"throw",e)}r(void 0)})})()},{revalidateOnFocus:!1}),b=p.error,k=p.data;if(i.useEffect(function(){if(s&&s.includes("/docs/")&&"en-us"!==u.toLowerCase()){var e=s.replace("/".concat(u,"/"),"/en-US/");f(e=e.replace("/en-US/404/","/en-US/docs/"))}},[s,u,v]),b)return i.createElement(r.A,{type:"negative",extraClasses:"fallback-document"},i.createElement("h4",null,"Oh no!"),i.createElement("p",null,"Unfortunately, when trying to look to see if there was an English fallback, that check failed. This is either because of a temporary network error or because of a bug."),i.createElement("p",null,"The error was: ",i.createElement("code",null,b.toString())));if(k)return i.createElement(r.A,{type:"success",extraClasses:"fallback-document"},i.createElement("h4",null,"Good news!"),i.createElement("p",null,"The page you requested doesn't exist in"," ",i.createElement("b",null,null==(n=E.get(u.toLowerCase()))?void 0:n.English)," but it exists in"," ",i.createElement("b",null,"English")),i.createElement("p",{className:"fallback-link"},i.createElement("a",{href:k.mdn_url},i.createElement("b",null,k.title),i.createElement("br",null),i.createElement("small",null,k.mdn_url))));if(h.sc.has(u.toLowerCase()))return i.createElement(r.A,{type:"warning",extraClasses:"fallback-document"},i.createElement("p",null,"The"," ",i.createElement("strong",null,null==(a=E.get(u.toLowerCase()))?void 0:a.English," (",u,")")," ","locale has been retired, and this page doesn't exist in English."),i.createElement("p",null,"You may find an archived version of this page in one of these repositories:",i.createElement("ul",null,i.createElement("li",null,i.createElement("a",{className:"external",href:"https://github.com/mdn/retired-content"},"mdn/retired-content")," ","for pages that were available when the locale was retired,"),i.createElement("li",null,i.createElement("a",{className:"external",href:"https://github.com/mdn/retired-archived-content"},"mdn/retired-archived-content")," ","for pages that had already been archived before."))));var y=v.pathname.split("/").filter(function(e){return e&&![u,"docs"].includes(e)}).map(function(e){return e.replace(/_/g," ")}).reverse();return i.createElement(r.A,{type:"info",extraClasses:"fallback-document"},i.createElement("p",null,"The page you requested doesn't exist, but you could try a site search for:",i.createElement("ul",null,y.map(function(e){return i.createElement("li",null,i.createElement("a",{href:"/".concat(u,"/search?q=").concat(encodeURIComponent(e))},i.createElement("code",null,e)))}))))}},23510(e,n,a){a.d(n,{A:()=>i});let i={ach:{English:"Acholi",native:"Acholi"},ak:{English:"Akan",native:"Akan"},"am-et":{English:"Amharic",native:"አማርኛ"},an:{English:"Aragonese",native:"aragon\xe9s"},ar:{English:"Arabic",native:"عربي"},as:{English:"Assamese",native:"অসমীয়া"},ast:{English:"Asturian",native:"Asturianu"},azz:{English:"Highland Puebla Nahuatl",native:"nahuatl sierra norte Puebla"},be:{English:"Belarusian",native:"Беларуская"},bg:{English:"Bulgarian",native:"Български"},bm:{English:"Bambara",native:"Bamanankan"},bn:{English:"Bengali",native:"বাংলা"},br:{English:"Breton",native:"Brezhoneg"},brx:{English:"Bodo",native:"बर'"},bs:{English:"Bosnian",native:"Bosanski"},ca:{English:"Catalan",native:"Catal\xe0"},"ca-valencia":{English:"Catalan (Valencian)",native:"catal\xe0 (valenci\xe0)"},cak:{English:"Kaqchikel",native:"Maya Kaqchikel"},csb:{English:"Kashubian",native:"Kasz\xebbsczi"},cy:{English:"Welsh",native:"Cymraeg"},da:{English:"Danish",native:"Dansk"},dbg:{English:"Debug Robot",native:"Ḓḗƀŭɠ Řǿƀǿŧ"},de:{English:"German",native:"Deutsch"},"de-AT":{English:"German (Austria)",native:"Deutsch (\xd6sterreich)"},"de-CH":{English:"German (Switzerland)",native:"Deutsch (Schweiz)"},"de-DE":{English:"German (Germany)",native:"Deutsch (Deutschland)"},dsb:{English:"Lower Sorbian",native:"Dolnoserbšćina"},el:{English:"Greek",native:"Ελληνικά"},"en-AU":{English:"English (Australian)",native:"English (Australian)"},"en-CA":{English:"English (Canadian)",native:"English (Canadian)"},"en-GB":{English:"English (British)",native:"English (British)"},"en-NZ":{English:"English (New Zealand)",native:"English (New Zealand)"},"en-US":{English:"English (US)",native:"English (US)"},"en-ZA":{English:"English (South African)",native:"English (South African)"},eo:{English:"Esperanto",native:"Esperanto"},es:{English:"Spanish",native:"Espa\xf1ol"},"es-AR":{English:"Spanish (Argentina)",native:"Espa\xf1ol (de Argentina)"},"es-CL":{English:"Spanish (Chile)",native:"Espa\xf1ol (de Chile)"},"es-ES":{English:"Spanish (Spain)",native:"Espa\xf1ol (de Espa\xf1a)"},"es-MX":{English:"Spanish (Mexico)",native:"Espa\xf1ol (de M\xe9xico)"},et:{English:"Estonian",native:"Eesti keel"},eu:{English:"Basque",native:"Euskara"},fa:{English:"Persian",native:"فارسی"},fi:{English:"Finnish",native:"suomi"},"fj-FJ":{English:"Fijian",native:"Vosa vaka-Viti"},fr:{English:"French",native:"Fran\xe7ais"},"fur-IT":{English:"Friulian",native:"Furlan"},ga:{English:"Irish",native:"Gaeilge"},gd:{English:"Gaelic (Scotland)",native:"G\xe0idhlig"},gl:{English:"Galician",native:"Galego"},gn:{English:"Guarani",native:"Ava\xf1e'ẽ"},gu:{English:"Gujarati",native:"ગુજરાતી"},"gu-IN":{English:"Gujarati (India)",native:"ગુજરાતી (ભારત)"},he:{English:"Hebrew",native:"עברית"},hi:{English:"Hindi",native:"हिन्दी"},"hi-IN":{English:"Hindi (India)",native:"हिन्दी (भारत)"},hsb:{English:"Upper Sorbian",native:"Hornjoserbsce"},hu:{English:"Hungarian",native:"magyar"},"hy-AM":{English:"Armenian",native:"Հայերեն"},ia:{English:"Interlingua",native:"Interlingua"},id:{English:"Indonesian",native:"Bahasa Indonesia"},is:{English:"Icelandic",native:"\xedslenska"},it:{English:"Italian",native:"Italiano"},ja:{English:"Japanese",native:"日本語"},"ja-JP-mac":{English:"Japanese",native:"日本語"},kab:{English:"Kabyle",native:"Taqbaylit"},kk:{English:"Kazakh",native:"Қазақ"},km:{English:"Khmer",native:"ខ្មែរ"},kn:{English:"Kannada",native:"ಕನ್ನಡ"},ko:{English:"Korean",native:"한국어"},kok:{English:"Konkani",native:"कोंकनी"},ku:{English:"Kurdish",native:"Kurd\xee"},ks:{English:"Kashmiri",native:"كشمیری"},la:{English:"Latin",native:"Latina"},lg:{English:"Luganda",native:"Luganda"},lij:{English:"Ligurian",native:"Ligure"},lo:{English:"Lao",native:"ພາສາລາວ"},lt:{English:"Lithuanian",native:"Lietuvių"},ltg:{English:"Latgalian",native:"Latgaliešu valoda"},lv:{English:"Latvian",native:"Latviešu"},mai:{English:"Maithili",native:"मैथिली মৈথিলী"},mi:{English:"Maori (Aotearoa)",native:"Māori (Aotearoa)"},mk:{English:"Macedonian",native:"Македонски"},mn:{English:"Mongolian",native:"Монгол"},mr:{English:"Marathi",native:"मराठी"},ms:{English:"Malay",native:"Melayu"},my:{English:"Burmese",native:"မြန်မာဘာသာ"},"nb-NO":{English:"Norwegian (Bokm\xe5l)",native:"Norsk bokm\xe5l"},"ne-NP":{English:"Nepali",native:"नेपाली"},"nn-NO":{English:"Norwegian (Nynorsk)",native:"Norsk nynorsk"},nl:{English:"Dutch",native:"Nederlands"},nr:{English:"Ndebele, South",native:"isiNdebele"},nso:{English:"Northern Sotho",native:"Sepedi"},oc:{English:"Occitan (Lengadocian)",native:"occitan (lengadocian)"},or:{English:"Odia",native:"ଓଡ଼ିଆ"},pa:{English:"Punjabi",native:"ਪੰਜਾਬੀ"},"pa-IN":{English:"Punjabi (India)",native:"ਪੰਜਾਬੀ (ਭਾਰਤ)"},pl:{English:"Polish",native:"Polski"},"pt-BR":{English:"Portuguese (Brazilian)",native:"Portugu\xeas (do\xa0Brasil)"},"pt-PT":{English:"Portuguese (Portugal)",native:"Portugu\xeas (Europeu)"},rm:{English:"Romansh",native:"rumantsch"},ru:{English:"Russian",native:"Русский"},rw:{English:"Kinyarwanda",native:"Ikinyarwanda"},sa:{English:"Sanskrit",native:"संस्कृत"},sat:{English:"Santali",native:"संताली"},sah:{English:"Sakha",native:"Сахалыы"},si:{English:"Sinhala",native:"සිංහල"},sk:{English:"Slovak",native:"slovenčina"},sl:{English:"Slovenian",native:"Slovenščina"},"sr-Cyrl":{English:"Serbian",native:"Српски"},ss:{English:"Siswati",native:"siSwati"},st:{English:"Southern Sotho",native:"Sesotho"},"sv-SE":{English:"Swedish",native:"Svenska"},"ta-IN":{English:"Tamil (India)",native:"தமிழ் (இந்தியா)"},"ta-LK":{English:"Tamil (Sri Lanka)",native:"தமிழ் (இலங்கை)"},th:{English:"Thai",native:"ไทย"},tr:{English:"Turkish",native:"T\xfcrk\xe7e"},trs:{English:"Triqui",native:"Triqui"},ts:{English:"Tsonga",native:"Xitsonga"},tsz:{English:"Pur\xe9pecha",native:"Pur\xe9pecha"},"tt-RU":{English:"Tatar",native:"Tatar\xe7a"},uk:{English:"Ukrainian",native:"Українська"},ur:{English:"Urdu",native:"اُردو"},uz:{English:"Uzbek",native:"Oʻzbek tili"},ve:{English:"Venda",native:"Tshivenḓa"},vi:{English:"Vietnamese",native:"Tiếng Việt"},"x-testing":{English:"Testing",native:"Ŧḗşŧīƞɠ"},"zh-CN":{English:"Chinese (Simplified)",native:"中文 (简体)"},"zh-TW":{English:"Chinese (Traditional)",native:"正體中文 (繁體)"}}}};
|
|
2
|
+
//# sourceMappingURL=3097.89f8c27a39d2d759.js.map
|