From 2dd13d0b1b2aa612116dc4579de9975a50d9d7a3 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 10 Mar 2024 00:59:00 +0000 Subject: [PATCH] deploy: c02e5ba6ea144b872c7ed3312f596a516d0c1028 --- 404.html | 2 +- assets/js/e5846443.b6b23426.js | 1 - assets/js/e5846443.e129337c.js | 1 + .../js/{runtime~main.7ef0dfe4.js => runtime~main.807b7bb4.js} | 2 +- blog/2016/02/26/a-case-for-soa-in-the-browser/index.html | 2 +- blog/2016/12/16/a-step-by-step-guide-to-single-spa/index.html | 2 +- blog/2018/06/19/single-spa-parcels-explained/index.html | 2 +- blog/2019/02/20/single-spa-inspector/index.html | 2 +- blog/2020/02/24/single-spa-5/index.html | 2 +- blog/2023/08/22/single-spa-core-is-expanding/index.html | 2 +- .../introducing-single-spa-new-core-team-members/index.html | 2 +- blog/2023/11/07/core-team-meeting-notes/index.html | 2 +- blog/2023/11/27/single-spa-6/index.html | 2 +- blog/2023/12/12/core-team-meeting-notes/index.html | 2 +- blog/2024/01/03/core-team-meeting-notes/index.html | 2 +- blog/2024/02/14/core-team-meeting-notes/index.html | 2 +- blog/archive/index.html | 2 +- blog/index.html | 2 +- blog/page/2/index.html | 2 +- contributors/index.html | 2 +- docs/4.x/api/index.html | 2 +- docs/4.x/building-applications/index.html | 2 +- docs/4.x/code-of-conduct/index.html | 2 +- docs/4.x/configuration/index.html | 2 +- docs/4.x/contributing-overview/index.html | 2 +- docs/4.x/ecosystem-angular/index.html | 2 +- docs/4.x/ecosystem-angularjs/index.html | 2 +- docs/4.x/ecosystem-backbone/index.html | 2 +- docs/4.x/ecosystem-cycle/index.html | 2 +- docs/4.x/ecosystem-ember/index.html | 2 +- docs/4.x/ecosystem-html-web-components/index.html | 2 +- docs/4.x/ecosystem-inferno/index.html | 2 +- docs/4.x/ecosystem-leaked-globals/index.html | 2 +- docs/4.x/ecosystem-preact/index.html | 2 +- docs/4.x/ecosystem-react/index.html | 2 +- docs/4.x/ecosystem-riot/index.html | 2 +- docs/4.x/ecosystem-svelte/index.html | 2 +- docs/4.x/ecosystem-vue/index.html | 2 +- docs/4.x/ecosystem/index.html | 2 +- docs/4.x/examples/index.html | 2 +- docs/4.x/faq/index.html | 2 +- docs/4.x/getting-started-overview/index.html | 2 +- docs/4.x/glossary/index.html | 2 +- docs/4.x/migrating-angularJS-tutorial/index.html | 2 +- docs/4.x/migrating-existing-spas/index.html | 2 +- docs/4.x/migrating-react-tutorial/index.html | 2 +- docs/4.x/parcels-api/index.html | 2 +- docs/4.x/parcels-overview/index.html | 2 +- docs/4.x/separating-applications/index.html | 2 +- docs/4.x/starting-from-scratch/index.html | 2 +- docs/5.x/api/index.html | 2 +- docs/5.x/building-applications/index.html | 2 +- docs/5.x/code-of-conduct/index.html | 2 +- docs/5.x/configuration/index.html | 2 +- docs/5.x/contributing-overview/index.html | 2 +- docs/5.x/create-single-spa/index.html | 2 +- docs/5.x/devtools/index.html | 2 +- docs/5.x/ecosystem-alpinejs/index.html | 2 +- docs/5.x/ecosystem-angular/index.html | 2 +- docs/5.x/ecosystem-angularjs/index.html | 2 +- docs/5.x/ecosystem-backbone/index.html | 2 +- docs/5.x/ecosystem-css/index.html | 2 +- docs/5.x/ecosystem-cycle/index.html | 2 +- docs/5.x/ecosystem-dojo/index.html | 2 +- docs/5.x/ecosystem-ember/index.html | 2 +- docs/5.x/ecosystem-html-web-components/index.html | 2 +- docs/5.x/ecosystem-inferno/index.html | 2 +- docs/5.x/ecosystem-leaked-globals/index.html | 2 +- docs/5.x/ecosystem-preact/index.html | 2 +- docs/5.x/ecosystem-react/index.html | 2 +- docs/5.x/ecosystem-riot/index.html | 2 +- docs/5.x/ecosystem-snowpack/index.html | 2 +- docs/5.x/ecosystem-svelte/index.html | 2 +- docs/5.x/ecosystem-vite/index.html | 2 +- docs/5.x/ecosystem-vue/index.html | 2 +- docs/5.x/ecosystem/index.html | 2 +- docs/5.x/examples/index.html | 2 +- docs/5.x/faq/index.html | 2 +- docs/5.x/getting-started-overview/index.html | 2 +- docs/5.x/glossary/index.html | 2 +- docs/5.x/layout-api/index.html | 2 +- docs/5.x/layout-definition/index.html | 2 +- docs/5.x/layout-overview/index.html | 2 +- docs/5.x/microfrontends-concept/index.html | 2 +- docs/5.x/migrating-existing-spas/index.html | 2 +- docs/5.x/module-types/index.html | 2 +- docs/5.x/parcels-api/index.html | 2 +- docs/5.x/parcels-overview/index.html | 2 +- docs/5.x/recommended-setup/index.html | 2 +- docs/5.x/separating-applications/index.html | 2 +- docs/5.x/shared-webpack-configs/index.html | 2 +- docs/5.x/single-spa-playground/index.html | 2 +- docs/5.x/ssr-overview/index.html | 2 +- docs/5.x/testing/e2e/index.html | 2 +- docs/5.x/testing/units/index.html | 2 +- docs/5.x/videos/index.html | 2 +- docs/api/index.html | 2 +- docs/building-applications/index.html | 2 +- docs/code-of-conduct/index.html | 2 +- docs/configuration/index.html | 2 +- docs/contributing-overview/index.html | 2 +- docs/create-single-spa/index.html | 2 +- docs/devtools/index.html | 2 +- docs/ecosystem-alpinejs/index.html | 2 +- docs/ecosystem-angular/index.html | 2 +- docs/ecosystem-angularjs/index.html | 2 +- docs/ecosystem-backbone/index.html | 2 +- docs/ecosystem-css/index.html | 2 +- docs/ecosystem-cycle/index.html | 2 +- docs/ecosystem-dojo/index.html | 2 +- docs/ecosystem-ember/index.html | 2 +- docs/ecosystem-html-web-components/index.html | 2 +- docs/ecosystem-inferno/index.html | 2 +- docs/ecosystem-leaked-globals/index.html | 2 +- docs/ecosystem-preact/index.html | 2 +- docs/ecosystem-react/index.html | 2 +- docs/ecosystem-riot/index.html | 2 +- docs/ecosystem-snowpack/index.html | 2 +- docs/ecosystem-svelte/index.html | 2 +- docs/ecosystem-vite/index.html | 2 +- docs/ecosystem-vue/index.html | 2 +- docs/ecosystem/index.html | 2 +- docs/examples/index.html | 2 +- docs/faq/index.html | 2 +- docs/getting-started-overview/index.html | 2 +- docs/glossary/index.html | 2 +- docs/index.html | 2 +- docs/layout-api/index.html | 2 +- docs/layout-definition/index.html | 2 +- docs/layout-overview/index.html | 2 +- docs/microfrontends-concept/index.html | 2 +- docs/migrating-existing-spas/index.html | 2 +- docs/module-types/index.html | 2 +- docs/next/index.html | 2 +- docs/parcels-api/index.html | 2 +- docs/parcels-overview/index.html | 2 +- docs/recommended-setup/index.html | 2 +- docs/separating-applications/index.html | 2 +- docs/shared-webpack-configs/index.html | 4 ++-- docs/single-spa-playground/index.html | 2 +- docs/ssr-overview/index.html | 2 +- docs/testing/e2e/index.html | 2 +- docs/testing/units/index.html | 2 +- docs/videos/index.html | 2 +- error/index.html | 2 +- help/index.html | 2 +- index.html | 2 +- languages/index.html | 2 +- privacy/single-spa-inspector-privacy-policy/index.html | 2 +- search/index.html | 2 +- sponsors/index.html | 2 +- users/index.html | 2 +- versions/index.html | 2 +- 153 files changed, 153 insertions(+), 153 deletions(-) delete mode 100644 assets/js/e5846443.b6b23426.js create mode 100644 assets/js/e5846443.e129337c.js rename assets/js/{runtime~main.7ef0dfe4.js => runtime~main.807b7bb4.js} (99%) diff --git a/404.html b/404.html index 348418a52..de25ee514 100644 --- a/404.html +++ b/404.html @@ -14,7 +14,7 @@ - + diff --git a/assets/js/e5846443.b6b23426.js b/assets/js/e5846443.b6b23426.js deleted file mode 100644 index 09b96b28f..000000000 --- a/assets/js/e5846443.b6b23426.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[7036],{8045:(e,n,a)=>{a.r(n),a.d(n,{assets:()=>r,contentTitle:()=>o,default:()=>g,frontMatter:()=>t,metadata:()=>c,toc:()=>l});var s=a(4848),i=a(8453);const t={title:"Shared Webpack configs"},o=void 0,c={id:"shared-webpack-configs",title:"Shared Webpack configs",description:"single-spa also publishes a few shared Webpack config packages that include basics needed for creating single-spa applications. These configs are used by applications generated with create-single-spa, and can be used as a starting point to extend/modify a custom configuration for your organization/team.",source:"@site/versioned_docs/version-6.x/shared-webpack-configs.md",sourceDirName:".",slug:"/shared-webpack-configs",permalink:"/docs/shared-webpack-configs",draft:!1,unlisted:!1,editUrl:"https://github.com/single-spa/single-spa.js.org/blob/master/website/versioned_docs/version-6.x/shared-webpack-configs.md",tags:[],version:"6.x",frontMatter:{title:"Shared Webpack configs"},sidebar:"docs",previous:{title:"create-single-spa",permalink:"/docs/create-single-spa"},next:{title:"Overview",permalink:"/docs/microfrontends-concept"}},r={},l=[{value:"webpack-config-single-spa",id:"webpack-config-single-spa",level:2},{value:"Installation",id:"installation",level:3},{value:"Usage",id:"usage",level:3},{value:"webpack-config-single-spa-react",id:"webpack-config-single-spa-react",level:2},{value:"Installation",id:"installation-1",level:3},{value:"Usage",id:"usage-1",level:3},{value:"webpack-config-single-spa-ts",id:"webpack-config-single-spa-ts",level:2},{value:"Installation",id:"installation-2",level:3},{value:"Usage",id:"usage-2",level:3},{value:"webpack-config-single-spa-react-ts",id:"webpack-config-single-spa-react-ts",level:2},{value:"Installation",id:"installation-3",level:3},{value:"Usage",id:"usage-3",level:3},{value:"Custom Webpack configuration",id:"custom-webpack-configuration",level:2},{value:"Example: load SVGs as components",id:"example-load-svgs-as-components",level:4},{value:"Replacing plugins",id:"replacing-plugins",level:3},{value:"Example: replace HtmlWebpackPlugin instance",id:"example-replace-htmlwebpackplugin-instance",level:4}];function p(e){const n={a:"a",admonition:"admonition",code:"code",h2:"h2",h3:"h3",h4:"h4",li:"li",p:"p",pre:"pre",ul:"ul",...(0,i.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(n.p,{children:["single-spa also publishes a few shared Webpack config packages that include basics needed for creating single-spa applications. These configs are used by applications generated with ",(0,s.jsx)(n.a,{href:"/docs/create-single-spa",children:"create-single-spa"}),", and can be used as a starting point to extend/modify a custom configuration for your organization/team."]}),"\n",(0,s.jsxs)(n.p,{children:["These packages are housed within the ",(0,s.jsx)(n.a,{href:"https://github.com/single-spa/create-single-spa/tree/main/packages",children:"create-single-spa repository"}),"."]}),"\n",(0,s.jsx)(n.h2,{id:"webpack-config-single-spa",children:"webpack-config-single-spa"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.a,{href:"https://github.com/single-spa/create-single-spa/tree/master/packages/webpack-config-single-spa",children:"Github project"})}),"\n",(0,s.jsx)(n.p,{children:"A shareable, customizable webpack config that is used for single-spa modules."}),"\n",(0,s.jsx)(n.h3,{id:"installation",children:"Installation"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-sh",children:"npm install --save-dev webpack-config-single-spa webpack-merge\n\n# or\nyarn add --dev webpack-config-single-spa webpack-merge\n"})}),"\n",(0,s.jsx)(n.h3,{id:"usage",children:"Usage"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",children:'const singleSpaDefaults = require("webpack-config-single-spa");\nconst { merge } = require("webpack-merge"); // webpack-merge@5.0.3+\n\nmodule.exports = (webpackConfigEnv, argv) => {\n const defaultConfig = singleSpaDefaults({\n // The name of the organization this application is written for\n orgName: "name-of-company",\n // The name of the current project. This usually matches the git repo\'s name\n projectName: "name-of-project",\n // See https://webpack.js.org/guides/environment-variables/#root for explanation of webpackConfigEnv\n webpackConfigEnv,\n // The CLI commands in the package.json script that triggered this build\n argv,\n // optional\n // This changes whether package names that start with @your-org-name are\n // treated as webpack externals or not. Defaults to true\n orgPackagesAsExternal: true,\n\n // optional, defaults to 1\n // This is the rootDirectoryLevel that is passed to https://github.com/joeldenning/systemjs-webpack-interop\n rootDirectoryLevel: 1,\n\n // optional, defaults to false\n // Disable html-webpack-plugin (and standalone-single-spa-webpack-plugin) entirely\n // This is intended for root configs, but can be used in other cases, too\n disableHtmlGeneration: false,\n });\n\n return merge(defaultConfig, {\n // modify the webpack config however you\'d like to by adding to this object\n });\n};\n'})}),"\n",(0,s.jsx)(n.h2,{id:"webpack-config-single-spa-react",children:"webpack-config-single-spa-react"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.a,{href:"https://github.com/single-spa/create-single-spa/tree/master/packages/webpack-config-single-spa-react",children:"Github project"})}),"\n",(0,s.jsxs)(n.p,{children:["A shareable, customizable webpack config that adds react-specific configuration to ",(0,s.jsx)(n.code,{children:"webpack-config-single-spa"}),"."]}),"\n",(0,s.jsx)(n.h3,{id:"installation-1",children:"Installation"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-sh",children:"npm install --save-dev webpack-config-single-spa-react webpack-merge\n\n# or\nyarn add --dev webpack-config-single-spa-react webpack-merge\n"})}),"\n",(0,s.jsx)(n.h3,{id:"usage-1",children:"Usage"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",children:"const singleSpaDefaults = require('webpack-config-single-spa-react');\nconst webpackMerge = require('webpack-merge');\n\nmodule.exports = (webpackConfigEnv, argv) => {\n const defaultConfig = singleSpaDefaults({\n // The name of the organization this application is written for\n orgName: 'name-of-company',\n // The name of the current project. This usually matches the git repo's name\n projectName: 'name-of-project',\n // See https://webpack.js.org/guides/environment-variables/#root for explanation of webpackConfigEnv\n webpackConfigEnv,\n // The CLI commands in the package.json script that triggered this build\n argv,\n // optional\n // This changes whether package names that start with @your-org-name are\n // treated as webpack externals or not. Defaults to true\n orgPackagesAsExternal: true,\n\n // optional, defaults to 1\n // This is the rootDirectoryLevel that is passed to https://github.com/joeldenning/systemjs-webpack-interop\n rootDirectoryLevel: 1,\n\n // optional, defaults to {}\n // This controls the options given to standalone-single-spa-webpack-plugin\n // See https://github.com/single-spa/standalone-single-spa-webpack-plugin#usage\n standaloneOptions: {},\n });\n\n // modify the webpack config however you'd like to by adding to this object\n });\n};\n"})}),"\n",(0,s.jsx)(n.h2,{id:"webpack-config-single-spa-ts",children:"webpack-config-single-spa-ts"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.a,{href:"https://github.com/single-spa/create-single-spa/tree/master/packages/webpack-config-single-spa-ts",children:"Github project"})}),"\n",(0,s.jsxs)(n.p,{children:["A shareable, customizable webpack config that adds typescript-specific configuration to ",(0,s.jsx)(n.code,{children:"webpack-config-single-spa"}),". Note that webpack-config-single-spa-ts has a peerDependency on ",(0,s.jsx)(n.code,{children:"typescript"}),"."]}),"\n",(0,s.jsx)(n.h3,{id:"installation-2",children:"Installation"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-sh",children:"npm install --save-dev webpack-config-single-spa-ts webpack-merge\n\n# or\nyarn add --dev webpack-config-single-spa-ts webpack-merge\n"})}),"\n",(0,s.jsx)(n.h3,{id:"usage-2",children:"Usage"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",children:'const webpackMerge = require("webpack-merge");\nconst singleSpaDefaults = require("webpack-config-single-spa-ts");\n\nmodule.exports = (webpackConfigEnv, argv) => {\n const defaultConfig = singleSpaDefaults({\n // The name of the organization this application is written for\n orgName: "name-of-company",\n // The name of the current project. This usually matches the git repo\'s name\n projectName: "name-of-project",\n // See https://webpack.js.org/guides/environment-variables/#root for explanation of webpackConfigEnv\n webpackConfigEnv,\n // The CLI commands in the package.json script that triggered this build\n argv,\n });\n\n return webpackMerge.smart(defaultConfig, {\n // modify the webpack config however you\'d like to by adding to this object\n });\n};\n'})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",children:'const singleSpaTs = require("webpack-config-single-spa-ts");\n\n// Alternatively, you may modify a webpack config directly\nconst myOtherWebpackConfig = {\n /* ... */\n};\nconst finalConfig = singleSpaDefaults.modifyConfig(myOtherWebpackConfig);\n'})}),"\n",(0,s.jsx)(n.h2,{id:"webpack-config-single-spa-react-ts",children:"webpack-config-single-spa-react-ts"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.a,{href:"https://github.com/single-spa/create-single-spa/tree/master/packages/webpack-config-single-spa-react-ts",children:"Github project"})}),"\n",(0,s.jsx)(n.p,{children:"A shareable, customizable webpack config that creates a webpack config that works with both react and typescript. Note that webpack-config-single-spa-react-ts simply merges the config from webpack-config-single-spa-react with that of webpack-config-single-spa-ts."}),"\n",(0,s.jsx)(n.h3,{id:"installation-3",children:"Installation"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-sh",children:"npm install --save-dev webpack-config-single-spa-react-ts webpack-merge\n\n# or\nyarn add --dev webpack-config-single-spa-react-ts webpack-merge\n"})}),"\n",(0,s.jsx)(n.h3,{id:"usage-3",children:"Usage"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",children:'const webpackMerge = require("webpack-merge");\nconst singleSpaDefaults = require("webpack-config-single-spa-react-ts");\n\nmodule.exports = (webpackConfigEnv, argv) => {\n const defaultConfig = singleSpaDefaults({\n // The name of the organization this application is written for\n orgName: "name-of-company",\n\n // The name of the current project. This usually matches the git repo\'s name\n projectName: "name-of-project",\n\n // optional\n // This changes whether package names that start with @your-org-name are\n // treated as webpack externals or not. Defaults to true\n orgPackagesAsExternal: true,\n\n // See https://webpack.js.org/guides/environment-variables/#root for explanation of webpackConfigEnv\n webpackConfigEnv,\n\n // The CLI commands in the package.json script that triggered this build\n argv,\n\n // optional, defaults to 1\n // This is the rootDirectoryLevel that is passed to https://github.com/joeldenning/systemjs-webpack-interop\n rootDirectoryLevel: 1,\n\n // optional, defaults to false.\n // When true, this removes html-webpack-plugin and standalone-single-spa-webpack-plugin\n disableHtmlGeneration: false,\n });\n\n return webpackMerge.smart(defaultConfig, {\n // modify the webpack config however you\'d like to by adding to this object\n });\n};\n'})}),"\n",(0,s.jsx)(n.h2,{id:"custom-webpack-configuration",children:"Custom Webpack configuration"}),"\n",(0,s.jsxs)(n.p,{children:["Our shared Webpack configs are intended to be extensible to fit the requirements of your applications. These custom config options can be made in each project's ",(0,s.jsx)(n.code,{children:"webpack.config.js"})," file generated by create-single-spa, or used as the basis for a tailored shared config for your organization."]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Use ",(0,s.jsx)(n.code,{children:"require.resolve"})," to reuse loaders that are included as dependencies","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"this is especially useful for reusing any of webpack-config-single-spa-*'s dependencies"}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["webpack-merge ",(0,s.jsx)(n.a,{href:"https://github.com/survivejs/webpack-merge#limitations",children:"does not support merging configs exported as a function"}),", which may be relevant if creating shared config packages. webpack-config-single-spa-* configs require ",(0,s.jsx)(n.code,{children:"webpackConfigEnv"})," and ",(0,s.jsx)(n.code,{children:"argv"})," parameters which necesitates ",(0,s.jsx)(n.a,{href:"https://webpack.js.org/configuration/configuration-types/#exporting-a-function",children:"exporting a config function"})," but return a plain object. This makes it compatible with webpack-merge."]}),"\n",(0,s.jsxs)(n.li,{children:["Use webpack-merge's ",(0,s.jsx)(n.a,{href:"https://github.com/survivejs/webpack-merge#mergewithrules",children:(0,s.jsx)(n.code,{children:"mergeWithRules"})})," function to merge and de-duplicate ",(0,s.jsx)(n.a,{href:"https://webpack.js.org/configuration/module/#modulerules",children:"webpack rules"})]}),"\n"]}),"\n",(0,s.jsx)(n.h4,{id:"example-load-svgs-as-components",children:"Example: load SVGs as components"}),"\n",(0,s.jsxs)(n.p,{children:["You must also install ",(0,s.jsx)(n.a,{href:"https://www.npmjs.com/package/@svgr/webpack",children:"@svgr/webpack"}),"."]}),"\n",(0,s.jsx)(n.admonition,{type:"info",children:(0,s.jsx)(n.p,{children:"Available in webpack-config-single-spa@5.3.0+"})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",children:'const singleSpaDefaults = require("webpack-config-single-spa");\nconst { mergeWithRules } = require("webpack-merge");\n\nconst merge = mergeWithRules({\n module: {\n rules: {\n // replace the entire `rule` if the `test` property matches\n test: "match",\n use: "replace",\n },\n },\n});\n\nmodule.exports = (env, argv) => {\n const defaultConfig = singleSpaDefaults({\n orgName: "abcde",\n projectName: "fghij",\n webpackConfigEnv: env,\n argv,\n });\n\n const config = merge(defaultConfig, {\n module: {\n rules: [\n {\n test: /\\.svg$/i,\n use: [{ loader: "@svgr/webpack" }],\n },\n ],\n },\n });\n\n // console.dir(config, null, 2) // useful for debugging\n return config;\n};\n'})}),"\n",(0,s.jsx)(n.h3,{id:"replacing-plugins",children:"Replacing plugins"}),"\n",(0,s.jsxs)(n.p,{children:["Use webpack-merge's ",(0,s.jsx)(n.a,{href:"https://github.com/survivejs/webpack-merge#mergewithcustomize-customizearray-customizeobject-configuration--configuration",children:(0,s.jsx)(n.code,{children:"mergeWithCustomize"})})," to resolve duplicate plugins or replace instances. Duplicate plugins often result in cryptic errors!"]}),"\n",(0,s.jsxs)(n.p,{children:["When referencing a loader that is installed as a dependency of webpack-config-single-spa, use ",(0,s.jsx)(n.a,{href:"https://nodejs.org/api/modules.html#modules_require_resolve_request_options",children:"require.resolve"})," to ensure its path is resolved correctly."]}),"\n",(0,s.jsx)(n.h4,{id:"example-replace-htmlwebpackplugin-instance",children:"Example: replace HtmlWebpackPlugin instance"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",children:'const { mergeWithCustomize, unique } = require("webpack-merge");\nconst singleSpaDefaults = require("webpack-config-single-spa");\nconst HtmlWebpackPlugin = require("html-webpack-plugin");\n\nconst merge = mergeWithCustomize({\n customizeArray: unique(\n "plugins",\n ["HtmlWebpackPlugin"],\n (plugin) => plugin.constructor && plugin.constructor.name,\n ),\n});\n\nmodule.exports = (env, argv) => {\n const orgName = "example";\n const myEnv = process.env.NODE_ENV || "development";\n\n const defaultConfig = singleSpaDefaults({\n orgName,\n projectName: "custom-root-config",\n webpackConfigEnv: env,\n argv,\n });\n\n const config = merge(defaultConfig, {\n plugins: [\n new HtmlWebpackPlugin({\n inject: false,\n template: "src/custom.ejs",\n templateParameters: {\n isLocal: env?.isLocal,\n // additional templateParameters can now be supplied\n orgName,\n environment: myEnv,\n },\n }),\n ],\n });\n\n // console.dir(config, null, 2) // useful for debugging\n return config;\n};\n'})})]})}function g(e={}){const{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(p,{...e})}):p(e)}},8453:(e,n,a)=>{a.d(n,{R:()=>o,x:()=>c});var s=a(6540);const i={},t=s.createContext(i);function o(e){const n=s.useContext(t);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),s.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/e5846443.e129337c.js b/assets/js/e5846443.e129337c.js new file mode 100644 index 000000000..81a14bd94 --- /dev/null +++ b/assets/js/e5846443.e129337c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[7036],{8045:(e,n,a)=>{a.r(n),a.d(n,{assets:()=>r,contentTitle:()=>o,default:()=>g,frontMatter:()=>t,metadata:()=>c,toc:()=>l});var s=a(4848),i=a(8453);const t={title:"Shared Webpack configs"},o=void 0,c={id:"shared-webpack-configs",title:"Shared Webpack configs",description:"single-spa also publishes a few shared Webpack config packages that include basics needed for creating single-spa applications. These configs are used by applications generated with create-single-spa, and can be used as a starting point to extend/modify a custom configuration for your organization/team.",source:"@site/versioned_docs/version-6.x/shared-webpack-configs.md",sourceDirName:".",slug:"/shared-webpack-configs",permalink:"/docs/shared-webpack-configs",draft:!1,unlisted:!1,editUrl:"https://github.com/single-spa/single-spa.js.org/blob/master/website/versioned_docs/version-6.x/shared-webpack-configs.md",tags:[],version:"6.x",frontMatter:{title:"Shared Webpack configs"},sidebar:"docs",previous:{title:"create-single-spa",permalink:"/docs/create-single-spa"},next:{title:"Overview",permalink:"/docs/microfrontends-concept"}},r={},l=[{value:"webpack-config-single-spa",id:"webpack-config-single-spa",level:2},{value:"Installation",id:"installation",level:3},{value:"Usage",id:"usage",level:3},{value:"webpack-config-single-spa-react",id:"webpack-config-single-spa-react",level:2},{value:"Installation",id:"installation-1",level:3},{value:"Usage",id:"usage-1",level:3},{value:"webpack-config-single-spa-ts",id:"webpack-config-single-spa-ts",level:2},{value:"Installation",id:"installation-2",level:3},{value:"Usage",id:"usage-2",level:3},{value:"webpack-config-single-spa-react-ts",id:"webpack-config-single-spa-react-ts",level:2},{value:"Installation",id:"installation-3",level:3},{value:"Usage",id:"usage-3",level:3},{value:"Custom Webpack configuration",id:"custom-webpack-configuration",level:2},{value:"Example: load SVGs as components",id:"example-load-svgs-as-components",level:4},{value:"Replacing plugins",id:"replacing-plugins",level:3},{value:"Example: replace HtmlWebpackPlugin instance",id:"example-replace-htmlwebpackplugin-instance",level:4}];function p(e){const n={a:"a",admonition:"admonition",code:"code",h2:"h2",h3:"h3",h4:"h4",li:"li",p:"p",pre:"pre",ul:"ul",...(0,i.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(n.p,{children:["single-spa also publishes a few shared Webpack config packages that include basics needed for creating single-spa applications. These configs are used by applications generated with ",(0,s.jsx)(n.a,{href:"/docs/create-single-spa",children:"create-single-spa"}),", and can be used as a starting point to extend/modify a custom configuration for your organization/team."]}),"\n",(0,s.jsxs)(n.p,{children:["These packages are housed within the ",(0,s.jsx)(n.a,{href:"https://github.com/single-spa/create-single-spa/tree/main/packages",children:"create-single-spa repository"}),"."]}),"\n",(0,s.jsx)(n.h2,{id:"webpack-config-single-spa",children:"webpack-config-single-spa"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.a,{href:"https://github.com/single-spa/create-single-spa/tree/master/packages/webpack-config-single-spa",children:"Github project"})}),"\n",(0,s.jsx)(n.p,{children:"A shareable, customizable webpack config that is used for single-spa modules."}),"\n",(0,s.jsx)(n.h3,{id:"installation",children:"Installation"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-sh",children:"npm install --save-dev webpack-config-single-spa webpack-merge\n\n# or\nyarn add --dev webpack-config-single-spa webpack-merge\n"})}),"\n",(0,s.jsx)(n.h3,{id:"usage",children:"Usage"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",children:'const singleSpaDefaults = require("webpack-config-single-spa");\nconst { merge } = require("webpack-merge"); // webpack-merge@5.0.3+\n\nmodule.exports = (webpackConfigEnv, argv) => {\n const defaultConfig = singleSpaDefaults({\n // The name of the organization this application is written for\n orgName: "name-of-company",\n // The name of the current project. This usually matches the git repo\'s name\n projectName: "name-of-project",\n // See https://webpack.js.org/guides/environment-variables/#root for explanation of webpackConfigEnv\n webpackConfigEnv,\n // The CLI commands in the package.json script that triggered this build\n argv,\n // optional\n // This changes whether package names that start with @your-org-name are\n // treated as webpack externals or not. Defaults to true\n orgPackagesAsExternal: true,\n\n // optional, defaults to 1\n // This is the rootDirectoryLevel that is passed to https://github.com/joeldenning/systemjs-webpack-interop\n rootDirectoryLevel: 1,\n\n // optional, defaults to false\n // Disable html-webpack-plugin (and standalone-single-spa-webpack-plugin) entirely\n // This is intended for root configs, but can be used in other cases, too\n disableHtmlGeneration: false,\n });\n\n return merge(defaultConfig, {\n // modify the webpack config however you\'d like to by adding to this object\n });\n};\n'})}),"\n",(0,s.jsx)(n.h2,{id:"webpack-config-single-spa-react",children:"webpack-config-single-spa-react"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.a,{href:"https://github.com/single-spa/create-single-spa/tree/master/packages/webpack-config-single-spa-react",children:"Github project"})}),"\n",(0,s.jsxs)(n.p,{children:["A shareable, customizable webpack config that adds react-specific configuration to ",(0,s.jsx)(n.code,{children:"webpack-config-single-spa"}),"."]}),"\n",(0,s.jsx)(n.h3,{id:"installation-1",children:"Installation"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-sh",children:"npm install --save-dev webpack-config-single-spa-react webpack-merge\n\n# or\nyarn add --dev webpack-config-single-spa-react webpack-merge\n"})}),"\n",(0,s.jsx)(n.h3,{id:"usage-1",children:"Usage"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",children:"const singleSpaDefaults = require('webpack-config-single-spa-react');\nconst webpackMerge = require('webpack-merge');\n\nmodule.exports = (webpackConfigEnv, argv) => {\n const defaultConfig = singleSpaDefaults({\n // The name of the organization this application is written for\n orgName: 'name-of-company',\n // The name of the current project. This usually matches the git repo's name\n projectName: 'name-of-project',\n // See https://webpack.js.org/guides/environment-variables/#root for explanation of webpackConfigEnv\n webpackConfigEnv,\n // The CLI commands in the package.json script that triggered this build\n argv,\n // optional\n // This changes whether package names that start with @your-org-name are\n // treated as webpack externals or not. Defaults to true\n orgPackagesAsExternal: true,\n\n // optional, defaults to 1\n // This is the rootDirectoryLevel that is passed to https://github.com/joeldenning/systemjs-webpack-interop\n rootDirectoryLevel: 1,\n\n // optional, defaults to {}\n // This controls the options given to standalone-single-spa-webpack-plugin\n // See https://github.com/single-spa/standalone-single-spa-webpack-plugin#usage\n standaloneOptions: {},\n });\n\n return merge(defaultConfig, {\n // modify the webpack config however you'd like to by adding to this object\n });\n};\n"})}),"\n",(0,s.jsx)(n.h2,{id:"webpack-config-single-spa-ts",children:"webpack-config-single-spa-ts"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.a,{href:"https://github.com/single-spa/create-single-spa/tree/master/packages/webpack-config-single-spa-ts",children:"Github project"})}),"\n",(0,s.jsxs)(n.p,{children:["A shareable, customizable webpack config that adds typescript-specific configuration to ",(0,s.jsx)(n.code,{children:"webpack-config-single-spa"}),". Note that webpack-config-single-spa-ts has a peerDependency on ",(0,s.jsx)(n.code,{children:"typescript"}),"."]}),"\n",(0,s.jsx)(n.h3,{id:"installation-2",children:"Installation"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-sh",children:"npm install --save-dev webpack-config-single-spa-ts webpack-merge\n\n# or\nyarn add --dev webpack-config-single-spa-ts webpack-merge\n"})}),"\n",(0,s.jsx)(n.h3,{id:"usage-2",children:"Usage"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",children:'const webpackMerge = require("webpack-merge");\nconst singleSpaDefaults = require("webpack-config-single-spa-ts");\n\nmodule.exports = (webpackConfigEnv, argv) => {\n const defaultConfig = singleSpaDefaults({\n // The name of the organization this application is written for\n orgName: "name-of-company",\n // The name of the current project. This usually matches the git repo\'s name\n projectName: "name-of-project",\n // See https://webpack.js.org/guides/environment-variables/#root for explanation of webpackConfigEnv\n webpackConfigEnv,\n // The CLI commands in the package.json script that triggered this build\n argv,\n });\n\n return webpackMerge.smart(defaultConfig, {\n // modify the webpack config however you\'d like to by adding to this object\n });\n};\n'})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",children:'const singleSpaTs = require("webpack-config-single-spa-ts");\n\n// Alternatively, you may modify a webpack config directly\nconst myOtherWebpackConfig = {\n /* ... */\n};\nconst finalConfig = singleSpaDefaults.modifyConfig(myOtherWebpackConfig);\n'})}),"\n",(0,s.jsx)(n.h2,{id:"webpack-config-single-spa-react-ts",children:"webpack-config-single-spa-react-ts"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.a,{href:"https://github.com/single-spa/create-single-spa/tree/master/packages/webpack-config-single-spa-react-ts",children:"Github project"})}),"\n",(0,s.jsx)(n.p,{children:"A shareable, customizable webpack config that creates a webpack config that works with both react and typescript. Note that webpack-config-single-spa-react-ts simply merges the config from webpack-config-single-spa-react with that of webpack-config-single-spa-ts."}),"\n",(0,s.jsx)(n.h3,{id:"installation-3",children:"Installation"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-sh",children:"npm install --save-dev webpack-config-single-spa-react-ts webpack-merge\n\n# or\nyarn add --dev webpack-config-single-spa-react-ts webpack-merge\n"})}),"\n",(0,s.jsx)(n.h3,{id:"usage-3",children:"Usage"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",children:'const webpackMerge = require("webpack-merge");\nconst singleSpaDefaults = require("webpack-config-single-spa-react-ts");\n\nmodule.exports = (webpackConfigEnv, argv) => {\n const defaultConfig = singleSpaDefaults({\n // The name of the organization this application is written for\n orgName: "name-of-company",\n\n // The name of the current project. This usually matches the git repo\'s name\n projectName: "name-of-project",\n\n // optional\n // This changes whether package names that start with @your-org-name are\n // treated as webpack externals or not. Defaults to true\n orgPackagesAsExternal: true,\n\n // See https://webpack.js.org/guides/environment-variables/#root for explanation of webpackConfigEnv\n webpackConfigEnv,\n\n // The CLI commands in the package.json script that triggered this build\n argv,\n\n // optional, defaults to 1\n // This is the rootDirectoryLevel that is passed to https://github.com/joeldenning/systemjs-webpack-interop\n rootDirectoryLevel: 1,\n\n // optional, defaults to false.\n // When true, this removes html-webpack-plugin and standalone-single-spa-webpack-plugin\n disableHtmlGeneration: false,\n });\n\n return webpackMerge.smart(defaultConfig, {\n // modify the webpack config however you\'d like to by adding to this object\n });\n};\n'})}),"\n",(0,s.jsx)(n.h2,{id:"custom-webpack-configuration",children:"Custom Webpack configuration"}),"\n",(0,s.jsxs)(n.p,{children:["Our shared Webpack configs are intended to be extensible to fit the requirements of your applications. These custom config options can be made in each project's ",(0,s.jsx)(n.code,{children:"webpack.config.js"})," file generated by create-single-spa, or used as the basis for a tailored shared config for your organization."]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Use ",(0,s.jsx)(n.code,{children:"require.resolve"})," to reuse loaders that are included as dependencies","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"this is especially useful for reusing any of webpack-config-single-spa-*'s dependencies"}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["webpack-merge ",(0,s.jsx)(n.a,{href:"https://github.com/survivejs/webpack-merge#limitations",children:"does not support merging configs exported as a function"}),", which may be relevant if creating shared config packages. webpack-config-single-spa-* configs require ",(0,s.jsx)(n.code,{children:"webpackConfigEnv"})," and ",(0,s.jsx)(n.code,{children:"argv"})," parameters which necesitates ",(0,s.jsx)(n.a,{href:"https://webpack.js.org/configuration/configuration-types/#exporting-a-function",children:"exporting a config function"})," but return a plain object. This makes it compatible with webpack-merge."]}),"\n",(0,s.jsxs)(n.li,{children:["Use webpack-merge's ",(0,s.jsx)(n.a,{href:"https://github.com/survivejs/webpack-merge#mergewithrules",children:(0,s.jsx)(n.code,{children:"mergeWithRules"})})," function to merge and de-duplicate ",(0,s.jsx)(n.a,{href:"https://webpack.js.org/configuration/module/#modulerules",children:"webpack rules"})]}),"\n"]}),"\n",(0,s.jsx)(n.h4,{id:"example-load-svgs-as-components",children:"Example: load SVGs as components"}),"\n",(0,s.jsxs)(n.p,{children:["You must also install ",(0,s.jsx)(n.a,{href:"https://www.npmjs.com/package/@svgr/webpack",children:"@svgr/webpack"}),"."]}),"\n",(0,s.jsx)(n.admonition,{type:"info",children:(0,s.jsx)(n.p,{children:"Available in webpack-config-single-spa@5.3.0+"})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",children:'const singleSpaDefaults = require("webpack-config-single-spa");\nconst { mergeWithRules } = require("webpack-merge");\n\nconst merge = mergeWithRules({\n module: {\n rules: {\n // replace the entire `rule` if the `test` property matches\n test: "match",\n use: "replace",\n },\n },\n});\n\nmodule.exports = (env, argv) => {\n const defaultConfig = singleSpaDefaults({\n orgName: "abcde",\n projectName: "fghij",\n webpackConfigEnv: env,\n argv,\n });\n\n const config = merge(defaultConfig, {\n module: {\n rules: [\n {\n test: /\\.svg$/i,\n use: [{ loader: "@svgr/webpack" }],\n },\n ],\n },\n });\n\n // console.dir(config, null, 2) // useful for debugging\n return config;\n};\n'})}),"\n",(0,s.jsx)(n.h3,{id:"replacing-plugins",children:"Replacing plugins"}),"\n",(0,s.jsxs)(n.p,{children:["Use webpack-merge's ",(0,s.jsx)(n.a,{href:"https://github.com/survivejs/webpack-merge#mergewithcustomize-customizearray-customizeobject-configuration--configuration",children:(0,s.jsx)(n.code,{children:"mergeWithCustomize"})})," to resolve duplicate plugins or replace instances. Duplicate plugins often result in cryptic errors!"]}),"\n",(0,s.jsxs)(n.p,{children:["When referencing a loader that is installed as a dependency of webpack-config-single-spa, use ",(0,s.jsx)(n.a,{href:"https://nodejs.org/api/modules.html#modules_require_resolve_request_options",children:"require.resolve"})," to ensure its path is resolved correctly."]}),"\n",(0,s.jsx)(n.h4,{id:"example-replace-htmlwebpackplugin-instance",children:"Example: replace HtmlWebpackPlugin instance"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-js",children:'const { mergeWithCustomize, unique } = require("webpack-merge");\nconst singleSpaDefaults = require("webpack-config-single-spa");\nconst HtmlWebpackPlugin = require("html-webpack-plugin");\n\nconst merge = mergeWithCustomize({\n customizeArray: unique(\n "plugins",\n ["HtmlWebpackPlugin"],\n (plugin) => plugin.constructor && plugin.constructor.name,\n ),\n});\n\nmodule.exports = (env, argv) => {\n const orgName = "example";\n const myEnv = process.env.NODE_ENV || "development";\n\n const defaultConfig = singleSpaDefaults({\n orgName,\n projectName: "custom-root-config",\n webpackConfigEnv: env,\n argv,\n });\n\n const config = merge(defaultConfig, {\n plugins: [\n new HtmlWebpackPlugin({\n inject: false,\n template: "src/custom.ejs",\n templateParameters: {\n isLocal: env?.isLocal,\n // additional templateParameters can now be supplied\n orgName,\n environment: myEnv,\n },\n }),\n ],\n });\n\n // console.dir(config, null, 2) // useful for debugging\n return config;\n};\n'})})]})}function g(e={}){const{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(p,{...e})}):p(e)}},8453:(e,n,a)=>{a.d(n,{R:()=>o,x:()=>c});var s=a(6540);const i={},t=s.createContext(i);function o(e){const n=s.useContext(t);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),s.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/runtime~main.7ef0dfe4.js b/assets/js/runtime~main.807b7bb4.js similarity index 99% rename from assets/js/runtime~main.7ef0dfe4.js rename to assets/js/runtime~main.807b7bb4.js index 14e8fb250..713790d09 100644 --- a/assets/js/runtime~main.7ef0dfe4.js +++ b/assets/js/runtime~main.807b7bb4.js @@ -1 +1 @@ -(()=>{"use strict";var e,a,c,f,d={},b={};function r(e){var a=b[e];if(void 0!==a)return a.exports;var c=b[e]={id:e,loaded:!1,exports:{}};return d[e].call(c.exports,c,c.exports,r),c.loaded=!0,c.exports}r.m=d,r.c=b,e=[],r.O=(a,c,f,d)=>{if(!c){var b=1/0;for(i=0;i=d)&&Object.keys(r.O).every((e=>r.O[e](c[o])))?c.splice(o--,1):(t=!1,d0&&e[i-1][2]>d;i--)e[i]=e[i-1];e[i]=[c,f,d]},r.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return r.d(a,{a:a}),a},c=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,f){if(1&f&&(e=this(e)),8&f)return e;if("object"==typeof e&&e){if(4&f&&e.__esModule)return e;if(16&f&&"function"==typeof e.then)return e}var d=Object.create(null);r.r(d);var b={};a=a||[null,c({}),c([]),c(c)];for(var t=2&f&&e;"object"==typeof t&&!~a.indexOf(t);t=c(t))Object.getOwnPropertyNames(t).forEach((a=>b[a]=()=>e[a]));return b.default=()=>e,r.d(d,b),d},r.d=(e,a)=>{for(var c in a)r.o(a,c)&&!r.o(e,c)&&Object.defineProperty(e,c,{enumerable:!0,get:a[c]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((a,c)=>(r.f[c](e,a),a)),[])),r.u=e=>"assets/js/"+({88:"cae0f04b",189:"3031e46b",220:"40951796",350:"9eb9fa54",373:"3ab9445b",446:"daa69925",467:"572e4edf",515:"1b186f64",569:"015816e2",667:"e4355444",806:"798c9bc2",1124:"ac1a782b",1295:"dc2cd7e2",1355:"7a54a545",1401:"a4df4865",1458:"01a1bba5",1529:"0abd59c6",1532:"caa2e070",1566:"2431ba31",1628:"0df1a66c",1666:"cdaae041",1834:"3827c3c6",1991:"b2b675dd",2043:"ce6e696b",2051:"e6baa823",2099:"b7efbaa4",2107:"cc32fbde",2138:"1a4e3797",2142:"076c147e",2288:"ef491088",2317:"ca5d36aa",2364:"f89f17ac",2546:"d3dd1f61",2570:"dce7fd61",2571:"9c153eaa",2590:"850be153",2594:"e076d91c",2598:"a5852e81",2634:"c4f5d8e4",2669:"5509b76f",2711:"9e4087bc",2723:"9d672d00",2729:"696a01cf",2862:"d7647bb5",2879:"5c035ad5",2950:"5b8adf66",3079:"ab6201ac",3249:"ccc49370",3314:"67152cfe",3315:"bdd8dcaf",3328:"decfdbba",3447:"ec93dc32",3513:"b2f554cd",3529:"3a7fefd0",3570:"cc73ed51",3737:"a1c1515a",3811:"f91e79c8",3893:"7bb2f638",4043:"b025bb67",4050:"c41acfd1",4060:"e628667e",4067:"02af63f8",4095:"5e12ca1d",4199:"4f0789b6",4279:"528602c4",4343:"91e4d5ec",4370:"6cb48572",4445:"55102a22",4462:"9afda0ee",4498:"d6377ff4",4510:"76852a88",4570:"e6bcd470",4622:"7bb7102b",4732:"9d6f1d6a",4748:"bfcd17f4",4833:"69e6e3bb",4860:"e8db9b6a",4894:"80697847",5011:"017c7e36",5036:"4a6c08fa",5220:"99cd0956",5229:"fcc2aa60",5234:"e85cb86b",5281:"feb0df8a",5354:"0ae76a47",5391:"e84c24e5",5438:"42f9def7",5443:"561a3eb1",5450:"1dc3c8d9",5455:"0f85c961",5477:"420a4aff",5584:"a9668f36",5603:"93e8f896",5604:"075c7a17",5660:"38eb30df",5742:"c377a04b",5767:"8eb4e46b",5771:"6588f8a2",5807:"6c11b4de",5822:"d1104007",5840:"46c309cc",5878:"8c472a46",5894:"0a789486",6022:"2cd23ac7",6081:"78e9b454",6084:"1943dfb2",6095:"ae4abcdb",6101:"29aa1e09",6178:"8a734aad",6214:"b9edb02a",6226:"c867fe7c",6255:"5896a7ea",6349:"5118ee85",6451:"f57aa09c",6516:"a4cef419",6560:"08c25933",6564:"90e0a41c",6628:"f3344494",6664:"e74a79a5",6780:"940fc73a",6805:"98ffbda8",6887:"2e5fe557",6909:"823b648e",7011:"fcfac0f1",7030:"a57ccd44",7036:"e5846443",7077:"f539466a",7098:"a7bd4aaa",7137:"fa29c2d5",7153:"b5351572",7196:"d549428a",7265:"dcc53905",7291:"8f8ee7f5",7380:"ff185f4e",7472:"814f3328",7487:"50fa5667",7497:"ee4f9438",7512:"ac0c4088",7539:"2aac956c",7541:"0b8ff5c4",7586:"fe4bf730",7635:"8ac9c664",7643:"a6aa9e1f",7690:"2e1d0e00",7727:"9efeee7f",7733:"0f572e6e",7745:"1b9bd3d9",7764:"c09e1667",7785:"3082ef22",8055:"9093cedc",8333:"d61e08fd",8401:"17896441",8406:"68a4a0c2",8423:"ee76fcac",8429:"3c561f1c",8528:"edba9c72",8550:"88ab1274",8564:"7a77816f",8581:"935f2afb",8602:"a998b65c",8775:"a9afa101",8819:"b3bcde3d",8849:"d488f8a7",8853:"dc7b4688",9005:"fad948d0",9048:"a94703ab",9126:"5c27e93c",9146:"a97faf63",9153:"febdff58",9268:"a6e5e601",9433:"96f9dd39",9509:"85376e8b",9531:"e469ac48",9647:"5e95c892",9695:"674fa9c4",9801:"8999baf8",9903:"8bb54e26",9942:"377636fe"}[e]||e)+"."+{88:"302b823c",189:"5670f042",220:"e015c861",350:"05b0afa8",373:"a7c97221",416:"b444750d",446:"26af9240",467:"59a8d603",515:"b8b6f6fd",569:"bac7eadf",667:"21ae6e4a",806:"77f68c98",1124:"eae9d71c",1295:"e89f6c2a",1333:"f2fdbb0a",1355:"9b35ba76",1401:"82b8988f",1458:"9de61a65",1529:"38be1e8f",1532:"bc0c013c",1566:"420d4c87",1628:"f727a3da",1666:"4d438b77",1834:"9cbe8bc3",1991:"aaa694c2",2043:"a622a8e5",2051:"54712561",2099:"34fca0f5",2107:"4055c590",2138:"c77e0835",2142:"540f8134",2237:"142894c1",2288:"0083847e",2317:"409281c7",2364:"bb9166d2",2546:"5da15dd0",2570:"7755820c",2571:"76ecf634",2590:"9b366fef",2594:"dad62b1c",2598:"1cb08ad6",2634:"de6a2a2b",2669:"71fc14d2",2711:"97405554",2723:"4011f9b6",2729:"dcc743d4",2862:"3bd13d47",2879:"ba191d37",2950:"740d8833",3079:"3ed595a7",3249:"50862a89",3314:"85cb824b",3315:"754c87d5",3328:"b2cbabe6",3447:"dfcd9ea9",3513:"57e4507a",3529:"cf8148cb",3570:"8c5f1ddf",3737:"8879917f",3811:"e78ed917",3893:"a6917463",4043:"dec3b70f",4050:"3b8ea987",4060:"e5230aa0",4067:"4594a98f",4095:"ab505c43",4199:"8232b41c",4279:"bb6df4ef",4343:"b9111d9c",4370:"59d71911",4445:"5d58e1db",4462:"2539e8a4",4498:"e5513459",4510:"6f2f3bc4",4570:"e81456df",4622:"e6a1e618",4732:"5c3b5e5b",4748:"3081e5db",4833:"36673e20",4860:"36bc2cb7",4894:"1dfb400e",5011:"c76a7393",5036:"1c0d196e",5220:"5a9194cc",5229:"77000c5c",5234:"56db7a0d",5281:"f01423cd",5354:"715dffee",5391:"15e65363",5438:"5f40b003",5443:"a321f3db",5450:"58bc5ed3",5455:"6f86e938",5477:"3c6518a2",5584:"72a96050",5603:"2d67edf6",5604:"17f0ee5e",5660:"00c75b5b",5742:"2d8ebb25",5767:"ccc9aafd",5771:"1746c76c",5807:"4e8bd98a",5822:"7c9607a5",5840:"aa74f28f",5878:"111bcb41",5894:"e62e73b7",6022:"cf954b65",6081:"61c20e9e",6084:"35313978",6095:"166c5f89",6101:"c57f85b3",6178:"a5ac8c27",6214:"60c2637a",6226:"7348ee67",6255:"2e886f86",6349:"75add21e",6451:"3e59e506",6516:"52815850",6560:"bc5c0b94",6564:"80a1d33d",6628:"a5f4ab2d",6664:"2cd9c045",6780:"aea705d4",6805:"06e1d742",6887:"0c1ee0f3",6909:"33513b02",7011:"bd90c8c2",7030:"90090bc6",7036:"b6b23426",7077:"64c97f52",7098:"0086a292",7137:"3df033ae",7153:"84a54bfa",7196:"bcd887d9",7265:"cd4bf74b",7291:"9d9b2e33",7380:"4918a68c",7472:"e1672d5c",7487:"efd89bce",7497:"41f437e3",7512:"05ad754a",7539:"3a617416",7541:"f15eed1b",7586:"61038917",7635:"70a8ae2b",7643:"773e115b",7690:"a143c35f",7727:"519666b9",7733:"0da0fc72",7745:"2484414b",7764:"85b10151",7785:"9d9061f0",8055:"69d8ccc9",8333:"f59ea560",8401:"662bd1ed",8406:"f5c01c0d",8423:"f8dc7e98",8429:"00e45382",8528:"a3b0b85e",8544:"151d5254",8550:"5e9df2c9",8564:"b1352cda",8581:"01fb47d4",8602:"437e4280",8775:"03960ff1",8819:"1079ba07",8849:"827e3222",8853:"5317364b",8913:"b6f04e6e",9005:"2379ab99",9048:"6b9d296d",9126:"1e0e84c4",9146:"496730f9",9153:"f973f826",9268:"ea7806ff",9433:"9ec96a47",9462:"5f105120",9509:"2f42710f",9531:"66eca5d4",9647:"d4a2a90d",9695:"46bdaa28",9801:"cac8d9d2",9903:"29c41124",9942:"c4f03700"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),f={},r.l=(e,a,c,d)=>{if(f[e])f[e].push(a);else{var b,t;if(void 0!==c)for(var o=document.getElementsByTagName("script"),n=0;n{b.onerror=b.onload=null,clearTimeout(u);var d=f[e];if(delete f[e],b.parentNode&&b.parentNode.removeChild(b),d&&d.forEach((e=>e(c))),a)return a(c)},u=setTimeout(l.bind(null,void 0,{type:"timeout",target:b}),12e4);b.onerror=l.bind(null,b.onerror),b.onload=l.bind(null,b.onload),t&&document.head.appendChild(b)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="/",r.gca=function(e){return e={17896441:"8401",40951796:"220",80697847:"4894",cae0f04b:"88","3031e46b":"189","9eb9fa54":"350","3ab9445b":"373",daa69925:"446","572e4edf":"467","1b186f64":"515","015816e2":"569",e4355444:"667","798c9bc2":"806",ac1a782b:"1124",dc2cd7e2:"1295","7a54a545":"1355",a4df4865:"1401","01a1bba5":"1458","0abd59c6":"1529",caa2e070:"1532","2431ba31":"1566","0df1a66c":"1628",cdaae041:"1666","3827c3c6":"1834",b2b675dd:"1991",ce6e696b:"2043",e6baa823:"2051",b7efbaa4:"2099",cc32fbde:"2107","1a4e3797":"2138","076c147e":"2142",ef491088:"2288",ca5d36aa:"2317",f89f17ac:"2364",d3dd1f61:"2546",dce7fd61:"2570","9c153eaa":"2571","850be153":"2590",e076d91c:"2594",a5852e81:"2598",c4f5d8e4:"2634","5509b76f":"2669","9e4087bc":"2711","9d672d00":"2723","696a01cf":"2729",d7647bb5:"2862","5c035ad5":"2879","5b8adf66":"2950",ab6201ac:"3079",ccc49370:"3249","67152cfe":"3314",bdd8dcaf:"3315",decfdbba:"3328",ec93dc32:"3447",b2f554cd:"3513","3a7fefd0":"3529",cc73ed51:"3570",a1c1515a:"3737",f91e79c8:"3811","7bb2f638":"3893",b025bb67:"4043",c41acfd1:"4050",e628667e:"4060","02af63f8":"4067","5e12ca1d":"4095","4f0789b6":"4199","528602c4":"4279","91e4d5ec":"4343","6cb48572":"4370","55102a22":"4445","9afda0ee":"4462",d6377ff4:"4498","76852a88":"4510",e6bcd470:"4570","7bb7102b":"4622","9d6f1d6a":"4732",bfcd17f4:"4748","69e6e3bb":"4833",e8db9b6a:"4860","017c7e36":"5011","4a6c08fa":"5036","99cd0956":"5220",fcc2aa60:"5229",e85cb86b:"5234",feb0df8a:"5281","0ae76a47":"5354",e84c24e5:"5391","42f9def7":"5438","561a3eb1":"5443","1dc3c8d9":"5450","0f85c961":"5455","420a4aff":"5477",a9668f36:"5584","93e8f896":"5603","075c7a17":"5604","38eb30df":"5660",c377a04b:"5742","8eb4e46b":"5767","6588f8a2":"5771","6c11b4de":"5807",d1104007:"5822","46c309cc":"5840","8c472a46":"5878","0a789486":"5894","2cd23ac7":"6022","78e9b454":"6081","1943dfb2":"6084",ae4abcdb:"6095","29aa1e09":"6101","8a734aad":"6178",b9edb02a:"6214",c867fe7c:"6226","5896a7ea":"6255","5118ee85":"6349",f57aa09c:"6451",a4cef419:"6516","08c25933":"6560","90e0a41c":"6564",f3344494:"6628",e74a79a5:"6664","940fc73a":"6780","98ffbda8":"6805","2e5fe557":"6887","823b648e":"6909",fcfac0f1:"7011",a57ccd44:"7030",e5846443:"7036",f539466a:"7077",a7bd4aaa:"7098",fa29c2d5:"7137",b5351572:"7153",d549428a:"7196",dcc53905:"7265","8f8ee7f5":"7291",ff185f4e:"7380","814f3328":"7472","50fa5667":"7487",ee4f9438:"7497",ac0c4088:"7512","2aac956c":"7539","0b8ff5c4":"7541",fe4bf730:"7586","8ac9c664":"7635",a6aa9e1f:"7643","2e1d0e00":"7690","9efeee7f":"7727","0f572e6e":"7733","1b9bd3d9":"7745",c09e1667:"7764","3082ef22":"7785","9093cedc":"8055",d61e08fd:"8333","68a4a0c2":"8406",ee76fcac:"8423","3c561f1c":"8429",edba9c72:"8528","88ab1274":"8550","7a77816f":"8564","935f2afb":"8581",a998b65c:"8602",a9afa101:"8775",b3bcde3d:"8819",d488f8a7:"8849",dc7b4688:"8853",fad948d0:"9005",a94703ab:"9048","5c27e93c":"9126",a97faf63:"9146",febdff58:"9153",a6e5e601:"9268","96f9dd39":"9433","85376e8b":"9509",e469ac48:"9531","5e95c892":"9647","674fa9c4":"9695","8999baf8":"9801","8bb54e26":"9903","377636fe":"9942"}[e]||e,r.p+r.u(e)},(()=>{var e={2973:0,1869:0};r.f.j=(a,c)=>{var f=r.o(e,a)?e[a]:void 0;if(0!==f)if(f)c.push(f[2]);else if(/^(1869|2973)$/.test(a))e[a]=0;else{var d=new Promise(((c,d)=>f=e[a]=[c,d]));c.push(f[2]=d);var b=r.p+r.u(a),t=new Error;r.l(b,(c=>{if(r.o(e,a)&&(0!==(f=e[a])&&(e[a]=void 0),f)){var d=c&&("load"===c.type?"missing":c.type),b=c&&c.target&&c.target.src;t.message="Loading chunk "+a+" failed.\n("+d+": "+b+")",t.name="ChunkLoadError",t.type=d,t.request=b,f[1](t)}}),"chunk-"+a,a)}},r.O.j=a=>0===e[a];var a=(a,c)=>{var f,d,b=c[0],t=c[1],o=c[2],n=0;if(b.some((a=>0!==e[a]))){for(f in t)r.o(t,f)&&(r.m[f]=t[f]);if(o)var i=o(r)}for(a&&a(c);n{"use strict";var e,a,c,f,d={},b={};function r(e){var a=b[e];if(void 0!==a)return a.exports;var c=b[e]={id:e,loaded:!1,exports:{}};return d[e].call(c.exports,c,c.exports,r),c.loaded=!0,c.exports}r.m=d,r.c=b,e=[],r.O=(a,c,f,d)=>{if(!c){var b=1/0;for(i=0;i=d)&&Object.keys(r.O).every((e=>r.O[e](c[o])))?c.splice(o--,1):(t=!1,d0&&e[i-1][2]>d;i--)e[i]=e[i-1];e[i]=[c,f,d]},r.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return r.d(a,{a:a}),a},c=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,f){if(1&f&&(e=this(e)),8&f)return e;if("object"==typeof e&&e){if(4&f&&e.__esModule)return e;if(16&f&&"function"==typeof e.then)return e}var d=Object.create(null);r.r(d);var b={};a=a||[null,c({}),c([]),c(c)];for(var t=2&f&&e;"object"==typeof t&&!~a.indexOf(t);t=c(t))Object.getOwnPropertyNames(t).forEach((a=>b[a]=()=>e[a]));return b.default=()=>e,r.d(d,b),d},r.d=(e,a)=>{for(var c in a)r.o(a,c)&&!r.o(e,c)&&Object.defineProperty(e,c,{enumerable:!0,get:a[c]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((a,c)=>(r.f[c](e,a),a)),[])),r.u=e=>"assets/js/"+({88:"cae0f04b",189:"3031e46b",220:"40951796",350:"9eb9fa54",373:"3ab9445b",446:"daa69925",467:"572e4edf",515:"1b186f64",569:"015816e2",667:"e4355444",806:"798c9bc2",1124:"ac1a782b",1295:"dc2cd7e2",1355:"7a54a545",1401:"a4df4865",1458:"01a1bba5",1529:"0abd59c6",1532:"caa2e070",1566:"2431ba31",1628:"0df1a66c",1666:"cdaae041",1834:"3827c3c6",1991:"b2b675dd",2043:"ce6e696b",2051:"e6baa823",2099:"b7efbaa4",2107:"cc32fbde",2138:"1a4e3797",2142:"076c147e",2288:"ef491088",2317:"ca5d36aa",2364:"f89f17ac",2546:"d3dd1f61",2570:"dce7fd61",2571:"9c153eaa",2590:"850be153",2594:"e076d91c",2598:"a5852e81",2634:"c4f5d8e4",2669:"5509b76f",2711:"9e4087bc",2723:"9d672d00",2729:"696a01cf",2862:"d7647bb5",2879:"5c035ad5",2950:"5b8adf66",3079:"ab6201ac",3249:"ccc49370",3314:"67152cfe",3315:"bdd8dcaf",3328:"decfdbba",3447:"ec93dc32",3513:"b2f554cd",3529:"3a7fefd0",3570:"cc73ed51",3737:"a1c1515a",3811:"f91e79c8",3893:"7bb2f638",4043:"b025bb67",4050:"c41acfd1",4060:"e628667e",4067:"02af63f8",4095:"5e12ca1d",4199:"4f0789b6",4279:"528602c4",4343:"91e4d5ec",4370:"6cb48572",4445:"55102a22",4462:"9afda0ee",4498:"d6377ff4",4510:"76852a88",4570:"e6bcd470",4622:"7bb7102b",4732:"9d6f1d6a",4748:"bfcd17f4",4833:"69e6e3bb",4860:"e8db9b6a",4894:"80697847",5011:"017c7e36",5036:"4a6c08fa",5220:"99cd0956",5229:"fcc2aa60",5234:"e85cb86b",5281:"feb0df8a",5354:"0ae76a47",5391:"e84c24e5",5438:"42f9def7",5443:"561a3eb1",5450:"1dc3c8d9",5455:"0f85c961",5477:"420a4aff",5584:"a9668f36",5603:"93e8f896",5604:"075c7a17",5660:"38eb30df",5742:"c377a04b",5767:"8eb4e46b",5771:"6588f8a2",5807:"6c11b4de",5822:"d1104007",5840:"46c309cc",5878:"8c472a46",5894:"0a789486",6022:"2cd23ac7",6081:"78e9b454",6084:"1943dfb2",6095:"ae4abcdb",6101:"29aa1e09",6178:"8a734aad",6214:"b9edb02a",6226:"c867fe7c",6255:"5896a7ea",6349:"5118ee85",6451:"f57aa09c",6516:"a4cef419",6560:"08c25933",6564:"90e0a41c",6628:"f3344494",6664:"e74a79a5",6780:"940fc73a",6805:"98ffbda8",6887:"2e5fe557",6909:"823b648e",7011:"fcfac0f1",7030:"a57ccd44",7036:"e5846443",7077:"f539466a",7098:"a7bd4aaa",7137:"fa29c2d5",7153:"b5351572",7196:"d549428a",7265:"dcc53905",7291:"8f8ee7f5",7380:"ff185f4e",7472:"814f3328",7487:"50fa5667",7497:"ee4f9438",7512:"ac0c4088",7539:"2aac956c",7541:"0b8ff5c4",7586:"fe4bf730",7635:"8ac9c664",7643:"a6aa9e1f",7690:"2e1d0e00",7727:"9efeee7f",7733:"0f572e6e",7745:"1b9bd3d9",7764:"c09e1667",7785:"3082ef22",8055:"9093cedc",8333:"d61e08fd",8401:"17896441",8406:"68a4a0c2",8423:"ee76fcac",8429:"3c561f1c",8528:"edba9c72",8550:"88ab1274",8564:"7a77816f",8581:"935f2afb",8602:"a998b65c",8775:"a9afa101",8819:"b3bcde3d",8849:"d488f8a7",8853:"dc7b4688",9005:"fad948d0",9048:"a94703ab",9126:"5c27e93c",9146:"a97faf63",9153:"febdff58",9268:"a6e5e601",9433:"96f9dd39",9509:"85376e8b",9531:"e469ac48",9647:"5e95c892",9695:"674fa9c4",9801:"8999baf8",9903:"8bb54e26",9942:"377636fe"}[e]||e)+"."+{88:"302b823c",189:"5670f042",220:"e015c861",350:"05b0afa8",373:"a7c97221",416:"b444750d",446:"26af9240",467:"59a8d603",515:"b8b6f6fd",569:"bac7eadf",667:"21ae6e4a",806:"77f68c98",1124:"eae9d71c",1295:"e89f6c2a",1333:"f2fdbb0a",1355:"9b35ba76",1401:"82b8988f",1458:"9de61a65",1529:"38be1e8f",1532:"bc0c013c",1566:"420d4c87",1628:"f727a3da",1666:"4d438b77",1834:"9cbe8bc3",1991:"aaa694c2",2043:"a622a8e5",2051:"54712561",2099:"34fca0f5",2107:"4055c590",2138:"c77e0835",2142:"540f8134",2237:"142894c1",2288:"0083847e",2317:"409281c7",2364:"bb9166d2",2546:"5da15dd0",2570:"7755820c",2571:"76ecf634",2590:"9b366fef",2594:"dad62b1c",2598:"1cb08ad6",2634:"de6a2a2b",2669:"71fc14d2",2711:"97405554",2723:"4011f9b6",2729:"dcc743d4",2862:"3bd13d47",2879:"ba191d37",2950:"740d8833",3079:"3ed595a7",3249:"50862a89",3314:"85cb824b",3315:"754c87d5",3328:"b2cbabe6",3447:"dfcd9ea9",3513:"57e4507a",3529:"cf8148cb",3570:"8c5f1ddf",3737:"8879917f",3811:"e78ed917",3893:"a6917463",4043:"dec3b70f",4050:"3b8ea987",4060:"e5230aa0",4067:"4594a98f",4095:"ab505c43",4199:"8232b41c",4279:"bb6df4ef",4343:"b9111d9c",4370:"59d71911",4445:"5d58e1db",4462:"2539e8a4",4498:"e5513459",4510:"6f2f3bc4",4570:"e81456df",4622:"e6a1e618",4732:"5c3b5e5b",4748:"3081e5db",4833:"36673e20",4860:"36bc2cb7",4894:"1dfb400e",5011:"c76a7393",5036:"1c0d196e",5220:"5a9194cc",5229:"77000c5c",5234:"56db7a0d",5281:"f01423cd",5354:"715dffee",5391:"15e65363",5438:"5f40b003",5443:"a321f3db",5450:"58bc5ed3",5455:"6f86e938",5477:"3c6518a2",5584:"72a96050",5603:"2d67edf6",5604:"17f0ee5e",5660:"00c75b5b",5742:"2d8ebb25",5767:"ccc9aafd",5771:"1746c76c",5807:"4e8bd98a",5822:"7c9607a5",5840:"aa74f28f",5878:"111bcb41",5894:"e62e73b7",6022:"cf954b65",6081:"61c20e9e",6084:"35313978",6095:"166c5f89",6101:"c57f85b3",6178:"a5ac8c27",6214:"60c2637a",6226:"7348ee67",6255:"2e886f86",6349:"75add21e",6451:"3e59e506",6516:"52815850",6560:"bc5c0b94",6564:"80a1d33d",6628:"a5f4ab2d",6664:"2cd9c045",6780:"aea705d4",6805:"06e1d742",6887:"0c1ee0f3",6909:"33513b02",7011:"bd90c8c2",7030:"90090bc6",7036:"e129337c",7077:"64c97f52",7098:"0086a292",7137:"3df033ae",7153:"84a54bfa",7196:"bcd887d9",7265:"cd4bf74b",7291:"9d9b2e33",7380:"4918a68c",7472:"e1672d5c",7487:"efd89bce",7497:"41f437e3",7512:"05ad754a",7539:"3a617416",7541:"f15eed1b",7586:"61038917",7635:"70a8ae2b",7643:"773e115b",7690:"a143c35f",7727:"519666b9",7733:"0da0fc72",7745:"2484414b",7764:"85b10151",7785:"9d9061f0",8055:"69d8ccc9",8333:"f59ea560",8401:"662bd1ed",8406:"f5c01c0d",8423:"f8dc7e98",8429:"00e45382",8528:"a3b0b85e",8544:"151d5254",8550:"5e9df2c9",8564:"b1352cda",8581:"01fb47d4",8602:"437e4280",8775:"03960ff1",8819:"1079ba07",8849:"827e3222",8853:"5317364b",8913:"b6f04e6e",9005:"2379ab99",9048:"6b9d296d",9126:"1e0e84c4",9146:"496730f9",9153:"f973f826",9268:"ea7806ff",9433:"9ec96a47",9462:"5f105120",9509:"2f42710f",9531:"66eca5d4",9647:"d4a2a90d",9695:"46bdaa28",9801:"cac8d9d2",9903:"29c41124",9942:"c4f03700"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),f={},r.l=(e,a,c,d)=>{if(f[e])f[e].push(a);else{var b,t;if(void 0!==c)for(var o=document.getElementsByTagName("script"),n=0;n{b.onerror=b.onload=null,clearTimeout(u);var d=f[e];if(delete f[e],b.parentNode&&b.parentNode.removeChild(b),d&&d.forEach((e=>e(c))),a)return a(c)},u=setTimeout(l.bind(null,void 0,{type:"timeout",target:b}),12e4);b.onerror=l.bind(null,b.onerror),b.onload=l.bind(null,b.onload),t&&document.head.appendChild(b)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="/",r.gca=function(e){return e={17896441:"8401",40951796:"220",80697847:"4894",cae0f04b:"88","3031e46b":"189","9eb9fa54":"350","3ab9445b":"373",daa69925:"446","572e4edf":"467","1b186f64":"515","015816e2":"569",e4355444:"667","798c9bc2":"806",ac1a782b:"1124",dc2cd7e2:"1295","7a54a545":"1355",a4df4865:"1401","01a1bba5":"1458","0abd59c6":"1529",caa2e070:"1532","2431ba31":"1566","0df1a66c":"1628",cdaae041:"1666","3827c3c6":"1834",b2b675dd:"1991",ce6e696b:"2043",e6baa823:"2051",b7efbaa4:"2099",cc32fbde:"2107","1a4e3797":"2138","076c147e":"2142",ef491088:"2288",ca5d36aa:"2317",f89f17ac:"2364",d3dd1f61:"2546",dce7fd61:"2570","9c153eaa":"2571","850be153":"2590",e076d91c:"2594",a5852e81:"2598",c4f5d8e4:"2634","5509b76f":"2669","9e4087bc":"2711","9d672d00":"2723","696a01cf":"2729",d7647bb5:"2862","5c035ad5":"2879","5b8adf66":"2950",ab6201ac:"3079",ccc49370:"3249","67152cfe":"3314",bdd8dcaf:"3315",decfdbba:"3328",ec93dc32:"3447",b2f554cd:"3513","3a7fefd0":"3529",cc73ed51:"3570",a1c1515a:"3737",f91e79c8:"3811","7bb2f638":"3893",b025bb67:"4043",c41acfd1:"4050",e628667e:"4060","02af63f8":"4067","5e12ca1d":"4095","4f0789b6":"4199","528602c4":"4279","91e4d5ec":"4343","6cb48572":"4370","55102a22":"4445","9afda0ee":"4462",d6377ff4:"4498","76852a88":"4510",e6bcd470:"4570","7bb7102b":"4622","9d6f1d6a":"4732",bfcd17f4:"4748","69e6e3bb":"4833",e8db9b6a:"4860","017c7e36":"5011","4a6c08fa":"5036","99cd0956":"5220",fcc2aa60:"5229",e85cb86b:"5234",feb0df8a:"5281","0ae76a47":"5354",e84c24e5:"5391","42f9def7":"5438","561a3eb1":"5443","1dc3c8d9":"5450","0f85c961":"5455","420a4aff":"5477",a9668f36:"5584","93e8f896":"5603","075c7a17":"5604","38eb30df":"5660",c377a04b:"5742","8eb4e46b":"5767","6588f8a2":"5771","6c11b4de":"5807",d1104007:"5822","46c309cc":"5840","8c472a46":"5878","0a789486":"5894","2cd23ac7":"6022","78e9b454":"6081","1943dfb2":"6084",ae4abcdb:"6095","29aa1e09":"6101","8a734aad":"6178",b9edb02a:"6214",c867fe7c:"6226","5896a7ea":"6255","5118ee85":"6349",f57aa09c:"6451",a4cef419:"6516","08c25933":"6560","90e0a41c":"6564",f3344494:"6628",e74a79a5:"6664","940fc73a":"6780","98ffbda8":"6805","2e5fe557":"6887","823b648e":"6909",fcfac0f1:"7011",a57ccd44:"7030",e5846443:"7036",f539466a:"7077",a7bd4aaa:"7098",fa29c2d5:"7137",b5351572:"7153",d549428a:"7196",dcc53905:"7265","8f8ee7f5":"7291",ff185f4e:"7380","814f3328":"7472","50fa5667":"7487",ee4f9438:"7497",ac0c4088:"7512","2aac956c":"7539","0b8ff5c4":"7541",fe4bf730:"7586","8ac9c664":"7635",a6aa9e1f:"7643","2e1d0e00":"7690","9efeee7f":"7727","0f572e6e":"7733","1b9bd3d9":"7745",c09e1667:"7764","3082ef22":"7785","9093cedc":"8055",d61e08fd:"8333","68a4a0c2":"8406",ee76fcac:"8423","3c561f1c":"8429",edba9c72:"8528","88ab1274":"8550","7a77816f":"8564","935f2afb":"8581",a998b65c:"8602",a9afa101:"8775",b3bcde3d:"8819",d488f8a7:"8849",dc7b4688:"8853",fad948d0:"9005",a94703ab:"9048","5c27e93c":"9126",a97faf63:"9146",febdff58:"9153",a6e5e601:"9268","96f9dd39":"9433","85376e8b":"9509",e469ac48:"9531","5e95c892":"9647","674fa9c4":"9695","8999baf8":"9801","8bb54e26":"9903","377636fe":"9942"}[e]||e,r.p+r.u(e)},(()=>{var e={2973:0,1869:0};r.f.j=(a,c)=>{var f=r.o(e,a)?e[a]:void 0;if(0!==f)if(f)c.push(f[2]);else if(/^(1869|2973)$/.test(a))e[a]=0;else{var d=new Promise(((c,d)=>f=e[a]=[c,d]));c.push(f[2]=d);var b=r.p+r.u(a),t=new Error;r.l(b,(c=>{if(r.o(e,a)&&(0!==(f=e[a])&&(e[a]=void 0),f)){var d=c&&("load"===c.type?"missing":c.type),b=c&&c.target&&c.target.src;t.message="Loading chunk "+a+" failed.\n("+d+": "+b+")",t.name="ChunkLoadError",t.type=d,t.request=b,f[1](t)}}),"chunk-"+a,a)}},r.O.j=a=>0===e[a];var a=(a,c)=>{var f,d,b=c[0],t=c[1],o=c[2],n=0;if(b.some((a=>0!==e[a]))){for(f in t)r.o(t,f)&&(r.m[f]=t[f]);if(o)var i=o(r)}for(a&&a(c);n