From 93e249ae9caf2200b9de2f29553193b01d6051cd Mon Sep 17 00:00:00 2001 From: Adriano Castro Date: Wed, 12 Jun 2024 13:12:17 -0300 Subject: [PATCH] Updates --- 404.html | 9 +++++--- assets/js/0c665981.543584f6.js | 1 + assets/js/0c665981.d34c1b8e.js | 1 - assets/js/935f2afb.2c16a0c8.js | 1 - assets/js/935f2afb.e2a22b69.js | 1 + assets/js/9beb87c2.8d9850aa.js | 1 + assets/js/9beb87c2.ccc7ba1f.js | 1 - assets/js/main.1d813e71.js | 2 ++ ...CENSE.txt => main.1d813e71.js.LICENSE.txt} | 0 assets/js/main.4a71c675.js | 2 -- ...n.f7a74c55.js => runtime~main.2a5aa7ca.js} | 2 +- docs/category/commands/index.html | 9 +++++--- docs/category/core/index.html | 9 +++++--- docs/category/development-process/index.html | 11 ++++++---- docs/category/facades/index.html | 9 +++++--- docs/category/factories/index.html | 9 +++++--- docs/category/library-structure/index.html | 9 +++++--- docs/category/models/index.html | 9 +++++--- docs/category/resources/index.html | 9 +++++--- docs/category/support/index.html | 9 +++++--- docs/category/testing/index.html | 9 +++++--- docs/category/views/index.html | 9 +++++--- docs/changelog/index.html | 12 +++++++---- .../development-process/deployment/index.html | 21 +++++++++++++------ docs/development-process/discovery/index.html | 9 +++++--- .../implementation/index.html | 9 +++++--- docs/development-process/overview/index.html | 9 +++++--- docs/intro/index.html | 9 +++++--- docs/library-structure/build/index.html | 9 +++++--- docs/library-structure/docs/index.html | 9 +++++--- docs/library-structure/import/index.html | 9 +++++--- docs/library-structure/luadocs/index.html | 9 +++++--- docs/library-structure/overview/index.html | 9 +++++--- docs/resources/commands/command/index.html | 9 +++++--- .../commands/commands-handler/index.html | 9 +++++--- docs/resources/commands/overview/index.html | 9 +++++--- .../core/addon-properties/index.html | 9 +++++--- docs/resources/core/classes/index.html | 9 +++++--- docs/resources/core/configuration/index.html | 9 +++++--- docs/resources/core/environment/index.html | 9 +++++--- docs/resources/core/factory/index.html | 9 +++++--- docs/resources/core/output/index.html | 9 +++++--- docs/resources/facades/events/index.html | 9 +++++--- docs/resources/facades/target/index.html | 9 +++++--- docs/resources/facades/tooltip/index.html | 9 +++++--- .../factories/item-factory/index.html | 9 +++++--- docs/resources/models/container/index.html | 9 +++++--- docs/resources/models/inventory/index.html | 9 +++++--- docs/resources/models/item/index.html | 9 +++++--- docs/resources/models/macro/index.html | 9 +++++--- docs/resources/models/overview/index.html | 9 +++++--- docs/resources/models/player/index.html | 9 +++++--- docs/resources/models/raid-marker/index.html | 9 +++++--- docs/resources/models/realm/index.html | 9 +++++--- docs/resources/support/arr/index.html | 9 +++++--- docs/resources/support/bool/index.html | 9 +++++--- docs/resources/support/str/index.html | 9 +++++--- docs/resources/views/window/index.html | 9 +++++--- docs/testing/api-mocks/index.html | 9 +++++--- docs/testing/test-classes/index.html | 9 +++++--- docs/testing/unit-suite/index.html | 9 +++++--- index.html | 9 +++++--- markdown-page/index.html | 9 +++++--- 63 files changed, 336 insertions(+), 170 deletions(-) create mode 100644 assets/js/0c665981.543584f6.js delete mode 100644 assets/js/0c665981.d34c1b8e.js delete mode 100644 assets/js/935f2afb.2c16a0c8.js create mode 100644 assets/js/935f2afb.e2a22b69.js create mode 100644 assets/js/9beb87c2.8d9850aa.js delete mode 100644 assets/js/9beb87c2.ccc7ba1f.js create mode 100644 assets/js/main.1d813e71.js rename assets/js/{main.4a71c675.js.LICENSE.txt => main.1d813e71.js.LICENSE.txt} (100%) delete mode 100644 assets/js/main.4a71c675.js rename assets/js/{runtime~main.f7a74c55.js => runtime~main.2a5aa7ca.js} (96%) diff --git a/404.html b/404.html index 53abfbed..bd7e689f 100644 --- a/404.html +++ b/404.html @@ -3,9 +3,12 @@ -Page Not Found | Stormwind Library - - +Page Not Found | Stormwind Library + + + + +
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/0c665981.543584f6.js b/assets/js/0c665981.543584f6.js new file mode 100644 index 00000000..a5a51198 --- /dev/null +++ b/assets/js/0c665981.543584f6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocumentation=self.webpackChunkdocumentation||[]).push([[5607],{581:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>a,contentTitle:()=>o,default:()=>h,frontMatter:()=>i,metadata:()=>l,toc:()=>d});var s=n(4848),r=n(8453);const i={sidebar_position:4,title:"Deployment"},o=void 0,l={id:"development-process/deployment",title:"Deployment",description:"When the library version is finished, tested and ready to be deployed, the",source:"@site/docs/development-process/deployment.md",sourceDirName:"development-process",slug:"/development-process/deployment",permalink:"/docs/development-process/deployment",draft:!1,unlisted:!1,editUrl:"https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/docs/development-process/deployment.md",tags:[],version:"current",sidebarPosition:4,frontMatter:{sidebar_position:4,title:"Deployment"},sidebar:"tutorialSidebar",previous:{title:"Implementation",permalink:"/docs/development-process/implementation"},next:{title:"Library Structure",permalink:"/docs/category/library-structure"}},a={},d=[];function c(e){const t={a:"a",code:"code",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...(0,r.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.p,{children:"When the library version is finished, tested and ready to be deployed, the\r\nfollowing steps should be followed:"}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsxs)(t.li,{children:["Checkout the ",(0,s.jsx)(t.strong,{children:"release branch"})," created in the\r\n",(0,s.jsx)(t.a,{href:"implementation",children:"implementation"})," phase"]}),"\n",(0,s.jsxs)(t.li,{children:["Make sure all ",(0,s.jsx)(t.a,{href:"../testing/unit-suite",children:"tests"})," are passing"]}),"\n",(0,s.jsxs)(t.li,{children:["Generate the ",(0,s.jsx)(t.a,{href:"../library-structure/luadocs",children:"LuaDocs files"})," and push them\r\nto the repository with ",(0,s.jsx)(t.strong,{children:'"Update LuaDocs"'})," as the commit message"]}),"\n",(0,s.jsxs)(t.li,{children:["Open the ",(0,s.jsx)(t.code,{children:"documentation/docs/changelog.md"})," file and update the release\r\ndate placeholder with the current date and push it to the repository with\r\n",(0,s.jsx)(t.strong,{children:'"Update vx.y.z release date"'})," (of course, replacing ",(0,s.jsx)(t.code,{children:"x.y.z"})," with the\r\ncurrent version being deployed)"]}),"\n",(0,s.jsx)(t.li,{children:"Go to the release PR in GitHub, take a quick look at the changes, and\r\nmerge it"}),"\n",(0,s.jsxs)(t.li,{children:["Create a ",(0,s.jsx)(t.a,{href:"https://github.com/adrianocastro189/stormwind-library/releases/new",children:"new release"}),":","\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["The tag name is the raw version number, like ",(0,s.jsx)(t.code,{children:"1.0.0"})]}),"\n",(0,s.jsxs)(t.li,{children:["The release title is the same, but with a ",(0,s.jsx)(t.code,{children:"v"})," prefix, like ",(0,s.jsx)(t.code,{children:"v1.0.0"})]}),"\n",(0,s.jsxs)(t.li,{children:["The release notes are created with the ",(0,s.jsx)(t.strong,{children:"Generate release notes"}),"\r\nbutton"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["Checkout the ",(0,s.jsx)(t.code,{children:"main"})," branch and pull the latest changes"]}),"\n",(0,s.jsxs)(t.li,{children:["Deploy the documentation to\r\n",(0,s.jsx)(t.a,{href:"https://www.stormwindlibrary.com",children:"GitHub Pages"})," using the ",(0,s.jsx)(t.code,{children:"npm"})," commands\r\ndescribed ",(0,s.jsx)(t.a,{href:"../library-structure/docs",children:"here"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["Check the ",(0,s.jsx)(t.a,{href:"https://github.com/adrianocastro189/stormwind-library/actions",children:"GitHub actions page"}),"\r\nand wait until the ",(0,s.jsx)(t.strong,{children:"page build and deployment"})," job is finished to have\r\nall the changes available in the live documentation"]}),"\n"]}),"\n"]}),"\n"]})]})}function h(e={}){const{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(c,{...e})}):c(e)}},8453:(e,t,n)=>{n.d(t,{R:()=>o,x:()=>l});var s=n(6540);const r={},i=s.createContext(r);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(r):e.components||r:o(e.components),s.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/0c665981.d34c1b8e.js b/assets/js/0c665981.d34c1b8e.js deleted file mode 100644 index bbee1779..00000000 --- a/assets/js/0c665981.d34c1b8e.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocumentation=self.webpackChunkdocumentation||[]).push([[5607],{581:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>a,contentTitle:()=>i,default:()=>h,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var r=n(4848),s=n(8453);const o={sidebar_position:4,title:"Deployment"},i=void 0,l={id:"development-process/deployment",title:"Deployment",description:"When the library is tested and ready to be deployed, the following steps",source:"@site/docs/development-process/deployment.md",sourceDirName:"development-process",slug:"/development-process/deployment",permalink:"/docs/development-process/deployment",draft:!1,unlisted:!1,editUrl:"https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/docs/development-process/deployment.md",tags:[],version:"current",sidebarPosition:4,frontMatter:{sidebar_position:4,title:"Deployment"},sidebar:"tutorialSidebar",previous:{title:"Implementation",permalink:"/docs/development-process/implementation"},next:{title:"Library Structure",permalink:"/docs/category/library-structure"}},a={},c=[];function d(e){const t={a:"a",code:"code",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...(0,s.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.p,{children:"When the library is tested and ready to be deployed, the following steps\r\nshould be followed:"}),"\n",(0,r.jsxs)(t.ol,{children:["\n",(0,r.jsxs)(t.li,{children:["Checkout the ",(0,r.jsx)(t.strong,{children:"release branch"})," created in the\r\n",(0,r.jsx)(t.a,{href:"implementation",children:"implementation"})," phase"]}),"\n",(0,r.jsxs)(t.li,{children:["Make sure all ",(0,r.jsx)(t.a,{href:"../testing/unit-suite",children:"tests"})," are passing"]}),"\n",(0,r.jsxs)(t.li,{children:["Generate the ",(0,r.jsx)(t.a,{href:"../library-structure/luadocs",children:"LuaDocs files"})," and push them\r\nto the repository with ",(0,r.jsx)(t.strong,{children:'"Update LuaDocs"'})," as the commit message"]}),"\n",(0,r.jsxs)(t.li,{children:["Open the ",(0,r.jsx)(t.code,{children:"documentation/docs/changelog.md"})," file and update the release\r\ndate placeholder with the current date and push it to the repository with\r\n",(0,r.jsx)(t.strong,{children:'"Update vx.y.z release date"'})," (of course, replacing ",(0,r.jsx)(t.code,{children:"x.y.z"})," with the\r\ncurrent version being deployed)"]}),"\n",(0,r.jsx)(t.li,{children:"Go to the release PR in GitHub, take a quick look at the changes, and\r\nmerge it"}),"\n",(0,r.jsxs)(t.li,{children:["Create a ",(0,r.jsx)(t.a,{href:"https://github.com/adrianocastro189/stormwind-library/releases/new",children:"new release"}),":","\n",(0,r.jsxs)(t.ul,{children:["\n",(0,r.jsxs)(t.li,{children:["The tag name is the raw version number, like ",(0,r.jsx)(t.code,{children:"1.0.0"})]}),"\n",(0,r.jsxs)(t.li,{children:["The release title is the same, but with a ",(0,r.jsx)(t.code,{children:"v"})," prefix, like ",(0,r.jsx)(t.code,{children:"v1.0.0"})]}),"\n",(0,r.jsxs)(t.li,{children:["The release notes are created with the ",(0,r.jsx)(t.strong,{children:"Generate release notes"}),"\r\nbutton"]}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(t.li,{children:["Checkout the ",(0,r.jsx)(t.code,{children:"main"})," branch and pull the latest changes"]}),"\n",(0,r.jsxs)(t.li,{children:["Deploy the documentation to\r\n",(0,r.jsx)(t.a,{href:"https://www.stormwindlibrary.com",children:"GitHub Pages"})," using the ",(0,r.jsx)(t.code,{children:"npm"})," commands\r\ndescribed ",(0,r.jsx)(t.a,{href:"../library-structure/docs",children:"here"})]}),"\n"]})]})}function h(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(d,{...e})}):d(e)}},8453:(e,t,n)=>{n.d(t,{R:()=>i,x:()=>l});var r=n(6540);const s={},o=r.createContext(s);function i(e){const t=r.useContext(o);return r.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(s):e.components||s:i(e.components),r.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/935f2afb.2c16a0c8.js b/assets/js/935f2afb.2c16a0c8.js deleted file mode 100644 index e4b06695..00000000 --- a/assets/js/935f2afb.2c16a0c8.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocumentation=self.webpackChunkdocumentation||[]).push([[8581],{5610: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":"Overview","href":"/docs/intro","docId":"intro","unlisted":false},{"type":"category","label":"Development Process","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Overview","href":"/docs/development-process/overview","docId":"development-process/overview","unlisted":false},{"type":"link","label":"Discovery","href":"/docs/development-process/discovery","docId":"development-process/discovery","unlisted":false},{"type":"link","label":"Implementation","href":"/docs/development-process/implementation","docId":"development-process/implementation","unlisted":false},{"type":"link","label":"Deployment","href":"/docs/development-process/deployment","docId":"development-process/deployment","unlisted":false}],"href":"/docs/category/development-process"},{"type":"category","label":"Library Structure","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Overview","href":"/docs/library-structure/overview","docId":"library-structure/overview","unlisted":false},{"type":"link","label":"Build","href":"/docs/library-structure/build","docId":"library-structure/build","unlisted":false},{"type":"link","label":"Import","href":"/docs/library-structure/import","docId":"library-structure/import","unlisted":false},{"type":"link","label":"Documentation","href":"/docs/library-structure/docs","docId":"library-structure/docs","unlisted":false},{"type":"link","label":"LuaDocs","href":"/docs/library-structure/luadocs","docId":"library-structure/luadocs","unlisted":false}],"href":"/docs/category/library-structure"},{"type":"category","label":"Resources","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Commands","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Overview","href":"/docs/resources/commands/overview","docId":"resources/commands/overview","unlisted":false},{"type":"link","label":"Command","href":"/docs/resources/commands/command","docId":"resources/commands/command","unlisted":false},{"type":"link","label":"Commands Handler","href":"/docs/resources/commands/commands-handler","docId":"resources/commands/commands-handler","unlisted":false}],"href":"/docs/category/commands"},{"type":"category","label":"Core","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Addon Properties","href":"/docs/resources/core/addon-properties","docId":"resources/core/addon-properties","unlisted":false},{"type":"link","label":"Classes","href":"/docs/resources/core/classes","docId":"resources/core/classes","unlisted":false},{"type":"link","label":"Configuration","href":"/docs/resources/core/configuration","docId":"resources/core/configuration","unlisted":false},{"type":"link","label":"Environment","href":"/docs/resources/core/environment","docId":"resources/core/environment","unlisted":false},{"type":"link","label":"Factory","href":"/docs/resources/core/factory","docId":"resources/core/factory","unlisted":false},{"type":"link","label":"Output","href":"/docs/resources/core/output","docId":"resources/core/output","unlisted":false}],"href":"/docs/category/core"},{"type":"category","label":"Facades","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Events","href":"/docs/resources/facades/events","docId":"resources/facades/events","unlisted":false},{"type":"link","label":"Target","href":"/docs/resources/facades/target","docId":"resources/facades/target","unlisted":false},{"type":"link","label":"Tooltip","href":"/docs/resources/facades/tooltip","docId":"resources/facades/tooltip","unlisted":false}],"href":"/docs/category/facades"},{"type":"category","label":"Factories","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"ItemFactory","href":"/docs/resources/factories/item-factory","docId":"resources/factories/item-factory","unlisted":false}],"href":"/docs/category/factories"},{"type":"category","label":"Models","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Overview","href":"/docs/resources/models/overview","docId":"resources/models/overview","unlisted":false},{"type":"link","label":"Container","href":"/docs/resources/models/container","docId":"resources/models/container","unlisted":false},{"type":"link","label":"Inventory","href":"/docs/resources/models/inventory","docId":"resources/models/inventory","unlisted":false},{"type":"link","label":"Item","href":"/docs/resources/models/item","docId":"resources/models/item","unlisted":false},{"type":"link","label":"Macros","href":"/docs/resources/models/macro","docId":"resources/models/macro","unlisted":false},{"type":"link","label":"Player","href":"/docs/resources/models/player","docId":"resources/models/player","unlisted":false},{"type":"link","label":"Raid Marker","href":"/docs/resources/models/raid-marker","docId":"resources/models/raid-marker","unlisted":false},{"type":"link","label":"Realm","href":"/docs/resources/models/realm","docId":"resources/models/realm","unlisted":false}],"href":"/docs/category/models"},{"type":"category","label":"Support","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Arr","href":"/docs/resources/support/arr","docId":"resources/support/arr","unlisted":false},{"type":"link","label":"Bool","href":"/docs/resources/support/bool","docId":"resources/support/bool","unlisted":false},{"type":"link","label":"Str","href":"/docs/resources/support/str","docId":"resources/support/str","unlisted":false}],"href":"/docs/category/support"},{"type":"category","label":"Views","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Window","href":"/docs/resources/views/window","docId":"resources/views/window","unlisted":false}],"href":"/docs/category/views"}],"href":"/docs/category/resources"},{"type":"category","label":"Testing","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"API Mocks","href":"/docs/testing/api-mocks","docId":"testing/api-mocks","unlisted":false},{"type":"link","label":"Test Classes","href":"/docs/testing/test-classes","docId":"testing/test-classes","unlisted":false},{"type":"link","label":"Unit Suite","href":"/docs/testing/unit-suite","docId":"testing/unit-suite","unlisted":false}],"href":"/docs/category/testing"},{"type":"link","label":"Changelog","href":"/docs/changelog","docId":"changelog","unlisted":false}]},"docs":{"changelog":{"id":"changelog","title":"Changelog","description":"2024.06.11 - version 1.4.0","sidebar":"tutorialSidebar"},"development-process/deployment":{"id":"development-process/deployment","title":"Deployment","description":"When the library is tested and ready to be deployed, the following steps","sidebar":"tutorialSidebar"},"development-process/discovery":{"id":"development-process/discovery","title":"Discovery","description":"The discovery process walks side by side with the addon development and with versioning the library.","sidebar":"tutorialSidebar"},"development-process/implementation":{"id":"development-process/implementation","title":"Implementation","description":"The implementation phase starts by creating a new release branch that will be used as the base","sidebar":"tutorialSidebar"},"development-process/overview":{"id":"development-process/overview","title":"Overview","description":"The process behind all library releases is defined in a couple of steps and will happen for","sidebar":"tutorialSidebar"},"intro":{"id":"intro","title":"Overview","description":"Stormwind Library is a library developed in Lua to serve as a framework for building World of Warcraft addons.","sidebar":"tutorialSidebar"},"library-structure/build":{"id":"library-structure/build","title":"Build","description":"All the library code is written inside the ./src folder and split into multiple .lua files.","sidebar":"tutorialSidebar"},"library-structure/docs":{"id":"library-structure/docs","title":"Documentation","description":"The Stormwind Library documentation is built on top of","sidebar":"tutorialSidebar"},"library-structure/import":{"id":"library-structure/import","title":"Import","description":"When a new version of the library is built, it\'s time to import it","sidebar":"tutorialSidebar"},"library-structure/luadocs":{"id":"library-structure/luadocs","title":"LuaDocs","description":"Although the Stormwind Library is fully covered in this documentation page","sidebar":"tutorialSidebar"},"library-structure/overview":{"id":"library-structure/overview","title":"Overview","description":"The Stormwind Library was structured with the following goals:","sidebar":"tutorialSidebar"},"resources/commands/command":{"id":"resources/commands/command","title":"Command","description":"The command object is a simple DTO object that can also house the callback","sidebar":"tutorialSidebar"},"resources/commands/commands-handler":{"id":"resources/commands/commands-handler","title":"Commands Handler","description":"The commands handler is a class that intercepts all commands registered by an","sidebar":"tutorialSidebar"},"resources/commands/overview":{"id":"resources/commands/overview","title":"Overview","description":"Slash commands in World of Warcraft are executed in the chat box that can","sidebar":"tutorialSidebar"},"resources/core/addon-properties":{"id":"resources/core/addon-properties","title":"Addon Properties","description":"When the library is initialized, addons can pass its properties to","sidebar":"tutorialSidebar"},"resources/core/classes":{"id":"resources/core/classes","title":"Classes","description":"Lua doesn\'t offer directly a class structure like every","sidebar":"tutorialSidebar"},"resources/core/configuration":{"id":"resources/core/configuration","title":"Configuration","description":"The Configuration class provides methods to easily access and manipulate the","sidebar":"tutorialSidebar"},"resources/core/environment":{"id":"resources/core/environment","title":"Environment","description":"Environment is a library resource used to identify the environment where the","sidebar":"tutorialSidebar"},"resources/core/factory":{"id":"resources/core/factory","title":"Factory","description":"The Factory is a simple part of the library responsible for emulating the new keyword from OOP languages.","sidebar":"tutorialSidebar"},"resources/core/output":{"id":"resources/core/output","title":"Output","description":"The output structure controls everything that can be printed","sidebar":"tutorialSidebar"},"resources/facades/events":{"id":"resources/facades/events","title":"Events","description":"The Events facade is an important class in the Stormwind Library, as it","sidebar":"tutorialSidebar"},"resources/facades/target":{"id":"resources/facades/target","title":"Target","description":"The target facade maps all the information that can be retrieved by the","sidebar":"tutorialSidebar"},"resources/facades/tooltip":{"id":"resources/facades/tooltip","title":"Tooltip","description":"The Tooltip facade is a layer between the World of Warcraft tooltip system","sidebar":"tutorialSidebar"},"resources/factories/item-factory":{"id":"resources/factories/item-factory","title":"ItemFactory","description":"Creates item instances from multiple sources.","sidebar":"tutorialSidebar"},"resources/models/container":{"id":"resources/models/container","title":"Container","description":"The Container model represents bags, bank slots, the player\'s backpack, and","sidebar":"tutorialSidebar"},"resources/models/inventory":{"id":"resources/models/inventory","title":"Inventory","description":"The Container model introduced a mapped object to represent bags,","sidebar":"tutorialSidebar"},"resources/models/item":{"id":"resources/models/item","title":"Item","description":"The Item class is a model that maps game items and their properties.","sidebar":"tutorialSidebar"},"resources/models/macro":{"id":"resources/models/macro","title":"Macros","description":"Macro is the mapping of a game macro accessed with /m.","sidebar":"tutorialSidebar"},"resources/models/overview":{"id":"resources/models/overview","title":"Overview","description":"Models are structures following class standards, mostly","sidebar":"tutorialSidebar"},"resources/models/player":{"id":"resources/models/player","title":"Player","description":"The Player class is a model that maps player information.","sidebar":"tutorialSidebar"},"resources/models/raid-marker":{"id":"resources/models/raid-marker","title":"Raid Marker","description":"The raid marker model represents those icon markers that can","sidebar":"tutorialSidebar"},"resources/models/realm":{"id":"resources/models/realm","title":"Realm","description":"The Realm class is a model that maps realm, or server, information.","sidebar":"tutorialSidebar"},"resources/support/arr":{"id":"resources/support/arr","title":"Arr","description":"The Arr methods are focused on manipulating arrays.","sidebar":"tutorialSidebar"},"resources/support/bool":{"id":"resources/support/bool","title":"Bool","description":"The Bool support methods are focused on working and validating bool","sidebar":"tutorialSidebar"},"resources/support/str":{"id":"resources/support/str","title":"Str","description":"The Str methods are focused on manipulating strings.","sidebar":"tutorialSidebar"},"resources/views/window":{"id":"resources/views/window","title":"Window","description":"Working with frames in the World of Warcraft API usually envolves a lot of","sidebar":"tutorialSidebar"},"testing/api-mocks":{"id":"testing/api-mocks","title":"API Mocks","description":"The tests/wow-mocks.lua file contains a set of mocks for the World of","sidebar":"tutorialSidebar"},"testing/test-classes":{"id":"testing/test-classes","title":"Test Classes","description":"Test classes in the Stormwind Library are organized in a way that makes it","sidebar":"tutorialSidebar"},"testing/unit-suite":{"id":"testing/unit-suite","title":"Unit Suite","description":"For the steps below, Lua 5.4 will be used as the installed version, but the","sidebar":"tutorialSidebar"}}}')}}]); \ No newline at end of file diff --git a/assets/js/935f2afb.e2a22b69.js b/assets/js/935f2afb.e2a22b69.js new file mode 100644 index 00000000..d89b2523 --- /dev/null +++ b/assets/js/935f2afb.e2a22b69.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocumentation=self.webpackChunkdocumentation||[]).push([[8581],{5610: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":"Overview","href":"/docs/intro","docId":"intro","unlisted":false},{"type":"category","label":"Development Process","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Overview","href":"/docs/development-process/overview","docId":"development-process/overview","unlisted":false},{"type":"link","label":"Discovery","href":"/docs/development-process/discovery","docId":"development-process/discovery","unlisted":false},{"type":"link","label":"Implementation","href":"/docs/development-process/implementation","docId":"development-process/implementation","unlisted":false},{"type":"link","label":"Deployment","href":"/docs/development-process/deployment","docId":"development-process/deployment","unlisted":false}],"href":"/docs/category/development-process"},{"type":"category","label":"Library Structure","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Overview","href":"/docs/library-structure/overview","docId":"library-structure/overview","unlisted":false},{"type":"link","label":"Build","href":"/docs/library-structure/build","docId":"library-structure/build","unlisted":false},{"type":"link","label":"Import","href":"/docs/library-structure/import","docId":"library-structure/import","unlisted":false},{"type":"link","label":"Documentation","href":"/docs/library-structure/docs","docId":"library-structure/docs","unlisted":false},{"type":"link","label":"LuaDocs","href":"/docs/library-structure/luadocs","docId":"library-structure/luadocs","unlisted":false}],"href":"/docs/category/library-structure"},{"type":"category","label":"Resources","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Commands","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Overview","href":"/docs/resources/commands/overview","docId":"resources/commands/overview","unlisted":false},{"type":"link","label":"Command","href":"/docs/resources/commands/command","docId":"resources/commands/command","unlisted":false},{"type":"link","label":"Commands Handler","href":"/docs/resources/commands/commands-handler","docId":"resources/commands/commands-handler","unlisted":false}],"href":"/docs/category/commands"},{"type":"category","label":"Core","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Addon Properties","href":"/docs/resources/core/addon-properties","docId":"resources/core/addon-properties","unlisted":false},{"type":"link","label":"Classes","href":"/docs/resources/core/classes","docId":"resources/core/classes","unlisted":false},{"type":"link","label":"Configuration","href":"/docs/resources/core/configuration","docId":"resources/core/configuration","unlisted":false},{"type":"link","label":"Environment","href":"/docs/resources/core/environment","docId":"resources/core/environment","unlisted":false},{"type":"link","label":"Factory","href":"/docs/resources/core/factory","docId":"resources/core/factory","unlisted":false},{"type":"link","label":"Output","href":"/docs/resources/core/output","docId":"resources/core/output","unlisted":false}],"href":"/docs/category/core"},{"type":"category","label":"Facades","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Events","href":"/docs/resources/facades/events","docId":"resources/facades/events","unlisted":false},{"type":"link","label":"Target","href":"/docs/resources/facades/target","docId":"resources/facades/target","unlisted":false},{"type":"link","label":"Tooltip","href":"/docs/resources/facades/tooltip","docId":"resources/facades/tooltip","unlisted":false}],"href":"/docs/category/facades"},{"type":"category","label":"Factories","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"ItemFactory","href":"/docs/resources/factories/item-factory","docId":"resources/factories/item-factory","unlisted":false}],"href":"/docs/category/factories"},{"type":"category","label":"Models","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Overview","href":"/docs/resources/models/overview","docId":"resources/models/overview","unlisted":false},{"type":"link","label":"Container","href":"/docs/resources/models/container","docId":"resources/models/container","unlisted":false},{"type":"link","label":"Inventory","href":"/docs/resources/models/inventory","docId":"resources/models/inventory","unlisted":false},{"type":"link","label":"Item","href":"/docs/resources/models/item","docId":"resources/models/item","unlisted":false},{"type":"link","label":"Macros","href":"/docs/resources/models/macro","docId":"resources/models/macro","unlisted":false},{"type":"link","label":"Player","href":"/docs/resources/models/player","docId":"resources/models/player","unlisted":false},{"type":"link","label":"Raid Marker","href":"/docs/resources/models/raid-marker","docId":"resources/models/raid-marker","unlisted":false},{"type":"link","label":"Realm","href":"/docs/resources/models/realm","docId":"resources/models/realm","unlisted":false}],"href":"/docs/category/models"},{"type":"category","label":"Support","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Arr","href":"/docs/resources/support/arr","docId":"resources/support/arr","unlisted":false},{"type":"link","label":"Bool","href":"/docs/resources/support/bool","docId":"resources/support/bool","unlisted":false},{"type":"link","label":"Str","href":"/docs/resources/support/str","docId":"resources/support/str","unlisted":false}],"href":"/docs/category/support"},{"type":"category","label":"Views","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Window","href":"/docs/resources/views/window","docId":"resources/views/window","unlisted":false}],"href":"/docs/category/views"}],"href":"/docs/category/resources"},{"type":"category","label":"Testing","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"API Mocks","href":"/docs/testing/api-mocks","docId":"testing/api-mocks","unlisted":false},{"type":"link","label":"Test Classes","href":"/docs/testing/test-classes","docId":"testing/test-classes","unlisted":false},{"type":"link","label":"Unit Suite","href":"/docs/testing/unit-suite","docId":"testing/unit-suite","unlisted":false}],"href":"/docs/category/testing"},{"type":"link","label":"Changelog","href":"/docs/changelog","docId":"changelog","unlisted":false}]},"docs":{"changelog":{"id":"changelog","title":"Changelog","description":"yyyy.mm.dd - version 1.5.0","sidebar":"tutorialSidebar"},"development-process/deployment":{"id":"development-process/deployment","title":"Deployment","description":"When the library version is finished, tested and ready to be deployed, the","sidebar":"tutorialSidebar"},"development-process/discovery":{"id":"development-process/discovery","title":"Discovery","description":"The discovery process walks side by side with the addon development and with versioning the library.","sidebar":"tutorialSidebar"},"development-process/implementation":{"id":"development-process/implementation","title":"Implementation","description":"The implementation phase starts by creating a new release branch that will be used as the base","sidebar":"tutorialSidebar"},"development-process/overview":{"id":"development-process/overview","title":"Overview","description":"The process behind all library releases is defined in a couple of steps and will happen for","sidebar":"tutorialSidebar"},"intro":{"id":"intro","title":"Overview","description":"Stormwind Library is a library developed in Lua to serve as a framework for building World of Warcraft addons.","sidebar":"tutorialSidebar"},"library-structure/build":{"id":"library-structure/build","title":"Build","description":"All the library code is written inside the ./src folder and split into multiple .lua files.","sidebar":"tutorialSidebar"},"library-structure/docs":{"id":"library-structure/docs","title":"Documentation","description":"The Stormwind Library documentation is built on top of","sidebar":"tutorialSidebar"},"library-structure/import":{"id":"library-structure/import","title":"Import","description":"When a new version of the library is built, it\'s time to import it","sidebar":"tutorialSidebar"},"library-structure/luadocs":{"id":"library-structure/luadocs","title":"LuaDocs","description":"Although the Stormwind Library is fully covered in this documentation page","sidebar":"tutorialSidebar"},"library-structure/overview":{"id":"library-structure/overview","title":"Overview","description":"The Stormwind Library was structured with the following goals:","sidebar":"tutorialSidebar"},"resources/commands/command":{"id":"resources/commands/command","title":"Command","description":"The command object is a simple DTO object that can also house the callback","sidebar":"tutorialSidebar"},"resources/commands/commands-handler":{"id":"resources/commands/commands-handler","title":"Commands Handler","description":"The commands handler is a class that intercepts all commands registered by an","sidebar":"tutorialSidebar"},"resources/commands/overview":{"id":"resources/commands/overview","title":"Overview","description":"Slash commands in World of Warcraft are executed in the chat box that can","sidebar":"tutorialSidebar"},"resources/core/addon-properties":{"id":"resources/core/addon-properties","title":"Addon Properties","description":"When the library is initialized, addons can pass its properties to","sidebar":"tutorialSidebar"},"resources/core/classes":{"id":"resources/core/classes","title":"Classes","description":"Lua doesn\'t offer directly a class structure like every","sidebar":"tutorialSidebar"},"resources/core/configuration":{"id":"resources/core/configuration","title":"Configuration","description":"The Configuration class provides methods to easily access and manipulate the","sidebar":"tutorialSidebar"},"resources/core/environment":{"id":"resources/core/environment","title":"Environment","description":"Environment is a library resource used to identify the environment where the","sidebar":"tutorialSidebar"},"resources/core/factory":{"id":"resources/core/factory","title":"Factory","description":"The Factory is a simple part of the library responsible for emulating the new keyword from OOP languages.","sidebar":"tutorialSidebar"},"resources/core/output":{"id":"resources/core/output","title":"Output","description":"The output structure controls everything that can be printed","sidebar":"tutorialSidebar"},"resources/facades/events":{"id":"resources/facades/events","title":"Events","description":"The Events facade is an important class in the Stormwind Library, as it","sidebar":"tutorialSidebar"},"resources/facades/target":{"id":"resources/facades/target","title":"Target","description":"The target facade maps all the information that can be retrieved by the","sidebar":"tutorialSidebar"},"resources/facades/tooltip":{"id":"resources/facades/tooltip","title":"Tooltip","description":"The Tooltip facade is a layer between the World of Warcraft tooltip system","sidebar":"tutorialSidebar"},"resources/factories/item-factory":{"id":"resources/factories/item-factory","title":"ItemFactory","description":"Creates item instances from multiple sources.","sidebar":"tutorialSidebar"},"resources/models/container":{"id":"resources/models/container","title":"Container","description":"The Container model represents bags, bank slots, the player\'s backpack, and","sidebar":"tutorialSidebar"},"resources/models/inventory":{"id":"resources/models/inventory","title":"Inventory","description":"The Container model introduced a mapped object to represent bags,","sidebar":"tutorialSidebar"},"resources/models/item":{"id":"resources/models/item","title":"Item","description":"The Item class is a model that maps game items and their properties.","sidebar":"tutorialSidebar"},"resources/models/macro":{"id":"resources/models/macro","title":"Macros","description":"Macro is the mapping of a game macro accessed with /m.","sidebar":"tutorialSidebar"},"resources/models/overview":{"id":"resources/models/overview","title":"Overview","description":"Models are structures following class standards, mostly","sidebar":"tutorialSidebar"},"resources/models/player":{"id":"resources/models/player","title":"Player","description":"The Player class is a model that maps player information.","sidebar":"tutorialSidebar"},"resources/models/raid-marker":{"id":"resources/models/raid-marker","title":"Raid Marker","description":"The raid marker model represents those icon markers that can","sidebar":"tutorialSidebar"},"resources/models/realm":{"id":"resources/models/realm","title":"Realm","description":"The Realm class is a model that maps realm, or server, information.","sidebar":"tutorialSidebar"},"resources/support/arr":{"id":"resources/support/arr","title":"Arr","description":"The Arr methods are focused on manipulating arrays.","sidebar":"tutorialSidebar"},"resources/support/bool":{"id":"resources/support/bool","title":"Bool","description":"The Bool support methods are focused on working and validating bool","sidebar":"tutorialSidebar"},"resources/support/str":{"id":"resources/support/str","title":"Str","description":"The Str methods are focused on manipulating strings.","sidebar":"tutorialSidebar"},"resources/views/window":{"id":"resources/views/window","title":"Window","description":"Working with frames in the World of Warcraft API usually envolves a lot of","sidebar":"tutorialSidebar"},"testing/api-mocks":{"id":"testing/api-mocks","title":"API Mocks","description":"The tests/wow-mocks.lua file contains a set of mocks for the World of","sidebar":"tutorialSidebar"},"testing/test-classes":{"id":"testing/test-classes","title":"Test Classes","description":"Test classes in the Stormwind Library are organized in a way that makes it","sidebar":"tutorialSidebar"},"testing/unit-suite":{"id":"testing/unit-suite","title":"Unit Suite","description":"For the steps below, Lua 5.4 will be used as the installed version, but the","sidebar":"tutorialSidebar"}}}')}}]); \ No newline at end of file diff --git a/assets/js/9beb87c2.8d9850aa.js b/assets/js/9beb87c2.8d9850aa.js new file mode 100644 index 00000000..9c4c3db1 --- /dev/null +++ b/assets/js/9beb87c2.8d9850aa.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocumentation=self.webpackChunkdocumentation||[]).push([[3539],{4520:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>o,contentTitle:()=>r,default:()=>h,frontMatter:()=>l,metadata:()=>a,toc:()=>d});var s=i(4848),t=i(8453);const l={},r="Changelog",a={id:"changelog",title:"Changelog",description:"yyyy.mm.dd - version 1.5.0",source:"@site/docs/changelog.md",sourceDirName:".",slug:"/changelog",permalink:"/docs/changelog",draft:!1,unlisted:!1,editUrl:"https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/docs/changelog.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Unit Suite",permalink:"/docs/testing/unit-suite"}},o={},d=[{value:"yyyy.mm.dd - version 1.5.0",id:"yyyymmdd---version-150",level:2},{value:"2024.06.11 - version 1.4.0",id:"20240611---version-140",level:2},{value:"2024.05.24 - version 1.3.0",id:"20240524---version-130",level:2},{value:"2024.05.08 - version 1.2.0",id:"20240508---version-120",level:2},{value:"2024.04.25 - version 1.1.0",id:"20240425---version-110",level:2},{value:"2024.04.10 - version 1.0.0",id:"20240410---version-100",level:2},{value:"2024.04.03 - version 0.0.8-alpha",id:"20240403---version-008-alpha",level:2},{value:"2024.03.29 - version 0.0.7-alpha",id:"20240329---version-007-alpha",level:2},{value:"2024.03.16 - version 0.0.6-alpha",id:"20240316---version-006-alpha",level:2},{value:"2024.03.08 - version 0.0.5-alpha",id:"20240308---version-005-alpha",level:2},{value:"2024.02.29 - version 0.0.4-alpha",id:"20240229---version-004-alpha",level:2}];function c(e){const n={a:"a",h1:"h1",h2:"h2",li:"li",ul:"ul",...(0,t.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h1,{id:"changelog",children:"Changelog"}),"\n",(0,s.jsx)(n.h2,{id:"yyyymmdd---version-150",children:"yyyy.mm.dd - version 1.5.0"}),"\n",(0,s.jsx)(n.h2,{id:"20240611---version-140",children:"2024.06.11 - version 1.4.0"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Add a factory to create item instances from multiple sources"}),"\n",(0,s.jsx)(n.li,{children:"Add new helper methods to Arr"}),"\n",(0,s.jsx)(n.li,{children:"Add the Container model to map the backpack, bags, bank slots, etc"}),"\n",(0,s.jsx)(n.li,{children:"Add the id property to the Item model"}),"\n",(0,s.jsx)(n.li,{children:"Inventory tracking (still experimental)"}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"20240524---version-130",children:"2024.05.24 - version 1.3.0"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Documentation published on ",(0,s.jsx)(n.a,{href:"https://www.stormwindlibrary.com",children:"GitHub Pages"})]}),"\n",(0,s.jsx)(n.li,{children:"Finish covering all classes with LuaDoc blocks"}),"\n",(0,s.jsxs)(n.li,{children:["Fix Events",":notify","() to properly handle multiple arguments"]}),"\n",(0,s.jsx)(n.li,{children:"Move the dd() method to a better location in the library structure,\r\nallowing it to be used before the Output class is registered"}),"\n",(0,s.jsx)(n.li,{children:"Move the generated LuaDoc files inside the docusaurus folder"}),"\n",(0,s.jsx)(n.li,{children:"Move World of Warcraft API mocks to a new reusable file separated from\r\nthe unit suite"}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"20240508---version-120",children:"2024.05.08 - version 1.2.0"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Add the Environment class to identify the environment where the addon is\r\nrunning"}),"\n",(0,s.jsx)(n.li,{children:"Add the Item model to map game items and their properties"}),"\n",(0,s.jsx)(n.li,{children:"Add the library playerConfig() method to access player-specific configurations"}),"\n",(0,s.jsx)(n.li,{children:"Add the Player model to map player information"}),"\n",(0,s.jsx)(n.li,{children:"Add the Realm model to map realm information"}),"\n",(0,s.jsx)(n.li,{children:"Add the Tooltip facade to handle tooltip events"}),"\n",(0,s.jsxs)(n.li,{children:["Allow classes to define constants with the Arr",":freeze","() method"]}),"\n",(0,s.jsx)(n.li,{children:"Allow window instances to have their state saved to player configurations\r\n(still defaults to global)"}),"\n",(0,s.jsx)(n.li,{children:"Fix an issue with dd() when called in test units causing the terminal\r\ncolor to be changed permanently"}),"\n",(0,s.jsx)(n.li,{children:"Fix an issue with parsing command arguments when they mix single and double\r\nquotes"}),"\n",(0,s.jsx)(n.li,{children:"Update the library Factory to allow classes to be instantiated in specific\r\nWorld of Warcraft versions if necessary"}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"20240425---version-110",children:"2024.04.25 - version 1.1.0"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:'Add a "dump and die" method to the Output class to improve debugging'}),"\n",(0,s.jsx)(n.li,{children:"Add a new property to initialize the library that allows addons to have a\r\nclass managing configurations and settings with facades to Arr"}),"\n",(0,s.jsx)(n.li,{children:"Add more LuaDoc blocks covering the library structure: to all classes in\r\nthe Commands structure, and to Output"}),"\n",(0,s.jsx)(n.li,{children:"Add the Configuration class to handle addon configurations and settings"}),"\n",(0,s.jsx)(n.li,{children:"Add the library getClass() method to allow addons to retrieve a class\r\nstructure instead of instantiating it, useful for class inheritance"}),"\n",(0,s.jsx)(n.li,{children:"Add the reusable Window class that allows addons to create windows with\r\nbasic features"}),"\n",(0,s.jsxs)(n.li,{children:["Fix Arr",":get","() to return false values instead of considering them nil and\r\nreturn the default value erroneously"]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"20240410---version-100",children:"2024.04.10 - version 1.0.0"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Add code documentation with ",(0,s.jsx)(n.a,{href:"https://github.com/lunarmodules/ldoc",children:"ldoc"})]}),"\n",(0,s.jsx)(n.li,{children:"Add Target methods to get the target current raid mark"}),"\n",(0,s.jsx)(n.li,{children:"Allow the Output class to be switched to test mode"}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"20240403---version-008-alpha",children:"2024.04.03 - version 0.0.8-alpha"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Add a new support class to handle bool values"}),"\n",(0,s.jsx)(n.li,{children:"Add new support methods to Str"}),"\n",(0,s.jsx)(n.li,{children:"Reset the library instance for each test method for better mocking and less garbage between test cases"}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"20240329---version-007-alpha",children:"2024.03.29 - version 0.0.7-alpha"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Add the Events facade class to serve as a way to improve event handling","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Listen to PLAYER_LOGIN"}),"\n",(0,s.jsx)(n.li,{children:"Listen to PLAYER_TARGET_CHANGED and split it into three events"}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.li,{children:"Add the CommandsHandler class to allow addons to register commands"}),"\n",(0,s.jsx)(n.li,{children:"Add the Output class to replace print() calls"}),"\n",(0,s.jsx)(n.li,{children:"Add the RaidMarker model class and the library's possible marker instances"}),"\n",(0,s.jsx)(n.li,{children:"Allow passing addon properties to the library"}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"20240316---version-006-alpha",children:"2024.03.16 - version 0.0.6-alpha"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Add the Str support class"}),"\n",(0,s.jsx)(n.li,{children:"Allow addons to register classes to be instantiated"}),"\n",(0,s.jsx)(n.li,{children:"Improvements to the Target facade resources"}),"\n",(0,s.jsx)(n.li,{children:"New Arr support class methods"}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"20240308---version-005-alpha",children:"2024.03.08 - version 0.0.5-alpha"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Add the Target facade"}),"\n",(0,s.jsx)(n.li,{children:"Add the Unit Test Suite"}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"20240229---version-004-alpha",children:"2024.02.29 - version 0.0.4-alpha"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Add the Macro class"}),"\n",(0,s.jsx)(n.li,{children:"Add the Factory structure"}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(c,{...e})}):c(e)}},8453:(e,n,i)=>{i.d(n,{R:()=>r,x:()=>a});var s=i(6540);const t={},l=s.createContext(t);function r(e){const n=s.useContext(l);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:r(e.components),s.createElement(l.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/9beb87c2.ccc7ba1f.js b/assets/js/9beb87c2.ccc7ba1f.js deleted file mode 100644 index a55d2dbe..00000000 --- a/assets/js/9beb87c2.ccc7ba1f.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocumentation=self.webpackChunkdocumentation||[]).push([[3539],{4520:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>o,contentTitle:()=>r,default:()=>h,frontMatter:()=>l,metadata:()=>a,toc:()=>d});var s=i(4848),t=i(8453);const l={},r="Changelog",a={id:"changelog",title:"Changelog",description:"2024.06.11 - version 1.4.0",source:"@site/docs/changelog.md",sourceDirName:".",slug:"/changelog",permalink:"/docs/changelog",draft:!1,unlisted:!1,editUrl:"https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/docs/changelog.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Unit Suite",permalink:"/docs/testing/unit-suite"}},o={},d=[{value:"2024.06.11 - version 1.4.0",id:"20240611---version-140",level:2},{value:"2024.05.24 - version 1.3.0",id:"20240524---version-130",level:2},{value:"2024.05.08 - version 1.2.0",id:"20240508---version-120",level:2},{value:"2024.04.25 - version 1.1.0",id:"20240425---version-110",level:2},{value:"2024.04.10 - version 1.0.0",id:"20240410---version-100",level:2},{value:"2024.04.03 - version 0.0.8-alpha",id:"20240403---version-008-alpha",level:2},{value:"2024.03.29 - version 0.0.7-alpha",id:"20240329---version-007-alpha",level:2},{value:"2024.03.16 - version 0.0.6-alpha",id:"20240316---version-006-alpha",level:2},{value:"2024.03.08 - version 0.0.5-alpha",id:"20240308---version-005-alpha",level:2},{value:"2024.02.29 - version 0.0.4-alpha",id:"20240229---version-004-alpha",level:2}];function c(e){const n={a:"a",h1:"h1",h2:"h2",li:"li",ul:"ul",...(0,t.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h1,{id:"changelog",children:"Changelog"}),"\n",(0,s.jsx)(n.h2,{id:"20240611---version-140",children:"2024.06.11 - version 1.4.0"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Add a factory to create item instances from multiple sources"}),"\n",(0,s.jsx)(n.li,{children:"Add new helper methods to Arr"}),"\n",(0,s.jsx)(n.li,{children:"Add the Container model to map the backpack, bags, bank slots, etc"}),"\n",(0,s.jsx)(n.li,{children:"Add the id property to the Item model"}),"\n",(0,s.jsx)(n.li,{children:"Inventory tracking (still experimental)"}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"20240524---version-130",children:"2024.05.24 - version 1.3.0"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Documentation published on ",(0,s.jsx)(n.a,{href:"https://www.stormwindlibrary.com",children:"GitHub Pages"})]}),"\n",(0,s.jsx)(n.li,{children:"Finish covering all classes with LuaDoc blocks"}),"\n",(0,s.jsxs)(n.li,{children:["Fix Events",":notify","() to properly handle multiple arguments"]}),"\n",(0,s.jsx)(n.li,{children:"Move the dd() method to a better location in the library structure,\r\nallowing it to be used before the Output class is registered"}),"\n",(0,s.jsx)(n.li,{children:"Move the generated LuaDoc files inside the docusaurus folder"}),"\n",(0,s.jsx)(n.li,{children:"Move World of Warcraft API mocks to a new reusable file separated from\r\nthe unit suite"}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"20240508---version-120",children:"2024.05.08 - version 1.2.0"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Add the Environment class to identify the environment where the addon is\r\nrunning"}),"\n",(0,s.jsx)(n.li,{children:"Add the Item model to map game items and their properties"}),"\n",(0,s.jsx)(n.li,{children:"Add the library playerConfig() method to access player-specific configurations"}),"\n",(0,s.jsx)(n.li,{children:"Add the Player model to map player information"}),"\n",(0,s.jsx)(n.li,{children:"Add the Realm model to map realm information"}),"\n",(0,s.jsx)(n.li,{children:"Add the Tooltip facade to handle tooltip events"}),"\n",(0,s.jsxs)(n.li,{children:["Allow classes to define constants with the Arr",":freeze","() method"]}),"\n",(0,s.jsx)(n.li,{children:"Allow window instances to have their state saved to player configurations\r\n(still defaults to global)"}),"\n",(0,s.jsx)(n.li,{children:"Fix an issue with dd() when called in test units causing the terminal\r\ncolor to be changed permanently"}),"\n",(0,s.jsx)(n.li,{children:"Fix an issue with parsing command arguments when they mix single and double\r\nquotes"}),"\n",(0,s.jsx)(n.li,{children:"Update the library Factory to allow classes to be instantiated in specific\r\nWorld of Warcraft versions if necessary"}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"20240425---version-110",children:"2024.04.25 - version 1.1.0"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:'Add a "dump and die" method to the Output class to improve debugging'}),"\n",(0,s.jsx)(n.li,{children:"Add a new property to initialize the library that allows addons to have a\r\nclass managing configurations and settings with facades to Arr"}),"\n",(0,s.jsx)(n.li,{children:"Add more LuaDoc blocks covering the library structure: to all classes in\r\nthe Commands structure, and to Output"}),"\n",(0,s.jsx)(n.li,{children:"Add the Configuration class to handle addon configurations and settings"}),"\n",(0,s.jsx)(n.li,{children:"Add the library getClass() method to allow addons to retrieve a class\r\nstructure instead of instantiating it, useful for class inheritance"}),"\n",(0,s.jsx)(n.li,{children:"Add the reusable Window class that allows addons to create windows with\r\nbasic features"}),"\n",(0,s.jsxs)(n.li,{children:["Fix Arr",":get","() to return false values instead of considering them nil and\r\nreturn the default value erroneously"]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"20240410---version-100",children:"2024.04.10 - version 1.0.0"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Add code documentation with ",(0,s.jsx)(n.a,{href:"https://github.com/lunarmodules/ldoc",children:"ldoc"})]}),"\n",(0,s.jsx)(n.li,{children:"Add Target methods to get the target current raid mark"}),"\n",(0,s.jsx)(n.li,{children:"Allow the Output class to be switched to test mode"}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"20240403---version-008-alpha",children:"2024.04.03 - version 0.0.8-alpha"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Add a new support class to handle bool values"}),"\n",(0,s.jsx)(n.li,{children:"Add new support methods to Str"}),"\n",(0,s.jsx)(n.li,{children:"Reset the library instance for each test method for better mocking and less garbage between test cases"}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"20240329---version-007-alpha",children:"2024.03.29 - version 0.0.7-alpha"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Add the Events facade class to serve as a way to improve event handling","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Listen to PLAYER_LOGIN"}),"\n",(0,s.jsx)(n.li,{children:"Listen to PLAYER_TARGET_CHANGED and split it into three events"}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.li,{children:"Add the CommandsHandler class to allow addons to register commands"}),"\n",(0,s.jsx)(n.li,{children:"Add the Output class to replace print() calls"}),"\n",(0,s.jsx)(n.li,{children:"Add the RaidMarker model class and the library's possible marker instances"}),"\n",(0,s.jsx)(n.li,{children:"Allow passing addon properties to the library"}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"20240316---version-006-alpha",children:"2024.03.16 - version 0.0.6-alpha"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Add the Str support class"}),"\n",(0,s.jsx)(n.li,{children:"Allow addons to register classes to be instantiated"}),"\n",(0,s.jsx)(n.li,{children:"Improvements to the Target facade resources"}),"\n",(0,s.jsx)(n.li,{children:"New Arr support class methods"}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"20240308---version-005-alpha",children:"2024.03.08 - version 0.0.5-alpha"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Add the Target facade"}),"\n",(0,s.jsx)(n.li,{children:"Add the Unit Test Suite"}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"20240229---version-004-alpha",children:"2024.02.29 - version 0.0.4-alpha"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Add the Macro class"}),"\n",(0,s.jsx)(n.li,{children:"Add the Factory structure"}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(c,{...e})}):c(e)}},8453:(e,n,i)=>{i.d(n,{R:()=>r,x:()=>a});var s=i(6540);const t={},l=s.createContext(t);function r(e){const n=s.useContext(l);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:r(e.components),s.createElement(l.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/main.1d813e71.js b/assets/js/main.1d813e71.js new file mode 100644 index 00000000..a822c892 --- /dev/null +++ b/assets/js/main.1d813e71.js @@ -0,0 +1,2 @@ +/*! For license information please see main.1d813e71.js.LICENSE.txt */ +(self.webpackChunkdocumentation=self.webpackChunkdocumentation||[]).push([[8792],{8328:(e,t,n)=>{"use strict";n.d(t,{A:()=>f});n(6540);var r=n(3259),o=n.n(r),a=n(4054);const i={"05307afa":[()=>n.e(2984).then(n.bind(n,9861)),"@site/docs/library-structure/import.md",9861],"056e7b99":[()=>n.e(820).then(n.bind(n,1575)),"@site/docs/resources/facades/tooltip.md",1575],"0c665981":[()=>n.e(5607).then(n.bind(n,581)),"@site/docs/development-process/deployment.md",581],"0d7809f6":[()=>n.e(8579).then(n.bind(n,8471)),"@site/docs/library-structure/docs.md",8471],"0e384e19":[()=>n.e(3976).then(n.bind(n,1512)),"@site/docs/intro.md",1512],"129bb65a":[()=>n.e(6049).then(n.bind(n,6164)),"@site/docs/resources/models/item.md",6164],"14eb3368":[()=>Promise.all([n.e(1869),n.e(6969)]).then(n.bind(n,4136)),"@theme/DocCategoryGeneratedIndexPage",4136],"14fb2de5":[()=>n.e(6692).then(n.bind(n,5085)),"@site/docs/resources/core/output.md",5085],17896441:[()=>Promise.all([n.e(1869),n.e(7922),n.e(8401)]).then(n.bind(n,3761)),"@theme/DocItem",3761],"1f391b9e":[()=>Promise.all([n.e(1869),n.e(7922),n.e(6061)]).then(n.bind(n,7973)),"@theme/MDXPage",7973],"269afbcb":[()=>n.e(7422).then(n.t.bind(n,8886,19)),"~docs/default/category-docs-tutorialsidebar-category-commands-b86.json",8886],"291c4fe2":[()=>n.e(9263).then(n.bind(n,6949)),"@site/docs/development-process/overview.md",6949],"2cff753d":[()=>n.e(8743).then(n.bind(n,6811)),"@site/docs/library-structure/luadocs.md",6811],"31b7736d":[()=>n.e(8162).then(n.bind(n,8631)),"@site/docs/resources/support/arr.md",8631],"360bc410":[()=>n.e(5180).then(n.t.bind(n,6931,19)),"~docs/default/category-docs-tutorialsidebar-category-support-cb3.json",6931],"393be207":[()=>n.e(4134).then(n.bind(n,6602)),"@site/src/pages/markdown-page.md",6602],"48ee8235":[()=>n.e(3611).then(n.bind(n,658)),"@site/docs/testing/unit-suite.md",658],"4a3cafc1":[()=>n.e(4465).then(n.bind(n,2094)),"@site/docs/resources/support/bool.md",2094],"4a65ff84":[()=>n.e(8577).then(n.bind(n,7212)),"@site/docs/resources/commands/commands-handler.md",7212],"4c4d8dbc":[()=>n.e(4625).then(n.bind(n,1745)),"@site/docs/resources/factories/item-factory.md",1745],"4d89cf04":[()=>n.e(5449).then(n.t.bind(n,2961,19)),"~docs/default/category-docs-tutorialsidebar-category-testing-2c6.json",2961],"4ee3fa9d":[()=>n.e(4430).then(n.t.bind(n,2144,19)),"~docs/default/category-docs-tutorialsidebar-category-factories-f4f.json",2144],"58f8672d":[()=>n.e(1353).then(n.bind(n,2556)),"@site/docs/resources/models/overview.md",2556],"5e95c892":[()=>n.e(9647).then(n.bind(n,7121)),"@theme/DocsRoot",7121],"5e9f5e1a":[()=>Promise.resolve().then(n.bind(n,4784)),"@generated/docusaurus.config",4784],"643fd383":[()=>n.e(5646).then(n.bind(n,9996)),"@site/docs/resources/commands/overview.md",9996],"6871f1bd":[()=>n.e(8168).then(n.bind(n,5067)),"@site/docs/resources/models/inventory.md",5067],"6c63c787":[()=>n.e(3766).then(n.bind(n,6180)),"@site/docs/resources/core/configuration.md",6180],"6cb57f58":[()=>n.e(2529).then(n.t.bind(n,4580,19)),"~docs/default/category-docs-tutorialsidebar-category-development-process-aa3.json",4580],"6e998a5b":[()=>n.e(3362).then(n.bind(n,3310)),"@site/docs/resources/core/classes.md",3310],"715a998e":[()=>n.e(5666).then(n.bind(n,2922)),"@site/docs/development-process/discovery.md",2922],"771bc00e":[()=>n.e(3264).then(n.bind(n,9647)),"@site/docs/library-structure/overview.md",9647],"8747e7cd":[()=>n.e(6834).then(n.bind(n,5531)),"@site/docs/testing/api-mocks.md",5531],"935f2afb":[()=>n.e(8581).then(n.t.bind(n,5610,19)),"~docs/default/version-current-metadata-prop-751.json",5610],"98c488c7":[()=>n.e(567).then(n.bind(n,5324)),"@site/docs/development-process/implementation.md",5324],"99a50e39":[()=>n.e(9022).then(n.bind(n,3482)),"@site/docs/resources/models/player.md",3482],"9beb87c2":[()=>n.e(3539).then(n.bind(n,4520)),"@site/docs/changelog.md",4520],"9e6d74f8":[()=>n.e(6292).then(n.bind(n,787)),"@site/docs/resources/facades/target.md",787],a4e6c145:[()=>n.e(6400).then(n.t.bind(n,5859,19)),"~docs/default/category-docs-tutorialsidebar-category-core-df2.json",5859],a666c68b:[()=>n.e(1399).then(n.bind(n,3664)),"@site/docs/resources/models/realm.md",3664],a67d08a5:[()=>n.e(9753).then(n.t.bind(n,6948,19)),"~docs/default/category-docs-tutorialsidebar-category-library-structure-e9e.json",6948],a7bd4aaa:[()=>n.e(7098).then(n.bind(n,4532)),"@theme/DocVersionRoot",4532],a94703ab:[()=>Promise.all([n.e(1869),n.e(9048)]).then(n.bind(n,2559)),"@theme/DocRoot",2559],abd5ab83:[()=>n.e(9445).then(n.bind(n,3383)),"@site/docs/resources/core/environment.md",3383],b28425fc:[()=>n.e(4437).then(n.bind(n,7176)),"@site/docs/resources/core/addon-properties.md",7176],b951fe0d:[()=>n.e(8305).then(n.bind(n,5250)),"@site/docs/resources/commands/command.md",5250],beea1df7:[()=>n.e(812).then(n.t.bind(n,7081,19)),"~docs/default/category-docs-tutorialsidebar-category-models-a6b.json",7081],bf8bff70:[()=>n.e(1396).then(n.t.bind(n,3822,19)),"~docs/default/category-docs-tutorialsidebar-category-resources-784.json",3822],c16cc70a:[()=>n.e(1525).then(n.bind(n,8138)),"@site/docs/library-structure/build.md",8138],c4f5d8e4:[()=>Promise.all([n.e(1869),n.e(2634)]).then(n.bind(n,6467)),"@site/src/pages/index.js",6467],d5a95a95:[()=>n.e(9484).then(n.bind(n,3891)),"@site/docs/resources/facades/events.md",3891],dc503fc7:[()=>n.e(3874).then(n.bind(n,3532)),"@site/docs/testing/test-classes.md",3532],dd89b1bb:[()=>n.e(4657).then(n.t.bind(n,5747,19)),"~docs/default/category-docs-tutorialsidebar-category-facades-455.json",5747],e667d0e2:[()=>n.e(1994).then(n.bind(n,9347)),"@site/docs/resources/models/macro.md",9347],e6ba023b:[()=>n.e(6932).then(n.t.bind(n,1966,19)),"C:\\Users\\adria\\OneDrive\\Documents\\GitHub\\stormwind-library\\documentation\\.docusaurus\\docusaurus-plugin-content-docs\\default\\plugin-route-context-module-100.json",1966],f93fe7a4:[()=>n.e(976).then(n.bind(n,5402)),"@site/docs/resources/models/raid-marker.md",5402],fca92bce:[()=>n.e(4020).then(n.bind(n,1719)),"@site/docs/resources/support/str.md",1719],fd08dba1:[()=>n.e(8617).then(n.bind(n,6428)),"@site/docs/resources/models/container.md",6428],fe7a8cfb:[()=>n.e(6631).then(n.t.bind(n,8337,19)),"~docs/default/category-docs-tutorialsidebar-category-views-120.json",8337],ff11e8fd:[()=>n.e(2968).then(n.t.bind(n,4061,19)),"C:\\Users\\adria\\OneDrive\\Documents\\GitHub\\stormwind-library\\documentation\\.docusaurus\\docusaurus-plugin-content-pages\\default\\plugin-route-context-module-100.json",4061],ff51729b:[()=>n.e(3307).then(n.bind(n,3861)),"@site/docs/resources/views/window.md",3861],ff6fac3d:[()=>n.e(8462).then(n.bind(n,1648)),"@site/docs/resources/core/factory.md",1648]};var s=n(4848);function l(e){let{error:t,retry:n,pastDelay:r}=e;return t?(0,s.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,s.jsx)("p",{children:String(t)}),(0,s.jsx)("div",{children:(0,s.jsx)("button",{type:"button",onClick:n,children:"Retry"})})]}):r?(0,s.jsx)("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"},children:(0,s.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,s.jsxs)("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2",children:[(0,s.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,s.jsx)("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,s.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,s.jsx)("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,s.jsx)("circle",{cx:"22",cy:"22",r:"8",children:(0,s.jsx)("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"})})]})})}):null}var c=n(6921),u=n(3102);function d(e,t){if("*"===e)return o()({loading:l,loader:()=>n.e(2237).then(n.bind(n,2237)),modules:["@theme/NotFound"],webpack:()=>[2237],render(e,t){const n=e.default;return(0,s.jsx)(u.W,{value:{plugin:{name:"native",id:"default"}},children:(0,s.jsx)(n,{...t})})}});const r=a[`${e}-${t}`],d={},f=[],p=[],m=(0,c.A)(r);return Object.entries(m).forEach((e=>{let[t,n]=e;const r=i[n];r&&(d[t]=r[0],f.push(r[1]),p.push(r[2]))})),o().Map({loading:l,loader:d,modules:f,webpack:()=>p,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 s=n.split(".");s.slice(0,-1).forEach((e=>{i=i[e]})),i[s[s.length-1]]=a}));const a=o.__comp;delete o.__comp;const i=o.__context;return delete o.__context,(0,s.jsx)(u.W,{value:i,children:(0,s.jsx)(a,{...o,...n})})}})}const f=[{path:"/markdown-page",component:d("/markdown-page","722"),exact:!0},{path:"/docs",component:d("/docs","017"),routes:[{path:"/docs",component:d("/docs","3a8"),routes:[{path:"/docs",component:d("/docs","5cf"),routes:[{path:"/docs/category/commands",component:d("/docs/category/commands","17f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/category/core",component:d("/docs/category/core","7ee"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/category/development-process",component:d("/docs/category/development-process","c16"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/category/facades",component:d("/docs/category/facades","9d1"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/category/factories",component:d("/docs/category/factories","096"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/category/library-structure",component:d("/docs/category/library-structure","41a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/category/models",component:d("/docs/category/models","3e0"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/category/resources",component:d("/docs/category/resources","0c2"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/category/support",component:d("/docs/category/support","7b0"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/category/testing",component:d("/docs/category/testing","027"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/category/views",component:d("/docs/category/views","bd6"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/changelog",component:d("/docs/changelog","fe5"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/development-process/deployment",component:d("/docs/development-process/deployment","75e"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/development-process/discovery",component:d("/docs/development-process/discovery","edb"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/development-process/implementation",component:d("/docs/development-process/implementation","769"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/development-process/overview",component:d("/docs/development-process/overview","011"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/intro",component:d("/docs/intro","aed"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/library-structure/build",component:d("/docs/library-structure/build","d0f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/library-structure/docs",component:d("/docs/library-structure/docs","4a2"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/library-structure/import",component:d("/docs/library-structure/import","85d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/library-structure/luadocs",component:d("/docs/library-structure/luadocs","b3f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/library-structure/overview",component:d("/docs/library-structure/overview","f3d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/resources/commands/command",component:d("/docs/resources/commands/command","67e"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/resources/commands/commands-handler",component:d("/docs/resources/commands/commands-handler","cfd"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/resources/commands/overview",component:d("/docs/resources/commands/overview","917"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/resources/core/addon-properties",component:d("/docs/resources/core/addon-properties","6b8"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/resources/core/classes",component:d("/docs/resources/core/classes","8ba"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/resources/core/configuration",component:d("/docs/resources/core/configuration","ed2"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/resources/core/environment",component:d("/docs/resources/core/environment","ec9"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/resources/core/factory",component:d("/docs/resources/core/factory","81a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/resources/core/output",component:d("/docs/resources/core/output","023"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/resources/facades/events",component:d("/docs/resources/facades/events","067"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/resources/facades/target",component:d("/docs/resources/facades/target","05a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/resources/facades/tooltip",component:d("/docs/resources/facades/tooltip","0ef"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/resources/factories/item-factory",component:d("/docs/resources/factories/item-factory","48b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/resources/models/container",component:d("/docs/resources/models/container","3f5"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/resources/models/inventory",component:d("/docs/resources/models/inventory","c21"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/resources/models/item",component:d("/docs/resources/models/item","5ed"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/resources/models/macro",component:d("/docs/resources/models/macro","f5a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/resources/models/overview",component:d("/docs/resources/models/overview","0ad"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/resources/models/player",component:d("/docs/resources/models/player","663"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/resources/models/raid-marker",component:d("/docs/resources/models/raid-marker","d9a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/resources/models/realm",component:d("/docs/resources/models/realm","a7a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/resources/support/arr",component:d("/docs/resources/support/arr","81a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/resources/support/bool",component:d("/docs/resources/support/bool","2f2"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/resources/support/str",component:d("/docs/resources/support/str","875"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/resources/views/window",component:d("/docs/resources/views/window","76d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/testing/api-mocks",component:d("/docs/testing/api-mocks","8ad"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/testing/test-classes",component:d("/docs/testing/test-classes","d49"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/testing/unit-suite",component:d("/docs/testing/unit-suite","1ad"),exact:!0,sidebar:"tutorialSidebar"}]}]}]},{path:"/",component:d("/","6ff"),exact:!0},{path:"*",component:d("*")}]},6125:(e,t,n)=>{"use strict";n.d(t,{o:()=>a,x:()=>i});var r=n(6540),o=n(4848);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})}},8536:(e,t,n)=>{"use strict";var r=n(6540),o=n(5338),a=n(4625),i=n(545),s=n(8193);const l=[n(296),n(119),n(6134),n(6294),n(1043)];var c=n(8328),u=n(6347),d=n(2831),f=n(4848);function p(e){let{children:t}=e;return(0,f.jsx)(f.Fragment,{children:t})}var m=n(5260),g=n(4586),h=n(6025),y=n(6342),b=n(1003),v=n(2131),w=n(4090),k=n(2967),x=n(440),S=n(1463);function E(){const{i18n:{currentLocale:e,defaultLocale:t,localeConfigs:n}}=(0,g.A)(),r=(0,v.o)(),o=n[e].htmlLang,a=e=>e.replace("-","_");return(0,f.jsxs)(m.A,{children:[Object.entries(n).map((e=>{let[t,{htmlLang:n}]=e;return(0,f.jsx)("link",{rel:"alternate",href:r.createUrl({locale:t,fullyQualified:!0}),hrefLang:n},t)})),(0,f.jsx)("link",{rel:"alternate",href:r.createUrl({locale:t,fullyQualified:!0}),hrefLang:"x-default"}),(0,f.jsx)("meta",{property:"og:locale",content:a(o)}),Object.values(n).filter((e=>o!==e.htmlLang)).map((e=>(0,f.jsx)("meta",{property:"og:locale:alternate",content:a(e.htmlLang)},`meta-og-${e.htmlLang}`)))]})}function _(e){let{permalink:t}=e;const{siteConfig:{url:n}}=(0,g.A)(),r=function(){const{siteConfig:{url:e,baseUrl:t,trailingSlash:n}}=(0,g.A)(),{pathname:r}=(0,u.zy)();return e+(0,x.applyTrailingSlash)((0,h.A)(r),{trailingSlash:n,baseUrl:t})}(),o=t?`${n}${t}`:r;return(0,f.jsxs)(m.A,{children:[(0,f.jsx)("meta",{property:"og:url",content:o}),(0,f.jsx)("link",{rel:"canonical",href:o})]})}function C(){const{i18n:{currentLocale:e}}=(0,g.A)(),{metadata:t,image:n}=(0,y.p)();return(0,f.jsxs)(f.Fragment,{children:[(0,f.jsxs)(m.A,{children:[(0,f.jsx)("meta",{name:"twitter:card",content:"summary_large_image"}),(0,f.jsx)("body",{className:w.w})]}),n&&(0,f.jsx)(b.be,{image:n}),(0,f.jsx)(_,{}),(0,f.jsx)(E,{}),(0,f.jsx)(S.A,{tag:k.Cy,locale:e}),(0,f.jsx)(m.A,{children:t.map(((e,t)=>(0,f.jsx)("meta",{...e},t)))})]})}const A=new Map;function T(e){if(A.has(e.pathname))return{...e,pathname:A.get(e.pathname)};if((0,d.u)(c.A,e.pathname).some((e=>{let{route:t}=e;return!0===t.exact})))return A.set(e.pathname,e.pathname),e;const t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return A.set(e.pathname,t),{...e,pathname:t}}var N=n(6125),j=n(6988),L=n(205);function P(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 O=function(e){let{children:t,location:n,previousLocation:r}=e;return(0,L.A)((()=>{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}),P("onRouteDidUpdate",{previousLocation:r,location:n}))}),[r,n]),t};function R(e){const t=Array.from(new Set([e,decodeURI(e)])).map((e=>(0,d.u)(c.A,e))).flat();return Promise.all(t.map((e=>e.route.component.preload?.())))}class I extends r.Component{previousLocation;routeUpdateCleanupCb;constructor(e){super(e),this.previousLocation=null,this.routeUpdateCleanupCb=s.A.canUseDOM?P("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=P("onRouteUpdate",{previousLocation:this.previousLocation,location:n}),R(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,f.jsx)(O,{previousLocation:this.previousLocation,location:t,children:(0,f.jsx)(u.qh,{location:t,render:()=>e})})}}const F=I,D="__docusaurus-base-url-issue-banner-container",M="__docusaurus-base-url-issue-banner",z="__docusaurus-base-url-issue-banner-suggestion-container";function B(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 = '${D}';\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(6921);const Z=new Set,X=new Set,J=()=>navigator.connection?.effectiveType.includes("2g")||navigator.connection?.saveData,ee={prefetch(e){if(!(e=>!J()&&!X.has(e)&&!Z.has(e))(e))return!1;Z.add(e);const t=(0,d.u)(c.A,e).flatMap((e=>{return t=e.route.path,Object.entries(Y).filter((e=>{let[n]=e;return n.replace(/-[^-]+$/,"")===t})).flatMap((e=>{let[,t]=e;return Object.values((0,K.A)(t))}));var t}));return Promise.all(t.map((e=>{const t=n.gca(e);return t&&!t.includes("undefined")?Q(t).catch((()=>{})):Promise.resolve()})))},preload:e=>!!(e=>!J()&&!X.has(e))(e)&&(X.add(e),R(e))},te=Object.freeze(ee),ne=Boolean(!0);if(s.A.canUseDOM){window.docusaurus=te;const e=document.getElementById("__docusaurus"),t=(0,f.jsx)(i.vd,{children:(0,f.jsx)(a.Kd,{children:(0,f.jsx)(q,{})})}),n=(e,t)=>{console.error("Docusaurus React Root onRecoverableError:",e,t)},s=()=>{if(ne)r.startTransition((()=>{o.hydrateRoot(e,t,{onRecoverableError:n})}));else{const a=o.createRoot(e,{onRecoverableError:n});r.startTransition((()=>{a.render(t)}))}};R(window.location.pathname).then(s)}},6988:(e,t,n)=>{"use strict";n.d(t,{o:()=>d,l:()=>f});var r=n(6540),o=n(4784);const a=JSON.parse('{"docusaurus-plugin-google-gtag":{"default":{"trackingID":["G-0B1BP482KV"],"anonymizeIP":true,"id":"default"}},"docusaurus-plugin-content-docs":{"default":{"path":"/docs","versions":[{"name":"current","label":"Next","isLast":true,"path":"/docs","mainDocId":"intro","docs":[{"id":"changelog","path":"/docs/changelog","sidebar":"tutorialSidebar"},{"id":"development-process/deployment","path":"/docs/development-process/deployment","sidebar":"tutorialSidebar"},{"id":"development-process/discovery","path":"/docs/development-process/discovery","sidebar":"tutorialSidebar"},{"id":"development-process/implementation","path":"/docs/development-process/implementation","sidebar":"tutorialSidebar"},{"id":"development-process/overview","path":"/docs/development-process/overview","sidebar":"tutorialSidebar"},{"id":"intro","path":"/docs/intro","sidebar":"tutorialSidebar"},{"id":"library-structure/build","path":"/docs/library-structure/build","sidebar":"tutorialSidebar"},{"id":"library-structure/docs","path":"/docs/library-structure/docs","sidebar":"tutorialSidebar"},{"id":"library-structure/import","path":"/docs/library-structure/import","sidebar":"tutorialSidebar"},{"id":"library-structure/luadocs","path":"/docs/library-structure/luadocs","sidebar":"tutorialSidebar"},{"id":"library-structure/overview","path":"/docs/library-structure/overview","sidebar":"tutorialSidebar"},{"id":"resources/commands/command","path":"/docs/resources/commands/command","sidebar":"tutorialSidebar"},{"id":"resources/commands/commands-handler","path":"/docs/resources/commands/commands-handler","sidebar":"tutorialSidebar"},{"id":"resources/commands/overview","path":"/docs/resources/commands/overview","sidebar":"tutorialSidebar"},{"id":"resources/core/addon-properties","path":"/docs/resources/core/addon-properties","sidebar":"tutorialSidebar"},{"id":"resources/core/classes","path":"/docs/resources/core/classes","sidebar":"tutorialSidebar"},{"id":"resources/core/configuration","path":"/docs/resources/core/configuration","sidebar":"tutorialSidebar"},{"id":"resources/core/environment","path":"/docs/resources/core/environment","sidebar":"tutorialSidebar"},{"id":"resources/core/factory","path":"/docs/resources/core/factory","sidebar":"tutorialSidebar"},{"id":"resources/core/output","path":"/docs/resources/core/output","sidebar":"tutorialSidebar"},{"id":"resources/facades/events","path":"/docs/resources/facades/events","sidebar":"tutorialSidebar"},{"id":"resources/facades/target","path":"/docs/resources/facades/target","sidebar":"tutorialSidebar"},{"id":"resources/facades/tooltip","path":"/docs/resources/facades/tooltip","sidebar":"tutorialSidebar"},{"id":"resources/factories/item-factory","path":"/docs/resources/factories/item-factory","sidebar":"tutorialSidebar"},{"id":"resources/models/container","path":"/docs/resources/models/container","sidebar":"tutorialSidebar"},{"id":"resources/models/inventory","path":"/docs/resources/models/inventory","sidebar":"tutorialSidebar"},{"id":"resources/models/item","path":"/docs/resources/models/item","sidebar":"tutorialSidebar"},{"id":"resources/models/macro","path":"/docs/resources/models/macro","sidebar":"tutorialSidebar"},{"id":"resources/models/overview","path":"/docs/resources/models/overview","sidebar":"tutorialSidebar"},{"id":"resources/models/player","path":"/docs/resources/models/player","sidebar":"tutorialSidebar"},{"id":"resources/models/raid-marker","path":"/docs/resources/models/raid-marker","sidebar":"tutorialSidebar"},{"id":"resources/models/realm","path":"/docs/resources/models/realm","sidebar":"tutorialSidebar"},{"id":"resources/support/arr","path":"/docs/resources/support/arr","sidebar":"tutorialSidebar"},{"id":"resources/support/bool","path":"/docs/resources/support/bool","sidebar":"tutorialSidebar"},{"id":"resources/support/str","path":"/docs/resources/support/str","sidebar":"tutorialSidebar"},{"id":"resources/views/window","path":"/docs/resources/views/window","sidebar":"tutorialSidebar"},{"id":"testing/api-mocks","path":"/docs/testing/api-mocks","sidebar":"tutorialSidebar"},{"id":"testing/test-classes","path":"/docs/testing/test-classes","sidebar":"tutorialSidebar"},{"id":"testing/unit-suite","path":"/docs/testing/unit-suite","sidebar":"tutorialSidebar"},{"id":"/category/development-process","path":"/docs/category/development-process","sidebar":"tutorialSidebar"},{"id":"/category/library-structure","path":"/docs/category/library-structure","sidebar":"tutorialSidebar"},{"id":"/category/resources","path":"/docs/category/resources","sidebar":"tutorialSidebar"},{"id":"/category/commands","path":"/docs/category/commands","sidebar":"tutorialSidebar"},{"id":"/category/core","path":"/docs/category/core","sidebar":"tutorialSidebar"},{"id":"/category/facades","path":"/docs/category/facades","sidebar":"tutorialSidebar"},{"id":"/category/factories","path":"/docs/category/factories","sidebar":"tutorialSidebar"},{"id":"/category/models","path":"/docs/category/models","sidebar":"tutorialSidebar"},{"id":"/category/support","path":"/docs/category/support","sidebar":"tutorialSidebar"},{"id":"/category/views","path":"/docs/category/views","sidebar":"tutorialSidebar"},{"id":"/category/testing","path":"/docs/category/testing","sidebar":"tutorialSidebar"}],"draftIds":[],"sidebars":{"tutorialSidebar":{"link":{"path":"/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 s=n(2654);const l=JSON.parse('{"docusaurusVersion":"3.1.1","siteVersion":"0.0.0","pluginVersions":{"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"3.1.1"},"docusaurus-plugin-content-blog":{"type":"package","name":"@docusaurus/plugin-content-blog","version":"3.1.1"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"3.1.1"},"docusaurus-plugin-google-gtag":{"type":"package","name":"@docusaurus/plugin-google-gtag","version":"3.1.1"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"3.1.1"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"3.1.1"}}}');var c=n(4848);const u={siteConfig:o.default,siteMetadata:l,globalData:a,i18n:i,codeTranslations:s},d=r.createContext(u);function f(e){let{children:t}=e;return(0,c.jsx)(d.Provider,{value:u,children:t})}},7489:(e,t,n)=>{"use strict";n.d(t,{A:()=>p});var r=n(6540),o=n(8193),a=n(5260),i=n(440),s=n(781),l=n(4848);function c(e){let{error:t,tryAgain:n}=e;return(0,l.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,l.jsx)("h1",{style:{fontSize:"3rem"},children:"This page crashed"}),(0,l.jsx)("button",{type:"button",onClick:n,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"},children:"Try again"}),(0,l.jsx)(u,{error:t})]})}function u(e){let{error:t}=e;const n=(0,i.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return(0,l.jsx)("p",{style:{whiteSpace:"pre-wrap"},children:n})}function d(e){let{error:t,tryAgain:n}=e;return(0,l.jsxs)(p,{fallback:()=>(0,l.jsx)(c,{error:t,tryAgain:n}),children:[(0,l.jsx)(a.A,{children:(0,l.jsx)("title",{children:"Page Error"})}),(0,l.jsx)(s.A,{children:(0,l.jsx)(c,{error:t,tryAgain:n})})]})}const f=e=>(0,l.jsx)(d,{...e});class p extends r.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){o.A.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??f)(e)}return e??null}}},8193:(e,t,n)=>{"use strict";n.d(t,{A:()=>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}},5260:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});n(6540);var r=n(545),o=n(4848);function a(e){return(0,o.jsx)(r.mg,{...e})}},8774:(e,t,n)=>{"use strict";n.d(t,{A:()=>p});var r=n(6540),o=n(4625),a=n(440),i=n(4586),s=n(6654),l=n(8193),c=n(3427),u=n(6025),d=n(4848);function f(e,t){let{isNavLink:n,to:f,href:p,activeClassName:m,isActive:g,"data-noBrokenLinkCheck":h,autoAddBaseUrl:y=!0,...b}=e;const{siteConfig:{trailingSlash:v,baseUrl:w}}=(0,i.A)(),{withBaseUrl:k}=(0,u.h)(),x=(0,c.A)(),S=(0,r.useRef)(null);(0,r.useImperativeHandle)(t,(()=>S.current));const E=f||p;const _=(0,s.A)(E),C=E?.replace("pathname://","");let A=void 0!==C?(T=C,y&&(e=>e.startsWith("/"))(T)?k(T):T):void 0;var T;A&&_&&(A=(0,a.applyTrailingSlash)(A,{trailingSlash:v,baseUrl:w}));const N=(0,r.useRef)(!1),j=n?o.k2:o.N_,L=l.A.canUseIntersectionObserver,P=(0,r.useRef)(),O=()=>{N.current||null==A||(window.docusaurus.preload(A),N.current=!0)};(0,r.useEffect)((()=>(!L&&_&&null!=A&&window.docusaurus.prefetch(A),()=>{L&&P.current&&P.current.disconnect()})),[P,A,L,_]);const R=A?.startsWith("#")??!1,I=!b.target||"_self"===b.target,F=!A||!_||!I||R;return h||!R&&F||x.collectLink(A),b.id&&x.collectAnchor(b.id),F?(0,d.jsx)("a",{ref:S,href:A,...E&&!_&&{target:"_blank",rel:"noopener noreferrer"},...b}):(0,d.jsx)(j,{...b,onMouseEnter:O,onTouchStart:O,innerRef:e=>{S.current=e,L&&e&&_&&(P.current=new window.IntersectionObserver((t=>{t.forEach((t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(P.current.unobserve(e),P.current.disconnect(),null!=A&&window.docusaurus.prefetch(A))}))})),P.current.observe(e))},to:A,...n&&{isActive:g,activeClassName:m}})}const p=r.forwardRef(f)},418:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});const r=()=>null},1312:(e,t,n)=>{"use strict";n.d(t,{A:()=>c,T:()=>l});var r=n(6540),o=n(4848);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(2654);function s(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 l(e,t){let{message:n,id:r}=e;return a(s({message:n,id:r}),t)}function c(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=s({message:t,id:n});return(0,o.jsx)(o.Fragment,{children:a(i,r)})}},7065:(e,t,n)=>{"use strict";n.d(t,{W:()=>r});const r="default"},6654:(e,t,n)=>{"use strict";function r(e){return/^(?:\w*:|\/\/)/.test(e)}function o(e){return void 0!==e&&!r(e)}n.d(t,{A:()=>o,z:()=>r})},6025:(e,t,n)=>{"use strict";n.d(t,{A:()=>s,h:()=>i});var r=n(6540),o=n(4586),a=n(6654);function i(){const{siteConfig:{baseUrl:e,url:t}}=(0,o.A)(),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.z)(n))return n;if(o)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;const s=n.startsWith(t)?n:t+n.replace(/^\//,"");return i?e+s:s}(t,e,n,r)),[t,e]);return{withBaseUrl:n}}function s(e,t){void 0===t&&(t={});const{withBaseUrl:n}=i();return n(e,t)}},3427:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r=n(6540);n(4848);const o=r.createContext({collectAnchor:()=>{},collectLink:()=>{}}),a=()=>(0,r.useContext)(o);function i(){return a()}},4586:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var r=n(6540),o=n(6988);function a(){return(0,r.useContext)(o.o)}},2303:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var r=n(6540),o=n(6125);function a(){return(0,r.useContext)(o.o)}},205:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});var r=n(6540);const o=n(8193).A.canUseDOM?r.useLayoutEffect:r.useEffect},6921:(e,t,n)=>{"use strict";n.d(t,{A:()=>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 s=o?`${o}.${a}`:a;r(i)?e(i,s):t[s]=i}))}(e),t}},3102:(e,t,n)=>{"use strict";n.d(t,{W:()=>i,o:()=>a});var r=n(6540),o=n(4848);const a=r.createContext(null);function i(e){let{children:t,value:n}=e;const i=r.useContext(a),s=(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:s,children:t})}},4070:(e,t,n)=>{"use strict";n.d(t,{zK:()=>g,vT:()=>f,Gy:()=>u,HW:()=>h,ht:()=>d,r7:()=>m,jh:()=>p});var r=n(6347),o=n(4586),a=n(7065);function i(e,t){void 0===t&&(t={});const n=function(){const{globalData:e}=(0,o.A)();return e}()[e];if(!n&&t.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin.`);return n}const s=e=>e.versions.find((e=>e.isLast));function l(e,t){const n=function(e,t){const n=s(e);return[...e.versions.filter((e=>e!==n)),n].find((e=>!!(0,r.B6)(t,{path:e.path,exact:!1,strict:!1})))}(e,t),o=n?.docs.find((e=>!!(0,r.B6)(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 c={},u=()=>i("docusaurus-plugin-content-docs")??c,d=e=>function(e,t,n){void 0===t&&(t=a.W),void 0===n&&(n={});const r=i(e),o=r?.[t];if(!o&&n.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin with id "${t}".`);return o}("docusaurus-plugin-content-docs",e,{failfast:!0});function f(e){void 0===e&&(e={});const t=u(),{pathname:n}=(0,r.zy)();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.B6)(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){return d(e).versions}function m(e){const t=d(e);return s(t)}function g(e){const t=d(e),{pathname:n}=(0,r.zy)();return l(t,n)}function h(e){const t=d(e),{pathname:n}=(0,r.zy)();return function(e,t){const n=s(e);return{latestDocSuggestion:l(e,t).alternateDocVersions[n.name],latestVersionSuggestion:n}}(t,n)}},296:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={onRouteDidUpdate(e){let{location:t,previousLocation:n}=e;!n||t.pathname===n.pathname&&t.search===n.search&&t.hash===n.hash||setTimeout((()=>{window.gtag("set","page_path",t.pathname+t.search+t.hash),window.gtag("event","page_view")}))}}},6294:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a});var r=n(5947),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()}}},6134:(e,t,n)=>{"use strict";n.r(t);var r=n(1765),o=n(4784);!function(e){const{themeConfig:{prism:t}}=o.default,{additionalLanguages:r}=t;globalThis.Prism=e,r.forEach((e=>{"php"===e&&n(9700),n(2719)(`./prism-${e}`)})),delete globalThis.Prism}(r.My)},1107:(e,t,n)=>{"use strict";n.d(t,{A:()=>u});n(6540);var r=n(4164),o=n(1312),a=n(6342),i=n(8774),s=n(3427);const l={anchorWithStickyNavbar:"anchorWithStickyNavbar_LWe7",anchorWithHideOnScrollNavbar:"anchorWithHideOnScrollNavbar_WYt5"};var c=n(4848);function u(e){let{as:t,id:n,...u}=e;const d=(0,s.A)(),{navbar:{hideOnScroll:f}}=(0,a.p)();if("h1"===t||!n)return(0,c.jsx)(t,{...u,id:void 0});d.collectAnchor(n);const p=(0,o.T)({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,c.jsxs)(t,{...u,className:(0,r.A)("anchor",f?l.anchorWithHideOnScrollNavbar:l.anchorWithStickyNavbar,u.className),id:n,children:[u.children,(0,c.jsx)(i.A,{className:"hash-link",to:`#${n}`,"aria-label":p,title:p,children:"\u200b"})]})}},3186:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});n(6540);const r={iconExternalLink:"iconExternalLink_nPIU"};var o=n(4848);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"})})}},781:(e,t,n)=>{"use strict";n.d(t,{A:()=>pt});var r=n(6540),o=n(4164),a=n(7489),i=n(1003),s=n(6347),l=n(1312),c=n(5062),u=n(4848);const d="__docusaurus_skipToContent_fallback";function f(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}function p(){const e=(0,r.useRef)(null),{action:t}=(0,s.W6)(),n=(0,r.useCallback)((e=>{e.preventDefault();const t=document.querySelector("main:first-of-type")??document.getElementById(d);t&&f(t)}),[]);return(0,c.$)((n=>{let{location:r}=n;e.current&&!r.hash&&"PUSH"===t&&f(e.current)})),{containerRef:e,onClick:n}}const m=(0,l.T)({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 g(e){const t=e.children??m,{containerRef:n,onClick:r}=p();return(0,u.jsx)("div",{ref:n,role:"region","aria-label":m,children:(0,u.jsx)("a",{...e,href:`#${d}`,onClick:r,children:t})})}var h=n(7559),y=n(4090);const b={skipToContent:"skipToContent_fXgn"};function v(){return(0,u.jsx)(g,{className:b.skipToContent})}var w=n(6342),k=n(5041);function x(e){let{width:t=21,height:n=21,color:r="currentColor",strokeWidth:o=1.2,className:a,...i}=e;return(0,u.jsx)("svg",{viewBox:"0 0 15 15",width:t,height:n,...i,children:(0,u.jsx)("g",{stroke:r,strokeWidth:o,children:(0,u.jsx)("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})})})}const S={closeButton:"closeButton_CVFx"};function E(e){return(0,u.jsx)("button",{type:"button","aria-label":(0,l.T)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"}),...e,className:(0,o.A)("clean-btn close",S.closeButton,e.className),children:(0,u.jsx)(x,{width:14,height:14,strokeWidth:3.1})})}const _={content:"content_knG7"};function C(e){const{announcementBar:t}=(0,w.p)(),{content:n}=t;return(0,u.jsx)("div",{...e,className:(0,o.A)(_.content,e.className),dangerouslySetInnerHTML:{__html:n}})}const A={announcementBar:"announcementBar_mb4j",announcementBarPlaceholder:"announcementBarPlaceholder_vyr4",announcementBarClose:"announcementBarClose_gvF7",announcementBarContent:"announcementBarContent_xLdY"};function T(){const{announcementBar:e}=(0,w.p)(),{isActive:t,close:n}=(0,k.Mj)();if(!t)return null;const{backgroundColor:r,textColor:o,isCloseable:a}=e;return(0,u.jsxs)("div",{className:A.announcementBar,style:{backgroundColor:r,color:o},role:"banner",children:[a&&(0,u.jsx)("div",{className:A.announcementBarPlaceholder}),(0,u.jsx)(C,{className:A.announcementBarContent}),a&&(0,u.jsx)(E,{onClick:n,className:A.announcementBarClose})]})}var N=n(9876),j=n(3104);var L=n(9532),P=n(5600);const O=r.createContext(null);function R(e){let{children:t}=e;const n=function(){const e=(0,N.M)(),t=(0,P.YL)(),[n,o]=(0,r.useState)(!1),a=null!==t.component,i=(0,L.ZC)(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,u.jsx)(O.Provider,{value:n,children:t})}function I(e){if(e.component){const t=e.component;return(0,u.jsx)(t,{...e.props})}}function F(){const e=(0,r.useContext)(O);if(!e)throw new L.dV("NavbarSecondaryMenuDisplayProvider");const[t,n]=e,o=(0,r.useCallback)((()=>n(!1)),[n]),a=(0,P.YL)();return(0,r.useMemo)((()=>({shown:t,hide:o,content:I(a)})),[o,a,t])}function D(e){let{header:t,primaryMenu:n,secondaryMenu:r}=e;const{shown:a}=F();return(0,u.jsxs)("div",{className:"navbar-sidebar",children:[t,(0,u.jsxs)("div",{className:(0,o.A)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":a}),children:[(0,u.jsx)("div",{className:"navbar-sidebar__item menu",children:n}),(0,u.jsx)("div",{className:"navbar-sidebar__item menu",children:r})]})]})}var M=n(5293),z=n(2303);function B(e){return(0,u.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,u.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 $(e){return(0,u.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,u.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 U={toggle:"toggle_vylO",toggleButton:"toggleButton_gllP",darkToggleIcon:"darkToggleIcon_wfgR",lightToggleIcon:"lightToggleIcon_pyhR",toggleButtonDisabled:"toggleButtonDisabled_aARS"};function H(e){let{className:t,buttonClassName:n,value:r,onChange:a}=e;const i=(0,z.A)(),s=(0,l.T)({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,l.T)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,l.T)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"})});return(0,u.jsx)("div",{className:(0,o.A)(U.toggle,t),children:(0,u.jsxs)("button",{className:(0,o.A)("clean-btn",U.toggleButton,!i&&U.toggleButtonDisabled,n),type:"button",onClick:()=>a("dark"===r?"light":"dark"),disabled:!i,title:s,"aria-label":s,"aria-live":"polite",children:[(0,u.jsx)(B,{className:(0,o.A)(U.toggleIcon,U.lightToggleIcon)}),(0,u.jsx)($,{className:(0,o.A)(U.toggleIcon,U.darkToggleIcon)})]})})}const V=r.memo(H),W={darkNavbarColorModeToggle:"darkNavbarColorModeToggle_X3D1"};function G(e){let{className:t}=e;const n=(0,w.p)().navbar.style,r=(0,w.p)().colorMode.disableSwitch,{colorMode:o,setColorMode:a}=(0,M.G)();return r?null:(0,u.jsx)(V,{className:t,buttonClassName:"dark"===n?W.darkNavbarColorModeToggle:void 0,value:o,onChange:a})}var q=n(3465);function Y(){return(0,u.jsx)(q.A,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function Q(){const e=(0,N.M)();return(0,u.jsx)("button",{type:"button","aria-label":(0,l.T)({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,u.jsx)(x,{color:"var(--ifm-color-emphasis-600)"})})}function K(){return(0,u.jsxs)("div",{className:"navbar-sidebar__brand",children:[(0,u.jsx)(Y,{}),(0,u.jsx)(G,{className:"margin-right--md"}),(0,u.jsx)(Q,{})]})}var Z=n(8774),X=n(6025),J=n(6654);function ee(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}var te=n(3186);function ne(e){let{activeBasePath:t,activeBaseRegex:n,to:r,href:o,label:a,html:i,isDropdownLink:s,prependBaseUrlToHref:l,...c}=e;const d=(0,X.A)(r),f=(0,X.A)(t),p=(0,X.A)(o,{forcePrependBaseUrl:!0}),m=a&&o&&!(0,J.A)(o),g=i?{dangerouslySetInnerHTML:{__html:i}}:{children:(0,u.jsxs)(u.Fragment,{children:[a,m&&(0,u.jsx)(te.A,{...s&&{width:12,height:12}})]})};return o?(0,u.jsx)(Z.A,{href:l?p:o,...c,...g}):(0,u.jsx)(Z.A,{to:d,isNavLink:!0,...(t||n)&&{isActive:(e,t)=>n?ee(n,t.pathname):t.pathname.startsWith(f)},...c,...g})}function re(e){let{className:t,isDropdownItem:n=!1,...r}=e;const a=(0,u.jsx)(ne,{className:(0,o.A)(n?"dropdown__link":"navbar__item navbar__link",t),isDropdownLink:n,...r});return n?(0,u.jsx)("li",{children:a}):a}function oe(e){let{className:t,isDropdownItem:n,...r}=e;return(0,u.jsx)("li",{className:"menu__list-item",children:(0,u.jsx)(ne,{className:(0,o.A)("menu__link",t),...r})})}function ae(e){let{mobile:t=!1,position:n,...r}=e;const o=t?oe:re;return(0,u.jsx)(o,{...r,activeClassName:r.activeClassName??(t?"menu__link--active":"navbar__link--active")})}var ie=n(1422),se=n(9169),le=n(4586);const ce={dropdownNavbarItemMobile:"dropdownNavbarItemMobile_S0Fm"};function ue(e,t){return e.some((e=>function(e,t){return!!(0,se.ys)(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,...s}=e;const l=(0,r.useRef)(null),[c,d]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{const e=e=>{l.current&&!l.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)}}),[l]),(0,u.jsxs)("div",{ref:l,className:(0,o.A)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===n,"dropdown--show":c}),children:[(0,u.jsx)(ne,{"aria-haspopup":"true","aria-expanded":c,role:"button",href:s.to?void 0:"#",className:(0,o.A)("navbar__link",a),...s,onClick:s.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),d(!c))},children:s.children??s.label}),(0,u.jsx)("ul",{className:"dropdown__menu",children:t.map(((e,t)=>(0,r.createElement)(_e,{isDropdownItem:!0,activeClassName:"dropdown__link--active",...e,key:t})))})]})}function fe(e){let{items:t,className:n,position:a,onClick:i,...l}=e;const c=function(){const{siteConfig:{baseUrl:e}}=(0,le.A)(),{pathname:t}=(0,s.zy)();return t.replace(e,"/")}(),d=ue(t,c),{collapsed:f,toggleCollapsed:p,setCollapsed:m}=(0,ie.u)({initialState:()=>!d});return(0,r.useEffect)((()=>{d&&m(!d)}),[c,d,m]),(0,u.jsxs)("li",{className:(0,o.A)("menu__list-item",{"menu__list-item--collapsed":f}),children:[(0,u.jsx)(ne,{role:"button",className:(0,o.A)(ce.dropdownNavbarItemMobile,"menu__link menu__link--sublist menu__link--sublist-caret",n),...l,onClick:e=>{e.preventDefault(),p()},children:l.children??l.label}),(0,u.jsx)(ie.N,{lazy:!0,as:"ul",className:"menu__list",collapsed:f,children:t.map(((e,t)=>(0,r.createElement)(_e,{mobile:!0,isDropdownItem:!0,onClick:i,activeClassName:"menu__link--active",...e,key:t})))})]})}function pe(e){let{mobile:t=!1,...n}=e;const r=t?fe:de;return(0,u.jsx)(r,{...n})}var me=n(2131);function ge(e){let{width:t=20,height:n=20,...r}=e;return(0,u.jsx)("svg",{viewBox:"0 0 24 24",width:t,height:n,"aria-hidden":!0,...r,children:(0,u.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 he="iconLanguage_nlXk";var ye=n(418);const be={navbarSearchContainer:"navbarSearchContainer_Bca1"};function ve(e){let{children:t,className:n}=e;return(0,u.jsx)("div",{className:(0,o.A)(n,be.navbarSearchContainer),children:t})}var we=n(4070),ke=n(1754);var xe=n(5597);const Se=e=>e.docs.find((t=>t.id===e.mainDocId));const Ee={default:ae,localeDropdown:function(e){let{mobile:t,dropdownItemsBefore:n,dropdownItemsAfter:r,queryString:o="",...a}=e;const{i18n:{currentLocale:i,locales:c,localeConfigs:d}}=(0,le.A)(),f=(0,me.o)(),{search:p,hash:m}=(0,s.zy)(),g=[...n,...c.map((e=>{const n=`${`pathname://${f.createUrl({locale:e,fullyQualified:!1})}`}${p}${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],h=t?(0,l.T)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):d[i].label;return(0,u.jsx)(pe,{...a,mobile:t,label:(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(ge,{className:he}),h]}),items:g})},search:function(e){let{mobile:t,className:n}=e;return t?null:(0,u.jsx)(ve,{className:n,children:(0,u.jsx)(ye.A,{})})},dropdown:pe,html:function(e){let{value:t,className:n,mobile:r=!1,isDropdownItem:a=!1}=e;const i=a?"li":"div";return(0,u.jsx)(i,{className:(0,o.A)({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,we.zK)(r),i=(0,ke.QB)(t,r),s=a?.path===i?.path;return null===i||i.unlisted&&!s?null:(0,u.jsx)(ae,{exact:!0,...o,isActive:()=>s||!!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,we.zK)(r),i=(0,ke.fW)(t,r).link;if(!i)throw new Error(`DocSidebarNavbarItem: Sidebar with ID "${t}" doesn't have anything to be linked to.`);return(0,u.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,ke.Vd)(r)[0],i=t??a.label,s=n??(e=>e.docs.find((t=>t.id===e.mainDocId)))(a).path;return(0,u.jsx)(ae,{...o,label:i,to:s})},docsVersionDropdown:function(e){let{mobile:t,docsPluginId:n,dropdownActiveClassDisabled:r,dropdownItemsBefore:o,dropdownItemsAfter:a,...i}=e;const{search:c,hash:d}=(0,s.zy)(),f=(0,we.zK)(n),p=(0,we.jh)(n),{savePreferredVersionName:m}=(0,xe.g1)(n),g=[...o,...p.map((e=>{const t=f.alternateDocVersions[e.name]??Se(e);return{label:e.label,to:`${t.path}${c}${d}`,isActive:()=>e===f.activeVersion,onClick:()=>m(e.name)}})),...a],h=(0,ke.Vd)(n)[0],y=t&&g.length>1?(0,l.T)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):h.label,b=t&&g.length>1?void 0:Se(h).path;return g.length<=1?(0,u.jsx)(ae,{...i,mobile:t,label:y,to:b,isActive:r?()=>!1:void 0}):(0,u.jsx)(pe,{...i,mobile:t,label:y,to:b,items:g,isActive:r?()=>!1:void 0})}};function _e(e){let{type:t,...n}=e;const r=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(t,n),o=Ee[r];if(!o)throw new Error(`No NavbarItem component found for type "${t}".`);return(0,u.jsx)(o,{...n})}function Ce(){const e=(0,N.M)(),t=(0,w.p)().navbar.items;return(0,u.jsx)("ul",{className:"menu__list",children:t.map(((t,n)=>(0,r.createElement)(_e,{mobile:!0,...t,onClick:()=>e.toggle(),key:n})))})}function Ae(e){return(0,u.jsx)("button",{...e,type:"button",className:"clean-btn navbar-sidebar__back",children:(0,u.jsx)(l.A,{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 Te(){const e=0===(0,w.p)().navbar.items.length,t=F();return(0,u.jsxs)(u.Fragment,{children:[!e&&(0,u.jsx)(Ae,{onClick:()=>t.hide()}),t.content]})}function Ne(){const e=(0,N.M)();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,u.jsx)(D,{header:(0,u.jsx)(K,{}),primaryMenu:(0,u.jsx)(Ce,{}),secondaryMenu:(0,u.jsx)(Te,{})}):null}const je={navbarHideable:"navbarHideable_m1mJ",navbarHidden:"navbarHidden_jGov"};function Le(e){return(0,u.jsx)("div",{role:"presentation",...e,className:(0,o.A)("navbar-sidebar__backdrop",e.className)})}function Pe(e){let{children:t}=e;const{navbar:{hideOnScroll:n,style:a}}=(0,w.p)(),i=(0,N.M)(),{navbarRef:s,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,j.Mq)(((t,r)=>{let{scrollY:i}=t;if(!e)return;if(i=s?n(!1):i+c{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,u.jsxs)("nav",{ref:s,"aria-label":(0,l.T)({id:"theme.NavBar.navAriaLabel",message:"Main",description:"The ARIA label for the main navigation"}),className:(0,o.A)("navbar","navbar--fixed-top",n&&[je.navbarHideable,!d&&je.navbarHidden],{"navbar--dark":"dark"===a,"navbar--primary":"primary"===a,"navbar-sidebar--show":i.shown}),children:[t,(0,u.jsx)(Le,{onClick:i.toggle}),(0,u.jsx)(Ne,{})]})}var Oe=n(440);const Re={errorBoundaryError:"errorBoundaryError_a6uf",errorBoundaryFallback:"errorBoundaryFallback_VBag"};function Ie(e){return(0,u.jsx)("button",{type:"button",...e,children:(0,u.jsx)(l.A,{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 Fe(e){let{error:t}=e;const n=(0,Oe.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return(0,u.jsx)("p",{className:Re.errorBoundaryError,children:n})}class De extends r.Component{componentDidCatch(e,t){throw this.props.onError(e,t)}render(){return this.props.children}}const Me="right";function ze(e){let{width:t=30,height:n=30,className:r,...o}=e;return(0,u.jsx)("svg",{className:r,width:t,height:n,viewBox:"0 0 30 30","aria-hidden":"true",...o,children:(0,u.jsx)("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"})})}function Be(){const{toggle:e,shown:t}=(0,N.M)();return(0,u.jsx)("button",{onClick:e,"aria-label":(0,l.T)({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,u.jsx)(ze,{})})}const $e={colorModeToggle:"colorModeToggle_DEke"};function Ue(e){let{items:t}=e;return(0,u.jsx)(u.Fragment,{children:t.map(((e,t)=>(0,u.jsx)(De,{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,u.jsx)(_e,{...e})},t)))})}function He(e){let{left:t,right:n}=e;return(0,u.jsxs)("div",{className:"navbar__inner",children:[(0,u.jsx)("div",{className:"navbar__items",children:t}),(0,u.jsx)("div",{className:"navbar__items navbar__items--right",children:n})]})}function Ve(){const e=(0,N.M)(),t=(0,w.p)().navbar.items,[n,r]=function(e){function t(e){return"left"===(e.position??Me)}return[e.filter(t),e.filter((e=>!t(e)))]}(t),o=t.find((e=>"search"===e.type));return(0,u.jsx)(He,{left:(0,u.jsxs)(u.Fragment,{children:[!e.disabled&&(0,u.jsx)(Be,{}),(0,u.jsx)(Y,{}),(0,u.jsx)(Ue,{items:n})]}),right:(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(Ue,{items:r}),(0,u.jsx)(G,{className:$e.colorModeToggle}),!o&&(0,u.jsx)(ve,{children:(0,u.jsx)(ye.A,{})})]})})}function We(){return(0,u.jsx)(Pe,{children:(0,u.jsx)(Ve,{})})}function Ge(e){let{item:t}=e;const{to:n,href:r,label:o,prependBaseUrlToHref:a,...i}=t,s=(0,X.A)(n),l=(0,X.A)(r,{forcePrependBaseUrl:!0});return(0,u.jsxs)(Z.A,{className:"footer__link-item",...r?{href:a?l:r}:{to:s},...i,children:[o,r&&!(0,J.A)(r)&&(0,u.jsx)(te.A,{})]})}function qe(e){let{item:t}=e;return t.html?(0,u.jsx)("li",{className:"footer__item",dangerouslySetInnerHTML:{__html:t.html}}):(0,u.jsx)("li",{className:"footer__item",children:(0,u.jsx)(Ge,{item:t})},t.href??t.to)}function Ye(e){let{column:t}=e;return(0,u.jsxs)("div",{className:"col footer__col",children:[(0,u.jsx)("div",{className:"footer__title",children:t.title}),(0,u.jsx)("ul",{className:"footer__items clean-list",children:t.items.map(((e,t)=>(0,u.jsx)(qe,{item:e},t)))})]})}function Qe(e){let{columns:t}=e;return(0,u.jsx)("div",{className:"row footer__links",children:t.map(((e,t)=>(0,u.jsx)(Ye,{column:e},t)))})}function Ke(){return(0,u.jsx)("span",{className:"footer__link-separator",children:"\xb7"})}function Ze(e){let{item:t}=e;return t.html?(0,u.jsx)("span",{className:"footer__link-item",dangerouslySetInnerHTML:{__html:t.html}}):(0,u.jsx)(Ge,{item:t})}function Xe(e){let{links:t}=e;return(0,u.jsx)("div",{className:"footer__links text--center",children:(0,u.jsx)("div",{className:"footer__links",children:t.map(((e,n)=>(0,u.jsxs)(r.Fragment,{children:[(0,u.jsx)(Ze,{item:e}),t.length!==n+1&&(0,u.jsx)(Ke,{})]},n)))})})}function Je(e){let{links:t}=e;return function(e){return"title"in e[0]}(t)?(0,u.jsx)(Qe,{columns:t}):(0,u.jsx)(Xe,{links:t})}var et=n(1122);const tt={footerLogoLink:"footerLogoLink_BH7S"};function nt(e){let{logo:t}=e;const{withBaseUrl:n}=(0,X.h)(),r={light:n(t.src),dark:n(t.srcDark??t.src)};return(0,u.jsx)(et.A,{className:(0,o.A)("footer__logo",t.className),alt:t.alt,sources:r,width:t.width,height:t.height,style:t.style})}function rt(e){let{logo:t}=e;return t.href?(0,u.jsx)(Z.A,{href:t.href,className:tt.footerLogoLink,target:t.target,children:(0,u.jsx)(nt,{logo:t})}):(0,u.jsx)(nt,{logo:t})}function ot(e){let{copyright:t}=e;return(0,u.jsx)("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:t}})}function at(e){let{style:t,links:n,logo:r,copyright:a}=e;return(0,u.jsx)("footer",{className:(0,o.A)("footer",{"footer--dark":"dark"===t}),children:(0,u.jsxs)("div",{className:"container container-fluid",children:[n,(r||a)&&(0,u.jsxs)("div",{className:"footer__bottom text--center",children:[r&&(0,u.jsx)("div",{className:"margin-bottom--sm",children:r}),a]})]})})}function it(){const{footer:e}=(0,w.p)();if(!e)return null;const{copyright:t,links:n,logo:r,style:o}=e;return(0,u.jsx)(at,{style:o,links:n&&n.length>0&&(0,u.jsx)(Je,{links:n}),logo:r&&(0,u.jsx)(rt,{logo:r}),copyright:t&&(0,u.jsx)(ot,{copyright:t})})}const st=r.memo(it),lt=(0,L.fM)([M.a,k.oq,j.Tv,xe.VQ,i.Jx,function(e){let{children:t}=e;return(0,u.jsx)(P.y_,{children:(0,u.jsx)(N.e,{children:(0,u.jsx)(R,{children:t})})})}]);function ct(e){let{children:t}=e;return(0,u.jsx)(lt,{children:t})}var ut=n(1107);function dt(e){let{error:t,tryAgain:n}=e;return(0,u.jsx)("main",{className:"container margin-vert--xl",children:(0,u.jsx)("div",{className:"row",children:(0,u.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,u.jsx)(ut.A,{as:"h1",className:"hero__title",children:(0,u.jsx)(l.A,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed",children:"This page crashed."})}),(0,u.jsx)("div",{className:"margin-vert--lg",children:(0,u.jsx)(Ie,{onClick:n,className:"button button--primary shadow--lw"})}),(0,u.jsx)("hr",{}),(0,u.jsx)("div",{className:"margin-vert--md",children:(0,u.jsx)(Fe,{error:t})})]})})})}const ft={mainWrapper:"mainWrapper_z2l0"};function pt(e){const{children:t,noFooter:n,wrapperClassName:r,title:s,description:l}=e;return(0,y.J)(),(0,u.jsxs)(ct,{children:[(0,u.jsx)(i.be,{title:s,description:l}),(0,u.jsx)(v,{}),(0,u.jsx)(T,{}),(0,u.jsx)(We,{}),(0,u.jsx)("div",{id:d,className:(0,o.A)(h.G.wrapper.main,ft.mainWrapper,r),children:(0,u.jsx)(a.A,{fallback:e=>(0,u.jsx)(dt,{...e}),children:t})}),!n&&(0,u.jsx)(st,{})]})}},3465:(e,t,n)=>{"use strict";n.d(t,{A:()=>u});n(6540);var r=n(8774),o=n(6025),a=n(4586),i=n(6342),s=n(1122),l=n(4848);function c(e){let{logo:t,alt:n,imageClassName:r}=e;const a={light:(0,o.A)(t.src),dark:(0,o.A)(t.srcDark||t.src)},i=(0,l.jsx)(s.A,{className:t.className,sources:a,height:t.height,width:t.width,alt:n,style:t.style});return r?(0,l.jsx)("div",{className:r,children:i}):i}function u(e){const{siteConfig:{title:t}}=(0,a.A)(),{navbar:{title:n,logo:s}}=(0,i.p)(),{imageClassName:u,titleClassName:d,...f}=e,p=(0,o.A)(s?.href||"/"),m=n?"":t,g=s?.alt??m;return(0,l.jsxs)(r.A,{to:p,...f,...s?.target&&{target:s.target},children:[s&&(0,l.jsx)(c,{logo:s,alt:g,imageClassName:u}),null!=n&&(0,l.jsx)("b",{className:d,children:n})]})}},1463:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});n(6540);var r=n(5260),o=n(4848);function a(e){let{locale:t,version:n,tag:a}=e;const i=t;return(0,o.jsxs)(r.A,{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})]})}},1122:(e,t,n)=>{"use strict";n.d(t,{A:()=>u});var r=n(6540),o=n(4164),a=n(2303),i=n(5293);const s={themedComponent:"themedComponent_mlkZ","themedComponent--light":"themedComponent--light_NVdE","themedComponent--dark":"themedComponent--dark_xIcU"};var l=n(4848);function c(e){let{className:t,children:n}=e;const c=(0,a.A)(),{colorMode:u}=(0,i.G)();return(0,l.jsx)(l.Fragment,{children:(c?"dark"===u?["dark"]:["light"]:["light","dark"]).map((e=>{const a=n({theme:e,className:(0,o.A)(t,s.themedComponent,s[`themedComponent--${e}`])});return(0,l.jsx)(r.Fragment,{children:a},e)}))})}function u(e){const{sources:t,className:n,alt:r,...o}=e;return(0,l.jsx)(c,{className:n,children:e=>{let{theme:n,className:a}=e;return(0,l.jsx)("img",{src:t[n],alt:r,className:a,...o})}})}},1422:(e,t,n)=>{"use strict";n.d(t,{N:()=>y,u:()=>c});var r=n(6540),o=n(8193),a=n(205),i=n(3109),s=n(4848);const l="ease-in-out";function c(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 u={display:"none",overflow:"hidden",height:"0px"},d={display:"block",overflow:"visible",height:"auto"};function f(e,t){const n=t?u:d;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function p(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.O)())return 1;const t=e/36;return Math.round(10*(4+15*t**.25+t/5))}(t);return{transition:`height ${n}ms ${o?.easing??l}`,height:`${t}px`}}function s(){const t=r();e.style.transition=t.transition,e.style.height=t.height}if(!a.current)return f(e,n),void(a.current=!0);return e.style.willChange="height",function(){const t=requestAnimationFrame((()=>{n?(s(),requestAnimationFrame((()=>{e.style.height=u.height,e.style.overflow=u.overflow}))):(e.style.display="block",requestAnimationFrame((()=>{s()})))}));return()=>cancelAnimationFrame(t)}()}),[t,n,o])}function m(e){if(!o.A.canUseDOM)return e?u:d}function g(e){let{as:t="div",collapsed:n,children:o,animation:a,onCollapseTransitionEnd:i,className:l,disableSSRStyle:c}=e;const u=(0,r.useRef)(null);return p({collapsibleRef:u,collapsed:n,animation:a}),(0,s.jsx)(t,{ref:u,style:c?void 0:m(n),onTransitionEnd:e=>{"height"===e.propertyName&&(f(u.current,n),i?.(n))},className:l,children:o})}function h(e){let{collapsed:t,...n}=e;const[o,i]=(0,r.useState)(!t),[l,c]=(0,r.useState)(t);return(0,a.A)((()=>{t||i(!0)}),[t]),(0,a.A)((()=>{o&&c(t)}),[o,t]),o?(0,s.jsx)(g,{...n,collapsed:l}):null}function y(e){let{lazy:t,...n}=e;const r=t?h:g;return(0,s.jsx)(r,{...n})}},5041:(e,t,n)=>{"use strict";n.d(t,{Mj:()=>g,oq:()=>m});var r=n(6540),o=n(2303),a=n(9466),i=n(9532),s=n(6342),l=n(4848);const c=(0,a.Wf)("docusaurus.announcement.dismiss"),u=(0,a.Wf)("docusaurus.announcement.id"),d=()=>"true"===c.get(),f=e=>c.set(String(e)),p=r.createContext(null);function m(e){let{children:t}=e;const n=function(){const{announcementBar:e}=(0,s.p)(),t=(0,o.A)(),[n,a]=(0,r.useState)((()=>!!t&&d()));(0,r.useEffect)((()=>{a(d())}),[]);const i=(0,r.useCallback)((()=>{f(!0),a(!0)}),[]);return(0,r.useEffect)((()=>{if(!e)return;const{id:t}=e;let n=u.get();"annoucement-bar"===n&&(n="announcement-bar");const r=t!==n;u.set(t),r&&f(!1),!r&&d()||a(!1)}),[e]),(0,r.useMemo)((()=>({isActive:!!e&&!n,close:i})),[e,n,i])}();return(0,l.jsx)(p.Provider,{value:n,children:t})}function g(){const e=(0,r.useContext)(p);if(!e)throw new i.dV("AnnouncementBarProvider");return e}},5293:(e,t,n)=>{"use strict";n.d(t,{G:()=>y,a:()=>h});var r=n(6540),o=n(8193),a=n(9532),i=n(9466),s=n(6342),l=n(4848);const c=r.createContext(void 0),u="theme",d=(0,i.Wf)(u),f={light:"light",dark:"dark"},p=e=>e===f.dark?f.dark:f.light,m=e=>o.A.canUseDOM?p(document.documentElement.getAttribute("data-theme")):p(e),g=e=>{d.set(p(e))};function h(e){let{children:t}=e;const n=function(){const{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,s.p)(),[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&&g(t)):(a(n?window.matchMedia("(prefers-color-scheme: dark)").matches?f.dark:f.light:e),d.del())}),[n,e]);(0,r.useEffect)((()=>{document.documentElement.setAttribute("data-theme",p(o))}),[o]),(0,r.useEffect)((()=>{if(t)return;const e=e=>{if(e.key!==u)return;const t=d.get();null!==t&&i(p(t))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)}),[t,i]);const l=(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||l.current?l.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===f.dark},setLightTheme(){i(f.light)},setDarkTheme(){i(f.dark)}})),[o,i])}();return(0,l.jsx)(c.Provider,{value:n,children:t})}function y(){const e=(0,r.useContext)(c);if(null==e)throw new a.dV("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},5597:(e,t,n)=>{"use strict";n.d(t,{VQ:()=>y,g1:()=>v});var r=n(6540),o=n(4070),a=n(7065),i=n(6342),s=n(1754),l=n(9532),c=n(9466),u=n(4848);const d=e=>`docs-preferred-version-${e}`,f={save:(e,t,n)=>{(0,c.Wf)(d(e),{persistence:t}).set(n)},read:(e,t)=>(0,c.Wf)(d(e),{persistence:t}).get(),clear:(e,t)=>{(0,c.Wf)(d(e),{persistence:t}).del()}},p=e=>Object.fromEntries(e.map((e=>[e,{preferredVersionName:null}])));const m=r.createContext(null);function g(){const e=(0,o.Gy)(),t=(0,i.p)().docs.versionPersistence,n=(0,r.useMemo)((()=>Object.keys(e)),[e]),[a,s]=(0,r.useState)((()=>p(n)));(0,r.useEffect)((()=>{s(function(e){let{pluginIds:t,versionPersistence:n,allDocsData:r}=e;function o(e){const t=f.read(e,n);return r[e].versions.some((e=>e.name===t))?{preferredVersionName:t}:(f.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){f.save(e,t,n),s((t=>({...t,[e]:{preferredVersionName:n}})))}})),[t])]}function h(e){let{children:t}=e;const n=g();return(0,u.jsx)(m.Provider,{value:n,children:t})}function y(e){let{children:t}=e;return s.C5?(0,u.jsx)(h,{children:t}):(0,u.jsx)(u.Fragment,{children:t})}function b(){const e=(0,r.useContext)(m);if(!e)throw new l.dV("DocsPreferredVersionContextProvider");return e}function v(e){void 0===e&&(e=a.W);const t=(0,o.ht)(e),[n,i]=b(),{preferredVersionName:s}=n[e];return{preferredVersion:t.versions.find((e=>e.name===s))??null,savePreferredVersionName:(0,r.useCallback)((t=>{i.savePreferredVersion(e,t)}),[i,e])}}},6588:(e,t,n)=>{"use strict";n.d(t,{V:()=>l,t:()=>c});var r=n(6540),o=n(9532),a=n(4848);const i=Symbol("EmptyContext"),s=r.createContext(i);function l(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)(s.Provider,{value:i,children:t})}function c(){const e=(0,r.useContext)(s);if(e===i)throw new o.dV("DocsSidebarProvider");return e}},2252:(e,t,n)=>{"use strict";n.d(t,{n:()=>s,r:()=>l});var r=n(6540),o=n(9532),a=n(4848);const i=r.createContext(null);function s(e){let{children:t,version:n}=e;return(0,a.jsx)(i.Provider,{value:n,children:t})}function l(){const e=(0,r.useContext)(i);if(null===e)throw new o.dV("DocsVersionProvider");return e}},9876:(e,t,n)=>{"use strict";n.d(t,{e:()=>p,M:()=>m});var r=n(6540),o=n(5600),a=n(4581),i=n(6347),s=n(9532);function l(e){!function(e){const t=(0,i.W6)(),n=(0,s._q)(e);(0,r.useEffect)((()=>t.block(((e,t)=>n(e,t)))),[t,n])}(((t,n)=>{if("POP"===n)return e(t,n)}))}var c=n(6342),u=n(4848);const d=r.createContext(void 0);function f(){const e=function(){const e=(0,o.YL)(),{items:t}=(0,c.p)().navbar;return 0===t.length&&!e.component}(),t=(0,a.l)(),n=!e&&"mobile"===t,[i,s]=(0,r.useState)(!1);l((()=>{if(i)return s(!1),!1}));const u=(0,r.useCallback)((()=>{s((e=>!e))}),[]);return(0,r.useEffect)((()=>{"desktop"===t&&s(!1)}),[t]),(0,r.useMemo)((()=>({disabled:e,shouldRender:n,toggle:u,shown:i})),[e,n,u,i])}function p(e){let{children:t}=e;const n=f();return(0,u.jsx)(d.Provider,{value:n,children:t})}function m(){const e=r.useContext(d);if(void 0===e)throw new s.dV("NavbarMobileSidebarProvider");return e}},5600:(e,t,n)=>{"use strict";n.d(t,{GX:()=>c,YL:()=>l,y_:()=>s});var r=n(6540),o=n(9532),a=n(4848);const i=r.createContext(null);function s(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 l(){const e=(0,r.useContext)(i);if(!e)throw new o.dV("NavbarSecondaryMenuContentProvider");return e[0]}function c(e){let{component:t,props:n}=e;const a=(0,r.useContext)(i);if(!a)throw new o.dV("NavbarSecondaryMenuContentProvider");const[,s]=a,l=(0,o.Be)(n);return(0,r.useEffect)((()=>{s({component:t,props:l})}),[s,t,l]),(0,r.useEffect)((()=>()=>s({component:null,props:null})),[s]),null}},4090:(e,t,n)=>{"use strict";n.d(t,{w:()=>o,J:()=>a});var r=n(6540);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)}}),[])}},4581:(e,t,n)=>{"use strict";n.d(t,{l:()=>s});var r=n(6540),o=n(8193);const a={desktop:"desktop",mobile:"mobile",ssr:"ssr"},i=996;function s(e){let{desktopBreakpoint:t=i}=void 0===e?{}:e;const[n,s]=(0,r.useState)((()=>"ssr"));return(0,r.useEffect)((()=>{function e(){s(function(e){if(!o.A.canUseDOM)throw new Error("getWindowSize() should only be called after React hydration");return window.innerWidth>e?a.desktop:a.mobile}(t))}return e(),window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e)}}),[t]),n}},7559:(e,t,n)=>{"use strict";n.d(t,{G:()=>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:{}}},3109:(e,t,n)=>{"use strict";function r(){return window.matchMedia("(prefers-reduced-motion: reduce)").matches}n.d(t,{O:()=>r})},1754:(e,t,n)=>{"use strict";n.d(t,{d1:()=>A,Nr:()=>m,w8:()=>b,C5:()=>f,$S:()=>g,cC:()=>p,B5:()=>C,Vd:()=>S,QB:()=>_,fW:()=>E,OF:()=>x,Y:()=>w});var r=n(6540),o=n(6347),a=n(2831),i=n(4070),s=n(5597),l=n(2252),c=n(6588);function u(e){return Array.from(new Set(e))}var d=n(9169);const f=!!i.Gy;function p(e){const t=(0,l.r)();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 g(){const{pathname:e}=(0,o.zy)(),t=(0,c.t)();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 h=(e,t)=>void 0!==e&&(0,d.ys)(e,t),y=(e,t)=>e.some((e=>b(e,t)));function b(e,t){return"link"===e.type?h(e.href,t):"category"===e.type&&(h(e.href,t)||y(e.items,t))}function v(e,t){switch(e.type){case"category":return b(e,t)||e.items.some((e=>v(e,t)));case"link":return!e.unlisted||b(e,t);default:return!0}}function w(e,t){return(0,r.useMemo)((()=>e.filter((e=>v(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.ys)(a.href,n)||e(a.items))||"link"===a.type&&(0,d.ys)(a.href,n)){return r&&"category"!==a.type||o.unshift(a),!0}return!1}(t),o}function x(){const e=(0,c.t)(),{pathname:t}=(0,o.zy)(),n=(0,i.vT)()?.pluginData.breadcrumbs;return!1!==n&&e?k({sidebarItems:e.items,pathname:t}):null}function S(e){const{activeVersion:t}=(0,i.zK)(e),{preferredVersion:n}=(0,s.g1)(e),o=(0,i.r7)(e);return(0,r.useMemo)((()=>u([t,n,o].filter(Boolean))),[t,n,o])}function E(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,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- ${u(t.map((e=>e.id))).join("\n- ")}`)}return r}),[e,n])}function C(e){let{route:t}=e;const n=(0,o.zy)(),r=(0,l.r)(),i=t.routes,s=i.find((e=>(0,o.B6)(n.pathname,e)));if(!s)return null;const c=s.sidebar,u=c?r.docsSidebars[c]:void 0;return{docElement:(0,a.v)(i),sidebarName:c,sidebarItems:u}}function A(e){return e.filter((e=>!("category"===e.type||"link"===e.type)||!!m(e)))}},1003:(e,t,n)=>{"use strict";n.d(t,{e3:()=>p,be:()=>d,Jx:()=>m});var r=n(6540),o=n(4164),a=n(5260),i=n(3102);function s(){const e=r.useContext(i.o);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}var l=n(6025),c=n(4586);var u=n(4848);function d(e){let{title:t,description:n,keywords:r,image:o,children:i}=e;const s=function(e){const{siteConfig:t}=(0,c.A)(),{title:n,titleDelimiter:r}=t;return e?.trim().length?`${e.trim()} ${r} ${n}`:n}(t),{withBaseUrl:d}=(0,l.h)(),f=o?d(o,{absolute:!0}):void 0;return(0,u.jsxs)(a.A,{children:[t&&(0,u.jsx)("title",{children:s}),t&&(0,u.jsx)("meta",{property:"og:title",content:s}),n&&(0,u.jsx)("meta",{name:"description",content:n}),n&&(0,u.jsx)("meta",{property:"og:description",content:n}),r&&(0,u.jsx)("meta",{name:"keywords",content:Array.isArray(r)?r.join(","):r}),f&&(0,u.jsx)("meta",{property:"og:image",content:f}),f&&(0,u.jsx)("meta",{name:"twitter:image",content:f}),i]})}const f=r.createContext(void 0);function p(e){let{className:t,children:n}=e;const i=r.useContext(f),s=(0,o.A)(i,t);return(0,u.jsxs)(f.Provider,{value:s,children:[(0,u.jsx)(a.A,{children:(0,u.jsx)("html",{className:s})}),n]})}function m(e){let{children:t}=e;const n=s(),r=`plugin-${n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,"")}`;const a=`plugin-id-${n.plugin.id}`;return(0,u.jsx)(p,{className:(0,o.A)(r,a),children:t})}},9532:(e,t,n)=>{"use strict";n.d(t,{Be:()=>c,ZC:()=>s,_q:()=>i,dV:()=>l,fM:()=>u});var r=n(6540),o=n(205),a=n(4848);function i(e){const t=(0,r.useRef)(e);return(0,o.A)((()=>{t.current=e}),[e]),(0,r.useCallback)((function(){return t.current(...arguments)}),[])}function s(e){const t=(0,r.useRef)();return(0,o.A)((()=>{t.current=e})),t.current}class l 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 c(e){const t=Object.entries(e);return t.sort(((e,t)=>e[0].localeCompare(t[0]))),(0,r.useMemo)((()=>e),t.flat())}function u(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)})}}},9169:(e,t,n)=>{"use strict";n.d(t,{Dt:()=>s,ys:()=>i});var r=n(6540),o=n(8328),a=n(4586);function i(e,t){const n=e=>(!e||e.endsWith("/")?e:`${e}/`)?.toLowerCase();return n(e)===n(t)}function s(){const{baseUrl:e}=(0,a.A)().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.A,baseUrl:e})),[e])}},3104:(e,t,n)=>{"use strict";n.d(t,{Mq:()=>f,Tv:()=>c,gk:()=>p});var r=n(6540),o=n(8193),a=n(2303),i=(n(205),n(9532)),s=n(4848);const l=r.createContext(void 0);function c(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,s.jsx)(l.Provider,{value:n,children:t})}function u(){const e=(0,r.useContext)(l);if(null==e)throw new i.dV("ScrollControllerProvider");return e}const d=()=>o.A.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null;function f(e,t){void 0===t&&(t=[]);const{scrollEventsEnabledRef:n}=u(),o=(0,r.useRef)(d()),a=(0,i._q)(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 p(){const e=(0,r.useRef)(null),t=(0,a.A)()&&"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?.()}}},2967:(e,t,n)=>{"use strict";n.d(t,{Cy:()=>r,tU:()=>o});n(4586);const r="default";function o(e,t){return`docs-${e}-${t}`}},9466:(e,t,n)=>{"use strict";n.d(t,{Wf:()=>l});n(6540);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 s={get:()=>null,set:()=>{},del:()=>{},listen:()=>()=>{}};function l(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?s:{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),()=>{}}}}}},2131:(e,t,n)=>{"use strict";n.d(t,{o:()=>i});var r=n(4586),o=n(6347),a=n(440);function i(){const{siteConfig:{baseUrl:e,url:t,trailingSlash:n},i18n:{defaultLocale:i,currentLocale:s}}=(0,r.A)(),{pathname:l}=(0,o.zy)(),c=(0,a.applyTrailingSlash)(l,{trailingSlash:n,baseUrl:e}),u=s===i?e:e.replace(`/${s}/`,"/"),d=c.replace(e,"");return{createUrl:function(e){let{locale:n,fullyQualified:r}=e;return`${r?t:""}${function(e){return e===i?`${u}`:`${u}${e}/`}(n)}${d}`}}}},5062:(e,t,n)=>{"use strict";n.d(t,{$:()=>i});var r=n(6540),o=n(6347),a=n(9532);function i(e){const t=(0,o.zy)(),n=(0,a.ZC)(t),i=(0,a._q)(e);(0,r.useEffect)((()=>{n&&t!==n&&i({location:t,previousLocation:n})}),[i,t,n])}},6342:(e,t,n)=>{"use strict";n.d(t,{p:()=>o});var r=n(4586);function o(){return(0,r.A)().siteConfig.themeConfig}},2983:(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)}},253:(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]}},440: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(2983);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return r(o).default}});var a=n(253);Object.defineProperty(t,"getErrorCausalChain",{enumerable:!0,get:function(){return a.getErrorCausalChain}})},1513:(e,t,n)=>{"use strict";n.d(t,{zR:()=>w,TM:()=>C,yJ:()=>p,sC:()=>T,AO:()=>f});var r=n(8168);function o(e){return"/"===e.charAt(0)}function a(e,t){for(var n=t,r=n+1,o=e.length;r=0;f--){var p=i[f];"."===p?a(i,f):".."===p?(a(i,f),d++):d&&(a(i,f),d--)}if(!c)for(;d--;d)i.unshift("..");!c||""===i[0]||i[0]&&o(i[0])||i.unshift("");var m=i.join("/");return n&&"/"!==m.substr(-1)&&(m+="/"),m};var s=n(1561);function l(e){return"/"===e.charAt(0)?e:"/"+e}function c(e){return"/"===e.charAt(0)?e.substr(1):e}function u(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 f(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 p(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.A)({},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(s){throw s instanceof URIError?new URIError('Pathname "'+a.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):s}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=p(e,t,g(),w.location);u.confirmTransitionTo(o,r,n,(function(e){e&&(w.entries[w.index]=o,d({action:r,location:o}))}))},go:v,goBack:function(){v(-1)},goForward:function(){v(1)},canGo:function(e){var t=w.index+e;return t>=0&&t{"use strict";var r=n(4363),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},s={};function l(e){return r.isMemo(e)?i:s[e.$$typeof]||o}s[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},s[r.Memo]=i;var c=Object.defineProperty,u=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,f=Object.getOwnPropertyDescriptor,p=Object.getPrototypeOf,m=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(m){var o=p(n);o&&o!==m&&e(t,o,r)}var i=u(n);d&&(i=i.concat(d(n)));for(var s=l(t),g=l(n),h=0;h{"use strict";e.exports=function(e,t,n,r,o,a,i,s){if(!e){var l;if(void 0===t)l=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var c=[n,r,o,a,i,s],u=0;(l=new Error(t.replace(/%s/g,(function(){return c[u++]})))).name="Invariant Violation"}throw l.framesToPop=1,l}}},4634:e=>{e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},119:(e,t,n)=>{"use strict";n.r(t)},1043:(e,t,n)=>{"use strict";n.r(t)},5947: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),c=a.querySelector(r.barSelector),u=r.speed,d=r.easing;return a.offsetWidth,s((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),l(c,i(e,u,d)),1===e?(l(a,{transition:"none",opacity:1}),a.offsetWidth,setTimeout((function(){l(a,{transition:"all "+u+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),u)}),u)):setTimeout(t,u)})),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");u(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var o,i=t.querySelector(r.barSelector),s=e?"-100":a(n.status||0),c=document.querySelector(r.parent);return l(i,{transition:"all 0 linear",transform:"translate3d("+s+"%,0,0)"}),r.showSpinner||(o=t.querySelector(r.spinnerSelector))&&p(o),c!=document.body&&u(c,"nprogress-custom-parent"),c.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&&p(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 s=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),l=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 c(e,t){return("string"==typeof e?e:f(e)).indexOf(" "+t+" ")>=0}function u(e,t){var n=f(e),r=n+t;c(n,t)||(e.className=r.substring(1))}function d(e,t){var n,r=f(e);c(e,t)&&(n=r.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function f(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function p(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)},5302:(e,t,n)=>{var r=n(4634);e.exports=p,e.exports.parse=a,e.exports.compile=function(e,t){return s(a(e,t),t)},e.exports.tokensToFunction=s,e.exports.tokensToRegExp=f;var o=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function a(e,t){for(var n,r=[],a=0,i=0,s="",u=t&&t.delimiter||"/";null!=(n=o.exec(e));){var d=n[0],f=n[1],p=n.index;if(s+=e.slice(i,p),i=p+d.length,f)s+=f[1];else{var m=e[i],g=n[2],h=n[3],y=n[4],b=n[5],v=n[6],w=n[7];s&&(r.push(s),s="");var k=null!=g&&null!=m&&m!==g,x="+"===v||"*"===v,S="?"===v||"*"===v,E=n[2]||u,_=y||b;r.push({name:h||a++,prefix:g||"",delimiter:E,optional:S,repeat:x,partial:k,asterisk:!!w,pattern:_?c(_):w?".*":"[^"+l(E)+"]+?"})}}return i{Prism.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},Prism.languages.webmanifest=Prism.languages.json},64:()=>{Prism.languages.lua={comment:/^#!.+|--(?:\[(=*)\[[\s\S]*?\]\1\]|.*)/m,string:{pattern:/(["'])(?:(?!\1)[^\\\r\n]|\\z(?:\r\n|\s)|\\(?:\r\n|[^z]))*\1|\[(=*)\[[\s\S]*?\]\2\]/,greedy:!0},number:/\b0x[a-f\d]+(?:\.[a-f\d]*)?(?:p[+-]?\d+)?\b|\b\d+(?:\.\B|(?:\.\d*)?(?:e[+-]?\d+)?\b)|\B\.\d+(?:e[+-]?\d+)?\b/i,keyword:/\b(?:and|break|do|else|elseif|end|false|for|function|goto|if|in|local|nil|not|or|repeat|return|then|true|until|while)\b/,function:/(?!\d)\w+(?=\s*(?:[({]))/,operator:[/[-+*%^&|#]|\/\/?|<[<=]?|>[>=]?|[=~]=?/,{pattern:/(^|[^.])\.\.(?!\.)/,lookbehind:!0}],punctuation:/[\[\](){},;]|\.+|:+/}},9700:()=>{!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,s=i.length;-1!==n.code.indexOf(o=t(r,s));)++s;return i[s]=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(s){for(var l=0;l=a.length);l++){var c=s[l];if("string"==typeof c||c.content&&"string"==typeof c.content){var u=a[o],d=n.tokenStack[u],f="string"==typeof c?c:c.content,p=t(r,u),m=f.indexOf(p);if(m>-1){++o;var g=f.substring(0,m),h=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),y=f.substring(m+p.length),b=[];g&&b.push.apply(b,i([g])),b.push(h),y&&b.push.apply(b,i([y])),"string"==typeof c?s.splice.apply(s,[l,1].concat(b)):c.content=b}}else c.content&&i(c.content)}return s}(n.tokens)}}}})}(Prism)},2719:(e,t,n)=>{var r={"./prism-json":2514,"./prism-lua":64};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=2719},2694:(e,t,n)=>{"use strict";var r=n(6925);function o(){}function a(){}a.resetWarningCache=o,e.exports=function(){function e(e,t,n,o,a,i){if(i!==r){var s=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 s.name="Invariant Violation",s}}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}},5556:(e,t,n)=>{e.exports=n(2694)()},6925:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},2551:(e,t,n)=>{"use strict";var r=n(6540),o=n(9982);function a(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n