diff --git a/404.html b/404.html index 0cb17a0..72e3973 100644 --- a/404.html +++ b/404.html @@ -5,8 +5,8 @@ Page Not Found - Posthoc - - + +
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/images/educational-99c9e27ef0ed905b58900f35399c299a.png b/assets/images/educational-99c9e27ef0ed905b58900f35399c299a.png deleted file mode 100644 index 14f6ec1..0000000 Binary files a/assets/images/educational-99c9e27ef0ed905b58900f35399c299a.png and /dev/null differ diff --git a/assets/js/00a4425a.1d78c59a.js b/assets/js/00a4425a.1d78c59a.js deleted file mode 100644 index d4bcfe3..0000000 --- a/assets/js/00a4425a.1d78c59a.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs_2=self.webpackChunkdocs_2||[]).push([[879],{528:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>l,contentTitle:()=>o,default:()=>c,frontMatter:()=>a,metadata:()=>r,toc:()=>d});var t=n(5893),i=n(1151);const a={sidebar_position:2},o="User Interface",r={id:"visualiser/3-1-user-guide/interface",title:"User Interface",description:"Posthoc's interface is made of composable panels. You can add, remove, and rearrange the UI to your desire. This allows Posthoc to support a range of tasks, whether you're using it to learn, showcase, or debug algorithms.",source:"@site/docs/3-visualiser/3-1-user-guide/interface.md",sourceDirName:"3-visualiser/3-1-user-guide",slug:"/visualiser/3-1-user-guide/interface",permalink:"/docs/visualiser/3-1-user-guide/interface",draft:!1,unlisted:!1,editUrl:"https://github.com/path-visualiser/path-visualiser.github.io/tree/master/docs/3-visualiser/3-1-user-guide/interface.md",tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"tutorialSidebar",previous:{title:"User Guide",permalink:"/docs/category/user-guide"},next:{title:"Viewport Panel",permalink:"/docs/visualiser/3-1-user-guide/viewport"}},l={},d=[{value:"Core Panels",id:"core-panels",level:2},{value:"Recipes",id:"recipes",level:3},{value:"Layers",id:"layers",level:3},{value:"Viewport",id:"viewport",level:3},{value:"Steps",id:"steps",level:3},{value:"Customising Panels",id:"customising-panels",level:2},{value:"Choosing Content for a Panel",id:"choosing-content-for-a-panel",level:3},{value:"Add and Remove Panels",id:"add-and-remove-panels",level:3}];function h(e){const s={a:"a",h1:"h1",h2:"h2",h3:"h3",img:"img",p:"p",...(0,i.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(s.h1,{id:"user-interface",children:"User Interface"}),"\n",(0,t.jsx)(s.p,{children:"Posthoc's interface is made of composable panels. You can add, remove, and rearrange the UI to your desire. This allows Posthoc to support a range of tasks, whether you're using it to learn, showcase, or debug algorithms."}),"\n",(0,t.jsx)(s.p,{children:(0,t.jsx)(s.img,{alt:"Alt text",src:n(3008).Z+"",width:"2560",height:"1528"})}),"\n",(0,t.jsx)(s.p,{children:(0,t.jsx)(s.img,{alt:"Alt text",src:n(9649).Z+"",width:"4146",height:"2475"})}),"\n",(0,t.jsx)(s.h2,{id:"core-panels",children:"Core Panels"}),"\n",(0,t.jsx)(s.p,{children:"When you first open Posthoc, it displays the following panels:"}),"\n",(0,t.jsx)(s.h3,{id:"recipes",children:"Recipes"}),"\n",(0,t.jsx)(s.h3,{id:"layers",children:"Layers"}),"\n",(0,t.jsx)(s.p,{children:"Allows you to inspect and edit the layers that are currently being rendered."}),"\n",(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.a,{href:"./layers",children:"See more information on the Layers Panel"}),"."]}),"\n",(0,t.jsx)(s.h3,{id:"viewport",children:"Viewport"}),"\n",(0,t.jsx)(s.p,{children:"Displays the visualisation."}),"\n",(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.a,{href:"./viewport",children:"See more information on the Viewport Panel"}),"."]}),"\n",(0,t.jsx)(s.h3,{id:"steps",children:"Steps"}),"\n",(0,t.jsx)(s.p,{children:"Displays the steps of the visualisation."}),"\n",(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.a,{href:"./steps",children:"See more information on the Steps Panel"}),"."]}),"\n",(0,t.jsx)(s.h2,{id:"customising-panels",children:"Customising Panels"}),"\n",(0,t.jsx)(s.h3,{id:"choosing-content-for-a-panel",children:"Choosing Content for a Panel"}),"\n",(0,t.jsx)(s.p,{children:"You can choose what content to display in a panel by clicking the dropdown menu on the top left."}),"\n",(0,t.jsx)(s.p,{children:(0,t.jsx)(s.img,{alt:"Alt text",src:n(5997).Z+"",width:"451",height:"495"})}),"\n",(0,t.jsx)(s.h3,{id:"add-and-remove-panels",children:"Add and Remove Panels"}),"\n",(0,t.jsx)(s.p,{children:"You can find panel controls in the extras menu on the top right. Add more panels by splitting existing menus horizontally or vertically."}),"\n",(0,t.jsx)(s.p,{children:(0,t.jsx)(s.img,{alt:"Alt text",src:n(5966).Z+"",width:"244",height:"192"})})]})}function c(e={}){const{wrapper:s}={...(0,i.a)(),...e.components};return s?(0,t.jsx)(s,{...e,children:(0,t.jsx)(h,{...e})}):h(e)}},9649:(e,s,n)=>{n.d(s,{Z:()=>t});const t=n.p+"assets/images/interface-labeled-cca3a57ed5099ce97c1cbddfbee0b902.png"},3008:(e,s,n)=>{n.d(s,{Z:()=>t});const t=n.p+"assets/images/interface-5436452833545d7e21767c1b4792e234.png"},5997:(e,s,n)=>{n.d(s,{Z:()=>t});const t=n.p+"assets/images/page-select-6cbee4a89c57a203477df1616ff60610.png"},5966:(e,s,n)=>{n.d(s,{Z:()=>t});const t="data:image/png;base64,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"},1151:(e,s,n)=>{n.d(s,{Z:()=>r,a:()=>o});var t=n(7294);const i={},a=t.createContext(i);function o(e){const s=t.useContext(a);return t.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function r(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),t.createElement(a.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/00a4425a.ef7811e8.js b/assets/js/00a4425a.ef7811e8.js new file mode 100644 index 0000000..e850072 --- /dev/null +++ b/assets/js/00a4425a.ef7811e8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_2=self.webpackChunkdocs_2||[]).push([[879],{528:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>r,contentTitle:()=>o,default:()=>c,frontMatter:()=>a,metadata:()=>l,toc:()=>d});var t=n(5893),i=n(1151);const a={sidebar_position:2},o="UI",l={id:"visualiser/3-1-user-guide/interface",title:"UI",description:"Posthoc's interface is made of composable panels. You can add, remove, and rearrange the UI to your desire. This allows Posthoc to support a range of tasks, whether you're using it to learn, showcase, or debug algorithms.",source:"@site/docs/3-visualiser/3-1-user-guide/interface.md",sourceDirName:"3-visualiser/3-1-user-guide",slug:"/visualiser/3-1-user-guide/interface",permalink:"/docs/visualiser/3-1-user-guide/interface",draft:!1,unlisted:!1,editUrl:"https://github.com/path-visualiser/path-visualiser.github.io/tree/master/docs/3-visualiser/3-1-user-guide/interface.md",tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"tutorialSidebar",previous:{title:"User Guide",permalink:"/docs/category/user-guide"},next:{title:"Viewport",permalink:"/docs/visualiser/3-1-user-guide/viewport"}},r={},d=[{value:"Core Panels",id:"core-panels",level:2},{value:"Recipes",id:"recipes",level:3},{value:"Layers",id:"layers",level:3},{value:"Viewport",id:"viewport",level:3},{value:"Steps",id:"steps",level:3},{value:"Customising Panels",id:"customising-panels",level:2},{value:"Choosing Content for a Panel",id:"choosing-content-for-a-panel",level:3},{value:"Add and Remove Panels",id:"add-and-remove-panels",level:3}];function h(e){const s={a:"a",h1:"h1",h2:"h2",h3:"h3",img:"img",p:"p",...(0,i.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(s.h1,{id:"ui",children:"UI"}),"\n",(0,t.jsx)(s.p,{children:"Posthoc's interface is made of composable panels. You can add, remove, and rearrange the UI to your desire. This allows Posthoc to support a range of tasks, whether you're using it to learn, showcase, or debug algorithms."}),"\n",(0,t.jsx)(s.p,{children:(0,t.jsx)(s.img,{alt:"Alt text",src:n(3008).Z+"",width:"2560",height:"1528"})}),"\n",(0,t.jsx)(s.p,{children:(0,t.jsx)(s.img,{alt:"Alt text",src:n(9649).Z+"",width:"4146",height:"2475"})}),"\n",(0,t.jsx)(s.h2,{id:"core-panels",children:"Core Panels"}),"\n",(0,t.jsx)(s.p,{children:"When you first open Posthoc, it displays the following panels:"}),"\n",(0,t.jsx)(s.h3,{id:"recipes",children:"Recipes"}),"\n",(0,t.jsx)(s.h3,{id:"layers",children:"Layers"}),"\n",(0,t.jsx)(s.p,{children:"Allows you to inspect and edit the layers that are currently being rendered."}),"\n",(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.a,{href:"./layers",children:"See more information on the Layers Panel"}),"."]}),"\n",(0,t.jsx)(s.h3,{id:"viewport",children:"Viewport"}),"\n",(0,t.jsx)(s.p,{children:"Displays the visualisation."}),"\n",(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.a,{href:"./viewport",children:"See more information on the Viewport Panel"}),"."]}),"\n",(0,t.jsx)(s.h3,{id:"steps",children:"Steps"}),"\n",(0,t.jsx)(s.p,{children:"Displays the steps of the visualisation."}),"\n",(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.a,{href:"./steps",children:"See more information on the Steps Panel"}),"."]}),"\n",(0,t.jsx)(s.h2,{id:"customising-panels",children:"Customising Panels"}),"\n",(0,t.jsx)(s.h3,{id:"choosing-content-for-a-panel",children:"Choosing Content for a Panel"}),"\n",(0,t.jsx)(s.p,{children:"You can choose what content to display in a panel by clicking the dropdown menu on the top left."}),"\n",(0,t.jsx)(s.p,{children:(0,t.jsx)(s.img,{alt:"Alt text",src:n(5997).Z+"",width:"451",height:"495"})}),"\n",(0,t.jsx)(s.h3,{id:"add-and-remove-panels",children:"Add and Remove Panels"}),"\n",(0,t.jsx)(s.p,{children:"You can find panel controls in the extras menu on the top right. Add more panels by splitting existing menus horizontally or vertically."}),"\n",(0,t.jsx)(s.p,{children:(0,t.jsx)(s.img,{alt:"Alt text",src:n(5966).Z+"",width:"244",height:"192"})})]})}function c(e={}){const{wrapper:s}={...(0,i.a)(),...e.components};return s?(0,t.jsx)(s,{...e,children:(0,t.jsx)(h,{...e})}):h(e)}},9649:(e,s,n)=>{n.d(s,{Z:()=>t});const t=n.p+"assets/images/interface-labeled-cca3a57ed5099ce97c1cbddfbee0b902.png"},3008:(e,s,n)=>{n.d(s,{Z:()=>t});const t=n.p+"assets/images/interface-5436452833545d7e21767c1b4792e234.png"},5997:(e,s,n)=>{n.d(s,{Z:()=>t});const t=n.p+"assets/images/page-select-6cbee4a89c57a203477df1616ff60610.png"},5966:(e,s,n)=>{n.d(s,{Z:()=>t});const t="data:image/png;base64,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"},1151:(e,s,n)=>{n.d(s,{Z:()=>l,a:()=>o});var t=n(7294);const i={},a=t.createContext(i);function o(e){const s=t.useContext(a);return t.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function l(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),t.createElement(a.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/1429b7e2.bd10fda3.js b/assets/js/1429b7e2.d5471d08.js similarity index 65% rename from assets/js/1429b7e2.bd10fda3.js rename to assets/js/1429b7e2.d5471d08.js index c383793..3ed8019 100644 --- a/assets/js/1429b7e2.bd10fda3.js +++ b/assets/js/1429b7e2.d5471d08.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs_2=self.webpackChunkdocs_2||[]).push([[8756],{3181:e=>{e.exports=JSON.parse('{"title":"User Guide","slug":"/category/user-guide","permalink":"/docs/category/user-guide","navigation":{"previous":{"title":"Overview","permalink":"/docs/visualiser/visualiser"},"next":{"title":"User Interface","permalink":"/docs/visualiser/3-1-user-guide/interface"}}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs_2=self.webpackChunkdocs_2||[]).push([[8756],{3181:e=>{e.exports=JSON.parse('{"title":"User Guide","slug":"/category/user-guide","permalink":"/docs/category/user-guide","navigation":{"previous":{"title":"Overview","permalink":"/docs/visualiser/overview"},"next":{"title":"UI","permalink":"/docs/visualiser/3-1-user-guide/interface"}}}')}}]); \ No newline at end of file diff --git a/assets/js/15503985.6ec9bcb4.js b/assets/js/15503985.6ec9bcb4.js deleted file mode 100644 index 074e7bf..0000000 --- a/assets/js/15503985.6ec9bcb4.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs_2=self.webpackChunkdocs_2||[]).push([[4626],{7387:(e,r,n)=>{n.r(r),n.d(r,{assets:()=>c,contentTitle:()=>d,default:()=>h,frontMatter:()=>t,metadata:()=>o,toc:()=>l});var i=n(5893),s=n(1151);const t={},d="Standard Renderers",o={id:"api/renderer/standard-renderers",title:"Standard Renderers",description:"Version 1.0.1",source:"@site/docs/6-api/renderer/standard-renderers.md",sourceDirName:"6-api/renderer",slug:"/api/renderer/standard-renderers",permalink:"/docs/api/renderer/standard-renderers",draft:!1,unlisted:!1,editUrl:"https://github.com/path-visualiser/path-visualiser.github.io/tree/master/docs/6-api/renderer/standard-renderers.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Pathfinding Posthoc Protocol",permalink:"/docs/api/renderer/protocol"},next:{title:"Overview",permalink:"/docs/api/overview"}},c={},l=[{value:"2D Renderer",id:"2d-renderer",level:2},{value:"Primitives",id:"primitives",level:3},{value:"Inbuilt Components",id:"inbuilt-components",level:3}];function a(e){const r={a:"a",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,s.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(r.h1,{id:"standard-renderers",children:"Standard Renderers"}),"\n",(0,i.jsx)(r.p,{children:(0,i.jsx)(r.em,{children:"Version 1.0.1"})}),"\n",(0,i.jsx)(r.p,{children:"This document defines all the standard renderers and details there main purposes/usages. All standard renderers will consist of a few intrinsic components which can be used by to user to visual the search traces."}),"\n",(0,i.jsx)(r.p,{children:"There are two types of intrinsic components,"}),"\n",(0,i.jsxs)(r.ul,{children:["\n",(0,i.jsxs)(r.li,{children:[(0,i.jsx)(r.code,{children:"Primitives"})," which are foundational components which can be used to construct more complex components (eg. rects, circles)"]}),"\n",(0,i.jsxs)(r.li,{children:[(0,i.jsx)(r.code,{children:"Inbuilts"})," these are predefined components for specific search formats like a ",(0,i.jsx)(r.code,{children:"grid"})," or ",(0,i.jsx)(r.code,{children:"tree"})," search view."]}),"\n"]}),"\n",(0,i.jsx)(r.p,{children:"When using either of the intrinsic components the exact structure/types of the components must be followed for the visualiser to correctly render your search trace."}),"\n",(0,i.jsx)(r.p,{children:"There is currently only one renderer implemented which is the 2D Renderer."}),"\n",(0,i.jsx)(r.h2,{id:"2d-renderer",children:"2D Renderer"}),"\n",(0,i.jsx)(r.p,{children:"The 2D Renderer is used for the rendering of two dimensional components. It is comprises of 4 Primitive and 4 Inbuilt components, which are briefly outlined below."}),"\n",(0,i.jsxs)(r.p,{children:["Refer to ",(0,i.jsx)(r.a,{href:"/docs/api/renderer/2D-renderer",children:"2D-renderer.md"})," for more specific details."]}),"\n",(0,i.jsx)(r.h3,{id:"primitives",children:"Primitives"}),"\n",(0,i.jsx)(r.p,{children:"There are 4 primitives which are used to visualise 2D pathfinding search traces which are"}),"\n",(0,i.jsxs)(r.ul,{children:["\n",(0,i.jsx)(r.li,{children:"Rectangles (rect)"}),"\n",(0,i.jsx)(r.li,{children:"Circles (circle)"}),"\n",(0,i.jsx)(r.li,{children:"Polygons (polygon)"}),"\n",(0,i.jsx)(r.li,{children:"Paths (path)"}),"\n"]}),"\n",(0,i.jsx)(r.h3,{id:"inbuilt-components",children:"Inbuilt Components"}),"\n",(0,i.jsx)(r.p,{children:"There are 4 predefined components for the 2D renderer these are,"}),"\n",(0,i.jsxs)(r.ul,{children:["\n",(0,i.jsx)(r.li,{children:"Grid"}),"\n",(0,i.jsx)(r.li,{children:"Road Network"}),"\n",(0,i.jsx)(r.li,{children:"Aurora Mesh"}),"\n",(0,i.jsx)(r.li,{children:"Tree"}),"\n"]})]})}function h(e={}){const{wrapper:r}={...(0,s.a)(),...e.components};return r?(0,i.jsx)(r,{...e,children:(0,i.jsx)(a,{...e})}):a(e)}},1151:(e,r,n)=>{n.d(r,{Z:()=>o,a:()=>d});var i=n(7294);const s={},t=i.createContext(s);function d(e){const r=i.useContext(t);return i.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function o(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:d(e.components),i.createElement(t.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/15503985.774e584a.js b/assets/js/15503985.774e584a.js new file mode 100644 index 0000000..0c249ec --- /dev/null +++ b/assets/js/15503985.774e584a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_2=self.webpackChunkdocs_2||[]).push([[4626],{7387:(e,r,n)=>{n.r(r),n.d(r,{assets:()=>c,contentTitle:()=>d,default:()=>h,frontMatter:()=>t,metadata:()=>o,toc:()=>a});var i=n(5893),s=n(1151);const t={},d="Standard Renderers",o={id:"api/renderer/standard-renderers",title:"Standard Renderers",description:"Version 1.0.1",source:"@site/docs/6-api/renderer/standard-renderers.md",sourceDirName:"6-api/renderer",slug:"/api/renderer/standard-renderers",permalink:"/docs/api/renderer/standard-renderers",draft:!1,unlisted:!1,editUrl:"https://github.com/path-visualiser/path-visualiser.github.io/tree/master/docs/6-api/renderer/standard-renderers.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Pathfinding Posthoc Protocol",permalink:"/docs/api/renderer/protocol"},next:{title:"Search Trace",permalink:"/docs/api/search-trace"}},c={},a=[{value:"2D Renderer",id:"2d-renderer",level:2},{value:"Primitives",id:"primitives",level:3},{value:"Inbuilt Components",id:"inbuilt-components",level:3}];function l(e){const r={a:"a",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,s.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(r.h1,{id:"standard-renderers",children:"Standard Renderers"}),"\n",(0,i.jsx)(r.p,{children:(0,i.jsx)(r.em,{children:"Version 1.0.1"})}),"\n",(0,i.jsx)(r.p,{children:"This document defines all the standard renderers and details there main purposes/usages. All standard renderers will consist of a few intrinsic components which can be used by to user to visual the search traces."}),"\n",(0,i.jsx)(r.p,{children:"There are two types of intrinsic components,"}),"\n",(0,i.jsxs)(r.ul,{children:["\n",(0,i.jsxs)(r.li,{children:[(0,i.jsx)(r.code,{children:"Primitives"})," which are foundational components which can be used to construct more complex components (eg. rects, circles)"]}),"\n",(0,i.jsxs)(r.li,{children:[(0,i.jsx)(r.code,{children:"Inbuilts"})," these are predefined components for specific search formats like a ",(0,i.jsx)(r.code,{children:"grid"})," or ",(0,i.jsx)(r.code,{children:"tree"})," search view."]}),"\n"]}),"\n",(0,i.jsx)(r.p,{children:"When using either of the intrinsic components the exact structure/types of the components must be followed for the visualiser to correctly render your search trace."}),"\n",(0,i.jsx)(r.p,{children:"There is currently only one renderer implemented which is the 2D Renderer."}),"\n",(0,i.jsx)(r.h2,{id:"2d-renderer",children:"2D Renderer"}),"\n",(0,i.jsx)(r.p,{children:"The 2D Renderer is used for the rendering of two dimensional components. It is comprises of 4 Primitive and 4 Inbuilt components, which are briefly outlined below."}),"\n",(0,i.jsxs)(r.p,{children:["Refer to ",(0,i.jsx)(r.a,{href:"/docs/api/renderer/2D-renderer",children:"2D-renderer.md"})," for more specific details."]}),"\n",(0,i.jsx)(r.h3,{id:"primitives",children:"Primitives"}),"\n",(0,i.jsx)(r.p,{children:"There are 4 primitives which are used to visualise 2D pathfinding search traces which are"}),"\n",(0,i.jsxs)(r.ul,{children:["\n",(0,i.jsx)(r.li,{children:"Rectangles (rect)"}),"\n",(0,i.jsx)(r.li,{children:"Circles (circle)"}),"\n",(0,i.jsx)(r.li,{children:"Polygons (polygon)"}),"\n",(0,i.jsx)(r.li,{children:"Paths (path)"}),"\n"]}),"\n",(0,i.jsx)(r.h3,{id:"inbuilt-components",children:"Inbuilt Components"}),"\n",(0,i.jsx)(r.p,{children:"There are 4 predefined components for the 2D renderer these are,"}),"\n",(0,i.jsxs)(r.ul,{children:["\n",(0,i.jsx)(r.li,{children:"Grid"}),"\n",(0,i.jsx)(r.li,{children:"Road Network"}),"\n",(0,i.jsx)(r.li,{children:"Aurora Mesh"}),"\n",(0,i.jsx)(r.li,{children:"Tree"}),"\n"]})]})}function h(e={}){const{wrapper:r}={...(0,s.a)(),...e.components};return r?(0,i.jsx)(r,{...e,children:(0,i.jsx)(l,{...e})}):l(e)}},1151:(e,r,n)=>{n.d(r,{Z:()=>o,a:()=>d});var i=n(7294);const s={},t=i.createContext(s);function d(e){const r=i.useContext(t);return i.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function o(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:d(e.components),i.createElement(t.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/1dec2e7b.2d648be2.js b/assets/js/1dec2e7b.2d648be2.js new file mode 100644 index 0000000..74c84ce --- /dev/null +++ b/assets/js/1dec2e7b.2d648be2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_2=self.webpackChunkdocs_2||[]).push([[1567],{3140:(e,i,s)=>{s.r(i),s.d(i,{assets:()=>l,contentTitle:()=>r,default:()=>h,frontMatter:()=>o,metadata:()=>a,toc:()=>d});var t=s(5893),n=s(1151);const o={sidebar_position:1},r="Overview",a={id:"overview",title:"Overview",description:"Posthoc is a way to build quick-and-dirty visualisations \u2728 for sequential decision-making algorithms, such as search algorithms \ud83d\ude80.",source:"@site/docs/1-overview.md",sourceDirName:".",slug:"/overview",permalink:"/docs/overview",draft:!1,unlisted:!1,editUrl:"https://github.com/path-visualiser/path-visualiser.github.io/tree/master/docs/1-overview.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"tutorialSidebar",next:{title:"Search trace",permalink:"/docs/search-trace"}},l={},d=[{value:"Find and fix problems",id:"find-and-fix-problems",level:2},{value:"Interrogate decisions",id:"interrogate-decisions",level:3},{value:"Use built-in debugging tools",id:"use-built-in-debugging-tools",level:3},{value:"Compare with a baseline",id:"compare-with-a-baseline",level:3},{value:"Collaborate and share",id:"collaborate-and-share",level:2},{value:"Discuss ideas with your team",id:"discuss-ideas-with-your-team",level:3},{value:"Help students learn",id:"help-students-learn",level:3},{value:"Share your work",id:"share-your-work",level:3},{value:"Why we built Posthoc",id:"why-we-built-posthoc",level:2}];function c(e){const i={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",img:"img",li:"li",ol:"ol",p:"p",strong:"strong",...(0,n.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(i.h1,{id:"overview",children:"Overview"}),"\n",(0,t.jsxs)(i.p,{children:[(0,t.jsx)(i.strong,{children:"Posthoc"})," is a way to build quick-and-dirty visualisations \u2728 for sequential decision-making algorithms, such as search algorithms \ud83d\ude80."]}),"\n",(0,t.jsx)(i.p,{children:(0,t.jsx)(i.img,{alt:"Alt text",src:s(389).Z+"",width:"2560",height:"1600"})}),"\n",(0,t.jsx)(i.p,{children:"It's easy to get started."}),"\n",(0,t.jsxs)(i.ol,{children:["\n",(0,t.jsxs)(i.li,{children:["Print logs as ",(0,t.jsx)(i.a,{href:"./3-search-trace",children:"search traces"})]}),"\n",(0,t.jsxs)(i.li,{children:["Load those into the ",(0,t.jsx)(i.a,{href:"./2-visualiser",children:"Posthoc visualiser"})]}),"\n",(0,t.jsx)(i.li,{children:"Voila!"}),"\n"]}),"\n",(0,t.jsxs)(i.p,{children:[(0,t.jsx)(i.a,{href:"./3-search-trace",children:"Search trace"})," is log-like YAML format that describes what happened during your algorithm, and how you want to visualise it. If you're generating logs already, we invite you to convert them to search traces. Then, ",(0,t.jsx)(i.a,{href:"./2-visualiser",children:"Posthoc"})," is a comprehensive, no-install visualiser that helps you interpret and analyse search traces."]}),"\n",(0,t.jsx)(i.h2,{id:"find-and-fix-problems",children:"Find and fix problems"}),"\n",(0,t.jsx)(i.h3,{id:"interrogate-decisions",children:"Interrogate decisions"}),"\n",(0,t.jsxs)(i.p,{children:["Play back, step-through, and inspect the decisions of your algorithm. See your algorithm as a decision tree by annotating your log with ",(0,t.jsx)(i.code,{children:"id"})," and ",(0,t.jsx)(i.code,{children:"pId"})," properties, or view it in context by including declarative rendering instructions in your trace."]}),"\n",(0,t.jsx)(i.p,{children:(0,t.jsx)(i.img,{alt:"9 tile",src:s(5677).Z+"",width:"2560",height:"1600"})}),"\n",(0,t.jsx)(i.h3,{id:"use-built-in-debugging-tools",children:"Use built-in debugging tools"}),"\n",(0,t.jsx)(i.p,{children:"Pinpoint when an invariant is violated, where a point of interest is, or where things go wrong, during algorithm execution. Do so by setting regular breakpoints or breakpoint expressions."}),"\n",(0,t.jsx)(i.p,{children:(0,t.jsx)(i.img,{alt:"Rayscan debugging",src:s(1553).Z+"",width:"2560",height:"1600"})}),"\n",(0,t.jsx)(i.h3,{id:"compare-with-a-baseline",children:"Compare with a baseline"}),"\n",(0,t.jsx)(i.p,{children:"Identify where your algorithm has deviated from a known good baseline by comparing traces side-by-side or superimposed."}),"\n",(0,t.jsx)(i.p,{children:(0,t.jsx)(i.img,{alt:"Comparison",src:s(423).Z+"",width:"2560",height:"1600"})}),"\n",(0,t.jsx)(i.h2,{id:"collaborate-and-share",children:"Collaborate and share"}),"\n",(0,t.jsx)(i.h3,{id:"discuss-ideas-with-your-team",children:"Discuss ideas with your team"}),"\n",(0,t.jsx)(i.p,{children:"Present your ideas to your team and problem-solve together."}),"\n",(0,t.jsx)(i.h3,{id:"help-students-learn",children:"Help students learn"}),"\n",(0,t.jsx)(i.p,{children:"Walk through algorithms and techniques visually with students."}),"\n",(0,t.jsx)(i.h3,{id:"share-your-work",children:"Share your work"}),"\n",(0,t.jsx)(i.p,{children:"Let the world discover your work."}),"\n",(0,t.jsx)(i.h2,{id:"why-we-built-posthoc",children:"Why we built Posthoc"}),"\n",(0,t.jsx)(i.p,{children:"We're a team of optimisation researchers at Monash University."}),"\n",(0,t.jsx)(i.p,{children:"We built Posthoc because, so often, we want visualise our algorithms so we can better understand them, but equally as often we're intimidated by cost-benefit ratio of employing them in our workflows."}),"\n",(0,t.jsx)(i.p,{children:"Building visualisations is a lot of effort; we want to focus on writing and perfecting our algorithm, not coding up visualisers. So when our algorithms don't behave as expected, we'll tend to troubleshoot via debuggers, logs, and assertions."}),"\n",(0,t.jsx)(i.p,{children:"Posthoc adds visualisation to our problem-solving toolkit \ud83d\udee0\ufe0f."}),"\n",(0,t.jsx)(i.p,{children:"When problems occur in a spatial environment \u2014 navigating through roads, corridors, terrain etc \u2014 it's just natural to reason about them visually. Posthoc lets us create quick-and-dirty visualisations to leverage intuition, debug problems, draw insights, and collaborate with each other."}),"\n",(0,t.jsx)(i.admonition,{type:"warning",children:(0,t.jsx)(i.p,{children:"This site is under construction. Content may be inaccurate or missing."})})]})}function h(e={}){const{wrapper:i}={...(0,n.a)(),...e.components};return i?(0,t.jsx)(i,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}},389:(e,i,s)=>{s.d(i,{Z:()=>t});const t=s.p+"assets/images/image-1-6102ae414aa02bc606215b9ae14bd29c.png"},5677:(e,i,s)=>{s.d(i,{Z:()=>t});const t=s.p+"assets/images/image-2-9775922689c8639be79c94f2bbe73014.png"},1553:(e,i,s)=>{s.d(i,{Z:()=>t});const t=s.p+"assets/images/image-3-544ecc456ebcdf727c65e93b84a1825e.png"},423:(e,i,s)=>{s.d(i,{Z:()=>t});const t=s.p+"assets/images/image-4-c751ae63b07d1adcb77cc9c5f31e79fd.png"},1151:(e,i,s)=>{s.d(i,{Z:()=>a,a:()=>r});var t=s(7294);const n={},o=t.createContext(n);function r(e){const i=t.useContext(o);return t.useMemo((function(){return"function"==typeof e?e(i):{...i,...e}}),[i,e])}function a(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:r(e.components),t.createElement(o.Provider,{value:i},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/1dec2e7b.cdb6a197.js b/assets/js/1dec2e7b.cdb6a197.js deleted file mode 100644 index ecb7291..0000000 --- a/assets/js/1dec2e7b.cdb6a197.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs_2=self.webpackChunkdocs_2||[]).push([[1567],{3140:(e,i,t)=>{t.r(i),t.d(i,{assets:()=>l,contentTitle:()=>o,default:()=>c,frontMatter:()=>a,metadata:()=>r,toc:()=>h});var s=t(5893),n=t(1151);const a={sidebar_position:1},o="Overview",r={id:"overview",title:"Overview",description:"Posthoc is a way to build quick-and-dirty visualisations \u2728 for sequential decision-making algorithms, such as search algorithms \ud83d\ude80.",source:"@site/docs/1-overview.md",sourceDirName:".",slug:"/overview",permalink:"/docs/overview",draft:!1,unlisted:!1,editUrl:"https://github.com/path-visualiser/path-visualiser.github.io/tree/master/docs/1-overview.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"tutorialSidebar",next:{title:"Search trace",permalink:"/docs/search-trace"}},l={},h=[{value:"Find and fix problems",id:"find-and-fix-problems",level:2},{value:"Interrogate decisions",id:"interrogate-decisions",level:3},{value:"Use built-in debugging tools",id:"use-built-in-debugging-tools",level:3},{value:"Compare with a baseline",id:"compare-with-a-baseline",level:3},{value:"Collaborate and share",id:"collaborate-and-share",level:2},{value:"Discuss ideas with your team",id:"discuss-ideas-with-your-team",level:3},{value:"Help students learn",id:"help-students-learn",level:3},{value:"Share your work",id:"share-your-work",level:3},{value:"Why we built Posthoc",id:"why-we-built-posthoc",level:2}];function d(e){const i={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",img:"img",li:"li",ol:"ol",p:"p",strong:"strong",...(0,n.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(i.h1,{id:"overview",children:"Overview"}),"\n",(0,s.jsxs)(i.p,{children:[(0,s.jsx)(i.strong,{children:"Posthoc"})," is a way to build quick-and-dirty visualisations \u2728 for sequential decision-making algorithms, such as search algorithms \ud83d\ude80."]}),"\n",(0,s.jsx)(i.p,{children:(0,s.jsx)(i.img,{alt:"Alt text",src:t(389).Z+"",width:"2560",height:"1600"})}),"\n",(0,s.jsx)(i.p,{children:"It's easy to get started."}),"\n",(0,s.jsxs)(i.ol,{children:["\n",(0,s.jsxs)(i.li,{children:["Print logs as ",(0,s.jsx)(i.a,{href:"./3-search-trace",children:"search traces"})]}),"\n",(0,s.jsxs)(i.li,{children:["Load those into the ",(0,s.jsx)(i.a,{href:"./2-visualiser",children:"Posthoc visualiser"})]}),"\n",(0,s.jsx)(i.li,{children:"Voila!"}),"\n"]}),"\n",(0,s.jsxs)(i.p,{children:[(0,s.jsx)(i.a,{href:"./3-search-trace",children:"Search trace"})," is log-like YAML format that describes what happened during your algorithm, and how you want to visualise it. If you're generating logs already, we invite you to convert them to search traces. Then, ",(0,s.jsx)(i.a,{href:"./2-visualiser",children:"Posthoc"})," is a comprehensive, no-install visualiser that helps you interpret and analyse search traces."]}),"\n",(0,s.jsx)(i.h2,{id:"find-and-fix-problems",children:"Find and fix problems"}),"\n",(0,s.jsx)(i.h3,{id:"interrogate-decisions",children:"Interrogate decisions"}),"\n",(0,s.jsxs)(i.p,{children:["Play back, step-through, and inspect the decisions of your algorithm. See your algorithm as a decision tree by annotating your log with ",(0,s.jsx)(i.code,{children:"id"})," and ",(0,s.jsx)(i.code,{children:"pId"})," properties, or view it in context by including declarative rendering instructions in your trace."]}),"\n",(0,s.jsx)(i.p,{children:(0,s.jsx)(i.img,{alt:"9 tile",src:t(5677).Z+"",width:"2560",height:"1600"})}),"\n",(0,s.jsx)(i.h3,{id:"use-built-in-debugging-tools",children:"Use built-in debugging tools"}),"\n",(0,s.jsx)(i.p,{children:"Pinpoint when an invariant is violated, where a point of interest is, or where things go wrong, during algorithm execution. Do so by setting regular breakpoints or breakpoint expressions."}),"\n",(0,s.jsx)(i.p,{children:(0,s.jsx)(i.img,{alt:"Rayscan debugging",src:t(1553).Z+"",width:"2560",height:"1600"})}),"\n",(0,s.jsx)(i.h3,{id:"compare-with-a-baseline",children:"Compare with a baseline"}),"\n",(0,s.jsx)(i.p,{children:"Identify where your algorithm has deviated from a known good baseline by comparing traces side-by-side or superimposed."}),"\n",(0,s.jsx)(i.p,{children:(0,s.jsx)(i.img,{alt:"Comparison",src:t(423).Z+"",width:"2560",height:"1600"})}),"\n",(0,s.jsx)(i.h2,{id:"collaborate-and-share",children:"Collaborate and share"}),"\n",(0,s.jsx)(i.h3,{id:"discuss-ideas-with-your-team",children:"Discuss ideas with your team"}),"\n",(0,s.jsx)(i.h3,{id:"help-students-learn",children:"Help students learn"}),"\n",(0,s.jsxs)(i.p,{children:["The Posthoc could be use as an learning tool in for learners' understanding of complex algorithms by providing a conducive environment for visualisation. Consider the example of the weighted ",(0,s.jsx)(i.a,{href:"https://en.wikipedia.org/wiki/A*_search_algorithm",children:"A* search"})," problem. Students often find it challenging to conceptualize how various weights assigned to different grid cells or walkable paths can influence the algorithm's decision-making process. The Posthoc bridges this gap, enabling learners to visually comprehend the impact of these weights on the algorithm's pathfinding capabilities."]}),"\n",(0,s.jsx)(i.p,{children:(0,s.jsx)(i.img,{alt:"weighted a star",src:t(3983).Z+"",width:"1853",height:"947"})}),"\n",(0,s.jsx)(i.p,{children:"In the illustration provided, the map is designed to mimic a video game environment, depicting a desert interspersed with patches of forest. The intensity of the green color indicates the weight of the walkable paths, with darker shades representing heavier weights. Through this visualization, it becomes evident how the A* algorithm strategically selects a path from the source to the target. It does so by navigating through areas with the least amount of green, effectively avoiding paths with heavier weights to find the shortest and most efficient route. This visual demonstration not only clarifies the concept of weighted pathfinding but also showcases the algorithm's adeptness at incorporating path weights into its calculations, leading to an optimized solution."}),"\n",(0,s.jsx)(i.h3,{id:"share-your-work",children:"Share your work"}),"\n",(0,s.jsx)(i.h2,{id:"why-we-built-posthoc",children:"Why we built Posthoc"}),"\n",(0,s.jsx)(i.p,{children:"We're a team of optimisation researchers at Monash University."}),"\n",(0,s.jsx)(i.p,{children:"We built Posthoc because, so often, we want visualise our algorithms so we can better understand them, but equally as often we're intimidated by cost-benefit ratio of employing them in our workflows."}),"\n",(0,s.jsx)(i.p,{children:"Building visualisations is a lot of effort; we want to focus on writing and perfecting our algorithm, not coding up visualisers. So when our algorithms don't behave as expected, we'll tend to troubleshoot via debuggers, logs, and assertions."}),"\n",(0,s.jsx)(i.p,{children:"Posthoc adds visualisation to our problem-solving toolkit \ud83d\udee0\ufe0f."}),"\n",(0,s.jsx)(i.p,{children:"When problems occur in a spatial environment \u2014 navigating through roads, corridors, terrain etc \u2014 it's just natural to reason about them visually. Posthoc lets us create quick-and-dirty visualisations to leverage intuition, debug problems, draw insights, and collaborate with each other."}),"\n",(0,s.jsx)(i.admonition,{type:"warning",children:(0,s.jsx)(i.p,{children:"This site is under construction. Content may be inaccurate or missing."})})]})}function c(e={}){const{wrapper:i}={...(0,n.a)(),...e.components};return i?(0,s.jsx)(i,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},3983:(e,i,t)=>{t.d(i,{Z:()=>s});const s=t.p+"assets/images/educational-99c9e27ef0ed905b58900f35399c299a.png"},389:(e,i,t)=>{t.d(i,{Z:()=>s});const s=t.p+"assets/images/image-1-6102ae414aa02bc606215b9ae14bd29c.png"},5677:(e,i,t)=>{t.d(i,{Z:()=>s});const s=t.p+"assets/images/image-2-9775922689c8639be79c94f2bbe73014.png"},1553:(e,i,t)=>{t.d(i,{Z:()=>s});const s=t.p+"assets/images/image-3-544ecc456ebcdf727c65e93b84a1825e.png"},423:(e,i,t)=>{t.d(i,{Z:()=>s});const s=t.p+"assets/images/image-4-c751ae63b07d1adcb77cc9c5f31e79fd.png"},1151:(e,i,t)=>{t.d(i,{Z:()=>r,a:()=>o});var s=t(7294);const n={},a=s.createContext(n);function o(e){const i=s.useContext(a);return s.useMemo((function(){return"function"==typeof e?e(i):{...i,...e}}),[i,e])}function r(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:o(e.components),s.createElement(a.Provider,{value:i},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/216f74a6.a088969e.js b/assets/js/216f74a6.a088969e.js deleted file mode 100644 index 61f0326..0000000 --- a/assets/js/216f74a6.a088969e.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs_2=self.webpackChunkdocs_2||[]).push([[7566],{5052:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>s,default:()=>u,frontMatter:()=>o,metadata:()=>a,toc:()=>d});var n=r(5893),i=r(1151);const o={},s="Overview",a={id:"api/overview",title:"Overview",description:"[TODO]",source:"@site/docs/6-api/overview.md",sourceDirName:"6-api",slug:"/api/overview",permalink:"/docs/api/overview",draft:!1,unlisted:!1,editUrl:"https://github.com/path-visualiser/path-visualiser.github.io/tree/master/docs/6-api/overview.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Standard Renderers",permalink:"/docs/api/renderer/standard-renderers"},next:{title:"Search Trace",permalink:"/docs/api/search-trace"}},c={},d=[];function p(e){const t={h1:"h1",p:"p",...(0,i.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.h1,{id:"overview",children:"Overview"}),"\n",(0,n.jsx)(t.p,{children:"[TODO]"})]})}function u(e={}){const{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(p,{...e})}):p(e)}},1151:(e,t,r)=>{r.d(t,{Z:()=>a,a:()=>s});var n=r(7294);const i={},o=n.createContext(i);function s(e){const t=n.useContext(o);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:s(e.components),n.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/3688c61a.dc302dd1.js b/assets/js/3688c61a.dc302dd1.js deleted file mode 100644 index ac5b820..0000000 --- a/assets/js/3688c61a.dc302dd1.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs_2=self.webpackChunkdocs_2||[]).push([[3022],{4151:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>s,default:()=>d,frontMatter:()=>i,metadata:()=>a,toc:()=>u});var n=r(5893),o=r(1151);const i={},s="Overview",a={id:"tutorials/overview",title:"Overview",description:"[TODO]",source:"@site/docs/4-tutorials/overview.md",sourceDirName:"4-tutorials",slug:"/tutorials/overview",permalink:"/docs/tutorials/overview",draft:!1,unlisted:!1,editUrl:"https://github.com/path-visualiser/path-visualiser.github.io/tree/master/docs/4-tutorials/overview.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Tutorials",permalink:"/docs/category/tutorials"},next:{title:"Single Agent Grid Search",permalink:"/docs/tutorials/single-agent-grid"}},c={},u=[];function l(e){const t={h1:"h1",p:"p",...(0,o.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.h1,{id:"overview",children:"Overview"}),"\n",(0,n.jsx)(t.p,{children:"[TODO]"})]})}function d(e={}){const{wrapper:t}={...(0,o.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(l,{...e})}):l(e)}},1151:(e,t,r)=>{r.d(t,{Z:()=>a,a:()=>s});var n=r(7294);const o={},i=n.createContext(o);function s(e){const t=n.useContext(i);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:s(e.components),n.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/458816ec.64e7b6a1.js b/assets/js/458816ec.64e7b6a1.js deleted file mode 100644 index 8a2dd50..0000000 --- a/assets/js/458816ec.64e7b6a1.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs_2=self.webpackChunkdocs_2||[]).push([[9985],{665:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>o,contentTitle:()=>a,default:()=>u,frontMatter:()=>h,metadata:()=>l,toc:()=>r});var i=s(5893),n=s(1151);const h={sidebar_position:5},a="Steps Panel",l={id:"visualiser/3-1-user-guide/steps",title:"Steps Panel",description:"Posthoc's steps panel shows a list of steps of the current chosen trace.",source:"@site/docs/3-visualiser/3-1-user-guide/steps.md",sourceDirName:"3-visualiser/3-1-user-guide",slug:"/visualiser/3-1-user-guide/steps",permalink:"/docs/visualiser/3-1-user-guide/steps",draft:!1,unlisted:!1,editUrl:"https://github.com/path-visualiser/path-visualiser.github.io/tree/master/docs/3-visualiser/3-1-user-guide/steps.md",tags:[],version:"current",sidebarPosition:5,frontMatter:{sidebar_position:5},sidebar:"tutorialSidebar",previous:{title:"Layers Panel",permalink:"/docs/visualiser/3-1-user-guide/layers"},next:{title:"Debugger Panel",permalink:"/docs/visualiser/3-1-user-guide/debugger"}},o={},r=[{value:"Navigating Through the Steps",id:"navigating-through-the-steps",level:2},{value:"Other Additional Details",id:"other-additional-details",level:2}];function g(e){const t={h1:"h1",h2:"h2",img:"img",li:"li",p:"p",ul:"ul",...(0,n.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.h1,{id:"steps-panel",children:"Steps Panel"}),"\n",(0,i.jsxs)(t.p,{children:["Posthoc's steps panel shows a list of steps of the current chosen trace.\n",(0,i.jsx)(t.img,{alt:"Alt text",src:s(1152).Z+"",width:"1917",height:"910"})]}),"\n",(0,i.jsx)(t.h2,{id:"navigating-through-the-steps",children:"Navigating Through the Steps"}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"Alt text",src:s(2778).Z+"",width:"856",height:"47"})}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:"Dropdown: Changing the trace for the steps panel."}),"\n",(0,i.jsx)(t.li,{children:"Left and Right Arrows: move 1 step back and forward."}),"\n",(0,i.jsx)(t.li,{children:"Play: Play the search trace."}),"\n",(0,i.jsx)(t.li,{children:"Skip: Jump to the next breakpoint."}),"\n",(0,i.jsx)(t.li,{children:"Stop: Stops the playing trace."}),"\n"]}),"\n",(0,i.jsx)(t.h2,{id:"other-additional-details",children:"Other Additional Details"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:["\n",(0,i.jsx)(t.p,{children:"Seeing each step info: Hover over the { } sign when hovering on a step."}),"\n"]}),"\n",(0,i.jsxs)(t.li,{children:["\n",(0,i.jsx)(t.p,{children:"Unable to see the play button or the panel seems to be cut off ? There is a horizonatal scrollbar show the unseen part of the panel header."}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"Alt text",src:s(6740).Z+"",width:"459",height:"59"})}),"\n"]}),"\n"]})]})}function u(e={}){const{wrapper:t}={...(0,n.a)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(g,{...e})}):g(e)}},2778:(e,t,s)=>{s.d(t,{Z:()=>i});const i="data:image/png;base64,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"},6740:(e,t,s)=>{s.d(t,{Z:()=>i});const i="data:image/png;base64,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"},1152:(e,t,s)=>{s.d(t,{Z:()=>i});const i=s.p+"assets/images/steps-3efe4b3535e4e18a2847a52632351a64.png"},1151:(e,t,s)=>{s.d(t,{Z:()=>l,a:()=>a});var i=s(7294);const n={},h=i.createContext(n);function a(e){const t=i.useContext(h);return i.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(n):e.components||n:a(e.components),i.createElement(h.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/458816ec.8672f663.js b/assets/js/458816ec.8672f663.js new file mode 100644 index 0000000..8656bb3 --- /dev/null +++ b/assets/js/458816ec.8672f663.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_2=self.webpackChunkdocs_2||[]).push([[9985],{665:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>u,frontMatter:()=>h,metadata:()=>o,toc:()=>r});var i=s(5893),n=s(1151);const h={sidebar_position:5},a="Steps",o={id:"visualiser/3-1-user-guide/steps",title:"Steps",description:"Posthoc's steps panel shows a list of steps of the current chosen trace.",source:"@site/docs/3-visualiser/3-1-user-guide/steps.md",sourceDirName:"3-visualiser/3-1-user-guide",slug:"/visualiser/3-1-user-guide/steps",permalink:"/docs/visualiser/3-1-user-guide/steps",draft:!1,unlisted:!1,editUrl:"https://github.com/path-visualiser/path-visualiser.github.io/tree/master/docs/3-visualiser/3-1-user-guide/steps.md",tags:[],version:"current",sidebarPosition:5,frontMatter:{sidebar_position:5},sidebar:"tutorialSidebar",previous:{title:"Layers",permalink:"/docs/visualiser/3-1-user-guide/layers"},next:{title:"Debugger",permalink:"/docs/visualiser/3-1-user-guide/debugger"}},l={},r=[{value:"Navigating Through the Steps",id:"navigating-through-the-steps",level:2},{value:"Other Additional Details",id:"other-additional-details",level:2}];function g(e){const t={h1:"h1",h2:"h2",img:"img",li:"li",p:"p",ul:"ul",...(0,n.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.h1,{id:"steps",children:"Steps"}),"\n",(0,i.jsxs)(t.p,{children:["Posthoc's steps panel shows a list of steps of the current chosen trace.\n",(0,i.jsx)(t.img,{alt:"Alt text",src:s(1152).Z+"",width:"1917",height:"910"})]}),"\n",(0,i.jsx)(t.h2,{id:"navigating-through-the-steps",children:"Navigating Through the Steps"}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"Alt text",src:s(2778).Z+"",width:"856",height:"47"})}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:"Dropdown: Changing the trace for the steps panel."}),"\n",(0,i.jsx)(t.li,{children:"Left and Right Arrows: move 1 step back and forward."}),"\n",(0,i.jsx)(t.li,{children:"Play: Play the search trace."}),"\n",(0,i.jsx)(t.li,{children:"Skip: Jump to the next breakpoint."}),"\n",(0,i.jsx)(t.li,{children:"Stop: Stops the playing trace."}),"\n"]}),"\n",(0,i.jsx)(t.h2,{id:"other-additional-details",children:"Other Additional Details"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:["\n",(0,i.jsx)(t.p,{children:"Seeing each step info: Hover over the { } sign when hovering on a step."}),"\n"]}),"\n",(0,i.jsxs)(t.li,{children:["\n",(0,i.jsx)(t.p,{children:"Unable to see the play button or the panel seems to be cut off ? There is a horizonatal scrollbar show the unseen part of the panel header."}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"Alt text",src:s(6740).Z+"",width:"459",height:"59"})}),"\n"]}),"\n"]})]})}function u(e={}){const{wrapper:t}={...(0,n.a)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(g,{...e})}):g(e)}},2778:(e,t,s)=>{s.d(t,{Z:()=>i});const i="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA1gAAAAvCAYAAAD+UGtMAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAABubSURBVHhe7Z0FeBRXF4ZPsYRQJFhwp9BibXH34rS4lyKFFi8tWtylFCtOcCjuBHdrsOJS3B0aXNt/vpOZsAkBks2Gfzf93ueZZ2fu3JnsztzdnG+O3A8843n9K4QQQgghhBBCwkwk85UQQgghhBBCSBihwCKEEEIIIYQQB0GBRQghhBBCCCEOggKLEEIIIYQQQhwEBRYhhBBCCCGEOAgKLEIIIYQQQghxEBRYxC6SJ09mrhFCCCGEEEIsKLAIIYQQQgghxEFQYBFCCCGEEEKIg6DAIoQQQgghhBAHQYFFnJ7UXlml19dr9ZUQQgghhBBnhgKLODX5M1WTrnVWSCqvLPqKbUKcGRaAIYQQQpybyJEjy7eNG8rUKd7SuFED+eCDD8w9jiFydI8Pe5jrIQJvKE3q1JIqZQrjzUSSBw8emHtEkiZNIunSpRWP6NHl3v378u+//5p7IiaFChaQPHlyS+ZMmSRatGhy7do1c0/EJ3bsWHLv3j1zy/FEjhRFvi7RT6oV7CyRIkWWe49vS/RoH0qO9GUlVoz4cvjcJmN8/WP2dh2+/LKC/Ni2jUSKHElOnPjLbCURifD+bvwXKJ2jiZy+us/cIoQQQhxL7do15dchgyXDRx9JyZIl5OTJU3Ls+HFzb9j5wDOeV6hUEARUurRpzS2RnX/4ip+fn8SPF09y5Mhutor89ddJOXP2rLkVsWjW7Dtp1aKZJEiQIEDxQkwePHRYunbtLtu279A28IVx09zc3WXjxk2BxKirg6f0Fy9eMrccS6zo8eSHytMkbRL/8bRy92iZu6WfVC/UWcrkbKZtp6/slaELv1bhFVaqVqksgwb2V4H8Relyge5T7Vo1pH+/PhI1alQZMHCwjBg5ytzjzyqfZZI5cybp2auPTJg4yWx9Mz7Ll6go37xlq1SqHDpv3Ihhv0r16tVk+IiR0n/AILM1eCD+48ePL3/4+sqVK1fN1rBTw/j7gwf1l8uXr0je/IXM1rfzQ5tW0r7dj/L48RNp36GTzF+w0Nzzis8++1Qme0+QI0ePSp269c1W1yQ8vxthIW5cT7lz56655dxMa3dNzlw7ION9WsiV2yfNVtelYIH8snXbdnPLNciQ4SM5deq0vHz50mx5Nx3a/6Sv243/gbb/B/+fWO/JXgYO+sVcI4REJH7u3FEfeFvgu+7I73uoBVa2rFkkceLE5pbIocOH1dhKliypenIs0IZ9jqR5hXESO0ZCc8t+/B7ekFHLmppboaPBN/WlW9fOKqxW+KySLYah7OHhIVWqVJJcOXPI+QsXpG69bwK8Ezu3b5FYsWLK981aypat27QtIhBeRiTyrH6oMl3ixPCS5y+eyNgVzWX3XyvMvSI5Pyon35UbJVGjuMvfD6/L0AX15Oz1g+Ze+/jwww9lzaoVEi9+PGnduq2sWr3G3CMqvBo2qK/3e9as2dKy9Q/mHn8RM2b0SHn+/IU0aPSt/PnnfnPPm6leraohUqrKnLnzZe68+WZryAiNwFq0cJ5k//wzade+k/G35pmtYccegTX79xn6oAEPIYJew86dOkjSpEmlb7/+smDeHNm9e48sXrpM3fXou3yFj9nTdXBGgZU2bVpJny6t/i6dPXfObHVeILDAi5fPxWf3aFmyY4g8f/lM21yNXj27SYvmzaRb917y26jRZqvzA2GC7+03DRuHeDzfueV/3xxtqIQFfA57RZYzfQ5CiGOBw2jzxnUSPXp0fbBeqHBxOXf+vLk37IQ6B+vipUsBoX9Pnj6VGzdu6vqNGzfk2fPnuo79ly473sBImzi7ZEyeN8wLzmMvFSuWF3d3d8PI/U2at2ilxuvkKVOlfIWvZMPGTZI8WXKpXOkrszcJDVa+FcTV9b/PSbfppQKJK4BttN/yu6T9HJGXhS/WsWPHJXas2OpJsSVrlszyzz//yIsXLySzsW7Lp59mE09PTzVYQyKuAERVlWo1Qy2uXJUSJYrJZ8Z1unDhoty8eVNy586lxr6FV8KEUqF8Wdm4Ya3EjRdX8ubNLTOnT5FMn3yiHmISdtKmSaPiCqRMlVKiRImi665AlMhRpWKe1tK/0VbJkCy32eo6xIkTW6pUrqTrEFq2T0tdAfwe7ti2WerUrmm2EEJIxAAeejworvhlZX11pLgCoRZYCDGB63/X7t2yY8cOeW6KqmfPnsv2bdu1HaEQd+/+re2OZNTyptJ/duUwLziPvSTy8tLPHFzYFZ50tW7j7wFp+0NrOfXXMcOYTCMJDSNy5oypcuzIgQDxBa9J3949te3m9cty9coF2bZlo9StW1v3A+scgwcNkHFjR8nF86fl9s2rcvrkcRn662A9hy04FufAudDv5Imj0rdPL3Ov84J8qwalBkvTsiPVoDp0dqN0m1pSLt86YfYIDNq7TCsuRy9s0/44DsfjPPZy4OBBQ0i91HA/CxgXiRIlkgsXL8q5c+clSZLEUrrUF+ZeMYzWdJqTeNj01GL/2DG/6f3B9b988ax6xooVK6r7ATxiuKe4txa4j6NHjZAzp07ocbjPuN+470H7gujR3WXF8iVy9fJ57X/08H5p3aqF7sP4wphCGGKMGDFkyC8DXzuH7TjB2EN/jMWg4wneNvS7ce2S9tvtu11Sp05l7g0Z+fPlk9ix48jWrdvk2PETkjhxIilSuKC5V6T1Dz9KhYqVNPY5Qfz4kix5cpkydbrkL1hEH1yQsJE6VSpJnz6druOBmK/vLn1Y4Co8ff5QXxPGTik/11oiTcqOkBjusbXNFfj7bz8pU65iwP8LhKTAm+VK4Hdk5IhhMmvmNOO77DrXPjjixk8UooUQ8t8AD3+haRCV42jsqiL48OFDFVoQVbY8ffZM2x89emS2OBbk3Ry7uCPMC85jLydPnVJ3YoUK5dSgtgVeDHi08HrcMCZXrlott27dkvv3H8jatetVeMFYB4MG9pNvv21kGDsvZenS5bJ1yzZJkSK59O7ZXcMQgZubmxq9hQsV1FCNnTt9ZfHipXp969WtI5O9x2s/UKdOLenVo7uGaq5fv0EWLFwk9x/cl0YNG0ifXqGqY/LeQW5V0az1dB35FkMW1pXHz+7r9pt49MRPfplfS67dOa3bOB7nsZf9+w/I3bt31SC1hEaO7J9L/PjxNKzq8OEjEtNo/+ij9LoPwKP14MFD2bN3nx4zauRwzeeCpwbXf58xDrIYfRDaB08OcDfvKe4twPr0qZNUzOB7hfu7/8BBKV+urN53274WlStVkhSGEPHxWSU7dv6hXrR2P7WVpk0a6/jScXb+gvH9fCYbN23WcYjxCDC2MMYw1jDmMPYwBjEWMSYt0G/ggL76gMB3127t5+4eXf9GtGiB38/bKFKksI5X5JwhnBbeE1vB2bzZ9zJ58kT1cqEwxD0/P/3bCCu07RcScJ0Wzp8jBfLnM1uCB/tx/qDXNaKBsYw8GmCJq8ePH+u2q+Cze4xMWv2TPHrqXzSkQKbqMrDRNsmd8UvddgXwD7xs+VciywoZdDXwcMl351bJlzeP2UIIIa7Nxx9nlCaG/ZMxYwazxXHYJbAQ9pAyZQoVGrZgO1XKlLo/ojJt+gx1I5YtU1pDJ5YsXiCtWjZ/TWz5rFwlLVu1ET+/e4ZR80imTJ0mP7RtJ3v27DVEzzdSoXw5NdyrVq8pjb5tKtVr1pYePftork/9+nUDjHyQMGEC6d2nv/ZBXxyDkDZ4KXAukC9vXs0FQ6EF5IA1adpMlz1790pkJw8JmrOlryzdOUzXk8RLLx1rLJBYHm8PD0MuXvvq8yRRXP/Qp0Xbf9Hz2Avy45Bn4OXlJcWL+xv2WbNk0WsHcQUPF8iW1X8uLgiHRF4J5fr164ag3aihP3mNewBPTYkvyui1h2dm9JhxWmyicaOGelxQ6n9dT3Llyqn30xoLOK5X776vjSkQLVpUFSK2fb29J2sRjkKGIMP4wji7cvWqelqXL/fRcYjxiNC8779roufp3qN3oPEEV3npUqVUIIKqVStrKOyo0WP1b6AfXOgQangPIQHnSpkihSH6Lqjog2cbIcXI1bQK4uBH7e6du1KvfkO5evWarF69VvoPGOjvzUqaVPuEFBTTwH2ZP2+OFhUIDuTNYT8eWLRp3dJsjXhEBHFlsengDOnoXVD2n1mn2/htQD5u+2qzJW7M178jzoglshBKD1xNZM2YMUtfEY2xfNlijYwI6e8AIYQ4I4ULF5LtWzfJgP591Z6HLeZIQi2w4CHJkzu3fJwxoxoxMMIABAGMFxhM2G9bCCO8yZ6+jFTK91OIF5QAtpd16zbIl19VkfETvA1D974+zevRvavs27NLFi2YG6iS4puAGIKQgliDyLKYNHmKGrDI47KMfIA27LPAMTCYo0aNpucCz549lciRI2kIlyXOYGwjN6xT5y667awgNG/+tgEyeH4t9UxlTJZH+jXcpPlywZEpZSHp22Cj9kN/HLdoxy96nrCAMDWPGB4BxVoQWgUxA4+k5eHC0w5cX+RmIVwGwgg5XHkNset3z0/GjZ8YqArhrN/naD5ixgwZXsvvAvny5ZFIkSLJwkWLA40FnOekIXqCgnwwuLNt+x4yBOBTw4i2FeXBUaxoYRVtGzZsChR+h3Ot37BBBTp+YPCkGsmfZ8+ek2HDR5q9/HPV4A178uSJ2fJ24IGLGfND2bVrjx6L8Xj4yBF9YGAJIIi/4iVL67XFAxoUGkF+Y+68BfT7ERqGDh2u1waG39y5v7/mycL2nDmzdD/6DRs2wtwTsYhI4krMEkwoaPPrgrry29Jv5d4j/7zfzKmKqDfri+yN9ffU2VGRVe5LlxRZrdq0lYaNm6iXHeBBzZZNGwJ59AkhxJUoWqSwueZPyRLFzTXHEGqBhXLsFjAMEUIFUALY9p9cwgTxzbXw5/N0hsDKb4inEC5ffG6/wAII9ejY6WfJ+ml2KVCoqBqh586dUw8CSk1DaL4NJPPDmOzerYtcOHcq0JLt02yGcIoi7m7+whWcPvN6ufszRhtEFc4FVvis1Pdl5eBsWL9GunX9OcDQcgWQe4Xcqgs3j2ip9k41Fuj9wnxrAK+V87fXJ9fYj37oj+McwcFDh+TlixfyyScf6z1ENThcU3hfLA8XBAAMdcuTZXm2ILbienrKhPFjAt3PjetXazgf7ilCDIMCUfOmnL4zp8+Ya69AOB/ESHAkfEdRCHjSokSJKmXKlAr0HrE0bPCNOe7c9LNEd3eX64YhaCsWAaZfuB+kLTjgLUNBCzyEuHjxolYfxILjUQSnRJAfMojbrt17yrhxE8yW0IMQ5WrVaqp4cosWTebNmx0gsvCKbbRjP/qhf0QjQomrYNh1Ypl08C4gWw/P1W23qDGkbrE+0r3uKvV+OzuYusRVRRbCl5EbiRBmAHG1edP6AK84IYS4EkihsAXTKTmSUAusW7dfzTsEQwk5V+D27TsB1QXBzVu3zLXwZ9+plRoiFtJlzb5XuUthBU//Ec6VJ19Bnd8nUSIvqVTp3fkBSDRHUt358xcCLacMQxMeK1sjGkb/u4BnDSFfCOWAYZzRMLIQArV65fIwzwPyPiibs5mkS5JDqwP2nF7GMKDmqKCCx7F9tTmSPMHH0rHGfPkqX1tt33JwlvZD//RJc0npnN+ZZ7If5FLdunVbDVR4cpDbdPjQq6kGMM8ZRBI8UWnSptF7BM+WBYQSRFjQe4oxElJh8j7AdzXoe4RgP3r0mFy+4phETxSyQEELT8840rNHNy1njwXFOOD1TmdcPysvDUDILVu2PMxTGajIql5LNm/e4i+y5v6u3wO8Yhvt2B8RxRWIHCWyuYYHEs7v1bEH//8zr/7XWISlyM3/kxgxPMw11+CFWdjKlog61gghERfYA5hiBwXqkFqDnHZHEmqBdenSZQ3zOXX6tOzesyegoAVCB/YaBirasT+4J/Lhxd6ThsDaYYinEC6r9tgnsBD+h+p9XbsEX0wBxjYKC6RK9fZKa7hmMMYnek+SgoWLvbZgsts1a/3zDQBKKwfFyyuhFgywLSgCQx6hHDly5pUkyVIJJsaFl7FatSqBSmM7G1ULdJSaRbpJl1pLNNwH891MWNlapq7rqPPgZEpZUPp+s1E+Tp5Pt6es6SATV7fVfgj37FJrsdQu0kMq529nntE+EAqIkuuecTzl888/03A8eLUs9u/fr/cNuW8ItYOYsgQBvAUQUBDbwd3TSlWqB1vKHfcP+VPB5VtBxDkSfEcRRrlr1+5g3yMW/NBgYlF89jhx4phHvgJevRge7zYIUaAimiFoEOaHOeBsF4S3xo0bV74oWdLs7VgQLlmzVl1/T5abm3py8YpttGN/RAW5dNY8VxCU8CIGzZV1ZXJlqCCDGm+Xgplr6DaqDM7Y0EV6zigtF28e0zZnJk3q1OKzYonmMgHMi+Uq8yx99VVFzVewwuDx0KhwkeIyZuz4QA9XCSHEVViyZJn+BsMucTShFlgAIgv/yC3vlQW8W2jH/oiIh2GoIDkeZa5R5S0oOXPkUKMS4U62RDEMaISCWSAXBcKnaNEiZos/yKGZOsVbS+LaCiLktdn+PfSDAYunhjgXQEnvpUsWBgpPXLBwsdy4eVPDvZIGY8A7C+v3T5XzNw4Z1ySyhvsggR0TCa//c4r0nllO7tz3F+t4xfaGA1PFLaqHtKk0VWoX7aUeLRy/8UDocnaCAyXXPTyia24dvFnwaln47tqjnllUF4wVK5Z6tCz27dsncWLHfq3yHYyReXNmaRn04MDEujBOENppG87ZskWzgLmL7AVjDJNcW+DpzM2bt1Q8Bs0VRPno+XN/1+Itf+4/oMUoUhvCHqGDtmDMvstgx7mRx4YKmguNMYjKmraLj89KFZa5cuV4Z96YvdiGC4KIHBYYFDxosUQWQj4jgsjCnHdtq8yQFhUnBBTAOXxuk4YLrtk70SUMfFTuDCquMPmwK/DbyOEyaeJ4LdkOxowZJ4WKFFORRQghrgqm2kFaCF4djV0CC4bbmwyjmDFj6v73SeK46dS7EdIlbZLAxmVIgbcCBQKQazN82K865xHKo6N6GSZKRen2a9euy/LlrybHRcw9+qPPwAH91IhGpT/MCYSEOsxnhLLUWObMnillSpeSZEmTaHU6Cwip3r16SPt2P+rfmzF9iuTPl1dLxi9d5v+3khrHQBTAu4ZzoR/mQEIVt78MwRfW0Kvw5O6Dq9JzRllZ9+dk3UYJ5h51V4pXnFRy9vpB6TqtuHodu0wtpttecVLr/s/TldL+OA7H4zxhBYLq0aPHKqCCTiB8+vRpNV5hrD57+lQ9Wha/z56rXtuv69WV6dMm6/X//vumMnTIYK1U4xnX0+wZmInek2WnIXzwBfdZvlS2bt6g800hrBNz6NgLRD68NhgLw4cO0RwkiPHVa9ZqoZqJ48fqeEJe1KjfRmj59YwZM8qz58/0c6LMPI7v1LG9Lvg8KG2OMfaunB6Ma1RjfNO4w5jFtU2RPEWgecUcjRUuOHTYiAgdFhgcEUZkfeA/BcOARlvl0zQltAlFLkYtayqD5tUMePji7Ki4Mr7friiuQO1a/h5D5I5VqlxNfu7aXYJO00IIIa4EinkdPXJA5/vEfKL4nXYkoVZCKGZRrFgRNdjgLUGYGkBlLlQNg+GP/e+zVHv53K2kU82FIV6alx9nHhl6Ov3cVbwnTVHRg7mLRg4fqqImc6ZP5PCRozpxqq1RiWptqMaGp/qYDR/XDPkmzZq3lG3btktOox1CCAvWt2/fIR07dwlUXGDduvU6pxWMbvw9VGBDOGLbH9urMQx69uqjJcKzZcuq50I/3AsIhL79BmgfZwahf9PWdZKRSxvL8xdPNOeqV/218mnaknL/0R2ZtbGbPHh8V0VVn2/WS9L4GbQf+uM4HO8IUHId4hY5ctYEwragZDsMC3iy4NGygHhBRbxjx4+rFwjXH14rfIEXLV4i7TsEH1aK+1y/QWMZO3a8rmP6Azy8QNVICGh78Z40We89BH0twzgqVco/HK99h05aARPfz44d2mleVM0a1fTzILwRuXwALvNJk6dq4QvMsYXPA3GFHD8/v7cLvwLG+Pz333903qvgwOdEODEqDFrvK7xAOGDvPv0idFjgm4gIIgu5mZhE3MMtlm5vPjhTvVa+x5fotitgiSsrDNjVxJUFiv3kzltQ57QjhBBXp2aN6jolDEiQIIFuO5IPPON5hSq2IlvWLIFKsCNHBU/u8VTcKm8NUMDhUDAGanhQPndLyZr6VcL8u/B7eEOfgIYVhAuiEAJyVvBZYdC8CRRGQIGEoE/08U8XZe3BH76+gXLX4Dlo3aqlzJ07T3OrIM5w7f86eTLYfB4AgzpL5sy6/q73FBaQi4McpPAA1cB+rDxTEsRJoaE/y/4YLot3DpGqBTupwQVu/n1BhiysoxMTOxvWPYDHBFVpbMVyaFi0cJ7kzpVTc+lGjBxltoYOvBfcK0s42WKN37eNJ4g9hAVGjRLltfFJgic8vxv2gOkG0qbxz+d7/OSJ7NixU3MJnZlp7a6Za/7c8DsvE3xayYlLvmaLa4CKnMhbssTVL0OGSr/+A3Xd2cEDPSzI3UTV3JmzZpt73sydW/73DQ9onCW3zPoc9uBMn4MQ4ljg9EBKjsV337eQufPmm1thJ9QCC0/k09nkB/nu2iV37/4t8eLF1RwkC4QonT7zeplpEnKCCixnIryNSPdoH0qTsiMkR3r/3LN7j29raXaw56SPjDeMrSfPnKMqX1iAZxMe0KtXr8pP7ToGiDG0IwQVBTfa/tROEzGJa+BsAgtAaKOEOzxa4fXQxZFYAgue6ZW7x8jiHb9oURtXxCrF7mqeK4gSPIRp1LipTq4fEiiwCCGuAvKuMMkw6hwcPHhIunTt7tB83lALLIQEZvrkY3Fzd5fbt24HElEQX6gO9uTxEzly9Kh6doj9/JcFlkWZnM2keqHOWoL55T8vZO6WfobBNdrc6/rA8EU+FHKwkK938MAhDcPNmjWrFqiYN3+BNGveyuxNXAFnFFgAD8FQot8VgMA6c+2AeK9q4xLVAd8FvMCOnmMlvMFvE4pWheb/uCVkEOpuFZj5f2OvuLKgwCKE2EOoBRZ5f6CCGyoWrl69xul+5N+nEZk+aU5pVGqIeK/+UU5e3m22RhwQPoRS4sWLFRM3t2jahmIpy5av0AIN9oYYkv8PziqwXIlS2b+VNftcozogIYQQEhQKLGIXNCIJCR5+NwghhJD/Nu+3njohhERwKK4IIYSQ/zYUWIQQQgghhBDiICiwCCGEEEIIIcRBUGARQgghhBBCiIOgwCKEEEIIIYQQB8EqgoQQQgghhBDiIOjBIoQQQgghhBAHQYFFCCGEEEIIIQ6CAosQQgghhBBCHAQFFiGEEEIIIYQ4CAosQgghhBBCCHEQFFiEEEIIIYQQ4iAosAghhBBCCCHEQVBgEUIIIYQQQoiDoMAihBBCCCGEEIcg8j/bnxQqgO0XOQAAAABJRU5ErkJggg=="},6740:(e,t,s)=>{s.d(t,{Z:()=>i});const i="data:image/png;base64,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"},1152:(e,t,s)=>{s.d(t,{Z:()=>i});const i=s.p+"assets/images/steps-3efe4b3535e4e18a2847a52632351a64.png"},1151:(e,t,s)=>{s.d(t,{Z:()=>o,a:()=>a});var i=s(7294);const n={},h=i.createContext(n);function a(e){const t=i.useContext(h);return i.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:a(e.components),i.createElement(h.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/4cd738bd.328f3dc9.js b/assets/js/4cd738bd.328f3dc9.js new file mode 100644 index 0000000..257f09c --- /dev/null +++ b/assets/js/4cd738bd.328f3dc9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_2=self.webpackChunkdocs_2||[]).push([[8322],{4876:e=>{e.exports=JSON.parse('{"title":"Tutorials","slug":"/category/tutorials","permalink":"/docs/category/tutorials","navigation":{"previous":{"title":"Tree","permalink":"/docs/visualiser/3-1-user-guide/tree"},"next":{"title":"Single Agent Grid Search","permalink":"/docs/tutorials/single-agent-grid"}}}')}}]); \ No newline at end of file diff --git a/assets/js/4cd738bd.7cb99166.js b/assets/js/4cd738bd.7cb99166.js deleted file mode 100644 index 776404d..0000000 --- a/assets/js/4cd738bd.7cb99166.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs_2=self.webpackChunkdocs_2||[]).push([[8322],{4876:e=>{e.exports=JSON.parse('{"title":"Tutorials","slug":"/category/tutorials","permalink":"/docs/category/tutorials","navigation":{"previous":{"title":"Tree Panel","permalink":"/docs/visualiser/3-1-user-guide/tree"},"next":{"title":"Overview","permalink":"/docs/tutorials/overview"}}}')}}]); \ No newline at end of file diff --git a/assets/js/55f71885.a17fd6a2.js b/assets/js/55f71885.a17fd6a2.js new file mode 100644 index 0000000..c2350ab --- /dev/null +++ b/assets/js/55f71885.a17fd6a2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_2=self.webpackChunkdocs_2||[]).push([[6277],{1562:(e,t,i)=>{i.r(t),i.d(t,{assets:()=>a,contentTitle:()=>o,default:()=>d,frontMatter:()=>n,metadata:()=>u,toc:()=>c});var r=i(5893),s=i(1151);const n={sidebar_position:3},o="Viewport",u={id:"visualiser/3-1-user-guide/viewport",title:"Viewport",description:"[TODO]",source:"@site/docs/3-visualiser/3-1-user-guide/viewport.md",sourceDirName:"3-visualiser/3-1-user-guide",slug:"/visualiser/3-1-user-guide/viewport",permalink:"/docs/visualiser/3-1-user-guide/viewport",draft:!1,unlisted:!1,editUrl:"https://github.com/path-visualiser/path-visualiser.github.io/tree/master/docs/3-visualiser/3-1-user-guide/viewport.md",tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"tutorialSidebar",previous:{title:"UI",permalink:"/docs/visualiser/3-1-user-guide/interface"},next:{title:"Layers",permalink:"/docs/visualiser/3-1-user-guide/layers"}},a={},c=[];function p(e){const t={h1:"h1",p:"p",...(0,s.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.h1,{id:"viewport",children:"Viewport"}),"\n",(0,r.jsx)(t.p,{children:"[TODO]"}),"\n",(0,r.jsx)(t.p,{children:"Pipe Adapter"}),"\n",(0,r.jsx)(t.p,{children:"Weighted A*\n-> Map support\n--\x3e Edit Layer options to specify color of tile\n--\x3e Make changes to grid parser\n-> Multiple solution"}),"\n",(0,r.jsx)(t.p,{children:"Layer name bug"})]})}function d(e={}){const{wrapper:t}={...(0,s.a)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(p,{...e})}):p(e)}},1151:(e,t,i)=>{i.d(t,{Z:()=>u,a:()=>o});var r=i(7294);const s={},n=r.createContext(s);function o(e){const t=r.useContext(n);return r.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function u(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),r.createElement(n.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/55f71885.f7a24c72.js b/assets/js/55f71885.f7a24c72.js deleted file mode 100644 index 23ea524..0000000 --- a/assets/js/55f71885.f7a24c72.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs_2=self.webpackChunkdocs_2||[]).push([[6277],{1562:(e,t,i)=>{i.r(t),i.d(t,{assets:()=>u,contentTitle:()=>o,default:()=>l,frontMatter:()=>n,metadata:()=>a,toc:()=>c});var r=i(5893),s=i(1151);const n={sidebar_position:3},o="Viewport Panel",a={id:"visualiser/3-1-user-guide/viewport",title:"Viewport Panel",description:"[TODO]",source:"@site/docs/3-visualiser/3-1-user-guide/viewport.md",sourceDirName:"3-visualiser/3-1-user-guide",slug:"/visualiser/3-1-user-guide/viewport",permalink:"/docs/visualiser/3-1-user-guide/viewport",draft:!1,unlisted:!1,editUrl:"https://github.com/path-visualiser/path-visualiser.github.io/tree/master/docs/3-visualiser/3-1-user-guide/viewport.md",tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"tutorialSidebar",previous:{title:"User Interface",permalink:"/docs/visualiser/3-1-user-guide/interface"},next:{title:"Layers Panel",permalink:"/docs/visualiser/3-1-user-guide/layers"}},u={},c=[];function p(e){const t={h1:"h1",p:"p",...(0,s.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.h1,{id:"viewport-panel",children:"Viewport Panel"}),"\n",(0,r.jsx)(t.p,{children:"[TODO]"}),"\n",(0,r.jsx)(t.p,{children:"Pipe Adapter"}),"\n",(0,r.jsx)(t.p,{children:"Weighted A*\n-> Map support\n--\x3e Edit Layer options to specify color of tile\n--\x3e Make changes to grid parser\n-> Multiple solution"}),"\n",(0,r.jsx)(t.p,{children:"Layer name bug"})]})}function l(e={}){const{wrapper:t}={...(0,s.a)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(p,{...e})}):p(e)}},1151:(e,t,i)=>{i.d(t,{Z:()=>a,a:()=>o});var r=i(7294);const s={},n=r.createContext(s);function o(e){const t=r.useContext(n);return r.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),r.createElement(n.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/68647428.0663be6c.js b/assets/js/68647428.0663be6c.js new file mode 100644 index 0000000..aa956b6 --- /dev/null +++ b/assets/js/68647428.0663be6c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_2=self.webpackChunkdocs_2||[]).push([[5039],{5247:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>a,contentTitle:()=>u,default:()=>l,frontMatter:()=>n,metadata:()=>o,toc:()=>c});var s=r(5893),i=r(1151);const n={},u="Tree",o={id:"visualiser/3-1-user-guide/tree",title:"Tree",description:"[TODO]",source:"@site/docs/3-visualiser/3-1-user-guide/tree.md",sourceDirName:"3-visualiser/3-1-user-guide",slug:"/visualiser/3-1-user-guide/tree",permalink:"/docs/visualiser/3-1-user-guide/tree",draft:!1,unlisted:!1,editUrl:"https://github.com/path-visualiser/path-visualiser.github.io/tree/master/docs/3-visualiser/3-1-user-guide/tree.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Settings",permalink:"/docs/visualiser/3-1-user-guide/settings"},next:{title:"Tutorials",permalink:"/docs/category/tutorials"}},a={},c=[];function d(e){const t={h1:"h1",p:"p",...(0,i.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h1,{id:"tree",children:"Tree"}),"\n",(0,s.jsx)(t.p,{children:"[TODO]"})]})}function l(e={}){const{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},1151:(e,t,r)=>{r.d(t,{Z:()=>o,a:()=>u});var s=r(7294);const i={},n=s.createContext(i);function u(e){const t=s.useContext(n);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:u(e.components),s.createElement(n.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/68647428.2d88f6bf.js b/assets/js/68647428.2d88f6bf.js deleted file mode 100644 index 670d335..0000000 --- a/assets/js/68647428.2d88f6bf.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs_2=self.webpackChunkdocs_2||[]).push([[5039],{5247:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>a,contentTitle:()=>u,default:()=>d,frontMatter:()=>i,metadata:()=>o,toc:()=>c});var s=r(5893),n=r(1151);const i={},u="Tree Panel",o={id:"visualiser/3-1-user-guide/tree",title:"Tree Panel",description:"[TODO]",source:"@site/docs/3-visualiser/3-1-user-guide/tree.md",sourceDirName:"3-visualiser/3-1-user-guide",slug:"/visualiser/3-1-user-guide/tree",permalink:"/docs/visualiser/3-1-user-guide/tree",draft:!1,unlisted:!1,editUrl:"https://github.com/path-visualiser/path-visualiser.github.io/tree/master/docs/3-visualiser/3-1-user-guide/tree.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Settings Panel",permalink:"/docs/visualiser/3-1-user-guide/settings"},next:{title:"Tutorials",permalink:"/docs/category/tutorials"}},a={},c=[];function l(e){const t={h1:"h1",p:"p",...(0,n.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h1,{id:"tree-panel",children:"Tree Panel"}),"\n",(0,s.jsx)(t.p,{children:"[TODO]"})]})}function d(e={}){const{wrapper:t}={...(0,n.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(l,{...e})}):l(e)}},1151:(e,t,r)=>{r.d(t,{Z:()=>o,a:()=>u});var s=r(7294);const n={},i=s.createContext(n);function u(e){const t=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:u(e.components),s.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/6f3fa7c4.15b452a6.js b/assets/js/6f3fa7c4.15b452a6.js deleted file mode 100644 index 0d0c857..0000000 --- a/assets/js/6f3fa7c4.15b452a6.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs_2=self.webpackChunkdocs_2||[]).push([[2378],{822:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>o,default:()=>l,frontMatter:()=>s,metadata:()=>d,toc:()=>a});var r=t(5893),i=t(1151);const s={},o="Search Trace",d={id:"api/search-trace",title:"Search Trace",description:"Context",source:"@site/docs/6-api/search-trace.md",sourceDirName:"6-api",slug:"/api/search-trace",permalink:"/docs/api/search-trace",draft:!1,unlisted:!1,editUrl:"https://github.com/path-visualiser/path-visualiser.github.io/tree/master/docs/6-api/search-trace.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Overview",permalink:"/docs/api/overview"},next:{title:"Posthoc Adapter Protocol",permalink:"/docs/api/visualiser-adapter-protocol"}},c={},a=[{value:"Context",id:"context",level:2},{value:"Render Definition",id:"render-definition",level:2},{value:"context property",id:"context-property",level:3},{value:"components property",id:"components-property",level:3},{value:"views property",id:"views-property",level:3},{value:"Example Search Trace",id:"example-search-trace",level:3},{value:"Event Record (Event List) Event",id:"event-record-event-list-event",level:2},{value:"Event",id:"event",level:3}];function h(e){const n={a:"a",br:"br",code:"code",h1:"h1",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,i.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.h1,{id:"search-trace",children:"Search Trace"}),"\n",(0,r.jsx)(n.h2,{id:"context",children:"Context"}),"\n",(0,r.jsx)(n.h2,{id:"render-definition",children:"Render Definition"}),"\n",(0,r.jsx)(n.p,{children:"The Render Definition is a template syntax that offers a minimalistic way to detail the visualization of the events."}),"\n",(0,r.jsx)(n.p,{children:"It comprises three properties."}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"views"})," is a required property which contains information on the rendering processes of the individual views."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"context"})," is an optional property which can be used to provide additional information for the components."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"components"})," is optional property which can contain user defined visualization elements."]}),"\n"]}),"\n",(0,r.jsxs)(n.p,{children:["The structure for the ",(0,r.jsx)(n.code,{children:"RenderDefinition"})," is defined below,"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-ts",children:"type View = {\n renderer: string;\n component: Component;\n};\n\ntype RenderDefinition = {\n context?: ContextDefinition;\n components?: { [K: string]: Component[] };\n views: { main: View; secondary: View };\n};\n"})}),"\n",(0,r.jsxs)(n.h3,{id:"context-property",children:[(0,r.jsx)(n.code,{children:"context"})," property"]}),"\n",(0,r.jsx)(n.p,{children:"The context property provides an additional variable environment for components. It can be used to provide new general values and override the default context variables (eg. Changing the colours for the different types of Events.)"}),"\n",(0,r.jsxs)(n.p,{children:["Refer to ",(0,r.jsx)(n.a,{href:"./context.md",children:"context.md"})," for more ",(0,r.jsx)(n.code,{children:"ContextDefinition"})," detail."]}),"\n",(0,r.jsx)(n.h3,{id:"components-property",children:"components property"}),"\n",(0,r.jsxs)(n.p,{children:["The components property is a object of ",(0,r.jsx)(n.a,{href:"#components",children:"Component"})," definitions. The key is the name of the component and the value is list of ",(0,r.jsx)(n.a,{href:"#components",children:"Component"})," which are compose together. This is where the user can create custom element to render each of events. Custom components must be recurse back to inbuilts primitive components."]}),"\n",(0,r.jsxs)(n.p,{children:["Refer to ",(0,r.jsx)(n.a,{href:"../../4-user-guide/renderer/standard-renderers.md",children:"standard-renderers.md"})," for more detail."]}),"\n",(0,r.jsx)(n.h3,{id:"views-property",children:"views property"}),"\n",(0,r.jsx)(n.p,{children:"The views property which is a object of view definitions. The key is the view name and the value is the view information object. Each view defines what component will be displayed in individual window which can be resized."}),"\n",(0,r.jsxs)(n.p,{children:["A view consist a component (which can be comprise of many components) and the name of the renderer it will utilize to draw this component. This component can either be user defined component from the ",(0,r.jsx)(n.a,{href:"#components-property",children:"components property"})," or a prefined component from ",(0,r.jsx)(n.a,{href:"#",children:"renderer"}),"."]}),"\n",(0,r.jsx)(n.p,{children:"Below is an example for the usage of a prefined component."}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-ts",children:'type RendererDefinition = {\n views: { main: { renderer: "2d-pixi"; component: { $: "tree" } } };\n};\n'})}),"\n",(0,r.jsxs)(n.p,{children:["Refer to ",(0,r.jsx)(n.a,{href:"../../4-user-guide/renderer/standard-renderers.md",children:"standard-renderers.md"})," for more detail on the usage of prefined components."]}),"\n",(0,r.jsx)(n.p,{children:"\xa0"}),"\n",(0,r.jsx)(n.h3,{id:"example-search-trace",children:"Example Search Trace"}),"\n",(0,r.jsx)(n.p,{children:"Below is an example renderer definition that specifies that each step in the search trace should be rendered as boxes with their IDs inside."}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-ts",children:'const myTrace = {\n "version": "1.0.5",\n "render": {\n "components": {},\n "views": {\n "main": {\n "components": [\n {\n "$": "rect",\n "fill": "{{$.color[$.event.type]}}",\n "width": 1,\n "height": 1,\n "x": "{{\'x\' in $.event ? $.event.x : 0}}",\n "y": "{{\'y\' in $.event ? $.event.y : 0}}"\n }\n ]\n }\n }\n },\n "events": [\n ...\n {\n "type": "generating",\n "id": 1640,\n "g": 0.00001,\n "f": 0.000320711,\n "pId": 1736,\n "x": 8,\n "y": 14\n },\n ...\n ]\n};\n'})}),"\n",(0,r.jsx)(n.p,{children:"\xa0"}),"\n",(0,r.jsxs)(n.h2,{id:"event-record-event-list-event",children:["Event Record (Event List) ",Event]}),"\n",(0,r.jsxs)(n.p,{children:["The ",(0,r.jsx)(n.code,{children:"events"})," is an array of objects each of which describes the state of a node at a particular stage in a search. Each object in this array is an ",(0,r.jsx)(n.code,{children:"Event"}),"."]}),"\n",(0,r.jsxs)(n.p,{children:["Each of the events in the ",(0,r.jsx)(n.code,{children:"events"})," can be rendered/animated to show the process of the search, this is done by providing the variables of the event to the respectives components. The rendering process will be follow linear progression through the ",(0,r.jsx)(n.code,{children:"events"})]}),"\n",(0,r.jsx)(n.h3,{id:"event",children:"Event"}),"\n",(0,r.jsxs)(n.p,{children:["An ",(0,r.jsx)(n.code,{children:"Event"})," is an object describing a node at a particular state in search.\n",(0,r.jsx)(n.code,{children:"Events"})," have a couple standard properties including"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"id"})," an unique identifier for the node"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"pId"})," the id for the parent of the current node"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"f"})," bound on total cost from start to target from current node"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"g"})," associated cost (g-value)"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"h"})," estimated cost (h-valye)"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"type"})," which signifies state of the node"]}),"\n"]}),"\n",(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Events Types"}),(0,r.jsx)(n.th,{children:"Definition"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"source"}),(0,r.jsx)(n.td,{children:"A Beginning Node of the Search Trace"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"destination"}),(0,r.jsx)(n.td,{children:"A Ending Node of the Search Trace"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"generating"}),(0,r.jsx)(n.td,{children:"A Node that has just been discovered"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"updating"}),(0,r.jsx)(n.td,{children:"A Node thats information is being updated"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"expanding"}),(0,r.jsx)(n.td,{children:"Current Node which is simulating all actions avaiable to it"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"closing"}),(0,r.jsx)(n.td,{children:"Node is done expanding"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"end"}),(0,r.jsx)(n.td,{children:"End node of the search process"})]})]})]}),"\n",(0,r.jsxs)(n.p,{children:["These standard properties will be displayed in visualiser's Info Panel and node's popups for easy inspection.",(0,r.jsx)(n.br,{}),"\n","Events will generally contain more information such as x and y positions that are required for the rendering of the Search Trace. Those custom/additional properties will be provided to the component when rendering."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-ts",children:'export type TraceEventType =\n | "source"\n | "destination"\n | "generating"\n | "updating"\n | "closing"\n | "expanding"\n | "end";\n\nexport type TraceEvent = {\n type: TraceEventType;\n id: number | string;\n pId?: number | string | null;\n f?: number;\n g?: number;\n h?: number;\n [key: string]: any;\n};\n'})})]})}function l(e={}){const{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(h,{...e})}):h(e)}},1151:(e,n,t)=>{t.d(n,{Z:()=>d,a:()=>o});var r=t(7294);const i={},s=r.createContext(i);function o(e){const n=r.useContext(s);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),r.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/6f3fa7c4.9e0ac90b.js b/assets/js/6f3fa7c4.9e0ac90b.js new file mode 100644 index 0000000..b89f76f --- /dev/null +++ b/assets/js/6f3fa7c4.9e0ac90b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_2=self.webpackChunkdocs_2||[]).push([[2378],{822:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>o,default:()=>l,frontMatter:()=>s,metadata:()=>d,toc:()=>a});var r=t(5893),i=t(1151);const s={},o="Search Trace",d={id:"api/search-trace",title:"Search Trace",description:"Context",source:"@site/docs/6-api/search-trace.md",sourceDirName:"6-api",slug:"/api/search-trace",permalink:"/docs/api/search-trace",draft:!1,unlisted:!1,editUrl:"https://github.com/path-visualiser/path-visualiser.github.io/tree/master/docs/6-api/search-trace.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Standard Renderers",permalink:"/docs/api/renderer/standard-renderers"},next:{title:"Posthoc Adapter Protocol",permalink:"/docs/api/visualiser-adapter-protocol"}},c={},a=[{value:"Context",id:"context",level:2},{value:"Render Definition",id:"render-definition",level:2},{value:"context property",id:"context-property",level:3},{value:"components property",id:"components-property",level:3},{value:"views property",id:"views-property",level:3},{value:"Example Search Trace",id:"example-search-trace",level:3},{value:"Event Record (Event List) Event",id:"event-record-event-list-event",level:2},{value:"Event",id:"event",level:3}];function h(e){const n={a:"a",br:"br",code:"code",h1:"h1",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,i.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.h1,{id:"search-trace",children:"Search Trace"}),"\n",(0,r.jsx)(n.h2,{id:"context",children:"Context"}),"\n",(0,r.jsx)(n.h2,{id:"render-definition",children:"Render Definition"}),"\n",(0,r.jsx)(n.p,{children:"The Render Definition is a template syntax that offers a minimalistic way to detail the visualization of the events."}),"\n",(0,r.jsx)(n.p,{children:"It comprises three properties."}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"views"})," is a required property which contains information on the rendering processes of the individual views."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"context"})," is an optional property which can be used to provide additional information for the components."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"components"})," is optional property which can contain user defined visualization elements."]}),"\n"]}),"\n",(0,r.jsxs)(n.p,{children:["The structure for the ",(0,r.jsx)(n.code,{children:"RenderDefinition"})," is defined below,"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-ts",children:"type View = {\n renderer: string;\n component: Component;\n};\n\ntype RenderDefinition = {\n context?: ContextDefinition;\n components?: { [K: string]: Component[] };\n views: { main: View; secondary: View };\n};\n"})}),"\n",(0,r.jsxs)(n.h3,{id:"context-property",children:[(0,r.jsx)(n.code,{children:"context"})," property"]}),"\n",(0,r.jsx)(n.p,{children:"The context property provides an additional variable environment for components. It can be used to provide new general values and override the default context variables (eg. Changing the colours for the different types of Events.)"}),"\n",(0,r.jsxs)(n.p,{children:["Refer to ",(0,r.jsx)(n.a,{href:"./context.md",children:"context.md"})," for more ",(0,r.jsx)(n.code,{children:"ContextDefinition"})," detail."]}),"\n",(0,r.jsx)(n.h3,{id:"components-property",children:"components property"}),"\n",(0,r.jsxs)(n.p,{children:["The components property is a object of ",(0,r.jsx)(n.a,{href:"#components",children:"Component"})," definitions. The key is the name of the component and the value is list of ",(0,r.jsx)(n.a,{href:"#components",children:"Component"})," which are compose together. This is where the user can create custom element to render each of events. Custom components must be recurse back to inbuilts primitive components."]}),"\n",(0,r.jsxs)(n.p,{children:["Refer to ",(0,r.jsx)(n.a,{href:"../../4-user-guide/renderer/standard-renderers.md",children:"standard-renderers.md"})," for more detail."]}),"\n",(0,r.jsx)(n.h3,{id:"views-property",children:"views property"}),"\n",(0,r.jsx)(n.p,{children:"The views property which is a object of view definitions. The key is the view name and the value is the view information object. Each view defines what component will be displayed in individual window which can be resized."}),"\n",(0,r.jsxs)(n.p,{children:["A view consist a component (which can be comprise of many components) and the name of the renderer it will utilize to draw this component. This component can either be user defined component from the ",(0,r.jsx)(n.a,{href:"#components-property",children:"components property"})," or a prefined component from ",(0,r.jsx)(n.a,{href:"#",children:"renderer"}),"."]}),"\n",(0,r.jsx)(n.p,{children:"Below is an example for the usage of a prefined component."}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-ts",children:'type RendererDefinition = {\n views: { main: { renderer: "2d-pixi"; component: { $: "tree" } } };\n};\n'})}),"\n",(0,r.jsxs)(n.p,{children:["Refer to ",(0,r.jsx)(n.a,{href:"../../4-user-guide/renderer/standard-renderers.md",children:"standard-renderers.md"})," for more detail on the usage of prefined components."]}),"\n",(0,r.jsx)(n.p,{children:"\xa0"}),"\n",(0,r.jsx)(n.h3,{id:"example-search-trace",children:"Example Search Trace"}),"\n",(0,r.jsx)(n.p,{children:"Below is an example renderer definition that specifies that each step in the search trace should be rendered as boxes with their IDs inside."}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-ts",children:'const myTrace = {\n "version": "1.0.5",\n "render": {\n "components": {},\n "views": {\n "main": {\n "components": [\n {\n "$": "rect",\n "fill": "{{$.color[$.event.type]}}",\n "width": 1,\n "height": 1,\n "x": "{{\'x\' in $.event ? $.event.x : 0}}",\n "y": "{{\'y\' in $.event ? $.event.y : 0}}"\n }\n ]\n }\n }\n },\n "events": [\n ...\n {\n "type": "generating",\n "id": 1640,\n "g": 0.00001,\n "f": 0.000320711,\n "pId": 1736,\n "x": 8,\n "y": 14\n },\n ...\n ]\n};\n'})}),"\n",(0,r.jsx)(n.p,{children:"\xa0"}),"\n",(0,r.jsxs)(n.h2,{id:"event-record-event-list-event",children:["Event Record (Event List) ",Event]}),"\n",(0,r.jsxs)(n.p,{children:["The ",(0,r.jsx)(n.code,{children:"events"})," is an array of objects each of which describes the state of a node at a particular stage in a search. Each object in this array is an ",(0,r.jsx)(n.code,{children:"Event"}),"."]}),"\n",(0,r.jsxs)(n.p,{children:["Each of the events in the ",(0,r.jsx)(n.code,{children:"events"})," can be rendered/animated to show the process of the search, this is done by providing the variables of the event to the respectives components. The rendering process will be follow linear progression through the ",(0,r.jsx)(n.code,{children:"events"})]}),"\n",(0,r.jsx)(n.h3,{id:"event",children:"Event"}),"\n",(0,r.jsxs)(n.p,{children:["An ",(0,r.jsx)(n.code,{children:"Event"})," is an object describing a node at a particular state in search.\n",(0,r.jsx)(n.code,{children:"Events"})," have a couple standard properties including"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"id"})," an unique identifier for the node"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"pId"})," the id for the parent of the current node"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"f"})," bound on total cost from start to target from current node"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"g"})," associated cost (g-value)"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"h"})," estimated cost (h-valye)"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"type"})," which signifies state of the node"]}),"\n"]}),"\n",(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Events Types"}),(0,r.jsx)(n.th,{children:"Definition"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"source"}),(0,r.jsx)(n.td,{children:"A Beginning Node of the Search Trace"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"destination"}),(0,r.jsx)(n.td,{children:"A Ending Node of the Search Trace"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"generating"}),(0,r.jsx)(n.td,{children:"A Node that has just been discovered"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"updating"}),(0,r.jsx)(n.td,{children:"A Node thats information is being updated"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"expanding"}),(0,r.jsx)(n.td,{children:"Current Node which is simulating all actions avaiable to it"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"closing"}),(0,r.jsx)(n.td,{children:"Node is done expanding"})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:"end"}),(0,r.jsx)(n.td,{children:"End node of the search process"})]})]})]}),"\n",(0,r.jsxs)(n.p,{children:["These standard properties will be displayed in visualiser's Info Panel and node's popups for easy inspection.",(0,r.jsx)(n.br,{}),"\n","Events will generally contain more information such as x and y positions that are required for the rendering of the Search Trace. Those custom/additional properties will be provided to the component when rendering."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-ts",children:'export type TraceEventType =\n | "source"\n | "destination"\n | "generating"\n | "updating"\n | "closing"\n | "expanding"\n | "end";\n\nexport type TraceEvent = {\n type: TraceEventType;\n id: number | string;\n pId?: number | string | null;\n f?: number;\n g?: number;\n h?: number;\n [key: string]: any;\n};\n'})})]})}function l(e={}){const{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(h,{...e})}):h(e)}},1151:(e,n,t)=>{t.d(n,{Z:()=>d,a:()=>o});var r=t(7294);const i={},s=r.createContext(i);function o(e){const n=r.useContext(s);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),r.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/7163198f.3f4f897f.js b/assets/js/7163198f.3f4f897f.js new file mode 100644 index 0000000..eeb869a --- /dev/null +++ b/assets/js/7163198f.3f4f897f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_2=self.webpackChunkdocs_2||[]).push([[7005],{6265:(e,n,t)=>{t.d(n,{ZP:()=>i});var r=t(5893),s=t(1151);function a(e){const n={li:"li",strong:"strong",ul:"ul",...(0,s.a)(),...e.components};return(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["In the ",(0,r.jsx)(n.strong,{children:"Layer"})," panel, click ",(0,r.jsx)(n.strong,{children:"+ Layer"})," to add a new layer."]}),"\n",(0,r.jsx)(n.li,{children:"Click the pencil icon to edit the layer."}),"\n",(0,r.jsxs)(n.li,{children:["For ",(0,r.jsx)(n.strong,{children:"Type"}),", choose ",(0,r.jsx)(n.strong,{children:"Trace"}),"."]}),"\n",(0,r.jsxs)(n.li,{children:["For ",(0,r.jsx)(n.strong,{children:"Trace"}),", choose ",(0,r.jsx)(n.strong,{children:"Choose File"}),", then pick the search trace from your system."]}),"\n",(0,r.jsxs)(n.li,{children:["Close the ",(0,r.jsx)(n.strong,{children:"Edit Layer"})," modal."]}),"\n",(0,r.jsxs)(n.li,{children:["In the ",(0,r.jsx)(n.strong,{children:"Viewport"})," panel, click ",(0,r.jsx)(n.strong,{children:"Fit"})," to fit the map to the viewport."]}),"\n"]})}function i(e={}){const{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(a,{...e})}):a(e)}},7018:(e,n,t)=>{t.d(n,{ZP:()=>l});var r=t(5893),s=t(1151);const a=t.p+"assets/images/step-through-trace-acf140b666c50587044d8b193da3b200.png";function i(e){const n={li:"li",strong:"strong",ul:"ul",...(0,s.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["In the ",(0,r.jsx)(n.strong,{children:"Steps"})," panel, choose the search trace layer from the layer dropdown. Here, the layer is named ",(0,r.jsx)(n.strong,{children:e.traceName??"Cross Example"}),"."]}),"\n",(0,r.jsxs)(n.li,{children:["Click ",(0,r.jsx)(n.strong,{children:"Play"}),"."]}),"\n"]}),"\n",(0,r.jsx)("img",{src:e.image??a,alt:"Step through trace"})]})}function l(e={}){const{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(i,{...e})}):i(e)}},3199:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>u,contentTitle:()=>d,default:()=>x,frontMatter:()=>c,metadata:()=>h,toc:()=>p});var r=t(5893),s=t(1151),a=t(3992),i=t(425),l=t(6265),o=t(7018);const c={},d="Single Agent Grid Search",h={id:"tutorials/single-agent-grid",title:"Single Agent Grid Search",description:"Follow these steps to visualise a single-agent search, in our case A\\*, on a grid map.",source:"@site/docs/4-tutorials/single-agent-grid.mdx",sourceDirName:"4-tutorials",slug:"/tutorials/single-agent-grid",permalink:"/docs/tutorials/single-agent-grid",draft:!1,unlisted:!1,editUrl:"https://github.com/path-visualiser/path-visualiser.github.io/tree/master/docs/4-tutorials/single-agent-grid.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Tutorials",permalink:"/docs/category/tutorials"},next:{title:"Decision Tree Search",permalink:"/docs/tutorials/tile"}},u={},p=[{value:"Prepare the Map",id:"prepare-the-map",level:2},{value:"Load the Map",id:"load-the-map",level:2},{value:"Prepare the Search Trace",id:"prepare-the-search-trace",level:2},{value:"Load the Search Trace",id:"load-the-search-trace",level:2},{value:"Adding the Query",id:"adding-the-query",level:2},{value:"Adding Source and Destination",id:"adding-source-and-destination",level:2},{value:"Step through the Search Trace",id:"step-through-the-search-trace",level:2}];function g(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",img:"img",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,s.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.h1,{id:"single-agent-grid-search",children:"Single Agent Grid Search"}),"\n",(0,r.jsx)(n.p,{children:"Follow these steps to visualise a single-agent search, in our case A*, on a grid map."}),"\n",(0,r.jsx)(n.h2,{id:"prepare-the-map",children:"Prepare the Map"}),"\n",(0,r.jsxs)(n.p,{children:["We support grid maps as ",(0,r.jsx)(n.code,{children:".grid"})," files. A ",(0,r.jsx)(n.code,{children:".grid"})," file is a text file that looks like this:"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-txt",metastring:'title="cross.grid"',children:"type octile\nheight 5\nwidth 5\nmap\n.....\n..@..\n.@@@.\n..@..\n.....\n"})}),"\n",(0,r.jsxs)(n.p,{children:["Save this file as ",(0,r.jsx)(n.code,{children:"cross.grid"})," to your system."]}),"\n",(0,r.jsx)(n.h2,{id:"load-the-map",children:"Load the Map"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["In the ",(0,r.jsx)(n.strong,{children:"Layer"})," panel, click ",(0,r.jsx)(n.strong,{children:"+ Layer"})," to add a new layer."]}),"\n",(0,r.jsx)(n.li,{children:"Click the pencil icon to edit the layer."}),"\n",(0,r.jsxs)(n.li,{children:["For ",(0,r.jsx)(n.strong,{children:"Type"}),", choose ",(0,r.jsx)(n.strong,{children:"Map"}),"."]}),"\n",(0,r.jsxs)(n.li,{children:["For ",(0,r.jsx)(n.strong,{children:"Source"}),", choose ",(0,r.jsx)(n.strong,{children:"Import Map"}),", then pick ",(0,r.jsx)(n.code,{children:"cross.grid"})," from your system."]}),"\n",(0,r.jsxs)(n.li,{children:["Close the ",(0,r.jsx)(n.strong,{children:"Edit Layer"})," modal."]}),"\n",(0,r.jsxs)(n.li,{children:["In the ",(0,r.jsx)(n.strong,{children:"Viewport"})," panel, click ",(0,r.jsx)(n.strong,{children:"Fit"})," to fit the map to the viewport."]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"This should be the result:"}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.img,{alt:"Loaded map",src:t(8907).Z+"",width:"2560",height:"1528"})}),"\n",(0,r.jsx)(n.h2,{id:"prepare-the-search-trace",children:"Prepare the Search Trace"}),"\n",(0,r.jsx)(n.p,{children:"You can generate the search trace in a number of ways depending on your solver."}),"\n",(0,r.jsxs)(a.Z,{children:[(0,r.jsxs)(i.Z,{value:"raw",label:"Demo Search Trace",children:[(0,r.jsxs)(n.p,{children:["Download ",(0,r.jsx)(n.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:t(6344).Z+"",children:"this"})," pre-computed search trace."]}),(0,r.jsx)(n.p,{children:"The file should start like this:"}),(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-yaml",metastring:'title="example.trace.yaml"',children:'render:\n components:\n tile:\n - $: rect\n width: 1\n height: 1\n x: "{{$.event.x}}"\n y: "{{$.event.y}}"\n fill: "{{$.color[$.event.type]}}"\n views:\n main:\n components:\n - $: tile\n path:\n pivot:\n x: "{{$.event.x + 0.5}}"\n y: "{{$.event.y + 0.5}}"\n scale: 0.3\nevents:\n - type: source\n id: 96\n x: 0\n y: 0\n - type: destination\n id: 228\n x: 4\n y: 4\n'})}),(0,r.jsx)(n.p,{children:"The search trace contains a record of the events that occured during the search and how to visualise them."}),(0,r.jsx)(n.h2,{id:"load-the-search-trace",children:"Load the Search Trace"}),(0,r.jsx)(l.ZP,{})]}),(0,r.jsx)(i.Z,{value:"warthog",label:"Warthog",children:(0,r.jsx)(n.p,{children:"TODO: explain on how warthog can be download and used through the terminal and produce a search trace"})}),(0,r.jsxs)(i.Z,{value:"query",label:"Query",children:[(0,r.jsx)(n.p,{children:"By default, Visualiser is bundled with a WebAssembly version of Warthog, a solver for grid maps."}),(0,r.jsxs)(n.p,{children:["Check that ",(0,r.jsx)(n.strong,{children:"Warthog (WebAssembly)"})," is enabled in the ",(0,r.jsx)(n.strong,{children:"Settings"})," panel, in the ",(0,r.jsx)(n.strong,{children:"Connections"})," tab."]}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.img,{alt:"Alt text",src:t(7195).Z+"",width:"1431",height:"147"})}),(0,r.jsx)(n.h2,{id:"adding-the-query",children:"Adding the Query"}),(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["In the ",(0,r.jsx)(n.strong,{children:"Layer"})," panel, click ",(0,r.jsx)(n.strong,{children:"+ Layer"})," to add a new layer."]}),"\n",(0,r.jsx)(n.li,{children:"Click the pencil icon to edit the layer."}),"\n",(0,r.jsxs)(n.li,{children:["For ",(0,r.jsx)(n.strong,{children:"Type"}),", choose ",(0,r.jsx)(n.strong,{children:"Query"}),"."]}),"\n",(0,r.jsxs)(n.li,{children:["For ",(0,r.jsx)(n.strong,{children:"Algorithm"}),", choose the algorithm that you want to visualise."]}),"\n",(0,r.jsxs)(n.li,{children:["For ",(0,r.jsx)(n.strong,{children:"Map"}),", choose a map that you have chose."]}),"\n",(0,r.jsxs)(n.li,{children:["Close the ",(0,r.jsx)(n.strong,{children:"Edit Layer"})," modal."]}),"\n"]}),(0,r.jsx)(n.h2,{id:"adding-source-and-destination",children:"Adding Source and Destination"}),(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["Left click on any part of the map that you wanted to be set as a source, then ",(0,r.jsx)(n.strong,{children:"Set as Source"})]}),"\n",(0,r.jsxs)(n.li,{children:["Do the same for the destination click ",(0,r.jsx)(n.strong,{children:"Set as Destination"})]}),"\n",(0,r.jsx)(n.li,{children:"A green pixel will show up marking the source"}),"\n"]}),(0,r.jsxs)(n.p,{children:["A demonstration on how to add a query, destination and source is provided in this ",(0,r.jsx)(n.a,{href:"https://youtu.be/7hFjyrnAVkA",children:"Video"})]})]})]}),"\n",(0,r.jsx)(n.h2,{id:"step-through-the-search-trace",children:"Step through the Search Trace"}),"\n",(0,r.jsx)(o.ZP,{}),"\n",(0,r.jsx)(n.p,{children:"\xa0"}),"\n",(0,r.jsxs)(n.p,{children:["A demonstration on how to import a map and a trace is provided in this ",(0,r.jsx)(n.a,{href:"https://youtu.be/MkA-Qf2TAZQ",children:"Video"}),"\n\xa0"]}),"\n",(0,r.jsx)(n.p,{children:"You have now visualised an A* search on a grid map."})]})}function x(e={}){const{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(g,{...e})}):g(e)}},425:(e,n,t)=>{t.d(n,{Z:()=>i});t(7294);var r=t(6905);const s={tabItem:"tabItem_Ymn6"};var a=t(5893);function i(e){let{children:n,hidden:t,className:i}=e;return(0,a.jsx)("div",{role:"tabpanel",className:(0,r.Z)(s.tabItem,i),hidden:t,children:n})}},3992:(e,n,t)=>{t.d(n,{Z:()=>w});var r=t(7294),s=t(6905),a=t(2957),i=t(6550),l=t(1270),o=t(5238),c=t(3609),d=t(2560);function h(e){return r.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}function u(e){const{values:n,children:t}=e;return(0,r.useMemo)((()=>{const e=n??function(e){return h(e).map((e=>{let{props:{value:n,label:t,attributes:r,default:s}}=e;return{value:n,label:t,attributes:r,default:s}}))}(t);return function(e){const n=(0,c.l)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[n,t])}function p(e){let{value:n,tabValues:t}=e;return t.some((e=>e.value===n))}function g(e){let{queryString:n=!1,groupId:t}=e;const s=(0,i.k6)(),a=function(e){let{queryString:n=!1,groupId:t}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!t)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:n,groupId:t});return[(0,o._X)(a),(0,r.useCallback)((e=>{if(!a)return;const n=new URLSearchParams(s.location.search);n.set(a,e),s.replace({...s.location,search:n.toString()})}),[a,s])]}function x(e){const{defaultValue:n,queryString:t=!1,groupId:s}=e,a=u(e),[i,o]=(0,r.useState)((()=>function(e){let{defaultValue:n,tabValues:t}=e;if(0===t.length)throw new Error("Docusaurus error: the component requires at least one children component");if(n){if(!p({value:n,tabValues:t}))throw new Error(`Docusaurus error: The has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${t.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const r=t.find((e=>e.default))??t[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:n,tabValues:a}))),[c,h]=g({queryString:t,groupId:s}),[x,m]=function(e){let{groupId:n}=e;const t=function(e){return e?`docusaurus.tab.${e}`:null}(n),[s,a]=(0,d.Nk)(t);return[s,(0,r.useCallback)((e=>{t&&a.set(e)}),[t,a])]}({groupId:s}),j=(()=>{const e=c??x;return p({value:e,tabValues:a})?e:null})();(0,l.Z)((()=>{j&&o(j)}),[j]);return{selectedValue:i,selectValue:(0,r.useCallback)((e=>{if(!p({value:e,tabValues:a}))throw new Error(`Can't select invalid tab value=${e}`);o(e),h(e),m(e)}),[h,m,a]),tabValues:a}}var m=t(1048);const j={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var f=t(5893);function b(e){let{className:n,block:t,selectedValue:r,selectValue:i,tabValues:l}=e;const o=[],{blockElementScrollPositionUntilNextRender:c}=(0,a.o5)(),d=e=>{const n=e.currentTarget,t=o.indexOf(n),s=l[t].value;s!==r&&(c(n),i(s))},h=e=>{let n=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{const t=o.indexOf(e.currentTarget)+1;n=o[t]??o[0];break}case"ArrowLeft":{const t=o.indexOf(e.currentTarget)-1;n=o[t]??o[o.length-1];break}}n?.focus()};return(0,f.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,s.Z)("tabs",{"tabs--block":t},n),children:l.map((e=>{let{value:n,label:t,attributes:a}=e;return(0,f.jsx)("li",{role:"tab",tabIndex:r===n?0:-1,"aria-selected":r===n,ref:e=>o.push(e),onKeyDown:h,onClick:d,...a,className:(0,s.Z)("tabs__item",j.tabItem,a?.className,{"tabs__item--active":r===n}),children:t??n},n)}))})}function v(e){let{lazy:n,children:t,selectedValue:s}=e;const a=(Array.isArray(t)?t:[t]).filter(Boolean);if(n){const e=a.find((e=>e.props.value===s));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return(0,f.jsx)("div",{className:"margin-top--md",children:a.map(((e,n)=>(0,r.cloneElement)(e,{key:n,hidden:e.props.value!==s})))})}function y(e){const n=x(e);return(0,f.jsxs)("div",{className:(0,s.Z)("tabs-container",j.tabList),children:[(0,f.jsx)(b,{...e,...n}),(0,f.jsx)(v,{...e,...n})]})}function w(e){const n=(0,m.Z)();return(0,f.jsx)(y,{...e,children:h(e.children)},String(n))}},6344:(e,n,t)=>{t.d(n,{Z:()=>r});const r=t.p+"assets/files/cross-example.trace-b97f7dba5f7e43dd0d8dafb4af4564a4.yaml"},7195:(e,n,t)=>{t.d(n,{Z:()=>r});const r=t.p+"assets/images/image-19cd2340cec959c976688f2a57be83e9.png"},8907:(e,n,t)=>{t.d(n,{Z:()=>r});const r=t.p+"assets/images/load-grid-170f3cdc8f470730f1d8b1e275d090a9.png"},1151:(e,n,t)=>{t.d(n,{Z:()=>l,a:()=>i});var r=t(7294);const s={},a=r.createContext(s);function i(e){const n=r.useContext(a);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:i(e.components),r.createElement(a.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/7163198f.caaf1cb4.js b/assets/js/7163198f.caaf1cb4.js deleted file mode 100644 index 18e71ee..0000000 --- a/assets/js/7163198f.caaf1cb4.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs_2=self.webpackChunkdocs_2||[]).push([[7005],{6265:(e,n,t)=>{t.d(n,{ZP:()=>i});var r=t(5893),s=t(1151);function a(e){const n={li:"li",strong:"strong",ul:"ul",...(0,s.a)(),...e.components};return(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["In the ",(0,r.jsx)(n.strong,{children:"Layer"})," panel, click ",(0,r.jsx)(n.strong,{children:"+ Layer"})," to add a new layer."]}),"\n",(0,r.jsx)(n.li,{children:"Click the pencil icon to edit the layer."}),"\n",(0,r.jsxs)(n.li,{children:["For ",(0,r.jsx)(n.strong,{children:"Type"}),", choose ",(0,r.jsx)(n.strong,{children:"Trace"}),"."]}),"\n",(0,r.jsxs)(n.li,{children:["For ",(0,r.jsx)(n.strong,{children:"Trace"}),", choose ",(0,r.jsx)(n.strong,{children:"Choose File"}),", then pick the search trace from your system."]}),"\n",(0,r.jsxs)(n.li,{children:["Close the ",(0,r.jsx)(n.strong,{children:"Edit Layer"})," modal."]}),"\n",(0,r.jsxs)(n.li,{children:["In the ",(0,r.jsx)(n.strong,{children:"Viewport"})," panel, click ",(0,r.jsx)(n.strong,{children:"Fit"})," to fit the map to the viewport."]}),"\n"]})}function i(e={}){const{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(a,{...e})}):a(e)}},7018:(e,n,t)=>{t.d(n,{ZP:()=>l});var r=t(5893),s=t(1151);const a=t.p+"assets/images/step-through-trace-acf140b666c50587044d8b193da3b200.png";function i(e){const n={li:"li",strong:"strong",ul:"ul",...(0,s.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["In the ",(0,r.jsx)(n.strong,{children:"Steps"})," panel, choose the search trace layer from the layer dropdown. Here, the layer is named ",(0,r.jsx)(n.strong,{children:e.traceName??"Cross Example"}),"."]}),"\n",(0,r.jsxs)(n.li,{children:["Click ",(0,r.jsx)(n.strong,{children:"Play"}),"."]}),"\n"]}),"\n",(0,r.jsx)("img",{src:e.image??a,alt:"Step through trace"})]})}function l(e={}){const{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(i,{...e})}):i(e)}},3199:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>u,contentTitle:()=>d,default:()=>x,frontMatter:()=>c,metadata:()=>h,toc:()=>p});var r=t(5893),s=t(1151),a=t(3992),i=t(425),l=t(6265),o=t(7018);const c={},d="Single Agent Grid Search",h={id:"tutorials/single-agent-grid",title:"Single Agent Grid Search",description:"Follow these steps to visualise a single-agent search, in our case A\\*, on a grid map.",source:"@site/docs/4-tutorials/single-agent-grid.mdx",sourceDirName:"4-tutorials",slug:"/tutorials/single-agent-grid",permalink:"/docs/tutorials/single-agent-grid",draft:!1,unlisted:!1,editUrl:"https://github.com/path-visualiser/path-visualiser.github.io/tree/master/docs/4-tutorials/single-agent-grid.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Overview",permalink:"/docs/tutorials/overview"},next:{title:"Decision Tree Search",permalink:"/docs/tutorials/tile"}},u={},p=[{value:"Prepare the Map",id:"prepare-the-map",level:2},{value:"Load the Map",id:"load-the-map",level:2},{value:"Prepare the Search Trace",id:"prepare-the-search-trace",level:2},{value:"Load the Search Trace",id:"load-the-search-trace",level:2},{value:"Adding the Query",id:"adding-the-query",level:2},{value:"Adding Source and Destination",id:"adding-source-and-destination",level:2},{value:"Step through the Search Trace",id:"step-through-the-search-trace",level:2}];function g(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",img:"img",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,s.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.h1,{id:"single-agent-grid-search",children:"Single Agent Grid Search"}),"\n",(0,r.jsx)(n.p,{children:"Follow these steps to visualise a single-agent search, in our case A*, on a grid map."}),"\n",(0,r.jsx)(n.h2,{id:"prepare-the-map",children:"Prepare the Map"}),"\n",(0,r.jsxs)(n.p,{children:["We support grid maps as ",(0,r.jsx)(n.code,{children:".grid"})," files. A ",(0,r.jsx)(n.code,{children:".grid"})," file is a text file that looks like this:"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-txt",metastring:'title="cross.grid"',children:"type octile\nheight 5\nwidth 5\nmap\n.....\n..@..\n.@@@.\n..@..\n.....\n"})}),"\n",(0,r.jsxs)(n.p,{children:["Save this file as ",(0,r.jsx)(n.code,{children:"cross.grid"})," to your system."]}),"\n",(0,r.jsx)(n.h2,{id:"load-the-map",children:"Load the Map"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["In the ",(0,r.jsx)(n.strong,{children:"Layer"})," panel, click ",(0,r.jsx)(n.strong,{children:"+ Layer"})," to add a new layer."]}),"\n",(0,r.jsx)(n.li,{children:"Click the pencil icon to edit the layer."}),"\n",(0,r.jsxs)(n.li,{children:["For ",(0,r.jsx)(n.strong,{children:"Type"}),", choose ",(0,r.jsx)(n.strong,{children:"Map"}),"."]}),"\n",(0,r.jsxs)(n.li,{children:["For ",(0,r.jsx)(n.strong,{children:"Source"}),", choose ",(0,r.jsx)(n.strong,{children:"Import Map"}),", then pick ",(0,r.jsx)(n.code,{children:"cross.grid"})," from your system."]}),"\n",(0,r.jsxs)(n.li,{children:["Close the ",(0,r.jsx)(n.strong,{children:"Edit Layer"})," modal."]}),"\n",(0,r.jsxs)(n.li,{children:["In the ",(0,r.jsx)(n.strong,{children:"Viewport"})," panel, click ",(0,r.jsx)(n.strong,{children:"Fit"})," to fit the map to the viewport."]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"This should be the result:"}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.img,{alt:"Loaded map",src:t(8907).Z+"",width:"2560",height:"1528"})}),"\n",(0,r.jsx)(n.h2,{id:"prepare-the-search-trace",children:"Prepare the Search Trace"}),"\n",(0,r.jsx)(n.p,{children:"You can generate the search trace in a number of ways depending on your solver."}),"\n",(0,r.jsxs)(a.Z,{children:[(0,r.jsxs)(i.Z,{value:"raw",label:"Demo Search Trace",children:[(0,r.jsxs)(n.p,{children:["Download ",(0,r.jsx)(n.a,{target:"_blank","data-noBrokenLinkCheck":!0,href:t(6344).Z+"",children:"this"})," pre-computed search trace."]}),(0,r.jsx)(n.p,{children:"The file should start like this:"}),(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-yaml",metastring:'title="example.trace.yaml"',children:'render:\n components:\n tile:\n - $: rect\n width: 1\n height: 1\n x: "{{$.event.x}}"\n y: "{{$.event.y}}"\n fill: "{{$.color[$.event.type]}}"\n views:\n main:\n components:\n - $: tile\n path:\n pivot:\n x: "{{$.event.x + 0.5}}"\n y: "{{$.event.y + 0.5}}"\n scale: 0.3\nevents:\n - type: source\n id: 96\n x: 0\n y: 0\n - type: destination\n id: 228\n x: 4\n y: 4\n'})}),(0,r.jsx)(n.p,{children:"The search trace contains a record of the events that occured during the search and how to visualise them."}),(0,r.jsx)(n.h2,{id:"load-the-search-trace",children:"Load the Search Trace"}),(0,r.jsx)(l.ZP,{})]}),(0,r.jsx)(i.Z,{value:"warthog",label:"Warthog",children:(0,r.jsx)(n.p,{children:"TODO: explain on how warthog can be download and used through the terminal and produce a search trace"})}),(0,r.jsxs)(i.Z,{value:"query",label:"Query",children:[(0,r.jsx)(n.p,{children:"By default, Visualiser is bundled with a WebAssembly version of Warthog, a solver for grid maps."}),(0,r.jsxs)(n.p,{children:["Check that ",(0,r.jsx)(n.strong,{children:"Warthog (WebAssembly)"})," is enabled in the ",(0,r.jsx)(n.strong,{children:"Settings"})," panel, in the ",(0,r.jsx)(n.strong,{children:"Connections"})," tab."]}),(0,r.jsx)(n.p,{children:(0,r.jsx)(n.img,{alt:"Alt text",src:t(7195).Z+"",width:"1431",height:"147"})}),(0,r.jsx)(n.h2,{id:"adding-the-query",children:"Adding the Query"}),(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["In the ",(0,r.jsx)(n.strong,{children:"Layer"})," panel, click ",(0,r.jsx)(n.strong,{children:"+ Layer"})," to add a new layer."]}),"\n",(0,r.jsx)(n.li,{children:"Click the pencil icon to edit the layer."}),"\n",(0,r.jsxs)(n.li,{children:["For ",(0,r.jsx)(n.strong,{children:"Type"}),", choose ",(0,r.jsx)(n.strong,{children:"Query"}),"."]}),"\n",(0,r.jsxs)(n.li,{children:["For ",(0,r.jsx)(n.strong,{children:"Algorithm"}),", choose the algorithm that you want to visualise."]}),"\n",(0,r.jsxs)(n.li,{children:["For ",(0,r.jsx)(n.strong,{children:"Map"}),", choose a map that you have chose."]}),"\n",(0,r.jsxs)(n.li,{children:["Close the ",(0,r.jsx)(n.strong,{children:"Edit Layer"})," modal."]}),"\n"]}),(0,r.jsx)(n.h2,{id:"adding-source-and-destination",children:"Adding Source and Destination"}),(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["Left click on any part of the map that you wanted to be set as a source, then ",(0,r.jsx)(n.strong,{children:"Set as Source"})]}),"\n",(0,r.jsxs)(n.li,{children:["Do the same for the destination click ",(0,r.jsx)(n.strong,{children:"Set as Destination"})]}),"\n",(0,r.jsx)(n.li,{children:"A green pixel will show up marking the source"}),"\n"]}),(0,r.jsxs)(n.p,{children:["A demonstration on how to add a query, destination and source is provided in this ",(0,r.jsx)(n.a,{href:"https://youtu.be/7hFjyrnAVkA",children:"Video"})]})]})]}),"\n",(0,r.jsx)(n.h2,{id:"step-through-the-search-trace",children:"Step through the Search Trace"}),"\n",(0,r.jsx)(o.ZP,{}),"\n",(0,r.jsx)(n.p,{children:"\xa0"}),"\n",(0,r.jsxs)(n.p,{children:["A demonstration on how to import a map and a trace is provided in this ",(0,r.jsx)(n.a,{href:"https://youtu.be/MkA-Qf2TAZQ",children:"Video"}),"\n\xa0"]}),"\n",(0,r.jsx)(n.p,{children:"You have now visualised an A* search on a grid map."})]})}function x(e={}){const{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(g,{...e})}):g(e)}},425:(e,n,t)=>{t.d(n,{Z:()=>i});t(7294);var r=t(6905);const s={tabItem:"tabItem_Ymn6"};var a=t(5893);function i(e){let{children:n,hidden:t,className:i}=e;return(0,a.jsx)("div",{role:"tabpanel",className:(0,r.Z)(s.tabItem,i),hidden:t,children:n})}},3992:(e,n,t)=>{t.d(n,{Z:()=>w});var r=t(7294),s=t(6905),a=t(2957),i=t(6550),l=t(1270),o=t(5238),c=t(3609),d=t(2560);function h(e){return r.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}function u(e){const{values:n,children:t}=e;return(0,r.useMemo)((()=>{const e=n??function(e){return h(e).map((e=>{let{props:{value:n,label:t,attributes:r,default:s}}=e;return{value:n,label:t,attributes:r,default:s}}))}(t);return function(e){const n=(0,c.l)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[n,t])}function p(e){let{value:n,tabValues:t}=e;return t.some((e=>e.value===n))}function g(e){let{queryString:n=!1,groupId:t}=e;const s=(0,i.k6)(),a=function(e){let{queryString:n=!1,groupId:t}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!t)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:n,groupId:t});return[(0,o._X)(a),(0,r.useCallback)((e=>{if(!a)return;const n=new URLSearchParams(s.location.search);n.set(a,e),s.replace({...s.location,search:n.toString()})}),[a,s])]}function x(e){const{defaultValue:n,queryString:t=!1,groupId:s}=e,a=u(e),[i,o]=(0,r.useState)((()=>function(e){let{defaultValue:n,tabValues:t}=e;if(0===t.length)throw new Error("Docusaurus error: the component requires at least one children component");if(n){if(!p({value:n,tabValues:t}))throw new Error(`Docusaurus error: The has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${t.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const r=t.find((e=>e.default))??t[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:n,tabValues:a}))),[c,h]=g({queryString:t,groupId:s}),[x,m]=function(e){let{groupId:n}=e;const t=function(e){return e?`docusaurus.tab.${e}`:null}(n),[s,a]=(0,d.Nk)(t);return[s,(0,r.useCallback)((e=>{t&&a.set(e)}),[t,a])]}({groupId:s}),j=(()=>{const e=c??x;return p({value:e,tabValues:a})?e:null})();(0,l.Z)((()=>{j&&o(j)}),[j]);return{selectedValue:i,selectValue:(0,r.useCallback)((e=>{if(!p({value:e,tabValues:a}))throw new Error(`Can't select invalid tab value=${e}`);o(e),h(e),m(e)}),[h,m,a]),tabValues:a}}var m=t(1048);const j={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var f=t(5893);function v(e){let{className:n,block:t,selectedValue:r,selectValue:i,tabValues:l}=e;const o=[],{blockElementScrollPositionUntilNextRender:c}=(0,a.o5)(),d=e=>{const n=e.currentTarget,t=o.indexOf(n),s=l[t].value;s!==r&&(c(n),i(s))},h=e=>{let n=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{const t=o.indexOf(e.currentTarget)+1;n=o[t]??o[0];break}case"ArrowLeft":{const t=o.indexOf(e.currentTarget)-1;n=o[t]??o[o.length-1];break}}n?.focus()};return(0,f.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,s.Z)("tabs",{"tabs--block":t},n),children:l.map((e=>{let{value:n,label:t,attributes:a}=e;return(0,f.jsx)("li",{role:"tab",tabIndex:r===n?0:-1,"aria-selected":r===n,ref:e=>o.push(e),onKeyDown:h,onClick:d,...a,className:(0,s.Z)("tabs__item",j.tabItem,a?.className,{"tabs__item--active":r===n}),children:t??n},n)}))})}function b(e){let{lazy:n,children:t,selectedValue:s}=e;const a=(Array.isArray(t)?t:[t]).filter(Boolean);if(n){const e=a.find((e=>e.props.value===s));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return(0,f.jsx)("div",{className:"margin-top--md",children:a.map(((e,n)=>(0,r.cloneElement)(e,{key:n,hidden:e.props.value!==s})))})}function y(e){const n=x(e);return(0,f.jsxs)("div",{className:(0,s.Z)("tabs-container",j.tabList),children:[(0,f.jsx)(v,{...e,...n}),(0,f.jsx)(b,{...e,...n})]})}function w(e){const n=(0,m.Z)();return(0,f.jsx)(y,{...e,children:h(e.children)},String(n))}},6344:(e,n,t)=>{t.d(n,{Z:()=>r});const r=t.p+"assets/files/cross-example.trace-b97f7dba5f7e43dd0d8dafb4af4564a4.yaml"},7195:(e,n,t)=>{t.d(n,{Z:()=>r});const r=t.p+"assets/images/image-19cd2340cec959c976688f2a57be83e9.png"},8907:(e,n,t)=>{t.d(n,{Z:()=>r});const r=t.p+"assets/images/load-grid-170f3cdc8f470730f1d8b1e275d090a9.png"},1151:(e,n,t)=>{t.d(n,{Z:()=>l,a:()=>i});var r=t(7294);const s={},a=r.createContext(s);function i(e){const n=r.useContext(a);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:i(e.components),r.createElement(a.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/935f2afb.464b78d4.js b/assets/js/935f2afb.464b78d4.js new file mode 100644 index 0000000..06550e1 --- /dev/null +++ b/assets/js/935f2afb.464b78d4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_2=self.webpackChunkdocs_2||[]).push([[53],{1109:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"tutorialSidebar":[{"type":"link","label":"Overview","href":"/docs/overview","docId":"overview","unlisted":false},{"type":"link","label":"Search trace","href":"/docs/search-trace","docId":"search-trace","unlisted":false},{"type":"category","label":"Posthoc visualiser","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Overview","href":"/docs/visualiser/overview","docId":"visualiser/overview","unlisted":false},{"type":"category","label":"User Guide","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"UI","href":"/docs/visualiser/3-1-user-guide/interface","docId":"visualiser/3-1-user-guide/interface","unlisted":false},{"type":"link","label":"Viewport","href":"/docs/visualiser/3-1-user-guide/viewport","docId":"visualiser/3-1-user-guide/viewport","unlisted":false},{"type":"link","label":"Layers","href":"/docs/visualiser/3-1-user-guide/layers","docId":"visualiser/3-1-user-guide/layers","unlisted":false},{"type":"link","label":"Steps","href":"/docs/visualiser/3-1-user-guide/steps","docId":"visualiser/3-1-user-guide/steps","unlisted":false},{"type":"link","label":"Debugger","href":"/docs/visualiser/3-1-user-guide/debugger","docId":"visualiser/3-1-user-guide/debugger","unlisted":false},{"type":"link","label":"Settings","href":"/docs/visualiser/3-1-user-guide/settings","docId":"visualiser/3-1-user-guide/settings","unlisted":false},{"type":"link","label":"Tree","href":"/docs/visualiser/3-1-user-guide/tree","docId":"visualiser/3-1-user-guide/tree","unlisted":false}],"href":"/docs/category/user-guide"}],"href":"/docs/category/posthoc-visualiser"},{"type":"category","label":"Tutorials","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Single Agent Grid Search","href":"/docs/tutorials/single-agent-grid","docId":"tutorials/single-agent-grid","unlisted":false},{"type":"link","label":"Decision Tree Search","href":"/docs/tutorials/tile","docId":"tutorials/tile","unlisted":false}],"href":"/docs/category/tutorials"},{"type":"category","label":"API","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Renderer","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Component","href":"/docs/api/renderer/components","docId":"api/renderer/components","unlisted":false},{"type":"link","label":"2D Inbuilts","href":"/docs/api/renderer/2D-inbuilts","docId":"api/renderer/2D-inbuilts","unlisted":false},{"type":"link","label":"2D Renderer","href":"/docs/api/renderer/2D-renderer","docId":"api/renderer/2D-renderer","unlisted":false},{"type":"link","label":"Execution Context","href":"/docs/api/renderer/execution-context","docId":"api/renderer/execution-context","unlisted":false},{"type":"link","label":"Pathfinding Posthoc Protocol","href":"/docs/api/renderer/protocol","docId":"api/renderer/protocol","unlisted":false},{"type":"link","label":"Standard Renderers","href":"/docs/api/renderer/standard-renderers","docId":"api/renderer/standard-renderers","unlisted":false}],"href":"/docs/category/renderer"},{"type":"link","label":"Search Trace","href":"/docs/api/search-trace","docId":"api/search-trace","unlisted":false},{"type":"link","label":"Posthoc Adapter Protocol","href":"/docs/api/visualiser-adapter-protocol","docId":"api/visualiser-adapter-protocol","unlisted":false}],"href":"/docs/category/api"},{"type":"category","label":"Contributing","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Overview","href":"/docs/contributing/overview","docId":"contributing/overview","unlisted":false}],"href":"/docs/category/contributing"}]},"docs":{"api/renderer/2D-inbuilts":{"id":"api/renderer/2D-inbuilts","title":"2D Inbuilts","description":"This document covers the four inbuilt components/views for that the 2D renderer implements.","sidebar":"tutorialSidebar"},"api/renderer/2D-renderer":{"id":"api/renderer/2D-renderer","title":"2D Renderer","description":"The 2D Renderer is used for the rendering of two dimensional components. This document covers the four primitive components that the 2D Renderer implements.","sidebar":"tutorialSidebar"},"api/renderer/components":{"id":"api/renderer/components","title":"Component","description":"The foundational building block of the visualiser format is the component, consisting of an array of other components. All component must be built upon instrinsic components.","sidebar":"tutorialSidebar"},"api/renderer/execution-context":{"id":"api/renderer/execution-context","title":"Execution Context","description":"Version 1.0.1","sidebar":"tutorialSidebar"},"api/renderer/protocol":{"id":"api/renderer/protocol","title":"Pathfinding Posthoc Protocol","description":"Version 1.0.3","sidebar":"tutorialSidebar"},"api/renderer/standard-renderers":{"id":"api/renderer/standard-renderers","title":"Standard Renderers","description":"Version 1.0.1","sidebar":"tutorialSidebar"},"api/search-trace":{"id":"api/search-trace","title":"Search Trace","description":"Context","sidebar":"tutorialSidebar"},"api/visualiser-adapter-protocol":{"id":"api/visualiser-adapter-protocol","title":"Posthoc Adapter Protocol","description":"","sidebar":"tutorialSidebar"},"contributing/overview":{"id":"contributing/overview","title":"Overview","description":"[TODO]","sidebar":"tutorialSidebar"},"overview":{"id":"overview","title":"Overview","description":"Posthoc is a way to build quick-and-dirty visualisations \u2728 for sequential decision-making algorithms, such as search algorithms \ud83d\ude80.","sidebar":"tutorialSidebar"},"search-trace":{"id":"search-trace","title":"Search trace","description":"The search trace is a YAML log of your algorithm\'s decisions. What, and how much, you want to log is up to you. Here are some ideas.","sidebar":"tutorialSidebar"},"tutorials/single-agent-grid":{"id":"tutorials/single-agent-grid","title":"Single Agent Grid Search","description":"Follow these steps to visualise a single-agent search, in our case A\\\\*, on a grid map.","sidebar":"tutorialSidebar"},"tutorials/tile":{"id":"tutorials/tile","title":"Decision Tree Search","description":"Visualiser comes with a built-in decision tree viewer for searches that may have no spatial embedding.","sidebar":"tutorialSidebar"},"visualiser/3-1-user-guide/debugger":{"id":"visualiser/3-1-user-guide/debugger","title":"Debugger","description":"Visualiser\'s Debugger panel is able to set breakpoints which stops the search trace or query at a specified condition.","sidebar":"tutorialSidebar"},"visualiser/3-1-user-guide/interface":{"id":"visualiser/3-1-user-guide/interface","title":"UI","description":"Posthoc\'s interface is made of composable panels. You can add, remove, and rearrange the UI to your desire. This allows Posthoc to support a range of tasks, whether you\'re using it to learn, showcase, or debug algorithms.","sidebar":"tutorialSidebar"},"visualiser/3-1-user-guide/layers":{"id":"visualiser/3-1-user-guide/layers","title":"Layers","description":"Visualiser\'s layers panel shows all layers that are present. Each layer could either be a trace, map, or query.","sidebar":"tutorialSidebar"},"visualiser/3-1-user-guide/settings":{"id":"visualiser/3-1-user-guide/settings","title":"Settings","description":"Visualiser\'s setting panel gives the flexibillity to customise the web application.","sidebar":"tutorialSidebar"},"visualiser/3-1-user-guide/steps":{"id":"visualiser/3-1-user-guide/steps","title":"Steps","description":"Posthoc\'s steps panel shows a list of steps of the current chosen trace.","sidebar":"tutorialSidebar"},"visualiser/3-1-user-guide/tree":{"id":"visualiser/3-1-user-guide/tree","title":"Tree","description":"[TODO]","sidebar":"tutorialSidebar"},"visualiser/3-1-user-guide/viewport":{"id":"visualiser/3-1-user-guide/viewport","title":"Viewport","description":"[TODO]","sidebar":"tutorialSidebar"},"visualiser/overview":{"id":"visualiser/overview","title":"Overview","description":"Posthoc visualises search traces. It gives you a variety of tools to help you analyse and debug your algorithm. It\'s quick to get started and install-free — even better, it\'s robust and performant enough to support the largest of problem instances.","sidebar":"tutorialSidebar"}}}')}}]); \ No newline at end of file diff --git a/assets/js/935f2afb.e9afe586.js b/assets/js/935f2afb.e9afe586.js deleted file mode 100644 index d0e9c41..0000000 --- a/assets/js/935f2afb.e9afe586.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs_2=self.webpackChunkdocs_2||[]).push([[53],{1109:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"tutorialSidebar":[{"type":"link","label":"Overview","href":"/docs/overview","docId":"overview","unlisted":false},{"type":"link","label":"Search trace","href":"/docs/search-trace","docId":"search-trace","unlisted":false},{"type":"category","label":"Posthoc visualiser","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Overview","href":"/docs/visualiser/visualiser","docId":"visualiser/visualiser","unlisted":false},{"type":"category","label":"User Guide","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"User Interface","href":"/docs/visualiser/3-1-user-guide/interface","docId":"visualiser/3-1-user-guide/interface","unlisted":false},{"type":"link","label":"Viewport Panel","href":"/docs/visualiser/3-1-user-guide/viewport","docId":"visualiser/3-1-user-guide/viewport","unlisted":false},{"type":"link","label":"Layers Panel","href":"/docs/visualiser/3-1-user-guide/layers","docId":"visualiser/3-1-user-guide/layers","unlisted":false},{"type":"link","label":"Steps Panel","href":"/docs/visualiser/3-1-user-guide/steps","docId":"visualiser/3-1-user-guide/steps","unlisted":false},{"type":"link","label":"Debugger Panel","href":"/docs/visualiser/3-1-user-guide/debugger","docId":"visualiser/3-1-user-guide/debugger","unlisted":false},{"type":"link","label":"Settings Panel","href":"/docs/visualiser/3-1-user-guide/settings","docId":"visualiser/3-1-user-guide/settings","unlisted":false},{"type":"link","label":"Tree Panel","href":"/docs/visualiser/3-1-user-guide/tree","docId":"visualiser/3-1-user-guide/tree","unlisted":false}],"href":"/docs/category/user-guide"}],"href":"/docs/category/posthoc-visualiser"},{"type":"category","label":"Tutorials","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Overview","href":"/docs/tutorials/overview","docId":"tutorials/overview","unlisted":false},{"type":"link","label":"Single Agent Grid Search","href":"/docs/tutorials/single-agent-grid","docId":"tutorials/single-agent-grid","unlisted":false},{"type":"link","label":"Decision Tree Search","href":"/docs/tutorials/tile","docId":"tutorials/tile","unlisted":false}],"href":"/docs/category/tutorials"},{"type":"category","label":"API","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Renderer","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Component","href":"/docs/api/renderer/components","docId":"api/renderer/components","unlisted":false},{"type":"link","label":"2D Inbuilts","href":"/docs/api/renderer/2D-inbuilts","docId":"api/renderer/2D-inbuilts","unlisted":false},{"type":"link","label":"2D Renderer","href":"/docs/api/renderer/2D-renderer","docId":"api/renderer/2D-renderer","unlisted":false},{"type":"link","label":"Execution Context","href":"/docs/api/renderer/execution-context","docId":"api/renderer/execution-context","unlisted":false},{"type":"link","label":"Pathfinding Posthoc Protocol","href":"/docs/api/renderer/protocol","docId":"api/renderer/protocol","unlisted":false},{"type":"link","label":"Standard Renderers","href":"/docs/api/renderer/standard-renderers","docId":"api/renderer/standard-renderers","unlisted":false}],"href":"/docs/category/renderer"},{"type":"link","label":"Overview","href":"/docs/api/overview","docId":"api/overview","unlisted":false},{"type":"link","label":"Search Trace","href":"/docs/api/search-trace","docId":"api/search-trace","unlisted":false},{"type":"link","label":"Posthoc Adapter Protocol","href":"/docs/api/visualiser-adapter-protocol","docId":"api/visualiser-adapter-protocol","unlisted":false}],"href":"/docs/category/api"},{"type":"category","label":"Contributing","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Overview","href":"/docs/contributing/overview","docId":"contributing/overview","unlisted":false}],"href":"/docs/category/contributing"}]},"docs":{"api/overview":{"id":"api/overview","title":"Overview","description":"[TODO]","sidebar":"tutorialSidebar"},"api/renderer/2D-inbuilts":{"id":"api/renderer/2D-inbuilts","title":"2D Inbuilts","description":"This document covers the four inbuilt components/views for that the 2D renderer implements.","sidebar":"tutorialSidebar"},"api/renderer/2D-renderer":{"id":"api/renderer/2D-renderer","title":"2D Renderer","description":"The 2D Renderer is used for the rendering of two dimensional components. This document covers the four primitive components that the 2D Renderer implements.","sidebar":"tutorialSidebar"},"api/renderer/components":{"id":"api/renderer/components","title":"Component","description":"The foundational building block of the visualiser format is the component, consisting of an array of other components. All component must be built upon instrinsic components.","sidebar":"tutorialSidebar"},"api/renderer/execution-context":{"id":"api/renderer/execution-context","title":"Execution Context","description":"Version 1.0.1","sidebar":"tutorialSidebar"},"api/renderer/protocol":{"id":"api/renderer/protocol","title":"Pathfinding Posthoc Protocol","description":"Version 1.0.3","sidebar":"tutorialSidebar"},"api/renderer/standard-renderers":{"id":"api/renderer/standard-renderers","title":"Standard Renderers","description":"Version 1.0.1","sidebar":"tutorialSidebar"},"api/search-trace":{"id":"api/search-trace","title":"Search Trace","description":"Context","sidebar":"tutorialSidebar"},"api/visualiser-adapter-protocol":{"id":"api/visualiser-adapter-protocol","title":"Posthoc Adapter Protocol","description":"","sidebar":"tutorialSidebar"},"contributing/overview":{"id":"contributing/overview","title":"Overview","description":"[TODO]","sidebar":"tutorialSidebar"},"overview":{"id":"overview","title":"Overview","description":"Posthoc is a way to build quick-and-dirty visualisations \u2728 for sequential decision-making algorithms, such as search algorithms \ud83d\ude80.","sidebar":"tutorialSidebar"},"search-trace":{"id":"search-trace","title":"Search trace","description":"The search trace is a YAML log of your algorithm\'s decisions. What, and how much, you want to log is up to you. Here are some ideas.","sidebar":"tutorialSidebar"},"tutorials/overview":{"id":"tutorials/overview","title":"Overview","description":"[TODO]","sidebar":"tutorialSidebar"},"tutorials/single-agent-grid":{"id":"tutorials/single-agent-grid","title":"Single Agent Grid Search","description":"Follow these steps to visualise a single-agent search, in our case A\\\\*, on a grid map.","sidebar":"tutorialSidebar"},"tutorials/tile":{"id":"tutorials/tile","title":"Decision Tree Search","description":"Visualiser comes with a built-in decision tree viewer for searches that may have no spatial embedding.","sidebar":"tutorialSidebar"},"visualiser/3-1-user-guide/debugger":{"id":"visualiser/3-1-user-guide/debugger","title":"Debugger Panel","description":"Visualiser\'s Debugger panel is able to set breakpoints which stops the search trace or query at a specified condition.","sidebar":"tutorialSidebar"},"visualiser/3-1-user-guide/interface":{"id":"visualiser/3-1-user-guide/interface","title":"User Interface","description":"Posthoc\'s interface is made of composable panels. You can add, remove, and rearrange the UI to your desire. This allows Posthoc to support a range of tasks, whether you\'re using it to learn, showcase, or debug algorithms.","sidebar":"tutorialSidebar"},"visualiser/3-1-user-guide/layers":{"id":"visualiser/3-1-user-guide/layers","title":"Layers Panel","description":"Visualiser\'s layers panel shows all layers that are present. Each layer could either be a trace, map, or query.","sidebar":"tutorialSidebar"},"visualiser/3-1-user-guide/settings":{"id":"visualiser/3-1-user-guide/settings","title":"Settings Panel","description":"Visualiser\'s setting panel gives the flexibillity to customise the web application.","sidebar":"tutorialSidebar"},"visualiser/3-1-user-guide/steps":{"id":"visualiser/3-1-user-guide/steps","title":"Steps Panel","description":"Posthoc\'s steps panel shows a list of steps of the current chosen trace.","sidebar":"tutorialSidebar"},"visualiser/3-1-user-guide/tree":{"id":"visualiser/3-1-user-guide/tree","title":"Tree Panel","description":"[TODO]","sidebar":"tutorialSidebar"},"visualiser/3-1-user-guide/viewport":{"id":"visualiser/3-1-user-guide/viewport","title":"Viewport Panel","description":"[TODO]","sidebar":"tutorialSidebar"},"visualiser/visualiser":{"id":"visualiser/visualiser","title":"Overview","description":"Open the visualiser here.","sidebar":"tutorialSidebar"}}}')}}]); \ No newline at end of file diff --git a/assets/js/9c7a41f4.b9f77349.js b/assets/js/9c7a41f4.b9f77349.js new file mode 100644 index 0000000..9b8591e --- /dev/null +++ b/assets/js/9c7a41f4.b9f77349.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_2=self.webpackChunkdocs_2||[]).push([[3480],{2211:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>l,contentTitle:()=>n,default:()=>d,frontMatter:()=>r,metadata:()=>a,toc:()=>c});var o=t(5893),i=t(1151);const r={sidebar_position:2},n="Overview",a={id:"visualiser/overview",title:"Overview",description:"Posthoc visualises search traces. It gives you a variety of tools to help you analyse and debug your algorithm. It's quick to get started and install-free — even better, it's robust and performant enough to support the largest of problem instances.",source:"@site/docs/3-visualiser/overview.md",sourceDirName:"3-visualiser",slug:"/visualiser/overview",permalink:"/docs/visualiser/overview",draft:!1,unlisted:!1,editUrl:"https://github.com/path-visualiser/path-visualiser.github.io/tree/master/docs/3-visualiser/overview.md",tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"tutorialSidebar",previous:{title:"Posthoc visualiser",permalink:"/docs/category/posthoc-visualiser"},next:{title:"User Guide",permalink:"/docs/category/user-guide"}},l={},c=[{value:"Get Posthoc",id:"get-posthoc",level:2},{value:"Posthoc Web",id:"posthoc-web",level:3},{value:"Posthoc PWA",id:"posthoc-pwa",level:3},{value:"Standalone Builds",id:"standalone-builds",level:3}];function h(e){const s={a:"a",h1:"h1",h2:"h2",h3:"h3",img:"img",p:"p",...(0,i.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(s.h1,{id:"overview",children:"Overview"}),"\n",(0,o.jsxs)(s.p,{children:["Posthoc visualises ",(0,o.jsx)(s.a,{href:"./search-trace",children:"search traces"}),". It gives you a variety of tools to help you analyse and debug your algorithm. It's quick to get started and install-free \u2014 even better, it's robust and performant enough to support the largest of problem instances."]}),"\n",(0,o.jsx)(s.p,{children:(0,o.jsx)(s.img,{alt:"Complex view",src:t(1641).Z+"",width:"2560",height:"1600"})}),"\n",(0,o.jsx)(s.h2,{id:"get-posthoc",children:"Get Posthoc"}),"\n",(0,o.jsx)(s.h3,{id:"posthoc-web",children:"Posthoc Web"}),"\n",(0,o.jsx)(s.p,{children:"You can use Posthoc directly in a browser."}),"\n",(0,o.jsx)(s.p,{children:(0,o.jsx)(s.a,{href:"https://posthoc.pathfinding.ai",children:"Open Posthoc"})}),"\n",(0,o.jsx)(s.h3,{id:"posthoc-pwa",children:"Posthoc PWA"}),"\n",(0,o.jsxs)(s.p,{children:["Optionally, you can ",(0,o.jsx)(s.a,{href:"https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps/Guides/Installing",children:"install Posthoc as a web app"})," so that it runs in its own window."]}),"\n",(0,o.jsx)(s.h3,{id:"standalone-builds",children:"Standalone Builds"}),"\n",(0,o.jsxs)(s.p,{children:["Check the ",(0,o.jsx)(s.a,{href:"https://github.com/path-visualiser/app/releases",children:"releases"})," page for a list of latest Windows and Linux releases."]})]})}function d(e={}){const{wrapper:s}={...(0,i.a)(),...e.components};return s?(0,o.jsx)(s,{...e,children:(0,o.jsx)(h,{...e})}):h(e)}},1641:(e,s,t)=>{t.d(s,{Z:()=>o});const o=t.p+"assets/images/complex-view-223a700f28d621ab7a77e34f80eb04ab.png"},1151:(e,s,t)=>{t.d(s,{Z:()=>a,a:()=>n});var o=t(7294);const i={},r=o.createContext(i);function n(e){const s=o.useContext(r);return o.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function a(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:n(e.components),o.createElement(r.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/9cde8b2f.ae621121.js b/assets/js/9cde8b2f.01f88355.js similarity index 82% rename from assets/js/9cde8b2f.ae621121.js rename to assets/js/9cde8b2f.01f88355.js index 78d3467..f3ddd95 100644 --- a/assets/js/9cde8b2f.ae621121.js +++ b/assets/js/9cde8b2f.01f88355.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs_2=self.webpackChunkdocs_2||[]).push([[9340],{7537:e=>{e.exports=JSON.parse('{"title":"Posthoc visualiser","slug":"/category/posthoc-visualiser","permalink":"/docs/category/posthoc-visualiser","navigation":{"previous":{"title":"Search trace","permalink":"/docs/search-trace"},"next":{"title":"Overview","permalink":"/docs/visualiser/visualiser"}}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs_2=self.webpackChunkdocs_2||[]).push([[9340],{7537:e=>{e.exports=JSON.parse('{"title":"Posthoc visualiser","slug":"/category/posthoc-visualiser","permalink":"/docs/category/posthoc-visualiser","navigation":{"previous":{"title":"Search trace","permalink":"/docs/search-trace"},"next":{"title":"Overview","permalink":"/docs/visualiser/overview"}}}')}}]); \ No newline at end of file diff --git a/assets/js/b83e3081.88287844.js b/assets/js/b83e3081.88287844.js deleted file mode 100644 index aa57327..0000000 --- a/assets/js/b83e3081.88287844.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs_2=self.webpackChunkdocs_2||[]).push([[6640],{47:(e,i,t)=>{t.r(i),t.d(i,{assets:()=>d,contentTitle:()=>l,default:()=>u,frontMatter:()=>r,metadata:()=>a,toc:()=>o});var n=t(5893),s=t(1151);const r={},l="Settings Panel",a={id:"visualiser/3-1-user-guide/settings",title:"Settings Panel",description:"Visualiser's setting panel gives the flexibillity to customise the web application.",source:"@site/docs/3-visualiser/3-1-user-guide/settings.mdx",sourceDirName:"3-visualiser/3-1-user-guide",slug:"/visualiser/3-1-user-guide/settings",permalink:"/docs/visualiser/3-1-user-guide/settings",draft:!1,unlisted:!1,editUrl:"https://github.com/path-visualiser/path-visualiser.github.io/tree/master/docs/3-visualiser/3-1-user-guide/settings.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Debugger Panel",permalink:"/docs/visualiser/3-1-user-guide/debugger"},next:{title:"Tree Panel",permalink:"/docs/visualiser/3-1-user-guide/tree"}},d={},o=[{value:"General",id:"general",level:2},{value:"Adding or Editing an Existing Solver",id:"adding-or-editing-an-existing-solver",level:2}];function c(e){const i={h1:"h1",h2:"h2",img:"img",li:"li",p:"p",ul:"ul",...(0,s.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(i.h1,{id:"settings-panel",children:"Settings Panel"}),"\n",(0,n.jsx)(i.p,{children:"Visualiser's setting panel gives the flexibillity to customise the web application."}),"\n",(0,n.jsx)(i.p,{children:(0,n.jsx)(i.img,{alt:"Alt text",src:t(8617).Z+"",width:"918",height:"573"})}),"\n",(0,n.jsx)(i.h2,{id:"general",children:"General"}),"\n",(0,n.jsxs)(i.ul,{children:["\n",(0,n.jsx)(i.li,{children:"To speed up the playback speed of the search trace within the view port, adjust the speed using the playback rate slider."}),"\n",(0,n.jsx)(i.li,{children:"To show the explore page at the start can be done within the page aswell by clickng the switch."}),"\n"]}),"\n",(0,n.jsx)(i.h2,{id:"adding-or-editing-an-existing-solver",children:"Adding or Editing an Existing Solver"}),"\n",(0,n.jsx)(i.p,{children:"within the connections tab,"}),"\n",(0,n.jsxs)(i.ul,{children:["\n",(0,n.jsx)(i.li,{children:"To add a solver, click the + Add Solver button, this adds a new solver."}),"\n",(0,n.jsx)(i.li,{children:"To change the existing solver, press the edit (pencil) icon and add the URL and the connection type needed."}),"\n"]}),"\n",(0,n.jsx)(i.p,{children:"[TODO, more info on adding a solver and renderers]"})]})}function u(e={}){const{wrapper:i}={...(0,s.a)(),...e.components};return i?(0,n.jsx)(i,{...e,children:(0,n.jsx)(c,{...e})}):c(e)}},8617:(e,i,t)=>{t.d(i,{Z:()=>n});const n=t.p+"assets/images/settings-9185dea6e02febf5d9bb7f6525eaa8cd.png"},1151:(e,i,t)=>{t.d(i,{Z:()=>a,a:()=>l});var n=t(7294);const s={},r=n.createContext(s);function l(e){const i=n.useContext(r);return n.useMemo((function(){return"function"==typeof e?e(i):{...i,...e}}),[i,e])}function a(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:l(e.components),n.createElement(r.Provider,{value:i},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/b83e3081.cc028fb7.js b/assets/js/b83e3081.cc028fb7.js new file mode 100644 index 0000000..42a02ae --- /dev/null +++ b/assets/js/b83e3081.cc028fb7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_2=self.webpackChunkdocs_2||[]).push([[6640],{47:(e,i,t)=>{t.r(i),t.d(i,{assets:()=>d,contentTitle:()=>l,default:()=>u,frontMatter:()=>r,metadata:()=>a,toc:()=>o});var s=t(5893),n=t(1151);const r={},l="Settings",a={id:"visualiser/3-1-user-guide/settings",title:"Settings",description:"Visualiser's setting panel gives the flexibillity to customise the web application.",source:"@site/docs/3-visualiser/3-1-user-guide/settings.mdx",sourceDirName:"3-visualiser/3-1-user-guide",slug:"/visualiser/3-1-user-guide/settings",permalink:"/docs/visualiser/3-1-user-guide/settings",draft:!1,unlisted:!1,editUrl:"https://github.com/path-visualiser/path-visualiser.github.io/tree/master/docs/3-visualiser/3-1-user-guide/settings.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Debugger",permalink:"/docs/visualiser/3-1-user-guide/debugger"},next:{title:"Tree",permalink:"/docs/visualiser/3-1-user-guide/tree"}},d={},o=[{value:"General",id:"general",level:2},{value:"Adding or Editing an Existing Solver",id:"adding-or-editing-an-existing-solver",level:2}];function c(e){const i={h1:"h1",h2:"h2",img:"img",li:"li",p:"p",ul:"ul",...(0,n.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(i.h1,{id:"settings",children:"Settings"}),"\n",(0,s.jsx)(i.p,{children:"Visualiser's setting panel gives the flexibillity to customise the web application."}),"\n",(0,s.jsx)(i.p,{children:(0,s.jsx)(i.img,{alt:"Alt text",src:t(8617).Z+"",width:"918",height:"573"})}),"\n",(0,s.jsx)(i.h2,{id:"general",children:"General"}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsx)(i.li,{children:"To speed up the playback speed of the search trace within the view port, adjust the speed using the playback rate slider."}),"\n",(0,s.jsx)(i.li,{children:"To show the explore page at the start can be done within the page aswell by clickng the switch."}),"\n"]}),"\n",(0,s.jsx)(i.h2,{id:"adding-or-editing-an-existing-solver",children:"Adding or Editing an Existing Solver"}),"\n",(0,s.jsx)(i.p,{children:"within the connections tab,"}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsx)(i.li,{children:"To add a solver, click the + Add Solver button, this adds a new solver."}),"\n",(0,s.jsx)(i.li,{children:"To change the existing solver, press the edit (pencil) icon and add the URL and the connection type needed."}),"\n"]}),"\n",(0,s.jsx)(i.p,{children:"[TODO, more info on adding a solver and renderers]"})]})}function u(e={}){const{wrapper:i}={...(0,n.a)(),...e.components};return i?(0,s.jsx)(i,{...e,children:(0,s.jsx)(c,{...e})}):c(e)}},8617:(e,i,t)=>{t.d(i,{Z:()=>s});const s=t.p+"assets/images/settings-9185dea6e02febf5d9bb7f6525eaa8cd.png"},1151:(e,i,t)=>{t.d(i,{Z:()=>a,a:()=>l});var s=t(7294);const n={},r=s.createContext(n);function l(e){const i=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(i):{...i,...e}}),[i,e])}function a(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:l(e.components),s.createElement(r.Provider,{value:i},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/bdf3e333.264b5ba0.js b/assets/js/bdf3e333.264b5ba0.js new file mode 100644 index 0000000..4aef415 --- /dev/null +++ b/assets/js/bdf3e333.264b5ba0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_2=self.webpackChunkdocs_2||[]).push([[4176],{1706:(e,t,i)=>{i.r(t),i.d(t,{assets:()=>d,contentTitle:()=>o,default:()=>l,frontMatter:()=>s,metadata:()=>r,toc:()=>h});var n=i(5893),a=i(1151);const s={},o="Debugger",r={id:"visualiser/3-1-user-guide/debugger",title:"Debugger",description:"Visualiser's Debugger panel is able to set breakpoints which stops the search trace or query at a specified condition.",source:"@site/docs/3-visualiser/3-1-user-guide/debugger.mdx",sourceDirName:"3-visualiser/3-1-user-guide",slug:"/visualiser/3-1-user-guide/debugger",permalink:"/docs/visualiser/3-1-user-guide/debugger",draft:!1,unlisted:!1,editUrl:"https://github.com/path-visualiser/path-visualiser.github.io/tree/master/docs/3-visualiser/3-1-user-guide/debugger.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Steps",permalink:"/docs/visualiser/3-1-user-guide/steps"},next:{title:"Settings",permalink:"/docs/visualiser/3-1-user-guide/settings"}},d={},h=[{value:"Adding a Breakpoint",id:"adding-a-breakpoint",level:2},{value:"Adding an Advance breakpoint",id:"adding-an-advance-breakpoint",level:2},{value:"Stepping through the breakpoints",id:"stepping-through-the-breakpoints",level:2},{value:"Changing traces for the debugger",id:"changing-traces-for-the-debugger",level:2}];function c(e){const t={a:"a",h1:"h1",h2:"h2",img:"img",li:"li",p:"p",ul:"ul",...(0,a.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.h1,{id:"debugger",children:"Debugger"}),"\n",(0,n.jsx)(t.p,{children:"Visualiser's Debugger panel is able to set breakpoints which stops the search trace or query at a specified condition."}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"Alt text",src:i(6997).Z+"",width:"1395",height:"422"})}),"\n",(0,n.jsx)(t.h2,{id:"adding-a-breakpoint",children:"Adding a Breakpoint"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:["click on the + Breakpoint button, this gives you a new breakpoint like below.\n",(0,n.jsx)(t.img,{alt:"Alt text",src:i(5911).Z+"",width:"1355",height:"147"})]}),"\n",(0,n.jsx)(t.li,{children:"Event dropdown: This filters the events based on the event types."}),"\n",(0,n.jsx)(t.li,{children:"Property: The value that is being compared with."}),"\n",(0,n.jsx)(t.li,{children:"Condition: The condition for comparison, (changed mean that the value have changed compared to the previous value)"}),"\n",(0,n.jsx)(t.li,{children:"Reference: Being the reference value for the comparison."}),"\n",(0,n.jsx)(t.li,{children:"Swtich: To indicate whether a breakpoint is active."}),"\n"]}),"\n",(0,n.jsxs)(t.p,{children:["A demonstration ",(0,n.jsx)(t.a,{href:"https://youtu.be/1iRMrrw9Dl0",children:"video"})," shows on how to set a standart breakpoint and stepping thhrough the breakpoints"]}),"\n",(0,n.jsx)(t.h2,{id:"adding-an-advance-breakpoint",children:"Adding an Advance breakpoint"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Go on the Advanced tab."}),"\n",(0,n.jsx)(t.li,{children:"Within this tab is a function snippet where the parameters can be used to make a customised breakpoint."}),"\n"]}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"Alt text",src:i(8828).Z+"",width:"1035",height:"319"})}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"A use case would be using an if statement and return true for a certain condtion of a breakpoint."}),"\n",(0,n.jsx)(t.li,{children:"For further trying and error within this advanced breakpoint editor, use print statements (console.log) to print values of the parameters, the output of these print statements can be seen in teh web console (Inspect the web)."}),"\n"]}),"\n",(0,n.jsxs)(t.p,{children:["A demonstration ",(0,n.jsx)(t.a,{href:"https://youtu.be/Pe50r0x4xFk",children:"video"})," shows a use case for the advanced breakpoint editor."]}),"\n",(0,n.jsx)(t.h2,{id:"stepping-through-the-breakpoints",children:"Stepping through the breakpoints"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"To step through the trace and jump to the next breakpoint, make a new steps panel by splitting an existing panel,"}),"\n",(0,n.jsx)(t.li,{children:"Scroll the header of the panel sideways to reveal the jump to next breakpoint button."}),"\n",(0,n.jsxs)(t.li,{children:["Red dots on the steps indicates that the breakpoint will hit on that step.\n",(0,n.jsx)(t.img,{alt:"Alt text",src:i(474).Z+"",width:"465",height:"56"})]}),"\n"]}),"\n",(0,n.jsx)(t.h2,{id:"changing-traces-for-the-debugger",children:"Changing traces for the debugger"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Change the trace by choosing it through the dropdown on the debugger panel."}),"\n"]})]})}function l(e={}){const{wrapper:t}={...(0,a.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(c,{...e})}):c(e)}},8828:(e,t,i)=>{i.d(t,{Z:()=>n});const n=i.p+"assets/images/advanced-breakpoint-97bd54101719a2fb59a480f2cf134ba6.png"},5911:(e,t,i)=>{i.d(t,{Z:()=>n});const n=i.p+"assets/images/breakpoint-8703410f06a7001e9d9b47be1b29b541.png"},6997:(e,t,i)=>{i.d(t,{Z:()=>n});const n=i.p+"assets/images/debugger-221fc2a6520d26a125a69831fbdd79d4.png"},474:(e,t,i)=>{i.d(t,{Z:()=>n});const n="data:image/png;base64,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"},1151:(e,t,i)=>{i.d(t,{Z:()=>r,a:()=>o});var n=i(7294);const a={},s=n.createContext(a);function o(e){const t=n.useContext(s);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:o(e.components),n.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/bdf3e333.80f9643d.js b/assets/js/bdf3e333.80f9643d.js deleted file mode 100644 index 11e4d32..0000000 --- a/assets/js/bdf3e333.80f9643d.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs_2=self.webpackChunkdocs_2||[]).push([[4176],{1706:(e,t,i)=>{i.r(t),i.d(t,{assets:()=>d,contentTitle:()=>o,default:()=>l,frontMatter:()=>s,metadata:()=>r,toc:()=>h});var n=i(5893),a=i(1151);const s={},o="Debugger Panel",r={id:"visualiser/3-1-user-guide/debugger",title:"Debugger Panel",description:"Visualiser's Debugger panel is able to set breakpoints which stops the search trace or query at a specified condition.",source:"@site/docs/3-visualiser/3-1-user-guide/debugger.mdx",sourceDirName:"3-visualiser/3-1-user-guide",slug:"/visualiser/3-1-user-guide/debugger",permalink:"/docs/visualiser/3-1-user-guide/debugger",draft:!1,unlisted:!1,editUrl:"https://github.com/path-visualiser/path-visualiser.github.io/tree/master/docs/3-visualiser/3-1-user-guide/debugger.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Steps Panel",permalink:"/docs/visualiser/3-1-user-guide/steps"},next:{title:"Settings Panel",permalink:"/docs/visualiser/3-1-user-guide/settings"}},d={},h=[{value:"Adding a Breakpoint",id:"adding-a-breakpoint",level:2},{value:"Adding an Advance breakpoint",id:"adding-an-advance-breakpoint",level:2},{value:"Stepping through the breakpoints",id:"stepping-through-the-breakpoints",level:2},{value:"Changing traces for the debugger",id:"changing-traces-for-the-debugger",level:2}];function c(e){const t={a:"a",h1:"h1",h2:"h2",img:"img",li:"li",p:"p",ul:"ul",...(0,a.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.h1,{id:"debugger-panel",children:"Debugger Panel"}),"\n",(0,n.jsx)(t.p,{children:"Visualiser's Debugger panel is able to set breakpoints which stops the search trace or query at a specified condition."}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"Alt text",src:i(6997).Z+"",width:"1395",height:"422"})}),"\n",(0,n.jsx)(t.h2,{id:"adding-a-breakpoint",children:"Adding a Breakpoint"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:["click on the + Breakpoint button, this gives you a new breakpoint like below.\n",(0,n.jsx)(t.img,{alt:"Alt text",src:i(5911).Z+"",width:"1355",height:"147"})]}),"\n",(0,n.jsx)(t.li,{children:"Event dropdown: This filters the events based on the event types."}),"\n",(0,n.jsx)(t.li,{children:"Property: The value that is being compared with."}),"\n",(0,n.jsx)(t.li,{children:"Condition: The condition for comparison, (changed mean that the value have changed compared to the previous value)"}),"\n",(0,n.jsx)(t.li,{children:"Reference: Being the reference value for the comparison."}),"\n",(0,n.jsx)(t.li,{children:"Swtich: To indicate whether a breakpoint is active."}),"\n"]}),"\n",(0,n.jsxs)(t.p,{children:["A demonstration ",(0,n.jsx)(t.a,{href:"https://youtu.be/1iRMrrw9Dl0",children:"video"})," shows on how to set a standart breakpoint and stepping thhrough the breakpoints"]}),"\n",(0,n.jsx)(t.h2,{id:"adding-an-advance-breakpoint",children:"Adding an Advance breakpoint"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Go on the Advanced tab."}),"\n",(0,n.jsx)(t.li,{children:"Within this tab is a function snippet where the parameters can be used to make a customised breakpoint."}),"\n"]}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"Alt text",src:i(8828).Z+"",width:"1035",height:"319"})}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"A use case would be using an if statement and return true for a certain condtion of a breakpoint."}),"\n",(0,n.jsx)(t.li,{children:"For further trying and error within this advanced breakpoint editor, use print statements (console.log) to print values of the parameters, the output of these print statements can be seen in teh web console (Inspect the web)."}),"\n"]}),"\n",(0,n.jsxs)(t.p,{children:["A demonstration ",(0,n.jsx)(t.a,{href:"https://youtu.be/Pe50r0x4xFk",children:"video"})," shows a use case for the advanced breakpoint editor."]}),"\n",(0,n.jsx)(t.h2,{id:"stepping-through-the-breakpoints",children:"Stepping through the breakpoints"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"To step through the trace and jump to the next breakpoint, make a new steps panel by splitting an existing panel,"}),"\n",(0,n.jsx)(t.li,{children:"Scroll the header of the panel sideways to reveal the jump to next breakpoint button."}),"\n",(0,n.jsxs)(t.li,{children:["Red dots on the steps indicates that the breakpoint will hit on that step.\n",(0,n.jsx)(t.img,{alt:"Alt text",src:i(474).Z+"",width:"465",height:"56"})]}),"\n"]}),"\n",(0,n.jsx)(t.h2,{id:"changing-traces-for-the-debugger",children:"Changing traces for the debugger"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Change the trace by choosing it through the dropdown on the debugger panel."}),"\n"]})]})}function l(e={}){const{wrapper:t}={...(0,a.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(c,{...e})}):c(e)}},8828:(e,t,i)=>{i.d(t,{Z:()=>n});const n=i.p+"assets/images/advanced-breakpoint-97bd54101719a2fb59a480f2cf134ba6.png"},5911:(e,t,i)=>{i.d(t,{Z:()=>n});const n=i.p+"assets/images/breakpoint-8703410f06a7001e9d9b47be1b29b541.png"},6997:(e,t,i)=>{i.d(t,{Z:()=>n});const n=i.p+"assets/images/debugger-221fc2a6520d26a125a69831fbdd79d4.png"},474:(e,t,i)=>{i.d(t,{Z:()=>n});const n="data:image/png;base64,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"},1151:(e,t,i)=>{i.d(t,{Z:()=>r,a:()=>o});var n=i(7294);const a={},s=n.createContext(a);function o(e){const t=n.useContext(s);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:o(e.components),n.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/c0de6e9d.84a8a81d.js b/assets/js/c0de6e9d.84a8a81d.js deleted file mode 100644 index 0dd5ba6..0000000 --- a/assets/js/c0de6e9d.84a8a81d.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs_2=self.webpackChunkdocs_2||[]).push([[1573],{7168:(e,s,i)=>{i.r(s),i.d(s,{assets:()=>l,contentTitle:()=>n,default:()=>p,frontMatter:()=>a,metadata:()=>o,toc:()=>u});var t=i(5893),r=i(1151);const a={sidebar_position:2},n="Overview",o={id:"visualiser/visualiser",title:"Overview",description:"Open the visualiser here.",source:"@site/docs/3-visualiser/2-visualiser.md",sourceDirName:"3-visualiser",slug:"/visualiser/visualiser",permalink:"/docs/visualiser/visualiser",draft:!1,unlisted:!1,editUrl:"https://github.com/path-visualiser/path-visualiser.github.io/tree/master/docs/3-visualiser/2-visualiser.md",tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"tutorialSidebar",previous:{title:"Posthoc visualiser",permalink:"/docs/category/posthoc-visualiser"},next:{title:"User Guide",permalink:"/docs/category/user-guide"}},l={},u=[{value:"Install Posthoc as a Progressive Web App",id:"install-posthoc-as-a-progressive-web-app",level:2},{value:"Standalone Builds",id:"standalone-builds",level:2}];function c(e){const s={a:"a",h1:"h1",h2:"h2",p:"p",...(0,r.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(s.h1,{id:"overview",children:"Overview"}),"\n",(0,t.jsxs)(s.p,{children:["Open the visualiser ",(0,t.jsx)(s.a,{href:"https://path-visualiser.github.io/app/",children:"here"}),"."]}),"\n",(0,t.jsx)(s.h2,{id:"install-posthoc-as-a-progressive-web-app",children:"Install Posthoc as a Progressive Web App"}),"\n",(0,t.jsx)(s.p,{children:"You can install the visualiser as a progressive web app, so that it runs in its own window."}),"\n",(0,t.jsx)(s.h2,{id:"standalone-builds",children:"Standalone Builds"}),"\n",(0,t.jsxs)(s.p,{children:["Check the ",(0,t.jsx)(s.a,{href:"https://github.com/path-visualiser/app/releases",children:"releases"})," page for a list of latest Windows and Linux releases."]})]})}function p(e={}){const{wrapper:s}={...(0,r.a)(),...e.components};return s?(0,t.jsx)(s,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}},1151:(e,s,i)=>{i.d(s,{Z:()=>o,a:()=>n});var t=i(7294);const r={},a=t.createContext(r);function n(e){const s=t.useContext(a);return t.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function o(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:n(e.components),t.createElement(a.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/c695d9ce.19c6eec3.js b/assets/js/c695d9ce.19c6eec3.js deleted file mode 100644 index 3b51aef..0000000 --- a/assets/js/c695d9ce.19c6eec3.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs_2=self.webpackChunkdocs_2||[]).push([[1169],{5501:(e,i,t)=>{t.r(i),t.d(i,{assets:()=>d,contentTitle:()=>n,default:()=>c,frontMatter:()=>r,metadata:()=>l,toc:()=>o});var s=t(5893),a=t(1151);const r={sidebar_position:4},n="Layers Panel",l={id:"visualiser/3-1-user-guide/layers",title:"Layers Panel",description:"Visualiser's layers panel shows all layers that are present. Each layer could either be a trace, map, or query.",source:"@site/docs/3-visualiser/3-1-user-guide/layers.mdx",sourceDirName:"3-visualiser/3-1-user-guide",slug:"/visualiser/3-1-user-guide/layers",permalink:"/docs/visualiser/3-1-user-guide/layers",draft:!1,unlisted:!1,editUrl:"https://github.com/path-visualiser/path-visualiser.github.io/tree/master/docs/3-visualiser/3-1-user-guide/layers.mdx",tags:[],version:"current",sidebarPosition:4,frontMatter:{sidebar_position:4},sidebar:"tutorialSidebar",previous:{title:"Viewport Panel",permalink:"/docs/visualiser/3-1-user-guide/viewport"},next:{title:"Steps Panel",permalink:"/docs/visualiser/3-1-user-guide/steps"}},d={},o=[{value:"Adding a Layer",id:"adding-a-layer",level:2},{value:"Editing the Layer",id:"editing-the-layer",level:2},{value:"Other additional features",id:"other-additional-features",level:2}];function h(e){const i={a:"a",h1:"h1",h2:"h2",img:"img",li:"li",p:"p",ul:"ul",...(0,a.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(i.h1,{id:"layers-panel",children:"Layers Panel"}),"\n",(0,s.jsxs)(i.p,{children:["Visualiser's layers panel shows all layers that are present. Each layer could either be a ",(0,s.jsx)(i.a,{href:"../6-api/search-trace.md",children:"trace"}),", ",(0,s.jsx)(i.a,{href:"../5-tutorials/single-agent-grid",children:"map, or query"}),".\n",(0,s.jsx)(i.img,{alt:"Alt text",src:t(7098).Z+"",width:"1861",height:"953"}),"\nthis is the layers panel."]}),"\n",(0,s.jsx)(i.h2,{id:"adding-a-layer",children:"Adding a Layer"}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsx)(i.li,{children:"Click the + Layer button within the layers panel."}),"\n",(0,s.jsx)(i.li,{children:"A untitled Trace Layer will be added to the layers panel."}),"\n"]}),"\n",(0,s.jsx)(i.h2,{id:"editing-the-layer",children:"Editing the Layer"}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsxs)(i.li,{children:["\n",(0,s.jsx)(i.p,{children:"Click the edit (pencil) icon."}),"\n"]}),"\n",(0,s.jsxs)(i.li,{children:["\n",(0,s.jsxs)(i.p,{children:["A modal will come up like down below.\n",(0,s.jsx)(i.img,{alt:"Alt text",src:t(6738).Z+"",width:"1842",height:"871"})]}),"\n"]}),"\n",(0,s.jsxs)(i.li,{children:["\n",(0,s.jsx)(i.p,{children:"Within this modal, there are options to change the layer it self such as the transperancy and the display mode."}),"\n"]}),"\n",(0,s.jsxs)(i.li,{children:["\n",(0,s.jsxs)(i.p,{children:["There is also an option to change the type of the layer. A more detailed example is available in the ",(0,s.jsx)(i.a,{href:"../5-tutorials/single-agent-grid.mdx",children:"single agent search tutorial"})]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(i.h2,{id:"other-additional-features",children:"Other additional features"}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsx)(i.li,{children:"To adjust the orders of the layers, drag the 2 stripes icon of the layer to the desired order, this affects on how the layers are shown within the viewport panel."}),"\n",(0,s.jsx)(i.li,{children:"To fit the layer to the viewport panel, click on the options (3 dots) on each individual layer and click on Fit Layer."}),"\n"]})]})}function c(e={}){const{wrapper:i}={...(0,a.a)(),...e.components};return i?(0,s.jsx)(i,{...e,children:(0,s.jsx)(h,{...e})}):h(e)}},6738:(e,i,t)=>{t.d(i,{Z:()=>s});const s=t.p+"assets/images/layer-edit-modal-66f0aeacce29cf91b5ae6ced0e4c62ce.png"},7098:(e,i,t)=>{t.d(i,{Z:()=>s});const s=t.p+"assets/images/layer-highligthed-d4f277a7eab85c8202823a00e4280b97.png"},1151:(e,i,t)=>{t.d(i,{Z:()=>l,a:()=>n});var s=t(7294);const a={},r=s.createContext(a);function n(e){const i=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(i):{...i,...e}}),[i,e])}function l(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:n(e.components),s.createElement(r.Provider,{value:i},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/c695d9ce.a9128350.js b/assets/js/c695d9ce.a9128350.js new file mode 100644 index 0000000..363b68e --- /dev/null +++ b/assets/js/c695d9ce.a9128350.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_2=self.webpackChunkdocs_2||[]).push([[1169],{5501:(e,i,t)=>{t.r(i),t.d(i,{assets:()=>d,contentTitle:()=>n,default:()=>c,frontMatter:()=>a,metadata:()=>l,toc:()=>o});var s=t(5893),r=t(1151);const a={sidebar_position:4},n="Layers",l={id:"visualiser/3-1-user-guide/layers",title:"Layers",description:"Visualiser's layers panel shows all layers that are present. Each layer could either be a trace, map, or query.",source:"@site/docs/3-visualiser/3-1-user-guide/layers.mdx",sourceDirName:"3-visualiser/3-1-user-guide",slug:"/visualiser/3-1-user-guide/layers",permalink:"/docs/visualiser/3-1-user-guide/layers",draft:!1,unlisted:!1,editUrl:"https://github.com/path-visualiser/path-visualiser.github.io/tree/master/docs/3-visualiser/3-1-user-guide/layers.mdx",tags:[],version:"current",sidebarPosition:4,frontMatter:{sidebar_position:4},sidebar:"tutorialSidebar",previous:{title:"Viewport",permalink:"/docs/visualiser/3-1-user-guide/viewport"},next:{title:"Steps",permalink:"/docs/visualiser/3-1-user-guide/steps"}},d={},o=[{value:"Adding a Layer",id:"adding-a-layer",level:2},{value:"Editing the Layer",id:"editing-the-layer",level:2},{value:"Other additional features",id:"other-additional-features",level:2}];function h(e){const i={a:"a",h1:"h1",h2:"h2",img:"img",li:"li",p:"p",ul:"ul",...(0,r.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(i.h1,{id:"layers",children:"Layers"}),"\n",(0,s.jsxs)(i.p,{children:["Visualiser's layers panel shows all layers that are present. Each layer could either be a ",(0,s.jsx)(i.a,{href:"../6-api/search-trace.md",children:"trace"}),", ",(0,s.jsx)(i.a,{href:"../5-tutorials/single-agent-grid",children:"map, or query"}),".\n",(0,s.jsx)(i.img,{alt:"Alt text",src:t(7098).Z+"",width:"1861",height:"953"}),"\nthis is the layers panel."]}),"\n",(0,s.jsx)(i.h2,{id:"adding-a-layer",children:"Adding a Layer"}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsx)(i.li,{children:"Click the + Layer button within the layers panel."}),"\n",(0,s.jsx)(i.li,{children:"A untitled Trace Layer will be added to the layers panel."}),"\n"]}),"\n",(0,s.jsx)(i.h2,{id:"editing-the-layer",children:"Editing the Layer"}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsxs)(i.li,{children:["\n",(0,s.jsx)(i.p,{children:"Click the edit (pencil) icon."}),"\n"]}),"\n",(0,s.jsxs)(i.li,{children:["\n",(0,s.jsxs)(i.p,{children:["A modal will come up like down below.\n",(0,s.jsx)(i.img,{alt:"Alt text",src:t(6738).Z+"",width:"1842",height:"871"})]}),"\n"]}),"\n",(0,s.jsxs)(i.li,{children:["\n",(0,s.jsx)(i.p,{children:"Within this modal, there are options to change the layer it self such as the transperancy and the display mode."}),"\n"]}),"\n",(0,s.jsxs)(i.li,{children:["\n",(0,s.jsxs)(i.p,{children:["There is also an option to change the type of the layer. A more detailed example is available in the ",(0,s.jsx)(i.a,{href:"../5-tutorials/single-agent-grid.mdx",children:"single agent search tutorial"})]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(i.h2,{id:"other-additional-features",children:"Other additional features"}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsx)(i.li,{children:"To adjust the orders of the layers, drag the 2 stripes icon of the layer to the desired order, this affects on how the layers are shown within the viewport panel."}),"\n",(0,s.jsx)(i.li,{children:"To fit the layer to the viewport panel, click on the options (3 dots) on each individual layer and click on Fit Layer."}),"\n"]})]})}function c(e={}){const{wrapper:i}={...(0,r.a)(),...e.components};return i?(0,s.jsx)(i,{...e,children:(0,s.jsx)(h,{...e})}):h(e)}},6738:(e,i,t)=>{t.d(i,{Z:()=>s});const s=t.p+"assets/images/layer-edit-modal-66f0aeacce29cf91b5ae6ced0e4c62ce.png"},7098:(e,i,t)=>{t.d(i,{Z:()=>s});const s=t.p+"assets/images/layer-highligthed-d4f277a7eab85c8202823a00e4280b97.png"},1151:(e,i,t)=>{t.d(i,{Z:()=>l,a:()=>n});var s=t(7294);const r={},a=s.createContext(r);function n(e){const i=s.useContext(a);return s.useMemo((function(){return"function"==typeof e?e(i):{...i,...e}}),[i,e])}function l(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:n(e.components),s.createElement(a.Provider,{value:i},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/ef2725c4.162b23c8.js b/assets/js/ef2725c4.162b23c8.js new file mode 100644 index 0000000..6fa11c0 --- /dev/null +++ b/assets/js/ef2725c4.162b23c8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkdocs_2=self.webpackChunkdocs_2||[]).push([[6635],{957:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>h,frontMatter:()=>t,metadata:()=>c,toc:()=>d});var r=i(5893),s=i(1151);const t={sidebar_position:1},a="Search trace",c={id:"search-trace",title:"Search trace",description:"The search trace is a YAML log of your algorithm's decisions. What, and how much, you want to log is up to you. Here are some ideas.",source:"@site/docs/2-search-trace.md",sourceDirName:".",slug:"/search-trace",permalink:"/docs/search-trace",draft:!1,unlisted:!1,editUrl:"https://github.com/path-visualiser/path-visualiser.github.io/tree/master/docs/2-search-trace.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"tutorialSidebar",previous:{title:"Overview",permalink:"/docs/overview"},next:{title:"Posthoc visualiser",permalink:"/docs/category/posthoc-visualiser"}},l={},d=[{value:"Decision tree",id:"decision-tree",level:2},{value:"Custom views",id:"custom-views",level:2},{value:"Nested views",id:"nested-views",level:2},{value:"Property expressions",id:"property-expressions",level:2},{value:"Special properties",id:"special-properties",level:2},{value:"clear",id:"clear",level:3},{value:"$for",id:"for",level:3},{value:"$if",id:"if",level:3},{value:"$info",id:"info",level:3},{value:"API",id:"api",level:2}];function o(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",img:"img",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,s.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.h1,{id:"search-trace",children:"Search trace"}),"\n",(0,r.jsx)(n.p,{children:"The search trace is a YAML log of your algorithm's decisions. What, and how much, you want to log is up to you. Here are some ideas."}),"\n",(0,r.jsxs)("figure",{children:[(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-yaml",metastring:'title="single-agent-search.trace.yaml"',children:"version: 1.4.0\nevents:\n - { type: expand, id: 0, f: 0, g: 0 }\n - { type: generate, id: 1, pId: 0, f: 1, g: 1 }\n - { type: close, id: 0, f: 0, g: 0 }\n"})}),(0,r.jsx)("figcaption",{children:"Generic search events"})]}),"\n",(0,r.jsxs)("figure",{children:[(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-yaml",metastring:'title="agent-moves.trace.yaml"',children:"version: 1.4.0\nevents:\n - { type: move, agent: 47, id: 0, x: 0, y: 0 }\n - { type: move, agent: 18, id: 0, pId: 0, x: 5, y: 2 }\n"})}),(0,r.jsx)("figcaption",{children:"Multi-agent plan execution"})]}),"\n",(0,r.jsxs)("figure",{children:[(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-yaml",metastring:'title="rayscan.trace.yaml"',children:"version: 1.4.0\nevents:\n - { type: raycast, id: 1, x: 1, y: 2, rayX: 3, rayY: 4 }\n - { type: raycast, id: 1, x: 1, y: 2, rayX: 1, rayY: 4 }\n - { type: expand, id: 2, x: 3, y: 4 }\n"})}),(0,r.jsx)("figcaption",{children:"Algorithm-specific events"})]}),"\n",(0,r.jsx)(n.p,{children:"Since YAML is a superset of JSON, your traces can be in JSON too."}),"\n",(0,r.jsxs)("figure",{children:[(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-yaml",metastring:'title="single-agent-search.trace.json"',children:'version: 1.4.0\n{\n "events": [\n { "type": "expand", "id": 0, "f": 0, "g": 0 },\n { "type": "generate", "id": 1, "pId": 0, "f": 1, "g": 1 },\n { "type": "close", "id": 0, "f": 0, "g": 0 }\n ]\n}\n'})}),(0,r.jsx)("figcaption",{children:"Generic search events (JSON)"})]}),"\n",(0,r.jsxs)(n.p,{children:["Search traces should have the extensions ",(0,r.jsx)(n.code,{children:".trace.yaml"})," or ",(0,r.jsx)(n.code,{children:".trace.json"}),". It's required to declare ",(0,r.jsx)(n.code,{children:"version: 1.4.0"}),"."]}),"\n",(0,r.jsx)(n.h2,{id:"decision-tree",children:"Decision tree"}),"\n",(0,r.jsxs)(n.p,{children:["View your sequential decision-making processes as a tree or directed graph. Just provide ",(0,r.jsx)(n.code,{children:"id"})," and ",(0,r.jsx)(n.code,{children:"pId"}),"(parent ID) properties in your log."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-yaml",metastring:'title="simple-tree.trace.yaml"',children:"version: 1.4.0\nevents:\n - { type: decision, id: a, pId: null }\n - { type: decision, id: b, pId: a }\n - { type: decision, id: c, pId: a }\n"})}),"\n",(0,r.jsxs)(n.p,{children:["The ",(0,r.jsx)(n.code,{children:"type"})," property is optional, but should be a descriptive name of the kind of event that was logged."]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.img,{alt:"Simple tree",src:i(1107).Z+"",width:"2560",height:"1600"})}),"\n",(0,r.jsx)(n.h2,{id:"custom-views",children:"Custom views"}),"\n",(0,r.jsxs)(n.p,{children:["Give your search trace a custom visual representation by adding a ",(0,r.jsx)(n.code,{children:"views"})," section to it."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-yaml",metastring:'{2-9} title="custom-view.trace.yaml"',children:"version: 1.4.0\nviews:\n main:\n - $: rect # Show a rectangle...\n x: ${{ $.x }} # at this coordinate...\n y: ${{ $.y }} # at this coordinate...\n width: 1\n height: 1\n fill: ${{ theme.foreground }} # with this color \ud83c\udfa8\nevents:\n - { type: decision, id: a, x: 1, y: 1, pId: null }\n - { type: decision, id: b, x: 1, y: 3, pId: a }\n - { type: decision, id: c, x: 1, y: 5, pId: a }\n"})}),"\n",(0,r.jsxs)(n.p,{children:["The ",(0,r.jsx)(n.code,{children:"main"})," view acts as the entry-point, and ",(0,r.jsx)(n.code,{children:"rect"})," is a primitive provided by the built-in 2D renderer."]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.img,{alt:"Simple view",src:i(6234).Z+"",width:"2560",height:"1600"})}),"\n",(0,r.jsx)(n.p,{children:"It's that easy!"}),"\n",(0,r.jsx)(n.p,{children:"Custom views get you quickly going to creating something useful, but its also a language that is powerful enough to let you express complex visualisations."}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.img,{alt:"Complex view",src:i(1641).Z+"",width:"2560",height:"1600"})}),"\n",(0,r.jsxs)(n.p,{children:["See the ",(0,r.jsx)(n.a,{href:"category/renderer",children:"2D renderer API reference"})," for a list of primitives provided by the built-in renderer."]}),"\n",(0,r.jsx)(n.h2,{id:"nested-views",children:"Nested views"}),"\n",(0,r.jsx)(n.p,{children:"Nesting allows you to create copies of some element without having to repeat yourself."}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-yaml",metastring:'title="nesting.trace.yaml',children:"version: 1.4.0\nviews:\n // highlight-next-line\n marker: # A marker is defined here, which just draws a circle\n - $: circle\n fill: ${{ $.color }}\n radius: 0.25\n x: ${{ $.x }}\n y: ${{ $.step }}\n main:\n // highlight-next-line\n - $: marker # Render a red marker\n color: red\n x: ${{ $.min }}\n // highlight-next-line\n - $: marker # Render a green marker\n color: green\n x: ${{ $.max }}\n\nevents:\n - { type: bound, step: 0, min: 1, max: 5 }\n - { type: bound, step: 1, min: 2, max: 5 }\n - { type: bound, step: 2, min: 2, max: 4 }\n"})}),"\n",(0,r.jsxs)(n.p,{children:["Nest views by referencing other views with the ",(0,r.jsx)(n.code,{children:"$"})," property. You can also pass properties to them, which is accessible via the ",(0,r.jsx)(n.code,{children:"$"})," object in expressions."]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.img,{alt:"Nesting",src:i(8557).Z+"",width:"2560",height:"1600"})}),"\n",(0,r.jsx)(n.h2,{id:"property-expressions",children:"Property expressions"}),"\n",(0,r.jsxs)(n.p,{children:["You can write expressions inside ",(0,r.jsx)(n.code,{children:"${{ }}"})," brackets to reference event information or values passed from a parent view."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-yaml",metastring:'title="expression.trace.yaml',children:"version: 1.4.0\nviews:\n main:\n - $: rect\n width: 1\n height: 1\n // highlight-next-line\n fill: ${{ $.color }}\n $info:\n // highlight-next-line\n greeting: This rectangle is ${{ $.color }}\n\nevents:\n - { type: event, color: orange }\n"})}),"\n",(0,r.jsx)(n.p,{children:"If a property is a single expression, the property's value and type is taken from the result of the expression. But, if the property contains multiple expressions, or if there's text around the expressions, it becomes a concatenated string instead."}),"\n",(0,r.jsxs)(n.p,{children:["See the ",(0,r.jsx)(n.a,{href:"api/search-trace",children:"search trace API reference"})," for a list of properties available in expressions."]}),"\n",(0,r.jsx)(n.h2,{id:"special-properties",children:"Special properties"}),"\n",(0,r.jsx)(n.h3,{id:"clear",children:(0,r.jsx)(n.code,{children:"clear"})}),"\n",(0,r.jsx)(n.p,{children:"Control when elements should be cleared."}),"\n",(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Value"}),(0,r.jsx)(n.th,{children:"Usage"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsxs)(n.td,{children:[(0,r.jsx)(n.code,{children:"false"})," (default)"]}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"clear: false"})}),(0,r.jsx)(n.td,{children:"Event will remain once drawn."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"true"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"clear: true"})}),(0,r.jsx)(n.td,{children:"Event will clear immediately after the step they're drawn."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"string"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"clear: close"})}),(0,r.jsxs)(n.td,{children:["Event clears once another event of the same ",(0,r.jsx)(n.code,{children:"id"}),", and the specified type (e.g. ",(0,r.jsx)(n.code,{children:"close"}),"), is encountered."]})]})]})]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-yaml",metastring:'title="clear.trace.yaml"',children:"version: 1.4.0\nviews:\n main:\n - $: circle\n x: ${{ $.step }}\n y: 1\n radius: 0.25\n fill: ${{ colors.blue }}\n // highlight-next-line\n clear: close\nevents:\n - { type: open, id: 1 }\n - { type: generate, id: 1 }\n - { type: close, id: 1, message: Open and generate events should be cleared }\n"})}),"\n",(0,r.jsx)(n.h3,{id:"for",children:(0,r.jsx)(n.code,{children:"$for"})}),"\n",(0,r.jsx)(n.p,{children:"Repeat a view based on a value."}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-yaml",metastring:'{11-15} title="loop.trace.yaml"',children:"version: 1.4.0\nviews:\n main:\n - $: circle\n x: ${{ $.i }}\n y: 1\n radius: 0.25\n fill: ${{ $.colors[$.i] }}\n $info:\n color: ${{ $.colors[$.i] }}\n $for:\n $let: i # Optional, default `i`\n $from: 0 # Optional, default 0\n $step: 1 # Optional, default 1\n $to: ${{ $.colors.length }} # Required, number\nevents:\n - { type: event, colors: [red, green, blue, orange] }\n"})}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.img,{alt:"For property",src:i(7786).Z+"",width:"2560",height:"1600"})}),"\n",(0,r.jsx)(n.h3,{id:"if",children:(0,r.jsx)(n.code,{children:"$if"})}),"\n",(0,r.jsx)(n.p,{children:"Conditionally render a view."}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-yaml",metastring:'title="if.trace.yaml"',children:"version: 1.4.0\nviews:\n main:\n - $: circle\n radius: 1\n x: 1\n y: 1\n fill: red\n // highlight-next-line\n $if: ${{ $.direction == 'left' }}\n - $: rect\n width: 1\n height: 1\n x: 1\n y: 1\n fill: red\n // highlight-next-line\n $if: ${{ $.direction == 'right' }}\nevents:\n - { type: event, direction: left }\n - { type: event, direction: right }\n"})}),"\n",(0,r.jsx)(n.h3,{id:"info",children:(0,r.jsx)(n.code,{children:"$info"})}),"\n",(0,r.jsx)(n.p,{children:"By default, clicking on elements in the viewport will show you info about the event that rendered it. However, you can define information that will only be shown when a specific part of the event was clicked."}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-yaml",metastring:'{9-11,17-19} title="info.trace.yaml',children:"version: 1.4.0\nviews:\n main:\n - $: circle\n fill: green\n radius: 0.25\n x: ${{ $.x + $.l }}\n y: 0\n $info:\n message: This is the left marker\n position: ${{ $.x }} + ${{ $.l }} = ${{ $.x + $.l }}\n - $: circle\n fill: red\n radius: 0.25\n x: ${{ $.x + $.r }}\n y: 0\n $info:\n message: This is the right marker\n position: ${{ $.x }} + ${{ $.r }} = ${{ $.x + $.r }}\nevents:\n - { type: bound, x: 10, l: 2, r: 4 }\n"})}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.img,{alt:"Info",src:i(950).Z+"",width:"2560",height:"1600"})}),"\n",(0,r.jsx)(n.h2,{id:"api",children:"API"}),"\n",(0,r.jsxs)(n.p,{children:["The search trace API defines how you can write and structure your search trace. ",(0,r.jsx)(n.a,{href:"api/search-trace",children:"See the search trace API"}),"."]}),"\n",(0,r.jsxs)(n.p,{children:["The renderer specifies what primitives are available and how you can use them. For the built-in renderer, see the ",(0,r.jsx)(n.a,{href:"category/renderer",children:"2D renderer API here"}),"."]}),"\n",(0,r.jsxs)(n.p,{children:["Check out the ",(0,r.jsx)(n.a,{href:"https://yaml.org/spec/1.2.2/",children:"YAML 1.2.2 documentation"})," for all the ways you can write YAML."]})]})}function h(e={}){const{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(o,{...e})}):o(e)}},1641:(e,n,i)=>{i.d(n,{Z:()=>r});const r=i.p+"assets/images/complex-view-223a700f28d621ab7a77e34f80eb04ab.png"},7786:(e,n,i)=>{i.d(n,{Z:()=>r});const r=i.p+"assets/images/for-property-c87fdd4573ea433dddda4426707b4d3f.png"},950:(e,n,i)=>{i.d(n,{Z:()=>r});const r=i.p+"assets/images/info-f11c5f6a5fd1de5c1f3ebce102c51725.png"},8557:(e,n,i)=>{i.d(n,{Z:()=>r});const r=i.p+"assets/images/nesting-0f619bb07e3d8ac6d111b03507c058f6.png"},6234:(e,n,i)=>{i.d(n,{Z:()=>r});const r=i.p+"assets/images/simple-rendering-1f8ae5ac70f6059ca50b2f10025fa150.png"},1107:(e,n,i)=>{i.d(n,{Z:()=>r});const r=i.p+"assets/images/simple-tree-ea8b85e47ad3d4081ec880110c7651b8.png"},1151:(e,n,i)=>{i.d(n,{Z:()=>c,a:()=>a});var r=i(7294);const s={},t=r.createContext(s);function a(e){const n=r.useContext(t);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),r.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/ef2725c4.e6cdd6bf.js b/assets/js/ef2725c4.e6cdd6bf.js deleted file mode 100644 index 671f6a3..0000000 --- a/assets/js/ef2725c4.e6cdd6bf.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkdocs_2=self.webpackChunkdocs_2||[]).push([[6635],{957:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>h,frontMatter:()=>t,metadata:()=>c,toc:()=>d});var r=i(5893),s=i(1151);const t={sidebar_position:1},a="Search trace",c={id:"search-trace",title:"Search trace",description:"The search trace is a YAML log of your algorithm's decisions. What, and how much, you want to log is up to you. Here are some ideas.",source:"@site/docs/2-search-trace.md",sourceDirName:".",slug:"/search-trace",permalink:"/docs/search-trace",draft:!1,unlisted:!1,editUrl:"https://github.com/path-visualiser/path-visualiser.github.io/tree/master/docs/2-search-trace.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"tutorialSidebar",previous:{title:"Overview",permalink:"/docs/overview"},next:{title:"Posthoc visualiser",permalink:"/docs/category/posthoc-visualiser"}},l={},d=[{value:"Decision tree",id:"decision-tree",level:2},{value:"Custom views",id:"custom-views",level:2},{value:"Nested views",id:"nested-views",level:2},{value:"Property expressions",id:"property-expressions",level:2},{value:"Special properties",id:"special-properties",level:2},{value:"clear",id:"clear",level:3},{value:"$for",id:"for",level:3},{value:"$if",id:"if",level:3},{value:"$info",id:"info",level:3},{value:"API",id:"api",level:2}];function o(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",img:"img",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,s.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.h1,{id:"search-trace",children:"Search trace"}),"\n",(0,r.jsx)(n.p,{children:"The search trace is a YAML log of your algorithm's decisions. What, and how much, you want to log is up to you. Here are some ideas."}),"\n",(0,r.jsxs)("figure",{children:[(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-yaml",metastring:'title="single-agent-search.trace.yaml"',children:"events:\n - { type: expand, id: 0, f: 0, g: 0 }\n - { type: generate, id: 1, pId: 0, f: 1, g: 1 }\n - { type: close, id: 0, f: 0, g: 0 }\n"})}),(0,r.jsx)("figcaption",{children:"Generic search events"})]}),"\n",(0,r.jsxs)("figure",{children:[(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-yaml",metastring:'title="agent-moves.trace.yaml"',children:"events:\n - { type: move, agent: 47, id: 0, x: 0, y: 0 }\n - { type: move, agent: 18, id: 0, pId: 0, x: 5, y: 2 }\n"})}),(0,r.jsx)("figcaption",{children:"Multi-agent plan execution"})]}),"\n",(0,r.jsxs)("figure",{children:[(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-yaml",metastring:'title="rayscan.trace.yaml"',children:"events:\n - { type: raycast, id: 1, x: 1, y: 2, rayX: 3, rayY: 4 }\n - { type: raycast, id: 1, x: 1, y: 2, rayX: 1, rayY: 4 }\n - { type: expand, id: 2, x: 3, y: 4 }\n"})}),(0,r.jsx)("figcaption",{children:"Algorithm-specific events"})]}),"\n",(0,r.jsx)(n.p,{children:"Since YAML is a superset of JSON, your traces can be in JSON too."}),"\n",(0,r.jsxs)("figure",{children:[(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-yaml",metastring:'title="single-agent-search.trace.json"',children:'{\n "events": [\n { "type": "expand", "id": 0, "f": 0, "g": 0 },\n { "type": "generate", "id": 1, "pId": 0, "f": 1, "g": 1 },\n { "type": "close", "id": 0, "f": 0, "g": 0 }\n ]\n}\n'})}),(0,r.jsx)("figcaption",{children:"Generic search events (JSON)"})]}),"\n",(0,r.jsxs)(n.p,{children:["Search traces should have the extensions ",(0,r.jsx)(n.code,{children:".trace.yaml"})," or ",(0,r.jsx)(n.code,{children:".trace.json"}),"."]}),"\n",(0,r.jsx)(n.h2,{id:"decision-tree",children:"Decision tree"}),"\n",(0,r.jsxs)(n.p,{children:["View your sequential decision-making processes as a tree or directed graph. Just provide ",(0,r.jsx)(n.code,{children:"id"})," and ",(0,r.jsx)(n.code,{children:"pId"}),"(parent ID) properties in your log."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-yaml",metastring:'title="simple-tree.trace.yaml"',children:"events:\n - { type: decision, id: a, pId: null }\n - { type: decision, id: b, pId: a }\n - { type: decision, id: c, pId: a }\n"})}),"\n",(0,r.jsxs)(n.p,{children:["The ",(0,r.jsx)(n.code,{children:"type"})," property is optional, but should be a descriptive name of the kind of event that was logged."]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.img,{alt:"Simple tree",src:i(1107).Z+"",width:"2560",height:"1600"})}),"\n",(0,r.jsx)(n.h2,{id:"custom-views",children:"Custom views"}),"\n",(0,r.jsxs)(n.p,{children:["Give your search trace a custom visual representation by adding a ",(0,r.jsx)(n.code,{children:"views"})," section to it."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-yaml",metastring:'{1-8} title="custom-view.trace.yaml"',children:"views:\n main:\n - $: rect # Show a rectangle...\n x: ${{ $.x }} # at this coordinate...\n y: ${{ $.y }} # at this coordinate...\n width: 1\n height: 1\n fill: ${{ theme.foreground }} # with this color \ud83c\udfa8\nevents:\n - { type: decision, id: a, x: 1, y: 1, pId: null }\n - { type: decision, id: b, x: 1, y: 3, pId: a }\n - { type: decision, id: c, x: 1, y: 5, pId: a }\n"})}),"\n",(0,r.jsxs)(n.p,{children:["The ",(0,r.jsx)(n.code,{children:"main"})," view acts as the entry-point, and ",(0,r.jsx)(n.code,{children:"rect"})," is a primitive provided by the built-in 2D renderer."]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.img,{alt:"Simple view",src:i(6234).Z+"",width:"2560",height:"1600"})}),"\n",(0,r.jsx)(n.p,{children:"It's that easy!"}),"\n",(0,r.jsx)(n.p,{children:"Custom views get you quickly going to creating something useful, but its also a language that is powerful enough to let you express complex visualisations."}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.img,{alt:"Complex view",src:i(1641).Z+"",width:"2560",height:"1600"})}),"\n",(0,r.jsxs)(n.p,{children:["See the ",(0,r.jsx)(n.a,{href:"category/renderer",children:"2D renderer API reference"})," for a list of primitives provided by the built-in renderer."]}),"\n",(0,r.jsx)(n.h2,{id:"nested-views",children:"Nested views"}),"\n",(0,r.jsx)(n.p,{children:"Nesting allows you to create copies of some element without having to repeat yourself."}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-yaml",metastring:'title="nesting.trace.yaml',children:"views:\n // highlight-next-line\n marker: # A marker is defined here, which just draws a circle\n - $: circle\n fill: ${{ $.color }}\n radius: 0.25\n x: ${{ $.x }}\n y: ${{ $.step }}\n main:\n // highlight-next-line\n - $: marker # Render a red marker\n color: red\n x: ${{ $.min }}\n // highlight-next-line\n - $: marker # Render a green marker\n color: green\n x: ${{ $.max }}\n\nevents:\n - { type: bound, step: 0, min: 1, max: 5 }\n - { type: bound, step: 1, min: 2, max: 5 }\n - { type: bound, step: 2, min: 2, max: 4 }\n"})}),"\n",(0,r.jsxs)(n.p,{children:["Nest views by referencing other views with the ",(0,r.jsx)(n.code,{children:"$"})," property. You can also pass properties to them, which is accessible via the ",(0,r.jsx)(n.code,{children:"$"})," object in expressions."]}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.img,{alt:"Nesting",src:i(8557).Z+"",width:"2560",height:"1600"})}),"\n",(0,r.jsx)(n.h2,{id:"property-expressions",children:"Property expressions"}),"\n",(0,r.jsxs)(n.p,{children:["You can write expressions inside ",(0,r.jsx)(n.code,{children:"${{ }}"})," brackets to reference event information or values passed from a parent view."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-yaml",metastring:'title="expression.trace.yaml',children:"views:\n main:\n - $: rect\n width: 1\n height: 1\n // highlight-next-line\n fill: ${{ $.color }}\n $info:\n // highlight-next-line\n greeting: This rectangle is ${{ $.color }}\n\nevents:\n - { type: event, color: orange }\n"})}),"\n",(0,r.jsx)(n.p,{children:"If a property is a single expression, the property's value and type is taken from the result of the expression. But, if the property contains multiple expressions, or if there's text around the expressions, it becomes a concatenated string instead."}),"\n",(0,r.jsxs)(n.p,{children:["See the ",(0,r.jsx)(n.a,{href:"api/search-trace",children:"search trace API reference"})," for a list of properties available in expressions."]}),"\n",(0,r.jsx)(n.h2,{id:"special-properties",children:"Special properties"}),"\n",(0,r.jsx)(n.h3,{id:"clear",children:(0,r.jsx)(n.code,{children:"clear"})}),"\n",(0,r.jsx)(n.p,{children:"Control when elements should be cleared."}),"\n",(0,r.jsxs)(n.table,{children:[(0,r.jsx)(n.thead,{children:(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.th,{children:"Value"}),(0,r.jsx)(n.th,{children:"Example"}),(0,r.jsx)(n.th,{children:"Description"})]})}),(0,r.jsxs)(n.tbody,{children:[(0,r.jsxs)(n.tr,{children:[(0,r.jsxs)(n.td,{children:[(0,r.jsx)(n.code,{children:"false"})," (default)"]}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"clear: false"})}),(0,r.jsx)(n.td,{children:"Elements will remain once drawn."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"true"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"clear: true"})}),(0,r.jsx)(n.td,{children:"Elements will clear immediately after the step they're drawn."})]}),(0,r.jsxs)(n.tr,{children:[(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"string"})}),(0,r.jsx)(n.td,{children:(0,r.jsx)(n.code,{children:"clear: closing"})}),(0,r.jsxs)(n.td,{children:["Clear once the event of a particular type (e.g. ",(0,r.jsx)(n.code,{children:"closing"}),") is encountered."]})]})]})]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-yaml",metastring:'title="clear.trace.yaml"',children:"views:\n main:\n - $: circle\n x: ${{ $.step }}\n y: 1\n radius: 0.25\n fill: ${{ colors.blue }}\n // highlight-next-line\n clear: close\nevents:\n - { type: open, id: 1 }\n - { type: generate, id: 1 }\n - { type: close, id: 1, message: Open and generate events should be cleared }\n"})}),"\n",(0,r.jsx)(n.h3,{id:"for",children:(0,r.jsx)(n.code,{children:"$for"})}),"\n",(0,r.jsx)(n.p,{children:"Repeat a view based on a value."}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-yaml",metastring:'{10-14} title="loop.trace.yaml"',children:"views:\n main:\n - $: circle\n x: ${{ $.i }}\n y: 1\n radius: 0.25\n fill: ${{ $.colors[$.i] }}\n $info:\n color: ${{ $.colors[$.i] }}\n $for:\n $let: i # Optional, default `i`\n $from: 0 # Optional, default 0\n $step: 1 # Optional, default 1\n $to: ${{ $.colors.length }} # Required, number\nevents:\n - { type: event, colors: [red, green, blue, orange] }\n"})}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.img,{alt:"For property",src:i(7786).Z+"",width:"2560",height:"1600"})}),"\n",(0,r.jsx)(n.h3,{id:"if",children:(0,r.jsx)(n.code,{children:"$if"})}),"\n",(0,r.jsx)(n.p,{children:"Conditionally render a view."}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-yaml",metastring:'title="if.trace.yaml"',children:"views:\n main:\n - $: circle\n radius: 1\n x: 1\n y: 1\n fill: red\n // highlight-next-line\n $if: ${{ $.direction == 'left' }}\n - $: rect\n width: 1\n height: 1\n x: 1\n y: 1\n fill: red\n // highlight-next-line\n $if: ${{ $.direction == 'right' }}\nevents:\n - { type: event, direction: left }\n - { type: event, direction: right }\n"})}),"\n",(0,r.jsx)(n.h3,{id:"info",children:(0,r.jsx)(n.code,{children:"$info"})}),"\n",(0,r.jsx)(n.p,{children:"By default, clicking on elements in the viewport will show you info about the event that rendered it. However, you can define information that will only be shown when a specific part of the event was clicked."}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-yaml",metastring:'{8-11,17-20} title="info.trace.yaml',children:"views:\n main:\n - $: circle\n fill: green\n radius: 0.25\n x: ${{ $.x + $.l }}\n y: 0\n $info:\n message: This is the left marker\n position: ${{ $.x }} + ${{ $.l }} = ${{ $.x + $.l }}\n - $: circle\n fill: red\n radius: 0.25\n x: ${{ $.x + $.r }}\n y: 0\n $info:\n message: This is the right marker\n position: ${{ $.x }} + ${{ $.r }} = ${{ $.x + $.r }}\nevents:\n - { type: bound, x: 10, l: 2, r: 4 }\n"})}),"\n",(0,r.jsx)(n.p,{children:(0,r.jsx)(n.img,{alt:"Info",src:i(950).Z+"",width:"2560",height:"1600"})}),"\n",(0,r.jsx)(n.h2,{id:"api",children:"API"}),"\n",(0,r.jsxs)(n.p,{children:["The search trace API defines how you can write and structure your search trace. ",(0,r.jsx)(n.a,{href:"api/search-trace",children:"See the search trace API"}),"."]}),"\n",(0,r.jsxs)(n.p,{children:["The renderer specifies what primitives are available and how you can use them. For the built-in renderer, see the ",(0,r.jsx)(n.a,{href:"category/renderer",children:"2D renderer API here"}),"."]}),"\n",(0,r.jsxs)(n.p,{children:["Check out the ",(0,r.jsx)(n.a,{href:"https://yaml.org/spec/1.2.2/",children:"YAML 1.2.2 documentation"})," for all the ways you can write YAML."]})]})}function h(e={}){const{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(o,{...e})}):o(e)}},1641:(e,n,i)=>{i.d(n,{Z:()=>r});const r=i.p+"assets/images/complex-view-223a700f28d621ab7a77e34f80eb04ab.png"},7786:(e,n,i)=>{i.d(n,{Z:()=>r});const r=i.p+"assets/images/for-property-c87fdd4573ea433dddda4426707b4d3f.png"},950:(e,n,i)=>{i.d(n,{Z:()=>r});const r=i.p+"assets/images/info-f11c5f6a5fd1de5c1f3ebce102c51725.png"},8557:(e,n,i)=>{i.d(n,{Z:()=>r});const r=i.p+"assets/images/nesting-0f619bb07e3d8ac6d111b03507c058f6.png"},6234:(e,n,i)=>{i.d(n,{Z:()=>r});const r=i.p+"assets/images/simple-rendering-1f8ae5ac70f6059ca50b2f10025fa150.png"},1107:(e,n,i)=>{i.d(n,{Z:()=>r});const r=i.p+"assets/images/simple-tree-ea8b85e47ad3d4081ec880110c7651b8.png"},1151:(e,n,i)=>{i.d(n,{Z:()=>c,a:()=>a});var r=i(7294);const s={},t=r.createContext(s);function a(e){const n=r.useContext(t);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),r.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/main.128a9183.js b/assets/js/main.128a9183.js new file mode 100644 index 0000000..c7f7b23 --- /dev/null +++ b/assets/js/main.128a9183.js @@ -0,0 +1,2 @@ +/*! For license information please see main.128a9183.js.LICENSE.txt */ +(self.webpackChunkdocs_2=self.webpackChunkdocs_2||[]).push([[179],{997:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});n(7294);var r=n(8356),o=n.n(r),a=n(6887);const i={"00a4425a":[()=>n.e(879).then(n.bind(n,528)),"@site/docs/3-visualiser/3-1-user-guide/interface.md",528],"01a85c17":[()=>Promise.all([n.e(532),n.e(4013)]).then(n.bind(n,2864)),"@theme/BlogTagsListPage",2864],"029c79a8":[()=>Promise.all([n.e(532),n.e(7987)]).then(n.bind(n,3395)),"@site/docs/4-tutorials/tile.mdx",3395],"0ec73681":[()=>n.e(5868).then(n.bind(n,4621)),"@site/docs/6-api/renderer/protocol.md",4621],"1429b7e2":[()=>n.e(8756).then(n.t.bind(n,3181,19)),"~docs/default/category-docs-tutorialsidebar-category-user-guide-a78.json",3181],"14eb3368":[()=>Promise.all([n.e(532),n.e(9817)]).then(n.bind(n,853)),"@theme/DocCategoryGeneratedIndexPage",853],15503985:[()=>n.e(4626).then(n.bind(n,7387)),"@site/docs/6-api/renderer/standard-renderers.md",7387],17896441:[()=>Promise.all([n.e(532),n.e(4885),n.e(7918)]).then(n.bind(n,2889)),"@theme/DocItem",2889],"1dec2e7b":[()=>n.e(1567).then(n.bind(n,3140)),"@site/docs/1-overview.md",3140],"1df93b7f":[()=>Promise.all([n.e(333),n.e(3237)]).then(n.bind(n,7648)),"@site/src/pages/index.tsx",7648],"30a24c52":[()=>n.e(453).then(n.t.bind(n,8605,19)),"~blog/default/blog-tags-hello-039.json",8605],"3bc5039f":[()=>n.e(4473).then(n.bind(n,297)),"@site/docs/6-api/renderer/components.md",297],"458816ec":[()=>n.e(9985).then(n.bind(n,665)),"@site/docs/3-visualiser/3-1-user-guide/steps.md",665],"46eee094":[()=>n.e(5265).then(n.t.bind(n,6187,19)),"~docs/default/category-docs-tutorialsidebar-category-contributing-2d3.json",6187],"4cd738bd":[()=>n.e(8322).then(n.t.bind(n,4876,19)),"~docs/default/category-docs-tutorialsidebar-category-tutorials-d5c.json",4876],"53fa505f":[()=>n.e(6663).then(n.t.bind(n,4469,19)),"/home/runner/work/path-visualiser.github.io/path-visualiser.github.io/.docusaurus/docusaurus-plugin-content-blog/default/plugin-route-context-module-100.json",4469],"55f71885":[()=>n.e(6277).then(n.bind(n,1562)),"@site/docs/3-visualiser/3-1-user-guide/viewport.md",1562],"5e95c892":[()=>n.e(9661).then(n.bind(n,4942)),"@theme/DocsRoot",4942],"5e9f5e1a":[()=>Promise.resolve().then(n.bind(n,6809)),"@generated/docusaurus.config",6809],66406991:[()=>n.e(110).then(n.t.bind(n,711,19)),"~blog/default/blog-tags-hello-039-list.json",711],68647428:[()=>n.e(5039).then(n.bind(n,5247)),"@site/docs/3-visualiser/3-1-user-guide/tree.md",5247],"6875c492":[()=>Promise.all([n.e(532),n.e(4885),n.e(864),n.e(8610)]).then(n.bind(n,4883)),"@theme/BlogTagsPostsPage",4883],"6c945e85":[()=>n.e(1070).then(n.bind(n,8158)),"@site/docs/6-api/visualiser-adapter-protocol.md",8158],"6f3fa7c4":[()=>n.e(2378).then(n.bind(n,822)),"@site/docs/6-api/search-trace.md",822],"7163198f":[()=>Promise.all([n.e(532),n.e(7005)]).then(n.bind(n,3199)),"@site/docs/4-tutorials/single-agent-grid.mdx",3199],"814f3328":[()=>n.e(2535).then(n.t.bind(n,5641,19)),"~blog/default/blog-post-list-prop-default.json",5641],"8e97e476":[()=>n.e(5498).then(n.bind(n,1940)),"@site/docs/6-api/renderer/execution-context.md",1940],"8f3a0c2f":[()=>n.e(5234).then(n.t.bind(n,5745,19)),"/home/runner/work/path-visualiser.github.io/path-visualiser.github.io/.docusaurus/docusaurus-plugin-content-pages/default/plugin-route-context-module-100.json",5745],"935f2afb":[()=>n.e(53).then(n.t.bind(n,1109,19)),"~docs/default/version-current-metadata-prop-751.json",1109],"988781e2":[()=>n.e(9493).then(n.t.bind(n,6800,19)),"~docs/default/category-docs-tutorialsidebar-category-api-2c3.json",6800],"9c7a41f4":[()=>n.e(3480).then(n.bind(n,2211)),"@site/docs/3-visualiser/overview.md",2211],"9cde8b2f":[()=>n.e(9340).then(n.t.bind(n,7537,19)),"~docs/default/category-docs-tutorialsidebar-category-posthoc-visualiser-1e7.json",7537],"9e4087bc":[()=>n.e(3608).then(n.bind(n,8151)),"@theme/BlogArchivePage",8151],a6aa9e1f:[()=>Promise.all([n.e(532),n.e(4885),n.e(864),n.e(3089)]).then(n.bind(n,9928)),"@theme/BlogListPage",9928],a7023ddc:[()=>n.e(1713).then(n.t.bind(n,3457,19)),"~blog/default/blog-tags-tags-4c2.json",3457],a7bd4aaa:[()=>n.e(8518).then(n.bind(n,604)),"@theme/DocVersionRoot",604],a94703ab:[()=>Promise.all([n.e(532),n.e(4368)]).then(n.bind(n,3699)),"@theme/DocRoot",3699],aff2e64c:[()=>n.e(644).then(n.bind(n,1032)),"@site/docs/6-api/renderer/2D-renderer.md",1032],b2b675dd:[()=>n.e(533).then(n.t.bind(n,8017,19)),"~blog/default/blog-c06.json",8017],b2f554cd:[()=>n.e(1477).then(n.t.bind(n,10,19)),"~blog/default/blog-archive-80c.json",10],b763b81d:[()=>n.e(1439).then(n.bind(n,4816)),"@site/blog/2023-11-18-todo/index.md?truncated=true",4816],b83e3081:[()=>n.e(6640).then(n.bind(n,47)),"@site/docs/3-visualiser/3-1-user-guide/settings.mdx",47],bdf3e333:[()=>n.e(4176).then(n.bind(n,1706)),"@site/docs/3-visualiser/3-1-user-guide/debugger.mdx",1706],bfde10d3:[()=>n.e(8429).then(n.t.bind(n,229,19)),"~docs/default/category-docs-tutorialsidebar-category-renderer-935.json",229],c5b27c7c:[()=>n.e(5253).then(n.t.bind(n,3769,19)),"/home/runner/work/path-visualiser.github.io/path-visualiser.github.io/.docusaurus/docusaurus-plugin-content-docs/default/plugin-route-context-module-100.json",3769],c695d9ce:[()=>n.e(1169).then(n.bind(n,5501)),"@site/docs/3-visualiser/3-1-user-guide/layers.mdx",5501],cc37995b:[()=>n.e(8046).then(n.bind(n,198)),"@site/docs/6-api/renderer/2D-inbuilts.md",198],ccc49370:[()=>Promise.all([n.e(532),n.e(4885),n.e(864),n.e(6103)]).then(n.bind(n,324)),"@theme/BlogPostPage",324],deaa081a:[()=>n.e(4223).then(n.bind(n,4214)),"@site/blog/2023-11-18-todo/index.md",4214],e00b1594:[()=>n.e(3740).then(n.bind(n,34)),"@site/docs/7-contributing/overview.md",34],ef2725c4:[()=>n.e(6635).then(n.bind(n,957)),"@site/docs/2-search-trace.md",957]};var l=n(5893);function s(e){let{error:t,retry:n,pastDelay:r}=e;return t?(0,l.jsxs)("div",{style:{textAlign:"center",color:"#fff",backgroundColor:"#fa383e",borderColor:"#fa383e",borderStyle:"solid",borderRadius:"0.25rem",borderWidth:"1px",boxSizing:"border-box",display:"block",padding:"1rem",flex:"0 0 50%",marginLeft:"25%",marginRight:"25%",marginTop:"5rem",maxWidth:"50%",width:"100%"},children:[(0,l.jsx)("p",{children:String(t)}),(0,l.jsx)("div",{children:(0,l.jsx)("button",{type:"button",onClick:n,children:"Retry"})})]}):r?(0,l.jsx)("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"},children:(0,l.jsx)("svg",{id:"loader",style:{width:128,height:110,position:"absolute",top:"calc(100vh - 64%)"},viewBox:"0 0 45 45",xmlns:"http://www.w3.org/2000/svg",stroke:"#61dafb",children:(0,l.jsxs)("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2",children:[(0,l.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,l.jsx)("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,l.jsx)("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,l.jsx)("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,l.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,l.jsx)("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,l.jsx)("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,l.jsx)("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,l.jsx)("circle",{cx:"22",cy:"22",r:"8",children:(0,l.jsx)("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"})})]})})}):null}var u=n(5304),c=n(9656);function d(e,t){if("*"===e)return o()({loading:s,loader:()=>n.e(868).then(n.bind(n,4336)),modules:["@theme/NotFound"],webpack:()=>[4336],render(e,t){const n=e.default;return(0,l.jsx)(c.z,{value:{plugin:{name:"native",id:"default"}},children:(0,l.jsx)(n,{...t})})}});const r=a[`${e}-${t}`],d={},p=[],f=[],m=(0,u.Z)(r);return Object.entries(m).forEach((e=>{let[t,n]=e;const r=i[n];r&&(d[t]=r[0],p.push(r[1]),f.push(r[2]))})),o().Map({loading:s,loader:d,modules:p,webpack:()=>f,render(t,n){const o=JSON.parse(JSON.stringify(r));Object.entries(t).forEach((t=>{let[n,r]=t;const a=r.default;if(!a)throw new Error(`The page component at ${e} doesn't have a default export. This makes it impossible to render anything. Consider default-exporting a React component.`);"object"!=typeof a&&"function"!=typeof a||Object.keys(r).filter((e=>"default"!==e)).forEach((e=>{a[e]=r[e]}));let i=o;const l=n.split(".");l.slice(0,-1).forEach((e=>{i=i[e]})),i[l[l.length-1]]=a}));const a=o.__comp;delete o.__comp;const i=o.__context;return delete o.__context,(0,l.jsx)(c.z,{value:i,children:(0,l.jsx)(a,{...o,...n})})}})}const p=[{path:"/blog",component:d("/blog","416"),exact:!0},{path:"/blog/archive",component:d("/blog/archive","0b6"),exact:!0},{path:"/blog/tags",component:d("/blog/tags","9ee"),exact:!0},{path:"/blog/tags/hello",component:d("/blog/tags/hello","76c"),exact:!0},{path:"/blog/todo",component:d("/blog/todo","a7f"),exact:!0},{path:"/docs",component:d("/docs","94a"),routes:[{path:"/docs",component:d("/docs","32c"),routes:[{path:"/docs",component:d("/docs","127"),routes:[{path:"/docs/api/renderer/2D-inbuilts",component:d("/docs/api/renderer/2D-inbuilts","be1"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/api/renderer/2D-renderer",component:d("/docs/api/renderer/2D-renderer","392"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/api/renderer/components",component:d("/docs/api/renderer/components","6af"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/api/renderer/execution-context",component:d("/docs/api/renderer/execution-context","614"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/api/renderer/protocol",component:d("/docs/api/renderer/protocol","5d8"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/api/renderer/standard-renderers",component:d("/docs/api/renderer/standard-renderers","704"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/api/search-trace",component:d("/docs/api/search-trace","0eb"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/api/visualiser-adapter-protocol",component:d("/docs/api/visualiser-adapter-protocol","1c5"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/category/api",component:d("/docs/category/api","664"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/category/contributing",component:d("/docs/category/contributing","9f4"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/category/posthoc-visualiser",component:d("/docs/category/posthoc-visualiser","7e6"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/category/renderer",component:d("/docs/category/renderer","8e1"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/category/tutorials",component:d("/docs/category/tutorials","f40"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/category/user-guide",component:d("/docs/category/user-guide","2a4"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/contributing/overview",component:d("/docs/contributing/overview","c6a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/overview",component:d("/docs/overview","285"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/search-trace",component:d("/docs/search-trace","4b0"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/tutorials/single-agent-grid",component:d("/docs/tutorials/single-agent-grid","33d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/tutorials/tile",component:d("/docs/tutorials/tile","c5c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/visualiser/3-1-user-guide/debugger",component:d("/docs/visualiser/3-1-user-guide/debugger","2da"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/visualiser/3-1-user-guide/interface",component:d("/docs/visualiser/3-1-user-guide/interface","5a3"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/visualiser/3-1-user-guide/layers",component:d("/docs/visualiser/3-1-user-guide/layers","c0e"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/visualiser/3-1-user-guide/settings",component:d("/docs/visualiser/3-1-user-guide/settings","9ec"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/visualiser/3-1-user-guide/steps",component:d("/docs/visualiser/3-1-user-guide/steps","256"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/visualiser/3-1-user-guide/tree",component:d("/docs/visualiser/3-1-user-guide/tree","4cf"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/visualiser/3-1-user-guide/viewport",component:d("/docs/visualiser/3-1-user-guide/viewport","b93"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/visualiser/overview",component:d("/docs/visualiser/overview","d58"),exact:!0,sidebar:"tutorialSidebar"}]}]}]},{path:"/",component:d("/","c1c"),exact:!0},{path:"*",component:d("*")}]},5351:(e,t,n)=>{var r,o;!function(){var a,i,l,s,u,c,d,p,f,m,h,g,y,v,b,w,k,S,x,_,E,O,j,C,P,T,I,A,N,L,R=function(e){var t=new R.Builder;return t.pipeline.add(R.trimmer,R.stopWordFilter,R.stemmer),t.searchPipeline.add(R.stemmer),e.call(t,t),t.build()};R.version="2.3.9",R.utils={},R.utils.warn=(a=this,function(e){a.console&&console.warn&&console.warn(e)}),R.utils.asString=function(e){return null==e?"":e.toString()},R.utils.clone=function(e){if(null==e)return e;for(var t=Object.create(null),n=Object.keys(e),r=0;r0){var s=R.utils.clone(t)||{};s.position=[i,l],s.index=o.length,o.push(new R.Token(n.slice(i,a),s))}i=a+1}}return o},R.tokenizer.separator=/[\s\-]+/,R.Pipeline=function(){this._stack=[]},R.Pipeline.registeredFunctions=Object.create(null),R.Pipeline.registerFunction=function(e,t){t in this.registeredFunctions&&R.utils.warn("Overwriting existing registered function: "+t),e.label=t,R.Pipeline.registeredFunctions[e.label]=e},R.Pipeline.warnIfFunctionNotRegistered=function(e){e.label&&e.label in this.registeredFunctions||R.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",e)},R.Pipeline.load=function(e){var t=new R.Pipeline;return e.forEach((function(e){var n=R.Pipeline.registeredFunctions[e];if(!n)throw new Error("Cannot load unregistered function: "+e);t.add(n)})),t},R.Pipeline.prototype.add=function(){Array.prototype.slice.call(arguments).forEach((function(e){R.Pipeline.warnIfFunctionNotRegistered(e),this._stack.push(e)}),this)},R.Pipeline.prototype.after=function(e,t){R.Pipeline.warnIfFunctionNotRegistered(t);var n=this._stack.indexOf(e);if(-1==n)throw new Error("Cannot find existingFn");n+=1,this._stack.splice(n,0,t)},R.Pipeline.prototype.before=function(e,t){R.Pipeline.warnIfFunctionNotRegistered(t);var n=this._stack.indexOf(e);if(-1==n)throw new Error("Cannot find existingFn");this._stack.splice(n,0,t)},R.Pipeline.prototype.remove=function(e){var t=this._stack.indexOf(e);-1!=t&&this._stack.splice(t,1)},R.Pipeline.prototype.run=function(e){for(var t=this._stack.length,n=0;n1&&(ae&&(n=o),a!=e);)r=n-t,o=t+Math.floor(r/2),a=this.elements[2*o];return a==e||a>e?2*o:al?u+=2:i==l&&(t+=n[s+1]*r[u+1],s+=2,u+=2);return t},R.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},R.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),t=1,n=0;t0){var a,i=o.str.charAt(0);i in o.node.edges?a=o.node.edges[i]:(a=new R.TokenSet,o.node.edges[i]=a),1==o.str.length&&(a.final=!0),r.push({node:a,editsRemaining:o.editsRemaining,str:o.str.slice(1)})}if(0!=o.editsRemaining){if("*"in o.node.edges)var l=o.node.edges["*"];else{l=new R.TokenSet;o.node.edges["*"]=l}if(0==o.str.length&&(l.final=!0),r.push({node:l,editsRemaining:o.editsRemaining-1,str:o.str}),o.str.length>1&&r.push({node:o.node,editsRemaining:o.editsRemaining-1,str:o.str.slice(1)}),1==o.str.length&&(o.node.final=!0),o.str.length>=1){if("*"in o.node.edges)var s=o.node.edges["*"];else{s=new R.TokenSet;o.node.edges["*"]=s}1==o.str.length&&(s.final=!0),r.push({node:s,editsRemaining:o.editsRemaining-1,str:o.str.slice(1)})}if(o.str.length>1){var u,c=o.str.charAt(0),d=o.str.charAt(1);d in o.node.edges?u=o.node.edges[d]:(u=new R.TokenSet,o.node.edges[d]=u),1==o.str.length&&(u.final=!0),r.push({node:u,editsRemaining:o.editsRemaining-1,str:c+o.str.slice(2)})}}}return n},R.TokenSet.fromString=function(e){for(var t=new R.TokenSet,n=t,r=0,o=e.length;r=e;t--){var n=this.uncheckedNodes[t],r=n.child.toString();r in this.minimizedNodes?n.parent.edges[n.char]=this.minimizedNodes[r]:(n.child._str=r,this.minimizedNodes[r]=n.child),this.uncheckedNodes.pop()}},R.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},R.Index.prototype.search=function(e){return this.query((function(t){new R.QueryParser(e,t).parse()}))},R.Index.prototype.query=function(e){for(var t=new R.Query(this.fields),n=Object.create(null),r=Object.create(null),o=Object.create(null),a=Object.create(null),i=Object.create(null),l=0;l1?1:e},R.Builder.prototype.k1=function(e){this._k1=e},R.Builder.prototype.add=function(e,t){var n=e[this._ref],r=Object.keys(this._fields);this._documents[n]=t||{},this.documentCount+=1;for(var o=0;o=this.length)return R.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},R.QueryLexer.prototype.width=function(){return this.pos-this.start},R.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},R.QueryLexer.prototype.backup=function(){this.pos-=1},R.QueryLexer.prototype.acceptDigitRun=function(){var e,t;do{t=(e=this.next()).charCodeAt(0)}while(t>47&&t<58);e!=R.QueryLexer.EOS&&this.backup()},R.QueryLexer.prototype.more=function(){return this.pos1&&(e.backup(),e.emit(R.QueryLexer.TERM)),e.ignore(),e.more())return R.QueryLexer.lexText},R.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(R.QueryLexer.EDIT_DISTANCE),R.QueryLexer.lexText},R.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(R.QueryLexer.BOOST),R.QueryLexer.lexText},R.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(R.QueryLexer.TERM)},R.QueryLexer.termSeparator=R.tokenizer.separator,R.QueryLexer.lexText=function(e){for(;;){var t=e.next();if(t==R.QueryLexer.EOS)return R.QueryLexer.lexEOS;if(92!=t.charCodeAt(0)){if(":"==t)return R.QueryLexer.lexField;if("~"==t)return e.backup(),e.width()>0&&e.emit(R.QueryLexer.TERM),R.QueryLexer.lexEditDistance;if("^"==t)return e.backup(),e.width()>0&&e.emit(R.QueryLexer.TERM),R.QueryLexer.lexBoost;if("+"==t&&1===e.width())return e.emit(R.QueryLexer.PRESENCE),R.QueryLexer.lexText;if("-"==t&&1===e.width())return e.emit(R.QueryLexer.PRESENCE),R.QueryLexer.lexText;if(t.match(R.QueryLexer.termSeparator))return R.QueryLexer.lexTerm}else e.escapeCharacter()}},R.QueryParser=function(e,t){this.lexer=new R.QueryLexer(e),this.query=t,this.currentClause={},this.lexemeIdx=0},R.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=R.QueryParser.parseClause;e;)e=e(this);return this.query},R.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},R.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},R.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},R.QueryParser.parseClause=function(e){var t=e.peekLexeme();if(null!=t)switch(t.type){case R.QueryLexer.PRESENCE:return R.QueryParser.parsePresence;case R.QueryLexer.FIELD:return R.QueryParser.parseField;case R.QueryLexer.TERM:return R.QueryParser.parseTerm;default:var n="expected either a field or a term, found "+t.type;throw t.str.length>=1&&(n+=" with value '"+t.str+"'"),new R.QueryParseError(n,t.start,t.end)}},R.QueryParser.parsePresence=function(e){var t=e.consumeLexeme();if(null!=t){switch(t.str){case"-":e.currentClause.presence=R.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=R.Query.presence.REQUIRED;break;default:var n="unrecognised presence operator'"+t.str+"'";throw new R.QueryParseError(n,t.start,t.end)}var r=e.peekLexeme();if(null==r){n="expecting term or field, found nothing";throw new R.QueryParseError(n,t.start,t.end)}switch(r.type){case R.QueryLexer.FIELD:return R.QueryParser.parseField;case R.QueryLexer.TERM:return R.QueryParser.parseTerm;default:n="expecting term or field, found '"+r.type+"'";throw new R.QueryParseError(n,r.start,r.end)}}},R.QueryParser.parseField=function(e){var t=e.consumeLexeme();if(null!=t){if(-1==e.query.allFields.indexOf(t.str)){var n=e.query.allFields.map((function(e){return"'"+e+"'"})).join(", "),r="unrecognised field '"+t.str+"', possible fields: "+n;throw new R.QueryParseError(r,t.start,t.end)}e.currentClause.fields=[t.str];var o=e.peekLexeme();if(null==o){r="expecting term, found nothing";throw new R.QueryParseError(r,t.start,t.end)}if(o.type===R.QueryLexer.TERM)return R.QueryParser.parseTerm;r="expecting term, found '"+o.type+"'";throw new R.QueryParseError(r,o.start,o.end)}},R.QueryParser.parseTerm=function(e){var t=e.consumeLexeme();if(null!=t){e.currentClause.term=t.str.toLowerCase(),-1!=t.str.indexOf("*")&&(e.currentClause.usePipeline=!1);var n=e.peekLexeme();if(null!=n)switch(n.type){case R.QueryLexer.TERM:return e.nextClause(),R.QueryParser.parseTerm;case R.QueryLexer.FIELD:return e.nextClause(),R.QueryParser.parseField;case R.QueryLexer.EDIT_DISTANCE:return R.QueryParser.parseEditDistance;case R.QueryLexer.BOOST:return R.QueryParser.parseBoost;case R.QueryLexer.PRESENCE:return e.nextClause(),R.QueryParser.parsePresence;default:var r="Unexpected lexeme type '"+n.type+"'";throw new R.QueryParseError(r,n.start,n.end)}else e.nextClause()}},R.QueryParser.parseEditDistance=function(e){var t=e.consumeLexeme();if(null!=t){var n=parseInt(t.str,10);if(isNaN(n)){var r="edit distance must be numeric";throw new R.QueryParseError(r,t.start,t.end)}e.currentClause.editDistance=n;var o=e.peekLexeme();if(null!=o)switch(o.type){case R.QueryLexer.TERM:return e.nextClause(),R.QueryParser.parseTerm;case R.QueryLexer.FIELD:return e.nextClause(),R.QueryParser.parseField;case R.QueryLexer.EDIT_DISTANCE:return R.QueryParser.parseEditDistance;case R.QueryLexer.BOOST:return R.QueryParser.parseBoost;case R.QueryLexer.PRESENCE:return e.nextClause(),R.QueryParser.parsePresence;default:r="Unexpected lexeme type '"+o.type+"'";throw new R.QueryParseError(r,o.start,o.end)}else e.nextClause()}},R.QueryParser.parseBoost=function(e){var t=e.consumeLexeme();if(null!=t){var n=parseInt(t.str,10);if(isNaN(n)){var r="boost must be numeric";throw new R.QueryParseError(r,t.start,t.end)}e.currentClause.boost=n;var o=e.peekLexeme();if(null!=o)switch(o.type){case R.QueryLexer.TERM:return e.nextClause(),R.QueryParser.parseTerm;case R.QueryLexer.FIELD:return e.nextClause(),R.QueryParser.parseField;case R.QueryLexer.EDIT_DISTANCE:return R.QueryParser.parseEditDistance;case R.QueryLexer.BOOST:return R.QueryParser.parseBoost;case R.QueryLexer.PRESENCE:return e.nextClause(),R.QueryParser.parsePresence;default:r="Unexpected lexeme type '"+o.type+"'";throw new R.QueryParseError(r,o.start,o.end)}else e.nextClause()}},void 0===(o="function"==typeof(r=function(){return R})?r.call(t,n,t,e):r)||(e.exports=o)}()},8121:(e,t,n)=>{"use strict";n.d(t,{_:()=>a,t:()=>i});var r=n(7294),o=n(5893);const a=r.createContext(!1);function i(e){let{children:t}=e;const[n,i]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{i(!0)}),[]),(0,o.jsx)(a.Provider,{value:n,children:t})}},9717:(e,t,n)=>{"use strict";var r=n(7294),o=n(745),a=n(3727),i=n(405),l=n(6136);const s=[n(984),n(2251),n(9957),n(6930)];var u=n(997),c=n(6550),d=n(8790),p=n(5893);function f(e){let{children:t}=e;return(0,p.jsx)(p.Fragment,{children:t})}var m=n(1514),h=n(9962),g=n(9524),y=n(107),v=n(5463),b=n(626),w=n(8181),k=n(246),S=n(3905),x=n(3647);function _(){const{i18n:{currentLocale:e,defaultLocale:t,localeConfigs:n}}=(0,h.Z)(),r=(0,b.l)(),o=n[e].htmlLang,a=e=>e.replace("-","_");return(0,p.jsxs)(m.Z,{children:[Object.entries(n).map((e=>{let[t,{htmlLang:n}]=e;return(0,p.jsx)("link",{rel:"alternate",href:r.createUrl({locale:t,fullyQualified:!0}),hrefLang:n},t)})),(0,p.jsx)("link",{rel:"alternate",href:r.createUrl({locale:t,fullyQualified:!0}),hrefLang:"x-default"}),(0,p.jsx)("meta",{property:"og:locale",content:a(o)}),Object.values(n).filter((e=>o!==e.htmlLang)).map((e=>(0,p.jsx)("meta",{property:"og:locale:alternate",content:a(e.htmlLang)},`meta-og-${e.htmlLang}`)))]})}function E(e){let{permalink:t}=e;const{siteConfig:{url:n}}=(0,h.Z)(),r=function(){const{siteConfig:{url:e,baseUrl:t,trailingSlash:n}}=(0,h.Z)(),{pathname:r}=(0,c.TH)();return e+(0,S.applyTrailingSlash)((0,g.Z)(r),{trailingSlash:n,baseUrl:t})}(),o=t?`${n}${t}`:r;return(0,p.jsxs)(m.Z,{children:[(0,p.jsx)("meta",{property:"og:url",content:o}),(0,p.jsx)("link",{rel:"canonical",href:o})]})}function O(){const{i18n:{currentLocale:e}}=(0,h.Z)(),{metadata:t,image:n}=(0,y.L)();return(0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)(m.Z,{children:[(0,p.jsx)("meta",{name:"twitter:card",content:"summary_large_image"}),(0,p.jsx)("body",{className:w.h})]}),n&&(0,p.jsx)(v.d,{image:n}),(0,p.jsx)(E,{}),(0,p.jsx)(_,{}),(0,p.jsx)(x.Z,{tag:k.HX,locale:e}),(0,p.jsx)(m.Z,{children:t.map(((e,t)=>(0,p.jsx)("meta",{...e},t)))})]})}const j=new Map;function C(e){if(j.has(e.pathname))return{...e,pathname:j.get(e.pathname)};if((0,d.f)(u.Z,e.pathname).some((e=>{let{route:t}=e;return!0===t.exact})))return j.set(e.pathname,e.pathname),e;const t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return j.set(e.pathname,t),{...e,pathname:t}}var P=n(8121),T=n(694),I=n(1270);function A(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r{const r=t.default?.[e]??t[e];return r?.(...n)}));return()=>o.forEach((e=>e?.()))}const N=function(e){let{children:t,location:n,previousLocation:r}=e;return(0,I.Z)((()=>{r!==n&&(!function(e){let{location:t,previousLocation:n}=e;if(!n)return;const r=t.pathname===n.pathname,o=t.hash===n.hash,a=t.search===n.search;if(r&&o&&!a)return;const{hash:i}=t;if(i){const e=decodeURIComponent(i.substring(1)),t=document.getElementById(e);t?.scrollIntoView()}else window.scrollTo(0,0)}({location:n,previousLocation:r}),A("onRouteDidUpdate",{previousLocation:r,location:n}))}),[r,n]),t};function L(e){const t=Array.from(new Set([e,decodeURI(e)])).map((e=>(0,d.f)(u.Z,e))).flat();return Promise.all(t.map((e=>e.route.component.preload?.())))}class R extends r.Component{previousLocation;routeUpdateCleanupCb;constructor(e){super(e),this.previousLocation=null,this.routeUpdateCleanupCb=l.Z.canUseDOM?A("onRouteUpdate",{previousLocation:null,location:this.props.location}):()=>{},this.state={nextRouteHasLoaded:!0}}shouldComponentUpdate(e,t){if(e.location===this.props.location)return t.nextRouteHasLoaded;const n=e.location;return this.previousLocation=this.props.location,this.setState({nextRouteHasLoaded:!1}),this.routeUpdateCleanupCb=A("onRouteUpdate",{previousLocation:this.previousLocation,location:n}),L(n.pathname).then((()=>{this.routeUpdateCleanupCb(),this.setState({nextRouteHasLoaded:!0})})).catch((e=>{console.warn(e),window.location.reload()})),!1}render(){const{children:e,location:t}=this.props;return(0,p.jsx)(N,{previousLocation:this.previousLocation,location:t,children:(0,p.jsx)(c.AW,{location:t,render:()=>e})})}}const D=R,F="__docusaurus-base-url-issue-banner-container",M="__docusaurus-base-url-issue-banner",B="__docusaurus-base-url-issue-banner-suggestion-container";function z(e){return`\ndocument.addEventListener('DOMContentLoaded', function maybeInsertBanner() {\n var shouldInsert = typeof window['docusaurus'] === 'undefined';\n shouldInsert && insertBanner();\n});\n\nfunction insertBanner() {\n var bannerContainer = document.createElement('div');\n bannerContainer.id = '${F}';\n var bannerHtml = ${JSON.stringify(function(e){return`\n
\n

Your Docusaurus site did not load properly.

\n

A very common reason is a wrong site baseUrl configuration.

\n

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

\n

We suggest trying baseUrl =

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