diff --git a/404.html b/404.html index 3317f07..95da576 100644 --- a/404.html +++ b/404.html @@ -5,8 +5,8 @@ Page Not Found | Developer Experience Tips - - + +
Skip to main content

Page Not Found

We could not find what you were looking for.

Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

diff --git a/assets/js/2ff6d7cf.2e78f726.js b/assets/js/2ff6d7cf.79474f38.js similarity index 96% rename from assets/js/2ff6d7cf.2e78f726.js rename to assets/js/2ff6d7cf.79474f38.js index a0d9df9..4bc9c38 100644 --- a/assets/js/2ff6d7cf.2e78f726.js +++ b/assets/js/2ff6d7cf.79474f38.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocusaurus_classic_typescript=self.webpackChunkdocusaurus_classic_typescript||[]).push([[267],{6977:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>r,contentTitle:()=>o,default:()=>u,frontMatter:()=>i,metadata:()=>l,toc:()=>c});var s=n(5893),a=n(1151);const i={slug:"initial-release",title:"test-changelog",authors:["levitt"],tags:["oml","vscode"]},o=void 0,l={permalink:"/dx-tips/changelog/initial-release",editUrl:"https://github.com/pogi7/dx-tips/tree/main/changelog/test-changelog/index.md",source:"@site/changelog/test-changelog/index.md",title:"test-changelog",description:"Test",date:"2024-05-02T05:32:55.000Z",formattedDate:"May 2, 2024",tags:[{label:"oml",permalink:"/dx-tips/changelog/tags/oml"},{label:"vscode",permalink:"/dx-tips/changelog/tags/vscode"}],readingTime:.06,hasTruncateMarker:!1,authors:[{name:"Aaron Levitt",title:"Software Systems Engineer @ NASA JPL",url:"https://www.opencaesar.io/contributors/Aaron%20Levitt.html",imageURL:"https://www.opencaesar.io/assets/img/aaron.jpeg",key:"levitt"}],frontMatter:{slug:"initial-release",title:"test-changelog",authors:["levitt"],tags:["oml","vscode"]},unlisted:!1},r={authorsImageUrls:[void 0]},c=[{value:"Test",id:"test",level:2},{value:"Added",id:"added",level:3}];function d(e){const t={h2:"h2",h3:"h3",li:"li",ul:"ul",...(0,a.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h2,{id:"test",children:"Test"}),"\n",(0,s.jsx)(t.h3,{id:"added",children:"Added"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"Initial release"}),"\n"]})]})}function u(e={}){const{wrapper:t}={...(0,a.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>l,a:()=>o});var s=n(7294);const a={},i=s.createContext(a);function o(e){const t=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:o(e.components),s.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocusaurus_classic_typescript=self.webpackChunkdocusaurus_classic_typescript||[]).push([[267],{6977:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>r,contentTitle:()=>o,default:()=>u,frontMatter:()=>i,metadata:()=>l,toc:()=>c});var s=n(5893),a=n(1151);const i={slug:"initial-release",title:"test-changelog",authors:["levitt"],tags:["oml","vscode"]},o=void 0,l={permalink:"/dx-tips/changelog/initial-release",editUrl:"https://github.com/pogi7/dx-tips/tree/main/changelog/test-changelog/index.md",source:"@site/changelog/test-changelog/index.md",title:"test-changelog",description:"Test",date:"2024-05-02T06:08:37.000Z",formattedDate:"May 2, 2024",tags:[{label:"oml",permalink:"/dx-tips/changelog/tags/oml"},{label:"vscode",permalink:"/dx-tips/changelog/tags/vscode"}],readingTime:.06,hasTruncateMarker:!1,authors:[{name:"Aaron Levitt",title:"Software Systems Engineer @ NASA JPL",url:"https://www.opencaesar.io/contributors/Aaron%20Levitt.html",imageURL:"https://www.opencaesar.io/assets/img/aaron.jpeg",key:"levitt"}],frontMatter:{slug:"initial-release",title:"test-changelog",authors:["levitt"],tags:["oml","vscode"]},unlisted:!1},r={authorsImageUrls:[void 0]},c=[{value:"Test",id:"test",level:2},{value:"Added",id:"added",level:3}];function d(e){const t={h2:"h2",h3:"h3",li:"li",ul:"ul",...(0,a.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h2,{id:"test",children:"Test"}),"\n",(0,s.jsx)(t.h3,{id:"added",children:"Added"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"Initial release"}),"\n"]})]})}function u(e={}){const{wrapper:t}={...(0,a.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>l,a:()=>o});var s=n(7294);const a={},i=s.createContext(a);function o(e){const t=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:o(e.components),s.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/48b79c08.16646ce4.js b/assets/js/48b79c08.16646ce4.js new file mode 100644 index 0000000..6c22824 --- /dev/null +++ b/assets/js/48b79c08.16646ce4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocusaurus_classic_typescript=self.webpackChunkdocusaurus_classic_typescript||[]).push([[572],{9286:(e,a,n)=>{n.r(a),n.d(a,{assets:()=>l,contentTitle:()=>t,default:()=>p,frontMatter:()=>i,metadata:()=>o,toc:()=>c});var s=n(5893),r=n(1151);const i={sidebar_position:3},t="Package Managers",o={id:"advanced-tips/package-manager",title:"Package Managers",description:"Package managers are an important way to improve the pleasantness and effectiveness of DX.",source:"@site/docs/advanced-tips/package-manager.md",sourceDirName:"advanced-tips",slug:"/advanced-tips/package-manager",permalink:"/dx-tips/docs/advanced-tips/package-manager",draft:!1,unlisted:!1,editUrl:"https://github.com/pogi7/dx-tips/tree/main/docs/advanced-tips/package-manager.md",tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"tutorialSidebar",previous:{title:"Artifical Intelligence",permalink:"/dx-tips/docs/advanced-tips/artificial-intelligence"},next:{title:"Standard Development Environments",permalink:"/dx-tips/docs/advanced-tips/standard-development-environment"}},l={},c=[{value:"OS Level",id:"os-level",level:2},{value:"Windows",id:"windows",level:3},{value:"macOS",id:"macos",level:3},{value:"Linux",id:"linux",level:3},{value:"Programming Language Level",id:"programming-language-level",level:2},{value:"App Level",id:"app-level",level:2}];function d(e){const a={a:"a",h1:"h1",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,r.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(a.h1,{id:"package-managers",children:"Package Managers"}),"\n",(0,s.jsx)(a.p,{children:"Package managers are an important way to improve the pleasantness and effectiveness of DX."}),"\n",(0,s.jsx)(a.p,{children:"All package managers are used to add, remove, modify, upgrade, and maintain software."}),"\n",(0,s.jsx)(a.h2,{id:"os-level",children:"OS Level"}),"\n",(0,s.jsx)(a.p,{children:"For most developers an OS (operating system) level package manager will be the most important package manager to use. These package managers install software into a common folder on a computer making managing software much easier."}),"\n",(0,s.jsx)(a.h3,{id:"windows",children:"Windows"}),"\n",(0,s.jsx)(a.p,{children:"By default, Windows does not come with a package manager."}),"\n",(0,s.jsx)(a.p,{children:"The two most common Windows package managers are:"}),"\n",(0,s.jsxs)(a.ul,{children:["\n",(0,s.jsx)(a.li,{children:(0,s.jsx)(a.a,{href:"https://chocolatey.org/",children:"Chocolatey"})}),"\n",(0,s.jsx)(a.li,{children:(0,s.jsx)(a.a,{href:"https://scoop.sh/",children:"Scoop"})}),"\n"]}),"\n",(0,s.jsx)(a.h3,{id:"macos",children:"macOS"}),"\n",(0,s.jsx)(a.p,{children:"By default, macOS does not come with a package manager."}),"\n",(0,s.jsx)(a.p,{children:"The most common macOS package manager is:"}),"\n",(0,s.jsxs)(a.ul,{children:["\n",(0,s.jsx)(a.li,{children:(0,s.jsx)(a.a,{href:"https://brew.sh/",children:"HomeBrew"})}),"\n"]}),"\n",(0,s.jsxs)(a.p,{children:["According to ",(0,s.jsx)(a.a,{href:"https://survey.stackoverflow.co/2022#section-most-popular-technologies-other-tools",children:"Stack Overflow's 2022 insights"}),", homebrew is the most widely used OS level package manager."]}),"\n",(0,s.jsx)(a.h3,{id:"linux",children:"Linux"}),"\n",(0,s.jsx)(a.p,{children:"By default, Linux comes with a package manager."}),"\n",(0,s.jsx)(a.p,{children:"Each distro of Linux comes with a unique package manager but here are the most common:"}),"\n",(0,s.jsxs)(a.ul,{children:["\n",(0,s.jsx)(a.li,{children:(0,s.jsx)(a.a,{href:"https://en.wikipedia.org/wiki/DNF_(software)",children:"DNF"})}),"\n",(0,s.jsx)(a.li,{children:(0,s.jsx)(a.a,{href:"https://en.wikipedia.org/wiki/APT_(software)",children:"APT"})}),"\n"]}),"\n",(0,s.jsx)(a.h2,{id:"programming-language-level",children:"Programming Language Level"}),"\n",(0,s.jsx)(a.p,{children:"Most programming languages have package managers. These package managers are used to get libraries or dependencies from open source repositories that have been published to the registry of the package managers."}),"\n",(0,s.jsx)(a.p,{children:"Most programming languages have a package manager but here are some for the most popular programming languages:"}),"\n",(0,s.jsxs)(a.ul,{children:["\n",(0,s.jsx)(a.li,{children:(0,s.jsx)(a.a,{href:"https://pypi.org/",children:"pyPI"})}),"\n",(0,s.jsx)(a.li,{children:(0,s.jsx)(a.a,{href:"https://www.npmjs.com/",children:"npm"})}),"\n",(0,s.jsx)(a.li,{children:(0,s.jsx)(a.a,{href:"https://maven.apache.org/",children:"maven"})}),"\n"]}),"\n",(0,s.jsx)(a.h2,{id:"app-level",children:"App Level"}),"\n",(0,s.jsx)(a.p,{children:"Some large scale apps have package managers as well. This helps since a developer does not need to recreate functionality if it already on the app's package manager registry."}),"\n",(0,s.jsxs)(a.p,{children:["An example of an app having a package manager is Kubernetes's ",(0,s.jsx)(a.a,{href:"https://helm.sh",children:"Helm"})]})]})}function p(e={}){const{wrapper:a}={...(0,r.a)(),...e.components};return a?(0,s.jsx)(a,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},1151:(e,a,n)=>{n.d(a,{Z:()=>o,a:()=>t});var s=n(7294);const r={},i=s.createContext(r);function t(e){const a=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function o(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:t(e.components),s.createElement(i.Provider,{value:a},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/48b79c08.a2e0570c.js b/assets/js/48b79c08.a2e0570c.js deleted file mode 100644 index 72b24b7..0000000 --- a/assets/js/48b79c08.a2e0570c.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocusaurus_classic_typescript=self.webpackChunkdocusaurus_classic_typescript||[]).push([[572],{9286:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>h,frontMatter:()=>i,metadata:()=>r,toc:()=>d});var s=n(5893),o=n(1151);const i={sidebar_position:5},a="Package Managers",r={id:"advanced-tips/package-manager",title:"Package Managers",description:"Let's discover the basics of pleasant and effective developer experience in less than 5 minutes.",source:"@site/docs/advanced-tips/package-manager.md",sourceDirName:"advanced-tips",slug:"/advanced-tips/package-manager",permalink:"/dx-tips/docs/advanced-tips/package-manager",draft:!1,unlisted:!1,editUrl:"https://github.com/pogi7/dx-tips/tree/main/docs/advanced-tips/package-manager.md",tags:[],version:"current",sidebarPosition:5,frontMatter:{sidebar_position:5},sidebar:"tutorialSidebar",previous:{title:"Open Source Libraries",permalink:"/dx-tips/docs/advanced-tips/open-source-libraries"},next:{title:"Standard Development Environments",permalink:"/dx-tips/docs/advanced-tips/standard-development-environment"}},c={},d=[{value:"Version Control",id:"version-control",level:2},{value:"Git",id:"git",level:3},{value:"Github",id:"github",level:3},{value:"Documenting Code",id:"documenting-code",level:2},{value:"Comments",id:"comments",level:3},{value:"READMEs",id:"readmes",level:3},{value:"Wikis",id:"wikis",level:3}];function l(e){const t={a:"a",admonition:"admonition",h1:"h1",h2:"h2",h3:"h3",li:"li",p:"p",strong:"strong",ul:"ul",...(0,o.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h1,{id:"package-managers",children:"Package Managers"}),"\n",(0,s.jsxs)(t.p,{children:["Let's discover the basics of pleasant and effective ",(0,s.jsx)(t.strong,{children:"developer experience in less than 5 minutes"}),"."]}),"\n",(0,s.jsx)(t.h2,{id:"version-control",children:"Version Control"}),"\n",(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.a,{href:"https://www.atlassian.com/git/tutorials/what-is-version-control",children:"Version control"})," is a way to keep track and manage changes to software code."]}),"\n",(0,s.jsx)(t.p,{children:"Version control can allow developer teams to keep track, mitigate, and resolve errors that may arise from code degradation or human error."}),"\n",(0,s.jsx)(t.h3,{id:"git",children:"Git"}),"\n",(0,s.jsx)(t.admonition,{title:"What is Git?",type:"tip",children:(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.a,{href:"https://www.atlassian.com/git/tutorials/what-is-git",children:"Atlassian"})," does a good job explaining what Git is and the benefits of adopting the technology within a development team."]})}),"\n",(0,s.jsxs)(t.p,{children:["According to ",(0,s.jsx)(t.a,{href:"https://survey.stackoverflow.co/2022#version-control-version-control-system",children:"Stack Overflow's 2022 insights"}),", Git is the de facto version control software that personal and professional developers use."]}),"\n",(0,s.jsx)(t.p,{children:"Git is used for managing code locally on a computer. This computer can be a personal computer, a bare metal server, or a cloud instance."}),"\n",(0,s.jsx)(t.p,{children:"Git stores code in repos. These local repos can be stored on remote hosting services."}),"\n",(0,s.jsx)(t.h3,{id:"github",children:"Github"}),"\n",(0,s.jsx)(t.admonition,{title:"What is Github?",type:"tip",children:(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.a,{href:"https://docs.github.com/en/get-started/start-your-journey/about-github-and-git",children:"Github"})," does a good job explaining how Git and Github interact with each other and the benefits of using Github."]})}),"\n",(0,s.jsxs)(t.p,{children:["According to ",(0,s.jsx)(t.a,{href:"https://survey.stackoverflow.co/2022#section-version-control-version-control-platforms",children:"Stack Overflow's 2022 insights"}),", Github is the most used version control platform that personal and professional developers use."]}),"\n",(0,s.jsx)(t.p,{children:"Github is used to store Git repos that can be accessed by developers with the correct authorization."}),"\n",(0,s.jsx)(t.p,{children:"For a developer, Github is used for a development team to see new changes in a codebase and keep track of and manage those changes."}),"\n",(0,s.jsxs)(t.p,{children:["An example of a Github repo is shown ",(0,s.jsx)(t.a,{href:"https://github.com/opencaesar/oml-vision",children:"here"})]}),"\n",(0,s.jsx)(t.h2,{id:"documenting-code",children:"Documenting Code"}),"\n",(0,s.jsx)(t.p,{children:"Documenting code is very important because it allows you and the rest of the development team to understand how your code works and is supposed to behave."}),"\n",(0,s.jsx)(t.p,{children:"Documentation helps dev teams onboard new developers much faster and prevent information from being lost due to turnover or forgetting."}),"\n",(0,s.jsx)(t.h3,{id:"comments",children:"Comments"}),"\n",(0,s.jsx)(t.p,{children:"Code comments are very helpful for developers because you can put the code documentation right next to the code."}),"\n",(0,s.jsx)(t.p,{children:"It is highly recommended to follow the documentation standard for your language that your dev team is using."}),"\n",(0,s.jsxs)(t.p,{children:["The list includes some of the most widely used programming languages from ",(0,s.jsx)(t.a,{href:"https://survey.stackoverflow.co/2022#section-most-popular-technologies-programming-scripting-and-markup-languages",children:"Stack Overflow's 2022 insights"}),":"]}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://peps.python.org/pep-0257/",children:"Python"})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://www.baeldung.com/javadoc#javadoc-comments",children:"Java"})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://tsdoc.org/",children:"Typescript"})}),"\n"]}),"\n",(0,s.jsxs)(t.p,{children:["An example of a Typescript comment that matches a Typescript standard is shown ",(0,s.jsx)(t.a,{href:"https://github.com/opencaesar/oml-vision/blob/0db2cc46778f1441474c0d4aebc071df453cf52d/controller/src/utilities/loaders/loadCommandFiles.ts#L6-L15",children:"here"})]}),"\n",(0,s.jsx)(t.h3,{id:"readmes",children:"READMEs"}),"\n",(0,s.jsx)(t.p,{children:"READMEs are nice to explain higher level functionality of a program, function, class, or piece of software within an app or a piece of software that interacts with your dev team's app."}),"\n",(0,s.jsx)(t.p,{children:"READMEs can be included at any level of a Git repo, but generally recommended at the root or top level of a repo so that all developers will know where the README is."}),"\n",(0,s.jsxs)(t.p,{children:["READMEs can be written in any programming language, but they are generally written in ",(0,s.jsx)(t.a,{href:"https://www.adobe.com/uk/acrobat/resources/document-files/text-files/txt.html",children:"plain text"})," (.txt) or ",(0,s.jsx)(t.a,{href:"https://www.markdownguide.org/",children:"Markdown"})," (.md) files."]}),"\n",(0,s.jsxs)(t.p,{children:["An example of a README.md in a Github repo is shown ",(0,s.jsx)(t.a,{href:"https://github.com/opencaesar/oml-vision/blob/0db2cc46778f1441474c0d4aebc071df453cf52d/README.md",children:"here"})]}),"\n",(0,s.jsx)(t.h3,{id:"wikis",children:"Wikis"}),"\n",(0,s.jsx)(t.p,{children:"Wikis are a good alternative to READMEs when you don't want to store high level documentation about your app inside a Git repo."}),"\n",(0,s.jsxs)(t.p,{children:["According to ",(0,s.jsx)(t.a,{href:"https://survey.stackoverflow.co/2022#section-most-popular-technologies-asynchronous-tools",children:"Stack Overflow's 2022 insights"}),", a very common wiki that dev teams use is ",(0,s.jsx)(t.a,{href:"https://www.atlassian.com/software/confluence",children:"Confluence"})]}),"\n",(0,s.jsxs)(t.p,{children:["An example of a Confluence page detailing the architecture of an app is shown ",(0,s.jsx)(t.a,{href:"https://openmbee.atlassian.net/wiki/spaces/OPENMBEE/pages/320765953/Flexo-MMS+Architecture",children:"here"})]})]})}function h(e={}){const{wrapper:t}={...(0,o.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(l,{...e})}):l(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>r,a:()=>a});var s=n(7294);const o={},i=s.createContext(o);function a(e){const t=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:a(e.components),s.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/505e22a4.87ca5863.js b/assets/js/505e22a4.e137c69f.js similarity index 96% rename from assets/js/505e22a4.87ca5863.js rename to assets/js/505e22a4.e137c69f.js index a317353..7fe868c 100644 --- a/assets/js/505e22a4.87ca5863.js +++ b/assets/js/505e22a4.e137c69f.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocusaurus_classic_typescript=self.webpackChunkdocusaurus_classic_typescript||[]).push([[501],{2139:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>r,contentTitle:()=>o,default:()=>u,frontMatter:()=>i,metadata:()=>l,toc:()=>c});var s=n(5893),a=n(1151);const i={slug:"initial-release",title:"test-changelog",authors:["levitt"],tags:["oml","vscode"]},o=void 0,l={permalink:"/dx-tips/changelog/initial-release",editUrl:"https://github.com/pogi7/dx-tips/tree/main/changelog/test-changelog/index.md",source:"@site/changelog/test-changelog/index.md",title:"test-changelog",description:"Test",date:"2024-05-02T05:32:55.000Z",formattedDate:"May 2, 2024",tags:[{label:"oml",permalink:"/dx-tips/changelog/tags/oml"},{label:"vscode",permalink:"/dx-tips/changelog/tags/vscode"}],readingTime:.06,hasTruncateMarker:!1,authors:[{name:"Aaron Levitt",title:"Software Systems Engineer @ NASA JPL",url:"https://www.opencaesar.io/contributors/Aaron%20Levitt.html",imageURL:"https://www.opencaesar.io/assets/img/aaron.jpeg",key:"levitt"}],frontMatter:{slug:"initial-release",title:"test-changelog",authors:["levitt"],tags:["oml","vscode"]},unlisted:!1},r={authorsImageUrls:[void 0]},c=[{value:"Test",id:"test",level:2},{value:"Added",id:"added",level:3}];function d(e){const t={h2:"h2",h3:"h3",li:"li",ul:"ul",...(0,a.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h2,{id:"test",children:"Test"}),"\n",(0,s.jsx)(t.h3,{id:"added",children:"Added"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"Initial release"}),"\n"]})]})}function u(e={}){const{wrapper:t}={...(0,a.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>l,a:()=>o});var s=n(7294);const a={},i=s.createContext(a);function o(e){const t=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:o(e.components),s.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocusaurus_classic_typescript=self.webpackChunkdocusaurus_classic_typescript||[]).push([[501],{2139:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>r,contentTitle:()=>o,default:()=>u,frontMatter:()=>i,metadata:()=>l,toc:()=>c});var s=n(5893),a=n(1151);const i={slug:"initial-release",title:"test-changelog",authors:["levitt"],tags:["oml","vscode"]},o=void 0,l={permalink:"/dx-tips/changelog/initial-release",editUrl:"https://github.com/pogi7/dx-tips/tree/main/changelog/test-changelog/index.md",source:"@site/changelog/test-changelog/index.md",title:"test-changelog",description:"Test",date:"2024-05-02T06:08:37.000Z",formattedDate:"May 2, 2024",tags:[{label:"oml",permalink:"/dx-tips/changelog/tags/oml"},{label:"vscode",permalink:"/dx-tips/changelog/tags/vscode"}],readingTime:.06,hasTruncateMarker:!1,authors:[{name:"Aaron Levitt",title:"Software Systems Engineer @ NASA JPL",url:"https://www.opencaesar.io/contributors/Aaron%20Levitt.html",imageURL:"https://www.opencaesar.io/assets/img/aaron.jpeg",key:"levitt"}],frontMatter:{slug:"initial-release",title:"test-changelog",authors:["levitt"],tags:["oml","vscode"]},unlisted:!1},r={authorsImageUrls:[void 0]},c=[{value:"Test",id:"test",level:2},{value:"Added",id:"added",level:3}];function d(e){const t={h2:"h2",h3:"h3",li:"li",ul:"ul",...(0,a.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h2,{id:"test",children:"Test"}),"\n",(0,s.jsx)(t.h3,{id:"added",children:"Added"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"Initial release"}),"\n"]})]})}function u(e={}){const{wrapper:t}={...(0,a.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>l,a:()=>o});var s=n(7294);const a={},i=s.createContext(a);function o(e){const t=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:o(e.components),s.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/6d3dc6db.dd7549c8.js b/assets/js/6d3dc6db.dd7549c8.js deleted file mode 100644 index 9c20aff..0000000 --- a/assets/js/6d3dc6db.dd7549c8.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocusaurus_classic_typescript=self.webpackChunkdocusaurus_classic_typescript||[]).push([[930],{2287:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>h,frontMatter:()=>i,metadata:()=>r,toc:()=>d});var s=n(5893),o=n(1151);const i={sidebar_position:2},a="Automated Builds and Testing",r={id:"advanced-tips/automated-build-test",title:"Automated Builds and Testing",description:"Let's discover the basics of pleasant and effective developer experience in less than 5 minutes.",source:"@site/docs/advanced-tips/automated-build-test.md",sourceDirName:"advanced-tips",slug:"/advanced-tips/automated-build-test",permalink:"/dx-tips/docs/advanced-tips/automated-build-test",draft:!1,unlisted:!1,editUrl:"https://github.com/pogi7/dx-tips/tree/main/docs/advanced-tips/automated-build-test.md",tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"tutorialSidebar",previous:{title:"Artifical Intelligence",permalink:"/dx-tips/docs/advanced-tips/artificial-intelligence"},next:{title:"DevSecOps",permalink:"/dx-tips/docs/advanced-tips/devsecops"}},c={},d=[{value:"Version Control",id:"version-control",level:2},{value:"Git",id:"git",level:3},{value:"Github",id:"github",level:3},{value:"Documenting Code",id:"documenting-code",level:2},{value:"Comments",id:"comments",level:3},{value:"READMEs",id:"readmes",level:3},{value:"Wikis",id:"wikis",level:3}];function l(e){const t={a:"a",admonition:"admonition",h1:"h1",h2:"h2",h3:"h3",li:"li",p:"p",strong:"strong",ul:"ul",...(0,o.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h1,{id:"automated-builds-and-testing",children:"Automated Builds and Testing"}),"\n",(0,s.jsxs)(t.p,{children:["Let's discover the basics of pleasant and effective ",(0,s.jsx)(t.strong,{children:"developer experience in less than 5 minutes"}),"."]}),"\n",(0,s.jsx)(t.h2,{id:"version-control",children:"Version Control"}),"\n",(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.a,{href:"https://www.atlassian.com/git/tutorials/what-is-version-control",children:"Version control"})," is a way to keep track and manage changes to software code."]}),"\n",(0,s.jsx)(t.p,{children:"Version control can allow developer teams to keep track, mitigate, and resolve errors that may arise from code degradation or human error."}),"\n",(0,s.jsx)(t.h3,{id:"git",children:"Git"}),"\n",(0,s.jsx)(t.admonition,{title:"What is Git?",type:"tip",children:(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.a,{href:"https://www.atlassian.com/git/tutorials/what-is-git",children:"Atlassian"})," does a good job explaining what Git is and the benefits of adopting the technology within a development team."]})}),"\n",(0,s.jsxs)(t.p,{children:["According to ",(0,s.jsx)(t.a,{href:"https://survey.stackoverflow.co/2022#version-control-version-control-system",children:"Stack Overflow's 2022 insights"}),", Git is the de facto version control software that personal and professional developers use."]}),"\n",(0,s.jsx)(t.p,{children:"Git is used for managing code locally on a computer. This computer can be a personal computer, a bare metal server, or a cloud instance."}),"\n",(0,s.jsx)(t.p,{children:"Git stores code in repos. These local repos can be stored on remote hosting services."}),"\n",(0,s.jsx)(t.h3,{id:"github",children:"Github"}),"\n",(0,s.jsx)(t.admonition,{title:"What is Github?",type:"tip",children:(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.a,{href:"https://docs.github.com/en/get-started/start-your-journey/about-github-and-git",children:"Github"})," does a good job explaining how Git and Github interact with each other and the benefits of using Github."]})}),"\n",(0,s.jsxs)(t.p,{children:["According to ",(0,s.jsx)(t.a,{href:"https://survey.stackoverflow.co/2022#section-version-control-version-control-platforms",children:"Stack Overflow's 2022 insights"}),", Github is the most used version control platform that personal and professional developers use."]}),"\n",(0,s.jsx)(t.p,{children:"Github is used to store Git repos that can be accessed by developers with the correct authorization."}),"\n",(0,s.jsx)(t.p,{children:"For a developer, Github is used for a development team to see new changes in a codebase and keep track of and manage those changes."}),"\n",(0,s.jsxs)(t.p,{children:["An example of a Github repo is shown ",(0,s.jsx)(t.a,{href:"https://github.com/opencaesar/oml-vision",children:"here"})]}),"\n",(0,s.jsx)(t.h2,{id:"documenting-code",children:"Documenting Code"}),"\n",(0,s.jsx)(t.p,{children:"Documenting code is very important because it allows you and the rest of the development team to understand how your code works and is supposed to behave."}),"\n",(0,s.jsx)(t.p,{children:"Documentation helps dev teams onboard new developers much faster and prevent information from being lost due to turnover or forgetting."}),"\n",(0,s.jsx)(t.h3,{id:"comments",children:"Comments"}),"\n",(0,s.jsx)(t.p,{children:"Code comments are very helpful for developers because you can put the code documentation right next to the code."}),"\n",(0,s.jsx)(t.p,{children:"It is highly recommended to follow the documentation standard for your language that your dev team is using."}),"\n",(0,s.jsxs)(t.p,{children:["The list includes some of the most widely used programming languages from ",(0,s.jsx)(t.a,{href:"https://survey.stackoverflow.co/2022#section-most-popular-technologies-programming-scripting-and-markup-languages",children:"Stack Overflow's 2022 insights"}),":"]}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://peps.python.org/pep-0257/",children:"Python"})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://www.baeldung.com/javadoc#javadoc-comments",children:"Java"})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://tsdoc.org/",children:"Typescript"})}),"\n"]}),"\n",(0,s.jsxs)(t.p,{children:["An example of a Typescript comment that matches a Typescript standard is shown ",(0,s.jsx)(t.a,{href:"https://github.com/opencaesar/oml-vision/blob/0db2cc46778f1441474c0d4aebc071df453cf52d/controller/src/utilities/loaders/loadCommandFiles.ts#L6-L15",children:"here"})]}),"\n",(0,s.jsx)(t.h3,{id:"readmes",children:"READMEs"}),"\n",(0,s.jsx)(t.p,{children:"READMEs are nice to explain higher level functionality of a program, function, class, or piece of software within an app or a piece of software that interacts with your dev team's app."}),"\n",(0,s.jsx)(t.p,{children:"READMEs can be included at any level of a Git repo, but generally recommended at the root or top level of a repo so that all developers will know where the README is."}),"\n",(0,s.jsxs)(t.p,{children:["READMEs can be written in any programming language, but they are generally written in ",(0,s.jsx)(t.a,{href:"https://www.adobe.com/uk/acrobat/resources/document-files/text-files/txt.html",children:"plain text"})," (.txt) or ",(0,s.jsx)(t.a,{href:"https://www.markdownguide.org/",children:"Markdown"})," (.md) files."]}),"\n",(0,s.jsxs)(t.p,{children:["An example of a README.md in a Github repo is shown ",(0,s.jsx)(t.a,{href:"https://github.com/opencaesar/oml-vision/blob/0db2cc46778f1441474c0d4aebc071df453cf52d/README.md",children:"here"})]}),"\n",(0,s.jsx)(t.h3,{id:"wikis",children:"Wikis"}),"\n",(0,s.jsx)(t.p,{children:"Wikis are a good alternative to READMEs when you don't want to store high level documentation about your app inside a Git repo."}),"\n",(0,s.jsxs)(t.p,{children:["According to ",(0,s.jsx)(t.a,{href:"https://survey.stackoverflow.co/2022#section-most-popular-technologies-asynchronous-tools",children:"Stack Overflow's 2022 insights"}),", a very common wiki that dev teams use is ",(0,s.jsx)(t.a,{href:"https://www.atlassian.com/software/confluence",children:"Confluence"})]}),"\n",(0,s.jsxs)(t.p,{children:["An example of a Confluence page detailing the architecture of an app is shown ",(0,s.jsx)(t.a,{href:"https://openmbee.atlassian.net/wiki/spaces/OPENMBEE/pages/320765953/Flexo-MMS+Architecture",children:"here"})]})]})}function h(e={}){const{wrapper:t}={...(0,o.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(l,{...e})}):l(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>r,a:()=>a});var s=n(7294);const o={},i=s.createContext(o);function a(e){const t=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:a(e.components),s.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/703ff853.ead75b6b.js b/assets/js/703ff853.ead75b6b.js deleted file mode 100644 index 701a877..0000000 --- a/assets/js/703ff853.ead75b6b.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocusaurus_classic_typescript=self.webpackChunkdocusaurus_classic_typescript||[]).push([[830],{7193:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>c,contentTitle:()=>r,default:()=>h,frontMatter:()=>i,metadata:()=>a,toc:()=>d});var n=s(5893),o=s(1151);const i={sidebar_position:3},r="DevSecOps",a={id:"advanced-tips/devsecops",title:"DevSecOps",description:"Let's discover the basics of pleasant and effective developer experience in less than 5 minutes.",source:"@site/docs/advanced-tips/devsecops.md",sourceDirName:"advanced-tips",slug:"/advanced-tips/devsecops",permalink:"/dx-tips/docs/advanced-tips/devsecops",draft:!1,unlisted:!1,editUrl:"https://github.com/pogi7/dx-tips/tree/main/docs/advanced-tips/devsecops.md",tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"tutorialSidebar",previous:{title:"Automated Builds and Testing",permalink:"/dx-tips/docs/advanced-tips/automated-build-test"},next:{title:"Open Source Libraries",permalink:"/dx-tips/docs/advanced-tips/open-source-libraries"}},c={},d=[{value:"Version Control",id:"version-control",level:2},{value:"Git",id:"git",level:3},{value:"Github",id:"github",level:3},{value:"Documenting Code",id:"documenting-code",level:2},{value:"Comments",id:"comments",level:3},{value:"READMEs",id:"readmes",level:3},{value:"Wikis",id:"wikis",level:3}];function l(e){const t={a:"a",admonition:"admonition",h1:"h1",h2:"h2",h3:"h3",li:"li",p:"p",strong:"strong",ul:"ul",...(0,o.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.h1,{id:"devsecops",children:"DevSecOps"}),"\n",(0,n.jsxs)(t.p,{children:["Let's discover the basics of pleasant and effective ",(0,n.jsx)(t.strong,{children:"developer experience in less than 5 minutes"}),"."]}),"\n",(0,n.jsx)(t.h2,{id:"version-control",children:"Version Control"}),"\n",(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.a,{href:"https://www.atlassian.com/git/tutorials/what-is-version-control",children:"Version control"})," is a way to keep track and manage changes to software code."]}),"\n",(0,n.jsx)(t.p,{children:"Version control can allow developer teams to keep track, mitigate, and resolve errors that may arise from code degradation or human error."}),"\n",(0,n.jsx)(t.h3,{id:"git",children:"Git"}),"\n",(0,n.jsx)(t.admonition,{title:"What is Git?",type:"tip",children:(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.a,{href:"https://www.atlassian.com/git/tutorials/what-is-git",children:"Atlassian"})," does a good job explaining what Git is and the benefits of adopting the technology within a development team."]})}),"\n",(0,n.jsxs)(t.p,{children:["According to ",(0,n.jsx)(t.a,{href:"https://survey.stackoverflow.co/2022#version-control-version-control-system",children:"Stack Overflow's 2022 insights"}),", Git is the de facto version control software that personal and professional developers use."]}),"\n",(0,n.jsx)(t.p,{children:"Git is used for managing code locally on a computer. This computer can be a personal computer, a bare metal server, or a cloud instance."}),"\n",(0,n.jsx)(t.p,{children:"Git stores code in repos. These local repos can be stored on remote hosting services."}),"\n",(0,n.jsx)(t.h3,{id:"github",children:"Github"}),"\n",(0,n.jsx)(t.admonition,{title:"What is Github?",type:"tip",children:(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.a,{href:"https://docs.github.com/en/get-started/start-your-journey/about-github-and-git",children:"Github"})," does a good job explaining how Git and Github interact with each other and the benefits of using Github."]})}),"\n",(0,n.jsxs)(t.p,{children:["According to ",(0,n.jsx)(t.a,{href:"https://survey.stackoverflow.co/2022#section-version-control-version-control-platforms",children:"Stack Overflow's 2022 insights"}),", Github is the most used version control platform that personal and professional developers use."]}),"\n",(0,n.jsx)(t.p,{children:"Github is used to store Git repos that can be accessed by developers with the correct authorization."}),"\n",(0,n.jsx)(t.p,{children:"For a developer, Github is used for a development team to see new changes in a codebase and keep track of and manage those changes."}),"\n",(0,n.jsxs)(t.p,{children:["An example of a Github repo is shown ",(0,n.jsx)(t.a,{href:"https://github.com/opencaesar/oml-vision",children:"here"})]}),"\n",(0,n.jsx)(t.h2,{id:"documenting-code",children:"Documenting Code"}),"\n",(0,n.jsx)(t.p,{children:"Documenting code is very important because it allows you and the rest of the development team to understand how your code works and is supposed to behave."}),"\n",(0,n.jsx)(t.p,{children:"Documentation helps dev teams onboard new developers much faster and prevent information from being lost due to turnover or forgetting."}),"\n",(0,n.jsx)(t.h3,{id:"comments",children:"Comments"}),"\n",(0,n.jsx)(t.p,{children:"Code comments are very helpful for developers because you can put the code documentation right next to the code."}),"\n",(0,n.jsx)(t.p,{children:"It is highly recommended to follow the documentation standard for your language that your dev team is using."}),"\n",(0,n.jsxs)(t.p,{children:["The list includes some of the most widely used programming languages from ",(0,n.jsx)(t.a,{href:"https://survey.stackoverflow.co/2022#section-most-popular-technologies-programming-scripting-and-markup-languages",children:"Stack Overflow's 2022 insights"}),":"]}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://peps.python.org/pep-0257/",children:"Python"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://www.baeldung.com/javadoc#javadoc-comments",children:"Java"})}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://tsdoc.org/",children:"Typescript"})}),"\n"]}),"\n",(0,n.jsxs)(t.p,{children:["An example of a Typescript comment that matches a Typescript standard is shown ",(0,n.jsx)(t.a,{href:"https://github.com/opencaesar/oml-vision/blob/0db2cc46778f1441474c0d4aebc071df453cf52d/controller/src/utilities/loaders/loadCommandFiles.ts#L6-L15",children:"here"})]}),"\n",(0,n.jsx)(t.h3,{id:"readmes",children:"READMEs"}),"\n",(0,n.jsx)(t.p,{children:"READMEs are nice to explain higher level functionality of a program, function, class, or piece of software within an app or a piece of software that interacts with your dev team's app."}),"\n",(0,n.jsx)(t.p,{children:"READMEs can be included at any level of a Git repo, but generally recommended at the root or top level of a repo so that all developers will know where the README is."}),"\n",(0,n.jsxs)(t.p,{children:["READMEs can be written in any programming language, but they are generally written in ",(0,n.jsx)(t.a,{href:"https://www.adobe.com/uk/acrobat/resources/document-files/text-files/txt.html",children:"plain text"})," (.txt) or ",(0,n.jsx)(t.a,{href:"https://www.markdownguide.org/",children:"Markdown"})," (.md) files."]}),"\n",(0,n.jsxs)(t.p,{children:["An example of a README.md in a Github repo is shown ",(0,n.jsx)(t.a,{href:"https://github.com/opencaesar/oml-vision/blob/0db2cc46778f1441474c0d4aebc071df453cf52d/README.md",children:"here"})]}),"\n",(0,n.jsx)(t.h3,{id:"wikis",children:"Wikis"}),"\n",(0,n.jsx)(t.p,{children:"Wikis are a good alternative to READMEs when you don't want to store high level documentation about your app inside a Git repo."}),"\n",(0,n.jsxs)(t.p,{children:["According to ",(0,n.jsx)(t.a,{href:"https://survey.stackoverflow.co/2022#section-most-popular-technologies-asynchronous-tools",children:"Stack Overflow's 2022 insights"}),", a very common wiki that dev teams use is ",(0,n.jsx)(t.a,{href:"https://www.atlassian.com/software/confluence",children:"Confluence"})]}),"\n",(0,n.jsxs)(t.p,{children:["An example of a Confluence page detailing the architecture of an app is shown ",(0,n.jsx)(t.a,{href:"https://openmbee.atlassian.net/wiki/spaces/OPENMBEE/pages/320765953/Flexo-MMS+Architecture",children:"here"})]})]})}function h(e={}){const{wrapper:t}={...(0,o.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(l,{...e})}):l(e)}},1151:(e,t,s)=>{s.d(t,{Z:()=>a,a:()=>r});var n=s(7294);const o={},i=n.createContext(o);function r(e){const t=n.useContext(i);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:r(e.components),n.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/838d5ceb.89d71ae1.js b/assets/js/838d5ceb.89d71ae1.js deleted file mode 100644 index 465209a..0000000 --- a/assets/js/838d5ceb.89d71ae1.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocusaurus_classic_typescript=self.webpackChunkdocusaurus_classic_typescript||[]).push([[706],{739:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>r,default:()=>h,frontMatter:()=>i,metadata:()=>a,toc:()=>d});var s=n(5893),o=n(1151);const i={sidebar_position:7},r="Ticket System",a={id:"advanced-tips/ticket-system",title:"Ticket System",description:"Let's discover the basics of pleasant and effective developer experience in less than 5 minutes.",source:"@site/docs/advanced-tips/ticket-system.md",sourceDirName:"advanced-tips",slug:"/advanced-tips/ticket-system",permalink:"/dx-tips/docs/advanced-tips/ticket-system",draft:!1,unlisted:!1,editUrl:"https://github.com/pogi7/dx-tips/tree/main/docs/advanced-tips/ticket-system.md",tags:[],version:"current",sidebarPosition:7,frontMatter:{sidebar_position:7},sidebar:"tutorialSidebar",previous:{title:"Standard Development Environments",permalink:"/dx-tips/docs/advanced-tips/standard-development-environment"},next:{title:"User Experience",permalink:"/dx-tips/docs/advanced-tips/user-experience"}},c={},d=[{value:"Version Control",id:"version-control",level:2},{value:"Git",id:"git",level:3},{value:"Github",id:"github",level:3},{value:"Documenting Code",id:"documenting-code",level:2},{value:"Comments",id:"comments",level:3},{value:"READMEs",id:"readmes",level:3},{value:"Wikis",id:"wikis",level:3}];function l(e){const t={a:"a",admonition:"admonition",h1:"h1",h2:"h2",h3:"h3",li:"li",p:"p",strong:"strong",ul:"ul",...(0,o.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h1,{id:"ticket-system",children:"Ticket System"}),"\n",(0,s.jsxs)(t.p,{children:["Let's discover the basics of pleasant and effective ",(0,s.jsx)(t.strong,{children:"developer experience in less than 5 minutes"}),"."]}),"\n",(0,s.jsx)(t.h2,{id:"version-control",children:"Version Control"}),"\n",(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.a,{href:"https://www.atlassian.com/git/tutorials/what-is-version-control",children:"Version control"})," is a way to keep track and manage changes to software code."]}),"\n",(0,s.jsx)(t.p,{children:"Version control can allow developer teams to keep track, mitigate, and resolve errors that may arise from code degradation or human error."}),"\n",(0,s.jsx)(t.h3,{id:"git",children:"Git"}),"\n",(0,s.jsx)(t.admonition,{title:"What is Git?",type:"tip",children:(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.a,{href:"https://www.atlassian.com/git/tutorials/what-is-git",children:"Atlassian"})," does a good job explaining what Git is and the benefits of adopting the technology within a development team."]})}),"\n",(0,s.jsxs)(t.p,{children:["According to ",(0,s.jsx)(t.a,{href:"https://survey.stackoverflow.co/2022#version-control-version-control-system",children:"Stack Overflow's 2022 insights"}),", Git is the de facto version control software that personal and professional developers use."]}),"\n",(0,s.jsx)(t.p,{children:"Git is used for managing code locally on a computer. This computer can be a personal computer, a bare metal server, or a cloud instance."}),"\n",(0,s.jsx)(t.p,{children:"Git stores code in repos. These local repos can be stored on remote hosting services."}),"\n",(0,s.jsx)(t.h3,{id:"github",children:"Github"}),"\n",(0,s.jsx)(t.admonition,{title:"What is Github?",type:"tip",children:(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.a,{href:"https://docs.github.com/en/get-started/start-your-journey/about-github-and-git",children:"Github"})," does a good job explaining how Git and Github interact with each other and the benefits of using Github."]})}),"\n",(0,s.jsxs)(t.p,{children:["According to ",(0,s.jsx)(t.a,{href:"https://survey.stackoverflow.co/2022#section-version-control-version-control-platforms",children:"Stack Overflow's 2022 insights"}),", Github is the most used version control platform that personal and professional developers use."]}),"\n",(0,s.jsx)(t.p,{children:"Github is used to store Git repos that can be accessed by developers with the correct authorization."}),"\n",(0,s.jsx)(t.p,{children:"For a developer, Github is used for a development team to see new changes in a codebase and keep track of and manage those changes."}),"\n",(0,s.jsxs)(t.p,{children:["An example of a Github repo is shown ",(0,s.jsx)(t.a,{href:"https://github.com/opencaesar/oml-vision",children:"here"})]}),"\n",(0,s.jsx)(t.h2,{id:"documenting-code",children:"Documenting Code"}),"\n",(0,s.jsx)(t.p,{children:"Documenting code is very important because it allows you and the rest of the development team to understand how your code works and is supposed to behave."}),"\n",(0,s.jsx)(t.p,{children:"Documentation helps dev teams onboard new developers much faster and prevent information from being lost due to turnover or forgetting."}),"\n",(0,s.jsx)(t.h3,{id:"comments",children:"Comments"}),"\n",(0,s.jsx)(t.p,{children:"Code comments are very helpful for developers because you can put the code documentation right next to the code."}),"\n",(0,s.jsx)(t.p,{children:"It is highly recommended to follow the documentation standard for your language that your dev team is using."}),"\n",(0,s.jsxs)(t.p,{children:["The list includes some of the most widely used programming languages from ",(0,s.jsx)(t.a,{href:"https://survey.stackoverflow.co/2022#section-most-popular-technologies-programming-scripting-and-markup-languages",children:"Stack Overflow's 2022 insights"}),":"]}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://peps.python.org/pep-0257/",children:"Python"})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://www.baeldung.com/javadoc#javadoc-comments",children:"Java"})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://tsdoc.org/",children:"Typescript"})}),"\n"]}),"\n",(0,s.jsxs)(t.p,{children:["An example of a Typescript comment that matches a Typescript standard is shown ",(0,s.jsx)(t.a,{href:"https://github.com/opencaesar/oml-vision/blob/0db2cc46778f1441474c0d4aebc071df453cf52d/controller/src/utilities/loaders/loadCommandFiles.ts#L6-L15",children:"here"})]}),"\n",(0,s.jsx)(t.h3,{id:"readmes",children:"READMEs"}),"\n",(0,s.jsx)(t.p,{children:"READMEs are nice to explain higher level functionality of a program, function, class, or piece of software within an app or a piece of software that interacts with your dev team's app."}),"\n",(0,s.jsx)(t.p,{children:"READMEs can be included at any level of a Git repo, but generally recommended at the root or top level of a repo so that all developers will know where the README is."}),"\n",(0,s.jsxs)(t.p,{children:["READMEs can be written in any programming language, but they are generally written in ",(0,s.jsx)(t.a,{href:"https://www.adobe.com/uk/acrobat/resources/document-files/text-files/txt.html",children:"plain text"})," (.txt) or ",(0,s.jsx)(t.a,{href:"https://www.markdownguide.org/",children:"Markdown"})," (.md) files."]}),"\n",(0,s.jsxs)(t.p,{children:["An example of a README.md in a Github repo is shown ",(0,s.jsx)(t.a,{href:"https://github.com/opencaesar/oml-vision/blob/0db2cc46778f1441474c0d4aebc071df453cf52d/README.md",children:"here"})]}),"\n",(0,s.jsx)(t.h3,{id:"wikis",children:"Wikis"}),"\n",(0,s.jsx)(t.p,{children:"Wikis are a good alternative to READMEs when you don't want to store high level documentation about your app inside a Git repo."}),"\n",(0,s.jsxs)(t.p,{children:["According to ",(0,s.jsx)(t.a,{href:"https://survey.stackoverflow.co/2022#section-most-popular-technologies-asynchronous-tools",children:"Stack Overflow's 2022 insights"}),", a very common wiki that dev teams use is ",(0,s.jsx)(t.a,{href:"https://www.atlassian.com/software/confluence",children:"Confluence"})]}),"\n",(0,s.jsxs)(t.p,{children:["An example of a Confluence page detailing the architecture of an app is shown ",(0,s.jsx)(t.a,{href:"https://openmbee.atlassian.net/wiki/spaces/OPENMBEE/pages/320765953/Flexo-MMS+Architecture",children:"here"})]})]})}function h(e={}){const{wrapper:t}={...(0,o.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(l,{...e})}):l(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>a,a:()=>r});var s=n(7294);const o={},i=s.createContext(o);function r(e){const t=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:r(e.components),s.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/935f2afb.014e496b.js b/assets/js/935f2afb.014e496b.js deleted file mode 100644 index f48b699..0000000 --- a/assets/js/935f2afb.014e496b.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocusaurus_classic_typescript=self.webpackChunkdocusaurus_classic_typescript||[]).push([[53],{1109:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"tutorialSidebar":[{"type":"link","label":"Basic Tips","href":"/dx-tips/docs/intro","docId":"intro","unlisted":false},{"type":"category","label":"Advanced Tips","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Artifical Intelligence","href":"/dx-tips/docs/advanced-tips/artificial-intelligence","docId":"advanced-tips/artificial-intelligence","unlisted":false},{"type":"link","label":"Automated Builds and Testing","href":"/dx-tips/docs/advanced-tips/automated-build-test","docId":"advanced-tips/automated-build-test","unlisted":false},{"type":"link","label":"DevSecOps","href":"/dx-tips/docs/advanced-tips/devsecops","docId":"advanced-tips/devsecops","unlisted":false},{"type":"link","label":"Open Source Libraries","href":"/dx-tips/docs/advanced-tips/open-source-libraries","docId":"advanced-tips/open-source-libraries","unlisted":false},{"type":"link","label":"Package Managers","href":"/dx-tips/docs/advanced-tips/package-manager","docId":"advanced-tips/package-manager","unlisted":false},{"type":"link","label":"Standard Development Environments","href":"/dx-tips/docs/advanced-tips/standard-development-environment","docId":"advanced-tips/standard-development-environment","unlisted":false},{"type":"link","label":"Ticket System","href":"/dx-tips/docs/advanced-tips/ticket-system","docId":"advanced-tips/ticket-system","unlisted":false},{"type":"link","label":"User Experience","href":"/dx-tips/docs/advanced-tips/user-experience","docId":"advanced-tips/user-experience","unlisted":false}],"href":"/dx-tips/docs/category/advanced-tips"}]},"docs":{"advanced-tips/artificial-intelligence":{"id":"advanced-tips/artificial-intelligence","title":"Artifical Intelligence","description":"Artifical intelligence is a great tool that can vastly improve the pleasantness and effectiveness of a developer\'s experience.","sidebar":"tutorialSidebar"},"advanced-tips/automated-build-test":{"id":"advanced-tips/automated-build-test","title":"Automated Builds and Testing","description":"Let\'s discover the basics of pleasant and effective developer experience in less than 5 minutes.","sidebar":"tutorialSidebar"},"advanced-tips/devsecops":{"id":"advanced-tips/devsecops","title":"DevSecOps","description":"Let\'s discover the basics of pleasant and effective developer experience in less than 5 minutes.","sidebar":"tutorialSidebar"},"advanced-tips/open-source-libraries":{"id":"advanced-tips/open-source-libraries","title":"Open Source Libraries","description":"Let\'s discover the basics of pleasant and effective developer experience in less than 5 minutes.","sidebar":"tutorialSidebar"},"advanced-tips/package-manager":{"id":"advanced-tips/package-manager","title":"Package Managers","description":"Let\'s discover the basics of pleasant and effective developer experience in less than 5 minutes.","sidebar":"tutorialSidebar"},"advanced-tips/standard-development-environment":{"id":"advanced-tips/standard-development-environment","title":"Standard Development Environments","description":"Let\'s discover the basics of pleasant and effective developer experience in less than 5 minutes.","sidebar":"tutorialSidebar"},"advanced-tips/ticket-system":{"id":"advanced-tips/ticket-system","title":"Ticket System","description":"Let\'s discover the basics of pleasant and effective developer experience in less than 5 minutes.","sidebar":"tutorialSidebar"},"advanced-tips/user-experience":{"id":"advanced-tips/user-experience","title":"User Experience","description":"Let\'s discover the basics of pleasant and effective developer experience in less than 5 minutes.","sidebar":"tutorialSidebar"},"intro":{"id":"intro","title":"Basic Tips","description":"Let\'s discover the basics of pleasant and effective developer experience in less than 5 minutes.","sidebar":"tutorialSidebar"}}}')}}]); \ No newline at end of file diff --git a/assets/js/935f2afb.61188e3d.js b/assets/js/935f2afb.61188e3d.js new file mode 100644 index 0000000..6bfc82b --- /dev/null +++ b/assets/js/935f2afb.61188e3d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocusaurus_classic_typescript=self.webpackChunkdocusaurus_classic_typescript||[]).push([[53],{1109:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"tutorialSidebar":[{"type":"link","label":"Basic Tips","href":"/dx-tips/docs/intro","docId":"intro","unlisted":false},{"type":"category","label":"Advanced Tips","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Agile Development","href":"/dx-tips/docs/advanced-tips/agile-development","docId":"advanced-tips/agile-development","unlisted":false},{"type":"link","label":"Artifical Intelligence","href":"/dx-tips/docs/advanced-tips/artificial-intelligence","docId":"advanced-tips/artificial-intelligence","unlisted":false},{"type":"link","label":"Package Managers","href":"/dx-tips/docs/advanced-tips/package-manager","docId":"advanced-tips/package-manager","unlisted":false},{"type":"link","label":"Standard Development Environments","href":"/dx-tips/docs/advanced-tips/standard-development-environment","docId":"advanced-tips/standard-development-environment","unlisted":false},{"type":"link","label":"User Experience","href":"/dx-tips/docs/advanced-tips/user-experience","docId":"advanced-tips/user-experience","unlisted":false}],"href":"/dx-tips/docs/category/advanced-tips"}]},"docs":{"advanced-tips/agile-development":{"id":"advanced-tips/agile-development","title":"Agile Development","description":"Automated Building and Testing","sidebar":"tutorialSidebar"},"advanced-tips/artificial-intelligence":{"id":"advanced-tips/artificial-intelligence","title":"Artifical Intelligence","description":"Artifical intelligence is a great tool that can vastly improve the pleasantness and effectiveness of a developer\'s experience.","sidebar":"tutorialSidebar"},"advanced-tips/package-manager":{"id":"advanced-tips/package-manager","title":"Package Managers","description":"Package managers are an important way to improve the pleasantness and effectiveness of DX.","sidebar":"tutorialSidebar"},"advanced-tips/standard-development-environment":{"id":"advanced-tips/standard-development-environment","title":"Standard Development Environments","description":"Let\'s discover the basics of pleasant and effective developer experience in less than 5 minutes.","sidebar":"tutorialSidebar"},"advanced-tips/user-experience":{"id":"advanced-tips/user-experience","title":"User Experience","description":"Let\'s discover the basics of pleasant and effective developer experience in less than 5 minutes.","sidebar":"tutorialSidebar"},"intro":{"id":"intro","title":"Basic Tips","description":"Let\'s discover the basics of pleasant and effective developer experience in less than 5 minutes.","sidebar":"tutorialSidebar"}}}')}}]); \ No newline at end of file diff --git a/assets/js/b69986af.1a94a274.js b/assets/js/b69986af.1a94a274.js new file mode 100644 index 0000000..eeb62f3 --- /dev/null +++ b/assets/js/b69986af.1a94a274.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocusaurus_classic_typescript=self.webpackChunkdocusaurus_classic_typescript||[]).push([[744],{574:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>o,contentTitle:()=>r,default:()=>h,frontMatter:()=>s,metadata:()=>l,toc:()=>c});var t=i(5893),a=i(1151);const s={sidebar_position:2},r="Artifical Intelligence",l={id:"advanced-tips/artificial-intelligence",title:"Artifical Intelligence",description:"Artifical intelligence is a great tool that can vastly improve the pleasantness and effectiveness of a developer's experience.",source:"@site/docs/advanced-tips/artificial-intelligence.md",sourceDirName:"advanced-tips",slug:"/advanced-tips/artificial-intelligence",permalink:"/dx-tips/docs/advanced-tips/artificial-intelligence",draft:!1,unlisted:!1,editUrl:"https://github.com/pogi7/dx-tips/tree/main/docs/advanced-tips/artificial-intelligence.md",tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"tutorialSidebar",previous:{title:"Agile Development",permalink:"/dx-tips/docs/advanced-tips/agile-development"},next:{title:"Package Managers",permalink:"/dx-tips/docs/advanced-tips/package-manager"}},o={},c=[{value:"LLM",id:"llm",level:2},{value:"API",id:"api",level:3},{value:"Web Interface",id:"web-interface",level:3},{value:"IDE Extensions",id:"ide-extensions",level:3},{value:"Rules Based AI",id:"rules-based-ai",level:2},{value:"Database",id:"database",level:3}];function d(e){const n={a:"a",admonition:"admonition",h1:"h1",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,a.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.h1,{id:"artifical-intelligence",children:"Artifical Intelligence"}),"\n",(0,t.jsx)(n.p,{children:"Artifical intelligence is a great tool that can vastly improve the pleasantness and effectiveness of a developer's experience."}),"\n",(0,t.jsx)(n.h2,{id:"llm",children:"LLM"}),"\n",(0,t.jsxs)(n.p,{children:["According to ",(0,t.jsx)(n.a,{href:"https://survey.stackoverflow.co/2023/#section-sentiment-and-usage-ai-tools-in-the-development-process",children:"Stack Overflow's 2023 insights"}),", use of AI specifically LLMs are on the rise for personal and professional developers."]}),"\n",(0,t.jsx)(n.p,{children:"LLM or Large Language Models are great tools since they have been trained on large data sets."}),"\n",(0,t.jsx)(n.p,{children:"This means that LLMs can usually generate an answer if you give it a sufficient prompt."}),"\n",(0,t.jsx)(n.p,{children:"LLM are very popular since they can give an answer very quickly. Sometimes LLM will hallucinate which by giving an incorrect answer while claiming it's correct. It's a good idea to always verify the output a LLM gives."}),"\n",(0,t.jsx)(n.admonition,{title:"Prompt Engineering",type:"tip",children:(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.a,{href:"https://aws.amazon.com/what-is/prompt-engineering/",children:"AWS"})," does a good job explaining what prompt engineering is and the benefits of good prompt engineering when trying to get answers from a LLM."]})}),"\n",(0,t.jsx)(n.h3,{id:"api",children:"API"}),"\n",(0,t.jsx)(n.p,{children:"LLMs can be accessed through their API. This allows developer flexibility in how the LLM can generate information for an app."}),"\n",(0,t.jsxs)(n.p,{children:["OpenAI's example of their LLM API is found ",(0,t.jsx)(n.a,{href:"https://platform.openai.com/",children:"here"})]}),"\n",(0,t.jsx)(n.h3,{id:"web-interface",children:"Web Interface"}),"\n",(0,t.jsxs)(n.p,{children:["Most people are most familiar with the web interface on interacting with LLMs. ",(0,t.jsx)(n.a,{href:"https://chat.openai.com",children:"ChatGPT"})," is the most popular, but their are others such as Anthropic's ",(0,t.jsx)(n.a,{href:"https://claude.ai",children:"ClaudeAI"}),"."]}),"\n",(0,t.jsx)(n.p,{children:"Personal and professional developers will use the web interface to input a prompt and ask the AI to either generate or interpret code and documentation."}),"\n",(0,t.jsx)(n.h3,{id:"ide-extensions",children:"IDE Extensions"}),"\n",(0,t.jsx)(n.p,{children:"IDE (Integrated Development Environment) Extensions help developers incorporate a LLM into the platform they use to write code and documentation."}),"\n",(0,t.jsx)(n.p,{children:"Some examples of AI LLM IDE Extensions include"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://github.com/features/copilot",children:"Github Copilot"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"https://www.tabnine.com",children:"Tabnine"})}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"rules-based-ai",children:"Rules Based AI"}),"\n",(0,t.jsx)(n.p,{children:"Rules Based AI is slightly less known than LLM that are trained using machine learning."}),"\n",(0,t.jsx)(n.p,{children:"Rules based AI generates responses based on a set of known and predefined rules."}),"\n",(0,t.jsx)(n.p,{children:"This means that rules based AI will always give a correct answer based on its predefined rules, but it is significantly slower than a LLM."}),"\n",(0,t.jsx)(n.p,{children:"Industries that can't afford hallucinations like healthcare or space exploration are more likely to use rules based AI on production quality software."}),"\n",(0,t.jsx)(n.h3,{id:"database",children:"Database"}),"\n",(0,t.jsxs)(n.p,{children:["One way to get around the slower nature of a rules based AI is to incorporate the rules into a database. One database that does is called ",(0,t.jsx)(n.a,{href:"https://www.oxfordsemantic.tech/rdfox",children:"RDFox"}),'. The rules based AI is incoporated when the database "reasons" about data.']})]})}function h(e={}){const{wrapper:n}={...(0,a.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(d,{...e})}):d(e)}},1151:(e,n,i)=>{i.d(n,{Z:()=>l,a:()=>r});var t=i(7294);const a={},s=t.createContext(a);function r(e){const n=t.useContext(s);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:r(e.components),t.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/b69986af.4493687a.js b/assets/js/b69986af.4493687a.js deleted file mode 100644 index 5ba4ec7..0000000 --- a/assets/js/b69986af.4493687a.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocusaurus_classic_typescript=self.webpackChunkdocusaurus_classic_typescript||[]).push([[744],{574:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>r,default:()=>h,frontMatter:()=>s,metadata:()=>o,toc:()=>c});var i=t(5893),a=t(1151);const s={sidebar_position:1},r="Artifical Intelligence",o={id:"advanced-tips/artificial-intelligence",title:"Artifical Intelligence",description:"Artifical intelligence is a great tool that can vastly improve the pleasantness and effectiveness of a developer's experience.",source:"@site/docs/advanced-tips/artificial-intelligence.md",sourceDirName:"advanced-tips",slug:"/advanced-tips/artificial-intelligence",permalink:"/dx-tips/docs/advanced-tips/artificial-intelligence",draft:!1,unlisted:!1,editUrl:"https://github.com/pogi7/dx-tips/tree/main/docs/advanced-tips/artificial-intelligence.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"tutorialSidebar",previous:{title:"Advanced Tips",permalink:"/dx-tips/docs/category/advanced-tips"},next:{title:"Automated Builds and Testing",permalink:"/dx-tips/docs/advanced-tips/automated-build-test"}},l={},c=[{value:"LLM",id:"llm",level:2},{value:"API",id:"api",level:3},{value:"Web Interface",id:"web-interface",level:3},{value:"IDE Extensions",id:"ide-extensions",level:3},{value:"Rules Based AI",id:"rules-based-ai",level:2},{value:"Database",id:"database",level:3}];function d(e){const n={a:"a",admonition:"admonition",h1:"h1",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,a.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h1,{id:"artifical-intelligence",children:"Artifical Intelligence"}),"\n",(0,i.jsx)(n.p,{children:"Artifical intelligence is a great tool that can vastly improve the pleasantness and effectiveness of a developer's experience."}),"\n",(0,i.jsx)(n.h2,{id:"llm",children:"LLM"}),"\n",(0,i.jsxs)(n.p,{children:["According to ",(0,i.jsx)(n.a,{href:"https://survey.stackoverflow.co/2023/#section-sentiment-and-usage-ai-tools-in-the-development-process",children:"Stack Overflow's 2023 insights"}),", use of AI specifically LLMs are on the rise for personal and professional developers."]}),"\n",(0,i.jsx)(n.p,{children:"LLM or Large Language Models are great tools since they have been trained on large data sets."}),"\n",(0,i.jsx)(n.p,{children:"This means that LLMs can usually generate an answer if you give it a sufficient prompt."}),"\n",(0,i.jsx)(n.p,{children:"LLM are very popular since they can give an answer very quickly. Sometimes LLM will hallucinate which by giving an incorrect answer while claiming it's correct. It's a good idea to always verify the output a LLM gives."}),"\n",(0,i.jsx)(n.admonition,{title:"Prompt Engineering",type:"tip",children:(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.a,{href:"https://aws.amazon.com/what-is/prompt-engineering/",children:"AWS"})," does a good job explaining what prompt engineering is and the benefits of good prompt engineering when trying to get answers from a LLM."]})}),"\n",(0,i.jsx)(n.h3,{id:"api",children:"API"}),"\n",(0,i.jsx)(n.p,{children:"LLMs can be accessed through their API. This allows developer flexibility in how the LLM can generate information for an app."}),"\n",(0,i.jsxs)(n.p,{children:["OpenAI's example of their LLM API is found ",(0,i.jsx)(n.a,{href:"https://platform.openai.com/",children:"here"})]}),"\n",(0,i.jsx)(n.h3,{id:"web-interface",children:"Web Interface"}),"\n",(0,i.jsxs)(n.p,{children:["Most people are most familiar with the web interface on interacting with LLMs. ",(0,i.jsx)(n.a,{href:"https://chat.openai.com",children:"ChatGPT"})," is the most popular, but their are others such as Anthropic's ",(0,i.jsx)(n.a,{href:"https://claude.ai",children:"ClaudeAI"}),"."]}),"\n",(0,i.jsx)(n.p,{children:"Personal and professional developers will use the web interface to input a prompt and ask the AI to either generate or interpret code and documentation."}),"\n",(0,i.jsx)(n.h3,{id:"ide-extensions",children:"IDE Extensions"}),"\n",(0,i.jsx)(n.p,{children:"IDE (Integrated Development Environment) Extensions help developers incorporate a LLM into the platform they use to write code and documentation."}),"\n",(0,i.jsx)(n.p,{children:"Some examples of AI LLM IDE Extensions include"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://github.com/features/copilot",children:"Github Copilot"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"https://www.tabnine.com",children:"Tabnine"})}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"rules-based-ai",children:"Rules Based AI"}),"\n",(0,i.jsx)(n.p,{children:"Rules Based AI is slightly less known than LLM that are trained using machine learning."}),"\n",(0,i.jsx)(n.p,{children:"Rules based AI generates responses based on a set of known and predefined rules."}),"\n",(0,i.jsx)(n.p,{children:"This means that rules based AI will always give a correct answer based on its predefined rules, but it is significantly slower than a LLM."}),"\n",(0,i.jsx)(n.p,{children:"Industries that can't afford hallucinations like healthcare or space exploration are more likely to use rules based AI on production quality software."}),"\n",(0,i.jsx)(n.h3,{id:"database",children:"Database"}),"\n",(0,i.jsxs)(n.p,{children:["One way to get around the slower nature of a rules based AI is to incorporate the rules into a database. One database that does is called ",(0,i.jsx)(n.a,{href:"https://www.oxfordsemantic.tech/rdfox",children:"RDFox"}),'. The rules based AI is incoporated when the database "reasons" about data.']})]})}function h(e={}){const{wrapper:n}={...(0,a.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},1151:(e,n,t)=>{t.d(n,{Z:()=>o,a:()=>r});var i=t(7294);const a={},s=i.createContext(a);function r(e){const n=i.useContext(s);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:r(e.components),i.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/b7267b49.d881ef91.js b/assets/js/b7267b49.ab66721a.js similarity index 94% rename from assets/js/b7267b49.d881ef91.js rename to assets/js/b7267b49.ab66721a.js index f9009d8..e2fa6ba 100644 --- a/assets/js/b7267b49.d881ef91.js +++ b/assets/js/b7267b49.ab66721a.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocusaurus_classic_typescript=self.webpackChunkdocusaurus_classic_typescript||[]).push([[952],{5650:e=>{e.exports=JSON.parse('{"blogPosts":[{"id":"initial-release","metadata":{"permalink":"/dx-tips/changelog/initial-release","editUrl":"https://github.com/pogi7/dx-tips/tree/main/changelog/test-changelog/index.md","source":"@site/changelog/test-changelog/index.md","title":"test-changelog","description":"Test","date":"2024-05-02T05:32:55.000Z","formattedDate":"May 2, 2024","tags":[{"label":"oml","permalink":"/dx-tips/changelog/tags/oml"},{"label":"vscode","permalink":"/dx-tips/changelog/tags/vscode"}],"readingTime":0.06,"hasTruncateMarker":false,"authors":[{"name":"Aaron Levitt","title":"Software Systems Engineer @ NASA JPL","url":"https://www.opencaesar.io/contributors/Aaron%20Levitt.html","imageURL":"https://www.opencaesar.io/assets/img/aaron.jpeg","key":"levitt"}],"frontMatter":{"slug":"initial-release","title":"test-changelog","authors":["levitt"],"tags":["oml","vscode"]},"unlisted":false},"content":"## Test\\n\\n\x3c!-- ![OML Vision Logo](./vision480x96.png) --\x3e\\n\\n### Added\\n- Initial release"}]}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocusaurus_classic_typescript=self.webpackChunkdocusaurus_classic_typescript||[]).push([[952],{5650:e=>{e.exports=JSON.parse('{"blogPosts":[{"id":"initial-release","metadata":{"permalink":"/dx-tips/changelog/initial-release","editUrl":"https://github.com/pogi7/dx-tips/tree/main/changelog/test-changelog/index.md","source":"@site/changelog/test-changelog/index.md","title":"test-changelog","description":"Test","date":"2024-05-02T06:08:37.000Z","formattedDate":"May 2, 2024","tags":[{"label":"oml","permalink":"/dx-tips/changelog/tags/oml"},{"label":"vscode","permalink":"/dx-tips/changelog/tags/vscode"}],"readingTime":0.06,"hasTruncateMarker":false,"authors":[{"name":"Aaron Levitt","title":"Software Systems Engineer @ NASA JPL","url":"https://www.opencaesar.io/contributors/Aaron%20Levitt.html","imageURL":"https://www.opencaesar.io/assets/img/aaron.jpeg","key":"levitt"}],"frontMatter":{"slug":"initial-release","title":"test-changelog","authors":["levitt"],"tags":["oml","vscode"]},"unlisted":false},"content":"## Test\\n\\n\x3c!-- ![OML Vision Logo](./vision480x96.png) --\x3e\\n\\n### Added\\n- Initial release"}]}')}}]); \ No newline at end of file diff --git a/assets/js/bfc55ce8.7057d0c3.js b/assets/js/bfc55ce8.7057d0c3.js new file mode 100644 index 0000000..e25af91 --- /dev/null +++ b/assets/js/bfc55ce8.7057d0c3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocusaurus_classic_typescript=self.webpackChunkdocusaurus_classic_typescript||[]).push([[424],{1765:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>r,default:()=>h,frontMatter:()=>i,metadata:()=>a,toc:()=>d});var o=n(5893),s=n(1151);const i={sidebar_position:4},r="Standard Development Environments",a={id:"advanced-tips/standard-development-environment",title:"Standard Development Environments",description:"Let's discover the basics of pleasant and effective developer experience in less than 5 minutes.",source:"@site/docs/advanced-tips/standard-development-environment.md",sourceDirName:"advanced-tips",slug:"/advanced-tips/standard-development-environment",permalink:"/dx-tips/docs/advanced-tips/standard-development-environment",draft:!1,unlisted:!1,editUrl:"https://github.com/pogi7/dx-tips/tree/main/docs/advanced-tips/standard-development-environment.md",tags:[],version:"current",sidebarPosition:4,frontMatter:{sidebar_position:4},sidebar:"tutorialSidebar",previous:{title:"Package Managers",permalink:"/dx-tips/docs/advanced-tips/package-manager"},next:{title:"User Experience",permalink:"/dx-tips/docs/advanced-tips/user-experience"}},c={},d=[{value:"Version Control",id:"version-control",level:2},{value:"Git",id:"git",level:3},{value:"Github",id:"github",level:3},{value:"Documenting Code",id:"documenting-code",level:2},{value:"Comments",id:"comments",level:3},{value:"READMEs",id:"readmes",level:3},{value:"Wikis",id:"wikis",level:3}];function l(e){const t={a:"a",admonition:"admonition",h1:"h1",h2:"h2",h3:"h3",li:"li",p:"p",strong:"strong",ul:"ul",...(0,s.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.h1,{id:"standard-development-environments",children:"Standard Development Environments"}),"\n",(0,o.jsxs)(t.p,{children:["Let's discover the basics of pleasant and effective ",(0,o.jsx)(t.strong,{children:"developer experience in less than 5 minutes"}),"."]}),"\n",(0,o.jsx)(t.h2,{id:"version-control",children:"Version Control"}),"\n",(0,o.jsxs)(t.p,{children:[(0,o.jsx)(t.a,{href:"https://www.atlassian.com/git/tutorials/what-is-version-control",children:"Version control"})," is a way to keep track and manage changes to software code."]}),"\n",(0,o.jsx)(t.p,{children:"Version control can allow developer teams to keep track, mitigate, and resolve errors that may arise from code degradation or human error."}),"\n",(0,o.jsx)(t.h3,{id:"git",children:"Git"}),"\n",(0,o.jsx)(t.admonition,{title:"What is Git?",type:"tip",children:(0,o.jsxs)(t.p,{children:[(0,o.jsx)(t.a,{href:"https://www.atlassian.com/git/tutorials/what-is-git",children:"Atlassian"})," does a good job explaining what Git is and the benefits of adopting the technology within a development team."]})}),"\n",(0,o.jsxs)(t.p,{children:["According to ",(0,o.jsx)(t.a,{href:"https://survey.stackoverflow.co/2022#version-control-version-control-system",children:"Stack Overflow's 2022 insights"}),", Git is the de facto version control software that personal and professional developers use."]}),"\n",(0,o.jsx)(t.p,{children:"Git is used for managing code locally on a computer. This computer can be a personal computer, a bare metal server, or a cloud instance."}),"\n",(0,o.jsx)(t.p,{children:"Git stores code in repos. These local repos can be stored on remote hosting services."}),"\n",(0,o.jsx)(t.h3,{id:"github",children:"Github"}),"\n",(0,o.jsx)(t.admonition,{title:"What is Github?",type:"tip",children:(0,o.jsxs)(t.p,{children:[(0,o.jsx)(t.a,{href:"https://docs.github.com/en/get-started/start-your-journey/about-github-and-git",children:"Github"})," does a good job explaining how Git and Github interact with each other and the benefits of using Github."]})}),"\n",(0,o.jsxs)(t.p,{children:["According to ",(0,o.jsx)(t.a,{href:"https://survey.stackoverflow.co/2022#section-version-control-version-control-platforms",children:"Stack Overflow's 2022 insights"}),", Github is the most used version control platform that personal and professional developers use."]}),"\n",(0,o.jsx)(t.p,{children:"Github is used to store Git repos that can be accessed by developers with the correct authorization."}),"\n",(0,o.jsx)(t.p,{children:"For a developer, Github is used for a development team to see new changes in a codebase and keep track of and manage those changes."}),"\n",(0,o.jsxs)(t.p,{children:["An example of a Github repo is shown ",(0,o.jsx)(t.a,{href:"https://github.com/opencaesar/oml-vision",children:"here"})]}),"\n",(0,o.jsx)(t.h2,{id:"documenting-code",children:"Documenting Code"}),"\n",(0,o.jsx)(t.p,{children:"Documenting code is very important because it allows you and the rest of the development team to understand how your code works and is supposed to behave."}),"\n",(0,o.jsx)(t.p,{children:"Documentation helps dev teams onboard new developers much faster and prevent information from being lost due to turnover or forgetting."}),"\n",(0,o.jsx)(t.h3,{id:"comments",children:"Comments"}),"\n",(0,o.jsx)(t.p,{children:"Code comments are very helpful for developers because you can put the code documentation right next to the code."}),"\n",(0,o.jsx)(t.p,{children:"It is highly recommended to follow the documentation standard for your language that your dev team is using."}),"\n",(0,o.jsxs)(t.p,{children:["The list includes some of the most widely used programming languages from ",(0,o.jsx)(t.a,{href:"https://survey.stackoverflow.co/2022#section-most-popular-technologies-programming-scripting-and-markup-languages",children:"Stack Overflow's 2022 insights"}),":"]}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsx)(t.li,{children:(0,o.jsx)(t.a,{href:"https://peps.python.org/pep-0257/",children:"Python"})}),"\n",(0,o.jsx)(t.li,{children:(0,o.jsx)(t.a,{href:"https://www.baeldung.com/javadoc#javadoc-comments",children:"Java"})}),"\n",(0,o.jsx)(t.li,{children:(0,o.jsx)(t.a,{href:"https://tsdoc.org/",children:"Typescript"})}),"\n"]}),"\n",(0,o.jsxs)(t.p,{children:["An example of a Typescript comment that matches a Typescript standard is shown ",(0,o.jsx)(t.a,{href:"https://github.com/opencaesar/oml-vision/blob/0db2cc46778f1441474c0d4aebc071df453cf52d/controller/src/utilities/loaders/loadCommandFiles.ts#L6-L15",children:"here"})]}),"\n",(0,o.jsx)(t.h3,{id:"readmes",children:"READMEs"}),"\n",(0,o.jsx)(t.p,{children:"READMEs are nice to explain higher level functionality of a program, function, class, or piece of software within an app or a piece of software that interacts with your dev team's app."}),"\n",(0,o.jsx)(t.p,{children:"READMEs can be included at any level of a Git repo, but generally recommended at the root or top level of a repo so that all developers will know where the README is."}),"\n",(0,o.jsxs)(t.p,{children:["READMEs can be written in any programming language, but they are generally written in ",(0,o.jsx)(t.a,{href:"https://www.adobe.com/uk/acrobat/resources/document-files/text-files/txt.html",children:"plain text"})," (.txt) or ",(0,o.jsx)(t.a,{href:"https://www.markdownguide.org/",children:"Markdown"})," (.md) files."]}),"\n",(0,o.jsxs)(t.p,{children:["An example of a README.md in a Github repo is shown ",(0,o.jsx)(t.a,{href:"https://github.com/opencaesar/oml-vision/blob/0db2cc46778f1441474c0d4aebc071df453cf52d/README.md",children:"here"})]}),"\n",(0,o.jsx)(t.h3,{id:"wikis",children:"Wikis"}),"\n",(0,o.jsx)(t.p,{children:"Wikis are a good alternative to READMEs when you don't want to store high level documentation about your app inside a Git repo."}),"\n",(0,o.jsxs)(t.p,{children:["According to ",(0,o.jsx)(t.a,{href:"https://survey.stackoverflow.co/2022#section-most-popular-technologies-asynchronous-tools",children:"Stack Overflow's 2022 insights"}),", a very common wiki that dev teams use is ",(0,o.jsx)(t.a,{href:"https://www.atlassian.com/software/confluence",children:"Confluence"})]}),"\n",(0,o.jsxs)(t.p,{children:["An example of a Confluence page detailing the architecture of an app is shown ",(0,o.jsx)(t.a,{href:"https://openmbee.atlassian.net/wiki/spaces/OPENMBEE/pages/320765953/Flexo-MMS+Architecture",children:"here"})]})]})}function h(e={}){const{wrapper:t}={...(0,s.a)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(l,{...e})}):l(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>a,a:()=>r});var o=n(7294);const s={},i=o.createContext(s);function r(e){const t=o.useContext(i);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),o.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/bfc55ce8.9d297c63.js b/assets/js/bfc55ce8.9d297c63.js deleted file mode 100644 index 577f048..0000000 --- a/assets/js/bfc55ce8.9d297c63.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocusaurus_classic_typescript=self.webpackChunkdocusaurus_classic_typescript||[]).push([[424],{1765:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>h,frontMatter:()=>i,metadata:()=>r,toc:()=>d});var o=n(5893),s=n(1151);const i={sidebar_position:6},a="Standard Development Environments",r={id:"advanced-tips/standard-development-environment",title:"Standard Development Environments",description:"Let's discover the basics of pleasant and effective developer experience in less than 5 minutes.",source:"@site/docs/advanced-tips/standard-development-environment.md",sourceDirName:"advanced-tips",slug:"/advanced-tips/standard-development-environment",permalink:"/dx-tips/docs/advanced-tips/standard-development-environment",draft:!1,unlisted:!1,editUrl:"https://github.com/pogi7/dx-tips/tree/main/docs/advanced-tips/standard-development-environment.md",tags:[],version:"current",sidebarPosition:6,frontMatter:{sidebar_position:6},sidebar:"tutorialSidebar",previous:{title:"Package Managers",permalink:"/dx-tips/docs/advanced-tips/package-manager"},next:{title:"Ticket System",permalink:"/dx-tips/docs/advanced-tips/ticket-system"}},c={},d=[{value:"Version Control",id:"version-control",level:2},{value:"Git",id:"git",level:3},{value:"Github",id:"github",level:3},{value:"Documenting Code",id:"documenting-code",level:2},{value:"Comments",id:"comments",level:3},{value:"READMEs",id:"readmes",level:3},{value:"Wikis",id:"wikis",level:3}];function l(e){const t={a:"a",admonition:"admonition",h1:"h1",h2:"h2",h3:"h3",li:"li",p:"p",strong:"strong",ul:"ul",...(0,s.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.h1,{id:"standard-development-environments",children:"Standard Development Environments"}),"\n",(0,o.jsxs)(t.p,{children:["Let's discover the basics of pleasant and effective ",(0,o.jsx)(t.strong,{children:"developer experience in less than 5 minutes"}),"."]}),"\n",(0,o.jsx)(t.h2,{id:"version-control",children:"Version Control"}),"\n",(0,o.jsxs)(t.p,{children:[(0,o.jsx)(t.a,{href:"https://www.atlassian.com/git/tutorials/what-is-version-control",children:"Version control"})," is a way to keep track and manage changes to software code."]}),"\n",(0,o.jsx)(t.p,{children:"Version control can allow developer teams to keep track, mitigate, and resolve errors that may arise from code degradation or human error."}),"\n",(0,o.jsx)(t.h3,{id:"git",children:"Git"}),"\n",(0,o.jsx)(t.admonition,{title:"What is Git?",type:"tip",children:(0,o.jsxs)(t.p,{children:[(0,o.jsx)(t.a,{href:"https://www.atlassian.com/git/tutorials/what-is-git",children:"Atlassian"})," does a good job explaining what Git is and the benefits of adopting the technology within a development team."]})}),"\n",(0,o.jsxs)(t.p,{children:["According to ",(0,o.jsx)(t.a,{href:"https://survey.stackoverflow.co/2022#version-control-version-control-system",children:"Stack Overflow's 2022 insights"}),", Git is the de facto version control software that personal and professional developers use."]}),"\n",(0,o.jsx)(t.p,{children:"Git is used for managing code locally on a computer. This computer can be a personal computer, a bare metal server, or a cloud instance."}),"\n",(0,o.jsx)(t.p,{children:"Git stores code in repos. These local repos can be stored on remote hosting services."}),"\n",(0,o.jsx)(t.h3,{id:"github",children:"Github"}),"\n",(0,o.jsx)(t.admonition,{title:"What is Github?",type:"tip",children:(0,o.jsxs)(t.p,{children:[(0,o.jsx)(t.a,{href:"https://docs.github.com/en/get-started/start-your-journey/about-github-and-git",children:"Github"})," does a good job explaining how Git and Github interact with each other and the benefits of using Github."]})}),"\n",(0,o.jsxs)(t.p,{children:["According to ",(0,o.jsx)(t.a,{href:"https://survey.stackoverflow.co/2022#section-version-control-version-control-platforms",children:"Stack Overflow's 2022 insights"}),", Github is the most used version control platform that personal and professional developers use."]}),"\n",(0,o.jsx)(t.p,{children:"Github is used to store Git repos that can be accessed by developers with the correct authorization."}),"\n",(0,o.jsx)(t.p,{children:"For a developer, Github is used for a development team to see new changes in a codebase and keep track of and manage those changes."}),"\n",(0,o.jsxs)(t.p,{children:["An example of a Github repo is shown ",(0,o.jsx)(t.a,{href:"https://github.com/opencaesar/oml-vision",children:"here"})]}),"\n",(0,o.jsx)(t.h2,{id:"documenting-code",children:"Documenting Code"}),"\n",(0,o.jsx)(t.p,{children:"Documenting code is very important because it allows you and the rest of the development team to understand how your code works and is supposed to behave."}),"\n",(0,o.jsx)(t.p,{children:"Documentation helps dev teams onboard new developers much faster and prevent information from being lost due to turnover or forgetting."}),"\n",(0,o.jsx)(t.h3,{id:"comments",children:"Comments"}),"\n",(0,o.jsx)(t.p,{children:"Code comments are very helpful for developers because you can put the code documentation right next to the code."}),"\n",(0,o.jsx)(t.p,{children:"It is highly recommended to follow the documentation standard for your language that your dev team is using."}),"\n",(0,o.jsxs)(t.p,{children:["The list includes some of the most widely used programming languages from ",(0,o.jsx)(t.a,{href:"https://survey.stackoverflow.co/2022#section-most-popular-technologies-programming-scripting-and-markup-languages",children:"Stack Overflow's 2022 insights"}),":"]}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsx)(t.li,{children:(0,o.jsx)(t.a,{href:"https://peps.python.org/pep-0257/",children:"Python"})}),"\n",(0,o.jsx)(t.li,{children:(0,o.jsx)(t.a,{href:"https://www.baeldung.com/javadoc#javadoc-comments",children:"Java"})}),"\n",(0,o.jsx)(t.li,{children:(0,o.jsx)(t.a,{href:"https://tsdoc.org/",children:"Typescript"})}),"\n"]}),"\n",(0,o.jsxs)(t.p,{children:["An example of a Typescript comment that matches a Typescript standard is shown ",(0,o.jsx)(t.a,{href:"https://github.com/opencaesar/oml-vision/blob/0db2cc46778f1441474c0d4aebc071df453cf52d/controller/src/utilities/loaders/loadCommandFiles.ts#L6-L15",children:"here"})]}),"\n",(0,o.jsx)(t.h3,{id:"readmes",children:"READMEs"}),"\n",(0,o.jsx)(t.p,{children:"READMEs are nice to explain higher level functionality of a program, function, class, or piece of software within an app or a piece of software that interacts with your dev team's app."}),"\n",(0,o.jsx)(t.p,{children:"READMEs can be included at any level of a Git repo, but generally recommended at the root or top level of a repo so that all developers will know where the README is."}),"\n",(0,o.jsxs)(t.p,{children:["READMEs can be written in any programming language, but they are generally written in ",(0,o.jsx)(t.a,{href:"https://www.adobe.com/uk/acrobat/resources/document-files/text-files/txt.html",children:"plain text"})," (.txt) or ",(0,o.jsx)(t.a,{href:"https://www.markdownguide.org/",children:"Markdown"})," (.md) files."]}),"\n",(0,o.jsxs)(t.p,{children:["An example of a README.md in a Github repo is shown ",(0,o.jsx)(t.a,{href:"https://github.com/opencaesar/oml-vision/blob/0db2cc46778f1441474c0d4aebc071df453cf52d/README.md",children:"here"})]}),"\n",(0,o.jsx)(t.h3,{id:"wikis",children:"Wikis"}),"\n",(0,o.jsx)(t.p,{children:"Wikis are a good alternative to READMEs when you don't want to store high level documentation about your app inside a Git repo."}),"\n",(0,o.jsxs)(t.p,{children:["According to ",(0,o.jsx)(t.a,{href:"https://survey.stackoverflow.co/2022#section-most-popular-technologies-asynchronous-tools",children:"Stack Overflow's 2022 insights"}),", a very common wiki that dev teams use is ",(0,o.jsx)(t.a,{href:"https://www.atlassian.com/software/confluence",children:"Confluence"})]}),"\n",(0,o.jsxs)(t.p,{children:["An example of a Confluence page detailing the architecture of an app is shown ",(0,o.jsx)(t.a,{href:"https://openmbee.atlassian.net/wiki/spaces/OPENMBEE/pages/320765953/Flexo-MMS+Architecture",children:"here"})]})]})}function h(e={}){const{wrapper:t}={...(0,s.a)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(l,{...e})}):l(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>r,a:()=>a});var o=n(7294);const s={},i=o.createContext(s);function a(e){const t=o.useContext(i);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),o.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/c3c128b0.3e0cdd8a.js b/assets/js/c3c128b0.3e0cdd8a.js new file mode 100644 index 0000000..f66d40d --- /dev/null +++ b/assets/js/c3c128b0.3e0cdd8a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocusaurus_classic_typescript=self.webpackChunkdocusaurus_classic_typescript||[]).push([[394],{4954:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>h,frontMatter:()=>i,metadata:()=>r,toc:()=>c});var s=n(5893),o=n(1151);const i={sidebar_position:1},a="Agile Development",r={id:"advanced-tips/agile-development",title:"Agile Development",description:"Automated Building and Testing",source:"@site/docs/advanced-tips/agile-development.md",sourceDirName:"advanced-tips",slug:"/advanced-tips/agile-development",permalink:"/dx-tips/docs/advanced-tips/agile-development",draft:!1,unlisted:!1,editUrl:"https://github.com/pogi7/dx-tips/tree/main/docs/advanced-tips/agile-development.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"tutorialSidebar",previous:{title:"Advanced Tips",permalink:"/dx-tips/docs/category/advanced-tips"},next:{title:"Artifical Intelligence",permalink:"/dx-tips/docs/advanced-tips/artificial-intelligence"}},l={},c=[{value:"Automated Building and Testing",id:"automated-building-and-testing",level:2},{value:"CICD Pipelines",id:"cicd-pipelines",level:2},{value:"Git",id:"git",level:3},{value:"Github",id:"github",level:3},{value:"DevSecOps",id:"devsecops",level:2},{value:"Comments",id:"comments",level:3},{value:"READMEs",id:"readmes",level:3},{value:"Wikis",id:"wikis",level:3},{value:"Ticket System",id:"ticket-system",level:2},{value:"Comments",id:"comments-1",level:3},{value:"READMEs",id:"readmes-1",level:3},{value:"Wikis",id:"wikis-1",level:3}];function d(e){const t={a:"a",admonition:"admonition",h1:"h1",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,o.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h1,{id:"agile-development",children:"Agile Development"}),"\n",(0,s.jsx)(t.h2,{id:"automated-building-and-testing",children:"Automated Building and Testing"}),"\n",(0,s.jsx)(t.p,{children:"Automated building and testing software is important to pleasant and effective DX."}),"\n",(0,s.jsx)(t.h2,{id:"cicd-pipelines",children:"CICD Pipelines"}),"\n",(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.a,{href:"https://www.atlassian.com/git/tutorials/what-is-version-control",children:"Version control"})," is a way to keep track and manage changes to software code."]}),"\n",(0,s.jsx)(t.p,{children:"Version control can allow developer teams to keep track, mitigate, and resolve errors that may arise from code degradation or human error."}),"\n",(0,s.jsx)(t.h3,{id:"git",children:"Git"}),"\n",(0,s.jsx)(t.admonition,{title:"What is Git?",type:"tip",children:(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.a,{href:"https://www.atlassian.com/git/tutorials/what-is-git",children:"Atlassian"})," does a good job explaining what Git is and the benefits of adopting the technology within a development team."]})}),"\n",(0,s.jsxs)(t.p,{children:["According to ",(0,s.jsx)(t.a,{href:"https://survey.stackoverflow.co/2022#version-control-version-control-system",children:"Stack Overflow's 2022 insights"}),", Git is the de facto version control software that personal and professional developers use."]}),"\n",(0,s.jsx)(t.p,{children:"Git is used for managing code locally on a computer. This computer can be a personal computer, a bare metal server, or a cloud instance."}),"\n",(0,s.jsx)(t.p,{children:"Git stores code in repos. These local repos can be stored on remote hosting services."}),"\n",(0,s.jsx)(t.h3,{id:"github",children:"Github"}),"\n",(0,s.jsx)(t.admonition,{title:"What is Github?",type:"tip",children:(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.a,{href:"https://docs.github.com/en/get-started/start-your-journey/about-github-and-git",children:"Github"})," does a good job explaining how Git and Github interact with each other and the benefits of using Github."]})}),"\n",(0,s.jsxs)(t.p,{children:["According to ",(0,s.jsx)(t.a,{href:"https://survey.stackoverflow.co/2022#section-version-control-version-control-platforms",children:"Stack Overflow's 2022 insights"}),", Github is the most used version control platform that personal and professional developers use."]}),"\n",(0,s.jsx)(t.p,{children:"Github is used to store Git repos that can be accessed by developers with the correct authorization."}),"\n",(0,s.jsx)(t.p,{children:"For a developer, Github is used for a development team to see new changes in a codebase and keep track of and manage those changes."}),"\n",(0,s.jsxs)(t.p,{children:["An example of a Github repo is shown ",(0,s.jsx)(t.a,{href:"https://github.com/opencaesar/oml-vision",children:"here"})]}),"\n",(0,s.jsx)(t.h2,{id:"devsecops",children:"DevSecOps"}),"\n",(0,s.jsx)(t.p,{children:"Documenting code is very important because it allows you and the rest of the development team to understand how your code works and is supposed to behave."}),"\n",(0,s.jsx)(t.p,{children:"Documentation helps dev teams onboard new developers much faster and prevent information from being lost due to turnover or forgetting."}),"\n",(0,s.jsx)(t.h3,{id:"comments",children:"Comments"}),"\n",(0,s.jsx)(t.p,{children:"Code comments are very helpful for developers because you can put the code documentation right next to the code."}),"\n",(0,s.jsx)(t.p,{children:"It is highly recommended to follow the documentation standard for your language that your dev team is using."}),"\n",(0,s.jsxs)(t.p,{children:["The list includes some of the most widely used programming languages from ",(0,s.jsx)(t.a,{href:"https://survey.stackoverflow.co/2022#section-most-popular-technologies-programming-scripting-and-markup-languages",children:"Stack Overflow's 2022 insights"}),":"]}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://peps.python.org/pep-0257/",children:"Python"})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://www.baeldung.com/javadoc#javadoc-comments",children:"Java"})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://tsdoc.org/",children:"Typescript"})}),"\n"]}),"\n",(0,s.jsxs)(t.p,{children:["An example of a Typescript comment that matches a Typescript standard is shown ",(0,s.jsx)(t.a,{href:"https://github.com/opencaesar/oml-vision/blob/0db2cc46778f1441474c0d4aebc071df453cf52d/controller/src/utilities/loaders/loadCommandFiles.ts#L6-L15",children:"here"})]}),"\n",(0,s.jsx)(t.h3,{id:"readmes",children:"READMEs"}),"\n",(0,s.jsx)(t.p,{children:"READMEs are nice to explain higher level functionality of a program, function, class, or piece of software within an app or a piece of software that interacts with your dev team's app."}),"\n",(0,s.jsx)(t.p,{children:"READMEs can be included at any level of a Git repo, but generally recommended at the root or top level of a repo so that all developers will know where the README is."}),"\n",(0,s.jsxs)(t.p,{children:["READMEs can be written in any programming language, but they are generally written in ",(0,s.jsx)(t.a,{href:"https://www.adobe.com/uk/acrobat/resources/document-files/text-files/txt.html",children:"plain text"})," (.txt) or ",(0,s.jsx)(t.a,{href:"https://www.markdownguide.org/",children:"Markdown"})," (.md) files."]}),"\n",(0,s.jsxs)(t.p,{children:["An example of a README.md in a Github repo is shown ",(0,s.jsx)(t.a,{href:"https://github.com/opencaesar/oml-vision/blob/0db2cc46778f1441474c0d4aebc071df453cf52d/README.md",children:"here"})]}),"\n",(0,s.jsx)(t.h3,{id:"wikis",children:"Wikis"}),"\n",(0,s.jsx)(t.p,{children:"Wikis are a good alternative to READMEs when you don't want to store high level documentation about your app inside a Git repo."}),"\n",(0,s.jsxs)(t.p,{children:["According to ",(0,s.jsx)(t.a,{href:"https://survey.stackoverflow.co/2022#section-most-popular-technologies-asynchronous-tools",children:"Stack Overflow's 2022 insights"}),", a very common wiki that dev teams use is ",(0,s.jsx)(t.a,{href:"https://www.atlassian.com/software/confluence",children:"Confluence"})]}),"\n",(0,s.jsxs)(t.p,{children:["An example of a Confluence page detailing the architecture of an app is shown ",(0,s.jsx)(t.a,{href:"https://openmbee.atlassian.net/wiki/spaces/OPENMBEE/pages/320765953/Flexo-MMS+Architecture",children:"here"})]}),"\n",(0,s.jsx)(t.h2,{id:"ticket-system",children:"Ticket System"}),"\n",(0,s.jsx)(t.p,{children:"Documenting code is very important because it allows you and the rest of the development team to understand how your code works and is supposed to behave."}),"\n",(0,s.jsx)(t.p,{children:"Documentation helps dev teams onboard new developers much faster and prevent information from being lost due to turnover or forgetting."}),"\n",(0,s.jsx)(t.h3,{id:"comments-1",children:"Comments"}),"\n",(0,s.jsx)(t.p,{children:"Code comments are very helpful for developers because you can put the code documentation right next to the code."}),"\n",(0,s.jsx)(t.p,{children:"It is highly recommended to follow the documentation standard for your language that your dev team is using."}),"\n",(0,s.jsxs)(t.p,{children:["The list includes some of the most widely used programming languages from ",(0,s.jsx)(t.a,{href:"https://survey.stackoverflow.co/2022#section-most-popular-technologies-programming-scripting-and-markup-languages",children:"Stack Overflow's 2022 insights"}),":"]}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://peps.python.org/pep-0257/",children:"Python"})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://www.baeldung.com/javadoc#javadoc-comments",children:"Java"})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://tsdoc.org/",children:"Typescript"})}),"\n"]}),"\n",(0,s.jsxs)(t.p,{children:["An example of a Typescript comment that matches a Typescript standard is shown ",(0,s.jsx)(t.a,{href:"https://github.com/opencaesar/oml-vision/blob/0db2cc46778f1441474c0d4aebc071df453cf52d/controller/src/utilities/loaders/loadCommandFiles.ts#L6-L15",children:"here"})]}),"\n",(0,s.jsx)(t.h3,{id:"readmes-1",children:"READMEs"}),"\n",(0,s.jsx)(t.p,{children:"READMEs are nice to explain higher level functionality of a program, function, class, or piece of software within an app or a piece of software that interacts with your dev team's app."}),"\n",(0,s.jsx)(t.p,{children:"READMEs can be included at any level of a Git repo, but generally recommended at the root or top level of a repo so that all developers will know where the README is."}),"\n",(0,s.jsxs)(t.p,{children:["READMEs can be written in any programming language, but they are generally written in ",(0,s.jsx)(t.a,{href:"https://www.adobe.com/uk/acrobat/resources/document-files/text-files/txt.html",children:"plain text"})," (.txt) or ",(0,s.jsx)(t.a,{href:"https://www.markdownguide.org/",children:"Markdown"})," (.md) files."]}),"\n",(0,s.jsxs)(t.p,{children:["An example of a README.md in a Github repo is shown ",(0,s.jsx)(t.a,{href:"https://github.com/opencaesar/oml-vision/blob/0db2cc46778f1441474c0d4aebc071df453cf52d/README.md",children:"here"})]}),"\n",(0,s.jsx)(t.h3,{id:"wikis-1",children:"Wikis"}),"\n",(0,s.jsx)(t.p,{children:"Wikis are a good alternative to READMEs when you don't want to store high level documentation about your app inside a Git repo."}),"\n",(0,s.jsxs)(t.p,{children:["According to ",(0,s.jsx)(t.a,{href:"https://survey.stackoverflow.co/2022#section-most-popular-technologies-asynchronous-tools",children:"Stack Overflow's 2022 insights"}),", a very common wiki that dev teams use is ",(0,s.jsx)(t.a,{href:"https://www.atlassian.com/software/confluence",children:"Confluence"})]}),"\n",(0,s.jsxs)(t.p,{children:["An example of a Confluence page detailing the architecture of an app is shown ",(0,s.jsx)(t.a,{href:"https://openmbee.atlassian.net/wiki/spaces/OPENMBEE/pages/320765953/Flexo-MMS+Architecture",children:"here"})]})]})}function h(e={}){const{wrapper:t}={...(0,o.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>r,a:()=>a});var s=n(7294);const o={},i=s.createContext(o);function a(e){const t=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:a(e.components),s.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/cea8bc23.3b9dd6e6.js b/assets/js/cea8bc23.3b9dd6e6.js deleted file mode 100644 index cba055d..0000000 --- a/assets/js/cea8bc23.3b9dd6e6.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocusaurus_classic_typescript=self.webpackChunkdocusaurus_classic_typescript||[]).push([[922],{3399:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>r,default:()=>h,frontMatter:()=>i,metadata:()=>a,toc:()=>l});var s=n(5893),o=n(1151);const i={sidebar_position:4},r="Open Source Libraries",a={id:"advanced-tips/open-source-libraries",title:"Open Source Libraries",description:"Let's discover the basics of pleasant and effective developer experience in less than 5 minutes.",source:"@site/docs/advanced-tips/open-source-libraries.md",sourceDirName:"advanced-tips",slug:"/advanced-tips/open-source-libraries",permalink:"/dx-tips/docs/advanced-tips/open-source-libraries",draft:!1,unlisted:!1,editUrl:"https://github.com/pogi7/dx-tips/tree/main/docs/advanced-tips/open-source-libraries.md",tags:[],version:"current",sidebarPosition:4,frontMatter:{sidebar_position:4},sidebar:"tutorialSidebar",previous:{title:"DevSecOps",permalink:"/dx-tips/docs/advanced-tips/devsecops"},next:{title:"Package Managers",permalink:"/dx-tips/docs/advanced-tips/package-manager"}},c={},l=[{value:"Version Control",id:"version-control",level:2},{value:"Git",id:"git",level:3},{value:"Github",id:"github",level:3},{value:"Documenting Code",id:"documenting-code",level:2},{value:"Comments",id:"comments",level:3},{value:"READMEs",id:"readmes",level:3},{value:"Wikis",id:"wikis",level:3}];function d(e){const t={a:"a",admonition:"admonition",h1:"h1",h2:"h2",h3:"h3",li:"li",p:"p",strong:"strong",ul:"ul",...(0,o.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h1,{id:"open-source-libraries",children:"Open Source Libraries"}),"\n",(0,s.jsxs)(t.p,{children:["Let's discover the basics of pleasant and effective ",(0,s.jsx)(t.strong,{children:"developer experience in less than 5 minutes"}),"."]}),"\n",(0,s.jsx)(t.h2,{id:"version-control",children:"Version Control"}),"\n",(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.a,{href:"https://www.atlassian.com/git/tutorials/what-is-version-control",children:"Version control"})," is a way to keep track and manage changes to software code."]}),"\n",(0,s.jsx)(t.p,{children:"Version control can allow developer teams to keep track, mitigate, and resolve errors that may arise from code degradation or human error."}),"\n",(0,s.jsx)(t.h3,{id:"git",children:"Git"}),"\n",(0,s.jsx)(t.admonition,{title:"What is Git?",type:"tip",children:(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.a,{href:"https://www.atlassian.com/git/tutorials/what-is-git",children:"Atlassian"})," does a good job explaining what Git is and the benefits of adopting the technology within a development team."]})}),"\n",(0,s.jsxs)(t.p,{children:["According to ",(0,s.jsx)(t.a,{href:"https://survey.stackoverflow.co/2022#version-control-version-control-system",children:"Stack Overflow's 2022 insights"}),", Git is the de facto version control software that personal and professional developers use."]}),"\n",(0,s.jsx)(t.p,{children:"Git is used for managing code locally on a computer. This computer can be a personal computer, a bare metal server, or a cloud instance."}),"\n",(0,s.jsx)(t.p,{children:"Git stores code in repos. These local repos can be stored on remote hosting services."}),"\n",(0,s.jsx)(t.h3,{id:"github",children:"Github"}),"\n",(0,s.jsx)(t.admonition,{title:"What is Github?",type:"tip",children:(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.a,{href:"https://docs.github.com/en/get-started/start-your-journey/about-github-and-git",children:"Github"})," does a good job explaining how Git and Github interact with each other and the benefits of using Github."]})}),"\n",(0,s.jsxs)(t.p,{children:["According to ",(0,s.jsx)(t.a,{href:"https://survey.stackoverflow.co/2022#section-version-control-version-control-platforms",children:"Stack Overflow's 2022 insights"}),", Github is the most used version control platform that personal and professional developers use."]}),"\n",(0,s.jsx)(t.p,{children:"Github is used to store Git repos that can be accessed by developers with the correct authorization."}),"\n",(0,s.jsx)(t.p,{children:"For a developer, Github is used for a development team to see new changes in a codebase and keep track of and manage those changes."}),"\n",(0,s.jsxs)(t.p,{children:["An example of a Github repo is shown ",(0,s.jsx)(t.a,{href:"https://github.com/opencaesar/oml-vision",children:"here"})]}),"\n",(0,s.jsx)(t.h2,{id:"documenting-code",children:"Documenting Code"}),"\n",(0,s.jsx)(t.p,{children:"Documenting code is very important because it allows you and the rest of the development team to understand how your code works and is supposed to behave."}),"\n",(0,s.jsx)(t.p,{children:"Documentation helps dev teams onboard new developers much faster and prevent information from being lost due to turnover or forgetting."}),"\n",(0,s.jsx)(t.h3,{id:"comments",children:"Comments"}),"\n",(0,s.jsx)(t.p,{children:"Code comments are very helpful for developers because you can put the code documentation right next to the code."}),"\n",(0,s.jsx)(t.p,{children:"It is highly recommended to follow the documentation standard for your language that your dev team is using."}),"\n",(0,s.jsxs)(t.p,{children:["The list includes some of the most widely used programming languages from ",(0,s.jsx)(t.a,{href:"https://survey.stackoverflow.co/2022#section-most-popular-technologies-programming-scripting-and-markup-languages",children:"Stack Overflow's 2022 insights"}),":"]}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://peps.python.org/pep-0257/",children:"Python"})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://www.baeldung.com/javadoc#javadoc-comments",children:"Java"})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://tsdoc.org/",children:"Typescript"})}),"\n"]}),"\n",(0,s.jsxs)(t.p,{children:["An example of a Typescript comment that matches a Typescript standard is shown ",(0,s.jsx)(t.a,{href:"https://github.com/opencaesar/oml-vision/blob/0db2cc46778f1441474c0d4aebc071df453cf52d/controller/src/utilities/loaders/loadCommandFiles.ts#L6-L15",children:"here"})]}),"\n",(0,s.jsx)(t.h3,{id:"readmes",children:"READMEs"}),"\n",(0,s.jsx)(t.p,{children:"READMEs are nice to explain higher level functionality of a program, function, class, or piece of software within an app or a piece of software that interacts with your dev team's app."}),"\n",(0,s.jsx)(t.p,{children:"READMEs can be included at any level of a Git repo, but generally recommended at the root or top level of a repo so that all developers will know where the README is."}),"\n",(0,s.jsxs)(t.p,{children:["READMEs can be written in any programming language, but they are generally written in ",(0,s.jsx)(t.a,{href:"https://www.adobe.com/uk/acrobat/resources/document-files/text-files/txt.html",children:"plain text"})," (.txt) or ",(0,s.jsx)(t.a,{href:"https://www.markdownguide.org/",children:"Markdown"})," (.md) files."]}),"\n",(0,s.jsxs)(t.p,{children:["An example of a README.md in a Github repo is shown ",(0,s.jsx)(t.a,{href:"https://github.com/opencaesar/oml-vision/blob/0db2cc46778f1441474c0d4aebc071df453cf52d/README.md",children:"here"})]}),"\n",(0,s.jsx)(t.h3,{id:"wikis",children:"Wikis"}),"\n",(0,s.jsx)(t.p,{children:"Wikis are a good alternative to READMEs when you don't want to store high level documentation about your app inside a Git repo."}),"\n",(0,s.jsxs)(t.p,{children:["According to ",(0,s.jsx)(t.a,{href:"https://survey.stackoverflow.co/2022#section-most-popular-technologies-asynchronous-tools",children:"Stack Overflow's 2022 insights"}),", a very common wiki that dev teams use is ",(0,s.jsx)(t.a,{href:"https://www.atlassian.com/software/confluence",children:"Confluence"})]}),"\n",(0,s.jsxs)(t.p,{children:["An example of a Confluence page detailing the architecture of an app is shown ",(0,s.jsx)(t.a,{href:"https://openmbee.atlassian.net/wiki/spaces/OPENMBEE/pages/320765953/Flexo-MMS+Architecture",children:"here"})]})]})}function h(e={}){const{wrapper:t}={...(0,o.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>a,a:()=>r});var s=n(7294);const o={},i=s.createContext(o);function r(e){const t=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:r(e.components),s.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/eea055cc.b23929d1.js b/assets/js/eea055cc.ab3f99d8.js similarity index 70% rename from assets/js/eea055cc.b23929d1.js rename to assets/js/eea055cc.ab3f99d8.js index 1085275..e496002 100644 --- a/assets/js/eea055cc.b23929d1.js +++ b/assets/js/eea055cc.ab3f99d8.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocusaurus_classic_typescript=self.webpackChunkdocusaurus_classic_typescript||[]).push([[666],{4669:e=>{e.exports=JSON.parse('{"title":"Advanced Tips","description":"Advanced Tips for Pleasant and Effective Developer Experience.","slug":"/category/advanced-tips","permalink":"/dx-tips/docs/category/advanced-tips","navigation":{"previous":{"title":"Basic Tips","permalink":"/dx-tips/docs/intro"},"next":{"title":"Artifical Intelligence","permalink":"/dx-tips/docs/advanced-tips/artificial-intelligence"}}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocusaurus_classic_typescript=self.webpackChunkdocusaurus_classic_typescript||[]).push([[666],{4669:e=>{e.exports=JSON.parse('{"title":"Advanced Tips","description":"Advanced Tips for Pleasant and Effective Developer Experience.","slug":"/category/advanced-tips","permalink":"/dx-tips/docs/category/advanced-tips","navigation":{"previous":{"title":"Basic Tips","permalink":"/dx-tips/docs/intro"},"next":{"title":"Agile Development","permalink":"/dx-tips/docs/advanced-tips/agile-development"}}}')}}]); \ No newline at end of file diff --git a/assets/js/fcab9d40.85c69e30.js b/assets/js/fcab9d40.85c69e30.js deleted file mode 100644 index 0fe0f22..0000000 --- a/assets/js/fcab9d40.85c69e30.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocusaurus_classic_typescript=self.webpackChunkdocusaurus_classic_typescript||[]).push([[565],{9798:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>r,default:()=>h,frontMatter:()=>i,metadata:()=>a,toc:()=>l});var s=n(5893),o=n(1151);const i={sidebar_position:8},r="User Experience",a={id:"advanced-tips/user-experience",title:"User Experience",description:"Let's discover the basics of pleasant and effective developer experience in less than 5 minutes.",source:"@site/docs/advanced-tips/user-experience.md",sourceDirName:"advanced-tips",slug:"/advanced-tips/user-experience",permalink:"/dx-tips/docs/advanced-tips/user-experience",draft:!1,unlisted:!1,editUrl:"https://github.com/pogi7/dx-tips/tree/main/docs/advanced-tips/user-experience.md",tags:[],version:"current",sidebarPosition:8,frontMatter:{sidebar_position:8},sidebar:"tutorialSidebar",previous:{title:"Ticket System",permalink:"/dx-tips/docs/advanced-tips/ticket-system"}},c={},l=[{value:"Version Control",id:"version-control",level:2},{value:"Git",id:"git",level:3},{value:"Github",id:"github",level:3},{value:"Documenting Code",id:"documenting-code",level:2},{value:"Comments",id:"comments",level:3},{value:"READMEs",id:"readmes",level:3},{value:"Wikis",id:"wikis",level:3}];function d(e){const t={a:"a",admonition:"admonition",h1:"h1",h2:"h2",h3:"h3",li:"li",p:"p",strong:"strong",ul:"ul",...(0,o.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h1,{id:"user-experience",children:"User Experience"}),"\n",(0,s.jsxs)(t.p,{children:["Let's discover the basics of pleasant and effective ",(0,s.jsx)(t.strong,{children:"developer experience in less than 5 minutes"}),"."]}),"\n",(0,s.jsx)(t.h2,{id:"version-control",children:"Version Control"}),"\n",(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.a,{href:"https://www.atlassian.com/git/tutorials/what-is-version-control",children:"Version control"})," is a way to keep track and manage changes to software code."]}),"\n",(0,s.jsx)(t.p,{children:"Version control can allow developer teams to keep track, mitigate, and resolve errors that may arise from code degradation or human error."}),"\n",(0,s.jsx)(t.h3,{id:"git",children:"Git"}),"\n",(0,s.jsx)(t.admonition,{title:"What is Git?",type:"tip",children:(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.a,{href:"https://www.atlassian.com/git/tutorials/what-is-git",children:"Atlassian"})," does a good job explaining what Git is and the benefits of adopting the technology within a development team."]})}),"\n",(0,s.jsxs)(t.p,{children:["According to ",(0,s.jsx)(t.a,{href:"https://survey.stackoverflow.co/2022#version-control-version-control-system",children:"Stack Overflow's 2022 insights"}),", Git is the de facto version control software that personal and professional developers use."]}),"\n",(0,s.jsx)(t.p,{children:"Git is used for managing code locally on a computer. This computer can be a personal computer, a bare metal server, or a cloud instance."}),"\n",(0,s.jsx)(t.p,{children:"Git stores code in repos. These local repos can be stored on remote hosting services."}),"\n",(0,s.jsx)(t.h3,{id:"github",children:"Github"}),"\n",(0,s.jsx)(t.admonition,{title:"What is Github?",type:"tip",children:(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.a,{href:"https://docs.github.com/en/get-started/start-your-journey/about-github-and-git",children:"Github"})," does a good job explaining how Git and Github interact with each other and the benefits of using Github."]})}),"\n",(0,s.jsxs)(t.p,{children:["According to ",(0,s.jsx)(t.a,{href:"https://survey.stackoverflow.co/2022#section-version-control-version-control-platforms",children:"Stack Overflow's 2022 insights"}),", Github is the most used version control platform that personal and professional developers use."]}),"\n",(0,s.jsx)(t.p,{children:"Github is used to store Git repos that can be accessed by developers with the correct authorization."}),"\n",(0,s.jsx)(t.p,{children:"For a developer, Github is used for a development team to see new changes in a codebase and keep track of and manage those changes."}),"\n",(0,s.jsxs)(t.p,{children:["An example of a Github repo is shown ",(0,s.jsx)(t.a,{href:"https://github.com/opencaesar/oml-vision",children:"here"})]}),"\n",(0,s.jsx)(t.h2,{id:"documenting-code",children:"Documenting Code"}),"\n",(0,s.jsx)(t.p,{children:"Documenting code is very important because it allows you and the rest of the development team to understand how your code works and is supposed to behave."}),"\n",(0,s.jsx)(t.p,{children:"Documentation helps dev teams onboard new developers much faster and prevent information from being lost due to turnover or forgetting."}),"\n",(0,s.jsx)(t.h3,{id:"comments",children:"Comments"}),"\n",(0,s.jsx)(t.p,{children:"Code comments are very helpful for developers because you can put the code documentation right next to the code."}),"\n",(0,s.jsx)(t.p,{children:"It is highly recommended to follow the documentation standard for your language that your dev team is using."}),"\n",(0,s.jsxs)(t.p,{children:["The list includes some of the most widely used programming languages from ",(0,s.jsx)(t.a,{href:"https://survey.stackoverflow.co/2022#section-most-popular-technologies-programming-scripting-and-markup-languages",children:"Stack Overflow's 2022 insights"}),":"]}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://peps.python.org/pep-0257/",children:"Python"})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://www.baeldung.com/javadoc#javadoc-comments",children:"Java"})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://tsdoc.org/",children:"Typescript"})}),"\n"]}),"\n",(0,s.jsxs)(t.p,{children:["An example of a Typescript comment that matches a Typescript standard is shown ",(0,s.jsx)(t.a,{href:"https://github.com/opencaesar/oml-vision/blob/0db2cc46778f1441474c0d4aebc071df453cf52d/controller/src/utilities/loaders/loadCommandFiles.ts#L6-L15",children:"here"})]}),"\n",(0,s.jsx)(t.h3,{id:"readmes",children:"READMEs"}),"\n",(0,s.jsx)(t.p,{children:"READMEs are nice to explain higher level functionality of a program, function, class, or piece of software within an app or a piece of software that interacts with your dev team's app."}),"\n",(0,s.jsx)(t.p,{children:"READMEs can be included at any level of a Git repo, but generally recommended at the root or top level of a repo so that all developers will know where the README is."}),"\n",(0,s.jsxs)(t.p,{children:["READMEs can be written in any programming language, but they are generally written in ",(0,s.jsx)(t.a,{href:"https://www.adobe.com/uk/acrobat/resources/document-files/text-files/txt.html",children:"plain text"})," (.txt) or ",(0,s.jsx)(t.a,{href:"https://www.markdownguide.org/",children:"Markdown"})," (.md) files."]}),"\n",(0,s.jsxs)(t.p,{children:["An example of a README.md in a Github repo is shown ",(0,s.jsx)(t.a,{href:"https://github.com/opencaesar/oml-vision/blob/0db2cc46778f1441474c0d4aebc071df453cf52d/README.md",children:"here"})]}),"\n",(0,s.jsx)(t.h3,{id:"wikis",children:"Wikis"}),"\n",(0,s.jsx)(t.p,{children:"Wikis are a good alternative to READMEs when you don't want to store high level documentation about your app inside a Git repo."}),"\n",(0,s.jsxs)(t.p,{children:["According to ",(0,s.jsx)(t.a,{href:"https://survey.stackoverflow.co/2022#section-most-popular-technologies-asynchronous-tools",children:"Stack Overflow's 2022 insights"}),", a very common wiki that dev teams use is ",(0,s.jsx)(t.a,{href:"https://www.atlassian.com/software/confluence",children:"Confluence"})]}),"\n",(0,s.jsxs)(t.p,{children:["An example of a Confluence page detailing the architecture of an app is shown ",(0,s.jsx)(t.a,{href:"https://openmbee.atlassian.net/wiki/spaces/OPENMBEE/pages/320765953/Flexo-MMS+Architecture",children:"here"})]})]})}function h(e={}){const{wrapper:t}={...(0,o.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>a,a:()=>r});var s=n(7294);const o={},i=s.createContext(o);function r(e){const t=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:r(e.components),s.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/fcab9d40.d39ad49c.js b/assets/js/fcab9d40.d39ad49c.js new file mode 100644 index 0000000..e55c5d1 --- /dev/null +++ b/assets/js/fcab9d40.d39ad49c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocusaurus_classic_typescript=self.webpackChunkdocusaurus_classic_typescript||[]).push([[565],{9798:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>r,default:()=>h,frontMatter:()=>i,metadata:()=>a,toc:()=>d});var s=n(5893),o=n(1151);const i={sidebar_position:5},r="User Experience",a={id:"advanced-tips/user-experience",title:"User Experience",description:"Let's discover the basics of pleasant and effective developer experience in less than 5 minutes.",source:"@site/docs/advanced-tips/user-experience.md",sourceDirName:"advanced-tips",slug:"/advanced-tips/user-experience",permalink:"/dx-tips/docs/advanced-tips/user-experience",draft:!1,unlisted:!1,editUrl:"https://github.com/pogi7/dx-tips/tree/main/docs/advanced-tips/user-experience.md",tags:[],version:"current",sidebarPosition:5,frontMatter:{sidebar_position:5},sidebar:"tutorialSidebar",previous:{title:"Standard Development Environments",permalink:"/dx-tips/docs/advanced-tips/standard-development-environment"}},c={},d=[{value:"Version Control",id:"version-control",level:2},{value:"Git",id:"git",level:3},{value:"Github",id:"github",level:3},{value:"Documenting Code",id:"documenting-code",level:2},{value:"Comments",id:"comments",level:3},{value:"READMEs",id:"readmes",level:3},{value:"Wikis",id:"wikis",level:3}];function l(e){const t={a:"a",admonition:"admonition",h1:"h1",h2:"h2",h3:"h3",li:"li",p:"p",strong:"strong",ul:"ul",...(0,o.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h1,{id:"user-experience",children:"User Experience"}),"\n",(0,s.jsxs)(t.p,{children:["Let's discover the basics of pleasant and effective ",(0,s.jsx)(t.strong,{children:"developer experience in less than 5 minutes"}),"."]}),"\n",(0,s.jsx)(t.h2,{id:"version-control",children:"Version Control"}),"\n",(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.a,{href:"https://www.atlassian.com/git/tutorials/what-is-version-control",children:"Version control"})," is a way to keep track and manage changes to software code."]}),"\n",(0,s.jsx)(t.p,{children:"Version control can allow developer teams to keep track, mitigate, and resolve errors that may arise from code degradation or human error."}),"\n",(0,s.jsx)(t.h3,{id:"git",children:"Git"}),"\n",(0,s.jsx)(t.admonition,{title:"What is Git?",type:"tip",children:(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.a,{href:"https://www.atlassian.com/git/tutorials/what-is-git",children:"Atlassian"})," does a good job explaining what Git is and the benefits of adopting the technology within a development team."]})}),"\n",(0,s.jsxs)(t.p,{children:["According to ",(0,s.jsx)(t.a,{href:"https://survey.stackoverflow.co/2022#version-control-version-control-system",children:"Stack Overflow's 2022 insights"}),", Git is the de facto version control software that personal and professional developers use."]}),"\n",(0,s.jsx)(t.p,{children:"Git is used for managing code locally on a computer. This computer can be a personal computer, a bare metal server, or a cloud instance."}),"\n",(0,s.jsx)(t.p,{children:"Git stores code in repos. These local repos can be stored on remote hosting services."}),"\n",(0,s.jsx)(t.h3,{id:"github",children:"Github"}),"\n",(0,s.jsx)(t.admonition,{title:"What is Github?",type:"tip",children:(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.a,{href:"https://docs.github.com/en/get-started/start-your-journey/about-github-and-git",children:"Github"})," does a good job explaining how Git and Github interact with each other and the benefits of using Github."]})}),"\n",(0,s.jsxs)(t.p,{children:["According to ",(0,s.jsx)(t.a,{href:"https://survey.stackoverflow.co/2022#section-version-control-version-control-platforms",children:"Stack Overflow's 2022 insights"}),", Github is the most used version control platform that personal and professional developers use."]}),"\n",(0,s.jsx)(t.p,{children:"Github is used to store Git repos that can be accessed by developers with the correct authorization."}),"\n",(0,s.jsx)(t.p,{children:"For a developer, Github is used for a development team to see new changes in a codebase and keep track of and manage those changes."}),"\n",(0,s.jsxs)(t.p,{children:["An example of a Github repo is shown ",(0,s.jsx)(t.a,{href:"https://github.com/opencaesar/oml-vision",children:"here"})]}),"\n",(0,s.jsx)(t.h2,{id:"documenting-code",children:"Documenting Code"}),"\n",(0,s.jsx)(t.p,{children:"Documenting code is very important because it allows you and the rest of the development team to understand how your code works and is supposed to behave."}),"\n",(0,s.jsx)(t.p,{children:"Documentation helps dev teams onboard new developers much faster and prevent information from being lost due to turnover or forgetting."}),"\n",(0,s.jsx)(t.h3,{id:"comments",children:"Comments"}),"\n",(0,s.jsx)(t.p,{children:"Code comments are very helpful for developers because you can put the code documentation right next to the code."}),"\n",(0,s.jsx)(t.p,{children:"It is highly recommended to follow the documentation standard for your language that your dev team is using."}),"\n",(0,s.jsxs)(t.p,{children:["The list includes some of the most widely used programming languages from ",(0,s.jsx)(t.a,{href:"https://survey.stackoverflow.co/2022#section-most-popular-technologies-programming-scripting-and-markup-languages",children:"Stack Overflow's 2022 insights"}),":"]}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://peps.python.org/pep-0257/",children:"Python"})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://www.baeldung.com/javadoc#javadoc-comments",children:"Java"})}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://tsdoc.org/",children:"Typescript"})}),"\n"]}),"\n",(0,s.jsxs)(t.p,{children:["An example of a Typescript comment that matches a Typescript standard is shown ",(0,s.jsx)(t.a,{href:"https://github.com/opencaesar/oml-vision/blob/0db2cc46778f1441474c0d4aebc071df453cf52d/controller/src/utilities/loaders/loadCommandFiles.ts#L6-L15",children:"here"})]}),"\n",(0,s.jsx)(t.h3,{id:"readmes",children:"READMEs"}),"\n",(0,s.jsx)(t.p,{children:"READMEs are nice to explain higher level functionality of a program, function, class, or piece of software within an app or a piece of software that interacts with your dev team's app."}),"\n",(0,s.jsx)(t.p,{children:"READMEs can be included at any level of a Git repo, but generally recommended at the root or top level of a repo so that all developers will know where the README is."}),"\n",(0,s.jsxs)(t.p,{children:["READMEs can be written in any programming language, but they are generally written in ",(0,s.jsx)(t.a,{href:"https://www.adobe.com/uk/acrobat/resources/document-files/text-files/txt.html",children:"plain text"})," (.txt) or ",(0,s.jsx)(t.a,{href:"https://www.markdownguide.org/",children:"Markdown"})," (.md) files."]}),"\n",(0,s.jsxs)(t.p,{children:["An example of a README.md in a Github repo is shown ",(0,s.jsx)(t.a,{href:"https://github.com/opencaesar/oml-vision/blob/0db2cc46778f1441474c0d4aebc071df453cf52d/README.md",children:"here"})]}),"\n",(0,s.jsx)(t.h3,{id:"wikis",children:"Wikis"}),"\n",(0,s.jsx)(t.p,{children:"Wikis are a good alternative to READMEs when you don't want to store high level documentation about your app inside a Git repo."}),"\n",(0,s.jsxs)(t.p,{children:["According to ",(0,s.jsx)(t.a,{href:"https://survey.stackoverflow.co/2022#section-most-popular-technologies-asynchronous-tools",children:"Stack Overflow's 2022 insights"}),", a very common wiki that dev teams use is ",(0,s.jsx)(t.a,{href:"https://www.atlassian.com/software/confluence",children:"Confluence"})]}),"\n",(0,s.jsxs)(t.p,{children:["An example of a Confluence page detailing the architecture of an app is shown ",(0,s.jsx)(t.a,{href:"https://openmbee.atlassian.net/wiki/spaces/OPENMBEE/pages/320765953/Flexo-MMS+Architecture",children:"here"})]})]})}function h(e={}){const{wrapper:t}={...(0,o.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(l,{...e})}):l(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>a,a:()=>r});var s=n(7294);const o={},i=s.createContext(o);function r(e){const t=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:r(e.components),s.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/main.6f0923d1.js b/assets/js/main.6f0923d1.js deleted file mode 100644 index 4d98644..0000000 --- a/assets/js/main.6f0923d1.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! For license information please see main.6f0923d1.js.LICENSE.txt */ -(self.webpackChunkdocusaurus_classic_typescript=self.webpackChunkdocusaurus_classic_typescript||[]).push([[179],{997:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});n(7294);var r=n(8356),o=n.n(r),a=n(6887);const i={"01a85c17":[()=>Promise.all([n.e(532),n.e(13)]).then(n.bind(n,2864)),"@theme/BlogTagsListPage",2864],"0e384e19":[()=>n.e(671).then(n.bind(n,2445)),"@site/docs/intro.md",2445],"14eb3368":[()=>Promise.all([n.e(532),n.e(817)]).then(n.bind(n,853)),"@theme/DocCategoryGeneratedIndexPage",853],17896441:[()=>Promise.all([n.e(532),n.e(34),n.e(918)]).then(n.bind(n,2889)),"@theme/DocItem",2889],"1df93b7f":[()=>Promise.all([n.e(532),n.e(237)]).then(n.bind(n,2833)),"@site/src/pages/index.tsx",2833],"1f391b9e":[()=>Promise.all([n.e(532),n.e(34),n.e(85)]).then(n.bind(n,6252)),"@theme/MDXPage",6252],"2ff6d7cf":[()=>n.e(267).then(n.bind(n,6977)),"@site/changelog/test-changelog/index.md",6977],"393be207":[()=>n.e(414).then(n.bind(n,9386)),"@site/src/pages/markdown-page.md",9386],"478ccd0c":[()=>n.e(604).then(n.t.bind(n,5745,19)),"/home/runner/work/dx-tips/dx-tips/.docusaurus/docusaurus-plugin-content-pages/default/plugin-route-context-module-100.json",5745],"48b79c08":[()=>n.e(572).then(n.bind(n,9286)),"@site/docs/advanced-tips/package-manager.md",9286],"505e22a4":[()=>n.e(501).then(n.bind(n,2139)),"@site/changelog/test-changelog/index.md?truncated=true",2139],"5e95c892":[()=>n.e(661).then(n.bind(n,4942)),"@theme/DocsRoot",4942],"5e9f5e1a":[()=>Promise.resolve().then(n.bind(n,6809)),"@generated/docusaurus.config",6809],"5fb53fab":[()=>n.e(770).then(n.t.bind(n,5264,19)),"~blog/default/dx-tips-changelog-tags-tags-3aa.json",5264],"6875c492":[()=>Promise.all([n.e(532),n.e(34),n.e(419),n.e(610)]).then(n.bind(n,4883)),"@theme/BlogTagsPostsPage",4883],"6abc5102":[()=>n.e(273).then(n.t.bind(n,7359,19)),"~blog/default/dx-tips-changelog-tags-oml-090-list.json",7359],"6d3dc6db":[()=>n.e(930).then(n.bind(n,2287)),"@site/docs/advanced-tips/automated-build-test.md",2287],"703ff853":[()=>n.e(830).then(n.bind(n,7193)),"@site/docs/advanced-tips/devsecops.md",7193],"814f3328":[()=>n.e(535).then(n.t.bind(n,5641,19)),"~blog/default/blog-post-list-prop-default.json",5641],"838d5ceb":[()=>n.e(706).then(n.bind(n,739)),"@site/docs/advanced-tips/ticket-system.md",739],"935f2afb":[()=>n.e(53).then(n.t.bind(n,1109,19)),"~docs/default/version-current-metadata-prop-751.json",1109],"9beb9c1c":[()=>n.e(208).then(n.t.bind(n,6173,19)),"~blog/default/dx-tips-changelog-tags-vscode-9ac-list.json",6173],"9e4087bc":[()=>n.e(608).then(n.bind(n,8151)),"@theme/BlogArchivePage",8151],"9fe48d39":[()=>n.e(54).then(n.t.bind(n,3769,19)),"/home/runner/work/dx-tips/dx-tips/.docusaurus/docusaurus-plugin-content-docs/default/plugin-route-context-module-100.json",3769],a6aa9e1f:[()=>Promise.all([n.e(532),n.e(34),n.e(419),n.e(89)]).then(n.bind(n,9928)),"@theme/BlogListPage",9928],a7bd4aaa:[()=>n.e(518).then(n.bind(n,604)),"@theme/DocVersionRoot",604],a94703ab:[()=>Promise.all([n.e(532),n.e(368)]).then(n.bind(n,163)),"@theme/DocRoot",163],b69986af:[()=>n.e(744).then(n.bind(n,574)),"@site/docs/advanced-tips/artificial-intelligence.md",574],b7267b49:[()=>n.e(952).then(n.t.bind(n,5650,19)),"~blog/default/dx-tips-changelog-archive-93c.json",5650],bfc55ce8:[()=>n.e(424).then(n.bind(n,1765)),"@site/docs/advanced-tips/standard-development-environment.md",1765],c4569e9e:[()=>n.e(240).then(n.t.bind(n,341,19)),"~blog/default/dx-tips-changelog-tags-oml-090.json",341],ccc49370:[()=>Promise.all([n.e(532),n.e(34),n.e(419),n.e(103)]).then(n.bind(n,324)),"@theme/BlogPostPage",324],cea8bc23:[()=>n.e(922).then(n.bind(n,3399)),"@site/docs/advanced-tips/open-source-libraries.md",3399],d994caac:[()=>n.e(94).then(n.t.bind(n,1637,19)),"~blog/default/dx-tips-changelog-tags-vscode-9ac.json",1637],eea055cc:[()=>n.e(666).then(n.t.bind(n,4669,19)),"~docs/default/category-dx-tipsdocs-tutorialsidebar-category-advanced-tips-f39.json",4669],efc64ae6:[()=>n.e(11).then(n.t.bind(n,4469,19)),"/home/runner/work/dx-tips/dx-tips/.docusaurus/docusaurus-plugin-content-blog/default/plugin-route-context-module-100.json",4469],f5b2ab83:[()=>n.e(146).then(n.t.bind(n,6504,19)),"~blog/default/dx-tips-changelog-ff0.json",6504],fcab9d40:[()=>n.e(565).then(n.bind(n,9798)),"@site/docs/advanced-tips/user-experience.md",9798]};var l=n(5893);function s(e){let{error:t,retry:n,pastDelay:r}=e;return t?(0,l.jsxs)("div",{style:{textAlign:"center",color:"#fff",backgroundColor:"#fa383e",borderColor:"#fa383e",borderStyle:"solid",borderRadius:"0.25rem",borderWidth:"1px",boxSizing:"border-box",display:"block",padding:"1rem",flex:"0 0 50%",marginLeft:"25%",marginRight:"25%",marginTop:"5rem",maxWidth:"50%",width:"100%"},children:[(0,l.jsx)("p",{children:String(t)}),(0,l.jsx)("div",{children:(0,l.jsx)("button",{type:"button",onClick:n,children:"Retry"})})]}):r?(0,l.jsx)("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"},children:(0,l.jsx)("svg",{id:"loader",style:{width:128,height:110,position:"absolute",top:"calc(100vh - 64%)"},viewBox:"0 0 45 45",xmlns:"http://www.w3.org/2000/svg",stroke:"#61dafb",children:(0,l.jsxs)("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2",children:[(0,l.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,l.jsx)("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,l.jsx)("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,l.jsx)("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,l.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,l.jsx)("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,l.jsx)("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,l.jsx)("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,l.jsx)("circle",{cx:"22",cy:"22",r:"8",children:(0,l.jsx)("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"})})]})})}):null}var u=n(5304),c=n(9656);function d(e,t){if("*"===e)return o()({loading:s,loader:()=>n.e(868).then(n.bind(n,4336)),modules:["@theme/NotFound"],webpack:()=>[4336],render(e,t){const n=e.default;return(0,l.jsx)(c.z,{value:{plugin:{name:"native",id:"default"}},children:(0,l.jsx)(n,{...t})})}});const r=a[`${e}-${t}`],d={},p=[],f=[],m=(0,u.Z)(r);return Object.entries(m).forEach((e=>{let[t,n]=e;const r=i[n];r&&(d[t]=r[0],p.push(r[1]),f.push(r[2]))})),o().Map({loading:s,loader:d,modules:p,webpack:()=>f,render(t,n){const o=JSON.parse(JSON.stringify(r));Object.entries(t).forEach((t=>{let[n,r]=t;const a=r.default;if(!a)throw new Error(`The page component at ${e} doesn't have a default export. This makes it impossible to render anything. Consider default-exporting a React component.`);"object"!=typeof a&&"function"!=typeof a||Object.keys(r).filter((e=>"default"!==e)).forEach((e=>{a[e]=r[e]}));let i=o;const l=n.split(".");l.slice(0,-1).forEach((e=>{i=i[e]})),i[l[l.length-1]]=a}));const a=o.__comp;delete o.__comp;const i=o.__context;return delete o.__context,(0,l.jsx)(c.z,{value:i,children:(0,l.jsx)(a,{...o,...n})})}})}const p=[{path:"/dx-tips/changelog",component:d("/dx-tips/changelog","b2a"),exact:!0},{path:"/dx-tips/changelog/archive",component:d("/dx-tips/changelog/archive","09f"),exact:!0},{path:"/dx-tips/changelog/initial-release",component:d("/dx-tips/changelog/initial-release","817"),exact:!0},{path:"/dx-tips/changelog/tags",component:d("/dx-tips/changelog/tags","8f8"),exact:!0},{path:"/dx-tips/changelog/tags/oml",component:d("/dx-tips/changelog/tags/oml","357"),exact:!0},{path:"/dx-tips/changelog/tags/vscode",component:d("/dx-tips/changelog/tags/vscode","9c7"),exact:!0},{path:"/dx-tips/markdown-page",component:d("/dx-tips/markdown-page","ee3"),exact:!0},{path:"/dx-tips/docs",component:d("/dx-tips/docs","762"),routes:[{path:"/dx-tips/docs",component:d("/dx-tips/docs","d9f"),routes:[{path:"/dx-tips/docs",component:d("/dx-tips/docs","3c4"),routes:[{path:"/dx-tips/docs/advanced-tips/artificial-intelligence",component:d("/dx-tips/docs/advanced-tips/artificial-intelligence","67f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/dx-tips/docs/advanced-tips/automated-build-test",component:d("/dx-tips/docs/advanced-tips/automated-build-test","2ab"),exact:!0,sidebar:"tutorialSidebar"},{path:"/dx-tips/docs/advanced-tips/devsecops",component:d("/dx-tips/docs/advanced-tips/devsecops","ba8"),exact:!0,sidebar:"tutorialSidebar"},{path:"/dx-tips/docs/advanced-tips/open-source-libraries",component:d("/dx-tips/docs/advanced-tips/open-source-libraries","bc3"),exact:!0,sidebar:"tutorialSidebar"},{path:"/dx-tips/docs/advanced-tips/package-manager",component:d("/dx-tips/docs/advanced-tips/package-manager","f6c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/dx-tips/docs/advanced-tips/standard-development-environment",component:d("/dx-tips/docs/advanced-tips/standard-development-environment","1e4"),exact:!0,sidebar:"tutorialSidebar"},{path:"/dx-tips/docs/advanced-tips/ticket-system",component:d("/dx-tips/docs/advanced-tips/ticket-system","02d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/dx-tips/docs/advanced-tips/user-experience",component:d("/dx-tips/docs/advanced-tips/user-experience","e03"),exact:!0,sidebar:"tutorialSidebar"},{path:"/dx-tips/docs/category/advanced-tips",component:d("/dx-tips/docs/category/advanced-tips","fa2"),exact:!0,sidebar:"tutorialSidebar"},{path:"/dx-tips/docs/intro",component:d("/dx-tips/docs/intro","7d7"),exact:!0,sidebar:"tutorialSidebar"}]}]}]},{path:"/dx-tips/",component:d("/dx-tips/","f62"),exact:!0},{path:"*",component:d("*")}]},5351:(e,t,n)=>{var r,o;!function(){var a,i,l,s,u,c,d,p,f,m,h,g,y,v,b,w,k,x,S,_,E,O,j,C,P,T,I,A,N,L,R=function(e){var t=new R.Builder;return t.pipeline.add(R.trimmer,R.stopWordFilter,R.stemmer),t.searchPipeline.add(R.stemmer),e.call(t,t),t.build()};R.version="2.3.9",R.utils={},R.utils.warn=(a=this,function(e){a.console&&console.warn&&console.warn(e)}),R.utils.asString=function(e){return null==e?"":e.toString()},R.utils.clone=function(e){if(null==e)return e;for(var t=Object.create(null),n=Object.keys(e),r=0;r0){var s=R.utils.clone(t)||{};s.position=[i,l],s.index=o.length,o.push(new R.Token(n.slice(i,a),s))}i=a+1}}return o},R.tokenizer.separator=/[\s\-]+/,R.Pipeline=function(){this._stack=[]},R.Pipeline.registeredFunctions=Object.create(null),R.Pipeline.registerFunction=function(e,t){t in this.registeredFunctions&&R.utils.warn("Overwriting existing registered function: "+t),e.label=t,R.Pipeline.registeredFunctions[e.label]=e},R.Pipeline.warnIfFunctionNotRegistered=function(e){e.label&&e.label in this.registeredFunctions||R.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",e)},R.Pipeline.load=function(e){var t=new R.Pipeline;return e.forEach((function(e){var n=R.Pipeline.registeredFunctions[e];if(!n)throw new Error("Cannot load unregistered function: "+e);t.add(n)})),t},R.Pipeline.prototype.add=function(){Array.prototype.slice.call(arguments).forEach((function(e){R.Pipeline.warnIfFunctionNotRegistered(e),this._stack.push(e)}),this)},R.Pipeline.prototype.after=function(e,t){R.Pipeline.warnIfFunctionNotRegistered(t);var n=this._stack.indexOf(e);if(-1==n)throw new Error("Cannot find existingFn");n+=1,this._stack.splice(n,0,t)},R.Pipeline.prototype.before=function(e,t){R.Pipeline.warnIfFunctionNotRegistered(t);var n=this._stack.indexOf(e);if(-1==n)throw new Error("Cannot find existingFn");this._stack.splice(n,0,t)},R.Pipeline.prototype.remove=function(e){var t=this._stack.indexOf(e);-1!=t&&this._stack.splice(t,1)},R.Pipeline.prototype.run=function(e){for(var t=this._stack.length,n=0;n1&&(ae&&(n=o),a!=e);)r=n-t,o=t+Math.floor(r/2),a=this.elements[2*o];return a==e||a>e?2*o:al?u+=2:i==l&&(t+=n[s+1]*r[u+1],s+=2,u+=2);return t},R.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},R.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),t=1,n=0;t0){var a,i=o.str.charAt(0);i in o.node.edges?a=o.node.edges[i]:(a=new R.TokenSet,o.node.edges[i]=a),1==o.str.length&&(a.final=!0),r.push({node:a,editsRemaining:o.editsRemaining,str:o.str.slice(1)})}if(0!=o.editsRemaining){if("*"in o.node.edges)var l=o.node.edges["*"];else{l=new R.TokenSet;o.node.edges["*"]=l}if(0==o.str.length&&(l.final=!0),r.push({node:l,editsRemaining:o.editsRemaining-1,str:o.str}),o.str.length>1&&r.push({node:o.node,editsRemaining:o.editsRemaining-1,str:o.str.slice(1)}),1==o.str.length&&(o.node.final=!0),o.str.length>=1){if("*"in o.node.edges)var s=o.node.edges["*"];else{s=new R.TokenSet;o.node.edges["*"]=s}1==o.str.length&&(s.final=!0),r.push({node:s,editsRemaining:o.editsRemaining-1,str:o.str.slice(1)})}if(o.str.length>1){var u,c=o.str.charAt(0),d=o.str.charAt(1);d in o.node.edges?u=o.node.edges[d]:(u=new R.TokenSet,o.node.edges[d]=u),1==o.str.length&&(u.final=!0),r.push({node:u,editsRemaining:o.editsRemaining-1,str:c+o.str.slice(2)})}}}return n},R.TokenSet.fromString=function(e){for(var t=new R.TokenSet,n=t,r=0,o=e.length;r=e;t--){var n=this.uncheckedNodes[t],r=n.child.toString();r in this.minimizedNodes?n.parent.edges[n.char]=this.minimizedNodes[r]:(n.child._str=r,this.minimizedNodes[r]=n.child),this.uncheckedNodes.pop()}},R.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},R.Index.prototype.search=function(e){return this.query((function(t){new R.QueryParser(e,t).parse()}))},R.Index.prototype.query=function(e){for(var t=new R.Query(this.fields),n=Object.create(null),r=Object.create(null),o=Object.create(null),a=Object.create(null),i=Object.create(null),l=0;l1?1:e},R.Builder.prototype.k1=function(e){this._k1=e},R.Builder.prototype.add=function(e,t){var n=e[this._ref],r=Object.keys(this._fields);this._documents[n]=t||{},this.documentCount+=1;for(var o=0;o=this.length)return R.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},R.QueryLexer.prototype.width=function(){return this.pos-this.start},R.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},R.QueryLexer.prototype.backup=function(){this.pos-=1},R.QueryLexer.prototype.acceptDigitRun=function(){var e,t;do{t=(e=this.next()).charCodeAt(0)}while(t>47&&t<58);e!=R.QueryLexer.EOS&&this.backup()},R.QueryLexer.prototype.more=function(){return this.pos1&&(e.backup(),e.emit(R.QueryLexer.TERM)),e.ignore(),e.more())return R.QueryLexer.lexText},R.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(R.QueryLexer.EDIT_DISTANCE),R.QueryLexer.lexText},R.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(R.QueryLexer.BOOST),R.QueryLexer.lexText},R.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(R.QueryLexer.TERM)},R.QueryLexer.termSeparator=R.tokenizer.separator,R.QueryLexer.lexText=function(e){for(;;){var t=e.next();if(t==R.QueryLexer.EOS)return R.QueryLexer.lexEOS;if(92!=t.charCodeAt(0)){if(":"==t)return R.QueryLexer.lexField;if("~"==t)return e.backup(),e.width()>0&&e.emit(R.QueryLexer.TERM),R.QueryLexer.lexEditDistance;if("^"==t)return e.backup(),e.width()>0&&e.emit(R.QueryLexer.TERM),R.QueryLexer.lexBoost;if("+"==t&&1===e.width())return e.emit(R.QueryLexer.PRESENCE),R.QueryLexer.lexText;if("-"==t&&1===e.width())return e.emit(R.QueryLexer.PRESENCE),R.QueryLexer.lexText;if(t.match(R.QueryLexer.termSeparator))return R.QueryLexer.lexTerm}else e.escapeCharacter()}},R.QueryParser=function(e,t){this.lexer=new R.QueryLexer(e),this.query=t,this.currentClause={},this.lexemeIdx=0},R.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=R.QueryParser.parseClause;e;)e=e(this);return this.query},R.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},R.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},R.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},R.QueryParser.parseClause=function(e){var t=e.peekLexeme();if(null!=t)switch(t.type){case R.QueryLexer.PRESENCE:return R.QueryParser.parsePresence;case R.QueryLexer.FIELD:return R.QueryParser.parseField;case R.QueryLexer.TERM:return R.QueryParser.parseTerm;default:var n="expected either a field or a term, found "+t.type;throw t.str.length>=1&&(n+=" with value '"+t.str+"'"),new R.QueryParseError(n,t.start,t.end)}},R.QueryParser.parsePresence=function(e){var t=e.consumeLexeme();if(null!=t){switch(t.str){case"-":e.currentClause.presence=R.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=R.Query.presence.REQUIRED;break;default:var n="unrecognised presence operator'"+t.str+"'";throw new R.QueryParseError(n,t.start,t.end)}var r=e.peekLexeme();if(null==r){n="expecting term or field, found nothing";throw new R.QueryParseError(n,t.start,t.end)}switch(r.type){case R.QueryLexer.FIELD:return R.QueryParser.parseField;case R.QueryLexer.TERM:return R.QueryParser.parseTerm;default:n="expecting term or field, found '"+r.type+"'";throw new R.QueryParseError(n,r.start,r.end)}}},R.QueryParser.parseField=function(e){var t=e.consumeLexeme();if(null!=t){if(-1==e.query.allFields.indexOf(t.str)){var n=e.query.allFields.map((function(e){return"'"+e+"'"})).join(", "),r="unrecognised field '"+t.str+"', possible fields: "+n;throw new R.QueryParseError(r,t.start,t.end)}e.currentClause.fields=[t.str];var o=e.peekLexeme();if(null==o){r="expecting term, found nothing";throw new R.QueryParseError(r,t.start,t.end)}if(o.type===R.QueryLexer.TERM)return R.QueryParser.parseTerm;r="expecting term, found '"+o.type+"'";throw new R.QueryParseError(r,o.start,o.end)}},R.QueryParser.parseTerm=function(e){var t=e.consumeLexeme();if(null!=t){e.currentClause.term=t.str.toLowerCase(),-1!=t.str.indexOf("*")&&(e.currentClause.usePipeline=!1);var n=e.peekLexeme();if(null!=n)switch(n.type){case R.QueryLexer.TERM:return e.nextClause(),R.QueryParser.parseTerm;case R.QueryLexer.FIELD:return e.nextClause(),R.QueryParser.parseField;case R.QueryLexer.EDIT_DISTANCE:return R.QueryParser.parseEditDistance;case R.QueryLexer.BOOST:return R.QueryParser.parseBoost;case R.QueryLexer.PRESENCE:return e.nextClause(),R.QueryParser.parsePresence;default:var r="Unexpected lexeme type '"+n.type+"'";throw new R.QueryParseError(r,n.start,n.end)}else e.nextClause()}},R.QueryParser.parseEditDistance=function(e){var t=e.consumeLexeme();if(null!=t){var n=parseInt(t.str,10);if(isNaN(n)){var r="edit distance must be numeric";throw new R.QueryParseError(r,t.start,t.end)}e.currentClause.editDistance=n;var o=e.peekLexeme();if(null!=o)switch(o.type){case R.QueryLexer.TERM:return e.nextClause(),R.QueryParser.parseTerm;case R.QueryLexer.FIELD:return e.nextClause(),R.QueryParser.parseField;case R.QueryLexer.EDIT_DISTANCE:return R.QueryParser.parseEditDistance;case R.QueryLexer.BOOST:return R.QueryParser.parseBoost;case R.QueryLexer.PRESENCE:return e.nextClause(),R.QueryParser.parsePresence;default:r="Unexpected lexeme type '"+o.type+"'";throw new R.QueryParseError(r,o.start,o.end)}else e.nextClause()}},R.QueryParser.parseBoost=function(e){var t=e.consumeLexeme();if(null!=t){var n=parseInt(t.str,10);if(isNaN(n)){var r="boost must be numeric";throw new R.QueryParseError(r,t.start,t.end)}e.currentClause.boost=n;var o=e.peekLexeme();if(null!=o)switch(o.type){case R.QueryLexer.TERM:return e.nextClause(),R.QueryParser.parseTerm;case R.QueryLexer.FIELD:return e.nextClause(),R.QueryParser.parseField;case R.QueryLexer.EDIT_DISTANCE:return R.QueryParser.parseEditDistance;case R.QueryLexer.BOOST:return R.QueryParser.parseBoost;case R.QueryLexer.PRESENCE:return e.nextClause(),R.QueryParser.parsePresence;default:r="Unexpected lexeme type '"+o.type+"'";throw new R.QueryParseError(r,o.start,o.end)}else e.nextClause()}},void 0===(o="function"==typeof(r=function(){return R})?r.call(t,n,t,e):r)||(e.exports=o)}()},8121:(e,t,n)=>{"use strict";n.d(t,{_:()=>a,t:()=>i});var r=n(7294),o=n(5893);const a=r.createContext(!1);function i(e){let{children:t}=e;const[n,i]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{i(!0)}),[]),(0,o.jsx)(a.Provider,{value:n,children:t})}},9717:(e,t,n)=>{"use strict";var r=n(7294),o=n(745),a=n(3727),i=n(405),l=n(6136);const s=[n(984),n(2251),n(9957),n(6930)];var u=n(997),c=n(6550),d=n(8790),p=n(5893);function f(e){let{children:t}=e;return(0,p.jsx)(p.Fragment,{children:t})}var m=n(1514),h=n(9962),g=n(9524),y=n(107),v=n(5463),b=n(626),w=n(8181),k=n(246),x=n(3905),S=n(3647);function _(){const{i18n:{currentLocale:e,defaultLocale:t,localeConfigs:n}}=(0,h.Z)(),r=(0,b.l)(),o=n[e].htmlLang,a=e=>e.replace("-","_");return(0,p.jsxs)(m.Z,{children:[Object.entries(n).map((e=>{let[t,{htmlLang:n}]=e;return(0,p.jsx)("link",{rel:"alternate",href:r.createUrl({locale:t,fullyQualified:!0}),hrefLang:n},t)})),(0,p.jsx)("link",{rel:"alternate",href:r.createUrl({locale:t,fullyQualified:!0}),hrefLang:"x-default"}),(0,p.jsx)("meta",{property:"og:locale",content:a(o)}),Object.values(n).filter((e=>o!==e.htmlLang)).map((e=>(0,p.jsx)("meta",{property:"og:locale:alternate",content:a(e.htmlLang)},`meta-og-${e.htmlLang}`)))]})}function E(e){let{permalink:t}=e;const{siteConfig:{url:n}}=(0,h.Z)(),r=function(){const{siteConfig:{url:e,baseUrl:t,trailingSlash:n}}=(0,h.Z)(),{pathname:r}=(0,c.TH)();return e+(0,x.applyTrailingSlash)((0,g.Z)(r),{trailingSlash:n,baseUrl:t})}(),o=t?`${n}${t}`:r;return(0,p.jsxs)(m.Z,{children:[(0,p.jsx)("meta",{property:"og:url",content:o}),(0,p.jsx)("link",{rel:"canonical",href:o})]})}function O(){const{i18n:{currentLocale:e}}=(0,h.Z)(),{metadata:t,image:n}=(0,y.L)();return(0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)(m.Z,{children:[(0,p.jsx)("meta",{name:"twitter:card",content:"summary_large_image"}),(0,p.jsx)("body",{className:w.h})]}),n&&(0,p.jsx)(v.d,{image:n}),(0,p.jsx)(E,{}),(0,p.jsx)(_,{}),(0,p.jsx)(S.Z,{tag:k.HX,locale:e}),(0,p.jsx)(m.Z,{children:t.map(((e,t)=>(0,p.jsx)("meta",{...e},t)))})]})}const j=new Map;function C(e){if(j.has(e.pathname))return{...e,pathname:j.get(e.pathname)};if((0,d.f)(u.Z,e.pathname).some((e=>{let{route:t}=e;return!0===t.exact})))return j.set(e.pathname,e.pathname),e;const t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return j.set(e.pathname,t),{...e,pathname:t}}var P=n(8121),T=n(694),I=n(1270);function A(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r{const r=t.default?.[e]??t[e];return r?.(...n)}));return()=>o.forEach((e=>e?.()))}const N=function(e){let{children:t,location:n,previousLocation:r}=e;return(0,I.Z)((()=>{r!==n&&(!function(e){let{location:t,previousLocation:n}=e;if(!n)return;const r=t.pathname===n.pathname,o=t.hash===n.hash,a=t.search===n.search;if(r&&o&&!a)return;const{hash:i}=t;if(i){const e=decodeURIComponent(i.substring(1)),t=document.getElementById(e);t?.scrollIntoView()}else window.scrollTo(0,0)}({location:n,previousLocation:r}),A("onRouteDidUpdate",{previousLocation:r,location:n}))}),[r,n]),t};function L(e){const t=Array.from(new Set([e,decodeURI(e)])).map((e=>(0,d.f)(u.Z,e))).flat();return Promise.all(t.map((e=>e.route.component.preload?.())))}class R extends r.Component{previousLocation;routeUpdateCleanupCb;constructor(e){super(e),this.previousLocation=null,this.routeUpdateCleanupCb=l.Z.canUseDOM?A("onRouteUpdate",{previousLocation:null,location:this.props.location}):()=>{},this.state={nextRouteHasLoaded:!0}}shouldComponentUpdate(e,t){if(e.location===this.props.location)return t.nextRouteHasLoaded;const n=e.location;return this.previousLocation=this.props.location,this.setState({nextRouteHasLoaded:!1}),this.routeUpdateCleanupCb=A("onRouteUpdate",{previousLocation:this.previousLocation,location:n}),L(n.pathname).then((()=>{this.routeUpdateCleanupCb(),this.setState({nextRouteHasLoaded:!0})})).catch((e=>{console.warn(e),window.location.reload()})),!1}render(){const{children:e,location:t}=this.props;return(0,p.jsx)(N,{previousLocation:this.previousLocation,location:t,children:(0,p.jsx)(c.AW,{location:t,render:()=>e})})}}const D=R,F="__docusaurus-base-url-issue-banner-container",M="__docusaurus-base-url-issue-banner",B="__docusaurus-base-url-issue-banner-suggestion-container";function z(e){return`\ndocument.addEventListener('DOMContentLoaded', function maybeInsertBanner() {\n var shouldInsert = typeof window['docusaurus'] === 'undefined';\n shouldInsert && insertBanner();\n});\n\nfunction insertBanner() {\n var bannerContainer = document.createElement('div');\n bannerContainer.id = '${F}';\n var bannerHtml = ${JSON.stringify(function(e){return`\n
\n

Your Docusaurus site did not load properly.

\n

A very common reason is a wrong site baseUrl configuration.

\n

Current configured baseUrl = ${e} ${"/"===e?" (default value)":""}

\n

We suggest trying baseUrl =

\n
\n`}(e)).replace(/{if("undefined"==typeof document)return void n();const r=document.createElement("link");r.setAttribute("rel","prefetch"),r.setAttribute("href",e),r.onload=()=>t(),r.onerror=()=>n();const o=document.getElementsByTagName("head")[0]??document.getElementsByName("script")[0]?.parentNode;o?.appendChild(r)}))}:function(e){return new Promise(((t,n)=>{const r=new XMLHttpRequest;r.open("GET",e,!0),r.withCredentials=!0,r.onload=()=>{200===r.status?t():n()},r.send(null)}))};var K=n(5304);const Y=new Set,J=new Set,X=()=>navigator.connection?.effectiveType.includes("2g")||navigator.connection?.saveData,ee={prefetch(e){if(!(e=>!X()&&!J.has(e)&&!Y.has(e))(e))return!1;Y.add(e);const t=(0,d.f)(u.Z,e).flatMap((e=>{return t=e.route.path,Object.entries(Z).filter((e=>{let[n]=e;return n.replace(/-[^-]+$/,"")===t})).flatMap((e=>{let[,t]=e;return Object.values((0,K.Z)(t))}));var t}));return Promise.all(t.map((e=>{const t=n.gca(e);return t&&!t.includes("undefined")?G(t).catch((()=>{})):Promise.resolve()})))},preload:e=>!!(e=>!X()&&!J.has(e))(e)&&(J.add(e),L(e))},te=Object.freeze(ee),ne=Boolean(!0);if(l.Z.canUseDOM){window.docusaurus=te;const e=document.getElementById("__docusaurus"),t=(0,p.jsx)(i.B6,{children:(0,p.jsx)(a.VK,{children:(0,p.jsx)(W,{})})}),n=(e,t)=>{console.error("Docusaurus React Root onRecoverableError:",e,t)},l=()=>{if(ne)r.startTransition((()=>{o.hydrateRoot(e,t,{onRecoverableError:n})}));else{const a=o.createRoot(e,{onRecoverableError:n});r.startTransition((()=>{a.render(t)}))}};L(window.location.pathname).then(l)}},694:(e,t,n)=>{"use strict";n.d(t,{_:()=>d,M:()=>p});var r=n(7294),o=n(6809);const a=JSON.parse('{"@cmfcmf/docusaurus-search-local":{"default":{"titleBoost":5,"contentBoost":1,"tagsBoost":3,"parentCategoriesBoost":2,"indexDocSidebarParentCategories":0,"maxSearchResults":8}},"docusaurus-plugin-content-docs":{"default":{"path":"/dx-tips/docs","versions":[{"name":"current","label":"Next","isLast":true,"path":"/dx-tips/docs","mainDocId":"intro","docs":[{"id":"advanced-tips/artificial-intelligence","path":"/dx-tips/docs/advanced-tips/artificial-intelligence","sidebar":"tutorialSidebar"},{"id":"advanced-tips/automated-build-test","path":"/dx-tips/docs/advanced-tips/automated-build-test","sidebar":"tutorialSidebar"},{"id":"advanced-tips/devsecops","path":"/dx-tips/docs/advanced-tips/devsecops","sidebar":"tutorialSidebar"},{"id":"advanced-tips/open-source-libraries","path":"/dx-tips/docs/advanced-tips/open-source-libraries","sidebar":"tutorialSidebar"},{"id":"advanced-tips/package-manager","path":"/dx-tips/docs/advanced-tips/package-manager","sidebar":"tutorialSidebar"},{"id":"advanced-tips/standard-development-environment","path":"/dx-tips/docs/advanced-tips/standard-development-environment","sidebar":"tutorialSidebar"},{"id":"advanced-tips/ticket-system","path":"/dx-tips/docs/advanced-tips/ticket-system","sidebar":"tutorialSidebar"},{"id":"advanced-tips/user-experience","path":"/dx-tips/docs/advanced-tips/user-experience","sidebar":"tutorialSidebar"},{"id":"intro","path":"/dx-tips/docs/intro","sidebar":"tutorialSidebar"},{"id":"/category/advanced-tips","path":"/dx-tips/docs/category/advanced-tips","sidebar":"tutorialSidebar"}],"draftIds":[],"sidebars":{"tutorialSidebar":{"link":{"path":"/dx-tips/docs/intro","label":"intro"}}}}],"breadcrumbs":true}}}'),i=JSON.parse('{"defaultLocale":"en","locales":["en"],"path":"i18n","currentLocale":"en","localeConfigs":{"en":{"label":"English","direction":"ltr","htmlLang":"en","calendar":"gregory","path":"en"}}}');var l=n(7529);const s=JSON.parse('{"docusaurusVersion":"3.0.1","siteVersion":"0.0.0","pluginVersions":{"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"3.0.1"},"docusaurus-plugin-content-blog":{"type":"package","name":"@docusaurus/plugin-content-blog","version":"3.0.1"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"3.0.1"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"3.0.1"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"3.0.1"},"@cmfcmf/docusaurus-search-local":{"type":"package","name":"@cmfcmf/docusaurus-search-local","version":"1.1.0"}}}');var u=n(5893);const c={siteConfig:o.default,siteMetadata:s,globalData:a,i18n:i,codeTranslations:l},d=r.createContext(c);function p(e){let{children:t}=e;return(0,u.jsx)(d.Provider,{value:c,children:t})}},3256:(e,t,n)=>{"use strict";n.d(t,{Z:()=>f});var r=n(7294),o=n(6136),a=n(1514),i=n(3905),l=n(8802),s=n(5893);function u(e){let{error:t,tryAgain:n}=e;return(0,s.jsxs)("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",minHeight:"100vh",width:"100%",maxWidth:"80ch",fontSize:"20px",margin:"0 auto",padding:"1rem"},children:[(0,s.jsx)("h1",{style:{fontSize:"3rem"},children:"This page crashed"}),(0,s.jsx)("button",{type:"button",onClick:n,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"},children:"Try again"}),(0,s.jsx)(c,{error:t})]})}function c(e){let{error:t}=e;const n=(0,i.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return(0,s.jsx)("p",{style:{whiteSpace:"pre-wrap"},children:n})}function d(e){let{error:t,tryAgain:n}=e;return(0,s.jsxs)(f,{fallback:()=>(0,s.jsx)(u,{error:t,tryAgain:n}),children:[(0,s.jsx)(a.Z,{children:(0,s.jsx)("title",{children:"Page Error"})}),(0,s.jsx)(l.Z,{children:(0,s.jsx)(u,{error:t,tryAgain:n})})]})}const p=e=>(0,s.jsx)(d,{...e});class f extends r.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){o.Z.canUseDOM&&this.setState({error:e})}render(){const{children:e}=this.props,{error:t}=this.state;if(t){const e={error:t,tryAgain:()=>this.setState({error:null})};return(this.props.fallback??p)(e)}return e??null}}},6136:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});const r="undefined"!=typeof window&&"document"in window&&"createElement"in window.document,o={canUseDOM:r,canUseEventListeners:r&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:r&&"IntersectionObserver"in window,canUseViewport:r&&"screen"in window}},1514:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});n(7294);var r=n(405),o=n(5893);function a(e){return(0,o.jsx)(r.ql,{...e})}},3699:(e,t,n)=>{"use strict";n.d(t,{Z:()=>f});var r=n(7294),o=n(3727),a=n(3905),i=n(9962),l=n(2735),s=n(6136),u=n(5893);const c=r.createContext({collectLink:()=>{}});var d=n(9524);function p(e,t){let{isNavLink:n,to:p,href:f,activeClassName:m,isActive:h,"data-noBrokenLinkCheck":g,autoAddBaseUrl:y=!0,...v}=e;const{siteConfig:{trailingSlash:b,baseUrl:w}}=(0,i.Z)(),{withBaseUrl:k}=(0,d.C)(),x=(0,r.useContext)(c),S=(0,r.useRef)(null);(0,r.useImperativeHandle)(t,(()=>S.current));const _=p||f;const E=(0,l.Z)(_),O=_?.replace("pathname://","");let j=void 0!==O?(C=O,y&&(e=>e.startsWith("/"))(C)?k(C):C):void 0;var C;j&&E&&(j=(0,a.applyTrailingSlash)(j,{trailingSlash:b,baseUrl:w}));const P=(0,r.useRef)(!1),T=n?o.OL:o.rU,I=s.Z.canUseIntersectionObserver,A=(0,r.useRef)(),N=()=>{P.current||null==j||(window.docusaurus.preload(j),P.current=!0)};(0,r.useEffect)((()=>(!I&&E&&null!=j&&window.docusaurus.prefetch(j),()=>{I&&A.current&&A.current.disconnect()})),[A,j,I,E]);const L=j?.startsWith("#")??!1,R=!j||!E||L;return R||g||x.collectLink(j),R?(0,u.jsx)("a",{ref:S,href:j,..._&&!E&&{target:"_blank",rel:"noopener noreferrer"},...v}):(0,u.jsx)(T,{...v,onMouseEnter:N,onTouchStart:N,innerRef:e=>{S.current=e,I&&e&&E&&(A.current=new window.IntersectionObserver((t=>{t.forEach((t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(A.current.unobserve(e),A.current.disconnect(),null!=j&&window.docusaurus.prefetch(j))}))})),A.current.observe(e))},to:j,...n&&{isActive:h,activeClassName:m}})}const f=r.forwardRef(p)},7325:(e,t,n)=>{"use strict";n.d(t,{Z:()=>u,I:()=>s});var r=n(7294),o=n(5893);function a(e,t){const n=e.split(/(\{\w+\})/).map(((e,n)=>{if(n%2==1){const n=t?.[e.slice(1,-1)];if(void 0!==n)return n}return e}));return n.some((e=>(0,r.isValidElement)(e)))?n.map(((e,t)=>(0,r.isValidElement)(e)?r.cloneElement(e,{key:t}):e)).filter((e=>""!==e)):n.join("")}var i=n(7529);function l(e){let{id:t,message:n}=e;if(void 0===t&&void 0===n)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return i[t??n]??n??t}function s(e,t){let{message:n,id:r}=e;return a(l({message:n,id:r}),t)}function u(e){let{children:t,id:n,values:r}=e;if(t&&"string"!=typeof t)throw console.warn("Illegal children",t),new Error("The Docusaurus component only accept simple string values");const i=l({message:t,id:n});return(0,o.jsx)(o.Fragment,{children:a(i,r)})}},6875:(e,t,n)=>{"use strict";n.d(t,{m:()=>r});const r="default"},2735:(e,t,n)=>{"use strict";function r(e){return/^(?:\w*:|\/\/)/.test(e)}function o(e){return void 0!==e&&!r(e)}n.d(t,{Z:()=>o,b:()=>r})},9524:(e,t,n)=>{"use strict";n.d(t,{C:()=>i,Z:()=>l});var r=n(7294),o=n(9962),a=n(2735);function i(){const{siteConfig:{baseUrl:e,url:t}}=(0,o.Z)(),n=(0,r.useCallback)(((n,r)=>function(e,t,n,r){let{forcePrependBaseUrl:o=!1,absolute:i=!1}=void 0===r?{}:r;if(!n||n.startsWith("#")||(0,a.b)(n))return n;if(o)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;const l=n.startsWith(t)?n:t+n.replace(/^\//,"");return i?e+l:l}(t,e,n,r)),[t,e]);return{withBaseUrl:n}}function l(e,t){void 0===t&&(t={});const{withBaseUrl:n}=i();return n(e,t)}},9962:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(7294),o=n(694);function a(){return(0,r.useContext)(o._)}},1610:(e,t,n)=>{"use strict";n.d(t,{OD:()=>a,eZ:()=>i});var r=n(9962),o=n(6875);function a(e,t){void 0===t&&(t={});const n=function(){const{globalData:e}=(0,r.Z)();return e}()[e];if(!n&&t.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin.`);return n}function i(e,t,n){void 0===t&&(t=o.m),void 0===n&&(n={});const r=a(e),i=r?.[t];if(!i&&n.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin with id "${t}".`);return i}},1048:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(7294),o=n(8121);function a(){return(0,r.useContext)(o._)}},1270:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294);const o=n(6136).Z.canUseDOM?r.useLayoutEffect:r.useEffect},5304:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});const r=e=>"object"==typeof e&&!!e&&Object.keys(e).length>0;function o(e){const t={};return function e(n,o){Object.entries(n).forEach((n=>{let[a,i]=n;const l=o?`${o}.${a}`:a;r(i)?e(i,l):t[l]=i}))}(e),t}},9656:(e,t,n)=>{"use strict";n.d(t,{_:()=>a,z:()=>i});var r=n(7294),o=n(5893);const a=r.createContext(null);function i(e){let{children:t,value:n}=e;const i=r.useContext(a),l=(0,r.useMemo)((()=>function(e){let{parent:t,value:n}=e;if(!t){if(!n)throw new Error("Unexpected: no Docusaurus route context found");if(!("plugin"in n))throw new Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute");return n}const r={...t.data,...n?.data};return{plugin:t.plugin,data:r}}({parent:i,value:n})),[i,n]);return(0,o.jsx)(a.Provider,{value:l,children:t})}},868:(e,t,n)=>{"use strict";n.d(t,{Iw:()=>h,gA:()=>d,WS:()=>p,_r:()=>u,Jo:()=>g,zh:()=>c,yW:()=>m,gB:()=>f});var r=n(6550),o=n(1610);const a=e=>e.versions.find((e=>e.isLast));function i(e,t){const n=a(e);return[...e.versions.filter((e=>e!==n)),n].find((e=>!!(0,r.LX)(t,{path:e.path,exact:!1,strict:!1})))}function l(e,t){const n=i(e,t),o=n?.docs.find((e=>!!(0,r.LX)(t,{path:e.path,exact:!0,strict:!1})));return{activeVersion:n,activeDoc:o,alternateDocVersions:o?function(t){const n={};return e.versions.forEach((e=>{e.docs.forEach((r=>{r.id===t&&(n[e.name]=r)}))})),n}(o.id):{}}}const s={},u=()=>(0,o.OD)("docusaurus-plugin-content-docs")??s,c=e=>(0,o.eZ)("docusaurus-plugin-content-docs",e,{failfast:!0});function d(e){void 0===e&&(e={});const t=u(),{pathname:n}=(0,r.TH)();return function(e,t,n){void 0===n&&(n={});const o=Object.entries(e).sort(((e,t)=>t[1].path.localeCompare(e[1].path))).find((e=>{let[,n]=e;return!!(0,r.LX)(t,{path:n.path,exact:!1,strict:!1})})),a=o?{pluginId:o[0],pluginData:o[1]}:void 0;if(!a&&n.failfast)throw new Error(`Can't find active docs plugin for "${t}" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: ${Object.values(e).map((e=>e.path)).join(", ")}`);return a}(t,n,e)}function p(e){void 0===e&&(e={});const t=d(e),{pathname:n}=(0,r.TH)();if(!t)return;return{activePlugin:t,activeVersion:i(t.pluginData,n)}}function f(e){return c(e).versions}function m(e){const t=c(e);return a(t)}function h(e){const t=c(e),{pathname:n}=(0,r.TH)();return l(t,n)}function g(e){const t=c(e),{pathname:n}=(0,r.TH)();return function(e,t){const n=a(e);return{latestDocSuggestion:l(e,t).alternateDocVersions[n.name],latestVersionSuggestion:n}}(t,n)}},9957:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a});var r=n(4865),o=n.n(r);o().configure({showSpinner:!1});const a={onRouteUpdate(e){let{location:t,previousLocation:n}=e;if(n&&t.pathname!==n.pathname){const e=window.setTimeout((()=>{o().start()}),200);return()=>window.clearTimeout(e)}},onRouteDidUpdate(){o().done()}}},2251:(e,t,n)=>{"use strict";n.r(t);var r=n(2573),o=n(6809);!function(e){const{themeConfig:{prism:t}}=o.default,{additionalLanguages:r}=t;globalThis.Prism=e,r.forEach((e=>{"php"===e&&n(6854),n(6726)(`./prism-${e}`)})),delete globalThis.Prism}(r.p1)},3899:(e,t,n)=>{"use strict";n.d(t,{Z:()=>u});n(7294);var r=n(512),o=n(7325),a=n(107),i=n(3699);const l={anchorWithStickyNavbar:"anchorWithStickyNavbar_LWe7",anchorWithHideOnScrollNavbar:"anchorWithHideOnScrollNavbar_WYt5"};var s=n(5893);function u(e){let{as:t,id:n,...u}=e;const{navbar:{hideOnScroll:c}}=(0,a.L)();if("h1"===t||!n)return(0,s.jsx)(t,{...u,id:void 0});const d=(0,o.I)({id:"theme.common.headingLinkTitle",message:"Direct link to {heading}",description:"Title for link to heading"},{heading:"string"==typeof u.children?u.children:n});return(0,s.jsxs)(t,{...u,className:(0,r.Z)("anchor",c?l.anchorWithHideOnScrollNavbar:l.anchorWithStickyNavbar,u.className),id:n,children:[u.children,(0,s.jsx)(i.Z,{className:"hash-link",to:`#${n}`,"aria-label":d,title:d,children:"\u200b"})]})}},4082:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});n(7294);const r={iconExternalLink:"iconExternalLink_nPIU"};var o=n(5893);function a(e){let{width:t=13.5,height:n=13.5}=e;return(0,o.jsx)("svg",{width:t,height:n,"aria-hidden":"true",viewBox:"0 0 24 24",className:r.iconExternalLink,children:(0,o.jsx)("path",{fill:"currentColor",d:"M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"})})}},8802:(e,t,n)=>{"use strict";n.d(t,{Z:()=>si});var r=n(7294),o=n(512),a=n(3256),i=n(5463),l=n(6550),s=n(7325),u=n(3266),c=n(5893);const d="__docusaurus_skipToContent_fallback";function p(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}function f(){const e=(0,r.useRef)(null),{action:t}=(0,l.k6)(),n=(0,r.useCallback)((e=>{e.preventDefault();const t=document.querySelector("main:first-of-type")??document.getElementById(d);t&&p(t)}),[]);return(0,u.S)((n=>{let{location:r}=n;e.current&&!r.hash&&"PUSH"===t&&p(e.current)})),{containerRef:e,onClick:n}}const m=(0,s.I)({id:"theme.common.skipToMainContent",description:"The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation",message:"Skip to main content"});function h(e){const t=e.children??m,{containerRef:n,onClick:r}=f();return(0,c.jsx)("div",{ref:n,role:"region","aria-label":m,children:(0,c.jsx)("a",{...e,href:`#${d}`,onClick:r,children:t})})}var g=n(3702),y=n(8181);const v={skipToContent:"skipToContent_fXgn"};function b(){return(0,c.jsx)(h,{className:v.skipToContent})}var w=n(107),k=n(5830);function x(e){let{width:t=21,height:n=21,color:r="currentColor",strokeWidth:o=1.2,className:a,...i}=e;return(0,c.jsx)("svg",{viewBox:"0 0 15 15",width:t,height:n,...i,children:(0,c.jsx)("g",{stroke:r,strokeWidth:o,children:(0,c.jsx)("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})})})}const S={closeButton:"closeButton_CVFx"};function _(e){return(0,c.jsx)("button",{type:"button","aria-label":(0,s.I)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"}),...e,className:(0,o.Z)("clean-btn close",S.closeButton,e.className),children:(0,c.jsx)(x,{width:14,height:14,strokeWidth:3.1})})}const E={content:"content_knG7"};function O(e){const{announcementBar:t}=(0,w.L)(),{content:n}=t;return(0,c.jsx)("div",{...e,className:(0,o.Z)(E.content,e.className),dangerouslySetInnerHTML:{__html:n}})}const j={announcementBar:"announcementBar_mb4j",announcementBarPlaceholder:"announcementBarPlaceholder_vyr4",announcementBarClose:"announcementBarClose_gvF7",announcementBarContent:"announcementBarContent_xLdY"};function C(){const{announcementBar:e}=(0,w.L)(),{isActive:t,close:n}=(0,k.nT)();if(!t)return null;const{backgroundColor:r,textColor:o,isCloseable:a}=e;return(0,c.jsxs)("div",{className:j.announcementBar,style:{backgroundColor:r,color:o},role:"banner",children:[a&&(0,c.jsx)("div",{className:j.announcementBarPlaceholder}),(0,c.jsx)(O,{className:j.announcementBarContent}),a&&(0,c.jsx)(_,{onClick:n,className:j.announcementBarClose})]})}var P=n(2600),T=n(2957);var I=n(3768),A=n(3086);const N=r.createContext(null);function L(e){let{children:t}=e;const n=function(){const e=(0,P.e)(),t=(0,A.HY)(),[n,o]=(0,r.useState)(!1),a=null!==t.component,i=(0,I.D9)(a);return(0,r.useEffect)((()=>{a&&!i&&o(!0)}),[a,i]),(0,r.useEffect)((()=>{a?e.shown||o(!0):o(!1)}),[e.shown,a]),(0,r.useMemo)((()=>[n,o]),[n])}();return(0,c.jsx)(N.Provider,{value:n,children:t})}function R(e){if(e.component){const t=e.component;return(0,c.jsx)(t,{...e.props})}}function D(){const e=(0,r.useContext)(N);if(!e)throw new I.i6("NavbarSecondaryMenuDisplayProvider");const[t,n]=e,o=(0,r.useCallback)((()=>n(!1)),[n]),a=(0,A.HY)();return(0,r.useMemo)((()=>({shown:t,hide:o,content:R(a)})),[o,a,t])}function F(e){let{header:t,primaryMenu:n,secondaryMenu:r}=e;const{shown:a}=D();return(0,c.jsxs)("div",{className:"navbar-sidebar",children:[t,(0,c.jsxs)("div",{className:(0,o.Z)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":a}),children:[(0,c.jsx)("div",{className:"navbar-sidebar__item menu",children:n}),(0,c.jsx)("div",{className:"navbar-sidebar__item menu",children:r})]})]})}var M=n(9200),B=n(1048);function z(e){return(0,c.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,c.jsx)("path",{fill:"currentColor",d:"M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"})})}function U(e){return(0,c.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,c.jsx)("path",{fill:"currentColor",d:"M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"})})}const $={toggle:"toggle_vylO",toggleButton:"toggleButton_gllP",darkToggleIcon:"darkToggleIcon_wfgR",lightToggleIcon:"lightToggleIcon_pyhR",toggleButtonDisabled:"toggleButtonDisabled_aARS"};function q(e){let{className:t,buttonClassName:n,value:r,onChange:a}=e;const i=(0,B.Z)(),l=(0,s.I)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the navbar color mode toggle"},{mode:"dark"===r?(0,s.I)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,s.I)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"})});return(0,c.jsx)("div",{className:(0,o.Z)($.toggle,t),children:(0,c.jsxs)("button",{className:(0,o.Z)("clean-btn",$.toggleButton,!i&&$.toggleButtonDisabled,n),type:"button",onClick:()=>a("dark"===r?"light":"dark"),disabled:!i,title:l,"aria-label":l,"aria-live":"polite",children:[(0,c.jsx)(z,{className:(0,o.Z)($.toggleIcon,$.lightToggleIcon)}),(0,c.jsx)(U,{className:(0,o.Z)($.toggleIcon,$.darkToggleIcon)})]})})}const H=r.memo(q),Q={darkNavbarColorModeToggle:"darkNavbarColorModeToggle_X3D1"};function V(e){let{className:t}=e;const n=(0,w.L)().navbar.style,r=(0,w.L)().colorMode.disableSwitch,{colorMode:o,setColorMode:a}=(0,M.I)();return r?null:(0,c.jsx)(H,{className:t,buttonClassName:"dark"===n?Q.darkNavbarColorModeToggle:void 0,value:o,onChange:a})}var W=n(6811);function Z(){return(0,c.jsx)(W.Z,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function G(){const e=(0,P.e)();return(0,c.jsx)("button",{type:"button","aria-label":(0,s.I)({id:"theme.docs.sidebar.closeSidebarButtonAriaLabel",message:"Close navigation bar",description:"The ARIA label for close button of mobile sidebar"}),className:"clean-btn navbar-sidebar__close",onClick:()=>e.toggle(),children:(0,c.jsx)(x,{color:"var(--ifm-color-emphasis-600)"})})}function K(){return(0,c.jsxs)("div",{className:"navbar-sidebar__brand",children:[(0,c.jsx)(Z,{}),(0,c.jsx)(V,{className:"margin-right--md"}),(0,c.jsx)(G,{})]})}var Y=n(3699),J=n(9524),X=n(2735);function ee(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}var te=n(4082);function ne(e){let{activeBasePath:t,activeBaseRegex:n,to:r,href:o,label:a,html:i,isDropdownLink:l,prependBaseUrlToHref:s,...u}=e;const d=(0,J.Z)(r),p=(0,J.Z)(t),f=(0,J.Z)(o,{forcePrependBaseUrl:!0}),m=a&&o&&!(0,X.Z)(o),h=i?{dangerouslySetInnerHTML:{__html:i}}:{children:(0,c.jsxs)(c.Fragment,{children:[a,m&&(0,c.jsx)(te.Z,{...l&&{width:12,height:12}})]})};return o?(0,c.jsx)(Y.Z,{href:s?f:o,...u,...h}):(0,c.jsx)(Y.Z,{to:d,isNavLink:!0,...(t||n)&&{isActive:(e,t)=>n?ee(n,t.pathname):t.pathname.startsWith(p)},...u,...h})}function re(e){let{className:t,isDropdownItem:n=!1,...r}=e;const a=(0,c.jsx)(ne,{className:(0,o.Z)(n?"dropdown__link":"navbar__item navbar__link",t),isDropdownLink:n,...r});return n?(0,c.jsx)("li",{children:a}):a}function oe(e){let{className:t,isDropdownItem:n,...r}=e;return(0,c.jsx)("li",{className:"menu__list-item",children:(0,c.jsx)(ne,{className:(0,o.Z)("menu__link",t),...r})})}function ae(e){let{mobile:t=!1,position:n,...r}=e;const o=t?oe:re;return(0,c.jsx)(o,{...r,activeClassName:r.activeClassName??(t?"menu__link--active":"navbar__link--active")})}var ie=n(4639),le=n(9003),se=n(9962);const ue={dropdownNavbarItemMobile:"dropdownNavbarItemMobile_S0Fm"};function ce(e,t){return e.some((e=>function(e,t){return!!(0,le.Mg)(e.to,t)||!!ee(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)))}function de(e){let{items:t,position:n,className:a,onClick:i,...l}=e;const s=(0,r.useRef)(null),[u,d]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{const e=e=>{s.current&&!s.current.contains(e.target)&&d(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),document.addEventListener("focusin",e),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e),document.removeEventListener("focusin",e)}}),[s]),(0,c.jsxs)("div",{ref:s,className:(0,o.Z)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===n,"dropdown--show":u}),children:[(0,c.jsx)(ne,{"aria-haspopup":"true","aria-expanded":u,role:"button",href:l.to?void 0:"#",className:(0,o.Z)("navbar__link",a),...l,onClick:l.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),d(!u))},children:l.children??l.label}),(0,c.jsx)("ul",{className:"dropdown__menu",children:t.map(((e,t)=>(0,r.createElement)(wa,{isDropdownItem:!0,activeClassName:"dropdown__link--active",...e,key:t})))})]})}function pe(e){let{items:t,className:n,position:a,onClick:i,...s}=e;const u=function(){const{siteConfig:{baseUrl:e}}=(0,se.Z)(),{pathname:t}=(0,l.TH)();return t.replace(e,"/")}(),d=ce(t,u),{collapsed:p,toggleCollapsed:f,setCollapsed:m}=(0,ie.u)({initialState:()=>!d});return(0,r.useEffect)((()=>{d&&m(!d)}),[u,d,m]),(0,c.jsxs)("li",{className:(0,o.Z)("menu__list-item",{"menu__list-item--collapsed":p}),children:[(0,c.jsx)(ne,{role:"button",className:(0,o.Z)(ue.dropdownNavbarItemMobile,"menu__link menu__link--sublist menu__link--sublist-caret",n),...s,onClick:e=>{e.preventDefault(),f()},children:s.children??s.label}),(0,c.jsx)(ie.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:p,children:t.map(((e,t)=>(0,r.createElement)(wa,{mobile:!0,isDropdownItem:!0,onClick:i,activeClassName:"menu__link--active",...e,key:t})))})]})}function fe(e){let{mobile:t=!1,...n}=e;const r=t?pe:de;return(0,c.jsx)(r,{...n})}var me=n(626);function he(e){let{width:t=20,height:n=20,...r}=e;return(0,c.jsx)("svg",{viewBox:"0 0 24 24",width:t,height:n,"aria-hidden":!0,...r,children:(0,c.jsx)("path",{fill:"currentColor",d:"M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"})})}const ge="iconLanguage_nlXk";var ye=n(3935);function ve(e,t){var n=void 0;return function(){for(var r=arguments.length,o=new Array(r),a=0;ae.length)&&(t=e.length);for(var n=0,r=new Array(t);ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function Ae(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Ne(e){for(var t=1;t=3||2===n&&r>=4||1===n&&r>=10}(e);function n(n,r,o){if(t&&void 0!==o){var a=o[0].__autocomplete_algoliaCredentials,i={"X-Algolia-Application-Id":a.appId,"X-Algolia-API-Key":a.apiKey};e.apply(void 0,[n].concat(Pe(r),[{headers:i}]))}else e.apply(void 0,[n].concat(Pe(r)))}return{init:function(t,n){e("init",{appId:t,apiKey:n})},setUserToken:function(t){e("setUserToken",t)},clickedObjectIDsAfterSearch:function(){for(var e=arguments.length,t=new Array(e),r=0;r0&&n("clickedObjectIDsAfterSearch",Re(t),t[0].items)},clickedObjectIDs:function(){for(var e=arguments.length,t=new Array(e),r=0;r0&&n("clickedObjectIDs",Re(t),t[0].items)},clickedFilters:function(){for(var t=arguments.length,n=new Array(t),r=0;r0&&e.apply(void 0,["clickedFilters"].concat(n))},convertedObjectIDsAfterSearch:function(){for(var e=arguments.length,t=new Array(e),r=0;r0&&n("convertedObjectIDsAfterSearch",Re(t),t[0].items)},convertedObjectIDs:function(){for(var e=arguments.length,t=new Array(e),r=0;r0&&n("convertedObjectIDs",Re(t),t[0].items)},convertedFilters:function(){for(var t=arguments.length,n=new Array(t),r=0;r0&&e.apply(void 0,["convertedFilters"].concat(n))},viewedObjectIDs:function(){for(var e=arguments.length,t=new Array(e),r=0;r0&&t.reduce((function(e,t){var n=t.items,r=Ie(t,je);return[].concat(Pe(e),Pe(function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:20,n=[],r=0;r0&&e.apply(void 0,["viewedFilters"].concat(n))}}}function Fe(e){var t=e.items.reduce((function(e,t){var n;return e[t.__autocomplete_indexName]=(null!==(n=e[t.__autocomplete_indexName])&&void 0!==n?n:[]).concat(t),e}),{});return Object.keys(t).map((function(e){return{index:e,items:t[e],algoliaSource:["autocomplete"]}}))}function Me(e){return e.objectID&&e.__autocomplete_indexName&&e.__autocomplete_queryID}function Be(e){return Be="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Be(e)}function ze(e){return function(e){if(Array.isArray(e))return Ue(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return Ue(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Ue(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ue(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&We({onItemsChange:r,items:n,insights:s,state:t}))}}),0);return{name:"aa.algoliaInsightsPlugin",subscribe:function(e){var t=e.setContext,n=e.onSelect,r=e.onActive;function u(e){t({algoliaInsightsPlugin:{__algoliaSearchParameters:qe(qe({},i?{clickAnalytics:!0}:{}),e?{userToken:Ke(e)}:{}),insights:s}})}l("addAlgoliaAgent","insights-plugin"),u(),l("onUserTokenChange",u),l("getUserToken",null,(function(e,t){u(t)})),n((function(e){var t=e.item,n=e.state,r=e.event,a=e.source;Me(t)&&o({state:n,event:r,insights:s,item:t,insightsEvents:[qe({eventName:"Item Selected"},Se({item:t,items:a.getItems().filter(Me)}))]})})),r((function(e){var t=e.item,n=e.source,r=e.state,o=e.event;Me(t)&&a({state:r,event:o,insights:s,item:t,insightsEvents:[qe({eventName:"Item Active"},Se({item:t,items:n.getItems().filter(Me)}))]})}))},onStateChange:function(e){var t=e.state;c({state:t})},__autocomplete_pluginOptions:e}}function Ge(){var e,t=arguments.length>1?arguments[1]:void 0;return[].concat(ze(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]),["autocomplete-internal"],ze(null!==(e=t.algoliaInsightsPlugin)&&void 0!==e&&e.__automaticInsights?["autocomplete-automatic"]:[]))}function Ke(e){return"number"==typeof e?e.toString():e}function Ye(e){return Ye="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Ye(e)}function Je(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Xe(e,t,n){return(t=function(e){var t=function(e,t){if("object"!==Ye(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!==Ye(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===Ye(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function et(e,t,n){var r,o=t.initialState;return{getState:function(){return o},dispatch:function(r,a){var i=function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n0},reshape:function(e){return e.sources}},e),{},{id:null!==(n=e.id)&&void 0!==n?n:st(),plugins:o,initialState:yt({activeItemId:null,query:"",completion:null,collections:[],isOpen:!1,status:"idle",context:{}},e.initialState),onStateChange:function(t){var n;null===(n=e.onStateChange)||void 0===n||n.call(e,t),o.forEach((function(e){var n;return null===(n=e.onStateChange)||void 0===n?void 0:n.call(e,t)}))},onSubmit:function(t){var n;null===(n=e.onSubmit)||void 0===n||n.call(e,t),o.forEach((function(e){var n;return null===(n=e.onSubmit)||void 0===n?void 0:n.call(e,t)}))},onReset:function(t){var n;null===(n=e.onReset)||void 0===n||n.call(e,t),o.forEach((function(e){var n;return null===(n=e.onReset)||void 0===n?void 0:n.call(e,t)}))},getSources:function(n){return Promise.all([].concat(mt(o.map((function(e){return e.getSources}))),[e.getSources]).filter(Boolean).map((function(e){return function(e,t){var n=[];return Promise.resolve(e(t)).then((function(e){return Array.isArray(e),Promise.all(e.filter((function(e){return Boolean(e)})).map((function(e){if(e.sourceId,n.includes(e.sourceId))throw new Error("[Autocomplete] The `sourceId` ".concat(JSON.stringify(e.sourceId)," is not unique."));n.push(e.sourceId);var t={getItemInputValue:function(e){return e.state.query},getItemUrl:function(){},onSelect:function(e){(0,e.setIsOpen)(!1)},onActive:xe,onResolve:xe};Object.keys(t).forEach((function(e){t[e].__default=!0}));var r=ct(ct({},t),e);return Promise.resolve(r)})))}))}(e,n)}))).then((function(e){return tt(e)})).then((function(e){return e.map((function(e){return yt(yt({},e),{},{onSelect:function(n){e.onSelect(n),t.forEach((function(e){var t;return null===(t=e.onSelect)||void 0===t?void 0:t.call(e,n)}))},onActive:function(n){e.onActive(n),t.forEach((function(e){var t;return null===(t=e.onActive)||void 0===t?void 0:t.call(e,n)}))},onResolve:function(n){e.onResolve(n),t.forEach((function(e){var t;return null===(t=e.onResolve)||void 0===t?void 0:t.call(e,n)}))}})}))}))},navigator:yt({navigate:function(e){var t=e.itemUrl;r.location.assign(t)},navigateNewTab:function(e){var t=e.itemUrl,n=r.open(t,"_blank","noopener");null==n||n.focus()},navigateNewWindow:function(e){var t=e.itemUrl;r.open(t,"_blank","noopener")}},e.navigator)})}function wt(e){return wt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},wt(e)}function kt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function xt(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var Qt,Vt,Wt,Zt=null,Gt=(Qt=-1,Vt=-1,Wt=void 0,function(e){var t=++Qt;return Promise.resolve(e).then((function(e){return Wt&&t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var on=/((gt|sm)-|galaxy nexus)|samsung[- ]|samsungbrowser/i;function an(e){return an="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},an(e)}var ln=["props","refresh","store"],sn=["inputElement","formElement","panelElement"],un=["inputElement"],cn=["inputElement","maxLength"],dn=["source"],pn=["item","source"];function fn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function mn(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function yn(e){var t=e.props,n=e.refresh,r=e.store,o=gn(e,ln);return{getEnvironmentProps:function(e){var n=e.inputElement,o=e.formElement,a=e.panelElement;function i(e){!r.getState().isOpen&&r.pendingRequests.isEmpty()||e.target===n||!1===[o,a].some((function(t){return n=t,r=e.target,n===r||n.contains(r);var n,r}))&&(r.dispatch("blur",null),t.debug||r.pendingRequests.cancelAll())}return mn({onTouchStart:i,onMouseDown:i,onTouchMove:function(e){!1!==r.getState().isOpen&&n===t.environment.document.activeElement&&e.target!==n&&n.blur()}},gn(e,sn))},getRootProps:function(e){return mn({role:"combobox","aria-expanded":r.getState().isOpen,"aria-haspopup":"listbox","aria-owns":r.getState().isOpen?r.getState().collections.map((function(e){var n=e.source;return Yt(t.id,"list",n)})).join(" "):void 0,"aria-labelledby":Yt(t.id,"label")},e)},getFormProps:function(e){e.inputElement;return mn({action:"",noValidate:!0,role:"search",onSubmit:function(a){var i;a.preventDefault(),t.onSubmit(mn({event:a,refresh:n,state:r.getState()},o)),r.dispatch("submit",null),null===(i=e.inputElement)||void 0===i||i.blur()},onReset:function(a){var i;a.preventDefault(),t.onReset(mn({event:a,refresh:n,state:r.getState()},o)),r.dispatch("reset",null),null===(i=e.inputElement)||void 0===i||i.focus()}},gn(e,un))},getLabelProps:function(e){return mn({htmlFor:Yt(t.id,"input"),id:Yt(t.id,"label")},e)},getInputProps:function(e){var a;function i(e){(t.openOnFocus||Boolean(r.getState().query))&&Kt(mn({event:e,props:t,query:r.getState().completion||r.getState().query,refresh:n,store:r},o)),r.dispatch("focus",null)}var l=e||{},s=(l.inputElement,l.maxLength),u=void 0===s?512:s,c=gn(l,cn),d=Mt(r.getState()),p=function(e){return Boolean(e&&e.match(on))}((null===(a=t.environment.navigator)||void 0===a?void 0:a.userAgent)||""),f=t.enterKeyHint||(null!=d&&d.itemUrl&&!p?"go":"search");return mn({"aria-autocomplete":"both","aria-activedescendant":r.getState().isOpen&&null!==r.getState().activeItemId?Yt(t.id,"item-".concat(r.getState().activeItemId),null==d?void 0:d.source):void 0,"aria-controls":r.getState().isOpen?r.getState().collections.map((function(e){var n=e.source;return Yt(t.id,"list",n)})).join(" "):void 0,"aria-labelledby":Yt(t.id,"label"),value:r.getState().completion||r.getState().query,id:Yt(t.id,"input"),autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",enterKeyHint:f,spellCheck:"false",autoFocus:t.autoFocus,placeholder:t.placeholder,maxLength:u,type:"search",onChange:function(e){Kt(mn({event:e,props:t,query:e.currentTarget.value.slice(0,u),refresh:n,store:r},o))},onKeyDown:function(e){!function(e){var t=e.event,n=e.props,r=e.refresh,o=e.store,a=rn(e,Xt);if("ArrowUp"===t.key||"ArrowDown"===t.key){var i=function(){var e=Mt(o.getState()),t=n.environment.document.getElementById(Yt(n.id,"item-".concat(o.getState().activeItemId),null==e?void 0:e.source));t&&(t.scrollIntoViewIfNeeded?t.scrollIntoViewIfNeeded(!1):t.scrollIntoView(!1))},l=function(){var e=Mt(o.getState());if(null!==o.getState().activeItemId&&e){var n=e.item,i=e.itemInputValue,l=e.itemUrl,s=e.source;s.onActive(tn({event:t,item:n,itemInputValue:i,itemUrl:l,refresh:r,source:s,state:o.getState()},a))}};t.preventDefault(),!1===o.getState().isOpen&&(n.openOnFocus||Boolean(o.getState().query))?Kt(tn({event:t,props:n,query:o.getState().query,refresh:r,store:o},a)).then((function(){o.dispatch(t.key,{nextActiveItemId:n.defaultActiveItemId}),l(),setTimeout(i,0)})):(o.dispatch(t.key,{}),l(),i())}else if("Escape"===t.key)t.preventDefault(),o.dispatch(t.key,null),o.pendingRequests.cancelAll();else if("Tab"===t.key)o.dispatch("blur",null),o.pendingRequests.cancelAll();else if("Enter"===t.key){if(null===o.getState().activeItemId||o.getState().collections.every((function(e){return 0===e.items.length})))return void(n.debug||o.pendingRequests.cancelAll());t.preventDefault();var s=Mt(o.getState()),u=s.item,c=s.itemInputValue,d=s.itemUrl,p=s.source;if(t.metaKey||t.ctrlKey)void 0!==d&&(p.onSelect(tn({event:t,item:u,itemInputValue:c,itemUrl:d,refresh:r,source:p,state:o.getState()},a)),n.navigator.navigateNewTab({itemUrl:d,item:u,state:o.getState()}));else if(t.shiftKey)void 0!==d&&(p.onSelect(tn({event:t,item:u,itemInputValue:c,itemUrl:d,refresh:r,source:p,state:o.getState()},a)),n.navigator.navigateNewWindow({itemUrl:d,item:u,state:o.getState()}));else if(t.altKey);else{if(void 0!==d)return p.onSelect(tn({event:t,item:u,itemInputValue:c,itemUrl:d,refresh:r,source:p,state:o.getState()},a)),void n.navigator.navigate({itemUrl:d,item:u,state:o.getState()});Kt(tn({event:t,nextState:{isOpen:!1},props:n,query:c,refresh:r,store:o},a)).then((function(){p.onSelect(tn({event:t,item:u,itemInputValue:c,itemUrl:d,refresh:r,source:p,state:o.getState()},a))}))}}}(mn({event:e,props:t,refresh:n,store:r},o))},onFocus:i,onBlur:xe,onClick:function(n){e.inputElement!==t.environment.document.activeElement||r.getState().isOpen||i(n)}},c)},getPanelProps:function(e){return mn({onMouseDown:function(e){e.preventDefault()},onMouseLeave:function(){r.dispatch("mouseleave",null)}},e)},getListProps:function(e){var n=e||{},r=n.source,o=gn(n,dn);return mn({role:"listbox","aria-labelledby":Yt(t.id,"label"),id:Yt(t.id,"list",r)},o)},getItemProps:function(e){var a=e.item,i=e.source,l=gn(e,pn);return mn({id:Yt(t.id,"item-".concat(a.__autocomplete_id),i),role:"option","aria-selected":r.getState().activeItemId===a.__autocomplete_id,onMouseMove:function(e){if(a.__autocomplete_id!==r.getState().activeItemId){r.dispatch("mousemove",a.__autocomplete_id);var t=Mt(r.getState());if(null!==r.getState().activeItemId&&t){var i=t.item,l=t.itemInputValue,s=t.itemUrl,u=t.source;u.onActive(mn({event:e,item:i,itemInputValue:l,itemUrl:s,refresh:n,source:u,state:r.getState()},o))}}},onMouseDown:function(e){e.preventDefault()},onClick:function(e){var l=i.getItemInputValue({item:a,state:r.getState()}),s=i.getItemUrl({item:a,state:r.getState()});(s?Promise.resolve():Kt(mn({event:e,nextState:{isOpen:!1},props:t,query:l,refresh:n,store:r},o))).then((function(){i.onSelect(mn({event:e,item:a,itemInputValue:l,itemUrl:s,refresh:n,source:i,state:r.getState()},o))}))}},l)}}}var vn="1.13.0",bn=[{segment:"autocomplete-core",version:vn}];function wn(e){return wn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},wn(e)}function kn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function xn(e){for(var t=1;t=n?null===r?null:0:o}function jn(e){return jn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},jn(e)}function Cn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Pn(e){for(var t=1;t=5&&((o||!e&&5===r)&&(i.push(r,0,o,n),r=6),e&&(i.push(r,e,0,n),r=6)),o=""},s=0;s"===t?(r=1,o=""):o=t+o[0]:a?t===a?a="":o+=t:'"'===t||"'"===t?a=t:">"===t?(l(),r=1):r&&("="===t?(r=5,n=o,o=""):"/"===t&&(r<5||">"===e[s][u+1])?(l(),3===r&&(i=i[0]),r=i,(i=i[0]).push(2,0,r),r=0):" "===t||"\t"===t||"\n"===t||"\r"===t?(l(),r=2):o+=t),3===r&&"!--"===o&&(r=4,i=i[0])}return l(),i}(e)),t),arguments,[])).length>1?t:t[0]}var zn=function(e){var t=e.environment,n=t.document.createElementNS("http://www.w3.org/2000/svg","svg");n.setAttribute("class","aa-SubmitIcon"),n.setAttribute("viewBox","0 0 24 24"),n.setAttribute("width","20"),n.setAttribute("height","20"),n.setAttribute("fill","currentColor");var r=t.document.createElementNS("http://www.w3.org/2000/svg","path");return r.setAttribute("d","M16.041 15.856c-0.034 0.026-0.067 0.055-0.099 0.087s-0.060 0.064-0.087 0.099c-1.258 1.213-2.969 1.958-4.855 1.958-1.933 0-3.682-0.782-4.95-2.050s-2.050-3.017-2.050-4.95 0.782-3.682 2.050-4.95 3.017-2.050 4.95-2.050 3.682 0.782 4.95 2.050 2.050 3.017 2.050 4.95c0 1.886-0.745 3.597-1.959 4.856zM21.707 20.293l-3.675-3.675c1.231-1.54 1.968-3.493 1.968-5.618 0-2.485-1.008-4.736-2.636-6.364s-3.879-2.636-6.364-2.636-4.736 1.008-6.364 2.636-2.636 3.879-2.636 6.364 1.008 4.736 2.636 6.364 3.879 2.636 6.364 2.636c2.125 0 4.078-0.737 5.618-1.968l3.675 3.675c0.391 0.391 1.024 0.391 1.414 0s0.391-1.024 0-1.414z"),n.appendChild(r),n},Un=function(e){var t=e.environment,n=t.document.createElementNS("http://www.w3.org/2000/svg","svg");n.setAttribute("class","aa-ClearIcon"),n.setAttribute("viewBox","0 0 24 24"),n.setAttribute("width","18"),n.setAttribute("height","18"),n.setAttribute("fill","currentColor");var r=t.document.createElementNS("http://www.w3.org/2000/svg","path");return r.setAttribute("d","M5.293 6.707l5.293 5.293-5.293 5.293c-0.391 0.391-0.391 1.024 0 1.414s1.024 0.391 1.414 0l5.293-5.293 5.293 5.293c0.391 0.391 1.024 0.391 1.414 0s0.391-1.024 0-1.414l-5.293-5.293 5.293-5.293c0.391-0.391 0.391-1.024 0-1.414s-1.024-0.391-1.414 0l-5.293 5.293-5.293-5.293c-0.391-0.391-1.024-0.391-1.414 0s-0.391 1.024 0 1.414z"),n.appendChild(r),n},$n=function(e){var t=e.environment.document.createElementNS("http://www.w3.org/2000/svg","svg");return t.setAttribute("class","aa-LoadingIcon"),t.setAttribute("viewBox","0 0 100 100"),t.setAttribute("width","20"),t.setAttribute("height","20"),t.innerHTML='\n \n',t},qn=["ontouchstart","ontouchend","ontouchmove","ontouchcancel"];function Hn(e,t,n){e[t]=null===n?"":"number"!=typeof n?n:n+"px"}function Qn(e){this._listeners[e.type](e)}function Vn(e,t,n){var r,o,a=e[t];if("style"===t)if("string"==typeof n)e.style=n;else if(null===n)e.style="";else for(t in n)a&&n[t]===a[t]||Hn(e.style,t,n[t]);else"o"===t[0]&&"n"===t[1]?(r=t!==(t=t.replace(/Capture$/,"")),((o=t.toLowerCase())in e||qn.includes(o))&&(t=o),t=t.slice(2),e._listeners||(e._listeners={}),e._listeners[t]=n,n?a||e.addEventListener(t,Qn,r):e.removeEventListener(t,Qn,r)):"list"!==t&&"tagName"!==t&&"form"!==t&&"type"!==t&&"size"!==t&&"download"!==t&&"href"!==t&&t in e?e[t]=null==n?"":n:"function"!=typeof n&&"dangerouslySetInnerHTML"!==t&&(null==n||!1===n&&!/^ar/.test(t)?e.removeAttribute(t):e.setAttribute(t,n))}function Wn(e){return"onChange"===e?"onInput":e}function Zn(e,t){for(var n in t)Vn(e,Wn(n),t[n])}function Gn(e,t){for(var n in t)"o"===n[0]&&"n"===n[1]||Vn(e,Wn(n),t[n])}var Kn=["children"];function Yn(e){return function(e){if(Array.isArray(e))return Jn(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return Jn(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Jn(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Jn(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function er(e){return function(t,n){var r=n.children,o=void 0===r?[]:r,a=Xn(n,Kn),i=e.document.createElement(t);return Zn(i,a),i.append.apply(i,Yn(o)),i}}function tr(e){return tr="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},tr(e)}var nr=["autocompleteScopeApi","environment","classNames","getInputProps","getInputPropsCore","isDetached","state"];function rr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function or(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var lr=function(e){var t=e.autocompleteScopeApi,n=e.environment,r=(e.classNames,e.getInputProps),o=e.getInputPropsCore,a=e.isDetached,i=e.state,l=ir(e,nr),s=er(n)("input",l),u=r(or({state:i,props:o({inputElement:s}),inputElement:s},t));return Zn(s,or(or({},u),{},{onKeyDown:function(e){a&&"Tab"===e.key||u.onKeyDown(e)}})),s};function sr(e){return sr="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},sr(e)}function ur(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function cr(e){for(var t=1;t2&&(i.children=arguments.length>3?pr.call(arguments,2):n),"function"==typeof e&&null!=e.defaultProps)for(a in e.defaultProps)void 0===i[a]&&(i[a]=e.defaultProps[a]);return Or(e,i,r,o,null)}function Or(e,t,n,r,o){var a={type:e,props:t,key:n,ref:r,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,constructor:void 0,__v:null==o?++mr:o,__i:-1,__u:0};return null==o&&null!=fr.vnode&&fr.vnode(a),a}function jr(e){return e.children}function Cr(e,t){this.props=e,this.context=t}function Pr(e,t){if(null==t)return e.__?Pr(e.__,e.__i+1):null;for(var n;tt&&hr.sort(vr));Ar.__r=0}function Nr(e,t,n,r,o,a,i,l,s,u,c){var d,p,f,m,h,g=r&&r.__k||wr,y=t.length;for(n.__d=s,Lr(n,t,g),s=n.__d,d=0;d0?Or(o.type,o.props,o.key,o.ref?o.ref:null,o.__v):o)?(o.__=e,o.__b=e.__b+1,l=Dr(o,n,i=r+d,c),o.__i=l,a=null,-1!==l&&(c--,(a=n[l])&&(a.__u|=131072)),null==a||null===a.__v?(-1==l&&d--,"function"!=typeof o.type&&(o.__u|=65536)):l!==i&&(l===i+1?d++:l>i?c>s-i?d+=l-i:d--:d=l(null!=s&&0==(131072&s.__u)?1:0))for(;i>=0||l=0){if((s=t[i])&&0==(131072&s.__u)&&o==s.key&&a===s.type)return i;i--}if(l0&&void 0!==arguments[0]?arguments[0]:[];return{get:function(){return e},add:function(t){var n=e[e.length-1];(null==n?void 0:n.isHighlighted)===t.isHighlighted?e[e.length-1]={value:n.value+t.value,isHighlighted:n.isHighlighted}:e.push(t)}}}(n?[{value:n,isHighlighted:!1}]:[]);return t.forEach((function(e){var t=e.split(Kr);r.add({value:t[0],isHighlighted:!0}),""!==t[1]&&r.add({value:t[1],isHighlighted:!1})})),r.get()}function Jr(e){return function(e){if(Array.isArray(e))return Xr(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return Xr(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Xr(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Xr(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n",""":'"',"'":"'"},ro=new RegExp(/\w/i),oo=/&(amp|quot|lt|gt|#39);/g,ao=RegExp(oo.source);function io(e,t){var n,r,o,a=e[t],i=(null===(n=e[t+1])||void 0===n?void 0:n.isHighlighted)||!0,l=(null===(r=e[t-1])||void 0===r?void 0:r.isHighlighted)||!0;return ro.test((o=a.value)&&ao.test(o)?o.replace(oo,(function(e){return no[e]})):o)||l!==i?a.isHighlighted:l}function lo(e){return lo="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},lo(e)}function so(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function uo(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var jo={clearButton:"aa-ClearButton",detachedCancelButton:"aa-DetachedCancelButton",detachedContainer:"aa-DetachedContainer",detachedFormContainer:"aa-DetachedFormContainer",detachedOverlay:"aa-DetachedOverlay",detachedSearchButton:"aa-DetachedSearchButton",detachedSearchButtonIcon:"aa-DetachedSearchButtonIcon",detachedSearchButtonPlaceholder:"aa-DetachedSearchButtonPlaceholder",detachedSearchButtonQuery:"aa-DetachedSearchButtonQuery",form:"aa-Form",input:"aa-Input",inputWrapper:"aa-InputWrapper",inputWrapperPrefix:"aa-InputWrapperPrefix",inputWrapperSuffix:"aa-InputWrapperSuffix",item:"aa-Item",label:"aa-Label",list:"aa-List",loadingIndicator:"aa-LoadingIndicator",panel:"aa-Panel",panelLayout:"aa-PanelLayout aa-Panel--scrollable",root:"aa-Autocomplete",source:"aa-Source",sourceFooter:"aa-SourceFooter",sourceHeader:"aa-SourceHeader",sourceNoResults:"aa-SourceNoResults",submitButton:"aa-SubmitButton"},Co=function(e,t){var n=e.children;(0,e.render)(n,t)},Po={createElement:Er,Fragment:jr,render:Wr};function To(e){var t=e.panelPlacement,n=e.container,r=e.form,o=e.environment,a=n.getBoundingClientRect(),i=(o.pageYOffset||o.document.documentElement.scrollTop||o.document.body.scrollTop||0)+a.top+a.height;switch(t){case"start":return{top:i,left:a.left};case"end":return{top:i,right:o.document.documentElement.clientWidth-(a.left+a.width)};case"full-width":return{top:i,left:0,right:0,width:"unset",maxWidth:"unset"};case"input-wrapper-width":var l=r.getBoundingClientRect();return{top:i,left:l.left,right:o.document.documentElement.clientWidth-(l.left+l.width),width:"unset",maxWidth:"unset"};default:throw new Error("[Autocomplete] The `panelPlacement` value ".concat(JSON.stringify(t)," is not valid."))}}function Io(e){return Io="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Io(e)}function Ao(){return Ao=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function Yo(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Jo(e){for(var t=1;t0;if(!p.value.core.openOnFocus&&!t.query)return n;var r=Boolean(u.current||p.value.renderer.renderNoResults);return!n&&r||n},__autocomplete_metadata:{userAgents:Do,options:e}}))})),h=be(Jo({collections:[],completion:null,context:{},isOpen:!1,query:"",activeItemId:null,status:"idle"},p.value.core.initialState)),g={getEnvironmentProps:p.value.renderer.getEnvironmentProps,getFormProps:p.value.renderer.getFormProps,getInputProps:p.value.renderer.getInputProps,getItemProps:p.value.renderer.getItemProps,getLabelProps:p.value.renderer.getLabelProps,getListProps:p.value.renderer.getListProps,getPanelProps:p.value.renderer.getPanelProps,getRootProps:p.value.renderer.getRootProps},y={setActiveItemId:m.value.setActiveItemId,setQuery:m.value.setQuery,setCollections:m.value.setCollections,setIsOpen:m.value.setIsOpen,setStatus:m.value.setStatus,setContext:m.value.setContext,refresh:m.value.refresh,navigator:m.value.navigator},v=l((function(){return Bn.bind(p.value.renderer.renderer.createElement)})),b=l((function(){return function(e){var t=e.autocomplete,n=e.autocompleteScopeApi,r=e.classNames,o=e.environment,a=e.isDetached,i=e.placeholder,l=void 0===i?"Search":i,s=e.propGetters,u=e.setIsModalOpen,c=e.state,d=e.translations,p=er(o),f=s.getRootProps(cr({state:c,props:t.getRootProps({})},n)),m=p("div",cr({class:r.root},f)),h=p("div",{class:r.detachedContainer,onMouseDown:function(e){e.stopPropagation()}}),g=p("div",{class:r.detachedOverlay,children:[h],onMouseDown:function(){u(!1),t.setIsOpen(!1)}}),y=s.getLabelProps(cr({state:c,props:t.getLabelProps({})},n)),v=p("button",{class:r.submitButton,type:"submit",title:d.submitButtonTitle,children:[zn({environment:o})]}),b=p("label",cr({class:r.label,children:[v]},y)),w=p("button",{class:r.clearButton,type:"reset",title:d.clearButtonTitle,children:[Un({environment:o})]}),k=p("div",{class:r.loadingIndicator,children:[$n({environment:o})]}),x=lr({class:r.input,environment:o,state:c,getInputProps:s.getInputProps,getInputPropsCore:t.getInputProps,autocompleteScopeApi:n,isDetached:a}),S=p("div",{class:r.inputWrapperPrefix,children:[b,k]}),_=p("div",{class:r.inputWrapperSuffix,children:[w]}),E=p("div",{class:r.inputWrapper,children:[x]}),O=s.getFormProps(cr({state:c,props:t.getFormProps({inputElement:x})},n)),j=p("form",cr({class:r.form,children:[S,E,_]},O)),C=s.getPanelProps(cr({state:c,props:t.getPanelProps({})},n)),P=p("div",cr({class:r.panel},C)),T=p("div",{class:r.detachedSearchButtonQuery,textContent:c.query}),I=p("div",{class:r.detachedSearchButtonPlaceholder,hidden:Boolean(c.query),textContent:l});if(a){var A=p("div",{class:r.detachedSearchButtonIcon,children:[zn({environment:o})]}),N=p("button",{type:"button",class:r.detachedSearchButton,onClick:function(){u(!0)},children:[A,I,T]}),L=p("button",{type:"button",class:r.detachedCancelButton,textContent:d.detachedCancelButtonText,onTouchStart:function(e){e.stopPropagation()},onClick:function(){t.setIsOpen(!1),u(!1)}}),R=p("div",{class:r.detachedFormContainer,children:[j,L]});h.appendChild(R),m.appendChild(N)}else m.appendChild(j);return{detachedContainer:h,detachedOverlay:g,detachedSearchButtonQuery:T,detachedSearchButtonPlaceholder:I,inputWrapper:E,input:x,root:m,form:j,label:b,submitButton:v,clearButton:w,loadingIndicator:k,panel:P}}({autocomplete:m.value,autocompleteScopeApi:y,classNames:p.value.renderer.classNames,environment:p.value.core.environment,isDetached:f.value,placeholder:p.value.core.placeholder,propGetters:g,setIsModalOpen:S,state:h.current,translations:p.value.renderer.translations})}));function w(){Zn(b.value.panel,{style:f.value?{}:To({panelPlacement:p.value.renderer.panelPlacement,container:b.value.root,form:b.value.form,environment:p.value.core.environment})})}function k(e){h.current=e;var t={autocomplete:m.value,autocompleteScopeApi:y,classNames:p.value.renderer.classNames,components:p.value.renderer.components,container:p.value.renderer.container,html:v.value,dom:b.value,panelContainer:f.value?b.value.detachedContainer:p.value.renderer.panelContainer,propGetters:g,state:h.current,renderer:p.value.renderer.renderer},n=!it(e)&&!u.current&&p.value.renderer.renderNoResults||p.value.renderer.render;!function(e){var t=e.autocomplete,n=e.autocompleteScopeApi,r=e.dom,o=e.propGetters,a=e.state;Gn(r.root,o.getRootProps(Lo({state:a,props:t.getRootProps({})},n))),Gn(r.input,o.getInputProps(Lo({state:a,props:t.getInputProps({inputElement:r.input}),inputElement:r.input},n))),Zn(r.label,{hidden:"stalled"===a.status}),Zn(r.loadingIndicator,{hidden:"stalled"!==a.status}),Zn(r.clearButton,{hidden:!a.query}),Zn(r.detachedSearchButtonQuery,{textContent:a.query}),Zn(r.detachedSearchButtonPlaceholder,{hidden:Boolean(a.query)})}(t),function(e,t){var n=t.autocomplete,r=t.autocompleteScopeApi,o=t.classNames,a=t.html,i=t.dom,l=t.panelContainer,s=t.propGetters,u=t.state,c=t.components,d=t.renderer;if(u.isOpen){l.contains(i.panel)||"loading"===u.status||l.appendChild(i.panel),i.panel.classList.toggle("aa-Panel--stalled","stalled"===u.status);var p=u.collections.filter((function(e){var t=e.source,n=e.items;return t.templates.noResults||n.length>0})).map((function(e,t){var i=e.source,l=e.items;return d.createElement("section",{key:t,className:o.source,"data-autocomplete-source-id":i.sourceId},i.templates.header&&d.createElement("div",{className:o.sourceHeader},i.templates.header({components:c,createElement:d.createElement,Fragment:d.Fragment,items:l,source:i,state:u,html:a})),i.templates.noResults&&0===l.length?d.createElement("div",{className:o.sourceNoResults},i.templates.noResults({components:c,createElement:d.createElement,Fragment:d.Fragment,source:i,state:u,html:a})):d.createElement("ul",Ao({className:o.list},s.getListProps(Lo({state:u,props:n.getListProps({source:i})},r))),l.map((function(e){var t=n.getItemProps({item:e,source:i});return d.createElement("li",Ao({key:t.id,className:o.item},s.getItemProps(Lo({state:u,props:t},r))),i.templates.item({components:c,createElement:d.createElement,Fragment:d.Fragment,item:e,state:u,html:a}))}))),i.templates.footer&&d.createElement("div",{className:o.sourceFooter},i.templates.footer({components:c,createElement:d.createElement,Fragment:d.Fragment,items:l,source:i,state:u,html:a})))})),f=d.createElement(d.Fragment,null,d.createElement("div",{className:o.panelLayout},p),d.createElement("div",{className:"aa-GradientBottom"})),m=p.reduce((function(e,t){return e[t.props["data-autocomplete-source-id"]]=t,e}),{});e(Lo(Lo({children:f,state:u,sections:p,elements:m},d),{},{components:c,html:a},r),i.panel)}else l.contains(i.panel)&&l.removeChild(i.panel)}(n,t)}function x(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};o();var t,n,r=p.value.renderer,i=r.components,l=Ko(r,Zo);c.current=Uo(l,p.value.core,{components:(t=i,n=function(e){return!e.value.hasOwnProperty("__autocomplete_componentName")},Object.entries(t).reduce((function(e,t){var r=Vo(t,2),o=r[0],a=r[1];return n({key:o,value:a})?Ho(Ho({},e),{},Qo({},o,a)):e}),{})),initialState:h.current},e),s(),a(),m.value.refresh().then((function(){k(h.current)}))}function S(e){requestAnimationFrame((function(){var t=p.value.core.environment.document.body.contains(b.value.detachedOverlay);e!==t&&(e?(p.value.core.environment.document.body.appendChild(b.value.detachedOverlay),p.value.core.environment.document.body.classList.add("aa-Detached"),b.value.input.focus()):(p.value.core.environment.document.body.removeChild(b.value.detachedOverlay),p.value.core.environment.document.body.classList.remove("aa-Detached")))}))}return r((function(){var e=m.value.getEnvironmentProps({formElement:b.value.form,panelElement:b.value.panel,inputElement:b.value.input});return Zn(p.value.core.environment,e),function(){Zn(p.value.core.environment,Object.keys(e).reduce((function(e,t){return Jo(Jo({},e),{},Xo({},t,void 0))}),{}))}})),r((function(){var e=f.value?p.value.core.environment.document.body:p.value.renderer.panelContainer,t=f.value?b.value.detachedOverlay:b.value.panel;return f.value&&h.current.isOpen&&S(!0),k(h.current),function(){e.contains(t)&&e.removeChild(t)}})),r((function(){var e=p.value.renderer.container;return e.appendChild(b.value.root),function(){e.removeChild(b.value.root)}})),r((function(){var e=ve((function(e){k(e.state)}),0);return d.current=function(t){var n=t.state,r=t.prevState;(f.value&&r.isOpen!==n.isOpen&&S(n.isOpen),f.value||!n.isOpen||r.isOpen||w(),n.query!==r.query)&&p.value.core.environment.document.querySelectorAll(".aa-Panel--scrollable").forEach((function(e){0!==e.scrollTop&&(e.scrollTop=0)}));e({state:n})},function(){d.current=void 0}})),r((function(){var e=ve((function(){var e=f.value;f.value=p.value.core.environment.matchMedia(p.value.renderer.detachedMediaQuery).matches,e!==f.value?x({}):requestAnimationFrame(w)}),20);return p.value.core.environment.addEventListener("resize",e),function(){p.value.core.environment.removeEventListener("resize",e)}})),r((function(){if(!f.value)return function(){};function e(e){b.value.detachedContainer.classList.toggle("aa-DetachedContainer--modal",e)}function t(t){e(t.matches)}var n=p.value.core.environment.matchMedia(getComputedStyle(p.value.core.environment.document.documentElement).getPropertyValue("--aa-detached-modal-media-query"));e(n.matches);var r=Boolean(n.addEventListener);return r?n.addEventListener("change",t):n.addListener(t),function(){r?n.removeEventListener("change",t):n.removeListener(t)}})),r((function(){return requestAnimationFrame(w),function(){}})),Jo(Jo({},y),{},{update:x,destroy:function(){o()}})}var ta=n(1514);const na=n(5351),ra=na;var oa=n(813),aa=n.n(oa);function ia(){const e=(0,l.TH)(),t=(0,l.k6)(),{siteConfig:{baseUrl:n}}=(0,se.Z)(),[o,a]=(0,r.useState)({terms:[],isDocsOrBlog:!1});return(0,r.useEffect)((()=>{if(!e.state?.cmfcmfhighlight||0===e.state.cmfcmfhighlight.terms.length)return;a(e.state.cmfcmfhighlight);const{cmfcmfhighlight:n,...r}=e.state;t.replace({...e,state:r})}),[e.state?.cmfcmfhighlight,t,e]),(0,r.useEffect)((()=>{if(0===o.terms.length)return;const e=o.isDocsOrBlog?document.getElementsByTagName("article")[0]:document.getElementsByTagName("main")[0];if(!e)return;const t=new(aa())(e),n={ignoreJoiners:!0};return t.mark(o.terms,n),()=>t.unmark(n)}),[o,n]),null}var la=n(1610),sa=n(246);function ua(e){let{document:t}=e;const[n,r]=t.sectionRoute.split("#");let o=n;return r&&(o+="#"+r),o}const ca={documents:[],index:ra((function(){this.ref("id"),this.field("title"),this.field("content")}))};const da=()=>{const e=(0,B.Z)(),[t,n]=(0,r.useState)((()=>!!e&&"dark"===document.documentElement.getAttribute("data-theme")));(0,r.useEffect)((()=>{const e=new MutationObserver((()=>{n("dark"===document.documentElement.getAttribute("data-theme"))}));return e.observe(document.documentElement,{attributes:!0,attributeFilter:["data-theme"]}),()=>e.disconnect()}),[]);const{siteConfig:{baseUrl:o}}=(0,se.Z)(),{titleBoost:a,contentBoost:i,tagsBoost:u,parentCategoriesBoost:c,indexDocSidebarParentCategories:d,maxSearchResults:p}=(0,la.eZ)("@cmfcmf/docusaurus-search-local"),f=(0,l.k6)(),{tags:m}=(0,sa._q)(),h=(0,r.useRef)(m);(0,r.useEffect)((()=>{h.current=m}),[m]);const g=(0,r.useRef)({}),y=async e=>{const t=g.current[e];switch(t?.state){case"ready":return t;case void 0:{const t=[];g.current[e]={state:"loading",callbacks:t};const n=await async function(e,t){{let r;try{const n=await fetch(`${e}search-index-${t}.json`);if(!n.ok)return ca;r=await n.json()}catch(n){return ca}return{documents:r.documents,index:ra.Index.load(r.index)}}}(o,e);return t.forEach((e=>e(n))),g.current[e]={state:"ready",...n}}case"loading":return new Promise((e=>{t.callbacks.push(e)}))}},v=(0,s.I)({message:"cmfcmf/d-s-l.searchBar.placeholder",description:"Placeholder shown in the searchbar"}),b=(0,r.useRef)(null),w=(0,r.useRef)(null);return(0,r.useEffect)((()=>{if(b.current)return w.current=ea({container:b.current,placeholder:v,renderer:{createElement:r.createElement,Fragment:r.Fragment,render:ye.render},navigator:{navigate(e){let{item:t,itemUrl:n}=e;f.push(n,{cmfcmfhighlight:{terms:t.terms,isDocsOrBlog:"docs"===t.document.type||"blog"===t.document.type}})}},detachedMediaQuery:"",defaultActiveItemId:0,translations:{clearButtonTitle:(0,s.I)({message:"cmfcmf/d-s-l.searchBar.clearButtonTitle",description:"Title of the button to clear the current search input"}),detachedCancelButtonText:(0,s.I)({message:"cmfcmf/d-s-l.searchBar.detachedCancelButtonText",description:"Text of the button to close the detached search window"}),submitButtonTitle:(0,s.I)({message:"cmfcmf/d-s-l.searchBar.submitButtonTitle",description:"Title of the button to submit a new search"})},getSources(e){let{query:t}=e;return[{sourceId:"search-results",templates:{item(e){let{item:t}=e;const n=ua(t);return r.createElement("a",{href:n,className:"aa-ItemLink",onClick:e=>{e.preventDefault(),f.push(n,{cmfcmfhighlight:{terms:t.terms,isDocsOrBlog:"docs"===t.document.type||"blog"===t.document.type}})}},r.createElement("div",{className:"aa-ItemContent"},r.createElement("div",{className:"aa-ItemContentBody"},r.createElement("div",{className:"aa-ItemContentTitle"},t.document.sectionTitle),t.document.pageTitle!==t.document.sectionTitle&&r.createElement("div",{className:"aa-ItemContentDescription"},t.document.pageTitle))),r.createElement("div",{className:"aa-ItemActions"},r.createElement("button",{className:"aa-ItemActionButton aa-DesktopOnly aa-ActiveOnly",type:"button",title:"Select"},r.createElement("svg",{viewBox:"0 0 24 24",width:"20",height:"20",fill:"currentColor"},r.createElement("path",{d:"M18.984 6.984h2.016v6h-15.188l3.609 3.609-1.406 1.406-6-6 6-6 1.406 1.406-3.609 3.609h13.172v-4.031z"})))))},noResults:()=>r.createElement("div",{className:"aa-ItemContent"},r.createElement("div",{className:"aa-ItemContentBody"},(0,s.I)({message:"cmfcmf/d-s-l.searchBar.noResults",description:"message shown if no results are found"})))},getItemUrl(e){let{item:t}=e;return ua(t)},async getItems(){const e=h.current,n=await Promise.all(e.map((e=>y(e)))),r=(e=>na.tokenizer(e).map((e=>e.str)))(t);return n.flatMap((e=>{let{index:t,documents:n}=e;return t.query((e=>{e.term(r,{fields:["title"],boost:a}),e.term(r,{fields:["title"],boost:a,wildcard:ra.Query.wildcard.TRAILING}),e.term(r,{fields:["content"],boost:i}),e.term(r,{fields:["content"],boost:i,wildcard:ra.Query.wildcard.TRAILING}),e.term(r,{fields:["tags"],boost:u}),e.term(r,{fields:["tags"],boost:u,wildcard:ra.Query.wildcard.TRAILING}),d&&(e.term(r,{fields:["sidebarParentCategories"],boost:c}),e.term(r,{fields:["sidebarParentCategories"],boost:c,wildcard:ra.Query.wildcard.TRAILING}))})).slice(0,p).map((e=>({document:n.find((t=>t.id.toString()===e.ref)),score:e.score,terms:r})))})).sort(((e,t)=>t.score-e.score)).slice(0,p)}}]}}),()=>w.current?.destroy()}),[p]),r.createElement(r.Fragment,null,r.createElement(ta.Z,null,r.createElement("body",{"data-theme":t?"dark":"light"})),r.createElement(ia,null),r.createElement("div",{className:"dsla-search-wrapper"},r.createElement("div",{className:"dsla-search-field",ref:b,"data-tags":m.join(",")})))},pa={navbarSearchContainer:"navbarSearchContainer_Bca1"};function fa(e){let{children:t,className:n}=e;return(0,c.jsx)("div",{className:(0,o.Z)(n,pa.navbarSearchContainer),children:t})}var ma=n(868),ha=n(3734);var ga=n(6409);const ya=e=>e.docs.find((t=>t.id===e.mainDocId));const va={default:ae,localeDropdown:function(e){let{mobile:t,dropdownItemsBefore:n,dropdownItemsAfter:r,queryString:o="",...a}=e;const{i18n:{currentLocale:i,locales:u,localeConfigs:d}}=(0,se.Z)(),p=(0,me.l)(),{search:f,hash:m}=(0,l.TH)(),h=[...n,...u.map((e=>{const n=`${`pathname://${p.createUrl({locale:e,fullyQualified:!1})}`}${f}${m}${o}`;return{label:d[e].label,lang:d[e].htmlLang,to:n,target:"_self",autoAddBaseUrl:!1,className:e===i?t?"menu__link--active":"dropdown__link--active":""}})),...r],g=t?(0,s.I)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):d[i].label;return(0,c.jsx)(fe,{...a,mobile:t,label:(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(he,{className:ge}),g]}),items:h})},search:function(e){let{mobile:t,className:n}=e;return t?null:(0,c.jsx)(fa,{className:n,children:(0,c.jsx)(da,{})})},dropdown:fe,html:function(e){let{value:t,className:n,mobile:r=!1,isDropdownItem:a=!1}=e;const i=a?"li":"div";return(0,c.jsx)(i,{className:(0,o.Z)({navbar__item:!r&&!a,"menu__list-item":r},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){let{docId:t,label:n,docsPluginId:r,...o}=e;const{activeDoc:a}=(0,ma.Iw)(r),i=(0,ha.vY)(t,r),l=a?.path===i?.path;return null===i||i.unlisted&&!l?null:(0,c.jsx)(ae,{exact:!0,...o,isActive:()=>l||!!a?.sidebar&&a.sidebar===i.sidebar,label:n??i.id,to:i.path})},docSidebar:function(e){let{sidebarId:t,label:n,docsPluginId:r,...o}=e;const{activeDoc:a}=(0,ma.Iw)(r),i=(0,ha.oz)(t,r).link;if(!i)throw new Error(`DocSidebarNavbarItem: Sidebar with ID "${t}" doesn't have anything to be linked to.`);return(0,c.jsx)(ae,{exact:!0,...o,isActive:()=>a?.sidebar===t,label:n??i.label,to:i.path})},docsVersion:function(e){let{label:t,to:n,docsPluginId:r,...o}=e;const a=(0,ha.lO)(r)[0],i=t??a.label,l=n??(e=>e.docs.find((t=>t.id===e.mainDocId)))(a).path;return(0,c.jsx)(ae,{...o,label:i,to:l})},docsVersionDropdown:function(e){let{mobile:t,docsPluginId:n,dropdownActiveClassDisabled:r,dropdownItemsBefore:o,dropdownItemsAfter:a,...i}=e;const{search:u,hash:d}=(0,l.TH)(),p=(0,ma.Iw)(n),f=(0,ma.gB)(n),{savePreferredVersionName:m}=(0,ga.J)(n),h=f.map((e=>{const t=p.alternateDocVersions[e.name]??ya(e);return{label:e.label,to:`${t.path}${u}${d}`,isActive:()=>e===p.activeVersion,onClick:()=>m(e.name)}})),g=[...o,...h,...a],y=(0,ha.lO)(n)[0],v=t&&g.length>1?(0,s.I)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):y.label,b=t&&g.length>1?void 0:ya(y).path;return g.length<=1?(0,c.jsx)(ae,{...i,mobile:t,label:v,to:b,isActive:r?()=>!1:void 0}):(0,c.jsx)(fe,{...i,mobile:t,label:v,to:b,items:g,isActive:r?()=>!1:void 0})}},ba=va;function wa(e){let{type:t,...n}=e;const r=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(t,n),o=ba[r];if(!o)throw new Error(`No NavbarItem component found for type "${t}".`);return(0,c.jsx)(o,{...n})}function ka(){const e=(0,P.e)(),t=(0,w.L)().navbar.items;return(0,c.jsx)("ul",{className:"menu__list",children:t.map(((t,n)=>(0,r.createElement)(wa,{mobile:!0,...t,onClick:()=>e.toggle(),key:n})))})}function xa(e){return(0,c.jsx)("button",{...e,type:"button",className:"clean-btn navbar-sidebar__back",children:(0,c.jsx)(s.Z,{id:"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel",description:"The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)",children:"\u2190 Back to main menu"})})}function Sa(){const e=0===(0,w.L)().navbar.items.length,t=D();return(0,c.jsxs)(c.Fragment,{children:[!e&&(0,c.jsx)(xa,{onClick:()=>t.hide()}),t.content]})}function _a(){const e=(0,P.e)();var t;return void 0===(t=e.shown)&&(t=!0),(0,r.useEffect)((()=>(document.body.style.overflow=t?"hidden":"visible",()=>{document.body.style.overflow="visible"})),[t]),e.shouldRender?(0,c.jsx)(F,{header:(0,c.jsx)(K,{}),primaryMenu:(0,c.jsx)(ka,{}),secondaryMenu:(0,c.jsx)(Sa,{})}):null}const Ea={navbarHideable:"navbarHideable_m1mJ",navbarHidden:"navbarHidden_jGov"};function Oa(e){return(0,c.jsx)("div",{role:"presentation",...e,className:(0,o.Z)("navbar-sidebar__backdrop",e.className)})}function ja(e){let{children:t}=e;const{navbar:{hideOnScroll:n,style:a}}=(0,w.L)(),i=(0,P.e)(),{navbarRef:l,isNavbarVisible:d}=function(e){const[t,n]=(0,r.useState)(e),o=(0,r.useRef)(!1),a=(0,r.useRef)(0),i=(0,r.useCallback)((e=>{null!==e&&(a.current=e.getBoundingClientRect().height)}),[]);return(0,T.RF)(((t,r)=>{let{scrollY:i}=t;if(!e)return;if(i=l?n(!1):i+u{if(!e)return;const r=t.location.hash;if(r?document.getElementById(r.substring(1)):void 0)return o.current=!0,void n(!1);n(!0)})),{navbarRef:i,isNavbarVisible:t}}(n);return(0,c.jsxs)("nav",{ref:l,"aria-label":(0,s.I)({id:"theme.NavBar.navAriaLabel",message:"Main",description:"The ARIA label for the main navigation"}),className:(0,o.Z)("navbar","navbar--fixed-top",n&&[Ea.navbarHideable,!d&&Ea.navbarHidden],{"navbar--dark":"dark"===a,"navbar--primary":"primary"===a,"navbar-sidebar--show":i.shown}),children:[t,(0,c.jsx)(Oa,{onClick:i.toggle}),(0,c.jsx)(_a,{})]})}var Ca=n(3905);const Pa={errorBoundaryError:"errorBoundaryError_a6uf",errorBoundaryFallback:"errorBoundaryFallback_VBag"};function Ta(e){return(0,c.jsx)("button",{type:"button",...e,children:(0,c.jsx)(s.Z,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again rendering when the React error boundary captures an error",children:"Try again"})})}function Ia(e){let{error:t}=e;const n=(0,Ca.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return(0,c.jsx)("p",{className:Pa.errorBoundaryError,children:n})}class Aa extends r.Component{componentDidCatch(e,t){throw this.props.onError(e,t)}render(){return this.props.children}}const Na="right";function La(e){let{width:t=30,height:n=30,className:r,...o}=e;return(0,c.jsx)("svg",{className:r,width:t,height:n,viewBox:"0 0 30 30","aria-hidden":"true",...o,children:(0,c.jsx)("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"})})}function Ra(){const{toggle:e,shown:t}=(0,P.e)();return(0,c.jsx)("button",{onClick:e,"aria-label":(0,s.I)({id:"theme.docs.sidebar.toggleSidebarButtonAriaLabel",message:"Toggle navigation bar",description:"The ARIA label for hamburger menu button of mobile navigation"}),"aria-expanded":t,className:"navbar__toggle clean-btn",type:"button",children:(0,c.jsx)(La,{})})}const Da={colorModeToggle:"colorModeToggle_DEke"};function Fa(e){let{items:t}=e;return(0,c.jsx)(c.Fragment,{children:t.map(((e,t)=>(0,c.jsx)(Aa,{onError:t=>new Error(`A theme navbar item failed to render.\nPlease double-check the following navbar item (themeConfig.navbar.items) of your Docusaurus config:\n${JSON.stringify(e,null,2)}`,{cause:t}),children:(0,c.jsx)(wa,{...e})},t)))})}function Ma(e){let{left:t,right:n}=e;return(0,c.jsxs)("div",{className:"navbar__inner",children:[(0,c.jsx)("div",{className:"navbar__items",children:t}),(0,c.jsx)("div",{className:"navbar__items navbar__items--right",children:n})]})}function Ba(){const e=(0,P.e)(),t=(0,w.L)().navbar.items,[n,r]=function(e){function t(e){return"left"===(e.position??Na)}return[e.filter(t),e.filter((e=>!t(e)))]}(t),o=t.find((e=>"search"===e.type));return(0,c.jsx)(Ma,{left:(0,c.jsxs)(c.Fragment,{children:[!e.disabled&&(0,c.jsx)(Ra,{}),(0,c.jsx)(Z,{}),(0,c.jsx)(Fa,{items:n})]}),right:(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(Fa,{items:r}),(0,c.jsx)(V,{className:Da.colorModeToggle}),!o&&(0,c.jsx)(fa,{children:(0,c.jsx)(da,{})})]})})}function za(){return(0,c.jsx)(ja,{children:(0,c.jsx)(Ba,{})})}function Ua(e){let{item:t}=e;const{to:n,href:r,label:o,prependBaseUrlToHref:a,...i}=t,l=(0,J.Z)(n),s=(0,J.Z)(r,{forcePrependBaseUrl:!0});return(0,c.jsxs)(Y.Z,{className:"footer__link-item",...r?{href:a?s:r}:{to:l},...i,children:[o,r&&!(0,X.Z)(r)&&(0,c.jsx)(te.Z,{})]})}function $a(e){let{item:t}=e;return t.html?(0,c.jsx)("li",{className:"footer__item",dangerouslySetInnerHTML:{__html:t.html}}):(0,c.jsx)("li",{className:"footer__item",children:(0,c.jsx)(Ua,{item:t})},t.href??t.to)}function qa(e){let{column:t}=e;return(0,c.jsxs)("div",{className:"col footer__col",children:[(0,c.jsx)("div",{className:"footer__title",children:t.title}),(0,c.jsx)("ul",{className:"footer__items clean-list",children:t.items.map(((e,t)=>(0,c.jsx)($a,{item:e},t)))})]})}function Ha(e){let{columns:t}=e;return(0,c.jsx)("div",{className:"row footer__links",children:t.map(((e,t)=>(0,c.jsx)(qa,{column:e},t)))})}function Qa(){return(0,c.jsx)("span",{className:"footer__link-separator",children:"\xb7"})}function Va(e){let{item:t}=e;return t.html?(0,c.jsx)("span",{className:"footer__link-item",dangerouslySetInnerHTML:{__html:t.html}}):(0,c.jsx)(Ua,{item:t})}function Wa(e){let{links:t}=e;return(0,c.jsx)("div",{className:"footer__links text--center",children:(0,c.jsx)("div",{className:"footer__links",children:t.map(((e,n)=>(0,c.jsxs)(r.Fragment,{children:[(0,c.jsx)(Va,{item:e}),t.length!==n+1&&(0,c.jsx)(Qa,{})]},n)))})})}function Za(e){let{links:t}=e;return function(e){return"title"in e[0]}(t)?(0,c.jsx)(Ha,{columns:t}):(0,c.jsx)(Wa,{links:t})}var Ga=n(4277);const Ka={footerLogoLink:"footerLogoLink_BH7S"};function Ya(e){let{logo:t}=e;const{withBaseUrl:n}=(0,J.C)(),r={light:n(t.src),dark:n(t.srcDark??t.src)};return(0,c.jsx)(Ga.Z,{className:(0,o.Z)("footer__logo",t.className),alt:t.alt,sources:r,width:t.width,height:t.height,style:t.style})}function Ja(e){let{logo:t}=e;return t.href?(0,c.jsx)(Y.Z,{href:t.href,className:Ka.footerLogoLink,target:t.target,children:(0,c.jsx)(Ya,{logo:t})}):(0,c.jsx)(Ya,{logo:t})}function Xa(e){let{copyright:t}=e;return(0,c.jsx)("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:t}})}function ei(e){let{style:t,links:n,logo:r,copyright:a}=e;return(0,c.jsx)("footer",{className:(0,o.Z)("footer",{"footer--dark":"dark"===t}),children:(0,c.jsxs)("div",{className:"container container-fluid",children:[n,(r||a)&&(0,c.jsxs)("div",{className:"footer__bottom text--center",children:[r&&(0,c.jsx)("div",{className:"margin-bottom--sm",children:r}),a]})]})})}function ti(){const{footer:e}=(0,w.L)();if(!e)return null;const{copyright:t,links:n,logo:r,style:o}=e;return(0,c.jsx)(ei,{style:o,links:n&&n.length>0&&(0,c.jsx)(Za,{links:n}),logo:r&&(0,c.jsx)(Ja,{logo:r}),copyright:t&&(0,c.jsx)(Xa,{copyright:t})})}const ni=r.memo(ti),ri=(0,I.Qc)([M.S,k.pl,T.OC,ga.L5,i.VC,function(e){let{children:t}=e;return(0,c.jsx)(A.n2,{children:(0,c.jsx)(P.M,{children:(0,c.jsx)(L,{children:t})})})}]);function oi(e){let{children:t}=e;return(0,c.jsx)(ri,{children:t})}var ai=n(3899);function ii(e){let{error:t,tryAgain:n}=e;return(0,c.jsx)("main",{className:"container margin-vert--xl",children:(0,c.jsx)("div",{className:"row",children:(0,c.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,c.jsx)(ai.Z,{as:"h1",className:"hero__title",children:(0,c.jsx)(s.Z,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed",children:"This page crashed."})}),(0,c.jsx)("div",{className:"margin-vert--lg",children:(0,c.jsx)(Ta,{onClick:n,className:"button button--primary shadow--lw"})}),(0,c.jsx)("hr",{}),(0,c.jsx)("div",{className:"margin-vert--md",children:(0,c.jsx)(Ia,{error:t})})]})})})}const li={mainWrapper:"mainWrapper_z2l0"};function si(e){const{children:t,noFooter:n,wrapperClassName:r,title:l,description:s}=e;return(0,y.t)(),(0,c.jsxs)(oi,{children:[(0,c.jsx)(i.d,{title:l,description:s}),(0,c.jsx)(b,{}),(0,c.jsx)(C,{}),(0,c.jsx)(za,{}),(0,c.jsx)("div",{id:d,className:(0,o.Z)(g.k.wrapper.main,li.mainWrapper,r),children:(0,c.jsx)(a.Z,{fallback:e=>(0,c.jsx)(ii,{...e}),children:t})}),!n&&(0,c.jsx)(ni,{})]})}},6811:(e,t,n)=>{"use strict";n.d(t,{Z:()=>c});n(7294);var r=n(3699),o=n(9524),a=n(9962),i=n(107),l=n(4277),s=n(5893);function u(e){let{logo:t,alt:n,imageClassName:r}=e;const a={light:(0,o.Z)(t.src),dark:(0,o.Z)(t.srcDark||t.src)},i=(0,s.jsx)(l.Z,{className:t.className,sources:a,height:t.height,width:t.width,alt:n,style:t.style});return r?(0,s.jsx)("div",{className:r,children:i}):i}function c(e){const{siteConfig:{title:t}}=(0,a.Z)(),{navbar:{title:n,logo:l}}=(0,i.L)(),{imageClassName:c,titleClassName:d,...p}=e,f=(0,o.Z)(l?.href||"/"),m=n?"":t,h=l?.alt??m;return(0,s.jsxs)(r.Z,{to:f,...p,...l?.target&&{target:l.target},children:[l&&(0,s.jsx)(u,{logo:l,alt:h,imageClassName:c}),null!=n&&(0,s.jsx)("b",{className:d,children:n})]})}},3647:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});n(7294);var r=n(1514),o=n(5893);function a(e){let{locale:t,version:n,tag:a}=e;const i=t;return(0,o.jsxs)(r.Z,{children:[t&&(0,o.jsx)("meta",{name:"docusaurus_locale",content:t}),n&&(0,o.jsx)("meta",{name:"docusaurus_version",content:n}),a&&(0,o.jsx)("meta",{name:"docusaurus_tag",content:a}),i&&(0,o.jsx)("meta",{name:"docsearch:language",content:i}),n&&(0,o.jsx)("meta",{name:"docsearch:version",content:n}),a&&(0,o.jsx)("meta",{name:"docsearch:docusaurus_tag",content:a})]})}},4277:(e,t,n)=>{"use strict";n.d(t,{Z:()=>c});var r=n(7294),o=n(512),a=n(1048),i=n(9200);const l={themedComponent:"themedComponent_mlkZ","themedComponent--light":"themedComponent--light_NVdE","themedComponent--dark":"themedComponent--dark_xIcU"};var s=n(5893);function u(e){let{className:t,children:n}=e;const u=(0,a.Z)(),{colorMode:c}=(0,i.I)();return(0,s.jsx)(s.Fragment,{children:(u?"dark"===c?["dark"]:["light"]:["light","dark"]).map((e=>{const a=n({theme:e,className:(0,o.Z)(t,l.themedComponent,l[`themedComponent--${e}`])});return(0,s.jsx)(r.Fragment,{children:a},e)}))})}function c(e){const{sources:t,className:n,alt:r,...o}=e;return(0,s.jsx)(u,{className:n,children:e=>{let{theme:n,className:a}=e;return(0,s.jsx)("img",{src:t[n],alt:r,className:a,...o})}})}},4639:(e,t,n)=>{"use strict";n.d(t,{u:()=>u,z:()=>y});var r=n(7294),o=n(6136),a=n(1270),i=n(8986),l=n(5893);const s="ease-in-out";function u(e){let{initialState:t}=e;const[n,o]=(0,r.useState)(t??!1),a=(0,r.useCallback)((()=>{o((e=>!e))}),[]);return{collapsed:n,setCollapsed:o,toggleCollapsed:a}}const c={display:"none",overflow:"hidden",height:"0px"},d={display:"block",overflow:"visible",height:"auto"};function p(e,t){const n=t?c:d;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function f(e){let{collapsibleRef:t,collapsed:n,animation:o}=e;const a=(0,r.useRef)(!1);(0,r.useEffect)((()=>{const e=t.current;function r(){const t=e.scrollHeight,n=o?.duration??function(e){if((0,i.n)())return 1;const t=e/36;return Math.round(10*(4+15*t**.25+t/5))}(t);return{transition:`height ${n}ms ${o?.easing??s}`,height:`${t}px`}}function l(){const t=r();e.style.transition=t.transition,e.style.height=t.height}if(!a.current)return p(e,n),void(a.current=!0);return e.style.willChange="height",function(){const t=requestAnimationFrame((()=>{n?(l(),requestAnimationFrame((()=>{e.style.height=c.height,e.style.overflow=c.overflow}))):(e.style.display="block",requestAnimationFrame((()=>{l()})))}));return()=>cancelAnimationFrame(t)}()}),[t,n,o])}function m(e){if(!o.Z.canUseDOM)return e?c:d}function h(e){let{as:t="div",collapsed:n,children:o,animation:a,onCollapseTransitionEnd:i,className:s,disableSSRStyle:u}=e;const c=(0,r.useRef)(null);return f({collapsibleRef:c,collapsed:n,animation:a}),(0,l.jsx)(t,{ref:c,style:u?void 0:m(n),onTransitionEnd:e=>{"height"===e.propertyName&&(p(c.current,n),i?.(n))},className:s,children:o})}function g(e){let{collapsed:t,...n}=e;const[o,i]=(0,r.useState)(!t),[s,u]=(0,r.useState)(t);return(0,a.Z)((()=>{t||i(!0)}),[t]),(0,a.Z)((()=>{o&&u(t)}),[o,t]),o?(0,l.jsx)(h,{...n,collapsed:s}):null}function y(e){let{lazy:t,...n}=e;const r=t?g:h;return(0,l.jsx)(r,{...n})}},5830:(e,t,n)=>{"use strict";n.d(t,{nT:()=>h,pl:()=>m});var r=n(7294),o=n(1048),a=n(2560),i=n(3768),l=n(107),s=n(5893);const u=(0,a.WA)("docusaurus.announcement.dismiss"),c=(0,a.WA)("docusaurus.announcement.id"),d=()=>"true"===u.get(),p=e=>u.set(String(e)),f=r.createContext(null);function m(e){let{children:t}=e;const n=function(){const{announcementBar:e}=(0,l.L)(),t=(0,o.Z)(),[n,a]=(0,r.useState)((()=>!!t&&d()));(0,r.useEffect)((()=>{a(d())}),[]);const i=(0,r.useCallback)((()=>{p(!0),a(!0)}),[]);return(0,r.useEffect)((()=>{if(!e)return;const{id:t}=e;let n=c.get();"annoucement-bar"===n&&(n="announcement-bar");const r=t!==n;c.set(t),r&&p(!1),!r&&d()||a(!1)}),[e]),(0,r.useMemo)((()=>({isActive:!!e&&!n,close:i})),[e,n,i])}();return(0,s.jsx)(f.Provider,{value:n,children:t})}function h(){const e=(0,r.useContext)(f);if(!e)throw new i.i6("AnnouncementBarProvider");return e}},9200:(e,t,n)=>{"use strict";n.d(t,{I:()=>y,S:()=>g});var r=n(7294),o=n(6136),a=n(3768),i=n(2560),l=n(107),s=n(5893);const u=r.createContext(void 0),c="theme",d=(0,i.WA)(c),p={light:"light",dark:"dark"},f=e=>e===p.dark?p.dark:p.light,m=e=>o.Z.canUseDOM?f(document.documentElement.getAttribute("data-theme")):f(e),h=e=>{d.set(f(e))};function g(e){let{children:t}=e;const n=function(){const{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,l.L)(),[o,a]=(0,r.useState)(m(e));(0,r.useEffect)((()=>{t&&d.del()}),[t]);const i=(0,r.useCallback)((function(t,r){void 0===r&&(r={});const{persist:o=!0}=r;t?(a(t),o&&h(t)):(a(n?window.matchMedia("(prefers-color-scheme: dark)").matches?p.dark:p.light:e),d.del())}),[n,e]);(0,r.useEffect)((()=>{document.documentElement.setAttribute("data-theme",f(o))}),[o]),(0,r.useEffect)((()=>{if(t)return;const e=e=>{if(e.key!==c)return;const t=d.get();null!==t&&i(f(t))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)}),[t,i]);const s=(0,r.useRef)(!1);return(0,r.useEffect)((()=>{if(t&&!n)return;const e=window.matchMedia("(prefers-color-scheme: dark)"),r=()=>{window.matchMedia("print").matches||s.current?s.current=window.matchMedia("print").matches:i(null)};return e.addListener(r),()=>e.removeListener(r)}),[i,t,n]),(0,r.useMemo)((()=>({colorMode:o,setColorMode:i,get isDarkTheme(){return o===p.dark},setLightTheme(){i(p.light)},setDarkTheme(){i(p.dark)}})),[o,i])}();return(0,s.jsx)(u.Provider,{value:n,children:t})}function y(){const e=(0,r.useContext)(u);if(null==e)throw new a.i6("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},6409:(e,t,n)=>{"use strict";n.d(t,{J:()=>b,L5:()=>y,Oh:()=>w});var r=n(7294),o=n(868),a=n(6875),i=n(107),l=n(3734),s=n(3768),u=n(2560),c=n(5893);const d=e=>`docs-preferred-version-${e}`,p={save:(e,t,n)=>{(0,u.WA)(d(e),{persistence:t}).set(n)},read:(e,t)=>(0,u.WA)(d(e),{persistence:t}).get(),clear:(e,t)=>{(0,u.WA)(d(e),{persistence:t}).del()}},f=e=>Object.fromEntries(e.map((e=>[e,{preferredVersionName:null}])));const m=r.createContext(null);function h(){const e=(0,o._r)(),t=(0,i.L)().docs.versionPersistence,n=(0,r.useMemo)((()=>Object.keys(e)),[e]),[a,l]=(0,r.useState)((()=>f(n)));(0,r.useEffect)((()=>{l(function(e){let{pluginIds:t,versionPersistence:n,allDocsData:r}=e;function o(e){const t=p.read(e,n);return r[e].versions.some((e=>e.name===t))?{preferredVersionName:t}:(p.clear(e,n),{preferredVersionName:null})}return Object.fromEntries(t.map((e=>[e,o(e)])))}({allDocsData:e,versionPersistence:t,pluginIds:n}))}),[e,t,n]);return[a,(0,r.useMemo)((()=>({savePreferredVersion:function(e,n){p.save(e,t,n),l((t=>({...t,[e]:{preferredVersionName:n}})))}})),[t])]}function g(e){let{children:t}=e;const n=h();return(0,c.jsx)(m.Provider,{value:n,children:t})}function y(e){let{children:t}=e;return l.cE?(0,c.jsx)(g,{children:t}):(0,c.jsx)(c.Fragment,{children:t})}function v(){const e=(0,r.useContext)(m);if(!e)throw new s.i6("DocsPreferredVersionContextProvider");return e}function b(e){void 0===e&&(e=a.m);const t=(0,o.zh)(e),[n,i]=v(),{preferredVersionName:l}=n[e];return{preferredVersion:t.versions.find((e=>e.name===l))??null,savePreferredVersionName:(0,r.useCallback)((t=>{i.savePreferredVersion(e,t)}),[i,e])}}function w(){const e=(0,o._r)(),[t]=v();function n(n){const r=e[n],{preferredVersionName:o}=t[n];return r.versions.find((e=>e.name===o))??null}const r=Object.keys(e);return Object.fromEntries(r.map((e=>[e,n(e)])))}},4432:(e,t,n)=>{"use strict";n.d(t,{V:()=>u,b:()=>s});var r=n(7294),o=n(3768),a=n(5893);const i=Symbol("EmptyContext"),l=r.createContext(i);function s(e){let{children:t,name:n,items:o}=e;const i=(0,r.useMemo)((()=>n&&o?{name:n,items:o}:null),[n,o]);return(0,a.jsx)(l.Provider,{value:i,children:t})}function u(){const e=(0,r.useContext)(l);if(e===i)throw new o.i6("DocsSidebarProvider");return e}},8801:(e,t,n)=>{"use strict";n.d(t,{E:()=>s,q:()=>l});var r=n(7294),o=n(3768),a=n(5893);const i=r.createContext(null);function l(e){let{children:t,version:n}=e;return(0,a.jsx)(i.Provider,{value:n,children:t})}function s(){const e=(0,r.useContext)(i);if(null===e)throw new o.i6("DocsVersionProvider");return e}},2600:(e,t,n)=>{"use strict";n.d(t,{M:()=>f,e:()=>m});var r=n(7294),o=n(3086),a=n(3488),i=n(6550),l=n(3768);function s(e){!function(e){const t=(0,i.k6)(),n=(0,l.zX)(e);(0,r.useEffect)((()=>t.block(((e,t)=>n(e,t)))),[t,n])}(((t,n)=>{if("POP"===n)return e(t,n)}))}var u=n(107),c=n(5893);const d=r.createContext(void 0);function p(){const e=function(){const e=(0,o.HY)(),{items:t}=(0,u.L)().navbar;return 0===t.length&&!e.component}(),t=(0,a.i)(),n=!e&&"mobile"===t,[i,l]=(0,r.useState)(!1);s((()=>{if(i)return l(!1),!1}));const c=(0,r.useCallback)((()=>{l((e=>!e))}),[]);return(0,r.useEffect)((()=>{"desktop"===t&&l(!1)}),[t]),(0,r.useMemo)((()=>({disabled:e,shouldRender:n,toggle:c,shown:i})),[e,n,c,i])}function f(e){let{children:t}=e;const n=p();return(0,c.jsx)(d.Provider,{value:n,children:t})}function m(){const e=r.useContext(d);if(void 0===e)throw new l.i6("NavbarMobileSidebarProvider");return e}},3086:(e,t,n)=>{"use strict";n.d(t,{HY:()=>s,Zo:()=>u,n2:()=>l});var r=n(7294),o=n(3768),a=n(5893);const i=r.createContext(null);function l(e){let{children:t}=e;const n=(0,r.useState)({component:null,props:null});return(0,a.jsx)(i.Provider,{value:n,children:t})}function s(){const e=(0,r.useContext)(i);if(!e)throw new o.i6("NavbarSecondaryMenuContentProvider");return e[0]}function u(e){let{component:t,props:n}=e;const a=(0,r.useContext)(i);if(!a)throw new o.i6("NavbarSecondaryMenuContentProvider");const[,l]=a,s=(0,o.Ql)(n);return(0,r.useEffect)((()=>{l({component:t,props:s})}),[l,t,s]),(0,r.useEffect)((()=>()=>l({component:null,props:null})),[l]),null}},8181:(e,t,n)=>{"use strict";n.d(t,{h:()=>o,t:()=>a});var r=n(7294);const o="navigation-with-keyboard";function a(){(0,r.useEffect)((()=>{function e(e){"keydown"===e.type&&"Tab"===e.key&&document.body.classList.add(o),"mousedown"===e.type&&document.body.classList.remove(o)}return document.addEventListener("keydown",e),document.addEventListener("mousedown",e),()=>{document.body.classList.remove(o),document.removeEventListener("keydown",e),document.removeEventListener("mousedown",e)}}),[])}},3488:(e,t,n)=>{"use strict";n.d(t,{i:()=>l});var r=n(7294),o=n(6136);const a={desktop:"desktop",mobile:"mobile",ssr:"ssr"},i=996;function l(){const[e,t]=(0,r.useState)((()=>"ssr"));return(0,r.useEffect)((()=>{function e(){t(function(){if(!o.Z.canUseDOM)throw new Error("getWindowSize() should only be called after React hydration");return window.innerWidth>i?a.desktop:a.mobile}())}return e(),window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e)}}),[]),e}},3702:(e,t,n)=>{"use strict";n.d(t,{k:()=>r});const r={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",docsDocPage:"docs-doc-page",docsTagsListPage:"docs-tags-list-page",docsTagDocListPage:"docs-tags-doc-list-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docsPages:"docs-wrapper",mdxPages:"mdx-wrapper"},common:{editThisPage:"theme-edit-this-page",lastUpdated:"theme-last-updated",backToTopButton:"theme-back-to-top-button",codeBlock:"theme-code-block",admonition:"theme-admonition",unlistedBanner:"theme-unlisted-banner",admonitionType:e=>`theme-admonition-${e}`},layout:{},docs:{docVersionBanner:"theme-doc-version-banner",docVersionBadge:"theme-doc-version-badge",docBreadcrumbs:"theme-doc-breadcrumbs",docMarkdown:"theme-doc-markdown",docTocMobile:"theme-doc-toc-mobile",docTocDesktop:"theme-doc-toc-desktop",docFooter:"theme-doc-footer",docFooterTagsRow:"theme-doc-footer-tags-row",docFooterEditMetaRow:"theme-doc-footer-edit-meta-row",docSidebarContainer:"theme-doc-sidebar-container",docSidebarMenu:"theme-doc-sidebar-menu",docSidebarItemCategory:"theme-doc-sidebar-item-category",docSidebarItemLink:"theme-doc-sidebar-item-link",docSidebarItemCategoryLevel:e=>`theme-doc-sidebar-item-category-level-${e}`,docSidebarItemLinkLevel:e=>`theme-doc-sidebar-item-link-level-${e}`},blog:{}}},8986:(e,t,n)=>{"use strict";function r(){return window.matchMedia("(prefers-reduced-motion: reduce)").matches}n.d(t,{n:()=>r})},3734:(e,t,n)=>{"use strict";n.d(t,{MN:()=>j,LM:()=>m,_F:()=>v,cE:()=>p,jA:()=>h,xz:()=>f,SN:()=>O,lO:()=>S,vY:()=>E,oz:()=>_,s1:()=>x,f:()=>w});var r=n(7294),o=n(6550),a=n(8790),i=n(868),l=n(6409),s=n(8801),u=n(4432);function c(e){return Array.from(new Set(e))}var d=n(9003);const p=!!i._r;function f(e){const t=(0,s.E)();if(!e)return;const n=t.docs[e];if(!n)throw new Error(`no version doc found by id=${e}`);return n}function m(e){return"link"!==e.type||e.unlisted?"category"===e.type?function(e){if(e.href&&!e.linkUnlisted)return e.href;for(const t of e.items){const e=m(t);if(e)return e}}(e):void 0:e.href}function h(){const{pathname:e}=(0,o.TH)(),t=(0,u.V)();if(!t)throw new Error("Unexpected: cant find current sidebar in context");const n=k({sidebarItems:t.items,pathname:e,onlyCategories:!0}).slice(-1)[0];if(!n)throw new Error(`${e} is not associated with a category. useCurrentSidebarCategory() should only be used on category index pages.`);return n}const g=(e,t)=>void 0!==e&&(0,d.Mg)(e,t),y=(e,t)=>e.some((e=>v(e,t)));function v(e,t){return"link"===e.type?g(e.href,t):"category"===e.type&&(g(e.href,t)||y(e.items,t))}function b(e,t){switch(e.type){case"category":return v(e,t)||e.items.some((e=>b(e,t)));case"link":return!e.unlisted||v(e,t);default:return!0}}function w(e,t){return(0,r.useMemo)((()=>e.filter((e=>b(e,t)))),[e,t])}function k(e){let{sidebarItems:t,pathname:n,onlyCategories:r=!1}=e;const o=[];return function e(t){for(const a of t)if("category"===a.type&&((0,d.Mg)(a.href,n)||e(a.items))||"link"===a.type&&(0,d.Mg)(a.href,n)){return r&&"category"!==a.type||o.unshift(a),!0}return!1}(t),o}function x(){const e=(0,u.V)(),{pathname:t}=(0,o.TH)(),n=(0,i.gA)()?.pluginData.breadcrumbs;return!1!==n&&e?k({sidebarItems:e.items,pathname:t}):null}function S(e){const{activeVersion:t}=(0,i.Iw)(e),{preferredVersion:n}=(0,l.J)(e),o=(0,i.yW)(e);return(0,r.useMemo)((()=>c([t,n,o].filter(Boolean))),[t,n,o])}function _(e,t){const n=S(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.sidebars?Object.entries(e.sidebars):[])),r=t.find((t=>t[0]===e));if(!r)throw new Error(`Can't find any sidebar with id "${e}" in version${n.length>1?"s":""} ${n.map((e=>e.name)).join(", ")}".\nAvailable sidebar ids are:\n- ${t.map((e=>e[0])).join("\n- ")}`);return r[1]}),[e,n])}function E(e,t){const n=S(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.docs)),r=t.find((t=>t.id===e));if(!r){if(n.flatMap((e=>e.draftIds)).includes(e))return null;throw new Error(`Couldn't find any doc with id "${e}" in version${n.length>1?"s":""} "${n.map((e=>e.name)).join(", ")}".\nAvailable doc ids are:\n- ${c(t.map((e=>e.id))).join("\n- ")}`)}return r}),[e,n])}function O(e){let{route:t}=e;const n=(0,o.TH)(),r=(0,s.E)(),i=t.routes,l=i.find((e=>(0,o.LX)(n.pathname,e)));if(!l)return null;const u=l.sidebar,c=u?r.docsSidebars[u]:void 0;return{docElement:(0,a.H)(i),sidebarName:u,sidebarItems:c}}function j(e){return e.filter((e=>!("category"===e.type||"link"===e.type)||!!m(e)))}},5463:(e,t,n)=>{"use strict";n.d(t,{FG:()=>f,d:()=>d,VC:()=>m});var r=n(7294),o=n(512),a=n(1514),i=n(9656);function l(){const e=r.useContext(i._);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}var s=n(9524),u=n(9962);var c=n(5893);function d(e){let{title:t,description:n,keywords:r,image:o,children:i}=e;const l=function(e){const{siteConfig:t}=(0,u.Z)(),{title:n,titleDelimiter:r}=t;return e?.trim().length?`${e.trim()} ${r} ${n}`:n}(t),{withBaseUrl:d}=(0,s.C)(),p=o?d(o,{absolute:!0}):void 0;return(0,c.jsxs)(a.Z,{children:[t&&(0,c.jsx)("title",{children:l}),t&&(0,c.jsx)("meta",{property:"og:title",content:l}),n&&(0,c.jsx)("meta",{name:"description",content:n}),n&&(0,c.jsx)("meta",{property:"og:description",content:n}),r&&(0,c.jsx)("meta",{name:"keywords",content:Array.isArray(r)?r.join(","):r}),p&&(0,c.jsx)("meta",{property:"og:image",content:p}),p&&(0,c.jsx)("meta",{name:"twitter:image",content:p}),i]})}const p=r.createContext(void 0);function f(e){let{className:t,children:n}=e;const i=r.useContext(p),l=(0,o.Z)(i,t);return(0,c.jsxs)(p.Provider,{value:l,children:[(0,c.jsx)(a.Z,{children:(0,c.jsx)("html",{className:l})}),n]})}function m(e){let{children:t}=e;const n=l(),r=`plugin-${n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,"")}`;const a=`plugin-id-${n.plugin.id}`;return(0,c.jsx)(f,{className:(0,o.Z)(r,a),children:t})}},3768:(e,t,n)=>{"use strict";n.d(t,{D9:()=>l,Qc:()=>c,Ql:()=>u,i6:()=>s,zX:()=>i});var r=n(7294),o=n(1270),a=n(5893);function i(e){const t=(0,r.useRef)(e);return(0,o.Z)((()=>{t.current=e}),[e]),(0,r.useCallback)((function(){return t.current(...arguments)}),[])}function l(e){const t=(0,r.useRef)();return(0,o.Z)((()=>{t.current=e})),t.current}class s extends Error{constructor(e,t){super(),this.name="ReactContextError",this.message=`Hook ${this.stack?.split("\n")[1]?.match(/at (?:\w+\.)?(?\w+)/)?.groups.name??""} is called outside the <${e}>. ${t??""}`}}function u(e){const t=Object.entries(e);return t.sort(((e,t)=>e[0].localeCompare(t[0]))),(0,r.useMemo)((()=>e),t.flat())}function c(e){return t=>{let{children:n}=t;return(0,a.jsx)(a.Fragment,{children:e.reduceRight(((e,t)=>(0,a.jsx)(t,{children:e})),n)})}}},9003:(e,t,n)=>{"use strict";n.d(t,{Mg:()=>i,Ns:()=>l});var r=n(7294),o=n(997),a=n(9962);function i(e,t){const n=e=>(!e||e.endsWith("/")?e:`${e}/`)?.toLowerCase();return n(e)===n(t)}function l(){const{baseUrl:e}=(0,a.Z)().siteConfig;return(0,r.useMemo)((()=>function(e){let{baseUrl:t,routes:n}=e;function r(e){return e.path===t&&!0===e.exact}function o(e){return e.path===t&&!e.exact}return function e(t){if(0===t.length)return;return t.find(r)||e(t.filter(o).flatMap((e=>e.routes??[])))}(n)}({routes:o.Z,baseUrl:e})),[e])}},2957:(e,t,n)=>{"use strict";n.d(t,{Ct:()=>f,OC:()=>u,RF:()=>p});var r=n(7294),o=n(6136),a=n(1048),i=(n(1270),n(3768)),l=n(5893);const s=r.createContext(void 0);function u(e){let{children:t}=e;const n=function(){const e=(0,r.useRef)(!0);return(0,r.useMemo)((()=>({scrollEventsEnabledRef:e,enableScrollEvents:()=>{e.current=!0},disableScrollEvents:()=>{e.current=!1}})),[])}();return(0,l.jsx)(s.Provider,{value:n,children:t})}function c(){const e=(0,r.useContext)(s);if(null==e)throw new i.i6("ScrollControllerProvider");return e}const d=()=>o.Z.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null;function p(e,t){void 0===t&&(t=[]);const{scrollEventsEnabledRef:n}=c(),o=(0,r.useRef)(d()),a=(0,i.zX)(e);(0,r.useEffect)((()=>{const e=()=>{if(!n.current)return;const e=d();a(e,o.current),o.current=e},t={passive:!0};return e(),window.addEventListener("scroll",e,t),()=>window.removeEventListener("scroll",e,t)}),[a,n,...t])}function f(){const e=(0,r.useRef)(null),t=(0,a.Z)()&&"smooth"===getComputedStyle(document.documentElement).scrollBehavior;return{startScroll:n=>{e.current=t?function(e){return window.scrollTo({top:e,behavior:"smooth"}),()=>{}}(n):function(e){let t=null;const n=document.documentElement.scrollTop>e;return function r(){const o=document.documentElement.scrollTop;(n&&o>e||!n&&ot&&cancelAnimationFrame(t)}(n)},cancelScroll:()=>e.current?.()}}},246:(e,t,n)=>{"use strict";n.d(t,{HX:()=>i,_q:()=>s,os:()=>l});var r=n(868),o=n(9962),a=n(6409);const i="default";function l(e,t){return`docs-${e}-${t}`}function s(){const{i18n:e}=(0,o.Z)(),t=(0,r._r)(),n=(0,r.WS)(),s=(0,a.Oh)();const u=[i,...Object.keys(t).map((function(e){const r=n?.activePlugin.pluginId===e?n.activeVersion:void 0,o=s[e],a=t[e].versions.find((e=>e.isLast));return l(e,(r??o??a).name)}))];return{locale:e.currentLocale,tags:u}}},2560:(e,t,n)=>{"use strict";n.d(t,{WA:()=>s});n(7294);const r="localStorage";function o(e){let{key:t,oldValue:n,newValue:r,storage:o}=e;if(n===r)return;const a=document.createEvent("StorageEvent");a.initStorageEvent("storage",!1,!1,t,n,r,window.location.href,o),window.dispatchEvent(a)}function a(e){if(void 0===e&&(e=r),"undefined"==typeof window)throw new Error("Browser storage is not available on Node.js/Docusaurus SSR process.");if("none"===e)return null;try{return window[e]}catch(n){return t=n,i||(console.warn("Docusaurus browser storage is not available.\nPossible reasons: running Docusaurus in an iframe, in an incognito browser session, or using too strict browser privacy settings.",t),i=!0),null}var t}let i=!1;const l={get:()=>null,set:()=>{},del:()=>{},listen:()=>()=>{}};function s(e,t){if("undefined"==typeof window)return function(e){function t(){throw new Error(`Illegal storage API usage for storage key "${e}".\nDocusaurus storage APIs are not supposed to be called on the server-rendering process.\nPlease only call storage APIs in effects and event handlers.`)}return{get:t,set:t,del:t,listen:t}}(e);const n=a(t?.persistence);return null===n?l:{get:()=>{try{return n.getItem(e)}catch(t){return console.error(`Docusaurus storage error, can't get key=${e}`,t),null}},set:t=>{try{const r=n.getItem(e);n.setItem(e,t),o({key:e,oldValue:r,newValue:t,storage:n})}catch(r){console.error(`Docusaurus storage error, can't set ${e}=${t}`,r)}},del:()=>{try{const t=n.getItem(e);n.removeItem(e),o({key:e,oldValue:t,newValue:null,storage:n})}catch(t){console.error(`Docusaurus storage error, can't delete key=${e}`,t)}},listen:t=>{try{const r=r=>{r.storageArea===n&&r.key===e&&t(r)};return window.addEventListener("storage",r),()=>window.removeEventListener("storage",r)}catch(r){return console.error(`Docusaurus storage error, can't listen for changes of key=${e}`,r),()=>{}}}}}},626:(e,t,n)=>{"use strict";n.d(t,{l:()=>i});var r=n(9962),o=n(6550),a=n(3905);function i(){const{siteConfig:{baseUrl:e,url:t,trailingSlash:n},i18n:{defaultLocale:i,currentLocale:l}}=(0,r.Z)(),{pathname:s}=(0,o.TH)(),u=(0,a.applyTrailingSlash)(s,{trailingSlash:n,baseUrl:e}),c=l===i?e:e.replace(`/${l}/`,"/"),d=u.replace(e,"");return{createUrl:function(e){let{locale:n,fullyQualified:r}=e;return`${r?t:""}${function(e){return e===i?`${c}`:`${c}${e}/`}(n)}${d}`}}}},3266:(e,t,n)=>{"use strict";n.d(t,{S:()=>i});var r=n(7294),o=n(6550),a=n(3768);function i(e){const t=(0,o.TH)(),n=(0,a.D9)(t),i=(0,a.zX)(e);(0,r.useEffect)((()=>{n&&t!==n&&i({location:t,previousLocation:n})}),[i,t,n])}},107:(e,t,n)=>{"use strict";n.d(t,{L:()=>o});var r=n(9962);function o(){return(0,r.Z)().siteConfig.themeConfig}},4136:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){const{trailingSlash:n,baseUrl:r}=t;if(e.startsWith("#"))return e;if(void 0===n)return e;const[o]=e.split(/[#?]/),a="/"===o||o===r?o:(i=o,n?function(e){return e.endsWith("/")?e:`${e}/`}(i):function(e){return e.endsWith("/")?e.slice(0,-1):e}(i));var i;return e.replace(o,a)}},5806:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=void 0,t.getErrorCausalChain=function e(t){return t.cause?[t,...e(t.cause)]:[t]}},3905:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=t.applyTrailingSlash=t.blogPostContainerID=void 0,t.blogPostContainerID="__blog-post-container";var o=n(4136);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return r(o).default}});var a=n(5806);Object.defineProperty(t,"getErrorCausalChain",{enumerable:!0,get:function(){return a.getErrorCausalChain}})},9318:(e,t,n)=>{"use strict";n.d(t,{lX:()=>w,q_:()=>O,ob:()=>f,PP:()=>C,Ep:()=>p});var r=n(7462);function o(e){return"/"===e.charAt(0)}function a(e,t){for(var n=t,r=n+1,o=e.length;r=0;p--){var f=i[p];"."===f?a(i,p):".."===f?(a(i,p),d++):d&&(a(i,p),d--)}if(!u)for(;d--;d)i.unshift("..");!u||""===i[0]||i[0]&&o(i[0])||i.unshift("");var m=i.join("/");return n&&"/"!==m.substr(-1)&&(m+="/"),m};var l=n(8776);function s(e){return"/"===e.charAt(0)?e:"/"+e}function u(e){return"/"===e.charAt(0)?e.substr(1):e}function c(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function d(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function p(e){var t=e.pathname,n=e.search,r=e.hash,o=t||"/";return n&&"?"!==n&&(o+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(o+="#"===r.charAt(0)?r:"#"+r),o}function f(e,t,n,o){var a;"string"==typeof e?(a=function(e){var t=e||"/",n="",r="",o=t.indexOf("#");-1!==o&&(r=t.substr(o),t=t.substr(0,o));var a=t.indexOf("?");return-1!==a&&(n=t.substr(a),t=t.substr(0,a)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),a.state=t):(void 0===(a=(0,r.Z)({},e)).pathname&&(a.pathname=""),a.search?"?"!==a.search.charAt(0)&&(a.search="?"+a.search):a.search="",a.hash?"#"!==a.hash.charAt(0)&&(a.hash="#"+a.hash):a.hash="",void 0!==t&&void 0===a.state&&(a.state=t));try{a.pathname=decodeURI(a.pathname)}catch(l){throw l instanceof URIError?new URIError('Pathname "'+a.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):l}return n&&(a.key=n),o?a.pathname?"/"!==a.pathname.charAt(0)&&(a.pathname=i(a.pathname,o.pathname)):a.pathname=o.pathname:a.pathname||(a.pathname="/"),a}function m(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,o){if(null!=e){var a="function"==typeof e?e(t,n):e;"string"==typeof a?"function"==typeof r?r(a,o):o(!0):o(!1!==a)}else o(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;rt?n.splice(t,n.length-t,o):n.push(o),d({action:r,location:o,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",o=f(e,t,h(),w.location);c.confirmTransitionTo(o,r,n,(function(e){e&&(w.entries[w.index]=o,d({action:r,location:o}))}))},go:b,goBack:function(){b(-1)},goForward:function(){b(1)},canGo:function(e){var t=w.index+e;return t>=0&&t{"use strict";var r=n(9864),o={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},a={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},l={};function s(e){return r.isMemo(e)?i:l[e.$$typeof]||o}l[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},l[r.Memo]=i;var u=Object.defineProperty,c=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,p=Object.getOwnPropertyDescriptor,f=Object.getPrototypeOf,m=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(m){var o=f(n);o&&o!==m&&e(t,o,r)}var i=c(n);d&&(i=i.concat(d(n)));for(var l=s(t),h=s(n),g=0;g{"use strict";e.exports=function(e,t,n,r,o,a,i,l){if(!e){var s;if(void 0===t)s=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var u=[n,r,o,a,i,l],c=0;(s=new Error(t.replace(/%s/g,(function(){return u[c++]})))).name="Invariant Violation"}throw s.framesToPop=1,s}}},5826:e=>{e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},813:function(e){e.exports=function(){"use strict";var e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},t=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},n=function(){function e(e,t){for(var n=0;n1&&void 0!==arguments[1])||arguments[1],o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:5e3;t(this,e),this.ctx=n,this.iframes=r,this.exclude=o,this.iframesTimeout=a}return n(e,[{key:"getContexts",value:function(){var e=[];return(void 0!==this.ctx&&this.ctx?NodeList.prototype.isPrototypeOf(this.ctx)?Array.prototype.slice.call(this.ctx):Array.isArray(this.ctx)?this.ctx:"string"==typeof this.ctx?Array.prototype.slice.call(document.querySelectorAll(this.ctx)):[this.ctx]:[]).forEach((function(t){var n=e.filter((function(e){return e.contains(t)})).length>0;-1!==e.indexOf(t)||n||e.push(t)})),e}},{key:"getIframeContents",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(){},r=void 0;try{var o=e.contentWindow;if(r=o.document,!o||!r)throw new Error("iframe inaccessible")}catch(a){n()}r&&t(r)}},{key:"isIframeBlank",value:function(e){var t="about:blank",n=e.getAttribute("src").trim();return e.contentWindow.location.href===t&&n!==t&&n}},{key:"observeIframeLoad",value:function(e,t,n){var r=this,o=!1,a=null,i=function i(){if(!o){o=!0,clearTimeout(a);try{r.isIframeBlank(e)||(e.removeEventListener("load",i),r.getIframeContents(e,t,n))}catch(l){n()}}};e.addEventListener("load",i),a=setTimeout(i,this.iframesTimeout)}},{key:"onIframeReady",value:function(e,t,n){try{"complete"===e.contentWindow.document.readyState?this.isIframeBlank(e)?this.observeIframeLoad(e,t,n):this.getIframeContents(e,t,n):this.observeIframeLoad(e,t,n)}catch(r){n()}}},{key:"waitForIframes",value:function(e,t){var n=this,r=0;this.forEachIframe(e,(function(){return!0}),(function(e){r++,n.waitForIframes(e.querySelector("html"),(function(){--r||t()}))}),(function(e){e||t()}))}},{key:"forEachIframe",value:function(t,n,r){var o=this,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:function(){},i=t.querySelectorAll("iframe"),l=i.length,s=0;i=Array.prototype.slice.call(i);var u=function(){--l<=0&&a(s)};l||u(),i.forEach((function(t){e.matches(t,o.exclude)?u():o.onIframeReady(t,(function(e){n(t)&&(s++,r(e)),u()}),u)}))}},{key:"createIterator",value:function(e,t,n){return document.createNodeIterator(e,t,n,!1)}},{key:"createInstanceOnIframe",value:function(t){return new e(t.querySelector("html"),this.iframes)}},{key:"compareNodeIframe",value:function(e,t,n){if(e.compareDocumentPosition(n)&Node.DOCUMENT_POSITION_PRECEDING){if(null===t)return!0;if(t.compareDocumentPosition(n)&Node.DOCUMENT_POSITION_FOLLOWING)return!0}return!1}},{key:"getIteratorNode",value:function(e){var t=e.previousNode();return{prevNode:t,node:(null===t||e.nextNode())&&e.nextNode()}}},{key:"checkIframeFilter",value:function(e,t,n,r){var o=!1,a=!1;return r.forEach((function(e,t){e.val===n&&(o=t,a=e.handled)})),this.compareNodeIframe(e,t,n)?(!1!==o||a?!1===o||a||(r[o].handled=!0):r.push({val:n,handled:!0}),!0):(!1===o&&r.push({val:n,handled:!1}),!1)}},{key:"handleOpenIframes",value:function(e,t,n,r){var o=this;e.forEach((function(e){e.handled||o.getIframeContents(e.val,(function(e){o.createInstanceOnIframe(e).forEachNode(t,n,r)}))}))}},{key:"iterateThroughNodes",value:function(e,t,n,r,o){for(var a=this,i=this.createIterator(t,e,r),l=[],s=[],u=void 0,c=void 0,d=function(){var e=a.getIteratorNode(i);return c=e.prevNode,u=e.node};d();)this.iframes&&this.forEachIframe(t,(function(e){return a.checkIframeFilter(u,c,e,l)}),(function(t){a.createInstanceOnIframe(t).forEachNode(e,(function(e){return s.push(e)}),r)})),s.push(u);s.forEach((function(e){n(e)})),this.iframes&&this.handleOpenIframes(l,e,n,r),o()}},{key:"forEachNode",value:function(e,t,n){var r=this,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:function(){},a=this.getContexts(),i=a.length;i||o(),a.forEach((function(a){var l=function(){r.iterateThroughNodes(e,a,t,n,(function(){--i<=0&&o()}))};r.iframes?r.waitForIframes(a,l):l()}))}}],[{key:"matches",value:function(e,t){var n="string"==typeof t?[t]:t,r=e.matches||e.matchesSelector||e.msMatchesSelector||e.mozMatchesSelector||e.oMatchesSelector||e.webkitMatchesSelector;if(r){var o=!1;return n.every((function(t){return!r.call(e,t)||(o=!0,!1)})),o}return!1}}]),e}(),a=function(){function a(e){t(this,a),this.ctx=e,this.ie=!1;var n=window.navigator.userAgent;(n.indexOf("MSIE")>-1||n.indexOf("Trident")>-1)&&(this.ie=!0)}return n(a,[{key:"log",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"debug",r=this.opt.log;this.opt.debug&&"object"===(void 0===r?"undefined":e(r))&&"function"==typeof r[n]&&r[n]("mark.js: "+t)}},{key:"escapeStr",value:function(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}},{key:"createRegExp",value:function(e){return"disabled"!==this.opt.wildcards&&(e=this.setupWildcardsRegExp(e)),e=this.escapeStr(e),Object.keys(this.opt.synonyms).length&&(e=this.createSynonymsRegExp(e)),(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.setupIgnoreJoinersRegExp(e)),this.opt.diacritics&&(e=this.createDiacriticsRegExp(e)),e=this.createMergedBlanksRegExp(e),(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.createJoinersRegExp(e)),"disabled"!==this.opt.wildcards&&(e=this.createWildcardsRegExp(e)),e=this.createAccuracyRegExp(e)}},{key:"createSynonymsRegExp",value:function(e){var t=this.opt.synonyms,n=this.opt.caseSensitive?"":"i",r=this.opt.ignoreJoiners||this.opt.ignorePunctuation.length?"\0":"";for(var o in t)if(t.hasOwnProperty(o)){var a=t[o],i="disabled"!==this.opt.wildcards?this.setupWildcardsRegExp(o):this.escapeStr(o),l="disabled"!==this.opt.wildcards?this.setupWildcardsRegExp(a):this.escapeStr(a);""!==i&&""!==l&&(e=e.replace(new RegExp("("+this.escapeStr(i)+"|"+this.escapeStr(l)+")","gm"+n),r+"("+this.processSynomyms(i)+"|"+this.processSynomyms(l)+")"+r))}return e}},{key:"processSynomyms",value:function(e){return(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.setupIgnoreJoinersRegExp(e)),e}},{key:"setupWildcardsRegExp",value:function(e){return(e=e.replace(/(?:\\)*\?/g,(function(e){return"\\"===e.charAt(0)?"?":"\x01"}))).replace(/(?:\\)*\*/g,(function(e){return"\\"===e.charAt(0)?"*":"\x02"}))}},{key:"createWildcardsRegExp",value:function(e){var t="withSpaces"===this.opt.wildcards;return e.replace(/\u0001/g,t?"[\\S\\s]?":"\\S?").replace(/\u0002/g,t?"[\\S\\s]*?":"\\S*")}},{key:"setupIgnoreJoinersRegExp",value:function(e){return e.replace(/[^(|)\\]/g,(function(e,t,n){var r=n.charAt(t+1);return/[(|)\\]/.test(r)||""===r?e:e+"\0"}))}},{key:"createJoinersRegExp",value:function(e){var t=[],n=this.opt.ignorePunctuation;return Array.isArray(n)&&n.length&&t.push(this.escapeStr(n.join(""))),this.opt.ignoreJoiners&&t.push("\\u00ad\\u200b\\u200c\\u200d"),t.length?e.split(/\u0000+/).join("["+t.join("")+"]*"):e}},{key:"createDiacriticsRegExp",value:function(e){var t=this.opt.caseSensitive?"":"i",n=this.opt.caseSensitive?["a\xe0\xe1\u1ea3\xe3\u1ea1\u0103\u1eb1\u1eaf\u1eb3\u1eb5\u1eb7\xe2\u1ea7\u1ea5\u1ea9\u1eab\u1ead\xe4\xe5\u0101\u0105","A\xc0\xc1\u1ea2\xc3\u1ea0\u0102\u1eb0\u1eae\u1eb2\u1eb4\u1eb6\xc2\u1ea6\u1ea4\u1ea8\u1eaa\u1eac\xc4\xc5\u0100\u0104","c\xe7\u0107\u010d","C\xc7\u0106\u010c","d\u0111\u010f","D\u0110\u010e","e\xe8\xe9\u1ebb\u1ebd\u1eb9\xea\u1ec1\u1ebf\u1ec3\u1ec5\u1ec7\xeb\u011b\u0113\u0119","E\xc8\xc9\u1eba\u1ebc\u1eb8\xca\u1ec0\u1ebe\u1ec2\u1ec4\u1ec6\xcb\u011a\u0112\u0118","i\xec\xed\u1ec9\u0129\u1ecb\xee\xef\u012b","I\xcc\xcd\u1ec8\u0128\u1eca\xce\xcf\u012a","l\u0142","L\u0141","n\xf1\u0148\u0144","N\xd1\u0147\u0143","o\xf2\xf3\u1ecf\xf5\u1ecd\xf4\u1ed3\u1ed1\u1ed5\u1ed7\u1ed9\u01a1\u1edf\u1ee1\u1edb\u1edd\u1ee3\xf6\xf8\u014d","O\xd2\xd3\u1ece\xd5\u1ecc\xd4\u1ed2\u1ed0\u1ed4\u1ed6\u1ed8\u01a0\u1ede\u1ee0\u1eda\u1edc\u1ee2\xd6\xd8\u014c","r\u0159","R\u0158","s\u0161\u015b\u0219\u015f","S\u0160\u015a\u0218\u015e","t\u0165\u021b\u0163","T\u0164\u021a\u0162","u\xf9\xfa\u1ee7\u0169\u1ee5\u01b0\u1eeb\u1ee9\u1eed\u1eef\u1ef1\xfb\xfc\u016f\u016b","U\xd9\xda\u1ee6\u0168\u1ee4\u01af\u1eea\u1ee8\u1eec\u1eee\u1ef0\xdb\xdc\u016e\u016a","y\xfd\u1ef3\u1ef7\u1ef9\u1ef5\xff","Y\xdd\u1ef2\u1ef6\u1ef8\u1ef4\u0178","z\u017e\u017c\u017a","Z\u017d\u017b\u0179"]:["a\xe0\xe1\u1ea3\xe3\u1ea1\u0103\u1eb1\u1eaf\u1eb3\u1eb5\u1eb7\xe2\u1ea7\u1ea5\u1ea9\u1eab\u1ead\xe4\xe5\u0101\u0105A\xc0\xc1\u1ea2\xc3\u1ea0\u0102\u1eb0\u1eae\u1eb2\u1eb4\u1eb6\xc2\u1ea6\u1ea4\u1ea8\u1eaa\u1eac\xc4\xc5\u0100\u0104","c\xe7\u0107\u010dC\xc7\u0106\u010c","d\u0111\u010fD\u0110\u010e","e\xe8\xe9\u1ebb\u1ebd\u1eb9\xea\u1ec1\u1ebf\u1ec3\u1ec5\u1ec7\xeb\u011b\u0113\u0119E\xc8\xc9\u1eba\u1ebc\u1eb8\xca\u1ec0\u1ebe\u1ec2\u1ec4\u1ec6\xcb\u011a\u0112\u0118","i\xec\xed\u1ec9\u0129\u1ecb\xee\xef\u012bI\xcc\xcd\u1ec8\u0128\u1eca\xce\xcf\u012a","l\u0142L\u0141","n\xf1\u0148\u0144N\xd1\u0147\u0143","o\xf2\xf3\u1ecf\xf5\u1ecd\xf4\u1ed3\u1ed1\u1ed5\u1ed7\u1ed9\u01a1\u1edf\u1ee1\u1edb\u1edd\u1ee3\xf6\xf8\u014dO\xd2\xd3\u1ece\xd5\u1ecc\xd4\u1ed2\u1ed0\u1ed4\u1ed6\u1ed8\u01a0\u1ede\u1ee0\u1eda\u1edc\u1ee2\xd6\xd8\u014c","r\u0159R\u0158","s\u0161\u015b\u0219\u015fS\u0160\u015a\u0218\u015e","t\u0165\u021b\u0163T\u0164\u021a\u0162","u\xf9\xfa\u1ee7\u0169\u1ee5\u01b0\u1eeb\u1ee9\u1eed\u1eef\u1ef1\xfb\xfc\u016f\u016bU\xd9\xda\u1ee6\u0168\u1ee4\u01af\u1eea\u1ee8\u1eec\u1eee\u1ef0\xdb\xdc\u016e\u016a","y\xfd\u1ef3\u1ef7\u1ef9\u1ef5\xffY\xdd\u1ef2\u1ef6\u1ef8\u1ef4\u0178","z\u017e\u017c\u017aZ\u017d\u017b\u0179"],r=[];return e.split("").forEach((function(o){n.every((function(n){if(-1!==n.indexOf(o)){if(r.indexOf(n)>-1)return!1;e=e.replace(new RegExp("["+n+"]","gm"+t),"["+n+"]"),r.push(n)}return!0}))})),e}},{key:"createMergedBlanksRegExp",value:function(e){return e.replace(/[\s]+/gim,"[\\s]+")}},{key:"createAccuracyRegExp",value:function(e){var t=this,n="!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~\xa1\xbf",r=this.opt.accuracy,o="string"==typeof r?r:r.value,a="string"==typeof r?[]:r.limiters,i="";switch(a.forEach((function(e){i+="|"+t.escapeStr(e)})),o){case"partially":default:return"()("+e+")";case"complementary":return"()([^"+(i="\\s"+(i||this.escapeStr(n)))+"]*"+e+"[^"+i+"]*)";case"exactly":return"(^|\\s"+i+")("+e+")(?=$|\\s"+i+")"}}},{key:"getSeparatedKeywords",value:function(e){var t=this,n=[];return e.forEach((function(e){t.opt.separateWordSearch?e.split(" ").forEach((function(e){e.trim()&&-1===n.indexOf(e)&&n.push(e)})):e.trim()&&-1===n.indexOf(e)&&n.push(e)})),{keywords:n.sort((function(e,t){return t.length-e.length})),length:n.length}}},{key:"isNumeric",value:function(e){return Number(parseFloat(e))==e}},{key:"checkRanges",value:function(e){var t=this;if(!Array.isArray(e)||"[object Object]"!==Object.prototype.toString.call(e[0]))return this.log("markRanges() will only accept an array of objects"),this.opt.noMatch(e),[];var n=[],r=0;return e.sort((function(e,t){return e.start-t.start})).forEach((function(e){var o=t.callNoMatchOnInvalidRanges(e,r),a=o.start,i=o.end;o.valid&&(e.start=a,e.length=i-a,n.push(e),r=i)})),n}},{key:"callNoMatchOnInvalidRanges",value:function(e,t){var n=void 0,r=void 0,o=!1;return e&&void 0!==e.start?(r=(n=parseInt(e.start,10))+parseInt(e.length,10),this.isNumeric(e.start)&&this.isNumeric(e.length)&&r-t>0&&r-n>0?o=!0:(this.log("Ignoring invalid or overlapping range: "+JSON.stringify(e)),this.opt.noMatch(e))):(this.log("Ignoring invalid range: "+JSON.stringify(e)),this.opt.noMatch(e)),{start:n,end:r,valid:o}}},{key:"checkWhitespaceRanges",value:function(e,t,n){var r=void 0,o=!0,a=n.length,i=t-a,l=parseInt(e.start,10)-i;return(r=(l=l>a?a:l)+parseInt(e.length,10))>a&&(r=a,this.log("End range automatically set to the max value of "+a)),l<0||r-l<0||l>a||r>a?(o=!1,this.log("Invalid range: "+JSON.stringify(e)),this.opt.noMatch(e)):""===n.substring(l,r).replace(/\s+/g,"")&&(o=!1,this.log("Skipping whitespace only range: "+JSON.stringify(e)),this.opt.noMatch(e)),{start:l,end:r,valid:o}}},{key:"getTextNodes",value:function(e){var t=this,n="",r=[];this.iterator.forEachNode(NodeFilter.SHOW_TEXT,(function(e){r.push({start:n.length,end:(n+=e.textContent).length,node:e})}),(function(e){return t.matchesExclude(e.parentNode)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT}),(function(){e({value:n,nodes:r})}))}},{key:"matchesExclude",value:function(e){return o.matches(e,this.opt.exclude.concat(["script","style","title","head","html"]))}},{key:"wrapRangeInTextNode",value:function(e,t,n){var r=this.opt.element?this.opt.element:"mark",o=e.splitText(t),a=o.splitText(n-t),i=document.createElement(r);return i.setAttribute("data-markjs","true"),this.opt.className&&i.setAttribute("class",this.opt.className),i.textContent=o.textContent,o.parentNode.replaceChild(i,o),a}},{key:"wrapRangeInMappedTextNode",value:function(e,t,n,r,o){var a=this;e.nodes.every((function(i,l){var s=e.nodes[l+1];if(void 0===s||s.start>t){if(!r(i.node))return!1;var u=t-i.start,c=(n>i.end?i.end:n)-i.start,d=e.value.substr(0,i.start),p=e.value.substr(c+i.start);if(i.node=a.wrapRangeInTextNode(i.node,u,c),e.value=d+p,e.nodes.forEach((function(t,n){n>=l&&(e.nodes[n].start>0&&n!==l&&(e.nodes[n].start-=c),e.nodes[n].end-=c)})),n-=c,o(i.node.previousSibling,i.start),!(n>i.end))return!1;t=i.end}return!0}))}},{key:"wrapMatches",value:function(e,t,n,r,o){var a=this,i=0===t?0:t+1;this.getTextNodes((function(t){t.nodes.forEach((function(t){t=t.node;for(var o=void 0;null!==(o=e.exec(t.textContent))&&""!==o[i];)if(n(o[i],t)){var l=o.index;if(0!==i)for(var s=1;s{"use strict";n.r(t)},6930:(e,t,n)=>{"use strict";n.r(t)},4865:function(e,t,n){var r,o;r=function(){var e,t,n={version:"0.2.0"},r=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'
'};function o(e,t,n){return en?n:e}function a(e){return 100*(-1+e)}function i(e,t,n){var o;return(o="translate3d"===r.positionUsing?{transform:"translate3d("+a(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+a(e)+"%,0)"}:{"margin-left":a(e)+"%"}).transition="all "+t+"ms "+n,o}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(r[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=o(e,r.minimum,1),n.status=1===e?null:e;var a=n.render(!t),u=a.querySelector(r.barSelector),c=r.speed,d=r.easing;return a.offsetWidth,l((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),s(u,i(e,c,d)),1===e?(s(a,{transition:"none",opacity:1}),a.offsetWidth,setTimeout((function(){s(a,{transition:"all "+c+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),c)}),c)):setTimeout(t,c)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout((function(){n.status&&(n.trickle(),e())}),r.trickleSpeed)};return r.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*o(Math.random()*t,.1,.95)),t=o(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},e=0,t=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===t&&n.start(),e++,t++,r.always((function(){0==--t?(e=0,n.done()):n.set((e-t)/e)})),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");c(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var o,i=t.querySelector(r.barSelector),l=e?"-100":a(n.status||0),u=document.querySelector(r.parent);return s(i,{transition:"all 0 linear",transform:"translate3d("+l+"%,0,0)"}),r.showSpinner||(o=t.querySelector(r.spinnerSelector))&&f(o),u!=document.body&&c(u,"nprogress-custom-parent"),u.appendChild(t),t},n.remove=function(){d(document.documentElement,"nprogress-busy"),d(document.querySelector(r.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&f(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var l=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),s=function(){var e=["Webkit","O","Moz","ms"],t={};function n(e){return e.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()}))}function r(t){var n=document.body.style;if(t in n)return t;for(var r,o=e.length,a=t.charAt(0).toUpperCase()+t.slice(1);o--;)if((r=e[o]+a)in n)return r;return t}function o(e){return e=n(e),t[e]||(t[e]=r(e))}function a(e,t,n){t=o(t),e.style[t]=n}return function(e,t){var n,r,o=arguments;if(2==o.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&a(e,n,r);else a(e,o[1],o[2])}}();function u(e,t){return("string"==typeof e?e:p(e)).indexOf(" "+t+" ")>=0}function c(e,t){var n=p(e),r=n+t;u(n,t)||(e.className=r.substring(1))}function d(e,t){var n,r=p(e);u(e,t)&&(n=r.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function p(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function f(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n},void 0===(o="function"==typeof r?r.call(t,n,t,e):r)||(e.exports=o)},9901:e=>{e.exports&&(e.exports={core:{meta:{path:"components/prism-core.js",option:"mandatory"},core:"Core"},themes:{meta:{path:"themes/{id}.css",link:"index.html?theme={id}",exclusive:!0},prism:{title:"Default",option:"default"},"prism-dark":"Dark","prism-funky":"Funky","prism-okaidia":{title:"Okaidia",owner:"ocodia"},"prism-twilight":{title:"Twilight",owner:"remybach"},"prism-coy":{title:"Coy",owner:"tshedor"},"prism-solarizedlight":{title:"Solarized Light",owner:"hectormatos2011 "},"prism-tomorrow":{title:"Tomorrow Night",owner:"Rosey"}},languages:{meta:{path:"components/prism-{id}",noCSS:!0,examplesPath:"examples/prism-{id}",addCheckAll:!0},markup:{title:"Markup",alias:["html","xml","svg","mathml","ssml","atom","rss"],aliasTitles:{html:"HTML",xml:"XML",svg:"SVG",mathml:"MathML",ssml:"SSML",atom:"Atom",rss:"RSS"},option:"default"},css:{title:"CSS",option:"default",modify:"markup"},clike:{title:"C-like",option:"default"},javascript:{title:"JavaScript",require:"clike",modify:"markup",optional:"regex",alias:"js",option:"default"},abap:{title:"ABAP",owner:"dellagustin"},abnf:{title:"ABNF",owner:"RunDevelopment"},actionscript:{title:"ActionScript",require:"javascript",modify:"markup",owner:"Golmote"},ada:{title:"Ada",owner:"Lucretia"},agda:{title:"Agda",owner:"xy-ren"},al:{title:"AL",owner:"RunDevelopment"},antlr4:{title:"ANTLR4",alias:"g4",owner:"RunDevelopment"},apacheconf:{title:"Apache Configuration",owner:"GuiTeK"},apex:{title:"Apex",require:["clike","sql"],owner:"RunDevelopment"},apl:{title:"APL",owner:"ngn"},applescript:{title:"AppleScript",owner:"Golmote"},aql:{title:"AQL",owner:"RunDevelopment"},arduino:{title:"Arduino",require:"cpp",alias:"ino",owner:"dkern"},arff:{title:"ARFF",owner:"Golmote"},armasm:{title:"ARM Assembly",alias:"arm-asm",owner:"RunDevelopment"},arturo:{title:"Arturo",alias:"art",optional:["bash","css","javascript","markup","markdown","sql"],owner:"drkameleon"},asciidoc:{alias:"adoc",title:"AsciiDoc",owner:"Golmote"},aspnet:{title:"ASP.NET (C#)",require:["markup","csharp"],owner:"nauzilus"},asm6502:{title:"6502 Assembly",owner:"kzurawel"},asmatmel:{title:"Atmel AVR Assembly",owner:"cerkit"},autohotkey:{title:"AutoHotkey",owner:"aviaryan"},autoit:{title:"AutoIt",owner:"Golmote"},avisynth:{title:"AviSynth",alias:"avs",owner:"Zinfidel"},"avro-idl":{title:"Avro IDL",alias:"avdl",owner:"RunDevelopment"},awk:{title:"AWK",alias:"gawk",aliasTitles:{gawk:"GAWK"},owner:"RunDevelopment"},bash:{title:"Bash",alias:["sh","shell"],aliasTitles:{sh:"Shell",shell:"Shell"},owner:"zeitgeist87"},basic:{title:"BASIC",owner:"Golmote"},batch:{title:"Batch",owner:"Golmote"},bbcode:{title:"BBcode",alias:"shortcode",aliasTitles:{shortcode:"Shortcode"},owner:"RunDevelopment"},bbj:{title:"BBj",owner:"hyyan"},bicep:{title:"Bicep",owner:"johnnyreilly"},birb:{title:"Birb",require:"clike",owner:"Calamity210"},bison:{title:"Bison",require:"c",owner:"Golmote"},bnf:{title:"BNF",alias:"rbnf",aliasTitles:{rbnf:"RBNF"},owner:"RunDevelopment"},bqn:{title:"BQN",owner:"yewscion"},brainfuck:{title:"Brainfuck",owner:"Golmote"},brightscript:{title:"BrightScript",owner:"RunDevelopment"},bro:{title:"Bro",owner:"wayward710"},bsl:{title:"BSL (1C:Enterprise)",alias:"oscript",aliasTitles:{oscript:"OneScript"},owner:"Diversus23"},c:{title:"C",require:"clike",owner:"zeitgeist87"},csharp:{title:"C#",require:"clike",alias:["cs","dotnet"],owner:"mvalipour"},cpp:{title:"C++",require:"c",owner:"zeitgeist87"},cfscript:{title:"CFScript",require:"clike",alias:"cfc",owner:"mjclemente"},chaiscript:{title:"ChaiScript",require:["clike","cpp"],owner:"RunDevelopment"},cil:{title:"CIL",owner:"sbrl"},cilkc:{title:"Cilk/C",require:"c",alias:"cilk-c",owner:"OpenCilk"},cilkcpp:{title:"Cilk/C++",require:"cpp",alias:["cilk-cpp","cilk"],owner:"OpenCilk"},clojure:{title:"Clojure",owner:"troglotit"},cmake:{title:"CMake",owner:"mjrogozinski"},cobol:{title:"COBOL",owner:"RunDevelopment"},coffeescript:{title:"CoffeeScript",require:"javascript",alias:"coffee",owner:"R-osey"},concurnas:{title:"Concurnas",alias:"conc",owner:"jasontatton"},csp:{title:"Content-Security-Policy",owner:"ScottHelme"},cooklang:{title:"Cooklang",owner:"ahue"},coq:{title:"Coq",owner:"RunDevelopment"},crystal:{title:"Crystal",require:"ruby",owner:"MakeNowJust"},"css-extras":{title:"CSS Extras",require:"css",modify:"css",owner:"milesj"},csv:{title:"CSV",owner:"RunDevelopment"},cue:{title:"CUE",owner:"RunDevelopment"},cypher:{title:"Cypher",owner:"RunDevelopment"},d:{title:"D",require:"clike",owner:"Golmote"},dart:{title:"Dart",require:"clike",owner:"Golmote"},dataweave:{title:"DataWeave",owner:"machaval"},dax:{title:"DAX",owner:"peterbud"},dhall:{title:"Dhall",owner:"RunDevelopment"},diff:{title:"Diff",owner:"uranusjr"},django:{title:"Django/Jinja2",require:"markup-templating",alias:"jinja2",owner:"romanvm"},"dns-zone-file":{title:"DNS zone file",owner:"RunDevelopment",alias:"dns-zone"},docker:{title:"Docker",alias:"dockerfile",owner:"JustinBeckwith"},dot:{title:"DOT (Graphviz)",alias:"gv",optional:"markup",owner:"RunDevelopment"},ebnf:{title:"EBNF",owner:"RunDevelopment"},editorconfig:{title:"EditorConfig",owner:"osipxd"},eiffel:{title:"Eiffel",owner:"Conaclos"},ejs:{title:"EJS",require:["javascript","markup-templating"],owner:"RunDevelopment",alias:"eta",aliasTitles:{eta:"Eta"}},elixir:{title:"Elixir",owner:"Golmote"},elm:{title:"Elm",owner:"zwilias"},etlua:{title:"Embedded Lua templating",require:["lua","markup-templating"],owner:"RunDevelopment"},erb:{title:"ERB",require:["ruby","markup-templating"],owner:"Golmote"},erlang:{title:"Erlang",owner:"Golmote"},"excel-formula":{title:"Excel Formula",alias:["xlsx","xls"],owner:"RunDevelopment"},fsharp:{title:"F#",require:"clike",owner:"simonreynolds7"},factor:{title:"Factor",owner:"catb0t"},false:{title:"False",owner:"edukisto"},"firestore-security-rules":{title:"Firestore security rules",require:"clike",owner:"RunDevelopment"},flow:{title:"Flow",require:"javascript",owner:"Golmote"},fortran:{title:"Fortran",owner:"Golmote"},ftl:{title:"FreeMarker Template Language",require:"markup-templating",owner:"RunDevelopment"},gml:{title:"GameMaker Language",alias:"gamemakerlanguage",require:"clike",owner:"LiarOnce"},gap:{title:"GAP (CAS)",owner:"RunDevelopment"},gcode:{title:"G-code",owner:"RunDevelopment"},gdscript:{title:"GDScript",owner:"RunDevelopment"},gedcom:{title:"GEDCOM",owner:"Golmote"},gettext:{title:"gettext",alias:"po",owner:"RunDevelopment"},gherkin:{title:"Gherkin",owner:"hason"},git:{title:"Git",owner:"lgiraudel"},glsl:{title:"GLSL",require:"c",owner:"Golmote"},gn:{title:"GN",alias:"gni",owner:"RunDevelopment"},"linker-script":{title:"GNU Linker Script",alias:"ld",owner:"RunDevelopment"},go:{title:"Go",require:"clike",owner:"arnehormann"},"go-module":{title:"Go module",alias:"go-mod",owner:"RunDevelopment"},gradle:{title:"Gradle",require:"clike",owner:"zeabdelkhalek-badido18"},graphql:{title:"GraphQL",optional:"markdown",owner:"Golmote"},groovy:{title:"Groovy",require:"clike",owner:"robfletcher"},haml:{title:"Haml",require:"ruby",optional:["css","css-extras","coffeescript","erb","javascript","less","markdown","scss","textile"],owner:"Golmote"},handlebars:{title:"Handlebars",require:"markup-templating",alias:["hbs","mustache"],aliasTitles:{mustache:"Mustache"},owner:"Golmote"},haskell:{title:"Haskell",alias:"hs",owner:"bholst"},haxe:{title:"Haxe",require:"clike",optional:"regex",owner:"Golmote"},hcl:{title:"HCL",owner:"outsideris"},hlsl:{title:"HLSL",require:"c",owner:"RunDevelopment"},hoon:{title:"Hoon",owner:"matildepark"},http:{title:"HTTP",optional:["csp","css","hpkp","hsts","javascript","json","markup","uri"],owner:"danielgtaylor"},hpkp:{title:"HTTP Public-Key-Pins",owner:"ScottHelme"},hsts:{title:"HTTP Strict-Transport-Security",owner:"ScottHelme"},ichigojam:{title:"IchigoJam",owner:"BlueCocoa"},icon:{title:"Icon",owner:"Golmote"},"icu-message-format":{title:"ICU Message Format",owner:"RunDevelopment"},idris:{title:"Idris",alias:"idr",owner:"KeenS",require:"haskell"},ignore:{title:".ignore",owner:"osipxd",alias:["gitignore","hgignore","npmignore"],aliasTitles:{gitignore:".gitignore",hgignore:".hgignore",npmignore:".npmignore"}},inform7:{title:"Inform 7",owner:"Golmote"},ini:{title:"Ini",owner:"aviaryan"},io:{title:"Io",owner:"AlesTsurko"},j:{title:"J",owner:"Golmote"},java:{title:"Java",require:"clike",owner:"sherblot"},javadoc:{title:"JavaDoc",require:["markup","java","javadoclike"],modify:"java",optional:"scala",owner:"RunDevelopment"},javadoclike:{title:"JavaDoc-like",modify:["java","javascript","php"],owner:"RunDevelopment"},javastacktrace:{title:"Java stack trace",owner:"RunDevelopment"},jexl:{title:"Jexl",owner:"czosel"},jolie:{title:"Jolie",require:"clike",owner:"thesave"},jq:{title:"JQ",owner:"RunDevelopment"},jsdoc:{title:"JSDoc",require:["javascript","javadoclike","typescript"],modify:"javascript",optional:["actionscript","coffeescript"],owner:"RunDevelopment"},"js-extras":{title:"JS Extras",require:"javascript",modify:"javascript",optional:["actionscript","coffeescript","flow","n4js","typescript"],owner:"RunDevelopment"},json:{title:"JSON",alias:"webmanifest",aliasTitles:{webmanifest:"Web App Manifest"},owner:"CupOfTea696"},json5:{title:"JSON5",require:"json",owner:"RunDevelopment"},jsonp:{title:"JSONP",require:"json",owner:"RunDevelopment"},jsstacktrace:{title:"JS stack trace",owner:"sbrl"},"js-templates":{title:"JS Templates",require:"javascript",modify:"javascript",optional:["css","css-extras","graphql","markdown","markup","sql"],owner:"RunDevelopment"},julia:{title:"Julia",owner:"cdagnino"},keepalived:{title:"Keepalived Configure",owner:"dev-itsheng"},keyman:{title:"Keyman",owner:"mcdurdin"},kotlin:{title:"Kotlin",alias:["kt","kts"],aliasTitles:{kts:"Kotlin Script"},require:"clike",owner:"Golmote"},kumir:{title:"KuMir (\u041a\u0443\u041c\u0438\u0440)",alias:"kum",owner:"edukisto"},kusto:{title:"Kusto",owner:"RunDevelopment"},latex:{title:"LaTeX",alias:["tex","context"],aliasTitles:{tex:"TeX",context:"ConTeXt"},owner:"japborst"},latte:{title:"Latte",require:["clike","markup-templating","php"],owner:"nette"},less:{title:"Less",require:"css",optional:"css-extras",owner:"Golmote"},lilypond:{title:"LilyPond",require:"scheme",alias:"ly",owner:"RunDevelopment"},liquid:{title:"Liquid",require:"markup-templating",owner:"cinhtau"},lisp:{title:"Lisp",alias:["emacs","elisp","emacs-lisp"],owner:"JuanCaicedo"},livescript:{title:"LiveScript",owner:"Golmote"},llvm:{title:"LLVM IR",owner:"porglezomp"},log:{title:"Log file",optional:"javastacktrace",owner:"RunDevelopment"},lolcode:{title:"LOLCODE",owner:"Golmote"},lua:{title:"Lua",owner:"Golmote"},magma:{title:"Magma (CAS)",owner:"RunDevelopment"},makefile:{title:"Makefile",owner:"Golmote"},markdown:{title:"Markdown",require:"markup",optional:"yaml",alias:"md",owner:"Golmote"},"markup-templating":{title:"Markup templating",require:"markup",owner:"Golmote"},mata:{title:"Mata",owner:"RunDevelopment"},matlab:{title:"MATLAB",owner:"Golmote"},maxscript:{title:"MAXScript",owner:"RunDevelopment"},mel:{title:"MEL",owner:"Golmote"},mermaid:{title:"Mermaid",owner:"RunDevelopment"},metafont:{title:"METAFONT",owner:"LaeriExNihilo"},mizar:{title:"Mizar",owner:"Golmote"},mongodb:{title:"MongoDB",owner:"airs0urce",require:"javascript"},monkey:{title:"Monkey",owner:"Golmote"},moonscript:{title:"MoonScript",alias:"moon",owner:"RunDevelopment"},n1ql:{title:"N1QL",owner:"TMWilds"},n4js:{title:"N4JS",require:"javascript",optional:"jsdoc",alias:"n4jsd",owner:"bsmith-n4"},"nand2tetris-hdl":{title:"Nand To Tetris HDL",owner:"stephanmax"},naniscript:{title:"Naninovel Script",owner:"Elringus",alias:"nani"},nasm:{title:"NASM",owner:"rbmj"},neon:{title:"NEON",owner:"nette"},nevod:{title:"Nevod",owner:"nezaboodka"},nginx:{title:"nginx",owner:"volado"},nim:{title:"Nim",owner:"Golmote"},nix:{title:"Nix",owner:"Golmote"},nsis:{title:"NSIS",owner:"idleberg"},objectivec:{title:"Objective-C",require:"c",alias:"objc",owner:"uranusjr"},ocaml:{title:"OCaml",owner:"Golmote"},odin:{title:"Odin",owner:"edukisto"},opencl:{title:"OpenCL",require:"c",modify:["c","cpp"],owner:"Milania1"},openqasm:{title:"OpenQasm",alias:"qasm",owner:"RunDevelopment"},oz:{title:"Oz",owner:"Golmote"},parigp:{title:"PARI/GP",owner:"Golmote"},parser:{title:"Parser",require:"markup",owner:"Golmote"},pascal:{title:"Pascal",alias:"objectpascal",aliasTitles:{objectpascal:"Object Pascal"},owner:"Golmote"},pascaligo:{title:"Pascaligo",owner:"DefinitelyNotAGoat"},psl:{title:"PATROL Scripting Language",owner:"bertysentry"},pcaxis:{title:"PC-Axis",alias:"px",owner:"RunDevelopment"},peoplecode:{title:"PeopleCode",alias:"pcode",owner:"RunDevelopment"},perl:{title:"Perl",owner:"Golmote"},php:{title:"PHP",require:"markup-templating",owner:"milesj"},phpdoc:{title:"PHPDoc",require:["php","javadoclike"],modify:"php",owner:"RunDevelopment"},"php-extras":{title:"PHP Extras",require:"php",modify:"php",owner:"milesj"},"plant-uml":{title:"PlantUML",alias:"plantuml",owner:"RunDevelopment"},plsql:{title:"PL/SQL",require:"sql",owner:"Golmote"},powerquery:{title:"PowerQuery",alias:["pq","mscript"],owner:"peterbud"},powershell:{title:"PowerShell",owner:"nauzilus"},processing:{title:"Processing",require:"clike",owner:"Golmote"},prolog:{title:"Prolog",owner:"Golmote"},promql:{title:"PromQL",owner:"arendjr"},properties:{title:".properties",owner:"Golmote"},protobuf:{title:"Protocol Buffers",require:"clike",owner:"just-boris"},pug:{title:"Pug",require:["markup","javascript"],optional:["coffeescript","ejs","handlebars","less","livescript","markdown","scss","stylus","twig"],owner:"Golmote"},puppet:{title:"Puppet",owner:"Golmote"},pure:{title:"Pure",optional:["c","cpp","fortran"],owner:"Golmote"},purebasic:{title:"PureBasic",require:"clike",alias:"pbfasm",owner:"HeX0R101"},purescript:{title:"PureScript",require:"haskell",alias:"purs",owner:"sriharshachilakapati"},python:{title:"Python",alias:"py",owner:"multipetros"},qsharp:{title:"Q#",require:"clike",alias:"qs",owner:"fedonman"},q:{title:"Q (kdb+ database)",owner:"Golmote"},qml:{title:"QML",require:"javascript",owner:"RunDevelopment"},qore:{title:"Qore",require:"clike",owner:"temnroegg"},r:{title:"R",owner:"Golmote"},racket:{title:"Racket",require:"scheme",alias:"rkt",owner:"RunDevelopment"},cshtml:{title:"Razor C#",alias:"razor",require:["markup","csharp"],optional:["css","css-extras","javascript","js-extras"],owner:"RunDevelopment"},jsx:{title:"React JSX",require:["markup","javascript"],optional:["jsdoc","js-extras","js-templates"],owner:"vkbansal"},tsx:{title:"React TSX",require:["jsx","typescript"]},reason:{title:"Reason",require:"clike",owner:"Golmote"},regex:{title:"Regex",owner:"RunDevelopment"},rego:{title:"Rego",owner:"JordanSh"},renpy:{title:"Ren'py",alias:"rpy",owner:"HyuchiaDiego"},rescript:{title:"ReScript",alias:"res",owner:"vmarcosp"},rest:{title:"reST (reStructuredText)",owner:"Golmote"},rip:{title:"Rip",owner:"ravinggenius"},roboconf:{title:"Roboconf",owner:"Golmote"},robotframework:{title:"Robot Framework",alias:"robot",owner:"RunDevelopment"},ruby:{title:"Ruby",require:"clike",alias:"rb",owner:"samflores"},rust:{title:"Rust",owner:"Golmote"},sas:{title:"SAS",optional:["groovy","lua","sql"],owner:"Golmote"},sass:{title:"Sass (Sass)",require:"css",optional:"css-extras",owner:"Golmote"},scss:{title:"Sass (SCSS)",require:"css",optional:"css-extras",owner:"MoOx"},scala:{title:"Scala",require:"java",owner:"jozic"},scheme:{title:"Scheme",owner:"bacchus123"},"shell-session":{title:"Shell session",require:"bash",alias:["sh-session","shellsession"],owner:"RunDevelopment"},smali:{title:"Smali",owner:"RunDevelopment"},smalltalk:{title:"Smalltalk",owner:"Golmote"},smarty:{title:"Smarty",require:"markup-templating",optional:"php",owner:"Golmote"},sml:{title:"SML",alias:"smlnj",aliasTitles:{smlnj:"SML/NJ"},owner:"RunDevelopment"},solidity:{title:"Solidity (Ethereum)",alias:"sol",require:"clike",owner:"glachaud"},"solution-file":{title:"Solution file",alias:"sln",owner:"RunDevelopment"},soy:{title:"Soy (Closure Template)",require:"markup-templating",owner:"Golmote"},sparql:{title:"SPARQL",require:"turtle",owner:"Triply-Dev",alias:"rq"},"splunk-spl":{title:"Splunk SPL",owner:"RunDevelopment"},sqf:{title:"SQF: Status Quo Function (Arma 3)",require:"clike",owner:"RunDevelopment"},sql:{title:"SQL",owner:"multipetros"},squirrel:{title:"Squirrel",require:"clike",owner:"RunDevelopment"},stan:{title:"Stan",owner:"RunDevelopment"},stata:{title:"Stata Ado",require:["mata","java","python"],owner:"RunDevelopment"},iecst:{title:"Structured Text (IEC 61131-3)",owner:"serhioromano"},stylus:{title:"Stylus",owner:"vkbansal"},supercollider:{title:"SuperCollider",alias:"sclang",owner:"RunDevelopment"},swift:{title:"Swift",owner:"chrischares"},systemd:{title:"Systemd configuration file",owner:"RunDevelopment"},"t4-templating":{title:"T4 templating",owner:"RunDevelopment"},"t4-cs":{title:"T4 Text Templates (C#)",require:["t4-templating","csharp"],alias:"t4",owner:"RunDevelopment"},"t4-vb":{title:"T4 Text Templates (VB)",require:["t4-templating","vbnet"],owner:"RunDevelopment"},tap:{title:"TAP",owner:"isaacs",require:"yaml"},tcl:{title:"Tcl",owner:"PeterChaplin"},tt2:{title:"Template Toolkit 2",require:["clike","markup-templating"],owner:"gflohr"},textile:{title:"Textile",require:"markup",optional:"css",owner:"Golmote"},toml:{title:"TOML",owner:"RunDevelopment"},tremor:{title:"Tremor",alias:["trickle","troy"],owner:"darach",aliasTitles:{trickle:"trickle",troy:"troy"}},turtle:{title:"Turtle",alias:"trig",aliasTitles:{trig:"TriG"},owner:"jakubklimek"},twig:{title:"Twig",require:"markup-templating",owner:"brandonkelly"},typescript:{title:"TypeScript",require:"javascript",optional:"js-templates",alias:"ts",owner:"vkbansal"},typoscript:{title:"TypoScript",alias:"tsconfig",aliasTitles:{tsconfig:"TSConfig"},owner:"dkern"},unrealscript:{title:"UnrealScript",alias:["uscript","uc"],owner:"RunDevelopment"},uorazor:{title:"UO Razor Script",owner:"jaseowns"},uri:{title:"URI",alias:"url",aliasTitles:{url:"URL"},owner:"RunDevelopment"},v:{title:"V",require:"clike",owner:"taggon"},vala:{title:"Vala",require:"clike",optional:"regex",owner:"TemplarVolk"},vbnet:{title:"VB.Net",require:"basic",owner:"Bigsby"},velocity:{title:"Velocity",require:"markup",owner:"Golmote"},verilog:{title:"Verilog",owner:"a-rey"},vhdl:{title:"VHDL",owner:"a-rey"},vim:{title:"vim",owner:"westonganger"},"visual-basic":{title:"Visual Basic",alias:["vb","vba"],aliasTitles:{vba:"VBA"},owner:"Golmote"},warpscript:{title:"WarpScript",owner:"RunDevelopment"},wasm:{title:"WebAssembly",owner:"Golmote"},"web-idl":{title:"Web IDL",alias:"webidl",owner:"RunDevelopment"},wgsl:{title:"WGSL",owner:"Dr4gonthree"},wiki:{title:"Wiki markup",require:"markup",owner:"Golmote"},wolfram:{title:"Wolfram language",alias:["mathematica","nb","wl"],aliasTitles:{mathematica:"Mathematica",nb:"Mathematica Notebook"},owner:"msollami"},wren:{title:"Wren",owner:"clsource"},xeora:{title:"Xeora",require:"markup",alias:"xeoracube",aliasTitles:{xeoracube:"XeoraCube"},owner:"freakmaxi"},"xml-doc":{title:"XML doc (.net)",require:"markup",modify:["csharp","fsharp","vbnet"],owner:"RunDevelopment"},xojo:{title:"Xojo (REALbasic)",owner:"Golmote"},xquery:{title:"XQuery",require:"markup",owner:"Golmote"},yaml:{title:"YAML",alias:"yml",owner:"hason"},yang:{title:"YANG",owner:"RunDevelopment"},zig:{title:"Zig",owner:"RunDevelopment"}},plugins:{meta:{path:"plugins/{id}/prism-{id}",link:"plugins/{id}/"},"line-highlight":{title:"Line Highlight",description:"Highlights specific lines and/or line ranges."},"line-numbers":{title:"Line Numbers",description:"Line number at the beginning of code lines.",owner:"kuba-kubula"},"show-invisibles":{title:"Show Invisibles",description:"Show hidden characters such as tabs and line breaks.",optional:["autolinker","data-uri-highlight"]},autolinker:{title:"Autolinker",description:"Converts URLs and emails in code to clickable links. Parses Markdown links in comments."},wpd:{title:"WebPlatform Docs",description:'Makes tokens link to WebPlatform.org documentation. The links open in a new tab.'},"custom-class":{title:"Custom Class",description:"This plugin allows you to prefix Prism's default classes (.comment can become .namespace--comment) or replace them with your defined ones (like .editor__comment). You can even add new classes.",owner:"dvkndn",noCSS:!0},"file-highlight":{title:"File Highlight",description:"Fetch external files and highlight them with Prism. Used on the Prism website itself.",noCSS:!0},"show-language":{title:"Show Language",description:"Display the highlighted language in code blocks (inline code does not show the label).",owner:"nauzilus",noCSS:!0,require:"toolbar"},"jsonp-highlight":{title:"JSONP Highlight",description:"Fetch content with JSONP and highlight some interesting content (e.g. GitHub/Gists or Bitbucket API).",noCSS:!0,owner:"nauzilus"},"highlight-keywords":{title:"Highlight Keywords",description:"Adds special CSS classes for each keyword for fine-grained highlighting.",owner:"vkbansal",noCSS:!0},"remove-initial-line-feed":{title:"Remove initial line feed",description:"Removes the initial line feed in code blocks.",owner:"Golmote",noCSS:!0},"inline-color":{title:"Inline color",description:"Adds a small inline preview for colors in style sheets.",require:"css-extras",owner:"RunDevelopment"},previewers:{title:"Previewers",description:"Previewers for angles, colors, gradients, easing and time.",require:"css-extras",owner:"Golmote"},autoloader:{title:"Autoloader",description:"Automatically loads the needed languages to highlight the code blocks.",owner:"Golmote",noCSS:!0},"keep-markup":{title:"Keep Markup",description:"Prevents custom markup from being dropped out during highlighting.",owner:"Golmote",optional:"normalize-whitespace",noCSS:!0},"command-line":{title:"Command Line",description:"Display a command line with a prompt and, optionally, the output/response from the commands.",owner:"chriswells0"},"unescaped-markup":{title:"Unescaped Markup",description:"Write markup without having to escape anything."},"normalize-whitespace":{title:"Normalize Whitespace",description:"Supports multiple operations to normalize whitespace in code blocks.",owner:"zeitgeist87",optional:"unescaped-markup",noCSS:!0},"data-uri-highlight":{title:"Data-URI Highlight",description:"Highlights data-URI contents.",owner:"Golmote",noCSS:!0},toolbar:{title:"Toolbar",description:"Attach a toolbar for plugins to easily register buttons on the top of a code block.",owner:"mAAdhaTTah"},"copy-to-clipboard":{title:"Copy to Clipboard Button",description:"Add a button that copies the code block to the clipboard when clicked.",owner:"mAAdhaTTah",require:"toolbar",noCSS:!0},"download-button":{title:"Download Button",description:"A button in the toolbar of a code block adding a convenient way to download a code file.",owner:"Golmote",require:"toolbar",noCSS:!0},"match-braces":{title:"Match braces",description:"Highlights matching braces.",owner:"RunDevelopment"},"diff-highlight":{title:"Diff Highlight",description:"Highlights the code inside diff blocks.",owner:"RunDevelopment",require:"diff"},"filter-highlight-all":{title:"Filter highlightAll",description:"Filters the elements the highlightAll and highlightAllUnder methods actually highlight.",owner:"RunDevelopment",noCSS:!0},treeview:{title:"Treeview",description:"A language with special styles to highlight file system tree structures.",owner:"Golmote"}}})},2885:(e,t,n)=>{const r=n(9901),o=n(9642),a=new Set;function i(e){void 0===e?e=Object.keys(r.languages).filter((e=>"meta"!=e)):Array.isArray(e)||(e=[e]);const t=[...a,...Object.keys(Prism.languages)];o(r,e,t).load((e=>{if(!(e in r.languages))return void(i.silent||console.warn("Language does not exist: "+e));const t="./prism-"+e;delete n.c[n(6500).resolve(t)],delete Prism.languages[e],n(6500)(t),a.add(e)}))}i.silent=!1,e.exports=i},6854:()=>{!function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,o,a){if(n.language===r){var i=n.tokenStack=[];n.code=n.code.replace(o,(function(e){if("function"==typeof a&&!a(e))return e;for(var o,l=i.length;-1!==n.code.indexOf(o=t(r,l));)++l;return i[l]=e,o})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var o=0,a=Object.keys(n.tokenStack);!function i(l){for(var s=0;s=a.length);s++){var u=l[s];if("string"==typeof u||u.content&&"string"==typeof u.content){var c=a[o],d=n.tokenStack[c],p="string"==typeof u?u:u.content,f=t(r,c),m=p.indexOf(f);if(m>-1){++o;var h=p.substring(0,m),g=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),y=p.substring(m+f.length),v=[];h&&v.push.apply(v,i([h])),v.push(g),y&&v.push.apply(v,i([y])),"string"==typeof u?l.splice.apply(l,[s,1].concat(v)):u.content=v}}else u.content&&i(u.content)}return l}(n.tokens)}}}})}(Prism)},6726:(e,t,n)=>{var r={"./":2885};function o(e){var t=a(e);return n(t)}function a(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}o.keys=function(){return Object.keys(r)},o.resolve=a,e.exports=o,o.id=6726},6500:(e,t,n)=>{var r={"./":2885};function o(e){var t=a(e);return n(t)}function a(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}o.keys=function(){return Object.keys(r)},o.resolve=a,e.exports=o,o.id=6500},9642:e=>{"use strict";var t=function(){var e=function(){};function t(e,t){Array.isArray(e)?e.forEach(t):null!=e&&t(e,0)}function n(e){for(var t={},n=0,r=e.length;n "));var l={},s=e[r];if(s){function u(t){if(!(t in e))throw new Error(r+" depends on an unknown component "+t);if(!(t in l))for(var i in o(t,a),l[t]=!0,n[t])l[i]=!0}t(s.require,u),t(s.optional,u),t(s.modify,u)}n[r]=l,a.pop()}}return function(e){var t=n[e];return t||(o(e,r),t=n[e]),t}}function o(e){for(var t in e)return!0;return!1}return function(a,i,l){var s=function(e){var t={};for(var n in e){var r=e[n];for(var o in r)if("meta"!=o){var a=r[o];t[o]="string"==typeof a?{title:a}:a}}return t}(a),u=function(e){var n;return function(r){if(r in e)return r;if(!n)for(var o in n={},e){var a=e[o];t(a&&a.alias,(function(t){if(t in n)throw new Error(t+" cannot be alias for both "+o+" and "+n[t]);if(t in e)throw new Error(t+" cannot be alias of "+o+" because it is a component.");n[t]=o}))}return n[r]||r}}(s);i=i.map(u),l=(l||[]).map(u);var c=n(i),d=n(l);i.forEach((function e(n){var r=s[n];t(r&&r.require,(function(t){t in d||(c[t]=!0,e(t))}))}));for(var p,f=r(s),m=c;o(m);){for(var h in p={},m){var g=s[h];t(g&&g.modify,(function(e){e in d&&(p[e]=!0)}))}for(var y in d)if(!(y in c))for(var v in f(y))if(v in c){p[y]=!0;break}for(var b in m=p)c[b]=!0}var w={getIds:function(){var e=[];return w.load((function(t){e.push(t)})),e},load:function(t,n){return function(t,n,r,o){var a=o?o.series:void 0,i=o?o.parallel:e,l={},s={};function u(e){if(e in l)return l[e];s[e]=!0;var o,c=[];for(var d in t(e))d in n&&c.push(d);if(0===c.length)o=r(e);else{var p=i(c.map((function(e){var t=u(e);return delete s[e],t})));a?o=a(p,(function(){return r(e)})):r(e)}return l[e]=o}for(var c in n)u(c);var d=[];for(var p in s)d.push(l[p]);return i(d)}(f,c,t,n)}};return w}}();e.exports=t},2703:(e,t,n)=>{"use strict";var r=n(414);function o(){}function a(){}a.resetWarningCache=o,e.exports=function(){function e(e,t,n,o,a,i){if(i!==r){var l=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw l.name="Invariant Violation",l}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:a,resetWarningCache:o};return n.PropTypes=n,n}},5697:(e,t,n)=>{e.exports=n(2703)()},414:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},4448:(e,t,n)=>{"use strict";var r=n(7294),o=n(3840);function a(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n